利用搭载好的工控机环境跑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
最新文章
- [js] 变量空值研究
- Tiny Mapper
- C# 多线程,论多核时代爱恨情仇
- MySQL缺失mysql_config文件
- WebSocket帧数据 解码/转码
- 【NS2仿真】TCP与UDP混合
- JavaScript实现Ajax小结
- llnq SqlMethods like
- UVALive 2889(回文数字)
- ios 自己定义导航栏和切割线
- 无法识别的配置节 system.serviceModel
- nefu 1116 字符串加密
- 【转】C# 串口操作系列(1) -- 入门篇,一个标准的,简陋的串口例子。
- Cookie浅谈
- maven pom文件简单模板和配置详解
- mysql 行转列 (case when的使用)
- webpack的require是如何工作的?
- 洛谷 P4884 多少个1?
- 最短作业优先(SJF)
- codeforces 1A - math - ceil