3模型大小_Github推荐一个国内牛人开发的超轻量级通用人脸检测模型

1fbdaa84728aaf09dbff65d7858ea39b.png

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

1MB轻量级通用人脸检测模型

e62295df35de17264e27ddca05b5b135.png

作者表示该模型设计是为了边缘计算设备以及低功耗设备(如arm)设计的实时超轻量级通用人脸检测模型。它可以用于arm等低功耗计算设备,实现实时的通用场景人脸。

检测推理同样适用于移动终端或pc机。

作者加入widerface测试代码,完善部分测试数据及添加MNN、NCNN C++推理代码等。

  • 从模型大小来看,默认的fp32精度(.pth)文件大小为1.04~1.1MB,推理帧int8约为300KB。
  • 在模型计算中,320x240的输入分辨率约为90~109mflops。
  • 该模型有两个版本,版本slim(简化速度稍快)、版本rfb(带有修改后的rfb模块,精度更高)。
  • 提供使用320x240和640x480不同输入分辨率的Widerface培训的预培训模型,以便更好地在不同的应用场景中工作。
  • 支持onxx导出,易于移植推理。

作者测试过PC运行环境

  • Ubuntu16.04、Ubuntu18.04、Windows 10(inference)
  • Python3.6
  • Pytorch1.2
  • CUDA10.0 + CUDNN7.6

我们来看下速度、精度和模型大小对比数据

训练集是使用Retinaface提供的清洁过的Wideface标记以及Wideface数据集生成的,以生成VOC训练集(PS:以下测试结果由我本人测试,结果可能有所不同)。

Widerface测试情况

宽面测试集中的测试精度(单标度输入分辨率:320*240)

模型Easy SetMedium SetHard Setlibfacedetection v1(caffe)0.650.50.233libfacedetection v2(caffe)0.7140.5850.306官方 Retinaface-Mobilenet-0.25 (Mxnet)0.7450.5530.232version-slim0.7650.6620.385version-RFB0.7840.6880.418

宽面测试集中的测试精度(单刻度输入分辨率:VGA 640*480)

模型Easy SetMedium SetHard Setlibfacedetection v1(caffe)0.7410.6830.421libfacedetection v2(caffe)0.7730.7180.485官方 Retinaface-Mobilenet-0.25 (Mxnet)0.8790.8070.481version-slim0.7570.7210.511version-RFB0.8510.810.541

看看在树莓派推理速度

树莓pi 4b mnn推理测试时间(ms)(arm/a72x4/1.5ghz/输入分辨率:320x240/int8量化)

模型1核2核3核4核libfacedetection v12816129.7官方 Retinaface-Mobilenet-0.25 (Mxnet)462518.515version-slim2916129.5version-RFB3519.614.811

我们来看看模型大小数据比较

几种主流开源轻量级人脸检测模型的大小比较:

模型模型文件大小(MB)libfacedetection v1(caffe)2.58libfacedetection v2(caffe)3.34官方 Retinaface-Mobilenet-0.25 (Mxnet)1.68version-slim1.04version-RFB1.11

生成voc格式的训练数据集和训练流程

一、下载wideface官方网站数据集或下载我提供的培训集并将其提取到./data文件夹:

(1)过滤掉10px*10px面后干净的wideface数据压缩包

(2)完整的未过滤小面宽面数据压缩包

(注:如果下载上述(1)中的过滤包,则无需执行此步骤)

二、由于宽空间中有许多小而不清晰的面,不利于有效模型的收敛,因此需要进行过滤。训练时,默认值是过滤10像素x 10像素的脸大小。

运行./data/wide_face_2_voc_add_landmark.py

python3 ./data/wider_face_2_voc_add_landmark.py

程序运行并完成后,将在./data目录中生成更宽的

“u face_add_lm_10_10”文件夹。解压后文件夹数据和数据包(1)相同。完整的目录结构如下:

 data/retinaface_labels/test/train/val/wider_face/WIDER_test/WIDER_train/WIDER_val/wider_face_add_lm_10_10/Annotations/ImageSets/JPEGImages/wider_face_2_voc_add_landmark.py

三、VOC训练集已准备就绪,在项目的根目录中有两个脚本

train_mb_tiny_fd.sh和train_mb_tiny_rfb_fd.sh。

