孙明英 ,付博文 ,曹 川 ,马思乐
(1. 滨州黄河河务局,山东 滨州 256601;2. 山东大学海洋研究院,山东 青岛 266200)
黄河流域具有生态保护、资源开发和经济发展的重要作用[1],多年来违规牧羊等活动给河堤保护工作造成很大困难[2]。黄河滩区的过度放牧现象已经导致部分区域草皮的护坡能力丧失,造成水土流失、鸡爪沟增多和工程面貌严重受损等问题。山东省所处的黄河下游河段是连接内陆与海洋的关键位置,也是工农业发展的重要地区。目前山东省黄河沿线部分管理段已经安装了定点摄像头查看河段实况,但巡检范围有限,灵活性差,智能化程度低,仍需要人工实地考察。近年来无人机技术正飞速发展,飞控、通信、导航等能力有了明显提升,同时也凭借全方位的空中视角为河道巡检工作打开了新大门[3]。基于深度学习的目标检测算法也取得了大量进展,但实际运行时的效果和性能并不十分理想,与黄河应用场景的联系不密切,相关数据集缺失,因此选择合适的算法模型在实际项目平台上应用仍是关键问题[4]。本研究深度调研黄河沿岸的环境特点和工程监管方式,高度结合黄河监管的实际需求,从整体角度提出更加合理、智能、科学的无人机黄河违规牧羊巡检方案。为实现精准快速的违规牧羊自动识别和处理分析,提高准确性和实时性,基于无人机航拍目标区段图像,改进YOLOv5s 目标检测算法,并在此基础上设计目标定位算法,通过无人机搭载处理器实现对违规牧羊行为的快速检测。
黄河滩区违规牧羊智能检测方法主要包含目标检测算法和目标定位算法 2 个部分。为提高智能检测方法的精确性和实用性,通过以下 2 个步骤对违规羊群进行识别:1) 使用改进的 YOLOv5s 目标检测算法对无人机图像进行目标检测,判断当前区域是否存在违规牧羊行为;2) 借助目标检测算法得到羊群在无人机图像中的像素坐标,辅以当前无人机云台姿态信息,使用无人机图像目标定位算法计算羊只所在位置的经纬度。智能检测方法流程如图1所示。
图1 智能检测方法流程
YOLOv5 目标检测算法是在速度与模型大小上均有较大提升的目标检测算法,具有以下特点:1) CSPDarknet - 53 主干网络保证了特征提取的速度和准确性,且模型尺寸更小;2) 在隐藏层使用leakyRelu 激活函数,有助于网络学习更复杂的特征,检测层使用 sigmoid 激活函数,适用于二分类问题;3) 采用缩放、色彩空间调整和马赛克数据增强 3 种数据增强方式。
YOLOv5 目标检测算法根据不同网络深度和宽度分为 YOLOv5s,YOLOv5m,YOLOv5l 和 YOLOv5x 4 种版本,区别在于模型尺寸和参数数量依次变大和增加,使图像中的特征信息可以更有效地被利用。在无人机平台上直接对图像上的目标进行实时监测是目前无人机实时应用必须具备的能力,但受限于计算能力,在无人机平台上布署实时检测算法具有一定难度。无人机检测到违规牧羊现象后,还需要通过喊话设备进行实时管控,因此该功能对目标检测速度的要求大于检测精度。YOLOv5 目标检测算法的 4 种版本中,YOLOv5s 目标检测算法检测速度最快,在此基础上进一步提高 YOLOv5s 目标检测算法的速度是本研究的研究重点。
移动端需要较高的实时性能,应使用轻量级模块与现有模块进行合理连接,再布署到移动设备上。为实现这一目标,需要合理地减少整个网络的参数数量。受轻量级网络 GhostNet[5]的启发,本研究考虑使用步幅为 1 和 2 的 Ghost 模块取代 YOLOv5s 目标检测算法主干网络中的 BottleNeckCSP 模块。GhostNet中的 Ghost 模块以更少的参数生成相同数量的特征图,主要目标是减小模型尺寸,比普通卷积层需要更少的计算成本和内存,可以降低计算成本和参数数量,在不损失大量精度的前提下获得更快的检测速度。Ghost 模块将原始卷积层分为以下 2 个阶段:1) 使用少量的卷积核经计算生成原始特征图;2) 使用廉价的线性运算 Ф 生成更多的 Ghost 特征图,并与原始特征图进行拼接(Identity)后作为输出,模块结构如图2 所示。在每个通道上使用线性运算,可减少计算量。
图2 Ghost 模块结构
深度可分离(DW)卷积[6]能够进一步减少路径聚合网络(PANet)[7]的参数数量。DW 卷积可分为深度和逐点卷积 2 个步骤:首先使用深度卷积分别对不同的输入通道进行卷积,然后使用逐点卷积对上述输出进行组合。DW 卷积的总体效果与普通卷积相似,但会减少计算量和模型参数数量,结构流程如图3所示。
图3 DW卷积结构流程
对于普通的二维卷积(其中步幅 = 1,填充 = 0),其输入大小为H×W×D(H与W分别表示输入的长和宽,D表示通道数),N表示卷积核数,核大小为h×h×d(h表示卷积核的尺寸,d表示通道数)。在卷积过程中,有许多输出通道,数量N远大于h,且普通二维卷积需要的时间是 DW 卷积的h平方倍,因此用 DW 卷积替换普通卷积,能够进一步减少 PANet网络的参数数量,节省大量计算成本,提取出不同大小的空间特征信息。
综上所述,本研究提出的改进的 YOLOv5s 目标检测算法特点如下:1) 使用步幅为 1 和 2 的 Ghost模块压缩模型的深度和宽度,减小模型总体尺寸和网络参数量,有助于提高模型检测速度;2) 颈部部分用DW 卷积取代原 PANet 模块中的普通卷积,大大减少参数数量和操作成本,进一步压缩网络参数,实现轻量级模型设计。以上改进使得原来的目标检测算法能够搭载在计算能力有限的无人机平台,从而使算法在无人机进行黄河滩区违规牧羊检测的过程中,能够迅速地反馈有无违规牧羊行为发生。
为判断检测到的羊群是否位于划定的违规区域内,提出一种目标定位算法,通过无人机图像中指定目标在二维图像平面的像素坐标,以及无人机 GPS位置和云台姿态等数据,计算目标 GPS 位置坐标。目标位置计算过程涉及像素、图像、相机、北东地(NED)、地心地固(ECEF)和纬度经度海拔(LLA)等坐标系之间的坐标系转换。机载端处理器结合目标检测框图像像素坐标位置、无人机飞行高度、无人机GPS 位置和三轴云台姿态数据进行坐标系转换,得到目标 GPS 位置信息。
像素坐标系(u,v)到图像坐标系(x,y)的矩阵转换如下:
式中:dx和 dy为镜头自带参数,由图像长度(mm)除以分辨率像素得到;u0和v0为图像中心坐标。
图像坐标系(x,y)到相机坐标系(xc,yc,zc)的矩阵转换如下:
式中:f为焦距;c 为 Camera 的缩写。
综上,像素坐标系到相机坐标系的转换式如下:
式中:zc为相机到目标点的空间直线距离,又称深度,由于本次应用中所有目标点均位于地面,因此可通过无人机飞行高度和三轴云台姿态计算得出;fx和fy为焦距,即投影中心与图像平面之间的距离。
从机载 NED 坐标系到相机坐标系的欧拉转换矩阵R如下:
设 NED 坐标系中目标坐标为(xn,yn,zn),则:
NED 坐标系到 ECEF 坐标系目坐标(xec,yec,zec)的转化公式如下:
式中:B和L分别为无人机纬度和经度;(xuav-ec,yuav-ec,zuav-ec)为无人机在 ECEF 坐标系下的坐标,由无人机经纬度和高度参数h进行 LLA 至 ECEF 坐标系转换后得出:
式中:N为地球正垂直曲率半径;e为地球的偏心率。
目标点的经纬度坐标信息(la,lo)可由 ECEF 至LLA 坐标系转换得出,公式为
基于目标定位算法能够得到无人机图像中地面目标的精确经纬度信息,实现对违规牧羊现象的检测与定位功能,便于相关工作人员在短时间内判断当前区域是否存在违规牧羊行为,并及时记录精确地理位置。
使用 DJI Mavic Pro 拍摄黄河滩区羊只数据集,拍摄地点位于山东省滨州市滨开区张肖堂管理段,后期通过开源图像数据标注软件 labelImg 制作为 PASCAL VOC2007 格式的数据集。经过数据增强处理扩增后的数据集共有 3 278 张图片,包含羊的黄河巡检图像,其中每张图像分辨率为 4 096 ×2 160 像素。数据集分为:1) 正样本,包含不同自然环境、季节、天气,以及 1 d 内不同时间段等多种场景的牧羊图片,共 2 952 张;2) 负样本,包含建筑、车辆等其他在测试阶段发现的易被误检为羊只的物体图片,共 326 张。
试验使用 DJI M100 无人机,机载端处理器为Nvidia Jetson TX2 计算机,通过飞控系统获得三轴云台姿态和 GPS 位置等信息;使用高精度定位模块SKG12UR 对目标进行定位,SKG12UR 具有行业领先的 -167 dBm 导航灵敏度,在城市、峡谷、茂密树木等复杂场景下都可以达到良好的定位精度。
以精度、召回率为评价指标。精度代表预测为正例像素数中检测正确的像素占比,召回率代表像素中的正例有多少被检测正确。具体公式如下:
式中:P为精度;TP为检测正确的像素数量;FP表示检测错误的像素数量;R为召回率;FN为未检测到的像素数量。
通过P和R可以有效获得平均精度AP。AP和mAP也是试验的评价度量指标,数值越高,精确率越低。AP值是IoU阈值(用于确定何时将检测边界框视为正确检测的阈值)为 0.5 时的精度和召回率曲线的封闭区域,mAP是所有类别检测结果AP的平均值。公式定义如下:
式中:Pr为精度-召回率曲线;n为类别数,在本研究中为 1,即羊群 1 个类别。
4.3.1 无人机图像目标检测算法
使用无人机对改进的目标检测算法进行实飞试验,利用 DJI M100 无人机采集影像,在 TX2 中使用搭载的改进 YOLOv5s 目标检测算法进行目标检测,能够有效识别无人机航拍图像中的羊群,检测效果如图4 所示。经统计,漏检率可达到 5% 以下。
图4 无人机航拍图像羊群目标检测效果
本研究对 YOLOv5s 目标检测算法做了 2 项改进,同样通过消融实验研究 2 项改进是否都有效,以及二者之间是否存在相互作用:将使用 Ghost 模块取代 YOLOv5s 目标检测算法主干网络中的 BottleNeck CSP 模块的改进算法称为 Ghost - YOLOv5s 目标检测算法,将在 Ghost - YOLOv5s 目标检测算法的基础上,用 DW 卷积取代原 PANet 模块中普通卷积的改进算法称为 Ghost - DW - YOLOv5s 目标检测算法,并与原始的 YOLOv5s 目标检测算法进行对比,可以有效获知 Ghost 模块与 DW 卷积分别对检测效果产生的影响。
训练基本参数设置如下:采用梯度下降策略,动量和权重衰减分别设置为 0.937 和 0.000 5,初始学习率设置为 0.001,批量大小设置为 16,其他设置沿用YOLOv5s 目标检测算法的基础训练策略。机载端实时性能的参考指标为在 CPU 上的FPS(每秒帧,是指每秒内目标检测算法可以处理的图像数量),反映目标检测算法的实时性能,消融实验结果如表1 所示。
表1 消融实验结果
由表 1 可知,Ghost 模块和 DW 卷积的加入使模型大小从 14.4 MB 减少到 3.8 MB,调整了网络结构,降低了计算复杂度,mAP降低了 4.2%,虽然损失了一定的检测精度,但FPS@CPU 达到 21 帧/s,算法模型在 CPU 上的实时性能提高了 31.25%。
改进模型主要是为移动设备设计的,将改进后的 YOLOv5s 目标检测算法与 YOLOv3 - tiny,SlimYOLOv3 - SPP3 - 95,YOLOv4 - tiny,YOLOv5s和 YOLOv5 - Mobile Netv3Small 等轻量级目标检测算法进行比较,采用相同平台和设备进行测试,将不同模型在无人机航拍黄河羊只数据集上的mAP和FPS@CPU 结果作为评价指标,对比试验如表2所示。
表2 不同算法模型性能对比试验
由表2 可知,本研究改进的 YOLOv5s 算法在CPU 上表现出较好的检测速度性能,同时在检测精度上的损失相对较少。实验表明,改进后的网络模型尺寸大小为 3.8 MB,小于 YOLOv3 - tiny,YOLOv4 -tiny,SlimYOLOv3 - SPP3 - 95 等轻量级算法,与 YOLOv5 -MobileNetv3Small 算法性能较为接近,且在实时检测性能上表现略优;改进后的算法在不明显降低检测精度的情况下提高了检测速度,并且整个网络模型规模较小,能够降低布署成本,更适合应用于嵌入式设备。可见,改进的 YOLOv5s 算法能够快速并相对精确地利用无人机图像检测出无人机航行所至滩区的羊群。
4.3.2 无人机图像目标定位算法
在实飞区进行目标定位算法的试验,将机载端的无人机高度与云台姿态数据,以及移动端 SKG12UR定位模块同一时刻的 GPS 位置数据一同传输到 TX2中进行目标定位。无人机沿指定航线慢速巡回飞行,利用改进的 YOLOv5s 目标检测算法实现目标检测功能,根据无人机影像中羊群目标检测框底部中央的坐标,结合无人机参数(云台姿态、飞行高度)和机载端SKG12UR 定位模块的实时 GPS 数据,通过无人机三轴云台目标定位算法计算羊群目标的实时 GPS 位置信息,并与同一时刻现场测定的羊群实际 GPS 数据进行比对分析,计算并分析误差。随机选出试验过程中采集的 8 组数据,测试结果如表3 所示。三轴云台姿态指使用 NED 坐标系描述云台相机的角度,且无人机机身始终尽可能保持水平姿态飞行,因此在计算无人机与目标之间的直线距离时,镜头俯仰角近似等于三轴云台俯仰角。
表3 目标定位算法试验测试结果
无人机在飞行过程中会受到环境因素的影响,尤其是风力和阻力会使无人机姿态和位置发生一定程度的倾斜和偏移,各项数值产生一定程度的波动[8]。结果表明:三轴云台目标定位算法计算得出的 GPS坐标与目标实际 GPS 坐标之间的误差距离基本保持在 10 m 以内,可以满足黄河巡检中在误差范围内成功定位违规牧羊行为发生地点的实际需求。
针对当前黄河滩区违规牧羊巡检中存在的人力不足、精度不够等问题,提出基于无人机图像的黄河滩区违规牧羊智能检测方法。利用改进后的YOLOv5s 目标检测算法,可有效减少网络计算量,提高计算速度,实现轻量级模型设计,实时性能提高31.25%,与其他方法相比有更好的性能,使得违规牧羊管控功能在检测精度与反应速度上都更具优势。通过研究目标定位算法的基础理论,设计无人机三轴云台地面目标定位算法,通过试验证明了该算法满足根据无人机图像判定目标位置是否违规的要求。基于无人机图像的黄河滩区违规牧羊智能检测方法不仅能减小人力成本,还能提升黄河巡检的智能化和信息化程度。未来计划完善系统功能并优化深度学习目标检测算法,提高算法适用性,深入分析目标定位算法的误差来源并进行定位算法的优化研究,进一步提高目标定位算法的精度。