YOLO2 window7+cpu版本

来源:互联网 发布:大数据时代 微盘 编辑:程序博客网 时间:2024/05/18 00:47

        研究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文件夹中,然后设置环境变量那些。一般配置好后就可以跑了。

原创粉丝点击