四、前者用于训练slim版本模型,后者用于训练rfb版本模型。已设置默认参数。有关微调,请参阅./train.py中每个训练超参数的说明。

运行train_mb_tiny_fd.sh和train_mb_tiny_rfb_fd.sh

sh train_mb_tiny_fd.sh 或者 sh train_mb_tiny_RFB_fd.sh

我们来看看几张分辨率为640*480的人脸检测效果图:

6810dfba164a7abb8b8f30013b664e2e.png

01b961435811ff938719bffcc8358e8b.png

5c5a5edcc25ce273e39de13ba5d7f206.png
  • 如果实际的生产场景是中距离、大面和小面,建议使用输入尺寸输入尺寸:320(320x240)分辨率训练,并使用320x240图像尺寸输入进行预测推理,例如使用提供的预训练模型。用于推理的mb_tiny_rfb_fd_train_320.pth输入。
  • 如果实际的生产场景是中长距离、小面和大量面,建议:
  • (1)最优:输入大小输入大小:640(640x480)分辨率训练,并使用相同或更大的输入大小进行预测推理,如使用提供的训练前模型mb_tiny_rfb_fd_train_640.pth进行推理,误报率更低。
  • (2)次优:输入大小输入大小:320(320x240)分辨率训练,并使用480x360或640x480大小输入进行预测推理,对小脸更敏感,误报会增加。
  • 每个场景的最佳结果都需要调整输入分辨率,以便在速度和精度之间取得平衡。
  • 过大的输入分辨率会提高小人脸的召回率,但也会增加大、近距离人脸的误报率,推理速度会成倍增加。
  • 输入分辨率过小会显著加快推理速度,但会大大降低小人脸的召回率。
  • 制作场景的输入分辨率应尽量与模型训练的输入分辨率一致,上下浮动不宜过大。

相关数据集及代码大家可以在Github上找得到。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/332883.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

macOS如何使用命令启动服务/停止服务/查看服务

文章目录开启服务停止服务查看服务是否启动开启服务 使用命令开启 sshd 服务: $ sudo launchctl load -w /System/Library/LaunchDaemons/ssh.plist注:成功启动不会有任何输出 停止服务 $ sudo launchctl unload -w /System/Library/LaunchDaemons/s…

如何在用例之间传递值_如何从0搭建自己的自动化测试体系

大家好,我是爱吃面条,今天给大家讲讲如何从0搭建自己的自动化测试体系1. 需求和目标在我开展自动化测试之前,其实该项目以前的测试人员也已经写了很多的接口测试用例,但是大多数用例处于“半瘫痪”状态,在CI上无人维护…

envoy api 网关_为Envoy构建控制平面的指南-特定于域的配置API

envoy api 网关建立您的控制平面交互点和API表面 一旦考虑了哪些组件可能构成控制平面体系结构(请参见上一章),您将要确切考虑用户将如何与控制平面进行交互,甚至更重要的是, 用户将是谁? 要回答这个问题&a…

异步非阻塞_细说同步异步、阻塞非阻塞

同步、异步同步、异步分别指的是一种通讯方式,当 cpu 不需要执行线程上下文切换就能完成任务,此时便认为这种通讯方式是同步的,相对的如果存在cpu 上下文切换,这种方式便是异步。这里通过一个去食堂打饭的示例来理解什么是同步、异…

如何将网页部署到maven_如何通过Rultor将Maven工件部署到CloudRepo

如何将网页部署到maven在我以前的文章中 ,我描述了如何在Amazon S3中设置私有Maven存储库并通过Rultor进行部署。 如果您熟悉管理Amazon Web Services(AWS), S3和AWS Identity and Access Management(IAM)的…

macOS下如何使用命令启动数据库/停止数据库/重启数据库(MySQL)

