社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  机器学习算法

【泡泡图灵智库】TP-TIO:使用深度学习特征ThermalPoint的鲁棒的热感-惯性里程计

泡泡机器人SLAM • 3 年前 • 791 次点击  

泡泡图灵智库,带你精读机器人顶级会议文章

标题:TP-TIO: A Robust Thermal-Inertial Odometry with Deep ThermalPoint

作者:Shibo Zhao, Peng Wang, Hengrui Zhang, Zheng Fang, Sebastian Scherer

机构:CMU,东北大学

来源:IROS 2020

编译:刘国庆

审核:周福南

这是泡泡图灵智库推送的第668篇文章,欢迎个人转发朋友圈;其他机构或自媒体如需转载,后台留言申请授权

一、摘要与概览

大家好,今天为大家带来的文章是TP-TIO,一个基于深度学习特征ThermalPoint的、使用红外热感图像和IMU数据的视觉惯性里程计。


为了在视觉退化的环境中实现鲁棒的运动估计,基于热感图像的视觉里程计在机器人研究社区中吸引了广大学者的注意力。然而,大多数基于热感图像的里程计基本使用传统人工设计的特征提取器,由于热感图像的光度变化和巨大噪声,这类方法在连续帧中难以建立稳健的特征关联。为了解决这个问题,我们提出了ThermalPoint这一为在热感图像中提取关键点对的轻量级特征检测网络,和现有SOTA的方法相比显著改善了抗噪声性能。本文进一步将ThermalPoint用于新提出的辐射特征跟踪方法,可直接利用完整的环境热辐射数据在连续帧之间建立可靠的特征关联。最终本文利用基于优化的VIO框架,提出了基于深度特征的热感-惯性里程计(TIO,Thermal-Inertial Odometry)框架,在各种视觉退化环境(主要是烟雾环境——译者注)中进行了全面的评估。实验表明,在烟雾环境中,本文方法优于最先进的视觉里程计和激光里程计方法,在正常的环境中也达到了具有竞争力的精度。

图1为不同传感器在烟雾环境下的感知能力对比。

图1 不同传感器在烟雾环境下的感知能力对比

图1(a)图和(b)图分别为从可见光相机视角观察到的具有轻度烟雾和重度烟雾的真实场景。(c)图是ThermalPoint从红外热感相机图像中的追踪结果,红色的点意味着特征被稳定跟踪超过10次,若无法被稳定跟踪则绘制为蓝色点。(d)图对比了TP-TIO(红色)和LOAM(蓝色)估计的轨迹,红色和黄色的星星分别表示LOAM和TP-TIO估计轨迹的最终位置。可以看到本文算法更接近原点(使用XYZ坐标轴表示),而LOAM的位姿估计出现了很大的漂移,点云地图也出现了错误对齐的情况。(e)图是Z轴方向的轨迹对比,可以看到TP-TIO在Z轴方向也具有更小的偏移。关于实验部分的详细介绍,参考后文5.4节中浓烟雾场景下的鲁棒性对比实验。

演示视频:https://youtu.be/aa4whgmYTqY

论文链接:https://arxiv.org/pdf/2012.03455.pdf

(点击文末“阅读原文”链接即可获取)

二、研究背景

本文针对的是长波红外(Long Wave InfRared,LWIR)波段的成像,其图像可以表征环境中被拍摄物体的温度(下文简称为“红外热感图像”),由于远红外线波长较长,在环境中具有较好的穿透力,因此更适合可见光光照不足和烟雾等可见光图像容易退化的场景。应当说明的是现有的激光雷达、主动光相机、获取真值的动作捕捉系统等使用的红外光均为近红外,该波段红外无法表征环境中物体的问题,请泡泡机器人的读者们注意区分。红外热感图像也有许多固有缺点:

1、对比度低、纹理不明显,不太适合提取传统人工设计的特征;

2、红外热感图像可以被作为灰度图像处理(就像RGB-D相机的深度图那样),但其色深为16bit,而现有各类算法通常只能处理8bit色深的灰度图或RGB图,红外热感图像在此转换过程中会出现噪声放大、有效信息丢失等问题;

