YOLOAir:集成多種YOLO改進模塊,面向小白科研的YOLO檢測代碼庫

語言: CN / TW / HK

關注並星標

從此不迷路

計算機視覺研究院

公眾號IDComputerVisionGzq

學習羣掃碼在主頁獲取加入方式

計算機視覺研究院專欄

作者:Edison_G

YOLOAir 算法代碼庫是一個基於 PyTorch 的 YOLO 系列目標檢測開源工具箱。使用統一模型代碼框架、統一應用方式、統一調參,該庫包含大量的改進模塊,可使用不同網絡模塊來快速構建不同網絡的檢測模型。基於 YOLOv5 代碼框架,並同步適配 YOLOv5(v6.0/v6.1 更新) 部署生態。用户在使用這個項目之前, 可以先了解 YOLOv5 庫。

讓改進YOLO結構更快、更方便。 

該項目包含大量的改進方式,改進點包含 Backbone、Neck、Head、注意力機制、IoU 損失函數、多種 NMS、Loss 損失函數、自注意力機制系列、數據增強部分、激活函數等部分,更多內容可以關注 YOLOAir 項目的説明文檔。

項目同時附帶各種改進點原理及對應的代碼改進方式教程,用户可根據自身情況快速排列組合,在不同的數據集上實驗, 應用組合改進點寫論文!
模塊組件化:幫助用户自定義快速組合 Backbone、Neck、Head,使得網絡模型多樣化,使得改進檢測算法、工程算法部署落地更便捷,構建更強大的網絡模型。
支持YOLOv5、YOLOv7、YOLOX、YOLOR、YOLOv3、YOLOv4、Scaled_YOLOv4、Transformer等算法網絡模型進行改進。

logo.png

項目地址:   http://github.com/iscyy/yoloair

項目介紹

  • 主要特性

持續支持更多的 YOLO 系列模型模塊,作者對可以進行改進的部分進行了分類: 支持更多 Backbone:

  • CSPDarkNet 系列

  • ResNet 系列

  • RegNet 系列

  • RepBlock 系列

  • ShuffleNet 系列

  • Ghost 系列

  • MobileNet 系列

  • ConvNext 系列

  • RepLKNet 系列

  • EfficientNet系列

  • CNN 和 Transformer:BoTNet、CoTNet、Acmix等

  • 自注意力機制:Transformer、Swin等

  • 支持更多 Neck

  • neck 包含 FPN、PANet、BiFPN 等主流結構,同時可以添加和替換任何模塊

  • 支持更多檢測頭 Head

  • YOLOv5 Head 檢測頭

  • YOLOX 的解耦合檢測頭 Decoupled Head

  • 自適應空間特徵融合檢測頭 ASFF Head

  • YOLOv7 檢測頭 IDetect Head、IAuxDetect Head 等

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

  • 在網絡任何部分即插即用式使用注意力機制, 內置多種主流注意力機制

  • 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、ComputeLoss(X)、ComputeLoss(v6)、ComputeLossAuxOTA(v7)、ComputeLossOTA(v7) 等

  • 支持 Anchor-base 檢測器和 Anchor-Free 檢測器

  • 內置多種網絡模型模塊化組件

  • Conv, GhostConv, Bottleneck, Transformer, Swin Transformer, CoTNet transformer, BoTNet transformer, GhostBottleneck, SPP, SPPF, DWConv, MixConv2d, DWT, BottleneckCSP2, 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 模型網絡結構

  • YOLOv5Lite 模型網絡結構

  • YOLO-FaceV2 模型網絡結構

  • PicoDet 模型網絡結構

  • 以及其他部分改進模型網絡結構

以上多種檢測算法網絡模型使用統一代碼框架,集成在 YOLOAir 代碼庫中,統一應用方式。便於科研者用於論文算法模型改進,模型對比,實現網絡組合多樣化,包含輕量化模型和精度更高的模型,根據場景合理選擇,在精度和速度者兩個方面取得平衡。同時該庫支持解耦不同的結構和模塊組件,讓模塊組件化,通過組合不同的模塊組件,用户可以根據不同數據集或不同業務場景自行定製化構建不同檢測模型。

使用

代碼遵循 YOLOv5 設計原則,使用方式基本和 YOLOv5 框架對齊。
與 YOLOv5 框架同步。

  • 安裝

在Python>=3.7.0的環境中克隆版本倉並安裝 requirements.txt,包括 PyTorch>=1.7。

$ git clone http://github.com/iscyy/yoloair.git  # 克隆$ cd yoloair$ pip install -r requirements.txt  # 安裝
  • 訓練

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

如果使用不同的模型推理數據集,可以使用 wbf 文件通過加權框融合來集成結果。在 wbf 文件中設置 img 路徑和 txt 路徑。

$ python tools/wbf.py

© THE END 

轉載請聯繫本公眾號獲得授權

計算機視覺研究院學習羣等你加入!

我們開創“ 計算機視覺協會 ”知識星球兩年有餘,也得到很多同學的認可,最近我們又開啟了知識星球的運營。 我們 定時會 推送實踐型內容與大家分享 ,在星球裏的同學可以 隨時提問 ,隨時提需求,我們都會及時給予回覆及給出對應的答覆。

ABOUT

計算機視覺研究院

計算機視覺研究院主要涉及深度學習領域,主要致力於人臉檢測、人臉識別,多目標檢測、目標跟蹤、圖像分割等研究方向。研究院接下來會不斷分享最新的論文算法新框架,我們這次改革不同點就是,我們要着重”研究“。之後我們會針對相應領域分享實踐過程,讓大家真正體會擺脱理論的真實場景,培養愛動手編程愛動腦思考的習慣!

VX:2311123606

往期推薦 

:link:

「其他文章」