识别图片中的人是否佩戴口罩。图片数据经过 抽帧、解码后,送给口罩检测模型推理。
技术实现流程图
本项目支持昇腾Atlas 300I pro、 Atlas 300V pro
本样例配套的Vision SDK版本、CANN版本、Driver/Firmware版本如下所示:
Vision SDK版本 | CANN版本 | Driver/Firmware版本 |
---|---|---|
6.0.RC3 | 8.0.RC3 | 24.1.RC3 |
6.0.0 | 8.0.0 | 24.1.0 |
第三方依赖软件和版本如下表。请确认环境已安装pip3后,使用pip3 install 安装以下依赖。
软件名称 | 版本 |
---|---|
numpy | 1.24.0 |
opencv-python | 4.9.0.80 |
本sample工程名称为口罩识别参考设计,工程目录如下图所示:
.
|—— image
│ └── image1.png # 技术实现流程图
├── README.md # 模型转换配置文件
├── anchor_decode.py # 计算bbox(参考第4章运行获取源码)
├── anchor_generator.py # 生成先验框(参考第4章运行获取源码)
├── image.py # 图片识别主程序
├── main.pipeline # 口罩识别推理流程pipline
├── models # 推理模型文件夹
│ └── face_mask.aippconfig # 转模型前处理配置文件
└── nms.py # nms计算程序
#设置CANN环境变量,ascend-toolkit-path为cann安装路径
. ${ascend-toolkit-path}/set_env.sh
#设置Vision SDK 环境变量,SDK-path为Vision SDK 安装路径
. ${SDK-path}/set_env.sh
步骤1: 获取face_mask_detection的原始模型(face_mask_detection.pb)
步骤2: 将获取到的模型pb文件存放至项目所在目录下的models目录
步骤3: 进入models目录执行om模型转换
使用ATC将.pb文件转成为.om文件
cd models/
atc --model=./face_mask_detection.pb --framework=3 --output=./aipp --output_type=FP32 --soc_version=Ascend310P3 --input_shape="data_1:1,260,260,3" --input_format=NHWC --insert_op_conf=./face_mask.aippconfig
其中--insert_op_conf参数为aipp预处理算子配置文件路径。该配置文件face_mask.aippconfig在输入图像进入模型前进行预处理。该配置文件保存在源码models目录下。
执行完模型转换后,若提示如下信息说明模型转换成功,可以在该路径下找到名为aipp.om模型文件。
ATC run success, welcome to the next use.
步骤1: 下载后处理代码
在链接GitHub下载开源代码中utils文件夹内的3个py文件(anchor_decode.py,anchor_generator.py, nms.py)并放置于项目根目录即可,最终的目录结构参见 [1.5 代码目录结构与说明]
步骤2: 根据使用的设备id,修改源码根目录下main.pipeline中所有的deviceId:
"deviceId": "0" # 根据实际使用的设备id修改
步骤3: 准备测试图片,放在源码根目录下,运行推理:
python3.9 image.py mask.jpg
步骤4: 查看结果
输出结果对原图像的目标以及口罩进行识别画框并将结果保存至根目录下my_result.jpg
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。