适合ARM 的轻量级人脸检测算法汇总

article/2025/11/8 10:11:06

目录

    • 1、场景需求
    • 2、libfacedetection
        • 2.1 相关链接
        • 2.2 算法简介
        • 2.3 算法效果展示
        • 2.4 算法性能展示
    • 3、Ultra-Light-Fast-Generic-Face-Detector-1MB
        • 3.1 相关链接
        • 3.2 算法简介
        • 3.3 算法效果展示
        • 3.4 算法性能展示
    • 4、BlazeFace
        • 4.1 相关链接
        • 4.2 算法简介
        • 4.3 算法效果展示
        • 4.4 算法性能展示
    • 5、FaceBoxes
        • 5.1 相关链接
        • 5.2 算法简介
        • 5.3 算法效果展示
        • 5.4 算法性能展示
    • 6、RetinaFace
        • 6.1 相关链接
        • 6.2 算法简介
        • 6.3 算法效果展示
        • 6.4 算法性能展示
    • 7、LFFD
        • 7.1 相关链接
        • 7.2 算法简介
        • 7.3 算法效果展示
        • 7.4 算法性能展示
    • 8、EagleEye
        • 8.1 相关链接
        • 8.2 算法简介
        • 8.3 算法效果展示
        • 8.4 算法性能展示
    • 9、DBFace
        • 9.1 相关链接
        • 9.2 算法简介
        • 9.3 算法效果展示
        • 9.4 算法性能展示
    • 10、CenterFace
        • 10.1 相关链接
        • 10.2 算法简介
        • 10.3 算法效果展示
        • 10.4 算法性能展示
    • 参考资料
    • 注意事项

1、场景需求

  人脸检测可能是一个比较老的话题,你会发现网上有一大堆的state-of-art人脸检测算法。但是本文关注的是轻量级的人脸检测算法,主要的目的是将其应用到ARM等一些嵌入式设备中,在满足性能的同时获得实时的检测速度。通过大量的筛选之后,你会发现真正适合于ARM端的人脸检测算法屈指可数。下面就让我们进入正题吧。

2、libfacedetection

2.1 相关链接

Github链接

2.2 算法简介

  • 这是一个开放算法包,用于基于cnn 的图像人脸检测。cnn 模型已转换为c源文件中的静态变量。源代码不依赖于任何其他库。你需要的只是一个C++编译器。您可以在Windows、Linux、ARM 和任何平台上编译源代码,并使用C++编译器。
  • SIMD指令用于加快检测速度。如果使用Intel CPU 或Neon for ARM,则可以启用AVX2。

2.3 算法效果展示

在这里插入图片描述

2.4 算法性能展示

在这里插入图片描述
  上图展示了部分该算法的检测速度,640x480分辨率的图片在CPU上使用多线程可以获得81fps,基本上可以满足现实场景中的一些需要。除此之外,该算法在Cortex-A53 (ARMv8) 64-bit SoC @ 1.4GHz上使用多线程后的运行时间为174.89ms左右;如果使用ARM多核+NEON+INT8量化等有望达到实时的运行速度。

3、Ultra-Light-Fast-Generic-Face-Detector-1MB

3.1 相关链接

Github链接

3.2 算法简介

  该模型是针对边缘计算设备基于libfacedetection 替换压缩网络设计的轻
量人脸检测模型。该模型具有以下的特点:

  • 在模型大小上,默认FP32 精度下(.pth)文件大小为1.04~1.1MB,推理框
    架int8 量化后大小为300KB 左右;
  • 在模型计算量上,320x240 的输入分辨率下90~109 MFlops 左右;
  • 模型有两个版本,version-slim(主干精简速度略快),version-RFB(加入了
    修改后的RFB 模块,精度更高);
  • 提供320x240、640x480 不同输入分辨率下使用widerface 训练的预训练模型,
    更好的工作于不同的应用场景;
  • 支持onnx 导出,便于移植推理。

3.3 算法效果展示

在这里插入图片描述在这里插入图片描述在这里插入图片描述

3.4 算法性能展示

在这里插入图片描述
在这里插入图片描述
  上图展示了该算法的运行速度和模型大小。通过观察,我们可以得出该算法模型大小仅有1M左右,小于libfacedetection算法;除此之外,320x240大小的输入在ARM A72x4的设备上的运行时间是11ms左右,运行的速度大概是100fps,达到了实时性的要求。

4、BlazeFace

4.1 相关链接

项目主页-论文链接

