文章信息
- 潘昱辰, 徐浩, 钱夔, 徐伟敏, 徐腾飞
- PAN Yuchen, XU Hao, QIAN Kui, XU Weimin, XU Tengfei
- 改进型卷积神经网络无人机工地识别
- Construction site recognition of UAV based on improved convolutional neural network
- 中国测试, 2024, 50(6): 191-196
- CHINA MEASUREMENT & TEST, 2024, 50(6): 191-196
- http://dx.doi.org/10.11857/j.issn.1674-5124.2022050020
-
文章历史
- 收稿日期: 2022-05-07
- 收到修改稿日期: 2022-07-13
2. 南京睿捷智慧交通科技研究院,江苏 南京 210044
2. Nanjing Ruijie Intelligent Transportation Technology Research Institute, Nanjing 210044, China
随着城市化进程的步伐加快,对城市的土地进行最优规划是城市基础设施建设急需解决的难题,此外城市中的施工现场、违章搭建也需要进行及时的监管。无人机的快速发展,运用无人机搭载摄像头空中识别物体也成为了一个热门的研究领域。
随着深度学习[1]技术的兴起,机器视觉得到长足发展[2],目标识别领域也受到了许多关注[3-4]。当前目标识别算法主要分为两大类,一类是以R-CNN[5]、Fast R-CNN[6]等算法为代表的two-stage算法,另一类是以SSD[7]、YOLO[8]为代表的one-stage算法。这些算法在目标识别和分类问题中取得了较高的准确率。王鑫等[9]将无人机空中拍摄到的图像同步传输到PC端,在PC端利用YOLOv4目标检测算法对车辆进行实时监测,精确度可达到83.3%,但该算法只适用于简单背景的目标识别,对于背景复杂的工地识别则不适用。车梦凡[10]提出了一种改进的YOLOv3算法,针对小目标的丢失作者对YOLOv3的锚点重新分配,接着借助密集连接模块[11]的方式改变四层YOLO层的连接,但是该种算法模型过于繁琐,计算量较大。王瑶[12]提出了一种基于KCF算法的目标识别模型,通过循环矩阵生成多样本然后利用每一个样本进行回归训练。整体上来说,基于深度学习的目标识别虽然能够达到一定的精度,但模型复杂,计算量大,训练难度高,且在无人机空中飞行的背景下进行工地识别精度有待提高。
本文提出一种改进型卷积神经网络的无人机空中识别工地方法,工地识别指的是在空中对工地整体进行识别,从而使相关人员能够监管到工地施工、违章搭建,而其中加入空地识别是为了对城市中的空地进行合理规划开发。通过对数据集、模型架构、损失函数等模块改善优化,进行无人机空中视角下复杂背景相似目标的检测研究。首先对图像进行剪裁缩放等处理来增加模型泛化能力,然后在网络模型中加入SPP模型增强特征融合,最后优化损失函数,通过加入GIoU算法、Focal Loss函数,修改IoU阈值来解决正负样本不均衡问题。在保持训练速度的同时,提高模型的检测精度,使之适配于复杂背景下的高空目标识别,最终实现无人机高空识别工地,达到合理规划土地,监管工地施工和违章搭建等目的。
1 改进型卷积神经网络算法改进型卷积神经网络的网络模型如图1所示。原始算法中在数据集数量有限的情况下精确度很难达到要求,其特征提取网络中特征到后期容易消失,在面对正负样本不均衡的情况下损失函数有待优化。本算法框架包括数据处理、特征提取与检测网络以及损失函数优化。数据集方面通过高斯噪声、图像变换和剪裁进行数据增强,接着在特征提取网络Darknet-53[13]之后加入SPP模块加强特征融合,对于最后的输出特征层进行修改使之适配两类物体目标识别,最后对损失函数进行改善。
1.1 数据增强
本次实验数据来自无人机高空拍摄视频,为了提高模型泛化能力,获得更好的训练效果,实验对图像集进行了数据增强。分别对样本图片进行随机矩形遮挡、不同方向翻转、不同比例缩放、高斯噪声和随机剪裁与填充处理。
除此之外,本实验还使用了一种数据增强方法——马赛克数据增强[14]。简单来说该方法的原理就是将4张图片进行随机剪裁,拼接到一张图片上作为训练数据。这样做可以丰富图片的背景,同时也相当于提高了batch_size。马赛克数据增强流程如图2所示。
1.2 特征提取与检测网络 1.2.1 空间金字塔池化卷积网络
图1中可以看出,13×13尺度的特征层在特征融合模块Darknet模块中经过较多的残差网络,图像信息容易丢失,在Darknet之后添加空间金字塔池化卷积网络(spatial pyramid pooling networks,SPP)可以加强特征融合,避免特征图像丢失,并且相比另外两个尺度而言该尺度更需要SPP模块。图3为改进型卷积神经网络中SPP网络[15]的示意图。原始模型为绿色部分,添加蓝色部分作为改进。
图像经过Darknet网络提取特征后,通过三次1×1,3×3和1×1的最小单元Convolutional,接着分别经过三次不同卷积核的最大池化,将这三次的输出与开始的输入拼接在一起,实现了局部特征和全局特征融合[16],丰富了特征图的表达能力,提升了模型检测的精度。
1.2.2 模型适配图4为模型输出的示意图。图像信息经过特征提取后,分别经过32倍下采样、16倍下采样和8倍下采样,得到了三个尺度的特征层a×a×(b×(c+d+N)),其中网格数为a,每个网格的先验框个数为b,边框坐标为c,边框置信度为d,N为目标类别数,在原始模型中输出为13×13×(3×(4+1+N)),26×26×(3×(4+1+N)),52×52×(3×(4+1+N)),本实验中的目标类别只有两类:工地和空地,N=2,所以针对此模型输出为13×13×21,26×26×21,52×52×21。
1.3 Loss损失函数优化
改进型卷积神经网络的损失函数由三部分构成:正样本位置损失函数,正样本置信度和类别损失函数,负样本置信度损失函数,如下式所示:
$ \begin{split} {\text{Loss}} =& {\lambda _{{\text{coord}}}}\sum\limits_{i = 0}^{{S^2}} {\sum\limits_{j = 0}^B {1_{i{\text{,}}j}^{{\text{obj}}}} } [{({b_x} - {\hat b _x})^2} + {({b_y} - {\hat b _y})^2} +\\ & {({b_{{w}}} - {\hat b _{{w}}})^2} + {({b_{{h}}} - {\hat b _{{h}}})^2}]+ \\ & \sum\limits_{i = 0}^{{S^2}} {\sum\limits_{j = 0}^B {1_{i{\text{,}}j}^{{\text{obj}}}} } [ - {\text{ln}}({p_{\mathrm{c}}}) + \sum\limits_{i = 1}^n {{\text{BCE}}({{\hat c }_i},{c_i})} ]+ \\ & {\lambda _{{\text{noord}}}}\sum\limits_{i = 0}^{{S^2}} {\sum\limits_{j = 0}^B {1_{i{\text{,}}j}^{{\text{noobj}}}} } [ - {\text{ln}}(1 - {p_{\mathrm{c}}})] \end{split} $ | (1) |
式中:S——预测框的尺寸大小;
B——每个网格的Anchor box个数。
正样本的坐标损失函数用来计算预测框与真实框的中心点坐标(x,y)以及高度与宽度差的平方和。而正样本置信度与类别损失函数则是通过二元交叉熵损失函数实现。
在原始模型的回归任务中,对于相同的Loss值,回归的效果可能大相径庭。图5中,绿色的框为真实框,黑色的框为预测框,可以看出第三张图和第六张图IoU基本一致,但是第三张图片效果更好。
当IoU相同时,这种算法只能代表目标框和检测框的交并比相同,并不能准确反映实际的检测效果。针对以上问题,本实验尝试了GIoU(gengeralized IoU)[17]算法,首先计算两个框的最小闭包区域面积,接着计算IoU,再计算不闭包区域中不属于两个检测框的区域占闭包区域的比重,最后用IoU减去这个比重得到GIoU。计算公式如下所示:
$ {\mathrm{IoU}}=\frac{{A}\cap {B}}{{A}\cup {B}} $ | (2) |
$ {\mathrm{GIoU}}={\mathrm{IoU}}-\frac{{{C}-A}\cup {B}}{{C}} $ | (3) |
式中,C即为预测框A和真实框B的最小闭包区域面积。这种计算方法也是一种距离度量,在真实框与预测框没有重叠时,也会有损失函数值,能够进行反向传播优化。除了关注重叠区域外,GIoU还关注了非重叠,能够更好地反映重合度。
1.3.2 正负样本判断阈值在训练过程中,正负样本的确定是由交并比IoU决定的。在大于阈值0.5的样本中,最大的为正样本,其余抛弃;若小于阈值0.5,则为负样本。
IoU的定义是目标预测边界框和真实边界框的交集和并集的比值。为了获得高质量的正样本,可以适当提高IoU阈值,但样本数量就会降低导致正负样本数量不平衡,并且较高的IoU阈值很容易丢失小目标。对于不同的检测任务,如果待检测目标尺度相差不大,可以适当降低IoU阈值。检测的数据集中只有两类目标,一类是工地,另一类是空地,大多为同一尺度目标,所以可以适当降低IoU阈值。
1.3.3 损失函数优化Focal Loss[18]是针对目标检测中正负样本比例严重失衡提出的一种损失函数。该函数降低了负样本在训练中所占的权重,从而调整正负样本的比例。Focal Loss是在交叉熵损失函数的基础上进行改进的。交叉熵损失函数计算公式如下式所示:
$ \begin{array}{c}{\mathrm{Loss}}=\left\{\begin{array}{l}-\mathrm{l}\mathrm{n}\hat{p},y=1\\ -\mathrm{l}\mathrm{n}\left(1-\hat{p}\right),y=0\end{array}\right.\end{array} $ | (4) |
式中:
y——label,对应1或0。
可见普通的交叉熵对于正样本而言,输出概率越大损失越小。对于负样本而言,输出概率越小则损失越小。此时的损失函数在大量简单样本的迭代过程中比较缓慢且可能无法优化至最优。Focal Loss损失函数计算公式为
${\mathrm{Loss}}=\left\{\begin{array}{l}-\alpha {\left(1-\hat {p}\right)}^{\gamma }\mathrm{l}\mathrm{n}\hat {p},y=1\\ -\left(1-\mathrm{\alpha }\right){\hat {p}}^{\mathrm{\gamma }}\mathrm{l}\mathrm{n}\left(1-\hat {p}\right),y=0\end{array}\right.$ | (5) |
首先加入了一个参数
本算法训练所使用的数据集来自无人机空中拍摄。首先对无人机空中拍摄的视频进行取帧处理,然后进行一遍人工筛选,将含有目标物体的图片筛选出来,接着利用图片标注工具LabelImg进行图片人工标注,做好数据集准备工作,最终获得与图片一一对应的xml文件,将制作好的数据集保存为PASCAL VOC格式以便网络的训练与测试。实验数据集部分图片如图6所示。图中已指出工地与空地,白色框为工地,黑色框为空地。
2.2 原模型与改进模型性能对比
本实训练时通过远程链接GPU服务器RTX3090进行训练。采用的算法评价指标为准确率(Precision)、召回率(Recall)、mAP@0.5。
为了比较以上各个优化方法对算法的改进作用,在已增强的数据集上训练了对应的检测模型进行了对比,实验结果见表1。表格中原始模型指的是YOLOv3原始算法,而改进1-5指的是在原始模型中添加优化方法,如改进1是仅添加数据增强方法,而改进2是添加数据增强和修改IoU阈值。
实验 | 数据 增强 | IoU阈值 修改 | Focal Loss | GIoU | SPP | mAP/% |
原始模型 | × | × | × | × | × | 51.69 |
改进1 | √ | × | × | × | × | 70.69 |
改进2 | √ | × | × | × | √ | 74.24 |
改进3 | √ | √ | × | × | × | 80.63 |
改进4 | √ | × | √ | × | × | 82.09 |
改进5 | √ | × | × | √ | × | 84.94 |
从表1中可以看出,在没有数据增强的情况下,由于正负样本严重失衡,模型的mAP非常低。在经过数据增强提高了模型的泛化能力后,模型的准确率提高了近20%。在分别对模型加入Focal Loss、GIoU、SPP和IoU阈值修改后,模型准确率均有了或多或少的提高,单独修改IoU阈值(经过实验表明IoU阈值为0.35效果较好)准确率提高了9.94%,单独加入Focal Loss后模型的准确率提高了11.4%,单独加入SPP模块准确率提高了3.55%,单独加入GIoU算法准确率提升最高,提升了14.25%,准确率为84.94%,达到了最高。
在进行IoU阈值修改实验时,尝试不同的数值,如表2所示,实验证明IoU为0.35时效果较好。
图7为模型检测的部分效果图。图片中红色框为工地,标注为construction site,蓝绿色框为空地,标注为empty。需要指出,工地指的是正在施工中的工地整体,而空地则是大面积几乎无植被裸露空地,当工地旁边有小部分空地时,则默认是工地(实际生活中工地也会连带一些空地)。工地和空地外观、颜色接近,且与背景不易区分,本系统仍然能够在背景复杂的环境中识别到工地与空地。
3 结束语
本文开发了一套无人机高空识别工地模型。首先利用图像变换等方法进行数据增强,增加了近20% mAP;接着在特征提取网络之后加入SPP模块来增强网络特征融合的能力,解决无人机空中姿态变换下目标视角形状扭曲问题,相比较数据增强增加了4% mAP;最后对模型的损失函数进行改进,解决模型正负样本不均衡问题,其中加入GIoU效果最好,mAP可达到84.94%,将该模型应用到无人机高空识别工地中可达到较高的准确率。
[1] |
GUO Y, LIU Y, OERLEMANS A, et al. Deep learning for visual understanding: A review[J].
Neurocomputing, 2016, 187: 27-48.
DOI:10.1016/j.neucom.2015.09.116 |
[2] |
QIAN K, TIAN L. A topic-based multi-channel attention model under hybrid mode for image caption[J]. Neural Comput & Applic , 2022: 2207–2216.
|
[3] |
刘桂雄, 张瑜, 蔡柳依婷. 机器视觉检测图像拼接融合技术研究进展[J].
中国测试, 2020, 46(1): 1-6.
LIU G X, ZHANG Y, CAI L Y T. Overview of image blending technique in machine vision detection[J].
China Measurement & Test, 2020, 46(1): 1-6.
|
[4] |
郭雨青, 曾庆军, 夏楠, 等. 图像增强水下自主机器人目标识别研究[J].
中国测试, 2021, 47(11): 47-52.
GUO Y Q, ZENG Q J, XIA N, et al. Research on target recognition of autonomous underwater vehicle based on image enhancement[J].
China Measurement & Test, 2021, 47(11): 47-52.
|
[5] |
GIRSHICK R, DONAHUE J, DARRELL T, et al. Richfeature hierarchies for accurate object detection and semantic segmentation[C]. // IEEE Conference on Computer Vision and Pattern Recognition. IEEE Computer Society, 2014: 580-587.
|
[6] |
GIRSHICK R. Fast R-CNN[J]. Computer Science, 2015: 34-37.
|
[7] |
LIU W, ANGUELOV D, ERHAN D, et al. SSD: single shot multibox detector[C]//Computer vision-ECCV2016. Amsterdam. The Netherlands: Springer, 2016: 21-37.
|
[8] |
REDMON J, FARHADI A. YOLO9000: Better, faster, stronger[J/OL] . CoRR, 2016: 14-26. https://arxiv.org/abs/ 1612.08242
|
[9] |
王鑫, 陈浩, 陶天宝. 一种无人机图像车辆识别系统设计[J].
电子世界, 2021(18): 121-123.
|
[10] |
车梦凡. 基于机器学习的无人机图像目标识别算法研究[D]. 金华: 浙江师范大学, 2021.
CHE M F. Research on UAV image target recognition algorithm based on machine learning[D]. Jinhua: Zhejiang Normal University, 2021.
|
[11] |
HUANG G, LIU S, VAN DER MAATEN L, et al. Condensenet: An efficient densenet using learned group convolutions[C]//Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition, 2018: 2752-2761.
|
[12] |
王瑶. 基于视觉的无人机目标识别及跟踪[D]. 哈尔滨: 哈尔滨工业大学, 2019.
WANG Y. Vision-based UAV target recognition and tracking[D]. Harbin: Harbin Institute of Technology, 2019.
|
[13] |
林海, 庞妙珍, 刘天成. 基于改进DarkNet网络的轻量型车型识别方法[J].
现代计算机, 2021, 27(24): 100-104.
LIN H, PANG M Z, LIU T C. Lightweight vehicle identification method based on improved DarkNet network[J].
Modern Computer, 2021, 27(24): 100-104.
|
[14] |
BOCHKOVSKIY A, WANG C Y, LIAO H Y M. YOLOv4: optimal speed and accuracy of object detection[J/OL]. arXiv preprint, arXiv: 2004. 10934[2020-12-19].https://arxiv.org/ abs/2004.10934
|
[15] |
HE K M, ZHANG X Y, REN S Q, et al. Spatial pyramid pooling in deep convolutional networks for visual recognition[J].
IEEE Trans Pattern Anal Mach Intell, 2015, 37(9): 1904-1916.
DOI:10.1109/TPAMI.2015.2389824 |
[16] |
刘桂雄, 刘思洋, 吴俊芳, 等. 基于深度学习的机器视觉目标检测算法及在票据检测中应用[J].
中国测试, 2019, 45(5): 1-9.
LIU G X, LIU S Y, WU F J, et al. Machine vision object detection algorithm based on deep learning and application in banknote detection[J].
China Measurement & Test, 2019, 45(5): 1-9.
|
[17] |
程海博, 熊显名. 基于GIoU的YOLOv3车辆识 别方法[J].
桂林电子科技大学学报, 2020, 40(5): 429-433.
CHENG H B, XIONG X M. YOLOv3 vehicle recognition method based on GIoU[J].
Journal of Guilin University of Electronic Technology, 2020, 40(5): 429-433.
|
[18] |
宋建辉, 饶威, 于洋, 等. 基于Focal Loss的多特征融合地物小目标检测[J].
火力与指挥控制, 2021, 46(1): 20-24.
SONG J H, RAO W, YU Y, et al. Multi feature fusion small target detection based on Focal Loss[J].
Fire Control & Command Control, 2021, 46(1): 20-24.
|
[19] |
徐义鎏, 贺鹏. 改进损失函数的Yolov3车型检测算法[J].
信息通信, 2019(12): 4-7.
XU Y L, HE P. Yolov3 vehicle detection algorithm with improved loss function[J].
Changjiang Information & Communications, 2019(12): 4-7.
|