YOLO是自己实现的框架darknet,并不是基于caffe,虽然Github上有基于caffe的实现。YOLO的编译很快,tinyYOLO的速度确实也非常高,不过准确度是真的低。
记录一下YOLO利用摄像头获取图像并进行目标检测的过程:
首先去github下载darknet并解压。
安装CUDA(仅支持NVIDIA独立显卡),参考博客Ubuntu软件安装记录:CUDA+ROS+QT+sougouinput+有道词典 。
安装OPENCV2:sudo apt-get install libopencv-dev
修改Makefile中对应的:GPU=1,OPENCV=1
编译:make
输入:./darknet imtest data/eagle.jpg
测试是否安装成功,成功的话会显示很多图片。
下载weights参数:下载tiny-yolo-voc.weights。在根目录下建立weights文件夹,保存该weights文件。
输入命令:./darknet detector demo cfg/voc.data cfg/tiny-yolo-voc.cfg weights/tiny-yolo-voc.weights
即开始调用摄像头运行。
遇到的错误:
nvcc -gencode arch=compute_20,code=[sm_20,sm_21] -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] -DOPENCV `pkg-config --cflags opencv` -DGPU -I/usr/local/cuda/include/ --compiler-options "-Wall -Wfatal-errors -Ofast -DOPENCV -DGPU" -c ./src/convolutional_kernels.cu -o obj/convolutional_kernels.o
/bin/sh: 1: nvcc: not found
make: *** [obj/convolutional_kernels.o] Error 127
解决方法:
export PATH=/usr/local/cuda-8.0/bin:$PATH
export LD_LIBRARY_PATH=/usr/local/cuda-8.0/lib64:$LD_LIBRARY_PATH