10种轻量级人脸检测算法大PK

article/2025/11/8 10:19:45

几个月前,AIZOO曾经盘点过 最强六大开源轻量级人脸检测项目分析 | 附打包下载,nihate同学将它丰富到10种算法,并用Python.对他们进行了汇总整理,以及效果的对比。

Github链接:https://github.com/hpc203/10kinds-light-face-detector-align-recognition 可以阅读原文跳转。

原文:https://blog.csdn.net/nihate/article/details/108798831 

最近在微信公众号 AIZOO 里看到轻量级人脸检测算法大盘点的文章,里面还提供了Github源码地址,我就把它们逐个下载到本地Win10-CPU机器上,调试通过运行。

去年在Github下载过一个包含6种人脸检测的程序,分别是Pyramidbox,DSFD,S3FD,TinyFace,FaceBox,MTCNN,但是这些算法大多是重量级的网络模型,它在一幅图片上的人脸检测结果和运行耗时统计直方图如下。

运行效果如下图所示:

耗时效果统计对比:

可以看到PyramidBox,DSFD,S3FD,TinyFace这4个模型是非常耗时的,对于比赛刷榜,我们可以用这种很大的模型,但是在工业界非常不实用,假如要部署到 ARM 的嵌入式设备上,大概率直接卡死。

因此我就整理了最近一年之内的轻量级人脸检测算法的程序,独立编写一个包含多种轻量级人脸检测算法集合的程序。PyTorch是我最喜欢的深度学习框架,在部署模型的前向推理时,我更喜欢用Opencv的dnn模块。因而,我收集到的轻量级人脸检测算法的程序如果是基于PyTorch框架的,我就不会对代码做较大的改动,如果程序是基于Caffe, Tensorflow或者Darknet的,我会把程序改写成用Opencv的dnn模块做人脸检测。最后我整理了10种人脸检测算法,它们分别是:

  •  Ultra-Light-Fast-Generic-Face-Detector,程序里简写为ultraface

  •  LFFD:A Light and Fast Face Detector for Edge Devices,程序里简写为lffdface

  •  CenterFace, 程序里简写为centerface

  •  DBFace, 程序里简写位dbface

  •  RetinaFace, 程序里简写为retinaface

  •  MTCNN, 程序里简写为mtcnn

  •  SSD, 程序里简写为ssdface

  •  facebox,程序里简写为facebox

  •  yoloface,程序里简写为yoloface

  •  于仕琪老师提出的libfacedetection, 程序里简称为libface

此外,我编写的程序里还包含 PFLD: A Practical Facial Landmark Detector,它是一个简单、快速、超高精度人脸特征点检测算法。到此一共有10种人脸检测和1个人脸关键点检测的程序,我用面向对象的思想把每一种人脸检测算法写成一个类的形式,里面包含构造函数__init__和成员函数detect。最后,编写一个主函数,来做这10种人脸检测算法在同一幅图上的人脸检测结果和运行耗时的比较。我编写的这套程序在github上的地址是 

https://github.com/hpc203/10kinds-light-face-detector-align-recognition

我分别测试了两幅图片,第一幅图片的检测结果和运行耗时统计直方图如下:

耗时对比如下图:

第2幅图片的检测结果和运行耗时统计直方图如下:

耗时对比如下图:

这两幅测试图片有鲜明代表性,一幅是只有2个人脸,另一幅是有好多个人脸的。ssdface和libface的运行速度最快,但是在有密集人脸的场景里,它们漏检了很多人脸。综合两幅图片的检测结果,考虑检测准确率和运行耗时的折中权衡,retinaface和lffdface是最优选择。retinaface运行耗时虽然比lffdface的要略长一点,但是retinaface的输出里有5个关键点。

在我的程序里还有提取人脸特征向量和计算人脸特征向量距离的模块,这两个模块再加上前面的人脸检测和关键点检测(做人脸对齐)的模块,这样就组成了人脸检测+人脸对齐+人脸识别,这时候你就可以构造一个实时的人脸识别系统。具体实现方式可以参见github代码里的README.md。程序有不足的地方,还请同行多多指教。


http://chatgpt.dhexx.cn/article/1eHZbBpl.shtml

相关文章

目前最好的人脸检测算法,RetinaFace论文详解

原文链接:https://www.jianshu.com/p/d4534ac94a65 微信搜索:AI算法与图像处理,最新干货全都有 大家好,今天给大家分享一篇人脸算法领域非常知名的paper,RetinaFace(RetinaFace: Single-stage Dense Face Localisation…

人脸检测算法理解之mtcnn

最近在一次交流活动中,再次听别人讲人脸检测算法mtcnn,虽然以前也断断续续听过两次,对于一些技术细节仍不清楚,为了解决自己的困惑,笔者又重拾起这一算法,在认真研读论文和思考后有了新的理解,于…

人脸检测算法总结:PyramidBox

人脸检测算法总结:PyramidBox IntroductionPyramidBoxTraining PyramidBox是百度提出的人脸检测算法,提出后在widerface上排第一(现在已经不是了,但仍居前三),PyramidBox可以看做是S3FD的升级版&#xff0c…

人脸检测算法总结:S3FD

人脸检测算法总结:S3FD——Single Shot Scale-invariant Face Detector IntroductionS3FDTraining结论 S3FD是中科院自动化所的一篇文章,当时一出现就刷新了wider face榜单,比上一篇提到的SSH略高一点。这个算法主要是解决小人脸的检测问题&a…

SSH人脸检测算法(SSH: Single Stage Headless Face Detector)

论文:《SSH: Single Stage Headless Face Detector》 链接:https://arxiv.org/pdf/1708.03979.pdf 代码链接:https://github.com/mahyarnajibi/SSH 摘要 我们介绍了单点无头(SSH)人脸检测器。与两阶段提议分类检测器…

人脸检测算法MTCNN

本文将对人脸检测效果不错的MTCNN算法做一个梳理。 论文地址 MTCNN主要分为三步: 最初先对图像进行多尺度变换,获取图像金字塔,获取图像多尺度信息。 P-net(Proposal Network): 主要使用一个全卷机网络,获取候选框…

YbFace:完全开源的人脸检测算法

YbFase(yolo base face detector),是一个借鉴了yolov3的网络结构,在多特征尺度下预测人脸框的人脸检测算法.并结合了yolov4使用的mish激活函数.该模型大小仅为7,8M,无论模型大小,还是准确率,还是执行速率都很有竞争力. 源码地址(github): face_detect 如果对你有…

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

目录 1、场景需求2、libfacedetection2.1 相关链接2.2 算法简介2.3 算法效果展示2.4 算法性能展示 3、Ultra-Light-Fast-Generic-Face-Detector-1MB3.1 相关链接3.2 算法简介3.3 算法效果展示3.4 算法性能展示 4、BlazeFace4.1 相关链接4.2 算法简介4.3 算法效果展示4.4 算法性…

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)—— 题库爬取与整理 效果 思路 爬答案有点难搞,像这种题库的答案都是要么要会员,要么要登陆账号才能看答案,这种就比较费劲了,解决方案有…