本发明属于图像处理技术领域,特别是涉及一种基于深度学习的头发分割方法。
背景技术:
图像分割一直是计算机视觉领域比较重要的一个分支,现如今应用最广的是一些交互式的分割方法如grabcut等基于图的分割方法,这些方法需要手动指定一部分前背景种子点,而手机设备上要有好的用户体验的话要求尽量自动化;grabcut等图割方法仅仅使用颜色信息以及空间信息进行分割,缺少高层语义上的分割与理解。
头发分割属于图像分割中的一种情况,发型的复杂性、颜色的多变、纹理的不确定性、亮度的不确定性等使得传统的图割的方法并不能很好地分割头发。而现有的头发分割方法使头发分割的效果差,无法明确的分割出头发区域;无法实现自动分割,需要人工干预;无法对任意分辨率的图像进行头发分割;占用内存大,运行速度慢。
技术实现要素:
为了解决上述问题,本发明提出了一种基于深度学习的头发分割方法,能够有效避免传统分割方法的不足,达到较好的头发分割效果,不需要人工干预,实现自动分割;能够对任意分辨率的图像进行分割;占用内存小,运行速度快。
为达到上述目的,本发明采用的技术方案是:一种基于深度学习的头发分割方法,包括步骤:
s100获取原始图像;
s200对原始图像进行人脸检测,得到人脸关键点;
s300利用人脸关键点生成人脸关键部位描述图;
s400将原始图像和人脸关键部位描述图合并,获得4通道图像;
s500将所述4通道图像输入卷积神经网络模型,通过卷积神经网络模型推断出每个像素点是头发的概率,从而获得头发概率图;
s600利用头发概率图对原始图像进行头发分割。
进一步的是,步骤s300中,利用人脸关键点建立对于人脸器官以及轮廓的二值蒙版图,并由所述二值蒙版图作为人脸关键部位描述图。
进一步的是,在所述卷积神经网络模型的训练过程中,通过人工标定多组人脸图片作为训练样本训练卷积神经网络模型。
进一步的是,所述卷积神经网络模型包括卷积层、maxpooling层、unpooling层、add层和softmax层;模型简单、占用空间小且运算速度快。
进一步的是,在所述卷积神经网络模型的卷积层引入relu激活函数,加快计算速度。
进一步的是,利用头发概率图,通过最小化能量函数对原始图像进行头发分割,最小化能量函数公式为:
其中,yi为推断的头发概率图,
采用本技术方案的有益效果:
通过人脸关键部位描述图作为卷积神经网络模型,增强卷积神经网络模型对人头部区域的理解能力,从而能够精确的分割出头发区域;
利用卷积神经网络模型,能够加快计算速度,可以实现任意分辨率的输入;
模型结构简单,内存占用小,适合在手机上运行。
附图说明
图1为本发明的一种基于深度学习的头发分割方法流程示意图。
具体实施方式
为了使本发明的目的、技术方案和优点更加清楚,下面结合附图对本发明作进一步阐述。
在本实施例中,参见图1所示,本发明提出了一种基于深度学习的头发分割方法,包括步骤:s100-s600。
s100获取原始图像irgb,irgb为3通道rgb图像。
s200对原始图像进行人脸检测,得到人脸关键点。
s300利用人脸关键点生成人脸关键部位描述图。
利用人脸关键点建立对于人脸器官以及轮廓的二值蒙版图,并由所述二值蒙版图作为人脸关键部位描述图。
s400将原始图像和人脸关键部位描述图合并,获得4通道图像。
s500将所述4通道图像输入卷积神经网络模型,通过卷积神经网络模型推断出每个像素点是头发的概率,从而获得头发概率图;
在所述卷积神经网络模型的训练过程中,通过人工标定多组人脸图片作为训练样本训练卷积神经网络模型。
所述卷积神经网络模型包括卷积层、maxpooling层、unpooling层、add层和softmax层;模型简单、占用空间小且运算速度快。
在所述卷积神经网络模型的卷积层引入relu激活函数,加快计算速度。
卷积神经网络模型结构:
其中:
blk(in,out,kxk)为:convolution_2d+relu;卷积层的输入为in个通道,卷积层输出为out个通道,采用kxk大小的核;
unpooling(kxk,stride):采用kxk大小的核,stride为步长;
maxpooling(kxk,stride):采用kxk大小的核,stride为步长。
具体推断过程为:
1.将输入的4通道图像经过输入层:blk(4,32,3x3),得到32通道的特征图a0;
2.将32通道的特征图a0经过blk(32,32,3x3),得到32通道的特征图a1;
3.将32通道的特征图a1经过maxpooling(4x4,4),得到32通道的特征图a2;
4.将32通道的特征图a2经过blk(32,64,3x3),得到64通道的特征图a3;
5.将64通道的特征图a3经过maxpooling(2x2,2),得到64通道的特征图a4;
6.将64通道的特征图a4经过blk(64,2,3x3),得到2通道的特征图a5_1;
7.将64通道的特征图a4经过blk(64,128,3x3),得到128通道的特征图a5_2;
8.将128通道的特征图a5_2经过maxpooling(4x4,4),得到128通道的特征图a6;
9.将128通道的特征图a6经过blk(128,2,1x1),得到2通道的特征图a7_1;
10.将128通道的特征图a6经过blk(128,128,3x3),得到128通道的特征图a7_2;
11.将128通道的特征图a7_2依次经过maxpooling(2x2,2)、blk(128,128,1x1)、blk(128,64,3x3)、blk(64,32,3x3)、blk(32,16,3x3)、blk(16,8,5x5)、blk(8,2,7x7)、unpooling(2x2,2)、blk(2,2,3x3),得到2通道的特征图a8;
12.将2通道的特征图a8与a7_1相加,得到2通道的特征图a6_add;
13.将2通道的特征图a6_add依次经过unpooling(4x4,4)、blk(2,2,5x5),得到2通道的特征图a6_up;
14.将2通道的特征图a6_up与a5_1相加,得到2通道的特征图a5_add;
15.将2通道的特征图a5_add依次经过unpooling(8x8,8)、blk(2,2,7x7)、softmax,得到2通道的结果图a0_1;
16.取结果图a0_1的第二个通道作为最终的输出,即头发概率图。
s600利用头发概率图对原始图像进行头发分割。
利用头发概率图,通过最小化能量函数对原始图像进行头发分割,最小化能量函数公式为:
其中,yi为推断的头发概率图,
以上显示和描述了本发明的基本原理和主要特征和本发明的优点。本行业的技术人员应该了解,本发明不受上述实施例的限制,上述实施例和说明书中描述的只是说明本发明的原理,在不脱离本发明精神和范围的前提下,本发明还会有各种变化和改进,这些变化和改进都落入要求保护的本发明范围内。本发明要求保护范围由所附的权利要求书及其等效物界定。