«上一篇 下一篇»
  计算机工程  2022, Vol. 48 Issue (4): 70-80  DOI: 10.19678/j.issn.1000-3428.0060395
0

引用本文  

鲁统伟, 徐子昕, 闵锋. 基于生成对抗网络的知识蒸馏数据增强[J]. 计算机工程, 2022, 48(4), 70-80. DOI: 10.19678/j.issn.1000-3428.0060395.
LU Tongwei, XU Zixin, MIN Feng. Knowledge Distillation Data Augmentation Based on Generation Adversarial Network[J]. Computer Engineering, 2022, 48(4), 70-80. DOI: 10.19678/j.issn.1000-3428.0060395.

基金项目

湖北省科技厅重大专项“基于边缘智能计算的多源感知信息融合关键技术研究与应用”(2019AAA045)

作者简介

鲁统伟(1979—),男,副教授、博士,主研方向为计算机视觉、深度学习;
徐子昕,硕士研究生;
闵锋,副教授、博士

文章历史

收稿日期:2020-12-24
修回日期:2021-03-31
基于生成对抗网络的知识蒸馏数据增强
鲁统伟1,2 , 徐子昕1,2 , 闵锋1,2     
1. 武汉工程大学 计算机科学与工程学院, 武汉 430205;
2. 智能机器人湖北省重点实验室, 武汉 430205
摘要:在图像分类和工业视觉检测过程中,缺陷样本量少导致神经网络分类器训练效率低及检测精度差,直接采用原始的离散标签又无法使网络分类器学习到不同类别间的相似度信息。针对上述问题,在区域丢弃算法的基础上,提出一种基于生成对抗网络的知识蒸馏数据增强算法。使用补丁对丢弃区域进行填补,减少区域丢弃产生的非信息噪声。在补丁生成网络中,保留生成对抗网络的编码器-解码器结构,利用编码器卷积层提取特征,通过解码器对特征图上采样生成补丁。在样本标签生成过程中,采用知识蒸馏算法中的教师-学生训练模式,按照交叉检验方式训练教师模型,根据教师模型生成的软标签对学生模型的训练进行指导,提高学生模型对特征的学习能力。实验结果表明,与区域丢弃算法相比,该算法在CIFAR-100、CIFAR-10数据集图像分类任务上的Top-1 Err、Top-5 Err分别降低3.1、0.8、0.5、0.6个百分点,在汽车转向器轴承数据集语义分割任务上的平均交并比和识别准确率分别提高2.8、2.3个百分点。
关键词数据增强    神经网络分类器    工业视觉    生成对抗网络    知识蒸馏    
Knowledge Distillation Data Augmentation Based on Generation Adversarial Network
LU Tongwei1,2 , XU Zixin1,2 , MIN Feng1,2     
1. School of Computer Science and Engineering, Wuhan Institute of Technology, Wuhan 430205, China;
2. Hubei Key Laboratory of Intelligent Robot, Wuhan 430205, China
Abstract: In the processes of image classification and industrial vision detection, due to a small number of defect samples, the training efficiency of the neural network classifier is low and the detection accuracy is poor.However, directly using the original discrete label does not allow the network classifier to learn the similarity information between different categories.To solve these problems, a knowledge distillation data augmentation algorithm based on the Generation Adversarial Network(GAN) is proposed based on the dropout algorithm.To reduce the noninformation noise caused by area dropout, the algorithm uses patches to fill the dropout region.The patch generation network preserves the encoder-decoder structure in the GAN and extracts features using the encoder convolution layer.The decoder then samples the feature graph to generate patches.The teacher-student training mode of the knowledge distillation algorithm is used to generate sample labels.First, the teacher model is trained according to the cross-test method, and the soft labels generated by the teacher model are used to guide the training of the student model to improve the learning ability of the student model.The experimental results show that the proposed algorithm can improve image classification and semantic segmentation compared with the dropout algorithm.The Top-1 Err and Top-5 Err values of the CIFAR-100 dataset image classification task are reduced by 3.1 and 0.8 percentage points, respectively.The Top-1 Err and Top-5 Err values of the CIFAR-10 dataset image classification task are reduced by 0.5 and 0.6 percentage points, respectively.The mean Intersection over Union(mIoU) of the semantic segmentation task on the automobile steering gear bearing dataset is improved by 2.8 percentage points, and the recognition accuracy is improved by 2.3 percentage points.
Key words: data augmentation    neural network classifier    industrial vision    Generation Adversarial Network(GAN)    knowledge distillation    

开放科学(资源服务)标志码(OSID):

0 概述

随着深度卷积神经网络(Deep Convolutional Neural Network,DCNN)[1-2]的不断改进和发展,其在图像分类[3-5]、目标检测[6-7]、语义分割[8-9]、视频分析[10-11]等计算机视觉任务中得到广泛应用并取得重要研究成果。为进一步提高DCNN分类器训练效果,研究人员提出了数据增强[12]、正则化[13-14]等一系列方法,并且设计区域丢弃算法(dropout),将dropout用于删除隐藏的激活层,防止卷积神经网络(Convolutional Neural Network,CNN)过于关注图像中某块的小区域特征。dropout算法还可以直接应用在输入数据样本中,通过随机丢弃部分像素区域得到新样本,现已被证明可使模型注意力不局限于样本的局部区域,更好地学习样本特征的整体分布,提高分类器的训练准确率[15]。由于dropout算法去除的区域通常被简单地归零或填充随机噪声,因此对于小尺寸的图像,减少了训练图像上特征像素的比例,不利于进一步分类与定位。在基于工业视觉的语义分割任务中,直接采用dropout算法会产生两方面的问题。一方面,由于工业零部件正负样本区别小,在人工标注时会产生错误标签,因此直接采用dropout算法会忽略错误标签对模型的误导[16-17]。另一方面,工业零部件的训练集样本具有重复性与相似性[18],现有的填充策略和图像融合策略会引入非信息噪声,降低样本信噪比[19-20]

