PortraitNet: Real-time portrait segmentation network for mobile device

PortraitNet: Real-time portrait segmentation network for mobile device


论文链接:https://www.sciencedirect.com/science/article/pii/S0097849319300305
发表出处:2019 CAD&Graphics
1.背景
一般的语义分割网络用来做人像精细分割效果都不太行,原因如下:
(1)通常包含至少一个人,其面部面积至少占整个图像的10%;
(2)往往具有模糊的边界和复杂的光照条件;
(3)分割网络很大,不适合移动端实时快速的人像分割;
2.内容
提出了一个实时人像分割模型,称为PortraitNet,可以有效地在移动设备上运行。
PortraitNet是基于一个轻量级的U型架构,在训练阶段有两个辅助损耗,而PortraitNet推理在测试阶段不需要额外的成本。
两个辅助损失是边界损失和一致性约束损失。前者提高了边界像素的精度,后者增强了复杂光照环境下的鲁棒性。
3.网络
整体结构如图所示:
在这里插入图片描述
绿色块代表编码器模块,括号中的数字代表下采样速率,为了提高速度,backbone是mobileNetV2。
黄色和紫色块代表解码器模块,采用U-Net结构。D-Block块中有两个分支,一个分支包含两个深度可分离的卷积。另一个包含一个单一的1 ×1卷积来调整通道的数量。同时解码器模块中连接特征图为融合图,以充分利用模型的能力。
利用两个辅助损失,mask loss和辅助损失来达到更好的效果,其中mask loss就是用来计算像素分类的二值交叉熵loss。辅助损失除了boundary loss,还有一个consistency constraint loss。下面着重讲一下;
4.辅助损失
(1)边界损失
首先为了保证网络的体积,不能因为想优化边界就增加额外的分支,所以作者就在最后一层,增加了一个conv层。用来预测边界。
边界的label来自对分割gt的canny算子的输出。设置线宽为4.
效果如下图所示:
在这里插入图片描述
因为边界占据图像很小的部分,为了避免极度的样本不均衡,所以用的是focal loss。
在这里插入图片描述
L m是交叉熵损失,L e是focal 损失。λ是边界损失的权重。y i表示像素i的GT标签,p i表示像素I的预测概率。
由于仅使用一个卷积层来生成边界掩码,掩码特征和边界特征会在特征表示中产生无效竞争。为了避免这种情况,应该设置小λ。边界损失可以提高模型对人像边界的敏感性,进而提高分割精度。
(2)一致性损失
自拍照在不同的光照条件下会得到亮度不同但是内容相同的图片,这些图像的label虽然一致但是网络可能因为这些图像不同的像素值得到不同的分割预测,为了避免这种情况的发生,作者就提出了一个一致性损失,从而得到一个更加稳定的结果。
如图所示:
在这里插入图片描述
对于原始图像,我们先用变形增强的方法生成图像A,然后对图像A进行纹理增强,生成A '。纹理增强不会改变图像的形状,因此对图像A和A '的分割是相同的。
假设图像A的网络输出为heatmap B,图像A '的输出为heatmap B ',则heatmap B和B '在本质上是相同的,即网络最后的输出图。B和B’都去和GT参与计算loss。(L m 是用GT和B, B’得到的loss,就是普通的BCE。)
但是由于纹理增强的方法,图像A’的质量比A差,因此生成的B’比B差,因此作者使用质量更高的heatmap B作为heatmap B’的软标签。具体来说,在heatmap B和B’之间添加一个一致性约束损失,在B和B’之间计算 KL loss(L C):
在这里插入图片描述
这里用α来平衡两种损失。T用于平滑输出。一致性约束损失可以进一步提高模型的准确性,增强模型在不同光照条件下的鲁棒性。
5.结果
(1)与其他方法比较的量化指标结果:
在这里插入图片描述
(2)视觉效果
在这里插入图片描述
(3)速度比较:
在这里插入图片描述
(4)损失函数的消融实验:
在这里插入图片描述

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值