基于视觉SLAM的热红外视频标定

2020-01-03 08:59刘则元徐文斌邢冠宇
现代计算机 2019年33期
关键词:角点标定红外

刘则元,徐文斌,邢冠宇

(1.四川大学计算机学院,成都 610065;2.光学辐射重点实验室,北京 100854;3.四川大学视觉合成图形图像技术国防重点学科实验室,成都 610065)

0 引言

即时定位与建图(Simultaneous Localization And Mapping,SLAM)[1]技术是指主体在没有先验信息的环境中,通过传感器估计自身的运动位置,并在过程中同时建立起周围环境的模型。

SLAM技术现在大量应用于无人机、自动驾驶、机器人导航领域,用来完成导航或建模的工作,并且成功实现了商业化的应用。例如在机器人领域,市面上应用较多的扫地机器人,可以利用SLAM技术对周围环境进行感知,并能对自身所处的位置有较为准确的判断,从而更好地完成扫地路径的规划以及对障碍物的规避。

视频标定技术是指利用视觉传感器得到的视频或序列帧,反求出视觉传感器的运动轨迹和姿态。然而现有的基于可见光的视觉SLAM方法在弱光、雾霾、烟尘等不良环境下均无法正常工作,而热红外摄像机能够稳定工作在上述环境中,这使得实现全天候的视觉跟踪和定位成为可能。

与可见光系统相比,红外成像系统具有以下优点:

(1)红外摄像机的环境适应性相比于可见光更好,在夜间和恶劣条件下能工作地更出色;

(2)红外光透过雾霾、烟雾的能力比可见光强,抗干扰能力更强;

(3)红外光可以利用不同目标之间的温差,更加准确地探测如人体、导弹等物体;

(4)隐蔽性好,红外传感器可以被动地接受红外辐射,比激光探测更加安全。

但是与基于可见光的系统相比,红外图像还存在分辨率低,噪声高,缺乏纹理、颜色信息,存在非均匀性误差,图像对比度低并且边缘模糊等缺点。

从发展趋势上来讲,由于普通可见光图像的局限性,在烟雾、粉尘以及夜间等低光照环境中不能正常工作,因此研究红外视觉SLAM系统,对于实现全天候的视觉SLAM系统,有着非常重要的意义。

1 相关工作

从传感器的种类上来分,SLAM技术主要可以分为激光SLAM和视觉SLAM两大类。其中激光SLAM方案起步较早,从理论到应用都有着较为成熟的体系,也是目前实际应用中采用较多的主流方案。而视觉SLAM系统使用相机作为数据采集传感器,不仅硬件价格低廉,而且体积小、能耗低,在小范围内精度高、稳定性好,能够应用于大多数平台。图像作为计算机的待处理数据,不仅信息量丰富,而且不依赖于环境场景的预先布置,适用性较强,也能够在各种复杂的场景下工作。

凭借以上诸多优点,同时得益于近年来计算机运算速度的极大提升以及概率学模型的应用,视觉SLAM方案得到了极大发展,产生了越来越多较为成熟的SLAM系统,例如基于特征点的ORB-SLAM[2-3]系统,基于直接法的LSD-SLAM[4-5]系统等。

目前,对于全天候视觉SLAM相关的研究非常少。

本文提出了一种基于单目视觉SLAM系统进行红外相机定位的框架和算法,用于实现在雾霾、粉尘、烟尘以及黑暗环境等特殊环境下进行红外视频的标定。

2 本文方法

2. 1 系统整体流程框架

图1 视觉SLAM系统框架

视觉SLAM系统框架主要分为三个部分,分别是追踪部分,局部建图部分和闭环检测部分。对于经过非均匀性校正管理的视频帧序列,追踪部分首先对红外视频中的特征点进行追踪,利用多视图几何的方法初步计算出相机的位姿,以及地图点的深度信息。

初步得到的标定结果存在着较大误差,需要对这个误差进行进一步的优化,。在局部建图部分,对选取的关键帧,挑选其中的地图点,将挑选出的地图点添加到地图中,然后对这些地图点进行非线性优化,最小化这些三维空间点在像素坐标系下的重投影误差,使一个时间段内的误差最小化。

闭环检测部分检测运动轨迹中的回环,对于与关键帧相似度较高的候选帧计算图像的相似度,判断相机是否处于曾经出现过的位置,再把这个约束结果传给后端进行闭环融合,最后进行全局的优化,从而消除视觉SLAM系统长时间累计的误差。

