基于ORB-SLAM的低照度空间非合作目标的姿态估计*

2021-05-20 13:58周朋博刘晓峰蔡国平
动力学与控制学报 2021年1期
关键词:关键帧闭环光照

周朋博 刘晓峰 蔡国平

(上海交通大学工程力学系,海洋工程国家重点实验室,上海 200240)

引言

随着航天事业的发展,太空碎片清除、延长航天器寿命等在轨服务技术日益重要,空间目标与服务卫星之间的相对姿态估计则是在轨服务得以顺利实施的关键.空间目标可以分为合作目标和非合作目标[1],合作目标可以向服务卫星提供自身运动等信息,目前已有完备的姿态估计方案;而非合作目标无法与服务卫星进行通讯,其姿态需要通过视觉观测处理图像等手段获得.

视觉观测是指利用传感器采集目标图像,根据图像信息和物方空间内几何信息的映射关系实现测量的方法.由于视觉观测不需要目标的先验信息,越来越多的研究人员用其解决非合作目标的姿态估计问题[2-10].张世杰等[5]将单目相机采集的目标航天器图像简化为特征点,然后利用非线性优化算法计算出目标的相对位姿.Kanani等[6]提出了用于单目相机的模板匹配算法,分离出图像中的航天器并与离线构建的三维模型投影数据库匹配估计目标位姿.Liu和Hu[7]提出了一种为非合作圆柱形航天器定制的姿态采集算法,将图像中提取的匹配椭圆与模型中的椭圆匹配之后,利用航天器的非对称分量计算位姿.Greenspan[8]提出首先找到目标主轴的方向来解出两个旋转自由度.然后将模板匹配算法用于在离线建立的数据库内寻找余下旋转自由度的最佳估计.杨立峰等[9]将卡尔曼滤波与立体视觉结合估计目标相对追踪者的位姿.徐文福等[10]提出以目标航天器的三角形卫星帆板为观测目标,利用双目测量计算三角形顶点的三维信息,得到目标航天器姿态.由以上可以看出,目前人们已经在空间非合作目标的视觉运动观测做了一些研究工作,并取得了一些研究进展.然而值得在此指出的是,现有研究仍存在一些问题有待深入探索,例如,目前对空间非合作目标姿态估计的研究几乎都是在空间目标三维几何模型已知的情况下完成的,是通过与离线建立的模板库进行匹配而计算得出姿态的.因此研究方法无法应用于三维模型未知的目标,因此模板库是由固定姿态参数的三维模型生成的模板图像组成的.另外,太空中弱光照条件会降低相机等无源传感器所获信息的完整度,进而影响视觉运动观测的精度.因此,研究在弱光照情况下空间非合作目标的视觉运动观测技术具有重要的意义.

本文对弱光照情况下空间非合作目标的视觉运动观测技术进行研究,提出一种有效的视觉运动观测方法 .本文将 LIME[11]增强算法与 ORB-SLAM[12,13]算法进行结合,采用LIME增强弱光照情况下双目相机采集的图像,然后将ORB-SLAM用于卫星运动姿态估计.仿真结果验证了本文方法的有效性.

1 LIME算法基本原理

常用的低照度增强算法是先将采集的低照度图像反转,利用去雾算法处理图像得到无雾图,再反转得到最终的增强图像.该算法虽然效果良好,但缺乏物理模型解释.而LIME算法基于Retinex物理模型[14],同样具有很好的效果.本节首先介绍了LIME算法的理论模型Retinex模型,然后使用MAX-RGB方法[14]估计亮度图的初始值,并通过优化函数优化亮度图,最后对亮度图进行γ变换并利用BM3D方法[15]去噪,和反射图重组成最终增强图像.

1.1 理论模型

LIME算法基于如下Retinex物理模型[14]:

其中,S代表原始图像,R代表反射图(Desired recovery),L代表亮度图(Illumination map),x代表像素坐标.公式(1)的物理意义是指图像由亮度图和反射图两部分所组成,通过分离并增强亮度图达到对弱光照情况下采集图像增强的目的.

1.2 亮度估计

从公式(1)可以看出,计算反射图的关键是亮度图的估计.本文使用经典的MAX-RGB方法[14]估计亮度图的初始值

并计算出反射图:

对亮度图进行增强和优化.为使增强后的亮度图既不失真、又能与纹理相符,本文采用如下的优化函数[11]:

为简化计算,将优化函数(4)近似为

式中,权值矩阵值为:

其中,Wh和Wv是水平和竖直方向的权值矩阵,Ω(x)是以像素x为中心的区域,y是区域内的位置索引,Gσ(x,y)是标准差为2的高斯核函数.

1.3 图像矫正

为使图像特征更为明显,需要对经过公式(5)优化后的亮度图采用如下γ变换进行非线性拉伸,以提升图像对比度:

然后将反射图从RGB颜色空间转换到YCbCr颜色空间,并在Y通道使用BM3D滤波[15].为了解决去噪造成的失真,将滤波后的反射图与亮度图重组为如下最终增强图像:

其中,Sf代表最终结果,Rd代表去噪后的反射图.

