BestYOLO是一个以科研和竞赛为导向的最好的YOLO实践框架!
目前BestYOLO是一个完全基于YOLOv5 v7.0 进行改进的开源库,该库将始终秉持以落地应用为导向,以轻便化使用为宗旨,简化各种模块的改进。目前已经集成了基于torchvision.models 模型为Backbone的YOLOv5目标检测算法,同时也将逐渐开源更多YOLOv5应用程序。
?改进
- Backbone-ResNet18 对齐 resnet18
- Backbone-RegNet_y_400mf 对齐 regnet_y_400mf
- Backbone-MobileNetV3 small 对齐 mobilenet_v3_small
- Backbone-EfficientNet_B0 对齐 efficientnet_b0
- Backbone-ResNet34 对齐 resnet34
- Backbone-ResNet50 对齐 resnet50
- Backbone-EfficientNetV2_s 对齐 efficientnet_v2_s
- Backbone-EfficientNet_B1 对齐 efficientnet_b1
- Backbone-MobileNetV2 对齐 mobilenet_v2
- Backbone-wide_resnet50_2 对齐 wide_resnet50_2
- Backbone-VGG11_BN 对齐 vgg11_bn
- Backbone-Convnext Tiny 对齐 convnext_tiny
所有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_multiple
和width_multiple
可以同时设置为1试试,说不定会有不错的效果。
SPP是空间金字塔池化,作用是一个实现一个自适应尺寸的输出。(传统的池化层如最大池化、平均池化的输出大小是和输入大小挂钩的,但是我们最后做全连接层实现分类的时候需要指定全连接的输入,所以我们需要一种方法让神经网络在某层得到一个固定维度的输出,而且这种方法最好不是resize(resize会失真),由此SPP应运而生,其最早是何凯明提出,应用于RCNN模型)。当今的SPP在faster-rcnn上已经发展为今天的Multi-Scale-ROI-Align,而在Yolo上发展为SPPF。
- yolov5n(SPPF)
- yolov5n-SPP
- yolov5n-SimSPPF
- yolov5n-ASPP
- yolov5n-RFB
- yolov5n-SPPCSPC
- yolov5n-SPPCSPC_group
- yolov5n-SimCSPSPPF
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 |
- yolov5n
- yolov5n-FPN-AC
- yolov5n-PAN-AC
- yolov5n-FPN+PAN-AC
- yolov5n-FPN-AS
- yolov5n-PAN-AS
- yolov5n-FPN+PAN-AS
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 |
- Optimal Transport Assignment
- 辅助训练Optimal Transport Assignment
- Soft-NMS
训练不要使用Soft-NMS
,耗时太久,请在val
阶段开启,适用于小目标重叠数据。
- Decoupled-head
- DCNv2
- WBF
- DCNv3
- NWD
应用
-
TFjs部署使用
-
TensorRT部署YOLOv5
-
Pyqt GUI使用
?技巧
- YOLOv5模型训练测试以及多端部署教学内容
- 从零到一看懂YOLOv5-OneFlow实现
- YOLOV5的FPS计算问题
- YOLO系列的Neck模块介绍
- YOLOv5数据增强详解 (hyp.scratch-low.yaml 和 augmentations.py)
- YOLOv5任意版本添加Grad-CAM热图可视化
- YOLOv5训练出的模型权重加解密方法
- YOLOv5系列:6.修改Soft-NMS,Soft-CIoUNM...
- YOLOv5系列:空间金字塔池化改进 SPPF / SPPFCSPC...
- YOLOv5|针对视觉任务的独立自注意力层
- YOLOv5项目代码加密
- YOLOv5:添加漏检率和虚检率输出
- YOLOv5解析 | 绘制results.csv文件数据对比图
- YOLOv5的Tricks-图片采样策略——按数据集各类别权重采样
- YOLOv5如何进行区域目标检测(手把手教学)
- 2D目标检测论文大盘点(37篇)
- 连夜看了30多篇改进YOLO的中文核心期刊
- 知网最新改进 YOLO 核心论文合集 | 22篇创新点速览
- 小目标检测大杀器:yolov5-pip 和sahi
- 小目标检测大杀器:填鸭式数据增强
应注意:训练和推理数据保持相同的数据形式,即不能通过非切图训练,根据切图推理!
- 一个不成熟的优化器选择参考:
?参考
- https://github.com/ultralytics/yolov5/tree/v7.0
- https://github.com/ppogg/YOLOv5-Lite
- https://github.com/deepcam-cn/yolov5-face
- https://github.com/Gumpest/YOLOv5-Multibackbone-Compression
- https://github.com/jizhishutong/YOLOU
- https://github.com/Bobo-y/flexible-yolov5
- https://github.com/iscyy/yoloair
- https://github.com/WangQvQ/Yolov5_Magic
- https://github.com/Hongyu-Yue/yoloV5_modify_smalltarget
- https://github.com/wuzhihao7788/yolodet-pytorch
- https://github.com/iscyy/yoloair2
- https://github.com/positive666/yolo_research
- https://github.com/Javacr/PyQt5-YOLOv5
- https://github.com/yang-0201/YOLOv6_pro
- https://github.com/yhwang-hub/dl_model_deploy
- https://github.com/FeiYull/TensorRT-Alpha
- https://github.com/sjinzh/awesome-yolo-object-detection
- https://github.com/z1069614715/objectdetection_script
- https://github.com/icey-zhang/SuperYOLO
- https://github.com/akashAD98/awesome-yolo-object-detection
?工作
- https://github.com/cv516Buaa/tph-yolov5
- https://github.com/icey-zhang/SuperYOLO
- https://github.com/luogen1996/OneTeacher
- https://github.com/AlibabaResearch/efficientteacher
- https://github.com/YOLOonMe/EMA-attention-module
- https://github.com/maggiez0138/yolov5_quant_sample
- https://github.com/OutBreak-hui/YoloV5-Flexible-and-Inference
- https://github.com/Johnathan-Xie/ZSD-YOLO
- https://github.com/chengshuxiao/YOLOv5-ODConvNeXt
- https://github.com/LSH9832/edgeyolo
- https://github.com/Koldim2001/YOLO-Patch-Based-Inference
?引用
@article{2023bestyolo,
title={{BestYOLO}: Making research and competition easier},
author={Rongsheng Wang},
repo={github https://github.com/WangRongsheng/BestYOLO},
year={2023}
}
贡献