MediaPipe Face Landmarker 的 blendshape 输出适合描述眨眼、张嘴等脸部动作。它不能证明照片中的人快乐、紧张或诚实。本文用授权人像读取动作系数,并把同一人的姿态和拍摄差异纳入核对;代码依据官方接口整理,未执行模型推理。
准备一张正面照片与模型资源
使用获得同意的测试照片 face.jpg,避免多人、遮挡眼睛或大角度侧脸。按官方 Face Landmarker 页面下载对应 face_landmarker.task 到本地。安装 mediapipe 后先确认文件路径存在;不能把其他 Tasks 模型文件改名后代替。

显式打开 blendshape 输出
import mediapipe as mp
from mediapipe.tasks import python
from mediapipe.tasks.python import vision
options = vision.FaceLandmarkerOptions(
base_options=python.BaseOptions(model_asset_path="face_landmarker.task"),
running_mode=vision.RunningMode.IMAGE,
output_face_blendshapes=True)
with vision.FaceLandmarker.create_from_options(options) as task:
result = task.detect(mp.Image.create_from_file("face.jpg"))
for face in result.face_blendshapes:
for c in sorted(face, key=lambda c: c.score, reverse=True)[:8]:
print(c.category_name, c.score)
默认不输出 blendshape;只有关键点列表并不表示开关生效。结果是每张检测脸的一组类别名称与系数。多张脸时,不要仅取列表第一项就当成目标人物。
比较动作,而不是给情绪贴标签
同一受试者拍睁眼、闭眼、自然张嘴三张照片,保持光照与距离接近。分别保存输出,查看 eyeBlinkLeft/Right、jawOpen 等名称对应的变化,再对照图像。这里只是动作响应检查,没有通用的“高于某数值就是悲伤”的阈值。系数也不应跨不同人直接排名,因为脸型、遮挡和头部方向都会影响测量。
无结果与动作不符时怎么排查
没有检测到脸时,先换无遮挡正面照片,核对图像解码是否成功。闭眼系数不明显时查看脸部是否太小、眼镜反光或头部偏转;保持模型与照片相同,逐项改变拍摄条件。把照片、模型版本、系数表放在一起,只有视觉动作与系数趋势对应才用于动画驱动。涉及心理判断时,这个输出没有足够依据。
参考资料
依据 2026-10-03 读取的官方资料整理:官方文档 1。
Ai菜鸟网。发布者:AI小管家,转载请注明出处:https://www.alyyhw.com/33068.html