2 ORB-SLAM基本原理

ORB-SLAM是基于特征和非线性优化的SLAM方案.非合作目标运动时,相机连续采集图像,SLAM系统根据图像中重复观测到的路标点实时计算目标姿态,并建立起环境地图(在本文中即为目标模型).整个系统包括三个并行进程:跟踪进程通过将每一帧提取的特征与局部地图匹配来定位相机位姿,并且通过应用姿态光流法平差来减小投影误差;局部地图进程管理并优化局部地图,实施局部光流法平差;闭环进程检测相机路径是否达成闭环条件,并在检测到闭环时通过实施位姿图优化来纠正累计漂移,然后在位姿图优化后实施全局优化来优化结构和位姿解.SLAM系统仅采用ORB特征进行特征检测和描述,同时利用基于ORB特征的词袋DBoW2[16]进行位置识别和回环检测.

2.1 特征点提取

图像特征点能够识别图像中的物体,通过匹配特征点能够匹配图像进而计算位姿,因此使用ORB-SLAM时首先需要进行ORB特征点的提取.ORB(Oriented FAST and Rotated BRIEF)特征是一种具有尺度不变性和旋转不变性的特征点描述方法,该方法利用增强的FAST(Features from Accelerated Segment Test)关键点提取方法提取关键点,并使用方向归一化的BRIEF(Binary Robust Independent Elementary Features)描述子对关键点进行描述.当进行特征提取时,ORB首先对图像构建图像金字塔,然后运用FAST方法提取金字塔每一层的角点,并通过Harris角点检测方法保留前N个角点作为关键点.当计算特征点描述子时,首先定义以关键点为中心的二维区域,并通过图像矩找到区域质心.然后将关键点到区域质心的向量作为关键点方向,并将图像按区域方向旋转。最后,使用BRIEF算法对图像区域内256个预先定义的像素进行二进制测试生成256位的字符串作为关键点的特征描述子.

特征点在相机上的投影关系如图1,非合作目标特征点P在左相机像素坐标系O1-u1v1对应点的坐标为(uL,vL),在右相机像素坐标系O2-u2v2对应点的坐标为(uR,vR).则可以得到特征点P的深度为[13]:

图1 特征点在左右相机上的投影点Fig.1 Projection points of feature point on the stereo camera

其中,fx为水平焦距,b为相机基线.

ORB-SLAM从左相机图片提取特征点并与右相机匹配,如果匹配不到对应点,则将其设为单目特征点,否则设为双目特征点.双目特征点又根据它的深度d与基线倍数的关系分为近点和远点.近点可以提供有效的旋转和平移信息,而远点只能提供有效的旋转信息.单目特征点与双目特征点一同参与后续光束法平差.系统启动时,以初始帧为关键帧,以该帧对应的相机位姿作为起点,提取其全部双目特征点作为初始地图.

2.2 跟踪

式中,ρ是Huber代价函数;Σ是协方差矩阵;π(⋅)是是针孔相机投影函数,定义如下:

其中,fy是竖直焦距,(cx,cy)是相机主点,都可以从相机标定中获取.

此外,由于局部建图进程中存在剔除冗余关键帧的机制,快速补给后续关键帧可以使系统在复杂卫星运动情况下的跟踪更具鲁棒性.插入新关键帧前,需要满足以下条件:

(1)距离上一次全局重定位超过20帧.

(2)局部建图进程处于空闲状态,且距离上一次关键帧插入超过20帧.

(3)当前帧至少跟踪到了50个点.

(4)当前帧能够跟踪到的地图点比参考关键帧少90%.

在我们的仿真中,设置关键帧最大数量为20帧,以保证系统的速度和鲁棒性.

2.3 局部建图

对每个新插入的关键帧.首先计算该关键帧的词袋,便于三角化新特征点;接着维护局部地图,剔除异常地图点;并且根据关键帧的连接关系拓展新的局部地图点;然后运用局部BA优化局部地图中所有关键帧的位姿及局部地图中的所有地图点.光束法平差优化一系列共视帧ΚL和这些帧看到的所有点PL.PL中能在其他关键帧ΚF看到的点在优化中作为常值.定义χk作为PL中的点与关键帧k中的关键点匹配的集合,代价函数如下[13]:

其中,Rk和tk表示关键帧k代表的相机旋转和平移.

同时剔除冗余关键帧,维持光束法平差的复杂度,使系统可以在固定环境中长久的运行.

2.4 闭环

闭环检测能够在系统中引入一条强力约束,对提高SLAM的精度至关重要.闭环检测进程处理局部建图中的最近一帧关键帧,检测轨迹是否闭环,并在检测到闭环后矫正回路,首先提取该关键帧的词袋向量并在数据库中寻找闭环候选关键帧;接着计算候选帧与关键帧之间的刚体变换,如果检测到足够多的有效点,则将该关键帧设为闭环关键帧;然后将新的边插入共视帧中,校正闭环关键帧和与它相连的关键帧,并将重复的地图点融合;之后对基本图进行姿态图优化,分配闭环误差;最后进行全局BA,优化所有关键帧位姿和所有地图点,使地图具有全局一致性.

3 仿真实验

本节进行数值仿真,以验证本文方法的有效性.仿真中分别考虑良好光照和弱光照两种情况.在使用SLAM方法进行姿态计算前,需要先对双目相机进行标定,本文标定过程如下:首先利用双目相机拍摄15张棋盘格在不同位姿下的图片,然后输入到Matlab中的Stereo Camera Calibrator工具箱,以计算出相机的内外参数,这些参数将用于后续图像处理.

数值仿真中,采用POV-Ray软件(注:POVRay软件长度无量纲)生成由太阳能帆板、卫星主体等组成的卫星模型,如图2所示.仿真时,采用两台单目针孔相机在不同位置采集相同的模型运动来模拟双目相机采集的图像.设定卫星模型绕Z轴作单轴匀速旋转运动,旋转速度为每帧0.5度,旋转角度分别为30°、60°、90°、180°、360°、720°.将产生的双目图像以及先前标定的相机参数导入ORBSLAM系统中,利用stereo模式计算出旋转角度.

图2 卫星模型示意图Fig.2 Satellite model

3.1 良好光照条件下的仿真

首先考虑良好光照条件下的仿真.在相机后方加入白色光源后,可以得到良好光照的卫星模型运动图像.表1给出了良好光照和弱光照情况下卫星分别旋转30°、60°、90°、180°、360°、720°时的姿态估计值、真实值和误差对比.图3给出了良好光照条件下卫星分别旋转30°、180°、360°、720°时的姿态结果,其中实线为真实值,点线为采用本文方法的估计值.从表1和图3中可以看出,良好光照条件下,数据均方根误差均在0.3°以下,720°情况的误差在1.5°以下,这表明SLAM算法在计算卫星运动姿态时拥有很高的精度.随着旋转角度增大,有少量的误差增长,这是未能触发闭环造成的误差累积,如果能够检测到闭环触发全局优化,误差将会被尽可能地消除.

图3 良好光照下卫星姿态计算结果:(a)30°,(b)180°,(c)360°,(d)720°Fig.3 Attitude estimation results under good illumination:(a)30°,(b)180°,(c)360°,(d)720°

表1 卫星旋转计算结果Table 1 Attitude estimation results

3.2 弱光照条件下的仿真

然后考虑弱光照条件下的仿真.在POV-Ray软件中不添加光源,首先设定环境光参数为<0.01,0.01,0.01>.图4显示该条件下采集的以及经过BIMEF、Dong、LIME、MSRCR、SRIE方法增强后的卫星模型图像.从图4中可以看出BIMEF、Dong、SRIE方法对弱光照下采集的图像增强效果有限,MSRCR方法增强后的图像在卫星周围产生了光晕,LIME方案增强后的图像效果最好.

图4 不同情况下的卫星模型图像:(a)弱光照,(b)BIMEF增强后,(c)Dong增强后,(d)LIME增强后,(e)MSRCR增强后,(f)SRIE增强后Fig.4 Satellie model in different situation:(a)Low-light condition,(b)BIMEF,(c)Dong,(d)LIME,(e)MSRCR,(f)SRIE

然后设定环境光参数为<0.1,0.1,0.1>,生成弱光照条件下的卫星模型运动,利用双目相机采集图像 .图 5 给出了卫星分别旋转30°、180°、360°、720°时的姿态结果.从表1和图5可以看出弱光照工况下,所有数据均方根误差均在0.7°以下,720°情况的误差在4.5°以下;且从表1的对比可知,卫星转动在180°以内时,弱光照的估计比良好光照的估计误差增加在0.5°以内,卫星转动在720°以内时误差增加在3°以内;这表明LIME与SLAM相结合的方案可以有效得到弱光照情况下的卫星运动姿态结果.

图5 低光照图像增强后卫星旋转计算结果:(a)30°,(b)180°,(c)360°,(d)720°Fig.5 Attitude estimation results in low-light condition:(a)30°,(b)180°,(c)360°,(d)720°

4 结论

本文采用LIME算法和ORB-SLAM算法,对弱光照条件下的空间非合作目标的姿态观测问题进行了研究,LIME算法用于图像增强,ORB-SLAM用于姿态估计.数值仿真结果验证了本文方法的有效性.目前关于非合作目标视觉运动估计的研究大多是基于目标的3D模型已知的情况进行的,而且较少考虑弱光照的情况,因此本文研究具有良好的参考价值.

在此值得说明的是,本文仿真中未能触发ORB-SLAM的闭环进程,若能触发闭环则可以提高估计精度,这有待于今后做进一步的探索.

猜你喜欢
关键帧闭环光照
节能环保 光照万家(公益宣传)
当幻想的光照进童心世界
自适应无监督聚类算法的运动图像关键帧跟踪
隐蔽的力量
春光照瑶乡
基于改进关键帧选择的RGB-D SLAM算法
单周期控制下双输入Buck变换器闭环系统设计
双闭环模糊控制在石化废水处理中的研究
基于相关系数的道路监控视频关键帧提取算法
基于聚散熵及运动目标检测的监控视频关键帧提取