Skip to content

Latest commit

 

History

History
280 lines (195 loc) · 14.2 KB

README.md

File metadata and controls

280 lines (195 loc) · 14.2 KB

YOLOAir: Make the improvement of the YOLO model faster, more convenient

简体中文 | English

YOLOAir算法库 是一个基于 PyTorch 的一系列 YOLO 检测算法组合工具箱。用来组合不同模块构建不同网络

内置YOLOv5、YOLOv7、YOLOX、YOLOR、Transformer、Scaled_YOLOv4、YOLOv3、YOLOv4、YOLO-Facev2、TPH-YOLOv5、YOLOv5Lite、PicoDet等模型网络结构(持续更新中🚀)...

模块组件化:帮助用户自定义快速组合Backbone、Neck、Head,使得网络模型多样化,助力科研改进检测算法、模型改进,网络排列组合🏆。构建强大的网络模型。

统一模型代码框架、统一应用方式、统一调参、统一改进、易于模块组合、构建更强大的网络模型


██╗   ██╗ ██████╗ ██╗      ██████╗      █████╗     ██╗    ██████╗ 
╚██╗ ██╔╝██╔═══██╗██║     ██╔═══██╗    ██╔══██╗    ██║    ██╔══██╗
 ╚████╔╝ ██║   ██║██║     ██║   ██║    ███████║    ██║    ██████╔╝
  ╚██╔╝  ██║   ██║██║     ██║   ██║    ██╔══██║    ██║    ██╔══██╗
   ██║   ╚██████╔╝███████╗╚██████╔╝    ██║  ██║    ██║    ██║  ██║
   ╚═╝    ╚═════╝ ╚══════╝ ╚═════╝     ╚═╝  ╚═╝    ╚═╝    ╚═╝  ╚═╝

基于 YOLOv5 代码框架,并同步适配 稳定的YOLOv5_v6.1更新, 同步v6.1部署生态。使用这个项目之前, 您可以先了解YOLOv5库。

特性🚀使用🍉文档📒报告问题🌟

支持

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

部分改进说明演示: 芒果汁没有芒果


主要特性🚀

🚀支持更多的YOLO系列算法模型改进(持续更新...)

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

  • 内置集成 YOLOv5 模型网络结构、YOLOv7 模型网络结构、 YOLOR 模型网络结构、YOLOX 模型网络结构、Scaled_YOLOv4 模型网络结构、YOLOv4 模型网络结构、YOLOv3 模型网络结构、YOLO-FaceV2模型网络结构、TPH-YOLOv5模型网络结构、YOLOv5-Lite模型网络结构、PicoDet模型网络结构等持续更新中...
  • 以上多种检测算法使用统一模型代码框架,集成在 YOLOAir 库中,统一任务形式、统一应用方式。🌟便于科研者用于论文算法模型改进,模型对比,实现网络组合多样化。🌟工程算法部署落地更便捷,包含轻量化模型和精度更高的模型,根据场景合理选择,在精度和速度俩个方面取得平衡。同时该库支持解耦不同的结构和模块组件,让模块组件化,通过组合不同的模块组件,用户可以根据不同数据集或不同业务场景自行定制化构建不同检测模型。

🔥🔥🔥 重磅!!!作为注意力机制的开源项目补充,强烈推荐一个6300+🌟Star的注意力机制算法代码库👉External-Attention-pytorch,里面汇总整理很全面,包含各种Attention、Self-Attention等代码,代码简洁易读,一行代码实现Attention机制。欢迎大家来玩呀!

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

🚀支持更多Backbone

  • CSPDarkNet系列RepBlock系列ResNet系列RegNet 系列ShuffleNet系列Ghost系列MobileNet系列EfficientNet系列ConvNext系列RepLKNet系列自注意力Transformer系列CNN和Transformer结合 持续更新中🎈

🚀支持更多Neck

  • neck包含FPNPANetBiFPN等主流结构。 持续更新中🎈

