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 ( ... 
随机推荐
- 对正在运行的mysql进行监控
			对正在运行的mysql进行监控,其中一个方式就是查看mysql运行状态. (1)QPS(每秒Query量) QPS = Questions(or Queries) / seconds mysql &g ... 
- C++从零实现简单深度神经网络(基于OpenCV)
			代码地址如下:http://www.demodashi.com/demo/11138.html 一.准备工作 需要准备什么环境 需要安装有Visual Studio并且配置了OpenCV.能够使用Op ... 
- 怎样使用CSS3实现书页(书本)卷角效果
			我们有时候想在页面显示一个公告或用户提示信息. 一个经常使用设计是使用书签形状. 我们能够给书签加入卷角效果.以使其更为逼真.所谓的"卷角"实际上能够用小角度倾斜的阴影效果来模拟. ... 
- python-嵌套循环(Nested loop)-久久乘法表
			嵌套-久久乘法 for i in range(1,10): for j in range(1,10): print('{} × {} = {}'.format(i,j,i*j))最外层的循环依次将数值 ... 
- c#.net调用pdf2swf.exe将pdf文件转换为swf,vs中运行正常,布署IIS服务器部署转换后文字部分为空白
			这个是权限问题, 需要在应用程序池中高级设置,将标识改为LocalSystem 
- Atitit..css的体系结构
			Atitit..css的体系结构 1. Oocss 与 bem标准化1 1.1. 四种样式表及六种选择器1 1.2. 常用的css框架 amazeui bootstrap1 1.3. Css图标 ... 
- Atitit.判断元素是否显示隐藏在父元素 overflow
			Atitit.判断元素是否显示隐藏在父元素 overflow 1.1. scrollTop 指的是元素的滚动条顶端距离原生基线的高度...1 1.2. 判断元素是否显示隐藏在父元素 $(next) ... 
- Linux定时备份数据到百度云盘
			导读:如今的百度云盘免费容量都是2T了,即使把电脑上所有的东东都放上去,也还有大把的剩余空间.对于站长来说,是完全可以充分利用这些硬盘空间的,现在我们就用百度云盘来备份Linux服务器上的数据. 一直 ... 
- poj  Squares  n个点,共能组成多少个正方形  二分 + 哈希
			题目链接:http://poj.org/problem?id=2002 测试数据: 41 00 11 10 090 01 02 00 21 22 20 11 12 14-2 53 70 05 20 有 ... 
- css断句 word-break
			word-break:break-all;word-wrap:break-word; 兼容IE6 火狐 chrome 