DEVRIES等[21]提出Cutout数据增强算法,对原样本图像使用掩模遮挡一个矩形区域以得到新样本图像,新样本图像标签采用原始标签。YUN等[22]在此基础上提出CutMix数据增强算法。该算法与Cutout算法相似,不同之处在于CutMix使用其他样本的随机区域进行填充,并先分别按照两个样本的原始标签进行损失计算,再将两者求和得到最终损失值。这两种数据增强方法在提高分类器训练效率上取得了较好的结果,但仅对原标签做简单的线性变化或直接使用原标签作为新样本标签的方法是无法表示标签中离散信息的,这会导致网络模型无法将离散信息也作为一种特征进行学习。为解决上述问题,本文提出一种基于生成对抗网络(Generation Adversarial Network,GAN)的知识蒸馏数据增强方法。对区域丢弃算法中的丢弃运算进行改进,在生成对抗网络[23]的基础上,对其生成器和判别器结构进行优化,设计一种补丁生成网络。补丁生成网络通过学习原样本的像素分布生成填充补丁,以减少随机噪声。同时,在区域丢弃算法中引入基于知识蒸馏的标签生成算法,通过教师网络获得Soft-lable并辅助学生网络进行训练[24]。Soft-lable比普通的One-Hot标签具有更高的信息熵,能有效辅助学生网络学习不同类别间的类间差距,减少错误标签对模型的影响,提高分类器的精度。

1 区域丢弃算法

区域丢弃算法作为一种正则化方法被广泛应用于防止神经网络过拟合,通过在网络的前向传播过程中按照一定比例舍弃节点的激活值的方式增强网络分类器的训练效率。与全连接层相比,区域丢弃算法在卷积层中的效果较差,这是由于卷积层使用了卷积核,使得卷积层的参数量远少于全连接层,因此在解空间中对正则化的要求更少,并且在卷积层中特征图的相邻像素信息相似,舍弃掉的像素信息又存在于其他的像素中,继续向后传递。

为提高区域丢弃策略在卷积层中的正则化效果,将卷积层中的丢弃操作设置到输入层。通过直接移除输入图像的连续区域迫使网络去学习全局信息,而不仅关注于局部区域。在许多视觉任务中常常存在目标物体被遮挡的情况,区域丢弃算法也可以看作是对遮挡的模拟,定义如下:

$ \begin{array}{l}\overline {x}=M\cdot x+(1-M)\cdot x\\ \overline {y}=y\end{array} $ (1)

其中:$ x\in {\mathbb{R}}^{W\times H\times C} $表示原始样本,W表示原始图像的宽度、H为图像高度、C为图像通道数;$ \overline {x} $表示生成的新样本,采用原始样本标签y作为新样本$ \overline {x} $的标签$ \overline {y} $$ M\in {\left\{\mathrm{0, 1}\right\}}^{W\times H} $表示一个尺寸为ssize×ssize的矩形二值掩模。掩模M的中心位置是随机生成的,像素坐标(xy)范围如式(2)所示:

$ x\in [0, {w}_{\mathrm{w}\mathrm{i}\mathrm{d}\mathrm{t}\mathrm{h}}], y\in [0, {h}_{\mathrm{h}\mathrm{e}\mathrm{i}\mathrm{g}\mathrm{h}\mathrm{t}}] $ (2)

其中:$ {w}_{\mathrm{w}\mathrm{i}\mathrm{d}\mathrm{t}\mathrm{h}} $表示图像宽度;$ {h}_{\mathrm{h}\mathrm{e}\mathrm{i}\mathrm{g}\mathrm{h}\mathrm{t}} $表示图像高度。

掩模左上角(x1y1)、左下角(x1y2)、右上角(x2y1)、右下角(x2y2)这4个角点坐标与中心坐标的关系如式(3)所示:

$ \begin{array}{l}[{x}_{\mathrm{1, 2}}=(x\pm {s}_{\mathrm{s}\mathrm{i}\mathrm{z}\mathrm{e}}//2\left)\right]\in [0, {w}_{\mathrm{w}\mathrm{i}\mathrm{d}\mathrm{t}\mathrm{h}}]\\ [{y}_{\mathrm{1, 2}}=(y\pm {s}_{\mathrm{s}\mathrm{i}\mathrm{z}\mathrm{e}}//2\left)\right]\in [0, {h}_{\mathrm{h}\mathrm{e}\mathrm{i}\mathrm{g}\mathrm{h}\mathrm{t}}]\end{array} $ (3)

对分类任务常用的CIFAR-10数据集使用区域丢弃算法后的样本效果见图 1

Download:
图 1 区域丢弃后的CIFAR-10数据集样本 Fig. 1 CIFAR-10 dataset sample after dropout

区域丢弃算法虽然能通过单样本进行数据增强,并提高网络训练效率,但是直接应用于工业摄像机获取到的工业数据集还存在如下问题:1)在使用二值掩模对原样本进行遮挡时,会引入二值噪声,需要对所有样本的所有像素值进行归一化操作,这会增加额外的计算量;2)使用原样本的标签进行网络损失计算,这对于图像分类任务和语义分割任务都是不合适的,在图像分类任务中每张图像仅对应一个标签,原标签无法体现出不同类别之间的差异信息,在语义分割任务中每一个像素点都对应一个One-Hot标签,丢弃的像素点被二值填充,此时仍采用像素点的原始标签是不合理的。针对以上问题,本文对区域丢弃算法在标签生成方式上进行改进和优化。

2 基于GAN的知识蒸馏数据增强算法

本文主要从非监督单样本数据增强方式和新标签生成方式2个方面对区域丢弃算法进行改进。

2.1 改进的数据增强算法

为进一步提高数据增强算法的生成样本质量,引入补丁填充算法。补丁填充算法被使用在CutMix算法中,能减少丢弃像素导致的信息缺失、训练困难问题。受补丁填充算法的启发,构造一种补丁生成网络,并将其应用在区域丢弃算法中。

补丁生成网络整体采用常规GAN模型中的生成器-判别器结构作为网络骨架,受到PATHK等[25-26]在图像修复任务中的启发,本文算法将生成器G设计为一个编码器-解码器(Encoder-Decoder)结构。对于生成器G输入一张512×512大小的三通道图片,设置区域丢弃使用的掩模尺寸为128×128,即生成器需要生成一个128×128大小的补丁。输入图片经过4次卷积池化下采样为32×32大小的512维特征,再经过2次上采样(UpSampling)恢复尺寸得到最终的三通道128×128的填充补丁。补丁生成网络生成器G和常规GAN生成器G结构见图 2

