主页:background-matting-v2
参考代码:BackgroundMattingV2

1. 概述

导读:这篇文章在之前V1版本(在512*512输入的情况下只能跑到8FPS)的基础上针对高分辨率(HD,4K画质)提出了一种设计巧妙的matting方法,文章将其称之为之前方法的V2版本。该方法中将整个pipeline划分为两个部分:base和refine部分,前一个部分在缩小分辨率的输入下生成粗略的结果输出,其主要用于提供大体的区域位置定位(coarse predcition)。后一个网络在该基础上通过path selection选取固定数量的path(这些区域主要趋向于选择头发/手等难分区域)进行refine,之后将path更新之后的结果填充回原来的结果,从而得到其在高分辨率下的matting结果。整个pipeline下来文章的方法能在4K分辨率下跑到30FPS,在HD分辨率下跑到60FPS。当然文章使用的数据集(VideoMatte240K,PhotoMatte 13K/85)对最后结果的提升贡献了不少。

文章的方法设计的很巧妙,通过类似困难样本挖掘的方式排除了很大部分的简单区域,从而能够更好聚焦那些困难的区域,从而提升在高分辨率下的运算表现,文章的效果可以参考下图所示:

出了方法设计带来的运算速度提升之外,文章还提供了很多的matting数据集:

  • 1)VideoMatte240K:包含了384段的4K视频数据和100段的高清数据;
  • 2)PhotoMatte13K/85:其中包含了13665的高质量图片数据;

    这些数据对最后网络性能的影响见下表所示:

2. 方法设计

2.1 整体pipeline与basic网络部分

假设输入的图片/背景图/alpha图/前景图分别使用I,B,α,FI,B,\alpha,FI,B,α,F进行表示,那么将原来的背景替换之后得到的新图片描述为:
I‘=αF+(1−α)B‘I^{‘}=\alpha F+(1-\alpha)B^{‘}I‘=αF+(1−α)B‘
不同于之前直接预测前景,文章是通过预测前景的残差FR=F−IF^R=F-IFR=F−I,这样的改动文章指出可以提升训练的效果,使得可以将前景预测放置在较低的分辨率网络下。对于最后前景图的结果通过下面的方式得到:
F=max⁡(min⁡(FR+I,1),0)F=\max(\min(F^R+I,1),0)F=max(min(FR+I,1),0)
其实在matting的过程中绝大部分的像素都是在[0,1][0,1][0,1]上取值的,这就使得可以在低分辩网络下预测这些像素,而在高分辨下预测那些之间的像素(也就是文章说到的困难部分),对此文章是通过采样的方式进行path select,之后对path进行优化,可参考下图所示:

这里将文章的pipeline划分为两个部分GbaseG_{base}Gbase​和GrefineG_{refine}Grefine​:

  • 1)基础网络GbaseG_{base}Gbase​:该网络用ResNet-50作为backbone,后面嫁接DeepLab-V3系列网络的部分结构,再通过双线性采样操作构建一个编解码结构。它的输入是下采样的原始图和背景图Ic,BcI_c,B_cIc​,Bc​,其中ccc是下采样的stride值,该网络预测 出αc\alpha_cαc​,前景信息FcRF_c^RFcR​,alpha预测错误图EcE_cEc​,网络隐层特征(32个channel)HcH_cHc​;
  • 2)优化网络GrefineG_{refine}Grefine​:该网络使用Hc,I,BH_c,I,BHc​,I,B去优化αc,FcR\alpha_c,F_c^Rαc​,FcR​,被选中去优化的部分便是EcE_cEc​中值比较大的部分。之后生成与原图像大小一致的alpha图和前景图;

文章的整体pipeline见下图所示:

2.2 优化网络部分

前面简单说到了基础网络GbaseG_{base}Gbase​是由ResNet-50和DeepLab-V3构成的编解码网络结构,输出得到的结果是原始输入尺寸的1c\frac{1}{c}c1​,这个参数回根据输入尺寸的变化而变化,如,对于4K的分辨率取值为8。

得到上述的粗略优化结构之后文章将预测错误图EcE_cEc​采样到原始输入尺寸的14\frac{1}{4}41​,从而对于预测错误图EcE_cEc​就变成了E4E_4E4​,之后按照错误信息的值选择kkk个错误最大的区域(kkk的取值需要在效率与结果中进行权衡),因而选中的像素代表的便是去优化原图中的16∗(4∗4)16*(4*4)16∗(4∗4)大小的patch。

