AI 驱动 30,000 根头发实时 3D 渲染
- 研究人员开发了一种神经网络,可以从 2D 图像生成完整的 3D 头发几何形状。
- 该网络能够在几毫秒内渲染多达 30,000 根头发。
- 它可以平滑地采样和插入各种发型,包括波浪、卷曲和直发。
在数字化虚拟人类时,在机器上渲染真实的头发可能是最艰巨的任务。与眼睛、鼻子和耳朵等其他物体相比,头发的形状变化范围广泛,并且由于每根单丝的可变形程度及其体积结构而可能极其复杂。
现有系统并不是不能生成高质量的 3D 头发模型,但它们通常需要特定的硬件和软件设置,而这些设置并不容易部署。一些现代技术确实利用了数据驱动的方法,但它们对于实时应用程序和内存空间有限的系统来说并不可行。
现在,微软、Pinscreen 和南加州大学的研究人员建立了一个深度学习模型,可以从 2D 图像实时生成完整的 3D 头发几何形状。
它不是以点云或体积网格的形式合成结构,而是直接创建一缕头发。该方法更适合非流形结构,可以提供更高的细节和精度。
发网
该神经网络(他们称之为 HairNet)能够连续生成和表示 3D 头发几何形状。它可以平滑地采样和插入各种发型,包括波浪、卷曲和直发。
神经网络流程包括3个步骤:预处理、生成发丝和重建。
HairNet 包含一个用于从 2D 图像中提取头发高级特征(以矢量形式)的卷积编码器,以及一个用于生成均匀分布在头皮上的 32*32 股特征的反卷积解码器。然后将这些股线特征插值到头皮空间上,最终表示为一系列 3D 点。
网络架构|由研究人员提供
为了将渲染的发型推向更合理的空间,研究人员在身体模型和发丝之间引入了“重建损失”和“碰撞损失”。他们使用输入图像作为权重来调制其损失,从而进一步提高了准确性。
培训
研究人员在包含 40,000 种发型和 160,000 张随机视角的二维图片的大型数据集上训练神经网络。然后,该网络学会了从一张 2D 照片中重新生成不同样式、颜色和长度的 3D 头发。
使用 HairNet 从 2D 图像渲染头发 |由研究人员提供
AI 在 Nvidia Titan Xp GPU(图形处理单元)上进行训练,并使用由 CUDA 深度神经网络库支持的 PyTorch 框架。
参考:arXiv:1806.07467
它可以在几毫秒内渲染多达 30,000 根头发。此外,它可以模仿视频并渲染每条线——所有这些都相互作用。
未来的工作
该团队得出的结论是,他们的技术尚不完美。它无法处理异国情调的发型,如爆炸式发型、变态发型或嗡嗡声发型。然而,在包含更多变化的海量数据集上训练网络可以解决这个问题。
阅读:人工智能可以让任何人摆出任何姿势 |以看不见的姿势合成人体图像
当头发在给定图像中被轻微遮挡时,该技术也会失败。因此,他们计划在未来通过整合更多的随机遮挡来改进训练数据集。
工业技术