主頁 >  其他 > Ubuntu20.04+GeForce RTX 2080 SUPER+cuda11.1+cudnn8.0.4+openCV4.4.0編譯

Ubuntu20.04+GeForce RTX 2080 SUPER+cuda11.1+cudnn8.0.4+openCV4.4.0編譯

2020-10-21 14:20:47 其他

Ubuntu20.04+GeForce RTX 2080 SUPER+cuda11.1+cudnn8.0.4+openCV4.4.0環境搭建

  • 1.Ubuntu20.04系統安裝
    • 1.1 制作系統盤
    • 1.2 安裝Ubuntu20.04系統
    • 1.3 更換國內鏡像源
    • 1.4 安裝fcitx輸入法
  • 2.NVIDIA顯卡驅動安裝
    • 2.1 查看顯卡型號并下載對應驅動
    • 2.2 安裝NVIDIA顯卡驅動
      • 2.2.1 禁用nouveau驅動
      • 2.2.2 安裝NVIDIA驅動
  • 3.CUDA11.1安裝
  • 4.CUDNN8.0.4安裝
  • 5.OpenCV4.4.0編譯
    • 5.1 安裝依賴包
    • 5.2 下載opencv-4.4.0和opencv_contrib-4.4.0
    • 5.3 安裝OpenCV
      • 5.3.1 Configure
      • 5.3.2 Generate
      • 5.3.3 帶CUDA編譯
      • 5.3.4 make
      • 5.3.5 配置環境變數
  • 6.OpenCV測驗程式
  • 7.YOLO v3測驗
  • 參考

經過將近一個月的折騰,終于安裝、編譯成功,在此做一個記錄,以備日后快速搭建環境,也希望能給各位踩坑的小伙伴一點參考,

1.Ubuntu20.04系統安裝

1.1 制作系統盤

下載Ubuntu20.04系統鏡像和U盤啟動制作工具,使用UltraISO制作Ubuntu20.04系統盤,

  • 啟動UltraISO,點擊“繼續試用”

在這里插入圖片描述

  • “檔案”–>“打開”,選擇下載好的Ubuntu鏡像

在這里插入圖片描述
在這里插入圖片描述

  • “啟動”–>“寫入硬碟鏡像”,磁盤驅動器選擇提前準備好的閑置U盤,先“格式化”U盤,然后“寫入”,等待寫入完成即可,

在這里插入圖片描述

1.2 安裝Ubuntu20.04系統

  • 插入第一步做好的系統盤,開機,出現主板圖示時按下F11/F12(不同電腦和主板有所差別,可以根據自己的電腦型號查找)進入快速啟動項界面,選擇制做好的系統盤

在這里插入圖片描述
在這里插入圖片描述

  • 在彈出的界面中選第一項“Ubuntu”

在這里插入圖片描述

  • Ubuntu20.04安裝前首先會檢測磁盤,等待檢測完成即可

在這里插入圖片描述

  • 選擇語言,個人建議如果安裝Ubuntu系統是用來做開發,語言最好選擇English,不要選中文,會避免以后很多不必要的麻煩
  • 點擊"Install Ubuntu"

在這里插入圖片描述

  • "Keyboard layout"同樣選擇英文

在這里插入圖片描述

  • 如果有無線網卡的話,會彈出連網的界面,這里選擇不連接WIFI

在這里插入圖片描述

  • “Updates and other software”界面,我選擇的是"Minimal installation",這樣安裝程序會快一些,而且不會安裝一些不需要的軟體,(Normal installation會安裝web瀏覽器、公用程式、辦公軟體、游戲和媒體播放器,Minimal installation只會安裝web瀏覽器和基本實用程式)

在這里插入圖片描述

  • “Installation type”界面選擇“Something else”,自己進行磁區

在這里插入圖片描述

  • 磁區按以下順序進行:
    !EFI一定要放在最前面

    • EFI:主磁區,建議不小于512M,這里我分配了2G
    • 掛載點 / :邏輯磁區,ext4日志檔案系統,用于存放系統,建議根據自己的磁盤大小分配的大一點,這里我分配了200G(磁盤共1T)
    • swap(交換空間):邏輯磁區,大小與電腦的真實記憶體大小一致,這里我的是32G記憶體
    • 掛載點 /home :邏輯磁區,ext4日志檔案系統,將剩余空間全部分配給它

在這里插入圖片描述

  • 磁區完成后,安裝啟動引導器的設備選擇整個磁盤,點擊"Install Now"–>“Continue”

在這里插入圖片描述

  • 選擇時區,“Shanghai”

在這里插入圖片描述

  • 輸入用戶名和密碼

在這里插入圖片描述

  • 開始安裝,等待完成

在這里插入圖片描述
在這里插入圖片描述

  • 安裝完成后,重啟

在這里插入圖片描述

  • 重啟后按提示拔出U盤后按回車鍵

在這里插入圖片描述

  • 進入登錄界面,安裝成功

在這里插入圖片描述

