YOLOC Save Abandoned

???YOLOC: Combined, Unified paradigm for YOLO object detection framework.Including YOLOv5、YOLOv6、YOLOv7、YOLOX、YOLOv3、YOLOv4、Scaled_YOLOv4、YOLOR、YOLOv5-Lite、transformer、PPYOLO、TPH、PicoDet...

Project README

YOLOC: Combined, Unified paradigm

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

内置YOLOv5、YOLOv6、YOLOv7、YOLOX、YOLOR、Transformer、YOLOv5-Lite、YOLOv3、YOLOv4、Scaled_YOLOv4、PP-YOLO、TPH-YOLOv5、PicoDet等算法模型...

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

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

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

简体中文 | English

特性?使用?文档?报告问题?

支持

项目地址: https://github.com/Him-wen/YOLOC

主要特性?

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

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

  • 内置集成 YOLOv7 模型网络结构
  • 内置集成 YOLOv6 模型网络结构
  • 内置集成 YOLOX 模型网络结构
  • 内置集成 YOLOR 模型网络结构
  • 内置集成 YOLOv5 模型网络结构
  • 内置集成 Scaled_YOLOv4 模型网络结构
  • 内置集成 YOLOv4 模型网络结构
  • 内置集成 YOLOv3 模型网络结构
  • 以及部分改进模型
  • TPH-YOLOv5模型网络结构
  • YOLOv5-Lite模型网络结构
  • PPYOLO模型网络结构
  • PicoDet模型网络结构 ...

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

?模型支持导出ONNX进行TensorRT推理,落地部署。

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

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

?支持更多Backbone

  • Backbone包含CSPDarkNet、ConvNext、RepBlock系列,ResNet系列、Transformer系列(Transformer、Swin系列、BotNet、CoTNet等持续更新)、以及轻量化网络ShuffleNet系列、Ghost系列、MobileNet系列等网络结构。

?支持更多Neck

  • neck包含FPN、PANet、BiFPN等主流结构。

?支持更多检测头Head

  • YOLOv5 Head检测头、
  • YOLOX的解耦合检测头Decoupled Head、
  • 更简洁高效的YOLOv6检测头Decoupled Head、
  • 自适应空间特征融合 检测头ASFF Head、
  • YOLOv7检测头IAuxDetect Head, IDetect Head等;

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

  • 在网络任何部分即插即用式使用注意力机制,例如SE、CBAM、CA、GAM、ECA...等多种主流注意力机制
    详情

?支持更多损失函数

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

?支持更多NMS

  • NMS、Merge-NMS、DIoU-NMS、Soft-NMS等;
    详情

?支持更多数据增强

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

?支持更多Loss

  • ComputeLoss、Computev6Loss、ComputeXLoss、ComputeLossAuxOTA(v7)、ComputeLossOTA(v7)等 详情

?支持加权框融合(WBF)

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

  • Conv, GhostConv, Bottleneck, GhostBottleneck, SPP, SPPF, DWConv, MixConv2d, Focus, CrossConv, BottleneckCSP, CBAM, ResBlock_CBAM, CoordAtt, CrossConv, C3, CTR3, Involution, C3SPP, C3Ghost, CARAFE, nn.ConvTranspose2d, DWConvTranspose2d, C3x, SPPCSPC, GhostSPPCSPC, BottleneckCSPA, BottleneckCSPB, ConvSig, BottleneckCSPC, RepConv, RepConv_OREPA, RepBottleneck, RepBottleneckCSPA, RepBottleneckCSPB, RepBottleneckCSPC, Res, ResCSPA, ResCSPB, ResCSPC, RepRes, RepResCSPA, RepResCSPB, RepResCSPC, ResX, ResXCSPA, ResXCSPB, ResXCSPC, RepResX, RepResXCSPA, RepResXCSPB, RepResXCSPC, Ghost, GhostCSPA, GhostCSPB, GhostCSPC, SwinTransformerBlock, STCSPA, STCSPB, STCSPC, SwinTransformer2Block, ST2CSPA, ST2CSPB, ST2CSPC, conv_bn_relu_maxpool, Shuffle_Block, RepVGGBlock, CBH, LC_Block, Dense, DWConvblock, BottleneckCSP2, DWT, BottleneckCSP2SAM, VoVCSP等 详细代码 ./models/common.py文件 内搜索??对应模块链接

  • ?网络模型结构图

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

内置网络模型配置支持✨

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

多种内置yaml网络模型配置(推荐?????)

?用户可自行改进网络

使用?

About the code. Follow the design principle of YOLOv5.
使用方式基本和YOLOv5框架对齐。

安装

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

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

训练

$ python train.py --data coco128.yaml --cfg configs/yolov5/yolov5s.yaml #默认为yolo

不同模型训练切换

通过参数命令--mode即可切换不同模型的训练和推理。

$ python train.py --mode yolo # yolov3、yolov4、yolor、scaled_yolov4、PicoDet、ppyolo模型及相关改进模型
$ python train.py --mode yolox # YOLOX模型及相关改进模型
$ python train.py --mode yolov6 # YOLOv6模型及相关改进模型
$ python train.py --mode yolov7 # YOLOv7模型及相关改进模型

推理

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...

教程✨

与YOLOv5框架同步

未来增强✨

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


Acknowledgement

Expand

Thanks to their great works.

darknetyolov3yolov4scaled_yolov4yolov5yolov6yolov7yoloryoloxyolouattentionyolov5_researchyolov5-liteyolov5-mctph-yolov5

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 to [email protected].

Open Source Agenda is not affiliated with "YOLOC" Project. README Source: Him-wen/YOLOC
Stars
40
Open Issues
2
Last Commit
1 year ago
License
MIT

Open Source Agenda Badge

Open Source Agenda Rating