Download:
图 2 补丁生成网络生成器与常规GAN生成器结构 Fig. 2 Structure of patch generation network generator and conventional GAN generator

图 2可以看出,与常规GAN生成器相比,补丁生成网络将编码器中的全连接层替换为卷积层,在解码器中增加了上采样层以控制最终获得的补丁尺寸。同时,在激活函数选择上,改用系数为0.2的LeakyReLu激活函数替代tanh激活函数,以防止在训练过程中的梯度震荡问题。

在生成器中的编码器Encoder设计为一个典型的卷积结构,共使用4层卷积层,这4个卷积层分别使用32个步长为2的3×3卷积核、64个步长为2的3×3卷积核、128个步长为2的3×3卷积核和512个步长为2的1×1卷积核。输入图像经过4次卷积层后,特征图的尺寸缩小为原图的1/16。生成器中的解码器Decoder通过两次上采样恢复特征图尺寸。在上采样的具体实现中,直接采用反卷积(Deconv)层虽然更简单,但其存在棋盘效应,必须人为设计卷积核尺寸才能整除步长。为了减少网络设计的难度,通过2次叠加使用上采样层和卷积层实现上采样操作。第1次使用上采样层与128个步长为1的3×3卷积层将32×32×512的特征图扩大为64×64×128,第2次使用上采样层与64个步长为1的3×3卷积层将64×64×128的特征图继续扩大为128×128×64,之后通过一个卷积层将特征图的尺寸调整为128×128×3。仅进行两次上采样操作的原因为:与常规GAN的解码器需要将特征图尺寸还原到原图大小不同,补丁生成网络仅需要将特征图尺寸还原到与补丁相同的大小(原图大小的1/4)。

在判别器的设计上,常规GAN判别器结构与补丁生成网络判别器结构见图 3

Download:
图 3 补丁生成网络判别器与常规GAN判别器结构 Fig. 3 Structure of patch generation network discriminator and conventional GAN discriminator

图 3可以看出,补丁生成网络判别器的设计参考常规GAN判别器的结构,但在卷积层后没有再使用最大池化层,而是将这些信息最后直接平化(Flatten)输入到全连接层中。在经过激活函数后,补丁生成网络判别器还加入了BN层加快收敛速度。

判别器的输入为生成器生成的128×128×3尺寸的补丁,经过3个卷积层和1个平化层,最后输出1个一维概率值。3个卷积层分别使用64个步长为2的3×3卷积核、128个步长为2的3×3卷积核和256个步长为1的3×3卷积核。加入平化层是将32×32×256的特征一维化成26 244个一维向量,使卷积层与全连接(Dense)层进行过度。最终通过sigmoid激活函数输出一个表示该补丁是否为真的一维概率值。

基于生成对抗网络的补丁填充算法定义如下:

$ \begin{array}{l}X=D\left[E\right(M\cdot x\left)\right]+(1-M)\cdot x\\ Y=y\end{array} $ (4)

其中:X表示新样本;新样本的标签Y先使用原始样本标签y,本节仅讨论图像的非监督数据增强变化规则,在下节中将会对样本标签的生成方式进行详细讨论;$ M\in {\left\{\mathrm{0, 1}\right\}}^{W\times H} $表示区域丢弃算法中使用的二值掩模;$ E(M\cdot x) $表示将区域丢弃样本作为编码器的输入;$ D\left(E\right(M\cdot x\left)\right) $表示解码器生成的填充补丁。

对图像分类数据集和语义分割数据集分别使用补丁填充算法后的样本效果见图 4。考虑到生成像素分布完全拟合的样本需要大量的时间,为方便讨论,本文设置epoch为1 000,batch_size大小为8以提高补丁生成效率。从图 4(a)图 4(b)图 4(c)图 4(d)中可以看出补丁像素会随着迭代次数的增加,逐渐接近原样本像素分布。同时,本文算法生成的补丁并非仅还原原样本图,而是与原样本的低尺度图像像素分布接近,这样在一个mini-batch中还能够增加多尺度信息。但在CIFAR-10数据集中,考虑到样本尺寸过小,生成低尺度图像意义不大,本文将补丁的拟合对象调整为全局图像,见图 4(e)

Download:
图 4 填充补丁后的图像样本 Fig. 4 Image sample after padding patch
2.2 改进的标签生成算法

知识蒸馏是一种模型压缩方法,目的是将知识从性能好、参数量大的高精度网络转移到易于部署、参数量小的模型中。这种训练模式也被称为教师-学生模式。教师模型是由一个或者多个网络组成的复杂模型,学生模型是一个网络结构简单、易于调整参数的模型。教师模型在训练中给予学生模型的指导称为知识,知识的定义如下:

$ {q}_{i}=\frac{\mathrm{e}\mathrm{x}\mathrm{p}\left(\frac{{z}_{i}}{T}\right)}{\sum\limits_{j}\mathrm{e}\mathrm{x}\mathrm{p}\left(\frac{{z}_{j}}{T}\right)} $ (5)

其中:j表示样本集合;z表示教师模型最后一层的输出;T表示蒸馏所采取的温度,同时反映了标签的软化程度,在知识蒸馏过程中取T为1。

引入知识蒸馏算法生成数据增强样本的标签,将其与标签平滑方法相融合,提出一种基于知识蒸馏的标签生成算法。基于知识蒸馏的标签生成算法流程见图 5

Download:
图 5 基于知识蒸馏的标签生成算法流程 Fig. 5 Procedure of label generation algorithm based on knowledge distillation

改进的基于知识蒸馏的标签生成算法引入了标签融合模块,见图 5中的虚线框。将教师网络训练学习到的知识通过与真实标签混合的方式传递给学生网络,设教师网络由N个复杂CNN组成,则传递的知识共有N个。相较于直接使用未采取知识蒸馏的One-Hot离散标签,使用经过蒸馏的知识对学生网络进行训练可以学习到不同类别间的相似度信息,从而提高分类与分割任务的精度。同时,在语义分割数据集的数据清洗过程中,通常发现人工标定错误的样本,通过标签混合的方式也能减少错误的标签信息所占的权重比例,降低训练过程中错误标签对模型产生的误导。

