胡敏捷,沈继飞,姚怡芝
(上海船舶设计研究院,上海 201203)
目前,无人机产业日益成熟,无人机作为影像采集工具,在很多场景中都得到了广泛的应用。在室外场景中,借助于GNSS信号定位以及无人机自身的惯性导航系统[1],可轻松地实现无人机的航线规划和飞行控制,完成自主影像采集任务,如使用大疆精灵4 RTK的无人机设备便可快速采集测区影像,并应用于场景构建与数字测图[2]。但在室内场景中,由于GNSS信号缺失,仅通过无人机惯性导航进行定位会产生较大误差累积,再加上室内环境复杂多样,无人机自主影像采集难以实现。
为此,本文提出一种室内场景辅助的无人机影像采集方法,基于快速三维重建获得的室内场景信息对无人机的航线进行精细规划,并通过视觉定位来修正惯性导航产生的累积误差,实现无人机的精确定位,保证无人机高效、安全地完成影像采集任务。本文方法主要分为以下三个流程:首先需要对室内进行快速三维重建,得到室内场景的实景三维模型;之后基于实景三维模型对无人机航线进行精细规划;最后实现无人机的飞行控制,通过无人机采集的影像与室内实景三维模型进行匹配实现无人机实时视觉定位,对惯性导航产生的误差累积进行修正。
在室内场景模型构建方面,常用的方法有基于影像的三维重建[3]和基于三维激光点云的三维重建[4]。其中基于影像的三维重建由于成本低,而且重建精度能满足生产需求,广受人们欢迎。文献[3]介绍了基于倾斜摄影测量的室内三维实景模型快速重建方法,但是该方法数据处理过程复杂,效率低下。文献[5]介绍了利用武汉天际航DP-Smart图像自动处理软件进行倾斜摄影自动化建模的方法,极大降低了人工成本。
在无人机航线规划方面,文献[6]提出了一种在实景三维模型辅助下,以人机交互形式设计航线的方法。这种方法可以借助实景模型预判设计航线的影像覆盖范围和重叠区域,并能检测航线上的障碍物,提高无人机摄影测量外业飞行中的效率和获取影像的质量。
在无人机飞行控制功能的实现方面,文献[7]介绍了利用大疆Mobile SDK进行编程,实现对无人机的自主飞行控制。文献[8]提出了一种基于特征点匹配的快速影像重定位方法,在获得二维影像与已知三维场景模型的前提下,利用空间后方交会的方法解算出二维影像的外方位元素。在没有卫星定位信息的情况下,无人机便可利用二维影像解算出的外方位元素估算出无人机的位置和姿态,修正无人机的飞行误差。
因此,本文利用天际航DP-Smart软件采集室内影像资料进行室内快速重建,并基于此实景三维模型,通过AR-Explorer软件进行交互式航线精细规划,在位姿估计模块的辅助下,使无人机在室内环境中自主执行飞行任务,采集影像。经过飞行试验,位姿估计信息显著降低了无人机的飞行误差,项目流程如图1所示。
图1 项目流程
基于实景三维的航线规划,前提是获得场景的三维模型信息。利用Gopro全景推车采集场景影像(图2),结合倾斜摄影三维自动建模软件DP-Smart可以简单高效且全自动地生成场景三维模型,提升场景辅助无人机自主飞行技术的可行性。
图2 Gopro全景推车
基于影像的三维重建主要有以下几个流程:影像数据采集、运动恢复结构(Structure from Motion,SfM)、密集匹配、构网贴图。首先,在影像数据采集时需要保证影像之间有足够的重叠度;之后对采集到的影像进行SfM算法,即恢复影像精确的位置和姿态参数,并生成稀疏点云;得到影像的位姿信息后,根据影像立体像对的核线约束关系,沿同名核线方向搜索立体像对的同名点,获得立体相对的视差图。然后由视差图计算立体相对的大量同名点,对大量同名点对进行空间前方交会得到同名点对应的地面摄影测量坐标系下的三维坐标,即测区的点云数据。当把同名点的色彩信息赋值给对应的三维空间点即可获得彩色三维点云;最后对密集点云进行构网,自动生成TIN网络模型,并进行纹理映射。此时,可以得到室内的三维实景模型。
图3~图6所展示的室内场景三维重建利用Gopro全景推车拍摄了434张影像,通过DP-Smart软件处理约 1.2 h输出建模成果。
图3 影像空三解算成果
图4 影像匹配生成密集点云
图5 TIN成果
图6 自动纹理映射成果
基于实景三维的航线精细规划是指在场景mesh模型上,进行交互式的航线规划。由于具有可视性,可以直观地选择航点,设置拍摄云台角度,预览拍摄范围,并进行删改编辑,增加室内影像采集的质量。此外,通过将航点连接而成的航线与三维模型的缓冲区运算,可以检查出航线与障碍物的冲突,提高室内复杂环境下的飞行安全性。
基于实景三维的室内无人机航线规划可以继承室外航线规划方法,在室内空旷环境中,使用航带法设计航线。结合相机参数和影像重叠度等数据,根据式(1)计算摄影航点间距,从而设计较为规则的航线[9]。这种情景下的航线设计较为简单,航线规整且拍摄视角无太大变化,适合空旷场景的影像采集任务。
(1)
其中d为两航点间的距离,c%为航向重叠度,w为相机底片宽度,a为像元尺寸,GSD为地面分辨率。
在复杂环境下,无人机的飞行风险增加,在航线规划时,需根据无人机的尺寸设计安全缓冲距离,并通过与实景三维模型的空间运算,检查航线上的障碍物。同时,需要人工选择影像拍摄的兴趣部位,且由于兴趣部位的空间姿态存在较大差异,在航线设计时需针对性地设置云台角度,调整拍摄视角。这种情景下航线设计较为复杂,适合多障碍物的复杂环境,无人机室内航线规划如图7所示。
图7 无人机室内航线规划
AR-Explorer室内航线规划流程为:
①创建航线规划工程,导入三维场景,开启室内航线规划作业。
②选择航点编辑窗口,设置航高、站点密度和相机参数。
③点击窗口中的“选择航点”图标,在三维场景中绘制“关键”航点。
④设置所有“关键”航点后,点击“生成航线”,根据航高、站点密度和相机参数内插生成摄影航点,并生成航线表。
⑤检查及修改航线表中的摄影航点航线表。
⑥勾选“安全检查”,在三维窗口中显示半透明缓冲区,检查航线安全性。
⑦室内航线规划完成,如图8~图12所示,导出航线Json文件。
图8 创建工程
图9 绘制关键航点
图10 内插航点
图11 安全检查
图12 输出航线Json文件
2.3.1 飞行控制
无人机的自主飞行需要使用无人机开发工具包(SDK)对无人机进行飞行控制,根据上文航线规划方法所得的室内航线飞行。然而,由于无人机底层控制、通信链路、环境作用力等因素的影响,无人机在执行飞行任务时难以避免地存在误差。因此,需要辅助定位手段,在无人机飞行的过程中不断修正无人机的运动。使无人机能够按照规划航线飞行,并通过无人机的相机开发工具包设置拍摄模式及参数,完成影像采集任务。
本文采用大疆Mobile SDK进行无人机手机端飞行控制平台的开发。实现了无人机的坐标飞行功能。同时,飞行控制平台可直接读取AR-Explorer生成的航迹规划jason文件,从而使无人机按照预先规划的航线自主完成飞行及摄影任务,控制界面如图13所示。
图13 控制界面
其中,坐标飞行功能是指,在设置无人机的航高和初始坐标后,向无人机提供一个目标点的坐标和飞行速度,在程序内部,通过API调整无人机的飞行姿态角——俯仰角(Pitch)、翻滚角(Roll)和偏航角(Yaw),配合时间控制,使无人机完成到达目标点所需的三维空间运动。
然而这种通过无人机自身角度和速度传感器控制的飞行会产生飞行误差。如图14是在模拟器上,没有环境作用力干扰下,无人机从初始位置(0,0)(单位:m),以 5 m/s速度飞往(0,10)的结果。由模拟器上的坐标信息可知,无人机并未准确到达(0,10)位置,而是在X轴方向产生了 0.026 8 m的位移误差,在Y轴方向产生了 0.692 6 m的位移误差。根据实验发现,无人机的距离误差随着飞行速度和飞行距离的增大而增大。
图14 模拟飞行
分析其原因在于程序内位移的计算方式,如式(2),由于无人机存在加速和减速的过程,利用瞬时速度代替平均速度使Si产生了误差,且随着速度变化的增大和总位移的增长,误差也在增大和累积。
(2)
其中vi为第i段时间间隔△t的初始速度,Si为第i段时间间隔内的位移。
此外,在实际飞行过程中,外部环境作用力的影响,都会使无人机产生飞行误差,如图15所示。因此,无人机在室内飞行情况下,需要采用定位方法不断修正无人机的位置,减小无人机飞行的误差。
图15 飞行误差
2.3.2 位姿估计
位姿估计主要包含两个关键步骤,一是待解算影像与已知的场景信息建立关系,即场景三维模型的特征点与二维影像的特征点匹配[10]。二是基于三维与二维特征点的对应关系,使用空间后方交汇的方法求解影像的外方位元素,从而获得无人机的位姿[11]。
(1)场景三维模型与二维影像进行特征点匹配
①将三维点云相关联的二维影像点的SIFT特征描述符作为其特征描述符。三维场景的构建是通过处理一系列多视影像,经特征提取、特征匹配、影像位姿初始估计、三角化生成稀疏点和光束法平差等步骤获得。以此方法得到的稀疏点云都有对应的二维影像特征点,故可将二维影像点的128维SIFT向量作为三维特征点描述符。
②对待解算影像采用相同的SIFT算法进行处理,提取出二维特征点的128维SIFT向量,作为特征描述符。
③建立场景三维特征点与待解算影像二维特征点的匹配关联。获得新影像的二维特征点及其特征描述符,和三维场景地图中三维特征点及其特征描述符,再利用FLANN(Fast Approximate Nearest Neighbor Search Library)算法,找到二者特征点的对应关系。
(2)单像空间后方交会
单像空间后方交会问题也可称为PnP(Perspectiven Points)问题,即对于一副影像,已知图像内容n个参考点的图像二维坐标和世界坐标系中对应的三维坐标,以及摄像头内参,求解影像外方位元素[11]。由共线条件方程式3可知,一组3D-2D匹配点可以列两个未知数方程,有XS、YS、ZS、φ、ω、k六个外方位元素未知,所以至少需要4对匹配点才能进行平差解算[12]。
(3)
在实现无人机的自主飞行应用中,由于无人机机载运算能力有限,所以将无人机获取的单张定位影像传输至地面站,在地面站中进行单像的位姿估计,再将定位信息传输至无人机,以修正无人机的位置。
图16 航线修正
为验证位姿估计对无人机飞行误差修正的作用,进行了一组利用位姿估计信息修正无人机航线和不利用位姿估计信息修正无人机航线的对比实验。根据2.1和2.2所述的场景快速重建方法和航线规划方法,首先利用Gopro全景推车和DP-Smart软件构建了实验场地的三维场景模型,随后利用AR-Explorer软件规划了无人机的航线,最后进行了两组飞行实验。
第一组飞行实验中,无人机仅利用自身的惯性导航传感器、陀螺仪和气压计等机载设备控制飞行方向和距离,自主按照规划航线飞行。第二组飞行实验中,无人机除利用机载传感器控制飞行方向和距离外,还会使用在各航点实时获取的位姿估计数据修正飞行方向和距离。
在实验中,为获取无人机的真实轨迹,两组飞行实验无人机均在完成一段飞行任务后拍摄一张影像,并实时进行位姿估计。区别在于第一组实验的估计位姿用于记录无人机的真实航迹,第二组实验的估计位姿既用于记录无人机的真实航迹,也用于修正无人机航线。
如图17所示,为飞行实验中部分真实航点与规划航点点位中误差折线图,其中A点不为起飞点。在无人机真实航点与规划航点间的点位中误差方面,修正航迹点位中误差整体小于未修正航迹,且中误差并未呈增长趋势。说明利用位姿估计信息修正无人机航线的方法可以有效减小飞行过程中的误差累积。表1为该部分航线的坐标记录。
图17 点位中误差对比
航线点位坐标及误差 表1
图18是两组飞行实验的真实航线与规划航线对比图。经过对比可以发现,未经修正的真实航线虽然在形状上更接近规划航线,但各真实航点与规划航点相差逐渐变大。经过位置修正航线的航点显著接近规划航点。
图18 航线对比
本文介绍了一种室内环境下无人机利用三维场景信息辅助飞行的方法。首先,通过Gopro全景推车和DP-Smart软件,可实现室内场景的快速且低成本建模,获得场景的粗略模型,构建场景信息。其次,在粗略模型的基础上进行无人机摄影测量任务的航线交互式规划,提升无人机摄影测量的效率及安全性。最后,结合飞行控制程序和位姿估计模块,操控无人机准确地完成影像采集任务。此种方法可应用于大型室内场景由粗略到精细的建模任务,以及室内场景的设备巡检和安保巡逻任务等,具有一定的应用前景。