【问题标题】:Detect a 2 x 3 Matrix of white dots in an image检测图像中的 2 x 3 矩阵白点
【发布时间】:2023-03-06 00:52:01
【问题描述】:
我想通过红外地标定位服务机器人。这个想法是检测两个地标,获取到地标的距离并根据这些信息计算机器人位置(地标的位置已知)。
为此,我构建了一个人工 2x3 红外 LED 矩阵,它们在机器人红外摄像头图像中可见(如下图所示)。
作为第一步,我想检测图片中的单个地标并获取它的 x-y 坐标。将来我可以使用这些坐标来获取与提供的深度图像的距离。
我的第一种方法是将图像转换为黑白图像。然后我尝试过滤掉不同的点簇(我首先对其进行了扩张和轮廓化)。我无法用这种方法成功。
现在我想知道是否有任何模式识别/计算机视觉方法可以帮助我“轻松”检测到模式。
我添加了一张红外图像的图片,其中包含地标和转换后的黑白图像。
a) 哪种方法可以帮助我解决这个问题?
b) 我应该使用 3x3 矩阵或任何其他几何形式来代替 2x3 矩阵吗?
IR-Image
Black-White Image
【问题讨论】:
标签:
computer-vision
signal-processing
robotics
pattern-recognition
infrared
【解决方案1】:
直接回答:
1)找到图像中的所有小圆圈; 2) 在这些小圆圈中寻找大小相同且靠得很近的圆圈,比如形成平行线。
采用这种方法的原因是您使用特定图案的小物体对机器人进行了编码。因此,寻找对象,然后寻找模式。 (如果方向和大小不会改变,那么您可以只在较大图像中寻找子图像,但因为它可以,您需要寻找与 3D 空间中的运动保持一致的图案元素,也就是平行线。)
这将在示例图像中起作用,但要知道这是否会更普遍地起作用,我们需要知道的比您告诉我们的更多:这取决于矩阵图像的变化和背景的变化是否会让这足以区分它们。如果没有,也许您需要更聪明的算法或不同的灯光模式。在极端情况下,很明显,如果周围还有另一个 2x3 矩阵,那是不够的。这一切都取决于要识别的对象的变化和背景场景中的变化,而且因为你没有告诉我们这些事情中的任何一个,所以很难说最好的方法,什么是足够好的,什么是更好的方法,等等
如果您有选择权,而且听起来确实如此,那么好的数据胜过聪明的分析。对于这个问题,我认为好的数据是可以清楚地区分物体和背景的任何东西。你需要这样想,看看背景是什么,以及所有可能的灯光的不同视角,并确保这些永远不会混淆。
例如,如果您对此有很多控制权,并且有足够的时间,那么时间变化通常是最容易的。打开和关闭灯(或灯的子集)等,然后寻找预期的时间变化通常是区分信号和噪声的最可靠方法 - 但实际上,这再次只是对背景和前景(即,背景不会随着某些特定的时间模式而变化)。