基于知识蒸馏的标签生成算法定义如下:

$ L=\alpha \cdot {L}_{\mathrm{s}\mathrm{o}\mathrm{f}\mathrm{t}}+\beta \cdot {L}_{\mathrm{t}\mathrm{r}\mathrm{u}\mathrm{e}} $
$ {L}_{\mathrm{s}\mathrm{o}\mathrm{f}\mathrm{t}}=\frac{\mathrm{e}\mathrm{x}\mathrm{p}\left({p}_{i}\right)}{\sum\limits_{K=1}^{N}\mathrm{e}\mathrm{x}\mathrm{p}\left({p}_{k}\right)} $ (6)

其中:生成的标签LLtrueLsoft按比例混合得到,Ltrue表示人工标注的真实标签,Lsoft表示通过教师网络获取到的知识,为保证Ltrue真实标签的所占比例更高,两者按照Beta分布取值,约束两者之和为1;αβ表示混合系数,取α为0.3、β为0.7;pi表示教师网络对第i个样本的预测值;N表示样本数量。

3 实验结果与分析 3.1 数据集

为验证本文数据增强算法和标签生成算法的有效性,分别在图像分类和语义分割两个任务上进行实验。对于图像分类任务采用CIFAR-10和CIFAR-100数据集[27]。CIFAR-10数据集是一个被图像分类任务广泛使用的数据集,包含10个类别的32×32大小的三通道RGB图像,每个类别包括50 000张训练样本和10 000张测试样本,部分样本见图 6

Download:
图 6 CIFAR-10数据集部分样本 Fig. 6 Partial sample of CIFAR-10 dataset

CIFAR-100数据集是在CIFAR-10数据集的基础上进行扩充得到,包含20个父类(superclass),每个父类又包含5个子类(classes),即100个类别的32×32大小的三通道RGB图像,其中每个子类包含500个训练样本和100个测试样本。CIFAR-10和CIFAR-100数据集的每个样本按照固定的命名格式进行命名,每张图像的标签为其名字的首个数字,例如样本名“2_403.jpg”表示样本的标签为2。

由于目前没有用于语义分割的工业数据集,因此语义分割任务采用汽车转向器轴承数据集,该数据集由轴承装配线上的工业相机拍摄得到,共2 020张样本图像,训练集共1 212张样本图像,测试集和验证集分别为404张样本图像。汽车转向器轴承数据集中正负样本的4种不同位姿见图 7,凹槽用圆圈标出,非凹槽用矩形标出。汽车转向器分为内侧与外侧,当且仅当内侧与外侧均为凹槽时才是正样本,见图 7(a),其余位姿均为负样本见图 7(b)图 7(c)图 7(d)。该数据集包括正样本和负样本2个类别,其中负样本存在3种位姿,正样本存在1种位姿。

Download:
图 7 汽车转向器轴承数据集样本 Fig. 7 Sample of automobile steering gear bearing dataset

汽车转向器轴承数据集全部由手工标注,数据集标注示例见图 8(a),示例图像对应的json文件见图 8(b),其中,label表示标签名,points表示识别目标的像素点坐标。

Download:
图 8 数据集标注示例 Fig. 8 Example of dataset annotation
3.2 评价指标

通过以下指标[28]评价基于生成对抗网络的知识蒸馏数据增强算法的性能:

1)最低k错误率(Top-k Error)。Top-k Error表示对每一类最终预测结果中最大的k个值不包含真实标签的概率。Top-k Error越小表示分类精度越高。

2)特征曲线下面积(Area Under the Receiver Operating Characteristic,AUROC)。AUROC表示模型随机预测到的正样本次数比负样本次数多时的数学期望,其大小为以假正例率(False Positive Rate,FPR)为横坐标、真正例率(True Positive Rate,TPR)为纵坐标的ROC曲线下的面积。TPR与FPR计算公式如式(7)所示:

$ \begin{array}{l}{T}_{\mathrm{T}\mathrm{P}\mathrm{R}}=\frac{{T}_{\mathrm{T}\mathrm{P}}}{{T}_{\mathrm{T}\mathrm{P}}+{F}_{\mathrm{F}\mathrm{N}}}\\ {F}_{\mathrm{F}\mathrm{P}\mathrm{R}}=\frac{{F}_{\mathrm{F}\mathrm{P}}}{{T}_{\mathrm{T}\mathrm{N}}+{F}_{\mathrm{F}\mathrm{P}}}\end{array} $ (7)

其中:$ {T}_{\mathrm{T}\mathrm{P}} $表示预测为正样本、实际为正样本的样本个数;$ {F}_{\mathrm{F}\mathrm{N}} $表示预测为负样本、实际为正样本的样本个数;$ {T}_{\mathrm{T}\mathrm{N}} $表示预测为负样本、实际为负样本的样本个数;$ {F}_{\mathrm{F}\mathrm{P}} $表示预测为正样本、实际为负样本的样本个数。在实际统计中,$ {T}_{\mathrm{T}\mathrm{P}} $$ {F}_{\mathrm{F}\mathrm{N}} $$ {T}_{\mathrm{T}\mathrm{N}} $$ {F}_{\mathrm{F}\mathrm{P}} $均由混淆矩阵获得。AUROC越大表示分类器的精度越高,效果越好。

3)平均交并比(mean Intersection over Union,mIoU)。mIoU表示预测值与真实值的平均交并比。mIoU越大,表示两者重叠越多,分割精度越高,计算公式如式(8)所示:

$ {m}_{\mathrm{m}\mathrm{I}\mathrm{o}\mathrm{U}}=\frac{1}{n}\sum\limits_{i=0}^{n}\frac{{T}_{\mathrm{T}{\mathrm{P}}_{{i}}}}{{T}_{\mathrm{T}{\mathrm{P}}_{i}}+{F}_{\mathrm{F}{\mathrm{P}}_{i}}+{F}_{\mathrm{F}{\mathrm{N}}_{i}}} $ (8)

其中:n表示测试样本数;设第i个样本的预测像素点连通域为Pi、真实标签像素连通域为Ti$ {T}_{\mathrm{T}{\mathrm{P}}_{i}} $表示$ {P}_{i}\subseteq {T}_{i} $时的Pi$ {F}_{\mathrm{F}{\mathrm{P}}_{i}} $$ {F}_{\mathrm{F}{\mathrm{N}}_{i}} $均表示Pi为非Ti子集时预测面积与真实标签的非重合面积。

