我正在尝试执行图像注册而没有太多运气。
下面的图片是我的“参考”图片。我使用网络摄像头以不同的方向获取同一对象的图像,然后需要对这些图像执行转换,使它们看起来尽可能接近参考图像。
我一直在使用Aforge.NET和Accord.NET库来解决这个问题。
功能检测/提取
到目前为止,我已经尝试了this文章中使用的图像拼接方法。它适用于某些类型的图像,但不幸的是它似乎不适用于我的样本图像。对象本身相当平淡,没有很多特征,因此算法找不到很多相关点。我尝试了上述方法的两个版本,一个使用Harris角点检测器,另一个使用SURF,这两个版本都没有为我提供我需要的结果。
一种选择可能是“人为地”为对象添加更多功能(即贴纸,标记),但如果可能的话,我想避免这种情况。
形状检测
我还尝试了this文章中使用的形状检测方法的几种变体。理想情况下,我想检测物体上四个明确定义的圆/孔。然后,我可以使用这些坐标创建一个转换矩阵(单应性?),我可以用它来转换图像。
不幸的是,我无法可靠地检测到所有四个圆圈。为了获得更好的圆检测,我尝试了多种不同的预处理图像的方法,但是找不到完美的序列。我的正常操作是:
我无法找到适合的系列过滤器以便可靠地检测四个圆圈。
图片/模板匹配
同样,我想检测对象中的四个圆/孔,所以我尝试了一种图像/模板匹配技术,但收效甚微。我创建了一个模板(其中一个圆圈的小图像)并运行Exhaustive Template Matching算法,没有太大成功。通常它只检测其中一个洞,通常是模板的创建者!
总结
我觉得我正在使用正确的技术解决这个问题,我只是不确定我哪里出错了,或者我应该进一步集中注意力。
非常感谢任何帮助或指示。
答案 0 :(得分:1)
如果您添加了转换的示例,那么您尝试对其进行不变 - 我们可能会更具体。但通常情况下,您可以尝试使用HOG来检测此结构,因为它具有相当丰富的渐变效果。
HOG主要用于检测行人,此外它还可用于检测不同的徽标。
我不确定HOG对旋转的不变性,但在不同的光照和中度透视失真下它非常强大。如果旋转不变性很重要,您可以尝试在旋转版本的对象上训练分类器,尽管您的探测器可能会变得不那么具有辨别力。
在粗略地检测到结构的比例和位置之后 - 您可以通过检测其边界的椭圆来尝试对其进行细化。在此之后,您将对洞进行粗略估计,您可以使用此区域中最大normalized cross correlation之类的内容进一步细化。
答案 1 :(得分:1)
我知道它已经过了一段时间,但只是一个简短的潜在解决方案:
我只会在原始图像上生成一个点网格(例如,16x16),然后使用Lucas-Kanade(或其他一些)特征检测器在第二个图像上找到这些点。当然,您可能无法找到所有点,但您可以排序并选择最佳相关性。让我们说最好的四个?然后,您可以轻松计算转换矩阵。
此外,如果你没有在你的第一个网格上获得良好的相关性,那么你可以制作其他网格(移位等),直到找到好的匹配。
希望能帮助任何人。