You Only Look Once(YOLO)安装与测试

来源:互联网 发布:做名片的软件 编辑:程序博客网 时间:2024/06/05 17:58

对应论文:

You Only Look Once: Unified, Real-TimeObject Detection

 

第一步,安装Darknet。

1.      安装基本系统Installing The Base System

依次输入如下命令:

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

如果make成功,可以看到控制台打印如下信息:


然后再输入如下命令:

./darknet

可以看到控制台打印的信息为:



接下来安装CUDA和opencv。安装CUDA是为了GPU加速(比CPU快500倍以上),安装opencv之后可以显示图片(不安装的话会把最终结果图片保存在硬盘里)。这两个安装是可选的,可以不用安装。

由于安装CUDA步骤比较繁琐,故此处不在说明,可以参考英伟达官网的教程说明。

如果CUDA安装成功,则可以输入nvidia-smi 命令查看显卡。另外,还需要在darknet目录下修改Makefile,修改为

   GPU=1

修改之后再make一下。

如果make之后出现如下错误(前提是CUDA确实安装成功了):

/bin/sh: 1: nvcc: not found

make: ***[obj/convolutional_kernels.o] Error 127

则需要设置一下环境变量,如下:

export PATH=/usr/local/cuda-7.5/bin:$PATHexport LD_LIBRARY_PATH=/usr/local/cuda-7.5/lib64:$LD_LIBRARY_PATH

如果有多个GPU,则可以使用-i <index> 选择使用哪个GPU,示例用法如下:

./darknet -i 1 imagenet test cfg/alexnet.cfg alexnet.weights

如果想要用GPU编译,但是想用CPU计算,则可以使用-nogpu 来使用CPU,示例用法如下:

./darknet -nogpu imagenet test cfg/alexnet.cfg alexnet.weights


opencv的安装可以参考网上的教程。

安装完之后,修改Makefile ,使得

OPENCV=1

修改完之后,同样需要重新make

输入如下语句

./darknet imtest data/eagle.jpg

如果opencv安装成功,则会显示如下图片:





2.      下载作者训练好的weight文件

输入命令

wget http://pjreddie.com/media/files/yolo.weights

大小1G左右。

接下来便可以运行测试demo了。

输入如下命令:

./darknet yolo test cfg/yolo.cfg yolo.weights data/dog.jpg

然后程序便开始运行了。控制台输出如下:



可以看到对于data文件夹下的dog.jpg图片,预测出了car,bicycle,dog。如果安装了opencv,会直接显示结果;如果没有安装,则会将结果保存在darknet文件夹下的predictions.png。结果如下图:




如果使用GPU版本,运行的时候可能会出现如下错误:

30:Detection Layer

forced:Using default '0'

Loadingweights from yolo.weights...Done!

CUDAError: invalid device function

darknet:./src/cuda.c:21: check_error: Assertion `0' failed.

Aborted (core dumped)



前面网络加载均正确,但是最后有关CUDA的错误。

这是由于不同的GPU架构不一样,需要在Makefile文件中将--gpu-architecture=compute_52, --gpu-code=compute_52(这是默认的),我们需要修改为适合我们GPU的值。

默认的值对应的GPU是Titan X GPU,即对应compute_52

Tesla K80 GPU对应的是compute_30,

我的GPU是Tesla K40c,对应的是compute_35,也就是改成

--gpu-architecture=compute_35,--gpu-code=compute_35


其他型号可以参考如下图,也可以去下面的链接查看。


网址为:http://docs.nvidia.com/cuda/cuda-compiler-driver-nvcc/index.html#virtual-architecture-feature-list

修改完Makefile之后,然后重新make,然后再运行

./darknet yolo test cfg/yolo.cfg yolo.weights data/dog.jpg

运行完之后,可以发现运行时间为0.118654s,比CPU运行时间(7.010997s)短多了。






1 0