我正在研究用于检测汽车凹痕的Gabor过滤器。我知道Gabor过滤器已广泛用于模式识别,指纹识别等。

我有图像。



使用一些代码从MathWorks File Exchange网站获得了以下输出。



这在某种程度上不是人们期望的输出。这不是一个好结果。

我的脚本如下:

I = imread('dent.jpg');
I = rgb2gray(I);
[G, gabout] = gaborfilter1(I, 2, 4, 16, pi/2);
figure
imshow(uint8(gabout));


编辑:对下面的图像应用不同的代码:



不同方向的gabor滤波器后的输出图像:



我如何隔离此DENT被正确检测到的是什么?

评论

我= imread('dent.jpg'); I = rgb2gray(I); [G,gabout] = gaborfilter1(I,2,4,16,pi / 2);图,imshow(uint8(gabout));使用了以下参数

你在问什么?

Gabor滤波器的作用是什么,使您认为它非常适合此问题?

通过图像处理可以实现,样式总是均匀的,凹痕不均匀,边缘不均匀的凹痕几乎没有机会。它可能是凹痕边缘的图案分析。

#1 楼

这是一个极其困难的问题。我是从事此工作的团队的一员,多年来,我已经开发并支持了其他此类应用程序很长时间,我可以说凹痕检测是一个特别棘手的问题,比起初看起来要难得多。 >
让算法在实验室条件下或在已知图像上工作是一回事;要开发一种对“自然”图像(例如在停车场看到的汽车)准确而可靠的系统,可能需要团队工作数年。除了创建算法的核心问题之外,还有许多其他工程上的困难。

您测试的示例代码并不是一个糟糕的开始。如果您可以找到凹痕右侧较暗的边缘,则可以将汽车的边缘图和顶角与以相同角度和相同照明成像的已知优质汽车的边缘图进行比较。控制照明会有所帮助。

要考虑的问题包括:


照明(比最初看起来要困难得多)
组装好的外板的预期3D表面(例如,来自CAD数据)
表征凹痕的标准:面积,深度,轮廓等。
假阴性和假阳性的标准
节省凹痕的手段数据和/或凹痕映射到汽车模型(或蝴蝶形布局)上
测量“真实”凹痕特征的方法和设备:深度,面积等。
从随机抽样中获得的大量凹痕数据库车辆
使用不同的油漆颜色和饰面进行处理

1。照明
正如马丁B在上面正确指出的那样,正确的照明对于此问题至关重要。即使具有良好的结构化照明,您也将很难检测特征线附近的小凹痕,面板之间的间隙,手柄等。

Wikipedia有关结构化照明的条目有点薄,但这是了解原理的开始:
http://en.wikipedia.org/wiki/Structured_light

浅色条纹可用于检测凹痕(凹痕)和凹痕(丘疹)。要看到钟声,您需要在光源和汽车之间进行相对运动。灯光+摄像头相对于汽车一起移动,或者汽车经过灯光+摄像头。

虽然在光带边缘看到的入场和出场都有特征的外观,给定凹痕的可检测性取决于凹痕的大小和深度相对于光带的宽度。汽车的曲率很复杂,因此很难为相机提供一致的光条纹。随着光带在车身上的移动,光带的曲率甚至强度都会变化。

一种解决方案是确保照相机和光带始终相对于被检表面部分的法线(3D垂直线)保持一致的角度。在实践中,将需要机器人来相对于身体表面准确地移动相机。准确地移动机器人需要了解车身的姿势(位置和3D角度),这本身就是一个讨厌的问题。

对于汽车应用中的任何检查,您都需要完全控制照明。这不仅意味着将您选择的灯放置在已知的位置,而且还会阻挡所有其他灯。这将意味着一个相当大的外壳。由于汽车的面板向外弯曲(几乎像一个球形表面),因此它们将反射周围所有光源的光。为了大大简化此问题,您可以在用黑丝绒包裹的机壳内使用高频荧光棒。通常,对于检查应用程序,必须采取极端做法。

2。 3D表面
汽车的外表面由复杂的曲线组成。为了知道可疑点是否是叮叮当响,您必须将该点与汽车的已知特征进行比较。这意味着您需要将摄像机的2D图像与以特定角度观看的3D模型进行匹配。这不是一个很快就能解决的问题,要做好一些公司专门研究的困难。

3。缺陷表征
对于学术研究或实验室测试,开发一种能够证明有希望或对现有方法有所改进的算法可能就足够了。为了在实际的商业或工业用途中正确解决此问题,您需要对要检测的尺寸凹痕有一个高度详细的规范。

解决此问题时,没有合理的行业或国家标准的凹痕(3D变形)。也就是说,尚无商定的技术来通过凹痕的面积,深度和形状来表征凹痕。我们只是得到了一些样本,这些样本被行业专家认为是不好的,不是太糟糕,并且严重性很小。定义ding的“深度”也很棘手,因为ding是(通常)向外弯曲的3D表面中的3D压痕。

较大的叮叮声较容易检测,但也较不常见。经验丰富的汽车工人可以快速扫描车身-比未经培训的观察员要快得多-并可以快速找到小手指大小的浅色斑点。为了证明自动化系统的成本合理,您可能必须匹配经验丰富的观察员的能力。

4。检测错误的标准
您应该尽早为可接受的假阴性和假阳性设置标准。即使您只是作为研发项目研究此问题而又不打算开发产品,也请尝试定义检测标准。

假阴性:存在凹痕,但未被发现
误报:标识为凹痕的无瑕疵区域

通常需要权衡取舍:提高灵敏度,您会发现更多的叮叮声(减少误报),但您还会发现更多不存在的叮叮声(增加误报)。让自己确信算法的性能要比实际的性能好是很容易的:我们的自然偏见是注意到算法检测到的缺陷,并解释掉未检测到的缺陷。进行盲目自动化测试。如果可能,请其他人测量叮叮声并指定严重性,以使您不知道真正的测量值是什么。

5。保存数据和/或对其进行映射
凹痕的特征在于其严重程度及其在车身上的位置。要知道其位置,您必须解决上面提到的2D到3D对应问题。

6。确定凹痕的“真实”形状
凹痕很难测量。具有相同表面积和深度的尖锐凹痕和圆形凹痕会显得不同。用机械方法测量凹痕会导致主观判断,而且如果您可能不得不测量数十个甚至更多,那么使用深度计,直尺等也非常繁琐。

这是其中之一任何制造缺陷检测项目都需要解决的较艰巨的工程问题:如何测量缺陷并对其进行表征?如果有这样做的标准,该标准与检查系统所测量的内容是否相关性好?如果检查系统找不到“应该”找到的叮当声,应该归咎于谁?

这就是说,如果检查系统能够很好地处理已知缺陷的样本,那么用户最终可能信任它,系统本身就成为定义缺陷严重性的标准。​​

7。广泛的凹痕数据库
理想情况下,您将在困难制造商的车辆上的不同位置上获得数百张甚至几千张不同严重程度凹痕的样本图像。如果您有兴趣在组装过程中查找由事故引起的凹痕,那么收集此类数据可能需要很长时间。在组装过程中产生的凹痕并不常见。

如果您只想查找由事故或环境破坏引起的凹痕,那就不一样了。凹痕的类型将与自动装配厂内部意外碰撞引起的凹痕类型不同。

8。处理不同颜色的油漆
确实,边缘检测器在检测对比度不同的图像中的边缘方面具有相当强的鲁棒性,但是看到“变化的对比度水平”对于不同的汽车油漆真正意味着什么可能令人沮丧并完成。在一辆有光泽的黑色汽车上看起来很不错的浅色条纹在带有旧漆的白色汽车上很难被检测到。

大多数相机的动态范围相对有限,因此要在黑色发亮的表面和白色暗淡的表面上都获得良好的对比度非常困难。您很有可能必须自动控制照明强度。那也很难。

评论


$ \ begingroup $
我没有凹痕图像数据库吗?我从未如此了解的出色答案...
$ \ endgroup $
– Vini
2012年1月15日下午5:04

$ \ begingroup $
我不确定是否有这样的数据库,因为很多信息都是专有的。汽车制造商不一定要向世界传播他们在制造中看到的缺陷的大小和类型。就是说,如果没有强大的测量系统,统计数据可能基于工厂中的人工目测,而目视检查可能基于抽样,也可能基于汽车经销商的损坏报告。在到达经销商之前被压低的汽车可能无法出售,这意味着金钱损失和资源浪费。
$ \ endgroup $
–重新思考
2012年1月15日15:31

$ \ begingroup $
凹痕维修店使用条纹,尽管其设置比自动检查更适合人工检查:exceldent.wordpress.com/tag/door-ding-repair ncfixadent.com/services/paintless-dent-repair-pdr对于自动化系统,您想阻挡所有多余的光线,包括来自照明外壳本身的反射。另外,必须设置相机焦点,以便在使光源保持焦点(使边缘清晰)和使车辆表面保持焦点以查看车辆特征之间取得平衡。
$ \ endgroup $
–重新思考
2012年1月15日下午16:19

$ \ begingroup $
嘿,现在重新思考只是在制定解决方案,无论如何都需要获得一些汽车凹痕和划痕等图片,这将对我的研究有所帮助,请帮忙!
$ \ endgroup $
– Vini
2012年1月19日13:21

$ \ begingroup $
收集凹痕和划痕的图片可能很困难。这可能需要花些功夫。网上没有很多合适的图片。您可以致电汽车维修店,询问是否可以为他们所拥有的车辆拍照;作为回报,您可以在报告中购买该商店。询问朋友和同事您是否可以为他们的汽车拍照-带上手持荧光灯进行照明。 Acamera电话会很好。最好的方法是从垃圾场取下凹痕状且无凹痕的面板。最好一开始就拥有自己的样本,以便您可以调整照明等。
$ \ endgroup $
–重新思考
2012年1月20日14:56

#2 楼

Gabor筛选器只是用于此类缺陷检测任务的几个步骤中的第一步。另外,请注意,您仅使用了特定方向和比例的Gabor滤波器-通常会使用整个范围的方向和比例。 Gabor过滤器可以如下:


在不同的方向和比例上应用Gabor过滤器
应用分类器(在适当的训练数据上进行训练)将每个像素分类为“缺陷”或“无缺陷”
汇总来自相邻像素的检测,以确保每个缺陷仅被检测到一次,并消除虚假检测。

这一点不在此列表中,但通常非常重要是图像采集。照亮物体和放置相机的方式对检测最终图像中的缺陷有多容易。您的样本图像似乎使用了当时恰好存在的环境照明-这很可能不是最佳选择。自动检查是一个广泛的领域,需要很多专业知识才能做好。

#3 楼

不,不能。图像处理不是魔术,您需要提供更多信息。如果不了解汽车的外观,那么计算机应该如何区分凹痕和预期的车身样式?

评论


$ \ begingroup $
我知道它不是魔术,我从google ..那里得到的图像也是如此,这就是为什么我想要一些有关如何解决此问题的信息..仅使用此过滤器是不够的...
$ \ endgroup $
– Vini
2012年1月14日下午5:11

$ \ begingroup $
我想对此表示赞成,但这不是一个真正的答案。应该是一个评论。
$ \ endgroup $
– Endolith
2012年4月19日在21:33