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 { 2023 bestyolo ,
title = {{ BestYOLO }: Making research and competition easier },
author = { Rongsheng Wang },
repo = { github https : // github . com / WangRongsheng / BestYOLO },
year = { 2023 }
}
貢獻