1. 从github
上clone
git clone https://github.com/pjreddie/darknetcd darknet
2. 修改Makefile
以下注释来自参考链接1
GPU=1 #是否需要用GPU
CUDNN=1 #是否需要用CUDNN,这是NVIDIA做的一些优化,实际上就是一些库文件,优化一些常用的矩阵操作
OPENCV=1 #是否需要用OPENCV
OPENMP=1 #CPU的多线程
#Arch 就是GPU的架构版本
ARCH= -gencode arch=compute_20,code=[sm_20,sm_21] \# Fermi 架构 常见 gtx480 gtx580
-gencode arch=compute_30,code=sm_30 \# Kepler 架构 常见 gtx680
-gencode arch=compute_35,code=sm_35 \# Kepler 架构 常见 gtx780
-gencode arch=compute_50,code=[sm_50,compute_50] \# Maxwell 架构 常见 gtx750Ti gtx8 到9 系列 M
-gencode arch=compute_52,code=[sm_52,compute_52]# Maxwell 架构 常见 gtx8 到9 系列
-gencode arch=compute_61,code=[sm_61,compute_61]# Pascal 架构 常见 gtx 10系列
-gencode arch=compute_70,code=[sm_70,compute_70]# Volta 架构 这个不常见,用作超算或者数据中心的,新出了一款2999刀的volta卡 Tesla V100,值得入手.
#高版本code不能在低版本的卡上跑,架构不同的其特性也有差距,所以尽量查一下你的显卡是在那个计算能力上的
因为我是在Jetson TX2应用,就对着一段进行了修改,(TX2的GPU是Pascal架构,计算能力为6.2)
ARCH= -gencode arch=compute_30,code=sm_30 \
-gencode arch=compute_35,code=sm_35 \
-gencode arch=compute_50,code=[sm_50,compute_50] \
-gencode arch=compute_52,code=[sm_52,compute_52] \
-gencode arch=compute_62,code=[sm_62,compute_62]
3. 编译
应用时如果还需要修改其他配置项,在配置完成后记得先make clean,再重新make
make
4. 下载权重文件
wget https://pjreddie.com/media/files/yolov3.weights
wget https://pjreddie.com/media/files/yolov3-tiny.weights
5. 测试
其中,测试图片在darknet/data文件夹下,测试视频在darknet文件夹下
(1)图片
./darknet detect cfg/yolov3.cfg yolov3.weights data/dog.jpg
(2)摄像头实时检测
./darknet detector demo cfg/coco.data cfg/yolov3.cfg yolov3.weights
(3)视频
./darknet detector demo cfg/coco.data cfg/yolov3.cfg yolov3.weights test1.MP4
参考:
yolo 搭建安装过程 - CSDN博客
NVIDIA产品计算能力的链接