主页:background-matting
参考代码:Background-Matting
1. 概述
导读:这篇文章对于自然场景下人像抠图提出了一种新的matting方法,在该方法中引入一张背景图片作为参考,此后尽量保持背景画面不动(手持设备存在合理的抖动也可以),将语义分割模型的分割结果/前后帧(可选)也引入作为额外的依据信息。为了使这些信息能够发挥最大的作用,文章引入了一个CS(Context Switching block )模块去有效选取有用信息,从而经过解码器之后得到更加准确的matting结果。此外,由于matting的过程中往往会夹杂一些背景的像素信息,文章引入GAN网络去判断融合图像的真假,并使用教师网络(已经训练收敛的网络)去引导学生网络生成matting结果,从而使得matting的融合结果更加自然。
文章的方法是不需要trimap的matting方法,使用CS模块去提取多个输入的有用信息,之后通过解码器得到最后的结果。但是一般情况下matting的结果中或多或少夹带一些背景像素信息,这就造成了边缘不够友好,通过数据增广和CS模块却是可以得到一定程度上的好转,但是还是存在较为明显的问题,对此文章是通过GAN网络/“知识蒸馏”的形式去优化最后的matting融合结果。
文章的方法也是存在下面列出的缺陷的:
- 1)需要两张图像,一张静态背景和一张包含目标的图像;
- 2)需要静态的背景且拍摄的时候画面的抖动尽可能小;
- 3)文章的方法是偏向于人像的;
在下图中展示的是文章的方法的使用流程:
2. 方法设计
2.1 整体pipline
文章的方法结构见下图所示:
文章的方法主要划分为两个部分:
- 1)由CS模块构建的编码器与解码器组合生成前景区域的彩色预测结果(fg)和alpha图;
- 2)以训练好的网络作为teacher,再加上GAN去判断融合结果是否真实,从而优化matting的融合效果;
2.2 Adobe数据集上的监督训练
文章的方法在Adobe Matting Dataset上剔除一些包含透明目标(如玻璃杯)的图片(最后得到280张)进行训练。文章的网络包含包含4部分的输入:
- 1)图像 I I I,该图像是背景图 B ‘ B^{‘} B‘和前景进行融合的结果;
- 2)背景图 B ‘ B^{‘} B‘,该图像是选中的背景图,但是在实际过程中其与真实的背景 B B B是不太一样的,文章中为了拉近这两个图片的差异,在真实背景 B B B上做 γ ∼ N ( 1 , 1.02 ) \gamma\sim\mathcal{N}(1,1.02) γ∼N(1,1.02)的gamma矫正,或是在前景区域添加 η ∼ N ( μ ∈ [ − 1 , 7 ] , σ ∈ [ 2 , 6 ] ) \eta\sim\mathcal{N}(\mu\in[-1,7],\sigma\in[2,6]) η∼N(μ∈[−1,7],σ∈[2,6])的高斯噪声;
- 3)软分割的结果 S S S,文章中是通过分割网络分割得到,将得到的分割结果进行5次腐蚀和10次膨胀,之后施加 σ = 5 \sigma=5 σ=5的高斯滤波。为了更近一步模拟分割不理想的情况,文章会对分割结果使用更大力度的腐蚀和膨胀等操作;
- 4)前后帧序列 M M M,文章还引入视频前后帧来进行信息的补充,这里采用的是前后2帧的灰度图 { I − 2 T , I − T , I T , I 2 T } \{I_{-2T},I_{-T},I_{T},I_{2T}\} { I−2T,I−T,IT,I