22---
33
44### 目录
5- 1 . [ 所需环境 Environment] ( #所需环境 )
6- 2 . [ 注意事项 Attention] ( #注意事项 )
7- 3 . [ 小技巧的设置 TricksSet] ( #小技巧的设置 )
8- 4 . [ 文件下载 Download] ( #文件下载 ) )
9- 5 . [ 训练步骤 How2train] ( #训练步骤 )
10- 6 . [ 参考资料 Reference] ( #Reference )
11-
12- ### YOLOV4的改进
5+ 1 . [ 实现的内容 Achievement] ( #实现的内容 )
6+ 2 . [ 所需环境 Environment] ( #所需环境 )
7+ 3 . [ 注意事项 Attention] ( #注意事项 )
8+ 4 . [ 小技巧的设置 TricksSet] ( #小技巧的设置 )
9+ 5 . [ 文件下载 Download] ( #文件下载 )
10+ 6 . [ 预测步骤 How2predict] ( #预测步骤 )
11+ 7 . [ 训练步骤 How2train] ( #训练步骤 )
12+ 8 . [ 参考资料 Reference] ( #Reference )
13+
14+ ### 实现的内容
1315- [x] 主干特征提取网络:DarkNet53 => CSPDarkNet53
1416- [x] 特征金字塔:SPP,PAN
1517- [x] 训练用到的小技巧:Mosaic数据增强、Label Smoothing平滑、CIOU、学习率余弦退火衰减
@@ -21,6 +23,8 @@ torch==1.2.0
2123
2224### 注意事项
2325代码中的yolo4_weights.pth是基于608x608的图片训练的,但是由于显存原因。我将代码中的图片大小修改成了416x416。有需要的可以修改回来。 代码中的默认anchors是基于608x608的图片的。
26+ ** 注意不要使用中文标签,文件夹中不要有空格!**
27+ ** 在训练前需要务必在model_data下新建一个txt文档,文档中输入需要分的类,在train.py中将classes_path指向该文件** 。
2428
2529### 小技巧的设置
2630在train.py文件下:
@@ -34,17 +38,55 @@ torch==1.2.0
3438yolo4_weights.pth是coco数据集的权重。
3539yolo4_voc_weights.pth是voc数据集的权重。
3640
41+ ### 预测步骤
42+ #### 1、使用预训练权重
43+ a、下载完库后解压,在百度网盘下载yolo4_weights.pth或者yolo4_voc_weights.pth,放入model_data,运行predict.py,输入
44+ ``` python
45+ img/ street.jpg
46+ ```
47+ 可完成预测。
48+ b、利用video.py可进行摄像头检测。
49+ #### 2、使用自己训练的权重
50+ a、按照训练步骤训练。
51+ b、在yolo.py文件里面,在如下部分修改model_path和classes_path使其对应训练好的文件;** model_path对应logs文件夹下面的权值文件,classes_path是model_path对应分的类** 。
52+ ``` python
53+ _defaults = {
54+ " model_path" : ' model_data/yolo4_weights.pth' ,
55+ " anchors_path" : ' model_data/yolo_anchors.txt' ,
56+ " classes_path" : ' model_data/coco_classes.txt' ,
57+ " model_image_size" : (416 , 416 , 3 ),
58+ " confidence" : 0.5 ,
59+ " cuda" : True
60+ }
61+
62+ ```
63+ c、运行predict.py,输入
64+ ``` python
65+ img/ street.jpg
66+ ```
67+ 可完成预测。
68+ d、利用video.py可进行摄像头检测。
69+
3770### 训练步骤
38711、本文使用VOC格式进行训练。
39722、训练前将标签文件放在VOCdevkit文件夹下的VOC2007文件夹下的Annotation中。
40733、训练前将图片文件放在VOCdevkit文件夹下的VOC2007文件夹下的JPEGImages中。
41744、在训练前利用voc2yolo4.py文件生成对应的txt。
42- 5、再运行根目录下的voc_annotation.py,运行前需要将classes改成你自己的classes。
75+ 5、再运行根目录下的voc_annotation.py,运行前需要将classes改成你自己的classes。** 注意不要使用中文标签,文件夹中不要有空格! **
4376``` python
4477classes = [" aeroplane" , " bicycle" , " bird" , " boat" , " bottle" , " bus" , " car" , " cat" , " chair" , " cow" , " diningtable" , " dog" , " horse" , " motorbike" , " person" , " pottedplant" , " sheep" , " sofa" , " train" , " tvmonitor" ]
4578```
46- 6、就会生成对应的2007_train.txt,每一行对应其图片位置及其真实框的位置。
47- 7、在训练前需要修改model_data里面的voc_classes.txt文件,需要将classes改成你自己的classes。
79+ 6、此时会生成对应的2007_train.txt,每一行对应其** 图片位置** 及其** 真实框的位置** 。
80+ 7、** 在训练前需要务必在model_data下新建一个txt文档,文档中输入需要分的类,在train.py中将classes_path指向该文件** ,示例如下:
81+ ``` python
82+ classes_path = ' model_data/new_classes.txt'
83+ ```
84+ model_data/new_classes.txt文件内容为:
85+ ``` python
86+ cat
87+ dog
88+ ...
89+ ```
48908、运行train.py即可开始训练。
4991
5092### mAP目标检测精度计算更新
0 commit comments