汪常建,丁 勇,卢盼成
(南京航空航天大学 自动化学院,南京 210016)
无人机是利用无线遥控设备和自备的程序控制装置操纵的不载人飞机,与有人驾驶的飞行器相比,无人机具有的高机动性使其更适合执行地面目标的检测任务[1]。无人机通过自动识别和定位图像中的目标可以增强人机交互下的感知功能,为其自主探测和飞行提供必备的技术支持[2]。目前,基于图像的目标检测算法在面向自然场景(如人脸识别[3]、智能检测[4]等)下已经取得较大进展,在无人机场景下,目标检测存在成像视角不同、样本数量不足等问题,检测效果较差[5]。因此,适用于复杂无人机场景下的目标检测算法成为研究热点。
基于深度学习的目标检测算法主要有以R-CNN[6-8]系列算法为代表的基于候选区域的两阶段算法和以YOLO[9-11]系列与SSD[12]为代表的基于回归的单阶段目标检测算法。两阶段算法对待检测图片进行预处理生成若干个候选区域,并放入分类器中进行分类确定目标位置,具有更精准的目标定位。单阶段目标检测算法直接对预测的目标物体进行回归,对输入图片直接进行处理,输出层直接输出边界框的位置信息和其所属类别,算法速度较快但准确率较低。针对检测图片中目标存在的尺度变化问题,文献[13]提出一种多尺度的特征金字塔结构目标检测算法,通过下采样实现高层特征图与底层特征图的融合,这种特征构造方式能够有效利用高层特征图具有较强语义信息的特点,将语义信息融入到底层特征图中,可以较好地处理目标检测中的尺度问题,但未有效地利用底层特征图的位置信息。文献[14]提出一种尺度注意力模块,用于融合特征金字塔网络(Feature Pyramid Network,FPN)所有检测分支的特征。在视觉领域,通过获取上下文信息或对象之间的关系有助于识别检测。文献[15]提出一种地理上下文的方法,使用对象空间提高检测效果。文献[16]提出自动上下文的概念。文献[17]提出一种注意力模块,通过从一组元素中聚集信息从而影响单个元素,由任务目标驱动自动学习聚合权重,对元素之间依赖性进行建模,提高翻译效果。文献[18]提出一种AC-FPN 算法,通过集成注意力导向的多路径特征判别各个感受野范围信息,以提高检测精度。文献[19]提出一种耦合度较低的关系网络模块,更便捷地插入其他网络结构中以构造目标之间的关系。在目标检测中,通过提取图片整体信息构建目标之间的关联性有助于检测目标,但由于目标之间关联较抽象,构造关联性难度较大。
本文基于Faster R-CNN 提出一种融合改进FPN 与关联网络的目标检测算法,在FPN 结构中增加自下而上的融合方式,利用候选区域之间的特征构建关联特征,通过将待检测图像中的关联特征与深度特征相融合,解决尺度变化较大情况下的目标检测问题。
Faster R-CNN 算法是两步式目标检测算法R-CNN和Fast R-CNN 的升级算法。Faster R-CNN 算法的流程如图1 所示。首先,采用VGG[20]网络架构或ResNet[21]残差网络结构提取输入图片的特征,利用区域建议网络(Region Proposal Network,RPN)在提取的特征图上生成候选区域,经过非极大值抑制后由全连接层对候选区域进行分类回归实现目标检测。
图1 Faster R-CNN 算法流程Fig.1 Procedure of Faster R-CNN algorithm
Faster R-CNN 算法引入Anchor 机制和边框回归,利用滑动窗口以Anchor 为中心生成大小不同的9 个框(3 种面积,3 种长宽比例),每个候选框分别判定是否含有目标信息,选择与真实值交并比最高的框作为检测结果,并对其进行回归实现目标检测。RPN 网络结构如图2 所示。
图2 RPN 网络结构Fig.2 Structure of RPN network
在Faster R-CNN 算法中引入RPN 网络结构的目的是提取目标在图像上可能存在的区域,替代之前算法采用的选择性搜索方法,使得整个网络可进行端到端的训练。Faster R-CNN 算法利用滑动窗口对特征图像进行卷积操作生成特征向量,并输入至回归层和分类层,其中分类层主要预测目标的置信度分数,回归层计算目标的位置坐标偏移量。由于Faster R-CNN 算法直接使用RPN 网络生成检测框,因此可以有效解决生成候选区域较慢的问题,但其依然在单一尺度下对目标进行检测。当面对无人机图像中存在尺度变化较大的场景时,网络层对后面浅层特征图的贡献信息小。因此,Faster R-CNN 算法不能解决多尺度下的目标检测问题。
针对Faster R-CNN 算法存在的提取尺度信息不足和目标之间关联性不明确的问题,本文提出一种改进FPN 与关联网络相结合的Faster R-CNN 目标检测算法。本文算法流程如图3 所示,首先对输入图片经卷积层提取深度特征,利用改进的FPN 对不同卷积层提取的特征进行融合;通过RPN 网络的滑动窗口生成候选区域并输入至全连接层,由关联网络接收候选区域的信息并构造区域之间的关联特征,将关联特征加入深度特征之中,最后进行分类回归,从而实现目标检测。该算法在输出特征图中通过改进的FPN 结构来最大程度地保存目标的多尺度信息;将候选区域单独作为目标,利用候选区域的位置关系和外观特征构造区域之间的关联性,充分地提取图片的整体信息,有助于提高目标检测效果。
图3 本文算法流程Fig.3 Procedure of the proposed algorithm
传统Faster R-CNN 算法是在单一尺度上生成特征图,用于检测的只是卷积层最后一层的输出特征图,并未利用之前的多层卷积层特征提取结果。在目标检测中,底层特征图具有丰富的位置信息,有助于小尺度目标的检测,高层特征图具有丰富的语义信息,适合处理尺度较大的目标。为解决小目标的尺度问题,文献[13]提出一种FPN 结构,如图4 所示。FPN 采用自上而下和横向连接的结构,融合底层位置信息与高层语义信息更丰富的特征图,以得到新的特征图中保存了目标底层的位置信息,提高较小尺度目标的检测效果。不同卷积层得到的深度特征通过1×1 卷积核进行通道的匹配,融合后的特征图利用3×3 卷积核进行处理以减少不同层特征融合带来的混叠影响。
图4 FPN 结构Fig.4 FPN structure
传统的FPN 能够有效地融合底层特征图的位置信息,但是高层特征图经过2 倍上采样处理导致语义信息被减弱。为同时获得较强的语义信息和位置信息,本文提出一种改进的FPN 结构,如图5 所示,输入图片经过ResNet 网络提取特征,将高层特征图上采样后与底层特征图相加,将底层特征图进行下采样后与高层特征图相加的双向融合方式获取最终的特征图,再经过RPN 网络生成4 种尺度{256×256,128×128,64×64,32×32}和3 种比例{1∶2,1∶1,2∶1}共24 种Anchor。特征图输入到ROI 池化层进行池化操作,最后经过检测器输出实现目标检测。
图5 改进的FPN 结构Fig.5 Improved FPN structure
改进FPN 的Faster R-CNN 多尺度检测算法包含目标丰富的语义信息和位置信息,但在后续处理中,没有考虑图片中目标之间可能存在的关系,而是将目标单独进行检测。为更充分提取图片信息,本文考虑加入关联网络结构,通过提取图片上不同位置处特征信息的关联性进一步提高检测效果,确保输出特征图中同时保存足够的语义信息和位置信息,有效提高多尺度目标的检测效果。
在Faster R-CNN 算法中,RPN 网络将生成的候选区域输入到ROI 池化层进行池化处理,得到每个区域的特征向量,包括候选区域的目标位置信息和深度特征信息,随后将每个区域未处理的信息送入全连接层和Softmax 处理,得到候选框具体所属的类别,并未利用候选区域之间的相互关系。为进一步获取候选区域之间的关联性,本文引入一种关联网络结构,利用特征信息和位置信息对目标之间的关系进行建模,构造关联特征并与深度特征相融合,进一步提高检测效果。关联网络结构如图6 所示。
图6 关联网络结构Fig.6 Structure of relation network
从图6 可以看出,关联网络以ROI 池化层输出的形状特征fA和位置特征fG为输入,将提取到的每个候选区域单独作为一个目标,通过关联网络构造区域之间的关联,构造方法为图6 虚线方框。图中为输入的第n个区域的形状特征为输入的第m个和第n个区域的位置特征,用一个4 维的bbox 坐标信息表示。WV、WQ、WK、WG均为变换矩阵。在目标检测过程中,本文给定N个目标的输入参数为定义第n个目标,受其周围m个目标的影响因子fR(n)如式(1)所示:
其中:ωmn为关联特征权重,表示目标m受到其他目标的影响因子为第m个目标的形状特征,经过变换矩阵WV进行维度变化之后,与权重参数ωmn相乘进行归一化处理,得到其他目标对第n个目标的关联程度。关联特征权重ωmn如式(2)所示:
其中:WK、WQ均为参数矩阵;通过变换矩阵WK、WQ将原始输入的外观特征映射到子空间度量其特征的匹配程度;dk为映射后的特征维度;dot 为向量的点积运算。式(3)分母的作用是限制数值规模,防止ωmn出现非0即1的情况。位置特征权重如式(4)所示:
为了使目标不受平移缩放的影响,本文对目标位置信息进行尺度归一化和对数变换,如式(5)所示:
其中:(xm,ym,ωm,hm)、(xn,yn,ωn,hn)表示第m个和第n个目标的位置信息。
通过式(5)对位置特征进行尺度归一化和log 操作来增加尺度不变性,使得在训练过程中不会因为数值变化范围过大而引起数据发散。在得到所需要的关联特征后,通过Concat 聚合方式聚合Nr个关联特征,并将其与目标的深度特征相融合,作为最终输出的新特征,如式(6)所示:
从式(6)可以看出,在输入图像原有深度特征的基础上加入关联特征,通过构造不同候选区域之间的关联性,并将这种关联性加入到特征中进行后续的回归分类处理,充分提取图片信息。
融合改进FPN 和关联网络的Faster R-CNN 目标检测算法主要分为7 个步骤:
步骤2利用改进的FPN 结构融合不同层次的卷积块输出特征图。
步骤3利用RPN 网络在步骤2 生成的特征图上生成候选区域。
步骤4将生成的候选区域输入ROI Pooling 层池化到特定大小(7×7),并输入至全连接层。
步骤5接收全连接层输出,通过关联网络构建关联特征,主要有以下3 个部分。
1)构建关联网络数目Nr=16。
步骤7输出目标检测结果。
实验采用Ubuntu 16.04 操作系统和NVIDIA GeForce GTX 1660 显卡,以Tensorflow 作为深 度学习框架构建算法模型。为验证本文所提算法的目标检测效果,在PASCAL VOC 2007 和NWPU VHR-10上进行实验验证,其中PASCAL VOC 2007 作为标准数据集,是衡量图像分类识别能力的基准数据集之一,包括20 个类别的目标,拥有标签train-val(5 011 张图片)和test(4 952 张图片)。NWPU VHR-10 包含800 个高分辨率的卫星图像,均来自Google Earth 和Vaihingen 数据集,由专家手动注释产生。实验将从检测效果、检测精度和P-R 曲线3 个方面进行验证。
例如:许多数学概念需要用数学符号来表示.如dy表示函数y的微分.各种数学符号也是表达不同数学概念的独特方式,有助于学生更加容易理解和形成数学概念,数学符号的表达使得学生对数学概念的理解更加简洁明了.为了增强数学的科学性,很大一部分数学概念的定义都是用各种各样的符号来标识的.许多数学概念还需要用图形来表示.有些图形也是数学概念的一种,比如圆形,正方形,三角形,梯形等.有些数学概念可以用图形来表示,比如y=x+1的图象.像函数的微分dy,就具有几何意义.
本文选用PASCAL VOC2007 部分有代表性图片,本文算法与FPN+Faster R-CNN 算法的目标检测对比如图7 所示。从图7(a)可以看出,第1 幅和第4幅为图片中同时存在尺度较大目标和尺度较小目标;第2 幅图片为在模糊环境下的船舶;第3 幅图片为在特殊视角下的船体检测。
图7 本文算法与FPN+Faster R-CNN 算法的目标检测结果对比1Fig.7 Object detection results comparison 1 of the proposed algorithm and FPN+Faster R-CNN algorithm
当待检测图片中目标尺度发生较大变化时,FPN+Faster R-CNN 算法可以在一定程度上对尺度变化的目标进行检测,但不能完全准确地定位到每个目标的位置信息,特别是对小目标的检测,如第1 幅图片中最小的一只鸟,第2 幅图片中大船旁边的小船只,均出现了漏检的情况。本文改进后的算法综合考虑了目标的尺度变化与目标之间的关联性,在处理包含这些小目标或者特殊视角的目标时,如图7(a)中第3 幅图片船舶的检测结果,本文算法能较准确地识别特殊视角下的目标信息,不会将其分类为背景信息而出现漏检情况。
待检测图片为NWPU VHR-10 数据集中包含的部分航拍图像,本文算法和FPN+Faster R-CNN 算法的目标检测结果对比如图8 所示。由于无人机拍摄图像的目标尺度较小,因此传统检测算法存在定位不精确的问题。当待检测目标受相似环境干扰(如图8(a)第3 幅图片)时,传统算法容易出现漏检情况。
图8 本文算法与FPN+Faster R-CNN 算法的目标检测结果对比2Fig.8 Object detection results comparison 2 of the proposed algorithm and FPN+Faster R-CNN algorithm
从图8 可以看出,FPN+Faster R-CNN 算法在对无人机视角下的图片进行检测时,当存在相似性干扰情况下(如第3 幅图片中飞机与跑道)会出现漏检。本文算法对目标框的回归更精确。本文对待检测图片中目标自左向右依次编号为1、2(1)、2(2)、3(1)、3(2),将本文算法和传统FPN+Faster R-CNN算法两次目标检测结果与目标真实值回归框相比较,并以检测结果与真实值的交并比(Intersection of Union,IoU)作为评价标准,真实值为定位框左上角的横纵坐标和右下角的横纵坐标,结果如表1 所示。
表1 本文算法与FPN+Faster R-CNN 算法IOU 对比Table 1 IOU comparison of the proposed algorithm and FPN+Faster R-CNN algorithm
从表1 检测结果的IOU 值对比可以看出,与FPN+Faster R-CNN 算法相比,本文算法整体检测准确率分别提高了5、22、10 和13 个百分点,本文算法对目标定位更精准,目标检测效果更优。
在PASCAL VOC 数据集上选取20 个类别的图片,在每个类别上本文算法和FPN+Faster R-CNN 算法的平均检测精度mAP(mean average precision)对比如表2所示,并将检测结果与提供的真实值进行对比。
表2 本文算法与FPN+Faster R-CNN 算法的mAP 对比Table 2 mAP comparison of the proposed algorithm and FPN+Faster R-CNN algorithm %
从表2 可以看出,本文算法在引入改进FPN 结构和关联特征后的mAP 为80.1%,相较于FPN+Faster R-CNN 算法的mAP 提高了2.7 个百分点。本文算法与FPN+Faster R-CNN 算法的检测性能对比如表3 所示,本文算法改进前算法检测速度上慢了21 ms,以较低的时间损耗得到较高的检测精度,能够满足在无人机场景下目标检测识别的要求。
表3 本文算法与FPN+Faster R-CNN 算法的检测性能对比Table 3 Detection performance comparison of the proposed algorithm and FPN+Faster R-CNN algorithm
在目标检测中,P-R 曲线是评估算法的重要指标,P表示正样本精确率,如式(7)所示:
其中:TTP表示判断为正例的正例;FFP表为判断为正例的负例。
R表示正样本召回率,如式(8)所示:
其中:p为所有正例的个数。
P-R 曲线包围面积接近1,说明算法性能越好。本文算法和FPN+Faster R-CNN 算法的P-R 曲线对比如图9 所示,本文算法的P-R 曲线包围面积更大,其样本分类性能更优。
图9 本文算法和FPN+Faster R-CNN 算法的P-R 曲线对比Fig.9 P-R cures comparison of the proposed algorithm and FPN+Faster R-CNN algorithm
本文基于Faster R-CNN 网络结构提出一种改进的目标检测算法。在特征金字塔网络结构中加入自下而上的特征融合路径,增大底层位置信息在输出特征图中的比率,并通过构建候选区域之间的特征关联性,充分提取目标信息。实验结果表明,本文算法平均交并比和平均检测精度分别为12.5 和80.1%,具有较优的目标检测效果。下一步将考虑利用卷积层代替目标检测框架中的全连接层,以减少参数运算量和算法运行时间。