在這里插入圖片描述

  • 最小安裝后沒有office軟體

在這里插入圖片描述

1.3 更換國內鏡像源

注: 我的臺式機裝完后無法上有線網,如果有同樣問題的小伙伴可以到github下載r8125的網卡驅動,自行安裝,可以參考這篇文章

  • 打開應用中心–>“Software & Updates”

在這里插入圖片描述

  • “Download from”選擇“Other…”

在這里插入圖片描述

  • 找到"China",選擇適合的源,也可以點擊"Select Best Server"自動選擇

在這里插入圖片描述
在這里插入圖片描述

  • “Choose server”–>“Close”–>“Reload”

在這里插入圖片描述

在這里插入圖片描述

在這里插入圖片描述

  • 打開終端“Ctrl + Alt + T”,輸入sudo apt-get update

在這里插入圖片描述

1.4 安裝fcitx輸入法

  • 卸載IBUS

sudo apt-get purge ibus

  • 打開ubuntu軟體中心,搜索fcitx,把帶企鵝圖示的軟體都裝上,這里我沒有選擇fcitx5

在這里插入圖片描述

  • 安裝輸入法碼表,這里裝的五筆拼音

sudo apt-get install fcitx-table-wbpy

  • 其他輸入法如下:

    • 拼音:fcitx-pinyin、fcitx-sunpinyin、fcitx-googlepinyin、fcitx-sogoupinyin
    • 五筆:fcitx-table、fcitx-table-wubi、fcitx-table-wbpy
  • 防止出現兩個輸入法圖示

sudo apt remove fcitx-ui-classic

  • 選擇fcitx為系統輸入法,“設定”–>“Region & Language”–>“Manage Installed Languages”–>彈出的對話框選“Remind Me Later”–>"Keyboard input method system"選擇fcitx–>“close”

在這里插入圖片描述

在這里插入圖片描述

在這里插入圖片描述

  • 重啟系統

sudo reboot

  • 點擊右上角出出現的企鵝圖示–>ConfigureFcitx

在這里插入圖片描述

  • 點擊“+”–>去掉"Only Show Current Language"前面的勾–>下方搜索框中輸入"wb"–>選擇"WubiPinyin"–>“OK”

在這里插入圖片描述

在這里插入圖片描述

在這里插入圖片描述

  • 至此,Ubuntu20.04安裝完成

2.NVIDIA顯卡驅動安裝

2.1 查看顯卡型號并下載對應驅動

  • 查看自己的顯卡型號,終端輸入:lspci | grep -i vga,回傳的是一個十六進制的代碼(如果有集成顯卡需要先關掉集顯,圖中的顯卡是1650 SUPER)

在這里插入圖片描述

  • 如果已經安裝了NVIDIA驅動,就會顯示顯卡型號

在這里插入圖片描述

  • 打開這個網站:The PCI ID Repository,在下方的輸入框中輸入十六進制代碼查詢相應的顯卡型號

在這里插入圖片描述
在這里插入圖片描述

  • 當然,如果已經安裝了NVIDIA的顯卡驅動,也可以直接在終端輸入nvidia-smi查看顯卡型號及驅動等資訊

在這里插入圖片描述

  • 根據自己的顯卡型號,到NVIDIA官網下載對應的驅動 (這里的網址只是GeForce型別的驅動,如果是TITAN或Quadro等可以在這個網址下載,下載步驟類似)

在這里插入圖片描述
在這里插入圖片描述

2.2 安裝NVIDIA顯卡驅動

2.2.1 禁用nouveau驅動

  • nouveau是由第三方為NVIDIA顯卡開發的一個開源3D驅動,Ubuntu默認集成了nouveau驅動,若不禁用,安裝時會報錯
  • nouveau禁止命令寫入檔案,打開以下檔案

sudo gedit /etc/modprobe.d/blacklist.comf

  • 檔案末尾添加以下陳述句,保存退出

blacklist nouveau
blacklist lbm-nouveau
options nouveau modeset=0
alias nouveau off
alias lbm-nouveau off

在這里插入圖片描述

  • 呼叫指令禁止nouveau

echo options nouveau modeset=0 | sudo tee -a /etc/modprobe.d/nouveau-kms.conf

  • 更新內核

sudo update-initramfs -u

在這里插入圖片描述

2.2.2 安裝NVIDIA驅動

  • 重啟系統

sudo reboot

  • 進入tty模式,這里F1~F6都可以,我的是F2進入,輸入用戶名和密碼登錄(注意這時小鍵盤不能用,我的電腦這里報了一個聲卡的錯誤,按Ctrl+C強行關掉就行,不會影響后面的安裝)

ctrl + alt + F2

在這里插入圖片描述

  • 關閉lightdm

sudo service lightdm stop

  • 如果上面指令提示Failed to stop lightdm.service: unit lightdm.service not loaded.
    則先安裝lightdm:sudo apt install lightdm,彈出的界選擇lightdm,再用上面的指令關閉

