目录
Yolo训练环境搭建
(一)GPU环境安装
1) 安装NVIDIA显卡驱动
2 )安装 cudn10.0和 cudnn v7.6.5.32
(二) opencv和opencv_contrib安装
(三)darknet安装
a)使用Ubuntu软件仓库中的稳定版本安装
具体方法为:
在终端输入:
ubuntu-drivers devices
得到有关本机显卡其驱动的相关信息
终端输入
sudo ubuntu-drivers autoinstall ##自动安装推荐版本
sudo apt install nvidia-xxx ##安装指定版本
sudo apt-get remove nvidia-* ##卸载显卡驱动
安装完成后终端输入
nvidia-smi
测试有没有安装成功,如果出现如下输出即为安装成功。
!!!我这里不知道啥原因不显示占用率和进程,有知道的伙伴可以留言,十分感谢!!!
显卡驱动下载 NVIDIA官网
GPU驱动历史版本下载:Index of /XFree86/Linux-x86_64
依照对照表,安装对应以上版本
注意事项
1)NVIDIA-SMI has failed because it couldn't communicate with the NVIDIA driver. Make sure that the latest NVIDIA driver is installed and running. 在驱动使用过程中,nvidia-smi失效
解决方法:
sudo apt-get install dkms
sudo dkms install -m nvidia -v 410.48 ##410.48是nvidia版本号,需要根据自己的修改。进入/usr/src目录,找到前缀为nvidia文件夹,其附带的就是版本号。
a)安装cudn
下载cuda Cuda10.0
官网对应文档
对应下载路径下打开终端输入:
sudo sh cuda_10.0.130_410.48_linux.run
然后一直回车键,直到服务条款显示到100%。接着按下面的步骤选择:
accept
n(不要安装driver)
y
y
y
安装完成后,设置环境变量。
终端输入
sudo gedit ~/.bashrc
在文本末添加下面三行
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/cuda-10.0/lib64
export PATH=$PATH:/usr/local/cuda-10.0/bin
export CUDA_HOME=$CUDA_HOME:/usr/local/cuda-10.0
保存推出
source ~/.bashrc
检查:
nvcc --version/
nvcc -V
如果显示下面的文子就说明安装成功
b)安装cudnn
cuDNN下载:cuDNN
解压
解压下载的文件,可以看到cuda文件夹,在当前目录打开终端,执行如下命令:
sudo cp cuda/include/cudnn.h /usr/local/cuda/include/
sudo cp cuda/lib64/libcudnn* /usr/local/cuda/lib64/
sudo chmod a+r /usr/local/cuda/include/cudnn.h
sudo chmod a+r /usr/local/cuda/lib64/libcudnn*
验证测试
sudo dpkg -i libcudnn7_7.6.5.32-1+cuda10.0_amd64.deb
sudo dpkg -i libcudnn7-dev_7.6.5.32-1+cuda10.0_amd64.deb
sudo dpkg -i libcudnn7-doc_7.6.5.32-1+cuda10.0_amd64.deb
cp -r /usr/src/cudnn_samples_v7/ $HOME
cd $HOME/cudnn_samples_v7/mnistCUDNN
make clean && make
./mnistCUDNN
查看cudnn版本
在终端输入
cat /usr/local/cuda/include/cudnn.h | grep CUDNN_MAJOR -A 2
下载opencv和opencv_contrib
opencv下载:opencv官网
opencv_contrib下载:GitHub或者
git clone https://github.com/opencv/opencv_contrib.git/
git clone [email protected]:opencv/opencv_contrib.git
首先卸载系统自带的opencv
sudo apt-get purge libopencv*
sudo apt-get purge python-numpy
sudo apt autoremove
更新安装的包和库
sudo apt-get update
sudo apt-get dist-upgrade
安装依赖
sudo apt-get update
sudo apt-get upgrade
//依赖包
sudo apt-get install libgstreamer1.0-dev libgstreamer-plugins-base1.0-dev
sudo apt-get install libavcodec-dev libavformat-dev libswscale-dev libavutil-dev
sudo apt-get install build-essential
sudo apt-get install cmake git libgtk2.0-dev pkg-config libavcodec-dev libavformat-dev libswscale-dev
sudo apt-get install python-dev python-numpy libtbb2 libtbb-dev libjpeg-dev libpng-dev libtiff-dev libjasper-dev libdc1394-22-dev
sudo apt-get install qt5-default ccache libv4l-dev libavresample-dev libgphoto2-dev libopenblas-base libopenblas-dev doxygen openjdk-8-jdk pylint libvtk6-dev
sudo apt-get install pkg-config
安装opencv和opencv_contrib,我下载的是3.4.5版本,先解压下载的opencv和opencv_contrib包,建议直接将下载下来的包直接放至home地址下,zip格式的解压代码如下:
sudo unzip opencv-3.4.5.zip
sudo unzip opencv_contrib-3.4.5.zip
tar.gz格式的解压代码如下:
sudo tar zxvf opencv_contrib-3.4.5.tar.gz
然后将解压后的contrib文件移动至opencv-3.4.5文件下
sudo cp -r opencv_contrib-3.4.5 opencv-3.4.5
并在opencv-3.4.5文件夹中新建build文件夹用于后续编译和生成
修改路径
sudo gedit /home/pan/opencv-3.4.5/3rdparty/ippicv/ippicv.cmake
##"https://raw.githubusercontent.com/opencv/opencv_3rdparty/${IPPICV_COMMIT}/ippicv/" 修改为绝对路径"/home/pan/opencv-3.4.5/3rdparty/ippicv/" 避免ippicv下载报错
编译
cd opencv-3.4.5
sudo mkdir build
cd build
cmake .. -DWITH_QT=ON -DBUILD_TIFF=ON -DOPENCV_GENERATE_PKGCONFIG=ON -DCMAKE_INSTALL_PREFIX=/usr/local
sudo make -j16
编译ok,下面安装
sudo make install
配置环境变量
打开编辑文件
sudo gedit /etc/ld.so.conf.d/opencv.conf
在空白文档中添加
/usr/local/lib
接下来配置库
sudo ldconfig
更改环境变量
sudo gedit /etc/bash.bashrc
在文件的最后添加
export PKG_CONFIG_PATH=/usr/local/opencv/lib/pkgconfig
export LD_LIBRARY_PATH=/usr/local/opencv/lib
注意事项
1)linux/videodev.h: 没有那个文件或目录
解决办法:
sudo apt-get install libv4l-dev
sudo ln -s /usr/include/libvl1-videodev.h /usr/include/linux/videodev.h(如果还是不行就删除之后在执行这句)
2)sys/videodev.h: 没有那个文件或目录
解决办法:
sudo cp /usr/include/opencv2/videoio/videoio_c.h /usr/include/x86_64-linux-gnu/sys
sudo ln -s /usr/include/x86_64-linux-gnu/sys/videoio_c.h /usr/include/x86_64-linux-gnu/sys/videoio.h
3)fatal error: boostdesc_bgm.i: 没有那个文件或目录
缺少文件
https://pan.baidu.com/s/1RAgY08JuroC5w8aGPm9WQw 提取码:pan0
test_detectors_invariance.impl.hpp复制到opencv_contrib/modules/xfeatures2d/test/
4)类似这种fatal error: opencv2/xfeatures2d/cuda.hpp: 没有那个文件或目录 include “opencv2/xfeatures2d/cuda.hpp”
解决办法:
sudo gedit cuda.hpp ##cuda.hpp路径改为绝对路径
克隆darknet到本地
同样在桌面右击,选择打开终端。
或者直接按CtrlAltT快捷键调出终端。
输入:
git clone https://github.com/AlexeyAB/darknet.git
# 从github上克隆源代码 cd darknet # 切换到darknetr的这个目录
修改Makefile
注意,现在是在darknet的这个目录下!
在这个目录下,右击文件管理器的空白出,选择打开终端。
输入:
cp Makefile Makefile.bak # 备份Makefile文件
gedit Makefile # 编辑Makefile文件
由于Jetpack已经安装好了CUDA、cuDNN和OpenCV,所以将Makefile前三行的内容修改为如下:
GPU=1 # 使用GPU进行编译
UDNN=1 # 使用cudnn进行编译
OPENCV=1 # 使用opencv进行编译
LIBSO=1 # 生成动态链接库
保存退出。
编译darknet
注意,现在是在darknet的这个目录下!
在这个目录下,右击文件管理器的空白处,选择打开终端。
make -j4 # 使用4个线程编译darknet
测试
./darknet imtest data/eagle.jpg # 测试OpenCV demo
如果出现几副动态的的老鹰的,那就说明darknet编译成功
大功告成
注意事项
./darknet: error while loading shared libraries: libcudart.so.10.0: cannot open shared object file: No such file or directory
解决方法:
sudo cp /usr/local/cuda-10.0/lib64/libcudart.so.10.0 /usr/local/lib/libcudart.so.10.0 && sudo ldconfig
sudo cp /usr/local/cuda-10.0/lib64/libcublas.so.10.0 /usr/local/lib/libcublas.so.10.0 && sudo ldconfig
sudo cp /usr/local/cuda-10.0/lib64/libcurand.so.10.0 /usr/local/lib/libcurand.so.10.0 && sudo ldconfig