接下来便是分为两个阶段对粗糙的结果进行优化:

  • 1)将αc,FcR,Hc,I,B\alpha_c,F_c^R,H_c,I,Bαc​,FcR​,Hc​,I,B采样到原始输入尺寸的12\frac{1}{2}21​,并将这些输入concat起来,之后在预测错误图E4E_4E4​上选中位置处抠取8∗88*88∗8大小的patch(在),之后经过两个卷积之后分辨率变成4∗44*44∗4,之后又将它采样到8∗88*88∗8与B,IB,IB,I对应位置处抠取的8∗88*88∗8数据concat,之后经过两个卷积分辨率4∗44*44∗4(这里已经和E4E_4E4​所在分辨率一致),会预测出对应的alpha和前景信息;
  • 2)将αc,FcR\alpha_c,F_c^Rαc​,FcR​上采样到输入的分辨率,之后将patch优化的结果与粗糙的结果进行替换,从而得到最后优化之后的结果;

两个网络对于最后性能的影响见下表所示:

2.3 训练过程

对于数据增广采用了随机替换高清背景,仿射变换/水平翻转/亮度对比度饱和度调整/滤波/锐化/随机噪声等方式,而且对前景和背景都是分别处理的。

对于损失函数主要是去监督alpha图像和前景信息。对于alpha图(α\alphaα是预测结果,α∗\alpha^{*}α∗是GT,后续带星的以此类推),其损失描述为:
Lα=∣∣α−α∗∣∣1+∣∣∇α−∇α∗∣∣1L_{\alpha}=||\alpha-\alpha^{*}||_1+||\nabla_{\alpha}-\nabla_{\alpha^{*}}||_1Lα​=∣∣α−α∗∣∣1​+∣∣∇α​−∇α∗​∣∣1​
对于前景部分损失函数为:
LF=∣∣(α∗>0)∗(F−F∗)∣∣1L_F=||(\alpha^{*}\gt 0)*(F-F^{*})||_1LF​=∣∣(α∗>0)∗(F−F∗)∣∣1​
对于预测错误图的GT描述为E∗=∣α−α∗∣E^{*}=|\alpha-\alpha^{*}|E∗=∣α−α∗∣,其预测损失函数为:
LE=∣∣E−E∗∣∣2L_{E}=||E-E^{*}||_2LE​=∣∣E−E∗∣∣2​
结合base和refine网络的输入与输出则两个网络的损失函数描述为:
Lbase=Lαc+LFc+LEcL_{base}=L_{\alpha_c}+L_{F_c}+L_{E_c}Lbase​=Lαc​​+LFc​​+LEc​​
Lrefine=Lα+LFL_{refine}=L_{\alpha}+L_FLrefine​=Lα​+LF​
对于参数初始化ResNet-50部分使用ImageNet的预训练模型参数,DeepLab-V3中的参数使用Pascal VOC上训练的参数,选择c=4,k=5kc=4,k=5kc=4,k=5k与Adam优化器。一阶段中使用学习率为[1e−4,5e−4,5e−4][1e-4,5e-4,5e-4][1e−4,5e−4,5e−4]作为编码器/ASPP/解码器的学习率,之后加入refine网络,对应的学习率变为了[5e−5,5e−5,1e−4,3e−4][5e-5,5e-5,1e-4,3e-4][5e−5,5e−5,1e−4,3e−4],使用的数据集为Video Matte 240K,训练完成之后在使用PhotoMatte 13K。

3. 实验结果

