天问一号着陆器双目视觉避障技术

2022-03-25 02:06华宝成张依诺
宇航学报 2022年1期
关键词:双目标定灰度

华宝成,李 涛,刘 洋,张依诺,王 立

(北京控制工程研究所,北京 100094)

0 引 言

2020年7月23日,天问一号探测器由长征5号遥四火箭在海南文昌成功发射。历时202天后,天问一号于2021年2月10日与火星交会,并成功实施捕获制动进入环火轨道,成为我国第一颗人造火星卫星。2021年5月11日,天问一号着陆巡视器与环绕器分离,成功在火星乌托邦平原南部软着陆,并于次日释放“祝融号”火星车,正式开始了在轨测试与巡视探测任务。天问一号的成功着陆迈出了我国火星探测的第一步,使中国成为世界上第三个实现火星着陆探测的国家,是我国航天事业发展的又一个重要里程碑。

火星上常见的地形特征包括沙丘、火山、陨坑、岩石、断层、斜坡等,它们构成了天问一号着陆器着陆火星的“潜在威胁”。因此,着陆器想要实现自主安全着陆,就必须具备实时、快速、准确的障碍识别与规避的能力。美国国家航空航天局(National Aeronautics and Space Administration,NASA)于2011年发射的火星科学实验室(Mars Science Laboratory,MSL)使用地形相对导航(Terrain relative navigation,TRN)有针对性地避开从轨道观测中已知的大型障碍(例如直径为100~200 m的陨石坑)。但该方法难以进行小型障碍检测,一方面因为在较高轨道下实现亚米级障碍识别对敏感器的角分辨率有着极高的要求;另一方面,地形相对导航期间航天器频繁的姿态变化使得敏感器难以获取高信噪比(Signal-noise ratio,SNR)的地形图像,从而带来障碍识别误差。2013年12月,中国发射的“嫦娥3号”(Chang’E-3,CE-3)探测器利用单目图像避障方法成功着陆月球,该方法基于图像灰度和纹理进行障碍识别与分析,并确定安全着陆点位置。然而,单目图像只具备二维信息,坡度、岩石高度等特征依然难以识别。所以,要想实现更高精度的障碍识别,提升障碍规避的可靠度,还需要获取地表的高程信息。

地表高程通常可以使用两种方式获取:光学成像敏感器和基于激光雷达(Lidar)或雷达(Radar)的主动光学成像敏感器。主动光学成像敏感器可直接测量地表的高度信息,且不受光照、大气等条件的影响,但相较于光学成像敏感器具有成本高、质量大、功耗大、体积大、视场小等缺点。而光学成像敏感器不能直接获取高程,需要对图像进行三维重建。光学图像的三维建模方法主要包括双目视觉(Stereo-vision,SV)、基于阴影的形状重建(Shape from shading,SFS)和基于运动的结构重建(Structure from motion,SFM)。其中,双目立体视觉一直是立体视觉领域的重要研究对象,在导航、航天测控等领域有广泛的应用前景。例如,美国航空航天学会(AIAA)对双目立体视觉算法进行了研究与优化,进一步验证了双目避障的有效性;美国喷气推进实验室(JPL)也利用双目立体视觉进行地面斜坡检测、岩石检测;欧空局在“漫游者”号SPARTAN自主导航中就使用了双目立体视觉算法。近年来,国内也逐步开展了双目立体视觉在相对导航与避障方向的研究。但目前国际上尚未有实现双目避障技术在行星着陆任务中应用的实例。同时,着陆过程中发动机点火振动导致双目参数变化带来的匹配误差也是亟待解决的难题。

此外,由于双目视觉立体匹配算法计算复杂性高、数据量大,无法满足实时性要求。为了提高双目计算视差和三维信息的速度,双目算法也逐步实现了硬件化实现。因此,针对火星表面环境与着陆特点,天问一号设计了现场可编程门阵列(FPGA)和应用软件结合的双目视觉避障系统。本文对双目视觉避障系统进行详细说明,并对结果进行分析与评价。

1 双目视觉避障系统

本文选用FPGA作为硬件加速平台,通过功能模块的并行化和流水线化,实现实时双目视觉立体匹配算法。同时,采用大基线双目自然场景在轨自标定技术,解决火星进入舱主发动机点火振动导致双目参数变化的难题。通过图像障碍识别和双目立体地形感知完成天问一号降落过程中的安全着陆点自动选取。系统流程如图1所示。

