李兴科,宋建熙,李西兵
(福建农林大学,福建 福州 350108)
皮革是由动物皮通过一系列物理、化学加工方法获取的[1]。在加工过程中难免会产生各种缺陷,如划痕、孔洞和污点等。为了提高皮料的利用率,得到更高的皮革制品生产经济效益,对其表面缺陷的检测和分类不可或缺。
传统的图像缺陷分类方案是首先对图像进行特征提取和描述,再采用模式识别相关技术对分类器进行训练,最后对目标进行分类[2-4]。在皮革缺陷检测的方案中,纹理特征和直方图特征能够有效地表征皮革缺陷和表面的差异。
近年来,深度学习神经网络发展迅速,通过对大量数据图像的学习,能够很好地获取对数据图像进行分类所需的特定特征[5-6]。比如卷积神经网络能够通过训练获取图像的一般特征,并在多次的卷积、池化处理后,获取图像更复杂和抽象的特征,能够很好地满足特定图像的识别分类。
然而深度学习对数据量的要求很高,随着训练数据量的增大,图像分类任务的性能将呈对数增长[7],需要有大量的标记数据集来满足深度学习分类任务的要求。现有的各类皮革缺陷图像数据集很少,获取大型数据集的难度很大。在这种情况下,通过纹理图像特征描述方法进行特征提取,将得到更能表现皮革缺陷的特征,再通过多层感知器神经网络训练特征,可以得到更好的训练效果。
本文采用的图像获取平台由一个CMOS 工业相机、可调节支架以及两个线型光源组成。通过相机采集的皮革表面图像分辨率为2592×1944,通过图像分割,将图像以大小为200×150像素的非重叠块进行分割,以此建立皮革表面图像数据库,其中包括180 张有缺陷图像和60 张无缺陷图像。
图像增广是一种对图像进行处理,产生相似但不相同的样本,以扩大数据规模的图像处理方法。对神经网络训练样本进行图像增广可以提高分类模型的泛化能力,降低模型对特定位置的敏感程度。本文通过垂直镜像翻转,水平镜像翻转以及对角镜像翻转的形式进行图像增广。图像增广处理后皮革数据包括划痕缺陷图像为240 张,孔洞缺陷图像为240 张,污点缺陷图像为240张,无缺陷图像为240 张,共960 张样本图像。
由于皮革图像中缺陷颜色变化不规律,难以提供关键信息,而灰度化处理后图像矩阵的维数下降,后续的运算速度会有很大提升,并且梯度等重要信息仍然保留,因此对皮革图像进行灰度化处理。
皮革图像的灰度强度变化三维图如图1 所示,皮革图像中背景存在不均匀纹理。Gabor 滤波器已广泛运用于纹理材料的缺陷检测,可以有效获取纹理图像的局部空间和频率域信息。因此对皮革灰度图像进行Gabor 滤波处理,Gabor 滤波处理后的图像如图2 所示。可以看到Gabor 滤波处理后图像灰度更平滑的同时保留了皮革表面的纹理特性。
灰度直方图通过对皮革图像中的灰度级分布进行统计,能够有效地描述丰富的皮革表面信息,因此可以通过图像灰度分布的特征描述皮革图像缺陷[8]。将预处理后的皮革图像转换成向量,计算其六个统计特征,包括偏度(Skew)、峰度(Kurt)、均值(Mean)、方差(Var)、上四分位数(Q3)和下四分位数(Q1)。根据计算结果,四类皮革图像样本灰度分布特征中上四分位数与下四分位数分布区间相似,为了减少特征数据冗余,不采用上四分位数(Q3)作为图像灰度分布统计特征描述。
灰度共生矩阵能够利用灰度的空间相关性对纹理进行描述,其统计特征对纹理图像有良好的鉴别能力[9]。将预处理后的皮革图像转换成灰度共生矩阵,计算其八个统计特征,包括熵(Entropy)、对比度(Contract)、能量(Energy)、同质性(Homogeneity)、相异性(Dissimilarity)、x 轴方向均值(Mean_x)、x 轴方向方差(Variance_x)、相关性(Correlation)。
本文构造了一个三层全连接神经网络即多层感知器神经网络,两个隐藏层分别有20 个神经元,其典型架构如图3 所示。多层感知器神经网络级联多个变换来实现输入到输出的映射,经过对训练集样本数据的学习后,神经网络可以实现对样本数据的非线性分类。
其中输出层有4 个神经元,对应4 类皮革缺陷图像,通过One-Hot 编码方式对四种类别进行“二进制化”编码。采用One-Hot 编码方式,将离散型特征映射到欧式空间,能够更好地计算特征之间的距离。两个隐藏层采用的激活函数为ReLU,如式(1)所示。ReLU 激活函数相较logistic 激活函数和tanh 激活函数具有更高效的梯度下降和反向传播。
输出层后接SoftMax 函数,如式(2)所示。因此输出层不设激活函数,采用恒等函数,如式(3)所示。
式中:x为输出层输入向量的第i个分量,Ii为输出层的第i个神经元的仿射值。
将训练样本x作为输入,得到的输出是多分类概率分布(p1、p2...pi)T,对这个概率分布应用交叉熵损失,交叉熵损失函数如式(4)所示。
式中:yi是标签向量y的第i分量,标签向量y只有一个分量为1,其余分类为0,表示训练样本的类别,本文对4 类皮革样本进行分类。
权值矩阵以0 均值、0.001 标准差的正态分布初始化,偏置向量以0 值初始化,采用反向传播算法与Adam 算法更新权值矩阵和偏置向量,Adam 算法更新规则由式(5)-(9)给出。
式中:gt为当前参数的梯度,mt、vt为更新后的一阶动量和二阶动量,ηt为当前时刻的下降梯度,θt+1为更新后的权值或偏置,一次取M个训练样本计算梯度平均值,M取经典默认值32,超参数β1、β2取经典默认值0.9、0.99,初始学习率α取0.001。
实验采用Windows 平台,基于Python 编程语言实现特征提取和多层感知器神经网络框架的搭建。配置为IntelCorei5-9600KF 3.70GHzCPU 处理器,NVIDIAGeForceGTX1050Ti 显卡。
实验中皮革图像样本共960 张,包含划痕缺陷图像240 张,孔洞缺陷图像240 张,污点缺陷图像240 张,无缺陷图像240 张。根据上文的多种特征提取方法提取皮革图像特征,以该特征组合描述皮革表面图像,并对不同特征组合的样本进行分类标记,其中划痕为H、空洞为K、污点为W、无缺陷为N,如表1 所示。
表1 皮革图像特征组合示例Tab.1 Sample of feature combination of leather image
将样本随机洗牌后,取前720 个样本为训练集,其余样本为测试集。通过构造的多层感知器神经网络对训练集样本进行训练,迭代次数以200 次为梯度依次递增,进行50 次实验,不同迭代次数的测试准确率实验结果如图4 所示,在迭代次数达到8000 次以后测试集的平均分类准确率稳定在98%上下。
在进行迭代10000 次后对各类皮革图像测试集样本的识别准确率如表2 所示。由表2 可以看出经过训练的感知器神经网络能够识别分类皮革缺陷,分类的总体准确率为98.8%。该方法对皮革表面图像中不同缺陷的分类准确率高于现有的技术,如支持向量机[10]、残差网络[5]。这些结果表明该方法对四类皮革图像的分类效果有所提升,能够更好地应用于皮革产业自动化生产的皮革表面缺陷检测分类环节中。
本文基于皮革表面存在不均匀纹理的特点构造出了多种皮革表面图像的纹理和缺陷特征,将这些特征以特征组合的形式作为后续分类的数据集,并构造了基于多层感知器神经网络的分类方法对皮革缺陷图像进行分类,实验结果表明,相较于现有的皮革表面图像缺陷分类技术,采用本文构建的基于多层感知器和特征组合的分类方法的总体分类准确率有一定的提升,能够满足皮革生产过程中自动缺陷分类的需要。
表2 测试集样本分类准确率Tab.2 The accuracy of test set samples