Linzaer / Ultra-Light-Fast-Generic-Face-Detector-1MB
- вторник, 15 октября 2019 г. в 00:23:13
Python
💎 一款超轻量级通用人脸检测模型(模型文件大小仅1MB,320x240输入下计算量仅90MFlops)适用于边缘计算设备、移动端设备以及PC
该模型设计是针对边缘计算设备或低算力设备(如用ARM推理)设计的一款实时超轻量级通用人脸检测模型,旨在能在低算力设备中如用ARM进行实时的通用场景的人脸检测推理,同样适用于移动端环境(Android & IOS)、PC环境(CPU & GPU )。有如下几个特点:
训练集是使用Retinaface提供的清理过的widerface标签配合widerface数据集生成VOC训练集(PS:以下测试结果均为本人测试,结果可能有部分出入)。
模型 | Easy Set | Medium Set | Hard Set |
---|---|---|---|
libfacedetection v1(caffe) | 0.65 | 0.5 | 0.233 |
libfacedetection v2(caffe) | 0.714 | 0.585 | 0.306 |
官方 Retinaface-Mobilenet-0.25 (Mxnet) | 0.745 | 0.553 | 0.232 |
version-slim | 0.765 | 0.662 | 0.385 |
version-RFB | 0.784 | 0.688 | 0.418 |
模型 | Easy Set | Medium Set | Hard Set |
---|---|---|---|
libfacedetection v1(caffe) | 0.741 | 0.683 | 0.421 |
libfacedetection v2(caffe) | 0.773 | 0.718 | 0.485 |
官方 Retinaface-Mobilenet-0.25 (Mxnet) | 0.879 | 0.807 | 0.481 |
version-slim | 0.757 | 0.721 | 0.511 |
version-RFB | 0.851 | 0.81 | 0.541 |
模型 | 1核 | 2核 | 3核 | 4核 |
---|---|---|---|---|
libfacedetection v1 | 28 | 16 | 12 | 9.7 |
官方 Retinaface-Mobilenet-0.25 (Mxnet) | 46 | 25 | 18.5 | 15 |
version-slim | 29 | 16 | 12 | 9.5 |
version-RFB | 35 | 19.6 | 14.8 | 11 |
模型 | 地铁站室外.MP4(1分43秒) | 地铁站内.MP4(1分13秒) | 地铁站内2.MP4(36秒) | 万达广场室外.MP4(1分36秒) | 办公室内.MP4(1分07秒) |
---|---|---|---|---|---|
libfacedetection v1 | 6599 | 4571 | 1899 | 7490 | 2818 |
官方 Retinaface-Mobilenet-0.25 (Mxnet) | 4415 | 4897 | 2026 | 7882 | 2557 |
version-RFB | 9343 | 8765 | 4017 | 12133 | 3321 |
模型 | 模型文件大小(MB) |
---|---|
libfacedetection v1(caffe) | 2.58 |
libfacedetection v2(caffe) | 3.34 |
官方 Retinaface-Mobilenet-0.25 (Mxnet) | 1.68 |
version-slim | 1.04 |
version-RFB | 1.11 |
(1)过滤掉10px*10px 小人脸后的干净widerface数据压缩包 :百度云盘 提取码:x5gt
(2)未过滤小人脸的完整widerface数据压缩包 :百度云盘 提取码:8748
python3 ./data/wider_face_2_voc_add_landmark.py
程序运行和完毕后会在./data目录下生成 wider_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
(1)最优:输入尺寸input_size:640(640x480)分辨率训练,并采用640x480图片大小或者更大输入尺寸进行预测推理,如使用提供的预训练模型Mb_Tiny_RFB_FD_train_input_640.pth进行推理,更高的召回,更低的误报。
(2)次优:输入尺寸input_size:320(320x240)分辨率训练,并采用640x480图片大小输入进行预测推理,这样对于小人脸更敏感,但是误报会增加。