一种适用于移动端的实时人体抠图方法与流程

    专利2022-07-08  122


    本发明涉及计算机视觉和计算机图形学领域,尤其涉及一种适用于移动端的实时人体抠图方法。



    背景技术:

    抠图是图像或者视频处理中经常用到的一项技术,是把前景目标从原始图片中分离出来,为后期合成做准备。其中,人像抠图已经在影视、直播、远程会议和在线教学等场景中得到广泛应用。借助于人像抠图技术,将人物实时、准确的从背景图片中分离开来,进而实现精细化的背景虚化或者逼真的影视特效等。

    目前在影视制作过程中,应用最广泛的抠图技术是绿幕抠图;绿幕抠图用纯绿色或蓝色作为背景颜色,并要求对现场进行均匀打光,防止出现阴影或色差,进而对场景中的物品或人物进行分割。绿幕抠图对拍摄现场,后期处理专业要求较高,但是能保证较好的抠图质量,满足影视要求。

    深度学习作为近几年兴起的ai技术,在图像,语音和文本等领域展现了强有力的优势,在日常生活和业界受到广泛的应用和关注。深度学习在人像分割也方面取得了许多成果。在专利cn104156959a中,利用graph-cut和预设人体区域进行像素分类;利用预设人体轮廓确定感兴趣区域,存在先天缺陷,应用面狭窄;其次该方法计算速度慢,无法达到移动端实时处理要求,而且不适用于动态背景抠图。在专利cn106530309a中,提出移动端抠图方法,需要事先采集一张背景图作为先验知识,该方法不能处理动态背景视频。cn107481261a的方法需要用户标记第一帧图像且依赖于深度图。在专利cn109377498a中,设计一种用户交互式的抠图方法,利用vgg16作为骨干网络,计算量大。专利cn110197490a提出一种自动人像抠图算法,该方法需首先进行人脸关键点检测,无法实现端到端的图像处理,难以达到移动端的实时要求。

    在移动端进行实时人像抠图,需要在处理速度和精度之间进行权衡。一方面,因为移动端算力有限,移动端的解决方案需要满足轻量化要求,才能保证处理过后的视频播放流畅、无卡顿;另一方面,在保证帧率的基础上,仍需要保证生成的人像质量。

    因此,本领域的技术人员致力于开发一种适用于移动端的实时人体抠图方法,设计一种轻量化、端到端的神经网络,实现在移动端进行实时人像抠图。



    技术实现要素:

    有鉴于现有技术的上述缺陷,本发明所要解决的技术问题是克服现有技术的缺陷,能够在移动端进行实时人像抠图。

    为实现上述目的,本发明提供了一种适用于移动端的实时人体抠图方法,实现抠图全自动,无人工处理;实现了轻量化网络,适用于移动端,适合图片和视频流实时处理,抠图质量高、平滑。

    在本发明的较佳实施方式中,本发明提供了一种适用于移动端的实时人体抠图方法,包括以下步骤:

    s1:数据集准备,包括数据采集和数据标注;

    s2:构建分割网络输入所述数据集;

    s3:构建轻量级u型分割网络;

    s4:构建分割网络的损失函数;

    s5:对网络进行反向传播,更新网络参数,获取训练好的分割模型。

    进一步地,所述步骤s1中的数据采集,还包括:搜集包含多张人像数据的数据集,所述数据集包含室内和室外多种生活场景、人体的不同姿态,不同年龄段和肤色的人群;所述数据集包含的人像数据为单人图像。

    进一步地,所述步骤s1中的数据标注包括:在图像中标注人像掩膜,背景区域像素值为0,人像区域像素值为255。

    进一步地,所述步骤s2中,所述数据集包括当前帧及所述当前帧对应的粗糙人像掩膜,所述粗糙人像掩膜可以是前一帧的人像分割掩膜或手机相机采集的粗糙掩膜。

    进一步地,所述输入数据集为rgba四通道图像,所述图像像素尺寸为192×256;具有所述尺寸的所述图像可保证网络足够的处理速度和抠图效果。

    进一步地,所述步骤s3中的u型分割网络,包括编码模块和解码模块,所述编码模块和解码模块均由残差u型模块组成,对所述残差u型模块进行轻量化设计,以减小网络计算量,保证网络推理速度。

    进一步地,所述残差u型模块包括不同数量的卷积模块、下采样模块和上采样模块;所述残差u型模块中的卷积和采样模块的数量随网络结构深度的增加递减;

    所述卷积模块包含深度可分离卷积层、归一化层、激活函数层;所述深度可分离卷积层用于减少网络参数,减少网络计算时间;所述激活函数层为relu6函数;所述残差u型模块复用自身模块内的多尺度信息,同时获取局部和全局的上下文信息。

    进一步地,所述步骤s3还包括:

    s31:跨越连接,将所述编码器中各个u型模块提取的底层特征,跨越连接到所述解码器对应的模块,作为该模块的输入;

    s32:解码阶段,在不同层对特征图进行双线性插值,与所述跨越连接的特征进行通道连接,送入到所述残差u型模块;

    s33:在预测模块,提取所述解码阶段不同层的特征图进行通道连接,对连接后的特征进行卷积,利用sigmoid激活函数得到预测的图像掩模;

    s34:在所述解码阶段利用复合损失函数,对网络进行密集监视。

    进一步地,所述步骤s4中的复合损失函数,是利用均值方差函数作为网络的损失函数,所述均值方差定义:

    其中,yi为第i个数据的真值,为第i个数据的预测值;

    所述网络的损失函数包括三部分:主损失函数和两个辅助损失函数;所述主损失函数为网络最后一层所述sigmoid激活函数输出与掩膜真值的均方差;将所述残差u型模块的两个低分辨率特征图进行上采样,进行卷积和所述sigmoid函数激活,计算激活值跟真值的均方差,作为辅助损失函数。

    进一步地,所述步骤s5还包括:网络训练和权值更新,即在训练所述网络时,利用adamw优化器,根据预测值和真值之间的损失,对整个分割网络进行反向传播;当验证集的损失不再下降时,停止所述网络的训练;

    网络量化和部署,所述网络是在fp32精度上进行训练;在移动端部署时,对所述网络进行量化,并对所述网络进行fp16量化。

    本发明设计一种满足移动端快速人像抠图的过程和方法;该方法无需人工干预,所设计的抠图网络,具有轻量化的特点(模型仅149kb),非常适用于移动端应用部署,可以满足视频流的实时抠图需求。此外,可以生成精确平滑的人像掩膜,用于图像后期处理。

    以下将结合附图对本发明的构思、具体结构及产生的技术效果作进一步说明,以充分地了解本发明的目的、特征和效果。

    附图说明

    图1是本发明的一个较佳实施例的人像抠图方法的流程图;

    图2是本发明的一个较佳实施例的嵌套u型网络示意图;

    图3是本发明的一个较佳实施例的u型残差模块示意图。

    具体实施方式

    以下参考说明书附图介绍本发明的多个优选实施例,使其技术内容更加清楚和便于理解。本发明可以通过许多不同形式的实施例来得以体现,本发明的保护范围并非仅限于文中提到的实施例。

    在附图中,结构相同的部件以相同数字标号表示,各处结构或功能相似的组件以相似数字标号表示。附图所示的每一组件的尺寸和厚度是任意示出的,本发明并没有限定每个组件的尺寸和厚度。为了使图示更清晰,附图中有些地方适当夸大了部件的厚度。

    如图1所示,本专利所述方法包括以下步骤:

    s1:数据集准备,包括数据采集和数据标注;

    s2:构建分割网络输入所述数据集;

    s3:构建轻量级u型分割网络;

    s4:构建分割网络的损失函数;

    s5:对网络进行反向传播,更新网络参数,获取训练好的分割模型。

    本专利设计实现一种能够在移动端(特别是手机端)进行实时人体抠图的方法;该方法基于精心构建的轻量级神经网络结构,能够在移动端资源低占用的情况下,满足抠图实时性和高质量要求。

    具体实现步骤包括:

    1、数据准备

    深度学习是以数据为基础的技术,数据质量决定了算法的上限。为保证良好的抠图效果,需要准备高质量的人像抠图数据集;

    数据采集:在本方法中,搜集九万多张人像数据。该数据包含室内和室外各种生活场景、人体的不同姿态,各个年龄段和肤色的人群。数据集包含的人像数据大多为单人图像,即图像中仅包含一人。

    数据标注:在图像中标注人像掩膜,背景区域像素值为0,人像区域像素值为255。

    2、构建分割网络输入数据

    输入数据包含当前帧及其对应的粗糙人像掩膜。该粗糙的人像掩膜可以为前一帧的人像分割掩膜或者手机相机(如ios的arkit)采集的粗糙掩膜;

    输入数据为rgba四通道图像,图像尺寸为192×256;该尺寸的输入图像可以保证网络足够的处理速度和抠图效果。

    数据增强方式为随机翻转和随机裁剪。

    对图像各通道进行归一化;均值为[0.485,0.456,0.406,0],标准差为[0.229,0.224,0.225,1]。

    3、构建轻量级u型分割网络

    本方法基于u^2-net设计轻量型的嵌套u型网络结构,主要包含编码和解码模块,具体结构如图2所示。编码器和解码器均由残差u型模块组成(如图3所示),对该模块进行轻量化设计,以减小网络计算量,保证网络推理速度。u型网络结构在分割方面有助于恢复边缘细节,获得精细准确的边缘。

    残差u型模块是本方法网络结构的重要组成部分;该模块由不同数量的卷积模块、下采样和上采样组成;随着网络结构的深度的增加,该模块中的卷积和采样模块数量呈递减状态。卷积模块包含深度可分离卷积层、归一化层、激活函数层。深度可分离卷积层利于减少网络参数,减少网络计算时间,提高其推理速度。激活函数为relu6函数,以此保证移动端进行float16推理时,仍具有较好的数值分辨率。残差u型模块复用模块内的多尺度信息,有助于同时获取局部和全局的上下文信息。图二所示示例模块为本方法网络的第一个残差模块,在该残差模块中,卷积层特征的最大输出通道数量仅为28,中间卷积层的输入输出通道数仅为{16,16}或者{32,16}。网络的其他残差模块和该模块类似,但是包含更少的卷积模块和采样模块。

    跨越连接:将编码器中各个u型模块提取的底层特征,跨越连接到解码器对应的模块,作为该模块的输入;跨越连接为了恢复在编码器阶段的信息损失。

    在解码阶段,在不同层对特征图进行双线性插值,与跨越连接的特征进行通道连接,送入到残差u型模块

    在预测模块,提取解码阶段不同层的特征图进行通道连接,对连接后的特征进行卷积,利用sigmoid激活函数得到预测的图像掩模

    在解码阶段利用复合损失函数,对网络进行密集监视;该方法相当于在网络里加入注意力机制,有助于提高分割精度

    4、构建分割网络的复合损失函数

    在本方法中,利用均值方差(mse)函数作为网络的损失函数,mse定义如下式所示。该函数有助于网络产生平滑的人像掩膜,有效避免人像边缘锯齿现象。

    其中,yi为第i个数据的真值,为第i个数据的预测值。

    网络总的损失函数由三部分组成:主损失函数和两个辅助损失函数。

    主损失函数为网络最后一层sigmoid激活函数输出与掩膜真值的均方差。将网络残差u型模块的两个低分辨率特征图进行上采样,进行卷积和sigmoid函数激活,计算激活值跟真值的均方差,作为辅助损失函数。复合损失函数为上述三个损失函数之和。

    5、网络训练和权值更新

    在训练网络时,利用adamw优化器,根据预测值和真值之间的损失,对整个分割网络进行反向传播;当验证集的损失不再下降时,停止网络的训练。

    6、网络量化和部署

    为保证训练精度,本方法的网络是在fp32精度上进行训练;为提高网络推理速度,在移动端部署时,需要对网络进行量化;为保证网络计算精度,对网络进行fp16量化;量化后的网络仅为149kb,网络模型小。

    网络移动端部署可以依赖ncnn、mnn等移动计算框架;例如在ncnn中,本方法中的网络模型在进行fp16优化后,推理速度能达到30fps。

    本方法构建一种全自动化的轻量型神经网络,可以用于移动端(特别是手机端)的人像抠图,既能用于单帧图像处理,又可满足视频实时处理的要求;所生成的人像掩膜质量高,边界无锯齿现象。产生的高质量掩膜可以用于移动端的背景虚化,虚拟背景等应用。

    以上详细描述了本发明的较佳具体实施例。应当理解,本领域的普通技术无需创造性劳动就可以根据本发明的构思作出诸多修改和变化。因此,凡本技术领域中技术人员依本发明的构思在现有技术的基础上通过逻辑分析、推理或者有限的实验可以得到的技术方案,皆应在由权利要求书所确定的保护范围内。


    技术特征:

    1.一种适用于移动端的实时人体抠图方法,其特征在于,包括以下步骤:

    s1:数据集准备,包括数据采集和数据标注;

    s2:构建分割网络输入所述数据集;

    s3:构建轻量级u型分割网络;

    s4:构建分割网络的损失函数;

    s5:对网络进行反向传播,更新网络参数,获取训练好的分割模型。

    2.如权利要求1所述的适用于移动端的实时人体抠图方法,其特征在于,所述步骤s1中的数据采集,还包括:搜集包含多张人像数据的数据集,所述数据集包含室内和室外多种生活场景、人体的不同姿态,不同年龄段和肤色的人群;所述数据集包含的人像数据为单人图像。

    3.如权利要求1所述的适用于移动端的实时人体抠图方法,其特征在于,所述步骤s1中的数据标注包括:在图像中标注人像掩膜,背景区域像素值为0,人像区域像素值为255。

    4.如权利要求1所述的适用于移动端的实时人体抠图方法,其特征在于,所述步骤s2中,所述数据集包括当前帧及所述当前帧对应的粗糙人像掩膜,所述粗糙人像掩膜可以是前一帧的人像分割掩膜或手机相机采集的粗糙掩膜。

    5.如权利要求4所述的适用于移动端的实时人体抠图方法,其特征在于,所述输入数据集为rgba四通道图像,所述图像像素尺寸为192×256;具有所述尺寸的所述图像可保证网络足够的处理速度和抠图效果。

    6.如权利要求1所述的适用于移动端的实时人体抠图方法,其特征在于,所述步骤s3中的u型分割网络,包括编码模块和解码模块,所述编码模块和解码模块均由残差u型模块组成,对所述残差u型模块进行轻量化设计,以减小网络计算量,保证网络推理速度。

    7.如权利要求6所述的适用于移动端的实时人体抠图方法,其特征在于,所述残差u型模块包括不同数量的卷积模块、下采样模块和上采样模块;所述残差u型模块中的卷积和采样模块的数量随网络结构深度的增加递减;

    所述卷积模块包含深度可分离卷积层、归一化层、激活函数层;所述深度可分离卷积层用于减少网络参数,减少网络计算时间;所述激活函数层为relu6函数;所述残差u型模块复用自身模块内的多尺度信息,同时获取局部和全局的上下文信息。

    8.如权利要求6所述的适用于移动端的实时人体抠图方法,其特征在于,所述步骤s3还包括:

    s31:跨越连接,将所述编码器中各个u型模块提取的底层特征,跨越连接到所述解码器对应的模块,作为该模块的输入;

    s32:解码阶段,在不同层对特征图进行双线性插值,与所述跨越连接的特征进行通道连接,送入到所述残差u型模块;

    s33:在预测模块,提取所述解码阶段不同层的特征图进行通道连接,对连接后的特征进行卷积,利用sigmoid激活函数得到预测的图像掩模;

    s34:在所述解码阶段利用复合损失函数,对网络进行密集监视。

    9.如权利要求1或8所述的适用于移动端的实时人体抠图方法,其特征在于,所述步骤s4中的复合损失函数,是利用均值方差函数作为网络的损失函数,所述均值方差定义:

    其中,yi为第i个数据的真值,为第i个数据的预测值;

    所述网络的损失函数包括三部分:主损失函数和两个辅助损失函数;所述主损失函数为网络最后一层所述sigmoid激活函数输出与掩膜真值的均方差;将所述残差u型模块的两个低分辨率特征图进行上采样,进行卷积和所述sigmoid函数激活,计算激活值跟真值的均方差,作为辅助损失函数。

    10.如权利要求1所述的适用于移动端的实时人体抠图方法,其特征在于,所述步骤s5还包括:网络训练和权值更新,即在训练所述网络时,利用adamw优化器,根据预测值和真值之间的损失,对整个分割网络进行反向传播;当验证集的损失不再下降时,停止所述网络的训练;

    网络量化和部署,所述网络是在fp32精度上进行训练;在移动端部署时,对所述网络进行量化,并对所述网络进行fp16量化。

    技术总结
    本发明公开了一种适用于移动端的实时人体抠图方法,包括以下步骤:S1:数据集准备,包括数据采集和数据标注;S2:构建分割网络输入所述数据集;S3:构建轻量级U型分割网络;S4:构建分割网络的损失函数;S5:对网络进行反向传播,更新网络参数,获取训练好的分割模型。本发明无需人工干预,所设计的抠图网络,具有轻量化的特点,非常适用于移动端应用部署,可以满足视频流的实时抠图需求,可以生成精确平滑的人像掩膜,用于图像后期处理。

    技术研发人员:杨文康;李康;张迎梁
    受保护的技术使用者:叠境数字科技(上海)有限公司
    技术研发日:2020.12.01
    技术公布日:2021.03.12

    转载请注明原文地址:https://wp.8miu.com/read-16366.html

    最新回复(0)