写点什么

YOLODet 最强 PyTorch 版的 YOLOv5、YOLOv4、PP-YOLO、YOLOv3 复现

用户头像
wuzhihao7788
关注
发布于: 2020 年 11 月 03 日

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

YOLODet-PyTorch


YOLODet-PyTorch 是端到端基于 pytorch 框架复现 yolo 最新算法的目标检测开发套件,旨在帮助开发者更快更好地完成检测模型的训练、精度速度优化到部署全流程。YOLODet-PyTorch 以模块化的设计实现了多种主流 YOLO 目标检测算法,并且提供了丰富的数据增强、网络组件、损失函数等模块。


目前检测库下模型均要求使用 PyTorch 1.5 及以上版本或适当的 develop 版本。


内容









简介


特性:


  • 模型丰富:


YOLODet 提供了丰富的模型,涵盖最新 YOLO 检测算法的复现,包含 YOLOv5、YOLOv4、PP-YOLO、YOLOv3 等 YOLO 系列目标检测算法。


  • 高灵活度:


YOLODet 通过模块化设计来解耦各个组件,基于配置文件可以轻松地搭建各种检测模型。


支持的模型:






更多的 Backone:


  • DarkNet


  • CSPDarkNet


  • ResNet


  • YOLOv5Darknet


数据增强方法:


  • Mosaic


  • MixUp


  • Resize


  • LetterBox


  • RandomCrop


  • RandomFlip


  • RandomHSV


  • RandomBlur


  • RandomNoise


  • RandomAffine


  • RandomTranslation


  • Normalize


  • ImageToTensor


  • 相关配置使用说明请参考【这里


损失函数支持:


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


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


  • IOUAwareLoss(PP-YOLO)


  • FocalLoss


训练技巧支持:



  • 预热


  • 梯度剪切


  • 梯度累计更新


  • 多尺度训练


  • 学习率调整:Fixed,Step,Exp,Poly,Inv,Consine


  • Label Smooth


  • 强烈说明 通过实验对比发现 YOLOv5 的正负样本划分定义和损失函数定义,使得模型收敛速度较快,远超原 yolo 系列对正负样本的划分和损失定义。对于如果卡资源不充足,想在短时间内收敛模型,可采用 yolov5 的正负样本划分和损失函数定义,相关参数为yolo_loss_type=yolov5


  • 额外补充 YOLOv5 对于正样本的定义:在不同尺度下只要真框和给定锚框的的比值在 4 倍以内,该锚框即可负责预测该真值框。并根据 gx,gy 在 grid 中心点位置的偏移量会额外新增两个 grid 坐标来预测。通过这一系列操作,增加了正样本数量,加速模型收敛速度。而 YOLO 原系列对于真框,在不同尺度下只有在该尺度下 IOU 交并集最大的锚框负责预测该真框,其他锚框不负责,所以由于较少的正样本量,模型收敛速度较慢。


扩展特性:


  • [x] Group Norm


  • [x] Modulated Deformable Convolution


  • [x] Focus


  • [x] Spatial Pyramid Pooling


  • [x] FPN-PAN


  • [x] coord conv


  • [x] drop block


  • [x] SAM


代码结构说明



yolodet-pytorch
├──cfg #模型配置文件所在目录(yolov5,yolov4等)
├──tools #工具包,包含训练代码,测试代码和推断代码入口。
├──yolodet #YOLO检测框架核心代码库
│ ├──apis #提供检测框架的训练,测试和推断和模型保存的接口
│ ├──dataset #包含DateSet,DateLoader和数据增强等通用方法
│ ├──models #YOLO检测框架的核心组件集结地
│ │ ├──detectors #所有类型检测器集结地
│ │ ├──backbones #所有骨干网络集结地
│ │ ├──necks #所有necks集结地
│ │ ├──heads #heads集结地
│ │ ├──loss #所有损失函数集结地
│ │ ├──hooks #hooks集结地(学习率调整,模型保存,训练日志,权重更新等)
│ │ ├──utils #所有工具方法集结地
复制代码


安装说明


安装和数据集准备请参考 INSTALL.md


快速开始


请参阅 GETTING_STARTED.md 了解 YOLODet 的基本用法。


预训练模型


查看预训练模型请点击【这里


用户头像

wuzhihao7788

关注

还未添加个人签名 2020.11.03 加入

还未添加个人简介

评论

发布
暂无评论
YOLODet 最强PyTorch版的YOLOv5、YOLOv4、PP-YOLO、YOLOv3复现