Fast Deep Matting for Portrait Animation on Mobile Phone
论文链接:https://arxiv.org/pdf/1707.08289.pdf
出处:2017 ACM
1.内容
本文提出了一种基于分割块和feathering块的移动设备实时自动深度抠图方法。通过利用 densely connected blocks和dilated卷积,设计了一个轻量级的全卷积网络来预测人像图像的粗二进制mask。进一步开发了边缘保持和抠图自适应的feathering block来学习引导滤波器,并将binary mask转换为alpha matte。最后,在移动设备上搭建了基于快速深度抠图的自动人像动画系统,不需要任何交互,可以实现15 fps的实时抠图。
2.网络
输入是彩色图像I,输出是alpha matte α。网络由两个阶段组成。第一阶段是人像分割网络,它以一幅图像为输入,获得一个粗二进制mask。第二阶段是feathering模块,将前景/背景mask细化为最终的alpha matte。第一阶段用轻全卷积网络快速提供粗二进制mask,第二阶段用单个滤波器细化粗二进制mask,大大降低了误差。
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/1c635c6f6e72c29718ae8ae8947b56c0.png#pic_center)
(1)分割模块
为了快速分割前景,文章在分割块中提出了一种light密度网络。下图展示了它的体系结构。
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/50965fbc6d28790ce3732ea3ca372d74.png#pic_center)
网络有6个卷积层和1个max-pooling层。
初始块由3 × 3卷积和max-pooling组成,用于对输入图像进行下采样。
dilated dense block 包含四个不同dilated rates的卷积层(每一层获得不同的field of view)和四个densely连接(以不同的尺寸抓住前景)。
四个卷积层的连接被发送到最终卷积以获得二进制feature maps。
最后,对特征图进行插值,得到与原始图像大小相同的score maps。
(2)Feathering块
文章利用一个Feathering Block来改进分割块产生的粗糙的二进制mask并解决由于卷积运算中的像素级的平滑而引起的梯度漂移的问题。
①结构
feathering block的输入是一幅图像I、对应的粗二值掩码S、图像的平方以及图像与其二值掩码的乘积。
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/a62520017c4c27c63b6ed42ba0fec4f7.png#pic_center)
把输入串接起来,然后把串接后的结果发送到包含两个3 × 3卷积层的卷积网络中,然后就可以获得对应于二值mask的权值和偏置的三个maps。
②feathering
feathering层可以表示为以每个像素为中心的滑动窗口中粗二进制mask的线性变换:
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/86250a5f5a3fa9ff4746ea046808f043.png#pic_center)
其中,α是 feathering层的输出,表示为 alpha matte,S F是来自粗略二进制mask的前景分数,S B是背景分数,i是像素的位置,以及(a k,b k,c k)是假设在第k个滑动窗口ω k中恒定的线性系数。因此,有:
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/0102f52d960bf3fd880c5516e9412090.png#pic_center)
其中q i=α i* I i ,F i=I i*S F i ,B i =I i*S B i,I是输入图像,从而可以得到导数
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/b7301257589044ed466fc2d30d556014.png#pic_center)
该算法保证了羽化块具有边缘保持和自适应的特性。羽块的表现就像集成学习,因为可以把F, B, I作为分类器,参数a, b, c作为分类权值。S F和S B两个score maps都在边缘区域有强烈的反应,因为这些区域存在不确定性。当对参数a, b, c进行了很好的训练后,允许前景和背景的score maps有不准确的响应。在这种情况下,我们希望参数a,b尽可能的小,这意味着不准确的响应被抑制。换句话说,只要在边缘区域内将a, b的绝对值设置为小,而c占主导地位,羽状块就可以保留边缘。
当将线性模型应用于整个图像中的所有滑动窗口时,α的值在不同的窗口中是不同的。文章在对图像中的所有滑动窗口计算(ak,bk,ck)之后,对αi的所有可能值进行平均:
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/6c620d7902a84ebf4e9fbe25c5a3ec66.png#pic_center)
为了确定线性系数,本文设计了一个子网络来求解。网络利用了包括两个部分的损失函数,第一个损失L α(学习参数)测量alpha matte,它是GT alpha值和每个像素的预测alpha值之间的绝对差异。第二个损失是成分损失(尽可能保持输入图像的信息),这是预测的RGB前景的L2范数损失函数。因此,文章最小化以下成本函数:
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/746275c17ed3a63ea63dda02c7e478bd.png#pic_center)
其实feathering块直观上可以解释为一种注意机制,根据因素对各个部位给予不同的注意。特别地,从下图的例子中,我们可以推断出因子a更关注对象的身体部分,因子b更关注背景部分,因子c更关注对象的头部部分。因此,可以推断,因子a和b局部地强调抠图问题,而因子c全局地考虑抠图问题。
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/61d4cc76a722263d28b5e4a45b6511ad.png#pic_center)
(a)输入图像。(b)原始图像的前景,由Eq(1)计算。© Eq(2)和Eq(3)中羽块的权重ak。(d)式(2)和式(3)中羽块的权重bk (e)式(2)、式(3)中羽块的权重ck。
3.结果
量化结果:
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/a3764778d670cbf4c7737927d2028967.png#pic_center)
本文将提出的系统的组成部分与最先进的语义分割网络Deeplab和PSPN进行比较。Light Dense Network(LDN)大大提高了速度,羽化块(FB)减小了梯度误差(Grad)和均方误差(MSE)。此外,羽化块比引导过滤器(GF)有更好的性能。
视觉效果:
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/cbefe90e7f546600accc4ac2b663bca2.png#pic_center)
(a)原始图像。 (b)GT前景。 (c)由二进制mask计算的前景。 (d)由二进制mask计算的前景,带有引导滤波器。 (e)由二元mask与本文的羽化块计算的前景。