OpenVino人脸检测-ULFD
ULFD为轻量级人脸检测算法, 基于SSD框架手工设计了backbone结构,是业界开源的第一个1M人脸检测模型。当输入320x240分辨率的图片且未使用onnxruntime加速时,在CPU上跑需要50-60ms,当使用onnxruntime加速后,在CPU上仅需要8-11ms。
优点如下:
- 在模型大小方面,默认 FP32 精度下(.pth)文件大小为 1.1MB,推理框架 int8 量化后大小为 300KB 左右。
- 在模型计算量方面,320x240 的输入分辨率下仅 90~109 MFlops 左右,足够轻量。
- 无特殊算子,支持 onnx 导出,便于移植推理。
模型结构与SSD一致,backbone为作者自己设计的结构,包含13个模块,主要由depth-wise卷积组成,分类回归的计算共有4个分支,前3个分支分别以backbone的第8,11,13个模块的输出作为输入;在backbone之后跟一个附加模块,其输出接入第4个分支。
模型来源:
https://github.com/Linzaer/Ultra-Light-Fast-Generic-Face-Detector-1MB
模型应用开发和部署
模型服务化
本模型基于 ServiceBoot微服务引擎 进行服务化封装,参见: 《CubeAI模型开发指南》
直接源代码运行
$ sh pip-install-reqs.sh
$ serviceboot start
或
$ python3 run_model_server.py
本地容器化部署
一键式本地容器化部署和运行,参见: 《CubeAI模型独立部署指南》 或 CubeAI Docker Builder
云原生网络部署
本模型服务可一键发布至 CubeAI智立方平台 进行共享和部署,参见: 《CubeAI模型发布指南》
API接口
本模型提供了4个API接口:
-
API接口1:
-
API端点: /api/data
-
HTTP方法: POST
-
HTTP请求体:
{
"action": "predict",
"args": {
"img": <压缩图像的base64编码字符串(或其Data URL表示)>
}
}
-
HTTP响应体:
{
"status": "ok"|"err",
"value": [<results>, <base64编码压缩图像URL>]
}
-
API接口2:
-
API端点: /api/data
-
HTTP方法: POST
-
HTTP请求体:
{
"action": "predict_video",
"args": {
"url": <云端视频流媒体URL, 例如: rtmp://localhost/live/ch1>
}
}
-
HTTP响应体:
{
"status": "ok"|"err",
"value": <(流媒体当前帧图像)AI处理结果的base64编码压缩图像URL>
}
-
API接口3:
-
API接口4: