论文:Real-Time High-Resolution Background Matting(CVPR 2021)
Real-Time High-Resolution Background Matting
非常优秀的背景分割工作,推理速度高,4K分辨率30FPS、1080P分辨率60FPS,且分割图像的细节很好,其Refinement网络的设计至关重要,做此笔记简要分析其实现方法。
![](https://img-blog.csdnimg.cn/209e19588ca94ff79aa96bb26536efdd.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA57Kf5oKf6aWtJum-n-azouWKnw==,size_16,color_FFFFFF,t_70)
一、网络结构与损失函数
![](https://img-blog.csdnimg.cn/3266298d50034a5bb1ce5f5986dca613.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA57Kf5oKf6aWtJum-n-azouWKnw==,size_16,color_FFFFFF,t_70)
整个网络分为基本网络和Refinement网络两部分,基本网络包括backbone、ASPP和Decoder三部分,backbone部分作者尝试了Resnet101、Resnet50和MobileNetv2,ASPP是空间金字塔池化模块,具体结构可阅读deeplab系列的paper。
基本网络的输入与输出
- 输入:实际场景图(背景图+前景)、背景图,两者concat成6通道后输入
- 输出:mask、前景残差、误差概率图、隐藏特征,这几个输出是Decoder的输出在通道维度上划分得到的
Refinement网络的输入与输出
- 输入:实际场景图、背景图、基本网络的输出
- 输出:优化后的mask、前景残差
训练方法
先训练基本网络,然后再加上Refinement网络联合训练
损失函数
具体定义见论文,这里不作过多解释。
- 基本网络
- Refinement网络
二、Refinement网络
这部分是关键,所以单独列出来。根据论文的叙述,得到下面的伪代码。
三、总结
个人看法: refine模块的核心思想是通过误差概率图选出topk个点,这样不仅可以加速(不用在全图做refine),还有就是可以避免refine模块负优化本来分割得好的地方。如何让网络估计出一张好的误差概率图十分重要,这项工作没有对此用人工设置的显式的loss进行约束。
作者在文中提到他们的工作存在的缺陷:当主体在背景上投下大量阴影或与背景匹配颜色以及背景具有高度纹理时,方法会失败