论文阅读:《Deep Automatic Portrait Matting》 ECCV 2016

概述

论文使用传统的matting方法,构造了一个portrait image数据库,并在此基础上,提出了一种基于CNN的matting方法。CNN已经在很多计算机视觉任务上有good performance。high-level的有检测、分类、识别、分割,但是他们都无法处理matting的细节问题;low-level的有超分辨、去噪、复原、增强,但是没有分割信息。

论文提出两种函数,第一种是利用CNN将像素分为三类,前景、背景和不确定标签;第二种是一个新的matting layer,通过前向后向传播得到抠图信息。

Motivation

传统方法主要分为两类,一类是color sampling的方法,以Bayesian matting为代表,通过对前景和背景的颜色采样构建高斯混合模型,但是这种方法需要高质量的trimap,不易获取;另一类是Propagation的方法,根据像素亲和度将用户绘制的信息传播到不确定像素,以Poisson Matting和KNN matting为代表,但是也不是自动抠图。

因此,作者希望通过CNN实现人像自动抠图,其困难点主要有三个:

  1. 丰富的抠图细节,例如头发等细节信息
  2. 模糊的语义预测
  3. 不均匀的抠图值,真正不确定的像素只占整张图的5%左右

网络结构

这里写图片描述
网络框架包括trimap labeling 和 image matting,整个过程可以实现整体的前向传导和后向传播。

Trimap Labeling

输入是原图,输出是每个像素分别是前景F,背景B和不确定区域U的概率,还有一个shape mask,一共四个通道。Shape mask实际上是通过线性变换将原图和一般的人像结构进行对齐(align),个人理解为是向其中加入人像的结构化信息。

Image Matting Layer

根据trimap labeling的输出,可以使用softmax公式得到前景F和背景B的概率图。
这里写图片描述
之后使用以下公式得到alpha matte,其中A是alpha matte向量,1是全1向量,B和F分别是前景和背景概率图的对角矩阵。L是输入图像对应的抠图拉普拉斯矩阵,λ是平衡参数。
这里写图片描述
关于整个pipeline传播的证明和推导奇怪参考原论文。

Loss function

论文没有采用一般的L1,L2范式作为loss function,因为label大多数是0和1,这两个范式不利于学习,考虑对每一个alpha值进行加权得到最终的loss函数。
这里写图片描述
这里写图片描述

Data set and training

数据集的制作是获取Flickr上的图片,根据图片质量进行筛选,裁剪到图片中心基本都是人像。利用之前的closed-form matting和KNN matting方法对图像进行标注,同时也是用Photoshop进行细节修复。训练使用数据增强(旋转,缩放,灰度变换),caffe实现,SGD优化,使用FCN-8s模型作为初始化权重。

结果

比主流的分割算法的准确率要高,特备强调shape mask的优化作用。
这里写图片描述

猜你喜欢

转载自blog.csdn.net/qq_36165459/article/details/78550208