在nvidia jetson xavier、tx2上安裝任意版本opencv

爲什麼要寫這個

網上有太多的教程,無外乎就是手動編譯或者藉助寫好的腳本自動編譯。很多教程裏,安裝依賴項那部分操作要不是太繁瑣、太亂,要不就是安裝不全,導致編譯出錯。所以我想寫一個簡潔有效的安裝手段,並且讓大家瞭解每個部分是做什麼用的。

預先條件

安裝了jetpack4.2以上版本,通常已經自帶opencv,但由於該opencv功能不全面,我們需要刪除並安裝行版本
刪除命令:

 sudo apt-get purge libopencv*

通過腳本安裝

兩種選擇
① 一鍵腳本操作:

 git clone https://github.com/jetsonhacks/buildOpenCVXavier.git
 cd buildOpenCVXavier
 git checkout v1.0
./buildOpenCV.sh

②修改腳本,安裝任意版本opencv

 git clone https://github.com/jetsonhacks/buildOpenCVXavier.git
 cd buildOpenCVXavier

進入buildOpenCVXavier文件夾後,用任意文本編輯器打開buildOpenCV.sh腳本:
選擇版本

OPENCV_VERSION=3.4.3

選擇對應設備:(通過刪除/保留#號註釋,當然每個設備與ARCH_BIN一一對應)

# Jetson AGX Xavier
ARCH_BIN=7.2
# Jetson TX2
#ARCH_BIN=6.2
# Jetson TX1
# ARCH_BIN=5.3
INSTALL_DIR=/usr/local

ARCH_BIN實際上是NVIDIA公司旗下顯卡的“GPU Compute Capability”的號碼,其他顯卡號可以從以下網站查

https://developer.nvidia.com/cuda-gpus

保存腳本,並運行

 git checkout v1.0
./buildOpenCV.sh

安裝好後刪除安裝包

./removeOpenCVSources.sh

自行安裝(以opencv3最新版本3.4.9爲例)

這種方式非常繁瑣,並且一不小心就可能少安裝東西,導致重新安裝。

實際上,我們要做的是下載opencv源代碼,再使用CMAKE編譯,最終產生opencv的庫

首先安裝依賴項,必不可缺!

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

2、下載opencv sourse code,進入文件夾

cd ~/opencv
mkdir build
cd build

3、爲了便於管理和查看,我們通過新建腳本來編譯opencv:
sudo gedit my_cmake.sh
打開my_cmake.sh後,貼入

cmake \
    -DCMAKE_BUILD_TYPE=Release \
    -DCMAKE_INSTALL_PREFIX=/usr \
    -DBUILD_PNG=OFF \
    -DBUILD_TIFF=OFF \
    -DBUILD_TBB=OFF \
    -DBUILD_JPEG=OFF \
    -DBUILD_JASPER=OFF \
    -DBUILD_ZLIB=OFF \
    -DBUILD_EXAMPLES=ON \
    -DBUILD_opencv_java=OFF \
    -DBUILD_opencv_python2=ON \
    -DBUILD_opencv_python3=ON \
    -DENABLE_PRECOMPILED_HEADERS=OFF \
    -DWITH_OPENCL=OFF \
    -DWITH_OPENMP=OFF \
    -DWITH_FFMPEG=ON \
    -DWITH_GSTREAMER=ON \
    -DWITH_GSTREAMER_0_10=OFF \
    -DWITH_CUDA=ON \
    -DWITH_GTK=ON \
    -DWITH_VTK=OFF \
    -DWITH_TBB=ON \
    -DWITH_1394=OFF \
    -DWITH_OPENEXR=OFF \
    -DCUDA_TOOLKIT_ROOT_DIR=/usr/local/cuda-8.0 \
    -DCUDA_ARCH_BIN=7.2 \    #tx2是6.2
    -DCUDA_ARCH_PTX="" \
    -DINSTALL_C_EXAMPLES=ON \
    -DINSTALL_TESTS=ON \
    -DOPENCV_TEST_DATA_PATH=../opencv_extra/testdata \  #CONTRIB文件的位置

這些on off 如同開關,打開相應功能

運行腳本: sudo ./my_cmake.sh
4,編譯

make -j8
sudo make install

5添加環境變量(目的是以後無論在什麼路徑,都能使用opencv庫)

cd ~/.bashrc
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/lib/
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章