最强六大开源轻量级人脸检测项目分析 | 附打包下载

本文主要是介绍最强六大开源轻量级人脸检测项目分析 | 附打包下载,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

​随着深度学习的兴起,工业界和学术界越来越多的使用基于深度学习的方法,而不是传统的基于模板匹配,纹理提取或者像素积分图等方法。因为人脸检测本身并不属于特别复杂的任务,因此轻量级的深度学习模型即可满足该任务。本文汇总了六大开源的人脸检测项目。

本文首发:AIZOO,欢迎在关注我们

虽说深度学习是个黑箱,但基于深度学习的通用目标检测算法(例 如 Faster-RCNN,SSD,YoloV3、 RetinaNet等)的检测效果和鲁棒性,远远的超过基于纹理、边缘、Harr特征、Sift特征的传统计算机视觉方法,而且近几年随着模型压缩、量化技术的进步,模型运行速度也越来越快。

对于通用的目标检测算法,以大家常用的 SSD 和 YoloV3 算法为例,因为算法在设计之初,是为Pascal VOC 或者 COCO这种 20 类 和 80 类的多类别任务设计的,因此其 backbone 网络,也就是特征提取网络一般使用 VGG16、Darknet53、ResNet18这种网络,这些网络的一个通用特点是,其卷积层的卷积核数目通常比较多(例如256,512),导致模型参数量动辄几千万,运算量巨大。

如果我们拿这些通用目标检测算法来检测一类,比如只检测人脸、行人或者车辆时,使用那么多的卷积核数量、那么深的网络其实是不必要的。如果要检测 80 个类别,可能需要更多参数量来拟合,但是对于一两个类别,其实是有点杀鸡用宰牛刀了,如果你的任务不复杂,却用了ResNet18\34这种网络,你会发现很多卷积核的激活,其实是 0,导致白白多增加了很多计算量。所以,针对特定的人脸检测任务,其实一些非常轻量级的网络即可满足任务要求。

元峰曾经写了一篇介绍南科大于仕琪老师的开源人脸检测项目的文章(人脸检测速度近2000FPS,就在刚刚,这位硬核老师将训练代码开源了),有不少读者对该工作很质疑,认为模型太小,导致有误检测,于老师在文章评论区亲自现身回答了大家的质疑。

 

 

对于比赛刷榜,我们可以用很大的模型,例如某 AI 公司在 WiderFace上夺冠的模型,结构用 RetinaNet,backbone 用 ResNet152,另外,FPN结构也安排上,多模型融合安排上,更多的 anchor 组数安排上,这样的模型对于刷榜非常实用,但是在工业界非常不实用,假如要部署到 ARM 的嵌入式设备上,大概率直接卡死。

随着 AI 落地为王时代的到来,大家越来越注重精度和速度的权衡(trade off),本文精选了六大轻量级的开源人脸检测项目,并对其进行简单赏析和介绍。

言归正传,下面我们按照Github上star数目从高到低依次介绍。

 

1. libfacedetection

Github star: 9.3k

作者:于仕琪

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

模型参数量:232万,体积 3.34M

 

前几天元峰已经对该项目进行过一次介绍了,该项目使用一个SSD架构的人脸检测模型,在酷睿 i7 的CPU上,320x240分辨率下可以达到296.21 FPS,下图是该项目在不同分辨率和单线程下的速度概览。

 

模型结构也比较简单,就是一个轻量级的 SSD 架构,共四个定位层,而且借鉴了RetinFace的关键点方法,可以同时回归5个关键点。模型体积只有232万,体积仅有3.34M

该项目的最大亮点,其实是于老师搞了一个纯C++的推理版本,不依赖第三方深度学习库,非常有利于工程部署。

 

2. Ultra-Light-Fast-Generic-Face-Detector-1MB

Github star: 4.7k

作者:Linzaer

链接:https://github.com/Linzaer/Ultra-Light-Fast-Generic-Face-Detector-1MB

体积:1.04M, int8量化后 300KB

该模型是针对边缘计算设备设计的人脸检测模型。并提供了精简网络和RFB网络两种,在320x240的输入分辨率下 90~109 FPS左右。

