APP下载

目标检测模型的优化训练方法研究

2020-07-25杨海龙王澧冰

辽宁科技大学学报 2020年2期
关键词:训练方法标签准确率

杨海龙,田 莹,王澧冰

(辽宁科技大学 计算机与软件工程学院,辽宁 鞍山 114051)

现阶段流行的深度学习检测框架主要包括两个类别:单阶段检测模型和两阶段检测模型。YOLO系列算法属于单阶段类别,例如YOLO[1]、YOLO9000[2]、YOLOv3[3]和 SSD[4]。R-CNN[5]和相应延伸出来的变体网络则属于两阶段类别,例如Fast R-CNN[6]、Faster R-CNN[7]和 Μask R-CNN[8]。单阶段和两阶段模型都是基于图像分类骨干网络,例如ZFNet[9]、VGG[10]和ResNet[11]等,来进行特征提取从而完成检测任务。尽管现在的检测模型准确率越来越高,推理速度越来越快,但是它的训练并不高效,从而制约了其检测性能的进一步提升。

图像分类任务是计算机视觉领域多个研究方向的基础。针对如何更好地训练分类模型,目前已有很多方法被用于实践。但是对于目标检测的深度学习模型而言,和分类网络相比,它们的计算复杂度更高,网络设计也更复杂,优化难度也大大增加。所以针对目标检测模型的优化训练方法的研究和实验不是很多。

在单阶段目标检测器中,最后的分类和检测结果直接由一个卷积神经网络(Convolutional neural network,CNN)生成。然而在两阶段检测中,例如Faster R-CNN[7],先由区域生成网络(Region proposal network,RPN)生成感兴趣区域(Region of interest,RoI),最后的预测依据感兴趣区域坐标在特征图上采样和池化后得到特征来生成。这种特征处理流程的不同会导致两种模型在数据处理和网络训练优化上区别较大。有的训练方法只对单阶段检测模型有效,有的则只对两阶段检测模型有效,找到对两者都有性能提升的优化训练方法是其中的关键。

本文将数据增强、类标签平滑、学习率优化和随机尺度训练四种优化训练方法,用于单阶段检测模型YOLOv3和两阶段检测模型Faster R-CNN中,通过实验证明这些方法不但对提升两种模型的检测准确率都有一定的帮助,而且也有着很好的泛化能力。并且,只是将这些方法加入到检测模型训练的过程中,并不会对模型的网络设计做出任何改变,因此对模型推理阶段不造成额外的计算代价。

1 优化训练方法

1.1 数据增强

本文采用两种数据增强方式:随机颜色扰动和随机几何变换。随机颜色扰动包括对图片色调、对比度、亮度和饱和度的调整。随机几何变换方式包括随机的水平翻转、随机的图片大小调整和随机的图片裁剪和扩大等。对于Faster RCNN,不采用随机裁剪的增强方式。图1展示了亮度与对比度调整、水平翻转和随机裁剪三种常用数据增强方式。

图1 数据增强方式Fig.1 Data augmentation method

1.2 类标签平滑

在卷积神经网络的最后阶段通常采用softmax函数进行分类,计算一个类别在所有类别n中所占的概率

式中:z表示最后分类输出层的没有归一化的计算值;p表示最后的计算概率值;下标i表示计算物体的类别。

检测网络训练过程中的目标分类损失,采用交叉熵损失函数

式中:pi是输出的分布概率;qi是基准的概率分布。

对于常用的独热(One-hot)向量形式,在q的分布中,正确类的标签的概率值是1,其他类的标签概率值都是0。本文在q的分布中采用类标签平滑分布[12]

式中:K表示训练集的总类别数;y表示基准标签类别;ε是常数,用来降低模型对正确类别的置信程度,本文设置ε=0.01。

1.3 学习率优化

在训练网络时,初始阶段设置的学习率较大,随着训练的进行逐渐降低学习率。步幅学习率法是常用的学习率设置方法,如图2中虚线所示,随着迭代的进行,训练到达一定的迭代次数时,学习率便会乘以一个0到1之间的小数,从而达到降低学习率的目的。例如在Faster R-CNN[7]的训练过程中,迭代进行到60 K时,学习率便会乘以0.1这个比率进行自降;在YOLOv3[3]的训练中,当迭代进行到40 K和45 K时,学习率都会乘以比率0.1,从而使学习率降低。

本文采用余弦学习率方法[13],将学习率随着迭代进行的变化曲线定义为余弦形式。如图2实线所示。假设模型训练要进行150个epoch,可以将学习率定义为

