Image Matting 客观评价指标、数据集及主观评价
2021.7更新
PPM-100数据集已经开放,GitHub,详情见下文章节2.4
客观评价指标
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=αi−li,其中
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=K1∑k∈Kdistk(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