Gabor过滤器可以用于检测汽车凹痕吗?


16

我正在研究用于检测汽车凹痕的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?


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

你在问什么?
Andrey Rubshtein 2012年

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

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

Answers:


21

这是一个极其困难的问题。我是从事此工作的团队的一员,多年来,我已经开发并支持了其他此类应用程序很长时间,我可以说凹痕检测是一个特别棘手的问题,并且比起初看起来要难得多。

在实验室条件下或在已知图像上运行算法是一回事;要开发一种对“自然”图像(例如在停车场看到的汽车)准确而可靠的系统,可能需要团队工作数年。除了创建算法的核心问题之外,还有许多其他工程上的困难。

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

要考虑的问题包括:

  1. 照明(比最初看起来要困难得多)
  2. 组装好的外板的预期3D表面(例如,来自CAD数据)
  3. 凹痕特征的标准:面积,深度,轮廓等。
  4. 误报和误报的条件
  5. 可以将凹痕数据和/或凹痕保存到汽车模型上(或蝶形布局)
  6. 测量“真实”凹痕特征的方法和装置:深度,面积等
  7. 来自车辆随机抽样的广泛的凹痕数据库
  8. 处理不同的油漆颜色和面漆

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

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

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

尽管在光带的边缘看时,进出点具有特征外观,但是给定凹痕的可检测性取决于凹痕的大小和深度相对于光带的宽度。汽车的曲率很复杂,因此很难为相机提供一致的光带。当光带在车身上移动时,光带的曲率甚至强度都会变化。

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

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

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

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

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

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

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

假阴性:存在凹痕,但未检测到假阳性:被识别为凹痕的无瑕疵区域

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

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

6.确定凹痕的“真实”形状凹痕 很难测量。具有相同表面积和深度的尖锐凹痕和圆形凹痕会显得不同。通过机械手段测量凹痕会导致主观判断,并且当您可能不得不测量数十个甚至更多时,使用深度计,标尺等也非常繁琐。

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

就是说,如果检查系统对已知缺陷的样本运行得足够好,那么用户可能最终会信任它,并且系统本身就成为定义缺陷严重性的标准。

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

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

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

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


是否没有我可以压痕的图像数据库?和绝妙的答案,我从来不知道那么多...
vini 2012年

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

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

嘿,重新思考,现在只是在制定解决方案,无论如何都需要获得一些汽车凹痕和划痕等图片,这将对我的研究有所帮助,请帮忙!
vini 2012年

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

9

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

使用Gabor滤波器的简单缺陷检测方法的大致轮廓如下:

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

不在此列表中但通常非常重要的一点是图像获取。照亮物体和放置相机的方式对检测最终图像中的缺陷有多容易。您的样本图像似乎使用了当时恰好存在的环境照明-这很可能不是最佳的。

正如我所说,这只是一个非常粗糙的轮廓。自动检查是一个广泛的领域,需要很多专业知识才能做好。


0

不,不能。图像处理不是魔术,您需要提供更多信息。如果不知道汽车的外观,应该如何将计算机与预期的车身造型区分开?


1
我知道它不是魔术,我从google ..那得到的图像也就是为什么我想要一些有关如何解决此问题的信息..仅使用此过滤器是不够的……
vini

我想对此表示赞成,但这不是一个真正的答案。应该是一个评论。
endolith
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.