一种基于改进Yolov3的弹载图像多目标检测方法

  • 杨传栋 1, 2 ,
  • 刘桢 2 ,
  • 马翰宇 2 ,
  • 谢瑞超 1
展开
  • 1 陆军炮兵防空兵学院, 合肥 230031
  • 2 陆军炮兵防空兵学院高过载弹药制导控制与信息感知实验室, 合肥 230031

杨传栋(1994-),男,山东泰安人,硕士研究生,研究方向:目标检测。

收稿日期: 2019-09-07

  网络出版日期: 2025-05-30

基金资助

军队“十三五”预研基本项目资助

A Multi-target Detection Method for Missle-borne Images Based on Improved YOLOv3

  • YANG Chuandong 1, 2 ,
  • LIU Zhen 2 ,
  • MA Hanyu 2 ,
  • XIE Ruichao 1
Expand
  • 1 Army Academy of Artillery and Air Defence Force, Hefei 230031, China
  • 2 High Overload Ammunition Guidance Control and Information Perception Laboratory, Army Academy of Artillery and Air Defence Force, Hefei 230031, China

Received date: 2019-09-07

  Online published: 2025-05-30

摘要

针对弹载目标检测具有目标图像尺度变化大、位置定位精度要求高、实时性要求高等特点,基于YOLOv3方法进行改进。对多尺度预测分支特征图上的先验框尺寸进行K-means维度聚类,增强了尺度适应性;改进位置损失函数,提高了位置定位能力;使用快速NMS算法加速预测过程,提高了网络实时性。实验结果表明,在构建的11类目标数据集上,改进算法的mAP达到93.08%,帧速率达到46.59帧/s,比原始YOLOv3算法分别提高1.47%和1.14帧/s,满足弹载目标检测准确度和实时性要求。

本文引用格式

杨传栋 , 刘桢 , 马翰宇 , 谢瑞超 . 一种基于改进Yolov3的弹载图像多目标检测方法[J]. 弹箭与制导学报, 2020 , 40(4) : 149 -153 . DOI: 10.15892/j.cnki.djzdxb.2020.04.032

Abstract

Aiming at the characteristics of missile-borne target detection, such as large scale variation, high position accuracy and high real-time requirements, the YOLOv3 method was improved.K-means dimension clustering was applied to the anchor box sizes of different feature maps, which enhanced the detection ability. The position loss function was improved, which contributed to the high position accuracy. Fast NMS algorithm was used to accelerate the prediction process, which improved the real-time performance. The experimental results show that the mAP value of the improved algorithm reaches 93.08% and the frame rate reaches 46.59 fps on the 11 kinds of military target datasets, which was increased by 1.47% and 1.14 fps respectively compared with the original YOLOv3 algorithm, and meets the requirements of missile-borne target detection accuracy and real-time performance.

0 引言

图像末制导弹药是信息化弹药重要组成,其中弹载图像目标检测算法作为图像制导中的关键环节,提供打击点的准确性和实时性对于调整弹药命中目标至关重要,受到高度重视。
图像末制导技术通常有基于图像分割的方法[1]、基于匹配的方法[2]和基于统计的机器学习方法[3]。传统分割方法仅适用于简单背景且目标与背景对比度差异明显情况,基于匹配的方法和传统的基于统计的机器学习方法利用模板或者手动设计特征结合分类器实现检测,对弹载环境下目标旋转、尺度、光照和背景变化等因素应对不足,并且基于滑动窗口的区域选择策略时间复杂度高,实时性受到影响。近年来基于CNN的方法依靠大数据优势,省去了人工设计特征的环节,通过监督学习具有更有效的特征表达能力,成为当前图像目标检测领域最热门的深度学习模型。目前该方法可分为基于候选框的两阶段检测算法[4]、基于回归的单阶段检测算法[5]及无候选框的单阶段检测算法[6]。其中以YOLO[7]为代表的基于回归的单阶段检测算法在检测速度上达到了实时的要求。通过网络压缩和加速等技术,该类算法部署在FPGA等常用的弹载硬件平台上能够达到上百帧每秒的速度。
YOLO算法在精度上有一定的不足,具有提升空间。对于军事侦察打击任务,除了要求算法快速之外,仍需达到较高的精度,保证任务顺利完成。文献[8]指出基于L1或L2的传统回归损失对尺度不具备不变性,会对训练结果的精度造成影响,文中使用改进的IoU(GIoU)对训练阶段中的边界框位置损失进行优化,针对特定数据集设置先验框在不同尺度特征图上进行检测,并通过快速非极大值抑制(NMS)综合提高检测速度和精度。

1 YOLOv3目标检测框架

基于YOLOv3的目标检测框架首先利用采集设备对多类军事目标进行采集构建数据集,在训练集上进行模型训练,得到网络权重文件。利用训练好的模型通过一次前向传播并经过非极大值抑制即可输出最终预测的类别和位置,完成检测任务。框架核心为YOLOv3检测网络模型,包括了特征提取网络、多尺度预测分支网络及训练损失函数等。

1.1 检测网络结构

文中使用的网络结构如图1所示。
图1 目标检测网络结构
特征提取网络选择Darknet53结构,以416×416×3尺寸的图像输入为例,整个网络包含了5次卷积下采样模块(图中“ ”),特征图每次经过卷积下采样模块后,特征图尺寸减半,使得通道数增加一倍。各个下采样层之间设计了残差模块(ResBlock),用以充分融合特征,如图2所示。
为了应对目标尺度变化的问题,在3个不同尺度特征图上分别进行预测,构成多尺度预测分支结构。选择第11个、第19个、第23个ResBlock输出特征图作为基本预测层,在预测前设计了ConvBlock模块对基本预测层的特征进一步提取和融合。ConvBlock模块结构如图3所示。经过ConvBlock后,通过Conv 3×3和1×1卷积得到在不同尺度的特征图上的预测结果,长宽尺度仍然跟提取层保持一致。对于浅层大尺度的特征图,经过ConvBlock前,将高层经过ConvBlock输出的特征进行上采样并叠加(Concat)构成新的特征,能够起到提高预测能力的效果。
预测向量维度可分为类别预测和位置预测。以26×26特征图为例,得到的预测特征维度为26×26×3×(4+1+C)。每个单元格设置了3个不同比例的先验框,每个单元格针对一个先验框预测4个坐标信息(tx,ty,tw,th),1个置信度分数,C个类别分数。

1.2 位置预测编码

为了能够更好地对边界框位置进行回归训练,针对不同尺度特征图分别设置了3种预设边界框,将直接预测相对于该尺度特征图的预测坐标(bx,by,bw,bh)编码为相对于每个网格点先验框偏移量和宽高缩放比(tx,ty,tw,th)。位置编码方式按照式(1)计算。
b x = σ t x + c x , b y = σ t y + c y     b w = p w e t w , b h = p h e t h
式中:(cx,cy)为预设边界框在该层特征图上的中心坐标; p w , p h为预设边界框的宽高;通过sigmoid函数将偏移量约束在[0,1]之间,使得最后的结果始终在该网格中。

1.3 多任务损失函数

本模型采用多任务损失函数计算预测值与真实值之间的误差,包括类别损失、置信度损失和回归损失。类别预测误差Lcls= i P o s N c = 1 C CE(yci, y ^ c i)通过交叉熵损失实现,如式(2)。

CE(yi, y ^ i)=-yilog( y ^ i)-(1-yi)log(1- y ^ i) y ^ i== e y ^ i/ i = 1 C y ^ i

