码迷,mamicode.com
首页 > 编程语言 > 详细

TFDS中检测算法的应用

时间:2016-07-13 16:11:26      阅读:188      评论:0      收藏:0      [点我收藏+]

标签:

引言

随着我国货运量的快速发展,货车重载、高速和数量增多,列检作业工作量越来越大,TFDS 货车运行故障动态图像检测系统的开发已经迫在眉睫并得到了广泛的重视。在 TFDS 系统中,有多类故障的识别方法就是针对边缘图中是否存在圆轮廓进行的。例如对下心盘螺栓类故障检测、夹板螺栓类故障检测、关门车手把检测等等。能否快速、有效的检测出圆边缘是检测、识别 TFDS 项目中该类型故障的关键。而在日常生活和应用中,在不同的视角下,都存在圆或类圆物体轮廓。快速而准确的圆检测一直是计算机视觉、图像处理领域中一个常见而经典的问题,有着广泛的应用背景[1]。本文则针对 TFDS 项目中复杂背景下螺栓类故障(下心盘螺栓和夹板螺栓),在解决该类故障定位、提取边缘同时,以目前常用的几种理论圆检测方法进行分析、比较,获得一种40 改进的适合实际螺栓类故障的圆检测方法。成功解决了实际情况中复杂背景下螺栓类故障的检测、识别问题,并且改进方法具有一定普遍性,可适用于其他实际问题。

故障粗定位及边缘提取

TFDS 项目螺栓类故障中,由于螺栓位置不固定,噪声干扰大,灰度不均匀、遮挡等问题,容易造成提取的边缘缺损。如何在缺损的边缘图中尽可能准确的检测到圆的并定位,则是该类故障判定的关键。直接对整个故障图片进行预处理,提取边缘,对圆检测是不科学的。首先整幅图中有许多没用的信息,没必要进行全部边缘提取,其次对整幅边缘图进行圆检测,会大大的增加时间开销。在工程实践中,效率是非常重要的一个指标。在该项目中,要求 2-3 分钟内完成整列车的所有故障识别检测,提高效率是非常有必要的。本文采用的方法是粗定位—二值化——边缘提取。有效的减少了无用边缘信息的同时,强化了有用边缘,增加了效率。

故障粗定位

粗定位,顾名思义。即是对故障图片进行大致的定位,将感兴趣区域最大程度的包括在内的同时最少的保留其他无关信息。

本文采取的方法是,根据故障图片的结构特性,螺栓的位置存在于竖直固定支架的左侧55 或者右侧,通过检测竖直固定支架的位置,推断螺栓大致范围。粗定位螺栓后如图 1(b),再对粗定位图片进行预处理、提取边缘。但从图 1(c)中可以看到,即使已经完成了粗定位的工作,利用 canny 算子提取的边缘图中仍然存在丰富的边缘信息,不利于圆检测。

技术分享

1 原始粗定位过程图 (a) 灰度原图 (b)粗定位图 (c)粗定位边缘图

提取二值化图边缘

为了解决边缘信息过于丰富的问题。本文采用了预处理—二值化—边缘提取的方法。假设螺栓没有丢失,那么螺栓的位置必然会因为螺栓遮挡存在与螺栓相似的阴影,与周边灰度65 形成差距,如图 1(b)下心盘螺栓所示;反之,若螺栓丢失了,则会形成黑色的空洞,与周边灰度有较大反差,如图 1(a)中夹板螺栓所示。所以利用灰度值的不同,首先预处理,将反差增强,再进行二值化,得到效果较好的二值化图。二值化极大的去除了多余的信息,再利用Canny 算子提取边缘,得到有效的边缘图。比较图 1(c)和图 2(c),可以发现,通过该方法,得到的边缘信息更加干净、有效。

技术分享
2 改进粗定位过程图 (a) 粗定位灰度原图 (b)预处理后粗定位图 (c)二值后边缘图

圆检测算法综述与实践

得到效果较好的边缘图为后续圆检测算法的实现打下了基础。本文通过对目前几种常用的检测算进行实现、分析与比较,改进得到了一种适合在 TFDS 项目中复杂背景下圆检测的方法。

