6ms 的EfficientDeRain:颇具启发的简单高效去雨算法
分享一篇论文AAAI 2021录用论文 EfficientDeRain: Learning Pixel-wise Dilation Filtering for High-Efficiency Single-Image Deraining ,其提出了极其快速高效的图像去雨算法,平均 6ms 即可处理一幅图像,比之前的state-of-the-art方法(RCDNet,CVPR2020)快80倍!目前代码已开源。
论文作者信息:
作者团队来自南洋理工大学、日本九州大学、阿里巴巴、天津大学,通讯作者为九州大学的Lei Ma。
看一下该算法在Rain100H数据集上与其他算法的比较结果(以PSNR和SSIM为评价标准):
可见在去雨效果上非常接近最好的结果,速度却是最快,非常难得!
去雨的视觉效果:
算法原理
该算法的原理非常简单,最重要的思想是把去雨看为图像的逐像素滤波问题。而滤波操作是高度优化的操作,在GPU上的实现必定非常快。
看懂下面这张图,即可完全理解作者的算法思想:
图像经深度卷积网络学习逐像素的卷积核参数,然后与原图做卷积即得最终的去雨后图像,训练的时候需要(有雨、无雨)的图像对。
作者指出,尽管上述思想没有问题,但因为逐像素卷积核大小的问题,如果只学习普通卷积核(即每个像素预测三个通道的3x(3x3)个参数)如上图中的(a)部分,对于雨条较大的图像很难取得满意的效果,因为毕竟卷积的过程是寻找周围非雨条像素赋以高权重的加权,卷积核如果没有覆盖到非雨条像素,肯定效果不好。
为在尺度上应对大雨条,所以作者做了改进,让神经网络预测多尺度的空洞卷积核,如(b)子图中是预测4个尺度的空洞卷积核,空洞卷积后再把结果加权,获得最终的去雨图像。
所以算法的核心思路可总结为:学习多尺度空洞卷积+图像加权融合。
因为上面所有步骤仅涉及现代GPU特别擅长的卷积操作,故速度非常快。
另外,在图像去雨领域,数量大、质量高的成对数据集是非常少的,所以作者发明了RainMix增广算法,简单一句话介绍就是雨条图像各种变换后再加权的数据增广方法。
下图表达了RainMix的核心思路:
实验结果
具体实验配置不再赘述,请看下图去雨的视觉效果:
可见,对比较难的情况,如头发、面部、含细丝的图像,该文算法取得了较好的视觉效果。
下表展示了在Raindrop数据集上的数值比较结果:
虽然 EfficientDeRain 数值上略逊于最好的方法,但已经很棒了,毕竟这可是快了80倍的算法!
下图是作者评估的算法各个部分对结果影响的比较:
可见空洞卷积、SSIM损失函数和RainMix都使去雨数值效果更好,但真正带来大幅效果提升的是数据增广方法RainMix。表中亦列出了计算时间,测试机器GPU为NVIDIA Quadro P6000。
这篇AAAI 2021 论文的核心思想并不难,可以说在速度上做到了去雨算法的极致,CV君以为其特别具有启发的一点是把去雨看为卷积问题,直接预测卷积核,对于其他图像恢复问题,亦可尝试。
作者已经开源了代码、数据和预训练模型,欢迎试用比较!
论文:https://arxiv.org/pdf/2009.09238.pdf
代码:https://github.com/tsingqguo/efficientderain
感谢作者开源~