图1 双目视觉避障系统流程图

1.1 系统构成

1)双目相机

天问一号双目相机由多功能避障敏感器光学成像模块和光学避障敏感器构成,相机参数见表1,两台相机的基线为2.8 m。

表1 敏感器参数

2)图像处理板

进入下降控制单元EDCU内的图像处理板用于双目数据处理及安全点选择,系统采用Xilinx V4 FPGA+SPARC V8处理器架构,处理器主频75 MHz,存储器资源SRAM 4MB×4,程序存储器512 KB,FPGA工作频率为50 MHz。

3)应用软件

应用软件的核心为避障算法,主要功能包括:数据规范化,完成阵列式数据的计算、抽取、重采样;区域规范化,完成DEM数据网格化地形区域划分;纹理与障碍识别,进行坡度拟合、高度计算、安全概率计算等;安全点计算,根据区域安全概率排序并输出。

1.2 实时双目立体地形感知

双目立体视觉利用视差原理获取场景的三维信息,一般应用在近距离,如不超过10 m。在深空着陆任务中需要在百米左右高度上进行地形障碍检测,因此双目视觉避障系统需要解决远距离高精度立体恢复的难题。此外,还需解决飞行器快速下降过程中的双目匹配的高速处理。

天问一号双目避障视觉系统在100 m高度附近对拍摄的双目火星表面图像进行匹配,通过采用高分辨率相机、亚像素视差计算方法提高远距离立体恢复精度。为了克服由此带来的计算量难题,采用硬件化加速方法实现双目匹配的并行处理,流程示意图如图2所示。

图2 双目视觉硬件化流程

1)极线对正

为实现极线对正的硬件化并行处理,采用查表法进行处理,在图像数据读取过程中完成极线对正工作。首先依据双目标定参数计算极线对正参数,以左相机光心为原心,基线方向为X方向建立虚拟坐标系(右手系),通过相机安装的旋转矩阵将左右相机的像面坐标系均转换到虚拟坐标系下,得到新的左右相机的像面坐标。为了避免对正后得到的新图像出现空洞的问题,本文采取反投影的方式计算新图像坐标。极线对正参数以表格形式预存到FPGA内部。为节省资源,将极线对正表进行稀疏处理,综合考虑对正效果和资源开销,选择64×64的稀疏对正表。

FPGA内部存储了极线对正参数表格,极线对正参数表格存储了待处理的原始图和对正结果之间的位置对应关系。表中存储(,)和原始图′(′,′)的差异。不过对正表格只存储了对正后图间隔32行列(第一个位置间隔为31)的位置的对应关系,行列位置为0,31,63,…,2047位置的对应关系,其他位置的对应关系需要经过计算得到。其中代表列数,代表行数。

对于对正后的图中某个任意位置(,)来讲,其在原始图中的对应关系可以由下面公式得到:

(1)

式中:′,′分别为原图位置的列数与行数。若′,′不为整数,则找到其周围的四个位置存储的值,,和(图3),每个位置存储了行和列的差值,通过双线性插值计算对应原图中的位置(′,′)与对应的灰度值。

图3 FPGA存储示意图

2)Census变换

针对由于光照不均匀带来的灰度变化问题,Census变换有一定的修正作用。它通过比较像素(,)与其周围方形窗口内的像素的灰度值大小得到。为了降低计算成本和减少存储空间占用,本文采用稀疏Census变换方法,仅选择像素(,)和它周围上下左右各7行7列15×15的方形窗口内的8个像素值的大小来计算得到(图4),其变换公式为:

图4 稀疏Census模板

(2)

式中:为给定像素的灰度值,为中心像素,′为被比较像素。这些比较的结果组成了一个简单的Census比特向量。

当极线对正数据流累积完成15×15邻域的局部窗口处理后开展Census变换处理,两个处理模块以流水线方式运行。受限于FPGA内部资源,完成Census变换后的图像数据(左右图)将被缓存到SRAM中。

3)双目匹配

双目匹配模块从SRAM中读取左右图像Census变换后的图像编码数据进行双目匹配。

