原文连接:Context Encoders: Feature Learning by Inpainting (CVPR 2016). Pathak, D., Krahenbuhl, P., Donahue, J., Darrell, T., & Efros, A. A. [Paper][Code]
本文的创新点:
- 使用通道全连接层(Channel-wise fully-connected layer);
- 损失函数增加了对抗损失。
总体结构
上下文编码器(context encoder)是一种无监督学习方式,整体架构与自编码器相似。
编码器采用AlexNet的结构,使用前五个卷积层和后面的池化层(pool5之前的层),使用随机初始化权值重新训练网络,主要作用就是提取图像特征;
通道全连接层(Channel-wise fully-connected layer):完全独立地连接每个通道,主要目的就是减少网络参数;
解码器采用五个上卷积层,主要作用就是修复图像。
适用于固定大小比例、固定形状的修复(128x128到64x64):
适用于不固定大小,不固定形状的修复(原图大小到原图大小):
损失函数
重构损失(L2):捕获缺失区域的整体结构,使修补后的区域与周围具有结构一致性;它倾向于多种填充方式的平均,所以产生的图像比较模糊。
x表示输入图像,M是二值化的掩码(1表示缺失区域,0表示输入像素),F是上下文编码器,⊙表示逐元素乘积运算。
对于一副图像中的空白区域,可能有多种填充方式符合整体结构以及可以与周围信息很好地接洽,称为不同的模式,而对抗损失就是用来进行模式选择。
整体损失就是重构损失与对抗损失的加权:
实验结果
模型评估使用了两个数据集,即Paris Street View和ImageNet。
总结
优点:
- 相对于patch-based的方法,可以产生新的对象;
- 可以作为预训练,将学习到的特征迁移到其他任务上,如分类、检测、分割等;
- 用通道全连接层代替传统的全连接层,减少的参数量;
- 引入对抗损失,修复的图像更加真实。
存在的问题:
- 由于对抗损失仅应用于图像缺失区域,忽略了图像全局区域,这就会导致修复图像出现边缘模糊或者整体结构不一致。
- 只能修复固定大小的图像。