YOLOv4训练自己的数据
YOLOv4训练自己的数据集保姆级攻略
一、训练前的准备
1.如何获取代码
https://github.com/AlexeyAB/darknet
2.修改MakeFile文件
GPU=1
CUDNN=1
CUDNN_HALF=0
OPENCV=1
AVX=0
OPENMP=0
LIBSO=1
ZED_CAMERA=0
ZED_CAMERA_v2_8=0

修改成自己的地址
3.下载权重
4.测试初始训练权重效果
在./darknet文件夹下的命令行中输入make clean, make
编译成功后:./darknet detect cfg/yolov4.cfg yolov4.weights data/dog.jp
成功后在主目录下出现predictions.jpg 图片为预测后的图片。
二、训练自己的数据集
1.数据集文件夹格式
- VOCdevkit
- VOC2007
- Annotations
- ImageSets
- Layout
- Main
- Segmentation
- JPEGImages
- VOC2007
2. main文件夹下生成训练集和测试集文件
此处是代码
// An highlighted block
var foo = 'bar';
3. 修改voc.name
vehicle
ship
plane
4. 修改 voc.data
classes= 3 # voc.name中类的个数
train = ./XXX/2007_train.txt # 此文件由voc_lable.py生成
valid = ./XXX/2007_test.txt #(此文件由voc_lable.py生成
names = ./darknet/data/voc.name #(可以修改为自己的绝对路径)
backup = backup/ # 权重保存的位置
5. voc_label.py生成训练用的txt文件和标签文件夹
修改该文件中的类和地址,然后直接运行即可
6. 修改yolov4.cfg文件
[net]
batch=64
subdivisions=64 # 如果训练时出现out of memory 该值翻倍。
# Training
#width=512
#height=512
width=608
height=608
channels=3
momentum=0.949
decay=0.0005
angle=0
saturation = 1.5
exposure = 1.5
hue=.1
learning_rate=0.0013 # 学习率
burn_in=1000
max_batches = 10000 # 最大迭代数 一般为类数*2000,但是最大迭代数一般不小于
训练图片的数量
policy=steps
steps=8000,9000
scales=.1,.1
[convolutional]
size=1
stride=1
pad=1
filters=24 # (class+5)*3
activation=linear
[yolo]
mask = 6,7,8
anchors = 22, 38, 43, 36, 31, 54, 38, 89, 53, 66, 64,101, 107, 74, 105,169, 193,303
# anchors 必须修改
classes=3 # voc.name中的类数
num=9
jitter=.3
ignore_thresh = .7
truth_thresh = 1
random=1
scale_x_y = 1.05
iou_thresh=0.213
cls_normalizer=1.0
iou_normalizer=0.07
iou_loss=ciou
nms_kind=greedynms
beta_nms=0.6
max_delta=5
7.生成anchors
./darknet detector calc_anchors data/voc.data -num_of_clusters 9 -width 608 -height 608
三、训练
#训练不带日志
./darknet detector train cfg/voc.data cfg/yolov4.cfg /backup/yolov4.weights -gpus 0,1,2,3
带日志
./darknet detector train cfg/voc.data cfg/yolov4.cfg /backup/yolov4.weights -gpus 0,1,2,3 -dont_show - mjpeg_port 8090 -map 2>1 |tee
计算所有值
./darknet detector map data/voc.data cfg/yolov4.cfg backup/yolov4_best.weights
批量测试
./darknet detector test data/voc.data cfg/yolo4.cfg backup/yolo_best.weights