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

YOLOv1、YOLOv2、YOLOv3目标检测算法原理与实战第十三天|YOLOv3实战、安装Typora

1.学习哔哩哔哩《YOLOv1、YOLOv2、YOLOv3目标检测算法原理与实战》

炮哥带你学视频链接

第5章 YOLOv3实战

5.1 YOLOv3实战先导

在这里插入图片描述

5.2 pycharm与anaconda的安装

之前已经安装过了,见Pytorch框架与经典卷积神经网络与实战第一天|安装PyCharm&Anaconda,配置环境,写爱心代码

5.3 python环境安装

在这里插入图片描述

5.4 pytorch环境安装

安装cuda驱动见Pytorch框架与经典卷积神经网络与实战第四天|PyTorch框架与编程环境安装
在这里插入图片描述

5.5 YOLOv3代码背景介绍

本课程用的是YOLOv3的9.6版本

在这里插入图片描述

5.6 YOLOv3环境安装

下载的时候注意要在红框框出的文件下一级,不能是文件中的文件的文件

在这里插入图片描述

检查环境是否配置成功

在这里插入图片描述

5.7 YOLOv3代码整体结构分析

代码整体解析:
在这里插入图片描述
data文件解析:
(超参数:实现定义好的参数)
在这里插入图片描述
models文件解析:
在这里插入图片描述
utils文件解析:
在这里插入图片描述runs文件解析:
在这里插入图片描述
weight文件解析:
在这里插入图片描述

5.8 推理核心参数代码讲解

exp2:
在这里插入图片描述
exp5:
在这里插入图片描述

5.9 labelimg标注软件的使用

注:现在推荐使用Label Studio,Labelimg已不在开发

创建环境

在这里插入图片描述

激活环境

在这里插入图片描述

下载labelimg软件

在这里插入图片描述

运行labelimg软件

在这里插入图片描述

软件功能介绍

在这里插入图片描述

W:调出标注十字架

在这里插入图片描述

A:切换到上一张图片
D:切换到下一张图片
use default label:固定标签打框
del :删除标注框框
Ctrl+u:选择标注的图片文件夹
Ctrl+r:选择标注好的 label 标签存在的文件夹

在这里插入图片描述

文件保存:一级VOCdevkit,二级VOC2007,第三极:JPEGImages、Annotations

在这里插入图片描述

保存格式:尽量用VOC(xmal文件),不要用yolo(txt)

在这里插入图片描述

5.10 训练数据集划分

训练的时候,类别必须按顺序来填;检测的时候可以不按顺序来
在这里插入图片描述

5.11 训练自己的数据集

you.yaml和dataset_partitioning.py两个文件的检测类别必须一模一样
在这里插入图片描述

5.12 训练结果解析

混淆矩阵:
在这里插入图片描述
跟置信度相关的FI Score图:
在这里插入图片描述
跟置信度相关的精度的图:

在这里插入图片描述
跟置信度相关的召回率的图:
在这里插入图片描述

PR曲线:
在这里插入图片描述
结果解析:
(从左到右分别是:坐标损失、置信度损失、分类损失、精度、召回)
在这里插入图片描述

5.13 训练好的权重推理结果

exp9;
在这里插入图片描述
exp10:
(图片大小改成608x608)
在这里插入图片描述
exp11:
(图片大小改成32x32)
在这里插入图片描述

5.14 训练核心参数代码讲解

weights——权重文件
cfg——网络模型配置文件
data——数据集配置文件
hyp——训练时的超参文件
epochs——训练轮次
batch-size——训练批次大小
imgsz——输入网络的图片分辨率大小
rect——把图片用灰色补成正方形
resume——从上次打断的训练结果接着训练
nosave——不保存模型,默认保存
noval——只在最后一次进行测试,默认False
noautoanchor——不自动调整anchor框,默认False
evolve——是否进行超参进化,使数值变得更好,默认False
cache——是否提前缓存图片到内存
image-weights——对于那些训练不好的图片,会在下一轮增加一些权重
device——设备。只有一个GPU“default=0”,有两个GPU,想用第二个“default=1”,想用多个“default=01”
multi-scale——是否使用多尺度训练,默认False
single-cls——开启之后,只要有目标都识别不管类别,默认False,轻易不要开启
adam——优化器
workers——dataloader中的最大work数,电脑不是很好的填0或1
project、name——保存的结果
exist-ok——是否重新创建
linear-lr——用于对学习速率进行调整,默认为 False
label-smoothing——标签平滑增强 默认0.0不增强 要增强一般就设为0.1
patience——早停机制,训练到一定的epoch,如果模型效果未提升,就让模型提前停止训练
freeze——使用预训练模型的规定固定权重不进行调整(freeze 10 :意思从第0层到到第10层不训练)
save-period——设置多少个epoch保存一次模型
local_rank——rank为进程编号 -1且gpu=1时不进行分布式 -1且多块gpu使用DataParallel模式

