辛辛苦苦搭载好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 27 移除元素

    27. 移除元素 给定一个数组 nums 和一个值 val,你需要原地移除所有数值等于 val 的元素,返回移除后数组的新长度. 不要使用额外的数组空间,你必须在原地修改输入数组并在使用 O(1) 额 ...

  2. Java实现 蓝桥杯 算法提高 道路和航路

    问题描述 农夫约翰正在针对一个新区域的牛奶配送合同进行研究.他打算分发牛奶到T个城镇(标号为1-T),这些城镇通过R条标号为(1-R)的道路和P条标号为(1-P)的航路相连. 每一条公路i或者航路i表 ...

  3. 数据结构之链表(Linked list)

    说明:如果仔细阅读完全文后,可能感觉有些不统一,这里先说明下原因. 链表尾引用不统一:在介绍单链表时,只有一个链表首部的引用(head) 指向第一个节点.你看到后面关于双链表及循环列表时,除了指向第一 ...

  4. Cacti断图、大量报错故障

    一.Cacti日志出现大量错误 最近查看Cacti日志,出现大量红色告警,并且每五分钟出现1次,虽然不影响流量的查看,但是肯定会有问题. 错误日志如下 ERROR: A DB Exec Failed! ...

  5. 解析HOT原理

    2020-06-09 19:31:01 一.疑问 前段时间:QQ群里有人对“这个表(0,4)这行数据我做了update操作,查看索引的page数据,看到索引一直指向(0,4),用ctid='(0,4) ...

  6. 【String注解驱动开发】如何按照条件向Spring容器中注册bean?这次我懂了!!

    写在前面 当bean是单实例,并且没有设置懒加载时,Spring容器启动时,就会实例化bean,并将bean注册到IOC容器中,以后每次从IOC容器中获取bean时,直接返回IOC容器中的bean,不 ...

  7. MATLAB实例:多元函数拟合(线性与非线性)

    MATLAB实例:多元函数拟合(线性与非线性) 作者:凯鲁嘎吉 - 博客园 http://www.cnblogs.com/kailugaji/ 更多请看:随笔分类 - MATLAB作图 之前写过一篇博 ...

  8. ODEINT 求解常微分方程(1)

    An example of using ODEINT is with the following differential equation with parameter k=0.3, the ini ...

  9. (二)JPA实体类主键生成策略

    在JPA中,配置实体类的主键的生成策略使用 @GeneratedValue @Id @Column(name = "id") @GeneratedValue(strategy = ...

  10. (二)groupId和artifactId

    groupId一般分为多个段,这里我只说两段,第一段为域,第二段为公司名称. 域又分为org.com.cn等等许多,其中org为非营利组织,com为商业组织. 举个apache公司的tomcat项目例 ...