YOLO2 window7+cpu版本

  • Post author:
  • Post category:其他




研究RCNN系列算法,到现在的YOLO和SSD,因为平台原因(穷
哭
),都尝试在Window+cpu环境下测试已有模型效果。网上有很多教程,这里记录下yolo2的配置过程。


平台:window+cpu


yolo2代码:


https://github.com/AlexeyAB/darknet



一、下载链接里的yolo2工程,打开darknet-master\build\darknet下的darknet_no_gpu.sln工程,查看工程属性,作者已经配置好了opencv和

pthreads,如下图,但是opencv的路径需要自己修改下。附件依赖库主要是opencv_core249.lib,

opencv_highgui249.lib,opencv_imgproc249.lib三个文件。直到成功编译工程,会在darknet-master\build\darknet\x64下生成darknet_no_gpu.exe可执行文件。










二、主函数在darknet.c文件里,如下图。



要运行起来,需要新建一个cmd文件。参照


darknet-master\build\darknet\x64下的


darknet_voc.cmd文


件新建darknet_no_gpu.cmd文件,因为是调用上面生成的

darknet_no_gpu.exe,所以内容改为









到这一步还需要一个yolo-voc.weights文件,从官网

https://pjreddie.com/darknet/yolo/

下载相应的模型参数文件(点击那个weights下载,只要是yolo2版本的都行),放到

darknet-master\build\darknet\x64路径下。









双击运行

darknet_no_gpu.cmd,窗口为











输入图像路径回车即可得结果







三、这样只能每次跑一张图像,如果要连续测试可以修改detector.c文件里的test_detector函数,如果要用到cv空间的一些功能,在文件前面添加using namespace std;using namespace cv;把

detector.c改为

detector.cpp,这时注意:因为yolo都是纯c编写的,

darknet.c文件会调用到

detector.cpp里的函数,那边需要把

detector.cpp里面头文件包含的部分加上











extern “C”











{












#include “xxx.h”











}







同时,全局函数要在前面声明并加上extern “C”。如



extern “C” void run_detector(int argc, char **argv);








参考博客:

http://blog.csdn.net/qq_14845119/article/details/53589282





—————————————————————————————–


补充:window+gpu版本也成功运行




打开darknet-master\build\darknet下的

darknet.sln工程,然后在工程属性中进行配置,加入cuda和cudnn(如果不加cudnn,只用GPU,速度并不快,大概一张图像1s左右)的lib文件和include路径。我用的是CUDA7.5和cudnn7.5,cudnn有编译好的库文件,解压出来是一个cuda文件夹,里面有include、lib、dll三个文件夹,把里面的文件放到

CUDA下的对应的

include、lib、dll

文件夹中,然后设置环境变量那些。一般配置好后就可以跑了。





—————————————————————————————–








2018年4月20日注:YOLO不断更新,目前已到YOLOv3,YOLOv2的代码作者也做了更新,建议根据最新资源进行配置,

AlexeyAB

一般都会针对作者的改动及时更新工程,且进行优化。windows环境配置方面比较复杂,linux比较简单,只是需要python和linux基础,建议学习这两个知识,有助于深度学习研究开发。



版权声明:本文为tigerda原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。