《Background Matting:The World is Your Green Screen》论文笔记
主页: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)图像III,该图像是背景图B‘B^{‘}B‘和前景进行融合的结果;
- 2)背景图B‘B^{‘}B‘,该图像是选中的背景图,但是在实际过程中其与真实的背景BBB是不太一样的,文章中为了拉近这两个图片的差异,在真实背景BBB上做γ∼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)软分割的结果SSS,文章中是通过分割网络分割得到,将得到的分割结果进行5次腐蚀和10次膨胀,之后施加σ=5\sigma=5σ=5的高斯滤波。为了更近一步模拟分割不理想的情况,文章会对分割结果使用更大力度的腐蚀和膨胀等操作;
- 4)前后帧序列MMM,文章还引入视频前后帧来进行信息的补充,这里采用的是前后2帧的灰度图{I−2T,I−T,IT,I2T}\{I_{-2T},I_{-T},I_{T},I_{2T}\}{I−2T,I−T,IT,I2T},而在非视频的时候可以将其设置为同一图像;
结合上面的4个输入可以得到网络的组合输入X={I,B‘,S,M}X=\{I,B^{‘},S,M\}X={I,B‘,S,M},之后通过网络得到最后的前景预测结果和alpha图:
(F,α)=G(X;θ)(F,\alpha)=G(X;\theta)(F,α)=G(X;θ)
为了能够更好利用上面输入的4个输入信息,避免偏向依赖问题,文章使用CS模块选择这4个输入中对最后matting最有价值的信息。也就是如图2中给出的Selector和Combinator。
由于这部分网络是在Adobe数据集下完成训练,顾这里将其将其写为为GAdobe=G(⋅,θAdobe)G_{Adobe}=G(\cdot,\theta_{Adobe})GAdobe=G(⋅,θAdobe),以便和后面网络区分开。对与这部分网络的损失,是由4个分量组成的:alpha图的L1损失,alpha图的梯度损失,2倍的前景区域L1损失,由结果进行重建的L1损失。其表达为:
minθAdobeEX∼px[∣∣α−α∗∣∣1+∣∣∇(α)−∇(α∗)∣∣1+2∣∣F−F∗∣∣1+∣∣I−αF−(1−α)B∣∣1]\min_{\theta_{Adobe}}E_{X\sim p_x}[||\alpha-\alpha^{*}||_1+||\nabla(\alpha)-\nabla(\alpha^{*})||_1+\\ 2||F-F^{*}||_1+||I-\alpha F-(1-\alpha)B||_1]θAdobeminEX∼px[∣∣α−α∗∣∣1+∣∣∇(α)−∇(α∗)∣∣1+2∣∣F−F∗∣∣1+∣∣I−αF−(1−α)B∣∣1]
文章的CS模块对结果的影响见下图所示:
前后帧信息对结果的影响:
2.3 基于GAN的融合优化
通过文章提出的CS模块和数据增广策略可以减少合成数据到真实数据之间的gap,但是这个gap依然还是存在的,特别是在以下的一些情况中表现不佳:
- 1)在手指/胳膊/头发等区域;
- 2)分割错误结果错误,分割模型结果有问题;
- 3)前景与背景的颜色接近;
- 4)后续的图像与背景之间没有对齐,存在移位,如背景的变化与抖动;
上面的问题一般会导致matting之后的结果与新的背景之间融合不正确的情况,表现为会夹带一些原有背景的像素信息。对此文章通过训练一个对抗网络去鉴别融合的真假,从而提升matting网络的matting质量。
这里将生成器定义为(F,α)=G(⋅,θReal)(F,\alpha)=G(\cdot,\theta_{Real})(F,α)=G(⋅,θReal),它与之前的网络是一致的只是参数是通过随机初始化的方式设定。原有网络(F^,α^)=G(X;θAdobe)(\hat{F},\hat{\alpha})=G(X;\theta_{Adobe})(F^,α^)=G(X;θAdobe)的输出作为生成网络的回归目标,类似于知识蒸馏的形式。文章使用LS_GAN的形式构建对抗网络,其生成器部分目标函数为:
minθRealEX,Bˉ∼pX,Bˉ[D(αF+(1−α)Bˉ)2+λ{2∣∣α−α^∣∣1+4∣∣∇(α)−∇(α^)∣∣1}+∣∣F−F^∣∣1+∣∣I−αF−(1−α)B‘∣∣1]\min_{\theta_{Real}}E_{X,\bar{B}\sim p_{X,\bar{B}}}[D(\alpha F+(1-\alpha)\bar{B})^2+\\ \lambda\{2||\alpha-\hat{\alpha}||_1+4||\nabla(\alpha)-\nabla(\hat{\alpha})||_1\}+||F-\hat{F}||_1+\\ ||I-\alpha F-(1-\alpha)B^{‘}||_1]θRealminEX,Bˉ∼pX,Bˉ[D(αF+(1−α)Bˉ)2+λ{2∣∣α−α^∣∣1+4∣∣∇(α)−∇(α^)∣∣1}+∣∣F−F^∣∣1+∣∣I−αF−(1−α)B‘∣∣1]
判别器部分的目标函数为:
minθDiscEX,Bˉ∼pX,Bˉ[(D(αF+(1−α)Bˉ))2]+EI∈pdata[(D(I)−1)2]\min_{\theta_{Disc}}E_{X,\bar{B}\sim p_{X,\bar{B}}}[(D(\alpha F+(1-\alpha)\bar{B}))^2]+E_{I\in p_{data}}[(D(I)-1)^2]θDiscminEX,Bˉ∼pX,Bˉ[(D(αF+(1−α)Bˉ))2]+EI∈pdata[(D(I)−1)2]
对于结果的后处理是通过阈值α>0.05\alpha\gt0.05α>0.05进行二值化,之后选择最大的NNN个连通区域,这个数量是通过分割网络确定的。
3. 实验结果
《Background Matting:The World is Your Green Screen》论文笔记相关推荐
- 论文笔记之Understanding and Diagnosing Visual Tracking Systems
Understanding and Diagnosing Visual Tracking Systems 论文链接:http://dwz.cn/6qPeIb 本文的主要思想是为了剖析出一个跟踪算法中到 ...
- 《Understanding and Diagnosing Visual Tracking Systems》论文笔记
本人为目标追踪初入小白,在博客下第一次记录一下自己的论文笔记,如有差错,恳请批评指正!! 论文相关信息:<Understanding and Diagnosing Visual Tracking ...
- 论文笔记Understanding and Diagnosing Visual Tracking Systems
最近在看目标跟踪方面的论文,看到王乃岩博士发的一篇分析跟踪系统的文章,将目标跟踪系统拆分为多个独立的部分进行分析,比较各个部分的效果.本文主要对该论文的重点的一个大致翻译,刚入门,水平有限,如有理解错 ...
- 目标跟踪笔记Understanding and Diagnosing Visual Tracking Systems
Understanding and Diagnosing Visual Tracking Systems 原文链接:https://blog.csdn.net/u010515206/article/d ...
- 追踪系统分模块解析(Understanding and Diagnosing Visual Tracking Systems)
追踪系统分模块解析(Understanding and Diagnosing Visual Tracking Systems) PROJECT http://winsty.net/tracker_di ...
- ICCV 2015 《Understanding and Diagnosing Visual Tracking Systems》论文笔记
目录 写在前面 文章大意 一些benchmark 实验 实验设置 基本模型 数据集 实验1 Featrue Extractor 实验2 Observation Model 实验3 Motion Mod ...
- Understanding and Diagnosing Visual Tracking Systems
文章把一个跟踪器分为几个模块,分别为motion model, feature extractor, observation model, model updater, and ensemble po ...
- CVPR 2017 SANet:《SANet: Structure-Aware Network for Visual Tracking》论文笔记
理解出错之处望不吝指正. 本文模型叫做SANet.作者在论文中提到,CNN模型主要适用于类间判别,对于相似物体的判别能力不强.作者提出使用RNN对目标物体的self-structure进行建模,用于提 ...
- ICCV 2017 UCT:《UCT: Learning Unified Convolutional Networks forReal-time Visual Tracking》论文笔记
理解出错之处望不吝指正. 本文模型叫做UCT.就像论文题目一样,作者提出了一个基于卷积神经网络的end2end的tracking模型.模型的整体结构如下图所示(图中实线代表online trackin ...
- CVPR 2018 STRCF:《Learning Spatial-Temporal Regularized Correlation Filters for Visual Tracking》论文笔记
理解出错之处望不吝指正. 本文提出的模型叫做STRCF. 在DCF中存在边界效应,SRDCF在DCF的基础上中通过加入spatial惩罚项解决了边界效应,但是SRDCF在tracking的过程中要使用 ...
最新文章
- halcon模板匹配干扰边缘消除办法(最硬核方式)
- P7962-[NOIP2021]方差【dp,差分】
- 连续系统PID及其离散化 位置式PID以及增量式PID
- HTML5编写船上航行,单体半滑行穿浪船船型与静水航行性能
- [Java] 蓝桥杯ADV-155 算法提高 上帝造题五分钟
- visual studio 最新稳定版本_速来围观!Android Studio 4.0 稳定版发布了
- 程序猿代码面试指南 PDF
- python勒索病毒代码_勒索病毒GandCrab-v5.04完整分析
- 华为鸿蒙爆出惊天骗局,华为鸿蒙系统爆出惊天骗局!
- 基于linux的软件测试,基于linux的Web服务器性能测试
- php 判断非负整数,PHP-检测负数
- NOIP模拟19/07/22
- Sentiment Classification towards Question-Answering with Hierarchical Matching Network 论文阅读笔记
- 对Java中常见的四种I/O模型理解
- pdf文档打不开是怎么回事?
- windows聚焦壁纸不更新_Win10系统下聚焦锁屏壁纸无法自动更换怎么解决
- 9 步SaaS SEO 策略
- window电脑端,微信客户端双开,两行代码。
- exe打开方式被木马或病毒修改,无法打开任何可执行文件的解决办法
- Win11的两个实用技巧系列之远程连接、录屏工具