在這里插入圖片描述

  • 繼續輸入

sudo init 3

  • 切換到下載的NVIDIA驅動安裝包所在目錄,賦予可執行權限并安裝

cd ~/Download
chmod +x NVIDIA-Linux-x86_64-455.28.run
sudo sh NVIDIA-Linux-x86_64-455.28.run --no-opengl-files
注意:no前面是兩個橫杠,否則會導致安裝失敗

  • 接著會出現一些界面,按下面所示選擇安裝

1、An alternate method of installing the NVIDIA driver was detected. 選擇continue installation
這個應該是推薦你通過Ubuntu的“Software & application”中的“Additional Drivers”安裝驅動,不用管,繼續安裝在這里插入圖片描述
2、The distribution-provided pre-install script failed! Are you sure you want to continue? 選擇 yes 繼續,
3、Would you like to register the kernel module sources with DKMS? This will allow DKMS to automatically build a new module, if you install a different kernel later? 選擇NO繼續
4、Would you like to run the nvidia-xconfigutility to automatically update your x configuration so that the NVIDIA x driver will be used when you restart x? Any pre-existing x confile will be backed up. 選擇 Yes 繼續
5、Install NVIDIA’s 32-bit compatibility libraries? 選擇No 繼續
在這里插入圖片描述

注1:如果提示找不到gcc和make,可以在命令列中安裝gcc和make后再安裝驅動

sudo apt-get install gcc
sudo apt-get install make

注2:如果出現下面的錯誤提示,是因為bios的Secure Boot打開了,需要進入bios關閉

The target kernel has CONFIG_MODULE_SIG set, which means that it supports cryptographic signatures on kernel modules. On some systems, the kernel may refuse to load modules without a valid signature from a trusted key. This system also has UEFI Secure Boot enabled; many distributions enforce module signature verification on UEFI systems when Secure Boot is enabled. Would you like to sign the NVIDIA kernel module?
在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述

  • 上面的錯誤都排除掉,安裝完成

在這里插入圖片描述

在這里插入圖片描述

在這里插入圖片描述

  • 完成后輸入nvidia-smi查看顯卡資訊,如果顯示如下內容,說明安裝成功

在這里插入圖片描述

  • 重啟

sudo reboot

  • 重啟后打開終端,輸入nvidia-smi

在這里插入圖片描述

  • 輸入nvidia-settings,如果如下圖顯示,說明安裝成功

在這里插入圖片描述

3.CUDA11.1安裝

  • 在NVIDIA開發者官網下載CUDA,選擇自己對應的系統和安裝方式,下方會出現對應的安裝指令,推薦使用runfile方式安裝,如果想安裝之前的版本,可以到這里下載

在這里插入圖片描述

在這里插入圖片描述

  • 下載cuda(如果是比較早的版本,需要把安裝檔案和所有補丁檔案都下載,然后運行)

wget https://developer.download.nvidia.com/compute/cuda/11.1.0/local_installers/cuda_11.1.0_455.23.05_linux.run

  • 下載完成后,進行安裝

sudo sh cuda_11.1.0_455.23.05_linux.run

  • 輸入accept

在這里插入圖片描述

  • 因為之前已經安裝好了顯卡驅動,安裝CUDA時不需要選擇顯卡驅動,按回車即可取消前面的X,Install

在這里插入圖片描述

  • 最后會提示安裝未完成,是因為我們沒有選擇顯卡驅動,不用管,只要顯示下面的內容就是安裝成功

在這里插入圖片描述

  • 添加環境變數,打開profile檔案

sudo gedit /etc/profile

  • 在末尾處添加以下內容(注意不要有空格,不然會報錯)

export PATH=/usr/local/cuda-11.1/bin:$PATH
export LD_LIBRARY_PATH=/usr/local/cuda-11.1/lib64$LD_LIBRARY_PATH

  • 重啟電腦

sudo reboot

  • 測驗CUDA是否安裝成功,按以下指令編譯、運行,如果顯示有關GPU的資訊,說明安裝成功

cd /usr/local/cuda-11.1/samples/1_Utilities/deviceQuery
sudo make
/deviceQuery

在這里插入圖片描述

  • 也可以輸入nvcc -V查看CUDA版本

nvcc -V

在這里插入圖片描述

4.CUDNN8.0.4安裝

  • 到官網下載與CUDA11.1對應的CUDNN版本,下載CUDNN需要注冊NVIDIA開發者賬號
    注:建議高版本的cudnn下載deb安裝包進行安裝,直接安裝即可,不需要復制檔案

在這里插入圖片描述

  • 登錄–>同意

在這里插入圖片描述

  • 下載cuDNN8.0.4
    • cuDNN Runtime Library for Ubuntu18.04 x86_64

    • cuDNN Developer Library for Ubuntu18.04 x86_64

    • cuDNN Code Samples and User Guide for Ubuntu18.04 x86_64

在這里插入圖片描述

  • 下載完成按以下順序分別安裝三個安裝包
  • 注:這里一定要按順序安裝

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

  • CUDNN安裝完成
    在這里插入圖片描述

