3模型大小_Github推荐一个国内牛人开发的超轻量级通用人脸检测模型
Ultra-Light-Fast-Generic-Face-Detector-1MB
1MB轻量级通用人脸检测模型
作者表示该模型设计是为了边缘计算设备以及低功耗设备(如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的人脸检测效果图:
- 如果实际的生产场景是中距离、大面和小面,建议使用输入尺寸输入尺寸: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上找得到。
3模型大小_Github推荐一个国内牛人开发的超轻量级通用人脸检测模型相关推荐
- 大小仅1MB,超轻量级通用人脸检测模型登上GitHub趋势榜
机器之心报道 项目作者:Linzaer 近日,用户 Linzaer 在 Github 上推出了一款适用于边缘计算设备.移动端设备以及 PC 的超轻量级通用人脸检测模型,该模型文件大小仅 1MB,320 ...
- 超轻量级通用人脸检测模型
项目地址:github.com/Linzaer/Ult- 以下是作者对此项目的介绍: 该模型设计是针对边缘计算设备或低算力设备 (如用 ARM 推理) 设计的一款实时超轻量级通用人脸检测模型,旨在能在 ...
- 模型仅1MB,更轻量的人脸检测模型开源,效果不弱于主流算法
乾明 编辑整理 量子位 报道 | 公众号 QbitAI AI模型越来越小,需要的算力也也来越弱,但精度依旧有保障. 最新代表,是一个刚在GitHub上开源的中文项目:一款超轻量级通用人脸检测模型. ...
- java rfb,github上开源的超轻量级人脸检测模型及github地址。
该模型设计是针对边缘计算设备或低算力设备(如用ARM推理)设计的实时超轻量级通用人脸检测模型,可以在低算力设备中如用ARM进行实时的通用场景的人脸检测推理,同样适用于移动端.PC.在模型大小上,默认F ...
- 如何成为一个技术“牛人”
今天给浙江大学过来的几个还没有毕业的研究生做面试,这些研究生是想来公司实习的.在面试的过程中,一个学生问我"我们有C/C++.JAVA等等多种语言,我如何才能成为某一方面的一个技术牛人呢?这 ...
- 听框架师——李云谈如何成为一个技术“牛人”
今天给浙江大学过来的几个还没有毕业的研究生做面试,这些研究生是想来公司实习的.在面试的过程中,一个学生问我"我们有C/C++.JAVA等等多种语言,我如何才能成为某一方面的一个技术牛人呢?这 ...
- DBFace升级,模型仅1.3M的轻量级高精度人脸检测模型
本文转载自DeepBlue深兰科技 已获原文作者授权转载,请勿二次转载 前段时间DBFace人脸检测库横空出世,被高度评价为:"这个仅7M大小的人脸识别模型几乎识别出了世界最大自拍照中的所有 ...
- WiderFace数据集用于训练人脸检测模型
下载链接: http://mmlab.ie.cuhk.edu.hk/projects/WIDERFace/ 该数据集可用于进行人脸检测模型的训练 如果做训练,可以点击网页中的 (国内还是百度吧,会快一 ...
- 目标检测 YOLO v3 训练 人脸检测模型
YOLO,是You Only Look Once的缩写,一种基于深度卷积神经网络的物体检测算法,YOLO v3是YOLO的第3个版本,检测算法更快更准. 本文源码:https://github.com ...
最新文章
- Keil中RO-data、RW-data、ZI-data意义
- 消除软硬件鸿沟,芯客网完美支持智能硬件在移动互联时代的爆发
- 在JVM之下–类加载器
- Confluent Platform 3.0支持使用Kafka Streams实现实时的数据处理(最新版已经是3.1了,支持kafka0.10了)...
- python指定范围内加法代码解析
- BLOB,TEXT GEOMETRY or JSON column 'xxx' can't have a default value query问题解决
- 【Python爬虫】Requests库网络爬虫实战
- a + b + c 求和
- Linux 信号量互斥编程
- 项目管理团队建设成功经验
- 18. Make interfaces esay to use correctly and hard to use incorrectly
- linux安装yum报错Unable to locate package yum
- JS简单实现分页显示
- 无线网络有信号显示未连接网络连接服务器,路由器无线网络受限制或无连接怎么办...
- python中histogram_python – 了解Pillow中的histogram()
- 黑苹果 hackintosh 啰嗦模式
- BH1750FVI调试
- 阿里P8、P9税后180W及以上到底是什么水平?
- 资深程序员才能看懂的幽默时刻
- 文件服务器网盘,文件服务器 网盘 云
热门文章
- 纹理和基元_通过粘性仙人掌基元进行延迟加载和缓存
- java mic波形识别_会议季Mic Drop:您不应该错过的13场Java演讲
- 接口中默认方法和静态方法_接口中的默认方法和静态方法
- ejb生命周期_EJB 3.x:生命周期和并发模型(第1部分)
- AWS Lambda将数据保存在DynamoDB中
- Spring Boot中的@SpringBootConfiguration注释
- ldap2.8.2_Spring LDAP 2.0.0发布
- 设计模式 原型模式_原型设计模式:创建另一个小车
- apache camel_发掘Apache Camel的力量
- mvvm 耗时加载进度条_ZK的实际应用:MVVM –加载和渲染数据