darknet 源码网站:https://github.com/pjreddie/darknet

技术支持官网:https://pjreddie.com/darknet/

darknet采用C++编写,从github下载源码后,需要先编译才能运行。

在windows下不支持opencv的编译方法较为简单,参见本人前一篇文章。

在windows下支持opencv的编译方法本人走了较多弯路,因此总结出来,给同样需要在windows下使用yolo的人员参考。

1, 踩过的坑

最直接的办法就是修改makefile,将OPENCV=0改为OPENCV=1,然后采用cgywin的gcc来make

但make时会出现pkgconfig未配置或opencv.pc找不到。

网上查了一下,似乎要生成opencv.pc需要重新编译opencv源代码,甚为繁琐。且一般的编译指导都是在linux环境下。

在网上翻了一下,想直接找一个opencv.pc的例子下载来改改,也找不到。

2,思路

后来想,pkgconfig或opencv.pc无非也就是配置一些编译需要的头文件和库文件,为什么不直接在makefile中直接配置呢?

于是在makefile的opencv段中,删除了以下两段。

LDFLAGS+= `pkg-config --libs opencv`
COMMON+= `pkg-config --cflags opencv`

但make时显然就会报错,可以按错误提示重新配置参数。

3,解决头文件问题

由于编译darknet时需要opencv的头文件,make时会报错,显示找不到文件 “opencv2\highgui.hpp”等等之类的信息。

于是将opencv3安装目录下的“opencv\build\include\opencv2”目录整体拷贝到darknet的“\include”目录下,问题解决。

4,解决库文件问题

make此时可以成功生成*.o目标文件,但因为未指定opencv库,无法链接生成darknet.so和darknet.a文件。

因此在makefile的opencv段中,加入以下配置。具体路径视计算机安装opencv的位置而定:

LDFLAGS+= D:/opencv3/opencv/build/x64/vc14/lib/opencv_world330.lib

此时在执行make,就能成功编译出darknet.exe、darknet.so和darknet.a文件。其中包含opencv功能,检测完毕可以直接弹出窗口

darknet detector test cfg/coco.data cfg/yolov2.cfg ../dn-wgts/yolov2.weights data/kite.jpg

darknet+opencv在windows上的编译的更多相关文章

  1. netcdf源码在windows上的编译

    作者:朱金灿 来源:http://blog.csdn.net/clever101 今天搞搞netcdf源码在windows上的编译,折腾了半天,算是搞成了,特地记录一下过程.我的目标是要生成netcd ...

  2. Windows上成功编译CoreCLR源代码

    昨天得知微软在GitHub上发布CoreCLR的源代码之后,立马从GitHub上签出代码,并尝试在Windows Server 2012上进行编译. 参考CoreCLR的开发者指南(Developer ...

  3. 在Windows上一键编译各种版本的Protobuf

    所需工具 : cmake  for  windows 和  git for windows 原理:protobuf 是google的一个开源项目,其源代码在github上可以下载到,并且源码都采用cm ...

  4. 在windows上一键编译各种版本的protobuf(2017-12-05修改)

    所需工具 : cmake  for  windows 和  git for windows 原理:protobuf 是google的一个开源项目,其源代码在github上可以下载到,并且源码都采用cm ...

  5. Windows上快速编译caffe CPU版本

    windows上快速安装配置Caffe的 cpu_only环境. 一:安装环境: 1.windows10: 2.Visual Studio2013: 3.Caffe版本:http://github.c ...

  6. QT库在Windows上的编译

    1.从http://www.qtcentre.org/下载QT源代码,注意是源代码.我下载到的是QT4.5.1版,文件名为qt-win-opensource-src-4.5.1.zip: 2.解压,注 ...

  7. Windows 上静态编译 Libevent 2.0.10 并实现一个简单 HTTP 服务器(无数截图)

    [文章作者:张宴 本文版本:v1.0 最后修改:2011.03.30 转载请注明原文链接:http://blog.s135.com/libevent_windows/] 本文介绍了如何在 Window ...

  8. Windows 上静态编译 Libevent 2.0.10 并实现一个简单 HTTP 服务器(图文并茂,还有实例下载)

    [文章作者:张宴 本文版本:v1.0 最后修改:2011.03.30 转载请注明原文链接:http://blog.s135.com/libevent_windows/] 本文介绍了如何在 Window ...

  9. Zlib 在windows上的编译

    1.下载http://www.zlib.net 下载,最新版本1.2.8 2.解压后,实际已提供了在vc下编译的工程,目录为:zlib-1.2.8\contrib\vstudio. 其中的zlibst ...

随机推荐

  1. 解决GitHub加载和下载慢问题

    1. 修改HOSTS文件: 在“C:\Windows\System32\drivers\etc” 下的HOSTS文件,添加以下地址:   151.101.44.249 github.global.ss ...

  2. vue学习1

    1.<div id="app">{{message}}<input v-model="message"></div>new ...

  3. C#6.0 新功能

    using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.T ...

  4. CRM 2011 开发中遇到的问题小结

    1.将Retrive 方法改成 RetrieveMultiple时 如果指定的ColumnSet 没有指定主键(entiryname+id),要显示增加实体的主键.否则在调用 Retrieve方法时返 ...

  5. Mac Mysql [ERR] 2006 - MySQL server has gone away

    Mac mysql 安装后,导入sql数据,出现这个错误: 处理方式,是因为sql文件太大,需要修改mysql的配置.如果没有my.cnf就自己建一个. cd /etc sudo vim my.cnf ...

  6. 双系统xp和ubuntu,删除ubuntu

    1:下载MbrFix.exe 2:进入c盘,命令MbrFix /drive 0 fixmbr

  7. 函数 devm_kzalloc()【转】

    本文转载自:http://blog.csdn.net/jgw2008/article/details/52691568 函数 devm_kzalloc() 和kzalloc()一样都是内核内存分配函数 ...

  8. HDU4704:Sum(欧拉降幂公式)

    Input 2 Output 2 Sample Input 2 由公式,ans=2^(N-1)%Mod=2^((N-1)%(Mod-1)+(Mod-1)) %Mod. 注意:降幂的之后再加一个Mod- ...

  9. java虚拟机内存区域理解

    java虚拟机有的区域随着虚拟机进程的启动而存在, 有的区域依赖用户线程的启动和结束而建立和销毁. 程序计数器:为了线程切换后能恢复到正确的执行位置,每个线程都有一个独立的程序计数器.(针对java方 ...

  10. vue demo todo-list

    html <input type='text' v-model="todoItem" v-on:keyup.enter='addItem'> <ul> &l ...