草庐IT

【目标检测】YOLOv5-PyQT可视化例程开发

前言花了几天功夫做了一个YOLOv5的PyQT可视化程序,主要针对多幅图片训练、自动标注和检测展示。涉及正在进行的项目,暂时不开源。在开发过程中,踩了不少坑,这里简单做一些记录。项目使用到的开源代码:YOLOv5(5.0+6.0):https://github.com/ultralytics/yolov5自动标注程序:https://github.com/cnyvfang/labelGo-Yolov5AutoLabelImg效果演示整体效果演示如下:交互式目标检测软件演示遇到的问题和解决方案ui文件转py使用QtDesigner设计的ui文件,可以通过PyUIC自动生成对应的py文件。生成的文

YOLOv5中的SPP/SPPF结构详解

深度学习入门小菜鸟,希望像做笔记记录自己学的东西,也希望能帮助到同样入门的人,更希望大佬们帮忙纠错啦~侵权立删。目录一、SPP的应用的背景二、SPP结构分析三、SPPF结构分析四、YOLOv5中SPP/SPPF结构源码解析(内含注释分析)一、SPP的应用的背景在卷积神经网络中我们经常看到固定输入的设计,但是如果我们输入的不能是固定尺寸的该怎么办呢?通常来说,我们有以下几种方法:(1)对输入进行resize操作,让他们统统变成你设计的层的输入规格那样。但是这样过于暴力直接,可能会丢失很多信息或者多出很多不该有的信息(图片变形等),影响最终的结果。(2)替换网络中的全连接层,对最后的卷积层使用gl

YOLOv5中的SPP/SPPF结构详解

深度学习入门小菜鸟,希望像做笔记记录自己学的东西,也希望能帮助到同样入门的人,更希望大佬们帮忙纠错啦~侵权立删。目录一、SPP的应用的背景二、SPP结构分析三、SPPF结构分析四、YOLOv5中SPP/SPPF结构源码解析(内含注释分析)一、SPP的应用的背景在卷积神经网络中我们经常看到固定输入的设计,但是如果我们输入的不能是固定尺寸的该怎么办呢?通常来说,我们有以下几种方法:(1)对输入进行resize操作,让他们统统变成你设计的层的输入规格那样。但是这样过于暴力直接,可能会丢失很多信息或者多出很多不该有的信息(图片变形等),影响最终的结果。(2)替换网络中的全连接层,对最后的卷积层使用gl

YOLOV5-断点训练/继续训练

YOLOV5-断点训练/继续训练情况:1.训练过程中中断了,继续训练2.训练完了,但是未收敛,在这个基础上,还想用这个权重、学习率等参数继续训练多一些批次1.训练过程中中断了,继续训练断电、或者什么原因中断了,比如设定epoch为200,但是在90这里中断了,想从断点这里继续训练到200个epoch直接在trainds.py设置参数–resume的defualt=True即可(在代码517行附近)1.parser.add_argument('--resume',nargs='?',const=True,default=True,help='resumemostrecenttraining')2

YOLOV5-断点训练/继续训练

YOLOV5-断点训练/继续训练情况:1.训练过程中中断了,继续训练2.训练完了,但是未收敛,在这个基础上,还想用这个权重、学习率等参数继续训练多一些批次1.训练过程中中断了,继续训练断电、或者什么原因中断了,比如设定epoch为200,但是在90这里中断了,想从断点这里继续训练到200个epoch直接在trainds.py设置参数–resume的defualt=True即可(在代码517行附近)1.parser.add_argument('--resume',nargs='?',const=True,default=True,help='resumemostrecenttraining')2

【YOLOv5-6.x】设置可学习权重结合BiFPN(Concat操作)

文章目录前言修改yaml文件(以yolov5s为例)修改common.py修改yolo.py修改train.py1.向优化器中添加BiFPN的权重参数2.查看BiFPN_Concat层参数更新情况前言这篇博客【魔改YOLOv5-6.x(中)】:加入ACON激活函数、CBAM和CA注意力机制、加权双向特征金字塔BiFPN简要介绍了BiFPN的原理,以及YOLOv5作者如何结合BiFPN。之前尝试过设置可学习的权重参数,将不同的分支进行Add操作,具体可以参考这篇博客:【YOLOv5-6.x】设置可学习权重结合BiFPN(Add操作)。本文将尝试直接进行Concat操作来结合BiFPN。 修改ya

【YOLOv5-6.x】设置可学习权重结合BiFPN(Concat操作)

文章目录前言修改yaml文件(以yolov5s为例)修改common.py修改yolo.py修改train.py1.向优化器中添加BiFPN的权重参数2.查看BiFPN_Concat层参数更新情况前言这篇博客【魔改YOLOv5-6.x(中)】:加入ACON激活函数、CBAM和CA注意力机制、加权双向特征金字塔BiFPN简要介绍了BiFPN的原理,以及YOLOv5作者如何结合BiFPN。之前尝试过设置可学习的权重参数,将不同的分支进行Add操作,具体可以参考这篇博客:【YOLOv5-6.x】设置可学习权重结合BiFPN(Add操作)。本文将尝试直接进行Concat操作来结合BiFPN。 修改ya

yolov5的head修改为decouple head

yolov5的head修改为decoupleheadyolox的decoupledhead结构本来想将yolov5的head修改为decoupledhead,与yolox的decouplehead对齐,但是没注意,该成了如下结构:感谢少年肩上杨柳依依的指出,如还有问题欢迎指出1.修改models下的yolo.py文件中的DetectclassDetect(nn.Module):stride=None#stridescomputedduringbuildonnx_dynamic=False#ONNXexportparameterdef__init__(self,nc=80,anchors=(),

yolov5的head修改为decouple head

yolov5的head修改为decoupleheadyolox的decoupledhead结构本来想将yolov5的head修改为decoupledhead,与yolox的decouplehead对齐,但是没注意,该成了如下结构:感谢少年肩上杨柳依依的指出,如还有问题欢迎指出1.修改models下的yolo.py文件中的DetectclassDetect(nn.Module):stride=None#stridescomputedduringbuildonnx_dynamic=False#ONNXexportparameterdef__init__(self,nc=80,anchors=(),

yolov5 loss函数理解

最近整理了一下yolov5loss的函数,关键点都在代码段里YOLOv5的loss主要由三个部分组成:1、Classesloss,分类损失,采用BCEloss,只计算正样本的分类损失。2、Objectnessloss,obj置信度损失,采用BCEloss,计算的是所有样本的obj损失。注意这里的obj指的是网络预测的目标边界框与GTBox的CIoU。3、Locationloss,定位损失,采用CIoUloss,只计算正样本的定位损失。classComputeLoss:#Computelossesdef__init__(self,model,autobalance=False):super(Co