大数跨境

Google GNM:636 个参数捏出一张会动的脸

Google GNM:636 个参数捏出一张会动的脸 石臻说AI
2026-07-21
4
导读:Google 开源参数化 3D 人头模型 GNM。它用 253 个身份参数和 383 个表情参数拆解一张脸,支持实时跟踪,却仍不是完整数字人产品。

⭐ 设为星标 · 第一时间收到推送

石臻说AI 编辑:石臻
导读: Google 开源了 GNM Head:它不靠一句 Prompt 猜一张脸,而是把人头拆成身份、表情、姿态和位移几组明确参数。短短几天,开发者已经把它接上 MediaPipe、Three.js 和 Blender——这套“会算、能控、可复现”的 3D 头模,可能比又一个炫目的生成 Demo 更实用。

不是 AI 捏脸,而是把人头写成方程

GNM 的全名是 Generative aNthropometric Model,读音故意做成了 “genome”。名字有点拗口,东西倒不玄:它属于经典的 3D Morphable Model(3D 可变形模型) 路线。

可以把它想成一颗标准人头,加上两套“变形字典”。一套负责这个人天生长什么样,另一套负责他此刻在笑、眨眼还是张嘴;再叠加颈部、头部与眼球的骨骼旋转,最后用线性混合蒙皮算出完整网格。

GNM 把身份、表情与内部结构拆成可控制的模型部分

这里的关键不是“能生成人脸”,而是 每一次变化都有明确坐标。同一组参数永远得到同一个网格,改一个系数只影响对应区域,结果可以保存、插值、回放,也能被跟踪算法实时驱动。

这和扩散模型、NeRF 或 Gaussian Splatting 的长处不一样。后几类方法更擅长从图片或文字里合成丰富外观,GNM 更像一套可编程几何底座:外观不一定最惊艳,但控制权在你手里。

它也不是完整的“数字人生成器”。当前开源的核心首先是头部几何,皮肤材质、头发、服装、灯光、声音和成片渲染,都要交给别的系统。

636 个系数,连牙齿、舌头和眼球都算进去

GNM v3.0 的模型文件里有 17,821 个顶点、35,324 个三角面和 4 个关节。真正让它好用的,是身份与表情并没有揉成一团。

控制层 维度 具体组成
身份 Identity 253 头部 170、眼球 3、牙齿 80
表情 Expression 383 左眼 100、右眼 100、下半脸 150、舌头 32、瞳孔 1
骨骼 Pose 4 个关节 颈部、头部、左右眼球
全局控制 3 X / Y / Z 位移
官方 Demo 将眼睛、嘴、舌头和瞳孔拆成独立滑杆

把脸分区,不只是为了让界面上多几排滑杆。Google 的形式化定义专门解释了原因:嘴部运动不该顺手带出眨眼,左眼和右眼也应该能独立控制。GNM 因此把左眼、右眼、下半脸、舌头和瞳孔分别建模,再在区域交界处做平滑混合。

内部结构也不是一颗空壳。牙齿身份空间来自 5000 组程序化牙列;舌头结合真实扫描与艺术家绑定数据;眼球则用双球面近似角膜和巩膜,还单独留出瞳孔缩放参数。对普通捏脸工具来说,这些细节有点“过度认真”,但对凝视估计、口型动画和合成训练数据来说,它们恰好是最容易穿帮的地方。

顺手说一个文档小坑:官方 README 和实际 gnm_head.npz 都是 383 个表情维度,但仓库里的形式化定义 PDF 表格把舌头写成 31 维,合计成了 382。实际模型里舌头是 32 维,本文以可运行的 v3.0 模型文件为准。

摄像头一开,这颗“统计学人头”就活了

GNM 发布后最有说服力的内容,不是参数表,而是开发者 Chris Offner 做的实时演示。他把 MediaPipe 的面部关键点接到 GNM 上,真人眨眼、撇嘴、张嘴,右侧网格跟着变化;同一套驱动换一组身份参数,马上又能变成另一张更年长的脸。

MediaPipe 面部关键点实时驱动 GNM 网格
同样的表情驱动可以叠加到不同身份参数上

这件事说明了 GNM 的一个实际优势:身份和表情可以分开处理。 跟踪器负责估计“此刻做了什么表情”,身份参数负责“这是谁的脸”,两者不必重新训练成一团。

社区的反应也很一致。有人做了 Three.js 浏览器版,有人把它接进 Blender;还有开发者用 Rust 重写核心变形流程,做成带摄像头跟踪、52 个 blendshape、动画与 GLB 导出的桌面工具。讨论重点几乎都落在“怎么接进现有 3D 工作流”,而不是围观一段生成视频。

