ULFD 模型介绍
稳定调用及效果更好的API,详见视觉开放智能平台:人脸检测与五官定位。
超快人脸检测模型ULFD, github上高star repo。
模型描述
ULFD(代码地址)为轻量级人脸检测算法, 基于SSD框架手工设计了backboe结构,是业界开源的第一个1M人脸检测模型。当输入320x240分辨率的图片且未使用oxrutime加速时,在CPU上跑需要50-60ms,当使用oxrutime加速后,在CPU上仅需要8-11ms, 优点如下:
- 在模型大小方面,默认 FP32 精度下(.pth)文件大小为 1.1MB,推理框架 it8 量化后大小为 300KB 左右。
- 在模型计算量方面,320x240 的输入分辨率下仅 90~109 MFlops 左右,足够轻量。
- 无特殊算子,支持 ox 导出,便于移植推理
模型结构与SSD一致,backboe为作者自己设计的结构,包含13个模块,主要由depth-wise卷积组成,分类回归的计算共有4个分支,前3个分支分别以backboe的第8,11,13个模块的输出作为输入;在backboe之后跟一个附加模块,其输出接入第4个分支。

模型使用方式和使用范围
本模型可以检测输入图片中人脸的位置。
使用方式
- 推理:输入图片,如存在人脸则返回人脸位置,可检测多张人脸
目标场景
- 人脸相关的基础能力,可应用于人像美颜/互动娱乐/人脸比对等场景
模型局限性及可能偏差
- 部分遮挡的人脸检测效果可能一般
- 由于模型较小,多人脸场景下可能出现漏检的情况
- 当前版本在pytho 3.7环境测试通过,其他环境下可用性待测试
预处理
测试时主要的预处理如下:
- Normalize:图像归一化,减均值除以标准差
- Pad:图像高宽补零至32的倍数
代码范例
from modelscope.pipelies import pipelie
from modelscope.utils.costat import Tasks
ulfd_face_detectio = pipelie(Tasks.face_detectio, 'damo/cv_maual_face-detectio_ulfd')
img_path = 'https://modelscope.oss-c-beijig.aliyucs.com/test/images/ulfd_face_detectio.jpg'
result = ulfd_face_detectio(img_path)
prit(f'face detectio output: {result}.')
模型训练流程
- 在Wider Face数据集上使用SGD优化器,初始学习率为1e-2,batch size 为24,训练了200个 epoch。
数据评估及结果
模型在WiderFace的验证集上客观指标如下:
Method |
Easy |
Medium |
Hard |
ULFD |
85.3 |
81.9 |
53.9 |
测试集
- WIDERFACE: 测试集已上传至ModelScope的DatasetHub, 详情请见WIDER_FACE。
人脸相关模型
以下是ModelScope上人脸相关模型:
来源说明
本模型及代码来自开源社区(地址),请遵守相关许可。
评论