3、受限于红外热感图像的成像原理,图像中会叠加呈横纵网格分布的线簇状纹理,像水印一样不随着相机拍摄内容发生变化,称之为Fixed-Pattern Noise(FPN,下文简称FPN),并且FPN会随着相机运行时间的增长逐渐加重,对特征提取产生极大干扰(下文图6中有展示);

4、为了抵消FPN对红外热感图像质量的负面影响,拍摄图像序列时红外热感相机自身会不定期触发Non-Uniformity Correction(NUC,下文简称NUC)进行硬件矫正,矫正后拍摄的红外热感图像中FPN会大大减轻,但NUC过程中红外相机将暂停图像输出,宏观来看其视频序列将会卡顿500ms左右,这极易导致特征跟踪失败,导致红外热感里程计的状态估计出现偏移。

三、主要贡献

1、第一个提出基于深度学习方式提取特征、基于视觉惯性优化框架的紧耦合热感-惯性里程计算法,称为TP-TIO(TP=ThermalPoint;TIO=Thermal Inertial Odometry);

2、提出基于CNN的特征提取网络ThermalPoint,该网络为从红外热感图像中提取关键点而定制,和其他SOTA的基于深度学习和基于人工设计的特征提取器相比,显著改善了抵抗噪声的能力;

3、提出了IMU辅助的辐射特征跟踪方法,该方法可使用红外热感相机的热辐射数据在相邻帧间建立可靠的数据关联;

4、进行了一系列的广泛实验以全面评估TP-TIO算法框架,评估对象包括红外热感图像特征的跟踪和各种环境下的姿态估计等,实验场景包括充满遮挡物的地下矿道和充满浓烟的室内环境等。

四、主要工作

TP-TIO主要由ThermalPoint特征检测网络、IMU辅助的热辐射特征跟踪和热感惯性融合的BA三个部分组成,如图2所示。

图2 TP-TIO Pipeline

Pipeline中黄色的模块是本文的工作。为了改善实时性,虚线绿色方框圈出的模块只会在训练过程中使用,在部署时将会从Pipeline中删除。

4.1 ThermalPoint Network

网络结构

为了在含有噪声的红外热感图像可靠地检测特征,本文设计了全卷积的神经网络结构,称之为ThermalPoint,如上图图2所示。受到SuperPoint网络的启发,本文的网络结构具有一个“共享编码器(shared encoder)”用于对高层特征进行抽象并且对输入图像进行降维处理。接下来的网络结构分为两个主要的解码器,用于执行不同的任务:特征检测解码器(Feature Detection Decoder)和描述子解码器(Descriptor Decoder)。为了改善实时性,描述子解码器仅在训练过程中用于提高特征检测的重复性,在推理时将被从网络结构中删除。作为补充,本文使用基于KLT的跟踪方法建立帧帧间的特征对应关系。

共享编码器

考虑到嵌入式平台(Nvidia Jetson AGX Xavier)上特征检测要求速度快、计算量低,和SuperPoint使用VGG式的共享编码器不同,本文使用来自MobileNet的共享编码器。

特征检测解码器和描述子解码器

受SuperPoint的设计启发,特征检测解码器计算尺寸为Hc x Wc x 64尺寸的特征图,每个元素记为X;接着在通道级别Softmax和DepthToSpace后得到Hc x Wc的置信度热图C。X中的每个像素对应一个概率,测量在8x8图像区块内存在特征点的似然。描述子解码器部分和SuperPoint比较相似。下面是一些ThermalPoint在SuperPoint上进行的改进:

● 为了改善特征点的重复性,ThermalPoint中使用“独立Logistic损失”(Independent Logistic Loss,下式1)替换掉SuperPoint使用的多交叉熵损失(Multiple Cross-entropy)。原因是多交叉熵损失只允许在一个图像区块中存在一个特征,而独立Logistic损失则能够编码每个像素成为特征点可能性;

