建筑业是事故发生率最高的行业之一。确保工人始终佩戴个人防护装备对于保障其人身安全、减少事故和遵守监管标准有着至关重要的意义。
您可以考虑使用以下几种解决方案:
- 人工检查:优点是可以直接进行核查,但其效果会受到人力和时间的限制。此外,人工检查还容易出错,而且无法大规模执行。
- CCTV监控:优点是覆盖范围更大,可提供更加广阔的视野。然而,该方案需要人工查看录像;这个过程不仅耗时,而且感觉自己时刻处于监视之下可能会引发人们对隐私问题的担忧。
- 可穿戴传感器:此类传感器可提供实时数据,从而提升人员对各类事件的响应能力。不过,此类装备通常价格不菲,而且员工可能因为需要连续佩戴传感器而产生抵触情绪。
这些挑战正是引入边缘AI的原因所在。与其他解决方案相比,边缘AI具有支持实时检测、成本效益高、保护隐私和支持扩展等优点。该解决方案可以提供事故率下降和成本节约情况等定量证据,且可以根据员工提供的定性反馈来验证安全观念的改善程度。
方法
该用例基于一个公共数据集,其中包含大量关于员工穿戴个人防护装备(头盔、安全背心、安全鞋和安全手套)的图像。该解决方案的目标是检测出人员穿戴了哪些个人防护装备,并在每件装备周围画出一个边界框。
在这个项目中,我们使用了STM32 Model Zoo,可提供针对STM32进行了优化的预训练模型,以及用于重新训练和定制模型的脚本。
首先,我们复制了GitHub资源库并创建了项目环境。该项目涉及个人防护装备的检测,因此我们主要使用的是“Object detection”文件夹中的资源。您可以根据具体用例使用其他文件夹中的资源。STM32 Model Zoo支持多种应用。
下载数据集后,我们将文件导入到STM32 Model Zoo的指定文件夹 (stm32ai-modelzoo/object detection/datasets)。数据集中的每个样本都由一个图像和一个txt文件组成,且该文件会给出图像中每件装备的位置。
然后,我们使用配置文件 (stm32ai-modelzoo/object detection/src/user_config.yaml) 为模型设置了训练参数。该文件可用于:
- 从STM32 Model Zoo中选择一个预训练模型:本例中为SSD mobilenet v1。
- 定义运行模式:此处的“chain_tqeb”表示训练、量化、评估和基准测试。*
- 定义要检测的类别:人员、头盔、防护服、防护鞋、手套。
- 输入训练、验证、测试和量化文件夹路径(建议使用部分训练集)。
- 将图像调整为模型输入大小:224x224x3。
- 其他参数可保留为默认值。不过,您也可以对其进行修改,以提升模型的训练效果。
然后,我们只需通过“python stm32ai_main.py”命令执行Python脚本即可开始训练(请确保该命令位于stm32ai-modelzoo/object_detection/src文件夹中)。
训练完成后,我们可以在“experiment_outputs”文件夹 (stm32ai-modelzoo/object_detection/src/ experiment_outputs) 中检索结果。在该文件夹中,我们可以找到.h5训练模型及其.tflite量化版本、每个模型的执行时间和内存占用,以及每个待检测目标的混淆矩阵。
我们将在下方的视频中向您展示所有相关步骤。
* 量化和基准测试均可通过意法半导体边缘AI开发者云完成。
数据
数据集个人防护装备检测
数据格式
5类:人员、头盔、防护服、防护鞋、手套
RGB图像:4.2K训练、584验证、292测试
结果
模型SSD mobilenetv1量化神经网络
输入大小:图像调整为224x224x3
内存占用:
188.6 KB Flash存储器用于权重
131.42 KB RAM用于激活
精度:量化后平均精度均值为78.96%
- 头盔类AP = 79.85%
- 手套类AP = 50.61%
- 人员类AP = 91.32%
- 防护鞋类AP = 82.73%
- 防护服类AP = 90.29%
基于STM32H747l-DISCO 400 MHz(高性能)的性能
推理时间:74.98 ms
STM32CubeAI 8.1.0