基于YOLO智能网络的红外弱小多目标检测技术
2019-10-26钮赛赛周华伟朱婧文邵艳明李少毅
钮赛赛,周华伟,朱婧文,邵艳明,李少毅
(1. 上海航天控制技术研究所,上海 201109; 2. 中国航天科技集团公司 红外探测技术研发中心,上海 201109; 3. 西北工业大学 航天学院,陕西 西安 710072)
0 引言
弹载红外图像序列中包含多个弱小目标时,存在目标数量和位置不确定、信噪比低、缺乏背景统计的先验信息等问题。因此,复杂环境下的弱小多目标检测是一个具有挑战性的研究课题[1]。
卷积神经网络(CNN)因其强大的特征表征能力[2],已被成功应用于目标检测和识别领域,并获得了极好的效果[3]。2016年REDMON等[4]提出了YOLO(you only look once)网络,其实质是单个神经网络的目标检测系统,将目标探测问题看作是一个回归问题,在保证检测精度的同时,检测速度得到显著提升。YOLO网络为红外弱小多目标的检测和跟踪提供了新思路。
近年来,国内外学者针对红外弱小多目标检测和跟踪问题进行了深入研究。龚俊亮等[5]结合弱小目标描述模型,提出了基于尺度空间的红外弱小多目标检测算法, 该算法对强杂波背景及高梯度边缘目标检测具有良好的效果,但是对原始数据要求较高,容易将图像序列中存在变化的目标识别为新目标。聂洪山等[6]利用自适应目标分割和目标聚类,设计了一种针对红外弱小目标的检测方法,实现了信噪比大于4的目标检测,但是当信噪比小于4时,无法有效检测出目标。陈静等[7]利用空域能量积累提高信噪比,实现弱小目标检测,但是该方法只适用于天空背景。陆福星等[8]提出了形态学Top-hat变换结合改进的非线性扩散模型的滤波算法,用于增强红外弱小目标信号,抑制复杂背景和噪声,有效提高了红外目标的检测概率。王靖宇等[9]提出了一种基于多隐含层深度神经网络的弱小无人机目标检测模型,设计了包含多个隐含层的多通道深度神经网络。吴帅等[10]系统总结了深度卷积网络在目标检测领域的发展和应用情况,该研究对于红外弱小目标检测具有一定的启示。深度学习算法在可见光目标检测领域取得了理想的效果,目前关于利用深度学习进行红外弱小目标检测的研究仍然较少。
本文借鉴YOLO目标检测算法,提出一种适合复杂环境下红外弱小多目标智能检测的改进模型,利用经典的模板匹配算法和基于YOLO的智能网络进行红外弱小多目标检测,通过实验对比分析了两种方法的检测性能。本文首次针对弹载环境的红外图像场景开展了基于典型深度学习网络模型的目标识别应用研究,相对于传统模板匹配算法,基于深度学习的高维特征学习表征和推理可提升对红外弱小目标及多目标的识别能力,促进弹载智能信息处理技术发展。
1 模板匹配的目标检测算法
1.1 红外图像预处理
对于弱小目标而言,目标本身能量较弱,对杂波和噪声较敏感,因此弱小多目标检测中图像预处理环节对于检测效果的影响显著。现有的图像预处理方法众多,常见的主要有中值滤波法、高通滤波法和自适应滤波法等[11-12]。本文采用杂波抑制和图像增强对图像进行预处理,然后将图像作为模板匹配算法的输入。
对于杂波和噪声的抑制,可有效消除图像中的麻点噪声。邻域平均法过程比较简单,运算速度快,但会使目标边缘模糊,因而本文采用邻域平均法的一种改进方法——超限像素平滑法,对红外图像中的杂波进行抑制[13-14]。该方法可表示为
(1)
式中:T为选定的一个非负阈值;S为以图像中每个像素为中心分别选取的一个邻域;M为S域内包含的像素个数;f(x,y)代表处理前的图像;g(x,y)代表杂波抑制后的图像。
1.2 模板匹配算法原理
模板匹配算法是一种基于图像相似度的识别跟踪算法,将两幅或多幅图像在空间上对准,在整个图像中搜索最接近目标模板的图像,进而实现对目标的跟踪。这种方法不需要对图像进行分割和特征提取,保留了整幅图的所有信息,对于信息不丰富的弱小目标检测具有一定的优势。
目标检测过程就是利用已有的目标模板在整个图像上平移,并评估模板与子图的相似程度,选取子图中与模板最为接近的部分作为目标检测结果,输出目标位置。模板匹配法原理如图1所示,图像大小为N×N。子图在整个图像上滑动,动态搜索与目标最相似的子图,并确定该子图区域为目标位置。
图1 模板匹配算法示意图Fig.1 Diagram of template matching algorithm
一般利用测度D(i,j)来衡量模板与子图的相似程度,即
(2)
式中:T(m,n)代表模板;M是模板大小;Si,j(m,n)代表模板覆盖下的候选区域图;(i,j)代表区域图左上角像素点在测试图上的坐标;(m,n)代表区域图内坐标。
1.3 匹配模板选择和多目标检测实现
在目标检测开始前,选定图像中的8个小目标作为匹配模板,通过实验确定最佳模板。选择的模板是经过滤波增强处理的红外图像,对于目标探测的效果较好。
针对多红外目标,应用模板匹配算法进行了多次检测。在仿真中,匹配超过两次,则无法从模板中找出目标,因此本文采用经两次匹配得到的结果作为目标。
2 基于YOLO的弱小目标检测算法
2.1 YOLO模型简介
YOLO网络突出的优势是网络结构简洁,一个CNN可同时预测多个边界框,并且可给出每个边界框中目标的置信概率。相比于其他高性能的目标检测网络,YOLO网络在精度方面略有下降,但在速度方面远胜于其他目标检测网络,如Faster RCNN等[15-16]。这对于军用红外探测跟踪设备,尤其是红外成像导弹等具有重要意义。YOLO网络的另一个显著优点是其对于较小目标的检测也具有良好的效果。
2.2 基于YOLO的弱小多目标检测模型
根据YOLO网络的特点,结合红外多目标检测的具体实际,建立了基于YOLO的红外弱小多目标检测模型。原始的YOLO模型将图像分为7×7个方格,每个方格用于预测两个目标,输出置信度和坐标。对于尺寸较小的目标,方格过于粗糙,对于弱小目标则误差较大,因此本文将图像分为14×14个方格,从而提高对于弱小目标的检测效果。YOLO网络的主要结构如图2所示。
图2 YOLO网络结构Fig.2 Structure of YOLO network
每个检测框中有5个参数用于描述检测框中目标位置和类别,5个参数分别为(x,y,w,h,C),其中(x,y)代表检测框对应的最小网格中心,w、h分别代表检测框的宽度和高度,C代表置信度。Bounding box的中心位置坐标是对某个网格的位置坐标的归一化,因此(x,y,w,h)均介于0~1之间。该区域存在目标的概率P为
P=Pclassi|object×Pobject×PIoU=Pclassi×PIoU
(3)
式中:Pclassi|object为边界框置信度下的条件概率;Pobject是边界框概率;Pclassi是目标类别概率;PIoU为检测框与目标的真实框之间的交并比,可表示为
(4)
式中:Bd为检测框;Bgt为真实框。
2.2.1 红外图像预处理
红外数据集中的数据格式为640×512的灰度图像,为便于输入YOLOv1,提高模型运算速度,对输入图像进行简单的预处理,将图像大小调整为448×448。
2.2.2 网络结构的调整
YOLO网络结构的基础核心是Google-Net模型,它有深层和浅层两个版本。深层结构含有24个卷积层,如图3(a)所示;浅层结构含有9个卷积层,如图3(b)所示。它们的卷积核主要为3×3、1×1的小卷积核,这对于捕捉图像中的细节信息有一定的帮助。浅层YOLO可提升目标检测速度,因此本文采用Fast YOLO(浅层YOLO)模型作为目标检测模型的基础模型,该模型包含9个级联的卷积层和2个全连接层。
图3 YOLO内部详细结构Fig.3 Internal detailed structure of YOLO
2.2.3 模型训练
对Fast YOLOv1网络模型进行训练,首先在ImageNet上进行预训练,然后在对训练好的网络在红外目标训练集上进行训练。为使输出值范围为[0,1],需要对参数(x,y,w,h,C)进行归一化处理。训练的激励函数在ReLU的基础上进行了改进,主要是对产生的负数不再按零计,而是赋予一个0.1斜率的值,可表示为
(5)
训练中的损失函数采用YOLO原文模型中提取的损失函数,即
(6)
式(6)中等式右边第一项是边界框中心坐标的误差项,第二项是边界框的高与宽的误差项,第三项是包含目标的边界框的置信度误差项,第四项是不包含目标的边界框置信度误差项,最后一项是包含目标的单元格的分类误差项。
2.3 算法流程
YOLO网络将目标检测问题看作一个回归问题,不需要选择滑窗或提取proposal的方式训练网络,而是直接选用全图训练模型。本文基于YOLO网络的弱小目标检测算法的基本过程为:
1)图像初始化。将输入图像进行初始化,将其转换为448×448的灰度图像。
2)训练YOLO网络。利用训练集中的数据,根据式(6)中的损失函数,对YOLO网络的参数进行调整,完成对YOLO网络的训练。在训练过程中,对模型中的超参数进行调整,结合弱小目标的尺寸特征,设置置信度。
3)测试。针对每张图像,预测得到196(14×14)个bounding box及其概率。通常利用一个cell可直接预测出一个物体对应的bounding box,但是对于某些尺寸较大或靠近图像边界的物体,需要通过非极大抑制处理生成多个网格预测的结果。
3 实验及结果分析
3.1 目标检测效果评价
3.1.1 目标检测率
检测率代表在图像中目标被检测出来的比例,是目标检测性能的重要依据。检测率PD的计算式为
(7)
式中:ND为算法成功检测出的目标数量;NT为图像中的目标总数。
3.1.2 平均识别精度
(8)
式中:N为检测框的数量。
3.2 图像预处理结果分析
原始红外图像的灰度图如图4(a)所示,背景中有亮云、噪声等复杂背景干扰,弱小目标已经难以分辨,对原始红外图像进行预处理后的结果如图4(b)所示,需要检测的目标特征更加明显,大部分杂波干扰被抑制。因此本文所使用的图像预处理方法对于红外弱小目标检测是有效的。
3.3 传统算法的检测结果
通过选择目标模板,利用传统的模板匹配算法进行目标检测,检测结果如图5所示。图5(a)为选定的目标模板,图5(b)为模板匹配算法的检测结果。可发现,模板匹配算法不能很好地检测所有目标,漏检率较高,其主要原因是目标在飞行过程中姿态变化较大,特征模板不匹配。同理,模板匹配算法也不适用于目标被云层遮挡、目标相互遮挡等情况。
3.4 实验平台及数据集介绍
实验平台操作系统为Ubuntu 16.04LTS, 配置两块Nvidia GPU(GTX 1080Ti),16GB内存,2TB硬盘。
实验数据集源于基于某红外成像导引头在航展上的测试数据,背景为多亮云环境下的9个典型飞机目标。采用一个目标跟踪序列中的4 500幅图片作为训练集,另外500幅作为测试集。测试中,设置置信度阈值为0.8。
3.5 YOLO的检测结果
在采用YOLO网络进行测试实验时,将外场测试数据分为3种典型场景类型:1) 无云层遮蔽且无相互遮挡;2) 部分目标被云层遮蔽;3) 部分目标之间相互遮挡。
3.5.1 无云层遮蔽且无相互遮挡
在无云层遮蔽且无相互遮挡的情况下,基于YOLO算法可将图像中所有的目标较为准确地识别出来,识别效果明显优于传统的模板匹配算法。YOLO算法的目标检测结果如图6所示。
图6 目标检测结果1Fig.6 Target detection result 1
3.5.2 部分目标被云层遮蔽
在部分目标被云层遮蔽的情况下,YOLO算法可将未被遮蔽的目标检测出来,但是对于目标被云层完全遮蔽或者部分遮蔽的情况,则不能正确地检测出目标,此时YOLO算法的目标检测结果如图7所示。
图7 目标检测结果2Fig.7 Target detection result 2
3.5.3 部分目标相互遮挡
在部分目标相互遮挡的情况下,YOLO算法容易将多个相互遮挡的目标识别为同一目标,但是检测框范围没有超出相互遮挡目标组合的范围,且图像中所有目标都被识别,此时YOLO算法的目标检测结果如图8所示。
图8 目标检测结果3Fig.8 Target detection result 3
3.6 仿真结果对比分析
根据仿真结果,分别统计模板匹配算法和基于YOLO网络检测算法的检测率和平均识别精度,统计结果如表1所示。通过数据对比可看出,基于YOLO的红外弱小多目标识别性能均优于传统的模板匹配方法。
表1 检测效果对比
4 结论
基于YOLO对红外弱小多目标进行了检测,并对比了传统的模板匹配算法,可得出以下结论:1)YOLO算法在目标之间无相互遮挡且没有云层遮蔽的情况下,可实现对红外弱小多目标的准确识别;2)在相同情况下,YOLO算法的目标识别效果明显好于传统的模板匹配算法;3)在目标之间相互遮挡或者云层遮蔽的情况下,传统的模板匹配算法和YOLO都无法准确地识别出图像中的所有目标。因此,针对图像劣化或目标部分被遮挡的红外弱小目标检测还需要做进一步研究:一方面是通过样本增广方法研究扩大训练/测试集的样本容量,提升网络模型的泛化能力;另一方面是设计针对弹载有限样本红外图像的专用网络模型,进一步提升红外弱小多目标智能检测识别能力,并在上述研究基础上,开展深度学习网络模型的嵌入式硬件实现研究。