Deep Image Matting
论文地址: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的更多相关文章
- Matting任务里的Gradient与Connectivity指标
Matting任务里的Gradient与Connectivity指标 主要背景 Matting任务就是把α(不透明度, 也就是像素属于前景的概率).F(前景色)和B(背景色)三个变量给解出来. C为图 ...
- Alpha matting算法发展
一.抠图算法简介 Alpha matting算法研究的是如何将一幅图像中的前景信息和背景信息分离的问题,即抠图.这类问题是数字图像处理与数字图像编辑领域中的一类经典问题,广泛应用于视频编缉与视频分割领 ...
- CVPR 2017 Paper list
CVPR2017 paper list Machine Learning 1 Spotlight 1-1A Exclusivity-Consistency Regularized Multi-View ...
- zz视频分割在移动端的算法进展综述
视频分割在移动端的算法进展综述 语义分割任务要求给图像上的每一个像素赋予一个带有语义的标签,视频语义分割任务是要求给视频中的每一帧图像上的每一个像素赋予一个带有语义的标签. 视频分割是一项广泛使用的技 ...
- Background removal with deep learning
[原文链接] Background removal with deep learning This post describes our work and research on the gree ...
- Deep Photo的TensorFlow版本
Prisma这个应用,你可能很熟悉.这是一个能将不同的绘画风格,迁移到照片中,形成不同艺术风格的图片. 2017年4月,美国康奈尔大学和Adobe的一个研究团队在arvix上通过论文“Deep Pho ...
- On-Demand Learning for Deep Image Restoration
摘要 论文来源:ICCV 2017 之前的缺点:目前的机器学习方法只专注于在特定困难程度的图像损坏(如一定程度的噪声或模糊)情况下进行良好的训练模型. 改进的方法:提出了一种基于深度卷积神经网络的按需 ...
- Deep learning:五十一(CNN的反向求导及练习)
前言: CNN作为DL中最成功的模型之一,有必要对其更进一步研究它.虽然在前面的博文Stacked CNN简单介绍中有大概介绍过CNN的使用,不过那是有个前提的:CNN中的参数必须已提前学习好.而本文 ...
- 图像抠图算法学习 - Shared Sampling for Real-Time Alpha Matting
一.序言 陆陆续续的如果累计起来,我估计至少有二十来位左右的朋友加我QQ,向我咨询有关抠图方面的算法,可惜的是,我对这方面之前一直是没有研究过的.除了利用和Photoshop中的魔棒一样的技术或者 ...
随机推荐
- Socket bind failed: [730048] ?????????×???(Э?é/???????/???)????í??错误
启动项目的时候发现tomcat跑不起来.后台输出错误Socket bind failed: [730048] ?????????×???(Э?é/???????/???)????í?? 发现是ecli ...
- jquery 实现动态表单设计
只是实现了前台页面的动态表单的设计,并未实现后台绑定数据到数据库等功能.技术使用到的为jquery和bootstrap.俗话说有图有真相,先说下具体效果如下: 点击添加一个面板容器: 容器添加成功: ...
- PHP不用第三变量交换2个变量的值的解决方法
以前做过一道php面试题是这样的:不使用第三个变量实现交换两个变量的值.一般都是借助第三个中间变量来实现原来两个变量的值交换,但是这道题却要求不能使用中间变量,这对于初学者来说也算是一个难题了.网上找 ...
- 如何更好的理解js中的this,分享2段有意思的代码
关于js中this的浅析,大家可以点击[彻底理解js中this的指向,不必硬背]这篇博客了解. 今天遇到2段比较有意思的代码. ----------------第一段----------------- ...
- PostgreSQL聚合函数的filter子句
一张表存储了学生id,科目,分数三个字段,求每个学生60分以下与参加的总科目占比.(今天电脑不好用,图片总是这样) 其实一个count(*) filter 就可以查出来,但是没用过PG的一个人竟然说 ...
- “Hello World”—— 第一个汇编程序
Hello World这是每一门编程语言的第一个最简单程序,下面那个程序就是汇编语言的Hello World.学汇编一段时间了,到现在才记录下自己的第一个汇编程序笔记.虽然这是个相当简单的小程序,但这 ...
- Oracle 12c 新特性之 PDB 级别闪回数据库
在Oracle Database 12.1中,闪回数据库操作仅限于 CDB ,Oracle Database 12.2支持 CDB 与 PDB 数据库的闪回. PDB 的还原点种类:1. normal ...
- Parallel Programming-Parallel.Invoke
本文主要介绍Parallel.Invoke的使用. 一.使用例子 class ParallelInvoke { public void Action1() { Thread.Sleep(); Cons ...
- BZOJ4756:[USACO2017JAN]Promotion Counting
浅谈线段树合并:https://www.cnblogs.com/AKMer/p/10251001.html 题目传送门:https://lydsy.com/JudgeOnline/problem.ph ...
- #include <deque>
deque \(deque\)头文件主要包括一个双端队列容器.是一个支持在两端插入两端删除的线性储存空间,与vector和queue相似.与\(vector\)比起来,\(deque\)可以在\(O( ...