置信度表示该网格处是否存在有目标,分为背景置信度和目标置信度。同边界框损失,目标置信度仅考虑与真值框IoU最大的匹配先验框,若存在目标,置信度真值Pc取预测框和真值框的交并比,目标置信度损失使用二值的交叉熵损失Lc,obj= i P o s N BCE(pi, p ^ i)。对于背景置信度,考虑未匹配的先验框,如果预测边界框和真值框的交并比小于预设的IoU阈值,则认为是背景,此时计算背景置信度,背景置信度为Lc,noobj= i N e g N BCE(0, p ^ i)。
坐标误差通过计算预测边界框与真实边界框的SmoothL1[10]距离偏差实现。在训练中,认为每个预测网格中只包含一个真值框,并只有一个最优先验框与其匹配,并且只有包含目标的网格的预测结果会被计算边界损失和分类损失。综上,多任务损失函数可表示为:

L=λc,objLc,obj+λc,noobjLc_noobj+λclsLcls+λboxLbox

式中,λ为各项损失对应的平衡系数。

2 改进算法

YOLO算法虽然在COCO等标准数据集上取得了优越的检测效果,考虑到弹载目标检测具有目标尺度变化大、位置定位精度要求高、实时性要求高等特点,针对算法不足做如下改进:
1)尺度先验框设置。通过K-means算法对不同预测分支的特征图上的先验框尺寸进行维度聚类,重新定义先验框大小。
2)位置损失改进。利用GIoU损失代替传统的距离损失进行模型训练,能够得到更高的位置精度。
3)快速非极大值抑制(NMS)算法。并行地对每个边界框进行筛选或保留, 已经删除的检测框仍然能够用来抑制其他结果,提高了预测速度,便于硬件加速。

2.1 先验框设置

在构建的数据集上对3个预测分支特征图上的先验框的尺寸进行K-means维度聚类,具体步骤如下:
1)输入训练数据集中所有目标的真值框宽高;(xj,yj,wj,hj),j∈{1,2,…,N},并令k=9得到9个初始聚类中心(Wi,Hi),i∈{1,2,…,k}。
2)按照中心重合的方式,计算每个真值框和每个聚类中心(先验框)的IoUji
3)计算每个真值框样本与k个中心的距离dji(dji=1-IoUji),按照距离最小原则分配到最近的聚类中心。
4)重新计算聚类中心W'i=∑wim/Ni,H'i=∑him/Ni,i∈{1,2,…,k},m∈{1,2,…,Ni}, i = 1 k Ni=N
5)重复步骤2)~4),直到聚类中心改变量达到要求。
6)输出k个聚类中心,即先验框聚类结果。
得到相对于输入原图尺寸如表1所示。大尺度特征图使用小先验框,主要针对小目标;小尺度特征图使用大先验框,主要针对大目标。结合多尺度预测,在特定数据集上网络具有更强的目标尺度适应能力。
表1 特征图先验框参数
特征图像素数 预设边界框像素数 预设边界框数量
13×13 (116×95),(156×118),
(190×248)
13×13×3
26×26 (30×61),(40×45),
(68×120)
26×26×3
52×52 (8×10),(16×29),
(33×23)
52×52×3

2.2 边界框损失函数

对于边界框回归指标,普遍做法是用MSE、SmoothL1等距离损失衡量距离,这些方式计算损失值实际上是通过间接的相对距离计算,而忽略了检测框本身最显著的IoU性质。但IoU无法直接作为回归距离,文中使用GIoU距离作为边界框的损失评价标准,更直接的逼近真值,具备更高的位置精度。GIoU距离计算具体步骤如下:
1)按照从小到大的顺序输入预测框Bp=( x p 1, y p 1, x p 2, y p 2)和真实框坐标Bg=( x g 1, y g 1, x g 2, y g 2)横纵坐标。
2)计算矩形框BgBp面积,交集I、并集U面积。
3)计算IoU:IoU= I A p + A g - I
4)对AB寻找最小矩形框Bmin;x1,min=min( x ^ p 1, x p 1), x2,min=max( x ^ p 2, x p 2),y1,min=min( y ^ p 1, y p 1), y ^ 2 , m i n=max( y ^ p 2, y p 2),计算其面积Bmin;
5)计算GIoU:GIoU=IoU- A c - U A c,U=Ap+Ag-I
6)输出GIoU距离LGIoU=1-GIoU
利用GIoU距离 i P o s N LGIoU(Bi- B ^ j)代替式(3)中Lbox,使用改进的多任务损失函数进行训练。

