从0到1学习使用DepthAI-口罩检测

这篇文章将介绍如何在DepthAI上实现口罩检测。
1.查找开源项目
通过搜索引擎我们能够找到一个叫做sbd_mask的开源项目,它是思百达开源的一款轻量级实时口罩检测项目。
2.分析项目
通过分析sbd_mask项目,我们可以得到以下信息:
◼使用的模型及其作用:
centerface.onnx模型:用于检测人脸
sbd_mask.onnx模型:用于检测是否佩戴口罩
◼ 应用工作流程:
1️⃣ 从相机获取图片
2️⃣运行centerface检测人脸
3️⃣将centerface检测到的人脸送入sbd_mask检测是否佩戴口罩
4️⃣输出结果
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安装:https://docs.oakchina.cn/en/latest/pages/tutorials/local_convert_openvino/#id2。
3)剖析模型
利用Netron可以查看模型结构。
模型输入:

模型输出:

由上图可知此模型输出只有“349”一层包含有两个数据。
输入输出总览:

4)编写解析代码
模型输出的解析代码可以参考原始的应用。
4.应用源代码
口罩检测github链接:https://github.com/OAKChina/depthai-examples/blob/master/social-distancing/README.md
国内在哪里能买到DepthAI?
目前国内唯一的购买渠道是派驰的淘宝店:
OAK-D -派驰电子 淘宝:https://sourl.cn/9YEFE5
OAK-1 -派驰电子 淘宝:https://sourl.cn/4CpZUZ
参考链接:
OAK 中国:https://sourl.cn/6wt8sm
OAK 中文文档:https://sourl.cn/rawPZD