一.Yolov3配置运行
环境:Ubuntu14.04 +cuda8.0+cudnn5.1
- >>Darknet installed
git clone https://github.com/pjreddie/darknet
cd darknet
make
2.>>download the pre-trained weight file
wget https://pjreddie.com/media/files/yolov3.weights
3. >> run the detector
./darknet detect cfg/yolov3.cfg yolov3.weights data/dog.jpg
二.实现yolo算法在检测结果中只框选车和人
在darknet/src/image.c 里的draw_detections函数draw_box_width函数之前
添加判断语句 :
if(strcmp(labelstr,"person")!=0&&strcmp(labelstr,"car")!=0&&strcmp(labelstr,"truck")!=0)
{continue;}
三.yolo 算法 GPU版本配置运行
(一).修改makefile 文件
(二).解决cudnn.h问题,重新下载加入文件夹中并链接
(三).解决找不到lcuda等库问题,查找并连接
(四).解决显卡驱动不匹配问题:卸载,查看合适版本推荐,安装,重启,运行
具体实现过程:
(一).修改makefile 文件
1.打开darknet/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-8.0/bin/nvcc(这里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
(二). 解决cudnn.h问题,重新下载加入文件夹中并链接
- 下载cudnn压缩包
cuDNN(CUDA Deep Neural Network),
官网:
https://developer.nvidia.com/cudnn
需要注册,以及找到与cuda版本和操作系统版本对应的cudnn版本
2. 解压文件后会看到一个cuda文件夹,里面包含了include以及lib64两个子目录。
将这两个文件夹里的文件复制到cuda对应的安装目录。这里以cuda的安装目录为/usr/local/cuda/为例:
sudo cp cuDNN/cuda/include/cudnn.h /usr/local/cuda/include
sudo cp cuDNN/cuda/lib64/* /usr/local/cuda/lib64
3.链接
#下面的操作在/usr/local/cuda/lib64/目录下进行
sudo rm -rf libcudnn.so libcudnn.so.7.0#删除两个符号链接;
sudo ln -s libcudnn.so.7.0.64 libcudnn.so.7.0
sudo ln -s libcudnn.so.7.0 libcudnn.so
(三). 解决找不到lcuda等库问题,查找并连接
/usr/bin/ld: cannot find -lcarand
/usr/bin/ld: cannot find -lcuda
/usr/bin/ld: cannot find -lcudnn
注:lcuda 意思是libcuda,用如下命令定位libcuda位置
》》locate libcuda
解决办法是将一些文件复制到/usr/local/lib文件夹下:
#注意自己CUDA的版本号!
sudo cp /usr/local/cuda-8.0/lib64/libcudart.so.8.0 /usr/local/lib/libcudart.so.8.0 && sudo ldconfig
sudo cp /usr/local/cuda-8.0/lib64/libcublas.so.8.0 /usr/local/lib/libcublas.so.8.0 && sudo ldconfig
sudo cp /usr/local/cuda-8.0/lib64/libcurand.so.8.0 /usr/local/lib/libcurand.so.8.0 && sudo ldconfig
(四).解决显卡驱动不匹配问题:卸载,查看合适版本推荐,安装,重启,运行
问题:CUDA driver version is insufficient for CUDA runtime version
解决办法 : 先卸载所有驱动,再手动安装驱动
查看当前所有显卡驱动命令:
sudo dpkg –list | grep nvidia-*
卸载所有显卡驱动的命令:
sudo apt-get –purge remove nvidia-*
重新安装显卡驱动:
sudo add-apt-repository ppa:xorg-edgers/ppa
sudo apt-get update
重新安装驱动:
sudo apt-get install nvidia-384(这里要用命令查看适合自己显卡版本的驱动)
如何查看适合自己显卡版本的驱动:
》》 sudo ubuntu-drivers devices
可知,nvidia-384是推荐安装的驱动。输入下面的命令安装这个驱动。
sudo apt-get install nvidia-352
安装好驱动后记得重启电脑,使得新的显卡驱动生效。
检测结果:耗时20ms
参考:
【YOLO】YOLO: You Only Look Once GPU版本的配置与实现 - CSDN博客
https://blog.csdn.net/jinlong_xu/article/details/75195810
cuDNN - CSD博客
https://blog.cdn.net/guoyunfei20/article/details/78191599
Ubuntu16.04 CDA8.0+caffe+gpu运行环境配置 - CSDN博客
https://blog.csdn.net/jiangyanting2011/article/details/78873113
ubuntu+cuda安装问题总结 - CSDN博客
https://blog.csdn.net/cv_family_z/article/details/52101992
Ubuntu如何正确地切换Intel和Nvidia显卡 - CSDN博客
https://blog.csdn.net/yan_chou/article/details/72847943