之前接触过语义分割,所以在刚接触图像抠图时以为两者是差不多。语义分割是端到端的,对像素按照语义进行多分类,而抠图就是按照前景和背景进行二分类嘛?实际上这是错误的理解。语义分割重在对每个像素的语义理解,将相同语义的像素分割为同一个部分,得到的结果就是若干个块状,至于块与块之间是否衔接自然则不考虑。抠图只将图片分成前景和背景两块,目的是拿到前景,好的抠图算法会对于头发等细节的处理效果比较精确。分割和抠图的另一个重要区别是分割是返回像素分类结果,分类结果是整型;而抠图返回的是属于前景或背景的概率p,在前景与背景交互区域会产生渐变的效果,使得抠图更加自然。
  抠图技术的核心问题是解以下公式:Ii = αFi + (1-α)Bi,其中Ii是图像当前可观察的像素,为已知量;α是透明度,F是前景像素,B是背景像素,这三个变量为未知量。对于这个公式的理解,可以把原始图像看做是前景和背景按照一定权重(α透明度)叠加组成的。对于完全确定是前景的像素,α = 1;对于完全确定是背景的像素,α = 0;对于不确定是前景还是背景的像素,α是介于0到1之间的浮点数。
  以下是各种图的效果:第一行从左到右分别是原图,trimap图,α图;第二行从左到右分别是原图,草图,α图;
  

  深度学习如火如荼,我们也可以把抠图算法按照是否使用DL分为传统方法和运用CNN的方法。以下是几种经典的传统方法:

Poisson Matting

  该方法通过对matting等式观察后发现,两边求导可以得到以下式子:
  
  假设∇F和∇B很小时,式子简化成如下的形式:
  
  于是我们能得到这样一个能量方程:
  
  其中Ω指的就是不确定区域。上述问题可以很自然地转成微分方程去做,具体地,转为泊松方程求解。泊松方程有一个非常美妙的定理,即如果指定了边界上的Dirichlet条件或者Neumann条件,那么泊松方程在区域内的解是唯一可确定的,因此当我们知道不确定区域内的密度函数,和边界上的α值,我们就可以计算出这个区域内的α值。
  另外,F和B是未知的,在这里采用最近邻的方法来确定F和B的值,随后使用filter平滑F-B,来保证F-B的变化不会太突兀。整个算法是一个迭代式的算法,通过多次迭代,来保证α 达到一个比较稳定的状态。

Bayes Matting

  该方法将matting问题直观表示为贝叶斯形式,即:
  
  L是取对数,由于概率都是[0,1],如果大量概率连乘,在计算机中的表示会变为0,同时由于P(C)是常量,因此可以忽略。
  接下来,对 L(C|F,B,α ),L(F),L(B),L(α ) 建模,对于L(F),要建立的是前景颜色的概率分布,表示当前选定的F概率有多大。论文中使用一种聚类方法,来对前景的颜色分布建模。对于L(B),直接使用L(F)的定义。对于 L(α ),假设α 的分布是平均的,因此我们可以在MAP中忽略这一项。
  最后求解这个MAP问题,对于凸优化问题,可以直接使用导数为0的方式求解。由于α 会和F、B相乘,因此这个MAP问题比较难,所以论文采用两段法求解,先固定 α 求解F、B,随后固定F、B,求解 α ,迭代这个过程,直到结果比较稳定。

Learning Based Digital Matting

  随着机器学习的兴起和数据集的丰富,关于matting的工作也转为了数据驱动的思路,这里介绍半监督学习方法。其核心在于给定标记数据的情况下,预测结果不止和标记数据有关,还和未标记数据有关,更精确地说,和数据的相对位置有关。如果能建立一种α 和像素点颜色的映射,那么给定一个像素点,就能通过它的颜色来预测 α。论文两个假设:

  1. 任何未知像素的 α,是周围像素 α 的线性组合,从而我们可以将这种线性组合关系表达为矩阵的形式,注意:在这里使用了半监督学习中相对位置的概念;
  2. 假设 α 和该像素点的颜色向量呈线性相关关系;

  于是,对于每一个点的 α,我们期望使用周围像素 α 的线性组合来预测,这个线性组合的参数,又是通过学习得到的,这个学习的过程,就是建立 α 和颜色特征向量之间相关关系的过程。

Closed form matting

  封闭式表面抠图假定局部颜色分布遵循color line model,其中局部窗口内的颜色可以表示为两种颜色的线性组合。基于这个假设,Levin导出了matting Laplacian,证明了前景的alpha matte可以在没有明确估计前景和背景颜色的情况下以封闭的形式求解。从那以后,matting Laplacian被广泛地用作正则化来增强估计的alpha matte和其他应用的平滑性。该方法的优点是参数少,多数图像满足color line model的假设;不足就是假设失效的情况也是比较多的。

KNN matting

  KNN抠图属于非局部抠图,其目标是通过允许alpha值在非局部像素中传播来解决matting Laplacian的局限性。类似于closed form matting,非局部抠图也对采样的非局部像素进行了假设。它假定像素的α值可以通过具有相似外观的非局部像素的α值的加权和来描述。在非局部抠图中,相似的外观由颜色,距离和纹理相似性来定义。然而,由于非局部像素的比较,其计算非常高。KNN matting通过仅考虑高维特征空间中的前K个近邻而改善了非局部抠图。它通过仅考虑颜色和它们特征空间中的位置相似性来减少计算。优点也是参数少,易于调整;不足是定义一个通用的特征空间是困难的。

