检测图像中的 2 x 3 矩阵白点

Detect a 2 x 3 Matrix of white dots in an image

我想通过红外地标定位服务机器人。这个想法是检测两个地标,得到到地标的距离,并根据这些信息计算机器人的位置(地标的位置是已知的)。
为此,我构建了一个人工 2x3 红外 LED 矩阵,在机器人红外摄像机图像中可见(如下图所示)。
作为第一步,我想检测图片中的单个地标并获取它的 x-y 坐标。以后我可以使用这些坐标来获取与提供的深度图像的距离。
我的第一种方法是将图像转换为黑白图像。然后我尝试过滤掉不同的点簇(我首先对它们进行了扩张和轮廓化)。我无法用这种方法成功。

现在我想知道是否有任何模式 recognition/computer 视觉方法可以帮助我完全 "easily" 检测模式。
我添加了一张带有地标的红外图像和一张转换后的 black/white 图像。

a) 哪种方法可以帮助我解决这个问题?
b) 我应该使用 3x3 矩阵还是任何其他几何形式而不是 2x3 矩阵?

IR-Image

Black-White Image

直接回答: 1)找到图像中所有的小圆圈; 2) 在这些小圆圈中寻找大小相同且靠在一起的小圆圈,比如形成平行线。

采用这种方法的原因是您使用小物体的特定模式对机器人进行了编码。因此,寻找对象,然后寻找模式。 (如果方向和大小不会改变,那么您可以在较大的图像中寻找子图像,但因为它可以,您需要寻找与 3D 运动保持一致的图案元素 space,即平行线。)

这将在示例图像中起作用,但要知道这是否会更普遍地起作用,我们需要知道的比您告诉我们的更多:这取决于矩阵图像的变化和矩阵的变化背景将使这足以区分它们。如果没有,也许您需要更聪明的算法或不同的灯光模式。在极端情况下,很明显,如果你周围有另一个 2x3 矩阵,那是不够的。这完全取决于要识别的对象的变化和背景场景中的变化,因为你没有告诉我们这些东西,所以很难说最好的方法,什么是足够好,什么是更好的方法,等等

如果您有选择,而且这听起来像您的选择,好的数据胜过巧妙的分析。对于这个问题,我将好的数据称为任何能够清楚地区分对象与背景的数据。你需要这样想,看看背景是什么,以及所有可能的灯光视角,确保这些永远不会混淆。

例如,如果您对此有很大的控制权,并且有足够的时间,时间变化通常是最容易的。打开和关闭灯(或灯的子集)等,然后寻找预期的时间变化通常是区分信号和噪声的最可靠方法——但实际上,这又只是对背景和前景(,背景不会随某些特定时间模式而变化)。