Yolo+Windows 配置(详细版)
一、配置环境
VS2013+显卡GtX1080ti+CUDA7.5+Opencv3.1.0+pthread
pthread:ftp://sourceware.org/pub/pthreads-win32/pthreads-w32-2-9-1-release.zip
YOLO:http://pjreddie.com/darknet/yolo
Darknet:https://github.com/pjreddie/darknet
二、配置步骤
1、新建vs工程:删除新建后的自带的kernel.cu

2、为了方便调试,将工程设置为Release x64模式
3、在工程下添加三个文件夹,分别命名为c,h,cu。这里需要注意:需要添加的文件位置在 darknet的src以及examps中,具体添加文件根据darknet中的Makefile里面所显示的来添加文件。因为YOLO会随时更新,别人的文件可能和你不一致。
下面是我的Makefile文件中需要添加的文件:
添加的.c和.h文件
OBJ=gemm.o utils.o cuda.o deconvolutional_layer.o convolutional_layer.o list.o image.o activations.o im2col.o col2im.o blas.o crop_layer.o dropout_layer.o maxpool_layer.o softmax_layer.o data.o matrix.o network.o connected_layer.o cost_layer.o parser.o option_list.o detection_layer.o route_layer.o box.o normalization_layer.o avgpool_layer.o layer.o local_layer.o shortcut_layer.o activation_layer.o rnn_layer.o gru_layer.o crnn_layer.o demo.o batchnorm_layer.o region_layer.o reorg_layer.o tree.o lstm_layer.o
EXECOBJA=captcha.o lsd.o super.o voxel.o art.o tag.o cifar.o go.o rnn.o rnn_vid.o compare.o segmenter.o regressor.o classifier.o coco.o dice.o yolo.o detector.o writing.o nightmare.o swag.o darknet.o
添加的.cu文件
OBJ+=convolutional_kernels.o deconvolutional_kernels.o activation_kernels.o im2col_kernels.o col2im_kernels.o blas_kernels.o crop_layer_kernels.o dropout_layer_kernels.o maxpool_layer_kernels.o network_kernels.o avgpool_layer_kernels.o
4、接下来是添加包含目录、依赖库等:CUDA7.5,opencv3.1.0,pthread





5、上面都配置完之后进行编译,会出现很多错误,这里对遇到的错误进行总结下:
a、将出现#include<src/time.h>处都改成#include<time.h>
b、删除#include<unisd.h>,这是linux下的头文件
c、在用到inline的文件中,都在前面添加#define inline _inline
d、“error C2079: “tval_before”使用未定义的 struct“timeval””:在出现类似结构体错误的文件头添加
“
#ifdef WIN32
# include <windows.h>
#else
# include <sys/time.h>
#endif
”
e、“error C2275: “image”: 将此类型用作表达式非法”:在出现类似错误时,只需将该类型定义的变量语句放在函数头即可
如下:

对于定义指针时,类型用作表达式非法,只需要在函数头初始化指针为NULL即可,例如:image *p=NULL
d、在utils.c文件中,出现错误:“error C2036: “void *”: 未知的大小”:只需要在void*类型的变量前,添加相应的类型即可

e、会出现snprintf,popen,pclose,sleep无法解析的问题,这里只要将snprintf改成_snprintf或者在预编译处加入
#if _MSC_VER
#define snprintf _snprintf
#endif
即可,然后把popen,pclose,sleep改成_popen,_pclose,_sleep。问题就可以解决
f、出现“error LNK2001: 无法解析的外部符号"gettimeofday"&"timersub"”:解决方法是在文件头部添加gettimeofday和timersub函数的声明。具体声明如下:
#ifdef WIN32
int gettimeofday(struct timeval *tp, void *tzp)
{
time_t clock;
struct tm tm;
SYSTEMTIME wtm;
GetLocalTime(&wtm);
tm.tm_year = wtm.wYear - ;
tm.tm_mon = wtm.wMonth - ;
tm.tm_mday = wtm.wDay;
tm.tm_hour = wtm.wHour;
tm.tm_min = wtm.wMinute;
tm.tm_sec = wtm.wSecond;
tm.tm_isdst = -;
clock = mktime(&tm);
tp->tv_sec = clock;
tp->tv_usec = wtm.wMilliseconds * ;
return ();
} void timersub(struct timeval *a, struct timeval *b, struct timeval *res)
{
res = a - b;
}
#endif
g、出现“错误 1095 error LNK2019: 无法解析的外部符号 curandSetPseudoRandomGeneratorSeed”:解决方法是在包含的头文件中添加:
#pragma comment(lib, "cudart.lib")
#pragma comment(lib, "curand.lib")
即可。
h、出现“error C2065: “CLOCK_REALTIME”: 未声明的标识符”:直接将那句话注释掉即可
i、注意前面添加文件时,一定要按照Makefile里面显示的添加,否则会出错!
6、编译成功后,就可以进行测试了,添加命令路径:
detect D:/gaokun/YOLO/darknet/cfg/yolo.cfg D:/gaokun/YOLO/darknet/yolo.weights
此时,还需要对darknet.c文件中的部分内容进行修改:

还需要对detector.c中的路径进行修改:

对image.c的内容进行修改:

注意:修改完上述文件后,需重新编译yolo-windows-master。然后再加入命令行调试参数,进行调试。
调试时,取消对包含“CLOCK_REALTIME”的语句的注释(错误h)。
7、以下是部分测试结果:



参考博客:http://blog.csdn.net/xiaoye5606/article/details/62439298
后续会更新用YOLO来训练自己的数据等内容。
Yolo+Windows 配置(详细版)的更多相关文章
- 件测试博客日记Day03-11.17日 —— 赵天宇 —— 禅道的使用和配置详细版
说在维基百科先查找关于禅道相关知识,发现有关于禅道这个项目管理软件的详细介绍,然后将相关的介绍进行整理写入文档,在禅道的介绍中也有下载地址并进行安装. (1)软件的基本情况 a.中文名称:禅道项目管理 ...
- 【神经网络与深度学习】YOLO windows 配置《Darknet配置》
作者配置时的环境 visual studio 2013 显卡 GTX 960M CUDA 7.5 OpenCV 2.4.9 pthreadpthread 下载地址 YOLO官网 [http:// ...
- R,RJAVA 安装配置 详细版
准备工作 系统必须已经安装JDK 并配置好了环境变量. 注:安装的jdk r 以及系统 尽量保持位数一致 1.下载 R https://mirrors.tuna.tsinghua.edu.cn ...
- MySQL5.7.25(解压版)Windows下详细的安装过程
大家好,我是浅墨竹染,以下是MySQL5.7.25(解压版)Windows下详细的安装过程 1.首先下载MySQL 推荐去官网上下载MySQL,如果不想找,那么下面就是: Windows32位地址:点 ...
- Tomcat7.0.22在Windows下详细配置过程
Tomcat7.0.22在Windows下详细配置过程 一.JDK1.7安装 1.下载jdk,下载地址:http://www.oracle.com/technetwork/java/javase/do ...
- SpringBoot整合Mybatis完整详细版二:注册、登录、拦截器配置
接着上个章节来,上章节搭建好框架,并且测试也在页面取到数据.接下来实现web端,实现前后端交互,在前台进行注册登录以及后端拦截器配置.实现简单的未登录拦截跳转到登录页面 上一节传送门:SpringBo ...
- MySQL5.7免安装版配置详细教程
MySQL5.7免安装版配置详细教程 一. 软件下载 Mysql是一个比较流行且很好用的一款数据库软件,如下记录了我学习总结的mysql免安装版的配置经验,要安装的朋友可以当做参考哦 mysql5.7 ...
- 01.1 Windows环境下JDK安装与环境变量配置详细的图文教程
01.1 Windows环境下JDK安装与环境变量配置详细的图文教程 本节内容:JDK安装与环境变量配置 以下是详细步骤 一.准备工具: 1.JDK JDK 可以到官网下载 http://www.or ...
- MySQL+PHP配置 Windows系统IIS版
MySQL+PHP配置 Windows系统IIS版 1.下载 MySQL下载地址:http://dev.mysql.com/downloads/mysql/5.1.html->Windows ( ...
随机推荐
- Oracle中sign/decode/nvl/round/trunc/(+)/instr/substr/replace解释
1. sign函数 sign函数语法: sign(n); sign函数说明: 取数字n的符号,大于0返回1,小于0返回-1,等于0返回0(n可以是表达式,(n-200)) 例子: a=10; b=50 ...
- cookie存中文
cookie存取: 存: Cookie cookie = new Cookie("title",URLEncoder.encode("标题","utf ...
- Android面试常问到的知识点
一.算法,数据结构 1.排序算法 2.查找算法 3.二叉树 4.广度,深度算法: 二.java基础 1.集合Collection,List,Map等常用方法,特点,关系: 2.线程的同步,中断方式有几 ...
- python oop面向对象笔记
#coding:utf-8 class Person(object): def __init__(self,name,wage): self.name = name self.wage = wage ...
- 要练习的lambda
取list的id 放入新List<Integer> List<Integer> list1 = list.stream().map(albumGroup1 -> albu ...
- 点滴积累【JS】---JS小功能(JS实现多物体缓冲运动)
效果: 思路: 利用setInterval计时器进行运动,offsetWidth实现宽度的变动,在用onmouseover将终点和所选中的DIV放入参数再进行缓冲运动. 代码: <head ru ...
- ATITIT.翻译模块的设计与实现 api attilax 总结
ATITIT.翻译模块的设计与实现 api attilax 总结 1. 翻译原理1 2. TMX格式是国际通用格式(xml)1 2.1. 方法/步骤2 3. TRADOS2 4. ATITIT.翻译软 ...
- atitit.javascript js 上传文件的本地预览
atitit.javascript js 上传文件的本地预览 1. .URL.createObjectURL 1 1.1. 吊销所有使用 URL.createObjectURL 而创建的 URL,以 ...
- Binary Tree Postorder Traversal --leetcode
原题链接:https://oj.leetcode.com/problems/binary-tree-postorder-traversal/ 题目大意:后序遍历二叉树 解题思路:后序遍历二叉树的步骤: ...
- [转]RPC、CORBA、WebService之区别
RPC是由Sun发明的远程过程调用协议,是第一种真正的分布式应用模型.Windows上使用的R PC是DCERPC的扩展.严格地说,RPC是一种逻辑上的协议,它可以使用Socket.Named Pip ...