虽然mIoU是像素级别的评估标准,但是在实际检测任务中可能存在mIoU值大,但分割不准确的情况,见图 9,彩色效果见《计算机工程》官网HTML版。在图 9中,background为模型预测存在凹槽的区域,target为真实标签区域。对于测试样本2,虽然模型对所有凹槽预测正确,但预测区域面积远大于真实标签面积。对于测试样本3,虽然仅预测出一个凹槽,但预测错误的像素面积极小。然而,测试样本3的mIoU甚至比测试样本2的mIoU更大,这对于检测任务显然是不合理的。

Download:
图 9 语义分割示意图 Fig. 9 Schematic diagram of semantic segmentation

为更直观地分析模型检测效果,针对图像级别的转向器凹槽识别任务对式(8)进行修改,得到适用于本文任务的凹槽识别率评估指标。凹槽识别率定义如式(9)所示:

$ {m}_{\mathrm{凹}\mathrm{槽}\mathrm{识}\mathrm{别}\mathrm{率}}=\frac{1}{n}\sum\limits_{i=0}^{n}\frac{{t}_{\mathrm{t}{\mathrm{p}}_{i}}}{{t}_{\mathrm{t}{\mathrm{p}}_{i}}+{f}_{\mathrm{f}{\mathrm{p}}_{i}}+{f}_{\mathrm{f}{\mathrm{n}}_{i}}} $ (9)

设第$ i $个样本实际凹槽连通域像素点集为$ {T}_{i} $$ i\in (\mathrm{1, 2}, \cdots, n) $,模型预测的像素连通域点集为$ {P}_{i} $。当$ {P}_{i}\subseteq {T}_{i} $时,预测凹槽区域正确,$ {t}_{\mathrm{t}{\mathrm{p}}_{i}} $增加1。当$ {P}_{i} $的部分像素属于$ {T}_{i} $的非真子集时,代表部分凹槽预测正确,$ {t}_{\mathrm{t}{\mathrm{p}}_{i}} $也增加1。当$ {P}_{i} $为非$ {T}_{i} $子集时,代表预测区域全部为非凹槽区域,预测全部错误,$ {f}_{\mathrm{f}{\mathrm{p}}_{i}} $$ {f}_{\mathrm{f}{\mathrm{n}}_{i}} $增加1。

3.3 结果分析

在PyCharm中编程实现本文算法,编程语言为Python3.6.10,深度学习框架为PyTorch1.0.0,实验硬件平台包括Intel® CoreTM i7-7700HQ CPU @ 2.80 GHz处理器,以及GeForce GTX 1070 GPU用于加速模型训练。

在教师模型Net-T的选择上,仅使用一个网络模型作为教师模型Net-T。学生模型Net-S使用与教师模型相同的数据集训练,采用五折交叉检验方式来训练教师模型Net-T。将数据集随机分为等量的5份,其中,4份作为训练集,1份作为测试集,重复5次上述过程训练得到教师模型。这样的目的是促使模型从多方面学习样本,避免得到局部最优值。将Net-T每次对数据集的Softmax预测值作为知识蒸馏得到的软标签(Soft-label),将软标签与真实标签(True-label)进行混合获得训练学生模型Net-S使用的标签。生成的软标签保存至csv文件中,部分CIFAR-10数据集软标签csv文件见图 10

Download:
图 10 教师网络生成的软标签 Fig. 10 Soft-label generated by Net-T

图 10可以看出,软标签学习到离散标签所没有体现的类间距离信息。例如,在图 10中image_id为Train_0_0的样本,该样本在轿车(automobile)上的最大预测值为0.515,在卡车(truck)上的第二大预测值为0.288,说明该样本最有可能为轿车,同时该样本与卡车的特征最接近。可见,通过知识蒸馏可以为学生网络Net-S提供原标签中所没有的知识。

学生模型在训练中不对数据集划分,直接使用完整的数据集训练。教师网络训练流程见图 11

Download:
图 11 教师网络训练流程 Fig. 11 Procedure of Net-T training

设置mini-batch为32,max_iter为1 000,训练周期(epoch)为350。为系统地评估本文算法,使ImageNet2017分类竞赛中的最佳网络SE-ResNet50作为骨架网络,该网络模型具有25M的参数量,采用交叉熵函数作为损失函数。

为防止数据集在训练过程中存在过拟合现象,同时为减少模型训练中复杂的调参步骤,采用余弦退火和热重启[29]算法作为学习率调整算法,学习率计算公式如式(10)所示:

$ {\eta }_{\mathrm{t}}={\eta }_{\mathrm{m}\mathrm{i}\mathrm{n}}^{i}+\frac{1}{2}({\eta }_{\mathrm{m}\mathrm{a}\mathrm{x}}^{i}-{\eta }_{\mathrm{m}\mathrm{i}\mathrm{n}}^{i})\left(1+\mathrm{c}\mathrm{o}\mathrm{s}\left(\frac{{T}_{\mathrm{c}\mathrm{u}\mathrm{r}}}{{T}_{i}}{\rm{ \mathsf{ π} }}\right)\right) $ (10)

其中:$ {\eta }_{\mathrm{m}\mathrm{i}\mathrm{n}}^{i} $表示最小学习率,设置为0;$ {\eta }_{\mathrm{m}\mathrm{a}\mathrm{x}}^{i} $表示最大学习率,设置为0.001;$ {T}_{\mathrm{c}\mathrm{u}\mathrm{r}} $表示当前周期;$ {T}_{i} $表示最大周期,设置初始值为20,每当$ {T}_{\mathrm{c}\mathrm{u}\mathrm{r}}={T}_{i} $时,$ {T}_{i}={T}_{i}+{T}_{i}\times 2 $。由此可知,当epoch为20、60和140时,学习率会进行一次重启。学习率曲线见图 12

Download:
图 12 学习率曲线 Fig. 12 Learning rate curve
3.3.1 本文算法与区域丢弃算法的对比