该模型的结构与上述于老师的模型结构非常相似,也是 SSD 架构,共有4个定位层,模型结构如下图所示。

另外,该项目提供了NCNN、MNN、Caffe、Onnx、Opencv的推理代码,可以给我们部署项目提供大量参考样例。

 

 

3. A-Light-and-Fast-Face-Detector-for-Edge-Devices

Github star: 897

作者:YonghaoHe

链接:https://github.com/YonghaoHe/A-Light-and-Fast-Face-Detector-for-Edge-Devices

体积:6.1 M

从名字可以看出来,这也是一个面向边缘设备的检测模型,该模型同样是 SSD架构的,不过相比前述两个模型,该模型有八个定位层,分别对应tiny、small、medium和large四个尺度,backbone 网络共有 25 个卷积层。

该模型在 Nvidia TX2下,320x240分辨率下可以达到 50.92 FPS。

另外,该 repo 还提供了人头检测、行人检测、车辆检测的代码和模型。

 

4. CenterFace

Github star: 607

作者:Star-Clouds

链接:https://github.com/Star-Clouds/CenterFace

体积:7.3 M、同精度小模型 2.3M

CenterFace是 anchor free 的模型结构,应该算是CenterNet针对人脸检测任务的特例,这一点上跟RetinaFace作为RetinaNet的在人脸任务的特例有异曲同工之妙,而且该模型同时回归了五个关键点。

该网络的backbone是MobileNetV2,额外添加了FPN结构。

下图是CenterFace的速度,在 2080TI上可以仅4.4ms。Anchor Free的模型,没有NMS的过程,也能节省很多后处理时间。

 

5. DBFace

Github star: 195 作者:dlunion

链接:https://github.com/dlunion/DBFace

体积:7.03M

 

DBFace是一个Anchor Free的网络结构,模型原理可以说与CenterFace非常相似。这里不再展开详细的介绍了。

 

6. RetinaFace MobileNet0.25

Github star: 不好定义(6.4k) 作者:yangfly

链接:https://github.com/deepinsight/insightface/issues/669

体积:1.68M

 

这个项目来自于知名的InsightFace项目,该项目在Github有6.4k star,InsightFace提出了知名的RetinaFace、ArcFace算法,而且开源了详细的训练代码和预训练模型,可以说是非常良心的开源项目。

但是 RetinaFace(应该是受 RetianNet 的结构启发而成)本身的 backbone 是 ResNet50,yangfly 大佬将其替换为了 MobileNet0.25,模型大小仅1.68MB。RetinaFace 的模型结构如下,这里的 backbone网络是 MobileNet 0.25。

 


根据作者的开源结果,我们对以上6大开源轻量级人脸检测做一个速度和准确度的对比汇总。

另外,笔者将六大框架打包下载好了,下载链接

链接: https://pan.baidu.com/s/15K_ULtirQgZr2xptYf2SSw 提取码: ibw4

 

号外,我们新版本的网站AIZOO.com已经上线了,欢迎圈里算法工程师将您的算法展示到 AIZOO 平台,我们致力于打造需求方和 AI 工程师的桥梁,也欢迎对人工智能算法有需求的朋友向我们提需求。

 

精彩推荐

2020年代,中国AI创业公司将走向何方

都2020年了,在校学生还值得继续转行搞AI吗

AIZOO开源人脸口罩检测数据+模型+代码+在线网页体验,通通都开源了

新手也能彻底搞懂的目标检测Anchor是什么?怎么科学设置?[附代码]

 

这篇关于最强六大开源轻量级人脸检测项目分析 | 附打包下载的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/999450

相关文章

综合安防管理平台LntonAIServer视频监控汇聚抖动检测算法优势

LntonAIServer视频质量诊断功能中的抖动检测是一个专门针对视频稳定性进行分析的功能。抖动通常是指视频帧之间的不必要运动,这种运动可能是由于摄像机的移动、传输中的错误或编解码问题导致的。抖动检测对于确保视频内容的平滑性和观看体验至关重要。 优势 1. 提高图像质量 - 清晰度提升:减少抖动,提高图像的清晰度和细节表现力,使得监控画面更加真实可信。 - 细节增强:在低光条件下,抖

阿里开源语音识别SenseVoiceWindows环境部署

SenseVoice介绍 SenseVoice 专注于高精度多语言语音识别、情感辨识和音频事件检测多语言识别: 采用超过 40 万小时数据训练,支持超过 50 种语言,识别效果上优于 Whisper 模型。富文本识别:具备优秀的情感识别,能够在测试数据上达到和超过目前最佳情感识别模型的效果。支持声音事件检测能力,支持音乐、掌声、笑声、哭声、咳嗽、喷嚏等多种常见人机交互事件进行检测。高效推

常用的jdk下载地址

jdk下载地址 安装方式可以看之前的博客: mac安装jdk oracle 版本:https://www.oracle.com/java/technologies/downloads/ Eclipse Temurin版本:https://adoptium.net/zh-CN/temurin/releases/ 阿里版本: github:https://github.com/

springboot3打包成war包,用tomcat8启动

1、在pom中,将打包类型改为war <packaging>war</packaging> 2、pom中排除SpringBoot内置的Tomcat容器并添加Tomcat依赖,用于编译和测试,         *依赖时一定设置 scope 为 provided (相当于 tomcat 依赖只在本地运行和测试的时候有效,         打包的时候会排除这个依赖)<scope>provided

烟火目标检测数据集 7800张 烟火检测 带标注 voc yolo

一个包含7800张带标注图像的数据集,专门用于烟火目标检测,是一个非常有价值的资源,尤其对于那些致力于公共安全、事件管理和烟花表演监控等领域的人士而言。下面是对此数据集的一个详细介绍: 数据集名称:烟火目标检测数据集 数据集规模: 图片数量:7800张类别:主要包含烟火类目标,可能还包括其他相关类别,如烟火发射装置、背景等。格式:图像文件通常为JPEG或PNG格式;标注文件可能为X

金融业开源技术 术语

金融业开源技术  术语 1  范围 本文件界定了金融业开源技术的常用术语。 本文件适用于金融业中涉及开源技术的相关标准及规范性文件制定和信息沟通等活动。

安全管理体系化的智慧油站开源了。

AI视频监控平台简介 AI视频监控平台是一款功能强大且简单易用的实时算法视频监控系统。它的愿景是最底层打通各大芯片厂商相互间的壁垒,省去繁琐重复的适配流程,实现芯片、算法、应用的全流程组合,从而大大减少企业级应用约95%的开发成本。用户只需在界面上进行简单的操作,就可以实现全视频的接入及布控。摄像头管理模块用于多种终端设备、智能设备的接入及管理。平台支持包括摄像头等终端感知设备接入,为整个平台提

K8S(Kubernetes)开源的容器编排平台安装步骤详解

K8S(Kubernetes)是一个开源的容器编排平台,用于自动化部署、扩展和管理容器化应用程序。以下是K8S容器编排平台的安装步骤、使用方式及特点的概述: 安装步骤: 安装Docker:K8S需要基于Docker来运行容器化应用程序。首先要在所有节点上安装Docker引擎。 安装Kubernetes Master:在集群中选择一台主机作为Master节点,安装K8S的控制平面组件,如AP

基于 YOLOv5 的积水检测系统:打造高效智能的智慧城市应用

在城市发展中,积水问题日益严重,特别是在大雨过后,积水往往会影响交通甚至威胁人们的安全。通过现代计算机视觉技术,我们能够智能化地检测和识别积水区域,减少潜在危险。本文将介绍如何使用 YOLOv5 和 PyQt5 搭建一个积水检测系统,结合深度学习和直观的图形界面,为用户提供高效的解决方案。 源码地址: PyQt5+YoloV5 实现积水检测系统 预览: 项目背景

JavaFX应用更新检测功能(在线自动更新方案)

JavaFX开发的桌面应用属于C端,一般来说需要版本检测和自动更新功能,这里记录一下一种版本检测和自动更新的方法。 1. 整体方案 JavaFX.应用版本检测、自动更新主要涉及一下步骤: 读取本地应用版本拉取远程版本并比较两个版本如果需要升级,那么拉取更新历史弹出升级控制窗口用户选择升级时,拉取升级包解压,重启应用用户选择忽略时,本地版本标志为忽略版本用户选择取消时,隐藏升级控制窗口 2.