zoukankan      html  css  js  c++  java
  • Darknet图像训练的步骤

    Darknet图像训练的步骤
     
    一、配置清单制作
    1、创建yolo-voc.2.0.cfg的副本,并重命名为:yolo-obj.cfg
    2、更改内容:batch=64
    3、更改内容:subdivisions=8
    4、更改classes=20 中的20为你将要训练的分类数量。
    5、更改filters=125 中的125为 (classes+5)*5的值即:(classes+coords+1)*num。如:
     
    [convolutional]
    filters=35
     
    [region]
    classes=2
    6、在相对目录./data/下创建obj.names文本文件,并依次按索引输入一行一个类别名称。
    7、在相对目录./data/下创建obj.data文本文件,并录入如下内容,其中classes表示分类数量。
    classes= 2
    train  = data/train.txt
    valid  = data/test.txt
    names = data/obj.names
    backup = backup/
    8、将要训练的.jpg文件放在目录./data/obj/下。
    9、给每个.jpg文件创建一个同名的.txt文件,并按如下格式一行记录一个类别:<类别索引:从0开始> <类别中心相对坐标x:该类别框图的中心坐标x/整张图像宽度> <类别中心相对坐标y:该类别框图的中心坐标y/整张图像高度> <类别相对宽度:该类别框图宽度/整张图像宽度><类别相对宽度:该类别框图宽度/整张图像高度>:
    <x> = <absolute_x> / <image_width> 
    <height> = <absolute_height> / <image_height>
    1 0.716797 0.395833 0.216406 0.147222
    0 0.687109 0.379167 0.255469 0.158333
    1 0.420312 0.395833 0.140625 0.166667
    10、在目录./data/下创建train.txt文件,一行一个要训练的jpg文件名,路径写相对主程序所在路径:
    data/obj/img1.jpg
    data/obj/img2.jpg
    data/obj/img3.jpg
    11、下载卷积层的预训练模型到./ (程序同目录下):http://pjreddie.com/media/files/darknet19_448.conv.23
     
    二、开始训练:
    1、开始训练,使用命令:darknet.exe detector train data/obj.data yolo-obj.cfg darknet19_448.conv.23
    2、训练超过1000次迭代后,中途也可以停止训练,继续训练请使用还原点开始: darknet.exe detector train data/obj.data yolo-obj.cfg yolo-obj_1000.weights
    3、你也可以在45000次迭代前,取得结果。
     
    三、何时停止:
    1、当训练过程中,平均Loss(error)不再减少时(Loss越小效果越好),可以停止。如下例中的9002表示当前已迭代次数,0.060730 avg表示Loss。
    Region Avg IOU: 0.798363, Class: 0.893232, Obj: 0.700808, No Obj: 0.004567, Avg Recall: 1.000000, count: 8 Region Avg IOU: 0.800677, Class: 0.892181, Obj: 0.701590, No Obj: 0.004574, Avg Recall: 1.000000, count: 8
    9002: 0.211667, 0.060730 avg, 0.001000 rate, 3.868000 seconds, 576128 images Loaded: 0.000000 seconds
    2、训练开始后,从产生的backup目录下的多个还原点中,挑一个最好的。方法是:
    (1)在obj.data文件中,修改valid=valid.txt(格式和train.txt一样),然后使用下列命令检测每个训练结果的效果。
    • darknet.exe detector recall data/obj.data yolo-obj.cfg backupyolo-obj_7000.weights
    • darknet.exe detector recall data/obj.data yolo-obj.cfg backupyolo-obj_8000.weights
    • darknet.exe detector recall data/obj.data yolo-obj.cfg backupyolo-obj_9000.weights
    (2)对比输出的结果中IOU(精度,越大越好,比较这个),Recall(也算精度,也是越大越好)。
         7586 7612 7689 RPs/Img: 68.23 IOU: 77.86% Recall:99.00%
    (3)测试检测效果: darknet.exe detector test data/obj.data yolo-obj.cfg yolo-obj_8000.weights
     
    四、提升效果:
    1、在训练前,设置cfg文件中random=1,它可以让不同分辫率的图片训练后产生更高的精度。
    2、训练的图片最好能从多个方面提供不同的:缩放大小、旋转角度、光照强弱。
    3、提高网格分辩率,方法是:设置cfg文件中height=416和weight=416中相应值为(32的倍数),可以适当提高,用来检测小物体。
    4、如果出现Out of memory的错误,可以尝试修改cfg中的subdivisions=16为32或64。
     
     
  • 相关阅读:
    27. Remove Element
    26. Remove Duplicates from Sorted Array
    643. Maximum Average Subarray I
    674. Longest Continuous Increasing Subsequence
    1. Two Sum
    217. Contains Duplicate
    448. Find All Numbers Disappeared in an Array
    566. Reshape the Matrix
    628. Maximum Product of Three Numbers
    UVa 1349 Optimal Bus Route Design (最佳完美匹配)
  • 原文地址:https://www.cnblogs.com/songxingzhu/p/7909522.html
Copyright © 2011-2022 走看看