darknet+opencv在windows上的编译
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上的编译的更多相关文章
- netcdf源码在windows上的编译
作者:朱金灿 来源:http://blog.csdn.net/clever101 今天搞搞netcdf源码在windows上的编译,折腾了半天,算是搞成了,特地记录一下过程.我的目标是要生成netcd ...
- Windows上成功编译CoreCLR源代码
昨天得知微软在GitHub上发布CoreCLR的源代码之后,立马从GitHub上签出代码,并尝试在Windows Server 2012上进行编译. 参考CoreCLR的开发者指南(Developer ...
- 在Windows上一键编译各种版本的Protobuf
所需工具 : cmake for windows 和 git for windows 原理:protobuf 是google的一个开源项目,其源代码在github上可以下载到,并且源码都采用cm ...
- 在windows上一键编译各种版本的protobuf(2017-12-05修改)
所需工具 : cmake for windows 和 git for windows 原理:protobuf 是google的一个开源项目,其源代码在github上可以下载到,并且源码都采用cm ...
- Windows上快速编译caffe CPU版本
windows上快速安装配置Caffe的 cpu_only环境. 一:安装环境: 1.windows10: 2.Visual Studio2013: 3.Caffe版本:http://github.c ...
- QT库在Windows上的编译
1.从http://www.qtcentre.org/下载QT源代码,注意是源代码.我下载到的是QT4.5.1版,文件名为qt-win-opensource-src-4.5.1.zip: 2.解压,注 ...
- Windows 上静态编译 Libevent 2.0.10 并实现一个简单 HTTP 服务器(无数截图)
[文章作者:张宴 本文版本:v1.0 最后修改:2011.03.30 转载请注明原文链接:http://blog.s135.com/libevent_windows/] 本文介绍了如何在 Window ...
- Windows 上静态编译 Libevent 2.0.10 并实现一个简单 HTTP 服务器(图文并茂,还有实例下载)
[文章作者:张宴 本文版本:v1.0 最后修改:2011.03.30 转载请注明原文链接:http://blog.s135.com/libevent_windows/] 本文介绍了如何在 Window ...
- Zlib 在windows上的编译
1.下载http://www.zlib.net 下载,最新版本1.2.8 2.解压后,实际已提供了在vc下编译的工程,目录为:zlib-1.2.8\contrib\vstudio. 其中的zlibst ...
随机推荐
- ubuntu 文件及子文件夹的权限的查看及修改
查看linux文件的权限: 查看path路径下名为filename的文件或文件夹的权限: * -R 结果:全部子目录及文件权限改为 777
- Java 解析excel2003和2007区别和兼容性问题(POI操作)
最近在使用POI对excel操作中发现一些问题,2003和2007的区别还是蛮大的: 2007相关的包: poi-3.9.jar poi-examples-3.8.jar poi-excelant-3 ...
- Delphi的goto语法
今天第一次主要到Delphi也有goto语法,特别是其奇怪的label声明.估计主要是用来跳出多重循环,而且还真有人使用这种方式.记个笔记: procedure TForm1.btn3Click(Se ...
- 20170111 ABAP技术小结(全半角转换)
DATA: it_po LIKE it_alv OCCURS 0 WITH HEADER LINE.************************************************** ...
- openssl动态库编译
通常Linux系统自带OpenSSL,但是其so文件由于没有debug信息,因此无法跟踪内部函数,对于学习 不太方便,需要通过源码重新安装. 我的Linux系统是CentOS7,自带的 ...
- frameset 框架整体退出登录的问题
1 设置其他的页面都验证session,如果session不存在就跳转到 Login 页: 2 Login中添加下面的js代码: <script language="JavaScrip ...
- bzoj 4603 平凡的骰子
题目大意: 思路: 首先我们需要求出整个凸多面体的重心 可以通过把多面体剖分为四面体 求出每个四面体的重心 四面体的重心为四个点的坐标和/4 对每个四面体的重心 加上它们体积的权 加权平均数即为整个的 ...
- 【193】◀▶ PowerShell 官方资料索引
Microsoft.PowerShell.Core 模块 Windows PowerShell 核心 Cmdlet Windows PowerShell 核心函数 Windows PowerShell ...
- AWS EC2中部署Apache服务器(LAMP)
关键词: 1.新建aws ec2实例 2.使用putty连接到aws ec2 实例(SSH协议) 3.使用filezilla连接到aws ec2实例(SFTP协议) 4.在aws ec2上部署apac ...
- Spring Shell简单应用
大致:想要使用Spring Shell,则项目需要是 Spring Boot项目,下面贴出结构和代码 1.POM依赖 <?xml version="1.0" encoding ...