YOLO基础教程(七):darkflow训练自己的数据

参考官方说明:https://github.com/thtrieu/darkflow

darkflow是将darknet翻译为tensorflow的产物。 加载训练后的权重,使用Tensorflow重新训练/微调,可以将常量graph def导出到移动设备进行使用。

  • 创建一个配置文件tiny-yolo-voc.cfg的副本并根据您的偏好重新命名它tiny-yolo-voc-4c.cfg(需要保留原始的tiny-yolo-voc.cfg文件)。
  • 在tiny-yolo-voc-4c.cfg中,将[region]层(最后一层)中的类更改为要训练的类的数量。 在我们的例子中,类被设置为4。

YOLO基础教程(七):darkflow训练自己的数据_第1张图片

  • 在tiny-yolo-voc-4c.cfg中,将[convolutional]层(第二层到最后一层)中的滤镜更改为num (classes + 5)。 在我们的例子中,num是5并且类是4,所以5 (4 + 5)= 45,因此过滤器被设置为45。
  • 更改labels.txt以包含要训练的标签(标签数量应与您在tiny-yolo-voc-4c.cfg文件中设置的分类数量相同)。 在我们的例子中,labels.txt将包含4个标签。
  • 为什么我应该保留原始的tiny-yolo-voc.cfg文件不变?

当darkflow发现正在加载tiny-yolo-voc.weights时,它会在cfg/文件夹中查找tiny-yolo-voc.cfg,并将该配置文件与您使用--model cfg/tiny-yolo-voc-4c.cfg设置的新配置文件进行比较。 在这种情况下,除了最后两个图层外,每个图层都具有相同的权重数量,所以它会将权重加载到所有图层中,直到后两个图层,因为它们现在包含不同数量的权重。

输入指令:

python flow --model cfg/tiny-yolo-voc-4c.cfg --load bin/tiny-yolo-voc.weights --train --annotation VOCdevkit\VOC2007\Annotations --dataset VOCdevkit\VOC2007\JPEGImages --savepb --gpu 0.7 --epoch 30

训练完成后,将创建一个built_graph文件夹,里面有 .meta 和 .pb文件。darkflow支持从.pb和.meta文件加载以生成预测,可以设置“pbLoad”和“metaLoad”选项来代替您通常设置的modelload选项。

option = {
    'pbLoad': 'built_graph/tiny-yolo-voc-4c.pb',
    'metaLoad': 'built_graph/tiny-yolo-voc-4c.meta',
    'threshold': 0.1,
    'gpu': 0.7
}

完整翻译可参阅:https://blog.csdn.net/wc781708249/article/details/79710448?utm_source=blogxgwz9

你可能感兴趣的:(YOLO)