公众号/将门创投
From:arxiv 编译:T.R
图像修复技术对于众多修图软件来说十分重要,在深度学习的帮助下图像修复算法的功能越来越强大,甚至对于大幅度污损的照片也能轻松修复。但目前的很多算法在进行图像修复时却面临着结构重建问题或细节问题修复问题的困难,修复结果不尽如人意。
为了解决这一问题,来自北大、鹏城实验室和腾讯的研究人员提出了一种新的算法StructureFlow,将图像修复的过程分为边缘保持的低频结构重建和基于结构的高分辨率纹理重建,并利用流的方法充分利用未受损像素的信息实现有效的纹理补全和图像修复。
图像修复的主要目的在于为图像中的有效区域和污损区域生成出视觉效果完整的结构和细节,用户不仅可以利用这一技术修复图像的缺失,还可以将它用于图像编辑和物体去除等任务。图像修复最大的难点在于生成正确完整的结构和视觉效果较为真实的细节纹理。
现存的方法主要可以分为两大类——基于扩散的方法和基于图像片的方法。
基于扩散的方法主要通过将领域的信息传播到缺失的位置来实现纹理合成,然而这种方法只能处理一些较小的孔洞,对于较大范围的结构缺失则无法有效处理。
而基于图像片的方法则不仅仅只利用缺失位置附近的像素点,这种方法可以有效利用更远位置的信息来恢复缺失区域。基于图像片的方法通过搜索与污损区域结构相似的目标区域,并复制图像片来重建缺失区域,这种方法可以为较大的缺失区域生成视觉效果真实纹理。这种方法一般基于双线性相似性的方法来搜索合适的图像片。
但基于片元的方法主要假设非污损区域包含了与污损区域语义相似的内容,但如人脸检测等任务中这种假设并不成立。这种方法在某些有重复性结构的图像中表现良好,但对于具有特殊结构的图像则无法有效处理。
近年来随着深度学习的发展,很多方法将图像修复问题视为一个条件生成问题,将污损图像作为网络输入得到修复后的图像。基于深度学习方法的优势在于可以将图像中的有效语义信息进行抽取,并生成新的图像。
人们提出了包括基于自编码器架构、处理全局和局部内容的判别器、构建长程相关性、选择性利用有效像素以及边缘修复等方法来进行图像修复但都存在着诸如长程相关性无法有效表示、边缘信息无法有效携带纹理等问题,使得这些方法得到的结果都有这样或那样的不足。
为了解决先前模型存在的问题,研究人员们提出了一种新颖的两阶段网络模型俩实现高质量的图像修复。这一模型包含了两个部分,分别是结构生成器和纹理细节生成器。
在重建出缺失细节后,纹理生成器就可以基于重建出的结构图来合成高频的细节了。由于图像领域的相似结构具有很强的相关性,所有未被污损的区域可以用于修复缺失区域的纹理。
虽然卷积网络对于长程相关性建模比较困难,但研究人员提出了基于图像外观流(appearance flow,AF)的方法来从相似结构区域采样,为不同区域构建清晰关系。此外研究人员还利用了高斯采样代替了双线性采样来拓展了采样操作的感受野,并引入了新的采样正确性损失函数来训练采样过程,以此得到了性能较高的图像修复模型。
在结构重建器中,研究人员将最小化生成的低频结构图像与平滑后原图间的误差。第一阶段的监督信号主要来自于GT图的平滑结果,使用了保边平滑算法RTV来得到保持图像主要结构的图片作为标签。模型的主要结构基于自编码器架构得到,添加了一系列残差块用于特征的优化提取。Gs和Gt分别代表了第一阶段的结构生成器和第二阶段的纹理生成器,而判别器则使用了类似于BicycleGAN的架构,利用了两个不同尺度的PatchGAN来预测不同尺度生成图像的真伪。
值得一提的是,这一模型中使用了流的概念来将未受损区域的纹理信息赋予需要修复区域。但原始的AF方法是以一种非监督的方法,网络无法处理较大的运动和较差的局域最小值。
为了解决这一问题,研究人员提出了利用高斯采样的方法来代替原先的双线性采样方法以扩展感受野,并提出了采样正确性损失来约束可能的收敛结果。采样过程通过输入像素(特征)来计算梯度,如果感受野受限只能有少量像素参与计算。由于相邻像素具有较强的相关性,所以较大的感受野有助于获得较为正确和稳定的梯度。双线性采样的感受野较小,不适合于长程相关性的采样建模。而高斯相关性则可以在较大的感受野中进行采样。下式中的权重aij便是可调整方差的高斯核。
研究人员分别在Place2,Celeba和Paris StreetView数据集上进行了实验,并利用Irregular Masks数据集生成缺失污损的图像。
利用客观的SSIM,PSNR和FID进行客观测评,同时也利用MTurk平台进行了主观质量测试。下图显示了研究人员提出的方法与Contextual Attention(CA),Partial Convolution(PConv)和EdgeConnect等方法的比较。
研究人员还将这一算法用于图像编辑任务中去,将图中不希望出现的物体涂上掩膜,就可以修复出完整高质量的清晰图像。同时也可以在结构图上进行编辑为生成的图像增加新的物体或内容。
如果想了解更多细节,请参看论文:
https://arxiv.org/pdf/1908.03852v1.pdf
作者也开源了本文章的实验代码,小伙伴们可以用它DIY自己的图像修复编辑app了:
https://github.com/RenYurui/StructureFlow