yoloair,一个基于pytorch的yolo工具箱...

机器学习算法与Python学习-公众号 机器学习算法与Python学习-公众号     2022-10-23     626

关键词:

点击 机器学习算法与Python学习选择加星标

精彩内容不迷路

机器之心编辑部

YOLOAir 算法代码库是一个基于 PyTorch 的 YOLO 系列目标检测开源工具箱。使用统一模型代码框架、统一应用方式、统一调参,该库包含大量的改进模块,可使用不同网络模块来快速构建不同网络的检测模型。基于 YOLOv5 代码框架,并同步适配 YOLOv5(v6.0/v6.1 更新) 部署生态。用户在使用这个项目之前, 可以先了解 YOLOv5 库。

该项目包含大量的改进方式,并能降低改进难度,改进点包含 Backbone、Neck、Head、注意力机制、IoU 损失函数、多种 NMS、Loss 损失函数、自注意力机制系列、数据增强部分、激活函数等部分,更多内容可以关注 YOLOAir 项目的说明文档。项目同时附带各种改进点原理及对应的代码改进方式教程,用户可根据自身情况快速排列组合,在不同的数据集上实验, 应用组合改进点写论文!

模块组件化:帮助用户自定义快速组合 Backbone、Neck、Head,使得网络模型多样化,使得改进检测算法、工程算法部署落地更便捷,构建更强大的网络模型。

支持YOLOv5、YOLOv7、YOLOX、YOLOR、YOLOv3、YOLOv4、Scaled_YOLOv4、Transformer等算法网络模型进行改进。

项目地址:  https://github.com/iscyy/yoloair

项目介绍

主要特性

持续更新支持更多的 YOLO 系列算法模型,作者对可以进行改进的部分进行了分类:

支持更多 Backbone

  • CSPDarkNet 系列

  • ResNet 系列

  • RegNet 系列

  • RepBlock 系列

  • ShuffleNet 系列

  • Ghost 系列

  • MobileNet 系列

  • ConvNext 系列

  • RepLKNet 系列

  • EfficientNet

  • CNN 和 Transformer 混合:BoTNet、CoTNet、Acmix

  • 自注意力机制 Transformer:Transformer、Swin

支持更多 Neck

  • neck 包含 FPN、PANet、BiFPN 等主流结构,同时可以添加和替换任何模块

支持更多检测头 Head

  • YOLOv5 Head 检测头

  • YOLOX 的解耦合检测头 Decoupled Head

  • 自适应空间特征融合检测头 ASFF Head

  • YOLOv7 检测头 IDetect Head、IAuxDetect Head 等

支持更多即插即用的注意力机制

  • 在网络任何部分即插即用式使用注意力机制

  • SE、CBAM、CA、GAM、ECA 等多种主流注意力机制

  • Self Attention

  • Contextual Transformer

  • Bottleneck Transformer

  • S2-MLP Attention

  • SK Attention

  • CBAM Attention

  • SE Attention

  • Coordinate attention

  • BAM Attention

  • GAM attention

  • ECA Attention

  • Shuffle Attention

  • DANet Attention

  • 持续更新中

支持更多损失函数

  • CIoU、DIoU、GIoU、EIoU、SIoU、alpha IOU 等损失函数

支持更多 NMS

  • NMS、Merge-NMS、DIoU-NMS、Soft-NMS、CIoU-NMS、DIoU-NMS、GIoU-NMS、EIoU-NMS、SIoU-NMS、Soft-SIoUNMS、Soft-CIoUNMS、Soft-DIoUNMS、Soft-EIoUNMS、Soft-GIoUNMS 等持续更新中

支持更多数据增强

  • Mosaic、Copy paste、Random affine(Rotation, Scale, Translation and Shear)、MixUp、Augment HSV(Hue, Saturation, Value,Random horizontal flip)

支持更多 Loss

  • ComputeLoss、ComputeNWDLoss、ComputeXLoss、ComputeLossAuxOTA(v7)、ComputeLossOTA(v7) 等 

  • 支持加载 YOLOv3、YOLOv4、YOLOv5、YOLOv7、YOLOR 等网络的官方预训练权重进行迁移学习

  • 支持 Anchor-base 检测器和 Anchor-Free 检测器

内置多种网络模型模块化组件

  • Conv, GhostConv, Bottleneck, GhostBottleneck, SPP, SPPF, DWConv, MixConv2d, DWT, BottleneckCSP2SAM, VoVCSP 等

以上组件模块使用统一模型代码框架、统一任务形式、统一应用方式,模块组件化可以帮助用户自定义快速组合 Backbone、Neck、Head,使得网络模型多样化,助力科研改进检测算法,构建更强大的网络模型。

内置改进网络模型配置支持

