抠图技术及方法简介(Image Matting Overview)

article/2025/9/28 4:40:52

  之前接触过语义分割,所以在刚接触图像抠图时以为两者是差不多。语义分割是端到端的,对像素按照语义进行多分类,而抠图就是按照前景和背景进行二分类嘛?实际上这是错误的理解。语义分割重在对每个像素的语义理解,将相同语义的像素分割为同一个部分,得到的结果就是若干个块状,至于块与块之间是否衔接自然则不考虑。抠图只将图片分成前景和背景两块,目的是拿到前景,好的抠图算法会对于头发等细节的处理效果比较精确。分割和抠图的另一个重要区别是分割是返回像素分类结果,分类结果是整型;而抠图返回的是属于前景或背景的概率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


http://chatgpt.dhexx.cn/article/wwhinfSG.shtml

相关文章

Portrait Matting

文章作者为 Google Research 的软件工程师 Sergio Orts Escolano 和 Jana Ehman,文章发表于 2022 年 1 月 24 日。 Portrait Matting 网络 抠图是提取精确的 alpha 遮罩的过程,抠图假设图像是前景和背景图像的合成,因此每个像素的强度是前景…

Background Matting详解

转自:https://zhuanlan.zhihu.com/p/148265115?from_voters_pagetruehttps://www.aiuai.cn/aifarm1462.html 使用人工智能技术实现类似PhotoShop等工具的抠图功能是一个非常有趣且有科研前景的一个方向。和分割算法只有 和 两个值相比,抠图得到的边缘…

【Matting】MODNet:实时人像抠图模型-onnx python部署

上一篇博客【Matting】MODNet:实时人像抠图模型-笔记分析了MODNet的原理,本篇博客将使用python部署MODNet官方提供的onnx模型,其效果如下: 在线人像抠图体验:CV案例 相关部署链接: 【Matting】MODNet&…

【笔记】Robust High-Resolution Video Matting with Temporal Guidance

Robust High-Resolution Video Matting with Temporal Guidance算法笔记 一、算法简介二、网络结构三、训练1、数据集2、训练过程3、损失函数 Robust High-Resolution Video Matting with Temporal Guidance 论文地址 RobustVideoMatting 代码地址 Robust High-Resolution Vide…

【Matting】MODNet:实时人像抠图模型-笔记

paper:MODNet: Real-Time Trimap-Free Portrait Matting via Objective Decomposition (AAAI 2022) github:https://github.com/ZHKKKe/MODNet 抠图在线体验:CV案例 部署教程: 【Matting】MODNet:实时人像抠图模型…

Image Matting 客观评价指标、数据集及主观评价

Image Matting 客观评价指标、数据集及主观评价 2021.7更新 PPM-100数据集已经开放,GitHub,详情见下文章节2.4 目录 Image Matting 客观评价指标、数据集及主观评价2021.7更新 客观评价指标1. 精度1.1 SAD1.2 MSE 均方误差1.3 Gradient error1.4 Conne…

深度学习(7)之图像抠图 Image Matting算法调研

目录 1.Trimap和Strokes 2. 相关数据集 3.论文算法调研 3.1 Deep Image Matting 3.2 Semantic Image Matting 3.3 Background Matting 3.4 Background Matting V2 3.5 Semantic Human Matting 3.6 HAttMatting 3.7 MMNet:Towards Real-Time Automatic Portrait Matt…

【SHM】Semantic Human Matting抠图算法调试

前言: 2018年阿里的论文《Semantatic Human Matting》给出了抠图领域的一个新方法,可惜阿里并没有公布源码,而牛人在Github上对这个论文进行了复现,我也是依赖Github上的工程进行钻研,而在调试的过程中,发…

[Matting]论文阅读:Deep Image Matting 详细解读

[Matting]论文阅读:Deep Image Matting 详细解读 一 、摘要 任务二、方法2.1 第一部分(Matting encoder-decoder stage)2.2 第二部分(Matting refinement stage)2.3 数据部分(Composed Datasets&#xff09…

【CVPR2022】MatteFormer: Transformer-Based Image Matting via Prior-Tokens

MatteFormer: Transformer-Based Image Matting via Prior-Tokens 中文题目: 借助先验Token的基于Transformer的图像抠图 paper:https://arxiv.org/pdf/2203.15662v1.pdf code:https://github.com/webtoon/matteformer 摘要 本文提出了一个基于Tran…

Image Matting代码和算法效果总结

本文参考了:http://blog.leanote.com/post/610167078qq.com/Image-Matting。作者给出了大部分matting-code的链接,说明也比较细致、系统,在这里向作者表示由衷地感谢!以下是博客的原文: 肖总博客:http://3…

matting笔记_一周小结

去年刚入坑的旧笔记,刚翻出来… 1. 利用神经网络做抠图的入坑之作《Deep Image Matting》 详情见之前的笔记 matting系列论文笔记(一):Deep Image Matting 由于image matting的工作没有特别好的综述,有的综述也不是…

Matting 基于DeepLearning 入门

前言 是比较清晰的用思维导图的形式介绍了一些Matting 基于DeepLearning 的经典论文,如 Deep Image matting可以通过这篇初步了解深度学习Matting领域该篇论文可以看作是基于深度学习研究Matting的开山之作,之后的许多有效、可行度高的做法都是基于这篇…

Matting和Segmentation区别及模型概述

一、两者区别 Segmentation:常被认为是硬分割(Hard Segmentation),就是将图片中的像素分成多个类别,如果是前背景分割,那么就是分成两个类别,一个类别代表前景,一个类别代表背景。而…

如何清除Safari,Chrome和Firefox中的缓存,历史记录和Cookie

如何清除浏览器的cookie缓存?许多网站的通知,用户记住账号密码登录状态,都是通过浏览器cookie缓存,定期清理Safari,Chrome和Firefox中的缓存,历史记录和Cookie,可以让浏览器保持一个良好的状态,也可以保护我们的隐私。…

Nginx缓存服务

文章目录 一、缓存概述(1)缓存的作用(2)缓存常见的类型(3)Nginx缓存的原理 二、配置Nginx缓存(1)主配置文件中缓存的语法(2)配置Nginx缓存-实验环境-实验目的…

android7.0清除缓存,iPhone7如何清理应用缓存 iphone7清理应用缓存教程

手机使用后会留下一些缓存垃圾,那么 iPhone7如何清理应用缓存? 下面就带来iphone7清理应用缓存教程,一起来学习下。 方法1:强行重启 强行重启(也叫冷重启)能够帮助iOS的设备清理一下临时文件,定期强行重启一下设备&…

Chrome Edge Firefox Safari 如何清除 DNS 缓存

Chrome Edge Firefox Safari 如何清除 DNS 缓存 如何清除浏览器的 DNS 缓存 (Chrome, Firefox, Safari) Chrome Chromium Edge Firefox Safari clear DNS Cache, flush DNS cache 请访问原文链接:https://sysin.org/blog/clear-browser-dns-cache/,查…

苹果电脑怎么清理垃圾和缓存文件,mac如何清理系统缓存文件

电脑使用的时间越久,系统运行就会变得越来越卡,这是Windows和Mac系统都会出现的现象。为了提高系统运行速度,我们有必要清理一下电脑缓存。那么苹果电脑怎么清理垃圾和缓存文件?本指南将详细讲解清理Mac缓存的技巧,还补…

浏览器缓存导致的问题:

1、需要的效果如下: 2、添加样式之后,样式会生效,但是没有达到上面的效果,表单会消失掉,只剩下一个黑色的背景图 4、原因: 因为浏览器的缓存问题导致的样式没有显示出来 5、解决办法: 清除掉…