5.OpenCV4.4.0編譯

opencv安裝程序中會有很多檔案不能下載導致安裝失敗,如果有需要到文末百度云下載,

5.1 安裝依賴包

sudo apt-get update -y # Update the list of packages
sudo apt-get remove -y x264 libx264-dev # Remove the older version of libx264-dev and x264
sudo apt-get install -y build-essential checkinstall cmake pkg-config yasm
sudo apt-get install -y git gfortran
sudo add-apt-repository -y “deb http://security.ubuntu.com/ubuntu xenial-security main”
sudo apt-get update
sudo apt-get install -y libjpeg8-dev libjasper-dev libpng12-dev
sudo apt-get install -y libtiff-dev
sudo apt-get install -y libavcodec-dev libavformat-dev libswscale-dev libdc1394-22-dev
sudo apt-get install -y libxine2-dev libv4l-dev
sudo apt-get install -y libgstreamer1.0-dev libgstreamer-plugins-base1.0-dev
sudo apt-get install -y qt5-default libgtk2.0-dev libtbb-dev
sudo apt-get install -y libatlas-base-dev
sudo apt-get install -y libfaac-dev libmp3lame-dev libtheora-dev
sudo apt-get install -y libvorbis-dev libxvidcore-dev
sudo apt-get install -y libopencore-amrnb-dev libopencore-amrwb-dev
sudo apt-get install -y x264 v4l-utils

安裝以上依賴我并沒有出錯,如果出現錯誤提示,這里列出幾個錯誤及解決方案,具體參考這篇博客

  • 錯誤一:

E: Unable to locate package libjasper-dev

  • 解決方法:

sudo add-apt-repository “deb http://security.ubuntu.com/ubuntu xenial-security main”
sudo apt-get update
sudo apt-get install libjasper-dev

  • 錯誤二:

E: Unable to locate package libgstreamer0.10-dev\

  • 解決方法:

sudo apt install libgstreamer1.0-dev libgstreamer-plugins-base1.0-dev

5.2 下載opencv-4.4.0和opencv_contrib-4.4.0

OpenCV 4.4.0:

https://github.com/opencv/opencv/tags

在這里插入圖片描述

在這里插入圖片描述

在這里插入圖片描述

OpenCV contrib 4.4.0

https://github.com/opencv/opencv_contrib/tags

在這里插入圖片描述

在這里插入圖片描述

在這里插入圖片描述

  • 下載完成后在主目錄下新建software目錄

cd ~
mkdir software

  • 解壓opencv到software

cd Download
tar -zxvf opencv-4.4.0.tar.gz -C /home/username/software
tar -zxvf opencv_contrib-4.4.0.tar.gz -C /home/username/software/opencv4.4.0

5.3 安裝OpenCV

5.3.1 Configure

  • 安裝cmake-gui

sudo apt-get install cmake-gui

  • 進入software/opencv-4.4.0目錄,新建build目錄,進入build目錄并運行cmake-gui

cd /home/username/software/opencv-4.4.0
mkdir build
cd build
cmake-gui …
注意:cmake-gui后面的兩個點不能丟

  • 彈出的CMake圖形化界面,確認上面的兩個路徑

/home/username/software/opencv-4.4.0
/home/username/software/opencv-4.4.0/build

在這里插入圖片描述

  • 點擊Configure–>選擇Unix Makefiles–>Finish

在這里插入圖片描述

  • configure程序會下載一些檔案,一般因為網路問題會出現下面的錯誤

在這里插入圖片描述

  • 這是因為下載ippicv_2020_lnx_intel64_20191018_general.tgz這個檔案時出錯,需要手動從github下載該檔案,下載鏈接如下

https://github.com/opencv/opencv_3rdparty/tree/ippicv/master_20191018/ippicv
注:其他opencv版本如果不知道對應的檔案,可以先Configure一次,完成后查看紅色資訊會找到對應的版本,從官網下載對應的檔案即可,可以參考這篇博客

  • 將下載好的檔案放在/home/username/software/opencv-4.4.0/3rdparty/ippicv目錄下,并且打開該目錄下的ippicv.cmake檔案,將第42行的網址注釋掉,改為

“file:/home/username/software/opencv-4.4.0/3rdparty/ippicv/”

  • 保存后退出

在這里插入圖片描述

  • 重新Configure,沒有紅色錯誤,成功

在這里插入圖片描述

5.3.2 Generate

  • Configure完成后,對4個地方進行修改:

    • CMAKE_BUILD_TYPE處選擇Release,如果沒有選項手動輸入即可;下方的CMAKE_INSTALL_PREFIX保持默認路徑/usr/local
      在這里插入圖片描述

    • OPENCV_EXTRA_MODULES_PATH處選擇/home/username/software/opencv-4.4.0/opencv_contrib-4.4.0/下的modules目錄

    • OPENCV_GENERATE_PKGCONFIG選項打勾,這一項是用來生成opencv.pc檔案,很重要
      在這里插入圖片描述

    • BUILD_opencv_world選項打勾,默認是不勾選的,勾選后最后只會產生一個庫檔案
      在這里插入圖片描述

  • 直接Generate通常會失敗,同樣是因為下載檔案出錯