原因很现实:GNM 的核心就是几次矩阵运算,支持 NumPy、JAX、PyTorch、TensorFlow,采用 Apache 2.0 许可证。它不要求云端大模型,也不依赖一块昂贵 GPU,工程师很容易把它塞进自己的工具链。

Hugging Face 把研究代码变成了能直接摸的脸

用户现在就能在 Hugging Face Space 里试 GNM。这个 Space 由 Hugging Face 开源团队基于 Google 仓库搭建,并不是 Google 官方产品;它把上游 Notebook 里的滑杆 Demo 做成了 Gradio + Three.js 的交互页面。

Hugging Face Space 里可以组合语义表情,再继续细调局部参数

页面没有把 636 个身份与表情系数全部摊开,而是选了 10 个身份、16 个表情、9 个姿态和 3 个位移控制,共 38 个滑杆。你还可以直接拖眼睛、嘴角、下巴、舌头和头部;选中 happy、surprise、wink 等语义标签后,背后的 CVAE 采样器会先给出一组表情参数,再让你手动微调。

Space 的实现只用 NumPy,作者给出的单次求值时间约 40 毫秒,免费 CPU 实例就能跑。Three.js 场景也不会每次重建模型,只把新的顶点坐标写进原来的 geometry buffer,所以拖动时相机不重置,网格也不会闪一下。

这层产品化很重要。官方仓库给的是模型、Notebook 和四套后端,Hugging Face 补上了“伸手就能试”的入口。研究代码和普通用户之间,常常就差这样一层薄薄的交互壳。

它是好积木,但还不是完整数字人

GNM 现在最适合四类事情:角色与游戏里的参数化头模、摄像头驱动的实时 Avatar、面部与凝视算法所需的合成数据,以及把扫描或图像拟合到统一拓扑的研究工具。

GNM 为皮肤、牙齿、舌头和眼球内外表面提供了结构化 UV 布局

但边界也很清楚。

  • 它只开源了 Head。 Google 的路线图里还有更完整的人体模型与感知栈,但目前仓库里能用的就是头部。
  • 它解决几何,不包办外观。 想做写实数字人,还得补纹理、材质、毛发、灯光和渲染。
  • 它不是开箱即用的面捕产品。 MediaPipe 接入、参数拟合、平滑、标定和导出,仍然要开发者自己完成或借助社区工具。
  • 数据代表性有限。 官方明确说,训练数据沿用了二元性别分类和四个宽泛人口群组,不能覆盖真实世界里完整的性别与人群多样性。拿它做人脸识别、医疗或公平性敏感应用时,不能把“参数很多”误当成“代表性充分”。
  • 文档还在补。 仓库的正式引用目前仍写着 “coming soon”,模型说明与形式化定义之间也存在一处维度差异。

GNM 最值得关注的地方,不是它单独做出了多逼真的脸,而是它提供了一层稳定的 可控几何接口。上面可以接 MediaPipe 或未来的感知模型,旁边可以接 Blender、Three.js 和游戏引擎,后面再接纹理生成、语音和大模型。

这条路线和生成式 AI 不冲突。扩散模型负责“长得丰富”,GNM 负责“动得可控”;一个给视觉想象力,一个给工程确定性。Chris Offner 那段实时跟踪视频,先把“感知驱动”和“可控几何”之间的桥搭了出来。

GNM Head 现在更像一块质量很高的开源积木,而不是一款完整数字人产品。做 Blender、Avatar、面捕、凝视估计或合成数据的人,值得马上试;普通用户先去 Hugging Face 拖一遍滑杆,就能理解“可生成”和“可控制”到底差在哪。

 
   📚 往期精选  

 4 秒出图、10 美分视频,Google 新媒体模型来了

 收到 $103 账单后,我用 15 组 prompt…

 一句话让 Codex 做 CAD,这个项目 8.3K…

 我真的服了,Codex这周真的卡成狗一样

 Anthropic教你如何剩Token费,96%的效果…

 Claude Code 用户可以试试这个插件

 Claude Loops:让 AI 睡觉时也在工作

 X MCP 上线:Agent 读 X 的实操流程

 美国商务部解禁Claude Fable5和Mythos5

 开源AI被喊危险,闭源巨头到底怕什么

【声明】内容源于网络
0
0
石臻说AI
AI科技博主,10年+大厂互联网经验,专注: AI资讯|生产力工具|AI提效 | 科技数码 用AI提效,剩下的时间摸鱼 , 🛰:szzdzhp001
内容 216
粉丝 0
石臻说AI AI科技博主,10年+大厂互联网经验,专注: AI资讯|生产力工具|AI提效 | 科技数码 用AI提效,剩下的时间摸鱼 , 🛰:szzdzhp001
总阅读1.4k
粉丝0
内容216