赵志成 罗 泽
1(中国科学院计算机网络信息中心 北京 100190)
2(中国科学院大学 北京 100049)
烟盒的包装纸作为商家的标志,其识别和分类问题非常重要,在生产自动化、真假烟鉴别、行业信息化等方面有着非常广泛的应用前景。目前,烟盒的规格识别主要是通过感官(即人眼),根据烟盒上含有的信息判断其相应的烟盒规格[1]。受限于人工识别的识别效率和人工识别容易产生视觉疲劳无法进行大规模高效识别等缺点,建立相应准确、高效、泛化性能强的烟盒规格自动识别算法显得十分重要。
自从AlexNet[2]横空出世以来,基于深度学习和卷积神经网络的方法在计算机视觉领域发展非常迅速。NIN[3]使用全局平均池化层来代替参数众多的全连接层,并采用1×1卷积来学习通道间的非线性组合。VGG-Net[4]提出了一种模块化的网络设计策略,将相同类型的网络块重复堆叠,从而简化了网络设计的工作,并为下游应用提供了迁移学习的机会。Highway network[5]引入了门控机制,使得信息流可以跨几层传输而不会产生衰减,并且有助于网络的融合。在这些研究的启发下,ResNet[6]通过引入跨层连接(Skip Connection),在一定程度上缓解了深度神经网络层数过深难以训练的问题,使得网络可以学习到更深层次的表示。ResNet已经成为目前最成功的CNN架构之一,被应用到各种计算机视觉的众多下游任务当中[7]。
不同于传统的图像分类问题,烟盒的规格识别可以被归纳为细粒度识别的任务。细粒度图像分类(Fine-grained Image Categorization),又被称作子类别图像分类(Sub-category Recognition),是近年来计算机视觉、模式识别等领域一个非常热门的研究课题[8]。其目的是对粗粒度的大类别进行更加细致的子类划分,但是由于子类别间细微的类别间差异和较大的类内差异,与普通的图像分类任务相比,细粒度图像分类难度更大[9]。在现实生活中,识别不同的子类别有着非常大的应用需求,例如人脸识别[10]、指纹识别[11],以及识别不同种类汽车、鸟类[12]等。此外,由于烟盒的设计周期性地发生变化,某些烟盒的包装在视觉上较为相似,使得烟盒的规格的自动化识别仍然具有一定的挑战[13]。
近年来深度学习和人工智能在烟草行业的研究和应用已经越来越多,结合深度学习以及计算机视觉等不同技术的人工智能系统受到了越来越多的关注。叶安新[14]基于遗传算法对于烟草运送车的行驶路径进行优化。钟宇等[1]利用计算机视觉对卷烟包装进行图像处理和特征向量提取,分别以相似性度量模型、机器学习模型对特征向量进行分类来判定卷烟真伪。李敬[15]利用卷积神经网络进行烟草病虫害的自动识别。高震宇等[16]使用卷积神经网络,建立了基于卷积神经网络的烟丝组成识别模型。
本文以不同设备采集的烟盒图像为研究的对象,采用基于深度残差网络的深度学习算法,同时引入了自适应选择卷积网络(SKNet)对现有的残差网络结构进行了改进,改善了传统深度学习方法中容易过拟合以及分类效果差的问题,取得了99.2%的分类准确率。
卷积神经网络由于其强大的特征表达能力在许多计算机视觉任务中被广泛地使用[17]。研究人员发现在一定的深度范围内,随着网络层数的增加,模型可以拟合更加复杂的函数,模型的性能也可以得到提升。但是在网络层数增加到一定的数目之后,继续增加网络的层数,训练精度和测试精度迅速下降。为了解决由于深度增加带来的网络退化问题,深度残差网络引入了跨层连接的设计,在一定程度上缓解了由于深度增加带来的梯度爆炸或梯度消失[18]。
深度残差网络是由很多个残差学习单元堆叠而成的。给定输入的图像数据,深度残差网络将输入的数据依次送入卷积层Conv、非线性激活函数层ReLU和批处理归一化层Batch Normalization;然后将处理的结果进一步送入到多个残差单元,再经过全局平均池化层和全连接层;最后得到输出结果。
在构建超深的网络比如100层以上的网络时,将多个原始残差学习模块直接堆叠起来会造成参数量的爆炸。为了在不损失精度的同时降低整个网络的参数量,He等[6]提出了一种称为“瓶颈(Bottleneck)”的残差模块结构,这种瓶颈结构的设计主要目的是为了减少参数量和计算量,使得深度残差网络的训练速度加快。ResNet的残差学习单元的具体设计如图1所示。
图1 残差单元
如图1所示,假设残差单元的原始输入为x,期望输出的映射是H(x),那么残差可以被定义为:F(x)=H(x)-x。由于梯度爆炸和梯度消失,让网络直接学习期望输出的潜在映射H(x)是比较困难的。ResNet不再让网络学习一个完整的输出,而是学习残差F(x)。图1所示的输入特征x的恒等映射也可以表示为跨层的连接,这是一条从输入直接到输出的通路,在输出之前将x与经过学习的残差值F(x)相加,可以得到期望的映射结果H(x)。这种跨层连接的方式使得梯度在向前传播时,后一层的梯度可以无损地传递到前一层。实验证明学习残差而非直接学习映射不仅可以使得网络收敛更快,还可以缓解由于简单增加网络深度造成的“网络退化”问题。
本文采用ResNet-50和ResNet-101两种非常具有代表性的网络模型作为基础的骨干网络。假设输入图像尺寸是256×256,ResNet-50和ResNet-101的具体配置如表1所示。
表1 ResNet结构表
迁移学习的目的是为了将源领域的信息应用到目标域的学习过程当中。考虑到烟盒规格数据集的规模较小,我们采用微调(Fine Tune)的方式来进行迁移学习。如图2所示,本文利用已经在大型公开数据集ImageNet上进行预训练得到的基础网络来进行特征的提取。在基础网络进行特征提取之后,构建烟盒规格识别的分类网络,最终得到基于烟盒图像的规格识别模型。
(a)
注意力机制可以看作是一种资源分配的机制[19-20]。从广义上讲,可以将注意力机制当成一种工具,将可用处理资源的分配倾向于输入信号的信息最丰富的组成部分。注意力机制的发展和理解一直是深度学习领域的一个长期的研究方向。
注意力机制已经在不同领域被广泛应用来提升相关任务的性能,从图像的定位和理解到基于序列的模型。注意力机制不仅要告诉我们重点关注哪些区域,还要提高关注区域的表示权重。我们的目标是通过使用注意机制来增加模型的表现力,关注重要特征并抑制不必要的特征。
烟盒的规格识别属于细粒度的图像分类问题。在细粒度的图像分类问题当中,让网络学习到更有判别能力的特征显得非常重要。为了让网络学习到更具判别力的特征,最近的一些工作提出了不同的注意力模块。李兰等[20]采用结合通道注意力机制和空间注意力机制的卷积注意力模块对不同商家的招牌进行细粒度分类。Hu等[21]提出了SENet(Squeeze-and-Excitation module)来提升分类的结果,SENet使用全局平均池化来进行通道注意力的计算。
为了使得神经元能够自适应地调节感受野的大小,自适应注意单元引入了SK(Selective Kernel)卷积,这种多分支的结构设计可以使得网络在不同感受野大小的卷积核中进行自动的选择,从而可以提升网络表达能力。如图2所示,自适应选择卷积单元由分裂、融合和选择三个模块组成。
在通过分裂操作将网络分成两个分支之后,需要设计一个门控单元来控制承载不同信息的多个分支如何进入下一个神经元。首先如式(1)和图3所示,通过逐元素的加法将两个分支的信息进行融合,得到特征图U∈RH×W×C。
图3 自适应注意力单元
(1)
接着通过将特征图进行全局平均池化可以得到S∈RC,其中Sc由U中第c个通道的特征图Uc通过全局平均池化得到的。
受到SENet的模块压缩思想的启发,为了提升执行的效率以及网络的学习能力,紧凑特征z∈Rd×1通过以下方式计算得到:
z=Ffc(s)=δ(B(Ws))
(2)
式中:W∈Rd×c;d代表输出的维度;B代表批量归一化;δ代表激活函数;Ffc表示多层全连接操作。
选择模块把融合模块得到的紧凑的结果z通过两个全连接层以及Softmax函数回归出不同感受野的特征图通道之间的权重信息。权重ac和bc的计算方式如下:
(3)
(4)
式中:V=[V1,V2,…,Vc];c∈[0,1,…,C-1];特征图V∈RH×W×C为最终输出的结果;Vc为其第c幅特征图。
为了将自适应选择卷积网络集成到深度残差网络当中,需要在每个残差单元当中插入自适应选择卷积网络。具体的做法如图4所示,在原始的特征图之后插入自适应选择卷积网络,一个比较直观的理解是在通过不同感受野的自适应卷积生成了对于原始特征图的注意力权重。通过这个注意力权重可以有效地过滤原始特征图中不重要的信息,给予需要关注的区域更高的权重。在加入自适应选择卷积网络之后,原有残差单元特征图提取特征的能力有了明显的增强。
图4 将自适应选择卷积网络嵌入原始残差单元
为了保证实验样本的多样性和实验结果的可靠性,本文使用单反、手机、扫描仪等不同设备采集了包括白沙、芙蓉王、中华等常见13个规格的烟盒图像,在采集的过程中采集了不同规格的烟盒的正反面。考虑到烟盒包装纸的变化,采集了同一规格不同的批次的样本。同时,为了保证图像采集的质量,尽量选择光线较好的地方,烟盒的图像处于整个画面的中央位置以此降低周围背景的影响。我们总计采集了13个规格共计2 500幅图像,具体的数据集分布如图5所示,具体的样本示例如图6所示。
图5 数据集的整体分布
图6 数据集示意图
为了能更好地验证不同模型的性能,本文设置原始训练集2 000幅(80%),测试集500幅(20%)。在随机划分训练集和验证集后,需对图像进行预处理操作,预处理操作主要包括多角度旋转、随机裁剪、去均值和尺度归一化等操作。图像预处理的目的一方面是为了更方便让CNN学习图像间细微区别,另一方面则是为了扩充数据集便于网络学习到更具有判别性的特征。
本文采用深度学习框架MXNet,图片输入大小为256×256,batch size设置为64,epochs设置为50,采用交叉熵损失函数作为优化的目标。实验采用的骨干网络的初始权重均来自ImageNet上预训练的权重,采用SGD作为优化算法,初始的学习率设置为0.001。在后续过程中对学习率采用等间隔调节的策略,每20轮迭代后学习率调整为当前学习率为0.1倍。
为了测试出不同骨干网络之间的性能差异,本文首先在五个具有代表性的骨干网络VGG-16、VGG-19、Inception-v3、ResNet-50和ResNet-101上进行实验。实验的结果如表2所示,可以看出相比于VGG,ResNet在参数量大幅减少的情况下取得了更高的准确率。
表2 不同骨干网络实验结果和参数量对比
为了进一步提升深度残差网络的特征表示能力,本文在ResNet-50以及ResNet-101网络中嵌入了自适应选择卷积网络。
同时,为了通过对比实验来验证自适应选择卷积网络的良好的性能,本文选取了比较有代表性的两个注意力单元:SENet(Squeeze-and-Excitation Networks)和CBAM(Convolutional Block Attention Module)来进行对比实验,从而分析不同设计的注意力单元的性能。
从表3的结果可以看出,相比于另外两个注意力单元SENet和CBAM,自适应选择卷积网络在参数量更少的情况下取得更高的准确率,这在一定程度上反映将自适应选择卷积网络和残差网络结合的方法在烟盒规格识别任务上的有效性。与此同时,ResNet-50+SK在参数量远远少于ResNet-101的情况下,取得了比ResNet-101更高的准确率。本文的实验结果表明,通过添加自适应选择卷积网络不仅可以有效地提高网络的提取特征的能力,同时也可以有效提升分类的准确率。
表3 不同注意力单元实验结果和参数量对比
为了更好地分析实验的结果,本文首先可视化了ReNet-101+SK方法在烟盒规格识别测试集上的混淆矩阵。如图7所示,可以看出本文模型在13个规格的烟盒规格识别中取得了很高的正确率,在测试集上11个规格的烟盒没有出现分类错误的样本,测试集中错分的少数样本主要存在于软硬中华两个规格当中,我们推测可能是由于软硬中华从感官上来说确实相似度比较高。
图7 混淆矩阵
为了进一步分析注意力机制的有效性,本文采用类别激活映射Grad-CAM[22]技术来对于网络的重点“关注点”可视化。如图8所示,左边一列是原始的输入图像,中间两列分别是ResNet-50和ResNet-101的可视化图,最右边一列是ResNet-101和自适应单元结合的可视化图。在利用Grad-CAM对不同的网络进行可视化后,通过对比,可以清晰地观察到,在引入自适应选择卷积网络后,网络在不同的背景下可以更好地提取出烟盒主体的位置,并且最终判别物体的概率也更高,这进一步表明了通过引入注意力机制的确让模型学会了关注重点的信息过滤无关的信息,从而在一定程度上改善了分类的效果。
图8 不同模型感兴趣区域可视化
本文在烟盒规格识别的问题上引入了深度学习的方法,通过将深度残差网络和自适应选择卷积网络相结合,在原有残差单元中嵌入了自适应选择卷积网络,不仅提升了网络的特征表示和特征辨别能力,也取得了99.2%的准确率。实验结果证明了将深度学习方法用于烟盒的规格分类是可行且有效的。与传统的人工识别方法相对比,本文方法不仅有效地提升了准确率而且具有大规模部署的潜力,具有更好的泛化性和鲁棒性。目前我们采集的数据集共有2 500幅图像,未来我们将尝试在更大规模的数据集上进行更加深入的研究以及进一步提高网络的推理效率,将算法进一步部署和应用到烟草行业的工业系统当中。