目前最简单、常用的圆检测算法是 Hough 变换。Hough 变换是从图像中识别几何形状80 的基本方法之一。能够有效的提取直线、椭圆、圆等任意形状的边缘2。其优点有可靠性高、抗噪性好,对变形、残缺区域等有较好的适应性3。但是 Hough 变换也存在明显的缺陷,比如对时间、空间的消耗过大,由于图像变形、错误等造成的峰值不唯一等等。所以目前更多使用的圆检测方法是在 Hough 变换的基础上,利用圆的性质、梯度等信息来改进的算法4

随机 Hough 变换算法

该类算法的主要思想是在所有边缘图的点集中 T,随机挑选出 3 个点,根据不在一条直线上的三个点确定一个圆的性质,从而确定一个初始圆;再以该初始圆圆心为标准,判断每个点到该圆心的距离与初始圆半径之间的绝对值;如果绝对值小于定值则认为属于圆的边缘,从 T 放入圆的集合 R 中,否则算失败,在失败次数小于设定值时,如果得到的 R 集合点数大于初始圆的周长 c 乘以一定比率值 Tr,则认为该圆存在,否则相反。重复数次直到 T全部取完或者失败次数大于 f 为止5

本文对该方法进行了实验,发现该算法不适合用于 TFDS 螺栓类项目的圆检测中。原因有以下几点:

  • 该算法使用较多设定值。例如失败次数值 f,圆周比率值 Tr 等。而设定值均为认为的经验判断,主观性太强,若值设定不合适,则会导致检测结果不正确。本文采用图 进行实验,该图像为 720*450 的图片,有 116 个白色像素点。半径为 42 个像素点左右。当正确判断到圆心位置,即 R=116 时,周长 为 263.76,此时 R/c0.44。而在正常情况下,Tr 至少应该在 0.5 以上,该圆才可能存在,很显然这种情况不符合设定值 Tr,从而无法检测到该圆。如果将 Tr 值设低,则很可能在边缘较多时,误检测到多个圆,例如图 4(b)(c)中黄色圆。

技术分享

3 实验图

  • 由于算法利用随机取点对圆进行初始假设,则每次取点位置的不同,会形成不同的圆,结果就是同一幅图片,每次运行后的结果可能不同,结果不固定。例如输入图4(a),可以得到图 4(b)(c)等。

技术分享

4 检测原图及结果图 (a) 测试原图 (b)检测结果 1 (c)检测结果

  • 算法中随机取 3-4 个点,对于点集较小的图片,随机组合范围有限。但如果针对本文中的边缘图,像素点有几千个甚至更多,则随机组合是一个非常庞大的数据。需要在这样的随机组合中在规定失败次数 f 内有效的获得圆,不仅非常耗时,而且成功可能性不大。要想尽可能的全面检测到圆,则 f 必须尽可能的大。本文尝试 f 30000 时,运行时间超过 1min,而且没有得到良好的结果。

综上分析可知,该算法适合数据量小,边缘图中干扰较少的图片,而不适合实际情形下螺栓类故障的圆检测。

基于 Hough 变换的梯度优化算法

梯度作为曲线的一个特性,在圆检测中的应用尤为明显。该算法则是在 Hough 变换的基础上加入了梯度线的有向性和梯度值进行改进。根据圆的特性可知,如果存在圆,那么梯度线必定过圆心。因此圆心上梯度累积值达到

最大。具体方法是,将感兴趣区域分为 N*N 的矩阵块,利用梯度变换公式对边缘图中的每个点求其梯度值与梯度线,对梯度线穿过的每个矩阵块加上其梯度值,求平均梯度值最大的矩阵块;再将此矩阵块替代为感兴趣区域重新划分为 N*N 的矩阵块,循环直至矩阵块足够小,即为圆心位置。原理如图 5 所示,圆心位置为所有梯度线的交点位置6

技术分享

5 原理图

通过试验,该算法能够在一定程度上抗干扰,得到较为准确的检测结果,如图 6(b)所示。并且该算法对同心圆检测有良好的效果,如图 6(d)所示。

技术分享

6 测试原图及结果图 (a)测试图 (b)检测结果图 (c)同心圆测试图 (d)同心圆检测结果图

注:以下图片中红色点均表示检测到的圆心

