【大作业-12】手把手教你使用YOLOV5做交通标志检测

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

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

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

labels

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

val_batch2_pred

PR_curve

注意事项

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

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

前期准备

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

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

环境配置

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

数据集准备

数据集这里我放在了优快云中,大家可以执行标注准备数据集,或者使用这里我处理好的数据集,数据集下载之后放在和代码目录同级的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交通标志识别检测数据集+代码+模型+教学视频-深度学习文档类资源-优快云文库

### 使用YOLOv5训练自定义目标检测模型 #### 安装必要依赖 为了确保可以顺利运行YOLOv5,需要先安装一些必要的库和工具。这通常包括Python环境、PyTorch框架以及其他辅助包。具体操作可以通过官方文档中的指引完成[^1]。 #### 数据集准备 对于任何机器学习项目来说,高质量的数据都是成功的关键之一。针对YOLOv5而言,数据应该被整理成特定格式——每张图片对应一个`.txt`标签文件,其中包含了物体的位置信息(边界框坐标)及其类别编号。此外,还需要创建一个包含所有图像路径列表的文本文件用于后续处理过程。 #### 创建配置文件 在开始之前,还需编写或修改几个重要的配置文件来指导整个流程: - **data.yaml**: 描述了数据集结构的信息,比如类别的名称、训练/验证集合目录位置等。 - **model.yaml**: 定义了神经网络架构细节,默认情况下可以直接沿用预设模板而无需改动太多参数设置除非有特殊需求想要优化性能表现。 #### 开始训练 当一切准备工作就绪之后就可以启动实际的训练环节了。通过命令行界面执行如下所示语句即可调用默认超参设定下的标准训练模式: ```bash python train.py --img 640 --batch 16 --epochs 50 --data data.yaml --weights yolov5s.pt ``` 上述代码片段中指定了输入分辨率大小(`--img`)、批次数量(`--batch`)、迭代次数上限(`--epochs`)、所使用的数据源描述符(`--data`)还有初始化权重加载地址(`--weights`)作为主要选项传递给程序入口函数来进行一轮完整的周期性更新直至达到预期效果为止。 #### 测试与评估 一旦完成了足够的轮次后便可以获得初步成果并对其进行简单的质量检验。利用测试子集中未见过的新样本预测分析从而计算出各类指标得分如mAP(mean Average Precision),以此衡量当前版本的好坏程度以便决定是否继续改进或是直接部署上线投入使用。 #### 进一步探索 除了基本功能之外,还可以深入研究更多高级特性例如迁移学习、分布式多GPU加速运算、量化感知微调等等以期获得更佳的结果回报。同时也可以关注社区动态随时掌握最新进展趋势及时跟进前沿技术发展步伐。
评论 10
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

肆十二

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值