论文:https://arxiv.org/pdf/2011.11961.pdf
代码:GitHub - ZHKKKe/MODNet: A Trimap-Free Portrait Matting Solution in Real Time [AAAI 2022]
1. 动机
这篇文章和PP-Matting是同一时期发表的,因此可认为是两项独立的、探索trimap-free的文章。故而,其动机也有相似之处:此前Matting研究要么基于trimap,要么设计计算复杂的多个阶段,所以都不能在实际场景中实时应用。
因此,本文提出了一种轻量级、trimap-free的目标分解网络(MODNet),关键思想是通过显式约束同时优化一系列子目标。此外,还提出了一个高效的 空洞空间金字塔池 (e-ASPP) 模块来融合多尺度特征以进行语义估计,一种自监督子目标一致性(SOC)策略,使MODNet适应真实世界的数据,以解决无trimap方法常见的域转移问题。
相比已有方法,MODNet有三个优点:1)快,512*512分辨率下在1080Ti上可达67FPS;2)准,在开源 Adobe Matting 基准和新提出的 PPM-100 基准上都取得了SOTA;3)易部署,单模型方便转换到onnx等格式。
2. 方法
2.1. 整体描述
网络结构如图:

网络结构简单描述一下:
- 输入一幅图像I,送入三个模块:S、D、F;
- S模块:在低分辨率分支进行语义估计,在backbone最后一层输出接上e-ASPP得到语义feature map Sp;
- D模块:在高分辨率分支进行细节预测,通过融合来自低分辨率分支的信息得到细节feature map Dp;
- F模块:融合来自低分辨率分支和高分辨率分支的信息,得到alpha matte ap;
- 对S、D、F模块,均使用来自GT的显式监督信息进行监督训练。
2.2. 关键技术
Semantic Estimation(S模块):S模块使用Encoder的高级语义feature map,接上卷积层、sigmod激活得到一个1channel的feature map,然后使用GT的缩略图进行监督训练,使用L2作为loss(其中G是通过高斯模糊进行16倍下采样):
e-ASPP:在S模块中,提出了一个高效的空洞空间金字塔池化(e-ASPP),如图3所示,先将原feature map压缩到1/4,并在输出时恢复;然后将空洞卷积分解为depth-wise空洞卷积和逐点卷积以降低计算量;最后,切换通道间融合的顺序并进行多尺度融合,这样就只需以此通道间融合,且将多尺度特征融合转换为更便宜的深度操作。相比原始ASPP,e-ASPP只有其1%的参数量与计算开销,且能达到相当的性能。
Detail Prediction(D模块):D模块主要处理前景肖像周围的过渡区域,输入是原图、S模块中间feature map及最终feature map。D模块有三种策略来进行简化:1)相比S模块,D中卷积层更少;2)D中卷积层的channel更少;3)D中的feature map也没有保持原始分辨率,而是一开始做了1/4下采样,并在最后恢复;D模块的训练使用“GT进行膨胀腐蚀后再与GT相乘得到的信号”进行监督,仅包含边界部分(边界部分为1,其余地方为0),loss如下:
Semantic-Detail Fusion(F模块):F模型直接用卷积模块将来自S、D的feature map进行融合,用来预测最终的alpha matte:
MODNet通过联合S/D/F三个模块的损失,可进行end-to-end训练:
sub-objectives consistency (SOC):之前为了克服数据缺少的问题,DIM提出了使用背景替换的方式合成数据,这也成了当前流行的方式,但这也会让模型对训练数据过拟合而在实际应用中表现较差。作者提出了子目标一致性约束来解决这个问题。
关于子目标一致性,以S模块为例,其输出S(I)是F模块的alpha matte F (S(I), D(S(I)))先验,因此S需要和F保持一致性,也即,其对某一块像素的预测,它们需要保持一致。这在源域是没问题的,但在未知域可能会出问题。因此,作者提出使用自监督的SOC策略,来对子目标增加一致性约束。对于未知域的图像I,经过MODNet后得到三个输出:
将alpha matte中的语义强加给S、D的输出:
然而,在公式(7)后半部分会使alpha matte的边界变平滑,所以增加了一个损失,在自监督训练时,创建模型M的副本M',用M'预测提花(7)后半部分中的: