03【深度学习】YOLOV3-WIN11环境搭建(配置+训练)

news2024/11/24 7:23:51

一、深度学习:YOLOV3-WIN11环境搭建

      本篇文字是【深度学习】YOLOV5-WIN11环境搭建(配置+训练),首先介绍win11下 基于Anaconda、pytorch的YOLOV5深度学习环境搭建,环境配置顺序:显卡驱动 - CUDA - cudnn - Anaconda - pytorch - pycharm,按这个顺序配置可以避免很多莫名其妙的错误出现。另外不用单独安装python,使用Anaconda里的python环境。


1、虚拟环境搭建

       本文默认 CUDA - cudnn已经安装,未安装的同学见深度学习环境搭建:Win11+CUDA 11.7+Pytouch1.12.1+Anaconda中1-4

       虚拟环境安装pytorch详细见:    深度学习环境搭建:Win11+CUDA 11.7+Pytouch1.12.1+Anaconda中5-8

2、OpenCv安装:

            主要用来更好的对图显示进行可视化,也可以不按照。本文使用opencv4.3.0版本。

  •      命令安装方式

             pip install opencv-python(默认使用最新版本)或

             pip install opencv-python==4.3.0(可以自己指定版本)

  •      下载安装方式

         https://mirrors.tuna.tsinghua.edu.cn/pypi/web/simple/opencv-python/

         进入虚拟环境,执行命令安装 

  • 安装校验

3、Pycharm安装:

       自行搜索,此处不做介绍。  

       

       至此在WIN10下的YOLOV5深度学习环境安装完成。接下来可以在此环境下进行深度学习的实验了。

二、【深度学习】准备个人数据集、YOLOV3 模型的训练和测试

1、前置知识

        YOLO3 的网络结构使用的是 darknet 网络,因此完成 YOLO3 模型就是 通过darknet配置文件(后面会详细讲)完成darknet网络搭建,而 Darknet 文件结构如下: 

  •   include:存Darknet源码(由C语言编写)
  •   cfg:网络配置文件(例如YoloV3的网络配置文件)、数据信息配置文件
  •   data:数据集
  •   script:下载数据集的脚本,一般在linux环境下使用
  •   python:针对Darknet框架编译后的接口
  •   example:模型测试脚本的例子

2、数据集的准备

1.1 数据集资源介绍(了解)

       数据集资源:分为现有的数据集和自定义的数据集。我们先介绍现有的数据集,最后面再介绍如何使用自定义数据集。

  • PascalVOC:20个类别,在 YOLOV1 中使用的是此数据集。
  • COCO:91个类别,小目标多、单幅图片目标多、物体大多非中心分布、更符合日常环境,coco检测难度更大
  • ILSVRC2012:magenet数据集有1400多万幅图片,涵盖2万多个类别;其中有超过百万的图片有明确的类别标注和图像中物体位置的标注
  • 自定义数据集(后面介绍)

       区别:

  • PascalVOC使用 YOLOV1, YOLOV3使用需要进行转换,数据量少,针对大目标
  • ILSVRC2012数据量太大,下载时间长,训练时间长
  • COCO是PascalVOC、COCO、ILSVRC2012的折中方式

1.2 COCO数据集介下载

         COCO从复杂的日常场景中截取,包括91类目标,3.28万个影像和250万个label标签。训练集和验证集下载地址如下:

  • http://images.cocodataset.org/zips/val2014.zip
  • http://images.cocodataset.org/zips/train2014.zip

       预训练权重:https://link.csdn.net/?target=https%3A%2F%2Fpjreddie.com%2Fmedia%2Ffiles%2Fyolov3.weights

3、资源下载

3.1代码下载

      项目代码:https://github.com/eriklindernoren/PyTorch-YOLOv3?from=singlemessage

      整个项目的结构如下图:

3.2 权重下载

       预训练权重:https://pjreddie.com/media/files/yolov3.weights

       将下载的权重放入weight文件夹,如下图: 

4、部署YOLOV3的环境

4.1  用pycharm打开yolov3文件,并配置相应的虚拟环境

4.2  修改train.py

打开根目录下的train.py

Ctrl+f搜索--data

