YOLOv1YOLOv2YOLOv3_0">1.学习哔哩哔哩《YOLOv1、YOLOv2、YOLOv3目标检测算法原理与实战》
炮哥带你学视频链接
YOLOv3_2">第5章 YOLOv3实战
YOLOv3_3">5.1 YOLOv3实战先导
5.2 pycharm与anaconda的安装
之前已经安装过了,见Pytorch框架与经典卷积神经网络与实战第一天|安装PyCharm&Anaconda,配置环境,写爱心代码
5.3 python环境安装
5.4 pytorch环境安装
安装cuda驱动见Pytorch框架与经典卷积神经网络与实战第四天|PyTorch框架与编程环境安装
YOLOv3_15">5.5 YOLOv3代码背景介绍
本课程用的是YOLOv3的9.6版本
YOLOv3_21">5.6 YOLOv3环境安装
下载的时候注意要在红框框出的文件下一级,不能是文件中的文件的文件
检查环境是否配置成功
YOLOv3_31">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——选择帮助——我的许可证,即可激活。