在這里插入圖片描述

  • 所以我們提前下載好,下載失敗的檔案有:

boostdesc_lbgm.i
boostdesc_bgm.i
boostdesc_bgm_bi.i
boostdesc_bgm_hd.i
boostdesc_binboost_064.i
boostdesc_binboost_128.i
boostdesc_binboost_256.i
vgg_generated_48.i
vgg_generated_64.i
vgg_generated_80.i
vgg_generated_120.i
face_landmark_model.dat

  • 前面11個檔案對應opencv_contrib-4.4.0目錄下的/modules/xfeatures2d/中的檔案,最后一個檔案face_landmark_model.dat對應的是opencv_contrib-4.4.0目錄下的/modules/face/中的檔案
  • 前7個檔案的下載鏈接:

https://github.com/opencv/opencv_3rdparty/tree/contrib_xfeatures2d_boostdesc_20161012

  • 第8個到第11個檔案的下載鏈接:

https://github.com/opencv/opencv_3rdparty/tree/contrib_xfeatures2d_vgg_20160317

  • 11個檔案下載完成后全部復制到/home/username/software/opencv-4.4.0/opencv_contrib-4.4.0/modules/xfeatures2d/src目錄下,然后進入home/username/software/opencv-4.4.0/opencv_contrib-4.4.0/modules/xfeatures2d/cmake目錄中
  • 打開download_boostdesc. cmake檔案,把第27行的網址注釋掉,改為

“file:/home/username/software/opencv-4.4.0/opencv_contrib-4.4.0/modules/xfeatures2d/src/”

在這里插入圖片描述

  • 同樣的,打開download_vgg.cmake檔案,把第21行的網址注釋掉,改為

“file:/home/username/software/opencv-4.4.0/opencv_contrib-4.4.0/modules/xfeatures2d/src/”

在這里插入圖片描述

  • 最后一個檔案face_landmark_model.dat的下載鏈接是:

https://raw.githubusercontent.com/opencv/opencv_3rdparty/8afa57abc8229d611c4937165d20e2a2d9fc5a12/face_landmark_model.dat
這個鏈接不太好用,直接上網盤下載

  • 下載后放入home/username/software/opencv-4.4.0/opencv_contrib-4.4.0/modules/face目錄下,打開該目錄下的CMakeLists.txt檔案,把第19行的網址注釋掉,改為

“file:/home/username/software/opencv-4.4.0/opencv_contrib-4.4.0/modules/face/”

在這里插入圖片描述

  • 重新Generate,出現Configuring done和Generating done后,確認沒有紅色報錯

在這里插入圖片描述

5.3.3 帶CUDA編譯

  • 在搜索框中輸入cuda,出現的所有選項都打勾

在這里插入圖片描述

  • 搜索test,出現的所有選項都取消勾選

在這里插入圖片描述

  • 選項ENABLE_FAST_MATH上打勾

在這里插入圖片描述

  • 再次點擊Configure,出現Configuring done后,確認沒有紅色錯誤,確認找到CUDA和cuDNN

在這里插入圖片描述

  • 這時會出現一些新的選項,首先在CUDA_FAST_MATH選項后打勾

在這里插入圖片描述

  • 搜索cuda,確認所有選項都打勾

在這里插入圖片描述

  • 再次Generate,出現Configuring Done和Generating Done后,確認沒有報錯,確認找到CUDA和cuDNN,退出cmake-gui,

在這里插入圖片描述

5.3.4 make

  • 打開終端,進入build目錄

cd /home/username/software/opencv-4.4.0/build
make
注:這里可以多執行緒編譯,不過直接make出問題的概率小一點
多執行緒:
(1)查看CPU核心數:nproc
(2)make -j16

  • 等待一段時間,100%完成即可

在這里插入圖片描述

  • 執行:

sudo make install

再次出現100%,就成功了,

在這里插入圖片描述
在這里插入圖片描述

5.3.5 配置環境變數

  • 打開opencv.conf檔案,在檔案尾末添加/usr/local/lib

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

  • 配置庫:

sudo ldconfig

  • 添加環境變數,打開bash.bashrc檔案

sudo gedit /etc/bash.bashrc

  • 在檔案尾末添加以下內容

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

保存后退出,source一下

source /etc/bash.bashrc

到此,帶有CUDA的OpenCV4.4.0就安裝完成了,可以用以下命令查看opencv的版本:

pkg-config --modversion opencv

接下來我們測驗一下opencv,

6.OpenCV測驗程式

  • 在主目錄下新建Projects目錄,用于存放工程代碼,新建opencv_test工程目錄,在工程目錄下創建main.cpp源檔案和CMakeLists.tst檔案