🚀支持更多检测头Head

  • YOLOv4、YOLOv5 Head检测头、
  • YOLOR 隐式学习Head检测头、
  • YOLOX的解耦合检测头Decoupled Head、DetectX Head
  • 自适应空间特征融合 检测头ASFF Head、
  • YOLOv7检测头IAuxDetect Head, IDetect Head等;

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

  • 在网络任何部分即插即用式使用注意力机制 例如 Self Attention、 Contextual Transformer、 Bottleneck Transformer、 S2-MLP Attention、 SK Attention、 CBAM Attention、 SE Attention、 Coordinate attention、 NAM Attention、 GAM attention、 ECA Attention、 Shuffle Attention、 DANet Attention 等多种主流注意力机制

🚀支持更多IoU损失函数

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

🚀更多空间金字塔池化结构

  • SPP、SPPF、ASPP、RFB、SPPCSPC等;

🚀支持更多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、ComputeLoss(X)、ComputeLoss(v6)、ComputeLossAuxOTA(v7)、ComputeLossOTA(v7)等

🚀支持Anchor-base和Anchor-Free

🚀支持加权框融合(WBF)

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

  • Conv, GhostConv, Bottleneck, GhostBottleneck, SPP, SPPF, DWConv, MixConv2d, Focus, CrossConv, BottleneckCSP, C3, C3TR, C3SPP, C3Ghost等 详细代码 ./models/common.py文件

  • 👉网络模型结构图

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

内置网络模型配置支持✨

🚀包括YOLOv3、YOLOv4、Scaled_YOLOv4、YOLOv5、YOLOv7、YOLOX、YOLOR、Transformer、YOLO-FaceV2、PicoDet、YOLOv5-Lite、TPH-YOLOv5、其他多种改进网络结构等算法模型的yaml配置文件


更新

支持 SPD-Conv✅ 支持 HorNet 网络✅ 支持 ConvNext 模块✅ Updating...


使用🍉

About the code. Follow the design principle of YOLOv5.
The original version was created based on YOLOv5(v6.1)

安装

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 #默认为yolo

推理

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

$ python detect.py --source 0  # 网络摄像头
                          img.jpg  # 图像
                          vid.mp4  # 视频
                          path/  # 文件夹
                          path/*.jpg  # glob

融合

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

$ python wbf.py

Benchmark

Updating...


YOLO网络模型具体改进方式教程及原理参考

更多模块详细解释教程持续更新中...


YOLOv5官方教程✨

与YOLOv5框架同步

未来增强✨

后续会持续建设和完善 YOLOAir 生态
完善集成更多 YOLO 系列模型,持续结合不同模块,构建更多不同网络模型
横向拓展和引入关联技术,如半监督学习等等
跟进:YOLO-mask & YOLO-pose


Statement

Expand
  • The content of this site is only for sharing notes. If some content is infringing, please sending email.

  • If you have any question, please discuss with me by sending email.

Acknowledgements

Expand

https://github.com/ultralytics/yolov5
https://github.com/AlexeyAB/darknet
https://github.com/ultralytics/yolov3
https://github.com/WongKinYiu/PyTorch_YOLOv4
https://github.com/WongKinYiu/ScaledYOLOv4
https://github.com/meituan/YOLOv6
https://github.com/WongKinYiu/yolov7
https://github.com/WongKinYiu/yolor
https://github.com/xmu-xiaoma666/External-Attention-pytorch
https://gitee.com/SearchSource/yolov5_yolox
https://github.com/Krasjet-Yu/YOLO-FaceV2
https://github.com/positive666/yolov5_research/
https://github.com/ppogg/YOLOv5-Lite
https://github.com/Gumpest/YOLOv5-Multibackbone-Compression
https://github.com/cv516Buaa/tph-yolov5 Paper:https://arxiv.org/abs/2208.02019