辛辛苦苦搭载好GPU环境现在要开始测试下效果

1,准备好数据集

2,测试开始

(1),如果尚未安装Darknet,则应先进行安装

git clone https://github.com/pjreddie/darknet
cd darknet
make

您已经在cfg/子目录中拥有YOLO的配置文件。您将必须在此处下载预训练重量文件(237 MB)。或只是运行此:

wget https://pjreddie.com/media/files/yolov3.weights

然后运行检测器!

./darknet detect cfg/yolov3.cfg yolov3.weights data/dog.jpg

你将看到以下输出:

layer     filters    size              input                output
conv x / x x -> x x 0.299 BFLOPs
conv x / x x -> x x 1.595 BFLOPs
.......
conv x / x x -> x x 0.353 BFLOPs
detection
truth_thresh: Using default '1.000000'
Loading weights from yolov3.weights...Done!
data/dog.jpg: Predicted in 0.029329 seconds.
dog: %
truck: %
bicycle: %

这说明没有问题。

(2)更改检测阈值

默认情况下,YOLO仅显示置信度为.25或更高的对象。您可以通过将-thresh <val>标志传递给yolo命令来更改此设置。例如,要显示所有检测,可以将阈值设置为0:

./darknet detect cfg/yolov3.cfg yolov3.weights data/dog.jpg -thresh 

3 培训YOLO VOC

要培训YOLO,您需要2007年至2012年的所有VOC数据。(如果你和我一样用自己的数据训练yolo,则不需要下面这一步)

要获取所有数据,请创建一个目录以存储所有数据,然后从该目录运行:

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/子目录,其中包含所有VOC培训数据。

生成VOC标签

现在我们需要生成Darknet使用的标签文件。Darknet希望.txt为每个图像提供一个文件,并在图像中为每个地面真实对象添加一行,如下所示:

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

(1)运行test.py

先运行这个。功能将Annotations里的xml文件随机的分发到对应文件夹里

分发到比例是可以改的

(2)然后再出去运行voc_label.py

这几个py文件都比较好理解,可以稍微看一下源码

(3)修改Cfg以获取Pascal数据,在cfg文件夹中的voc.data中,下面以我的路径举例

 classes= 10
train = /home/lanyou/mydarknet/darknet/traindata/train.txt
valid =/home/lanyou/mydarknet/darknet/traindata/2007_test.txt
names =/home/lanyou/mydarknet/darknet/traindata/voc.names
backup =/home/lanyou/mydarknet/darknetbackup

下载预训练的卷积权重(用自己的数据训练则可以不需要这一步)

为了进行训练,我们使用在Imagenet上预先训练的卷积权重。我们使用darknet53模型的权重。您可以在此处下载卷积层的权重(76 MB)

wget https://pjreddie.com/media/files/darknet53.conv.74

训练模型

现在我们可以训练!运行命令(官方指导文件中命令):

./darknet detector train cfg/voc.data cfg/yolov3-voc.cfg darknet53.conv.

下面给出我自己的命令供大家参考。(我用的yolov3-tiny.cfg)

./darknet detector train mycfg/voc.data mycfg/yolov3-tiny.cfg 

这上面基本上都是参考链接中有的,我把要用到的重要步骤给翻译整理了一下。

下面做一些注意事项的补充

1,在mycfg中的yolov3-tiny.cfg文件中,可以修改训练参数。

比如中的max_batches = 250000,表示最大训练步数,可以自己修改。

还可以把training下面的batch改小一点,以免报错,我这里batch=32.

2,训练中,在mycfg中的yolov3-tiny.cfg文件中,testing下面的batch和subdivisions前面要加#号注释掉。training下面的两项要保留。

测试时,在mycfg中的yolov3-tiny.cfg文件中,training下面的batch和subdivisions前面要加#号注释掉。testing下面的两项要保留。

3,在不同的环境下,还要更改darknet中的makefile文件配置,例如,用的GPU训练,可以参考如下配置。

makefile中的配置如下。

GPU=1

CUDNN=1

OPENCV=1

OPENMP=1

DEBUG=0

