← 开源
bubbliiiing

yolov4-tiny-pytorch

这是一个YoloV4-tiny-pytorch的源码,可以用于训练自己的模型。

Model DevelopmentArchitecturePython
在 GitHub 打开
增长势头
+024 小时新增 Star0.0%
822
Star
183
Fork
+0
本周
1
贡献者
创建于 2020-07-04 · 更新于 2026-08-29 · 今日第 13462 名
主要开发者

bubbliiiing/yolov4-tiny-pytorch 排名第 13,462,有 822 个星标。

同类别比较

bubbliiiing/yolov4-tiny-pytorch 排名第 13,462,此处有 8 个同类条目;facebookresearch/vilbert-multi-task 排名第 13,464。

同类别比较
名称排名指标
whitecircle/halo13,450
语言:
Python
星标数:
824
分叉数:
39
简介:
Halo is an open-source framework built by White Circle for training large language and multimodal models
deepgram/kur13,455
语言:
Python
星标数:
823
分叉数:
108
简介:
Descriptive Deep Learning
lucidrains/PaLM-pytorch13,456
语言:
Python
星标数:
823
分叉数:
80
简介:
Implementation of the specific Transformer architecture from PaLM - Scaling Language Modeling with Pathways
sail-sg/Adan13,458
语言:
Python
星标数:
823
分叉数:
73
简介:
Adan: Adaptive Nesterov Momentum Algorithm for Faster Optimizing Deep Models
facebookresearch/vilbert-multi-task13,464
语言:
Jupyter Notebook
星标数:
822
分叉数:
174
简介:
Multi Task Vision and Language
hollowstrawberry/kohya-colab13,465
语言:
Jupyter Notebook
星标数:
822
分叉数:
137
简介:
Accessible Google Colab notebooks for Stable Diffusion Lora training, based on the work of kohya-ss and Linaqruf
tkipf/relational-gcn13,469
语言:
Python
星标数:
822
分叉数:
130
简介:
Keras-based implementation of Relational Graph Convolutional Networks
andyzeng/tsdf-fusion13,473
语言:
Cuda
星标数:
821
分叉数:
135
简介:
Fuse multiple depth frames into a TSDF voxel volume.
关键参数与规格
关键参数与规格
参数值
语言Python
类别Model Development
子类别Architecture
星标数822
分叉数183
贡献者1
创建日期2020-07-04
更新日期2026-08-29
1 天星标数0
7 天星标数0
排名13,462
上次排名13,355
排名变化-107
7 天星标排名13,949
上次 7 天星标排名13,972
7 天星标排名变化23
总星标排名13,035
上次总星标排名13,013
总星标排名变化-22
国家China
README 摘录

参考资料 Reference Top News ** **:**支持多GPU训练,新增各个种类目标数量计算,新增heatmap。 ** ** **:**进行了大幅度的更新,修改了loss组成,使得分类、目标、回归loss的比例合适、支持step、cos学习率下降法、支持adam、sgd优化器选择、支持学习

率根据batch_size自适应调整、新增图片裁剪。 ** BiliBili视频中的原仓库地址为: ** **:**进行了大幅度的更新,增加了大量注释、增加了大量可调整参数、对代码的组成模块进行修改、增加fps、视频预测、批量预测等功能。 1

| YoloX | YoloV7 | YoloV7-tiny | 性能情况 | 训练数据集 | 权值文件名称 | 测试数据集 | 输入图片大小 | mAP 0. 链接: 提取码: iauv VOC数据集下载地址如下,里面已经包括了训练集、测试集、验证集(与测试集一样),无需再次划分: 链接: 提取

码: j5ge 训练步骤 a、训练VOC07+12数据集 1. 数据集的准备 **本文使用VOC格式进行训练,训练前需要下载好VOC07+12的数据集,解压后放在根目录** 2. py里面的annotation_mode=2,运行voc_annotation. py里面修改model_path以及classes_path,这两个

参数必须要修改。 数据集的准备 **本文使用VOC格式进行训练,训练前需要自己制作好数据集,** 训练前将标签文件放在VOCdevkit文件夹下的VOC2007文件夹下的Annotation中。 训练前将图片文件放在VOCdevkit文件夹下的VOC2007文件

夹下的JPEGImages中。 数据集的处理 在完成数据集的摆放之后,我们需要利用voc_annotation. 第一次训练可以仅修改classes_path,classes_path用于指向检测类别所对应的txt。 ** **classes_path用于指向检测类别所对应的txt,这个txt和voc_annotation. py文

件里面,在如下部分修改model_path和classes_path使其对应训

常见问题

记录了多少星标和分叉?

bubbliiiing/yolov4-tiny-pytorch 有 822 个星标和 183 个分叉。

仓库排名是多少?

bubbliiiing/yolov4-tiny-pytorch 排名第 13,462。

记录的语言和类别是什么?

bubbliiiing/yolov4-tiny-pytorch 有 822 个星标,语言为 Python,类别为 Model Development。

哪个仓库排名最接近?

bubbliiiing/yolov4-tiny-pytorch 与 facebookresearch/vilbert-multi-task 比较,后者排名第 13,464,有 822 个星标。