文章目录启动数据库手动启动数据库自启动数据库查看数据库服务是否启动重启数据库服务停止数据库服务注意使用 sudo 执行命令会报错,所以不要使用 sudo: sudo mysql.server start . ERROR! The server quit without updating PID file (/usr/local/var/…

table 多行 宽度不一致_layui table 中固定列的行高和table行高不一致

Pipe(点积叉积的应用POJ1039)Pipe Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 9723 Accepted: 2964 Description ...cocos2d-x之CCMotionStreak类——2013-08-25 16在游戏的实现过程中,有时会需要…

java rest框架_比较Java REST文档框架

java rest框架决定在记录REST API时选择哪种Java框架可能很麻烦。 在本博文中,我们将简要比较我们自己使用的REST Web服务的三个文档框架,以及它们如何与Spring框架(这是Foreach中最常用的Java框架)集成。 这些是RESTful API建模语…

数据库的事务学习

文章目录事务四大特征多事务并发存在的问题事务隔离级别查询数据库的隔离级别设置数据库隔离级别1.事务里面的语句出错时并不会主动回滚,需要用户主动执行回滚指令 2.事务开始后,如果没有主动执行回滚或者提交指令,事务始终在执行中 3.事务执…

注解动态赋值_Java注解是如何玩转的,面试官和我聊了半个小时

作者:wind瑞 来自:JavaQ面试官:自定义的Java注解是如何生效的? 小白:自定义注解后,需要定义这个注解的注解解析及处理器,在这个注解解析及处理器的内部,通过反射使用Class、Method、…

阿里云服务器如何创建快照备份数据

文章目录创建快照快照收费你申请了阿里云服务器,其实就是申请了一个云盘,这个云盘安装了操作系统,你可以远程访问这个系统并使用该系统。我们可以给云盘创建快照,从而达到备份服务器数据的目的。创建快照 快照收费 如果您计划不再…

shebang_Java 11:运行单文件程序和“ shebang”脚本

shebang在Java 11中,对java启动器进行了增强,可以直接运行单文件源代码程序,而不必先编译它们。 例如,考虑以下仅添加其参数的类: import java.util.*; public class Add {public static void main(String[] args) {…

iShot快捷键

快捷键说明Option A选择截图区域Option Z截图光标下的窗口Option X截图整个屏幕Option D延时截图Option W开始录屏/结束录屏

日期格式化为yyyymmdd_Excel小技巧——如何将多行日期快速转换为数字文本

Hello~大家好,本来计划这一期给大家介绍一下如何根据身份证号快速获得性别信息的小技巧,但是在上一节内容如何将数字快速转换成日期格式发布后,就有朋友私信问我,可不可以再介绍一下将日期快速转换成数字文本的方法呢?…

顽皮狗 多线程分享_谁去过顽皮,谁去过尼斯? 圣诞老人为您提供Java 11建议!...

顽皮狗 多线程分享有没有想过圣诞老人如何为世界各地的孩子们提供节日礼物? 有20亿个孩子,每个孩子都有自己的愿望清单,他会在24小时内完成。 这意味着平均每个孩子43微秒,他需要检查每个孩子是否顽皮或好。 您无需再怀疑了。 我…

2021新交规超速处罚规定

1.时速超过限定时速不到10%的,给予警告; 2.在限速为50公里以下的道路,时速超过限定时速10%以上不到20%的(必须低于时速55公里),处50元罚款;超过限定时速20%以上不到50%的,处100元罚…

处理接口超时_架构设计|异步请求如何同步处理?

本文创意来自一次业务需求,这次需要接入一个第三方外部服务。由于这个服务只提供异步 API,为了不影响现有系统同步处理的方式,接入该外部服务时,应用对外屏蔽这种差异,内部实现异步请求同步。全文摘要:异步…

使用Spring Boot和MongoDB构建一个React式应用程序

“我喜欢编写身份验证和授权代码。” 〜从来没有Java开发人员。 厌倦了一次又一次地建立相同的登录屏幕? 尝试使用Okta API进行托管身份验证,授权和多因素身份验证。 如果您要处理大量流数据,React式应用程序可让您更好地扩展。 它们是非阻塞…

jax-ws和jax-rs_JAX-RS和OpenAPI对Hypermedia API的支持:任重而道远

jax-ws和jax-rs或早或晚,大多数积极使用REST(ful) Web服务和API的开发人员偶然发现了这种真正的外星事物,即HATEOAS : 超文本作为应用程序状态的引擎 。 对HATEOAS是什么及其与REST的关系的好奇最终将导致发现Richards…

如何下载MySQL的JDBC驱动包

1.打开 MySQL 官网:https://www.mysql.com/ 2.点击 DOWNLOADS,把页面滚动到最下面,点击 MySQL Community (GPL) Downloads 3.点击 Connector/J 4.点击 General Availability(GA) Releases,在 Select Operating System 下拉列表选…