AI驱动实时3D头发渲染,支持3万根发丝
在数字化虚拟人类时,在机器上渲染逼真头发可能是最艰巨的任务。与眼睛、鼻子、耳朵等其他物体相比,头发涉及广泛的形状变化,且因每根发丝的可变形性及其体积结构而极其复杂。
并非现有系统无法生成高质量3D头发模型,但它们通常需要特定的硬件和软件设置,难以部署。一些现代技术虽利用数据驱动方法,但不适用于实时应用和内存受限系统。
现在,微软、Pinscreen和南加州大学的研究人员构建了一个深度学习模型,能从2D图像实时生成完整3D头发几何体。
它不以点云或体素网格形式合成结构,而是直接创建发丝。此方法更适合非流形结构,能提供更高细节和精度。
HairNet
该神经网络被称为HairNet,能持续生成和表示3D头发几何体。它可平滑采样和插值多种发型,包括波浪、卷发和直发。
神经网络管道包含三步:预处理、生成发丝和重建。
HairNet包含卷积编码器,从2D图像提取头发高层特征(向量形式),以及反卷积解码器,在头皮上均匀生成32×32发丝特征。这些特征在头皮空间插值,最终表示为一系列3D点。
为将渲染发型推向更合理空间,研究人员引入了身体模型与发丝之间的“重建损失”和“碰撞损失”。他们用输入图像作为权重调制损失,进一步提高精度。
训练
研究人员在包含4万种发型和16万张随机视角2D图片的大型数据集上训练神经网络。网络随之学会从单张2D照片再生成不同风格、颜色和长度的3D头发。
AI在Nvidia Titan Xp GPU上使用PyTorch框架和CUDA深度神经网络库训练。
它能在毫秒级渲染多达3万根发丝。此外,它能模拟视频并渲染每根发丝——所有发丝相互作用。
未来工作
团队总结其技术尚不完美。无法处理非洲发型、卷曲或平头等特殊发型。但在包含更多变化的大规模数据集上训练可解决此问题。
当给定图像中头发轻微遮挡时,技术也会失效。因此,他们计划通过整合更多随机遮挡来改进训练数据集。
工业技术