● 为了在训练时节约计算时间,ThermalPoint的解码器使用更低算力消耗的双线性插值得到稠密的描述图D,替换掉Superpoint中的双三次插值。

损失函数

和SuperPoint的训练过程相似,ThermalPoint也优化了特征检测器损失和描述子损失。对于后者,ThermalPoint直接使用了SuperPoint设计的损失函数。对于前者则使用前文置信度热图中每个像素点C的二进制Logistic损失。若给定每张图像I的特征点标签L:

则该损失函数可以定义为下式1的形式:


4.2 训练过程中的细节

降噪

将各种噪声模型用于训练数据集是提高模型抗噪声性能的常用技术,和可见光图像中的噪声相比,红外热感图像的噪声更加复杂,尤其是其中的FPN,又被称之为非均匀噪声(non-uniform noise,不过本译文还是使用FPN称呼该噪声)。为了克服FPN对特征提取的影响,本文将FPN噪声手动添加到训练数据集中,如下图3所示。

图3 添加FPN噪声前后的图像样例

图3展示的是添加FPN噪声前后的图像样例。第一行分别为合成数据集、KITTI数据集和红外热感图像数据集中的原始无噪声(noise-free)图像,下面一行则是添加了FPN噪声后的非均匀(non-uniform)图像。非均匀图像可简单认为是原始无噪声图像和FPN的叠加:

式2左边表示非均匀图像,等式右侧第一项表示原始无噪声图像,第二项表示FPN噪声。为了得到非均匀图像,本文使用了两种简单而有效的办法:

● 一是将红外热感相机朝向具有相同材质(比如混凝土墙)的场景。由于材质的比热容几乎完全相同,物体本身温度一致、在红外热感图像中灰度一致、梯度变化更少,更容易记录FPN的Pattern;

● 二是模拟纵向分布的FPN。

本文中综合使用上述两种方法创建了一个包含1000幅图像的FPN噪声数据集,在训练过程中将从FPN数据集中随机选择一幅图像(或者称为一幅Pattern——译者注),并根据上式(2)将其添加到无噪声的图像中,得到图3第二行的非均匀图像。同时本文还使用了常用的数据增强技巧提高网络对图像光度变化的鲁棒性,包括对比度、色调、亮度等等方面的调节,这是训练常用的trick,本文不再赘述。

伪特征监督

SuperPoint展示了使用anchors指导训练所带来的巨大好处。虽然anchors提供了一个更稳定的训练过程,但某个图像区域附近没有anchors时,它也会阻止网络模型识别新的关键点。为了解决这个问题,本文使用SIFT生成一些额外的伪特征点标签并监督训练过程。如表1(在实验部分给出)所示,通过结合人工设计的特征和基于CNN滤波器的标签,ThermalPoint的可重复性得到了改善,如图4所示。

图4 RGB图像和红外热感图像上的伪特征监督训练过程

图4的左、右两张图像分别展示了在RGB图像和红外热感图像上的伪特征监督训练过程。绿色和红色的点分别表示使用基础特征检测器和SIFT检测得到的特征。本文设计的特征检测器主要检测表征“角落”概念的点,而SIFT主要检测具有明显图像梯度的点。这两种关键点都被用作为标签对训练过程进行监督。

4.3 IMU辅助的辐射特征跟踪

通过ThermalPoint对红外热感图像检测到一组稀疏的关键点后,还需要跟踪相机的运动并在相邻帧之间建立特征的数据关联。大多数基于深度学习的特征都需要创建稠密的描述图(Descriptor Map)来查找特征的对应关系,因此很难满足本文的实时性要求。受到浙江大学直接法红外热感里程计研究工作的启发,本文直接使用红外热感图像中的热辐射信息,基于KLT方法和IMU的测量数据实现鲁棒的特征跟踪,作为对描述子方法的代替方案。为克服突然的光度变化,本文结合了逆合成方法(Inverse-compositional Approach)和Patch不相关度量(Patch Dissimilarity Norm),使得特征跟踪不受图像强度变化的影响。

给定参考帧中的一组图像patch,本文最小化了两个连续帧中关联patch的辐射误差(Radiometric Error)来估计二维的变换T:

对于patch中的一个残差可定义为:

注意红外热感图像中每个像素的像素值是16位的哦~为了提高实时性和相机大位移时的鲁棒性,本文在图像尺度空间金字塔上从顶层到底层执行Coarse-to-Fine的patch对齐,来自上一图层的对齐结果为下一图层提供了先验信息。另外IMU预积分的结果也在最顶层图像为整个过程提供基础的变换先验信息,这两个步骤大大提高了追踪过程的收敛速度、改善了鲁棒性。

4.4 热感图像与惯性联合的BA

本文设计了一种基于滑动窗口的、IMU预积分测量的优化方式估计传感器的运动,在此过程中将联合最小化跟踪到的视觉特征重投影残差和IMU残差。

重投影残差

用于状态估计的第一个残差项是基于红外热感图像的重投影误差,描述为:

上式本质上就是传统的可见光视觉SLAM中重投影误差的度量方式,不同点在于这里像素点对应的特征、路标点对应的特征等都是从红外热感图像中得到的。

IMU残差

第二个残差项是基于IMU预积分推导得出的。为了实现高频率、可靠的位姿估计,我们预积分了几个连续的IMU测量值,并且在帧i和帧j之间添加IMU因子。和VINS-mono类似,IMU坐标系b_k和b_{k+1}之间相应的预积分为:

因此两个连续帧内惯性测量的残差项可定义为:

关于更多IMU预积分的内容,我们推荐读者参考VINS-mono的论文。

联合优化

由于目前已经得到了重投影残差和惯性残差的表达式,因此对于每个新的帧,可最小化由重投影残差、IMU残差和滑窗中的边缘化先验组成的代价函数:

obs(i)表示被其他帧观测并跟踪到的ThermalPoint i的集合。集合C表示被IMU因子连接的两帧(a,b),W_reproj和W_imu表示来自视觉和IMU测量的协方差矩阵。e_m表示残差项。通过优化上述误差函数即可以得到传感器的最优位姿估计。

实验

在实验部分本文共分了三个场景:地下矿井、室内实验室以及烟雾场景,计算平台为安装有Linux&ROS的Nvidia Jetson AGX Xavier嵌入式计算机。评估对象有二:ThermalPoint特征提取网络的性能,以及TP-TIO的性能。

● 对于ThermalPoint热感特征提取和跟踪,本文主要和传统人工设计的Harris、ORB、SIFT等特征和基于学习的SuperPoint特征在可靠性和实时性两个方面进行了对比;

● 对于TP-TIO的状态估计,本文主要和VINS、OKVIS等VO、VIO进行了对比。

5.1 ThermalPoint特征检测到鲁棒性比较

文章主要对抵抗光度变化、抵抗噪声两个方面的性能进行评估。抗光度变化方面,使用了公开了地下矿井数据集,其中由于环境温度变化,给红外热感图像带来了明显的光度改变。抗噪声方面,作者自建了室内的轻、浓烟雾数据集。由于作为对比的特征检测器可能在红外热感图像上无法提取特征,本文对它们进行了参数调整。在这个测试中,所有的特征提取器均在521x640分辨率的红外图像中提取最多400个点,非极大值抑制参数选择为8。

抗光度变化和抗噪声比较

下图图5为不同的特征检测器面对突然的光度变化时,表现出来的抗光度变化性能。

图5 不同特征提取方案的抗光度变化性能

可发现基于深度学习的方法(ThermalPoint和SuperPoint)即使在低对比度的红外热感图像中也可以检测到足够多的特征;然而那些传统的Harris、Good Feature、ORB和SIFT在面对突然的光度变化时,尤其是在低对比度图像中将难以有效地提取特征。

下图图6展示了在面对FPN噪声时,不同特征提取器的抗噪声性能。

图6 不同特征提取方案的抗噪声(主要是FPN)性能