2.3 快速NMS算法

传统NMS算法首先按照置信度对检测出来的边界框进行降序排序,然后删除大于交并比阈值的边界框,保留小于交并比阈值的边界框,直到遍历所有候选框。该种方法是采用顺序遍历的方式,需要对每一个类别进行排序筛选,会造成算法速度上的损失。文中使用了并行处理的方式,并行地对每个边界框进行筛选或保留, 具体步骤表述如下:
1)输入未经过筛选的网络预测结果Pcn,表示c类每类n个检测结果,对应置信度Ccn,IoU阈值t,置信度阈值f;
2)每个类别取不超过n个检测结果,按照置信度分数降序排列;
3)对每一类检测框psn两两计算交并比,得到c×n×n维的IoU矩阵Xcnn;
4)Xcnn中的对角线元素和下三角为自交并比和重复计算,将其置为0,即Xkij=0,∀k,j,ij;
5)计算每类IoU矩阵最大值Kij= m a x i(Xkij),∀k,j;
6)大于IoU阈值t及小于阈值f全部置0进行滤除;
7)输出经过筛选的检测结果。

3 实验

3.1 数据集建立及评价方法

数据采集方式通过弹载相机拍摄、网络爬取和数据增强多种方式相结合。使用标注软件按照模型要求标注数据,完成数据集的构建。数据集包含坦克、远程火箭炮、导弹发射车、自行火炮、飞机、跑道、机库、舰船、航母共11类目标,平均每类目标图像数量约3 000张。
对于某类目标检测,设置TP表示被正确识别出的目标,FP表示被识别成目标的错检目标,FN表示没有被检测出来的漏检目标。检测准确率(precision)和召回率(recall)计算如式(4):

P= T P T P + F P,R= T P T P + F N

平均精度AP衡量的是模型在每个类别上的好坏,综合了一个类别上的准确率和召回率。设一个类有N个样本,包含M个正例,可以得到M个召回率:{1/M,2/M,…,M/M},对于每个召回率r,其最大准确率为P(r)= m a x r ' r(p(r')),则

AP=1/ M ( r { 1 / M , 2 / M , , M / M } P ( r ) )

对于多类目标,对各个AP取平均值,即为平均检测精度均值mAP,衡量模型在所有类别上的好坏。
mAP= c = 1 N (AP)c/N

3.2 实验环境和训练设置

实验使用配置有内存为16 GB和英伟达1 070 GPU的PC机,操作系统为ubuntu16.04,基于pytorch深度学习框架对算法模型编程实现。训练中部分参数设置为:学习率取0.001,动量取0.9,权重衰减为0.000 5,批处理图像数为16,平衡系数设为λc_obj=5,λc_noobj=1,λbox=2,λcls=1,检测非极大值抑制阈值取0.3。
训练迭代次数为48 000次,每100次迭代进行一次验证,并记录训练损失、召回率、准确率和平均检测精度,通过可视化输出。为了验证文中模型优越性,在同等环境下对YOLOv3进行训练,并将二者数据输出于同一个坐标系,如图4所示。其中蓝色曲线是文中模型数据,橘黄色曲线为YOLOv3算法数据。可以看到,在训练过程中,模型的训练损失能够快速下降且达到较低的水平,最后的损失值低于YOLOv3算法。同时在验证集上的验证结果表明,召回率、准确率和平均检测精度均在大约10 000次迭代之后超过了传统的YOLO算法并能达到更高的水平,证明了训练能够有效进行及模型的有效性。
图4 训练损失曲线及验证集验证曲线