4.2 算法简介

  BlazeFace,一种轻量级且性能良好的人脸检测器,专门用于ARM GPU 推理。它在ARM设备上以 200–1000+fps 的速度运行。这种超实时性能使其能够应用于任何需要精确的面部感兴趣区域作为任务特定模型(如 2d/3d 面部关键点或几何估计、面部特征或表情分类和面部区域分割)增强现实等。我们的贡献包括一个轻量级的特征提取网络,但不同于 MobileNetV1/V2,一个 基于SSD的GPU 友好的anchor机制,和一个改进的 分辨率策略替代NMS。

4.3 算法效果展示

在这里插入图片描述

4.4 算法性能展示

在这里插入图片描述
  上图展示了该算法的运行速度,通过观察我们可以得出:1)改进的BlazeFace算法比原始的MobileNet-V2速度更快,大约提升了3倍左右;2)BlazeFace的检测速度很快,在Huawei P20上面的运行时间是5.8ms。

5、FaceBoxes

5.1 相关链接

Github链接-论文链接

5.2 算法简介

  FaceBoxe是一种新的人脸检测方法,称之为 FaceBoxe,它在速度和准确度上都具有优异的性能。此外,FaceBoxes 的检测速度和人脸的个数无关该算法在单核 CPU 上的运行速度是 20FPS,在 VGA 分辨率的 GPU 上面的速度是 125FPS

5.3 算法效果展示

在这里插入图片描述
在这里插入图片描述

5.4 算法性能展示

在这里插入图片描述
  上图展示了FaceBoxe算法的性能。与MTCNN相比,该算法具有更高的mAP值;除此之外,该算法在E5-2660V3CPU上面可以获得20fps的运行速度,如果采用OpenVIO进行优化加速之后,应该可以获得更加惊艳的效果

6、RetinaFace

6.1 相关链接

Github链接-论文链接

6.2 算法简介

  RetinaFace 是一种鲁棒的单阶段人脸检测算法,该算法联合外部监督和自监督的多任务学习来在不同尺度的人脸图片上进行精确定位,通过使用轻量级骨干网,RetinaFace 可以实时运行在单个 CPU 核上。

6.3 算法效果展示

在这里插入图片描述

6.4 算法性能展示

在这里插入图片描述
  上图展示了RetinaFace算法的性能。通过观察我们可以发现,当使用MobileNet-v2作为Backbones时,640x480的输入图片在ARM上的运行时间为61.2ms,即运行的速度为16fps,这个速度基本可以满足某些场景的需要。

7、LFFD

7.1 相关链接

Github链接-论文链接

7.2 算法简介

  LFFD 是一种用于边缘器件的轻量且快速的人脸检测算法。LFFD 在准确度和时延上都有很大的平衡,不仅模型体积小,而且具有较快的推理速度,同时可以获得较高的准度。在实际应用中,我们已经将其部署在云和边缘设备(如nvidia jetson 系列和基于ARM 的嵌入式系统)中。实际上,LFFD 是一个通用的检测框架,适用于多个类型的检测,如人脸检测、行人检测、头部检测、车辆检测等。一般来说,长边和短边的平均比率小于5 的对象适合使用该算法进行检测。

7.3 算法效果展示

在这里插入图片描述
在这里插入图片描述

7.4 算法性能展示

在这里插入图片描述
  上图展示了LFFD算法的性能。640x480的图片输入到ARM设备中,该算法的运行时间为4114.15ms,和前面的几个算法相比,这个算法的运行速度相对来说比较慢,我测试过该算法在Android设备上面的速度,还是可以满足 一些对时间要求不是很苛刻的场景。

8、EagleEye

8.1 相关链接

论文链接

8.2 算法简介

  EagleEye,在低功耗的设备上在速度和精度之间达到了很好的折衷。EagleEye 具有低的 FLOPS 的同时具有低的容量。论文中提出了五种策略来提升算法的速度和精度,主要包括卷积分解、设计了一个高效的上下文模块,Focal loss 等。

8.3 算法效果展示

在这里插入图片描述
在这里插入图片描述

8.4 算法性能展示

在这里插入图片描述
  上图展示了EagleEye算法的性能。精度方面而言,该算法比MTCNN的mAP值高出了2个点;速度方面而言,640x480的输入在ARM设备中的运行时间为20fps,基本能够满足现实场景的需要;模型大小方面而言,该算法的模型参数为0.23M,模型大小为1M左右,内存占用率为13.9M。

9、DBFace

9.1 相关链接

Github链接

9.2 算法简介

  DBFace是一种用于人脸检测的实时单级检测器,具有速度快、精度高等优点

9.3 算法效果展示

