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

这篇文章将介绍如何在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可以查看模型结构。

模型输入:
从0到1学习使用DepthAI-口罩检测
模型输出:
从0到1学习使用DepthAI-口罩检测
由上图可知此模型输出只有“349”一层包含有两个数据。

输入输出总览:
从0到1学习使用DepthAI-口罩检测
4)编写解析代码

模型输出的解析代码可以参考原始的应用。

4.应用源代码

口罩检测github链接

国内在哪里能买到DepthAI?

目前国内唯一的购买渠道是派驰的淘宝店:
OAK-D -派驰电子 淘宝
OAK-1 -派驰电子 淘宝

参考链接:
OAK 中国
OAK 中文文档

上一篇:pytorch实现resnet50(训练+测试+模型转换)


下一篇:深度学习框架OneFlow是如何和ONNX交互的?