github地址:https://github.com/wuzhihao7788/yolodet-pytorch
YOLODet-PyTorch
YOLODet-PyTorch是端到端基于pytorch框架復(fù)現(xiàn)yolo最新算法的目標(biāo)檢測(cè)開發(fā)套件涕侈,旨在幫助開發(fā)者更快更好地完成檢測(cè)模型的訓(xùn)練沪停、精度速度優(yōu)化到部署全流程。YOLODet-PyTorch以模塊化的設(shè)計(jì)實(shí)現(xiàn)了多種主流YOLO目標(biāo)檢測(cè)算法裳涛,并且提供了豐富的數(shù)據(jù)增強(qiáng)木张、網(wǎng)絡(luò)組件、損失函數(shù)等模塊调违。
目前檢測(cè)庫下模型均要求使用PyTorch 1.5及以上版本或適當(dāng)?shù)膁evelop版本窟哺。
內(nèi)容
簡(jiǎn)介
特性:
-
模型豐富:
YOLODet提供了豐富的模型,涵蓋最新YOLO檢測(cè)算法的復(fù)現(xiàn)技肩,包含YOLOv5且轨、YOLOv4、PP-YOLO虚婿、YOLOv3等YOLO系列目標(biāo)檢測(cè)算法旋奢。
-
高靈活度:
YOLODet通過模塊化設(shè)計(jì)來解耦各個(gè)組件,基于配置文件可以輕松地搭建各種檢測(cè)模型然痊。
支持的模型:
更多的Backone:
DarkNet
CSPDarkNet
ResNet
YOLOv5Darknet
數(shù)據(jù)增強(qiáng)方法:
Mosaic
MixUp
Resize
LetterBox
RandomCrop
RandomFlip
RandomHSV
RandomBlur
RandomNoise
RandomAffine
RandomTranslation
Normalize
ImageToTensor
相關(guān)配置使用說明請(qǐng)參考【這里】
損失函數(shù)支持:
bbox loss (IOU,GIOU,DIOU,CIOU)
confidence loss(YOLOv4,YOLOv5,PP-YOLO)
IOU_Aware_Loss(PP-YOLO)
FocalLoss
訓(xùn)練技巧支持:
預(yù)熱
梯度剪切
梯度累計(jì)更新
多尺度訓(xùn)練
學(xué)習(xí)率調(diào)整:Fixed至朗,Step,Exp剧浸,Poly锹引,Inv矗钟,Consine
Label Smooth
強(qiáng)烈說明 通過實(shí)驗(yàn)對(duì)比發(fā)現(xiàn)YOLOv5的正負(fù)樣本劃分定義和損失函數(shù)定義,使得模型收斂速度較快嫌变,遠(yuǎn)超原yolo系列對(duì)正負(fù)樣本的劃分和損失定義吨艇。對(duì)于如果卡資源不充足,想在短時(shí)間內(nèi)收斂模型腾啥,可采用yolov5的正負(fù)樣本劃分和損失函數(shù)定義东涡,相關(guān)參數(shù)為
yolo_loss_type=yolov5
。額外補(bǔ)充 YOLOv5對(duì)于正樣本的定義:在不同尺度下只要真框和給定錨框的的比值在4倍以內(nèi)倘待,該錨框即可負(fù)責(zé)預(yù)測(cè)該真值框疮跑。并根據(jù)gx,gy在grid中心點(diǎn)位置的偏移量會(huì)額外新增兩個(gè)grid坐標(biāo)來預(yù)測(cè)。通過這一系列操作凸舵,增加了正樣本數(shù)量祖娘,加速模型收斂速度。而YOLO原系列對(duì)于真框贞间,在不同尺度下只有在該尺度下IOU交并集最大的錨框負(fù)責(zé)預(yù)測(cè)該真框贿条,其他錨框不負(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)練代碼峻仇,測(cè)試代碼和推斷代碼入口公黑。
├──yolodet #YOLO檢測(cè)框架核心代碼庫
│ ├──apis #提供檢測(cè)框架的訓(xùn)練,測(cè)試和推斷和模型保存的接口
│ ├──dataset #包含DateSet摄咆,DateLoader和數(shù)據(jù)增強(qiáng)等通用方法
│ ├──models #YOLO檢測(cè)框架的核心組件集結(jié)地
│ │ ├──detectors #所有類型檢測(cè)器集結(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)備請(qǐng)參考 INSTALL.md 朝蜘。
快速開始
請(qǐng)參閱 GETTING_STARTED.md 了解YOLODet的基本用法。
預(yù)訓(xùn)練模型
查看預(yù)訓(xùn)練模型請(qǐng)點(diǎn)擊【這里】