赵文宏,周神特,吕建标,张 潇,王宇宇
(浙江工业大学 机械工程学院,浙江 杭州 310023)
铝材再生利用率高、实用性强,在建筑及汽车行业的应用几乎不会被其他材料取代,但在需求增加的同时,铝型材的表面质量也愈显重要[1-4]。目前,检测铝型材表面质量的主要方式,依旧是人工抽样检验并目测判断,但由于人工检测不仅效率较低而且检测精度依赖工人经验,因此其远远达不到我国大力推进铝型材产能优化及扩充的需求。我国现有检测铝型材表面瑕疵的技术较为落后,与国际先进技术水平相去甚远,迫切需要一种更加适合现代企业的检测方法[5]。
基于机器视觉的铝型材表面瑕疵检测是一种非接触式的检测方式,利用非接触式的检测方式能够快速、有效地提取铝型材表面的信息,实现铝型材表面瑕疵的检测[6-7]。李海洋等[8]基于热弹机制和干涉接收方式,搭建激光超声检测实验平台,实现工件表面缺陷的非接触检测。徐科等[9]根据光度立体法原理,设计48 个点光源的表面三维检测系统,根据三维特征检测表面缺陷。韩宁等[10]分析激励线圈与特定被测金属材料耦合作用时的传感特性,基于巨磁阻(GMR)芯片设计用于检测微细裂纹的金属表面缺陷检测方法。针对企业对铝型材的实际需求,以及铝型材的物理特性,提出一种基于机器视觉的铝型材表面瑕疵检测方法,主体内容包括设计硬件结构以及对相关算法的优化,并深入分析与分类研究铝型材典型的瑕疵图像,进一步提升铝型材的瑕疵识别精度和检测速度。
基于机器视觉的铝型材表面瑕疵检测系统主要由机械设备、采集系统和处理系统3 个部分组成,如图1所示。机械设备部分控制铝型材的传输,调整图像采集系统中相机设备的工作位置及其配套的光源位置,以此来确保系统能拍摄出铝型材各个位置存在瑕疵的照片。图像采集系统有图像采集与实时图像传输的功能,图像采集系统与图像处理系统间由千兆网线交换信息完成交互,图像采集系统采集到的图像发送至计算机,运用算法对图像进行实时处理并分类。
图1 铝型材表面缺陷检测系统示意图
图像采集系统主要由导轨、CMOS工业相机及相机配套光源组成。在系统实际运行过程中,由PC端控制伺服电机使水平与垂直方向上的底座移动,通过移动底座实现对不同位置的铝型材进行拍摄采集,相机固定对焦,光源采用条形光源,确保能清晰全面的拍摄到铝型材表面的图像。
铝型材在化学制备后具备一定的纹理,因此其表面质量不一。在瑕疵检测过程中,该纹理不仅会使铝型材对光的反射方式发生改变,而且会成为背景干扰,增加缺陷检测难度。为解决该问题,需要对图像进行预处理,去除干扰,同时需要对采集到的16 位RGB图像灰度化处理,压缩图像信息。
为进一步压缩图像信息,便于特征提取,需提取瑕疵轮廓为二值化图像。由于铝型材表面具有一定的纹理,使用自适应阈值二值化对图像进行分割时,容易造成错误分割,把表面瑕疵当作轮廓的一部分[12-13]。综合铝型材表面瑕疵以点、线等为主要表现形式,对比考虑,采用一种基于双边滤波的Canny算法[14],会有较好的效果。传统Canny算法采用高斯平滑滤波器卷积图像增强,但高斯滤波会有较明显的模糊边缘,对于高频部分的保护效果并不理想,因此需要添加一个基于空间分布的高斯方差对图像进行约束,该滤波方法即双边滤波法,表达式为
ω(i,j,k,l)=
(1)
式中:ω(i,j,k,l)为定义域和值域核函数;f(i,j),f(k,l)分别为定义域与值域像素值;σd,σr分别为定义域平滑参数与值域差参数。
传统的滤波函数保留了过多的高频信息,包括噪声,而笔者采用的双边滤波针对其定义域核函数作出空间域改进,改进后双边滤波函数表达式为
(2)
(3)
式中p为滤波窗口参数。
改进后的算法可更改滤波窗口大小,首先,降低噪声对图像边缘的影响,不仅能较好地保持细节,而且可降低不稳定因素对图像质量的影响;然后,图像以Scharr滤波器对图像进行梯度计算并抑制非最大信号得到候选边缘;最后,基于信噪比准则进行高低阈值输出二值图像[15]。以划痕为例,改进前后Canny效果对比如图2所示。
图2 算法改进前后效果对比
得到二值图后,对瑕疵轮廓区域进行定位,提取瑕疵轮廓坐标,并标注在原图像上,典型缺陷利用改进后的Canny算法进行二值化与缺陷定位的结果如图3所示。
图3 改进算法处理结果
常见的特征提取有Harris,SIFT和HOG等算法。其中,Harris仅对角点特征具有大的敏感性,不适用于铝型材刮擦形成的直线型缺陷[16];SIFT存在计算时间长、实时性不高和特征点少等问题,不适用于铝型材的表面瑕疵检测[17-18];HOG算法不仅能够忽略光照颜色对于图像造成的影响,降低图像维度,而且HOG算子提取特征能有效提高数据鲁棒性[19]。因此,笔者采用HOG特征提取,图像分割策略采用overlap,即分割区块用于瑕疵检测,该算法的实现途径为图像灰度化转换与归一化。铝型材表面并不是完全光滑,有着一定的纹理,局部区域的表层会有较大的光晕比重,进行灰度化与归一化,能够极大的压缩图像信息,从而尽可能避免光照、阴影等因素的影响。对于图像中的像素点(x,y)采用线性灰度变化函数与伽马压缩公式[20],其中伽马压缩计算式为
(4)
式中:I为图像;(x,y)为图像的像素点;γ常取1/2。
首先进行梯度计算。使用一阶像素滤波器进行图像水平梯度与垂直梯度的梯度方向值计算,表达式为
Gx(x,y)=H(x+1,y)-H(x-1,y)
(5)
Gy(x,y)=H(x,y+1)-H(x,y-1)
(6)
式中:Gx(x,y),Gy(x,y)分别为像素点水平方向与垂直方向的梯度方向值;H(x,y)为像素值。
进而利用Sobel算子进行图像卷积操作,求得水平与垂直方向的梯度分量,并采用式(7)进行像素点(x,y)梯度幅值与方向的计算,其表达式为
(7)
(8)
式中:Gy(x,y)为梯度幅值;α(x,y)为角度。
铝型材缺陷的梯度幅值计算结果如图4所示。
图4 梯度幅值图
最后进行分网格的梯度方向直方图。根据获取图像大小将图像分割为适当大小像素的网格,且每个网格都需要求取方向直方图。将360°分割为9个bin,角度取值范围在-180°~180°,再将2×2的网格单元组成块,每个块之间有50%的部分是重叠区域。这样就可以将网格连接起来组成块描述符,最终所有的块描述符都合并成为一个大的直方图,在进行规范化(归一化)得到的向量数组就是所需的HOG特征。铝型材缺陷面提取HOG特征并可视化的结果如图5所示。
图5 缺陷面HOG特征可视化
传统的HOG算法一般与SVM支持向量机[21]结合来进行物体的检测,近年来,深度神经网络因其强大的泛化能力深受视觉领域的青睐,CNN为图像识别带来新的发展,其采用卷积核的思想来实现局部特征信息的感知,并通过权值共享的方式计算各个层单元的信息量,通过下采样的方式对图像进行降维,从而实现图像的响应值最大化,这种方式有利于特征的提取。基于此,将CNN和HOG相结合,解决传统HOG特征表征不清晰的问题[22]。HOG是对像素进行操作,而CNN可以利用浅层信息进行特征提取与HOG结合,使得模型表征、泛化能力强,以此来提高模型的精度,其模型示意图如图6所示。由于CNN的各个层含有较多的冗余信息,一定程度上抑制检测的速率,为提高检测速率,利用相关系数法,将杂质信息的特征图过滤。
图6 CNN和HOG融合算法示意图
铝型材瑕疵数据集来源于天池“铝型材瑕疵识别”比赛。对铝型材数据集进行整理分析,发现划痕的数据集较多,麻点、孔洞的数据集偏少,各个瑕疵的样本数量不均衡,差异较大,容易造成过拟合。针对这个问题,采用数据增强的策略,对样本以概率p=0.5对图片翻转,并随机旋转一定的角度。最终的数据集分为3 个部分,分别为训练集、验证集和测试集,比例为8∶1∶1,样本数量如表1所示。
表1 铝型材数据集样本数量
由于铝型材表面特征不一,需要选取合适尺寸的卷积核。根据铝型材检测区域范围,将大小为3×3,5×5,7×7 的卷积核进行对比,5×5大小的卷积核最合适。通过CNN计算的特征输入到HOG中,最后将HOG特征输入到SVM分类器中,检测结果如表2所示。利用5 种经典瑕疵的特征图对铝型材进行检测,准确率均值在81%左右。
表2 检测准确率
该检测准确度不能满足检测要求,为提高检测精度,利用相关系数分析法,对卷积核进行分析。对各个特征进行相关系数分析,结果如表3所示。由表3可知:0.219 9,0.243 2分别对应特征3和特征4,即在特征3和特征4中,存在弱相关性。
表3 特征相关系数分析
随机选取每种瑕疵图像200 张,分别用传统HOG+SVM算法和融合算法进行试验,结果如表4所示。融合CNN多层特征的算法在检测准确率在有明显的提升,从原有平均值约为80.62%的准确率,提升到平均准确率为90.26%。同时对整个数据集进行检测,统计检测速率,平均每张图片仅需58.34 ms,满足实际检测需求。
表4 算法准确率对比
以铝型材为检测目标,分析铝型材的几种常见瑕疵,提出一种基于机器视觉的铝型材表面瑕疵检测方法。该方法首先针对双边滤波的定义域核函数作出空间域改进,改进后的滤波算法能较好抑制图像的噪声,保留铝型材瑕疵边缘;然后,对图像进行梯度计算并进行非极大值抑制得到候选边缘,利用Canny算法对瑕疵进行定位,分析各个特征提取算法,考虑到光照等因素对图像造成的影响,提高检测速率需降低图像维度,采用HOG算法对瑕疵进行提取,对铝型材数据集进行数据增强操作,使得各个瑕疵的样本集均衡化,有效防止过拟合现象发生;最后,针对传统HOG+SVM泛化能力不足,鲁棒性差的问题,提出将CNN多层特征融合HOG算法的提取方法,采用相关系数法进行优化,平均瑕疵检测率从80.62%提升到90.26%,平均每张样本检测仅需58.34 ms,满足铝型材表面质量检测需求。