基于改进K-means算法的钢管表面缺陷视觉检测方法
2020-10-29董家顺王兴东李殿杰
董家顺,王兴东,李殿杰,汤 勃,李 震
(1.武汉科技大学冶金装备及其控制教育部重点实验室,湖北 武汉,430081;2.北京钢研新冶工程技术中心有限公司,北京,100081;3.无锡市瑞尔精密机械有限公司,江苏 宜兴,214222)
热轧无缝钢管生产过程中,受轧制设备和工艺等因素影响,钢管表面会存在各类缺陷,不仅严重影响产品外观,还会降低其抗腐蚀、耐磨和抗疲劳等性能。通过对钢管表面进行实时检测,及时发现缺陷,厂家能有效调整生产工艺、改进设备状态[1]。传统人工检测效率低,易造成缺陷误检和漏检,无法对缺陷及表面质量进行全面定量评估[2];机器视觉方法可有效弥补不足,其检测精度高,并能进一步为智能制造提供数据平台[3-4]。
无缝钢管为圆弧表面,且与热轧带钢、重轨等类似,其表面覆盖有大量氧化铁皮。对钢管圆弧表面的动态实时检测,必然会影响光源光照区域与相机视野的重合性,易造成光照分布不均,大大增加了采用机器视觉方法检测产品表面缺陷的难度[5-6],研究人员对此也进行了深入探讨。Wu等[7]针对钢轨缺陷图像纵向灰度均值高、缺陷亮度低且缺陷较少的特点,提出了一种适应不同光照强度的LWLC算法,可均匀化背景灰度,突出表面缺陷。王伟江等[8]提出融合卡通纹理分解和最优双曲正切曲线的方法,实现机柜表面缺陷图像增强,将图像分为卡通图和纹理图,根据高斯尺度空间理论建立光照模型,利用双曲正切曲线的性质提高图像对比度,增强低灰度区域,但对极端光照条件下的缺陷检测效果仍不佳。
K-means算法多应用于光照不均匀条件下农业、医学等领域的图像分割。Ratnakumar等[9]采用K-means算法处理卫星监控图像,进行森林、海洋、河流等区域的自然或人为灾害预防,取得较满意效果。Reza 等[10]采用K-means算法对遥感影像进行分割,然后估算水稻面积和产量。Agrawal等[11]将K-means算法与中值滤波、Sobel边缘检测及形态学算法相组合,用于分割人脑医学影像中的病变区域,其损伤评估的准确率较高。
针对钢管表面缺陷检测难点,本文提出一种基于改进K-means灰度正反求和的表面缺陷检测方法。首先建立实验平台,获取包含多种缺陷的钢管表面图像,提取出研究区域;其次采用图像增强处理以抑制其中的光照和反射不均;然后基于改进K-means灰度正反求和算法实现多种表面缺陷的分割,并进行图像后处理以优化分割效果;最后,构建钢管表面缺陷图像样本集来检验本文方法的性能。
1 实验平台构建及图像获取
1.1 实验平台的构建
本研究所用的钢管表面图像采集方法如图1所示。钢管位于两等直径驱动辊A和B中间,电机使A、B辊同步匀速转动,带动钢管旋转;调整线阵相机和线光源的角度α,匹配钢管C点的切向线速度与线阵相机行频,即可采集一幅钢管表面图像。为了保证成像质量,CD间距离由相机及镜头确定,调整辊A和B回转中心O1与O2间距离x以适应不同外径的钢管。
图1 钢管表面图像采集方法示意图
检测精度要求为0.2 mm/pixel。线阵相机为华睿科技生产的Dahua L5023MG51,分辨率为2048 pixel,最大行频51 kHz;光源为东莞科视自动化科技有限公司(CST)生产的LSL-676-40-R,控制器型号为HAPS-24W400-1T;镜头为日本KOWA-LM8HC,焦距8 mm,光圈F1.4~F16;PC机型号为HP Laptop,CPU为Intel Core i5-7300HQ @2.50 GHz,8 GB安装内存,Windows10,64位操作系统,软件为Visual Studio 2013+OpenCV 2.4.9版本函数库;电机型号为普菲德57BYG2500步进电机。
采用高角度明场照明[12]。实验样品为4段表面存在缺陷的钢管(外径为220 mm,长度分别为115、160、180、195 mm);调整距离x=260 mm,CD距离为205 mm,α=45°,线阵相机视野幅宽为300 mm。
相机横向、纵向分辨率均为2048 pixel,根据幅宽(300 mm)和分辨率确定横向、纵向精度为0.146 mm/pixel。根据钢管转速可确定C点切向速度,再结合横向或纵向精度计算并设定相机行频。钢管外圆每旋转300 mm获取一张图像,根据外圆周长确定整周所需的张数,自动采集钢管整周图像,超过部分自动裁掉并重新计次。本文以下给出的均为缺陷区域图像。
1.2 图像采集及预处理
实验中采集了凹坑、翘皮、划伤及辊痕4种钢管表面缺陷的原始图像,如图2所示。
(a)凹坑 (b)翘皮
(c)划伤 (d)辊痕
原始图像包括钢管和非钢管区域,采用垂直投影法提取钢管区域。参照文献[13]中的方法设定阈值T,对图像进行二值化处理。如图3所示,绘制每列白点(灰度255)总数随横坐标的变化曲线W(x),即垂直投影图;构造直线y,将W(x)分
图3 图像中钢管区域定位原理
为上、下两部分,交点对应横坐标x1和x2,即对应钢管边界位置,其中直线y为:
y=λ·H
(1)
式中:H代表图像高度,为定值,故y仅由参数λ确定。
对大量光照不均及光照良好的图像进行了试验,确定取T=40、λ=0.8。图4为从图2中提取的钢管区域图像。
图4 提取出的钢管区域图像
光照变化和材料反射不均等会弱化图像中的缺陷特征,影响检测结果。本文参考Frankle-McCann Retinex算法原理[14]去除光照变化的影响,保留钢管自身的反射特性并且增强其表面特征,核心步骤为:
(2)
式中:t为迭代次数;rt+1(x,y)为t次迭代后(x,y)点的灰度值;rt(x,y)为t次迭代前(x,y)点的灰度值;Δl为图像灰度差;max为图像灰度最大值。
考虑钢管表面光照不均图像具有局部或整体区域灰度偏低的特点,为了兼顾处理效率与效果,本文t取1,其实际效果就是利用周围像素点亮度来估计中心点亮度。图5为图4中钢管区域图像的增强结果。
图5 图像增强结果
2 钢管表面缺陷检测方法
缺陷精准分割是钢管表面缺陷检测成功与否的关键。传统阈值分割和边缘检测方法易受钢管表面光照变化、反射不均和氧化铁皮的影响,为此,本文提出一种基于改进K-means灰度正反求和的钢管表面缺陷检测方法。
2.1 改进K-means图像分割算法
对于钢管表面缺陷这类复杂多样且噪声严重的图像,若采用传统K-means算法进行分割,其初始聚类数目K需人为给定,分割效果受K值影响较大,且初始聚类中心的随机性会导致结果不稳定,而Zhang等[15]提出了一种改进的K-means聚类算法,本文将其应用于图像分割。
设X={x1,x2,…,xN}为图像一维像素点灰度数据集合,噪声灰度数据为局部极大值或极小值。传统K-means算法以欧氏距离计算灰度之差平方和,会放大噪声灰度数据与正常灰度数据的差异,使得算法对噪声敏感。本文定义像素间灰度距离为灰度之差[16],可降低算法敏感性,提高计算效率,具体定义为:
d(i,j)=|xi-xj|
(3)
式中:xi和xj为X中任意两像素点i和j的灰度值,其中1≤i≤N,1≤j≤N,且i≠j。
(4)
式中:|Zk|为对应簇内像素点总数。
X中所有像素点的平均灰度距离M(X)为:
(5)
像素点i的灰度密度ρ(i)为:
(6)
式(6)中,ρ(i)代表与像素点i的灰度距离小于M(X)的像素点数量。
当像素点i与其他像素点j的灰度距离小于M(X)时,将其组成一个簇,簇内平均灰度距离e(i)为:
(7)
定义邻簇灰度距离h(i)为像素点i与另一个有较高局部灰度密度的像素点j的灰度距离。若像素点i的局部灰度密度最大,则选择与之灰度距离最大的像素点计算d(i,j),并且令h(i)=max{d(i,j)};若存在ρ(j)>ρ(i),则选择与之灰度距离最小的像素点计算d(i,j),并且令h(i)=min{d(i,j)}。
定义集合中像素点i的权值ω:
(8)
鄱阳湖区圩堤管理单位与堤防管理人员在以往的堤防管理工作中,特别是在在历次的抗洪抢险工作中,在各级水行政主管部门的领导下,发挥了极大的作用,为防洪减灾、为当地的工农业生产和购买经济建设作出了很大贡献。鄱阳湖生态经济区重要圩堤管理单位基本分为县、乡管理模式。如廿四联圩长90km,由新建县廿四联圩管理局管理,属事业单位,管理员6人,年均投入维护资金10万元。这种管理性质的差异体现在管理工作中的结果是职能不清,责任不明,有事无人管,经费无保证。
改进K-means图像分割算法的具体步骤如下:
Step1获得输入图像集合X,根据式(6)计算所有像素点的ρ(i),取ρ(i)最大的像素点对应灰度z1为第一聚类中心,得Z={z1}。同时,得到与该点灰度距离小于M(X)的像素点,将其从X中去除。
Step2计算X余下像素点的ρ(i)、e(i)和h(i),找出ω值最大的像素点对应灰度z2为第二聚类中心,得Z={z1,z2},将与该点灰度距离小于M(X)的像素点从X中去除。
Step3计算X余下像素点与Z中各聚类中心z1、z2的灰度距离ω(i,z1)、ω(i,z2),如像素i满足max(ω(i,z1)×ω(i,z2)),则该像素点对应灰度为第三聚类中心z3,得Z={z1,z2,z3},将与z3灰度距离小于M(X)的像素点从X中去除。
Step4同理,若像素点j满足max(ω(i,z1)×ω(i,z2)×…×ω(i,zk-1)),则j对应灰度zk为第k聚类中心,将与zk灰度距离小于M(X)的像素点从X中去除。
Step5重复Step 4,直到X为空集,得到K个初始聚类中心集合Z={z1,…,zK}。
Step6输出K个初始聚类中心,执行传统K-means图像分割算法。
Step7得到各簇中心灰度及该簇像素灰度范围,将图像中位于中心灰度最小的簇所对应灰度范围内的像素点灰度值置为255,其余为0,计算终止。
将上述改进K-means图像分割算法应用于图4,由于图4中各像素点可分为缺陷、背景和噪声3类[17],故取K=3的传统K-means图像分割算法进行对比分析,图像分割结果如图6所示。
由图6可见:传统K-means算法的图像分割结果受噪声和光照变化的干扰较为严重;改进K-means图像分割算法对凹坑缺陷图像的分割效果很好,同时翘皮、划伤和辊痕缺陷图像中噪声和光照变化的不利影响也得到一定程度改善。
(a)传统K-means算法
(b)改进K-means算法
由于改进K-means图像分割算法根据灰度密度和ω值选择初始聚类中心,可降低噪声像素点的灰度数据选取概率,最终K个初始聚类中心能够较好地代表图像有效灰度数据,可改善分割效果;然而,由图6(b)可见,划伤缺陷存在漏检,翘皮和辊痕缺陷仍未完全有效分割,因此该算法需要进一步改进。
2.2 基于改进K-means的灰度正反求和
改进K-means图像分割算法标记中心灰度最小簇为缺陷像素点,实现二值分割,但从最终分割结果来看,仍存在缺陷漏检和分割不完全的情况。为了实现钢管表面缺陷的精准分割,下面提出一种基于改进K-means灰度正反求和的图像分割方法,基本流程如图7所示。
首先,针对钢管区域提取后的图像f(x,y),计算灰度反转图像g(x,y):
g(x,y)=255-f(x,y)
(9)
然后,参考Frankle-McCann Retinex算法原理对f(x,y)和g(x,y)分别进行图像增强,再采用改进K-means算法分别对它们进行分割,得到If(x,y)和Ig(x,y)。
最后,对两个分割图像进行求和。设U(x,y)为二者相加后的二值图像:
U(x,y)=Ig(x,y)+If(x,y)
(10)
式(10)中,若对应坐标像素点相加灰度值超过255,则取为255。
对于图4中的钢管表面缺陷图像,本文方法的分割过程及最终结果见图8。与图6(b)对比,在图8(d)中,不仅漏检的划伤缺陷被全部检出,
图7 基于改进K-means灰度正反求和的图像分割流程
(a)图4灰度反转结果
(b)灰度反转图像增强结果
(c)灰度反转图像分割结果
(d)灰度正反求和结果
而且翘皮和辊痕缺陷的分割完整性良好,同时凹坑缺陷与原始图像上的一致,但是从整体分割效果来看,还存在噪声和伪缺陷。
2.3 图像后处理
滤波会影响基于K-means算法的图像分割准确性,本文对分割后的图像进行后处理,优化缺陷形状和面积特征、去除噪声和伪缺陷。利用中值滤波消除噪声;创建半径为1的圆盘结构元素进行形态学膨胀[18],提高凹坑、划伤、翘皮和辊痕缺陷边缘的连续性,保证其形状特征;利用孔洞填充算法[19]消除缺陷内部孔洞区域,保证缺陷的完整性;进一步作形态学腐蚀,消除因形态学膨胀而扩大的缺陷面积,保证面积特征的准确性;针对氧化铁皮形成的伪缺陷问题,对经过上述步骤得到的二值图像进行连通域标记[20],获取前景像素点个数,小于100像素点的前景认定为伪缺陷,将其置为背景。图像后处理结果见图9。
图9 图像后处理结果
3 实验与结果讨论
通过实验检测本文方法的性能,以两种方式构建钢管表面缺陷图像样本集:①对于原始图像,参照文献[21]中的方法进行旋转、缩放和拉伸,获得不同缺陷图像样本集一,其中凹坑35张、翘皮24张、划伤19张、辊痕22张;②通过光源控制器改变光照强度,获得均匀光照条件下不同缺陷图像样本集二,其中凹坑26张、翘皮12张、划伤21张、辊痕18张。样本图像尺寸统一调整为512像素×512像素。图10为两个样本集中的部分示例。
(a) 样本集一 (b) 样本集二
表1为对两个图像样本集的缺陷检测结果。经计算,对两个样本集的综合检测率、漏检率和误检率分别为97.35%、2.65%和3.64%,检测精度较高;本文处理单幅图像最大耗时4.937 s,小于生产实践中两根钢管到达检测工位的时间间隔,实时性满足工业检测要求。
对比4种缺陷,辊痕缺陷误检率较高,这是因为实际辊痕缺陷由小面积间断区域构成,灰度反转和图像增强使其部分区域与氧化铁皮在面积和灰度上相似,易形成伪缺陷。对于通过方式②构建的样本集二:翘皮和辊痕缺陷的误检率较高,这是因为翘皮和辊痕缺陷的面积分布较大,光照强度增加会弱化或覆盖部分缺陷区域特征,造成一定误检;同时,划伤缺陷具有灰度值较高的特点,光照强度较高会覆盖此类缺陷,故表现出较高漏检率。
表1 对样本集的缺陷检测结果Table 1 Defect detection results of the sample sets
为进一步验证本文方法对光照不均的抗干扰能力,调整线光源轴线与线阵相机光敏元件所在直线的夹角为25°,按方式①重新获取32张(每种缺陷各8张)光照不均条件下的钢管表面缺陷原始图像,对图像缺陷区域进行人工标注作为缺陷的真实情况。图11给出分别采用本文方法和经
(a)原始图像 (b)人工标注 (c)Otsu法 (d)本文方法
典Otsu法(最大类间方差法)的分割结果与人工标注图的直观对比。由图11可见,与Otsu法相比,本文方法不受光照不均现象的影响;与人工标注图对照,本文方法能检出凹坑和划伤缺陷,且缺陷形状和大小较为接近。
对于所有光照不均条件下的钢管表面缺陷原始图像,本文方法的综合检测率、漏检率和误检率分别为94.85%、6.19%和8.25%,表明本文方法对光照变化具有较好的抗干扰能力。
4 结语
利用机器视觉方法检测钢管表面缺陷的效率高于人工检测,但由于钢管表面覆盖的氧化铁皮以及弧形表面易造成光照不均等问题,导致图像分割困难。针对该现象,本文提出了一种基于改进K-means算法的灰度正反求和检测方法。首先参照Frankle-McCann Retinex算法原理对钢管区域图像及其灰度反转图像进行增强处理,然后采用改进K-means算法对两个增强图像进行分割,对分割结果求和并作图像后处理,得到最终检测结果。
通过多个钢管表面缺陷图像样本集进行性能检测,结果显示该方法对钢管表面常见的凹坑、翘皮、划伤和辊痕缺陷的检测效果良好,并且光照不均情况下的分割结果明显优于最大类间方差法,即对光照变化的抗干扰能力较强。
本文方法对其他回转体表面缺陷的检测具有借鉴意义,后续可考虑增加表面缺陷类型并开展工业应用研究。