ETH苏黎世、马克斯·普朗克智能系统研究所、慕尼黑工业大学和微软的研究人员联合提出了DynHair,一种面向动态头发的头像建模方法。它从多视角视频出发,用显式发丝表示重建头发,再让发丝形变跟随头部的角速度、加速度和相对重力变化,生成能随甩头自然摆动的3D头像。论文报告,在外观质量、头发动态和总体偏好上,DynHair均超过现有方法,16人盲测三项全胜。
头发是数字人头像剩下的硬骨头
用3D高斯喷绘做头部头像,脸部已经做得很好:把高斯贴到可表达的头部模型上,跟着表情变形即可。头发不行——发丝细、密、会甩动,甩动方式取决于头部运动的角速度、加速度和相对重力方向。脸可以「贴」在模型上,头发有自己相对头皮的动力学。
现有做法分两条路。物理模拟效果好但算得慢,难直接用于实时渲染;神经网络逼近模拟结果(如GroomGen、Quaffure)通常把头发当整体网格处理,发丝级细节有限。DynHair把两条线拼起来:外观用显式发丝表示保细节,动力学用轻量时间网络来学,训练数据直接从多视角视频里来。
从发丝重建到动力学网络
流程分两阶段。第一阶段训练网格化头部模型得到规范头部几何;第二阶段先用Im2Haircut从全部视角重建规范发型,再训练头发形变网络,同时联合优化头部和头发的3D高斯。
发丝被表示为结构化的3D高斯集合,每个高斯约束在发丝折线上。形变网络预测规范发型上每个点的非刚性位移,输入是过去T帧的头部运动历史——归一化的角速度、角加速度和相对重力方向,网络最后一层初始化接近零,保证初期稳定。
监督信号组合了外观损失(RGB、SSIM、感知损失)与几何约束(轮廓、发丝朝向、头发出穿、不可拉伸),外加弹性拉伸的物理正则和颜色正则。整个模型在单张A100上训练32万步约5天,静态发型优化另需24到100分钟。
图:DynHair方法总览。上半部分是发丝重建与高斯表示,下半部分是以头部运动历史为条件的发丝形变网络(论文Figure 2)。
自建15机位数据集,抓甩头瞬间
动态头发研究卡在数据上:公开的多视角动态头发数据几乎没有。团队在HHAvatar数据集的3个场景上训练,每个场景4个同步相机、约3分钟视频;又自建新数据集,用15台同步相机拍摄,水平覆盖93度、垂直覆盖32度,含10段表情为主和10段头发运动为主的录制。
采集里有个细节:每个对象要拍一条完整的360度旋转序列,戴发帽和不戴发帽各一次,用来重建被头发遮住的耳朵和脖子。测试集按纯头发运动、纯表情、混合三类分开。对比对象为Gaussian Head Avatar、GaussianAvatars和Maya物理模拟器,另设速度爆炸比、曲率平滑度、位移尖峰、漂移四个运动指标。
图:DynHair的teaser。左侧为多视角输入视频,右侧为DynHair生成的动态头像发丝动画(论文Figure 1)。
自重演、跨驱动与盲测全面占优
自重演测试在3个对象的留出序列上进行。论文报告,DynHair相比两个高斯基线,发丝细节更锐利,头发区域时间一致性更好;基线出现过平滑和闪烁。跨驱动测试用另一对象的运动序列驱动,DynHair能生成几何一致的新动画,基线在身份保持上遇到困难。一个反面对照也说明问题:直接把学到的外观贴到模拟器驱动的发丝位置,渲染质量明显下降。
图像指标之外,16人参与的盲测覆盖9段头发运动序列,DynHair在外观质量、头发运动自然度和总体偏好三项全部领先,发型更符合物理约束和重力。
图:留出测试序列上的自重演对比,DynHair的发丝在运动中保持结构与时间一致性(论文Figure 3)。
图:跨驱动设置下的对比。显式发丝表示在新驱动序列上保持几何一致的头发动画(论文Figure 4)。
从单人建模走向可规模化的数字人
DynHair目前是对象特定方法:每个对象要用多视角视频训练一次。论文指出的扩展方向很明确——动态头发数据规模仍然有限,更大规模数据集和显式碰撞建模可以并入现有框架。
依赖预训练分割模型估计头发轮廓是另一处软肋,复杂发型或遮挡下轮廓不准会传导到渲染边界。但对愿意为单个角色花算力的场景——虚拟主播、影视预演、游戏角色——5天单卡训练换来可控的头发动力学,账算得过来。