《GCAMatting:Natural Image Matting via Guided Contextual Attention》

参考代码:GCA-Matting

1. 概述

导读:现有基于深度学习的Matting方法已经取得了较为不错的成果,但是这些方法在半透明区域取得的结果却是结构和纹理上模糊的,并没有很好区分出前景区域。这篇文章使用所在已知区域周围信息去预测所在位置的不透明度,既是基于affinity-based方法和inpainting任务重上下文注意力机制(contextual attention)提出了一种end-to-end带GCA(guided contextual attention)模块的Matting方法。GCA模块从学习到的低层次特征上进行affinity,并以此外观为依据传递高层次的不透明度信息。文章的方法可以减少原affinity-based方法中的信息流,并有效使用网络生成的丰富特征,这篇文章的结果在Composition-1k和alphamatting.com上均均取得了较为不错的成绩。

在matting任务重将图像划分为3个组成分量:前景图像 F F F,背景图像 B B B和不透明度 α ∈ [ 0 , 1 ] \alpha\in[0,1] α[0,1],数学表示为:
I i = α i F i + ( 1 − α i ) B i , α i ∈ [ 0 , 1 ] I_i=\alpha_iF_i+(1-\alpha_i)B_i,\alpha_i\in[0,1] Ii=αiFi+(1αi)Bi,αi[0,1]
现有基于affinity和sampling的matting方法它们所采取的策略是具有相似性的:借鉴具有相似外观的图像区域。下面是这两种策略它们的区别:

  • 1)affinity-based:将具有相似外观的已知区域的不透明度迁移到未知区域;
  • 2)sampling-based:在基于某种假设的情况下将前景与背景成对采样去预估未知区域每个像素的 α \alpha α值;

这两类方法也取得了一些效果,但是却不能处理三色图中只存在背景和未知区域的情况(已知区域较少),因为这些方法是有这样的必须要满足对应的假设条件的(同时使用前景和背景信息)。

在这篇文章中提出了一种基于不透明度在网络中传递(依据外观相似性准则)的matting方法。文章的方法引导网络信息流从图像的上下文直接到未知的像素区域,提出GCA模块用于优化基于affinity在网络中的传播,在GCA模块中低层次的特征被用于alpha特征传到的指引,并将具有相似外观的已知区域特征传导到未知区域上。
在这里插入图片描述
上图中右下两幅图就是文章编解码模块中两个GCA块儿输出的attention图,用于引导不透明度的迁移。

2. 方法设计

2.1 网络结构

文章的网络结构大致上是一个U型的网络结构,U型网络结构中通过5次shortcut实现encoder特征抽取,输入包含原始图和三色图组成的6通道图像,以及中间通过GCA引入低层次细节特征,结构见下图:
在这里插入图片描述
损失函数:
文章网络的损失函数只包含alpha预测的损失,而且使用的是未知区域的L1损失函数,定义为:
L = 1 ∣ μ ∣ ∑ i ∈ μ ∣ α i ^ − α i ∣ L=\frac{1}{|\mu|}\sum_{i\in \mu}|\hat{\alpha_i}-\alpha_i| L=μ1iμαi^αi
此外,文章也实验了诸如:compositional loss/gradient loss/Gabor loss等损失函数,具体结果见后面表1所示。

数据增广:
文章里面对于数据增广采用的策略有:

  • 1)以概率0.5随机选择2个前景区域目标从而获取一个新的前景目标和alpha图,并以0.25的概率将图像resize到 640 ∗ 640 640*640 640640分辨率,从而使得具有比crop更大的感受范围;
  • 2)使用随机旋转/缩放/水平和垂直翻转等仿射变换。对于三色图使用腐蚀和膨胀形态学操作得到alpha图;
  • 3)随机从前景图像中剪裁出 512 ∗ 512 512*512 512512的子图像,并使用HSV颜色空间变换;

文章中将不同的loss和数据增广对整体性的影响比较得出下表:
在这里插入图片描述

2.2 GCA模块

文章的GCA模块其实是由两部分组成的:图像低层次特征抽取与信息传递的GCA块。网络结构中有2处使用了GCA模块目的就是为了充分利用alpha中的信息。

低层次的图像特征:
大多数的affinity-based方法都是建立在具有相同外表的区域具有相同不透明度的设定上的,这样就可以使得已知区域可以通过affinity graph实现具有相似外表的未知区域不透明度预测。

文章的方法正是基于这样的思路对应拥有两条信息流:

  • 1)alpha特征流:这部分是网络整体结构中的蓝色箭头的特征信息流向,代表的是高层次的不透明度信息;
  • 2)低层次外表特征流:这部分是在原始图的基础上使用3个stride=2的卷积进行提取得到的,具有丰富的低层次外表特征,对应的是网络结构图中的黄色箭头;

在上面的两种信息流中就完全获取了低层次的外表信息和高层次的不透明度信息,为基于affinity的不透明度预测提供了基础和指引。

GCA网络块:
文章提出的GCA块见下图3所示:
在这里插入图片描述
在图3中将低层次的图像细节特征划分为两个部分:已知和未知部分。之后在整个图像特征上使用 3 ∗ 3 3*3 33的窗口大小进行切块,之后将其reshape当作卷积核与未知区域进行相似度计算:
在这里插入图片描述
通过上述的公式得到相关性度量矩阵之后接下来就使用softmax得到对应的attention score。但是直接这样并不稳定,特别是当确定区域较多和较少的时候,为此文章提出了根据已知区域多少进行加权的思路(已知区域越多对应的权值系数也就越大):
在这里插入图片描述

3. 实验结果

Composition-1k:
在这里插入图片描述
alpha matting benchmark:
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/m_buddy/article/details/108741151