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

server/2025/1/23 1:27:35/

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——选择帮助——我的许可证,即可激活。


http://www.ppmy.cn/server/160614.html

相关文章

PHP语言的文件操作

PHP语言的文件操作 引言 在现代Web开发中,文件操作是一个不可或缺的技能。PHP作为一种广泛使用的服务器端编程语言,提供了丰富的文件操作函数,使得开发人员能够轻松地进行文件创建、读取、写入、删除和修改等操作。本文将深入探讨PHP语言中…

vue3使用音频audio标签

文章目录 一、背景二、页面三、标签介绍四、代码五、代码说明场景1&#xff1a;针对加载固定格式的比如MP3文件&#xff0c;可直接使用\<audio>标签场景2&#xff1a;针对播放告警内容&#xff0c;比如中文或者英文词条情况 一、背景 项目使用vue3&#xff0c;需求针对告…

stm32 L051 adc配置及代码实例解析

一 cude的设置&#xff1a; 1. 接口的基本设置&#xff1a; 2. 参数的设置&#xff1a; 二 代码的逻辑&#xff1a; 1. 上面的直接生成代码&#xff0c;然后使用下面源码即可读到adc的数据&#xff1a; void adc_battery_start(void) {uint32_t ADC_value 0;HAL_ADC_Start(&…

nss刷题3

[SWPUCTF 2022 新生赛]webdog1__start level1&#xff1a; 打开环境后什么也&#xff0c;没有&#xff0c;查看源码&#xff0c;看到第一关是MD5值&#xff0c;要get传参web&#xff0c;然后web的值的MD5和它原来值相等&#xff0c;0e开头的字符在php中都是0&#xff0c;传入…

Spring Boot 3.4.x 和 Micrometer 2.0 的结合 案例 以及使用方法

Spring Boot 3.4.x 和 Micrometer 2.0 的结合&#xff0c;主要是为了更好地进行应用性能监控。Micrometer 是一个应用性能监控工具&#xff0c;它可以与 Spring Boot 集成&#xff0c;提供一个统一的度量系统&#xff0c;并与各种监控系统&#xff08;如 Prometheus, Graphite,…

【鸿蒙】0x02-LiteOS-M基于Qemu RISC-V运行

OpenHarmony LiteOS-M基于Qemu RISC-V运行 系列文章目录更新日志OpenHarmony技术架构OH技术架构OH支持系统类型轻量系统&#xff08;mini system&#xff09;小型系统&#xff08;small system&#xff09;标准系统&#xff08;standard system&#xff09; 简介环境准备安装QE…

react19新API之use()用法总结

React use() Hook 使用指南 概述 use() 是 React 19 引入的新 Hook&#xff0c;它允许你在组件内部直接使用 Promise、Context 和其他可订阅的值。它是一个更通用的数据获取和订阅机制。 基本语法 const value use(resource);主要用途 1. Promise 处理 function UserDet…

Android开发,待办事项提醒App的设计与实现(个人中心页)

文章目录 1. 编写UI布局2. 实现逻辑3. 运行效果图3. 关于作者其它项目视频教程介绍 Android开发&#xff0c;待办事项提醒App的设计与实现&#xff1a; https://blog.csdn.net/jky_yihuangxing/article/details/145277956?spm1001.2014.3001.5501 1. 编写UI布局 fragment_mi…