cd ~
mkdir Projects/opencv_test -p
cd Projects/opencv_test
touch main.cpp CMakeLists.txt

  • 在CMakeLists.tst中添加如下代碼:
cmake_minimum_required(VERSION 2.8)
project(opencv_test)

set(CMAKE_CXX_STANDARD 14)

find_package(OpenCV)
include_directories(${OpenCV_INCLUDE_DIRS})

message(STATUS "OpenCV library status:")
message(STATUS "    config: ${OpenCV_DIR}")
message(STATUS "    version: ${OpenCV_VERSION}")
message(STATUS "    libraries: ${OpenCV_LIBS}")
message(STATUS "    include path: ${OpenCV_INCLUDE_DIRS}")

add_executable(opencv_test main.cpp)
target_link_libraries(opencv_test ${OpenCV_LIBS})
  • 在main.cpp中添加如下代碼:
#include <iostream>
#include <opencv2/opencv.hpp>

int main(int argc, char** argv) {
    cv::Mat src = cv::imread("../1.jpeg");
    if (src.empty()) {
        std::cout << "could not load image..." << std::endl;
        return -1;
    }
    cv::namedWindow("input image", cv::WINDOW_AUTOSIZE);
    cv::imshow("input image", src);

    cv::waitKey(0);
    return 0;
}
  • 準備一張小貓咪的圖片放在opencv_test目錄下,目錄結構如下圖

—opencv_test
?|__ build
?|__ 1.jpeg
?|__ CMakeLists.txt
?|__ main.cpp

  • 編譯、運行代碼:

mkdir build
cd build
cmake …
make
./opencv_test

運行結果如下:
在這里插入圖片描述

7.YOLO v3測驗

下載darknet:github鏈接

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

下載權重檔案(YOLO權重檔案下載很慢,已經下好放在百度云,有需要到文末下載):

wget https://pjreddie.com/media/files/yolov3.weights

修改Makefile檔案:

GPU=1
CUDNN=1
CUDNN_HALF=1
OPENCV=1

將ARCH后面的-gencode arch=compute_30,code=sm_30刪掉

ARCH= -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] /
????-gencode arch=compute_61,code=[sm_61,compute_61]

運行YOLO v3:

./darknet detect cfg/yolov3.cfg yolov3.weights data/dog.jpg

檢測結果如下:
在這里插入圖片描述在這里插入圖片描述注1:如果遇到類似"error: ‘IplImage’ does not name a type"和"error: ‘CV_CAP_PROP_FRAME_WIDTH’ was not declared in this scope"的錯誤,可以參考這篇博客

注2:如果使用官網的darknet,可能會出現"error:‘CUDNN_CONVOLUTION_FWD_SPECIFY_WORKSPACE_LIMIT’ undeclared(first use in this function);did you mean ‘CUDNN_CONVOLUTION_FWD_ALGO_DIRECT’"這樣的錯誤,這是因為CUDNN版本的問題,可以參考這篇博客,用本文給出的darknet鏈接應該不會報這個錯

注3:“error: conversion from ‘cv::Mat’ to non-scalar type ‘IplImage’ {aka ‘_IplImage’} requested”,參考這篇博客

參考

  1. Linux(Ubuntu)系統查看顯卡型號
  2. 安裝ubuntu18.04磁區設定
  3. Ubuntu安裝 Realtek R8125 驅動
  4. Ubuntu18.04安裝fcitx輸入法
  5. Ubuntu18.04安裝NVIDIA顯卡驅動
  6. Ubuntu16.04下安裝NVIDIA顯卡驅動
  7. Ubuntu 18.04配置OpenCV 4.2.0
  8. ubuntu安裝opencv無法下載IPPICV的問題 ippicv_2020_lnx_intel64_20191018_general.tgz
  9. 百度云鏈接: https://pan.baidu.com/s/1mUNoZeuPXOt-BihZb_LrVw
    密碼: 5hqk

轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/183887.html

標籤:其他

上一篇:怎樣將自己開發的網站部署至阿里云

下一篇:Nginx+FastDFS分布式檔案系統搭建及測驗

標籤雲
其他(157675) Python(38076) JavaScript(25376) Java(17977) C(15215) 區塊鏈(8255) C#(7972) AI(7469) 爪哇(7425) MySQL(7132) html(6777) 基礎類(6313) sql(6102) 熊猫(6058) PHP(5869) 数组(5741) R(5409) Linux(5327) 反应(5209) 腳本語言(PerlPython)(5129) 非技術區(4971) Android(4554) 数据框(4311) css(4259) 节点.js(4032) C語言(3288) json(3245) 列表(3129) 扑(3119) C++語言(3117) 安卓(2998) 打字稿(2995) VBA(2789) Java相關(2746) 疑難問題(2699) 细绳(2522) 單片機工控(2479) iOS(2429) ASP.NET(2402) MongoDB(2323) 麻木的(2285) 正则表达式(2254) 字典(2211) 循环(2198) 迅速(2185) 擅长(2169) 镖(2155) 功能(1967) .NET技术(1958) Web開發(1951) python-3.x(1918) HtmlCss(1915) 弹簧靴(1913) C++(1909) xml(1889) PostgreSQL(1872) .NETCore(1853) 谷歌表格(1846) Unity3D(1843) for循环(1842)

