Skip to content

WangRongsheng/BestYOLO

Repository files navigation

BestYOLO是一个以科研和竞赛为导向的最好的YOLO实践框架!

目前BestYOLO是一个完全基于YOLOv5 v7.0 进行改进的开源库,该库将始终秉持以落地应用为导向,以轻便化使用为宗旨,简化各种模块的改进。目前已经集成了基于torchvision.models 模型为Backbone的YOLOv5目标检测算法,同时也将逐渐开源更多YOLOv5应用程序。

🌟改进

所有Backbone都支持开启预训练权重,只需添加pretrained=True到每个common.py 的模型中。torchvision.models中的预训练权重都是基于ImageNet-1K数据集训练的!

models layers parameters model size(MB)
yolov5n 214 1766623 3.9
MobileNetV3s 313 2137311 4.7
efficientnet_b0 443 6241531 13.0
RegNety400 450 5000191 10.5
ResNet18 177 12352447 25.1
ResNet34 223 22460607 45.3
ResNet50 258 27560895 55.7
EfficientNetV2_s 820 22419151 45.8
efficientnet_b1 539 6595615 13.8
mobilenet_v2 320 4455295 9.4
wide_resnet50_2 258 70887103 142.3
vgg11_bn 140 10442879 21.9
convnext_tiny 308 29310175 59.0

.yaml配置文件中的depth_multiplewidth_multiple可以同时设置为1试试,说不定会有不错的效果。

SPP是空间金字塔池化,作用是一个实现一个自适应尺寸的输出。(传统的池化层如最大池化、平均池化的输出大小是和输入大小挂钩的,但是我们最后做全连接层实现分类的时候需要指定全连接的输入,所以我们需要一种方法让神经网络在某层得到一个固定维度的输出,而且这种方法最好不是resize(resize会失真),由此SPP应运而生,其最早是何凯明提出,应用于RCNN模型)。当今的SPP在faster-rcnn上已经发展为今天的Multi-Scale-ROI-Align,而在Yolo上发展为SPPF。

models layers parameters
yolov5n(SPPF) 214 1766623
yolov5n-SPP 217 1766623
yolov5n-SimSPPF 216 1766623
yolov5n-ASPP 214 3831775
yolov5n-RFB 251 1932287
yolov5n-SPPCSPC 232 3375071
yolov5n-SPPCSPC_group 232 2047967
yolov5n-SimCSPSPPF 229 3375071
models layers parameters
yolov5n 214 1766623
yolov5n-FPN-AC 188 1858399
yolov5n-PAN-AC 186 1642591
yolov5n-FPN+PAN-AC 160 1734367
yolov5n-FPN-AS 204 2106847
yolov5n-PAN-AS 194 1891039
yolov5n-FPN+PAN-AS 184 2231263

训练不要使用Soft-NMS,耗时太久,请在val阶段开启,适用于小目标重叠数据。

💻应用

🌈技巧


  1. 小目标检测大杀器:yolov5-pipsahi
  2. 小目标检测大杀器:填鸭式数据增强

应注意:训练和推理数据保持相同的数据形式,即不能通过非切图训练,根据切图推理!

  1. 一个不成熟的优化器选择参考:

📋参考

💫工作

🔔引用

@article{2023bestyolo,
  title={{BestYOLO}: Making research and competition easier},
  author={Rongsheng Wang},
  repo={github https://github.com/WangRongsheng/BestYOLO},
  year={2023}
}

🚀贡献

Forkers repo roster for @WangRongsheng/BestYOLO

Stargazers repo roster for @WangRongsheng/BestYOLO

Star History Chart