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-.tar
tar xf VOCtrainval_06-Nov-.tar
tar xf VOCtest_06-Nov-.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-.tar
2012_train.txt VOCtrainval_06-Nov-.tar
2012_val.txt VOCtrainval_11-May-.tar

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

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

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

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

 classes=
train = <path-to-voc>/train.txt
valid = <path-to-voc>2007_test.txt
names = data/voc.names
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. 

5)训练模型

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

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配置文件里配置:

 classes=
train = <path-to-coco>/trainvalno5k.txt
valid = <path-to-coco>/5k.txt
names = data/coco.names
backup = backup

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

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

[net]
# Testing
# batch=
# subdivisions=
# Training
batch=
subdivisions=
....

3)训练模型

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

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

./darknet detector train cfg/coco.data cfg/yolo.cfg darknet19_448.conv. -gpus ,,,

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

./darknet detector train cfg/coco.data cfg/yolo.cfg backup/yolo.backup -gpus ,,,

8,官方特别声明的

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

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

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

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

yolo算法框架使用二的更多相关文章

  1. YOLO 算法框架的使用一(初级)

    YOLO官方框架使用C写的,性能杠杠的,YOLO算法,我就不做过多介绍了.先简单介绍一下这个框架如何使用.这里默认是yolo2,yolo1接近过时.环境 推荐ubuntu 或者centos YOLO是 ...

  2. 第三十五节,目标检测之YOLO算法详解

    Redmon, J., Divvala, S., Girshick, R., Farhadi, A.: You only look once: Unified, real-time object de ...

  3. Newtonsoft.Json C# Json序列化和反序列化工具的使用、类型方法大全 C# 算法题系列(二) 各位相加、整数反转、回文数、罗马数字转整数 C# 算法题系列(一) 两数之和、无重复字符的最长子串 DateTime Tips c#发送邮件,可发送多个附件 MVC图片上传详解

    Newtonsoft.Json C# Json序列化和反序列化工具的使用.类型方法大全   Newtonsoft.Json Newtonsoft.Json 是.Net平台操作Json的工具,他的介绍就 ...

  4. [DeeplearningAI笔记]卷积神经网络3.1-3.5目标定位/特征点检测/目标检测/滑动窗口的卷积神经网络实现/YOLO算法

    4.3目标检测 觉得有用的话,欢迎一起讨论相互学习~Follow Me 3.1目标定位 对象定位localization和目标检测detection 判断图像中的对象是不是汽车--Image clas ...

  5. 知识图谱+Recorder︱中文知识图谱API与工具、科研机构与算法框架

    目录 分为两个部分,笔者看到的知识图谱在商业领域的应用,外加看到的一些算法框架与研究机构. 文章目录 @ 一.知识图谱商业应用 01 唯品金融大数据 02 PlantData知识图谱数据智能平台 03 ...

  6. 7、滑动窗口套路算法框架——Go语言版

    前情提示:Go语言学习者.本文参考https://labuladong.gitee.io/algo,代码自己参考抒写,若有不妥之处,感谢指正 关于golang算法文章,为了便于下载和整理,都已开源放在 ...

  7. MVC系列——MVC源码学习:打造自己的MVC框架(二:附源码)

    前言:上篇介绍了下 MVC5 的核心原理,整篇文章比较偏理论,所以相对比较枯燥.今天就来根据上篇的理论一步一步进行实践,通过自己写的一个简易MVC框架逐步理解,相信通过这一篇的实践,你会对MVC有一个 ...

  8. JavaScript 框架设计(二)

    JavaScript 高级框架设计 (二) 上一篇,JavaScript高级框架设计(一)我们 实现了对tag标签的选择 下来我们实现对id的选择,即id选择器. 我们将上一篇的get命名为getTa ...

  9. 【原创】NIO框架入门(二):服务端基于MINA2的UDP双向通信Demo演示

    前言 NIO框架的流行,使得开发大并发.高性能的互联网服务端成为可能.这其中最流行的无非就是MINA和Netty了,MINA目前的主要版本是MINA2.而Netty的主要版本是Netty3和Netty ...

随机推荐

  1. Unity调用安卓中的方法遇到的问题

    最近在用U3D做一个简单的迷宫游戏,在项目中利用Unity制作游戏场景,在android中调用游戏场景,并在游戏结束后调用安卓方法,传递参数,退出游戏场景 查找网上资料,基本上Unity调用安卓的写法 ...

  2. 铁乐学python26_hashlib+configparser+logging模块

    大部份内容摘自博客http://www.cnblogs.com/Eva-J/ hashlib模块算法介绍 Python的hashlib提供了常见的摘要算法,如MD5,SHA1等等. 什么是摘要算法呢? ...

  3. shell命令工作总结

    shell命令工作总结: 1.sed命令:1.1.将文本input.txt中含有”姓名”字符串的行中的谢朝辉替换成扎巴依:sed -e '/姓名/s/谢朝辉/扎巴依/g' input.txt1.2.将 ...

  4. Python运算符之三元运算符

    三元运算符:也称之为条件表达式 [条件为真的结果] if 条件 else [条件为假的结果] 如: ium01 = 100 if100 > 200 else200 print(num01) #三 ...

  5. EBS中比较复杂的trace方法

    FND LOG Messages-------------------------a) Using the System Administrator Responsibility, navigate  ...

  6. java Calendar日历类

    ~Calendar类是一个抽象类,为特定瞬间与一组诸如YEAR,MONTH,DAY_OF_MONTH,HOUR等日历字段之间的转换提供了一些方 法,并为操作日历字段(例如获得下星期的日期)提供了一些方 ...

  7. java StringBuilder案例

    实现输出字符串的长度,容量(容量不够则扩容),及内容 import java.util.Arrays; public class MyStringBuilderDemo { //任务:存储字符串并输出 ...

  8. 【从源代码看Android】02MessageQueue的epoll原型

    版权声明:本文为博主原创文章,欢迎转载.请注明原文链接 https://blog.csdn.net/ashqal/article/details/31772697 1 开头 上一讲讲到Looper,大 ...

  9. 1059. [ZJOI2007]矩阵游戏【二分图】

    Description 小Q是一个非常聪明的孩子,除了国际象棋,他还很喜欢玩一个电脑益智游戏——矩阵游戏.矩阵游戏在一个N *N黑白方阵进行(如同国际象棋一般,只是颜色是随意的).每次可以对该矩阵进行 ...

  10. kong安装

    1 哪些企业在用KONG: Mashapoe Marketplace Buzzlogix Gengo IBM Intel OpenDNS 饿了么 Kong可与两种不同的组件协同工作: Nginx:Ko ...