区域丢弃算法与本文算法在CIFAR-100数据集上的损失对比见图 13。从图 13可以看出,在训练初期采用本文算法的损失值会大于区域丢弃算法,这是因为在训练初期生成补丁的像素分布不能很好地与原数据集像素拟合。但随着迭代次数的增加,像素分布越来越接近真实分布,在训练结束时,采用本文算法能得到更低的损失值,并且能更快地达到收敛。总体而言,本文算法能在一定程度上提高网络的训练效率。

Download:
图 13 区域丢弃算法与本文算法的损失对比 Fig. 13 Comparison of loss between dropout algorithm and the proposed algorithm

为更直观地对检测结果进行比较,图 14给出了采用3种不同数据增强算法的热力图。从图 14可以看出,对于测试图片的凹槽检测,本文算法和区域丢弃算法均能正确识别内侧凹槽,但在识别准确率上,特别是对于汽车转向器轴承的外侧区域,仅使用原始数据集而未采用任何数据增强方式的检测效果最差,将转向器外侧凸起和其他区域均错误识别为凹槽。区域丢弃算法会受到背景的影响,将转向器其他区域也识别为凹槽。可见,本文算法的检测效果明显优于区域丢弃算法。

Download:
图 14 语义分割热力图 Fig. 14 Semantic segmentation heatmap
3.3.2 本文算法与其他数据增强算法的对比

为进一步验证本文算法的有效性,将本文算法与Cutout和CutMix这两种数据增强算法进行比较,在CIFAR-100数据集上的分类结果见表 1。选择常用的Top-1 Err和Top-5 Err作为Top-k Err评价标准,Top-1 Err和Top-5 Err越小代表分类效果越好。由表 1可以看出,无论采用何种算法,Top-1 Err均比Top-5 Err高约20个百分点,这是因为预测概率最大的1个结果即为真实标签的情况要少于预测最大的5个结果中包含真实标签的情况。本文算法在CIFAR-100数据集上取得了较好的分类效果,与Cutout算法相比,Top-1 Err降低了1个百分点,Top-5 Err降低了0.4个百分点。与CutMix算法相比,Top-1 Err虽然提高了1个百分点,但Top-5 Err降低了0.1个百分点。

下载CSV 表 1 在CIFAR-100数据集上的分类结果比较 Table 1 Comparison of classification results on the CIFAR-100 dataset 

在CIFRA-10数据集上的分类结果见表 2。从表 2可以看出,本文算法在CIFAR-10数据集上也具有一定的有效性,相较于dropout算法在Top-1 Err和Top-5 Err上分别降低了0.5和0.6个百分点,相较于Cutout算法在Top-1 Err和Top-5 Err上分别降低了0.2和0.5个百分点,但与CutMix算法相比,在Top-5 Err上虽然降低了0.3个百分点,但在Top-1 Err上却增加了0.1个百分点。

下载CSV 表 2 在CIFAR-10数据集上的分类结果比较 Table 2 Comparison of classification results on the CIFAR-10 dataset 

导致CutMix算法相较于本文算法在CIFAR-100和CIFAR-10两个数据集上Top-1 Err上更好的原因为:两个CIFAR数据集的图像大小仅为32×32,图像特点为像素少而像素间包含的语义信息和特征信息多。本文算法不适用于此类特点的图像,因为通过拟合样本像素生成的“假”补丁所包含的特征信息远少于所丢弃的真实图像。CutMix算法虽然丢弃了部分真实图像区域,但填充的补丁是数据集中其他样本图像的真实像素区域,避免了该问题。如果仅使用原样本标签,则生成的补丁与真实区域相比效果会略差。CutMix算法与本文算法在汽车转向器轴承数据集样本上的应用效果见图 15(a)~图 15(c)。在CIFAR-10数据集上,图 15(d)中的真实补丁与图 15(e)中本文算法生成的“假”补丁区别甚大,可以证实上述分析。

Download:
图 15 填充补丁后的CutMix算法与本文算法样本应用效果对比 Fig. 15 Comparison of sample application effect of CutMix algorithm and the proposed algorithm after padding patch

除了在CIFAR-10和CIFAR-100两个数据集上,本文还在汽车转向器轴承数据集上进行数据增强算法性能对比,选用Google提出的DeepLabv3+作为语义分割的骨架网络,该网络在多项指标中均获得最高分类精度[30],结果见表 3。从表 3可以看出,本文算法在语义分割任务上具有较好的效果,相较于dropout、Cutout或CutMix算法在准确率和mIoU上均有一定的提升,相较于CutMix算法在识别准确率和mIoU上均提升了0.4个百分点。这是因为在语义分割任务中,网络模型的预测是像素级别的,CIFAR-10与CIFAR-100数据集中包含32×32大小的图像,而汽车转向器轴承数据集中包含512×512大小的图像,在分类数据集中生成的补丁像素对总像素的像素分布影响更大,所以在分类任务中本文算法较CutMix算法的性能优势并不明显,但在语义分割任务中本文算法性能更优。

下载CSV 表 3 在汽车转向器轴承数据集上的语义分割结果 Table 3 Semantic segmentation results on the automobile steering gear bearing dataset 
3.3.3 消融实验结果与分析

为验证标签生成算法能提升数据增强算法在图像分类与语义分割任务中的精度,设置消融实验。将算法分为3组进行训练:第1组为原始区域丢弃算法;第2组为将数据增强算法改为本文提出的基于生成对抗网络的数据增强算法;第3组在第2组的基础上增加了基于知识蒸馏的标签生成算法。在CIFAR-100数据集上的消融实验结果见表 4,其中,“√”表示包括该算法,“×”表示未包括该算法。从表 4可以看出:对于第1组实验,仅使用原始CIFAR-100数据,Top-1 Err和Top-5 Err分别为28.4%和5.7%;对于第2组实验,仅采用基于生成对抗网络的数据增强算法,Top-1 Err和Top-5 Err相较于第1组实验提升了1.9和0.5个百分点,原因是补丁尺寸占整个像素面积过大,反而会降低信噪比;对于第3组实验,同时使用本文提出的两种算法时却能提高准确率,Top-1 Err和Top-5 Err相较于第1组实验分别降低了3.1和0.8个百分点,达到最优分类精度,这说明知识蒸馏提取到的Soft-label对提高分类精度有一定的效果。

