zoukankan      html  css  js  c++  java
  • 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时会报错,显示找不到文件 “opencv2highgui.hpp”等等之类的信息。

    于是将opencv3安装目录下的“opencvuildincludeopencv2”目录整体拷贝到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

  • 相关阅读:
    AWS生产环境Pod挂载不了configmap、secret
    Ant学习
    Springframework3.1源码编译
    MyEclipse10 中增加svn插件
    如何测试java支持的最大内存
    Tomcat中部署后JspFactory报异常的解决方案
    win7x64下安装oraclex64版本后,plsql Developer无法登录的问题
    CentOS6.4安装及配置oracle
    VMWare安装redhat9后上网的的问题
    泛海精灵项目的回顾与反思
  • 原文地址:https://www.cnblogs.com/jackkwok/p/9076434.html
Copyright © 2011-2022 走看看