YOLODet 最強(qiáng)PyTorch版的YOLOv5、YOLOv4、PP-YOLO、YOLOv3復(fù)現(xiàn)

github地址:https://github.com/wuzhihao7788/yolodet-pytorch

YOLODet-PyTorch

YOLODet-PyTorch是端到端基于pytorch框架復(fù)現(xiàn)yolo最新算法的目標(biāo)檢測開發(fā)套件,旨在幫助開發(fā)者更快更好地完成檢測模型的訓(xùn)練、精度速度優(yōu)化到部署全流程。YOLODet-PyTorch以模塊化的設(shè)計實(shí)現(xiàn)了多種主流YOLO目標(biāo)檢測算法,并且提供了豐富的數(shù)據(jù)增強(qiáng)、網(wǎng)絡(luò)組件、損失函數(shù)等模塊。

目前檢測庫下模型均要求使用PyTorch 1.5及以上版本或適當(dāng)?shù)膁evelop版本。

內(nèi)容

簡介

特性:

  • 模型豐富:

    YOLODet提供了豐富的模型,涵蓋最新YOLO檢測算法的復(fù)現(xiàn),包含YOLOv5、YOLOv4、PP-YOLO、YOLOv3等YOLO系列目標(biāo)檢測算法。

  • 高靈活度:

    YOLODet通過模塊化設(shè)計來解耦各個組件,基于配置文件可以輕松地搭建各種檢測模型。

支持的模型:

更多的Backone:

  • DarkNet

  • CSPDarkNet

  • ResNet

  • YOLOv5Darknet

數(shù)據(jù)增強(qiáng)方法:

  • Mosaic

  • MixUp

  • Resize

  • LetterBox

  • RandomCrop

  • RandomFlip

  • RandomHSV

  • RandomBlur

  • RandomNoise

  • RandomAffine

  • RandomTranslation

  • Normalize

  • ImageToTensor

  • 相關(guān)配置使用說明請參考【這里

損失函數(shù)支持:

  • bbox loss (IOU,GIOU,DIOU,CIOU)

  • confidence loss(YOLOv4,YOLOv5,PP-YOLO)

  • IOU_Aware_Loss(PP-YOLO)

  • FocalLoss

訓(xùn)練技巧支持:

  • 指數(shù)移動平均

  • 預(yù)熱

  • 梯度剪切

  • 梯度累計更新

  • 多尺度訓(xùn)練

  • 學(xué)習(xí)率調(diào)整:Fixed,Step,Exp,Poly,Inv,Consine

  • Label Smooth

  • 強(qiáng)烈說明 通過實(shí)驗(yàn)對比發(fā)現(xiàn)YOLOv5的正負(fù)樣本劃分定義和損失函數(shù)定義,使得模型收斂速度較快,遠(yuǎn)超原yolo系列對正負(fù)樣本的劃分和損失定義。對于如果卡資源不充足,想在短時間內(nèi)收斂模型,可采用yolov5的正負(fù)樣本劃分和損失函數(shù)定義,相關(guān)參數(shù)為yolo_loss_type=yolov5。

  • 額外補(bǔ)充 YOLOv5對于正樣本的定義:在不同尺度下只要真框和給定錨框的的比值在4倍以內(nèi),該錨框即可負(fù)責(zé)預(yù)測該真值框。并根據(jù)gx,gy在grid中心點(diǎn)位置的偏移量會額外新增兩個grid坐標(biāo)來預(yù)測。通過這一系列操作,增加了正樣本數(shù)量,加速模型收斂速度。而YOLO原系列對于真框,在不同尺度下只有在該尺度下IOU交并集最大的錨框負(fù)責(zé)預(yù)測該真框,其他錨框不負(fù)責(zé),所以由于較少的正樣本量,模型收斂速度較慢。

擴(kuò)展特性:

  • Group Norm

  • Modulated Deformable Convolution

  • Focus

  • Spatial Pyramid Pooling

  • FPN-PAN

  • coord conv

  • drop block

  • SAM

代碼結(jié)構(gòu)說明


yolodet-pytorch

├──cfg              #模型配置文件所在目錄(yolov5,yolov4等)

├──tools            #工具包,包含訓(xùn)練代碼,測試代碼和推斷代碼入口。

├──yolodet          #YOLO檢測框架核心代碼庫

│  ├──apis          #提供檢測框架的訓(xùn)練,測試和推斷和模型保存的接口

│  ├──dataset      #包含DateSet,DateLoader和數(shù)據(jù)增強(qiáng)等通用方法

│  ├──models        #YOLO檢測框架的核心組件集結(jié)地

│  │  ├──detectors  #所有類型檢測器集結(jié)地

│  │  ├──backbones  #所有骨干網(wǎng)絡(luò)集結(jié)地

│  │  ├──necks      #所有necks集結(jié)地

│  │  ├──heads      #heads集結(jié)地

│  │  ├──loss      #所有損失函數(shù)集結(jié)地

│  │  ├──hooks      #hooks集結(jié)地(學(xué)習(xí)率調(diào)整,模型保存,訓(xùn)練日志,權(quán)重更新等)

│  │  ├──utils      #所有工具方法集結(jié)地

安裝說明

安裝和數(shù)據(jù)集準(zhǔn)備請參考 INSTALL.md 。

快速開始

請參閱 GETTING_STARTED.md 了解YOLODet的基本用法。

預(yù)訓(xùn)練模型

查看預(yù)訓(xùn)練模型請點(diǎn)擊【這里

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

友情鏈接更多精彩內(nèi)容