人脸及人脸关键点检测开源项目调研

文章对比了几个人脸检测和关键点检测的开源项目,包括Libfacedetection、HyperFT、MTCNNncnn、Ultra-Light-Fast-Generic-Face-Detector-1MB、pfld-ncnn、insightface、左庆博士的项目以及68点和106点的关键点检测模型。在速度、精度、稳定性、跨平台性等方面进行了评估,其中MediaPipeFaceMesh表现出色,提供468点3D人脸地标且鲁棒性强,但存在某些姿态的细节问题。
摘要由CSDN通过智能技术生成

1. 引言

对市场上的开源人脸关键点检测项目进行调研。

2. 要求

1. 点位高准确度

2. 预测关键点稳定,尽量少的抖动

3. 人脸关键点较密集(106点以上)

4. 实时运行(单帧检测耗时在40ms以下),支持多人脸检测

5. 能够实现跨平台(Windows, Linux 移动端适配等)

3. 开源项目调研与测试

3.1 人脸检测

3.1.1 Libfacedetection

链接:https://github.com/ShiqiYu/libfacedetection/

windows安装文档:https://github.com/ShiqiYu/libfacedetection/blob/master/COMPILE.md#windows-10-with-visual-studio-2019

摄像头Demo:

https://github.com/ShiqiYu/libfacedetection/blob/master/example/detect-camera.cpp

评价:

测试了下官方调用摄像头Demo,速度非常慢,对于Camera 480的图像,检测速录在160ms左右。精度上还是很给力,刚好后面的同事小人脸也能够检测到。

3.1.2 HyperFT 人脸跟踪

简介:开源视频人脸跟踪算法,基于mtcnn人脸加测+onet人脸跟踪,移动端速度可以达到150fps+。该项目基于Android工程,提供底层JNI实现,使用者可以自行编译移植到其他平台。算法依赖ncnn深度学习计算库,体积小,易于集成。

链接:https://github.com/zeusees/HyperFT/tree/master/Prj-Win

评价:

单帧检测耗时在:25ms以内,但人脸框存在一定抖动

3.1.3 MTCNN ncnn

链接:https://github.com/moli232777144/mtcnn_ncnn

评价:

可以设置检测最大人脸和多人脸,最大人脸的条件下,耗时稳定在30ms内。

3.1.4 Ultra-Light-Fast-Generic-Face-Detector-1MB

链接:GitHub - Linzaer/Ultra-Light-Fast-Generic-Face-Detector-1MB: 💎1MB lightweight face detection model (1MB轻量级人脸检测模型)

评价:

提供mnn,ncnn,onnxruntime等框架模型及推理代码,作者提供了两个模型(高精度及高速度),MNN框架针对240x320缩放尺寸,推理速度单帧25ms以内,检测精度较好,但人脸框存在一定抖动。

3.2 人脸关键点检测

3.2.1 pfld-ncnn 开源106点

链接:

GitHub - Hsintao/pfld-ncnn

评价:

单帧耗时在50ms以内,准确度上非常差,正脸表现较为一般,侧脸几乎全不准。

3.2.2 insightface开源106点

insightface安装:https://github.com/deepinsight/insightface/tree/master/python-package

官方Demo(106点):

https://github.com/deepinsight/insightface/tree/master/alignment/coordinate_reg

评价:

当人脸检测缩放尺度设置为130x130时,人脸检测+ 耗时在30ms以内,准确度很高,点位存在较小的抖动,对侧脸抬头仰头等较为鲁棒。

3.2.3 左庆博士开源106点

链接:

https://github.com/MirrorYuChen/ncnn_example/blob/master/examples/test_face.cpp

ncnn载入106点关键点检测模型_106关键点_MirrorYuChen的博客-CSDN博客

https://github.com/zuoqing1988/ZQCNN

评价:

Demo仅提供人脸关键点预测展示,未集成人脸检测,因此需要将人脸裁剪送入模型,得到最终结果。准确度较pfld开源的好,但对侧脸等相对仍不是很鲁棒:

3.2.4 开源68人脸关键点检测

链接:GitHub - cunjian/pytorch_face_landmark: Fast and accurate face landmark detection library using PyTorch; Support 68-point semi-frontal and 39-point profile landmark detection; Support both coordinate-based and heatmap-based inference; Up to 100 FPS landmark inference speed with SOTA face detector on CPU.

评价:

效果上感觉抖动少挺多的。关键点预测耗时在7ms以内,对侧脸精度较为不准确。

3.2.5 阿里开源MnnKit人脸检测(仅移动端,且仅供学术范围使用)

链接:https://github.com/alibaba/MNNKit

PS:附有安卓测试Demo

评价:

速度、精确度及稳定性都是最好的,提供移动端SDK,便于快速集成,但开源协议不允许商用,仅用于学习和研究。

3.2.6 FaceMesh

简介:

MediaPipe Face Mesh 是一种解决方案,即使在移动设备上也能实时估计 468 个 3D 人脸地标。它采用机器学习 (ML) 来推断 3D 面部表面,只需要一个摄像头输入,而不需要专用的深度传感器。该解决方案在整个管道中利用轻量级模型架构和 GPU 加速,提供对实时体验至关重要的实时性能。

安装:

https://google.github.io/mediapipe/getting_started/python.htm

Demo:

Face Mesh | mediapipe

评价:

支持468点位人脸关键点检测,速度极快20ms以内,对各个姿态都较为鲁棒,但是闭眼存在眼睛合不上,张嘴呈现嘴唇对不准等问题。

  • 4
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值