【问题标题】:recognize holes with inserted plate用插板识别孔
【发布时间】:2016-07-15 18:43:57
【问题描述】:

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

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

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

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

我会很感激任何想法。

谢谢!

【问题讨论】:

  • 你得到了什么结果?由于这些板的边缘与表面的其余部分形成鲜明对比,如果您能够检测到圆圈,那么您可以在每个圆圈周围制作一个 ROI,并使用霍夫线检测来找出是否存在是否穿过圆的区域。
  • 谢谢!我需要计算所有空洞。在我当前的版本中,我使用了 haar 分类器(它在带有板的孔上进行了训练,但不知何故它也发现了空孔),在这个孔中我尝试使用线条检测,它有时有效,但有些照片在坦克和线条上有阴影对比不够。

标签: opencv computer-vision detection image-recognition haar-classifier


【解决方案1】:

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

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

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

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

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

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

【讨论】:

  • 谢谢你,j.kaspar!对于 haar 分类器,我准备了大约 600 个阳性样本(example),但它也发现了空洞。也许我使用了不正确的负样本——我收集了很多工厂背景和空洞的坦克 (example)。
【解决方案2】:

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

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

这对我的目的很有用。

【讨论】:

    【解决方案3】:

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

    1. 对整个图像进行霍夫圆检测,以便仅检测作为坦克边界的这个明亮的圆圈。它会为您提供感兴趣的区域。
    2. 霍夫圆仅进入 ROI,在梯度/边缘图像上,以便检测所有小孔。您已经知道孔的尺寸/半径是多少,因此您可以过滤结果。
    3. 对于检测到的每个小孔,进行边缘检测以检查板是否存在。

    你能分享原始图像(没有红色指示)吗?我可能会找时间做一个测试。

    【讨论】:

    • FiReTiTi, original images , 1_09-03-16_9-34-16.jpg 有一个空洞。我目前的步骤:我找到了所有孔,每个孔都转换为二进制格式并计算中心周围的白点。这种方法效果很好,但是一些顶部的孔有透视图并且板不在中心。谢谢!
    • 并非每张图像上都出现白色圆​​圈,这使得 ROI 难以确定。我必须修改我所说的。
    【解决方案4】:

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

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

    【讨论】:

      猜你喜欢
      • 2017-11-23
      • 1970-01-01
      • 1970-01-01
      • 2018-11-13
      • 1970-01-01
      • 2013-04-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多