李逸岳,汪仁煌,朱 颖
(广东工业大学 自动化学院,广东 广州 510090)
纹理常指图像反复出现的局部模式和它们的排列规则,反映宏观意义上灰度变化的一些规律。在现代工业生产和自动化检测中,产品表面纹理特征往往是衡量产品质量的重要指标。不同纹理特征图像有不同的纹理识别和描述方法,目前常用的纹理特征分析方法主要集中在基于空间域的结构模型和统计模型分析方法、基于频率域的滤波器族、小波分析方法。在空域模型中,纹理被看作一种对区域内密度分布的量测结果,其利用对图像灰度的分布和关系的统计规则来描述纹理,比较适合自然纹理的描述。HARALICK R M[1]等人提出了纹理特征的灰度共生矩阵表示,共生矩阵方法不受分析对象的限制,能够反映图像的灰度分布情况,但用共生矩阵提取的纹理性质缺少视觉相似性。频域滤波器族是一种以图像梯度信息表示图像纹理特征的方法,傅里叶变换[2]适合描述周期函数,频域特征比空域特征更具有抗噪性,但是对于方向性不敏感,仅包含了图像水平和垂直方向的梯度,丢失了其他方向上的重要信息,同样缺乏空间分布信息。小波分析[3]因其突出的局域特性和多尺度特性近年来在纹理分析中受到重视,但缺点是计算量大。
基于机器视觉的羽毛检测是羽毛球生产自动化的关键环节,波纹纹理是羽毛缺陷类型的一种,主要表现为羽毛片上空间周期出现的明暗变化,在自动化检测中需要根据羽毛波纹的严重程度进行分类识别。本文的研究对象是羽毛片,在对图像预处理的基础上,提出了一种改进多向梯度算法用于纹理特征提取,针对羽毛片图像的波纹纹理特征进行分析量化,最后设定阈值进行分类识别的方法。实验结果表明,本算法对纹理特征的提取有较高的效率和准确率,也具有良好的泛化特性和自适应性能。
在羽毛系统的硬件装置中,光源与羽毛表面呈45°角放置,使得照到羽毛表面的光比较均匀,但光射始终还是存在一定的不均匀度,导致羽毛表面亮度也不均匀。在波纹纹理羽毛的检测中,羽毛表面亮度的非均匀性会对最终的结果判定产生很大的影响。对此,先在Lab颜色空间[4]下进行一定的亮度修正。
(1)将处理羽毛的图像颜色从RGB空间变换到Lab空间,并求得此时羽毛的平均L值ave_L。
(2)按式(1)求取羽毛上每一像素点的 Y值:
得到每一点的Y值后,进一步可求得对应的修正Y值 Y′:
最后,求得每一像素点的修正 RGB 值 R′,G′,B′:
(3)使用修正后的RGB值求取每一像素点的修正Lab值,其中修正后的L值均为ave_L。
亮度修正的目的在于将羽毛上每一像素点的L值统一修正至该羽毛的平均L值ave_L。在修正的过程中,将值按以上步骤进行相应的改变,使得在保持羽毛细节信息不变的前提下,消除亮度非均匀性所带来的影响,使得后续的纹理特征提取更加准确,修正前和修正后的羽毛图片对比如图1所示。进行亮度修正后,再进行彩色图像分割,将羽毛叶部分提取出来,最后将彩色图转化成灰度图。
图1 亮度修正对比图
羽毛的纹理区域表现为图像上灰度突变的地方,可以用灰度差分来提取,图像中像素点(x,y)的梯度方向为灰度值f(x,y)在这点变化最大的方向,这个向量的模值GM[f(x,y)]为灰度值 f(x,y)的最大变化率:
对于数字图像,传统的梯度算法[5-6]常用水平垂直差分法和Roberts交叉差分算法来近似。
水平垂直差分算子表示:
Roberts算子表示:
对图像施加梯度模算子,可以增加灰度变化的幅值,因此可以作为图像的锐化算子,利用梯度算法进行运算的目的是使图像锐化,凸显图像的纹理特征。然而羽毛波纹纹理在图像中常常具有任意的方向性,传统的梯度模算子是固定不变的,不能代表局部区域实际灰度变化率最大的方向。因此考虑在极坐标上用动态寻优法来求取局部区域灰度差最大的一个方向角度θ,然后对单个像素点沿方向角度θ上求灰度差。根据此思路提出一个局部区域最大差分法,具体算法如下:
(1)首先设定一个多向梯度算子,建立极坐标,图2是极坐标下的示意图。在局部区域选取不同方向的梯度算子来运算比较,求出局部区域灰度变化率最大方向,也即是梯度方向。这里提出一个脊线的定义,即为灰度差径向积分求和的向量,脊线方向与梯度方向正交。为了提高运算效率,脊线放置角度∂在 0°~180°范围内每隔 15°递增赋值,沿着脊线方向计算一次有限长范围内灰度差绝对值,进行数值比较,确定使灰度差绝对值最大的脊线方向。
图2 多向梯度算子示意图
(2)对脊线的方向角度分别取∂=0°,15°,30°,45°…180°共13个方向运算比较。局部区域梯度差为:
其中θ=∂-90°,由极坐标变换成直角坐标得:
比较迭代求出局部区域梯度差最大时的θ角,作为算子梯度方向。
实际生产中将波纹等级分为一级、二级、三级、四级,计算灰度梯度矩阵图中羽毛叶范围内所有像素灰度差值的平均值D,作为评价波纹等级的指标,即D=( ΣΣG (i,j))/I,I是羽毛叶面积, 根据试验结果设定一、二级的门限 D12,二、三级的门限 D23,三、四级的门限D34,对羽毛叶波纹缺陷分级归类。
图3 不同方法处理效果图
在VC6.0平台上进行编程,实现上述算法,具体检测流程图如图4所示。
图4 算法流程图
本文提出的方法在典型梯度算法基础上针对纹理方向性特征进行了改进,有效地提取图像纹理特征,并给出量化指标进行综合评价。全部的运算过程都是加减运算,避免了乘法运算,计算复杂度小,满足机器视觉检测系统的实时性需要。另外,图像预处理对亮度进行修正,程序设计中的处理对边缘信息和其他干扰信息不敏感,目标区域发生相对旋转也不影响结果,具有较好的鲁棒性。利用已分级的羽毛样品进行检测实验,不同等级之间的结果存在明显的区分度,波纹纹理越严重,值越大,实验证明了本算法的有效性。本方法只是在单一尺度的基础上考虑,由于纹理图像的不规则性和复杂性,若考虑多尺度的变化,方法还要进一步改进。
[1]HARALICK R M,SHANMUGAM K,DINSTEIN I.Textural features for image classification[J].IEEE Transactions on System, Man, and Cybernetie, 1973,3(6): 610-631.
[2]熊四昌,陈国波.工件表面纹理间距提取的一种新方法[J].光学仪器,2007(6):14-17.
[3]刘洪江,汪仁煌.基于羽毛图像纹理分割的毛杆提取方法[J].广东工业大学学报,2010,27(4):42-45.
[4]林开颜,吴军辉.彩色图像分割方法综述[J].中国图像图形学报,2005,10(1):1-10.
[5]李伟,康晴晴,张俊雄,等.基于机器视觉的苹果表面纹理检测方法[J].吉林大学学报,2008,38(5):1110-1113.
[6]温江涛,王伯雄.基于局部灰度梯度特征的图像快速配准方法[J].清华大学学报(自然科学版),2009,49(5):57-59.