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,大大降低了误差。

(1)分割模块
为了快速分割前景,文章在分割块中提出了一种light密度网络。下图展示了它的体系结构。

网络有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、图像的平方以及图像与其二值掩码的乘积。

把输入串接起来,然后把串接后的结果发送到包含两个3 × 3卷积层的卷积网络中,然后就可以获得对应于二值mask的权值和偏置的三个maps。
②feathering
feathering层可以表示为以每个像素为中心的滑动窗口中粗二进制mask的线性变换:

其中,α是 feathering层的输出,表示为 alpha matte,SF是来自粗略二进制mask的前景分数,SB是背景分数,i是像素的位置,以及(ak,bk,ck)是假设在第k个滑动窗口ωk中恒定的线性系数。因此,有:

其中qii* Ii ,Fi=Ii*SFi ,Bi =Ii*SBi,I是输入图像,从而可以得到导数

该算法保证了羽化块具有边缘保持和自适应的特性。羽块的表现就像集成学习,因为可以把F, B, I作为分类器,参数a, b, c作为分类权值。SF和SB两个score maps都在边缘区域有强烈的反应,因为这些区域存在不确定性。当对参数a, b, c进行了很好的训练后,允许前景和背景的score maps有不准确的响应。在这种情况下,我们希望参数a,b尽可能的小,这意味着不准确的响应被抑制。换句话说,只要在边缘区域内将a, b的绝对值设置为小,而c占主导地位,羽状块就可以保留边缘。
当将线性模型应用于整个图像中的所有滑动窗口时,α的值在不同的窗口中是不同的。文章在对图像中的所有滑动窗口计算(ak,bk,ck)之后,对αi的所有可能值进行平均:

为了确定线性系数,本文设计了一个子网络来求解。网络利用了包括两个部分的损失函数,第一个损失Lα(学习参数)测量alpha matte,它是GT alpha值和每个像素的预测alpha值之间的绝对差异。第二个损失是成分损失(尽可能保持输入图像的信息),这是预测的RGB前景的L2范数损失函数。因此,文章最小化以下成本函数:

其实feathering块直观上可以解释为一种注意机制,根据因素对各个部位给予不同的注意。特别地,从下图的例子中,我们可以推断出因子a更关注对象的身体部分,因子b更关注背景部分,因子c更关注对象的头部部分。因此,可以推断,因子a和b局部地强调抠图问题,而因子c全局地考虑抠图问题。

(a)输入图像。(b)原始图像的前景,由Eq(1)计算。© Eq(2)和Eq(3)中羽块的权重ak。(d)式(2)和式(3)中羽块的权重bk (e)式(2)、式(3)中羽块的权重ck。
3.结果
量化结果:

本文将提出的系统的组成部分与最先进的语义分割网络Deeplab和PSPN进行比较。Light Dense Network(LDN)大大提高了速度,羽化块(FB)减小了梯度误差(Grad)和均方误差(MSE)。此外,羽化块比引导过滤器(GF)有更好的性能。
视觉效果:

(a)原始图像。 (b)GT前景。 (c)由二进制mask计算的前景。 (d)由二进制mask计算的前景,带有引导滤波器。 (e)由二元mask与本文的羽化块计算的前景。