但是,该算法仅适用与单个圆心、干扰较小的检测。对于 TFDS 螺栓类故障中,存在较大的干扰,例如图 7(b),由于边缘信息较多,干扰较大,无法检测到正确的圆心位置。同时不适用存在多个圆心的情况。例如图 7(d),有多个类圆,该算法只能得到一个圆心。

技术分享

7 螺栓类边缘图及检测结果图 (a)夹板螺栓故障边缘图 (b)夹板螺栓类故障检测结果图(c)下心盘螺栓类故障边缘图 (d)下心盘螺栓类故障检测结果图

基于 TFDS 螺栓类故障检测算法与实践


从上述分析可知,一般的算法理论上适用于干扰较小、同心圆或者仅有一个圆心的边缘图。针对 TFDS 特定环境下的圆检测,本文在基于 Hough 变换的梯度算法上进行了改进。

首先,由于该项目中的圆检测,均为对螺栓的检测,螺栓的形态特征相对比较固定,特别是螺栓大小。反应在边缘图上则是圆的半径范围。在一般的梯度算法中,梯度线都是无限长,而本文中取有限长的梯度线,长度可取螺栓直径长的一定范围内;再对有限长的梯度线穿过的矩阵块累加其梯度值。从而大大的减小了除疑似圆的其他边缘信息造成的干扰。

其次,夹板螺栓类故障为一个圆检测,可以直接判定。对于下心盘螺栓类故障,其各个螺栓位置相对较分散,可以将边缘图按 y 轴分为 4-5 部分,针对每部分进行分别检测。不仅可以将所有疑似圆检测,同时也减少了其他部分对该检测部分的干扰。

最后,将所有疑似圆进行逐个识别。具体识别方法为,首先判断该处是否存在圆,可以通过位置、圆周等方法;若存在则将圆心在二值图中定位,判断以该圆为圆心,螺栓半径长度左右为半径,周边的灰度值是否有强烈反差,如有则为螺栓丢失,反之成立。

通过实验,从图 8(b)(d)中可以看到,改进后的算法能够良好的检测出夹板螺栓和下心盘螺栓的圆心。

技术分享

8 螺栓类边缘图及改进检测结果图 (a)夹板螺栓故障边缘图 (b)夹板螺栓类故障检测结果图(c)下心盘螺栓类故障边缘图 (d)下心盘螺栓类故障检测结果图


结论

通过验证,本文使用基于 TFDS 项目中螺栓类故障的粗定位-边缘提取方法,能够有效的减少干扰,尽可能提取出有用信息,同时使用改进的圆检测算法解决了一般理论算法对螺栓类故障圆检测的不足,较为准确的定位和判断了圆心位置,最后进行进一步丢失分析和判定。整个解决方案完成了对 TFDS 项目中螺栓类故障的检测、识别,并且得到良好效果,漏识率接近于 0,误识率在 5%以下。同时改进的有限长梯度线方法,和边缘图片分割,分部提取的方法,具有较好的普遍性,可以应用于其他圆检测中。

参考文献

[1] 孙亦南,刘伟军,王越超等.一种用于圆检测的改进Hough变换方法.计算机工程与应用[J].2003.20:35-37.185 

[2] 夏磊,蔡超,周成平等.一种用 Hough 变换检测圆的快速算法[J].计算机应用研究. 2007,24(10):197-210.

[3] 王菁菁,范影勒. 基于 Hough 变换的圆检测技术 N].杭州电子科科技大学学报,2005,25(4).

[4] 朱桂英,张瑞林. 基于 Hough 变换的圆检测方法[J].计算机工程与设计,2008,29(6):1462-1464.

[5] Teh-Chuan Chen,Kuo-Liang Chung.An Efficient Randomized Algorithm for Detecting Circles,ComputerVision and Image Understanding[j]. 2001,83:172-191.

[6] Julien Cauchie,Didier Villers Inc.Optimization of an Hough transform algorithm for the search of a center,THEJOURNAL OF THE PATTERN RECOGNITION SOCIETY[J].2008,41:567-574 





TFDS中检测算法的应用

标签:

原文地址:http://blog.csdn.net/songzitea/article/details/51502743

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!