3.3 算法结果和对比

在11类军事目标测试集上,文中模型达到了最高的检测精度93.08%,相对比传统的YOLOv3提高了3.49%。其中坦克类目标达到最高的96.2%,最低为跑道类检测精度为86.5%。整体看该模型在构建的数据集上能够达到较高的检测精度。
图5 各类别检测精度
与对比算法相比,文中模型在不同交并比下的检测精度均高于对比算法。随着交并比不断增加,检测精度下降小于其他算法,说明文中算法预测的边界框具有更高的准确度。使用快速NMS算法使网络在预测过程中加速了1.14帧/s,实时性更好。
表2 性能比较
模型 AP50 AP75 AP90 mAP 帧速率/(帧/s)
YOLOv3 94.7 91.6 82.8 91.61 45.45
文中模型 96.8 93.4 85.7 93.08 46.59
图6为算法在测试集上的检测结果样例。可以看到,算法能够较好的应对不同尺度大小和不同旋转方向的目标,正确识别包含自行火炮、坦克、远程火箭炮、导弹发射车四类装甲目标图像,算法能够应对公路、草地等不同环境和光线特性,整体上具有较强的适应性。同时坦克炮管等细小部件包含在输出的目标框范围内,识别精度高。算法可以较好的应对舰船类目标的旋转特性,区分出航母和普通舰船之间的差别,同时,舰船指挥塔作为舰船类目标重要组成部分,具有更高的打击价值,因此在识别舰船本身基础上,同时识别出指挥塔位置,更有实际价值。模型实现了对机场多要素识别,对机库、机场指挥塔、密集地停在机场的飞机及远处跑道均能够完整的检测,达到较好的识别效果。
图6 测试集测试样例

4 结论

[1]
何景峰, 冀敏, 李盛, 等. 电视制导导弹目标图像处理改进研究[J]. 现代电子技术, 2017(11): 40-42.

[2]
周志强, 汪渤. 尺度不变特征在自寻的电视制导中的应用[J]. 电光与控制, 2009, 16(9): 6-8.

[3]
杨杰. 图像制导技术及实验研究[D]. 南京: 南京航空航天大学, 2012.

[4]
REN S, HE K, GIRSHICK R, et al. Faster R-CNN:Towards real-time object detection with region proposal networks[J]. IEEE Transactions on Pattern Analysis and Machine Intelligence, 2016, 39(6):1137-1149.

[5]
LIN T Y, GOYAL P, GIRSHICK R, et al. Focal loss for dense object detection[J]. IEEE Transactions on Pattern Analysis & Machine Intelligence, 2017, 99:2999-3007.

[6]
TIAN Z, SHEN C, CHEN H, et al. FCOS:fully convolutional one-stage object detection[C]// Proceedings of 2019 IEEE/CVF International Conference on Computer Vision(ICCV). [S.l.]: IEEE, 2019:9626-9635.

[7]
鞠默然, 罗海波, 王仲博, 等. 改进的YOLOV3算法及其在小目标检测中的应用[J]. 光学学报, 2019, 39(7):253-260.

[8]
REZATOFIGHI H, TSOI N, GWAK J, et al. Generalized intersection over union:a metric and a loss for bounding box regression[C]// Proceedings of 2019 IEEE/CVF Conference on Computer Vision and Pattern Recognition(CVPR). [S.l.]: IEEE, 2019:658-666.

[9]
LIN T Y, DOLLA P, GIRSHICK R, et al. Feature pyramid networks for objec detection[C]// Proceedings of 30 th IEEE/CVF Conference on Computer Vision and Pattern Recognition(CVPR). [S.l.]: IEEE, 2017:936-944.

[10]
GIRSHICK R. Fast R-CNN[C]// Proceedings of IEEE International Conference on Computer Vision. [S.l.]: IEEE, 2015:1440-1448.

文章导航

/