柱面展开在安全套表面缺陷检测中的应用*
2022-01-27王湘明孙建建伞宏力
王湘明, 孙建建, 伞宏力
(沈阳工业大学 信息科学与工程学院, 沈阳 110870)
随着工业技术和市场经济的高速发展,工业自动化的需求逐年增加,尤其是近几年人工智能、机器视觉等技术的飞速发展,更是激起了对自动检测在各种工业应用的热情.基于机器视觉的表面缺陷检测技术已经应用在纺织、金属零件加工、玻璃、农产品等领域[1-4],王湘明等[5]在自动上料机器人视觉系统中实现了电检定位抓取.在基于机器视觉的整个检测过程中,获取原始图像信息尤为重要,清晰完整的画面图像为后面的检测工作奠定了良好的基础.对于一些回转体物体,获取完整图像的方法一般有两种:一种是固定相机,把物体旋转360°进行拍照;另外一种是固定物体,旋转相机一周进行拍照.无论哪种方式图像边缘都会存在信息压缩,针对该问题,本文以模具棒模型为例,对安全套图像边缘存在的信息压缩问题进行了数学建模计算,并对其进行了柱面展开,用以后续检测安全套表面缺陷.
1 信息压缩比计算
柱状物体由于柱体两侧弧度的原因,在拍摄过程中存在两侧边缘部分信息压缩问题,信息压缩比例在圆周方向上是逐渐变化的,不同位置不同视场有着不一样的信息损失比例.在安全套生产行业中,用于生产安全套的模具棒类似于圆柱物体,因此可以对模具棒上的安全套进行拍照,通过视觉处理的方式来检测其表面是否存在可见缺陷,代替低效率的人工检测方式.为了更好地获取原始图像,对圆周方向上的信息压缩比进行了计算.
首先,建立数学模型,如图1所示,假设圆柱体半径为r,周长c、弧长L及弦长AB可以表示为
(1)
现对弧长L取值为0.1 mm(本文选取该值为最小弧长),半径r取值为20.5 mm(某款模具棒的半径值),代入式(1)计算得出弦长lAB为0.099 9 mm,由此可以得出弦长lAB的值近似等于弧长L,因此,在接下来的计算中使用弦长值来代替弧长.
有效投影角度接近180°时的示意图如图2所示,选取边缘部分0.1 mm的圆弧对其投影,求投影之后的长度.由图2可知,三角形ODE相似于三角形EDC,0.1 mm的弧长近似等于弦长CE,根据三角形相关知识可以求得投影长度CD近似为0.000 487 8 mm,通过计算可知原长度曲线投影成直线之后被压缩了约205倍.
当有效投影角度接近120°时,同理选取边缘部分0.1 mm的圆弧,对其向水平轴线方向进行投影,求投影之后的长度,其计算表达式为
图2 有效投影角度示意图Fig.2 Schematic diagram of effective projection angle
(2)
由式(2)计算可得,投影MN长度约为0.050 211 mm,通过把原长度值与投影值MN做比值可知,原长度曲线压缩了大约2倍.
当有效投影角度接近60°时,求投影之后的长度,其计算方法和有效投影角度接近120°的时候一样,只不过是改变了计算的角度值.计算可得投影QP长度为0.086 724 mm,将原长度值与投影值QP做比值,发现原长度曲线压缩了大约1倍.同理,当有效投影角度接近30°时,将原长度值与投影值ST做比值,发现原长度曲线同样压缩了约1倍.
通过上述不同的有效投影角度可知,随着有效投影角度逐渐变小,所得到的画面越来越清晰,即信息压缩量逐渐减少.有效投影角度无限接近180°时压缩最严重;接近120°的时候效果明显要好于180°的时候,此时压缩比约为2;接近于60°和30°时压缩比都约为1,可以看出有效投影角度从120°往后压缩比变化越来越小.用于缺陷检测的图片要完整地表示出整个物体,同时为了提高检测效率,图片个数要尽可能的少,基于这两方面的考虑,本文对一个模具棒拍摄三张图片.
2 柱面投影变换
2.1 柱面正投影变换
柱面投影变换是将摄像机拍摄到的图像映射到一个标准柱面坐标空间上.柱面投影变换是柱面全景图生成的基础,解决了不同视角的图像直接拼接造成的图像场景视觉不一致的问题[6-7].
柱面投影变换公式是整个投影过程实施的关键,公式推导图如图3所示,图3a表示原始平面图像I投影到柱面投影空间K上,得到柱面投影图像.为了便于计算,取圆柱中心点作为坐标原点,坐标原点同时也是投影中心点,且相机的光轴垂直于图像的中心,交于点O.从图3a中可以看出,经过投影之后,图像的四个角出现向内弯折的现象,但是图像的最大高度依旧等于原图像的高(垂直于中轴线上的点投影前后位置不变),因此投影前后图像的高度不变,图像的宽度相比于原图像变小.假设圆柱半径为r,原图像的宽度为W,原图像的高度为H,投影角度为θ,根据图3b三角形相关知识可知,投影图像宽度为W′=2rsin(θ/2).假设P为图像I上的任意一点,其坐标为(x,y),因为图像的坐标原点都在左上角,所以在计算过程中要转换到以图像中心为坐标原点的坐标系中,P点转换后的坐标为(x-W/2,y-H/2),要计算出P点在柱面图像上对应的P′点坐标.假设P′的坐标为(x′,y′),则转换后的坐标为(x′-W′/2,y′-H/2),通过图3c可以求得P′的纵坐标y′,柱面投影变换表达式为
(3)
图3 推导图Fig.3 Derivation graph
对于原图像上任意一点可通过式(3)求得对应的柱面投影图像上的点.此算法相比于其他柱面正投算法公式更加简单,参数合理易懂,计算量小.
2.2 柱面展开
生活中许多物体外形类似于圆柱体,圆柱状包装应用于各行各业,给包装加工过程带来了极大便利,但对表面缺陷检测环节增加了难度.圆柱表面视觉缺陷检测时由于柱面成像原因会造成图像失真,直线特征会变弯曲,难以提取.因此,对圆柱状物体的图像进行柱面展开意义重大[8-9].
柱面展开是柱面正投影的一种逆变换,即柱面图像反投影变换.在2.1节中已经推导出了柱面正投影变换公式,按照上述计算方法,同理可得柱面反投影变换公式.
通过上述信息压缩计算可知,模具棒在圆周方向上存在着不同程度的信息压缩,导致安全套边缘部分的小缺陷无法准确检测.为了提高缺陷检测的准确率,先将安全套图片按照上述柱面展开算法进行展开,然后再进行缺陷检测.本文主要对安全套表面存在的破损和粘连两种缺陷进行检测,两种缺陷如图4所示.为了便于观察,将标定板贴在模具棒上进行拍照,图5a为未进行柱面展开的模具棒图像,图5b为柱面展开的模具棒图像.
图4 缺陷图Fig.4 Defect images
图5 模具棒柱面展开效果Fig.5 Cylindrical expansion effect of model rod
3 安全套图像缺陷检测
3.1 图像滤波
原图片中的噪声会对后续的检测实验产生影响,为了消除干扰,更好地检测出缺陷,需要先去除噪声.针对不同的噪声有与之相对应的滤波方法,滤波器可以分为线性滤波器、非线性滤波器以及混合滤波器等.中值滤波是一种典型的非线性滤波,相对于线性滤波,不会在去除噪声的同时使图像的边缘变得模糊,对椒盐噪声的处理效果较好.其主要思路是将图像像素按照灰度值从小到大排列,并取中间位置的灰度值进行表示.文中采用中值滤波对安全套图像进行降噪处理,滤波效果图如图6所示.
图6 滤波效果Fig.6 Filtering effect
3.2 破损检测
将图像中的目标物体与背景分离的操作叫做图像分割[10],又称为前景与背景的分离.通过观察破损处与正常部位的灰度值分布,发现它们之间存在着明显的差异.本文充分利用这一特征,根据不同的灰度值,可以将破损区域提取出来.图像分割将图像像素分为目标像素与背景像素,对于灰度图像最常用的方法是图像二值化,通过设置合适的阈值,将像素值大于或者等于分割阈值的像素划分为目标物体,其他阈值像素划分为背景.为使目标物体与背景的对比度达到最大,需要将图像进行二值化处理.
对多张具有破损缺陷的图像进行测试发现,由于光照等外界环境的影响,每幅图像的阈值不固定,且人工设置阈值会浪费大量时间,因此本文采用基于自适应阈值分割的最大类间方差法,其将目标和背景的最大方差值作为分割阈值T.记t为目标与背景的分割阈值,目标点数占图像比例为PA,平均灰度为uA;背景点数占图像比例为PB,平均灰度为uB,图像总平均灰度可以表示为
u=PAuA+PBuB
(4)
目标与背景的方差表达式为
E=PA(uA-u)2+PB(uB-u)2
(5)
(6)
`在图像L个灰度级中遍历t,当t为某个值使得E的取值最大时,此时t值便为图像的最佳阈值T.
3.3 粘连检测
直线检测是霍夫变换最常用的一种应用,一条直线在图像空间中可由斜率m和截距b来表示,但对于斜率无穷大的情况,这种表达方式便不再适用.为了解决该问题,可以用极径r和极角θ来描述直线,即r=xcosθ+ysinθ.对于图像中任意一点,找出经过该点的所有直线区域,采用累加器计数的方式遍历所有像素点,通过设置阈值就可以找出这条直线.安全套粘连缺陷有直线特征,因此可以采用该方法进行检测.
4 实验验证
本文使用处理器为Intel Core i5-5200,内存为4 GB的计算机,在Windows 7系统环境下借助opencv与C++编程语言对安全套表面存在的破损、粘连缺陷进行了实验.根据实际工作环境,本文采用500万像素相机拍照,镜头光轴垂直于模具棒纵向截面,工作距离为0.3 m,实验中可以检测出的最小缺陷为0.1 mm.为了提高实验数据的可靠性,将标准标定板贴在模具棒上,计算图片上显示出来的每个圆点代表的实际值大小,每行为一组,记录6组,依次从左到右记录6个圆点的数值.表1为原图片的数据记录;表2为经过柱面展开后的数据.
表1 原图片数据Tab.1 Original image data mm
表2 经过柱面展开的数据Tab.2 Data after cylindrical expansion mm
通过对不同大小、形状的安全套缺陷进行图像采集,与合格安全套图片一起组成一个包含200张图片的图库进行测试,其中有缺陷的图片84张,包括漏洞缺陷的安全套图片39张,粘连缺陷的安全套图片45张,进行柱面展开的测试结果如表3所示,正确检测率为99%.同等条件下,对未进行柱面展开的安全套图片进行实验,测试结果如表4所示,正确检测率为87%,缺陷结果如图7所示.由实验可知,进行柱面展开的安全套表面缺陷更容易被检测出来.在图像处理速度上本文算法可以达到120 ms,按照本文对每个模具棒拍摄三幅图像计算,每只安全套检测用时360 ms,远远高于人工检测效率.
表3 经过柱面展开的实验结果Tab.3 Experimental results after cylindrical expansion
表4 未经过柱面展开的实验结果Tab.4 Experimental results without cylindrical expansion
图7 缺陷检测结果Fig.7 Defect detection results
5 结 论
本文将机器视觉应用到安全套表面的缺陷检测中,用图像处理的方式检测缺陷,并以模具棒为例,对回转体柱面物体两侧存在的像素压缩问题进行了数学建模计算.采用柱面展开算法解决了安全套图像边缘处存在的小缺陷难以准确检测的问题.实验证明,通过柱面展开的安全套表面缺陷检测正确率远高于未进行柱面展开的安全套,因此,可将该方法应用到安全套的工业化生产过程中,实现工业自动化生产.