图6中受竖条状FPN影响的区域被红色矩形框圈出来了,可以看到只有ThermalPoint可以有效避免被FPN干扰,而其他特征提取器则会在FPN干扰下提取得到许多错误特征。造成这一现象的原因是传统的特征基于图像提取信息,易受到光度变化和FPN的影响;而基于深度学习的ThermalPoint在训练过程中可获得抗光度变化和抗噪声的能力。

定量的鲁棒性分析

为了分析特征检测器在红外热感图像面对视角变化和光度变化时的鲁棒性,本文使用来自SuperPoint中的重复性评分(Repeatabolity Score)进行定量度量。重复性评分越高,表明对应方法具有更高的面对光度变化和视角变化的能力。本文在室外拍摄的红外热感图像序列中使用随机的单应变换得到对应的红外热感图像以生成测试用图像对,和前文使用一样的参数在240x320分辨率的图像中提取最多500个点,重复性评分过程中正确性阈值(Correctness Threshold)设置为3。下表1展示了每一种特征提取方案在面对视角变化和光度变化时的重复性评分,可以看到ThermalPoint具有最高的重复性。

表1 不同特征提取方案面对视角变化和光度变化时的重复性评分

5.2 ThermalPoint用于追踪时的鲁棒性和运行耗时比较

为测试ThermalPoint用于追踪的可靠性,本文在如图7所示的地下矿井环境中进行了测试。

图7 特征追踪可靠性测试

测试中使用的红外热感图像分辨率均为640x512,所有的特征检测方法均被设置为追踪最多160个点,非极大值抑制参数选择为8。可以发现在低对比度的热感图像中,ThermalPoint追踪到的点数目最多。同时不同特征在帧与帧追踪过程中的计算耗时也被进行了对比,本文的特征跟踪方法耗时相比SuperPoint显著降低,如图8所示。

图8 跟踪几种特征的耗时对比

5.3 室内状态估计的精度对比

TP-TIO和目前SOTA的VO、VIO进行了在使用红外热感图像输入时,状态估计精度上的对比,包括VINS、OKVIS、R-VIO和DSO。选择这些方案进行对比的原因有两个方面,一方面现有研究基本都需要结合可见光和红外热感图像才可以实现比较不错的位姿估计,但是本文仅仅需要红外热感图像就足够;另一方面也是为了和传统特征在红外热感图像下的效果进行对比。

为了公平起见,这些基于传统人工特征的VO和VIO系统在有热源的实验室内进行实验,目的是得到对比度比较高的红外热感图像,这些里程计方法可以提取到显著的特征。该测试序列中传感器设备被手持通过85米长度的桥并且原路返回,运动轨迹上有这两个值得注意的设计:

● 路径终点和起点重合,更方便后续定性评估轨迹漂移程度;

● 折返过程中包含纯旋转过程,可为精度评估增加挑战性。

由于后续有烟雾场景下的实验无法使用动作捕捉系统获取轨迹真值,本文状态估计实验中统一使用无烟雾时LOAM算法的位姿估计结果充当真值。实验结果如下图9所示。

图 9 无烟雾场景下和其他VO、VIO的轨迹精度对比(红外热感图像输入)

图9中(a1)和(a4)对比了不同里程计方案的轨迹估计精度,其中TP-TIO为蓝线、VINS为绿线、OKVIS为黄线、R-VIO为紫线,真值则使用红线表示。由于经常发生错误、跟丢,DSO的轨迹估计结果没有在(a1)中绘制出来。(a2)为进行实验的实验室内部场景。(a3)展示了TP-TIO在红外热感图像上的特征提取质量。可以看到在(a1)、(a4)中,TP-TIO的方法最接近红色线的真值轨迹,这说明本文比其他方法的精度高。表2提供了该实验中ATE和RPE误差的定量比较,TP-TIO的精度也是最高的。

表2 室内无烟雾场景时的各里程计系统位姿估计精度定性对比(红外热感图像输入)

5.4 烟雾环境下的鲁棒性比较

文使用烟雾发生器制造烟雾环境,并且将TP-TIO和LOAM进行精度和鲁棒性的比较,因为只有LOAM在精度烟雾的环境中还可以实现鲁棒的位姿估计,前文实验中用于对比的VO、VIO则全部失效。