式中:l表示迭代过程中的学习率;x表示迭代进行的次数。

图2 学习率优化方法Fig.2 Learning rate optimization method

为了更好地避免模型训练开始阶段产生梯度爆炸现象,将学习率预热启发方法[14]用于本文学习率优化过程中。如图2中初始的虚线所示,在训练开始阶段的迭代中线性地快速增加学习率。

1.4 随机尺寸训练

正常情况下训练集图片的尺寸是多样的,考虑到内存的限制和使得批量处理更为简单,在文献[1]和[4]中,训练图片都以固定尺寸输入到网络中,导致最后训练得到的模型对于输入图片的鲁棒性不高。

本文探究随机尺度训练方法[3]对于网络性能的提升程度。如图3所示,以YOLOv3网络为例,输入的训练图片尺寸依次增加64分辨率,尺寸为352、416、480和544四个分辨率,在同一次迭代中的图片尺寸大小保持一致。

图3 随机图片尺度训练Fig.3 Random picture scale training

2 实验结果与分析

为了验证本文提出的优化训练方法对于目标检测性能的提升程度,选用单阶段检测器YOLOv3和两阶段检测器Faster R-CNN作为实验的基础检测网络。YOLOv3由于它的高效性和准确性,是目前公认的最优秀的检测器之一。现在很多两阶段检测器其实都是Faster R-CNN的变体。实验中为了排除测试方法的不同对于结果的影响,测试结果统一为单尺度、单模型,通过标准的非极大值抑制(Non-maximum suppression implementation,NΜS)后的输出结果。

2.1 实验平台

实验采用的Centos7服务器CPU型号为Intel® Xeno(R)CPU E5-2650v4@2.20GHz,内存为96G,GPU为双路NVIDIAGTX 1080Ti。实验平台为基于python3的anaconda深度学习集成环境,深度学习框架为mxnet。

2.2 PASCAL VOC数据集

PASCALVOC[15-16]是一个常用的标准目标检测数据集。实验把VOC07 trainval和VOC12 trainval作为训练集,VOC07 test作为验证集。通过PASCALVOC开发工具包中定义的测试标准进行评估后,得到最终的平均准确率结果(mean average precision,mAP)。对于YOLOv3模型,验证时统一使用416×416分辨率的图片。当采用随机图片尺寸训练方法时,随机输入352、416、480和544四个分辨率的图片;不采用随机尺寸方法时,输入图片的分辨率固定为416×416。对于Faster RCNN模型,训练和验证时输入的图片短边都固定为600像素,同时保证长边尺寸不超过1 000像素。

2.2.1 实验结果 表1为YOLOv3模型在VOC 07数据集上的实验结果。对于YOLOv3模型,数据增强方法对于基准mAP贡献了14.98%,接近15%。随机图片尺度训练、学习率优化和类标签平滑也都能在一定程度上提高检测准确率,分别贡献了0.38%、0.45%和0.39%的mAP值。将随机图片尺度训练、学习率优化和类标签平滑三种训练方法综合,能够给YOLOv3模型带来1.22%的准确率提升。在单尺度416×416测试的情况下,mAP达到了81.38%。图4为应用优化训练方法后的YOLOv3检测采样示例图片的可视化,证明模型能够很好地检测到图片中的物体。

表1 YOLOv3实验结果,%Tab.1 Experimental results of YOLOv3

图4 YOLOv3应用训练方法目标检测示例图Fig.4 Detection examples using training method YOLOv3s

表2为Faster R-CNN模型在VOC 07数据集上的实验结果。对于Faster R-CNN模型,和YOLOv3相比,数据增强方法对于检测准确率的提升就小了很多。当采用数据增强方法训练网络时,mAP只得到了一个很小的0.22%的增加量。学习率优化对于Faster R-CNN的准确率提升为1.79%。类标签平滑的提升率为0.61%。学习率优化和类标签平滑两种优化方法综合能给Faster RCNN带来相比基准高2.40%的mAP提升。图5为应用优化训练方法后的Faster R-CNN检测采样示例图片的可视化,证明模型同样能够很好地检测到图片中的物体。

表2 Faster R-CNN实验结果,%Tab.2 Experimental results of Faster R-CNN

