挑战一星期复现一个项目——安全帽项目

本项目为识别安全帽项目,基于yoloV5模型,接下来,我将一步一步展示我的完整复现过程以及遇到的问题和解决方案。

前言

我们在利用GPU进行深度学习的时候,都要去NVIDIA的官网下载CUDA的安装程序和cudnn的压缩包,然后再进行很繁琐的系统环境配置。不仅环境配置麻烦,而且还特别容易配置错误,特别还有CUDA和cudnn版本的对应也特别容易搞错,但是利用anaconda安装配置pytorch和paddlepaddle环境的时候会自动帮我们配置好cuda和cudnn。

一、直接创建虚拟环境(不介绍如何安装Anconda了,自行百度搜索)

第一步:

  • win+R 输入cmd,打开终端
  • conda env list 用来查看有哪些环境

可以看出来,新安装的anaconda只有一个base环境
在这里插入图片描述
这里先讲一下anaconda环境,首先base环境是一个大的环境,类似一个很大的一个房子(但是没有房间),当我们每创建一个环境就都会相当于在这个大房子里面用隔板创建一个房间,然后这个房间里面可以安装我们所需要的包,这样管理起来就比较方便。如图可以比较直观的诠释anaconda的环境。
在这里插入图片描述

  • conda create -n pytorch python=3.8 创建虚拟环境conda create -n 环境名字(英文) python=x.x(python版本),我就是创建了一个名字叫pytorch,python是3.8版本的环境。
  • conda remove --name myenv --all 假设环境名称为myenv,此方法为删除环境

通过在终端命令行输入conda create -n pytorch python=3.8,会显示下面的内容。在这里插入图片描述
出现如下形式则安装成功。
在这里插入图片描述
在终端命令命令行输入conda activate pytorch,则会进入该环境。
进入环境之后,则需要安装相应的包,安装pytorch-gup版的环境,由于pytorch的官网在国外,下载相关的环境包是比较慢的,所以我们给环境换源。在pytorch环境下执行如下的命名给环境换清华源。

conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/pytorch/
conda config --set show_channel_urls yes

在这里插入图片描述
然后打开pytorch的官网:https://pytorch.org/,
首先查看电脑的显卡版本,步骤为:此电脑右击–>管理–>设备管理器–>显示适配器。就可以看到电脑显卡的版本了。如图,可以看到我的是一块RTX3050显卡。
在这里插入图片描述
有显卡驱动的,可以直接在桌面右键,找到英伟达驱动控制面板打开就好了。
在这里插入图片描述
在这里插入图片描述
显卡驱动的下载地址:https://www.nvidia.cn/drivers/lookup/(可能打开比较慢,多打开几遍)。
在这里插入图片描述
在这里插入图片描述
然后根据自己的电脑的配置去选择驱动。这里Notebooks是笔记本的意思,所以如果你是笔记本电脑,那么产品系列那个选项就要选择(Notebooks)的。还有那个下载类型有两种一个是Studio版本,一个是Game Ready版本。其实两个版本都差不多,一个是偏办公用,一个是偏游戏娱乐。按如下操作将驱动下载下来。然后点击下载来的程序,不断的下一步就好了。
安装(更新)好了显卡驱动以后。我们按下win+R组合键,打开cmd命令窗口。输入如下的命令。nvidia-smi
在这里插入图片描述

由于刚才我们通过驱动检测到我的显卡为 RTX3050,最高支持cuda12.6版本,所以我们选择cuda12.6版本的cuda,然后将下面红色框框中的内容复制下来在这里插入图片描述
由于cuda12.6提示不能用,建议我们用pip下载,因此我们使用pip的。
在这里插入图片描述
当我运行此命令pip3 install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu118出现了下面的错误,
在这里插入图片描述
因此,我们换个命令行pip install torch torchvision torchaudio --extra-index-url https://download.pytorch.org/whl/cu126出现以下内容,则表示安装成功。
在这里插入图片描述

二、项目开始

2.1 数据集准备

https://pan.baidu.com/s/1WwNX-bU9fD_mAofasn7E4A?pwd=6x9r
上面的链接为数据集的链接,下载即可。
下载好数据集之后,用第三步“数据集格式转换与划分”中将voc数据格式转换为yolo数据格式的代码,完成数据集的划分。
在划分数据集之前,你的数据集结构应该是这样子的:
在这里插入图片描述
在这里插入图片描述
当数据集划分后,除了在VOC2007路径下多了yolo格式的数据文件夹:
在这里插入图片描述
在VOCdevkit路径下会多出两个文件夹,分别是images和labels,里面其实就是划分的训练集和验证集。
在这里插入图片描述
进入yolov5下载的GitHub网站下载代码:https://github.com/ultralytics/yolov5/tree/v5.0
通过下面这个链接下载5s这个权重文件:https://pan.baidu.com/s/10uyMTanqm9DQvSFctiyYQQ?pwd=wnlt
数据集的放置:放置到你解压源代码文件后的yolov5-5.0路径下就可以了,与data、models、runs等文件夹是同路径的。

