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

参考项目
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.mzph.cn/news/45317.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Opencv 视频的读取与写入

目录 前言 通过路径获取视频内容 获取视频内容 检查是否正确打开 循环播放 完整代码 从摄像头读取视频数据 获取视频设备 其他与直接读取视频一致 完整实例 录制视频 用于创建视频编解码器的四字符码(FourCC) cv2.VideoWriter() 将视频帧…

Spring MVC 中的常见注解的用法

目录 认识 Spring MVC什么是 Spring MVCMVC 的定义 Spring MVC 注解的运用1. Spring MVC 的连接RequestMapping 注解 2. 获取参数获取单个参数获取多个参数传递对象表单传参后端参数重命名RequestBody 接收 JSON 对象PathVariable 获取 URL 中的参数上传文件 RequestPart获取 C…

C++系列-内存模型

内存模型 内存模型四个区代码区全局区栈区堆区内存开辟和释放在堆区开辟数组 内存模型四个区 不同区域存放的数据生命周期是不同的,更为灵活。 代码区:存放函数体的二进制代码,操作系统管理。全局区:存放全局变量,常…

AutoSAR配置与实践(基础篇)2.5 RTE对数据一致性的管理

传送门 点击返回 ->AUTOSAR配置与实践总目录 AutoSAR配置与实践(基础篇)2.5 RTE对数据一致性的管理 一、 数据一致性问题引入二、 数据一致性的管理2.1 RTE管理 (SWC间)2.2 中断保护 (SWC内)2.3 变量保护IRVS (SWC内)2.4 Task分配2.5 任务抢占控制 一…

【linux】kernel编译时相关报错

文章目录 1. 问题现象及解决方式1. cc1: error: code model kernel does not support PIC mode 1. 问题现象及解决方式 1. cc1: error: code model kernel does not support PIC mode 问题:编译module时报错 原因:未指定交叉编译器,导致默认…

44、TCP报文(二)

接上节内容,本节我们继续TCP报文首部字段含义的学习。上节为止我们学习到“数据偏移”和“保留”字段。接下来我们学习后面的一些字段(暂不包含“检验和”的计算方法和选项字段)。 TCP首部结构(续) “数据偏移”和“保…

什么是LLM大语言模型?

什么是LLM大语言模型? 大语言模型(英文:Large Language Model,缩写LLM),也称大型语言模型,是一种人工智能模型,旨在理解和生成人类语言。它们在大量的文本数据上进行训练&#xff0…

525. 连续数组

525. 连续数组 原题链接:完成情况:解题思路:参考代码: 原题链接: 525. 连续数组 https://leetcode.cn/problems/contiguous-array/description/ 完成情况: 解题思路: 参考代码: …

解放数据库,实时数据同步利器:Alibaba Canal

文章首发地址 Canal是一个开源的数据库增量订阅&消费组件,主要用于实时数据同步和数据订阅的场景,特别适用于构建分布式系统、数据仓库、缓存更新等应用。它支持MySQL、阿里云RDS等主流数据库,能够实时捕获数据库的增删改操作&#xff…

JVM——垃圾回收(垃圾回收算法+分代垃圾回收+垃圾回收器)

1.如何判断对象可以回收 1.1引用计数法 只要一个对象被其他对象所引用,就要让该对象的技术加1,某个对象不再引用其,则让它计数减1。当计数变为0时就可以作为垃圾被回收。 有一个弊端叫做循环引用,两个的引用计数都是1&#xff…

如何用树莓派Pico针对IoT编程?

目录 一、Raspberry Pi Pico 系列和功能 二、Raspberry Pi Pico 的替代方案 三、对 Raspberry Pi Pico 进行编程 硬件 软件 第 1 步:连接计算机 第 2 步:在 Pico 上安装 MicroPython 第 3 步:为 Thonny 设置解释器 第 4 步&#xff…

C 语言的 strcpy() 函数和 strncpy() 函数

文章目录 strcpy() 函数strncpy() 函数 strcpy() 函数 <string.h> char *strcpy(char *dest, const char *src) 参数 dest – 指向用于存储复制内容的目标数组。 src – 要复制的字符串。 把 src 所指向的字符串复制到 dest。 需要注意的是如果目标数组 dest 不够…

【ARM-Linux】项目,语音刷抖音项目

文章目录 所需器材装备操作SU-03T语音模块配置代码&#xff08;没有用wiring库&#xff0c;自己实现串口通信&#xff09;结束 所需器材 可以百度了解以下器材 orangepi-zero2全志开发板 su-03T语音识别模块 USB-TTL模块 一个安卓手机 一根可以传输的数据线 装备操作 安…

高项4.项目管理核心技术.

第一部分 项目管理概论 价值驱动的项目管理知识体系: 十二项原则;生命周期四个阶段;五个过程组;十大PM知识领域;八大绩效域;外加价值交付系统; 自1987 年以来, PMBOK 一直是基于过程的项目管理标准的重要代表,项目管理从业者一 直坚持基于过程的项目管理方法。随着…

2023-8-20 单链表

题目链接&#xff1a;单链表 #include <iostream>using namespace std;const int N 100010;int head, e[N], ne[N], idx;void init() {head -1;idx 0; }// 将x插入到头结点 void add_to_head(int x) {e[idx] x;ne[idx] head;head idx;idx; }// 将x插入到下标k后面…

VGG分类实战:猫狗分类

关于数据集 数据集选择的是Kaggle上的Cat and Dog&#xff0c;猫狗图片数量上达到了上万张。你可以通过这里进入Kaggle下载数据集Cat and Dog | Kaggle。 在我的Github仓库当中也放了猫狗图片各666张。 VGG网络 VGG的主要特点是使用了一系列具有相同尺寸 3x3 大小的卷积核进…

Android glide框架及框架涉及到的设计模式

目录 原文链接Android glide框架 简单使用介绍Glide 框架整体结构设计Glide 框架的优点基本使用&#xff1a;Glide占位符 Android glide框架涉及到的设计模式 原文链接 Android glide框架 简单使用介绍 Glide&#xff1a;快速高效的Android图片加载库&#xff0c;可以自动加载…

LLM低成本微调方法

LLM日益流行&#xff0c;已经渗透到各个领域&#xff0c;比如生物医学&#xff0c;但是模型的规模导致微调LLM对普通用户不够友好&#xff0c;因此&#xff0c;我们需要借助一些低成本方法&#xff0c;通过更新少量参数也达到与LLM全参数更新一样的效果。这里介绍三种主流方法&…

改善神经网络——优化算法(mini-batch、动量梯度下降法、Adam优化算法)

改善神经网络——优化算法 梯度下降Mini-batch 梯度下降&#xff08;Mini-batch Gradient Descent&#xff09;指数加权平均包含动量的梯度下降RMSprop算法Adam算法 优化算法可以使神经网络运行的更快&#xff0c;机器学习的应用是一个高度依赖经验的过程&#xff0c;伴随着大量…

Android Framework 常见解决方案(20)UDP广播无效问题

1 现象描述和原理解读 该问题同时存在于android App和Framework系统中。最终效果是在Android系统中直接使用UDP广播无效&#xff0c;有意思的是有的android系统可以&#xff0c;有的Android 系统不行。然而该部分代码自己在Linux上测试时是有效的&#xff0c;代码不变&#xf…