深度学习的优劣绝大部分取决于模型训练的好坏,这里作为一个小白,踩了许多坑,写此博客作为参考和笔记。希望能帮到自己和正在摸索的新人,如有侵权,勿忘告知!
3.3修改配置文件
i>修改.names文件:
// 只保留自己所需要识别的
a
b
c
ii>修改.date文件:
classes= 1
train = /home/pty/darknet/train/train.txt
valid = /home/pty/darknet/train/test.txt
names = /home/pty/darknet/voc.names
backup = /home/pty/darknet/backup //权重保存的位置
iii>修改cfg/yolov3-tiny.cfg文件:
找到文件中类似代码段(yolo层附件),共2处:
[convolutional]
size=1
stride=1
pad=1
filters=18
activation=linear
[yolo]
mask = 3,4,5
anchors = 10,14, 23,27, 37,58, 81,82, 135,169, 344,319
classes=3 //训练识别的类别数
num=6 //与anchors保持一致
jitter=.3
ignore_thresh = .7
truth_thresh = 1
random=0
需要改变filters为 3*(classes+5),原因为:https://github.com/pjreddie/darknet/issues/582,同时修改下面的classes的种类。
//生成预训练模型
// An highlighted block
./darknet partial ./cfg/yolov3.cfg ./yolov3.weights ./yolov3.conv.74
//检测权重精度
// An highlighted block
./darknet detector map digger.data yolov3-tiny-signals.cfg backup/yolov3-tiny-signals_3000.weights
//darknet开始训练
// An highlighted block
sudo ./darknet detector train cfg/voc.data cfg/yolov3-tiny.cfg yolov3-tiny.conv.15
./darknet detector train /home/zxx/digger/digger.data /home/zxx/digger/digger.cfg /home/zxx/darknetyolov3-tiny.conv.15
//从中止处继续训练
// An highlighted block
./darknet detector train digger.data yolov3-tiny-signals.cfg backup/yolov3-tiny-signals_3000.weights
python3 convert_weights.py --class_names digger.names --weights_file yolov3-tiny-signals_4000.weights --tiny --data_format NHWC
python3 convert_weights_pb.py --class_names digger.names --weights_file yolov3-tiny-signals_4000.weights --tiny --data_format NHWC
python3 mo_tf.py --input_model frozen_darknet_yolov3_model.pb --tensorflow_use_custom_operations_config yolo_v3_tiny.json --input_shape [1,416,416,3] --data_type
darknet训练自己的模型
OpenVINO-YoloV3测试可行的例子
yolo模型转换IR链接地址
标准IR模型下载地址