论文地址:https://arxiv.org/abs/1703.03872 
TF复现地址:https://github.com/Joker316701882/Deep-Image-Matting

领域

主题

主要思想

实践

数据集

49300张训练图像和1000张测试图像

当前基于抠图的数据集太小,alphamatting.com数据集只有27张训练图片和8张测试图片,训练出来的模型泛化能力较差。

针对该问题,作者将前景抠出来,并放入到不同的背景下,从而构建一个大规模抠图数据集。

模型

深度模型分为两个阶段。

Matting encoder-decoder stage

该神经网络将原图和对应的trimap作为输入,并预测图像的alpha matte。

网络:输入图像块和对应的trimap,输出是alpha预测。编码阶段是14个卷积层和5个池化层,得到低分辨率的特征图,解码阶段是6个卷积层的小网络,5次unpooling得到原图大小的alpha prediction.
Loss: 使用了两个loss,第一个是alpha-prediction loss,是预测的alpha values 和ground truth的alpha values的绝对差。第二个loss是compositional loss,预测的RGB颜色值和对应的ground truth绝对差。两个loss以0.5加权得到最终的loss。
实现:数据处理技巧有随机裁剪(320*320),不同尺度输入(resize到320*320),图片翻转等;编码加载VGG16模型的前面,译码阶段使用Xavier随机初始化。

Matting refinement stage

该网络对第一个网络预测的alpha matte进行精炼,从而拥有更准确的α值和锐化边缘。

网络:4个卷积层,输入是图像块和预测的alpha prediction。 
实现:先训练编解码网络,待其收敛后用于更新refine网络,第二个网络只使用alpha-prediction loss。

理论

主要解决传统方法中只有low-level features和缺乏high-level context的问题。

一是当前方法将抠图方程设计为两个颜色的线性组合,即将抠图看做一个染色问题,这种方法将颜色看做是一个可区分的特征。但是当前景和背景的颜色空间分布重叠时,这种方法的效果就不是很好了。使用深度学习不首要依赖色彩信息,它会学习图像的自然结构,并将其反映到alpha matte。

二是

Deep Image Matting的更多相关文章

  1. Matting任务里的Gradient与Connectivity指标

    Matting任务里的Gradient与Connectivity指标 主要背景 Matting任务就是把α(不透明度, 也就是像素属于前景的概率).F(前景色)和B(背景色)三个变量给解出来. C为图 ...

  2. Alpha matting算法发展

    一.抠图算法简介 Alpha matting算法研究的是如何将一幅图像中的前景信息和背景信息分离的问题,即抠图.这类问题是数字图像处理与数字图像编辑领域中的一类经典问题,广泛应用于视频编缉与视频分割领 ...

  3. CVPR 2017 Paper list

    CVPR2017 paper list Machine Learning 1 Spotlight 1-1A Exclusivity-Consistency Regularized Multi-View ...

  4. zz视频分割在移动端的算法进展综述

    视频分割在移动端的算法进展综述 语义分割任务要求给图像上的每一个像素赋予一个带有语义的标签,视频语义分割任务是要求给视频中的每一帧图像上的每一个像素赋予一个带有语义的标签. 视频分割是一项广泛使用的技 ...

  5. Background removal with deep learning

    [原文链接] Background removal with deep learning   This post describes our work and research on the gree ...

  6. Deep Photo的TensorFlow版本

    Prisma这个应用,你可能很熟悉.这是一个能将不同的绘画风格,迁移到照片中,形成不同艺术风格的图片. 2017年4月,美国康奈尔大学和Adobe的一个研究团队在arvix上通过论文“Deep Pho ...

  7. On-Demand Learning for Deep Image Restoration

    摘要 论文来源:ICCV 2017 之前的缺点:目前的机器学习方法只专注于在特定困难程度的图像损坏(如一定程度的噪声或模糊)情况下进行良好的训练模型. 改进的方法:提出了一种基于深度卷积神经网络的按需 ...

  8. Deep learning:五十一(CNN的反向求导及练习)

    前言: CNN作为DL中最成功的模型之一,有必要对其更进一步研究它.虽然在前面的博文Stacked CNN简单介绍中有大概介绍过CNN的使用,不过那是有个前提的:CNN中的参数必须已提前学习好.而本文 ...

  9. 图像抠图算法学习 - Shared Sampling for Real-Time Alpha Matting

    一.序言   陆陆续续的如果累计起来,我估计至少有二十来位左右的朋友加我QQ,向我咨询有关抠图方面的算法,可惜的是,我对这方面之前一直是没有研究过的.除了利用和Photoshop中的魔棒一样的技术或者 ...

随机推荐

  1. fastjson 格式化自定义选项

    QuoteFieldNames———-输出key时是否使用双引号,默认为true WriteMapNullValue——–是否输出值为null的字段,默认为false WriteNullNumberA ...

  2. Python的标准GUI:Tkinter的组件

    Label组件: Label组件用于显示文本和图像,并且使用双重缓冲 用法: 使用Label组件可以指定想要显示的内容(文本.位图或者图片): from tkinter import * master ...

  3. js混合计算字符串字节长度

    js混合计算字符串字节长度 function getBt(str) { ) { var char = str.match(/[^\x00-\xff]/ig); : char.length); } el ...

  4. HTML5学习记录——3

    HTML媒体 1.HTML多媒体 视频格式 .avi    微软开发 .wmv  微软开发 .mpg  .mpeg .mov 苹果公司开发 .rm  .ram  允许低带宽的视频流 .swf  .fl ...

  5. 代码题(3)— 最小的k个数、数组中的第K个最大元素、前K个高频元素

    1.题目:输入n个整数,找出其中最小的K个数. 例如输入4,5,1,6,2,7,3,8这8个数字,则最小的4个数字是1,2,3,4. 快排思路(掌握): class Solution { public ...

  6. IDEA 安装完码云插件,运行报“Cannot run program "xxx":CreateProcess error=2,系统找不到指定的文件”

    错误:Cannot run program "E:\Program Files\Git\bin\git.exe":CreateProcess error=2,系统找不到指定的文件 ...

  7. BEC listen and translation exercise 48

    It's not publicly known who the kidnappers were. Because they are not eating such lovely food since ...

  8. Java 关于创建String对象过程的内存分配

    一.String s = "abc"  和 String s = new String("abc") 的区别 1.String s = "abc&qu ...

  9. JAVA标号与continue,break

    可以给语句块加标号赋予它们名称,标号位于语句之前.标号只能被continue和break引用.格式如下:     label:statement     语句前只允许加一个标号,标号后面不能跟大括号. ...

  10. URL、SRC、HREF知识整理

    今天理一下URL.SRC.HREF定义以及使用区别. URL(Uniform Resource Locator) 统一资源定位符是对可以从互联网上得到的资源的位置和访问方法的一种简洁的表示,是互联网上 ...