当前位置: 首页 > news >正文

【2023-Pytorch-检测教程】手把手教你使用YOLOV5做交通标志检测

项目下载地址:YOLOV5交通标志识别检测数据集+代码+模型+教学视频-深度学习文档类资源-CSDN文库

交通标志的目标检测算法在计算机视觉领域一直属于热点研究问题,改进的优化算法不断地被提出。国内外许多学者针对现有的目标检测方法中网络结构、目标定位、损失函数和 体系结构方面的不足,结合交通标志显著特征,提出了适用于交通标志检测的改进方法。同 时,随着深度学习的不断发展,相比传统的机器学习算法,深度学习自动提取目标特征、简化特征工程难度的优势也越来越被人们重视并使用。

本期我们以CCTSDB数据集为例,用YOLOV5算法做交通标志识别。中国交通标志检测数据集(CCTSDB,Chinese Traffic Sign Detection Benchmark)由长沙理工大学 综合交通运输大数据智能处理湖南省重点实验室张建明老师团队制作完成。 目前的标注数据只有三大类:指示标志、禁止标志、警告标志。

labels

废话不多说,咱们先看两张实际效果

val_batch2_pred

PR_curve

注意事项

  1. 尽量使用英文路径,避免中文路径,中文路径可能会导致代码安装错误和图片读取错误。
  2. pycharm运行代码一定要注意左下角是否在虚拟环境中。
  3. 库的版本很重要,使用本教程提供的代码将会事半功倍

遇到解决不了的问题可以通过私信(QQ:3045834499)联系我,粉丝儿朋友远程调试该项目(包含数据集和训练好的三组模型)仅需99个圆子。

前期准备

电脑的基础设置以及软件的安装这边不再做赘述,前期的准备工作参考下面博客的内容。

【2023-Pytorch-检测教程】手把手教你使用YOLOV5做电线绝缘子缺陷检测_肆十二的博客-CSDN博客

环境配置

OK,来到关键环境配置的部分,首先大家下载代码之后会得到一个压缩包,在当前文件夹解压之后,进入CMD开始我们的环境配置环节。

image-20230315150456715

为了加快后期第三方库的安装速度,我们这里需要添加几个国内的源进来,直接复制粘贴下面的这些指令到你的命令行即可。

conda config --remove-key channels
conda config --add channels https://mirrors.ustc.edu.cn/anaconda/pkgs/main/
conda config --add channels https://mirrors.ustc.edu.cn/anaconda/pkgs/free/
conda config --add channels https://mirrors.bfsu.edu.cn/anaconda/cloud/pytorch/
conda config --set show_channel_urls yes
pip config set global.index-url https://mirrors.ustc.edu.cn/pypi/web/simple

执行完毕大概是下面这个样子,后面你就可以飞速下载这些库了。

image-20230315150835331

创建虚拟环境

首先,我们需要根据我们的项目来创建一个虚拟环境,通过下面的指令创建并激活虚拟环境。

我们创建一个Python版本为3.8.5,环境名称为yolo的虚拟环境。

conda create -n yolo python==3.8.5
conda activate yolo

image-20230318200231348

切记!这里一定要激活你的虚拟环境,否则后续你的库会安装在基础环境中,前面的小括号表示你处于的虚拟环境。

Pytorch安装

注意Pyotorch和其他库不太一样,Pytorch的安装涉及到conda和cudnn,一般而言,对于30系的显卡,我们的cuda不能小于11,对于10和20系的显卡,一般使用的是cuda10.2。下面给出了30系显卡、30系以下显卡和cpu的安装指令,请大家根据自己的电脑配置自行下载。笔者这里是3060的显卡,所以执行的是第一条指令。

conda install pytorch==1.10.0 torchvision torchaudio cudatoolkit=11.3 # 30系列以上显卡gpu版本pytorch安装指令
conda install pytorch==1.8.0 torchvision torchaudio cudatoolkit=10.2 # 10系和20系以及mx系列的执行这条
conda install pytorch==1.8.0 torchvision==0.9.0 torchaudio==0.8.0 cpuonly # CPU的小伙伴直接执行这条命令即可

安装之后,可以和笔者一样,输入下面的指令测试以下gpu是否可用,如果输出的是true表示GPU是可用的。

image-20230315152204221

其余库安装

其余库的安装就非常简单了,我们通过pip来进行安装,注意这里一定要确保你执行的目录下有requirements.txt这个文件,否则你将会遇到文件找不到的bug,你可以通过dir指令来查看是否有这个文件。

pip install -r requirements.txt

image-20230318200435082

Pycharm中运行

