MaixCAM MaixPy 人脸 478 关键点检测
2025-01-08
更新历史
日期 | 版本 | 作者 | 更新内容 |
---|---|---|---|
2025-01-08 | v1.0 | neucrack | 增加人脸478关键点检测源码、文档、例程 |
一、简介#
前面的文章人脸检测中介绍了如何检测人脸,以及几个关键点(比如 5 个),本文介绍如何检测更多(478个)关键点。
更多的关键点有更多的用途,比如表情检测,人脸特征识别,换脸等等。
二、MaixPy 中使用人脸关键点检测#
MaixPy 中移植了 MediePipe 的人脸 478 关键点检测,效果如下:
效果视频:
使用代码(MaixPy 版本必须 >= 4.10.0),最新代码以MaixPy/examples为准:
这里有几个地方解释一下:
max_face_num
可以限制最多检测的人脸数量,防止画面人脸过多变卡。landmarks_abs
指定检测到源图img
中人脸关键点的坐标,在结果的points
变量中有478
个点,以x0,y0,x1,y1,...,x477,y477
顺序排列。landmarks_rel
则输出img_std
中的坐标,结果追加到points
变量中。points_z
是关键点深度估计,值相对于面部重心,离镜头越近值越大,在面部重心之后则为负值,值与面部宽度成比例。
三、取部分关键点#
478 个关键点有点多,如果你只需要其中几个,可以根据 高清大图 的下标取部分,常见的:
注意只提供参考,以模型实际输出为准
- 146 个点:
- 68 个点:
- 5 个点
有了这些下标,我们用代码提取部分出来显示: