目录
(2) Boundary-aware Instance Segmentation
(2)Deep Automatic Portrait Matting
(6)Disentangled Image Matting (TODO)
写在前面
之前的两段实习中,接触到了比较多人像分割的任务。现将这部分内容整理了一下,文章大部分内容写的比较早了,如有问题欢迎指正。本文内容主要分为两大部分:
一:通过Segmentation方法做人像分割。这类方法遵循传统的语义分割思路,同时针对人像的特点(如边缘、关键点等)做进一步优化,达到了较好的分割效果,但由于语义分割任务的天生局限性,这类人像分割虽然精度高但往往较为粗糙,因此现在可做的空间并不大,也没什么人做了。
二、通过Matting方法做人像分割。这类方法借鉴了图像处理中的Image Matting问题,并结合深度学习的手段,达到了较精细的人像分割效果。这类文章在这几年的顶会如CVPR、ICCV中频频出现,是个不错的方向。
===========更新 2020/2/13=========
Github上出了一个很好的开源项目 Pymatting: A Python library for alpha matting ,实现了五种传统的matting方法,包括:
- Closed Form Alpha Matting
- Large Kernel Matting
- KNN Matting
- Learning Based Digital Matting
- Random Walk Matting
可以学习参考一下~
===========更新 2020/1/2=========
阿里达摩院分享了它们关于抠图的研究和产品,主要用到的就是fuse matting这篇文章,可以借鉴学习。
当达摩院大牛学会抠图,这一切都不受控制了…… - 阿里云云栖号的文章 - 知乎 https://zhuanlan.zhihu.com/p/100327877
一、人像语义分割
(1) PortraitNet (改善loss)
PortraitNet: Real-time Portrait Segmentation Network for Mobile Device, Tsinghua University CAD & Graphics 2019
Paper: https://www.sciencedirect.com/science/article/pii/S0097849319300305
Code: https://github.com/dong-x16/PortraitNet
一句话点评:文章非顶会,可能是肖像分割太过简单,精度都很高没啥好比的;设计的几个模块虽然简单但都挺不错,代码有开源,值得学习;
主要贡献:
1. 针对自拍的人像,训练了一个实时人像语义分割网络
2. 在训练中增加了Boundary loss用来改善边缘分割的效果。具体实现方法是在最后一层之前增加一个1*1的卷积分支做boundary loss。首先使用Canny算子生成boundary的GT,在 这个分支中使用的是交叉熵+focal loss(由于前后景不均衡)
3. 在训练中增加了Consistency constraint loss用来增强鲁棒性。具体实现方法是:通过对原图A进行光照的变换,得到A',对A和A'使用同样的网络进行预测,得到的heatmap图B'的质量会比B稍差,因此把B作为B'的Soft Label,通过K-L divergence定义Consistency constraint loss,最后与交叉熵损失一起组成新的损失函数。
(2) Boundary-aware Instance Segmentation
一句话点评:CVPR 17’的文章,思路新颖,外扩bbox后分割的效果也挺惊艳,更符合人的认知,但实验不够有说服力,时耗也比较大,引用和follow work不多
主要贡献:
- 传统的Top-Down分割,如果检测框不准,分割也就不准,因为分割的范围被限定在了检测框内,因此,作者提出了利用一个multi-valued map ,将像素点到物体边缘的最小距离进行编码,然后就可以通过< inverse distance transform>得到一个不局限于box的mask。
- 作者设计的模块称为object mask network (OMN),OMN可以替换掉原有的Mask预测模块。RPN+ROI warping的输出作为输入,用全连接+Sigmoid输出maps,然后通过residual deconv network,将maps解码成binary object mask。能这样做的原因是这些形态学操作可以转化成一系列的deconv(相同权重但kernel/padding不同)
- 作者设计的网络称作boundary-aware instance segmentation (BAIS)。由RPN+OMN分割+box回归/分类+OMN+box回归/分类五个阶段组成。因此计算量挺大的。
(3) Pose2Instance(Top-Down)
Pose2Instance: Harnessing Keypoints for Person Instance Segmentation, Google