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. IP地址分类/IP地址10开头和172开头和192开头的区别/判断是否同一网段(A、B、C三类地址)【转】

    简单来说在公司或企业内部看到的就基本都是内网IP,ABC三类IP地址里的常见IP段. 每个IP地址都包含两部分,即网络号和主机号. InterNIC将IP地址分为五类:A类保留给ZF或大型企业,B类分 ...

  2. Linode VPS主机套餐方案降低处理方法且不影响数据

    使用Linode VPS主机产品经历过512MB内存升级至1GB内存,再升级至2GB内存,以及目前推出1GB内存方案月付10美元.比如我们在使用Linode 2GB内存方案的时候占用资源不是太多,其实 ...

  3. ZT 链表逆序

    链表逆序 原帖地址http://blog.csdn.net/niuer09/article/details/5961004 分类: C/C++2010-10-23 17:23 18425人阅读 评论( ...

  4. Notepad++调用python

    ***首先确保在cmd下能直接运行python*** (博主的环境:win10 下2和3共存) 接下来进入主题,用Notepad++打开py文件,然后按 F5 键弹出运行窗口,输入以下内容: pyth ...

  5. 跟我一起阅读Java源代码之HashMap(二)

    上一节中实现的SimpleHashMap,没有解决冲突的问题,这一节我们继续深入 由于table的大小是有限的,而key的集合范围是无限大的,所以寄希望于hashcode散落,肯定会出现多个key散落 ...

  6. 在C#应用程序中,利用表值参数过滤重复,批量向数据库导入数据,并且返回重复数据

    在很多情况下,应用程序都需要实现excel数据导入功能,数据如果只有几十条,或上百条,甚至上千条,速度还好. 但是不仅如此,如果客户提供给你的excel本身存在着重复数据,或是excel中的某些数据已 ...

  7. quartz(转)

    1.   CronTrigger时间格式配置说明 CronTrigger配置格式: 格式: [秒] [分] [小时] [日] [月] [周] [年] 序号 说明 是否必填 允许填写的值 允许的通配符 ...

  8. mybatis #{}和${}的区别是什么

    #{}和${}的区别是什么?正确的答案是:#{}是预编译处理,${}是字符串替换.(1)mybatis在处理#{}时,会将sql中的#{}替换为?号,调用PreparedStatement的set方法 ...

  9. HBase学习之路 (七)HBase 原理

    系统架构 错误图解 这张图是有一个错误点:应该是每一个 RegionServer 就只有一个 HLog,而不是一个 Region 有一个 HLog. 正确图解 从HBase的架构图上可以看出,HBas ...

  10. 针对IE及其它的css hack

    现在一些针对针对政府的oa项目还要去解决兼容IE6 7 8,这对前端开发来说简直是灾难,在要使用一些css3,或者H5的地方,我们就要慎重了,在使用新特性的同时要兼顾老的浏览器的,做到优雅降级,或者针 ...