下载CSV 表 4 在CIFAR-100数据集上的消融实验结果 Table 4 Ablation experimental results on CIFAR-100 dataset

在CIFAR-10数据集上的消融实验结果见表 5。从表 5可以看出:对于第1组实验,仅使用原始CIFAR-10数据,Top-1 Err和Top-5 Err分别为4.4%和1.9%;对于第2组实验,与CIFAR-100数据集实验结果类似,由于两个数据集样本尺寸一样,因此仅采用基于生成对抗网络的数据增强算法对Top-1 Err和Top-5 Err的提升效果不明显,甚至会降低准确率;对于第3组实验,同时采用本文提出的两种算法相较于第1组实验分别在Top-1 Err和Top-5 Err上降低了0.5和0.6个百分点,达到最优分类精度。

下载CSV 表 5 在CIFAR-10数据集上的消融实验结果 Table 5 Ablation experimental results on CIFAR-10 dataset

针对表 4中的第2组实验均会受到掩模尺寸影响,降低本文算法效果的问题,在CIFAR-100数据集上分析丢弃区域所使用掩模M尺寸对实验结果的影响。使用与之前实验相同的基准网络与训练策略进行网络训练。评估掩模M的尺寸分别为0×0、4×4、8×8、16×16时的Top-1 Err,其中0×0表示直接采用原图训练,实验结果见图 16。从图 16可以看出,选择掩模尺寸为4×4(即图像尺寸的1/8)时,Top-1 Err取到最小值为25.5%,若继续扩大掩模尺寸为图像尺寸的1/4(即8×8)和1/2(即16×16)均会增加Top-1 Err,降低分类精度。这也证实了表 4中第2组实验精度下降主要是由掩模尺寸导致。在后续实验的掩模尺寸上采用效果最好的4×4掩模尺寸。

Download:
图 16 掩模尺寸对Top-1 Err的影响 Fig. 16 Influence of the size of the mask on Top-1 Err

通常而言,只要提供足够多的训练样本,神经网络的鲁棒性能就能得到极大提升,但当某个样本的特征在已知特征空间以外时,神经网络存在不能以较低的置信度表示没有学到的特征。为了验证本文算法与CutMix和Cutout两种数据增强算法的泛化性能,在OOD样本[31]上对2种数据增强算法与本文数据增强算法进行对比。使用CIFAR-100预训练模型对CIFAR-100数据集中的OOD样本进行预测,通过预测结果来判断泛化性能。OOD样本选取CIFAR-100预训练模型预测的Top-1 Err值与真实标签不同的样本。使用在CIFAR-100上预训练的SE-ResNet50模型,在1 000个测试样本中选出283个OOD样本,然后分别采用基于CutMix算法、Cutout算法和本文算法这3种数据增强算法训练出的网络模型对283个OOD样本进行预测评估。网络模型采用与3.3节中相同的网络模型训练参数和训练策略,预训练模型上的OOD样本预测结果见表 6。从表 6可以看出,本文算法会受到样本尺寸的影响,AUROC相较于CutMix算法降低了0.9个百分点,相较于Cutout算法提高了1.3个百分点。

下载CSV 表 6 预训练模型上OOD样本预测结果 Table 6 OOD sample prediction results on the pre-trained model 
4 结束语

为解决图像分类任务中网络模型无法从离散的标签中学习到不同类别间的相似度信息以及工业视觉检测任务中存在正负样本难区分、样本量少等问题,本文改进区域丢弃算法,提出一种基于生成对抗网络的知识蒸馏数据增强算法,通过生成器-对抗器学习样本的像素分布,生成填充补丁,提高生成数据的信噪比。将知识蒸馏中的教师-学生模型应用到扩充样本的标签生成中,通过教师网络获得Soft-label对学生网络的训练进行指导,将离散的标签信息进行软化,使网络模型对样本的离散空间特征进行更充分的学习。实验结果表明,相较于区域丢弃算法,该算法在CIFAR-100数据集和CIFAR-10数据集的Top-1 Err上分别降低了3.1和0.5个百分点,在Top-5 Err上分别降低了0.8和0.6个百分点。在汽车转向器轴承数据集的语义分割任务中,相较于区域丢弃算法、CutMix算法和Cutout算法,该算法在mIoU上分别提高了2.8、0.4和1.3个百分点,在识别准确率上分别提高了2.3、0.4和0.8个百分点。由于本文所选用数据集均来自理想光照环境,因此下一步将考虑光照变化等因素来改变数据生成方式,同时通过在原样本上增加滤波生成补丁等策略降低补丁生成耗时,提升数据生成质量和实时性。

