CVPR 2021 | 港科大:利用闪光图像(flash image)来去除反光

2021-04-19 12:32:28 浏览数 (1)

文章题目:Robust Reflection Removal with Reflection-free Flash-only Cues

本文是港科大陈启峰老师组的一篇文章,不得不说,从learning to see in the dark到现在,陈老师组做的底层视觉的相关工作都对我很有启发。

大家做计算机视觉应该知道,计算机视觉任务大致可以分为高层(检测,分类),中层(语义分割)和底层(超分辨率..)的任务。越偏向高层的任务越需要语义的信息和人的理解,越底层的任务越注重边缘,纹理之类local的细节。其实高层任务也有偏底层的任务,如单目标跟踪(tracking)。底层任务也有需要语义理解的,今天介绍的去反光(reflection removal)就是一个。

我们平时透过玻璃看外面的风景的时候,因为玻璃的反射,所以不可避免的会有反光内容的干扰,这些反光的内容各种各样,有的情况反光强烈的时候连人都无法辨别哪些内容是反光,哪些是真实的物体信息。

因此就需要引入一些外部信息来帮助我们。最常见是采用偏光镜技术,也有一些对应的论文。但是偏光镜技术会造成颜色偏移。去年cvpr,brown组有一篇用dual pixel技术来做的。

至于用闪光图像来辅助做的,去年有一篇文章。

Siamese dense network for reflection removal with flash and no-flash image pairs. IJCV, 2020

这篇文章就是对IJCV这篇文章更进一步的探讨。

一. 理论部分:

图1 用闪光灯拍照的三种情况

我们先分析一下论文中的这张图像吧。先看图(a),蓝色矩形是玻璃后的物体,红色圆形是反射的物体。(a)就是不开闪光的时候,因为有环境光的存在(ambient light),所以相机接收到了蓝色矩形和红色圆形的信息。我们用

代替吧

再来看(c)当有闪光灯和环境光的时候,因为闪光灯是有方向性的(对着蓝色物体射),因此反光灯的光只是照着蓝色物体,这样进入相机的信息就有了三个:环境光对着蓝色矩形,环境光对着红色圆形,反光灯对着蓝色矩形:所以总的光是

然后我们发现了什么?

就是剩下闪光灯对着蓝色物体的光了(图(b))。也就是说,这两个图像一减,红色圆形/反光的物体,就从相机中消失了!是不是很神奇?

可是理论很丰满,现实很骨感。科学家把这个图像拿出来一看,发现偏色的厉害T_T, 看下面那个图的Flash only image,就相当于图1(b),原图则是下图的our transmission。可能的原因是跟闪光灯的曝光和环境光的不同等的有关系。

图2

但是这个flash-only image吧,肯定可以作为一个线索来帮助去反光的。因为他的图都已经没有反光了,只是有一点色偏。

二. 工程部分:

图3

图三就是整个网络的结构,(a)就是我们第一部分说的如何得到

,也就是flash-only image的过程。(b)则是利用flash-only image,用神经网络训练去除反光的过程。

论文里的图有点迷惑,我看的时候有点懵,具体看我标的红线和蓝色线。

提几个要点吧,具体的可以去看论文:

1.(a)中可以看出,我们获得的两张图的相减是在raw域进行的。然后用isp变回rgb域。flash-only image图的白平衡其实是做的不太对的,因为他采用了另外一张图的meta-data。

2. 图(b)说的是,先预测一个反射的反光图

,再预测去反射后的图像

。至于为啥不直接预测图像

。文章中有说明白,这里限于篇幅不阐述。

三. 缺点和优点:

文章中作者自己就说了缺点,

1. 相机假如离拍摄物体比较远,闪光灯的灯到不了拍摄物体,这时候得到的flash-only image可能就是一团黑的。

2. 物体快速移动的时候,两张图像会不一样,这个缺点是所有多帧图像处理都有的缺点吧。

优点:

优点不必多说,有理论创新有工程方法创新。之前说过最佩服的是用硬件和软件结合做底层图像处理的方法。看了一下作者的主页,他们团队在去反光技术上也有很多的积累了,这篇这么solid的文章不得中cvpr啊。

代码语言:javascript复制

0 人点赞