基于CNN的深层次特征提取纸病辨识方法研究
2019-11-21高乐乐王伟刚
高乐乐 周 强 王伟刚
(陕西科技大学电气与控制工程学院,陕西西安,710021)
随着造纸工业自动化程度不断的提高,纸机车速越来越快,成纸幅宽不断加宽,纸张在生产过程中不可避免地会出现各种表面缺陷,即纸病。纸病的存在严重影响到纸张的质量和品质,一些严重的纸病若不能及时发现和处理,还可能造成材料的浪费,甚至设备损坏。因此,纸病检测已经成为纸张生产过程中不可缺少的重要环节。
传统的纸病检测是依靠人工进行,随着造纸生产自动化不断发展,人工检测已逐渐被基于机器视觉的检测方法所代替[1]。基于机器视觉的纸病检测方法有很多,但在实际生产过程中的检测效果大都不理想,究其原因是由于纸病种类繁多,即使是同类纸病之间也存在较大差异,使得纸病特征量分散在不同的特征空间中,难以对所有纸病的特征量进行准确提取[2]。另外,如褶皱、划痕等难点纸病,其特征量在各特征空间都不显著,使得基于机器视觉的纸病检测方法对这些纸病的辨识效果不理想。
以上问题极大地制约了纸病检测技术的发展,使纸病检测技术陷入瓶颈期。本课题分析了当前纸病检测方法,针对现有纸病检测方法的瓶颈问题提出了基于卷积神经网络(CNN)的纸病检测方法,利用CNN自动提取纸病图像中的深层次特征,结合Softmax实现对纸病的辨识,提高检测精度,本课题实验结果表明了此方法的可行性。
图1 纸病检测过程
1 纸病在线检测方法的瓶颈问题分析及解决方案
1.1 纸病检测过程
当前针对纸病的检测方法大都建立在传统模式识别理论的基础上,其检测过程如图1所示。
由图1可知,纸病检测过程可分为预处理、特征提取、分类辨识3个步骤。
(1)预处理
纸张图像的预处理是为了滤除噪声,使纸病图像更加清晰。从而增强纸病区域的信息,便于后续纸病图像的特征提取与分类。一般来说,纸病图像预处理包括图像增强、图像分割等。
(2)特征提取
纸病特征提取的是能够反映纸病本身特性的参数,通过选取合适的特征量并进行分析,便于将纸病图像进行更好的分类。目前基于纸病图像的特征量提取主要有如下3类:
①形态特征 纸病的形态特征有面积、长宽比、矩形度、圆形度、周长和偏心率等几何形状特征。此外,分形维数可以反映复杂纸病占有空间的有效性,度量复杂纸病的不规则性以及整体相似性[3]。
②灰度特征 常见的基于灰度特征的纸病特征提取算法有阈值法、模板匹配法、统计分析法、小波变换等。阈值法用于提取灰度变化较为明显的纸病特征,如黑斑、亮斑、孔洞等。模板匹配法利用Roberts算子、Prewitt算子、Laplace算子等获取纸病的边缘特征信息[4]。小波变换可用来分辨灰度波动不明显的纸病,如褶皱、划痕等[5]。
③纹理特征 纹理是由于灰度分布在空间位置上反复交替变化而形成的,典型的具有纹理特征的纸病是条纹纸病。灰度共生矩阵(GLCM)可用于提取具有纹理特征的纸病,其原理是利用纸病区域的相关性、纹理熵等[6],此外利用自相关函数也可以提取纹理特征。
(3)分类辨识
图像分类是纸病检测的重要环节,通过图像分类可以统计各类纸病的数据。常见的纸病分类器包括基于RBFNN(Radial Basis Fullction Nellral Network)结构与模糊推理相结合的分类器、基于BP(Back Propagation)神经网络的分类器、朴素贝叶斯分类器(Naive Bayes classifier)以及支持向量机SVM(Support Vector Machine)的分类器等[7-9]。
1.2 瓶颈问题分析
虽然纸病检测的算法研究很多,但大都是针对几种较常见纸病进行分类,对一些难点纸病的检测效果不太理想,其原因主要有如下2点。
(1)纸病种类较多、特征量难以确定
常见的纸病有孔洞、黑斑、亮斑、划痕、褶皱、裂纹等,其特征量分散在不同特征空间中,这些纸病可能在某一个特征空间具有明显的特征量,而在其他特征空间的特征量不明显。例如,孔洞纸病和黑斑纸病在灰度特征空间的特征量明显,但在形态特征空间和几何特征空间的特征量却不明显[10]。目前为止尚无一种特征提取方法能够准确地提取各类纸病的特征量。针对常见的纸病,虽然已研究出了多种辨识方法,但一种方法仅能够对有限几种纸病进行较好辨识,而对其他纸病的辨识效果不好。
(2)难点纸病特征量不突出、难以构建
褶皱、划痕等纸病,无论其灰度特征、形态特征还是几何特征都不突出,明显的特征量至今尚未找到。这些纸病的辨识效果不太理想,因此被称为难点纸病。
文献[11]中提出了一种利用小波变换融合LOG算子和数学形态学算子的算法来识别低对比度的纸病,如褶皱、裂口等,但并未给出明确的辨识结果,且算法过于复杂。有学者提出利用Hough变换等方法来辨识褶皱纸病,但该方法仅适合于测量线形褶皱,实用性很弱[12]。因此,对于难点纸病的特征量构建是纸病检测方法发展亟需解决的重要问题。
综上,由于纸病的多样性与辨识方法单一的矛盾,使得当下纸病检测技术的检测精度普遍偏低。另外,现有检测技术虽然能够判断一些纸病的存在,却无法进一步区分这些纸病的种类。因此,纸病检测的精确性问题已经成为制约纸病检测技术发展的瓶颈。
1.3 解决方案
针对上述瓶颈问题,本课题提出基于卷积神经网络(Convolutional Neural Networks,简称CNN)的纸病分类算法,CNN网络的主要特点是利用局部感知和权值共享有效降低网络的复杂性[13]。作为深度神经网络的一种,CNN网络能避免对图像的复杂预处理和特征提取而直接输入原始图像,可广泛应用于模式识别等领域。
基于CNN的纸病检测如图2所示。由图2可知,CNN网络可通过卷积操作自动提取纸病图像深层次的特征。这些特征能代表纸病图像的本质特征,可以有效解决纸病特征量难确定以及难点纸病特征量难构建的问题,从而提高纸病检测的精度。
图2 基于CNN的纸病检测示意图
2 基于CNN的纸病检测
2.1 纸病分类CNN网络构建
考虑到纸病样本复杂多变,即使同一类纸病的特征也会存在较大差异,还存在如褶皱、划痕等难点纸病,且纸张图像背景复杂、干扰较多等问题,经过大测试,本课题确定采用多层卷积结构对纸病图像进行特征提取并辨识,网络包含4个卷积层(convolution layer)、3个池化层(pooling layer)以及2个全连接层(full connection layer),在最后一个全连接层后设置Softmax层(Softmax layer)输出结果。纸病分类CNN网络结构如图3所示。
输入分辨率为100×100,位深度为24的纸病图像。经一系列的卷积和池化操作后提取生成该类纸病图像的深层次抽象特征,将这些特征矩阵转化为一维向量作为全连接层的输入,由全连接层完成分类任务,最后经Softmax层输出当前样本属于某一类纸病的概率分布。本课题设计的CNN网络拟对6类纸病图像进行分类识别,故将Fc6输出节点设置为6,即网络输出节点为6,CNN网络部分参数设置及计算结果如表1所示。
CNN网络中池化操作均采用最大池化的方法,并在Pool1和Pool2池化操作后进行局部响应归一化处理(Local Response Normlization,LRN)以增强CNN网络的泛化能力,各卷积核(convolution kernel)初始权值设置方差为0.01的高斯分布随机数,偏置值初始化为常数0.1,且对所有卷积层均选用线性整流函数ReLU作为激活函数以对其计算结果完成非线性化处理。
2.2 基于CNN的纸病检测工作过程
2.2.1 卷积
卷积层的主要作用是纸病特征的抽象和提取,通过卷积核对纸病图像进行卷积提取,输入纸病图像的不同特征,多层卷积是为了对纸病图像进行逐层提取以获得更深层次的特征。卷积层计算公式如下:
式中,为第l层的第j个特征图;为卷积层的权重参数;为偏置参数;f(·)为激活函数。
2.2.2 池化
池化层可对提取到的纸病图像特征信息进行降维,一方面使纸病特征图变小,简化网络计算复杂度并在一定程度上避免过拟合的出现;另一方面进行纸病特征压缩,提取主要纸病特征。池化层的计算公式如下:
图3 纸病分类CNN网络
表1 CNN网络部分参数设置及计算结果
式中,表示池化后的纸病特征图,f(·)为激活函数,down(·)表示一个下采样函数,池化层的每个输出特征图都对应一个相应的乘性偏置和一个加性偏置
2.2.3 全连接
全连接层在整个CNN网络中起到分类器的作用,每个神经元与前一层的所有神经元进行全连接,将前一层得到的二维特征图转换成一个一维向量。全连接层计算公式如下:
式中,hw,b(x)表示神经元的输出值,x表示神经元的输入特征向量,wT表示权重向量,b为偏置项,f(·)表示激活函数。
2.2.4 Softmax
Softmax层是CNN网络的最后一层,输入数据是前一个全连接层的输出值,输出值是一个向量,向量的维度与所分的纸病类别数相等,向量对应位置的值即为CNN网络预测样本属于该类纸病的概率值。Softmax计算过程如下:
式中,k为纸病分类的个数,zj表示网络对第j个分类标签的预测值,σ(表示属于该类纸病的概率值,这个值与样本的真实标签经过计算输出CNN网络的损失(loss)值,训练过程中,loss值通过反向传播(Back-Propagation)逐层更新CNN网络参数。
2.3 基于CNN的纸病分类训练流程
基于CNN的纸病分类模型训练流程如图4所示。具体思路如下:(1)采集各类纸病图像划分为训练样本和测试样本;(2)利用训练样本对CNN网络进行训练,学习纸病的深层次特征,从而得到纸病分类的CNN模型;(3)利用测试样本对CNN模型进行测试,通过测试结果调整网络参数并再次训练以得到最好的分类模型;(4)保存已训练好的模型用于纸病图像分类。
图4 纸病分类CNN模型训练流程图
3 实验与分析
3.1 实验条件
本课题中,在车速为400 m/min、幅宽为3104 mm的纸机上拍摄得到纸病图像。相机采用DALSA公司的CCD相机S2-1X-02K40,搭配镜头为Nikon公司AF28mm 1:28D。实验硬件环境如下:64位Microsoft Windows 10操作系统,Intel(R)Core(TM)CPU i5-6500 CPU@3.2 GHz四核处理器,8 GB运行内存,GPU采用NVIDIA GeForce GTX1050Ti。实验软件环境如下:使用C++在开源的Caffe深度学习框架下进行。
3.2 CNN训练
本课题的目的是训练一个能够对黑斑、孔洞、亮斑、褶皱、划痕、边裂6类纸病图像进行辨识的CNN网络。6类样本通过数据增强(旋转和镜像)得到1200张样本图像,图像分辨率为116×116,位深度为24,按照4∶1划分训练样本和验证样本,纸病训练样本如图5所示。指定纸病图像标签:边裂0、黑斑1、孔洞2、褶皱3、亮斑4、划痕5。
图5 纸病训练样本图
对此样本进行多次训练,不断调整参数,最终设置训练集batch-size为30,测试集batch-size为20;设置test-iter为12;训练集中的所有样本训练完一次后对CNN网络做一次测试,故设置测试间隔test-interval为32;基础学习率base-lr设置为0.001,且迭代1500次衰减一次,衰减系数为0.1;设置权重衰减系数weight-decay为0.0005;训练的最大迭代次数max-iter设置为3000;为了防止过拟合,进一步进行数据增强,在数据层将输入图像随机裁剪为分辨率100×100的图像块以用于训练CNN网络。
训练完成之后,得到模型在收敛过程中训练集的loss变化曲线如图6所示,模型在验证集的loss曲线和accuracy曲线如图7所示。其中,loss表示CNN网络的误差值,accuracy指模型在验证集上的辨识精度。由图6和图7可知,在上述参数设置下,模型在训练集上的loss最终收敛值为0.001918,在验证集上的loss最终值为0.03825,accuracy值为0.9917。因此可知,本课题所设计的CNN网络在纸病样本上得到了较好的收敛。
图6 训练集的loss变化曲线
图7 验证集的loss和accuracy变化曲线
3.3 测试与分析
为了进一步验证所训练模型的性能,另外采集6类纸病图像共600张,每类各100张对模型进行分类预测。
图8为单个孔洞样本输入模型中,经过计算依次得到各个卷积层的纸病特征图可视化的结果。由图8可知,CNN网络中的每一个神经元只对特定的输入产生较大的响应值,只有接受特定的输入才会处于激活状态;若不是,则处于抑制状态。由图8还可知,各个层级特征图的冗余信息较少,说明本课题设计的卷积网络结构较合理。
已有理论表明,CNN中深层特征映射可以理解为是浅层特征映射的非线性组合[14]。所以浅层的卷积核从输入图像中提取到诸如边缘、角点等低级特征,浅层可视化结果如图8中Conv1所示;随着层级加深,特征映射就会逐渐被非线性组合成更复杂的结构图案,如图8中Conv3和Conv4所示。
图8中,Conv4的各个特征图经Pool4最大池化后与Fc5全连接生成512维的特征向量,最后经过Softmax计算得到分类的概率分布。图9为Fc5的输出值和输出正值的直方图以及模型最后的概率输出值结果。由图9(c)可以看出,输出图像属于“2”的概率值最接近1,标签2对应的图像类别为孔洞纸病,因此该输出图像应为孔洞纸病图像。
将所选的600张纸病图像逐个输入模型中做预测,预测结果混淆矩阵如表2所示。由表2可知,600张纸病图像中,正确辨识598张,错误辨识2张,总辨识率为99.667%。其中,该模型对边裂、黑斑、孔洞和划痕4类纸病的辨识率达到100%,错误辨识是将褶皱纸病识别为边裂纸病、亮斑纸病识别为褶皱纸病。
图8 CNN深层次纸病特征提取可视化结果
为了分析CNN网络对纸病图像的辨识速度,在测试过程中分别记录CPU模式下和GPU模式下,CNN网络连续10次前向计算所用时间,结果如表3所示。由表3可知,在CPU模式下,CNN网络每次前向计算平均耗时为60.885 ms,即每秒识别图像约16.4幅;而在GPU模式下,每次前向计算平均耗时仅为4.675 ms,相比于CPU模式,提升了约13倍。
将本课题设计的CNN纸病辨识方法与常用的传统纸病分类检测方法进行对比实验。对纸病图像进行预处理(中值滤波、边缘检测)并以人工提取缺陷区域特征(灰度均值、灰度标准差、周长面积比、自相关、灰度熵),在同样的实验环境和样本数据划分条件下,分别使用自适应神经模糊推理系统(ANFIS)和BP神经网络算法对纸病图像进行辨识,所得辨识结果与本课题设计的CNN纸病辨识方法得到的结果如表4所示。
由表4可知,基于CNN的纸病辨识方法的准确率高于传统的纸病辨识算法。本课题设计的CNN网络通过训练得到的模型分类性能较好,对于褶皱、划痕类难点纸病能够进行准确地辨识。在960张训练样本的基础上,选取600张纸张测试图像,其纸病辨识准确率可达99.667%。且本课题设计的CNN网络可以通过不断丰富现有的样本库扩充纸病种类和数量,进一步提高CNN网络模型的实际应用能力。
图9 Fc5的输出值和输出正值的直方图以及模型最后的概率输出值
表2 纸病图像预测结果混淆矩阵
表3 CNN网络前向计算用时
表4 不同纸病辨识方法准确率
4 结 语
本课题在分析了当前纸病检测瓶颈问题的基础上,提出基于卷积神经网络(CNN)的深层次特征提取纸病的辨识方法,并根据纸病图像的特点设计了纸病检测的CNN网络。实验结果表明,该CNN网络通过训练得到的模型能够对边裂、黑斑、孔洞、褶皱、亮斑和划痕6类纸病进行精确辨识。且采用CNN提取特征的方法避免了人工提取特征,解决了当前纸病检测方法中纸病特征量提取困难的问题,既节省了开发成本,又提高了辨识精度。