基于改进YOLOv3的目标识别方法①
2020-01-15陈正斌叶东毅朱彩霞廖建坤
陈正斌,叶东毅,朱彩霞,廖建坤
1(福州大学 数学与计算机科学学院,福州 350108)
2(中国移动通信集团 福建有限公司漳州分公司,漳州 363000)
随着在限制环境下目标识别算法在识别精度和实时性方面已经接近实用性,研究人员越来越关注对非限制环境下的目标进行准确、实时的识别.特别是针对自然场景中不同尺度和类型的目标进行准确并实时的识别是最具挑战性的任务[1].
移动通信铁塔作为移动通信网络建设中的基础设施,架设在环境极为复杂的自然场景中,为了满足不同场景下的信号需求,移动通信铁塔还具有多种不同的设备类型.因此,为了实现准确、实时的对移动通信铁塔目标识别,其难点主要体现在以下几个方面:(1)移动通信铁塔包含6大类,并且有的类与类之间的差别极小;(2)不同设备类型之间的尺度差别很大;(3)目标铁塔的周围还存在强遮挡、背景干扰等问题;(4)采集的图像还存在光照变化、分辨率不统一等问题.由于背景复杂、周围物体遮挡、光照变化等因素引起的干扰导致在复杂环境下的目标识别问题更具有很大的挑战性[2].
近年来,深度学习在计算机视觉中得到了显著的发展,特别是在目标识别方面[3].其主要的方法可以分为两类.一类是基于候选区域的目标识别算法.首先使用区域推荐产生候选目标区域,随后使用卷积神经网络进行分类、回归处理;虽然其精度较高但实时性较差,难以满足实时性需求的应用.其中具有代表性的算法有R-CNN[4],Fast R-CNN[5],Faster R-CNN[6],Mask RCNN[7]等.另一类是基于回归方法的目标识别算法,将识别问题作为一个回归问题处理,直接预测目标位置和类别.这类方法具有较快的识别速度,但相对而言精度偏低,具有代表性的算法有 YOLO[8]、SSD[9]、YOLOv2[10]、YOLOv3[11]等.
YOLOv3在各个领域应用时相对R-CNN具有更好的泛化性,基于YOLOv3的目标检测方法被迅速推广应用到各个领域,如视频监控、零件检测、交通监控等.Qu等人[12]在YOLOv3的基础上,结合图像增强技术,提出了一种用于行人检测的方法.Song等人[13]提出了将YOLOv3算法应用于列车轨道表面的小目标缺陷检测.Bilel等人[14]利用无人飞行器采集的车辆图像对Faster R-CNN和YOLOv3算法进行比较,得出YOLOv3在灵敏度和处理时间方面优于Faster R-CNN的结论.
YOLOv3利用深度残差网络提取图像特征,并实现多尺度预测,获得了目前最好的识别精度与速度的平衡,但是YOLOv3提取特征获得的最小特征图尺寸为13×13,相对于SSD中的1×1仍然偏大,造成YOLOv3对于中等或较大尺度的物体识别效果不好,会产生误检、漏检或重复检测的问题.因此,本文对YOLOv3进行改进,提出了针对自然场景中中等或较大尺寸的目标识别方法CDSP-YOLO.该方法对YOLOv3进行以下两大改进:(1)设计了使用随机空间采样池化(S3Pool[15])的特征提取网络DSP (DarkNet based on S3Pool),以减少因下采样而导致特征图空间信息的丢失.(2)对YOLOv3的多尺度识别策略进行改进,增强方法对中等或较大尺寸的目标识别效果,同时增加锚点框的数量,以提高目标识别的召回率.此外,针对非限制自然场景中目标识别任务存在光照变化等原因而造成的误检或漏检的问题,采用限制对比度直方图均衡化(CLAHE)进行图像增强预处理.最后使用自行设计并标注的移动通信铁塔数据集对CDSP-YOLO方法进行性能评估,实验结果表明本文提出的方法在非限制自然场景中对中等或较大尺寸的目标识别上能够取得较好的效果:准确率达97%,召回率达80%.
1 相关工作
在感兴趣目标识别的方面,近年来得到了飞速的发展,在精确性和实时性上都有了大幅度的提升,主要原因除了GPU计算能力的提升之外,深度卷积神经网络的引入也使得该领域取得了重大突破[16].深度学习目标识别算法已经广泛地应用于各个目标识别领域,同时针对特定问题的改进算法也不断提出,并取得显著的效果.以下将简要介绍利用深度卷积神经网络进行自然场景中中等或较大尺寸目标检测的最新研究.
基于候选区域的目标识别算法首先在图像中产生候选框,然后对候选框中的目标进行分类.Cai等人[17]针对街道环境中的目标识别任务,对Faster R-CNN进行适应性的结构微调,使其对街道环境中的目标识别任务可以获得较好的效果.但是该算法对于具有图像背景干扰及周围物体遮挡的目标识别效果不佳.Weidong Min等人[18]提出一种改进的ViBe算法,用于多个目标的鲁棒性与准确性识别.该算法采用良好的后处理方法抑制动态噪声,同时使用两个分类器进一步解决无法识别具有遮挡和干扰目标的问题,但是实验中对比的方法不是目前最好的方法,不能完全说明该方法的优越性.Cao等人[19]提出具有知识引导训练和预测感兴趣区域的快速深度神经网络,在显著降低整体计算复杂度的同时提高目标识别性能,与传统SSD算法相比,该算法的检测速度显著提高,但是检测精度却没有明显提升.
基于回归问题的目标识别算法使用端到端的神经网络,直接预测图像中目标的位置和类别,获得了目前最好的识别精度与速度的平衡.针对不同场景下的任务需求,基于YOLOv3算法提出了许多改进方法.文献[12–14]已经表明基于改进YOLOv3的目标识别算法,对于特定场景下的小目标识别能够取得较好的效果,但是对于非限制自然场景中中等或较大尺寸的目标识别任务存在的背景干扰和周围物体遮挡的问题,现有改进算法的识别性能仍然有待提升.
2 YOLOv3
YOLO目标识别算法的核心思想是将目标识别问题转化成一个回归问题,实现了仅用一个深度卷积网络,同时在保证准确率较高的前提下实现快速的目标识别[20].
YOLOv3在YOLOv2的基础上进行了一些适应性的改进,包括多尺度识别、多标签分类等,并使用基于ResNet网络改进的 DarkNet-53 网络作为特征提取器,使YOLO系列方法不擅长识别小物体的缺陷得到了改善.YOLOv3也因此成为目前为止最优秀的目标识别算法之一.如图1为DarkNet-53特征提取器的网络结构.
图1 YOLOv3算法的DarkNet-53网络结构
YOLOv3首先将原始图片缩放到416×416的大小,使用了类似 FPN 网络[21]的尺度金字塔结构.其中的DarkNet-53特征提取网络将原始图像按照特征图的尺度大小划分为S×S个等大的单元格,对应的3个尺度的特征图大小为 13×13、26×26、52×52.接着采用浅层次特征和深层次特征的融合获得更具有鉴别性的深层特征.最后在回归预测部分每一个单元格借助3个锚点框(anchor box)预测 3个边框.如图2所示为其中一个网格预测的边框示意图.
YOLOv3在每一个单元格上会为每一个边框预测4个值,即边框左上角坐标(x,y)与目标的宽和高(w,h),记为若目标中心在单元格中相对于图像左上角有偏移并且锚点框具有宽度和高度(Pw,Ph),则修正后的边框为:
其中,锚点框的选择采用维度聚类的方法,传统的聚类算法包括层次聚类和k均值聚类,以及基于模型的方法[22].而在YOLOv3中利用K-means聚类算法对训练集中目标边框的尺寸进行聚类,获取最佳锚点框的尺寸,从而能够预测出更加准确的目标边框.其中的Kmeans聚类算法的距离度量为:
其中,box指 数据集中边框尺寸样本,centroid指类簇中心尺寸.
YOLOv3使用逻辑回归预测锚点框中包含物体的概率.如果锚点框与真实目标边框的重叠率大于任何其他锚点框,则这个锚点框的概率为 1;如果锚点框与真实目标的边框的重叠率大于 0.5,但又不是最大的,则忽略这个预测.YOLOv3 在训练时仅对一个物体分配一个锚点框.如果锚点框中没有包含被认为的物体,则使其在损失函数中不起作用.YOLOv3 在训练过程中使用二元交叉熵损失和逻辑回归来进行类别预测,这种方式使得 YOLOv3 可以对一个目标进行多标签分类.
图2 YOLOv3在13×13的单元格中的预测边框示意图
3 随机空间采样池化(S3Pool)
卷积神经网络(CNN)中的特征池化层主要用于减少参数计算数量,保持尺度的不变性,并增加特征图的感受野大小[23].在中规模的网络,例如:VGG[24]和GoogLeNet[25]中使用最大或者平均池化的方式;而在大规模的网络,例如:ResNet[26]和DenseNet[27],使用带步长的卷积方式进行特征图的压缩.由于以上的方式,仅从某个邻域内通过线性的方式下采样成一个点,而没有更多的考虑特征图的空间关系,使得网络在前向传播时丢失更多的信息.在文献[15]中Zhai等人提出了随机空间采样池化(S3Pool).该算法先使用步长为1的最大池化方式,得到一张与原特征图尺寸相同的特征图;然后将特征图划分成边长为g的网格,再使用随机选择行列的方式确定池化窗口选择的点进行特征图的下采样.如图3为使用池化窗口为2、步长为2、网格大小为2的S3Pool过程.
S3Pool通过将池化过程分解为两个步骤来扩展标准最大池:使用步幅1进行最大池化和使用非确定性的空间下采样,即从特征映射中随机采样行和列.实际上,S3Pool在每个池化阶段隐式地增加了训练数据,这使得学习模型具有更强的泛化能力.并且与带步长的卷积相比,S3Pool不会引入任何附加参数,并且可以插入任何现有的池层.如表1为文献[15]中利用两种流行的图像分类基准评估S3Pool :CIFAR-10和CIFAR-100.文献[15]选用两个目前通用的深度神经网络架构,即NIN[28]和ResNet.对比两个架构中使用步长为2的卷积核(Pool-2)和S3Pool的下采样方法对于算法性能的影响.实验结果表明S3Pool的随机性使得模型具有更好的泛化性.同时相比于使用带步长的卷积方式,S3Pool不会增加任何参数,能够使得模型更易于训练.
图3 使用窗口为2、步长为2、网格大小为2的S3Pool过程
表1 S3Pool与Pool-2在CIFAR-10和CIFAR-100的对比
4 基于YOLOv3的改进
针对现有的目标识别算法对非限制自然场景中中等或较大尺寸目标识别中无法取得较好性能的问题,本文对YOLOv3算法在网络结构和多尺度识别策略上进行改进,提出了使用CLAHE图像增强预处理的CDSP-YOLO目标识别方法.
4.1 YOLOv3网络改进
YOLOv3中Redmon等人借鉴了ResNet提出DarkNet-53特征提取网络.虽然DarkNet-53利用残差网络结构使得网络的训练难度得到降低,并使用了大量的 1×1 卷积核与使用3×3大小步长为 2 的卷积核替代最大池化减少网络总体的参数数量,但是由于通过带步长卷积的下采样方式仍是局部邻域的线性计算,没有考虑邻域之间的空间关系,因此该方法同样不能有效的解决因最大池化而导致特征图空间信息丢失的问题,同时带步长的卷积会使得网络的参数增加,导致训练复杂、并且减慢识别速度.
本文的任务在于完成非限制自然场景中中等或较大尺寸的目标识别.使用在非限制自然场景下采集的移动通信铁塔图像作为算法性能的评估.由于自然场景下的移动通信铁塔图像存在背景复杂、光照变化和周围物体遮挡等的问题,直接采用YOLOv3无法有效的解决上述问题,因此,本文提出了DSP (DarkNet based on S3Pool)特征提取网络.DSP采用随机空间采样池化(S3Pool)的方法对特征图进行下采样.该方法首先使用步长为1的最大池化方法,保留特征图之间更多
的空间关系,再使用随机采样的方式,在每个2×2的区域内进行采样,最后输出下采样之后的特征图.本文的DSP特征提取网络将DarkNet-53中卷积核大小为3×3、步长为2的卷积层替换成S3Pool下采样层,起到最大概率保留特征图空间信息的作用.如图4为改进后的DSP特征提取网络.
图4 改进后的DSP特征提取网络
4.2 多尺度识别改进
YOLOv3 中,引入 FPN网络,同时利用低层特征的高分辨率和高层特征的高语义信息,并通过上采样融合不同层的特征,在3个不同尺度的特征层上识别物体.如图5为移动通信铁塔图像在13×13、26×26、52×52的3个尺度层下的感受野图示,在移动通信铁塔目标较大的情况下,在52×52的尺度层输出特征图的感受野对应目标的部分极小.此时使用锚点框进行预测铁塔目标边框将很难保证锚点框对于大目标的覆盖率.同时,如图6所示移动通信铁塔图像中的铁塔目标大多数为大目标的情况,本文对YOLOv3中的尺度识别模块进行改进,将原有的 3个尺度识别修改为2个尺度识别,在较小特征图给大目标分配更为准确的锚点框.
本文将YOLOv3的3个尺度修改为2个尺度后,需要对锚点框进行重新确定.通过权衡平均交并比与锚点框的数量(如图7)的关系,取16个锚点框,分别为:(12,46)、(16,111)、(22,76)、(39,72)、(22,166)、(30,113)、(75,79)、(33,198)、(49,148)、(40,282)、(57,327)、(291,53)、(64,205)、(94,294)、(135,154)、(194,310).在每个尺度上的每一个单元格借助8个锚点框预测8个目标边框.
基于以上提出的改进思路,如图8中给出了本文提出的改进后的DSP-YOLO (DarkNet based on S3Pool-YOLO)网络结构.网络的输入为416×416的待识别图像,经过DSP特征提取,再利用多尺度识别,最后输出2个尺度的识别结果,分别为13×13×88、26×26×88,其中的88维通道表示使用8个锚点框预测8个目标边框的信息,每个预测边框信息具体包括边框坐标(x,y)、大小(w,h)、置信度(C)及所属6个类别的概率( C1,C2,C3,C4,C5,C6).
图5 移动通信铁塔图像在3个尺度层下的感受野图示
图6 数据集中边框高度的分布情况
图7 锚点框与数据集边框平均交并比的关系图
4.3 图像增强预处理
由于非限制自然场景中的图像在采集过程中存在光线不足或者光照不均匀等的现象,该现象可能导致图像质量下降.因此,采用传统的YOLOv3算法无法很好适用于该场景下的移动通信铁塔目标识别问题.
为了克服以上提及的问题,本文提出了CDSPYOLO目标识别方法.该方法采用了对自适应直方图均衡化算法(AHE)[29]改进的限制对比度直方图均衡化的图像增强预处理算法(CLAHE).其中CLAHE图像增强预处理算法的主要步骤为:
(1)首先将图像的颜色空间由RGB转为HSV.
(2)然后将图像分块,并对每个分块在HSV颜色空间中的V(亮度)分量进行直方图均衡化的操作,该操作将直方图中超过阈值的灰度级像素剪切均分给每个灰度级.
(3)最后将V分量和原先的H、S分量拼接再转到RGB颜色空间得到增强后的图像.
通过CLAHE预处理后可以减小光照对图像质量的影响,同时由于提升了对比度还会增加了样本图像光照的多样性.在训练和测试的过程中对图像进行增强预处理,提高移动通信铁塔图像质量,从而提高模型识别的准确率和召回率.如图9为CDSP-YOLO目标识别方法流程图.
5 实验结果与分析
为了验证DSP-YOLO算法的在识别非限制自然场景中中等或较大尺寸目标的可行性以及采用基于CLAHE图像增强预处理的CDSP-YOLO方法进行目标识别的有效性.本文在中国移动集团福建有限公司漳州分公司提供图像构造的数据集上,通过对比实验的方法,将YOLOv3、DSP-YOLO和CDSP-YOLO方法应用于移动通信铁塔目标的识别.实验服务器的配置参数如下:Intel(R)Xeon(R)CPU E5-2620 v4 @ 2.10 GHz处理器、128 GB内存、16 GB NVIDIA Tesla P100 GPU、Ubuntu 16.04.3操作系统.
图9 CDSP-YOLO目标识别方法流程图
实验主要分为两个部分:第一,通过实验结果定量评估YOLOv3、DSP-YOLO和CDSP-YOLO方法对于中等或较大尺寸的移动通信铁塔目标识别的效果,验证CDSP-YOLO方法的有效性.第二,通过实验结果定性的评估YOLOv3、DSP-YOLO和CDSP-YOLO方法在自然场景中对不同类别的移动通信铁塔的识别能力,验证CDSP-YOLO方法具有良好的鲁棒性.
本次实验规定当模型预测的目标边框与手工标注的边框 IOU ≥ 0.5 时,则认为移动通信铁塔目标识别正确,否则错误.实验选取准确率P(Precision)、召回率R(Recall)和平均交并比mIOU作为评价指标.
准确率:
召回率:
其中,TP为 真正例,FP为假正例,FN为假负例.
5.1 数据集
本文中提到的移动通信铁塔目标识别的原始实验数据由中国移动集团福建有限公司漳州分公司提供,实验数据包含6个类别共240张图像.
由于原始移动通信铁塔图像数据数量较少,本文采取了3种策略对数据进行扩增[30],分别为:(1)随机图像平移:将图像在水平或者垂直方向上进行平移–0.2倍~0.2倍.(2)随机图像缩放:对图像进行随机的缩小或者放大0.2倍.(3)随机图像镜像翻转:将图像进行随机的翻转,得到镜像图像.通过以上的数据扩增方法,本文得到6691张图像用于后续的工作.如图10为中国移动集团福建有限公司漳州分公司提供给的移动通信铁塔目标数据集扩增后的部分数据展示.
5.2 识别结果定量评估
将本文提出的基于CLAHE图像增强预处理的CDSP-YOLO与未采用图像增强处理的DSP-YOLO及YOLOv3进行比较,对比实验结果如表2所示.表中的数据是在500个样本的测试集上获得,其中对网络结构和多尺度改进的DSP-YOLO算法得到了91%的准确率和77%的召回率,相比于YOLOv3分别提升了11%和20%.更进一步的是,在使用了基于CLAHE图像增强预处理的CDSP-YOLO相比于未使用图像增强预处理的DSP-YOLO在准确率和召回率又提高了6%和3%,最终取得97%的准确率和80%的召回率.
图10 移动通信铁塔目标识别数据集展示
表2 实验结果对比
5.3 定性评估与误差分析
为了更直观的展示实验的对比效果,如图11展示了YOLOv3、DSP-YOLO和CDSP-YOLO对中等或较大尺寸的移动通信铁塔测试集中6个类别的不同场景图像的识别结果.实验主要从目标强遮挡、光照变化、图像对比度低、图像模糊和多目标识别等方面对3个方法进行全面的对比.由图11的对比实验结果可知,直接使用YOLOv3算法进行移动通信铁塔目标识别存在漏检和识别错误的问题.而使用适应性的DSPYOLO算法在一定程度上能克服YOLOv3算法出现的漏检问题,但对于图像中出现光照变化、对比度低和模糊的现象,直接使用DSP-YOLO算法进行目标识别也很难有好效果.由图11中第3列的CDSP-YOLO方法识别结果可知,使用CLAHE图像增强预处理方法可以很好的避免图像中出现光照变化、对比度低和模糊的现象对于目标识别的影响.实验对比结果表明本文提出的CDSP-YOLO目标识别方法对于自然场景下的移动通信铁塔目标识别具有良好的鲁棒性.
图11(a)、图11(b)、图11(c)3个对比图存在强遮挡、对比度低和光照变化的问题,仅有CDSP-YOLO方法可以全部识别移动通信铁塔目标.YOLOv3算法相比于DSP-YOLO算法在特征图的下采样过程中丢失的空间信息更多,而导致在存在上述问题的图像中无法有效地将移动通信铁塔目标识别.而DSP-YOLO算法虽然能够识别出一些铁塔目标,但是与CDSPYOLO方法相比存在置信度较低的问题,如图11(c)中DSP-YOLO算法识别的置信度为0.75,而CDSPYOLO方法识别的置信度高达0.94.综上,CDSPYOLO目标识别方法在场景复杂的移动通信铁塔目标识别上具有较好的识别效果.
图11(d)、图11(e)、图11(f)3个对比图为多目标识别问题,同时场景中仍存在遮挡、对比度低和图像模糊的问题,同样仅有CDSP-YOLO算法可以识别出所有的移动通信铁塔目标.YOLOv3算法不仅存在漏检的问题,而且在移动通信铁塔目标类别较为相似的情况下还存在识别错误的问题,主要原因是YOLOv3的特征提取网络的对特征图空间信息的保留能力不足,同时由于没有对多尺度做适应性改进,每个尺度采用3个锚点框无法取得较好的覆盖率从而导致识别的召回率低,因此YOLOv3算法无法直接应用于自然场景中中等或较大尺寸的目标识别任务中.而直接使用DSP-YOLO算法对于场景存在背景干扰、遮挡和光照变化的多目标识别仍存在少数的漏检情况,主要还是因为上述自然场景过于复杂引起.所以采用基于CLAHE图像增强预处理的方法能够有效的提高DSP-YOLO的识别召回率和准确率.
6 总结
本文基于YOLOv3对网络结构和多尺度识别进行改进,提出了一种针对非限制自然场景中中等或较大尺寸的目标识别方法,并自行设计标注了一个移动通信铁塔目标的数据集,用于方法性能的评估.实验结果表明,本文提出的CDSP-YOLO目标识别方法对自然场景中中等或较大尺寸的目标具有良好的鲁棒性,识别的准确率达97%,召回率达80%.
图11 YOLOv3、DSP-YOLO、CDSP-YOLO对比实验结果