本文主要记录自己安装Darknet过程。
1.Darknet介绍
官网: https://pjreddie.com/
Github: https://github.com/pjreddie/darknet.git

Darknet是一个用C和CUDA编写的开源神经网络框架。它速度快,易于安装,并支持CPU和GPU计算。
博客1 Darknet概述,并总结了其优点
博客2 目标检测:YOLOv3: 训练自己的数据
Github1 darknet深度学习框架源码分析:详细中文注释
2.在linux下安装Darknet
下载源码:
git clone https://github.com/pjreddie/darknet.git
cd darknet
修改Makefile,添加对GPU,CUDNN,OpenCV,OpenMP等的支持。
因为我的CUDA没有使用默认的路径,所以需要进行修改:
vi Makefile

若是使用OpenCV4.1,还需要设置,在Makefile中的g++编译命令里添加-std=c++11的flag:
否则会出现错误:
error "OpenCV 4.x+ requires enabled C++11 support
接下来
编译
make
如果都已正确编译,请尝试运行
./darknet
应该得到输出:
usage: ./darknet <function>
大功告成,接下来就可以使用Darknet了。
注意: 如果出现错误:
./darknet: error while loading shared libraries: libcudart.so.8.0:
cannot open shared object file: No such file or directory
是库文件路径引发的问题,可以到/etc/ld.so.conf.d目录下,修改其中任意一份conf文件,(可以自建conf,以方便识别)将lib所在目录写进去,然后在终端输入 ldconfig 更新缓存。
本文该lib文件在/usr/local/cuda/lib64下,因此在/etc/ld.so.conf.d 创建了一个cuda.conf 文件,并加入
/usr/local/cuda/lib64
保存退出。
最后执行:sudo ldconfig 使文件生效。
3.使用Darknet目标检测
在cfg文件夹下包含了很多设置好的网络模型(类似caffe)。
接下来我们在官网中下载训练好YOLO权重文件(weights):
darknet权重文件

执行预测
# -gpus 可以使用多个GPU,
# -nogpu 不使用GPU
./darknet detect cfg/yolov3-spp.cfg yolov3-spp.weights data/dog.jpg -gpus 3,4
得到输出:

预测图像:
