admin管理员组

文章数量:1532440

1,操作系统环境

Windows7 64位操作系统,无gpu。

gpu 的请参考 windows下darknet之yolo(gpu版本)安装 - 知乎

2,下载darknet

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

3,下载安装Cygwin

也可参考Windows:安装cygwin教程_Big_quant的博客-CSDN博客_cygwin

搜索,并选择版本号安装,默认都是skip 跳过安装的。

其实这里automake只选择一个版本即可,如automake1.9。

最终由于自动依赖,自动安装了如下

关于安装与卸载:

重点:

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

Cygwin国内比较快的镜像_林海1211的博客-CSDN博客_cygwin镜像网站

²        选择组件时,要加上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的使用可参考如下官方网址:Darknet: Open Source Neural Networks in C

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

YOLO: Real-Time Object Detection

输入如下命令:

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

 

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

 

  

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

 

6. 问题

关于“由于找不到cygwin1.dll,无法继续执行代码,重新安装程序可能会解决此问题“ 的解决办法

如上图所示。

1、问题描述: 在Windows下安装darknet,中间过程我是利用cygwin进行编译的,然后中间少装一些组件,我就又重新装了一遍。所以这个问题很可能是因为这个产生的。我是在运行YOLO的时候,输入指令darknet.exe detect cfg\yolov3.cfg yolov3.weights data\person.jpg  的时候报错的。

2、解决办法:

我从网上看了很多博客,有的人说的方法特别复制繁琐,还有说是添加环境变量之类。我也都试过了,发现对我没有什么用,然后我找到了安装cygwin的安装目录,从里面的bin文件加中找到了这个 cygwin1.dll文件。如图所示:

找到这个文件后,把这个文件复制一下,复制到 C盘下的windows文件夹下,如图所示:

然后重新打开命令窗口运行,便能正常运行。解决~~~ 

本文标签: Windowsdarknet