• Single Image Reflection Removal through Cascaded Refinement论文阅读笔记


    这篇文章做了啥

    迭代式的单图片反射消除,有一说一,这篇文章让我想起来之前看到的一篇去雨的RESCAN,去雨的一篇文章,也是利用迭代式的思想,不断的去除图像中的雨,使得每一次迭代对于输入进行逐渐优化。RESCAN这篇文章也是利用的卷积LSTM,并且下一次是对上一次的迭代的结果进行优化。代码链接,流程图如下,

    上图的意思是,下一次输入的图片是上一次输出的结果,并且feature的利用也是遵循lstm传递的思想
    具体的forward的代码block如下

        def forward(self, x):
            ori = x
            old_states = [None for _ in range(len(self.rnns))]
            oups = []
    
            for i in range(settings.stage_num):
                states = []
                for rnn, state in zip(self.rnns, old_states):
                    x, st = rnn(x, state)
                    states.append(st)
                x = self.dec(x)
                
                if settings.frame == 'Add' and i > 0:
                    x = x + Variable(oups[-1].data)
    
                oups.append(x)
                old_states = states.copy()
                x = ori - x
    
            return oups
    

    这篇文章的motivation是啥

    作者说,预测透射区域和反射区域应该是相辅相成的,所以有两个branch来进行反光消除,通过预测反光的区域,能够使得图片去除反光区域更加干净。

    这篇文章的网络结构

    对于每一个time step的网络结构如下

    上图中,输入的(hat{T})(hat{R})是网络预测的结果,和原图(I)一起concate成9通道的图片送到两个网络中,一个网络是(G_T),一个网络是(G_R),下标(T)和下标(R)分别表示transmission和reflection,即透射图和反射图。作者在论文中说,这两个网络结构式一样的,但是作用不一样,一个是预测transmission,一个是预测reflection。encoder一共用了11个conv-relu blocks。decoder用了8个conv-relu blocks。作者说这两个backbone都是卷积lstm,结合到有一个iterative的想法(目前为止并没有开源代码),这个应该是和RESCAN的结构是相似的。

    因为是下一个time step是对上一个time step的输出结果的优化,所以,整个训练的pipline如下

    loss函数

    作者一共定义了4个loss。
    第一个loss是重建loss,定义为

    两路branch产生的(hat{T})(hat{R})加在一起,和原图做差,理论上来说应该是和原图一样的。
    同时对于透射图,加了一个perceptual loss函数,定义如下

    同时,作者对于透视图和反光图定义了一个mse loss,这里的反光图作者用的是直接做差得到的residual。以及增加了一个对抗的loss,感觉现在如果GAN不做创新的话,大多数也不会去独特的声称提出了某种GAN,只是作为一种提高精度的trick。对抗loss的权重较低。

    实验

    作者自己拍了一个数据集,并且命名为nature。200张训练,20张测试,感觉还是太少了。如下表格所示

    作者的方法达到了比较好的结果

    可以看一下,去除的也并不是特别干净,尤其是最后一行,感觉需要一个很大的数据集合来做。
    同时作者也做了一些ablation study,比如time step

    在time step为3的时候,结果能够达到最好。

    总结一下

    总的来说,作者用了两个比较重要的思想,第一个是,iterative,第二个是,可以同时预测反光区域和透射区域,二者应该是相辅相成的。记得之前看过南理工一篇讲的是用GAN做shadow remove就有说,阴影区域和其他区域应该是相辅相成的,所以作者同时预测了两个区域来提高阴影去除的精度。
    感觉iterative在一些神经网络的任务上,还是由可以继续做一些任务的空间的。

  • 相关阅读:
    CF1202F You Are Given Some Letters...
    CF1178E Archaeology
    PTA (Advanced Level) 1005 Spell It Right
    PTA (Advanced Level) 1004 Counting Leaves
    Qt5——从零开始的Hello World教程(Qt Creator)
    PTA (Advanced Level) 1003 Emergency
    PTA (Advanced Level) 1002 A+B for Polynomials
    HDU 1272 小希的迷宫
    FZU 2150 Fire Game
    HihoCoder
  • 原文地址:https://www.cnblogs.com/yongjieShi/p/12605201.html
Copyright © 2020-2023  润新知