YOLO Air
YOLOAir是一个基于PyTorch的YOLO算法库。统一模型代码框架、统一应用、统一改进、易于模块组合、构建更强大的网络模型。
YOLOAir是一个基于PyTorch的YOLO算法库。统一模型代码框架、统一应用、统一改进、易于模块组合、构建更强大的网络模型。
模型多样化: 基于不同网络模块构建不同检测网络模型。
模块组件化: 帮助用户自定义快速组合Backbone、Neck、Head,使得网络模型多样化,助力科研改进检测算法、模型改进,网络排列组合🏆。构建强大的网络模型。
统一模型代码框架、统一应用方式、统一调参、统一改进、集成多任务、易于模块组合、构建更强大的网络模型。
内置集成YOLOv5、YOLOv7、YOLOv6、YOLOX、YOLOR、Transformer、PP-YOLO、PP-YOLOv2、PP-YOLOE、PP-YOLOEPlus、Scaled_YOLOv4、YOLOv3、YOLOv4、YOLO-Face、TPH-YOLO、YOLOv5Lite、SPD-YOLO、SlimNeck-YOLO、PicoDet等模型网络结构... 集成多种检测算法 和 相关多任务模型 使用统一模型代码框架,集成在 YOLOAir 库中,统一应用方式。便于科研者用于论文算法模型改进,模型对比,实现网络组合多样化。包含轻量化模型和精度更高的模型,根据场景合理选择,在精度和速度俩个方面取得平衡。同时该库支持解耦不同的结构和模块组件,让模块组件化,通过组合不同的模块组件,用户可以根据不同数据集或不同业务场景自行定制化构建不同检测模型。
支持集成多任务,包括目标检测、实例分割、图像分类、姿态估计、人脸检测、目标跟踪等任务
Star🌟、Fork 不迷路,同步更新。
项目地址🌟: https://github.com/iscyy/yoloair
部分改进说明教程🌟: https://github.com/iscyy/yoloair/wiki/Improved-tutorial-presentation
下列功能 YOLOAir-Beta版本内测 已支持🔥
🚀支持更多的YOLO系列算法模型改进(持续更新...)
YOLOAir 算法库汇总了多种主流YOLO系列检测模型,一套代码集成多种模型:
🚀支持更多的网络模型组件
Backbones | Necks | Head |
|
|
|
Attention注意力机制 | 标签分配策略 | IoU损失函数 |
|
|
|
Loss | NMS | 数据增强 |
|
|
|
空间金字塔池化结构 | 模块化组件 | AnchorBased / AnchorFree |
|
|
|
🚀支持更多Backbone
🚀支持更多Neck
🚀支持更多检测头Head
🚀支持更多即插即用的注意力机制Attention
🚀更多空间金字塔池化结构
🚀支持更多Loss
🚀支持 Anchor-base 和 Anchor-Free
🚀支持多种标签分配策略
🚀支持加权框融合(WBF)
🚀 内置多种网络模型模块化组件 Conv, GhostConv, Bottleneck, GhostBottleneck, SPP, SPPF, DWConv, MixConv2d, Focus, CrossConv,BottleneckCSP, C3, C3TR, C3SPP, C3Ghost, C3HB, C3RFEM, MultiSEAM, SEAM, C3STR, SPPCSPC, RepConv, BoT3, Air, CA, CBAM, Involution, Stem, ResCSPC, ResCSPB, ResXCSPB, ResXCSPC, BottleneckCSPB, BottleneckCSPC, ASPP, BasicRFB, SPPCSPC_group, HorBlock, CNeB,C3GC ,C3C2, nn.ConvTranspose2d, DWConvblock, RepVGGBlock, CoT3, ConvNextBlock, SPPCSP, BottleneckCSP2, DownC, BottleneckCSPF, RepVGGBlock, ReOrg, DWT, MobileOne,HorNet...等详细代码 ./models/common.py文件 内
🚀支持更多IoU损失函数
🚀支持更多NMS
🚀支持更多数据增强
🚀支持加载YOLOv3、YOLOv4、YOLOv5、YOLOv7、YOLOR、Scaled_YOLO等网络的官方预训练权重进行迁移学习
🚀 YOLO系列网络模型热力图可视化(GardCAM、GardCAM++等) 支持YOLOv3、、YOLOv3-SPP、YOLOv4、YOLOv5、YOLOR、YOLOv7Scaled_YOLOv4、TPH-YOLO、SPD-YOLO以及自定义网络模型等模型 (YOLOAir(Beta版本内测)🔥已支持)
🚀主流网络模型结构图汇总: 模型🔗
以上组件模块使用统一模型代码框架、统一任务形式、统一应用方式,模块组件化🚀 可以帮助用户自定义快速组合Backbone、Neck、Head,使得网络模型多样化,助力科研改进检测算法,构建更强大的网络模型。
说明: 以上主要特性支持 包括 Main版本 和 Beta版本,部分特性暂时只完成更新在 Beta 中,不是所有更新都直接在 Main 中,后续 Beta 版本内测之后逐渐加入到 Main版本中。
🚀包括基于 YOLOv5、YOLOv7、YOLOX、YOLOR、YOLOv3、YOLOv4、Scaled_YOLOv4、PPYOLO、PPYOLOE、PPYOLOEPlus、Transformer、YOLO-FaceV2、PicoDet、YOLOv5-Lite、TPH-YOLOv5、SPD-YOLO等其他多种改进网络结构等算法模型的模型配置文件
目标检测 | 目标分割 |
---|---|
图像分类 | 实例分割 |
---|---|
目标分割 | 目标跟踪 |
---|---|
姿态估计 | 人脸检测 |
---|---|
热力图01 | 热力图02 |
---|---|
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
FightingCV公众号每天分享前沿论文动态 (公众号回复加群,添加小助手加交流群)
Model | size(pixels) | mAPval0.5:0.95 | mAPval0.5 | SpeedCPU b1(ms) | SpeedV100 b1(ms) | SpeedV100 b32(ms) | params(M) | FLOPs@640 (B) | Weights |
---|---|---|---|---|---|---|---|---|---|
YOLOv5n | 640 | 28.0 | 45.7 | 45 | 6.3 | 0.6 | 1.9 | 4.5 | YOLOv5n |
YOLOv5s | 640 | 37.4 | 56.8 | 98 | 6.4 | 0.9 | 7.2 | 16.5 | YOLOv5s |
YOLOv5m | 640 | 45.4 | 64.1 | 224 | 8.2 | 1.7 | 21.2 | 49.0 | YOLOv5m |
YOLOv5l | 640 | 49.0 | 67.3 | 430 | 10.1 | 2.7 | 46.5 | 109.1 | YOLOv5l |
YOLOv5x | 640 | 50.7 | 68.9 | 766 | 12.1 | 4.8 | 86.7 | 205.7 | YOLOv5x |
YOLOv5n6 | 1280 | 36.0 | 54.4 | 153 | 8.1 | 2.1 | 3.2 | 4.6 | YOLOv5n6 |
YOLOv5s6 | 1280 | 44.8 | 63.7 | 385 | 8.2 | 3.6 | 12.6 | 16.8 | YOLOv5s6 |
YOLOv5m6 | 1280 | 51.3 | 69.3 | 887 | 11.1 | 6.8 | 35.7 | 50.0 | YOLOv5m6 |
YOLOv5l6 | 1280 | 53.7 | 71.3 | 1784 | 15.8 | 10.5 | 76.8 | 111.4 | YOLOv5l6 |
YOLOv5x6+ TTA | 12801536 | 55.055.8 | 72.772.7 | 3136- | 26.2- | 19.4- | 140.7- | 209.8- | YOLOv5x6 |
Model | size(pixels) | mAPval0.5:0.95 | mAPval0.5 | deconv kernel size | SpeedV100 b1(ms) | SpeedV100 b32(ms) | params(M) | FLOPs@640 (B) |
---|---|---|---|---|---|---|---|---|
YOLOv5s | 640 | 33.7 | 52.9 | - | 5.6 | 2.2 | 7.23 | 16.5 |
YOLOv5s-deconv-exp1 | 640 | 33.4 | 52.5 | 2 | 5.6 | 2.4 | 7.55 | 18.2 |
YOLOv5s-deconv-exp2 | 640 | 34.7 | 54.2 | 4 | 5.8 | 2.5 | 8.54 | 23.2 |
# train
python -m torch.distributed.run --nproc_per_node 4 train.py --device 0,1,2,3 --data data/coco.yaml --hyp data/hyps/hyp.scratch-low.yaml --cfg path/to/model.yaml --batch 512 --epochs 300 --weights ''
# val
python val.py --verbose --data data/coco.yaml --conf 0.001 --iou 0.65 --batch 1 --weights path/to/model.pt
Model | size(pixels) | mAPval0.5:0.95 | mAPval0.5 | params(M) | FLOPs@640 (B) |
---|---|---|---|---|---|
YOLOv5s | 640 | 37.4 | 56.6 | 7.226 | 16.5 |
YOLOv5s-deconv | 640 | 37.8 | 57.1 | 7.232 | 16.5 |
Model | size(pixels) | mAPval0.5:0.95 | mAPval0.5 | params(M) | FLOPs@640 (B) |
---|---|---|---|---|---|
YOLOv5s | 640 | 37.2 | 56.0 | 7.2 | 16.5 |
YOLOv5s-C3GC-backbone | 640 | 37.7 | 57.3 | 7.5 | 16.8 |
与YOLOv5框架同步
后续会持续建设和完善 YOLOAir 生态 完善集成更多 YOLO 系列模型,持续结合不同模块,构建更多不同网络模型 横向拓展和引入关联技术等等
@article{2022yoloair,
title={{YOLOAir}: Makes improvements easy again},
author={iscyy},
repo={github https://github.com/iscyy/yoloair},
year={2022}
}
https://github.com/ultralytics/yolov5 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