熱門瀏覽
  • 網閘典型架構簡述

    網閘架構一般分為兩種:三主機的三系統架構網閘和雙主機的2+1架構網閘。 三主機架構分別為內端機、外端機和仲裁機。三機無論從軟體和硬體上均各自獨立。首先從硬體上來看,三機都用各自獨立的主板、記憶體及存盤設備。從軟體上來看,三機有各自獨立的作業系統。這樣能達到完全的三機獨立。對于“2+1”系統,“2”分為 ......

    uj5u.com 2020-09-10 02:00:44 more
  • 如何從xshell上傳檔案到centos linux虛擬機里

    如何從xshell上傳檔案到centos linux虛擬機里及:虛擬機CentOs下執行 yum -y install lrzsz命令,出現錯誤:鏡像無法找到軟體包 前言 一、安裝lrzsz步驟 二、上傳檔案 三、遇到的問題及解決方案 總結 前言 提示:其實很簡單,往虛擬機上安裝一個上傳檔案的工具 ......

    uj5u.com 2020-09-10 02:00:47 more
  • 一、SQLMAP入門

    一、SQLMAP入門 1、判斷是否存在注入 sqlmap.py -u 網址/id=1 id=1不可缺少。當注入點后面的引數大于兩個時。需要加雙引號, sqlmap.py -u "網址/id=1&uid=1" 2、判斷文本中的請求是否存在注入 從文本中加載http請求,SQLMAP可以從一個文本檔案中 ......

    uj5u.com 2020-09-10 02:00:50 more
  • Metasploit 簡單使用教程

    metasploit 簡單使用教程 浩先生, 2020-08-28 16:18:25 分類專欄: kail 網路安全 linux 文章標簽: linux資訊安全 編輯 著作權 metasploit 使用教程 前言 一、Metasploit是什么? 二、準備作業 三、具體步驟 前言 Msfconsole ......

    uj5u.com 2020-09-10 02:00:53 more
  • 游戲逆向之驅動層與用戶層通訊

    驅動層代碼: #pragma once #include <ntifs.h> #define add_code CTL_CODE(FILE_DEVICE_UNKNOWN,0x800,METHOD_BUFFERED,FILE_ANY_ACCESS) /* 更多游戲逆向視頻www.yxfzedu.com ......

    uj5u.com 2020-09-10 02:00:56 more
  • 北斗電力時鐘(北斗授時服務器)讓網路資料更精準

    北斗電力時鐘(北斗授時服務器)讓網路資料更精準 北斗電力時鐘(北斗授時服務器)讓網路資料更精準 京準電子科技官微——ahjzsz 近幾年,資訊技術的得了快速發展,互聯網在逐漸普及,其在人們生活和生產中都得到了廣泛應用,并且取得了不錯的應用效果。計算機網路資訊在電力系統中的應用,一方面使電力系統的運行 ......

    uj5u.com 2020-09-10 02:01:03 more
  • 【CTF】CTFHub 技能樹 彩蛋 writeup

    ?碎碎念 CTFHub:https://www.ctfhub.com/ 筆者入門CTF時時剛開始刷的是bugku的舊平臺,后來才有了CTFHub。 感覺不論是網頁UI設計,還是題目質量,賽事跟蹤,工具軟體都做得很不錯。 而且因為獨到的金幣制度的確讓人有一種想去刷題賺金幣的感覺。 個人還是非常喜歡這個 ......

    uj5u.com 2020-09-10 02:04:05 more
  • 02windows基礎操作

    我學到了一下幾點 Windows系統目錄結構與滲透的作用 常見Windows的服務詳解 Windows埠詳解 常用的Windows注冊表詳解 hacker DOS命令詳解(net user / type /md /rd/ dir /cd /net use copy、批處理 等) 利用dos命令制作 ......

    uj5u.com 2020-09-10 02:04:18 more
  • 03.Linux基礎操作

    我學到了以下幾點 01Linux系統介紹02系統安裝,密碼啊破解03Linux常用命令04LAMP 01LINUX windows: win03 8 12 16 19 配置不繁瑣 Linux:redhat,centos(紅帽社區版),Ubuntu server,suse unix:金融機構,證券,銀 ......

    uj5u.com 2020-09-10 02:04:30 more
  • 05HTML

    01HTML介紹 02頭部標簽講解03基礎標簽講解04表單標簽講解 HTML前段語言 js1.了解代碼2.根據代碼 懂得挖掘漏洞 (POST注入/XSS漏洞上傳)3.黑帽seo 白帽seo 客戶網站被黑帽植入劫持代碼如何處理4.熟悉html表單 <html><head><title>TDK標題,描述 ......

    uj5u.com 2020-09-10 02:04:36 more
