
技术摘要:
本发明公开了一种基于自适应八叉树头发卷积神经网络的头发重建方法,包括:1)使用公开的头发数据库构造训练集,将数据库内的三维头发丝模型转为以自适应八叉树为结构的头发方向场,生成对应的头发方向图、头发区域图和身体区域图;2)设计一种自适应八叉树头发卷积神经 全部
背景技术:
获取人体表面的三维网格表示一直是人机交互,虚拟现实,三维游戏以动画、电影 特效制作等领域的重要技术之一。而头发作为人体的重要组成部分,头发重建技术的重要 性也不言而喻。在虚拟现实等应用中,恢复逼真的三维头发模型,将大大增强虚拟环境应用 的沉浸感,提高用户的舒适度;在三维游戏和动画电影制作领域也是一样,高精度的头发重 建技术将大大增强三维人物的真实感。同时头发重建在发型设计,三维打印,生成三维雕像 等领域也有重要应用。 基于单张图片的头发重建技术因其简单易用,技术门槛等优势在近年来获得越来 越多的关注,同时在深度学习技术的助力下也取得较大突破。目前大多数头发重建网络遵 循相似的重建策略:首先对发型图片提取特征,然后从特征回归目标发型的头发方向场。为 了生成高质量的方向场,这些方法必须保证方向场的分辨率足够高。然而生成高分辨率的 体数据,需要耗费大量的三维卷积模块,并且随着分辨率的升高,计算开销也呈指数增长。 由于头发细长的特殊结构,使得头发方向场内存在大片空区域,即包含许多方向 向量为零向量的元素,这些空元素不仅浪费了存储空间,也为头发重建网络带来了多余的 计算开销。本发明利用八叉树的数据结构,对方向场元素进行删减压缩:首先是舍弃空元素 只保留非空元素,然后对方向场内相邻且方向相似的非空元素进行合并,只保留他们的平 均方向,这样在保证精度的同时,更进一步地压缩了方向场的体量。
技术实现要素:
本发明的目的在于克服现有技术的缺点与不足,提出了一种基于自适应八叉树头 发卷积神经网络的头发重建方法,实现从单张图片中恢复三维头发,用户只需提供一张含 有头发的RGB图片,该方法自动地将其进行特征提取,然后利用训练好的自适应八叉树头发 卷积神经网络恢复出与目标头发形状和外观都一致的三维头发模型。 为实现上述目的,本发明所提供的技术方案为:一种基于自适应八叉树头发卷积 神经网络的头发重建方法,包括以下步骤: 1)使用公开的头发数据库构造训练集,将数据库内的三维头发丝模型转为以自适 应八叉树为结构的头发方向场,同时生成对应的头发方向图、头发区域图和身体区域图; 2)设计一种自适应八叉树头发卷积神经网络来重建头发方向场,该自适应八叉树 头发卷积神经网络采用自动编码器的结构,利用由多层二维卷积组成的编码器将输入图片 转化为高维特征,然后由叠加的八叉树卷积层组成的解码器从高维特征恢复出目标发型的 方向场;其中,为了弥补高维特征的对细节信息的忽略,自适应八叉树头发卷积神经网络将 编码器的中间层特征直连到解码器的对应分辨率层中,从而增强网络对低维特征的捕捉; 5 CN 111583384 A 说 明 书 2/8 页 3)对输入图片进行预处理:将发型图片转化为能够供自适应八叉树头发卷积神经 网络识别的头发信息特征图,包含步骤:分割出图片内的头发区域像素,提取头发方向图, 将图片与预定的人体模板进行对齐; 4)对输出方向场的后处理,将自适应八叉树头发卷积神经网络生成的方向场转为 由发丝表示的头发模型,完成头发重建。 在步骤1)中,所述的公开数据库是指USC-HairSalon数据库,该数据库包含343个 形状各异、大小不同的头发模型,每个模型由1万根发丝组成,每根发丝由100个点组成;所 述的生成方向图是将模型的发丝方向进行光栅化,具体过程是:首先将模型的头发丝方向 编码成颜色,附着在头发模型三维网格的三角面片上,然后利用光栅化算法,渲染得到尺寸 为512×512的RGB颜色图,即发丝方向图;所述的生成头发区域图、身体区域图是指在上述 光栅化过程,获取对应头发网格的占位图、身体网格的占位图,这两张图都是尺寸为512× 512的单通道二进制图,即值为0或者1;所述的将三维头发丝模型转化以自适应八叉树为结 构的头发方向场,包含以下步骤: 1 .1)将头发丝模型转化为分辨率为128×128×128的体素场,体素场中的每个元 素存储一个三维向量,三维向量代表发型在该元素的局部方向,局部方向由经过该元素的 所有发丝段的方向取平均计算得到,然后将体素场的所有向量进行归一化,转化为单位向 量; 1 .2)将体素场转化为以自适应八叉树为结构的方向场:将分辨率为128×128× 128的体素场看成是一棵深度为7的满八叉树,该树的每个节点包含一个三维的方向向量, 通过对满八叉树进行剪枝即可获得自适应八叉树,从而得到以自适应八叉树为结构的方向 场;其中,从左到右遍历满八树深度为1的所有节点,判断其是否符合以下两个剪枝条件;第 一个剪枝条件是该节点的所有子树都为空;第二个剪枝条件是该节点的所有子树都不为空 且所有子树节点的方向向量都近似,即所有子树节点的方向向量之间的欧式距离值小于或 等于阈值Thold;如果符合第一个剪枝条件,则该节点的所有子树将被删除,改节点退化为 空叶子节点,并且方向向量设置为零向量;如果符合第二个剪枝条件,该节点则退化成非空 叶子结点,并且方向向量设置为所有子树节点的方向向量的平均值;在深度为1的节点遍历 完毕后,以同样的方式遍历判断深度为2的所有节点,如此循环,直到深度达到7。 在步骤2)中,设计的自适应八叉树头发卷积神经网络由三部分组成,分别是编码 器、解码器和损失函数,具体情况如下: 编码器:将尺寸为(512×512,4)的输入图片转化为尺寸为(1×1,64)的隐向量,编 码器由7层二维卷积层组成,每一层卷积层都会缩小特征的尺寸一倍,同时增加通道数一 倍,最后在第7层后增加一层全连接层,将特征图转为隐向量; 解码器:从隐向量恢复目标发型的方向场,解码器由7层三维反卷积层组成,其中 前4层是普通三维反卷积,后3层是八叉树反卷积层;普通三维反卷积层进行特征提取与运 算,八叉树反卷积层预测所在层所对应的方向场,并输出方向场中所有的非空叶子节点,也 就是输出该非空叶子节点的方向向量;同时,自适应八叉树头发卷积神经网络将编码器中 间层的特征直连到解码器对应分辨率层,为解码器提供细粒度的特征,记编码器第2、3、4层 的输出特征分别为f2、f3、f4,它们的尺寸分别为(128×128 ,64)、(64×64 ,64)、(32×32 , 128),记解码器的第5、6、7层的输出特征分别为F5、F6、F7,它们的尺寸分别为(32×32×32, 6 CN 111583384 A 说 明 书 3/8 页 32)、(64×64×64,16)、(128×128×128,8);首先将f2送入输出通道数为128的1×1卷积层 转化为尺寸为(128×128,128)的特征f′2,将f3送入输出通道数为64的1×1卷积层转化为尺 寸为(128×128,64)的特征f′3,将f4送入输出通道数为32的1×1卷积层转化为尺寸为(32× 32,32)的特征f′4。然后将特征f′2的尺寸变形为(128×128×128,1),并与F7根据通道进行 合并,得到尺寸为(128×128×128,9)的特征并送入解码器下一层;将特征f′3的尺寸变形 为(64×64×64,1),并与特征F6根据通道进行合并,得到尺寸为(64×64×64,17)的特征并 送入解码器下一层;将特征f′4的尺寸变形为(32×32×32,1),并与特征F5根据通道进行合 并,得到尺寸为(32×32×32,33)的特征并送入解码器下一层; 损失函数:在解码器中,后3层八叉树反卷积层分别负责预测第5、6、7层所对应的 方向场,并输出方向场的结构以及非空叶子节点,根据交叉熵函数对预测结构和真实结构 计算损失值LSTR,根据欧式距离函数对预测叶子节点和真实叶子节点计算损失值LCON,假设 Cl为第l层输出的节点集合,l={5,6 ,7}, 为网络预测的结构概率,其中 分别代表该节点是空叶子节点、非叶子节点、非空叶子节点的概率, 则是对应的真实概率,则损失值LSTR定义为: 其中,|Cl|为第l层输出的节点个数;假设 为第l层输出的叶子节点集合,l={5, 6,7},vc为网络预测的叶子节点的方向向量, 为真实的方向向量,则损失LCON定义为: 其中, 为第l层输出的叶子节点个数,则总损失L定义为:L=(1-λ)LSTR LCON,λ是 混合系数。 在步骤3)中,对输入图片进行预处理,包含以下步骤: 3.1)分割出图片中头发区域像素:采用全卷积网络来实现语义分割,将输入图片 中的每个像素归为头发类、身体类、背景类中的一类,收集所有被标为头发类的像素就得到 头发区域图Mhair; 3.2)提取头发方向图:首先将上一步得到的头发区域图Mhair转化为单通道的灰度 图,然后利用Gabor滤波器提取发丝走向,接着计算各个走向的置信度,组成置信度图,根据 置信度值过滤掉低可信的发丝方向得到稀疏方向图,然后利用基于置信度的双线性滤波器 对稀疏走向图进行扩散,从而得到密集的发丝方向图Mdirection,其基于置信度的双线性滤波 器定义如下: 其中,I为原始图片, 为卷积后的图片,x和y为图片中的像素,Ω为卷积窗口,C 7 CN 111583384 A 说 明 书 4/8 页 (y)为像素y的置信度,Wp是正则项,G为以σ为方差的高斯函数; 3.3)将图片与预定的人体模板进行对齐:首先使用人脸特征点检测算法识别输入 图片中的人脸以及68个人脸特征点,接着输入图片通过平放缩操作对齐到可旋转的预定人 体模板上,记图片的平移量为t,放缩量为s,人体模板的旋转量为R,对齐过程为最小化如下 能量Ealign: 其中,k为特征点序号,Mk为人体模板的第k个三维特征点,Uk为输入图片的第k个二 维特征点,Π代表弱透视投影矩阵;将求解得到的平移量t和放缩量s再应用在步骤3.2)求 得的密集发丝方向图Mdirection,获得对齐的发丝方向图M′direction;将求解得到的平移量t和 放缩量s应用在步骤3.1)求得的头发区域图Mhair,获得对齐的头发区域图M′hair;将求解得到 旋转量R应用在预定的标准人体模板,得到对齐的人体模板,并通过光栅化算法渲染得到对 齐人体模板的占位图Mbody;最后根据通道将M′direction、M′hair、Mbody进行合并,得到图Minput,将 Minput作为训练完毕的自适应八叉树头发卷积神经网络的输入。 在步骤4)中,将自适应八叉树头发卷积神经网络生成的方向场转为由发丝表示的 头发模型,首先确定发根点,在步骤3)求得的对齐人体模板的头皮上均匀随机采样Nstr个位 置做为发根点,记发根点组成的集合为{ri},i=1,2...Nstr;记自适应八叉树头发卷积神经 网络生成的以自适应八叉树为结构的方向场为O,采用如下步骤长出头发丝: 4.1)定位发根点:记第i根发丝为Si,将发根点ri看作是组成发丝的第一个点Si0, 根据Si0的坐标位置计算其在O中的体素o0及对应的方向向量d0; 4.2)进入下一个体素:以Si0为起点,以d0为方向发射射线,求出射线与体素o0的交 点Si1,则Si1被认为是下一个发丝节点,根据O的自适应八叉树拓扑结构能够得到与体素o0相 邻且有交点Si1的体素o1,记o1对应的方向向量为d1,如果不存在满足条件的体素o1,说明发 丝生长至边界,则发丝的生长就此终止; 4.3)发丝生长:若以Si1为起点,d1为方向的直射线不会穿回体素o0,则d1是下一个 有效方向,则以Si1为起点,d1为方向返回上面第二步继续迭代,否则,说明该方向为不合理 方向,则发丝的生长也就此停止。 本发明与现有技术相比,具有如下优点与有益效果: 1、由于头发呈细长的形状特点,头发方向场中大部分元素都是空体素。本发明采 用自适应八叉树的结构存储头发方向场,只保留具有方向的体素,舍弃空体素,使得方向场 的结构更为紧凑,同时占用空间大大减少。 2、相比生成密集的头发方向场的现有技术,本发明设计的自适应八叉树头发卷积 神经网络只需生成结构紧凑的自适应八叉树方向场,使得训练和测试的内存开销和运行时 间都大大减少。 3、本发明充分利用卷积神经网络对二维平面特征敏感的特点,对输入图片与预定 人体模板进行对齐,使得自适应八叉树头发卷积神经网络得以感知身体和头发位置,同时 重建的结果发型与输入发型具有很好的位置对应。 4、本发明依靠自适应八叉树的紧凑结构,将许多方向相似的小体素被合并为一个 大体素,所以在恢复发丝的后处理中,可以通过遍历一个大体素替代遍历多个内容相似的 8 CN 111583384 A 说 明 书 5/8 页 小体素,大大提高了发丝恢复算法的速度。 5、本发明设计的自适应八叉树头发卷积神经网络将编码器的中间层特征输入到 解码器的八叉树卷积层中,增强了网络对细粒度信息的捕捉,进一步提高了重建结果的细 节。 附图说明 图1为本发明方法架构图。 图2为本发明使用的网络结构图。 图3为本发明重建效果实例图。