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

article/2025/9/28 4:51:29

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

2021.7更新

PPM-100数据集已经开放,GitHub,详情见下文章节2.4


目录

    • Image Matting 客观评价指标、数据集及主观评价
      • 2021.7更新
    • 客观评价指标
      • 1. 精度
        • 1.1 SAD
        • 1.2 MSE 均方误差
        • 1.3 Gradient error
        • 1.4 Connectivity error
        • 1.5 MAD
        • 1.6 小结
      • 2. 数据集
        • 2.1爱分割[matting_human_datasets](https://github.com/aisegmentcn/matting_human_datasets)
        • 2.2 [Adobe Image Matting](https://sites.google.com/view/deepimagematting)
        • 2.3 [alphamatting](http://www.alphamatting.com/datasets.php)
        • 2.4 PPM-100
        • 2.5 小结
      • 3. 主观评价
      • Reference:

客观评价指标

1. 精度

目前常用的几个指标来自于这篇论文[1],SAD, MSE, Gradient error, Connectivity error.

1.1 SAD

SAD(Sum of Absolute Difference)绝对误差和,
S A D = ∑ i ∣ α i − α i ∗ ∣ SAD = \sum_i |\alpha_i - \alpha_i^*| SAD=iαiαi

def matte_sad(pred_matte, gt_matte):''' Sum of Absolute Differences pred_matte : np.array, shape : [h,w]gt_matte   : np.array, shape : [h,w]'''assert(len(pred_matte.shape) == len(gt_matte.shape))error_sad = np.sum(np.abs(pred_matte - gt_matte))return error_sad

1.2 MSE 均方误差

mean squared error (MSE)
M S E = 1 n ∑ i ( α i − α i ∗ ) 2 MSE = \frac {1}{n}\sum_i (\alpha_i - \alpha_i^*)^2 MSE=n1i(αiαi)2

def matte_mse(pred_matte, gt_matte):''' Mean Squared Error '''assert(len(pred_matte.shape) == len(gt_matte.shape))error_mse = np.mean(np.power(pred_matte-gt_matte, 2))return error_mse

1.3 Gradient error

主要计算的是预测的 ∇ α i \nabla \alpha_i αi ∇ α i ∗ \nabla \alpha^*_i αi的之间的梯度差异, 定义如下:
∑ ( ∇ α i − ∇ α i ∗ ) q \sum (\nabla \alpha_i - \nabla \alpha^*_i)^q (αiαi)q

q q q为自定义函数,论文里设为2.

这里的 ∇ α i \nabla \alpha_i αi ∇ α i ∗ \nabla \alpha^*_i αi表示的是对应的alpha matte的归一化梯度, 这是通过将matte与具有方差 s i g m a sigma sigma的一阶Gaussian导数滤波器进行卷积计算得到的. 二者计算差异, 进而累计损失. 总体越相似, 指标值越小.

def matte_grad(pred_matte, gt_matte):''' Error measure with Gradient '''assert(len(pred_matte.shape) == len(gt_matte.shape))predict_grad = scipy.ndimage.filters.gaussian_filter(pred_matte, 1.4, order=1) # alpha matte的归一化梯度,标准差=1.4,1阶高斯导数的卷积gt_grad      = scipy.ndimage.filters.gaussian_filter(gt_matte,   1.4, order=1)error_grad   = np.sum(np.power(predict_grad - gt_grad, 2))return error_grad

这里调用的是SciPy模块,高斯滤波器用于高斯模糊是比较经典的图像卷积例子,这里使用高斯滤波器filters.gaussian_filter()来进行1阶高斯导数卷积计算。分别计算两者梯度,作差,然后累计其平方。两者越相似,Gradient error越小。

1.4 Connectivity error

在这里插入图片描述

connectivity error定义如下:
∑ i ( φ ( α i , Ω ) − φ ( α i ∗ , Ω ) ) \sum_{i}(\varphi(\alpha_i,\Omega) - \varphi(\alpha_i^*,\Omega)) i(φ(αi,Ω)φ(αi,Ω))
该公式给出了连通性误差的计算方法, 这里是对整个预测出来的alpha matte图和相应的Ground truth的对应的差异的累和. 这里的关键是里面的 φ ( α i , Ω ) \varphi(\alpha_i,\Omega) φ(αi,Ω)函数,。源域(source region) Ω \Omega Ω由最大连通域定义,最大连通域是指alpha matte和它对应的Ground truth都完全不透明的部分(即 α \alpha α都为1),如上图红线区域大致表示。

连接程度由距离 d i d_i di决定, d i = α i − l i d_i=\alpha_i - l_i di=αili,其中 l i l_i li是像素 i i i 能4连通到 Ω \Omega Ω的最大阈值,也就是上图中的虚线,阈值大于这个,像素i就与$ \Omega 不 连 通 了 。 用 它 对 ‘ a l p h a m a t t e ‘ 进 行 二 值 化 , 正 好 处 于 使 像 素 i 与 源 域 连 通 ( 实 际 需 要 四 连 通 ) / 不 连 通 的 临 界 . 若 是 对 于 一 个 像 素 而 言 , 它 的 不连通了。用它对`alpha matte`进行二值化, 正好处于使像素i与源域连通(实际需要四连通)/不连通的临界. 若是对于一个像素而言, 它的 alphamatte,使i()/.,l_i=\alpha_i$, 那么就可以认为它与源域是全连通的. i i i点连通度 φ \varphi φ的定义公式如下所示:
φ ( α i , Ω ) = 1 − ( λ i ⋅ δ ( d i ≥ θ ) ⋅ d i ) \varphi(\alpha_i,\Omega) = 1- (\lambda_i \cdot \delta(d_i \geq \theta) \cdot d_i) φ(αi,Ω)=1(λiδ(diθ)di)
这里的 θ \theta θ是自定义参数, 文章[1]中取了0.15. 它用在指示函数 δ \delta δ里作为一个阈值, 来忽略小于它的 d i d_i di的情况, 认为小于它就已经是全连通了, 使得误差计算更为灵活.

其中的 λ i = 1 K ∑ k ∈ K d i s t k ( i ) \lambda_i=\frac{1}{K}\sum_{k\in K}dist_k(i) λi=K1kKdistk(i)用来对 d i d_i di进行加权, 这里的K表示 l i l_i li α i \alpha_i αi之间的离散 α \alpha α值的集合, d i s t k dist_k distk计算了设置为阈值k时, 对于像素i距离最近的连通到源域的像素, 与像素i之间的标准化欧式距离. 实际情况中, 远离连通区域的像素, 获得的权重 λ \lambda λ也应该相应会更大些, 这样导致得到的 φ \varphi φ会更小些, 也就是认为连通度更小.

因为按照公式定义的 λ \lambda λ的计算量太大,在实际应用中计算开销太大,为了减小计算[1]在公式中把 λ i \lambda_i λi直接取为了1。

1.5 MAD

Mean Absolute Difference(MAD) 平均绝对差值
M A D = 1 n ∑ i ∣ α i − α i ∗ ∣ MAD = \frac{1}{n} \sum_i |\alpha_i - \alpha_i^*| MAD=n1iαiαi
MAD和SAD类似,这两指标选择一个即可。

1.6 小结

[2],[3],[4] 等以上4个指标全都使用了, background matting[5]仅使用了SAD,MSE这两个指标, MODNet[6]主要使用了MSE,MAD这两个指标。

所以综合以上,我们的指标先选取MSE,MAD这两项,Gradient和Connectivity看结果最后再决定是否取用。

2. 数据集

2.1爱分割matting_human_datasets

该数据集包含34427张图像和对应的matting结果图。该数据集是公开数据集,且包含的数据量很大。

缺点:标注较为粗糙

2.2 Adobe Image Matting

该数据为非公开数据集,但是可以联系作者获取该数据集。431张训练图片,50张测试图片。通常按照一定比例和背景图片合成来扩充数据。

2.3 alphamatting

公开matting评估网http://www.alphamatting.com上的测试数据。

缺点: 数据量实在太少35object,包含各种object,人像极少。

2.4 PPM-100

由MODNet[6]提出,2021.7公开

大家可以从GitHub仓库查看,也可以直接下载:
Google Drive | 百度网盘 (提取码: PPMB)

优点: 高质量标注,更加多样化,可以作为benchmark data

2.5 小结

最终还是选择Adobe Image Matting数据集来评估,一是数据集便于获得,使用该数据集比较的论文较多;二是该数据集相较alphamatting更多更全面,且质量较好。

后续PPM-100如果放出来,且质量较好,可以考虑选用。

3. 主观评价

选取一些图片,用多种方法进行抠图,将原图,Ground Truth和多种方法的matting结果放在一起做比较,观察其毛发边缘,感受matting效果。

Reference:

[1] Christoph Rhemann, Carsten Rother, Jue Wang, Margrit Gelautz, Pushmeet Kohli, and Pamela Rott. 2009. A perceptually motivated online benchmark for image matting. In Computer Vision and Pattern Recognition, 2009. CVPR 2009. IEEE Conference on. IEEE, 1826–1833.

[2] Chen Q, Ge T, Xu Y, et al. Semantic human matting[C]//Proceedings of the 26th ACM international conference on Multimedia. 2018: 618-626.

[3] Liu J, Yao Y, Hou W, et al. Boosting Semantic Human Matting with Coarse Annotations[C]//Proceedings of the IEEE/CVF Conference on Computer Vision and Pattern Recognition. 2020: 8563-8572.

[4] Xu N, Price B, Cohen S, et al. Deep image matting[C]//Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition. 2017: 2970-2979.

[5] Sengupta S, Jayaram V, Curless B, et al. Background Matting: The World is Your Green Screen[C]//Proceedings of the IEEE/CVF Conference on Computer Vision and Pattern Recognition. 2020: 2291-2300.

[6] Ke Z, Li K, Zhou Y, et al. Is a Green Screen Really Necessary for Real-Time Human Matting?[J]. arXiv preprint arXiv:2011.11961, 2020.

[7] Matting任务里的Gradient与Connectivity指标

[8] https://blog.csdn.net/On_theway10/article/details/102860040

[9] https://www.cnblogs.com/king-lps/p/6374916.html


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

相关文章

深度学习(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、解决办法: 清除掉…

浏览器缓存

文章目录 前端缓存|后端缓存按缓存位置分类缓存过程memory cachedisk cacheService WorkerPush Cache 强制缓存适用场景ExpiresCache-Control 协商缓存(也叫对比缓存)适用场景ETag和Last-Modified区别 缓存相关问题缓存穿透缓存击穿缓存雪崩 前端缓存|后…

苹果清除缓存_苹果手机卡顿别着急换,调整这5个功能,iPhone 6S还可以再战两年...

阅读本文前,请您先点击上面的“议科技”,关注,这样您就可以继续收到最新文章了。每天都有分享。完全是免费订阅,请放心关注。 平时在使用苹果手机的时候,时间用久了,是不是觉得手机有些卡顿?使用…

如何在Mac iPhone和iPad上清除Safari缓存?

每当您在Safari中浏览网络时,浏览器都会存储网站数据,因此您不必在每次重新访问网站时都再次下载该数据。从理论上讲,这应该可以加快您的浏览体验,但是在某些情况下,您可能需要清除缓存并重新开始。如何清除Safari缓存…

Safari iOS 清除缓存、在手机端调试方法 [ For Mac ]

前提: 手头有Mac 写手机页面的时候,很多时候都会在手机上查看,但 iPhone 上的 Safari 浏览器有着很严重的缓存效果。 如何清除缓存呢 打开 iPhone 上的调试开关 在 【设置】->【Safari 浏览器】-> 最下面的【高级】里面 &#xff08…

清除计算机网络mac高速缓存,怎么Mac下清除Safari缓存数据

电脑上的网页浏览器都有一个用于缓存用户数据的缓存功能,这些数据可以让我们在浏览网页时变得更加方便。有的时候需要手动在 Mac 电脑上清除 Safari 浏览器的缓存数据,这里学习啦小编简单介绍下怎么在 Mac 下清除 Safari 缓存数据的操作方法。 Mac下清除…

Mac自带Safari浏览器如何清除缓存

相信对于程序员们来说,要经常更改、测试一些功能。浏览器都有一个用于缓存用户数据的缓存功能,这些数据可以让我们在浏览网页时变得更加方便。但是偶尔会让我们的测试不那么准确,有的时候需要手动在 Mac 电脑上清除 Safari 浏览器的缓存数据&…