包括基于 YOLOv5 的其他几十种改进网络结构等算法模型的 yaml 配置文件汇总,使用 YOLOv5 网络作为示范,可以将这些模块无缝加入到 YOLOv7、YOLOX、YOLOR、YOLOv4、Scaled_YOLOv4、YOLOv3 等系列 YOLO 算法模块。

用户可自行基于提供的网络模块,进行自定义改进网络。

YOLOAir 算法库汇总了多种主流 YOLO 系列检测模型,一套代码汇集多种模型结构:

  • 内置 YOLOv5 模型网络结构

  • 内置 YOLOv7 模型网络结构

  • 内置 YOLOX 模型网络结构

  • 内置 YOLOR 模型网络结构

  • 内置 Scaled_YOLOv4 模型网络结构

  • 内置 YOLOv4 模型网络结构

  • 内置 YOLOv3 模型网络结构

  • TPH-YOLO 模型网络结构

  • YOLOv5-Lite 模型网络结构

  • YOLO-FaceV2 模型网络结构

  • PicoDet 模型网络结构

  • 以及其他部分改进模型

以上多种检测算法网络模型使用统一代码框架,集成在 YOLOAir 代码库中,统一应用方式。便于科研者用于论文算法模型改进,模型对比,实现网络组合多样化,包含轻量化模型和精度更高的模型,根据场景合理选择,在精度和速度者两个方面取得平衡。同时该库支持解耦不同的结构和模块组件,让模块组件化,通过组合不同的模块组件,用户可以根据不同数据集或不同业务场景自行定制化构建不同检测模型。

使用

代码遵循 YOLOv5 设计原则,使用方式基本和 YOLOv5 框架对齐。

安装

在 Python>=3.7.0 的环境中克隆版本仓并安装 requirements.txt,包括 PyTorch>=1.7。

$ git clone https://github.com/iscyy/yoloair.git  # 克隆
$ cd yoloair
$ pip install -r requirements.txt  # 安装

训练

$ python train.py --data coco128.yaml --cfg configs/yolov5/yolov5s.yaml

推理

detect.py 在各种数据源上运行推理, 并将检测结果保存到 runs/detect 目录。

$ python detect.py --source img.jpg

融合

如果使用不同的模型推理数据集,可以使用 wbf.py 通过加权框融合来集成结果。在 wbf.py 中设置 img 路径和 txt 路径。

$ python tools/wbf.py

教程

基本教程与 YOLOv5 框架同步,

其他教程如下 (持续更新中…)

整理不易,三连

yoloair,一个基于pytorch的yolo工具箱...

...thon学习,选择加星标精彩内容不迷路机器之心编辑部YOLOAir算法代码库是一个基于PyTorch的YOLO系列目标检测开源工具箱。使用统一模型代码框架、统一应用方式、统一调参,该库包含大量的改进模块,可使用不同网络... 查看详情

基于pytorch的yolo稀疏训练与模型剪枝

基于pytorch的yolo稀疏训练与模型剪枝数据集+代码下载地址:下载地址参数数量模型体积Flops前向推断耗时(2070TI)mAPBaseline(416)61.5M246.4MB32.8B15.0ms0.7692Prune(416)10.9M43.6MB9.6B7.7ms0.7722Finetune(416)同上同上同上同上0.7750加入稀疏正 查看详情

yoloair一款面向科研小白的yolo项目|包含大量改进方式教程|适用yolov5,yolov7,yolox,yolov4,yolor,yolov3,transformer等算法(代码片段)

...改进🏆、不同数据集涨点🏆、创新点改进🏆YOLOAir一款面向科研的YOLO项目统一使用yolov5代码框架,结合不同模块来构建不同的YOLO目标检测模型,包含大量改进方式教程,改进点包含Backbone、Neck、Head、注意力机制、... 查看详情

yolov3

...篇 Reference :convolutional-networksSeries:YOLOobjectdetectorinPyTorch手撸篇 Reference:Pytorch版github上面基于PyTorch实现得较好的Yolov3有如下repo:ayooshkathuria/pytorch-yolo-v3:1124star,不支持训练;eriklindernoren/PyTorch-YOLOv3:807star,"Dataaugment... 查看详情

YOLO 的输出是啥?

...检测Android应用程序中的车牌。所以我在GoogleColab中训练了一个YOLOv3和一个YOLOv4模型。我使用wonderfullprojectofHunglc007将这两个模型转换为TensorFlowLite,我还验证了它们是否正常工 查看详情

pytorch深度学习50篇·······第五篇:yolo-----yolov3v4v5的模型结构(代码片段)

第四篇,我们已经简单的过了一个segmentation网络,下面我们要进入一个相对要复杂一点的系列了,它也是用于目标检测的,与segmentation不同的是,这个网络会回归出目标的位置和大小。YOLO的全程是YouOnlyLookOnce&... 查看详情

