人像分割技术目前已经逐渐成熟,在抖音、快手、美图等等APP中已经都有应用,而且是Camera实时处理,然而,追究细节,各家效果却大同小异,都存在一个问题:无法处理好边缘细节的分割,尤其是头发丝的处理,这里以人工智能大佬“商汤科技”的头发分割SDK为例,分割结果如下图所示:
我们可以看到,头发边缘的处理属于纯粹的硬分割,对于头发丝无能为力。
针对这个问题,一般的做法是使用图像Matting的方法,但是这种方法太耗时,实时起来比较困难,目前最新的论文,也是效果最好的论文是来自旷世的:Disentangled Image Matting
该论文的效果达到了发丝级别,如下图所示:
网络结构如下:
效果上看,确实达到了发丝级别,实例图发丝清晰可见,然而,本文却并未对时间消耗做出评估,可见,也是只适用于图片处理,距离实时还有一段距离。
为了在实时情况下分割出较好的边缘,本人将分割网络(这里使用的是Unet的小模型改进版)内嵌,在分割网络的基础上进行了几次卷积,模拟Matting的类似操作,但并没有使用Trimap,通过bgremove网站导出500张样本,训练1000次,仅对边缘细节处理做了可行性分析,得到了如下结果:
样本数量过少,背景单一,但是可以看到头发边缘问题有所改善,网络模型大小587K,可以手机端实时处理。
后面本人将会使用大批量的复杂背景样本进行测试,最后给出完整的结果。