作者配置时的环境
visual studio 2013
显卡 GTX 960M
CUDA 7.5
OpenCV 2.4.9
pthreadpthread 下载地址
YOLO官网
[http://pjreddie.com/darknet/yolo/]
步骤
1、 新建vs工程
2、 将工程设置为Release x64 模式
3、然后再工程添加这三个文件夹,命名为c,h,cu。然后分别添加.cu .c .h 文件, 这个地方需要注意,添加的文件的位置在darknet下的src中,但是并不需要添加所有的.cu .c .h。如图是Makefile里面的截图,里面显示需要添加的文件。
4、接下来是添加包含目录,分别是cuda7.5,opencv,pthread的inlcude
5、同理,按照下图添加lib路径
6、同理,按图添cuda7.5,opencv,pthread的lib
7、接下来这个要注意,在预编译的地方添加GPU和OPENCV
8、接下来就是修改源码的一些可能出现的问题
<code class="hljs lasso has-numbering" style="display: block; padding: 0px; color: inherit; box-sizing: border-box; font-family: 'Source Code Pro', monospace;font-size:undefined; white-space: pre; border-radius: 0px; word-wrap: normal; background: transparent;">在使用<span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">inline</span>的文件的最前面添加这样的一句话
<span class="hljs-variable" style="color: rgb(102, 0, 102); box-sizing: border-box;">#define</span> <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">inline</span> __inline
编译的时候会出现包结构体的错误,这个时候将结构体变量的定义放在函数体的最前面</code><ul class="pre-numbering" style="box-sizing: border-box; position: absolute; width: 50px; top: 0px; left: 0px; margin: 0px; padding: 6px 0px 40px; border-right-width: 1px; border-right-style: solid; border-right-color: rgb(221, 221, 221); list-style: none; text-align: right; background-color: rgb(238, 238, 238);"><li style="box-sizing: border-box; padding: 0px 5px;">1</li><li style="box-sizing: border-box; padding: 0px 5px;">2</li><li style="box-sizing: border-box; padding: 0px 5px;">3</li></ul><ul class="pre-numbering" style="box-sizing: border-box; position: absolute; width: 50px; top: 0px; left: 0px; margin: 0px; padding: 6px 0px 40px; border-right-width: 1px; border-right-style: solid; border-right-color: rgb(221, 221, 221); list-style: none; text-align: right; background-color: rgb(238, 238, 238);"><li style="box-sizing: border-box; padding: 0px 5px;">1</li><li style="box-sizing: border-box; padding: 0px 5px;">2</li><li style="box-sizing: border-box; padding: 0px 5px;">3</li></ul>
9、编译通过之后就可以进行测试:
可以在vs命令参数中输入: yolo demo yolo-tiny.cfg(添加路径) yolo-tiny.weights(路径) 视频路径
或者 yolo demo yolo-tiny.cfg(添加路径) yolo-tiny.weights(路径)
10、存在的问题:
这样编译之后,作者的摄像头读取的方式不能时候,暂时想到的问题是多线程的问题,现在还没解决。