darknet+yolov3-tiny训练模型

树莓派+NCS+yolov3-tiny实现目标检测

前言

深度学习的优劣绝大部分取决于模型训练的好坏,这里作为一个小白,踩了许多坑,写此博客作为参考和笔记。希望能帮到自己和正在摸索的新人,如有侵权,勿忘告知!

目录

  1. 调参
  2. 训练模型
  3. 保存模型
  4. 模型转换

调参

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

模型转换

  1. darknet(.weights .names)–>tf(.pb)
	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
  1. tf(.pb)–>IR(xml bin)
	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
  1. FP16
    ##mo_tf.py yolo_v3.json
    /opt/intel/openvino/deployment_tools/model_optimizer/mo_tf.py
    /opt/intel/openvino/deployment_tools/model_optimizer/extensions/front/tf/yolo_v3.json
    “”
    //yolo_v3_tiny.json与训练时.cfg文件中保持一致
    [
    {
    “id”: “TFYOLOV3”,
    “match_kind”: “general”
    “custom_attributes”: {
    “classes”: 3,
    “anchors”: [10,14, 23,27, 37,58, 81,82, 135,169, 344,319],
    “coords”: 4,
    “num”: 6,
    “masks”: [0,1,2],
    “entry_points”: [“detector/yolo-v3-tiny/Reshape”,“detector/yolo-v3-tiny/Reshape_4”]
    }
    }
    ]
    “”
    5 8619
    15 2873

参考链接

darknet训练自己的模型
OpenVINO-YoloV3测试可行的例子
yolo模型转换IR链接地址
标准IR模型下载地址

你可能感兴趣的:(深度学习,图像识别)