用于SLAM的图像增强算法

Introduction

在使用Semi-direct Method[1]跑Euroc Dataset的v103数据时,发现效果很不好。导致错误的主要的原因有:图片太暗,对比度太低;图片亮度变化很大(不限于帧间,左右目有时候也会出现亮度不一致的情况)。于是,需要对输入图像进行预处理,提高图片的对比度,并且使得进行跟踪的两张图片亮度一致。

对于提高图片的对比度,最简单的方法是使用直方图均衡化。不过直方图均衡化有一些很明显的缺点,如变换后细节消失;不自然的过分增强。对于SLAM系统,往往会在过份增强的纹理上提取出一些关键点,而这些关键点我们认为是不稳定的(如下图的窗帘)。

所以,我们需要一种更加先进的图像增强算法用于SLAM的图像预处理。

image_enhancement1

Related Work

根据BIMEF[2]算法提供的对比程序,我们测试了几个图像增强算法的结果。根据对比,我们认为LIME[3]算法无论在增强效果还有速度上都有较好的表现。

image_enhancement2

image_enhancement3

Image Enhancement

为了进一步提高算法性能,我们集合了LIME[3]和FGS[4]滤波算法,提出了一种新的图像增强算法。下图展现了增强算法的增强结果: image_enhancement4

为了满足SLAM系统的需求,我们对于增强图再进行了一次去噪还有对比度增强处理:

image_enhancement5 image_enhancement6

我们对参考帧和当前帧图像进行图像增强处理。经过处理后,两者的亮度差异已经变很小了。然后,我们再对当前帧进行线性变换,使得当前帧的平均灰度值和均方差与参考帧一致,从而达到亮度一致的目的。

Experiment

根据下图可以看出,我们的算法能够很好地恢复出图像暗处的纹理,并且对于噪音有比较好的抑止。

enhancement7

为验证图像增强算法对于Semi-direct Method的影响,我们设计了一个对比实验,分别对数据图片进行图像增强和直方图均衡化操作,并且输入到Semi-direct Method,观察输出的pose与ground truth pose的差异。

实验视频右下角结果窗口中,蓝点为根据Semi-direct Method结果进行的关键点重投影,而绿点是根据ground truth pose进行的重投影,当蓝点变红时,表示此时Semi-direct Method无解或者residual过大。

enhancement8

实验结果表明,我们的图像增强算法能够使得Semi-direct Method在Euroc v103 dataset中正常运行。并且相对于直方图均衡化,我们的图像增强法能够使得Semi-direct Method的结果精度有所提升。


  1. Forster, Christian, et al. "Svo: Semidirect visual odometry for monocular and multicamera systems." IEEE Transactions on Robotics 33.2 (2017): 249-265.

  2. https://github.com/baidut/BIMEF

  3. Guo, Xiaojie, Yu Li, and Haibin Ling. "LIME: Low-light image enhancement via illumination map estimation." IEEE Transactions on Image Processing 26.2 (2017): 982-993.

  4. Min, Dongbo, et al. "Fast global image smoothing based on weighted least squares." IEEE Transactions on Image Processing 23.12 (2014): 5638-5653.