在这里插入图片描述

9.4 算法性能展示

在这里插入图片描述
在这里插入图片描述

10、CenterFace

10.1 相关链接

Github链接-论文链接

10.2 算法简介

  CenterFace(尺寸为7.3MB)是一种实用的边缘设备无锚人脸检测与定位方法。

10.3 算法效果展示

在这里插入图片描述
在这里插入图片描述

10.4 算法性能展示

在这里插入图片描述
在这里插入图片描述

参考资料

[1] libfacedetection
[2] Ultra-Light-Fast-Generic-Face-Detector-1MB
[3] blazeface
[4] FaceBoxes
[5] RetinaFace
[6] LFFD
[7] EagleEye
[8] DBFace
[9] CenterFace

注意事项

[1] 如果您对AI、自动驾驶、AR、ChatGPT等技术感兴趣,欢迎关注我的微信公众号“AI产品汇”,有问题可以在公众号中私聊我!
[2] 该博客是本人原创博客,如果您对该博客感兴趣,想要转载该博客,请与我联系(qq邮箱:1575262785@qq.com),我会在第一时间回复大家,谢谢大家的关注.
[3] 由于个人能力有限,该博客可能存在很多的问题,希望大家能够提出改进意见。
[4] 如果您在阅读本博客时遇到不理解的地方,希望您可以联系我,我会及时的回复您,和您交流想法和意见,谢谢。
[5] 本文测试的图片可以通过关注微信公众号AI产品汇之后找我索取!
[6] 本人业余时间承接各种本科毕设设计和各种小项目,包括图像处理(数据挖掘、机器学习、深度学习等)、matlab仿真、python算法及仿真等,有需要的请加QQ:1575262785详聊,备注“项目”!!!


http://chatgpt.dhexx.cn/article/6gSJKjUq.shtml

相关文章

opencv算法+人脸检测

文章目录 ORB算法视频读写图像人脸识别摄像头实时人脸检测 ORB算法 orb算法结合了Fast和Brief算法,提出了构造金字塔,为Fast特征点添加了方向,从而使得关键点具有了尺度不变性和旋转不变性。 # orb算法结合了Fast和Brief算法,提…

人脸检测算法对比分析

 https://blog.csdn.net/twinkle_star1314/article/details/53318689 人脸识别包括以下5个步骤:人脸检测、图像预处理、特征提取、匹配、结果输出。 人脸检测是人脸识别中的第一个环节,是一项关键技术。人脸检测是指假设在输入…

人脸检测算法:mtcnn简介

人脸检测算法:MTCNN简介 算法流程网络介绍训练方法 MTCNN是一个针对于人脸检测的模型, 由PNet, RNet, 和ONet三个网络组成,三个网络都比较轻量, 易于训练.基于pytorch的实现可以看我这篇: 链接: l利用celebA数据集训练MTCNN网络. 算法流程 1. 对传入P网络的图片re…

10种轻量级人脸检测算法的比拼

关注并星标 从此不迷路 计算机视觉研究院 公众号ID|ComputerVisionGzq 学习群|扫码在主页获取加入方式 转自:https://blog.csdn.net/nihate/article/details/108798831 计算机视觉研究院专栏 作者:Edison_G 最近在微信公众号里看到…

mtcnn人脸检测算法介绍

0. 概述 MTCNN(Multi-task Cascaded Convolutional Networks,多任务卷积神经网络),是2016年由Kaipeng Zhang、Zhanpeng Zhang等提出的一种多任务人脸检测模型,该模型使用3个CNN级联算法结构,将人脸检测和人脸特征点提取同时完成。…

Matlab人脸检测算法详解

这是一个Matlab人脸检测算法详解 前言人脸检测结果算法详解源代码解析所调用函数解析bwlabel(BW,n)regionpropsrectangle 总结 前言 目前主流的人脸检测与人脸识别算法主要基于人工神经网络进行训练与检测,本文基于数字图像处理解析一个非人工神经网络的有趣人脸检…

人脸检测算法落地详解

人脸检测 Face Detection 目标:人脸检测的目的是找出一张图片中的所有人脸的位置信息 人脸检测是人脸其他应用的基础,只有获取到了是否有人脸和人脸的精确的位置信息,其它的应用才能继续开展,所以说人脸检测是一个基础且重要的一…

MATLAB人脸检测算法

MATLAB人脸检测算法 人脸检测是将人脸从复杂的背景图像中检测出来,它是实现人脸识别的基础和前提。 肤色重建 使用人脸肤色模板对灰度图像进行肤色重建,使其变成彩色图像,效果如下: 在函数function Rgray2rgb1(img1,img2)中&a…

