• yolo算法框架使用二


    6,voc数据集训练模型

    1)下载数据集

    官网提供一些voc数据,是基于2007年到2012年的,你可以通过以下地址下载到:

    wget https://pjreddie.com/media/files/VOCtrainval_11-May-2012.tar
    wget https://pjreddie.com/media/files/VOCtrainval_06-Nov-2007.tar
    wget https://pjreddie.com/media/files/VOCtest_06-Nov-2007.tar
    tar xf VOCtrainval_11-May-2012.tar
    tar xf VOCtrainval_06-Nov-2007.tar
    tar xf VOCtest_06-Nov-2007.tar

    可以把数据存放到VOCdevkit/目录下

    2)生成识别标签

    识别标签必须是.txt文件的,具体格式如下:

    <object-class> <x> <y> <width> <height>

    Object-class 是分类的名称

    其余元素是关联到图片的像素,宽和高的

    通过下载官网提供的voc_label.py 我们可以快速的生成这一个文件,把他下载到scripts/目录下:

    wget https://pjreddie.com/media/files/voc_label.py
    python voc_label.py

    几分钟后,就会生成相应的文件存放到:

    VOCdevkit/VOC2007/labels/ 或者 VOCdevkit/VOC2012/labels/下面:

    ls
    2007_test.txt   VOCdevkit
    2007_train.txt  voc_label.py
    2007_val.txt    VOCtest_06-Nov-2007.tar
    2012_train.txt  VOCtrainval_06-Nov-2007.tar
    2012_val.txt    VOCtrainval_11-May-2012.tar

    我们可以把自己真正要训练的文件合并成一个:

    cat 2007_train.txt 2007_val.txt 2012_*.txt > train.txt

    3)修改配置指向的数据(Pascal Data)

    在cfg/voc.data里配置数据的指向:

    1 classes= 20
      2 train  = <path-to-voc>/train.txt
      3 valid  = <path-to-voc>2007_test.txt
      4 names = data/voc.names
      5 backup = backup

    <path-to-voc> 就是你数据集的指向

    4)下载预训练的卷积的权重

    这里用到卷积的权重是imageNet预训练提供:

    wget https://pjreddie.com/media/files/darknet19_448.conv.23

    你也可以通过下载预训练的Darknet19 448x448 model(https://pjreddie.com/darknet/imagenet/#darknet19_448) 模型来产生你自己的权重,执行下面的命名:

    ./darknet partial cfg/darknet19_448.cfg darknet19_448.weights darknet19_448.conv.23 23

    5)训练模型

    ./darknet detector train cfg/voc.data cfg/yolo-voc.cfg darknet19_448.conv.23

    7,用coco 训练yolo模型

     Coco数据集,我没有用过,具体可以查看http://cocodataset.org/#overview 了解一下

    1)获取coco数据集

    下载coco的数据集和标签,可直接通过scripts/get_coco_dataset.sh脚本执行:

    cp scripts/get_coco_dataset.sh data
    cd data
    bash get_coco_dataset.sh

    这样标签和数据集都有了。

    2)配置数据集的指向

    在cfg/coco.data配置文件里配置:

    1 classes= 80
      2 train  = <path-to-coco>/trainvalno5k.txt
      3 valid  = <path-to-coco>/5k.txt
      4 names = data/coco.names
      5 backup = backup

    <path-to-coco>是你的具体路径指向

    另外还需要配置你数据集是用于训练不是测试的,默认是测试的配置,在cfg/yolo.cfg:

    [net]
    # Testing
    # batch=1
    # subdivisions=1
    # Training
    batch=64
    subdivisions=8
    ....

    3)训练模型

    ./darknet detector train cfg/coco.data cfg/yolo.cfg darknet19_448.conv.23

    4)启用gpus执行训练,加速

    ./darknet detector train cfg/coco.data cfg/yolo.cfg darknet19_448.conv.23 -gpus 0,1,2,3

    5)训练暂停或者从断点开始训练

    ./darknet detector train cfg/coco.data cfg/yolo.cfg backup/yolo.backup -gpus 0,1,2,3

    8,官方特别声明的

    如果你使用他们的框架,必须在注释里说明框架来源,可以直接在注释里粘入下面的注释:

    @article{redmon2016yolo9000,
      title={YOLO9000: Better, Faster, Stronger},
      author={Redmon, Joseph and Farhadi, Ali},
      journal={arXiv preprint arXiv:1612.08242},
      year={2016}
    }

    参考地址:https://pjreddie.com/darknet/yolo/

    论文地址 :https://arxiv.org/abs/1612.08242

  • 相关阅读:
    TypeScript 第一讲 ———— 基本数据类型的使用
    关于TypeScript命名空间
    Egret 自定义皮肤 ———— 引入类中以及createChildren()和 childrenCreated()的使用
    egret基础——控件
    回顾过去,展望未来
    JDBC、Hibernate、Mybatis之间的区别
    SSM框架优缺点和spring boot 比起优缺点是什么?
    拦截器和过滤器的区别
    转发和重定向区别
    关于虚拟机中克隆的linux为什么不能开启网络服务
  • 原文地址:https://www.cnblogs.com/minsons/p/7905488.html
Copyright © 2020-2023  润新知