您的位置:首页 > 其它

windows10一站式YOLOv2训练自己的数据集

2018-01-06 15:52 567 查看

windows10一站式YOLOv2训练自己的数据集

00.准备

安装Windows10

下载相关安装包:

VS2015社区版(下载链接:https://www.ithome.com/html/win10/164028.htm)

OpenCV3.3.1源码包(下载链接:https://sourceforge.net/projects/opencvlibrary/files/opencv-win/3.3.1/opencv-3.3.1-vc14.exe/download)

CUDA8.0_win10安装包(下载链接:https://developer.nvidia.com/cuda-80-ga2-download-archive)

cudnn8.0_win10_x64压缩包(下载链接:http://download.csdn.net/download/k_shmily/10002883)

darknet19_448.conv.23 预训练文件(下载链接:https://pjreddie.com/media/files/darknet19_448.conv.23)

以下已打包:http://download.csdn.net/download/sinat_25453705/10191886

Python3.5

Darknet源码(YOLOv2)

pthread库(YOLOv2依赖)

python重命名脚本

LabelImgv1.3.3

环境配置

安装VS,比较简单略。(注:vs默认用的是C#开发环境,安装过程需要勾选通用Windows开发工具)

安装Python

配置OpenCV(不需要安装,解压exe文件夹到指定文件夹)

配置系统环境变量:右键计算机>>属性>>高级系统设置>>高级>>环境变量,找到path>>编辑>>添加你的OpenCV路径,如:D:\opencv\build\x64\vc14\bin

打开VS2015,新建一个C++空项目,并在源文件中添加.cpp文件

打开视图>其他窗口>>属性窗口,选择属性管理器列表的Debug | x64 >>右键Microsoft.Cpp.x64.user>>属性

通用属性>>VC++ 目录>>包含目录,添加

D:\opencv\build\include


D:\opencv\build\include\opencv


D:\opencv\build\include\opencv2


通用属性>>VC++ 目录>>库目录,添加

D:\opencv\build\x64\vc14\lib


通用属性>>链接器>>输入>>附加依赖项中,添加

opencv_world331.lib
(注:331即opencv版本号3.3.1,如果其他版本换上对应版本号即可)

opencv_world331d.lib


OpenCV配置结束,加上头文件
#include<opencv2/opencv.hpp>
使用imread、imshow函数,测试打开图片,显示图片。(略)

安装CUDA(会提示关闭VS)

解压cudnn压缩包,将bin、include、lib\x64下的文件复制到CUDA的安装目录下对应的文件夹,如:将bin下面的文件复制到
C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v8.0\bin
下。

解压pthread库到指定目录。

解压darknet-master到指定目录。

用VS打开build\darknet\darkner.sln

设置解决方案为 Release x64


打开菜单栏的项目>>属性>>VC++ 目录>>包含目录,添加刚才解压的pthread和CUDA目录,如:

C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v8.0\include


D:\Pre-built.2\include


VC++ 目录>>库目录,添加相应库路径,如:

D:\Pre-built.2\lib\x64


C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v8.0\lib\x64


通用属性>>C/C++>>预处理器>>预处理器定义,编辑添加,以下:

CUDNN


OPENCV


_TIMESPEC_DEFINED


_CRT_SECURE_NO_WARNINGS


_CRT_RAND_S


GPU


WIN32


NDEBUG


_CONSOLE


通用属性>>C/C++>>常规>>等级警告修改为3,将警告视为错误修改为否。

选择Release x64解决方案,生成解决方案。得到darknet.exe。

将tiny-yolo-voc.weights(https://pjreddie.com/media/files/tiny-yolo-voc.weights)复制到darknet-master\build\darknet\x64下

打开命令行,输入:

darknet.exe detector test data/voc.data tiny-yolo-voc.cfg tiny-yolo-voc.weights data/dog.jpg


如果显示出图片,终端显示对应的类别和匹配度,则表示环境已搭建成功!

01.开始制作数据集

a.使用网上的数据集

b.自己制作(本文主要记录训练自己数据集的过程)

拍照!拍照!拍照!大量的拍!虽然我一共也只用了250张左右。存储去文件夹中,并命名为Image

对图片进行重命名:编辑pack文件夹下的rename.py,修改你的图片路径。在终端输入:
python rename.py


解压LabelImg工具,Windows下直接打开,Open Dir打开图片的目录。选择Create RectBox开始标注,并为类别命名,如Cube(我这里用了魔方的蓝面),标注结束,选择Save保存对应的xml文件。(注:xml可能会和图片同一路径,可以统一把xml文件复制出去,与Image同一目录)



在darknet-master\build\darknet\x64\data目录下创建文件夹voc_data,并将Image和xml复制到这

使用网友的工具对数据集Image,xml进行处理,主要参考:http://blog.csdn.net/qq_34484472/article/details/73135354

02.开始训练

修改配置文件

修改darknet-master\build\darknet\x64\data\voc.data

主要是修改类别数量,以及训练集和测试集的路径:

修改darknet-master\build\darknet\x64\data\voc.names为类别名称:Cube

修改darknet-master\build\darknet\x64\tiny-yolo-voc.cfg重中之重!

第2行:
batch=64


第3行:
subdivisions=16
(注:这里默认为8,GTX850M会出现out of memory的情况,可以按8的倍数适当增加)

第114行:
filter=30
(注:filters=(classes+coords+1)*num,即:1类)

第120行:
classes=1


下载YOLO的预训练文件:darknet19_448.conv.23复制到darknet-master\build\darknet\x64\下。

在命令行下输入:
darknet.exe detector train data/voc.data tiny-yolo-voc.cfg darknet19_448.conv.23


训练中!如果出现找不到txt文件,请参考上面网友处理数据集时的解决方案。如果出现无法打开图片,请把Image里对应用编号的图片,替换trainImage和validateImage下的图片。

训练结束后,backup目录下得到tiny-yolo-voc_final.weights

03.评估训练结果

效果图





待续

04.总结

躺坑之后的小小备忘录。拾人牙慧,见笑了!

05.参考

https://github.com/AlexeyAB/darknet

http://blog.csdn.net/moxiaonuo/article/details/77816975

http://blog.csdn.net/fuck_you_sb/article/details/78402937
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  YOLO 数据集 win10