pytorch深度学习50篇·······第五篇:yolo-----数据标签的准备(代码片段)

兄弟们,朋友们,为期两周的驻场生活结束了,没准说不定啥时候有要去,所以抓紧把YOLO篇搞定,驻场可是太累了,早6晚9,这和早9晚6可是一个天上一个地下啊,好了,废话不多说,今天... 查看详情

#yolo_v3代码解析以及相关注意事项(代码片段)

...~$本次YOLO_v3的项目来源于机器之心翻译的项目---从零开始PyTorch项目:YOLOv3目标检测实现以及从零开始PyTorch项目:YOLOv3目标检测实现(下)两部分组成,原版的博客在此Series:YOLOobjectdetectorinPyTorch,原始博客的GitHub地址为:ayooshkat... 查看详情

改进yolov5系列:8.增加acmix结构的修改,自注意力和卷积集成(代码片段)

YOLOAir:助力YOLO论文改进🏆、不同数据集改进🏆、创新点改进👇💡YOLOAir项目:基于YOLOv5代码框架,结合不同模块来构建不同的YOLO目标检测模型。🌟本项目包含大量的改进方式,降低改进难度,改进点包... 查看详情

yolo_v3代码解析以及相关注意事项(代码片段)

...~$本次YOLO_v3的项目来源于机器之心翻译的项目---从零开始PyTorch项目:YOLOv3目标检测实现以及从零开始PyTorch项目:YOLOv3目标检测实现(下)两部分组成,原版的博客在此Series:YOLOobjectdetectorinPyTorch,原始博客的GitHub地址为:ayooshkat... 查看详情

使用yolo时torchtorchvisioncuda版本下载

...处搜.我的GPU得到:CUDA11.12.先大致确定使用的python、pytorch范围根据yolov8的要求,需要python在3.10~3.7之间,pytorch>=1.7但是还不要下载,因为新版本的pytorch对应的torchvision可能没有适合于windows的cuda版本。3.选择最... 查看详情

基于pytorch,如何构建一个简单的神经网络

本文为PyTorch官方教程中:如何构建神经网络。基于PyTorch专门构建神经网络的子模块torch.nn构建一个简单的神经网络。完整教程运行codelab→https://openbayes.com/console/open-tutorials/containers/OgcYkLjKw89torch.nn文档→https://pytorch.org/docs/stab... 查看详情

yolov3包括tiny-yolo训练自己的数据集(pytorch版本)以及模型评价指标的介绍(代码片段)

  最近一直在尝试用pytorch版本的Tinyyolov3,来训练自己的数据集。看了很多的博客,终于梳理出如何使用自己的数据集来进行训练。关于YOLOv3的原理这里就不过多介绍了。网上的教程很多,这里就直接开始介绍如何利用PyTorch对... 查看详情

yolov5-pytorch版-windows下训练自己的数据集,内含voc批量转yolo方法。(自称宇宙超级巨详细步骤)(代码片段)

Yolov5-Pytorch版-Windows下训练自己的数据集(自称宇宙超级巨详细步骤)一.准备数据集1.在labelimg下直接生成yolo的.txt格式2.Pytorch版批量.xml格式转yolo的.txt格式3.数据集制作二.Yolov5实现训练1.修改两个.yaml文件2.修改train.py文件3... 查看详情

yolov5添加注意力机制pytorch(代码片段)

我的YOLOv5版本为6.0需要修改的两个文件如下:./models/yolo5s_SE-Net.yaml./models/commom.py1.yolo5s_SE-Net.yaml文件yolo5s_SE-Net.yaml修改自文件yolo5s.yamlyolo5s.yaml文件内容为:#YOLOv5 查看详情

yolo(youonlylookonce)

...现一、介绍YOLO算法把物体检测问题处理成回归问题,用一个卷积神经网络结构就可以从输入图像直接预测boundingbox和类别概率。YOLO具有如下优点:(1)YOLO的运行速度非常快;(2)YOLO是基于图像的全局信息预测的,因此在误检... 查看详情

基于yolo的人脸检测与人脸对齐(代码片段)

...了人脸检测和人脸对齐,而使用yolo,我们将只用一个卷积神经网络同时实现人脸检测和人脸对齐:我们将去掉yolo的分类逻辑,加入回归特征点的逻辑。为了更好的回归,我们需要将基于图像左上角的坐标转变... 查看详情

pytorch机器学习——目标检测中k-means聚类方法生成锚框anchor(代码片段)

Pytorch机器学习(十)——YOLO中k-means聚类方法生成锚框anchor目录Pytorch机器学习(十)——YOLO中k-means聚类方法生成锚框anchor前言一、K-means聚类 k-means代码k-means++算法二、YOLO中使用k-means聚类生成anchor读取VOC... 查看详情