一是为了查看代码方便,二是为了运行方便,这里我们使用Pycharm打开项目,点击这里右键文件夹直接打开项目即可非常方便。

打开之后你将会看到这样的一个界面,其中左侧是文件浏览器,中间是编辑器,下方是一些工具,右下角是你所处的虚拟环境 。

image-20230318200610541

之后,我们就需要为当前的项目选择虚拟环境了,这一步非常重要,有的兄弟配置好了没选环境,你将会遇到一堆奇怪的bug,选环境的步骤如下。

首先点击,添加解释器。

在这里插入图片描述

三步走选择我们刚才创建的虚拟环境,点击ok。

image-20230315153636384

image-20230315153728665

之后你可以你可以右键执行main_window.py这个文件,出现下面的画面说明你就成功了。

image-20230315153838054

image-20230315154014173

数据集准备

数据集这里我放在了CSDN中,大家可以执行标注准备数据集,或者使用这里我处理好的数据集,数据集下载之后放在和代码目录同级的data目录下。

image-20230318200652792

数据集打开之后你将会看到两个文件夹,images目录存放图片文件,labels目录存放标签文件。

image-20230318201104922

之后记住你这里的数据集路径,在后面的训练中我们将会使用到,比如笔者这里的F:\new_project\ctsd\data\CCTSDB

image-20230318200844257

训练和测试

注:这里你可以选择去自己尝试以下,笔者在runs的train目录下已经放了训练好的模型,你是可以直接使用。
image-20230318201156700
下面就是训练的过程,笔者这里已经将数据集和模型的配置文件写好了,你只需要将数据集中的数据路径替换成你的路径,执行go_train.py即可开始训练了。
image-20230318201344991
执行go_train.py文件中,包含三条指令,分别表示yolov5中small模型、medium模型和large模型,比如我这里要训练s模型,我就将其他两个模型训练的指令注释掉就好了。
image-20230315155028259
运行之后,下方会输出运行的信息,这里的红色只是日志信息,不是报错,大家不要惊慌。
image-20230315155258835
以笔者这里的s模型为例,详细含义如下。
image-20230315155441956
如果大家要测试的话就使用go_test.py,其中三行分别表示s模型、m模型和l模型的测试指令。
image-20230318202848359
测试结果如下:
image-20230318202914704

图形化程序

最后就是执行我们的图形化界面程序了。

image-20230315155624329

直接右键执行window_main.py执行即可,这里上两章效果图。

image-20230318201545745

项目下载地址:YOLOV5交通标志识别检测数据集+代码+模型+教学视频-深度学习文档类资源-CSDN文库

相关文章:

【2023-Pytorch-检测教程】手把手教你使用YOLOV5做交通标志检测

项目下载地址:YOLOV5交通标志识别检测数据集代码模型教学视频-深度学习文档类资源-CSDN文库 交通标志的目标检测算法在计算机视觉领域一直属于热点研究问题,改进的优化算法不断地被提出。国内外许多学者针对现有的目标检测方法中网络结构、目标定位、损…...

Java中的二叉树

文章目录前言一、树形结构(了解)1.1 概念1.2 概念(重要)1.3 树的表示形式(了解)1.4 树的应用二、二叉树(重点)2.1 概念2.2 两种特殊的二叉树2.3 二叉树的性质2.5 二叉树的存储2.5 二…...

基于 gma 绘制古代洛阳 5 大都城遗址空间分布地图

了解 gma gma 是什么? gma 是一个基于 Python 的地理、气象数据快速处理和数据分析函数包(Geographic and Meteorological Analysis,gma)。gma 网站:地理与气象分析库。 gma 的主要功能有哪些? 气候气象&a…...

分析 Spring 的依赖注入模式

