用插入的板识别孔
recognize holes with inserted plate
我有很多坦克的照片。每个坦克都有孔,应该插入金属板。
我需要找到所有没有板的孔。
我尝试通过 HoughCircles 搜索圈子,使用训练 haar 分类器,但没有得到可接受的结果。
孔很小(大约 30x30 像素),照明不是永久性的。
如有任何想法,我将不胜感激。
谢谢!
如果是闪电问题,您可以尝试进行以下操作:
(结果取决于这些阴影的问题程度)
1) 最大化对比度(描述得很好here)
2) Canny 边缘检测器。调整参数以正确检测边缘,通过检测器处理图像并对输出进行操作(检测圆圈、制作 ROI、检测其中的线)。
3) 如果可能的话,"hardware" 解决方案会产生很大的不同 - 尝试通过为相机添加一些光线来平衡光线条件。我可以想象,这是最难的部分,但不幸的是,不是所有的事情都可以用软件解决
您可能需要合并这些步骤,以获得可靠的结果。
顺便说一句:haar 分类器不是最好的解决方案,但它也可以工作。这取决于你提供了多少样本,也取决于光照条件,如上所述
我会尝试用不同的步骤来做到这一点:
- 对整个图像进行霍夫圆检测,以便仅检测作为坦克边界的这个亮圆。它会给你感兴趣的区域。
- 霍夫圆只进入ROI,在gradient/edges图像上才能检测出所有的小孔。你已经知道漏洞是什么dimensions/radii,所以你可以过滤结果。
- 对于检测到的每个小孔,进行边缘检测以检查板是否存在。
能否分享原图(没有红色标示)?我可能会找时间做个测试。
最好把问题分成两部分:
1.感兴趣区域检测。
这部分可以通过使用图像处理技术来完成。
一种。 rgb 到灰度转换。
b.白色圆圈应该很清楚。它可以被任何形状检测器检测到。
- 下一步是查找是否存在任何漏洞。
一种。根据颜色,您可以检测到您想要测试的这些圆圈。
b.我建议使用 3 个不同的功能。 HOG、GM 和 SSIM。
根据我的经验,我认为这些功能会带来好的结果。
您可以使用视觉词袋或稀疏编码来组合每个圆圈的特征。
C。使用 viola jones dclassifier。
这是一个可以使用多个特征的 adaboost 分类器。
非常感谢您的所有建议!
结果我做出了复杂的决定:
- haar 分类器发现所有漏洞;
- 接下来,我使用HoughCircles,抛出错误的洞;
- 我将每个孔转换为二进制格式并计算中心周围的白色和黑色像素。
它很适合我的目的。
我有很多坦克的照片。每个坦克都有孔,应该插入金属板。
我需要找到所有没有板的孔。
我尝试通过 HoughCircles 搜索圈子,使用训练 haar 分类器,但没有得到可接受的结果。
孔很小(大约 30x30 像素),照明不是永久性的。
如有任何想法,我将不胜感激。
谢谢!
如果是闪电问题,您可以尝试进行以下操作: (结果取决于这些阴影的问题程度)
1) 最大化对比度(描述得很好here)
2) Canny 边缘检测器。调整参数以正确检测边缘,通过检测器处理图像并对输出进行操作(检测圆圈、制作 ROI、检测其中的线)。
3) 如果可能的话,"hardware" 解决方案会产生很大的不同 - 尝试通过为相机添加一些光线来平衡光线条件。我可以想象,这是最难的部分,但不幸的是,不是所有的事情都可以用软件解决
您可能需要合并这些步骤,以获得可靠的结果。
顺便说一句:haar 分类器不是最好的解决方案,但它也可以工作。这取决于你提供了多少样本,也取决于光照条件,如上所述
我会尝试用不同的步骤来做到这一点:
- 对整个图像进行霍夫圆检测,以便仅检测作为坦克边界的这个亮圆。它会给你感兴趣的区域。
- 霍夫圆只进入ROI,在gradient/edges图像上才能检测出所有的小孔。你已经知道漏洞是什么dimensions/radii,所以你可以过滤结果。
- 对于检测到的每个小孔,进行边缘检测以检查板是否存在。
能否分享原图(没有红色标示)?我可能会找时间做个测试。
最好把问题分成两部分: 1.感兴趣区域检测。 这部分可以通过使用图像处理技术来完成。 一种。 rgb 到灰度转换。 b.白色圆圈应该很清楚。它可以被任何形状检测器检测到。
- 下一步是查找是否存在任何漏洞。 一种。根据颜色,您可以检测到您想要测试的这些圆圈。 b.我建议使用 3 个不同的功能。 HOG、GM 和 SSIM。 根据我的经验,我认为这些功能会带来好的结果。 您可以使用视觉词袋或稀疏编码来组合每个圆圈的特征。 C。使用 viola jones dclassifier。 这是一个可以使用多个特征的 adaboost 分类器。
非常感谢您的所有建议! 结果我做出了复杂的决定:
- haar 分类器发现所有漏洞;
- 接下来,我使用HoughCircles,抛出错误的洞;
- 我将每个孔转换为二进制格式并计算中心周围的白色和黑色像素。
它很适合我的目的。