利用搭载好的工控机环境跑yolov3-tiny的更多相关文章

  1. 利用maven-assembly-plugin加载不同环境所需的配置文件及使用场景

    背景: 如何加载不同环境的配置文件已经成了势在必行的,我们通常利用profile进行,详情参见我上篇博客 http://www.cnblogs.com/lianshan/p/7347890.html, ...

  2. 利用Docker搭建本地https环境的完整步骤

    利用Docker搭建本地https环境的完整步骤 这篇文章主要给大家介绍了关于如何利用Docker搭建本地https环境的完整步骤,文中通过示例代码将实现的步骤介绍的非常详细,对大家的学习或者工作具有 ...

  3. 生产环境跑PHP动态程序

    Nginx + PHP5(FastCGI)生产环境跑PHP动态程序可超过“700次请求/秒”   我生产环境下的两台Nginx + PHP5(FastCGI)服务器,跑多个一般复杂的纯PHP动态程序, ...

  4. vue中利用.env文件存储全局环境变量,以及配置vue启动和打包命令

    目录 1,前言 2,.env文件的作用 3,配置.env文件 4,配置启动命令 5,获取.env中的全局变量 5,实际用处 1,前言 分享一下vue项目中利用.env文件存储全局环境变量,以及利于项目 ...

  5. [大数据学习研究]1.在Mac上利用VirtualBox搭建本地虚拟机环境

    1. 大数据和Hadoop 研究学习大数据,自然要从Hadoop开始. Hadoop不是一个简单的软件,而是有一些列软件形成的生态,其核心思想来自Google当初发布的三篇论文,后来做了开源的实现, ...

  6. Windows环境下利用github快速配置git环境

    在windows环境下利用github客户端我们可以直接拥有可视化的界面来管理工程,当然你也可以选择你喜欢的命令行工具来做.今天我分享一个比较快速的方式来配置git环境. 先去下载github的win ...

  7. 利用cmake来搭建开发环境

    对于经常在终端下写程序的non-windows程序员,Makefile绝对是最常用的工具,小到一个文件的简单的测试程序,大到数百个文件的商业软件,只需要有shell,一个make命令就可得到可运行的程 ...

  8. 利用gulp搭建less编译环境

       什么是less? 一种 动态 样式 语言. LESS 将 CSS 赋予了动态语言的特性,如 变量, 继承, 运算, 函数. LESS 既可以在 客户端 上运行 (支持IE 6+, Webkit, ...

  9. linux系统中利用vagrant创建虚拟开发环境

    Vagrant简介 作为程序员,可能需要同时开发多个项目,使用多种编程语言,需要使用各种操作系统,如果将很多东西放在同一个电脑上,肯定会被各种配置环境搞晕.一个比较好的办法就是每个项目都有一个干净的开 ...

随机推荐

  1. Java实现 LeetCode 111 二叉树的最小深度

    111. 二叉树的最小深度 给定一个二叉树,找出其最小深度. 最小深度是从根节点到最近叶子节点的最短路径上的节点数量. 说明: 叶子节点是指没有子节点的节点. 示例: 给定二叉树 [3,9,20,nu ...

  2. Java实现简易计算器

    import java.util.Scanner; public class Demo_1 { public static void main(String[] args) { //输入的两个数字进行 ...

  3. 第九届蓝桥杯JavaC组省赛真题

    解题代码部分来自网友,如果有不对的地方,欢迎各位大佬评论 题目1.哪天返回 题目描述 小明被不明势力劫持.后被扔到x星站再无问津.小明得知每天都有飞船飞往地球,但需要108元的船票,而他却身无分文. ...

  4. java实现人民币金额大写

    在与财务相关的应用中,经常会用到人民币金额的大写,比如发票的打印程序. 本题的任务是:从键盘输入一个十亿以内的正整数(int类型),把它转换为人民币金额大写(不考虑用户输入错误的情况). 比如,用户输 ...

  5. 原生js ajax 封装

    首先我们先了解ajax的get和post请求分别是怎样请求数据的 get请求 let ajx = new XMLHttpRequest() //创建ajax实例 /*打开需要请求的地址,可以有三个参数 ...

  6. Spring Cloud 系列之 Apollo 配置中心(四)

    本篇文章为系列文章,未读前几集的同学请猛戳这里: Spring Cloud 系列之 Apollo 配置中心(一) Spring Cloud 系列之 Apollo 配置中心(二) Spring Clou ...

  7. qt程序添加文件版本号

    1.需要一个 *.rc 文件,用以保存相关信息.比如添加一个 app.rc 里面内容如下所示: IDI_ICON1 ICON DISCARDABLE "app.ico" ----- ...

  8. [FireDAC][Phys][MSSQL]-310._数据库安装工具_问题需要解决_连载_3

    //先来看看我们碰到的问题,再来求解答SQL脚本执行失败,[FireDAC][Phys][MSSQL]-310. Cannot execute command returning result set ...

  9. Django 源码阅读笔记(基础视图)

    django源码解读之 View View. ContextMixin.TemplateResponseMixin.TemplateView.RedirectView View class View( ...

  10. Jupyter notebook中的Cell and Line Magics

    参考资料: https://www.jianshu.com/p/81ada9234788 https://my.oschina.net/u/2306127/blog/832510 首先,Cell an ...