王 博,宋 丹,王洪玉
1.大连理工大学 信息与通信工程学院,辽宁 大连116024
2.国家电网有限公司 东北分部,沈阳110180
输电线路是电力传输的基本载体,承担安全稳定输送电能的重要任务。文献[1]指出,“十三五”期间电网规模仍将快速发展,2016至2020年将新增110千伏及以上线路40.1 万公里(较“十二五”末增长45%)。随着电网规模的增长,传统的人工巡检输电线路无论从人数还是技术上都无法实现同步增长。随着无人机技术的发展,无人机经济性、灵活性、不受地形限制等特点使其成为电力巡检中的研究热点[2]。人工操控无人机巡检对飞手要求极高,难度较大,亟需发展智能化的无人机自主巡检。
无人机飞行中其空间位置可通过定位设备或传感器信息获得,根据空间信息设计飞行路线可使无人机自主飞行至精确的拍摄位置并采集图像用于故障检测。文献[3]采用遗传算法,优化了无人机的巡检路径及拍摄点,提升了巡检效率。文献[4]提出了基于GPS(Global Position System)和INS(Inertial Navigation System)的组合导航方法用于无人机巡线系统。文献[5]提出了基于载波相位差分技术(Real-Time Kinematic,RTK)的巡检方案,提升了定位精度。以上几种方法依赖于GPS,有一定局限性。
单目视觉传感器具有精度高、成本低、信息丰富等特点,无人机可搭载单目相机,并通过视觉同步定位与建图(Visual Simultaneous Localization and Mapping,V-SLAM)技术进行位姿估计。文献[6]和文献[7]采用基于特征匹配的方法,对无人机采集的图像进行基于单目视觉的迭代定位,但对图像中特征点要求较高且匹配耗时。文献[8]提出了一种半直接单目视觉里程计算法,不需提取大量特征点便可进行空间定位,但应用在无人机平视相机上效果不佳。文献[9]提出了基于直接法的大范围单目即时定位和地图构建方法,该方法不需计算特征点并且能构建半稠密的地图,但对场景要求较高。以上基于单目视觉的定位方法用于飞行路径设计需要构建三维地图且定位精度受环境及初始值影响较大。
本文提出一种基于单目视觉的无人机自主巡检系统,基于深度学习技术对目标物(如绝缘子)进行识别检测,利用尺寸已知的检测目标与其在相机成像平面投影的对应关系,对其进行三维定位并优化定位精度,无需定位设备或视觉建图。基于大疆SDK(Software Development Kit)开发的无人机飞控程序根据定位信息调整无人机的飞行姿态并自主导航,到达精确的拍摄位置可同步检测出缺陷,实现无人机实时巡检。
基于单目视觉的无人机自主巡检系统组成如图1所示,包括感知模块、控制模块、信息处理模块。图2所示为3个模块对应的设备及数据流。
图1 基于单目视觉的无人机自主巡检系统组成
感知模块为无人机,其上配有单目相机,通过无线链路将高清图像传送至控制模块。
控制模块由遥控器及终端(Android智能手机)上基于大疆SDK开发的APP(以下简称APP)组成,APP采用RTMP协议将图传信息推送至信息处理模块,并将信息处理模块回传的定位信息转换为控制信息,向无人机发送指令调整其飞行姿态。
图2 各模块设备及数据流
信息处理模块为NVIDIA JETSON TX2(以下简称TX2),其是一款体积小,性能高的人工智能计算平台。TX2 将控制模块推送来的视频流进行基于深度学习的目标检测,同时对检测出的目标进行基于单目视觉模型的位姿解算并优化,优化结果即为目标的空间信息,将该结果通过Socket回传至控制模块。
1.1.1 相机模型与去畸变
相机能够将三维世界中的坐标点映射到二维图像平面中的像素位置,小孔成像模型是最常用的理想相机成像模型。建立4个坐标系描述相机的成像过程,分别为世界坐标系、相机坐标系、图像坐标系、像素坐标系,坐标系间能够相互转换。图3为理想相机模型4个坐标系关系图,M(Xw,Yw,Zw)是三维空间中的一点,M与相机光心Oc的连线交成像平面于m(x,y),m为空间点M的投影位置。为了简化模型,本文将成像平面对称到相机前方,与三维空间点一同出现在相机的正深度方向。
图3 理想相机模型下各坐标系关系图
设点M在像素坐标系中的位置为(u,v),f为相机焦距,三维空间中一点映射至成像平面与二维像素坐标的转换表示为齐次坐标与矩阵形式如公式(1)所示[10],M1表征相机的固有属性,称为相机的内参矩阵,fx,fy,u0,v0为相机的内部参数,单位为像素。M2称为外参矩阵,由3×3 的正交矩阵R及3×1 的平移向量t组成。
实际应用中,会在相机前加入透镜以获得更好的成像效果。然而引入透镜会使直线投影变弯曲,这种现象称为径向畸变。相机标定可以获得相机参数建立成像几何模型及校正镜头畸变,本文采用张正友标定法[11]进行标定。正常图像中一点在畸变图像中的对应像素值可能为非整数,可采用双线性内插法[12]去畸变恢复原图。本文提出一种计算方法,通过畸变图像中一点(ud,vd)解算出正常图像的位置(u1,v1)。u1,v1用于数值计算,可为非整数。
公式(2)中,k1、k2为径向畸变系数。本文使用的相机其畸变系数k1、k2较小,用rd代替r1的近似计算误差可忽略不计。
1.1.2 空间信息解算与误差修正
单目视觉定位是基于几何成像模型建立三维空间目标特征与二维图像对应特征的变换关系,从而确定目标的空间位姿信息[13]。若空间中一目标物的大小已知,选取通过该目标中心点的竖直高度线作为特征直线,利用特征直线在成像平面的已知信息及几何图形的相似关系,可求得目标中心相对于相机的空间坐标。
电力巡检中,绝缘子是十分重要的检测目标[14],对绝缘子进行视觉定位,可将通过其中心点的竖直高度线作为特征直线。如图4所示,d3为已知的绝缘子高度,f3为成像平面中绝缘子的高度,单位为像素,f、f1、f2为成像平面中绝缘子中心在相机坐标系的位置,通过三角形的相似性可求得空间中绝缘子在相机坐标系的坐标(d1,d2,d)。公式(3)中,由于相机挂载在无人机上,角度α为无人机在水平方向对准目标中心所需旋转的偏航角。
图4 三维空间与成像平面的相似关系
实际应用中,相机光轴线与理想相机坐标系的Zc轴并不完全重合,如图5 所示,角度β表示相机光轴线与Zc轴在竖直方向上的夹角。由实际相机求出的空间三维信息与理想情况存在一定的误差,并且随着相机与目标物之间距离的增加,Xc和Yc方向上的定位误差会越来越大,影响了定位精度。图5中,M为目标物的中心位置,A、B、C为相机光心在Zc轴上的三个位置,A、B、C处的相机光轴线与过M点的平面垂直并且与该平面分别相交于a、b、c三点。
图5 定位误差修正
由单目视觉模型求得的相机坐标系中目标物中心点的高度值为dy,深度值为dz,而真实的高度值应为Dy,深度值应为Dz,需要对定位误差进行修正。由dz×tanβ+dy=MN可知tanβ=△dy-△dz,dy与dz线性相关,故可在Zc轴上平移相机拍摄多张照片,并对解算出的dy和dz进行线性拟合,求出角度β,最后通过公式(4)修正目标点的空间坐标从而获得真实位置。角度γ表示相机光轴线与Zc轴水平方向的夹角。
本文提出的单目视觉定位模型首先需要对投影图像中的目标物进行识别检测,检测结果用于空间信息解算,其误差直接影响无人机动作的精度。
近年来,随着深度学习的快速发展,基于深度学习的目标检测逐渐成为主流[15]。本文采用YOLOv3[16]作为检测框架。YOLOv3基于回归思想,能够实现端到端的目标检测与识别,其借鉴了多种先进思想,包括构建特征金字塔、多尺度预测、优化损失函数等,在保证速度的前提下提升了检测精度。
输电线路的巡检在室外进行,由于便携式的GPU性能较弱,考虑对检测网络进行压缩,在保证一定网络性能的同时尽可能提升检测速度。Google团队2017年提出的轻量级网络MobileNetV1[17]采用深度可分离卷积代替标准卷积,深度可分离卷积由深度卷积和逐点卷积组成,如图6 所示,深度卷积是将单个输入通道与单个卷积核进行卷积,而后逐点卷积用1×1卷积核组合深度卷积的输出。
图6 深度可分离卷积
深度可分离卷积与标准卷积的计算量之比为:
其中,DK×DK×M为深度卷积的卷积核尺寸,DW×DH×N为输出特征图的尺寸。引入超参数α∈(0,1]可降低模型的通道数,此时,深度可分离卷积计算量可继续下降至接近公式(5)的α2倍,本文α取0.25。
将MobileNetV1 的1 个卷积层和13 个深度可分离卷积层作为特征提取网络,对特定层数特征图进行处理,分为3 个尺度送入YOLOv3 的多尺度检测结构,组成MobileNetV1-YOLOv3 网络模型,如图7 所示。本文系统的检测网络需要在无人机距绝缘子较远时检测出绝缘子并且在接近绝缘子后对绝缘子缺陷进行检测。为了提升对小目标的检测性能,本文将输入图片尺寸预处理为608×608,输出的3 个特征层尺度分别为19×19、38×38、76×76,YOLOv3 将深层特征的高语义和浅层特征的高分辨率融合后进行最终的预测。
YOLOv3 网络将图像划分成S×S个网格,目标中心所在的网格负责预测该目标。每个网格预测B个边界框,每个边界框对应5+C个值,包括边界框的4个偏移坐标,1 个置信度得分和C个分类预测,本文中B为3,C为2(绝缘子和缺陷)。对数据集标注框通过K-means 聚类计算锚框,均分到每个尺度的特征图上。预测时,在每个尺度目标中心存在的网格使用3个锚框预测3个边界框,使用非极大值抑制算法筛选边界框并分类识别。
YOLOv3 输出的bounding box 包含预测框左上角和右下角的像素坐标,计算检测框的宽高和中心坐标并缩放至输入图像尺寸(本文为1 920×1 080),将结果代入公式(2)去畸变后得到图4 中的f1、f2、f3,代入1.1.2小节的公式可解算出空间定位信息。
图7 MobileNetV1-YOLOv3网络模型
本文选用功能完备并支持二次开发的大疆系列无人机,其上挂载一体化或可拆卸的高清相机。DJI Mobile SDK是大疆向开发者提供的移动端开发者套件,开发者可为无人机量身定制APP 并部署在移动终端如智能手机或平板电脑上,移动终端连接遥控器可对无人机进行智能化的远程操控。
DJI Mobile SDK中的VirtualStick(虚拟摇杆)方法可模拟飞手操控左右摇杆的动作,包括无人机的升降、偏航、前后移动、左右移动,如图8所示。
图8 VirtualStickControl模式
通过单目视觉定位模型得到的空间信息主要包括目标物中心位置相对于相机的修正后的高度值Yq,修正后的深度值Zq及修正前的偏航角αq,这里取修正前的偏航角是因为直接调整角度αq与先校正相机光轴再调整修正后的偏航角度得到的结果是相同的。
实际飞行中,机载相机的实时画面通过信息处理模块得到的定位信息存在滞后性,延迟接近1 s(传输过程和处理过程)。本文设计一种卡尔曼滤波[18]方法,融合机载传感器信息与滞后的单目视觉定位信息,更新无人机的实时位置。
状态变量X=[Zm Vm Ym αm],其中,Zm、Ym、αm分别为目标物相对无人机的深度值、高度值、偏航角,Vm为无人机在水平方向的速度。
观测量Z=[Zq Yq αq Vn Yn αn],其中,Zq、Yq、αq分别为通过单目视觉定位模型得到的目标物相对无人机的深度值、高度值、偏航角,Vn、Yn、αn分别为通过机载传感器得到的无人机在水平方向的速度,无人机的高度和无人机的航向角。
传感器输出随着时间推移会累计误差,而基于单目视觉模型的观测量有滞后性,本文采用以上两种观测量交替更新状态变量,如图9所示。
设基于单目视觉模型量测的滞后时间为Tdelay,在t时刻的输出实际对应t-Tdelay时刻的输出,通过卡尔曼滤波方程可更新t-Tdelay时刻的状态变量X(t-Tdelay),t-Tdelay至t之间的状态变量变化可由传感器输出获得,由此可更新t时刻的状态变量。
预先设定目标物相对无人机的深度值Zp,高度值Yp,偏航角αp,即无人机最终的精确位置。将通过信息融合得到的深度值Zm、高度值Ym、偏航角αm分别同Zp、Yp、αp相比较,开发飞控程序将比较结果分别转换为无人机前后飞行的速度,升降速度及偏航角速度,VirtualStick将信息发送至无人机机载控制模块,可实现无人机自主飞行至精确的拍摄位置。以水平方向位姿调整为例,本文中Zp设置为10 m,表1 所示为根据Zm与Zp距离差设置VirtualStick 指令调整速度的对应关系,阈值th设置为0.05 m。
图9 卡尔曼滤波融合信息更新状态
表1 水平方向距离差对应VirtualStick指令调整速度值
基于单目视觉的无人机自主巡检系统任务流程如图10 所示,首先系统各模块通过数据流建立连接并预设目标物相对无人机的精确位置,待无人机检测出完整的绝缘子后,APP 上的自主控制线程接管无人机的控制权,发送指令直至无人机到达最终位置检测目标物并拍照。
图10 基于单目视觉的无人机自主巡检系统任务流程
具体步骤如下:
步骤1预设无人机相对目标物的深度值Zp,高度值Yp,偏航角ap。
步骤2APP将无人机图传信息推流至TX2。
步骤3运行TX2上的脚本对视频流进行目标检测并定位,将定位信息回传至APP。
步骤4 无人机由飞手操控或根据其他信息接近目标物直至目标物被完整的检测出。
步骤5APP启动自主控制线程,根据定位信息转化的控制信息实时调整无人机位姿。
步骤6无人机自主飞行至精确位置并拍摄目标物,若检测算法包含缺陷检测,可对目标物实时巡检。
图像去畸变后需要修正相机光轴不完全水平引起的误差。如图5所示,在理想相机坐标系的Zc轴上移动相机在不同位置进行拍摄,对图像中目标物的中心点进行计算求得其坐标信息(x,y,z)。分别对z-x、z-y进行线性拟合,如图11所示,通过直线斜率可计算出角度β与角度γ。本文中β=-1.157 8°,γ=-1.590 7°。
图11 线性拟合
将β与γ代入公式(4)得到修正后的定位误差,与真值进行对比,部分结果如表2所示。
由表2可以看出,修正后的定位数据明显更接近真值,计算值代表去畸变后修正前的定位数据。计算值的误差与修正值的误差对比如图12所示,X、Y、Z方向的修正值误差均小于计算值误差,X、Y方向的修正值误差下降明显。计算值误差与测量值误差在三个方向上均随着距离的增大而增加,在距离相机10 m 左右的位置上,X、Y方向的修正值误差在厘米级,而Z方向的误差在0.25 m 左右。本文中无人机的拍摄距离设置为10 m,无人机的GPS 定位在正常工作时,其空中的悬停精度在±0.5 m左右,故修正后的定位信息可作为单目视觉定位系统的输出结果。
表2 修正后定位误差统计
图12 计算值误差与修正值误差对比
本文对电力巡线中的绝缘子进行检测,需要用绝缘子数据集对深度学习网络进行训练。实验中共有绝缘子图像706张,包括国网巡检机组采集的高清图像及实地采集图像,在图片中标注绝缘子及绝缘子中缺陷位置并制作数据集。将数据集按7/3 划分,其中训练集占70%,测试集占30%。
实验硬件配置中GPU 为NVIDIA GTX 1080Ti,输入图像大小为608×608,使用Pascal VOC数据集预训练参数作为初始化权重,加快训练收敛速度。
测试集采用平均精度均值(Mean Average Precision,mAP)和每秒帧率(Frame Per Second,FPS)作为评价指标,分别表征目标检测网络的准确度和速度。
表3 所示为基于不同特征提取网络的YOLOv3 模型之间的网络性能对比,可以看出本文轻量级Mobile-NetV1-YOLOv3 相比darknet-53 结构的YOLOv3,损失了6.4%Map 的同时提升处理速度近10 frame/s。由此说明采用深度可分离卷积和降低通道数有效地减少了参数和计算量,但压缩网络模型同时会降低网络预测的准确性。
表3 不同网络模型对比
将训练好的网络模型移植到TX2 上并对视频流进行测试,如图13所示。表4为不同网络模型的速度对比,由于TX2上的GPU性能较弱,MobileNetV1-YOLOv3处理视频流的速度为8.7帧/s,推流与检测总时延为0.76 s,而darknet-53 结构的YOLOv3 仅为2.5 帧/s 且总时延大于1 s。本文在TX2 上选用轻量级网络MobileNetV1-YOLOv3,平衡准确性与速度,后续可对受时延影响的实时位置进行修正。
图13 视频流中绝缘子的检测效果
表4 TX2上不同网络模型检测速度对比
电力巡检中的检测目标绝缘子处于电力杆塔上的固定位置,距地面高度几十米,定位信息真值的获取较为困难。为了计算基于单目视觉的目标物定位精度,选取地面上易获得真值信息的固定目标物代替绝缘子作为检测目标,本节中选取人作为目标物。将TX2 中的目标检测网络参数设置为MobileNetV1-YOLOv3 在Pascal VOC 数据集下的预训练权重,可实现对标签为人的检测框进行基于单目视觉的空间位置解算以获得定位信息。
首先设计实验验证本文系统中融合单目视觉信息和传感器信息的卡尔曼滤波实时定位效果。以水平方向状态变量为例,观测量与状态变量均为无人机至目标物的距离和无人机水平方向的速度,初始状态为:无人机距离目标物15 m,初始速度0.5 m/s。实验过程为无人机根据定位信息飞至距目标物10 m处悬停。
无人机传感器更新频率为10 Hz,由2.2节可知单目视觉模型量测输出为8.7 frame/s,实验中设置时序间隔为0.1 s,读取单目视觉模型量测输出的时间间隔设置为0.5 s,滞后时间Tdelay设置为1 s,实验结果如图14 所示。由图14(a)可以看出,单目视觉模型量测输出的定位信息滞后于无人机的实时位置,t时刻单目视觉模型量测输出实际对应t-1 时刻的输出,本文融合t-1 至t之间的传感器信息进行补偿,卡尔曼滤波更新后的状态变量能够到达实时定位效果。当目标检测网络输出的检测框精度不高时,单目视觉定位模型量测输出误差较大,融合传感器信息的卡尔曼滤波可对误差进行修正,图14(a)中存在误差较大的量测点,卡尔曼滤波输出的距离和速度均较稳定。
图14 无人机在水平方向的实时状态
接下来设计实验计算本文系统的实时定位精度,作为对比,开发基于GPS操控无人机飞至指定位置的程序模块,大疆SDK中的Mission动作序列可实现此功能。
实验步骤如下:
步骤1人工操控无人机飞至目标物附近某确定位置,目标物距离无人机深度Zp为10 m,目标物中心距离无人机高度Yp为1 m,偏航角αp为0°,即无人机在水平方向正对目标物。记录该位置的GPS 信息,用作基于GPS的无人机飞控程序的定位信息。
步骤2将深度值Zp、高度值Yp、偏航角αp作为预设值导入基于单目视觉的无人机自主飞控程序。
步骤3分别运行基于单目视觉与基于GPS的飞控程序,量测无人机最终位置相对目标物的空间信息并拍摄目标物。
经过多次实验,无人机基于单目视觉与基于GPS的定位误差绝对值的对比如表5 所示,可以看出,基于单目视觉的定位误差均值及波动均小于基于GPS 进行定位的误差。受检测框精度及室外有风环境无人机悬停精度的影响,X方向的定位误差对比其在理想无风环境中略有提高,但仍小于基于GPS进行定位的误差。由图15 可以看出,基于本文系统飞行的无人机能在水平方向正对目标物,故本文提出的基于单目视觉的无人机巡检路径的准确性和可行性得到了验证。
表5 基于不同飞控程序的定位误差对比 m
图15 基于单目视觉与基于GPS导航飞行的结果图像对比
将2.2节训练好的检测绝缘子的网络权重导入TX2中的检测网络,验证本文系统巡检绝缘子效果。
实验场地位于大连理工大学令希图书馆外某220 kV电力杆塔附近,绝缘子串长度2.34 m。预设目标物相对无人机的深度值Zp为10 m,高度值Yp为0 m,偏航角αp为0°,即无人机位于绝缘子正前方10 m 处。实验流程如图10所示。
图16 所示为实验中APP 运行界面的截图,包括无人机相机的图传画面,无人机在地图中的位置,无人机自身的参数及功能按钮。
图16 基于大疆SDK开发的APP运行界面截图
图17为TX2上对实时视频流进行绝缘子识别检测的程序截图,训练中包含了绝缘子中的缺陷,故可同时对缺陷进行检测,本文实验中的绝缘子无缺陷。
图17 实时视频流进行绝缘子识别检测的程序截图
图18 为无人机到达精确位置拍摄的绝缘子图像,可以看出,通过基于单目视觉的无人机自主巡检系统的位姿调整,无人机可以拍摄清晰的绝缘子图像且绝缘子位于图像正中位置。
图18 基于单目视觉飞行的绝缘子拍摄图像
针对图18 中的悬垂绝缘子,后续可设定无人机的偏航角速度与左右方向的速度,实现无人机的绕飞动作,在多个角度对绝缘子进行检测。
本文基于单目视觉成像关系,融合基于大疆SDK开发的无人机飞控程序及基于深度视觉的目标检测模块,实现无人机对目标物的自主导航及实时检测。实验结果表明,距离目标物10 m时,该系统在世界坐标系X、Y、Z 三个方向的定位误差分别为0.31 m、0.06 m、0.24 m,处理速度0.76 frame/s,同时摆脱了对GPS 的依赖,可完成在复杂环境下的无人机电力巡检任务。本文系统采用模块化设计,通过训练不同的目标检测参数及设计不同的飞行路径可实现电力杆塔的定制化检测任务,有助于提升电力巡检的智能化水平。