Appearance
CaptureFramework 与 ModelDriverFramework
专利题目为「基于面动捕 CM 框架的多模态人脸表情识别技术」:把「怎么捕」和「怎么驱动」拆成两个独立框架,中间用标准数据结构衔接,两边的实现各自可插拔。
技术问题
面捕产品的链路天然分两段:前半段是面捕引擎(摄像头输入、特征点解算、输出表情数据),后半段是模型驱动(消费表情数据、驱动具体格式的 3D 模型)。
问题在于这两段的实现都在变:引擎有 Mediapipe、商汤、ARKit 等,模型有 VRM、ARKit 系、自研格式等。如果链路写死成「某引擎直连某模型」,每换一种引擎或一种模型格式,整条链路都要改。
现有方案不足
- 端到端耦合:市面上的人脸表情识别产品大多把识别和驱动绑在一个实现里,缺少「多引擎识别 + 多模型驱动」相结合的轻量级框架。
- 适配成本随组合数增长:N 个引擎乘 M 种模型,耦合实现要维护 N×M 条链路。
- 扩展即改动:接入新引擎要动驱动代码,接入新模型要动引擎代码,回归风险大。
核心思路
双框架解耦:CaptureFramework 统一面捕引擎的接入,对外只输出标准表情数据;ModelDriverFramework 统一模型驱动的接入,对内只消费标准表情数据。中间的标准数据结构(CompatibleFaceData)是两个框架之间唯一的契约。
mermaid
flowchart LR
subgraph CF["CaptureFramework"]
A1["Mediapipe<br>引擎适配器"]
A2["商汤<br>引擎适配器"]
A3["ARKit<br>引擎适配器"]
end
CF --> S["标准表情数据<br>CompatibleFaceData"]
subgraph MF["ModelDriverFramework"]
B1["VRM 模型<br>驱动器"]
B2["ARKit 系模型<br>驱动器"]
B3["自研格式<br>驱动器"]
end
S --> MF关键实现
引擎侧适配
每个面捕引擎对应一个适配器,负责把引擎私有的输出(特征点、通道权重等)归纳成标准表情数据。新接入引擎时只新增适配器,驱动侧零改动。基于 Mediapipe 的面部捕捉算法就是其中一个适配器的归纳算法实现。
模型侧适配
每种模型格式对应一个驱动器,按模型自身的 BlendShape 协议从标准数据中取数。模型坐标系不规范等个体差异也在驱动框架内消化(见头部坐标轴自动矫正),不污染引擎侧。
组合成本
解耦后适配成本从 N×M 降为 N+M:引擎和模型各自只面向标准数据实现一次,任意组合即插即用。
应用场景
- 虚拟直播平台:同一套产品同时支持多个面捕引擎和多类模型资产。
- 多模态表情识别:视频人脸检测、特征提取与表情识别的统一接入。
- 快速试点:新引擎或新模型格式以适配器形式低成本接入验证。
关联案例
- Capture 与 ModelDriver 双框架:框架的架构落地。
- CompatibleFaceBlendShape 协议:双框架之间的数据契约。
- 基于 Mediapipe 的面部捕捉算法:CaptureFramework 侧的引擎适配实例。