人脸检测算法

https://handong1587.github.io/deep_learning/2015/10/09/object-detection.html 人脸识别各论文参考 知乎一个栏目: https://zhuanlan.zhihu.com/p/25025596 首先介绍一下常用人脸检测的常用数据库: FDDB和WIDER FACE FDDB总共2845张图像&#xff0…

一文带你了解人脸检测算法的类型及其工作原理

在过去的几年里,人脸识别受到了广泛的关注,被认为是图像分析领域最有前途的应用之一。人脸检测可以考虑人脸识别操作的很大一部分。根据其强度将计算资源集中在持有人脸的图像部分。图片中的人脸检测方法很复杂,因为人脸存在可变性&#xff0…

人脸识别之人脸检测算法

人脸识别的一般步骤:人脸检测->人脸对齐->人脸特征提取->(计算人脸的差值)三元组损失/中心损失->差值小于某一阈值则为同一个人,差值大于某一阈值则不是同一人。 本文将对每一个步骤的技术现状,进行分析&a…

Python网络爬虫与信息提取(17)—— 题库爬取与整理+下载答案

前言 上一节实现了题目的整理,没整理答案是不完整的,所以这一节加上答案的爬取。 上一节地址:Python网络爬虫与信息提取(16)—— 题库爬取与整理 效果 思路 爬答案有点难搞,像这种题库的答案都是要么要会员,要么要登陆账号才能看答案,这种就比较费劲了,解决方案有…

Python 网络爬虫及数据可视化

网络爬虫及数据可视化 1 项目背景1.1Python的优势1.2网络爬虫1.3数据可视化1.4Python环境介绍1.4.1简介1.4.2特点 1.5扩展库介绍1.5.1安装模块1.5.2主要模块介绍 2 需求分析2.1 网络爬虫需求2.2 数据可视化需求 3 总体设计3.1 网页分析3.2 数据可视化设计 4 方案实施4.1 网络爬…

python网络爬虫权威指南 百度云-Python网络爬虫权威指南 PDF 第2版

给大家带来的一篇关于Python爬虫相关的电子书资源,介绍了关于Python、网络爬虫方面的内容,本书是由人民邮电出版社出版,格式为PDF,资源大小5.54 MB,瑞安米切尔编写,目前豆瓣、亚马逊、当当、京东等电子书综…

【python】基础网络爬虫教程

1.爬虫目的 用通俗易懂的话来说,是对多种类型数据(如文字,图片,音频,视频等)进行批量式的采集与存储。 本文为个人一些学习心得,举例对网页进行信息爬取操作,使用python中基础的方法进行爬取,便于理解学习。2.爬虫准备 需要对python有一些基础,对字符串,列表,循环结构等有了解。…

python网络爬虫及数据可视化

广东某学校的期末python作业 一、设计内容及要求 设计内容:对中国大学专业排名网站中2021年,计算机科学与技术专业,进行数据爬取和数据可视化。 URL: https://www.shanghairanking.cn/rankings/bcmr/2021/080901 设计要求&am…

python网络爬虫的流程图_Python 网络爬虫程序架构及运行流程

1 前言 Python开发网络爬虫获取网页数据的基本流程为: 发起请求 通过URL向服务器发起request请求,请求可以包含额外的header信息。 获取响应内容 服务器正常响应,将会收到一个response,即为所请求的网页内容,或许包含HTML,Json字符串或者二进制的数据(视频、图片)…

python网络爬虫--网页登录

1、前言 主要用到python的selenium库,通过模仿浏览器行为定位登录所需的标签位置,实现网页登录功能.最后在码云(gitee)上测试自动登录功能. 2、selenium定位网页元素 关于selenium的使用前准备可以看到我之前的一篇…

python网络爬虫可以干什么,python网络爬虫有什么用

python爬虫能做什么 世界上80%的爬虫是基于Python开发的,学好爬虫技能,可为后续的大数据分析、挖掘、机器学习等提供重要的数据源。什么是爬虫? (推荐学习:Python视频教程)网络爬虫(又被称为网…

python网络爬虫技术课后答案_尔雅《Python网络爬虫技术(2020年秋季学期)》网课答案...

尔雅《Python网络爬虫技术(2020年秋季学期)》网课答案 法律的一般含义是() 答:法律是由国家创制并保证实施的行为规范 下列属于急症手术的是 答:肝破裂 脾气统摄血液的功能,实际上是()的固摄作用的体现 答:气 中国古代南北争战中&…