《Background Matting V2:Real-Time High-Resolution Background Matting》论文笔记相关推荐

  1. 论文笔记之Understanding and Diagnosing Visual Tracking Systems

    Understanding and Diagnosing Visual Tracking Systems 论文链接:http://dwz.cn/6qPeIb 本文的主要思想是为了剖析出一个跟踪算法中到 ...

  2. 《Understanding and Diagnosing Visual Tracking Systems》论文笔记

    本人为目标追踪初入小白,在博客下第一次记录一下自己的论文笔记,如有差错,恳请批评指正!! 论文相关信息:<Understanding and Diagnosing Visual Tracking ...

  3. 论文笔记Understanding and Diagnosing Visual Tracking Systems

    最近在看目标跟踪方面的论文,看到王乃岩博士发的一篇分析跟踪系统的文章,将目标跟踪系统拆分为多个独立的部分进行分析,比较各个部分的效果.本文主要对该论文的重点的一个大致翻译,刚入门,水平有限,如有理解错 ...

  4. 目标跟踪笔记Understanding and Diagnosing Visual Tracking Systems

    Understanding and Diagnosing Visual Tracking Systems 原文链接:https://blog.csdn.net/u010515206/article/d ...

  5. 追踪系统分模块解析(Understanding and Diagnosing Visual Tracking Systems)

    追踪系统分模块解析(Understanding and Diagnosing Visual Tracking Systems) PROJECT http://winsty.net/tracker_di ...

  6. ICCV 2015 《Understanding and Diagnosing Visual Tracking Systems》论文笔记

    目录 写在前面 文章大意 一些benchmark 实验 实验设置 基本模型 数据集 实验1 Featrue Extractor 实验2 Observation Model 实验3 Motion Mod ...

  7. Understanding and Diagnosing Visual Tracking Systems

    文章把一个跟踪器分为几个模块,分别为motion model, feature extractor, observation model, model updater, and ensemble po ...

  8. CVPR 2017 SANet:《SANet: Structure-Aware Network for Visual Tracking》论文笔记

    理解出错之处望不吝指正. 本文模型叫做SANet.作者在论文中提到,CNN模型主要适用于类间判别,对于相似物体的判别能力不强.作者提出使用RNN对目标物体的self-structure进行建模,用于提 ...

  9. ICCV 2017 UCT:《UCT: Learning Unified Convolutional Networks forReal-time Visual Tracking》论文笔记

    理解出错之处望不吝指正. 本文模型叫做UCT.就像论文题目一样,作者提出了一个基于卷积神经网络的end2end的tracking模型.模型的整体结构如下图所示(图中实线代表online trackin ...

  10. CVPR 2018 STRCF:《Learning Spatial-Temporal Regularized Correlation Filters for Visual Tracking》论文笔记

    理解出错之处望不吝指正. 本文提出的模型叫做STRCF. 在DCF中存在边界效应,SRDCF在DCF的基础上中通过加入spatial惩罚项解决了边界效应,但是SRDCF在tracking的过程中要使用 ...

最新文章

  1. Zero-Copysendfile浅析
  2. DM8168 开发环境搭建
  3. sphinx随笔记了一下
  4. python像素处理_Python+OpenCV图像处理(五)—— 像素运算
  5. JoyOI(TYVJ)1061-Mobile Service【线性dp】
  6. 赵明晒荣耀20青春版三色真机图:哪款会是你的菜?
  7. 用户登陆进去后,没有权限操作
  8. 一个简单的string类,读书看报系列(一)
  9. 操作系统面试知识复习
  10. CDH6离线安装教程
  11. 串口转WIFI模块通信
  12. 职高计算机专业c语言_重庆市职业高中计算机专业C语言试题
  13. JAVA 实现银行卡归属地查询
  14. 股票数据开源接口-陆股通持股
  15. Android攻城狮fragment
  16. 软件测试面试过程中的一些回答思路及技巧,学会了稳过
  17. 我改变世界、我已看透、我不再是个程序员-IT创世诸神如是说
  18. js计算当前时间的为年的第几周,以及周对应的时间范围
  19. nacos注册成功但是服务管理界面没有内容
  20. 【系统分析师之路】系统分析师必知必会(需求分析篇)

热门文章

  1. jQuery实现仿五角星评分案例
  2. 基于pytorch使用实现CNN 如何使用pytorch构建CNN卷积神经网络
  3. 【精讲】Javascript模板字面量
  4. 基于舒适性的速度规划。对路面进行分级,基于路面状况对舒适性的影响对速度进行规划
  5. 超快速实现 svg 转 png,jpg等格式
  6. 第一章:Reac入门 与 第二章:React面向组件编程
  7. 如何提高自己画画的灵性?方法得用对!
  8. 多模态大模型的发展、挑战与应用
  9. 进来看tiktok如何变现和投放广告
  10. 【超分辨率】3分钟带你读懂