【YOLO】YOLO: You Only Look Once GPU版本的配置与实现

Update: 博主建了一个计算机视觉&YOLO的群:659389932。希望与大家多多交流。(2017-08-15)

说明

使用TensorFlow实现的YOLO,发现效果很一般(GTX960下,一张图1.2s左右),因此打算用darknet实现的YOLO来跑跑看效果。


大致交代一下,TensorFlow版本的YOLO在台式机显卡GTX960,16GB内存情况下,大概是1.2s一张图。现在在GPU工作站(CPU至强系列,GPU两块Titan xp)上测试用darknet实现的YOLO,基于CPU的是12.3s一张图,这个效果是真的很差啊,然后就想既然都用了GPU工作站了,那用GPU跑起来。



官网(YOLO: Real-Time Object Detection)上对于CPU、GPU编译的有一段话来介绍:

Darknet prints out the objects it detected, its confidence, 
and how long it took to find them. Since we are using 
Darknet on the CPU it takes around 6-12 seconds per image.
 If we use the GPU version it would be much faster.

步骤

编译GPU版本并没有告诉我们怎么做?网上找到了很多都会出现bug,所以我给出步骤分享给大家。


接下来我将给出大家一个详细的步骤:

1、打开你的MakeFile文件,将GPU=0 --> GPU=1

2、CUDNN=0 --> CUDNN=1

3、DEBUG=0 --> DEBUG=1

4、NVCC=/usr/local/cuda/cuda/bin/nvcc

     -->NVCC=/usr/local/cuda/cuda-8.0/bin/nvcc

5、COMMON+= -DGPU -I/usr/local/cuda/include

     -->COMMON+= -DGPU -I/usr/local/cuda-8.0/include

6、LDFLAGS+= -L/usr/local/cuda/lib64-lcuda -lcudart -lcublas -lcarand

     --> LDFLAGS+= -L/usr/local/cuda-8.0/lib64-lcuda -lcudart -lcublas -lcarand

到这里,Makefile 文件就配置好了。这个时候如果你直接对 darknet 进行 make,会出现 nvcc: can't found the file.

接下来的步骤就是安装一下 nvidia-cuda-toolkit,这样 make 的时候就可以找到 nvcc.

7、cd 到  /usr/local/cuda-8.0/bin,

      命令行为 sudo apt-get install nvidia-cuda-toolkit

8、cd 到 /yolo_darknet/darknet,

     命令行为 make

     只要不报错就说明make成功。

9、依旧在文件夹 /yolo_darknet/darknet

     命令行为 ./darknet detect cfg/yolo.cfg yolo.weights data/dog.jpg GPU=1


测试结果

     那么你会看到模型运行起来了,测试结果为:

     【YOLO】YOLO: You Only Look Once GPU版本的配置与实现_第1张图片


那么很显然,大家可以看到GPU加速后,效率惊人。计算一下帧率能达到60.496 FPS。


希望有在用YOLO的小伙伴能和我交流一下,谢谢。






你可能感兴趣的:(computer,vision,YOLO系列)