用于SLAM的图像增强算法

罗汉杰. 图像增强方法、装置、计算机设备和存储介质 [P]. 中国专利: CN109801244A,2019-05-24.
Github: https://github.com/HanjieLuo/Image-Enhancement-for-SLAM

Introduction

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

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

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

image_enhancement1

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

image_enhancement2
image_enhancement3

Image Enhancement

为了进一步提高算法性能,我们集合了LIME4和FGS5滤波算法,提出了一种新的图像增强算法。下图展现了增强算法的增强结果: 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的结果精度有所提升。

相关博客:用于SLAM的图像增强算法(算法原理)

Github: https://github.com/HanjieLuo/Image-Enhancement-for-SLAM