2

我正在尝试执行图像注册,但运气不佳。

下面的图片是我的“参考”图片。我使用网络摄像头获取同一对象在不同方向的图像,然后需要对这些图像执行转换,以使它们看起来尽可能接近参考图像。

检测对象

我一直在使用Aforge.NETAccord.NET库来解决这个问题。

特征检测/提取

到目前为止,我已经尝试过本文中使用的图像拼接方法。它适用于某些类型的图像,但不幸的是它似乎不适用于我的示例图像。对象本身相当平淡,没有太多特征,因此算法找不到很多相关点。我尝试了上述方法的两种版本,一种使用 Harris 角检测器,另一种使用SURF,这两种方法都没有为我提供所需的结果。

一种选择可能是“人为地”为对象添加更多功能(即贴纸、标记),但如果可能的话,我想避免这种情况。

形状检测

我还尝试了本文中使用的形状检测方法的几种变。理想情况下,我想检测物体上四个定义明确的圆圈/孔。然后我可以使用这些坐标来创建一个转换矩阵(单应性?),我可以用它来转换图像。

不幸的是,我无法可靠地检测到所有四个圆圈。我已经尝试了无数不同的方法来预处理图像以获得更好的圆形检测,但无法找到完美的序列。我的正常操作是:

  • 转图像灰度
  • 应用过滤器(均值、中值、保守平滑、自适应平滑等)
  • 应用边缘检测(同质性、Sobel、差异性、Canny 等)
  • 应用颜色过滤
  • 运行形状/圆形检测器

我只是找不到合适的过滤器系列来可靠地检测四个圆圈。

图像/模板匹配

同样,我想检测对象中的四个圆圈/孔,所以我尝试了一种图像/模板匹配技术,但收效甚微。我创建了一个模板(其中一个圆圈的小图像)并运行了详尽的模板匹配算法,但没有取得多大成功。通常它只检测其中一个孔,通常是创建模板的那个孔!

总之

我觉得我正在使用正确的技术来解决这个问题,我只是不确定我哪里出错了,或者我应该进一步关注哪里。

任何帮助或指示将不胜感激。

4

2 回答 2

1

如果您添加了您试图保持不变的转换示例 - 我们可以更具体。但一般来说,你可以尝试使用HOG来检测这种结构,因为它的梯度相当丰富。

HOG 主要用于检测行人,此外它也适用于检测不同的标志。

我不确定 HOG 对旋转的不变性,但它在不同的光照和适度的透视失真下相当稳健。如果旋转不变性很重要,您可以尝试在对象的旋转版本上训练分类器,尽管您的检测器可能变得不那么具有辨别力。

在您大致检测到结构的比例和位置后 - 您可以尝试通过检测其边界的椭圆来对其进行细化。之后,您将对孔洞进行粗略估计,您可以使用该邻域中的最大归一化互相关之类的方法进一步细化。

于 2015-12-12T14:18:31.480 回答
1

我知道这已经有一段时间了,但只是一个简短的潜在解决方案:

我只会在原始图像上生成一个点网格(比如说,16x16),然后使用 Lucas-Kanade(或其他一些)特征检测器在第二张图像上找到这些点。当然,您可能不会找到所有点,但您可以排序并选择最佳相关性。比方说,最好的四个?然后您可以轻松计算转换矩阵。

此外,如果您在第一个网格上没有获得良好的相关性,那么您可以制作其他网格(移位等),直到找到好的匹配。

希望对任何人都有帮助。

于 2016-02-14T17:52:59.720 回答