基于图像形态学运算和Hough变换的油箱盖检测
2018-07-21
(河南理工大学 电气工程与自动化学院,焦作 454000)
0 引言
目前全球创新格局如火如荼,一个庞大而崭新的行业——无人系统,已经诞生。这些年,以无人车、无人机、无人商店为代表的无人系统技术得到发展,无人系统行业将成为一个万亿级的大市场[1]。
2017年12月13日,“2017全球无人系统大会暨中国(珠海)国际无人系统博览会”在珠海举行[1]。2017年7月8日,在杭州的街头,阿里巴巴的第一家无人超市开业[2]。2017年11月07日,在“武汉交警政务服务迈入AI 时代”发布会上,腾讯与武汉市公安局交通管理局将携手打造全国第一个无人警局,在不久的将来就能投入使用[3]。2016年3月10日,中石油已经和阿里巴巴签署战略合作协议,未来将在全国开展10万家无人加油站,阿里巴巴将会分两个阶段建设完善智慧加油站,1.0版本将在2017年10月开建,主要是基于对传统加油站的改造;2018年将会实现车牌、车主、油品自动识别、离场自动扣款和加油链路全自动化的2.0版本。油箱盖的识别不仅在无人智能加油站中有着较好的应用前景,在未来电动汽车的智能充电系统中也有着潜在应用价值[4,5]。
中国大陆的油箱盖主要有一下特点:
1)一般油箱盖与车体颜色、纹理趋同;
2)常见油箱盖一般是类圆形和类四边形;
3)对于不同车体,油箱盖颜色多种多样。
另外,车体材料及车窗易反光、形成镜面成像,这些特点给油箱盖识别工作带来很大困难。同时,不同天气、照度、角度偏差等因素都会给油箱盖识别工作带来干扰。
数学形态学理论在近些年不断的发展与优化,为图像处理领域研究与应用开辟了新篇章,是现代数字图像处理的重要研究方向[6]。文献[7]将图像形态学应用于红外图像分析,文献[8]将图像形态学与NSCT结合应用于路面裂缝的检测,文献[9]将数学形态学与GG(Gath-Geva)模糊聚类相结合对旋转机械故障进行诊断。文中提出一种基于图像形态学运算、Hough变换的油箱盖识别技术。实验结果表明,文中算法有很强的抗噪性能,能够有效的提高目标识别率。
本文的算法是以OpenCV为平台。OpenCV由Intel开发,用于图像、视频处理的开源库,由C语言函数和C++类构成[10,11]。
1 目标增强算法
1.1 数学形态学运算
数学形态学[12,13]是一种以严格数学理论为基础的用于非线性图像处理和分析的理论[14]。其主要思想是利用一个结构元素(SE,Structure Element)来探测图像,通过对图像的形态变换达到处理图像的目的。本质则是利用图像集合与结构元素间的相互作用以便获得有价值的图像信息,结构元素不同提取的图像信息就不同[15]。最初的数学形态学理论仅用在二值图像,主要用于研究图像的几何结构,后来由Sternberg、Nakagawa和Rosenfeld等人推广到灰度图像领域。利用数学形态学方法进行图像处理具有简化图像数据、保持图像的基本形态特征、除去不相干结构、易于硬件实现等优点[16]。
数学形态学算子的性能通常以几何方式进行描述,而几何描述的特点比较符合视觉信息的处理和分析,其基本思想如图1所示。
图1 图像形态学基本思想
定义1:由g对f进行灰度膨胀,记为f⊕g,如下式:
其中g和f分别为定义在域D[g]和D[f]上的两个信号。
上述定义为灰度膨胀提供了一种相当重要的几何描述,即灰度膨胀可以通过将结构元素的中心平移到与信号重合,接着计算信号上的所以点与结构元素相对应点和的最大值得到。可由简单的一维函数说明式(2)的表示法和运算原理。对单变量函数来说,膨胀的定义可以简化为:
可以利用结构元素的反射,计算使信号限制在结构元素的定义域内时,上推结构元素并超过信号时的最小值来说明灰度图像膨胀。如图2所示,f为信号,g为结构元素。
图2 膨胀示意图
定义2:由g对f进行灰度腐蚀,记为fΘg,如式(3)所示:
假如所有结构元素的值为正,那么输出图像相对于输入图像更暗,若输入图像中亮的细节的面积比结构元素小,那么亮的细节就被削弱。削弱的程度决定于亮细节周围的灰度值和结构元素的形状和幅度。
可由简单的一维函数说明式(3)的表示法和运算原理,腐蚀的定义如下式:
依几何角度看,为了获得信号被结构元素在点x腐蚀的效果,我们需要在空间移动结构元素,让其原点与点x重合。接着向上推结构元素,保持其仍处在信号下方所能达到的最大值,就是该点的腐蚀结果。因为结构元素一定要在信号下方,所以空间移动结构元素的定义域一定是信号定义域的子集。否则在这一点的腐蚀就没有实际意义。
图3 腐蚀示意图
由图3可知,其效果可看作半圆形结构元素在信号的下方“移动”时,其圆心画出的轨迹。不过这里有一个限制条件,那就是结构元素需要在信号曲线的下面平移。由图不难看出,半圆形结构元素在信号的下方对信号产生滤波作用,其与圆盘从内部对二值图像滤波的效果是一致的。
膨胀、腐蚀是形态学最基本的运算,对其进行组合可得到开运算、闭运算,以及更高级的图像形态学梯度算子。
定义3:由结构元素g对图像f进行开运算,记为f◦g,如下式:
定义4:由结构元素g对图像f进行闭操作,记为f.g,如下式:
定义5:形态学梯度算子定义如下:
攀西钒钛磁铁矿是自然界赐予攀枝花市的独有资源,其中钛的储量占全国钛总储量的95%左右。然而,截至上世纪90年代,从钒钛磁铁矿中回收钛铁矿的工艺仅有重选-电选或重选-磁选工艺流程,且只能回收大于0.074 mm的钛铁矿,回收率极低,仅仅10%左右,钛铁矿资源浪费十分严重,攀枝花全市钛精矿的年产量仅仅5万吨左右。
其中B为结构元素。
图4 预处理
1.2 高斯滤波
高斯滤波的实质是根据根据高斯函数,即式:
为领域内的像素分配权重,权重的大小与该像素点和目标像素点之间的距离成正态分布。领域内各像素值与由高斯函数计算出的对应权重值的乘积之和就是新的像素值。
2 目标识别算法
Hough变换[17]具有较强的抗噪性能,不仅可以检测直线,还可以检测矩形、圆、椭圆等几何形状。这里以检测圆为例。其基本思想是将图像的空间域变换到参数空间,用大多数边界点满足的某种参数形式来描述图像中的边缘曲线。通过累加投票求得峰值对应点即为有效图元信息。该方法具有可靠性高,对噪声、变形、部分区域残缺、边缘不连续适应性强等特点。
基本的Hough变换使用的圆的一般方程为:
式中(a,b)为圆心,r为半径。把X-Y平面上的圆转换到a-b-r参数空间,过图像空间中任一点画圆,在参数空间中就有一个三维锥面与之对应。图像空间中同一圆上的点与参数空间中相应三维锥面相交的一点对应。这一点对应圆的参数可以由积累投票获得,如图5所示。
图5 Hough变换示意图
随机Hough变换[18,19]的主要过程为:
1)对基元参数的累加器链表进行初始化;
3)统计求和基元参数的累加器链表;
4)如果累加器链表的最大值和设定阈值相同,就检测该基元的图像特征点是否充足。如果图像特征点充足,那么输出这个基元,同时消除相应特征点,循环第一步。
图6 目标识别
图6(a)为使用高斯滤波处理后的图像,可以消除镜面成像等微弱干扰;图6(b)为运用Hough变换进行目标识别的图像,可以看到油箱盖被准确识别。
综合使用图像形态学运算和Hough变换,本文提出了一种基于图像形态学运算边缘提取和Hough变换方法检测油箱盖的新算法。该算法利用图像形态学运算有效捕捉图像中的边缘细节信息,利用高斯滤波消除镜面成像等微弱干扰,利用Hough变换进行油箱盖识别。
3 实验及结果分析
本文实验环境为Intel(R) Core(TM) i5-2430M CPU@ 2.40GHz,6.00GB内存,Linux嵌入式系统平台,采用OpenCV2.4.9编程。原始图像来自于小米5手机在校园内的实拍图片,尺寸为4608×3456像素,变换后尺寸500×366像素。这里给出有代表性的油箱盖检测图像。
图7 实验验证
3.1 实验过程
本文通过实验对所提出的基于图像形态学运算和Hough变换的油箱盖检测算法进行验证,步骤如下:
Step1对输入的图像进行尺度变换,得到嵌入式环境下较适合的尺寸。
Step2对初步变换后的图像进行灰度化,并且保持为三通道图像。
Step3利用图像形态学梯度算子对图像边缘细节信息进行提取。
Step4根据式(8)消除图像中镜面成像等微弱干扰。
Step5使用Hough变换检测油箱盖。
Step6对实验结果进行统计分析。
3.2 结果分析
表1 实验结果
如表1所示,传统的Hough变换方法识别率较低。这是由于不同天气、照度、偏角、镜面成像等复杂情况造成的。本文算法首先运用图像形态学梯度算子对目标边缘进行提取,再利用高斯滤波消除镜面成像等微弱干扰,较好的提高了目标识别率。
4 结论
针对在实际应用中,传统Hough变换识别率较低的问题,本文提出一种基于形态学梯度算子和Hough变换的油箱盖检测算法。实验结果表明,本算法对不同天气、照度、偏角、镜面成像等干扰具有较好抑制作用,使目标识别率得到提高。