2.2 数据集标注

首先通过Anaconda安装labelimg,在Anaconda命令行窗口中依次输入下列代码,安装labelimg依赖的第三方库。

# 进入自己创建的虚拟环境
conda activate mytorch# 安装相关的库
pip install PyQt5 -i https://pypi.douban.com/simple
pip install pyqt5-tools -i https://pypi.douban.com/simple 
pip install lxml -i https://pypi.douban.com/simple 
pip install labelimg -i https://pypi.douban.com/simple 
#若安装失败,则去掉-i 网址   

然后在Anaconda Prompt终端输入labelimg指令进入到labelimg标注界面,labelimg的标注模式分为VOC和YOLO两种,两种模式下生成的标注文件分别为.xml文件和.txt文件,因此在进行标注前需要优先选择好标注的模式。进入labelimg标注工具的初始化界面如下图所示。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

2.3 划分训练集和验证集

运行prepare_data.py在yolov5项目文件夹下生成yolov5_train.txt和yolov5_val.txt,在VOCdevkit / VOC2007目录下可以看到生成了YOLOLabels文件夹 ;另外,在VOCdevkit目录下生成了images和labels文件夹。
注意:yolov5_train.txt和yolov5_val.txt分别给出了训练图片文件和验证图片文件的列表,含有每个图片的路径和文件名。
在这里插入图片描述
在这里插入图片描述

2.4 修改配置文件

修改配置文件:data/voc_hat.yaml和models/yolov5s_hat.yaml参数——训练集和验证集数据加载路径、标注的类别数、标签类别名称
在这里插入图片描述
以上内容,便是完整的全部项目,需要完整的项目可以私信。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/21055.html

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

相关文章

基于java新闻管理系统,推荐一款开源cms内容管理系统ruoyi-fast-cms

一、项目概述 1.1 项目背景 在信息高速流通的当下,新闻媒体行业每天都要处理和传播海量信息。传统的新闻管理模式依赖人工操作,在新闻采集、编辑、发布以及后续管理等环节中,不仅效率低下,而且容易出现人为失误。同时&#xff0…

.NET SixLabors.ImageSharp v1.0 图像实用程序控制台示例

使用 C# 控制台应用程序示例在 Windows、Linux 和 MacOS 机器上处理图像,包括创建散点图和直方图,以及根据需要旋转图像以便正确显示。 这个小型实用程序库需要将 NuGet SixLabors.ImageSharp包(版本 1.0.4)添加到.NET Core 3.1/ …

图论(四):图的中心性——度中心性介数中心性紧密中心性

图的中心性:描述节点在图中有多“中心” 度中心性 以节点的度数度量中心性 用nx.degree_centrality(G)计算 介数中心性 量化节点在图中承担“桥梁”程度。计算 节点v 出现在其他任意两个节点对 (s,t) 之间的最短路径的次数(下式V 是无向图节点集合。(…

在项目中调用本地Deepseek(接入本地Deepseek)

前言 之前发表的文章已经讲了如何本地部署Deepseek模型,并且如何给Deepseek模型投喂数据、搭建本地知识库,但大部分人不知道怎么应用,让自己的项目接入AI模型。 文末有彩蛋哦!!! 要接入本地部署的deepsee…

DeepSeek服务器繁忙 多种方式继续优雅的使用它

前言 你的DeepSeek最近是不是总是提示”服务器繁忙,请稍后再试。”,尝试过了多次重新生成后,还是如此。之前DeepSeek官网连续发布2条公告称,DeepSeek线上服务受到大规模恶意攻击。该平台的对话框疑似遭遇了“分布式拒绝服务攻击”&#xff0…

利用亚马逊AI代码助手生成、构建和编译一个游戏应用(下)

在上篇文章中中,我们介绍了如何通过亚马逊AI代码生成助手 - Amazon Q Developer代理的代码生成、构建和测试功能,让开发者可以更高效地交付高质量代码项目,同时减少代码中bug错误,提升整体开发体验。在本篇中,我们将通…

网络安全技术pat实验 网络安全 实验

🍅 点击文末小卡片 ,免费获取网络安全全套资料,资料在手,涨薪更快 网络安全实验3 前言Kali 常用指令工具教程 ettercap 基本使用 一、口令破解 John the ripper 破解 linux 密码l0phtcrack7 破解 windows 密码John 破解 zip 压…

网络行为管理系统是什么?有什么功能?

​简单来说,网络行为管理系统就是对网络进行有效的规范约束和调整,关于网络行为管理系统的相关问题整理了一些详细介绍供大家参考。 一、什么是网络行为管理系统? 在数据网络和数据通信业务发展非常迅速,在数据网络和通信业务迅…

毕业设计—基于Spring Boot的社区居民健康管理平台的设计与实现

🎓 毕业设计大揭秘!想要源码和文章?快来私信我吧! Hey小伙伴们~ 👋 毕业季又来啦!是不是都在为毕业设计忙得团团转呢?🤔 别担心,我这里有个小小的福利要分享给你们哦&…

垃圾回收器

一、GC分类与性能指标 1.垃圾回收器概述: 垃圾收集器没有在规范中进行过多的规定,可以由不同的厂商、不同版本的JVM来实现。 由于JDK的版本处于高速迭代过程中,因此Java发展至今已经衍生了众多的GC版本。 从不同角度分析垃圾收集器,可以将…

Java基础——代理模式

代理模式是一种比较好理解的设计模式。简单来说就是 我们使用代理对象来代替对真实对象(real object)的访问,这样就可以在不修改原目标对象的前提下,提供额外的功能操作,扩展目标对象的功能。 一、代理模式的主要作用 控制访问:通…

微软宣布 Windows 11 将不再免费升级:升级需趁早

大家都知道如果你现在是Windows 10 系统,其实可以免费升级到正版 Windows 11,只要你的电脑配置满足 TPM2.0要求。 而最近微软已经公布了 Windows 10 的最后支持时间,也就是今年10月14日,在这之后微软将不再对Windows 10负责&#…

django连接mysql数据库

1.下载mysqlclient第三方库 2.在settings.py里连接数据库(提前建好) DATABASES {default: {ENGINE: django.db.backends.mysql,NAME: 学生信息,USER: root,PASSWORD: 999123457,HOST: localhost,POST: 3306,} } 3.在models.py里创建一个类&#xff0…

滤波器 | 原理 / 分类 / 特征指标 / 设计

注:本文为 “滤波器” 相关文章合辑。 未整理去重。 浅谈滤波器之 —— 啥是滤波器 原创 RF 小木匠 射频学堂 2020 年 03 月 25 日 07:46 滤波器,顾名思义,就是对信号进行选择性过滤,对不需要的信号进行有效滤除。按照其传输信…

v4l2子系统学习(一)V4L2应用程序编程

文章目录 1、声明2、前言3、数据采集流程3.1、buffer的管理3.2、完整的使用流程 4、应用程序编写5、测试 1、声明 本文是在学习韦东山《驱动大全》V4L2子系统时,为梳理知识点和自己回看而记录,全部内容高度复制粘贴。 韦老师的《驱动大全》&#xff1a…

NAC网络接入控制三种认证方式802.1X认证、MAC认证和Portal认证

NAC网络接入控制三种认证方式802.1X认证、MAC认证和Portal认证 1.NAC简介2.802.1X认证3. MAC认证4. Portal认证 1.NAC简介 NAC(Network Access Control)称为网络接入控制,通过对接入网络的客户端和用户的认证保证网络的安全,是一…

vscode远程报错:Remote host key has changed,...

重装了Ubuntu系统之后,由20.04改为22.04,再用vscode远程,就出现了以上报错。 亲测有效的办法 gedit ~/.ssh/known_hosts 打开这个配置文件 删掉与之匹配的那一行,不知道删哪一行的话,就打开第一行这个 /.ssh/confi…

多个 JDK 版本(Java 8、Java 17、Java 21)下载和切换

文章目录 多个 JDK 版本(Java 8、Java 17、Java 21)下载和切换1. 下载 JDK2. 配置环境变量3. JDK 版本切换4. 测试5. 在 IDEA 中切换 JDK注意: 多个 JDK 版本(Java 8、Java 17、Java 21)下载和切换 随着 Spring Boot …

深度解析:使用 Headless 模式 ChromeDriver 进行无界面浏览器操作

一、问题背景(传统爬虫的痛点) 数据采集是现代网络爬虫技术的核心任务之一。然而,传统爬虫面临多重挑战,主要包括: 反爬机制:许多网站通过检测请求头、IP地址、Cookie等信息识别爬虫,进而限制…

【Vue+python】Vue调用python-fastApi接口实现数据(数值、列表类型数据)渲染

前言:之前做的一直都是SpringBootVue的应用,但现在需要实现一个能将python实现的算法应用展示在前端的界面。想法是直接Vue调用python-fastApi接口实现数据渲染~ 文章目录 1. 变量定义2. axios调用python3. 跨域问题解决4. 数据渲染4.1 数值数据渲染4.2 …