用插入的板识别孔

recognize holes with inserted plate

我有很多坦克的照片。每个坦克都有孔,应该插入金属板。

我需要找到所有没有板的孔。

我尝试通过 HoughCircles 搜索圈子,使用训练 haar 分类器,但没有得到可接受的结果。

孔很小(大约 30x30 像素),照明不是永久性的。

如有任何想法,我将不胜感激。

谢谢!

如果是闪电问题,您可以尝试进行以下操作: (结果取决于这些阴影的问题程度)

1) 最大化对比度(描述得很好here

2) Canny 边缘检测器。调整参数以正确检测边缘,通过检测器处理图像并对输出进行操作(检测圆圈、制作 ROI、检测其中的线)。

3) 如果可能的话,"hardware" 解决方案会产生很大的不同 - 尝试通过为相机添加一些光线来平衡光线条件。我可以想象,这是最难的部分,但不幸的是,不是所有的事情都可以用软件解决

您可能需要合并这些步骤,以获得可靠的结果。

顺便说一句:haar 分类器不是最好的解决方案,但它也可以工作。这取决于你提供了多少样本,也取决于光照条件,如上所述

我会尝试用不同的步骤来做到这一点:

  1. 对整个图像进行霍夫圆检测,以便仅检测作为坦克边界的这个亮圆。它会给你感兴趣的区域。
  2. 霍夫圆只进入ROI,在gradient/edges图像上才能检测出所有的小孔。你已经知道漏洞是什么dimensions/radii,所以你可以过滤结果。
  3. 对于检测到的每个小孔,进行边缘检测以检查板是否存在。

能否分享原图(没有红色标示)?我可能会找时间做个测试。

最好把问题分成两部分: 1.感兴趣区域检测。 这部分可以通过使用图像处理技术来完成。 一种。 rgb 到灰度转换。 b.白色圆圈应该很清楚。它可以被任何形状检测器检测到。

  1. 下一步是查找是否存在任何漏洞。 一种。根据颜色,您可以检测到您想要测试的这些圆圈。 b.我建议使用 3 个不同的功能。 HOG、GM 和 SSIM。 根据我的经验,我认为这些功能会带来好的结果。 您可以使用视觉词袋或稀疏编码来组合每个圆圈的特征。 C。使用 viola jones dclassifier。 这是一个可以使用多个特征的 adaboost 分类器。

非常感谢您的所有建议! 结果我做出了复杂的决定:

  1. haar 分类器发现所有漏洞;
  2. 接下来,我使用HoughCircles,抛出错误的洞;
  3. 我将每个孔转换为二进制格式并计算中心周围的白色和黑色像素。

它很适合我的目的。