5.15 测试代码参数讲解

conf-thres——object置信度阈值,默认0.25
iou-thres——进行NMS时IOU的阈值,默认0.6

5.16 yolo.py代码讲解

common.py包含卷积结构、跳转链接、SPP(v4)、Concat等

5.17 conv和bottleneck模块代码讲解

在这里插入图片描述

conv:
在这里插入图片描述
在这里插入图片描述

bottleneck:
在这里插入图片描述

5.18 backbone网络模块代码讲解

第一列的-1表示这一层的输入是上一层的输出
第二列的1表示这个模块有几个
第三列表示这层的类型,例如conv(CBL)、Bottleneck
第四列表示输出通道数
第五列表示卷积核的大小
第六列表示步幅S

在这里插入图片描述

5.19 neck和head结构代码讲解

上采样upsamble:
在这里插入图片描述
neck&head:
在这里插入图片描述

5.20 是否佩戴口罩检测项目实战先导

在这里插入图片描述

5.21 是否佩戴口罩检测模型训练

修改model中yolov3.yaml文件,复制文件并重命名为yolov3-mask.yaml,把其中类别数量修改为2(戴口罩、不戴口罩)

在这里插入图片描述

修改data中you.yaml文件,复制文件并重命名为mask.yaml,把其中检测的类别数量修改为2,以及检测的类别名修改为without-mask,mask

在这里插入图片描述

修改dataset_partitioning.py修改类别并划分数据集

在这里插入图片描述

5.22 是否佩戴口罩检测模型推理和测试

2.安装Typora1.9.5

Step1 下载安装包

迅雷链接: https://pan.xunlei.com/s/VOFjtwoq1Y06P0cx0c4sMpvxA1?pwd=y4ia

Step2 安装

解压安装包——管理员身份运行——install for all users——选择安装在合适的盘,安装过程中勾选create a desktop cutshort,安装完成后取消勾选launch pytora,然后点击finish——进入crack文件夹——复制winmm.dll文件,放置到typora所在文件夹——双击运行typora——选择帮助——我的许可证,即可激活。


http://www.kler.cn/a/515578.html

相关文章:

  • ChatGPT大模型极简应用开发-CH2-深入了解 GPT-4 和 ChatGPT 的 API
  • springboot基于微信小程序的商城系统
  • ARM GCC编译器
  • Maven的下载安装配置
  • Java基础 (一)
  • CMake技术细节:解决未定义,提供参数
  • 部门管理新增部门 接收json格式的请求参数 @requestbody
  • JAVA 使用反射比较对象属性的变化,记录修改日志。使用注解【策略模式】,来进行不同属性枚举值到中英文描述的切换,支持前端国际化。
  • Agent群舞,在亚马逊云科技搭建数字营销多代理(Multi-Agent)(下篇)
  • xtermjs重复发送
  • 【面试题Java】单例模式
  • 零售业革命:改变行业的顶级物联网用例
  • 算法随笔_17: 回文数
  • Gartner发布2025年网络治理、风险与合规战略路线图
  • 自然语言处理(NLP)-总览图学习
  • Java中回调函数
  • Laravel 实战:用Carbon筛选最近15分钟内的数据
  • 使用EasyExcel(FastExcel) 的模板填充报Create workbook failure
  • c#调用c++的dll,字符串指针参数问题
  • Flutter 使用 flutter_inappwebview 加载 App 本地 HTML 文件
  • QT:控件属性及常用控件(3)-----输入类控件(正则表达式)
  • TangoFlux 本地部署实用教程:开启无限音频创意脑洞
  • Threejs的学习-几何点线面
  • 神经网络|(一)加权平均法,感知机和神经元
  • Linux 切换到 Root 用户的方式及差异详解
  • Vue平台开发三——项目管理页面