本文采用基于区域的代价计算实现双目图像匹配,它是利用局部窗口内的汉明距离来进行代价计算,代价计算方法为:

(3)

(4)

式中:()为在视差下的匹配代价。

将FPGA计算得到的视差作为输入。匹配模块工作时,将左图、右图SRAM上的图像数据读入FPGA内部的存储区,当读入的数目到达27行时开始进行匹配操作。取左图中一个27×27小块,中心为(,),在右图的一个范围内进行匹配,范围为:

(,+)~(,+)

(5)

式中:为最小视差,为最大视差。在匹配过程中,对于左图只对偶数列(注:其中偶数列是指0,2,4,…,2046,图像范围为0~2047)的像素值进行匹配计算,匹配时在右图上进行逐像素查找最佳匹配位置,得到最佳的匹配位置和其左右的代价值,进行亚像素差值后得到其视差值,将其存储在SRAM上。

由于经过亚像素插值后的视差值将出现小数部分,因此存储时整数部分存储于偶数列像素的位置,小数部分存储于后面的一个像素位置,两个位置共同形成一个16位的定点数,用于存储视差值。则当前位置的视差值为:

(6)

式中:为视差整数部分,为视差小数部分。

4)高度计算

根据视差原理,求得像点高程为:

(7)

式中:为相机焦距,为基线长度,为由式(4)得到的亚像素视差。

1.3 障碍识别及安全点选择

1)图像障碍识别

灰度与纹理障碍识别继承CE-3的单目光学粗避障算法,主要分为灰度避障和纹理避障两部分。灰度避障的内容为避开图像中过亮和过暗的区域,原因是在低太阳高度角下,迎光面将出现高亮区域,而被光面出现阴影,即像面上的过暗区域;纹理避障的原理为不同材料和表面构型将出现灰度范围分布较大的情况。具体算法参见文献[14]。

2)坡度拟合与粗糙度计算

从每个5×5网格中抽取7×7个点进行高度拟合、坡度拟合。在等间隔取点的前提下,由于视差只有偶数列对应的结果,则对每个点的选取,取以当前点为中心、9×9邻域内~这25个点高程值的均值作为该点的高程值。具体方法参见文献[15]。

3)着陆安全度评估

结合图像障碍识别结果,将坡度拟合后的绝对值向上取整,并依次选取最优的五点顺序实施坡度判断,若坡度大于7°则设定为障碍网格(安全概率为0),若坡度在7°范围内,则认为是安全着陆点,并输出安全坐标。

1.4 在轨自标定

双目匹配过程中,极线对正的精度直接影响着视差的计算。极线对正的误差会直接带来高程和坡度计算的误差。所以,天问一号双目避障系统设计了在轨自标定,对极线对正的结果进行修正,进一步提升避障精度。在轨自标定流程如图5所示。

图5 在轨自标定示意图

1)匹配范围计算

根据光轴距火面的斜距计算左右图像的匹配范围,计算方法如下:

(8)

式中:||表示基线向量的模,为相机焦距,表示像面上每个像素的大小,为光轴距火面的斜距。所以,匹配范围为[,]。

2)左右图像块匹配

首先对左右图像分别进行稀疏Census变换。原理和流程同1.2中的Census变换方法。在左图像9个固定位置取图像块,然后在右图像一定范围内寻找最佳匹配。每个位置取27×27小块相减并求绝对值之和,作为本位置的代价值,并得到代价最小的位置。代价计算是利用像素的灰度信息来进行代价计算,代价计算方法为:

(9)

式中:()表示右图中(,)位置在列视差和行视差下的匹配代价,分别为左图与右图的像素灰度值。寻找可以得到代价最小的位置,依次记录9个位置的行数变化量Δ。

3)拟合标定直线方程

利用线性拟合方法,对第二步中的9个位置与各位置得到的变化量拟合修正标定参数。首先将9个位置的变化量Δ作为拟合的输入,通过线性拟合方程得到9个位置以及对应的变化量Δ。若满足:

(10)

++=Δ

(11)

式中:,和为修正参数。

4)修改双目参数表

针对极线对正后得到的极线对正参数表格,利用上一步得到的修正标定参数计算表格中每个点的修正量,在表格中每个点加入修正量,存入新的表格的对应位置。最后表格中的数值转换为FPGA定点数,存入原有地址中。