参考文献
[1]
RAWAT W, WANG Z H. Deep convolutional neural networks for image classification: a comprehensive review[J]. Neural Computation, 2017, 29(9): 2352-2449. DOI:10.1162/neco_a_00990
[2]
JADERBERG M, SIMONYAN K, VEDALDI A, et al. Deep structured output learning for unconstrained text recognition[EB/OL]. [2020-11-15]. http://arxiv.org/abs/1412.5903.
[3]
RUSSAKOVSKY O, DENG J, SU H, et al. ImageNet large scale visual recognition challenge[J]. International Journal of Computer Vision, 2015, 115(3): 211-252. DOI:10.1007/s11263-015-0816-y
[4]
KRIZHEVSKY A, SUTSKEVER I, HINTON G E. ImageNet classification with deep convolutional neural networks[J]. Communications of the ACM, 2017, 60(6): 84-90. DOI:10.1145/3065386
[5]
HE K M, ZHANG X Y, REN S Q, et al. Deep residual learning for image recognition[C]//Proceedings of 2016 IEEE Conference on Computer Vision and Pattern Recognition. Washington D. C., USA: IEEE Press, 2016: 770-778.
[6]
PASZKE A, GROSS S, CHINTALA S, et al. Automatic differentiation in PyTorch[EB/OL]. [2020-11-15]. https://openreview.net/forum?id=BJJsrmfCZ.
[7]
LIU W, ANGUELOV D, ERHAN D, et al. SSD: single shot multibox detector[C]//Proceedings of European Conference on Computer Vision. Berlin, Germany: Springer, 2016: 21-37.
[8]
CHEN L C, PAPANDREOU G, KOKKINOS I, et al. DeepLab: semantic image segmentation with deep convolutional nets, atrous convolution, and fully connected CRFs[J]. IEEE Transactions on Pattern Analysis and Machine Intelligence, 2018, 40(4): 834-848. DOI:10.1109/TPAMI.2017.2699184
[9]
LONG J, SHELHAMER E, DARRELL T. Fully convolutional networks for semantic segmentation[C]//Proceedings of 2015 IEEE Conference on Computer Vision and Pattern Recognition. Washington D. C., USA: IEEE Press, 2015: 3431-3440.
[10]
NAM H, HAN B. Learning multi-domain convolutional neural networks for visual tracking[C]//Proceedings of 2016 IEEE Conference on Computer Vision and Pattern Recognition. Washington D. C., USA: IEEE Press, 2016: 4293-4302.
[11]
SIMONYAN K, ZISSERMAN A. Two-stream convolutional networks for action recognition in videos[EB/OL]. [2020-11-15]. http://arxiv.org/pdf/1406.2199v2.pdf.
[12]
VAN DYK D A, MENG X L. The art of data augmentation[J]. Journal of Computational and Graphical Statistics, 2001, 10(1): 1-50. DOI:10.1198/10618600152418584
[13]
HUANG G, SUN Y, LIU Z, et al. Deep networks with stochastic depth[C]//Proceedings of European Conference on Computer Vision. Berlin, Germany: Springer, 2016: 646-661.
[14]
SZEGEDY C, VANHOUCKE V, IOFFE S, et al. Rethinking the inception architecture for computer vision[C]//Proceedings of 2016 IEEE Conference on Computer Vision and Pattern Recognition. Washington D. C., USA: IEEE Press, 2016: 2818-2826.
[15]
SRIVASTAVA N, HINTON G, KRIZHEVSKY A, et al. dropout: a simple way to prevent neural networks from overfitting[J]. The Journal of Machine Learning Research, 2014, 15(1): 1929-1958.
[16]
赛迪顾问智能制造研究中心. 中国工业机器视觉产业发展白皮书[J]. 机器人产业, 2020(6): 76-95.
CCID Consulting Intelligent Manufacturing Research Center. White paper on the development of China's industrial machine vision industry[J]. Robot Industry, 2020(6): 76-95. (in Chinese)
[17]
王乐. 基于深度学习机器视觉的分拣系统设计与实现[D]. 长沙: 长沙理工大学, 2019.
WANG L. Design and implementation of sorting system based on deep learning of machine vision[D]. Changsha: Changsha University of Science & Technology, 2019. (in Chinese)
[18]
张浩. 液压制动器密封凹槽缺陷机器视觉检测系统[D]. 杭州: 中国计量学院, 2015.
ZHANG H. The detection system of hydraulic brake master cylinder surface defect based on machine vision[D]. Hangzhou: China University of Metrology, 2015. (in Chinese)
[19]
陈立潮, 闫耀东, 张睿, 等. 融合迁移学习的AlexNet神经网络不锈钢焊缝缺陷分类[J]. 智能系统学报, 2021, 16(3): 537-543.
CHEN L C, YAN Y D, ZHANG R, et al. Welding defect classification of stainless steel based on AlexNet neural network combined with transfer learning[J]. CAAI Transactions on Intelligent Systems, 2021, 16(3): 537-543. (in Chinese)
[20]
芦海利, 姚军, 王崇磊, 等. 多源数据融合的低分辨率无人机图像增强处理[J]. 信息技术, 2020, 44(11): 112-116.
LU H L, YAO J, WANG C L, et al. Multi-source data fusion of low-resolution UAV image enhancement processing[J]. Information Technology, 2020, 44(11): 112-116. (in Chinese)
[21]
DEVRIES T, TAYLOR G W. Improved regularization of convolutional neural networks with Cutout[EB/OL]. [2020-11-15]. https://arxiv.org/abs/1708.04552.
[22]
YUN S, HAN D, CHUN S, et al. CutMix: regularization strategy to train strong classifiers with localizable features[C]//Proceedings of 2019 IEEE/CVF International Conference on Computer Vision. Washington D. C., USA: IEEE Press, 2019: 6022-6031.
[23]
GOODFELLOW I, POUGET-ABADIE J, MIRZA M, et al. Generative adversarial networks[J]. Communications of the ACM, 2020, 63(11): 139-144. DOI:10.1145/3422622
[24]
HINTON G, VINYALS O, DEAN J. Distilling the knowledge in a neural network[EB/OL]. [2020-11-15]. https://arxiv.org/abs/1503.02531.
[25]
PATHAK D, KRÄHENBÜHL P, DONAHUE J, et al. Context encoders: feature learning by inpainting[C]//Proceedings of 2016 IEEE Conference on Computer Vision and Pattern Recognition. Washington D. C., USA: IEEE Press, 2016: 2536-2544.
[26]
LIU G, REDA F A, SHIH K J, et al. Image inpainting for irregular holes using partial convolutions[C]//Proceedings of European Conference on Computer Vision. Berlin, Germany: Springer, 2018: 85-100.
[27]
ZHANG H, CISSE M, DAUPHIN Y N, et al. Mixup: beyond empirical risk minimization[EB/OL]. [2020-11-15]. https://arxiv.org/abs/1710.09412.
[28]
ZHONG Z, ZHENG L, KANG G, et al. Random erasing data augmentation[C]//Proceedings of 2020 AAAI Conference on Artificial Intelligence. Palo Alto, USA: AAAI Press, 2020: 13001-13008.
[29]
LOSHCHILOV I, HUTTER F. SGDR: stochastic gradient descent with warm restarts[EB/OL]. [2020-11-15]. https://arxiv.org/abs/1608.03983.
[30]
CHEN L C, ZHU Y K, PAPANDREOU G, et al. Encoder-decoder with atrous separable convolution for semantic image segmentation[C]//Proceedings of European Conference on Computer Vision. Berlin, Germany: Springer, 2018: 801-818.
[31]
HENDRYCKS D, GIMPEL K. A baseline for detecting misclassified and out-of-distribution examples in neural networks[EB/OL]. [2020-11-15]. https://arxiv.org/abs/1610.02136.