darknet在windows上的安装编译与使用

darknet(https://github.com/pjreddie/darknet)实现了YOLO网络模型,能快速准确识别多达9000种物体。但其在windows系统上的安装却并非一帆风顺,本文进行总结,以免掉坑。

 

1,操作系统环境

Windows7 64位操作系统,无gpu

 

2,下载darknet

在网站https://github.com/pjreddie/darknet上,点击“clone or download”,然后选择“download ZIP”,下载为文件darknet-master.zip。解压到“F:\test\git-src\darknet-master”目录。

 

3,下载安装Cygwin

参照以下文章“windows 安装cygwin教程”进行安装。

https://blog.csdn.net/chunleixiahe/article/details/55666792

 

重点:

²        寻找映像文件时,要选择国内快速站点。比如下文推荐的sohu镜像(http://mirrors.sohu.com/cygwin/)。笔者就是采用它,安装非常快速。

https://blog.csdn.net/u011393033/article/details/51766876

²        选择组件时,要加上devel目录下的make组件,否则无法执行make命令。

²        记得添加windows环境变量,最好将cygwin\bin放到path开头。

 

4,编译darknet

进入Cygwin64 Terminal,目录转移到F:\test\git-src\darknet-master,然后执行make。

 

 

结束后,会产生darknet.exe、libdarknet.a、libdarknet.so文件。

 

注意:

²        编译darknet源码不能采用mingw,要采用cygwin。笔者首先安装的是mingw组件包,结果在编译时出现大量头文件不存心的错误。

²         执行make前要先删除已存在的obj目录。由于笔者曾经采用过mingw进行编译,虽然失败未生成libdarknet.so文件,但obj目录下生成不少.o目标文件,此时如果直接用cygwin执行make,会出现大量莫名错误。如“对‘_XXX’未定义的引用”、/usr/lib/gcc/x86_64-pc-cygwin/6.4.0/../../../../x86_64-pc-cygwin/bin/ld: i386 架构于输入文件 libdarknet.a(shortcut_layer.o) 与 i386:x86-64 输出不兼容

²         Examples\Go.c 文件需要修改,要加上“#include <sys/select.h>”,否则编译出错

 

5,使用darknet

Darknet的使用可参考如下官方网址:https://pjreddie.com/darknet/

 

笔者测试的是最新的yolo V3模型,具体参见:

https://pjreddie.com/darknet/yolo/

 

输入如下命令:

darknet detect cfg/yolov3.cfg yolov3.weights data/dog.jpg

 

 

 其中“dog.jpg”如下图所示。YoloV3虽然花费时间28秒久了点,但对图中的自行车、狗和卡车实现了完美识别。

 

  

打开生成的predictions.png文件如下,至此Yolo在windows上的应用取得成功。

 

 

posted @ 2018-05-16 14:34  jack0424  阅读(23065)  评论(7编辑  收藏  举报