草庐IT

Week9-YOLOv

全部标签

YOLOv5改进训练过程中置信度损失上升

        最近需要对yolov5网络框架进行改进,改进训练的过程当中发现了一个奇怪的问题。        从tensorboard的图像过程中看出,bbox_loss,cls_loss在训练预测之后正常下降,当时obj_loss置信度损失值在上升。这可把我给困住了,各方面都没有问题,困扰好久。       总结分析出三个主要原因:1.模型计算量过大,出现过拟合的现象,需要对网络框架进行削减,降低网络模型复杂度,或者采用更进一步的数据增强方式。2.obj-loss的正负样本划分出现了极不平衡的问题。3.学习率以及optimizer的选择出现问题,需要进行更换。       按照以上分析原因

Yolov5 激活函数

 这个activation.py文件,这个文件是Yolov5中使用的全部激活函数,不同版本可能里面的函数命名方式不一样,但是实现原理是一样的。Swish函数表达式函数图像源码classSiLU(nn.Module):#export-friendlyversionofnn.SiLU()@staticmethoddefforward(x):returnx*torch.sigmoid(x)#Swish函数f(x)=x*sigmoid(x)classHardswish(nn.Module):#export-friendlyversionofnn.Hardswish()@staticmethoddeff

基于OpenVNO部署YOLOv5-seg实时实例分割模型

1.简介本文将介绍在基于OpenVINO在英特尔独立显卡上部署YOLOv5实时实例分割模型的全流程,并提供完整范例代码供读者使用。YOLOv5是AI开发者友好度最佳的框架之一,与其它YOLO系列相比:工程化水平好,工程应用时“坑”少文档详实友好,易读易懂既容易在用户的数据集上重训练又容易在不同的平台上进行部署社区活跃度高(截至2023-1-21有34.7kGitHub星)项目演进速度快默认支持OpenVINO部署在典型行业(制造业、农业、医疗、交通等)有广泛应用。2022年11月22日,YOLOv5v7.0版正式发布,成为YOLO系列中第一个支持实时实例分割(RealTimeInstanceS

【目标检测】YOLOv5-7.0:加入实例分割

前言前段时间,YOLOv5推出7.0版本,主要更新点是在目标检测的同时引入了实例分割。目前,YOLOv5团队已经转向了YOLOv8的更新,因此,7.0版本大概率是YOLOv5的最终稳定版。更新信息官方公告中给出了YOLOv5-7.0的更新要点:推出了基于coco-seg的实例分割预训练模型支持PaddlePaddle模型导出自动缓存机制:使用pythontrain.py--cacheram可以自动扫描可用内存,并且为数据集的加载进行分配加入Comet日志记录和可视化集成实例分割实践下载代码gitclonehttps://github.com/ultralytics/yolov5.git-bv7

【YOLO系列】YOLOv8算法(尖端SOTA模型)

前言回顾在这里粗略回顾一下YOLOv5,这里直接提供YOLOv5的整理的结构图吧Backbone:CSPDarkNet结构,主要结构思想的体现在C3模块,这里也是梯度分流的主要思想所在的地方;PAN-FPN:双流的FPN,必须香,也必须快,但是量化还是有些需要图优化才可以达到最优的性能,比如cat前后的scale优化等等,这里除了上采样、CBS卷积模块,最为主要的还有C3模块(记住这个C3模块哦);Head:CoupledHead+Anchor-base,毫无疑问,YOLOv3、YOLOv4、YOLOv5、YOLOv7都是Anchor-Base的,后面会变吗?Loss:分类用BECLoss,回

YOLOV5训练时P、R、mAP等值均为0的问题

当YOLOv5的训练P、R、mAP等指标为0时,通常有以下一些原因:数据集质量不佳:检查数据集中是否存在较大的类别不平衡或者太多的噪声。可能需要重新清理数据集以确保标签正确且具有可解释性。学习率过高或过低:首先尝试将学习率降低到一个更合适的水平,并考虑使用学习率调度程序来优化训练过程。模型过于简单:如果模型过于简单,则很难从样本中学习到有效的特征。考虑增加网络的深度和宽度,或使用更复杂的网络结构。训练时间太短:如果训练时间太短,则模型可能没有足够的时间来收敛到最佳状态。尝试在训练期间增加迭代次数并监视P、R、mAP等指标变化。预处理步骤出现问题:确保数据预处理流程正确,例如确保使用正确的缩放方

YOLOv8训练自己的分割数据集

UltralyticsYOLOv8 是由 Ultralytics 开发的一个前沿的 SOTA 模型。它在以前成功的 YOLO 版本基础上,引入了新的功能和改进,进一步提升了其性能和灵活性。YOLOv8 基于快速、准确和易于使用的设计理念,使其成为广泛的目标检测、图像分割和图像分类任务的绝佳选择。YOLOv5自从2020年发布以来,一直是没有论文的。而YOLOv8(YOLOv5团队)这次首次承认将先发布arXiv版本的论文(目前还在火速撰写中)。1.环境安装YOLOv8代码链接:GitHub-ultralytics/ultralytics:YOLOv8🚀inPyTorch>ONNX>CoreML

快速玩转Yolov5目标检测—没有好的显卡也能玩(二)

    上篇  快速玩转Yolov5目标检测—没有好的显卡也能玩(一)已经将YoloV5在我的笔记本电脑上快速跑起来了,因为电脑显卡一般,所以运行的CPU版本,从推理结果来看,耗时还是蛮高的,如下图,平均每帧0.45秒左右:理论上这已经能满足很多场景下的需求了,比如明火报警、不带安全帽报警等等,不过还是想试下在GPU下的推理表现,并且后面还想继续玩下训练自己的检测模型。下面就详细说说整个躺坑的过程,过程中也让我找到了一种在手头没有好的显卡的情况下如何能够比较快速低成本得到好显卡的方法。一、先了解了下显卡的基本知识   破产之选:GTX1050TI(4GB),我的显卡:NVIDIANVS5400

Python——基于YOLOV8的车牌识别(源码+教程)

目录一、前言二、完成效果三、 项目包四、运行项目 (教程)一、前言YOLOv8+LPRNet车牌定位与识别https://www.bilibili.com/video/BV1vk4y1E7MZ/最近做了有一个车牌识别的小需求,今天完成了,在此记录和分享首先,我去了GitHub上面找开源项目,就找到了3个大佬的项目,于是融合一下就完成了基于YOLOV8的车牌识别的项目参考项目:GitHub-mmastererliu/master_liuContributetommastererliu/master_liudevelopmentbycreatinganaccountonGitHub.https:/

利用python版tensorRT导出engine【以yolov5为例】

环境说明:tensorRT:8.2.4.2CUDA:10.2pytorch:1.7显卡:NVIDIA1650Windows10python3.7另一篇文章中写过C++版的trt推理。本篇文章是python版本的trtyolov5推理。构建engine一般有两种方式。方式1:torch模型->wts(序列化网络)->engine->推理方式2:torch模型->onnx->engine->推理第一种方式如果网络结构简单,在定义网络构建engine的时候还可以,但网络复杂的情况就麻烦了,写网络的时候还容易出错。第二种方式也是很多人常用的方法,转onnx再转engine。转onnx就比较容易了,而转