README

YOLOV4-Tiny:You Only Look Once-Tiny目标检测模型在Pytorch当中的实现


目录

  1. 仓库更新 Top News
  2. 相关仓库 Related code
  3. 性能情况 Performance
  4. 所需环境 Environment
  5. 文件下载 Download
  6. 训练步骤 How2train
  7. 预测步骤 How2predict
  8. 评估步骤 How2eval
  9. 参考资料 Reference

Top News

2022-04:支持多GPU训练,新增各个种类目标数量计算,新增heatmap。

2022-03:进行了大幅度的更新,修改了loss组成,使得分类、目标、回归loss的比例合适、支持step、cos学习率下降法、支持adam、sgd优化器选择、支持学习率根据batch_size自适应调整、新增图片裁剪。 BiliBili视频中的原仓库地址为:https://github.com/bubbliiiing/yolov4-tiny-pytorch/tree/bilibili

2021-10:进行了大幅度的更新,增加了大量注释、增加了大量可调整参数、对代码的组成模块进行修改、增加fps、视频预测、批量预测等功能。

相关仓库

模型 路径
YoloV3 https://github.com/bubbliiiing/yolo3-pytorch
Efficientnet-Yolo3 https://github.com/bubbliiiing/efficientnet-yolo3-pytorch
YoloV4 https://github.com/bubbliiiing/yolov4-pytorch
YoloV4-tiny https://github.com/bubbliiiing/yolov4-tiny-pytorch
Mobilenet-Yolov4 https://github.com/bubbliiiing/mobilenet-yolov4-pytorch
YoloV5-V5.0 https://github.com/bubbliiiing/yolov5-pytorch
YoloV5-V6.1 https://github.com/bubbliiiing/yolov5-v6.1-pytorch
YoloX https://github.com/bubbliiiing/yolox-pytorch
YoloV7 https://github.com/bubbliiiing/yolov7-pytorch
YoloV7-tiny https://github.com/bubbliiiing/yolov7-tiny-pytorch

性能情况

训练数据集 权值文件名称 测试数据集 输入图片大小 mAP 0.5:0.95 mAP 0.5
VOC07+12+COCO yolov4_tiny_weights_voc.pth VOC-Test07 416x416 - 77.8
VOC07+12+COCO yolov4_tiny_weights_voc_SE.pth VOC-Test07 416x416 - 78.4
VOC07+12+COCO yolov4_tiny_weights_voc_CBAM.pth VOC-Test07 416x416 - 78.6
VOC07+12+COCO yolov4_tiny_weights_voc_ECA.pth VOC-Test07 416x416 - 77.6
COCO-Train2017 yolov4_tiny_weights_coco.pth COCO-Val2017 416x416 21.5 41.0

所需环境

torch==1.2.0

文件下载

训练所需的各类权值均可在百度网盘中下载。
链接: https://pan.baidu.com/s/1ABR6lOd0_cs5_2DORrMSRw
提取码: iauv

VOC数据集下载地址如下,里面已经包括了训练集、测试集、验证集(与测试集一样),无需再次划分:
链接: https://pan.baidu.com/s/19Mw2u_df_nBzsC2lg20fQA
提取码: j5ge

训练步骤

a、训练VOC07+12数据集

  1. 数据集的准备
    本文使用VOC格式进行训练,训练前需要下载好VOC07+12的数据集,解压后放在根目录

  2. 数据集的处理
    修改voc_annotation.py里面的annotation_mode=2,运行voc_annotation.py生成根目录下的2007_train.txt和2007_val.txt。

  3. 开始网络训练
    train.py的默认参数用于训练VOC数据集,直接运行train.py即可开始训练。

  4. 训练结果预测
    训练结果预测需要用到两个文件,分别是yolo.py和predict.py。我们首先需要去yolo.py里面修改model_path以及classes_path,这两个参数必须要修改。
    model_path指向训练好的权值文件,在logs文件夹里。
    classes_path指向检测类别所对应的txt。

    完成修改后就可以运行predict.py进行检测了。运行后输入图片路径即可检测。

b、训练自己的数据集

  1. 数据集的准备
    本文使用VOC格式进行训练,训练前需要自己制作好数据集,
    训练前将标签文件放在VOCdevkit文件夹下的VOC2007文件夹下的Annotation中。
    训练前将图片文件放在VOCdevkit文件夹下的VOC2007文件夹下的JPEGImages中。

  2. 数据集的处理
    在完成数据集的摆放之后,我们需要利用voc_annotation.py获得训练用的2007_train.txt和2007_val.txt。
    修改voc_annotation.py里面的参数。第一次训练可以仅修改classes_path,classes_path用于指向检测类别所对应的txt。
    训练自己的数据集时,可以自己建立一个cls_classes.txt,里面写自己所需要区分的类别。
    model_data/cls_classes.txt文件内容为:

cat
dog
...

