这次用yolov2做检测时遇到个大坑,折腾了我好几天,特以此文记录之。
一、安装cuda+cudnn
它们的版本必须要匹配,否则训练后检测不出目标!
1、下载cuda8.0.61_375.26_linux.run和cudnn-8.0-linux-x64-v5.1.tgz
2、安装cuda
sh cuda8.0.61_375.26_linux.run
一直enter,直至accept。然后是安装一些东西直接y,或者让你输入地址,
按enter用默认的就可以了。
3、环境变量设置
sudo gedit ~/.bashrc
在其末尾添加:
export CUDA_HOME=/usr/local/cuda-8.0
export LD_LIBRARY_PATH=/usr/local/cuda-8.0/lib64:$LD_LIBRARY_PATH
export PATH=/usr/local/cuda-8.0/bin:$PATH
保存,刷新:source ~/.bashrc
4、动态链接设置
创建文件:sudo gedit /etc/ld.so.conf.d/cuda.conf
写入:/usr/local/cuda/lib64
保存:sudo ldconfig -v
装好后,可用nvcc --version查看cuda版本
5、安装cudnn
如果之前安装了cudnn,可删除之:
cd usr/local/cuda/lib64
sudo rm libcudnn*
解压:
tar -zxvf cudnn-8.0-linux-x64-v5.1.tgz
cd ../lib64
sudo cp lib* /usr/local/cuda/lib64/
cd cuda/include
sudo cp cudnn.h /usr/local/cuda/include/
更新软连接:
cd /usr/local/cuda/lib64/
sudo rm -rf libcudnn.so libcudnn.so.5
sudo ln -s libcudnn.so.5.1.10 libcudnn.so.5
sudo ln -s libcudnn.so.5 libcudnn.so
更新:sudo ldconfig
参考:http://blog.csdn.net/jhszh418762259/article/details/52958287?locationNum=8&fps=1
http://www.cnblogs.com/denny402/p/5067265.html
http://www.jianshu.com/p/3c06b2a6b9df
二、yolov2安装测试
yolov2官网:https://pjreddie.com/darknet/yolo/
官网上有些安装步骤说的不是很清楚,所以很容易遇到坑。
1、darknet安装:git clone https://github.com/pjreddie/darknet.git
不要忘了修改makefile和nvcc!
GPU,cudnn,opencv设为1
nvcc=/usr/local/cuda-8.0/bin/nvcc
然后用make指令编译
2、下载voc数据集
用作者给的指令下载没有成功,手动下载即可。
在scripts里面转换格式:python voc_label.py
生成train文件:cat 2007_* 2012_train.txt > train.txt
在cfg/voc.data中修改训练数据路径
3、下载预训练模型
作者提供了很多其训练好的模型
4、自己训练voc数据
./darknet detector train ./cfg/voc.data ./cfg/yolo-voc.cfg
5、测试下迭代效果,比如6000次
./darknet detector test cfg/voc.data cfg/yolo-voc.cfg backup/yolo-voc_6000.weights data/dog.jpg
参考:http://blog.csdn.net/samylee/article/details/53414108
http://blog.csdn.net/u014540717/article/details/53411948
这个论坛中,作者会亲自解答yolov2:https://groups.google.com/forum/#!forum/darknet