参考代码:HOP-Matting
1. 概述
导读:现有的一些深度学习的matting方法是基于propagation的,这篇文章对此提出了多层次不透明度propagation(hierarchical opacity propagation,HOP)的方法,用于像素之间的不透明度传导。文章的HOP结构具有一个global和多个local的propagationmo模块,从而使得高分辨特征图下的每对像素点可以根据输入图像的外表特征连接起来。此外文章还提出了一种尺度不敏感的编码方式用于解决非固定尺度的图片输入,并且引入随机插值的方式进行数据增广。
这篇文章的核心是提出了一个HOP网络结构,使得需要预测的alpha在不同的特征层级上使用这个结构进行优化。HOP结构在文章中按照感受野的不同可以将其划分为global HOP和local HOP,HOP模块中借用了attention与aggregation机制完成信息的迁移,因而这里处理的是matting目标的外表特征与对应的不透明度。
文章中global HOP与local HOP在网络中扮演着不同的角色,global HOP用于在低分辨率但具有较强语义信息特征下通过上下文信息预测不同明度,之后local HOP去优化网络中细节的模糊部分。另外通过尺度不敏感的编码器与随机插值缩放算法从而适应不同尺寸的图像输入,并且数据数据增广。文章的结果与之前的一些工作进行对比,见下图所示:
2. 方法设计
2.1 网络结构
文章提出的网络结构见下图所示:
在a图中展示的是这篇文章的网络结构,其主要由两个编码器(不透明度信息编码器和图像外观编码器)加一个解码器组成。b图展示的是在文章的不同模块上进行不透明度传递的示意图。
non-local和transformer可以在全局上完成信息的传导,但是文章需要的信息传递与之有些不同:
- 1)non-local首先会消耗较多的内存与计算资源,并且它并不适合在大分辨率的特征图上进行信息传递,但这确是对matting比较重要的;
- 2)non-local是单独作用在输入数据上的,而在matting任务中更为重要的是不透明度信息,而不是像分类/分割/inpainting中,这些任务中更加侧重网络的语义表达,这与matting任务并不相兼容;
2.2 HOP模块
global HOP:
这里定义从不透明度编码器和图像外观编码器输出的特征图是: F O ∈ R H W ∗ C , F A ∈ R H W ∗ C F^O\in R^{HW*C},F^A\in R^{HW*C} FO∈RHW∗C,FA∈RHW∗C,其中特征在每个特征点在位置 ( i , j ) (i,j) (i,j)处其点特征描述为: f ( i , j ) O ∈ R C , f ( i , j ) A ∈ R C f_{(i,j)}^O\in R^C,f_{(i,j)}^A\in R^C f(i,j)O∈RC,f(i,j)A∈RC,因而在global HOP模块中其运算过程描述为:
q ( i , j ) = W Q K f ( i , j ) A q_{(i,j)}=W_{QK}f_{(i,j)}^A q(i,j)=WQKf(i,j)A
k ( x , y