您的位置:首页 > 其它

Darknet yolo 环境搭建以及训练测试自己的数据集

2017-08-28 14:08 826 查看

Darknet yolo环境搭建

Darknet是一个c语言实现的神经网络框架,它运行速度快,易安装,支持CPU和GPU两种模式。

Yolo是运行在Darknet上的一个神经网络,二者搭配一起使用。

在Ubuntu下依次输入以下命令 即可下载Darknet

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


接下来下载权重文件

wget https://pjreddie.com/media/files/yolo.weights[/code] 
运行检测器

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


输出如下:



以上是检测单张图片的做法,如果想连续检测多张图片,那么可以输入命令而不指定后面的文件:

./darknet detect cfg/yolo.cfg yolo.weights


接下来会提示输入图片路径



在此处输入路径

./data/horses.jpg


此时会显示检测结果,并提示输入下一张想检测的图片的路径,如果想停止检测,可按ctrl+c退出。



默认情况下,YOLO仅显示以0.25以上的置信度检测到的对象。可以通过将该-thresh 标志传递给该yolo命令来进行更改。例如,要显示所有检测,可以将阈值设置为0:

./darknet detect cfg/yolo.cfg yolo.weights data/dog.jpg -thresh 0


训练测试自己的数据集

准备数据

环境安装好了,接下来试着训练自己的数据集。

首先我们需要准备自己的数据集,使用固定格式的jpg图像,可下载freename重命名工具对文件进行重命名,在名字上最好使用像VOC一样类似000001.jpg、000002.jpg这样。

设置文件结构

按照图片上的目录结构自己建立文件夹



文件夹Annotation中主要存放xml文件;

而ImageSets我们只需要用到Main文件夹,这里面存放的是一些文本文件,通常为train.txt、test.txt等;

JPEGImages文件夹中放我们已按统一规则命名好的原始图像。

其他文件夹暂时不用管。

注:VOC文件夹可命名为voc+年份。如VOC2017。

用labelimg软件进行数据标注,然后把xml文件和原始的jpg文件拷贝到对应的文件夹下。

生成相关文件

按darknet的说明编译好后,接下来在darknet-master/scripts文件夹中新建文件夹VOCdevkit,然后将整个VOC2017文件夹都拷到VOCdevkit文件夹下。

接下来修改scripts文件夹下的voc_label.py文件,来生成相关文件。

将文件中的sets和class改
9f85
成自己的数据集名和类别。



修改好后在该目录下运行命令:python voc_label.py,之后则在文件夹scripts\VOCdevkit\VOC2007下生成了文件夹lable,里面有各个图片对应的txt文件。同时在scripts\下应该也生成了train_2007.txt这个文件,里面包含了所有训练样本的绝对路径。

配置文件修改

打开cfg文件夹,可以看到下面有许多cfg后缀的文件,类似于caffe中的prototxt



选择tiny-yolo-voc.cfg进行修改

修改最后一层卷积层中的filter,根据自己的参数计算(filter=num×(classes + coords + 1))



以及region下的classes,修改为自己的类别。



接着需要修改cfg文件夹中的voc.data文件。也是按自己需求和路径修改。

运行训练

输入下面的命令进行训练

./darknet detector train ./cfg/voc.data cfg/tiny-yolo-voc.cfg


结果如图:



训练完成后会根据迭代次数保存训练的权重模型,然后就可以拿来测试了。

测试命令:

./darknet detector test cfg/voc.data cfg/tiny-yolo-voc.cfg results/tiny-yolo-voc_6000.weights data/images.jpg
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: