宋建辉,杨佰强,刘砚菊,王思宇
(沈阳理工大学 自动化与电气工程学院,沈阳 110159)
目标识别技术可以被广泛应用于各生活领域及小型自寻导引头等军民领域,并且随着机器视觉理论的逐步发展,在智能交通系统、无人机检测跟踪等研究领域都有着重要的应用[1]。目标识别作为无人机视觉定位技术视觉分析阶段的核心技术之一,主要包括目标分类识别与运动目标检测这两个问题[2],待定位目标的识别精度和速度直接影响到目标定位的效果,无人机在进行图像采集时,目标与背景边缘对比度小,传统边缘检测算法应用于这类图像准确率低[3]。传统的特征算子检测算法在无人机距离目标较远的情况下,加上地面目标的尺度旋转性,特征点显著度降低,分块匹配策略需提取的特征点过多导致匹配时间过长进而降低实时性[4]。基于深度学习的目标识别和视觉定位技术使用卷积神经网络代替传统边缘检测和特征检测算法来作为图像处理模块,深度学习的目标检测算法模型可归结为两类,基于Two-stage的卷积神经网络虽然精度很高,但大量候选框的聚类继而分类回归需要更多的聚类时间和计算量,难以实现定位实时性。与其相比,以YOLO[5]、SSD(Single Shot Multi Box Detector)[6]为代表的基于One-stage(单阶段检测)的卷积神经网络能在图像上不同位置均匀采样后直接进行一步分类回归,缩短了检测时间以实现后续定位实时性,通过配合多种数据库设备,能达到无人机对地面运动目标的检测识别与定位要求。综上,研究基于深度学习的地面目标识别与定位技术不仅具有较高的理论意义,而且有广泛的实用参考价值。
本文研究基于深度学习的目标识别和无人机视觉定位技术。使用改进SSD目标识别网络作为无人机视觉定位技术中的图像处理模块,在保证使用SSD网络满足定位实时性的基础上,设计调制系数使网络变相侧重于挖掘困难样本的信息,为解决SSD网络与基于Two-stage(双阶段检测)的网络相比精度不理想的问题,修改SSD子网络结构,引入包含残差单元的预测模块和反卷积网络来提高网络复杂度和检测尺度,合并引入的网络模块来提高检测速度,最后通过得到的目标中心像素坐标进行坐标变换,解算出目标位置信息,验证技术的可行性。
2016年Liu Wei 提出一种基于One-Stage的网络模型——SSD。SSD算法的主网络结构是VGG16,将最后两个全连接层改成卷积层,并随后增加了4个级联卷积层来获得多尺度特征图用于目标检测[7],同时SSD借鉴了RPN网络中Anchor的机制思想,在多特征图上获得大量的默认框(Default box),利用非极大值抑制冗余候选框,最后将剩余的先验框进行回归与分类。主要结构如图1所示。
图1 SSD网络主结构
针对网络层数加深带来的训练错误增加和过拟合导致的梯度消失问题,构建结合ResNet152卷积子网络作为深度残差网络(Deep Residual Network)的SSD模型(RESSD),图2所示的结构为引入的包含残差单元的预测模块,残差通道卷积处理后的原特征提取层与网络主卷积通道特征相加[8],计算效率比VGG高,大幅度解决梯度消失问题,保证了在增加网络深度获得多尺度特征的同时训练误差的控制。
图2 残差单元预测模块
为了更匹配无人机航拍采集图像的地面目标检测,借鉴FPN网络的结构引入反卷积模块[9],拓展网络上下文信息,融合网络高低层特征,将提取到的深层特征传递出来与网络浅层特征信息融合,其特征提取充分性有极大提高,使检测精度可以达到和复杂卷积网络一样的效果[10]。使用反卷积层代替简单的双线性插值法应用于采样阶段,每个卷积层尤其是低层特征层紧随一个归一化层[11]。RESSD网络对小目标以及具有显著区分度的背景目标的图片特征提取更充分。
本文针对网络对难例样本的学习不充分和网络层数加深引起的速度下降这两个问题,在ResNet152作为卷积子网络结构的基础上,提出了改进RESSD网络。
1.3.1 设计调制因子
本文利用RESSD网络迭代损失函数与其反向传播进行更新权重的特点,在不增加Easy example[12](简单样本)损失值的基础上减小权重,变相增加难例样本对loss的累加贡献,引导网络侧重难例样本的学习,提高网络识别小目标困难样本的精度。
RESSD网络参考并借鉴了传统交叉熵损失函数[13](Cross Entropy),使用Focal Loss[14]函数,构成FL-RESSD模型,引入调制因子(1-pi)α*β,公式为
FL(pi)=-(1-pi)α*βlog(pi)
(1)
式中:α、β≥0,为自定义聚焦参数;pi为预测样本概率,(1-pi)∈(0,1)。当网络学习Easy example时,(1-pi)很小,引入调制系数(1-pi)α*β后,数值呈几何倍数趋近于零,对loss的累加贡献下降。随着α、β的增加,调制系数增加,预测正确的Easy example的损失值削减变快,不会对总体损失值有主导作用。
1.3.2 设计权重因子
针对模型泛化性降低的网络训练问题,本文使用单类别车辆样本集合进行训练,占比为1,自定义加权因子,后续根据课题进展增加新类样本集合。
在FL-RESSD模型损失函数基础上,引入权重因子得到新的损失函数,公式为
FL(pi)=-δi(1-pi)α*βlog(pi)
(2)
式中:δi=δ*i,i为通过交叉验证得到的倍数因子;FL(pi)为新损失函数下的样本损失值。
进行车辆单类目标识别时,取δi=1、α=1、β=2时,经过仿真对比得到传统交叉熵损失函数与新损失函数对比效果如表1所示,CE(pi)为传统交叉熵损失函数下的样本损失值,FL(pi)/CE(pi)表示样本对loss贡献度的相对占比。
表1 CE/FL损失函数结果对比表
从表1中可以看出,pi越高对应的是Easy example损失值和贡献度相对占比越小,当pi较小时意味着样本往往容易误判,这也就是难例样本,表中数据表明难例样本损失值下降幅度控制在20%以内,贡献度相对占比大,变相提高了难例样本对loss的累加贡献,引导网络模型侧重难例样本的学习,更集中于难例样本分类。
RESSD作为卷积子网络结构确实能保证网络提取深浅层特征的信息融合,特征提取的充分性也提升了网络对小目标的检测效果,但网络模型层数加深的同时也带来网络推理速度的降低,针对速度下降的问题,将RESSD网络的ResNet卷积子网络和大量BN层(归一化层)融合,减少网络推理时间,卷积融合BN层公式为
(3)
式中:ωx+b为卷积计算结果;通过网络学习得到缩放因子γ和偏置β;σ2为方差;μ为均值。将融合后卷积层的加权ω_new和偏差b_new计算公式写为式(4)和式(5),整理得到式(6)。
(4)
(5)
xout=ω_new+b_new
(6)
对SSD300、SSD513、未进行网络融合的RESSD网络和本文网络融合的RESSD进行实验对比,使用网络检测达到的帧率作为网络检测速度的评价参数。实验结果如表2所示。在设计ResNet152卷积子网络替代VGG16的网络结构后,模型响应速度下降到10.3fps,不能实现实时视觉定位。
表2 调试各网络速度对比
将归一化层与卷积层融合后,网络的复杂度大幅降低,网络识别的速度可达到33.2fps。调试中发现改进RESSD网络内存使用率下降30%,一定程度上降低了硬件设备的局限性。
图3所示为图像像素坐标系、图像物理坐标系、摄像机坐标系和世界坐标系的关系。
图3 像素、图像物理、摄像机和世界坐标系的关系图
整理四个坐标系的关系,可得式(7)为
(7)
式中:u、v即为目标检测网络提供的目标中心点像素坐标;u0、v0为图像中心点像素坐标;Zc为深度信息;dx、dy为像素单位长度;R、T为旋转平移矩阵。由式(7)解算出的Xw、Yw、Zw即为待定位目标位于世界坐标系的坐标。
使用改进RESSD目标检测网络代替传统的图像处理模块实现无人机地面目标视觉定位技术,具体流程如下图4所示。
图4 改进RESSD网络的无人机视觉定位技术流程
将无人机实地航拍图片的识别精度和定位实时性作为基于RESSD网络的地面目标无人机视觉定位技术的性能衡量标准,并总结分析相应的指标。
数据集主要来源为UCAS-AOD,另外新增了现实场景距地80~120m的飞行高度范围多观测角度、多高度实地航拍的地面车辆图像,与筛选后的航拍数据集共同组成本文使用的数据集UCAS-AOD-ADD。采用加入噪声、调整亮度、旋转等方法扩大样本[15],UCAS-AOD-ADD数据集由车辆目标构成,其中训练集与测试集的数量比例为8∶1。
操作系统为64位Ubuntu16.04系统,安装Tensorflow1.14和python 3.5(64-bit),以Tensorflow框架作为运行环境,训练RESSD网络模型,GPU为NVIDIA GeForce RTX 2060,显存6GB+GDDR6。训练ResNet152为卷积子网络的RESSD网络模型,将网络训练初始学习率设为0.001,在30000步降为0.0001、50000步降为0.00001,再以与前两阶段同样的学习率和迭代次数固定参数针对反卷积网络进行训练,以此提高网络参数利用率。
为了更符合UCAS-AOD-ADD数据集的要求,本文通过在训练时设计调制系数和固定权重因子,将设计的FL-RESSD模型损失函数应用到所有候选区域里训练验证,RESSD模型损失变化与准确度曲线如图5所示。图5a为RESSD网络模型损失曲线,图5b为RESSD网络模型训练准确率曲线图。
从图5中可以观察到,训练刚开始损失值比较大,原因是数据集采集制作中航拍高度与角度的多样性导致样本尺寸位置存在差异性,尤其是一些包含大量小目标的困难样本成为损失值的贡献源,采用在不同迭代梯度设置对应学习率的策略,在迭代次数达到6万次后,损失值和训练准确率曲线的超调量波动已经收敛,最终准确率趋近于0.94,网络损失下降至约0.35,得到的网络模型训练学习的权重结果相对理想。
图5 RESSD模型损失变化与准确率曲线
为了验证本文提出的改进RESSD网络的有效性,以mAP(mean Average Precision)作为评价指标,使用UCAS-AOD-ADD数据集训练四个网络,结合Resnet152卷积子网络结构、扩充上下文信息改进RESSD网络由“M+”表示,引入新调制系数改进RESSD网络由“FL+”表示,结合上述2种改进由“FM+”表示,检测结果如表3所示。
表3 每种改进方式对mAP的影响
与SSD300网络比较,结合Resnet152卷积子网络结构、扩充上下文信息改进RESSD网络,mAP提高了3.2%;引入新调制系数改进RESSD网络,mAP提高了4.6%;结合上述2种改进,并将改进的RESSD网络通过采用边界框置信度得分取最大值操作微调边界框预测规则,有效减小了车辆目标的重检和相似背景采样对网络的干扰,最终在对车辆类目标的检测上能够达到88.4%的识别率,增强了RESSD网络的鲁棒性。
图6所示为部分多角度、多高度航拍图片的检测结果,图片尺寸为321×321,按照图像像素坐标系的定义得到的检测框四个顶点与目标车辆实际边框平均像素误差不超过2pt,改进的RESSD网络跟传统的SSD300网络作比较,mAP总体提高了8.9%。
图6 部分检测结果示例
为了验证分析本文提出的使用改进RESSD目标识别网络作为图像处理模块支持无人机对地目标进行视觉定位技术的可行性与性能,在原有UCAS-AOD-ADD数据集的基础上增加构建的验证集,无人机在对地80~120m内悬停,设置摄像机三个拍摄角度各为90°、60°、45°,采集若干张影像,将构建的验证集图像进行尺寸调整后导入网络,将网络识别出的目标边框与真实边框进行对比得到检测框准确率,将识别定位解算结果与提前记录的目标车辆实际位置信息进行对比得到定位误差,如表4所示。
表4 无人机视觉定位检测率及误差
检测框准确率q计算公式为
(8)
(xtrue.min,ytrue.min),(xtrue.max,ytrue.max)分别为真实框左下角和右上角两个顶点坐标。(xmin,ymin),(xmax,ymax)分别为检测框左下角和右上角顶点坐标。
分析表4中结果可以发现:摄像机在不同姿态下的检测框准确率和定位误差有所不同,以这两个指标作为评判标准来衡量定位效果,以90°高低角拍摄的图像在进行视觉定位时的性能最佳。目标车辆在图像中的位置会伴随高低角的变化产生投影误差,非90°垂直拍摄时投影误差与高低角呈反比例关系,投影误差越大,正确的目标车辆检测框误差也会随之增大,直接影响到目标车辆定位精度,可以通过在适当高度范围内升高无人机拍摄高度、调整高低角接近90°等方法来抵消部分投影误差对无人机视觉定位准确率的干扰。使用90°高低角条件下采集的数据进行定位,正确的目标车辆检测框准确度达到了96.2%,定位误差降低至0.20m,针对无人机视觉定位技术的标准可以达到要求。
本文以改进的RESSD目标识别网络作为无人机视觉定位技术中的图像处理模块,依靠扩充上下文信息和引入包含残差单元的预测模块,设计调制系数,加强网络对航拍的小目标车辆和难例样本的检测效果,改进的RESSD网络识别精度得到提高,构建UCAS-AOD-ADD数据集并进行网络训练学习,根据检测出的目标边界点像素坐标通过坐标变换最终解算出待定位航拍车辆类目标的位置信息。无人机视觉定位系统规定1000m高空定位误差在80m以下,本技术在无人机飞行悬停高度为80~120m范围、拍摄高低角为45~90°范围的条件下,将定位误差控制在0.3m以内的同时能达到90%以上的正确车辆类目标区域检测率,小于视觉定位系统要求的误差,检测速度达到33帧/s,高于国内使用PAL制式帧率要求的25帧/s,能满足实时性要求,对无人机航拍车辆类目标识别的mAP达到88.4%。综上基于改进RESSD网络的地面目标无人机视觉定位技术,在实现了无人机视觉定位技术实时性的同时也满足了定位精度要求。