留个笔记自用
Single Image Reflection Removal through Cascaded Refinement
做什么
在真实世界的照片中,经常会出现玻璃反射的不良现象。它不仅显著降低了图像质量,而且影响了目标检测和语义分割等下游计算机视觉任务的性能。
简单来说就是照相的时候正前方的镜片会反光,而要做的就是把一张composed图分割成两张,一张reflection,一张transmission
做了什么
这里用到了另外一篇论文的想法
Hidden Community Detection in Social Networks
上图是一个人群社交网络,假设知道其中节点之间的权重边,这样就能找到存在着主要社交网络Team1、Team2、Team3,但其中比如Team1中存在三个人和Team2的三个人还存在着一个隐藏关系Tennis group。
如何找到隐藏社交网络的方法:step1.先用baseline(最近邻之类的)找到所有优势社区(假设有图上3个),削弱它们各自内部的连接权重,这样优势社区内部的连接全部就减弱了,但该社区与外部的连接权重不变。step2.重复使用baseline算法,可能就能发现隐藏社区。
这里假设T图为一个社区,R图为一个社区,从T中分离出两个社区之后,如果两者是有关系并且能分离的,削弱T图内部联系->得到R->削弱R内部联系->得到T->削弱T内部联系->得到R…
怎么做
输入:T(最开始初始化为I)、I、R堆叠成9通道的图
中间部分分为上下两个网络GT、GR这里可以理解为两个生成网络,GT生成一轮迭代后的T图,GR生成一轮迭代后的R图,两者结合生成一轮迭代后的I图,三张图为一轮迭代的输出,将三张图分别替代输入的T、I、R后开始新一轮迭代
论文中由T和R组成I的方式为
I =clip(α · T + R). α ∈ [0.8, 1]
然后是中间的GT和GR,网络结构相同但不共享权重:
前半部分是11个Conv+relu寻找图片特征,中间是一层Convlstm,后半部分是8个Deconv+relu生成图片,稍微特点的地方就是中间的Convlstm部分,可从下面理解,Convlstm沟通的是不同迭代轮次的中间层
接下来是LOSS:
第一个loss就是图片中的重构loss,直接对比新一轮迭代生成的I图和原图的像素差,这就是为了保证生成的合成图要和原来类似,防歪
第二个LOSS是perceptual loss,即为下图的这部分,前面说到右半部分是生成器,从中抽取原图比例大小的层取出来,比如Ground Truth是256×256的,则生成器的右边第三层得到的就是128×128的,这就是网络中间生成的图,将这张图经过VGG得到一个特征M,将256×256的原图进行比例缩小成128×128的,经过VGG也能得到一个特征N,将M、N做LOSS,其他比例比如64×64也同理。这应该是为了使T图的细节特征和全局特征都与Ground truth靠近
第三个LOSS就是计算迭代生成的T图和原图的像素差和迭代生成的R图和I与T直接做差得到的图的像素差
这里的I与T直接做差的意思是
第四个LOSS,简单来说就是构造一个辨别器discriminator,也就是对抗LOSS,尽可能地辨别真实图片和模型生成图片的区别,这里用的是《Single Image Reflection Separation with Perceptual Losses》的想法,这个loss用处就是当reflection层和transmission层分离之后,transmission层图片会变得不真实,所以用这个来进行微调。
组合,这里的λ1=1,λ2=1,λ3=2,λ4=0.01
结论
1.lstm来迭代式分离R图和T图,但其实跟motivation没什么关系。。(感觉可以用图卷积来模拟社交网络)
2.同时得到R图和T图,并且整了一堆loss来评价