使用yolov5进行安全帽检测填坑指南

news/2024/7/10 23:16:12 标签: YOLO

参考项目
c​​​​​​​​​​​​​​GitHub - PeterH0323/Smart_Construction: Base on YOLOv5 Head Person Helmet Detection on Construction Sites,基于目标检测工地安全帽和禁入危险区域识别系统,🚀😆附 YOLOv5 训练自己的数据集超详细教程🚀😆2021.3新增可视化界面❗❗

注意:我习惯先把pytorch安装了,这样能减少很多问题,哈哈

pip3 install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu117

================================分界线=================================

目录

一、常见错误

1、梯度爆炸问题

2、gpu内存不足

3、张量计算使用设备不一致问题(一)

二、项目运行

1、图片识别

2、视频流识别


一、常见错误

YOLOv5遇到的问题_runtimeerror: a view of a leaf variable that requi_Pysonmi的博客-CSDN博客

python train.py --img 640 --batch 16 --epochs 10 --data ./data/custom_data.yaml --cfg ./models/custom_yolov5.yaml --weights ./weights/yolov5s.pt

1、梯度爆炸问题

报错原因

这个错误是由于在执行in-place操作时,使用了一个需要梯度的叶节点变量视图(view)。在PyTorch中,如果一个变量需要梯度,那么它的视图也会继承这个属性。而in-place操作是对变量进行原地操作,即直接修改变量的值,这样会导致梯度信息的丢失或不一致。

解决方法

最简单粗暴的方法是找到models文件夹下的yolo.py文件,在第149下面添加with torch.no_grad(): 如下图:

2、gpu内存不足

解决办法:

3、张量计算使用设备不一致问题(一)

模型和数据都分别放入了GPU中,将数据和模型打印出来也在GPU上、运行时GPU的显存确实有被占但依然报这个错误。

解决办法:

无意在这里看到的,刚好解决了,真是随便解决了,感谢cctv,感谢csdn,感谢这位大佬

来源:

yolov5_obb报错合集_while-L的博客-CSDN博客

4、张量计算使用设备不一致问题(二)

can't convert cuda:0 device type tensor to numpy. Use Tensor.cpu() to copy the tensor to host memory first.

解决办法:

nice

二、项目运行

1、图片识别

python detect.py --source ./inference/test/02.jpg --weight ./weights/helmet_head_person_s.pt

2、视频流识别

python detect.py --source rtsp://127.0.0.1:8554/stream --weights ./weights/helmet_head_person_s.pt

使用5s模型进行训练,内存占用2G,3060显卡性能去到20%,CPG占20%左右。


http://www.niftyadmin.cn/n/4954239.html

相关文章

前端学习记录~2023.8.3~JavaScript重难点实例精讲~第5章 DOM与事件

第 5 章 DOM与事件 前言5.1 DOM选择器5.1.1 传统原生JavaScript选择器(1)通过id定位(2)通过class定位(3)通过name属性定位(4)通过标签名定位 5.1.2 新型的querySelector选择器和quer…

【力扣】84. 柱状图中最大的矩形 <模拟、双指针、单调栈>

目录 【力扣】84. 柱状图中最大的矩形题解暴力求解双指针单调栈 【力扣】84. 柱状图中最大的矩形 给定 n 个非负整数,用来表示柱状图中各个柱子的高度。每个柱子彼此相邻,且宽度为 1 。求在该柱状图中,能够勾勒出来的矩形的最大面积。 示例…

拥塞控制(TCP限制窗口大小的机制)

拥塞控制机制可以使滑动窗口在保证可靠性的前提下,提高传输效率 关于滑动窗口的属性以及部分机制推荐看TCP中窗口和滑动窗口的含义以及流量控制 拥塞控制出现的原因 看了上面推荐的博客我们已经知道了,由于接收方接收数据的能力有限,所以要通…

自我管理篇--工作做完了,我能不能到点就下班

以上简历模板资源的排版可能不是最优,但工作经历可以借鉴 工作做完了,我能不能到点就下班? 答案:是,每个人都是自由的 ​ 工作完了,我能不能准点下班,背后真正的问题是:你有没有找到那件让你愿意…

unity之Input.GetKeyDown与Input.GetKey区别

文章目录 Input.GetKeyDown与Input.GetKey区别 Input.GetKeyDown与Input.GetKey区别 Input.GetKey 和 Input.GetKeyDown 是 Unity 中用于检测按键状态的两个不同函数。它们之间的区别在于何时触发。 Input.GetKey(KeyCode key): 这个函数会在用户按住指定的键时触发&#xff0…

计算之魂思考题1.4赛跑问题

一、问题 假设由25名短跑者争夺比赛前三名,赛场上有5条赛道,一次可以有5名选手同时比赛。比赛不计时,只看相应名次。假设选手发挥稳定,也就是说如果约翰比张三跑得快,张三比凯莉跑得快,那么约翰一定比凯莉…

Python中Setup.py的作用是什么

Python中Setup.py的作用是什么 今天就跟大家聊聊有关Python中Setup.py的作用是什么,可能很多人都不太了解,为了让大家更加了解. 1. 为什么需要对项目分发打包? 平常我们习惯了使用 pip 来安装一些第三方模块,这个安装过程之所以简单&#…

Redis中的分布式锁及其延生的问题

前言 本文将着重介绍Redis中的分布式锁及其与出现的死锁和锁误删问题 什么是分布式锁 首先问题就是什么是分布式锁,分布式锁就是分布式系统中实现并发控制的一种锁机制,它可以保证多个节点在同一个时间只有有一个能成功竞争到系统资源(共享…