spite/FaceMeshFaceGeometry
FaceMeshFaceGeometry for FaceMesh
解决的问题
FaceMeshFaceGeometry 提供了一种将来自 MediaPipe Face Landmarker(或 TensorFlow.js)的 2D 面部特征点转换为 three.js 环境中可用 3D 网格的方法。它解决了手动将原始特征点坐标映射到与视频流对齐的 3D 几何图形的问题,同时提供头部姿态、表情分数和虹膜追踪等关键数据。
运作原理
该库创建一个 BufferGeometry,并根据提供的特征点更新其顶点和法线。它支持多种操作模式:
- Video Space: 顶点映射到输入视频的像素,便于进行 2D/3D 叠加。
- Metric Mode: 顶点以厘米为单位计算,支持使用透视相机,并提供相对于标准面部模型的头部姿态
Matrix4。 - Texture Mapping: 可为面具/妆容生成固定 UV 坐标,或为换脸/视频纹理等效果生成跟随视频流的动态 UV。
- Smoothing: 使用 One Euro filter 来减少特征点和头部姿态的抖动,且不会产生明显延迟。
适用对象
使用 three.js 和 MediaPipe 构建 AR 面部滤镜、虚拟化身、3D 面部追踪应用程序及交互式装置艺术的开发者。
特色亮点
- 集成头部姿态: 提供变换矩阵,可轻松将 3D 对象(如眼镜)附着在头部。
- 实时表情追踪: 访问混合形状分数(例如
jawOpen、mouthSmileRight)以进行交互式动画。 - 虹膜追踪: 包含双眼虹膜的位置和半径,用于估算视线方向。
- 表面追踪: 提供
track()方法,允许将 3D 对象固定在面部表面的特定三角形上。 - 自定义相机组件: 包含
<gum-av>,这是一个用于简化网络摄像头访问与管理的独立自定义元素。
相关
- 项目
- 项目
- 项目
- 项目