点击上方“CVer”,选择加"星标"置顶
重磅干货,第一时间送达
论文已上传,文末附下载方式
本文作者:Kuma
https://zhuanlan.zhihu.com/p/156893265
本文已由原作者授权,不得擅自二次转载
https://arxiv.org/abs/2007.06929
https://github.com/KumapowerLIU/Rethinking-Inpainting-MEDFE
Image inpainting 一直是一个重要的课题,最近基于attention以及双阶段的模型非常流行,像gated conv/coherent semantic attention/edge connect/structure flow等等。图像修复的目标是重建合理的整体结构以及真实的细节(纹理),双阶段的模型往往在第一阶段得到一个coarse的图像,这个图像上的结构已经修复的不错,再在第二个阶段进行细节的修复。但是这些都是基于image level上,我们的工作想把纹理和结构的修复放在feature上,从而达到更好的效果并且在单阶段网络中实现,因为图像本就是纹理和结构组成,两者紧密相连互相影响。
所以我们的出发点就是在单阶段网络中并且在feature层级上修复图像的纹理和结构,并且将修复好的纹理和结构组成一张完整的特征图从而达到修复的效果。
上图是我们的模型架构图,在CNN中,越深的卷积层代表着结构信息(高级语义信息),越浅的卷积层代表纹理以及细节信息(低层级信息)。我们利用这种概念,将编码器的特征分成两个部分(流),前3层代表纹理信息,后3层代表结构信息,前三层和后三层分别integrate起来变成32×32×256大小的卷积,其中Fte代表前三层的integrated features也就是充满纹理的feature, Fst代表后三层的integrated features也就是充满结构信息的feature.
那么如何去修复这些feature的孔洞区域?我们将Fst和Fte分别通过多尺度修复模块来修复孔洞区域,具体来说多尺度修复由三个不同卷积大小的partial conv[1]流组成,他们的kernel size分别是3,5,7, Fte和Fst经过多尺度修复模块后就是图中的Ffst以及Ffte.
那么如何能够保证这些feature能够真正关注纹理或者结构呢?我们用了最简单的constrain,我们将Ffst以及Ffte用1×1的卷积映射到RGB层(Ffst映射后的图为Iost,Ffte映射后的图为Iote)并于ground truth计算L1 loss,其中Iost的ground truth是结构图(Ist),这张结构图是将原图通过RTV[2]后抹去纹理生成的,而Iost的ground truth就是原图(Igt, 有纹理和细节的图)。这种constrain如下图所示:
那么通过这种设计,我们的解码器就分出两个流,一个是结构流一个是纹理流,这两个流分别通过多尺度修复模块进行孔洞填充,并且分别有自己的constrain保证孔洞填充效果并且促使每个流关注纹理或者结构。
结构和纹理的feature到此时一直是分开的并且都被填充完了,但是一张图是由结构和纹理一起构成,如何将其融合呢并且形成一张完整的特征图呢?我们提出了特征均衡化来解决这个问题(Feature Equalizations).如Fig.1所示,我们将Ffst以及Ffte拼接并且通过1×1的conv后得到了一个简单融合Fsf, 接着Fsf通过我们的特征均衡化来进行更好的融合,特称均衡化包括两个维度的均衡,一个是channel上的一个是spatial上的,其中channel上的均衡我们通过SE-block实现,因为其中的attention值是由Fsf得到,而Fsf已经包含了结构和纹理的特征信息,所以这些attention是由结构和纹理信息一起得来从而保证了均衡化。在spatial上,我们提出了双边激活函数 bilateral propagation activation function (BPA). 我们从双边激活函数得到启发,对于每个特征点,我们利用周围的特征点(3×3)以及全局的特征点(32×32)来融合成新的特征点. 具体来说:
其中 就是在spatial上融合得到特征点而 就是在range上融合得到的特征点,这里的spatial和range的概念与双边滤波中的一样。其中我们定义spatial的范围为全图,也就是当前特征点是通过全图所有特征点融合生成,每个特征点的weight是通过距离来计算,近大远小(这里我们用高斯分步来计算)。在range上我们定义范围为3×3,当前特征点(中心点)由周围9个特征点(包括当前特征点本身)融合得到,这些特征点的weight通过与中心点做点极得到。得到 和之后,我们利用1×1的卷积对这两个特征点进行融合。通过这种方式,当前特征点可以由周围的以及全局的特征点构成,保证了局部以及全局的特征一致性。从而可以保证孔洞里面的内容连贯,并且保证孔洞周围与background的一致性。
真实数据上的结果展示:
下载
在CVer公众号后台回复:CVPR2020,即可下载CVPR2020 2020代码开源的论文合集
在CVer公众号后台回复:ECCV2020,即可下载ECCV 2020代码开源的论文合集
重磅!CVer-low-level视觉交流群成立
扫码添加CVer助手,可申请加入CVer-low-level视觉 微信交流群,旨在交流图像修复、图像超分辨率、图像去噪、去雾、去雨、去摩尔纹等方向。
同时也可申请加入CVer大群和细分方向技术群,细分方向已涵盖:目标检测、图像分割、目标跟踪、人脸检测&识别、OCR、姿态估计、超分辨率、SLAM、医疗影像、Re-ID、GAN、NAS、深度估计、自动驾驶、强化学习、车道线检测、模型剪枝&压缩、去噪、去雾、去雨、风格迁移、遥感图像、行为识别、视频理解、图像融合、图像检索、论文投稿&交流、PyTorch和TensorFlow等群。
一定要备注:研究方向+地点+学校/公司+昵称(如low-level+上海+上交+卡卡),根据格式备注,可更快被通过且邀请进群
▲长按加微信群
▲长按关注CVer公众号
整理不易,请给CVer点赞和在看!