Fast Deep Matting for Portrait Animation on Mobile Phone相关推荐

  1. TGRS2020/云检测:Deep Matting for Cloud Detection in Remote Sensing Images深度抠图在遥感图像云检测中的应用

    TGRS2020/云检测:Deep Matting for Cloud Detection in Remote Sensing Images深度抠图在遥感图像云检测中的应用 0.摘要 1.概述 2.云 ...

  2. 论文阅读笔记: (2022 TPAMI) Ultra Fast Deep Lane Detection with Hybrid Anchor Driven Ordinal Classification

    车道线检测是自动驾驶中的基础任务之一,我们今天来看一篇来自浙大的TPAMI 2022的文章! 文章看下来,可以理解为是专门为车道线任务设计的语义分割网络 文章地址: https://arxiv.org ...

  3. 图像抠图Image Matting算法调研

    目录 1.Trimap和Strokes 2. 相关数据集 3.论文算法调研 3.1 Deep Image Matting 3.2 Semantic Image Matting 3.3 Backgrou ...

  4. 【翻译】Robust High-Resolution Video Matting with Temporal Guidance

    Robust High-Resolution Video Matting with Temporal Guidance 论文地址 RobustVideoMatting 代码地址 论文阅读笔记 版权声明 ...

  5. 【技术综述】闲聊图像分割这件事儿

    文章首发于微信公众号<与有三学AI> [技术综述]闲聊图像分割这件事儿 最近遇到很多人问我图像分割技术发展怎么样了,落地了吗?有三只想说,岂止落地了,都贴在地上摩擦了.老规矩,分几块说起. ...

  6. 腾讯大佬和你闲聊图像分割这件事儿

    言有三 毕业于中国科学院,计算机视觉方向从业者,有三工作室等创始人 作者 | 言有三(微信号:Longlongtogo) 编辑 | 言有三 最近遇到很多人问我图像分割技术发展怎么样了,落地了吗?有三只 ...

  7. 视频人像抠图论文阅读

    视频人像抠图论文阅读 1.Prime Sample Attention in Object Detection 2.Mask RCNN 3.Background Matting: The World ...

  8. 一键抠图Portrait Matting人像抠图 (C++和Android源码)

    一键抠图Portrait Matting人像抠图 (C++和Android源码) 目录 一键抠图Portrait Matting人像抠图 (C++和Android源码) 1. 项目介绍: 2. MOD ...

  9. 《Deep Image Matting》论文笔记

    参考代码:Deep Matting 1. 概述 导读:这篇文章是在深度学习基础上进行抠图,之前也有基于此的工作,但是那些方法存在前景背景区域颜色接近或是有复杂纹理的时候表现欠佳.文章对于这些方法效果差 ...

  10. Portrait Matting

      文章作者为 Google Research 的软件工程师 Sergio Orts Escolano 和 Jana Ehman,文章发表于 2022 年 1 月 24 日. Portrait Mat ...

最新文章

  1. HDU 5119 Happy Matt Friends(递推)
  2. 网络营销外包专员浅析尽管快照不见了网络营销外包仍在继续
  3. iOS APP日志写入文件(日志收集)
  4. 神经网络与机器学习 笔记—Rosenblatt感知器收敛算法C++实现
  5. hdu1287 破译密码
  6. 11 张流程图帮你搞定 Spring Bean 生命周期 (核心)
  7. python向量机使用方法_Python中支持向量机SVM的使用方法详解
  8. centos6.5 Building the main Guest Additions module
  9. flink的savepoint实验-scala
  10. php-redis扩展模块安装记录
  11. 厉害了!谷歌新发布的半监督学习算法降低4倍错误率
  12. 如何用科研经费报销会务、餐饮、住宿费
  13. 微信公众号授权H5页面
  14. plc的指令语句表是什么?
  15. 如何利用Python在网上接单,兼职也能月薪过万
  16. VisionPro 工具
  17. eNSP基础命令_01
  18. 特斯拉使用顶级编程语言创建自动驾驶汽车
  19. switch开关C语言,C语言开关语句:switch
  20. 使用teensy 2.0++ 开发板模拟U盘

热门文章

  1. Google at KDD 2020,提出MoSE框架显式建模用户行为序列提升多任务学习效果
  2. 我的Windows实用软件清单
  3. 网络编程三剑客之sed
  4. oracle按序号排序,Oracle排序以及序号的输出
  5. 【VOLTE】SRVCC的演进
  6. 各种主流浏览器的调试
  7. 微服务不是架构演变的终点!
  8. ajax发送put请求参数,请求参数和PUT方法(Request params and PUT method)
  9. 19.IIC通信:PCF8591:数模/模数转换芯片
  10. 怎样准备全国大学生数模竞赛大学生篇非常全