2 试验验证

为了确保双目视觉避障系统的有效性与性能,试验验证工作于2019年9月在河北省张家口市怀来县的地外天体着陆试验场开展。地内障碍设置为三种:岩石、陨坑、斜坡。在测试之前先对双目相机进行标定,解算相机之间的精确关系,修改星上软件双目匹配输入参数。标定完成后开始进行悬停实验。

首先针对较为平坦的地形进行试验。在区域内设置20 m×20 m的预设安全区,如图6虚线方框所示。由于安装关系,相机坐标系与着陆场坐标系有一定夹角。预设安全区域中心坐标为[70,0,0],单位为m。经过双目避障与星上解算得到的安全点坐标为[70.32,0.83,0.75],单位为m。实测安全点矢量为[0.0518,-0.086,0.9949]。实验表明,星上解算安全点与预设安全点的水平偏差在1 m以内。双目避障系统具有很高的解算精度。

图6 安全区示意图

此外,本文针对斜坡地形也进行了实验,斜坡坡度为6°。经过双目立体匹配得到的地面三维图如图7所示。同时,为了评价三维建模的精度,我们也用高精度的激光扫描仪对该区域进行了精密测量,并生成DEM。我们将其作为真实DEM与双目立体恢复的DEM进行定量比较,得到立体视觉成像的精度为6.4 cm@70 m。坡度拟合得到的坡度结果为6.5°,解算时间不超过2 s。

图7 双目避障结果

3 在轨表现

2021年5月11日天问一号成功着陆火星后,于2021年5月19日下传回了第一张火星降落图像,经地面图像配准后,得到该图像的拍摄时刻对应的实际地面高度约为197 m。这时着陆器在悬停前开展了双目在轨标定,下传图像中有此图像在轨标定过程中产生的中间编码图像。双目在轨标定图像,进行了硬件化极线对正和增强编码,应用软件完成了在轨自标定。由于该图像与激光图像复用存储器,传回图片如图8所示,其中图像上方深色部分为激光三维数据。根据在轨遥测信息,天问一号成功完成了在轨自标定。

图8 在轨标定图像(census变换图)

此外,在天问一号的下传图像中,30 m以下的图像可见明显的扬尘现象(图9)。本文利用双目立体匹配分别对30 m、15 m和9 m的三组图像进行立体恢复,结果如图10所示。由结果可以清晰的看到坑的形成和扬尘堆积情况。通过对DEM的定量分析,9 m结果可见坑深接近10 cm,扬尘堆积高度最高约10 cm。

图9 30 m以下的火星双目图像

图10 双目图像立体恢复结果

4 结 论

天问一号双目视觉避障系统是对我国自主着陆避障系统的进一步优化。而且,为了提高双目计算视差和三维信息的速度,该系统选用了FPGA作为硬件加速平台。通过功能模块的并行化和流水线化,解决立体匹配算法处理速度慢的问题。本文对双目视觉避障系统的三种模式进行详细叙述,并进行了算法验证和在轨图像分析。结果表明,双目视觉避障系统星上解算安全点与预设安全点的水平偏差能达到1 m以内,坡度解算误差为0.5°,立体视觉成像的精度可达6.4 cm@70 m,且解算时间可控制在2 s以内。对于在轨图像,本文也对30 m以下的双目图像进行了立体恢复。结果可见明显的扬尘堆积现象,通过对DEM的定量分析,9 m结果可见坑深接近10 cm,扬尘堆积高度最高约10 cm。结果表明,本文的双目避障系统实现了2K×2K高分辨率双目稠密匹配,具有很高的解算精度,成功帮助天问一号完成了在轨自标定。

猜你喜欢
双目标定灰度
采用双目视觉和自适应Kalman滤波的作物行识别与跟踪
车轮动平衡标定结果的影响因素
基于二值化灰度图像的大豆蛋白液喷雾相对雾化程度的研究
霜 降 苏美玲
基于双目视觉的机器人定位与导航算法
天津港智慧工作平台灰度发布系统和流程设计
Arduino小车巡线程序的灰度阈值优化方案
机械手的双目视觉定位抓取研究
CT系统参数标定及成像—2
CT系统参数标定及成像—2