YOLOv2在Windows下的配置方法

研究深度学习数月,从普通的CNN(mnist、cifar10),到进阶的Fast RCNN、Faster RCNN,到现在的YOLO、YOLO2,被AI界大神们的思维能力深深折服。
如下是是YOLOv2在Windows下的配置方法,记录下来,初衷是帮助准备进入ML大门的新人少走一些弯路。
本文主要包括环境搭建、编译、测试、自己训练模型四个部分。
1. 环境
YOLO代码:https://github.com/AlexeyAB/darknet#how-to-train-to-detect-your-custom-objects
Windows MS Visual Studio 2015 (v140): https://go.microsoft.com/fwlink/?LinkId=532606&clcid=0x409 (or offline ISO image)
CUDA 8.0: https://developer.nvidia.com/cuda-downloads
OpenCV 3.x: https://sourceforge.net/projects/opencvlibrary/files/opencv-win/3.2.0/opencv-3.2.0-vc14.exe/download
or OpenCV 2.4.13: https://sourceforge.net/projects/opencvlibrary/files/opencv-win/2.4.13/opencv-2.4.13.2-vc14.exe/download
YOLO是用纯c代码编写的,如果你不在乎运行速度,甚至只需要安装有VS2015就能进行编译、训练、测试。
Weights: https://pjreddie.com/darknet/imagenet/#darknet19_448
2. 编译
1. MSVS 2015 + OpenCV 3.0 + CUDA 8.0
修改包含路径C:\opencv_3.0\opencv\build\include和 C:\opencv_3.0\opencv\build\x64\vc14\lib
然后用VS2015打开build\darknet\darknet.sln, 在x64 and Release下, 编译:Build -> Build darknet
将C:\opencv_3.0\opencv\build\x64\vc14\bin下的opencv_world320.dll and opencv_ffmpeg320_64.dll拷贝到darknet.exe所在路径下
2. MSVS 2015 + OpenCV 3.0 + CUDA (not 8.0)
打开build\darknet\darknet.vcxproj, 将两处”CUDA 8.0” 替换为”CUDA x.x”(你的CUDA版本号), 然后按1进行。
3. MSVS 2015 + OpenCV 3.0 but NO GPU
修改包含路径C:\opencv_3.0\opencv\build\include 和 C:\opencv_3.0\opencv\build\x64\vc14\lib
然后用VS2015打开build\darknet\darknet_no_gpu.sln, 在x64 and Release下, 编译:Build -> Build darknet_no_gpu
将C:\opencv_3.0\opencv\build\x64\vc14\bin下的opencv_world320.dll and opencv_ffmpeg320_64.dll拷贝到darknet_no_gpu.exe所在路径下
4. OpenCV 2.4.13 instead of 3.0
修改如下路径:
4.1 (right click on project) -> properties -> C/C++ -> General -> Additional Include Directories: C:\opencv_2.4.13\opencv\build\include
4.2 (right click on project) -> properties -> Linker -> General -> Additional Library Directories: C:\opencv_2.4.13\opencv\build\x64\vc14\lib
5. 其他版本OpenCV 2.4.x (not 3.x)
则还需要修改#pragma comment(lib, “opencv_core2413.lib”) in the file \src\detector.c(共三处)
3. 测试
经过上述编译,则可以进行测试了:在darknet.exe路径下,cmd输入:
darknet_no_gpu detector test data/voc.data yolo-voc.cfg yolo-voc.weights,结果如下图所示:
YOLOv2在Windows下的配置方法_第1张图片YOLOv2在Windows下的配置方法_第2张图片
4. 自己训练模型
接下来就可以准备自己的数据,通过YOLO训练自己的模型了。
AB大神给我们准备了很好用的数据标注工具Yolo_mark,可以很方便的制作VOC数据:具体使用方法在链接中有详细说明,这里就不赘述了。
标记数据准备好之后,就可以开始进行训练了。
在darknet.exe路径下,cmd输入:
darknet_no_gpu.exe detector train data/obj.data my_obj.cfg, 结果如下图所示:
YOLOv2在Windows下的配置方法_第3张图片
因为工作电脑没有GPU,对于tiny_yolo模型,训练一个batch大约需120s,在另一台Nvidia GTX750上实测,一个batch小于5s,可见CUDA并行计算对于深度学习提速的优势巨大。
训练过程中,每100batch会在darknet\x64\backup文件夹下存储一个weights文件:
YOLOv2在Windows下的配置方法_第4张图片
后续可以直接选择在其中某个weights基础上继续训练,方式如下:
darknet_no_gpu.exe detector train data/my_obj.data my_tiny_obj.cfg backup/my_tiny_obj_2000.weights
YOLOv2在Windows下的配置方法_第5张图片

至此,编译、测试、训练模型介绍完毕,后续考虑加入模型部署相关内容。
本文引用内容均已加标注,若有侵权,请联系删除,谢谢!

你可能感兴趣的:(深度学习)