一、依赖注入二、Field Injection优点缺点三、Constructor Injection优点1. 容易发现 code smell优点2. 容易厘清依赖关系优点3. 容易写单元测试优点4. Immutable Object缺点:循环依赖四、总结一、依赖注入 依赖注入 (Dependency Injection,…...

IntelliJ IDEA创建Servlet

目录 ——————————————————————————————— 一、创建Java项目 1、创建java项目 2、选择java 3、next 4、给项目命名 5、新创建完java项目的目录结构 二、变java为servlet项目 1、变servlet项目 2、选择Web Application 3、更新完成后的目录…...

Spring Boot如何让自己的bean优先加载

背景介绍 在一些需求中,可能存在某些场景,比如先加载自己的bean,然后自己的bean做一些DB操作,初始化配置问题,然后后面的bean基于这个配置文件,继续做其他的业务逻辑。因此有了本文的这个题目。 实现方法…...

LeetCode分类刷题----动态规划

动态规划509.斐波那契数列70.爬楼梯746.使用最小花费怕楼梯62.不同路径63.不同路径||343.整数拆分96.不同的二叉搜索树01背包问题416.分割等和子集1049.最后一块石头的重量||494.目标和474.一和零完全背包问题518.零钱兑换||377.组合总和IV322.零钱兑换279.完全平方数139.单词拆…...

今年好像没有金三银四了?

大家好,我是记得诚。 金三银四,是换工作的高峰期,新的一年结束了,在年前拿完年终奖,在年后3月和4月换个满意的工作。 单从我公司来看,目前还没有一个人离职,往年离职率是要高一些的。 还有我…...

【C++】入门知识之 函数重载

前言提到重载这个词,我们会想到什么呢?重载有一种一词多义的意思,中华文化博大精深,之前有一个笑话,中国的乒乓球谁都打不过,男足谁都打不过,哈哈哈这也是非常有意思的,但是今天我们…...

文心一言发布,你怎么看?chatGPT

百度全新一代知识增强大语言模型“文心一言”于2021年3月16日正式发布,作为一款自然语言处理技术,它引起了广泛的关注和讨论。 首先,文心一言是一款具有重大意义的自然语言处理技术。在人工智能领域,自然语言处理技术一直是一个难…...

字符函数和字符串函数【上篇】

文章目录🎖️1.函数介绍📬1.1. strlen📬1.2. strcpy📬1.3. strcat📬1.4. strcmp📬1.5. strncpy📬1.6. strncat📬1.7. strncmp🎖️1.函数介绍 📬1.1. strlen …...

list的模拟实现(模仿STL)

目录 一、模拟实现前的准备 1.list结构认识 2.迭代器的实现不同 3.如何实现需要的功能 二.结点类实现 三.迭代器实现 1.实现前的问题 2._list_iterator类的成员变量和构造函数 3.*和->运算符重载 4.前置和后置的实现 5.前置--和后置-- 6.和!运算符重载 四.list类的实现 1.li…...

05-STM32F1 - 串行通信SPI

SPI STM-SPI作为主机,从机 SPI的时钟,最高为Pclk/2,SPI1最高为36Mhz,SPI2最高为18Mhz。 SPI的四种模式 CPOL CPHA,数据帧8~16位,LSB,MSB 全双工,双向单线,单线 物理层 接口标准…...

【Pytorch】Tensor的分块、变形、排序、极值与in-place操作

本文参加新星计划人工智能(Pytorch)赛道:https://bbs.csdn.net/topics/613989052 这是目录Tensor的分块Tensor的变形Tensor的排序Tensor的极值Tensor的in-place操作Tensor是PyTorch中用于存储和处理多维数据的基本数据结构,它类似于NumPy中的ndarray&…...

数组栈的实现

个人主页:平行线也会相交 欢迎 点赞👍 收藏✨ 留言✉ 加关注💓本文由 平行线也会相交 原创 收录于专栏【数据结构初阶(C实现)】 目录所有接口函数栈的初始化在栈顶放数据释放数据删除数据取栈顶的数据判断栈取区是否为…...

*p++,*(p++),*++p,(*p)++区别?

*p++:等同于:*p; p += 1; 解析:由于和++的运算优先级一样,且是右>结合。故p++相当于*(p++),p先与++结合,>然后p++整体再与结合。前面陈述是一种最 常见的错误,很多初学者也是这么理解的。 但是,因为++后置的时候,本身含义就是先 运算后增加1(运算指的是p++作为…...

又一个线上偶发问题-系统短暂无法获取到Redis连接

概述 最近不知道咋回事,老是在线上遇到偶发的故障,它突然出现,又很快消失了。 在2023年3月11下午差不多六点左右,我正在工位上喝着香味扑鼻的金骏眉红茶,突然接到了一个电话,拿起手机一看,是阿里…...

[ 系统安全篇 ] 拉黑IP - 火绒安全软件设置IP黑名单 windows使用系统防火墙功能设置IP黑名单

🍬 博主介绍 👨‍🎓 博主介绍:大家好,我是 _PowerShell ,很高兴认识大家~ ✨主攻领域:【渗透领域】【数据通信】 【通讯安全】 【web安全】【面试分析】 🎉点赞➕评论➕收藏 养成习…...

MongoDB【部署 01】mongodb最新版本6.0.5安装部署配置使用及mongodb-shell1.8.0安装使用(云盘分享安装文件)

云盘分享文件: 链接:https://pan.baidu.com/s/11sbj1QgogYHPM4udwoB1rA 提取码:l2wz 1.mongodb简单介绍 MongoDB的 官网 内容还是挺丰富的。 是由 C语言编写的,是一个基于分布式文件存储的开源数据库系统。在高负载的情况下&…...

算法竞赛必考算法——动态规划(01背包和完全背包)

动态规划(一) 目录动态规划(一)1.01背包问题1.1题目介绍1.2思路一介绍(二维数组)1.3思路二介绍(一维数组) 空间优化1.4思路三介绍(输入数据优化)2.完全背包问题2.1题目描述:2.2思路一(朴素算法)2.3思路二(将k优化处理掉)2.4思路三(优化j的初始条件)总结1.01背包问题…...

51c自动驾驶~合集58

我自己的原文哦~ https://blog.51cto.com/whaosoft/13967107 #CCA-Attention 全局池化局部保留,CCA-Attention为LLM长文本建模带来突破性进展 琶洲实验室、华南理工大学联合推出关键上下文感知注意力机制(CCA-Attention),…...

在鸿蒙HarmonyOS 5中实现抖音风格的点赞功能

下面我将详细介绍如何使用HarmonyOS SDK在HarmonyOS 5中实现类似抖音的点赞功能,包括动画效果、数据同步和交互优化。 1. 基础点赞功能实现 1.1 创建数据模型 // VideoModel.ets export class VideoModel {id: string "";title: string ""…...

.Net框架,除了EF还有很多很多......

文章目录 1. 引言2. Dapper2.1 概述与设计原理2.2 核心功能与代码示例基本查询多映射查询存储过程调用 2.3 性能优化原理2.4 适用场景 3. NHibernate3.1 概述与架构设计3.2 映射配置示例Fluent映射XML映射 3.3 查询示例HQL查询Criteria APILINQ提供程序 3.4 高级特性3.5 适用场…...

多场景 OkHttpClient 管理器 - Android 网络通信解决方案

下面是一个完整的 Android 实现&#xff0c;展示如何创建和管理多个 OkHttpClient 实例&#xff0c;分别用于长连接、普通 HTTP 请求和文件下载场景。 <?xml version"1.0" encoding"utf-8"?> <LinearLayout xmlns:android"http://schemas…...

LeetCode - 394. 字符串解码

题目 394. 字符串解码 - 力扣&#xff08;LeetCode&#xff09; 思路 使用两个栈&#xff1a;一个存储重复次数&#xff0c;一个存储字符串 遍历输入字符串&#xff1a; 数字处理&#xff1a;遇到数字时&#xff0c;累积计算重复次数左括号处理&#xff1a;保存当前状态&a…...

【电力电子】基于STM32F103C8T6单片机双极性SPWM逆变(硬件篇)

本项目是基于 STM32F103C8T6 微控制器的 SPWM(正弦脉宽调制)电源模块,能够生成可调频率和幅值的正弦波交流电源输出。该项目适用于逆变器、UPS电源、变频器等应用场景。 供电电源 输入电压采集 上图为本设计的电源电路,图中 D1 为二极管, 其目的是防止正负极电源反接, …...

vulnyx Blogger writeup

信息收集 arp-scan nmap 获取userFlag 上web看看 一个默认的页面&#xff0c;gobuster扫一下目录 可以看到扫出的目录中得到了一个有价值的目录/wordpress&#xff0c;说明目标所使用的cms是wordpress&#xff0c;访问http://192.168.43.213/wordpress/然后查看源码能看到 这…...

关于uniapp展示PDF的解决方案

在 UniApp 的 H5 环境中使用 pdf-vue3 组件可以实现完整的 PDF 预览功能。以下是详细实现步骤和注意事项&#xff1a; 一、安装依赖 安装 pdf-vue3 和 PDF.js 核心库&#xff1a; npm install pdf-vue3 pdfjs-dist二、基本使用示例 <template><view class"con…...

6️⃣Go 语言中的哈希、加密与序列化:通往区块链世界的钥匙

Go 语言中的哈希、加密与序列化:通往区块链世界的钥匙 一、前言:离区块链还有多远? 区块链听起来可能遥不可及,似乎是只有密码学专家和资深工程师才能涉足的领域。但事实上,构建一个区块链的核心并不复杂,尤其当你已经掌握了一门系统编程语言,比如 Go。 要真正理解区…...

Java后端检查空条件查询

通过抛出运行异常&#xff1a;throw new RuntimeException("请输入查询条件&#xff01;");BranchWarehouseServiceImpl.java // 查询试剂交易&#xff08;入库/出库&#xff09;记录Overridepublic List<BranchWarehouseTransactions> queryForReagent(Branch…...