利用搭载好的工控机环境跑yolov3-tiny
辛辛苦苦搭载好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的更多相关文章
- 利用maven-assembly-plugin加载不同环境所需的配置文件及使用场景
背景: 如何加载不同环境的配置文件已经成了势在必行的,我们通常利用profile进行,详情参见我上篇博客 http://www.cnblogs.com/lianshan/p/7347890.html, ...
- 利用Docker搭建本地https环境的完整步骤
利用Docker搭建本地https环境的完整步骤 这篇文章主要给大家介绍了关于如何利用Docker搭建本地https环境的完整步骤,文中通过示例代码将实现的步骤介绍的非常详细,对大家的学习或者工作具有 ...
- 生产环境跑PHP动态程序
Nginx + PHP5(FastCGI)生产环境跑PHP动态程序可超过“700次请求/秒” 我生产环境下的两台Nginx + PHP5(FastCGI)服务器,跑多个一般复杂的纯PHP动态程序, ...
- vue中利用.env文件存储全局环境变量,以及配置vue启动和打包命令
目录 1,前言 2,.env文件的作用 3,配置.env文件 4,配置启动命令 5,获取.env中的全局变量 5,实际用处 1,前言 分享一下vue项目中利用.env文件存储全局环境变量,以及利于项目 ...
- [大数据学习研究]1.在Mac上利用VirtualBox搭建本地虚拟机环境
1. 大数据和Hadoop 研究学习大数据,自然要从Hadoop开始. Hadoop不是一个简单的软件,而是有一些列软件形成的生态,其核心思想来自Google当初发布的三篇论文,后来做了开源的实现, ...
- Windows环境下利用github快速配置git环境
在windows环境下利用github客户端我们可以直接拥有可视化的界面来管理工程,当然你也可以选择你喜欢的命令行工具来做.今天我分享一个比较快速的方式来配置git环境. 先去下载github的win ...
- 利用cmake来搭建开发环境
对于经常在终端下写程序的non-windows程序员,Makefile绝对是最常用的工具,小到一个文件的简单的测试程序,大到数百个文件的商业软件,只需要有shell,一个make命令就可得到可运行的程 ...
- 利用gulp搭建less编译环境
什么是less? 一种 动态 样式 语言. LESS 将 CSS 赋予了动态语言的特性,如 变量, 继承, 运算, 函数. LESS 既可以在 客户端 上运行 (支持IE 6+, Webkit, ...
- linux系统中利用vagrant创建虚拟开发环境
Vagrant简介 作为程序员,可能需要同时开发多个项目,使用多种编程语言,需要使用各种操作系统,如果将很多东西放在同一个电脑上,肯定会被各种配置环境搞晕.一个比较好的办法就是每个项目都有一个干净的开 ...
随机推荐
- html页面引用video.js播放m3u8格式视频
//head里面的内容,我是采用cdn引用的方式,因为项目太小 <head> <meta charset="utf-8" /> <title>二 ...
- 深入浅出-iOS Block原理和内存中位置
Posted by 微博@Yangsc_o 原创文章,版权声明:自由转载-非商用-非衍生-保持署名 | Creative Commons BY-NC-ND 3.0 #简介 今天回顾一下blcok,基本 ...
- 根据现有Bitmap生成相同图案指定大小的新Bitmap
通过一张现有的Bitmap,画出一张同样的但是大小使我们指定的Bitmap 需求:直接createBitmap的话不允许生成的bitmap的宽高大于原始的,因此需要特定方法来将一张Bitmap的大小进 ...
- Netty 源码解析: Netty 的 ChannelPipeline
ChannelPipeline和Inbound.Outbound 我想很多读者应该或多或少都有 Netty 中 pipeline 的概念.前面我们说了,使用 Netty 的时候,我们通 ...
- 简单说维特比算法 - python实现
动态规划求最短路径算法,与穷举法相比优点在于大大降低了时间复杂度; 假如从起点A到终点S的最短路径Road经过点B1,那么从起点A到B1的最短路径的终点就是B1,否则如果存在一个B2使得A到B2的距离 ...
- Java 多线程基础(五)线程同步
Java 多线程基础(五)线程同步 当我们使用多个线程访问同一资源的时候,且多个线程中对资源有写的操作,就容易出现线程安全问题. 要解决上述多线程并发访问一个资源的安全性问题,Java中提供了同步机制 ...
- 小师妹学JVM之:JIT中的LogCompilation
目录 简介 LogCompilation简介 LogCompilation的使用 解析LogCompilation文件 总结 简介 我们知道在JVM中为了加快编译速度,引入了JIT即时编译的功能.那么 ...
- Java垃圾回收机制(GC)
Java内存分配机制 这里所说的内存分配,主要指的是在堆上的分配,一般的,对象的内存分配都是在堆上进行,但现代技术也支持将对象拆成标量类型(标量类型即原子类型,表示单个值,可以是基本类型或String ...
- 使用JUnit 和Jacoco进行单元测试
Jacoco配置 <dependency> <groupId>org.jacoco</groupId> <artifactId>jacoco-maven ...
- 阿里巴巴--mysql中Mysql模糊查询like效率,以及更高效的写法
在使用msyql进行模糊查询的时候,很自然的会用到like语句,通常情况下,在数据量小的时候,不容易看出查询的效率,但在数据量达到百万级,千万级的时候,查询的效率就很容易显现出来.这个时候查询的效率就 ...