修改voc_annotation.py中的classes_path,使其对应cls_classes.txt,并运行voc_annotation.py。

  1. 开始网络训练
    训练的参数较多,均在train.py中,大家可以在下载库后仔细看注释,其中最重要的部分依然是train.py里的classes_path。
    classes_path用于指向检测类别所对应的txt,这个txt和voc_annotation.py里面的txt一样!训练自己的数据集必须要修改!
    修改完classes_path后就可以运行train.py开始训练了,在训练多个epoch后,权值会生成在logs文件夹中。

  2. 训练结果预测
    训练结果预测需要用到两个文件,分别是yolo.py和predict.py。在yolo.py里面修改model_path以及classes_path。
    model_path指向训练好的权值文件,在logs文件夹里。
    classes_path指向检测类别所对应的txt。

    完成修改后就可以运行predict.py进行检测了。运行后输入图片路径即可检测。

预测步骤

a、使用预训练权重

  1. 下载完库后解压,在百度网盘下载yolo_weights.pth,放入model_data,运行predict.py,输入
img/street.jpg
  1. 在predict.py里面进行设置可以进行fps测试和video视频检测。

b、使用自己训练的权重

  1. 按照训练步骤训练。
  2. 在yolo.py文件里面,在如下部分修改model_path和classes_path使其对应训练好的文件;model_path对应logs文件夹下面的权值文件,classes_path是model_path对应分的类。
_defaults = {
    #--------------------------------------------------------------------------#
    #   使用自己训练好的模型进行预测一定要修改model_path和classes_path!
    #   model_path指向logs文件夹下的权值文件,classes_path指向model_data下的txt
    #   如果出现shape不匹配,同时要注意训练时的model_path和classes_path参数的修改
    #--------------------------------------------------------------------------#
    "model_path"        : 'model_data/yolov4_tiny_weights_coco.pth',
    "classes_path"      : 'model_data/coco_classes.txt',
    #---------------------------------------------------------------------#
    #   anchors_path代表先验框对应的txt文件,一般不修改。
    #   anchors_mask用于帮助代码找到对应的先验框,一般不修改。
    #---------------------------------------------------------------------#
    "anchors_path"      : 'model_data/yolo_anchors.txt',
    "anchors_mask"      : [[3,4,5], [1,2,3]],
    #-------------------------------#
    #   所使用的注意力机制的类型
    #   phi = 0为不使用注意力机制
    #   phi = 1为SE
    #   phi = 2为CBAM
    #   phi = 3为ECA
    #-------------------------------#
    "phi"               : 0,  
    #---------------------------------------------------------------------#
    #   输入图片的大小,必须为32的倍数。
    #---------------------------------------------------------------------#
    "input_shape"       : [416, 416],
    #---------------------------------------------------------------------#
    #   只有得分大于置信度的预测框会被保留下来
    #---------------------------------------------------------------------#
    "confidence"        : 0.5,
    #---------------------------------------------------------------------#
    #   非极大抑制所用到的nms_iou大小
    #---------------------------------------------------------------------#
    "nms_iou"           : 0.3,
    #---------------------------------------------------------------------#
    #   该变量用于控制是否使用letterbox_image对输入图像进行不失真的resize,
    #   在多次测试后,发现关闭letterbox_image直接resize的效果更好
    #---------------------------------------------------------------------#
    "letterbox_image"   : False,
    #-------------------------------#
    #   是否使用Cuda
    #   没有GPU可以设置成False
    #-------------------------------#
    "cuda"              : True,
}
  1. 运行predict.py,输入
img/street.jpg
  1. 在predict.py里面进行设置可以进行fps测试和video视频检测。

评估步骤

a、评估VOC07+12的测试集

  1. 本文使用VOC格式进行评估。VOC07+12已经划分好了测试集,无需利用voc_annotation.py生成ImageSets文件夹下的txt。
  2. 在yolo.py里面修改model_path以及classes_path。model_path指向训练好的权值文件,在logs文件夹里。classes_path指向检测类别所对应的txt。
  3. 运行get_map.py即可获得评估结果,评估结果会保存在map_out文件夹中。

b、评估自己的数据集

  1. 本文使用VOC格式进行评估。
  2. 如果在训练前已经运行过voc_annotation.py文件,代码会自动将数据集划分成训练集、验证集和测试集。如果想要修改测试集的比例,可以修改voc_annotation.py文件下的trainval_percent。trainval_percent用于指定(训练集+验证集)与测试集的比例,默认情况下 (训练集+验证集):测试集 = 9:1。train_percent用于指定(训练集+验证集)中训练集与验证集的比例,默认情况下 训练集:验证集 = 9:1。
  3. 利用voc_annotation.py划分测试集后,前往get_map.py文件修改classes_path,classes_path用于指向检测类别所对应的txt,这个txt和训练时的txt一样。评估自己的数据集必须要修改。
  4. 在yolo.py里面修改model_path以及classes_path。model_path指向训练好的权值文件,在logs文件夹里。classes_path指向检测类别所对应的txt。
  5. 运行get_map.py即可获得评估结果,评估结果会保存在map_out文件夹中。

Reference

https://github.com/qqwweee/keras-yolo3/
https://github.com/Cartucho/mAP
https://github.com/Ma-Dan/keras-yolo4

排名相邻
同类项目