蔡明鹏 杨耿 周佳淳 李钦 赖红
(深圳信息职业技术学院 广东省深圳市 518000)
目前无人机硬件设备已经成熟稳定,有较多成熟硬件厂商,前10 无人机硬件品牌深圳占据4 家,粤港澳大湾区占据6 家。无人机已经开始进入到人们生活,并在各行各业的各个方面替代人工现场作业并起到重要作用,主要集中在生态环境监测、农业现代化/农林植保、地理测绘、电力巡线、物流配送、影视拍摄等方面。2016 年11 月国务院印发《“十三五”国家战略性新兴产业发展规划》:加快发展多用途无人机、新构型飞机等战略性航空装备。2017 年7 月国务院《新一代人工智能发展规划》中关键共性技术之一为自主无人系统的智能技术,包括研究复杂环境下基于计算机视觉的定位、导航和识别。
民用无人机精准降落主要依靠卫星定位技术,然而卫星定位尤其是GPS 定位技术在中国精度不足、差分定位设备受差分站布设限制价格昂贵,并且GPS 芯片与定位技术受美国GPS 技术限制,不利于我国民用无人机精准降落广泛推广应用。针对该问题,可采用目前最先进的视觉深度学习技术,使得无人机在降落过程中实现由粗到精的定位,创新性地实现民用无人机停机坪精准识别与精准降落功能,并能在低成本的机载小型边缘计算模块中运行和实现。视觉识别技术已从传统的滤波器图像处理方法走向了深度学习方法,目前该领域领先的深度学习目标检测主要包括SSD、Faster R-CNN与YOLO技术。本文简要分析深度学习目标检测三种技术的优缺点,并选择性能较优的YOLO V3 技术,逐步完成数据采集、数据标注、数据训练、数据验证任务,最终实现无人机视角停机坪的精准识别。
YOLO V3 是一种单阶段结构的目标检测模型,YOLO V3 的网络结构中有3 个不同大小的特征图,从上到下分别对应深层、中层与浅层的特征。深层的特征尺寸小,感受越大,更有利于检测大尺度物体,而浅层的特征图则与之相反,更便于检测小尺度物体。与之前的YOLO 版本相比,YOLO V3 通过调整特征提取网络、利用多尺度特征进行对象分析,提升了mAP 及小物体检测效果。SSD 是一种使用单个深度神经网络来检测图像中目标的方法,将边界框的输出空间离散化为一组默认框,每个特征地图位置具有不同的纵横比和比例。比以前最先进的单次激发检测器(YOLO)更精确。Faster R-CNN 由两个模块组成,第一个模块是深度卷积网络用于生成提议区域,第二个模块是Fast R-CNN 检测器。整个系统是一个单个统一的目标检测网络;由于RPN 的存在,使得Faster R-CNN 精确度高于YOLO 与SSD,但速度慢于前两者。
mAP 是衡量深度学习模型对多个类目标检测的好坏平均值指标。由于YOLO V3 在同等的mAP 上比Faster R-CNN和SSD 的检测速度要快很多,而无人机降落的过程需要实时检测定位,所以YOLOV3 在检测精度上虽然比其他两者有所不足,但也不至于相差太多,综合精度和速度,最后本项目采用了YOLO V3 作为停机坪目标检测识别的模型。
如图1 所示,Yolo v3 模型识别过程包括数据采集、数据标注、数据训练与精度评估四个过程。其中所采集的数据包括训练集与验证集;数据标注包括tarmac 与h 两个类别的标注,trarmac 是整个停机坪,h 是停机坪中心的h 字符;数据训练过程综合考虑了学习率、梯度下降与损失情况;精度评估综合考虑了mAP 与图片识别实际效果。具体将在下文介绍。
图1: Yolo v3 模型识别实现过程
2.2.1 数据采集
数据采集过程中,设计了日夜不同场景、不同时段、不同高度的无人机视角停机坪照片采集计划,并对所采集的数据进行技术性扩增,扩增方法包括图像旋转、颜色变换、加噪、截取等方法,以增强数据集的鲁棒性。将所采集的数据集分成测试集与验证集,测试数据集共有3535 张图片,验证数据集有883 张图片。
2.2.2 数据标注
数据采集完成后,使用LabelImg开源软件来对图片内目标进行标注处理。数据标注共标识两个类别,一个是tarmac(停机坪最外围的圆圈),另一个是h(停机坪上的H 标识)。标识为tarmac 与h 的目的是增强停机坪识别的鲁棒性,在不同情况下(如遮挡)能够更好地将停机坪识别出来。当同时识别到tarmac 与h,可以取两者中心平均值作为可靠中心;当只识别到其中一个时,相互成为备份;无人机在飞行过程中,在时间序列上可以多次进行识别,可以在时间序列上对识别结果进行反复多次判断以获得综合性结果。
2.2.3 数据训练
百度飞桨是中国首个自主研发、功能完备、开源开放的产业级深度学习平台。为支持国产信创事业,本文采用百度飞桨框架实现YOLO V3,并采用了Darknet-53 的网络结构。为减少过拟合或者欠拟合情况,本文设置学习率初始值为0.001,采用分段常数衰减学习率策略PiecewiseDecay 以及学习率优化策略-线性学习率热身LinearWarmup 对学习率进行初步调整。同时采用Momentum 动量优化法对训练过程中梯度下降方向进行优化,以加快收敛并且减少动荡。PiecewiseDecay 是阶梯式下降学习率,可以使得每N 次迭代学习率下降到原来的1/K,其中N 和K 可以自行设定。LinearWarmup 可以在正常调整学习率之前,先按设计的公式逐步增大学习率,当达到热身步数值时,恢复成原设定的学习率。
如图2 所示,横轴是训练轮数,纵轴是训练损失loss,损失越小说明训练效果越好,当损失稳定在一定的小范围内后,说明训练基本收敛。在经过2000 次训练轮数后,该模型的损失基本在10 左右小范围变化。在本次实验中,2000次训练即可收敛获得较好结果,原因在于无人机视角下所拍摄的停机坪图案清晰、稳定,数据样本较好;同时所选择的模型、训练参数设置符合样本数据集特点。
图2: 模型训练损失与训练轮数关系图
2.2.4 精度评估
可采用mAP 衡量训练好的模型精度,mAP 的计算方法如公式(1)至(4)所示,其中TP 是检测框交并比>0.5的检测框数量,FP 是检测框交并比<=0.5 的检测框数量,Precision 是查准率,Recall 是查全率,AP 是某一类别的识别结果精度评估(即Precision-Recall 曲线下面积),则mAP 是所有类别识别结果精度评估。
其中r1,r2,…,ri 是按升序排列的Precison 插值段的第一个插值点所对应的Recall 的值。如图3 所示,横轴为某一轮训练的迭代次数,可见在该轮训练中,随着迭代次数的增加,验证集的mAP 在不断提升至97%左右。无人机在飞行过程中可以采用同一位置多个时间点的结果进行综合决策判断,因此当前mAP 为97%可以在实际应用中使用并能保证综合决策准确。
图3: 一轮训练下mAP 与迭代次数的变化关系
训练结束后,通过调用执行代码可以执行推理代码进行真实图像的识别,如图4 所示,无人机视角下的停机坪(绿色方框)与停机坪中的H(红色方框)可以很好的标记和识别出来。
图4: 无人机视角下的停机坪识别结果
无人机的控制软件一般加载在arm 或者Android 设备中,最常见的是Android 设备。该类设备由于自身计算与存储资源限制原因,需要小型化、轻量级的AI 算法,否则无法有效运行。因此需要对原始模型进行轻量级转化,并将转化好的模型封装成为Android 设备可调用的SDK。百度飞桨模型转换工具Paddle Lite是一个高性能、轻量级、灵活性强且易于扩展的深度学习推理框架,定位于支持包括移动端、嵌入式以及服务器端在内的多硬件平台。
使用百度飞桨模型转换工具Paddle Lite 可将训练好的模型转换为适用于Android CPU 架构的模型文件;使用C++代码调用模型文件对待处理图像进行预测并输出结果;使用Java 代码通过NDK 调用封装好的C++代码并接收结果,将此项目打包为aar 格式的可供调用的安卓SDK。无人机安卓控制终端(普通安卓平板)在获取无人机视角的图像后,可调用该SDK 将图像传入即可获得停机坪识别结果。经在普通安卓平台上进行测试,处理一张无人机视角图片获取停机坪识别结果的耗时在200ms-600ms 之间,处理耗时接近于实时,完全满足实际应用场景要求。
本文通过对无人机进行一系列操作来对停机坪进行实际拍摄,并在不同的时间段、地点和距离等对停机坪进行拍摄采集数据,形成两个类别的训练集和测试集。在训练之前,对图片进行预处理,使用LabelImg 来对图片进行标注处理。建立YOLO V3 模型,将数据传入模型中进行训练。当训练的损失与精度达到要求时,调用执行推理代码可获得无人机视角下图像中停机坪与停机坪H 字符的识别方框结果。最后通过轻量级封装即可供无人机安卓控制终端直接调用和使用,实现停机坪精准识别。
本文识别停机坪的目的在于为无人机提供精准降落的地面信息。所识别的停机坪图案是国内外通用的停机坪图案,可以适用于绝大多数场景,无需额外绘制二维码、绘制其他图案。结合无人机摄像头视场角、无人机自身传感获取的飞行高度,可以建立以无人机为中心的三维坐标系,通过几何关系计算出无人机与停机坪的相对位置关系;当无人机中心与停机坪中心位置关系满足降落条件时,可以进行垂直降落,否则根据位置关系进行自动控制移动直至满足条件为止。由于夜间无人机自身照射系统能够为其视角下方目标进行清晰补光,因此本文所实现的停机坪识别算法功能能很好地适应不同光线下的应用场景。除此之外,轻量级算法处理耗时接近实时,可根据实际应用需求进行抽样或者连续识别。综上所述,本文所实现内容为无人机精准降落打下坚实的技术基础。