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)練技巧支持:
預(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)擊【這里】