本文在进行红外视频的标定时,主要使用视觉SLAM系统的追踪部分求出红外摄像机的运动轨迹,使用局部建图对这个结果进行优化,得到精确可靠的标定结果。

2. 2 非均匀性校正管理

红外图像的非均匀性噪声是一种固定图像噪声,是由于红外探测器的加工工艺、材料、温度和偏置情况的不均匀所造成的,为了减少这种噪声红外相机会对这些噪声进行非均匀性校正,此时由于相机重新校准会造成约一两秒的延迟,新进数据可能丢失,这在一定程度上会造成追踪丢失。因此首先需要对红外摄像机的非均匀性误差校正过程进行非均匀性校正管理(NUC)。

图2 NUC管理的流程

如图2所示,对于红外视频新进的每一帧,进行四次检查:

(1)如果当前关键帧是新的一帧;

(2)如果上一个新进帧出现了延迟,说明正在进行非均匀性校正;

(3)如果新进帧是经过非均匀性校正之后的第一帧;

(4)如果条件允许新的特征检测。分别检查上述四个条件后,再进行角点的特征追踪,从而保证在非均匀性校正造成延迟时,跟踪尽量不丢失。

2. 3 红外特征的选取

对于红外视频,本文利用基于特征点的视觉SLAM方法对红外视频进行标定,因此匹配良好的特征点算法对于整个系统是至关重要的第一步。

为了能够红外图像中尽可能提取出更多的角点,并对这些角点进行追踪,实验选取了SURF、STAR、FAST、ORB、MSER等不同的角点算法,从相邻两帧红外图像中分别提取角点,并进行如下处理:

(1)选取可重复性来衡量特征点算法在热红外图像中的稳定性,定义重叠误差:

其中SH为第二幅图像通过单应矩阵投影到之前图像的区域面积。

(2)接受匹配要求重叠误差小于0.2的特征点数量为a,总的匹配特征点数量为b,可重复率定义为a/b。

(3)改变灵敏度阈值,增加匹配的特征点的数量,重复上述步骤,得到特征点匹配数量与可重复率之间的关系。

根据实验结果,选取可重复率较高并且效率较高的角点算法作为红外视觉SLAM系统的特征点算法。

2. 4 红外视频的标定

视频标定是指利用视觉传感器得到的视频或序列帧,反求出视觉传感器的运动轨迹和姿态。对于红外视频中的每一个序列帧,先进行非均匀性校正管理,然后从红外图像中提取足够多的特征点,并在相邻两帧之间进行特征点匹配。

由于红外图像存在低纹理等缺点,从红外图像中能够提取的角点数量较少,为了能从红外图像中提取出足够数量的角点,相较于普通可见光图像需要大幅降低灵敏度阈值。这会导致特征点大量的误匹配,因此提出了一种在热红外图像中大幅减少误匹配的方法:

(1)降低角点检测算法的阈值,尽可能多地检测红外图像中的角点;

(2)利用L-K光流法对角点进行追踪;

(3)计算追踪成功角点的二进制特征描述符;

(4)在追踪角点的阈值范围内根据匹配。

经过这样筛选后能够在减少误匹配的同时尽量保留特征点的数量,从而可以增加地图点的数量,使SLAM系统在更容易初始化成功的同时,减小标定误差。

在相邻两幅图片之间匹配好特征点后,利用多视图几何[8]的方法,分别计算本质矩阵和单应矩阵,通过矩阵分解初始化相机的位移t和旋转R,选择其中误差较小的结果作为相机的初步的运动估计。PnP算法[9]是指通过多对3D与2D匹配点,在已知或者未知相机内参的情况下,利用最小化重投影误差来求解相机外参的算法。对于初始化成功的SLAM系统,可以用PnP算法完成后续相机外参的标定。依据得到相机的运动估计,可以通过三角测量算法计算特征点对应的点的三维空间坐标作为地图点,最后依据一定的策略从序列帧中选取出一部分关键帧。

对于初步的标定结果,局部地图构建和闭环检测的两个线程都需要进行束集调整(Bundle Adjustment,BA)优化。BA算法是一种非线性优化算法,具有很高的精度,而且由于视觉SLAM系统中矩阵的稀疏特性,使BA算法能够应用在实时的视觉SLAM系统中。