最新发布
  • 2023年最新微信小程式抓包教程

    01 開門見山 隔一個月發一篇文章,不過分。 首先回顧一下《微信系結手機號資料庫被脫庫事件》,我也是第一時間得知了這個訊息,然后跟蹤了整件事情的經過。下面是這起事件的相關截圖以及近日流出的一萬條資料樣本: 個人認為這件事也沒什么,還不如關注一下之前45億快遞資料查詢渠道疑似在近日復活的訊息。 訊息是 ......

    uj5u.com 2023-04-20 08:48:24 more
  • web3 產品介紹:metamask 錢包 使用最多的瀏覽器插件錢包

    Metamask錢包是一種基于區塊鏈技術的數字貨幣錢包,它允許用戶在安全、便捷的環境下管理自己的加密資產。Metamask錢包是以太坊生態系統中最流行的錢包之一,它具有易于使用、安全性高和功能強大等優點。 本文將詳細介紹Metamask錢包的功能和使用方法。 一、 Metamask錢包的功能 數字資 ......

    uj5u.com 2023-04-20 08:47:46 more
  • vulnhub_Earth

    前言 靶機地址->>>vulnhub_Earth 攻擊機ip:192.168.20.121 靶機ip:192.168.20.122 參考文章 https://www.cnblogs.com/Jing-X/archive/2022/04/03/16097695.html https://www.cnb ......

    uj5u.com 2023-04-20 07:46:20 more
  • 從4k到42k,軟體測驗工程師的漲薪史,給我看哭了

    清明節一過,盲猜大家已經無心上班,在數著日子準備過五一,但一想到銀行卡里的余額……瞬間心情就不美麗了。最近,2023年高校畢業生就業調查顯示,本科畢業月平均起薪為5825元。調查一出,便有很多同學表示自己又被平均了。看著這一資料,不免讓人想到前不久中國青年報的一項調查:近六成大學生認為畢業10年內會 ......

    uj5u.com 2023-04-20 07:44:00 more
  • 最新版本 Stable Diffusion 開源 AI 繪畫工具之中文自動提詞篇

    🎈 標簽生成器 由于輸入正向提示詞 prompt 和反向提示詞 negative prompt 都是使用英文,所以對學習母語的我們非常不友好 使用網址:https://tinygeeker.github.io/p/ai-prompt-generator 這個網址是為了讓大家在使用 AI 繪畫的時候 ......

    uj5u.com 2023-04-20 07:43:36 more
  • 漫談前端自動化測驗演進之路及測驗工具分析

    隨著前端技術的不斷發展和應用程式的日益復雜,前端自動化測驗也在不斷演進。隨著 Web 應用程式變得越來越復雜,自動化測驗的需求也越來越高。如今,自動化測驗已經成為 Web 應用程式開發程序中不可或缺的一部分,它們可以幫助開發人員更快地發現和修復錯誤,提高應用程式的性能和可靠性。 ......

    uj5u.com 2023-04-20 07:43:16 more
  • CANN開發實踐:4個DVPP記憶體問題的典型案例解讀

    摘要:由于DVPP媒體資料處理功能對存放輸入、輸出資料的記憶體有更高的要求(例如,記憶體首地址128位元組對齊),因此需呼叫專用的記憶體申請介面,那么本期就分享幾個關于DVPP記憶體問題的典型案例,并給出原因分析及解決方法。 本文分享自華為云社區《FAQ_DVPP記憶體問題案例》,作者:昇騰CANN。 DVPP ......

    uj5u.com 2023-04-20 07:43:03 more
  • msf學習

    msf學習 以kali自帶的msf為例 一、msf核心模塊與功能 msf模塊都放在/usr/share/metasploit-framework/modules目錄下 1、auxiliary 輔助模塊,輔助滲透(埠掃描、登錄密碼爆破、漏洞驗證等) 2、encoders 編碼器模塊,主要包含各種編碼 ......

    uj5u.com 2023-04-20 07:42:59 more
  • Halcon軟體安裝與界面簡介

    1. 下載Halcon17版本到到本地 2. 雙擊安裝包后 3. 步驟如下 1.2 Halcon軟體安裝 界面分為四大塊 1. Halcon的五個助手 1) 影像采集助手:與相機連接,設定相機引數,采集影像 2) 標定助手:九點標定或是其它的標定,生成標定檔案及內參外參,可以將像素單位轉換為長度單位 ......

    uj5u.com 2023-04-20 07:42:17 more
  • 在MacOS下使用Unity3D開發游戲

    第一次發博客,先發一下我的游戲開發環境吧。 去年2月份買了一臺MacBookPro2021 M1pro(以下簡稱mbp),這一年來一直在用mbp開發游戲。我大致分享一下我的開發工具以及使用體驗。 1、Unity 官網鏈接: https://unity.cn/releases 我一般使用的Apple ......

    uj5u.com 2023-04-20 07:40:19 more