为了测试估计轨迹的精度,本文使用了在无烟雾情况下预先构建的点云地图作为真值,用于展现轨迹估计的结果。如果估计的位姿准确,那么轨迹和地图匹配程度会非常好,可定性地评估轨迹精度。而在鲁棒性这边,本文使用烟雾生成器构建了一个轻烟雾环境和一个浓烟雾环境进行实验,分别如上图图1中(a)和(b)所示。实际场景测试过程中,手持传感器设备从房间A通过走廊走到充满烟雾的房间,然后再回到房间A中的起点,如图10所示。

轻烟雾环境中的状态估计比较

图10中比较了TP-TIO和LOAM在轻烟雾环境下的位姿估计。

图10 轻烟雾环境中的状态估计精度比较

上图图10 (a)中展示了地图真值,红色和蓝色轨迹分别代表LOAM和TP-TIO估计的轨迹。绿色圆圈圈出来的区域展现了地图中轨迹的更多细节(a1~a3)。从(a1, a2)中可以看到传感器穿过门框的轨迹,值得注意的是门框非常狭窄,只有0.67米的宽度,TP-TIO的估计轨迹(蓝色)是可以正确穿过的,然而LOAM估计的轨迹(红色)因为受到轻烟雾的干扰偏移较大,甚至在(a1)中出现“撞墙”现象。(a3)中展示了各个轨迹回到起点的情况,起点使用红绿蓝三色绘制的坐标轴表示,红色、黄色五角星分别表示LOAM估计轨迹的终点和TP-TIO估计轨迹的终点。可以看到TP-TIO的终点更接近起点,这说明本文对算法具有更高的精度。

图10(b)中展示了在轻烟雾场景中LOAM建图出现了错误对齐现象,这也从另外一个侧面说明了LOAM在轻烟雾场景中出现了一定的漂移。(c)则展示了两种方法轨迹在预构建的点云地图中Z轴方向的漂移现象,TP-TIO的轨迹漂移更小。

浓烟雾环境中的状态估计比较

浓烟雾场景主要用于测试TP-TIO的鲁棒性。如下图11中(a1,a2)穿过门框的细节部分,本文算法的估计轨迹可以正常穿过而LOAM算法的估计轨迹依旧出现“撞墙”现象。

图11 浓烟雾环境中的状态估计精度比较

图11 (a3)展示了回到原点的情况,红色和黄色五角星分别表示LOAM的轨迹终点和TP-TIO的轨迹终点,本文TP-TIO的轨迹终点更接近原点而LOAM这要差很多,这表明TP-TIO的精度在浓烟雾场景下有更高的精度。(b)展示了LOAM在浓烟雾场景下的点云错误对齐现象,这从侧面表明LOAM已经出现了很大的漂移。(c)展示了在预构建地图中两种算法的估计轨迹在Z轴方向上的漂移,红色线表示的LOAM估计轨迹出现了严重的漂移现象。上述这些实验结果均说明了本文的TP-TIO算法在浓烟雾场景中具有更强的鲁棒性。


如果你对本文感兴趣,想要下载完整文章进行阅读,可以关注【泡泡机器人SLAM】公众号


点击阅读原文, 即可获取本文下载链接。

欢迎来到泡泡论坛,这里有大牛为你解答关于SLAM的任何疑惑。

有想问的问题,或者想刷帖回答问题,泡泡论坛欢迎你!

泡泡网站:www.paopaorobot.org

泡泡论坛:http://paopaorobot.org/bbs/


泡泡机器人SLAM的原创内容均由泡泡机器人的成员花费大量心血制作而成,希望大家珍惜我们的劳动成果,转载请务必注明出自【泡泡机器人SLAM】微信公众号,否则侵权必究!同时,我们也欢迎各位转载到自己的朋友圈,让更多的人能进入到SLAM这个领域中,让我们共同为推进中国的SLAM事业而努力!

商业合作及转载请联系paopaorobot@163.com

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/119925
 
791 次点击