《芒果書》系列改進專欄內的改進文章
專欄地址:獨家全網首發專欄《芒果YOLOv8深度改進教程》?
專欄地址:獨家全網首發專欄《芒果YOLOv5深度改進教程》?
專欄地址:獨家全網首發專欄《芒果YOLOv7深度改進教程》?
項目地址:https://github.com/iscyy/ultralyticsPro
專注於YOLOv8改進,NEW - YOLOv8 in PyTorch >, Support to improve Backbone, Neck, Head, Loss, IoU, LA, NMS and other modules Makes YOLOv8 improvements easy again
? 全新的YOLOv8改進項目ultralyticsPro來襲,最新改進點更新2024
一、 改進YOLOv8 免費內容<br>本項目持續會更新一些免費的改進點,每週都會更新
3.22更新: 注意力機制:ultralytics/cfg/models/cfg2024/YOLOv8-Attention
GAM 注意力機制、
SA 注意力機制、
SimAM 注意力機制、
SK 注意力機制、
SOCA 注意力機制、
CBAM 注意力機制、
3.23更新: 金字塔結構:ultralytics/cfg/models/cfg2024/YOLOv8-金字塔結構改進
SPPELAN、
SimSPPF、
BasicRFB、
ASPP、
SPPFCSPC
更多更新,詳細點擊:https://github.com/iscyy/ultralyticsPro
YOLOv5項目更新
2024.03
新增Dysample上採樣改進點:ICCV2023論文:Dysample上採樣改進
YOLOAir是一個基於PyTorch的YOLO算法庫。統一模型代碼框架、統一應用、統一改進、易於模塊組合、構建更強大的網絡模型。
簡體中文| English
特性• 使用? • 文檔? • 報告問題? • 更新? • 討論✌️
• 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
YOLOv4、YOLOv5 Head檢測頭;
YOLOR 隱式學習Head檢測頭;
YOLOX的解耦合檢測頭Decoupled Head、DetectX Head;
自適應空間特徵融合檢測頭ASFF Head;
YOLOv6-v2.0 Efficient decoupled head;
YOLOv7檢測頭IAuxDetect Head, IDetect Head等;
其他不同檢測頭
支持更多即插即用的注意力機制Attention
在網絡任何部分即插即用式使用注意力機制
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
CrissCrossAttention
Coordinate attention
SOCAttention
SimAM Attention 持續更新中?
重磅! ! !作為開源項目補充,推荐一個注意力算法代碼庫External-Attention,裡面匯總整理很全面,包含各種Attention等代碼,代碼簡潔易讀,一行代碼實現Attention機制。
更多空間金字塔池化結構
支持更多Loss
支持Anchor-base 和Anchor-Free
? YOLOv5、YOLOv7、YOLOv3、YOLOv4、YOLOR、ScaledYOLOv4、PPYOLO、PPYOLOv2、Improved-YOLOv5、Improved-YOLOv7
? YOLOX、YOLOv6 (Paper)、PPYOLOE、PPYOLOE+
支持多種標籤分配策略
支持加權框融合(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 |
|---|---|
YOLOv5 https://github.com/ultralytics/yolov5/releases/tag/v6.1
YOLOv4 https://github.com/iscyy/yoloair/releases/tag/v1.0
YOLOv3 https://github.com/iscyy/yoloair/releases/tag/v1.0
YOLOR https://github.com/iscyy/yoloair/releases/tag/v1.0
Scaled_YOLO https://github.com/iscyy/yoloair/releases/tag/v1.0
YOLOv7 https://github.com/iscyy/yoloair/releases/tag/v1.0
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 #默认为yolodetect.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) | mAP val 0.5:0.95 | mAP val 0.5 | Speed CPU b1 (ms) | Speed V100 b1 (ms) | Speed V100 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 | 1280 1536 | 55.0 55.8 | 72.7 72.7 | 3136 - | 26.2 - | 19.4 - | 140.7 - | 209.8 - | YOLOv5x6 |
| Model | size (pixels) | mAP val 0.5:0.95 | mAP val 0.5 | deconv kernel size | Speed V100 b1 (ms) | Speed V100 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) | mAP val 0.5:0.95 | mAP val 0.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) | mAP val 0.5:0.95 | mAP val 0.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 生態完善集成更多YOLOv5 系列模型,持續結合不同模塊,構建更多不同網絡模型橫向拓展和引入關聯技術等等
@ article { 2022 yoloair ,
title = {{ YOLOAir }: Makes improvements easy again },
author = { iscyy },
repo = { github https : // github . com / iscyy / yoloair },
year = { 2022 }
} 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.
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