Windows+CPU+Cygwin编译darknet运行yolo3

一、下载darknet

(1)https://github.com/pjreddie/darknet  中clone&download

(2)https://pjreddie.com/darknet/install/   在命令行下:

git clone https://github.com/pjreddie/darknet.git

二、安装Cygwin

https://cygwin.com/install.html  根据系统位数下载;

安装的时候镜像随便选一个能用的就行,比如默认的第一个:

Windows+CPU+Cygwin编译darknet运行yolo3_第1张图片

一定要记得选择安装一些额外的包,gcc-core、gcc-g++、make、gdb、binutils

ViewCategory下的Devel下可以找到:

Windows+CPU+Cygwin编译darknet运行yolo3_第2张图片

添加“安装目录\cygwin64\bin”系统路径Path,例如:

E:\cygwin64\bin

三、编译darknet

(1)检查gcc,在cmd中输入:

which gcc

检查gcc是否安装设置为cygwin,而不是MinGW的gcc:

Windows+CPU+Cygwin编译darknet运行yolo3_第3张图片

(2)修改examples\Go.c 文件,开头加上“#include ”,否则编译出错。

(3)运行cygwin64,打开当前darknet的目录,例如:

cd F:keras-yolo3-master/darknet

(4)编译,输入:

make

观察到:

Windows+CPU+Cygwin编译darknet运行yolo3_第4张图片

Windows+CPU+Cygwin编译darknet运行yolo3_第5张图片

make过程中无报错,且在..\darknet\obj文件夹下生成若干.o文件,即视为编译成功。

四、训练yolo

1. Generate your own annotation file and class names file.  

python voc_annotation.py

2. 运行:

python convert.py -w yolov3.cfg yolov3.weights model_data/yolo_weights.h5

The file model_data/yolo_weights.h5 is used to load pretrained weights.

或者:

wget https://pjreddie.com/media/files/yolov3.weights

得到预训练好的权重,就不用自己再训练了

3. 训练:

python train.py

用CPU的话训练时间非常长 ,50轮迭代,每次5个半小时。
    Use your trained weights or checkpoint weights with command line option `--model model_file` when using yolo_video.py
    Remember to modify class path or anchor path, with `--classes class_file` and `--anchors anchor_file`.

If you want to use original pretrained weights for YOLOv3:  
    1. `wget https://pjreddie.com/media/files/darknet53.conv.74`  
    2. rename it as darknet53.weights  
    3. `python convert.py -w darknet53.cfg darknet53.weights model_data/darknet53_weights.h5`  
    4. use model_data/darknet53_weights.h5 in train.py

五、预测

输入:

./darknet

得到:

usage: ./darknet 

说明darknet编译成功可以使用。

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

预测当前data文件夹下的dog图片:

Windows+CPU+Cygwin编译darknet运行yolo3_第6张图片

置信度如图,在当前文件夹下得到predictions.jpg:

Windows+CPU+Cygwin编译darknet运行yolo3_第7张图片

六、踩坑

如果之前没有注意到要使用cygwin的gcc,误使用MinGW的gcc来make的话,会报错

[Makefile:89:obj/deconvolutional_layer.o] 错误 1

这个时候不仅要修改为cygwin的gcc,还要在obj目录下删除干净使用MinGW的gcc编译出的.o文件。

七、参考引用

https://www.cnblogs.com/jackkwok/p/9045890.html

https://www.cnblogs.com/hchacha/p/7147603.html

你可能感兴趣的:(折腾,深度学习,darknet,Windows,cpu,Cygwin,yolo)