Deep Learning Methods

  笔者主要关注基于深度学习,尤其是CNN的方法实现抠图,以下是相关顶会论文的介绍,如果可能,将会持续更新。

  • 《Natural Image Matting Using Deep CNN》ECCV 2016
  • 《Deep Automatic Portrait Matting》 ECCV 2016
  • 《Deep Image Matting》CVPR 2017

Reference:
Image Matting(抠图)技术介绍:序言
天干物燥,小心抠图 —— A journey of matting

抠图技术及方法简介(Image Matting Overview)相关推荐

  1. 三维重建技术 各种方法简介

    三维重建技术通过深度数据获取.预处理.点云配准与融合.生成表面等过程,把真实场景刻画成符合计算机逻辑表达的数学模型.这种模型可以对如文物保护.游戏开发.建筑设计.临床医学等研究起到辅助的作用. 1.1 ...

  2. 三维重建技术(2)各种方法简介

    转自:三维重建技术 各种方法简介, G换一种活法 这个博主也是转载的,可是来源不可查,所以暂把来源写为这个博主的博客 三维重建技术通过深度数据获取.预处理.点云配准与融合.生成表面等过程,把真实场景刻 ...

  3. 零基础快速学习Java技术的方法整理

    在学习java技术这条道路上,有很多都是零基础学员,他们对于java的学习有着很多的不解,不知怎么学习也不知道如何下手,其实Java编程涉及到的知识点还是非常多的,我们需要制定java学习路线图这样才 ...

  4. 计算机仿真技术与应用,[计算机软件及应用]计算机仿真技术与应用简介.pdf

    [计算机软件及应用]计算机仿真技术与应用简介 计算机仿真技术与应用简介 王红勇 ChinaATM@yahoo.cn Matlab 数值数组及运算 1 概述 2 数值数组的生成和寻访 3 数组运算和矩阵 ...

  5. 清华大学计算机系主任应明生,清华大学计算机科学与技术系导师简介:应明生...

    对考生而言,充分了解高校.专业以及师资情况是一项最基础.最关键的工作.以下是中公考研小编为大家整理的"清华大学计算机科学与技术系导师简介:应明生"的相关信息,希望对同学们有所帮助. ...

  6. 张宏 :移动机器人全局定位技术与方法是啥?道翰天琼认知智能机器人平台API接口大脑为您揭秘。

    张宏 :移动机器人全局定位技术与方法是啥?道翰天琼认知智能机器人平台API接口大脑为您揭秘. 人工智能不仅要复现人类的大脑,还要构建容纳智能大脑的身体,机器人将是人工智能的完全体.8月7日-8月9日, ...

  7. 张宏 :移动机器人全局定位技术与方法是啥?道翰天琼认知智能机器人平台API接口大脑为您揭秘-1。

    人工智能不仅要复现人类的大脑,还要构建容纳智能大脑的身体,机器人将是人工智能的完全体.8月7日-8月9日,2020年全球人工智能和机器人峰会(简称"CCF-GAIR 2020")在 ...

  8. 索骥馆-思维训练之最佳记忆方法-王洪礼的奇象记忆思维技术与方法 》扫描版[PDF]

    内容简介 王洪礼主编的<最佳解题思维方法>与<最佳记忆方法>两书紧密联系,在内容上具有逻辑性,也有独立性.在阅读时,初读者既可先阅读<最佳解题思维方法>,也可先阅读 ...

  9. ChinaSoft 论坛巡礼 | 群智化软件测试技术和方法

    2022年CCF中国软件大会(CCF ChinaSoft 2022)将于2022年11月25-27日在线上举行.预期将有林惠民.陈左宁.邬江兴.何积丰.梅宏.吕建.柴洪峰.廖湘科.王怀民.郑纬民.蒋昌 ...

最新文章

  1. Ubuntu下ICE-3.4.2的安装
  2. 小姐姐亲身体验:在阿里数据库科研团队实习是种怎样的体验?
  3. [WP8.1UI控件编程]Windows Phone自定义布局规则
  4. Angular单元测试框架beforeEach和it的执行顺序
  5. 输入mysql -v_Mysql数据库使用笔记
  6. 业界分享 | Embedding技术在商业搜索与推荐场景的实践
  7. iOS学习——UITableViewCell两种重用方法的区别
  8. django中的media
  9. Ample Sound Ample Bass Metal Ray5 for mac - 低弦音软件
  10. 删除AdminServer logs下的log文件后开启AdminServer报错
  11. redis类型 tp5_tp5配置使用redis笔记!
  12. macbook卡在进度条开不了机_解决MacBook Pro开机卡死在进度条无反应,进不去桌面...
  13. 决OBS Studio录制的视频为黑屏的问题
  14. excel表格末尾添加一行_七夕表白,用Excel试试!抖音爆红,一晚点赞破百万
  15. Everything研究之读取NTFS下的USN日志文件(2)
  16. Unity --- 触摸方法,以及灯光与烘培的使用
  17. 时间序列异方差ARCH和GARCH模型
  18. 宏观调控绝不是微观控制
  19. Wault Finance闪贷攻击溯源
  20. 3.Sunday算法的一个小优化

热门文章

  1. exiftool 删除和添加图片旋转信息
  2. polkit启动失败_CentOS Linux 7.4中polkit服务启动失败
  3. 2021-08-17
  4. 【技术认证题库】齐治初级运维安全认证——RIS堡垒机习题
  5. 电子信息工程考研:12大专业方向解读
  6. Envi处理MODIS流程
  7. 算高差改正数的计算机程序,水准测量中的高差改正数应该怎么算?我们是六个点,而且每次只能观测两个点,也就是有六个测段...
  8. Qt编写安防视频监控系统10-视频轮询
  9. RO,RW,ZI,FLASH,RAM前世今生
  10. Logging 之root 打印器来捣乱