将coco128.yaml改为你自己配置文件的文件名**.yaml

4.3 修改yolov5s.yaml yolov3.yaml

model/yolov5s.yaml 或yolov3.yaml的nc值为自己数据集的class数目 nc

4.4、修改dataloaders.py(如果你的图片文件夹名是images可以略过)

打开utils/dataloaders.py

Ctrl+f搜索Define label ,找到下面的一行内容:

sa, sb =f'{os.sep}images{os.sep}',f'{os.sep}labels{os.sep}' # /images/,/labels/ substrings

把JPEGImages替换掉images

4.5 运行

pycharm打开终端,如果你选择了相应的虚拟环境,()内就会显示你的虚拟环境名称

4.6 在终端粘贴指令
yolov3选择指令(有gpu):

python train.py --img 640 --batch 32 --epochs 100 --data data/***.yaml--weights yolov3.pt --device 0

Enter运行即可
 

4、文件说明

4.1 config 文件夹

4.1.1 coco.data

         coco数据集的信息:类别数量,训练集路径、验证集路径、类别名称路径…

classes= 80  # 类别
train=data/coco/trainvalno5k.txt # 训练集图片的存放路径
valid=data/coco/5k.txt # 测试集图片的存放路径
names=data/coco.names # 类别名
backup=backup/ # 记录checkpoint存放位置 
eval=coco # 选择map计算方式

4.1.2 create_custom_model.sh

     脚本文件:用户自定义自己的模型,运行此文件用来生成自定义模型的配置文件yolov3-custom.cfg,可对比yolov3.cfg。

4.1.3 custom.data

     自己数据集的信息,用来训练自己的检测任务:类别数量,训练集路径、验证集路径、类别名称路径,可对比coco.data。

4.1.4 yolov3.cfg

     yolov3网络模型的配置信息:卷积层(归一化、卷积核尺寸、卷积核数、步长、填充、激活函数.....)、yolo层(类别、bounding box数量、控制是否参与损失计算的阈值......)及其他层的配置信息。

[convolutional]   #卷积层
batch_normalize=1 #每层归一化
size=3            #卷积核尺寸
stride=1          #滑动步长             
pad=1             #填充边框 
filters=256       #卷积核个数   
activation=leaky  #激活函数          

[convolutional]   #卷积层
size=1            #卷积核尺寸
stride=1          #滑动步长    
pad=1             #填充边框 
filters=255       #卷积核个数  
activation=linear #激活函数


[yolo]
mask = 0,1,2      #指定使用anchors时候索引,表示采用前三个尺寸:10,13,  16,30,  33,23
anchors = 10,13,  16,30,  33,23,  30,61,  62,45,  59,119,  116,90,  156,198,  373,326 #指定anchors box 尺寸
classes=80        #指定类别数量
num=9             #指定每个anchor的bounding box数量
jitter=.3         #指定数据增强随机调整宽高比
ignore_thresh = .7#指定预测检测框与真值检测框IOU>0.7不参与损失计算,常用设置0.5-0.7
truth_thresh = 1  #指定真值
random=1          #指定训练时候采用随机多尺度训练,0表示使用固定尺度训练

4.1.5 yolov3-custom.cfg

  自定义的网络模型的配置信息,由create_custom_model.sh脚本文件生成。

4.1.6 yolov3-tiny.cfg

  yolov3的tiny版本网络模型的配置信息。

4.2 data 文件夹

4.2.1 coco文件夹

  是coco训练集、验证集的数据集,是运行get_coco_dataset.sh脚本文件(自动下载数据集,并解压)后的结果。

4.2.2 custom文件夹

  custom文件夹是自定义数据集的信息。

  • images文件夹:所有训练集、验证集的图片,如图

  • labels文件夹:使用图片标记软件对images文件夹里的图片进行标注得到对应的标签文件。每个标签文件为一个txt文件,txt文件的每一行数据为一个groundthuth信息类别序号,边界框坐标信息。如图示例,0代表类别索引号,后面为边界框坐标信息

  • classes.names是自定义数据集的类别名称文件。例

  • train.txt文件和valid.txt分别是训练集图片验证集图片路径的集合,如图,每行数据是训练集/验证集某图像的路径。       

4.2.3 samples文件夹

 samples文件夹是模型测试图片所在的文件夹,用来看模型的检测结果。 

4.2.4 coco.names

  coco数据的类别信息,类似classes.names。如图部分截图

4.2.5 get_coco_dataset.sh

  脚本文件,用来获取coco数据,生成coco文件夹及其内容。
 

1、个人数据集的准备
做深度学习,YOLOV5模型的图像识别,我们需要大量的数据集来进行训练,才能达到准确识别的效果。

制作数据集需要用到 lebelimg 来将我们的数据图片做数据标注生成xml文件。

见:【深度学习】准备个人数据集、YOLOV5 模型的训练和测试_yolov5 测试集_Life&Dream的博客-CSDN博客

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

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

相关文章

【Linux成长史】Linux编辑器-gcc/g++使用

🎬 博客主页:博主链接 🎥 本文由 M malloc 原创,首发于 CSDN🙉 🎄 学习专栏推荐:LeetCode刷题集 数据库专栏 初阶数据结构 🏅 欢迎点赞 👍 收藏 ⭐留言 📝 如…

Tessy 5.0.4

Tessy 5.0.4 Linux 2692407267qq.com,更多内容请见http://user.qzone.qq.com/2692407267/

改写句子软件有哪些?改写句子软件排行榜

什么是改写句子软件?这些软件是基于自然语言处理技术的应用,它们可以接受一段文字,并将其重新表达成具有相同或类似意义的内容,但使用不同的词汇和结构。改写句子软件的出现,使得在不改变原始含义的情况下,能够更轻松…

MFC 如何调用wkhtmltopdf实现html转换pdf

一、wkhtmltopdf下载 1、wkhtmltopdf官网:https://wkhtmltopdf.org/ 2、我的资源里面下载:https://download.csdn.net/download/my_angle2016/88368461?spm1001.2014.3001.5503 二、wkhtmltopdf安装 1、双击wkhtmltox-0.12.6-1.msvc2015-win32.exe&…

人工智能的前世今生与未来

人工智能的前世今生与未来 一、 什么是人工智能二、人工智能的前世三、人工智能的今生四、人工智能的未来 一、 什么是人工智能 人工智能(Artificial Intelligence,简称AI)是指一种模拟人类智能行为的科学与技术。 人工智能通过计算机系统进…

华为云云耀云服务器L实例评测|netdata的部署与应用

大家好,我是雄雄,欢迎关注微信公众号:雄雄的小课堂 看这里 前言何为netdata安装 前言 前两天,给大家介绍了下关于使用华为云云耀云服务器L实例做了几个案例应用,分别为: 华为云云耀云服务器L实例评测|一个…

【无标题】C语言学习笔记5--循环结构和选择结构

5.1 运算符和运算符 5.1.1逻辑运算发 运算符说明结核性举例&&与运算,双目,对应数学中的“且”左结合1&&0、(9>3)&&(b>a与运算,双目,对应数学中的“且”左结合1!非运算,单目&#xff0…

你知道 delete 删除属性时的一些细节吗?

探究 delete 的一些细节,起源于刚刚做过的一道笔试,原题如下: a 1; const b 2; console.log(delete a); console.log(delete b); // 输出结果是? // 答:true false我可从来没用过 delete 的返回值,但凡…

Reat 中的 useImperativeHandle 钩子函数

通过例子说明 ref 的不足 当我们需要调用子组件中的方法时&#xff0c;我们都是考虑使用useRef来调用子组件的方法&#xff0c;具体的示例代码如下&#xff1a; // 父级组件 const UseImperativeHandleDemo: React.FC () > {const inputRef useRef<HTMLInputElement&…

Linux忘记密码

在虚拟机安装了centOS7&#xff0c;但是忘记了root密码&#xff0c;登录的时候发现登录不上了&#xff0c;然后重新修改密码。 1、重启虚拟机 2、进入到该页面之后&#xff0c;选中第一个&#xff08;高亮显示即为选中&#xff09;选项&#xff0c;然后按下键盘的“E”键 3…

每日一题 1993. 树上的操作

难度&#xff1a;中等 思路&#xff1a; 首先为了更好的访问每个节点的子节点&#xff0c;我们创建一个字典来表示key节点下的所有子节点&#xff0c;其次上锁&#xff0c;解锁不用多说升级过程&#xff0c;对于条件一和三可以理解为同一个&#xff0c;即包括它本身在内的所有…

基于springboot+vue的大学生竞赛交流系统(前后端分离)

博主主页&#xff1a;猫头鹰源码 博主简介&#xff1a;Java领域优质创作者、CSDN博客专家、公司架构师、全网粉丝5万、专注Java技术领域和毕业设计项目实战 主要内容&#xff1a;毕业设计(Javaweb项目|小程序等)、简历模板、学习资料、面试题库、技术咨询 文末联系获取 项目介绍…

人工智能机器学习-飞桨神经网络与深度学习

飞桨神经网络与深度学习-机器学习 目录 飞桨神经网络与深度学习-机器学习 1.机器学习概述 2.机器学习实践五要素 2.1.数据 2.2.模型 2.3.学习准则 2.4.优化算法 2.5.评估标准 3.实现简单的线性回归模型 3.1.数据集构建 3.2.模型构建 3.3.损失函数 3.4.模型优化 3…

Vue的进阶使用--模板语法应用拓展(表单及组件通信)

目录 ​编辑 一.事件处理器 1.监听事件 1.1首先定义监听事件&#xff0c;并定义调用的方法 1.2编写调用的方法 案例演示 1.编写HTML层 2.编写方法 2.Vue.js阻止重复请求 2.1模拟请求操作 2.2 测试结果及结论 二.表单验证 1.基础表单验证 1.1 HTML层 1.2JS层 …

数字经济水平测算(内含4种版本2种方式)-地级市(2011-2021年)

参照赵涛等&#xff08;2020&#xff09;的文章&#xff0c;利用熵值法和主成分对城市数字经济水平进行测算&#xff0c;包括原始数据及测算结果。内含4种版本2种方式&#xff0c;在8种情况下测算的数字经济水平。 一、数据介绍 数据名称&#xff1a;地级市-数字经济水平测算…

栈的简单应用(利用Stack进行四则混合运算)(JAVA)

目录 中缀表达式转后缀表达式 图解 代码实现过程&#xff1a; 完整代码&#xff1a; 利用后缀表达式求值&#xff1a; 完整代码&#xff1a; 首先我们得先了解逆波兰表达式。 中缀表达式转后缀表达式 所谓的中缀表达式其实就是我们平时写的例如&#xff1a;&#xff1…

基于SpringBoot的墙绘产品展示交易平台设计与实现

目录 前言 一、技术栈 二、系统功能介绍 三、核心代码 1、登录模块 2、文件上传模块 3、代码封装 前言 现代经济快节奏发展以及不断完善升级的信息化技术&#xff0c;让传统数据信息的管理升级为软件存储&#xff0c;归纳&#xff0c;集中处理数据信息的管理方式。本墙绘产…

生活垃圾数据集(YOLO版)

文章目录 1、数据集介绍1.1、数据集图片组成2.1、获取数据集方式 2、扩展代码2.1、文件结构树2.2、划分数据集2.3、获取数据集文件名字2.4、文件成功对应检测 3、其他文章 1、数据集介绍 1.1、数据集图片组成 【有害垃圾】&#xff1a;电池&#xff08;1 号、2 号、5 号&…

TensorFlow安装 ,在原本的虚拟环境下配置Tensorflow.

1.TensorFlow安装 &#xff0c;在原本的虚拟环境下配置Tensorflowh和pytorch 2.我首先在anaconda的环境下创建了一个tensorflow文件夹 如何先进入D盘&#xff0c;再进入tensorflow文件夹的目录D:cd D:\Anaconda\TensorFlowSoftWarepip install tensorflow如图所示报错解决方法 …

软件设计师考试学习2

数据结构与算法基础 数组 稀疏矩阵 用代入法计算&#xff0c;A 数据结构的定义 非线性结构分为树和图&#xff0c;区别在于有没有环路 顺序表与链表 引入头节点可以使所有的节点处理方式一致 如果没有空的头节点&#xff0c;头节点需要单独处理 顺序存储与链式存储 查找…