红外视频的标定可以得到红外相机的外参数(包括位移和旋转),为了更直观验证标定结果的准确性,采用增强现实技术,在采集的真实热红外视频中实时加入计算机生成的虚拟景物,通过保证虚实景物共享一个环境空间,构建动态红外虚实融合环境。如果加入的虚拟物体在场景中保持着稳定性和一致性,说明标定的结果是精确可靠的。

3 实验结果

实验环境采用红外摄像机Phantom 4 IR-PRO 4.35mm,在Ubuntu 16.04 amd64操作系统下,软件环境为使用了 OpenCV 2.4.13,矩阵库 Eigen3、Pangolin,非线性优化库g2o,点云库PCL等。

3. 1 红外摄像机的内参标定

实验使用可以加热的棋盘格标定板,对棋盘格黑色部分采取隔热处理,然后依次从不同角度拍摄20张如图3所示的不同的棋盘格图像。

图3 不同角度拍摄的棋盘格红外图像

使用张正友标定算法[10],得到了实验使用的红外摄像机的内参数矩阵:

3. 2 红外特征提取与匹配

以及畸变系数:

k1=-0.11973069

k2=-0.06653221

p1=-0.00075981

p2=0.0029442

k3=0.23346432

将这个结果用于重投影误差的计算,计算得到棋盘格角点的平均重投影误差为0.154304(单位:像素)。

使用OpenCV分别对热红外图像进行SURF、STAR、FAST、ORB、MSER 特征点的提取和匹配,分别计算在不同特征点数量下的可重复率,如图4所示。

图4 SURF、STAR、FAST、ORB、MSER可重复率比较

根据上述实验可以得知,ORB特征点在稳定性方面与SURF、STAR特征点并无太大差异,但是ORB特征点在具备旋转、尺度不变性的同时,特征检测与匹配速度较快,因此系统采取了ORB特征点作为热红外图像的特征。

对于输入的热红外图像帧,经过滤波操作去除噪声后系统使用OpenCV从图像中提取出角点,然后计算这些像素点的描述子,得到图像中的特征点,用L-K光流法跟踪这些特征点,并在跟踪的区域内进行匹配,得到了匹配良好的ORB特征点。

3. 3 红外视频的标定

为了评估算法的稳定性,分别从重投影误差和虚拟现实演示两个方面进行。对于随机选取的不同的热红外视频的帧序列,得到其重投影误差和视频帧序列的关系,如图5所示。

图5 重投影误差随着红外视频帧数的变化

考虑到从投影到图像中的每个点到像素的平均误差,使用重投影误差为标准来判断系统运行期间的稳定性和性能。经验上来讲,平均重投影低于1.50个像素时,对应着良好的运动估计和场景的结构的可靠的估计;当误差增大到约3.00个像素时,SLAM系统运行的结果不可靠。

将加入虚拟物体前和加入虚拟物体后的场景进行对比,加入虚拟物体前场景如图6所示。

在热红外视频中加入虚拟物体(小汽车)并经过渲染后,如图7所示。

一般来说,虚拟物体在视频中表现地越稳定、越逼真,说明运动估计是准确而可靠的,也就说明标定的结果与预期中一致。

图6 加入虚拟物体前测试的场景

图7 在道路上加入了虚拟汽车的红外视频

4 结语

该系统对于热红外图像的非均匀性校正和噪声经过特殊处理,并且对热红外图像存在的特征点过少的问题做出优化,将ORB特征点和L-K光流法用于处理热红外视频的特征,系统能够在不借助其他传感器的情况下较好地运行。然而,由于热红外图像本身的局限性,相较于普通可见光的SLAM系统,该系统还是容易出现很多失败条件,例如初始化不成功等问题。

由于热红外相机的特性,该系统能够较好地运行在烟雾、夜间等环境,从而实现全天候的视觉SLAM,这对于军事上或者某些场合(例如太空中)有着重大的实用意义。

未来的工作包括在系统中加入基于机器学习的闭环检测模块,增加对热红外图像的适配,加入的闭环检测模块,可以有效减少系统长时间内的累计误差,使整个系统更加鲁棒。

猜你喜欢
角点标定红外
一种改进的自适应FAST 角点检测算法
网红外卖
多支撑区域模式化融合角点检测算法仿真
轻卡前视摄像头的售后标定
一种轻卡前视单目摄像头下线标定方法
基于点云聚类的垛型角点检测方法
闪亮的中国红外『芯』
使用朗仁H6 Pro标定北汽绅宝转向角传感器
角点检测技术综述①
CT系统参数标定及成像—2