大小仅1MB,超轻量级通用人脸检测模型登上GitHub趋势榜

    科技2022-08-01  96

    关注“迈微AI研习社”,内容首发于公众号

    近日,用户 Linzaer 在 Github 上推出了一款适用于边缘计算设备、移动端设备以及 PC 的超轻量级通用人脸检测模型,该模型文件大小仅 1MB,320x240 输入下计算量仅 90MFlops。项目推出不久即引起了大家的关注,登上了今天的 Github trending。

    项目地址:https://github.com/Linzaer/Ultra-Light-Fast-Generic-Face-Detector-1MB

    以下是作者对此项目的介绍:

    该模型设计是针对边缘计算设备或低算力设备 (如用 ARM 推理) 设计的一款实时超轻量级通用人脸检测模型,旨在能在低算力设备中如用 ARM 进行实时的通用场景的人脸检测推理,同样适用于移动端环境(Android & IOS)、PC 环境(CPU & GPU )。有如下几个特点:

    在模型大小方面,默认 FP32 精度下(.pth)文件大小为 1.1MB,推理框架 int8 量化后大小为 300KB 左右。

    在模型计算量方面,320x240 的输入分辨率下仅 90~109 MFlops 左右,足够轻量。

    模型设计有两个版本,version-slim(主干精简速度略快),version-RFB(加入了修改后的 RFB 模块,精度更高)。

    提供了 320x240、640x480 不同输入分辨率下使用 widerface 训练的预训练模型,更好的工作于不同的应用场景。

    无特殊算子,支持 onnx 导出,便于移植推理。

    测试过正常的运行环境

    Ubuntu16.04、Ubuntu18.04、Windows 10

    Python3.6

    Pytorch1.2

    CUDA10.0 + CUDNN7.6

    精度、速度、场景测试、模型大小比较

    训练集是使用 Retinaface 提供的清理过的 widerface 标签配合 widerface 数据集生成 VOC 训练集(PS:以下测试结果均为本人测试,结果可能有部分出入)。

    Widerface 测试

    在 WIDER FACE test 集测试精度(单尺度输入分辨率:320*240)

    在 WIDER FACE test 集测试精度(单尺度输入分辨率:VGA 640*480)

    终端设备推理速度

    树莓派 4B MNN 推理测试耗时 (单位:ms)(ARM/A72x4/1.5GHz/输入分辨率 : 320x240 /int8 量化)

    场景测试

    若干不同场景视频大致有效人脸检出数量测试(单位:个)(分辨率:VGA 640*480,阈值 0.6):

    模型大小比较

    若干主流开源轻量级人脸检测模型大小比较 :

    此外,如果读者希望复现这些测试,或者亲自试试训练效果,那么可以直接下载 widerface 官网数据集或者下载作者提供的训练集。这些数据集都需要放到./data 文件夹,且需要过滤掉 10×10 像素以下的人脸。如果从官网下载的数据集,那么还需要运行一个脚本过滤太小的人脸,因此最好的方法就是直接下载作者提供已过滤的数据集。

    下载地址:https://pan.baidu.com/share/init?surl=m600pp-AsNot6XgIiqDlOw

    提取码:x5gt

    在移除了 10*10 像素以下的极小人脸后,这个超轻量人脸检测模型能识别该图中的335张人脸。

    至此 VOC 训练集准备完毕,项目根目录下分别有 train_mb_tiny_fd.sh 和 train_mb_tiny_RFB_fd.sh 两个脚本,前者用于训练 slim 版本模型,后者用于训练 RFB 版本模型,默认参数已设置好,参数如需微调请参考 ./train.py 中关于各训练超参数的说明。

    推荐阅读

    (点击标题可跳转阅读)

    一张“静态”图实现3D人脸建模!这是中科院博士生入选ECCV的新研究 | 开源

    准确检测DeepFake视频,阿里新算法从多个人物中识别被篡改的人脸

    人脸合成效果媲美StyleGAN,而它是个自编码器

    一键生成人脸像素图,还能上传到动森!这个项目很好玩

    微信扫一扫, 关注我

     

    MaiweiAI-com | WeChat ID:Yida_Zhang2

    机器学习+计算机视觉

    Processed: 0.013, SQL: 8