这篇文章将介绍如何在DepthAI上实现口罩检测。
1.查找开源项目
通过搜索引擎我们能够找到一个叫做sbd_mask的开源项目,它是思百达开源的一款轻量级实时口罩检测项目。
2.分析项目
通过分析sbd_mask项目,我们可以得到以下信息:
- 使用的模型及其作用
模型 | 作用 |
---|---|
centerface.onnx | 用于检测人脸 |
sbd_mask.onnx | 用于检测是否佩戴口罩 |
- 应用工作流程:
a. 从相机获取图片 |
---|
b. 运行centerface检测人脸 |
c. 将centerface检测到的人脸送入sbd_mask检测是否佩戴口罩 |
d. 输出结果 |
3.转为 DepthAI项目
1)替换centerface模型
此模型的作用是检测人脸,我们使用openvino open_model_zoo中的face-detection-retail-0004模型替换此模型,因此无需进行转换。
2)转换sbd_mask.onnx模型
因为DepthAI需要特定的模型格式,所以需要对sbd_mask.onnx模型进行转换。
首先转换为OpenVINO IR:
python mo_onnx.py --input_model sbd_mask.onnx --model_name sbd_mask --scale 255 --reverse_input_channels
再将OpenVINO IR编译为blob文件:
export MYRIAD_COMPILE=$(find /opt/intel/ -iname myriad_compile)
$MYRIAD_COMPILE -m sbd_mask.xml -ip U8 -VPU_MYRIAD_PLATFORM VPU_MYRIAD_2480 -VPU_NUMBER_OF_SHAVES 4 -VPU_NUMBER_OF_CMX_SLICES 4
注:使用模型转换工具需要安装openvino,安装时要注意DepthAI对OpenVINO版本有要求。 详情请参照openvino安装。
3)剖析模型
利用Netron可以查看模型结构。
模型输入:
模型输出:
由上图可知此模型输出只有“349”一层包含有两个数据。
输入输出总览:
4)编写解析代码
模型输出的解析代码可以参考原始的应用。
4.应用源代码
国内在哪里能买到DepthAI?
目前国内唯一的购买渠道是派驰的淘宝店:
OAK-D -派驰电子 淘宝
OAK-1 -派驰电子 淘宝