地面目标检测技术已成为军事和民用领域的研究热点,但当前仍具有一定的挑战性。因为实际地面目标存在以下特点:一是目标尺度大小多样,航拍图像拍摄高度从几百米到几万米,且地面目标大小不一,大目标有几百米,比如轮船长300米,小目标只有几米,比如汽车长4米;二是地面目标的俯视视角,航拍图像都是高空俯视,目标的方向具有不确定性,而常规图像数据集中目标的方向有一定的确定性,如行人、车辆都是竖立的,在常规图像数据集上训练很好的检测器,检测航拍图像目标,往往效果差,目标检测器需要对目标的方向具有鲁棒性;三是背景复杂度高,航拍图像视野比较大,通常覆盖几个到几十个平方公里的范围,包含各种各样的复杂背景,对目标检测产生较大干扰;四是存在大量密集的小目标,航拍图像中包含很多密集的小目标,几个像素到几十个像素,使得提取目标特征困难,增加了检测的难度。
随着深度学习理论和实践的迅速发展,基于深度学习算法的目标检测方法迅速涌现。与传统特征匹配检测算法不同,深度卷积网络对目标的几何变换、形变、光照具有一定程度的包容性,通过大量的数据训练,会自适应地构建特征描述,具有较好的灵活性和扩展性。2013年Girshick等人[1-2]提出的R-CNN作为深度学习方法应用于目标检测领域的先驱,在VOC2007测试集的mAP被提升至48%。2014年时作者通过修改网络结构使其mAP上升到了66%。在随后的目标检测领域,相继出现了SPP-net[3]、Fast R-CNN[4]、Faster R-CNN[5]、R-FCN[6]、YOLO[7]、SSD[8]等算法。这些算法不仅提高了目标检测精度,而且速度也很快。其中YOLOv3[9]在Pascal Titan X上训练时,在mAP相当的情况下,YOLOv3的速度比RetinaNet[10]快3.8倍,同时YOLOv3可以在22 ms之内执行完一张320×320的图片,mAP为 51.5,和SSD的准确率相当,但是比它速度上快三倍。
由于地面小目标的自身特点,基于深度学习的目标检测算法直接用于地面小目标的检测,会出现漏检和错检现象。地面小目标在图像视野中的占比小,容易受复杂背景干扰,而且自身携带的目标信息量少。基于CNN[11]的目标检测方法在常规目标数据集上的检测效果较好,但对于地面小目标,CNN的池化层会让信息量进一步减少,一个像素为24×24的目标经过4层池化后只有约1个像素,使得维度过低,出现漏检、错检现象。现阶段小目标的检测的方法主要是分为两种:一种是使用多尺度检测网络,如使用特征金字塔网络FPN,设置专门的小目标检测尺度层;另一种是融合深度特征图和上下文特征,丰富目标特征的提取信息,提升小目标检测准确率。本文在YOLOv3算法的基础上,改进YOLOv3的多尺度检测网络,检测数据集DOTA[12]中的地面目标。首先用k-means聚类算法分析图像中目标特征,得到合适的 anchor boxes[6]个数和大小,然后通过增加一个小目标检测特征图,建立特征融合检测层,并进行多尺度训练,最后将改进的YOLOv3算法在测试集上测试。
2016年Redmon等人提出的YOLO算法是一个可以一次性预测多个box位置和类别的卷积神经网络,真正意义上实现了端到端的目标检测。YOLOv3是在YOLO9000[13]基础上进行了许多改进:一是进行多尺度预测,每种尺度预测3个anchor box,使用聚类方式设置anchor box,得到9个聚类中心,将其按照大小分给 13×13,26×26,52×52三个特征图;二是选择darknet-53为基础网络;三是在类别预测上,用逻辑回归替代Softmax作为分类器。YOLOv3算法中,将原始图像缩放至416×416大小,按特征图的尺度大小把一幅图像划分成s×s个网格cell。对每个边界框预测四个坐标值(tx, ty, tw, th),并根据图像左上角的偏移(cx,cy),以及边界框的宽pw和高ph,通过逻辑回归对每个边界框进行预测,如果预测的边界框与真实的边界框值大部分重合且重合率最大,那么这个得分就为1。
在目标检测问题上,YOLOv3算法借鉴FPN[14]思想,融合3个尺度的特征图(13×13、26×26、52×52),用多尺度预测方法检测不同大小的目标,检测常规小目标的效果得到提升。但对于地面小目标的检测,其在图像中尺寸大致为20×20像素甚至几个像素级,YOLOv3网络结构设置的特征图大小已经不能准确的检测出地面小目标。此外,YOLOv3算法中设置的anchor box大小和数量,是根据常规数据集COCO和VOC中目标聚类分析得出来,如果检测地面小目标时也设置相同的anchor box,会出现anchor box过大、目标太小而不匹配,容易造成漏检、错检现象。针对目标检测的具体应用场景,出现了对YOLOv3算法、SSD算法的一些改进研究。文献[15]提出了一种改进损失函数的YOLOv3网络,该网络模型应用一种新的损失函数Tan-Squared Error (TSE),使模型快速收敛。文献[16]将YOLOv3网络中的两个残差网络模块替换为两个密集网络模块, 改进为一种DensE-YOLO深度卷积神经网络结构,准确的检测遥感图像中的飞机。文献[17]针对复杂场景中的车辆进行精准地定位和分类问题,提出了深度神经网络(DF-YOLOv3),实现城市交通监控中不同类型车辆的实时检测。文献[18]中提出一种具有轻量化多尺度特点的深度学习飞机目标检测方法,它利用密集连接结构和双卷积通道构成基础骨干网络,并连接一个多尺度特征融合检测模块,以提高飞机小目标的检测性能。
图1 YOLOv3网络结构
Fig.1 YOLOv3 network structure
YOLOv3采用darknet-53网络,它是由5个残差块组成,并且借鉴了Resnet[19]的思想,如图1所示。残差块由多个残差单元(Resnet unit)组成,而残差单元是通过输入与两个DBL单元进行残差操作构成,其结构如图2所示,DBL单元包含卷积、批归一化(batch normalization)和leaky relu激活函数,其结构如图3所示。
图2 残差单元结构
Fig.2 Residual unit structure
图3 DBL单元结构
Fig.3 DBL unit structure
anchor boxes是通过聚类分析数据集中的目标框而得出的一组固定宽度和高度的初始候选框,其个数和大小会直接影响目标检测的精度和速度。YOLOv3算法采用K-means算法[20]对目标框聚类分析,采用平均重叠度Avg IOU作为目标聚类的度量,目标函数如式(1):
(1)
式中,B表示ground truth目标,C表示聚类簇的中心,nk表示第k个聚类中心的样本数,n表示样本的总数,k表示聚类簇的个数,RIOU(B,C)表示聚类簇的中心框和聚类框的交并比。
选取k=1~15,对数据集DOTA聚类分析,得到k值与Avg IOU之间的曲线关系如图4所示。随着k值的增大,目标函数变化越来越缓慢,变化线的拐点可以认为是最佳的anchor个数。根据图4中曲线关系,本文选取k=12,既可加快损失函数的收敛,又可以提高准确度,12个anchor boxes的大小分别为(14,16),(15,23),(15,27),(19,26),(23,23),(27,19),(25,29),(31,25),(39,26),(36,32)(42,57),(49,37)。
图4 k值与Avg IOU之间的曲线关系
Fig.4 Curve relationship between k value and Avg IOU
本文筛选了数据集DOTA其中三类目标,分别是飞机,大型车,小汽车。图像中既有大目标飞机,也有小目标小汽车,因此检测层既要有大尺度特征图,也要设置小尺度特征图。
YOLOv3通过聚类分析COCO数据集和VOC数据集,设置了9个anchor boxes,其大小分别为(10,13),(16,30),(33,23),(30,61),(62,45),(59,119),(116,90),(156,198),(373,326)。设置了3个尺度的目标检测特征图,每一个尺度对应3个anchor boxes,尺度大的特征图使用小的anchor boxes。通过上采样把小特征图与大特征图进行特征融合,使得YOLOv3既可以检测小目标,又可以检测大目标。图1中尺度y1设置的anchor boxes是(116,90),(156,198),(373,326),尺度y2设置的anchor boxes是(30,61),(62,45),(59,119),尺度y3设置的anchor boxes是(10,13),(16,30),(33,23)。其中尺度y1是用来检测大尺度的目标,尺度y3用来检测小尺度的目标,尺度y3对应的是8倍采样后的特征图,当目标小于像素8×8时,就会出现检测不出来的现象。对于地面小目标,小目标的像素多数要小于8×8,如果用YOLOv3网络直接检测,会出现漏检现象。因此,对于地面小目标的检测,为了使检测网络能获得更多的小目标特征,需要增加更小尺度的目标检测层。
数据集DOTA既有大目标飞机,也有小目标小汽车。本文对YOLOv3中的网络结构进行改进,将原有的3个特征图增加为4个特征图,既保留大尺度目标检测层,又增加小尺度目标检测层。将第2个残差块与经过8倍采样后的特征图进行拼接,建立特征融合检测层,对小目标进行检测。其结构如图5所示,图5中尺度y1设置的anchor boxes是(32,20),(36,32),(63,63),尺度y2设置的anchor boxes是(15,19),(22,33),(33,10),尺度y3设置的anchor boxes是(10,17),(16,9),(16,14),尺度y4设置的anchor boxes是(5,9),(8,4),(9,7)。其中尺度y1是检测大尺度的目标,尺度y4是用来检测更小尺度的目标。尺度y4对应的是4倍采样后的特征图,它可以检测像素级别为4×4,基本符合地面小目标的像素大小,能够检测出各类地面小目标。此外,考虑到检测精度与检测速度的关系,检测层越多,算法检测速度越慢,不再增加小目标检测层。
本文实验平台:CPU:Inter i9-9900k;内存:64G;硬盘:2T+256G;GPU:NVIDIA GeForce RTX 2080Ti;操作系统:ubuntu 18.04LTS;深度学习框架:TensorFlow。
数据集DOTA包含2806张遥感图像(分辨率约4000×4000),188282个标注,分为15个类别。数据集自带标注信息,但需要转换成PASCAL VOC格式。由于图像尺寸大,将其直接输进网络会使处理速度变慢,需要把图像切割成为每幅分辨率为512×512;最后对图像进行类别筛选,选出包含飞机,大型车,小汽车三类目标图像,最后形成10255幅图像,其中8102幅图像作为训练集,2153幅图像作为测试集。
图5 改进为4个检测尺度的YOLOv3结构
Fig.5 Improved to YOLOv3 structure with 4 detection scales
分别用YOLOv3和改进的YOLOv3网络模型对数据集DOTA进行训练。训练阶段,其配置文件如下:初始学习率为0.001,在迭代次数为10000次和20000次时,将学习率分别降至0.0001和0.00001,动量项为0.9,衰减系数为0.0005,每一个batch包含64幅图像。采用数据增加策略,通过旋转图像、变化图像饱合度、曝光、色调产生新的训练图片,对训练样本进行增强扩充。每1000次迭代保存一次网络的训练权重文件,如果网络训练的迭代次数超过一定数量也会出现过拟合现象。最终,改进的YOLOv3网络模型经过20000次迭代后,平均Loss为0.04,Avg IOU稳定于0.85上下,达到了训练的效果。
同时,为了防止过拟合的现象发生,在训练策略中,加入dropout优化机制。
dropout是Hinton在文献[21]中提出的防止过拟合的优化机制,它可以通过阻止特征检测器的共同作用来提高神经网络的性能。dropout机制的原理:在每个训练批次中,通过忽略一半的特征检测器(让一半的隐层节点值为0),可以明显地减少过拟合现象。具体的就是在前向传播的时候,让某个神经元的激活值以一定的概率停止工作,这样就可以使模型泛化性更强,因为它不会太依赖某些局部特征。图6中的(a)图表示标准的神经网络,(b)图表示经过dropout优化后的神经网络,神经节点之间的虚线表示神经元之间的连接断开。
图6 dropout的优化原理
Fig.6 Optimization principles of dropout
在训练过程中,将dropout率设置为0.5,此时dropout随机生成的网络结构最多。对改进的YOLOv3模型加入dropout优化机制进行训练,以防止过拟合现象发生,提高改进的YOLOv3模型的检测精度。
通过计算检测框和标准框的IOU值,判断真正例、假反例和假正例个数。当IOU≥0.5,为真正例;IOU<0.5,为假正例;IOU=0,为假反例。通过公式(2)和公式(3),可以计算出实验结果的查准率(Precision)和查全率(Recall)。
(2)
(3)
上式中,TP、FN和FP分别为真正例、假反例和假正例数量。
测试集有2153幅图像,35536个目标。对测试集,分别使用训练后的原YOLOv3模型、改进的YOLOv3模型和改进的YOLOv3+dropout优化训练的模型对测试集进行测试,并计算查准率和查全率,如表1所示。可以看出,本文改进的YOLOv3算法相比原YOLOv3查准率提高17.04%,查全率提高了6.44%,加入dropout优化训练后,改进的YOLOv3算法相比原YOLOv3查准率提高20.38%,查全率提高了6.72%,提升效果明显。
表1 不同算法检测的结果
Tab.1 The results of different algorithm detection
目标检测算法TPFPFNRecallPrecisionYOLOv32361612547194292.40%65.30%改进YOLOv329009621933898.84%82.34%改进YOLOv3+dropout31208521627799.12%85.68%
为了更好的对比本文提出的改进YOLOv3算法的效果,做了另外一个实验。基于TensorFlow的框架,应用Faster R-CNN(以VGG16为基础网络)算法,用相同的训练集进行训练,训练70000次,模型收敛。用相同的测试集测试,分别计算各类目标的平均准确率,并计算3类目标的平均mAP(准确率均值)。
实验结果如表2所示。从三个算法的mAP对比来看,通过聚类分析数据集的目标特征而设置合适的anchor boxes,能提高算法的检测精确。对于飞机类别,尺度稍大一点的目标,Faster R-CNN的检测准确率最高;对于小目标小汽车,改进的YOLOv3算法的检测准确率均达到79.87%,比原YOLOv3算法高出了34.18%,比Faster R-CNN算法高出了32.48%,说明增加了一个小目标检测层,对地面小目标的检测性能有明显提高;在检测速度方面,改进的YOLOv3算法因为增加了一个小目标检测尺度使得FPS降为23.41,但是比两阶段的检测算法Faster R-CNN检测速度要快。改进YOLOv3算法+dropout优化训练后,mAP得分最高,相比没有加入dropout优化训练的改进的YOLOv3算法,其mAP得分提高了3.24%,比YOLOv3算法,其mAP得分提高了33.81%,验证了加入dropout优化训练后,能提高YOLOv3算法的检测精度。
图7为数据集DOTA检测效果图,(a)、(b)分别是YOLOv3检测效果图、改进的YOLOv3检测效果图,其中不同颜色框表示检测出不同类别的目标。对于数据集DOTA中小目标小汽车, YOLOv3算法只能检测出个别目标,存在漏检率高的问题;而改进的YOLOv3算法因为增加了一个小目标检测尺度,建立了特征融合检测层,检测效果较好。
表2 不同目标的检测结果
Tab.2 The results of detection on different target
目标类别Faster R-CNNYOLOv3 改进YOLOv3改进YOLOv3+dropout飞机AP70.70%35.81%66.62%69.78%大型车AP63.71%46.69%73.39%76.89%小汽车AP47.39%45.69%79.87%82.96%mAP60.60%42.73%73.30%76.54%FPS19.3631.6923.4121.64
图7 数据集DOTA检测效果
Fig.7 The detection effect on dataset of DOTA
本文围绕地面小目标检测任务,通过聚类分析数据集DOTA,得到合适的anchor boxes大小和数量;根据数据集中地面小目标的特点,在保留YOLOv3网络结构中的3个目标检测层基础上,将原来8倍下采样的特征图,进行2倍上采样,与第2个残差块输出的特征图拼接,增加一个小目标检测层,建立特征融合目标检测层。实验结果表明,应用改进后的YOLOv3算法能够快速检测地面小目标,其查准率和查全率均有明显的提高,并且速度也能达到23fps。同时验证了加入dropout优化训练后,可以提高模型的检测精度。
[1] Girshick R, Donahue J, Darrell T, et al. Rich feature hierarchies for accurate object detection and semantic segmentation[C]∥Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition, 2014: 580-587.
[2] Girshick R, Donahue J, Darrell T, et al. Region-based convolutional networks for accurate object detection and segmentation[J]. IEEE Transactions on Pattern Analysis and Machine Intelligence, 2015, 38(1): 142-158.
[3] He K, Zhang X, Ren S, et al. Spatial pyramid pooling in deep convolutional networks for visual recognition[J]. IEEE Transactions on Pattern Analysis and Machine Intelligence, 2015, 37(9): 1904-1916.
[4] Girshick R. Fast r-cnn[C]∥Proceedings of the IEEE International Conference on Computer Vision, 2015: 1440-1448.
[5] Ren S, He K, Girshick R, et al. Faster r-cnn: Towards real-time object detection with region proposal networks[C]∥Advances in Neural Information Processing Systems, 2015: 91-99.
[6] Dai J, Li Y, He K, et al. R-fcn: Object detection via region-based fully convolutional networks[C]∥Advances in Neural Information Processing Systems, 2016: 379-387.
[7] Redmon J, Divvala S, Girshick R, et al. You only look once: Unified, real-time object detection[C]∥Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition, 2016: 779-788.
[8] Liu W, Anguelov D, Erhan D, et al. SSD: Single shot multibox detector[C]∥European Conference on Computer Vision. Springer, Cham, 2016: 21-37.
[9] Redmon J, Farhadi A. Yolov3: An incremental improvement[J]. arXiv preprint arXiv: 1804.02767, 2018.
[10] Lin T Y, Goyal P, Girshick R, et al. Focal loss for dense object detection[C]∥Proceedings of the IEEE International Conference on Computer Vision, 2017: 2980-2988.
[11] Sharif R A, Azizpour H, Sullivan J, et al. CNN features off-thE-shelf: an astounding baseline for recognition[C]∥Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition Workshops, 2014: 806- 813.
[12] Xia G S, Bai X, Ding J, et al. DOTA: A largE-scale dataset for object detection in aerial images[C]∥Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition, 2018: 3974-3983.
[13] Redmon J, Farhadi A. YOLO9000: better, faster, stronger[C]∥Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition, 2017: 7263-7271.
[14] Lin T Y, Dollr P, Girshick R, et al. Feature pyramid networks for object detection[C]∥Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition, 2017: 2117-2125.
[15] 吕铄, 蔡烜, 冯瑞. 基于改进损失函数的YOLOv3网络[J]. 计算机系统应用, 2019, 28(2): 1-7.
Lv Shou, Cai Xuan, Feng Rui. YOLOv3 Network Based on Improved Loss Function[J]. Computer Systems and Applications, 2019, 28(2): 1-7.(in Chinese)
[16] 郑志强, 刘妍妍, 潘长城, 等. 改进YOLO V3遥感图像飞机识别应用[J]. 电光与控制, 2019, 26(4): 28-32.
Zheng Zhiqiang, Liu Yanyan, Pan Changcheng, et al. Application of Improved YOLO V3 in Aircraft Recognition of Remote Sensing Images[J]. Electronics Optics & Control, 2019, 26(4): 28-32.(in Chinese)
[17] 张富凯, 杨峰, 李策. 基于改进 YOLOv3的快速车辆检测方法[J]. 计算机工程与应用, 2019, 55(2): 12-20.
Zhang Fukai, Yang Feng, Li Ce. Fast vehicle detection method based on improved YOLOv3[J]. Computer Engineering and Applications, 2019, 55(2): 12-20.(in Chinese)
[18] 唐玮, 赵保军, 龙腾. 基于轻量化网络的光学遥感图像飞机目标检测[J]. 信号处理, 2019, 35(5): 768-774.
Tang Wei, Zhao Baojun, Long Teng. Aircraft Detection in Remote Sensing Image Based on Lightweight Network[J]. Journal of Signal Processing, 2019, 35(5): 768-774.(in Chinese)
[19] He K, Zhang X, Ren S, et al. Deep residual learning for image recognition[C]∥Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition, 2016: 770-778.
[20] 张素洁, 赵怀慈. 最优聚类个数和初始聚类中心点选取算法研究[J]. 计算机应用研究, 2017, 34(6): 1617-1620.
Zhang Sujie, Zhao Huaici. Algorithm research of optimal cluster number and initial cluster center[J]. Application Research of Computers, 2017, 34(6): 1617-1620.(in Chinese)
[21] Hinton G E, Srivastava N, Krizhevsky A, et al. Improving neural networks by preventing co-adaptation of feature detectors[J]. arXiv preprint arXiv: 1207.0580, 2012.
Reference format: Ouyang Lecheng, Wang Huali. Research on Fast Detection Algorithm for Ground Small Targets[J]. Journal of Signal Processing, 2019, 35(12): 1952-1958. DOI: 10.16798/j.issn.1003- 0530.2019.12.003.
欧阳乐诚 男, 1989年生, 江西吉安人。陆军工程大学通信工程学院硕士研究生, 研究方向为信息感知、处理与对抗。
E-mail: 178366509@qq.com
王华力 男, 1967年生, 浙江温岭人。陆军工程大学通信工程学院教授, 博士, 研究方向为信息感知、处理与对抗。
E-mail: huali.wang@ieee.org