ubuntu18.04安裝opencv+CUDA10.2+cuDNN+YOLOv3


安裝順序:

  • Opencv
  • 顯卡驅動
  • CUDA10.2
  • cuDnn
  • YOLOv3

1、Opencv3.2.0安裝

搭建依賴環境

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

 下載Opencv3.2並安裝

wget -O opencv.zip https://github.com/Itseez/opencv/archive/3.2.0.zip  
unzip opencv.zip

此時會生成一個opencv3.2.0文件夾

cd opencv-3.2.0

然后創建一個文件夾

mkdir build
cd build
cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local ..
make -j4
make install

執行cmake時,如果卡在了Downloading ippicv_linux_20151201.tgz,可以下載linux_20151201.tgz,

下載地址:https://pan.baidu.com/s/170j3x9zjMyWA6H9k7icpXQ 提取碼: wcg3

然后放在opencv-3.2.0/3rdparty/ippicv/downloads/linux-808b791a6eac9ed78d32a7666804320e目錄下。

重新執行以下命令cmake命令:

cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local -DWITH_IPP=OFF ..

 cmake通過后,再執行

make -j4
make install

 設置路徑

sudo vim /etc/ld.so.conf.d/opencv.conf

在文件中添加:

/usr/local/lib

保存后執行:

sudo ldconfig

 配置環境變量

sudo vim /etc/bash.bashrc

 文件末尾添加:

PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/lib/pkgconfig  
export PKG_CONFIG_PATH  

2、顯卡驅動安裝

禁用默認驅動

Ubuntu系統集成的顯卡驅動程序是nouveau,它是第三方為NVIDIA開發的開源驅動,需要先將其屏蔽才能安裝NVIDIA官方驅動。將驅動添加到黑名單blacklist.conf中,但是由於該文件的屬性不允許修改,所以需要先修改文件屬性。

查看屬性

sudo ls -lh /etc/modprobe.d/blacklist.conf

 修改屬性

sudo chmod 666 /etc/modprobe.d/blacklist.conf

用vim打開

sudo vim /etc/modprobe.d/blacklist.conf

 在該文件后添加以下幾行:

blacklist vga16fb
blacklist nouveau
blacklist rivafb
blacklist rivatv
blacklist nvidiafb

安裝顯卡驅動

執行命令:

ubuntu-drivers devices

 

從這里可以看到,系統推薦我安裝435或440版本驅動,我選擇安裝440版本。

#刪除其它驅動
sudo apt-get remove --purge nvidia*
#增加源
sudo add-apt-repository ppa:graphics-drivers/ppa
sudo apt-get update

 然后安裝顯卡驅動:

sudo apt-get install nvidia-driver-440

 安裝成功后重啟電腦。

執行命令
nvidia-smi

 如果出現如果顯卡列表界面,這顯卡驅動安裝成功。

CUDA10.2安裝

注意:安裝低版本的CUDA,需要對GCC進行降級

進入:https://developer.nvidia.com/cuda-toolkit-archive

 點擊CUDA Toolkit10.2后,如圖選擇:

  CUDA官網會給出下載和安裝方法,根據官網提示,執行:

wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu1804/x86_64/cuda-ubuntu1804.pin
sudo mv cuda-ubuntu1804.pin /etc/apt/preferences.d/cuda-repository-pin-600
wget http://developer.download.nvidia.com/compute/cuda/10.2/Prod/local_installers/cuda-repo-ubuntu1804-10-2-local-10.2.89-440.33.01_1.0-1_amd64.deb
sudo dpkg -i cuda-repo-ubuntu1804-10-2-local-10.2.89-440.33.01_1.0-1_amd64.deb
sudo apt-key add /var/cuda-repo-10-2-local-10.2.89-440.33.01/7fa2af80.pub
sudo apt-get update
sudo apt-get -y install cuda

 設置環境變量

sudo vim ~/.bashrc
export PATH=/usr/local/cuda-10.2/bin${PATH:+:${PATH}}
export LD_LIBRARY_PATH=/usr/local/cuda-10.2/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}

 使環境變量生效

source ~/.bashrc

 執行:

nvcc -V

 

 出現CUDA版本信息時,說明CUDA安裝成功。

CUDNN安裝

進入:https://developer.nvidia.com/rdp/cudnn-download

注冊賬號並登陸,選擇“Download cuDNN v7.6.5 (November 18th, 2019), for CUDA 10.2”

 

然后下載“cuDNN Library for Linux”,下載完成后解壓tgz文件,得到一個cuda文件夾:

tar -xzvf cudnn-10.2-linux-x64-v7.6.5.32.tgz

 然后復制文件:

sudo cp cuda/include/cudnn.h    /usr/local/cuda-10.2/include  
sudo cp cuda/lib64/libcudnn*    /usr/local/cuda-10.2/lib64
sudo chmod a+r /usr/local/cuda/include/cudnn.h   /usr/local/cuda/lib64/libcudnn*

 驗證安裝結果:

cat /usr/local/cuda/include/cudnn.h | grep CUDNN_MAJOR -A 2

 

 出現如圖界面,說明CUDNN安裝成功。

cuDNN第二種安裝方式:

2021-01-19更新:

服務器安裝了CUDA 11.1版本,在安裝cuDNN v8.0.5 for CUDA 11.1時發現,通過下載tgz,解壓復制的方式無法正確的驗證安裝結果,所以采用了以下安裝方式。

下載libcudnn8_8.0.5.39-1+cuda11.1_amd64.deb和libcudnn8-dev_8.0.5.39-1+cuda11.1_amd64.deb

 

 

 然后執行以下命令,完成安裝:

sudo dpkg -i libcudnn8_8.0.5.39-1+cuda11.1_amd64.deb
sudo dpkg -i libcudnn8-dev_8.0.5.39-1+cuda11.1_amd64.deb

YOLOV3安裝

git clone https://github.com/AlexeyAB/darknet
cd darknet

 vim編輯Makefile

vim Makefil

 

 

 將GPU、CUDNN、OPENCV的值改為1,然后執行:

make

 編譯完成后,測試一下效果吧

參考網址:

  • https://blog.csdn.net/gzj_1101/article/details/78651650
  • https://blog.csdn.net/rgd888/article/details/91047780
  • https://blog.csdn.net/xiaokan_001/article/details/88126122
  • https://blog.csdn.net/debjiu/article/details/80824439
  • https://blog.csdn.net/phinoo/article/details/82999337


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM