基于YoloV5的使用手机行为检测及在边缘设备部署实现

目录

一、背景

二、配置环境

三、使用手机行为检测数据集

四、租用云端GPU进行模型训练

五、PC端验证训练效果

六、Aidlux端的模型推理测试

七、改进及拓展


一、背景

现代社会“低头族”越来越多,过马路时低头玩手机,操作岗位上工作时玩手机,甚至有的骑车时也在玩手机等等,存在着不同程度的交通安全隐患、安全操作隐患等等。因此,开发出一个玩手机的行为检测系统,以规范人们的玩手机行为,还是具有很大意义的。

本项目是基于YoloV5做的玩手机行为检测,深加工后可落地于行人玩手机监测等安全交通、岗位玩手机等安全生产、儿童玩手机等智慧家居等实际应用场景。

二、配置环境

该项目主要是应用VSCode(或Pycharm)进行代码调试,通过Aidlux手机App软件实现在边缘设备上的部署。

AIdlux主打的是基于ARM架构的跨生态(Android/鸿蒙+Linux)一站式AIOT应用开发平台。其具体介绍请参见文章《Aidlux边缘设备简介》

VScode软件的安装、配置及使用和Aidlux边缘设备的软件安装及使用请参考文章《Aidlux&VScode编程调试及AI案例测试》,文中有详细步骤指导完成。

三、使用手机行为检测数据集

1.该项目使用的是具有8201玩手机图片的数据集,含有jpg格式的图像及与其相对应的xml和txt格式的标签。(有需要者可联系)

2. 将数据集清洗,并分成训练集与测试集。

①通过标签文件名对比图像文件名,获得对应的图像,去除没有标签的图像;也可根据图像文件名对比标签文件名,去除没有图像的标签;也可两者都进行。代码较简单,参见《图像数据集与标签数据集名称对比筛选的代码示例》,文中仅展示第一种方式。

②将数据集按8:2比例拆分为训练集与测试集,代码段参见《如何将原始数据集分为训练集与测试集》

四、租用云端GPU进行模型训练

具体如何使用云端网盘,租用服务器,和创建实例请参考文章《通过云服务器租用GPU进行基于YOLOV5的人体检测模型训练》,里边有详细操作步骤。

1将已经编写调试好的代码打包成zip格式的压缩文件,和刚刚做好的数据集打包成zip格式的压缩文件,传到云端网盘。

2.租用实例后,解压缩打包文件。

3.在“JupyterLab”下新建终端,并运行‘file_generate_txt.py’文件,生成现在训练集图像与测试集图像的path,注意在py文件中要把文件path修改到在网盘中对应的path。

 最后的得到统计image path的train_txt.txt与label_txt.txt文件。

 4.检查并修改data.yaml文件,如图所示,保证训练集与测试集path正确,修改检测种类和类型name。

5.修改train.py文件中的weight参数path、data文件path、hyp文件path和cfg文件path,本次训练用的是YoloV5s的模型配置和参数。 然后就可以开始训练了。

6.训练完成,可以在runs文件夹中看到训练过程中产生的参数文件。并将最优的模型参数文件‘best.pt’下载到本地,进行使用。 

五、PC端验证训练效果

在PC端修改并运行'detect_image.py'文件,查看验证效果。注意代码中path的更改。

 同样的,运行“detect_image.py”文件,可查看视频显示效果。

六、Aidlux端的模型推理测试

具体详细的操作步骤可参考《算法模型在Aidlux端的模型推理测试实现详解》

1.在tensorflow框架下,运行export.py文件,生成phone_best-fp16.tflite文件。

 2.我们使用Netron,打开刚刚的yolov5n_best-fp16.tflite文件。点击最下方的输出单元,可以看到输出的信息。

3.将代码上传到Aidlux的Home下面,在VSCode中使用SSH,连接到Aidlux。

4.打开aidlux文件夹中的yolov5.py并修改,进行视频推理测试。

 5.运行aidlux文件夹中的“yolov5.py”程序,在手机版本的Aidlux和PC端网页的Aidlux中,都可以看到推理的显示结果。

phone_check

七、改进及拓展

该项目只是最基本的行人使用手机检测,结合人脸识别和人体行为追踪算法,可将信息记录并推送给相关人员。后面有机会会进一步更新。

  • 2
    点赞
  • 34
    收藏
    觉得还不错? 一键收藏
  • 5
    评论
Jeson Nano是一款NVIDIA推出的边缘计算设备,搭载了高性能GPU。Yolo v5是一种目标检测算法,具备高准确率和实时性能。对于使用Jeson Nano部署Yolo v5实现目标检测,以下是一些步骤和说明: 首先,需要将Yolo v5的源代码克隆到Jeson Nano设备上。可以在GitHub上找到相应的代码库,并使用git命令进行克隆。 然后,需要下载预训练的权重文件。这些权重文件包含了已经在大型数据集上训练得到的模型参数。可以在Yolo v5的代码库中找到下载链接,并将权重文件保存到设备的合适位置。 接下来,需要安装Jeson Nano上的依赖软件包。这些软件包包括PyTorch、OpenCV和其他需要的库。可以使用pip命令安装这些软件包,确保安装的版本与Yolo v5兼容。 然后,需要通过命令行界面进入Yolo v5的源代码目录,并执行相应的命令来进行目标检测。可以使用预训练的权重文件进行推理,输出每个目标的边界框、置信度和类别。 最后,可以通过对输出进行后处理,例如筛选掉低置信度的目标、进行非极大值抑制等,来提高目标检测的准确性。 需要注意的是,Jeson Nano相比于更强大的设备,其计算能力和内存容量有限。因此,在部署Yolo v5时,可能需要调整模型的大小、选择合适的输入大小等,以适应Jeson Nano的硬件限制。 总之,使用Jeson Nano部署Yolo v5实现目标检测需要下载源代码、预训练权重文件,安装相关依赖软件包,并通过命令行界面进行推理。同时,还需要进行后处理来提高检测的准确性。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值