`
wuzhihao7788
  • 浏览: 2408 次
  • 性别: Icon_minigender_1
最近访客 更多访客>>
社区版块
存档分类
最新评论

一个目标检测框架同时搞定YOLOv5、YOLOv4、PPYOLO和YOLOv3

阅读更多

传送门:
wuzhihao7788/yolodet-pytorch

YOLODet-PyTorch

YOLODet-PyTorch是端到端基于pytorch框架复现yolo最新算法的目标检测开发套件,旨在帮助开发者更快更好地完成检测模型的训练、精度速度优化到部署全流程。YOLODet-PyTorch以模块化的设计实现了多种主流YOLO目标检测算法,并且提供了丰富的数据增强、网络组件、损失函数等模块。

目前检测库下模型均要求使用PyTorch 1.5及以上版本或适当的develop版本。

内容

简介

特性:

  • 模型丰富:

    YOLODet提供了丰富的模型,涵盖最新YOLO检测算法的复现,包含YOLOv5、YOLOv4、PP-YOLO、YOLOv3等YOLO系列目标检测算法。

  • 高灵活度:

    YOLODet通过模块化设计来解耦各个组件,基于配置文件可以轻松地搭建各种检测模型。

支持的模型:

更多的Backone:

  • DarkNet
  • CSPDarkNet
  • ResNet
  • YOLOv5Darknet

数据增强方法:

  • Mosaic
  • MixUp
  • Resize
  • LetterBox
  • RandomCrop
  • RandomFlip
  • RandomHSV
  • RandomBlur
  • RandomNoise
  • RandomAffine
  • RandomTranslation
  • Normalize
  • ImageToTensor
  • 相关配置使用说明请参考【这里

损失函数支持:

  • bbox loss (IOU,GIOU,DIOU,CIOU)
  • confidence loss(YOLOv4,YOLOv5,PP-YOLO)
  • IOU_Aware_Loss(PP-YOLO)
  • FocalLoss

训练技巧支持:

  • 指数移动平均
  • 预热
  • 梯度剪切
  • 梯度累计更新
  • 多尺度训练
  • 学习率调整:Fixed,Step,Exp,Poly,Inv,Consine
  • Label Smooth
  • 强烈说明 通过实验对比发现YOLOv5的正负样本划分定义和损失函数定义,使得模型收敛速度较快,远超原yolo系列对正负样本的划分和损失定义。对于如果卡资源不充足,想在短时间内收敛模型,可采用yolov5的正负样本划分和损失函数定义,相关参数为yolo_loss_type=yolov5
  • 额外补充 YOLOv5对于正样本的定义:在不同尺度下只要真框和给定锚框的的比值在4倍以内,该锚框即可负责预测该真值框。并根据gx,gy在grid中心点位置的偏移量会额外新增两个grid坐标来预测。通过这一系列操作,增加了正样本数量,加速模型收敛速度。而YOLO原系列对于真框,在不同尺度下只有在该尺度下IOU交并集最大的锚框负责预测该真框,其他锚框不负责,所以由于较少的正样本量,模型收敛速度较慢。

扩展特性:

  • [x] Group Norm
  • [x] Modulated Deformable Convolution
  • [x] Focus
  • [x] Spatial Pyramid Pooling
  • [x] FPN-PAN
  • [x] coord conv
  • [x] drop block
  • [x] SAM

代码结构说明

yolodet-pytorch
├──cfg              #模型配置文件所在目录(yolov5,yolov4等)
├──tools            #工具包,包含训练代码,测试代码和推断代码入口。
├──yolodet          #YOLO检测框架核心代码库
│  ├──apis          #提供检测框架的训练,测试和推断和模型保存的接口
│  ├──dataset       #包含DateSet,DateLoader和数据增强等通用方法
│  ├──models        #YOLO检测框架的核心组件集结地
│  │  ├──detectors  #所有类型检测器集结地
│  │  ├──backbones  #所有骨干网络集结地
│  │  ├──necks      #所有necks集结地
│  │  ├──heads      #heads集结地
│  │  ├──loss       #所有损失函数集结地
│  │  ├──hooks      #hooks集结地(学习率调整,模型保存,训练日志,权重更新等)
│  │  ├──utils      #所有工具方法集结地

安装说明

安装和数据集准备请参考 INSTALL.md 。

快速开始

请参阅 GETTING_STARTED.md 了解YOLODet的基本用法。

预训练模型

查看预训练模型请点击【这里

分享到:
评论

相关推荐

    Yolov5目标检测web部署flask框架

    本项目将详细介绍如何利用Yolov5和Flask构建一个实时目标检测的Web应用程序。 首先,我们需要理解Yolov5的核心概念。YOLO(You Only Look Once)是一个实时目标检测系统,由Joseph Redmon等人提出。Yolov5是其最新...

    基于VUE开发前端框架,在WEB端部署YOLOv5目标检测模型.zip

    使用VUE框架开发一个简洁易用的WEB端目标检测应用。 部署YOLOv5模型,实现实时目标检测功能。 优化模型性能,确保在WEB端流畅运行。 设计友好的用户界面,提升用户体验。 项目开发: 使用VUE框架搭建项目的基本结构...

    yolov5-master_目标检测_yolov5_yolov5detect_yolov5算法_yolov5evolve_

    总的来说,YOLOv5是一个强大的目标检测工具,它的高效性、易用性和可扩展性使其在学术研究和工业应用中都备受欢迎。通过深入理解和实践"yolov5-master"项目,开发者不仅可以掌握先进的目标检测技术,还能进一步探索...

    基于yolov5和pyqt的可视化目标检测支持摄像头、视频和图像检测

    《基于yolov5和PyQT5的可视化目标检测系统:摄像头、视频和图像检测的全方位解析》 在计算机视觉领域,目标检测是一项至关重要的任务,它能够识别并定位图像中的特定对象。近年来,YOLO(You Only Look Once)系列...

    基于Yolov5的Vue前端目标检测和训练可视化系统源码.zip

    这是一个关于使用Yolov5进行目标检测的Vue前端项目的源码包。Yolov5是一种流行的深度学习模型,专门用于实时对象检测,而Vue.js是一个前端JavaScript框架,用于构建用户界面。这个项目将两者结合,提供了在前端进行...

    yolov3-yolov4-matlab-master.zip

    YOLO(You Only Look Once)...总之,这个压缩包提供了在MATLAB中实现YOLOv3和YOLOv4的代码,为学习者提供了一个实践平台,通过更改训练样本,可以适应不同的目标检测任务,是深入理解YOLO算法和进行相关研究的好材料。

    yolov5小目标检测

    无论是学术研究还是实际应用,YOLOv5都是一个值得深入学习和使用的优秀目标检测框架。如果你需要在自己的项目中实现小目标检测,理解和掌握YOLOv5的相关知识将极大地提升你的工作效率和模型性能。

    yolov5目标检测多线程Qt界面

    而将Yolov5与Qt结合,构建一个多线程的用户界面,可以实现更加流畅的实时检测体验。本文将深入探讨如何在Qt环境中,利用多线程技术来运行Yolov5模型,以实现高效的视频流目标检测。 首先,我们需要了解Qt框架。Qt是...

    yolov5-基于yolov5+pyqt的甲骨文图形化检测项目.zip

    而将Yolov5与PyQt结合,构建甲骨文图形化检测项目,不仅实现了对图像中目标的快速定位,更提供了友好的用户界面,使得这项技术更加易于应用和推广。 Yolov5全称为You Only Look Once version 5,是由Joseph Redmon...

    基于Yolov5的Vue前端目标检测和训练可视化系统.zip

    该项目是基于Yolov5和Vue.js开发的一个前端目标检测与训练可视化系统,适用于工作项目、毕业设计或课程设计等用途。源代码已经过助教老师的测试,确保能够正常运行,用户可以放心下载并使用。 Yolov5是You Only ...

    yolov5-使用yolov5进行手写单词检测+识别.zip

    总结来说,使用YOLOv5进行手写单词检测与识别是一个涉及深度学习、目标检测、图像预处理和OCR等多个领域的综合项目。通过理解和应用这些技术,我们可以构建出高效、准确的系统,实现对手写文字的有效自动化处理。在...

    YOLOv5行人跌倒检测+训练好的模型+pyqt界面+数据集

    1、yolov5行人摔倒检测,包含yolov5s和yolov5m两种训练好的行人摔倒检测权重,以及PR曲线,loss曲线等等,在一千多张行人摔倒检测数据集中训练得到的权重,有pyqt界面,目标类别为fall 共1个类别,并附1000多张行人...

    基于YOLOv5的火灾检测

    YOLOv5是一种高效、准确的目标检测框架,尤其在实时应用中表现出色。"基于YOLOv5的火灾检测"项目旨在利用这个先进的计算机视觉技术来实现对火焰和烟雾的有效识别,从而预防和减少火灾事故的发生。在这个压缩包文件中...

    YOLOv5鸟类检测训练模型 yolov5-6.0-detect_bird-bird_dataset.zip

    YOLOv5是一种高效且准确的目标检测框架,全称为"You Only Look Once"的第五代版本。这个框架在计算机视觉领域广泛应用于物体识别和定位。在本案例中,我们讨论的是一个针对鸟类检测训练的YOLOv5模型,该模型已经在数...

    Yolov5-Roaddamage-Detecting-main_道路裂缝检测_yolov5_Yolov5-Roaddamage

    Yolov5-Roaddamage项目,作为一款专用于道路裂缝检测的深度学习模型,通过PyTorch框架实现了高效且准确的自动检测功能。本文将深入探讨该模型的工作原理、实施过程以及其在实际应用中的价值。 一、Yolov5简介 ...

    yolov5 鸟类检测 bird鸟类检测数据集.rar

    总的来说,这个数据集提供了一个训练和测试YOLOv5进行鸟类检测的良好平台,对于研究者和开发者来说,它是进一步理解目标检测算法、优化模型性能和探索计算机视觉应用的一个宝贵资源。通过不断迭代和优化,我们可以...

    使用yolov5,dnn和卡尔曼滤波(kalman)进行目标跟踪和预测

    3. **初始化跟踪器**:当检测到新的目标时,创建一个新的卡尔曼滤波器实例,用初始的边界框作为初始状态。 4. **卡尔曼滤波**:在后续帧中,滤波器根据上一帧的状态和当前检测结果更新状态估计。 5. **预测与更新**...

    C# OpenCvSharp DNN 部署YOLOV6目标检测 源码

    在本文中,我们将深入探讨如何使用C#编程语言结合OpenCvSharp库和深度学习框架DNN部署YOLOV6目标检测模型。YOLO(You Only Look Once)是一种高效的实时对象检测系统,而OpenCvSharp是OpenCV的C#版本,提供了丰富的...

    yolov3、yolov4、yolov5框架训练数据-1400张车子训练集合.rar

    通过在YOLOv3、YOLOv4或YOLOv5框架下训练,可以得到一个识别度超过98%的车辆检测模型,这意味着模型在大多数情况下能准确地定位并识别车辆。 在实际应用中,这样的模型可以用于智能交通监控、自动驾驶汽车的感知...

    基于YOLOV5实现的车道线检测、UI实现

    标题中的“基于YOLOV5实现的车道线检测、UI实现”表明了这是一个关于使用YOLOv5(You Only Look Once版本5)深度学习模型进行车道线检测,并且结合用户界面(UI)进行实时或交互式应用的项目。YOLOv5是一种流行的...

Global site tag (gtag.js) - Google Analytics