2.2.2 实验结果分析 数据增强对YOLOv3的检测性能起着较大的作用,而对于Faster R-CNN的检测准确率却只有0.22%的较小贡献值。是因为Faster R-CNN训练时,首先通过区域生成网络生成候选区域的坐标,然后依照这些坐标在特征图上采样候选区域,这个过程相当于通过裁剪特征自动地完成了空间特征增强。而YOLOv3等单阶段检测模型直接从原始图像特征生成预测,没有产生候选区域的过程,所以需要图像裁剪和缩放等来进行数据增强,从而达到训练模型的鲁棒性,进而提升检测准确率。

类标签平滑方法的应用分别给YOLOv3和Faster R-CNN带来了0.39%和0.61%的性能提升。对于独热向量形式,正确类的标签概率值为1,其他类的都是0,但是根据softmax函数,实际输出的概率分布中的正确类的概率只能无限接近1,但永远不是1。这就使得模型要对自己的输出概率有很高的置信度,从而使得模型训练过程中有过拟合的倾向,影响模型训练的效果。将ε=0.01的标签平滑方法用于训练,就大大降低了这种过拟合的倾向。

图5 Faster R-CNN应用训练方法目标检测示例图Fig.5 Detection examples using training method Faster R-CNN

学习率优化训练方法给YOLOv3带来了0.45%的准确率提升,对于Faster R-CNN的提升程度更大,为1.79%。传统的步幅学习率方法存在的一个问题是:学习率突然下降会造成接下来几轮迭代中学习动量的震荡,使模型训练变得不稳定。当采用余弦学习率时就避免了这种问题。同时,训练开始阶段的学习率预热启发方法的应用,也很好地避免了梯度爆炸情况的出现。应用余弦学习率和预热启发这两种学习率优化训练方法,使得模型整个训练过程中的梯度更新平稳进行。

在YOLOv3模型的训练中应用随机尺度训练方法,能有效地提高训练模型的鲁棒性,从而给YOLOv3带来0.38%的准确率提升。

2.3 ΜS COCO数据集

为了更好地验证这些训练方法对于检测任务的提升效果,同时也为了验证算法的泛化能力,在ΜS COCO[17]数据集上进一步实验。最终输出的mAP由COCO数据集中定义的新标准mAP@0.50:0.95进行评估后获得。

ΜS COCO数据集相比PASCALVOC的检测难度更大,包含更多的小目标,图片中物体的咬合遮挡情况更为复杂。物体类别相比PASCALVOC的20类增加到了80类,平均每张图片中包含的物体数目和类的数量也有较大的增加。为了更好地检测到小目标,Faster R-CNN训练和验证时输入到网络的图片尺寸被统一到800×1 300分辨率。将数据增强、类标签平滑和学习率优化三种优化训练方法同时用于YOLOv3和Faster R-CNN的训练中。

表3是在ΜS COCO数据集上的训练结果。综合应用本文提出的优化训练方法时,YOLOv3模型的三个不同尺度的检测结果都有一定程度的提升,当验证图片尺度为544时,提升率为2.5%。当验证图片尺度为416时,提升率为3.5%。当验证图片尺度为352时,提升率高达3.9%,表明应用这些方法能更好地提升较小尺度图片的检测效果。将三种优化训练方法综合应用于Faster R-CNN模型,选用特征提取网络为ResNet50时,mAP有0.5%的提升;选用网络为ResNet101,则提升程度可以达到0.9%。

对比实验结果表明,本文提出的优化训练方法也可以高效地适用于ΜS COCO数据集,从而证明这些方法有很好的泛化能力。

表3 ΜS COCO实验结果,%Tab.3 Experimental results of ΜS COCO

3 结论

本文在YOLOv3和Faster R-CNN的网络模型训练中应用了数据增强、类标签平滑、学习率优化和随机图片尺寸训练四种优化训练方法,通过实验证明这些方法能够不同程度地提升这两种模型的目标检测准确率。同时,其良好的泛化性也表明这些方法在一定程度上也能够适用于其他的检测网络模型。而且所提出的这些方法并没有对检测模型网络的结构设计做出任何改变,因此不会给模型带来推理阶段的额外消耗。

猜你喜欢

训练方法标签准确率
乳腺超声检查诊断乳腺肿瘤的特异度及准确率分析
不同序列磁共振成像诊断脊柱损伤的临床准确率比较探讨
2015—2017 年宁夏各天气预报参考产品质量检验分析
谈高中数学习题训练方法与答题技巧
无惧标签 Alfa Romeo Giulia 200HP
高速公路车牌识别标识站准确率验证法
壁球反手击球技术及其训练方法
跳远运动员专项力量训练方法
不害怕撕掉标签的人,都活出了真正的漂亮
简论1min跳绳训练方法