TX2--Building OpenCV for Tegra with CUDA
一、OpenCV with CUDA for Tegra
1、本文檔是構建OpenCV庫的基本指南,CUDA支持在Tegra環境中使用。它涵蓋了從源代碼中構建版本3.1.0庫的基本元素,包括三種不同類型的平臺:
(1)NVIDIA DRIVE? PX 2 (V4L)
(2)NVIDIA??Tegra??Linux Driver Package (L4T)
(3)Desktop Linux (Ubuntu 14.04 LTS and 16.04 LTS)
2、本文檔并不是對構建OpenCV時可用的所有選項的詳盡指南。具體來說,它涵蓋了構建每個平臺時所使用的基本選項,但不包括任何不需要的選項(或與它們的默認值保持不變)。另外,CUDA工具包的安裝也不在這里。
3、本文檔的重點是構建OpenCV的3.1.0版本,但是這里的指導原則也可以從git存儲庫的主分支中構建。關于OpenCV 2.4.13版本的構建,有些CMake選項存在差異,這在OpenCV 2.4的構建中總結如下Building OpenCV 2.4.X部分。
4、大多數配置命令都基于安裝了CUDA 8.0的系統。在Jetson TK1的例子中,使用了一個較舊的CUDA,因為該平臺不支持8.0。這些指令可能也適用于舊版本的CUDA,但只測試了8.0。
5、本地編譯與交叉編譯的說明。OpenCV構建系統支持所有支持的平臺的本地編譯,以及諸如ARM等平臺的交叉編譯。本地編譯過程更簡單,而交叉編譯通常更快。目前,本文檔只關注本地編譯。
?
二、Getting the Source Code
1、有兩種方法可以獲得OpenCV源代碼,對于本指南,重點是使用git存儲庫。這是因為OpenCV的3.1.0版本不會使用CUDA 8.0構建,而不需要從git存儲庫中應用少量的上游更改。
(1)直接從OpenCV下載頁面下載。
(2)克隆托管在GitHub上的git存儲庫。
2、OpenCV
(1)從opencv存儲庫開始:
// # Clone the opencv repository locally: $ git clone https://github.com/opencv/opencv.git //(2)要構建3.1.0版本(而不是構建最新的源代碼),您必須基于3.1.0標記檢查一個分支:
// $ cd opencv $ git checkout -b v3.1.0 3.1.0 //注:該操作在您的克隆存儲庫中創建一個新的本地分支。
(3)有一些上游更改必須通過git cherry-pick命令進行應用。第一種方法是應用修復程序,具體地使用8.0版本的CUDA,而不是3.1.0版本的一部分:
// # While still in the opencv directory: $ git cherry-pick 10896 //(4)您將看到以下命令的輸出:
// [v3.1.0 d6d69a7] GraphCut deprecated in CUDA 7.5 and removed in 8.0Author: Vladislav Vinogradov <vlad.vinogradov@itseez.com>1 file changed, 2 insertions(+), 1 deletion(-) //(5)其次,在某些系統上,CMake宏調用存在問題:
// $ git cherry pick cdb9c //(6)您應該會看到類似的輸出:
// [v3.1.0-28613 e5ac2e4] gpu samples: fix REMOVE_ITEM errorAuthor: Alexander Alekhin <alexander.alekhin@itseez.com>1 file changed, 1 insertion(+), 1 deletion(-) //(7)需要處理的最后一個上游補丁是與開發包綁定的pkg配置文件(libopencv-dev):
// $ git cherry-pick 24dbb //(8)您應該會看到類似的輸出:
// [v3.1.0 3a6d7ab] pkg-config: modules list contains only OpenCV modules (fixes #5852)Author: Alexander Alekhin <alexander.alekhin@itseez.com>1 file changed, 7 insertions(+), 4 deletions(-) //(9)此時,opencv存儲庫就可以構建了。
3、OpenCV Extra
(1)opencv_extra存儲庫包含OpenCV庫的額外數據,包括測試和演示使用的數據文件。它必須分別克隆:
// # In the same base directory from which you cloned OpenCV: $ git clone https://github.com/opencv/opencv_extra.git //(2)與OpenCV源代碼一樣,您必須使用上面的相同方法將源樹設置為3.1.0版本。當您從一個特定的標記構建時,兩個存儲庫都必須在該標記處簽出。
// $ cd opencv_extra $ git checkout -b v3.1.0 3.1.0 //?
(3)如果您不打算運行測試或安裝測試數據以及示例程序,那么您可能會選擇不去獲取這個存儲庫。如果在CMake的調用中沒有引用它,就不會使用它。
注:如果您計劃運行測試,一些測試期望數據會出現,并且沒有它會失敗。
?
?
三、Preparation and Prerequisites
1、要構建OpenCV,需要一個目錄來創建配置和構建庫。您還需要一些第三方庫,OpenCV依賴這些庫。
2、Ubuntu Linux環境下預先準備
(1)這些是在Linux上為Tegra構建OpenCV的基本要求:
a、CMake 2.8.10 or newer
b、CUDA toolkit 8.0 (7.0 or 7.5 may also be used)
c、Build tools (make, gcc, g++)
d、Python 2.6 or greater
(2)無論什么平臺(DRIVE PX 2, Desktop, etc.),這些都是相同的。在Linux上構建一些開發包是必需的:
// libglew-dev libtiff5-dev zlib1g-dev libjpeg-dev libpng12-dev libjasper-dev libavcodec-dev libavformat-dev libavutil-dev libpostproc-dev libswscale-dev libeigen3-dev libtbb-dev libgtk2.0-dev pkg-config //(3)上面的一些軟件包是Ubuntu Linux系統的“universe?存儲庫”。如果您還沒有啟用該存儲庫,那么在嘗試安裝上面列出的所有軟件包之前,您需要執行以下操作:
// $ sudo apt-add-repository universe $ sudo apt-get update //(4)可以將以下命令粘貼到shell中,以便安裝所需的包:
// $ sudo apt-get install \libglew-dev \libtiff5-dev \zlib1g-dev \libjpeg-dev \libpng12-dev \libjasper-dev \libavcodec-dev \libavformat-dev \libavutil-dev \libpostproc-dev \libswscale-dev \libeigen3-dev \libtbb-dev \libgtk2.0-dev \pkg-config //為可讀性添加了行中斷和延續字符。(5)如果您想要構建Python綁定,那么您還需要使用Python 2和Python 3中的任何一個或兩個適當的包:
a、python-dev / python3-dev
b、python-numpy / python3-numpy
c、python-py / python3-py
d、python-pytest / python3-pytest
(6)要做的命令如下:
// $ sudo apt-get install python-dev python-numpy python-py python-pytest # And, optionally: $ sudo apt-get install python3-dev python3-numpy python3-py python3-pytest //(7)一旦安裝了所有必要的包,您就可以配置構建了。
3、準備構建區域
(1)使用CMake系統來配置其構建的軟件項目期望在源樹本身之外完成實際的構建。為了配置和構建OpenCV,在同一個基目錄中創建一個名為“build”的目錄,并在其中克隆git存儲庫:
// $ mkdir build $ cd build //(2)現在可以配置和構建OpenCV了。
?
四、為構建配置OpenCV
?
1、為不同平臺提供的CMake配置選項針對的是Tegra所需的功能。它們基于用于構建OpenCV 2.4.13的原始配置選項。OpenCV的構建配置為CMake。如果沒有參數運行,它將檢測它需要知道的關于您的系統的信息。然而,如果CUDA文件不在標準位置,那么它可能很難找到CUDA文件,并且可能嘗試構建一些您可能不希望包含的選項,因此建議使用CMake的以下調用。在每個cmake命令中,都添加了行中斷和縮進,以增加可讀性。在基于linux的平臺的示例中還添加了延續字符,允許您將示例直接復制和粘貼到shell中。當手動輸入這些命令時,將命令和選項輸入為一行。對于傳遞給cmake的參數的詳細解釋,請參閱“cmake參數參考”部分。對于基于linux的平臺,CMAKE_INSTALL_PREFIX參數的顯示值為/usr。您可以根據系統的布局將其設置為您想要的任何東西。在下面的每個cmake調用中,最后一個參數OPENCV_TEST_DATA_PATH告訴構建系統,在哪里可以找到opencv_extra存儲庫提供的測試數據。當包含這一點時,make安裝會在庫和示例代碼旁邊安裝這些測試數據,并且make測試會自動為需要加載數據的測試提供這條路徑。如果您沒有克隆opencv_extra存儲庫,則不要包含此參數。
?
2、Vibrante V4L Configuration?
(1)Vibrante is the name of a Linux distribution created by NVIDIA and used for at least their Drive PX 2 platform series.
(2)Vibrante V4L Configuration? Supported platform: Drive PX 2
(3)具體配置如下
// $ 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=OFF \-DENABLE_NEON=ON \-DWITH_OPENCL=OFF \-DWITH_OPENMP=OFF \-DWITH_FFMPEG=ON \-DWITH_GSTREAMER=OFF \-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=6.2 \-DCUDA_ARCH_PTX="" \-DINSTALL_C_EXAMPLES=ON \-DINSTALL_TESTS=OFF \-DOPENCV_TEST_DATA_PATH=../opencv_extra/testdata \../opencv //(4)上面提供的配置構建了Python 2(但不是Python 3)的Python綁定,作為構建過程的一部分。如果您想要Python 3綁定(或者不需要Python 2綁定),那么可以根據需要更改BUILD_opencv_python2和/或BUILD_opencv_python3的值。要啟用綁定,請將值設置為ON,禁用它們將其設置為OFF:
// -DBUILD_opencv_python2=OFF //3、Jetson L4T Configuration
(1)Supported platforms:Jetson TK1 &?Jetson TX1
(2)對于Jetson TK1和Jetson TX1系統,配置略有不同。
(3)Jetson TK1
// $ cmake \-DCMAKE_BUILD_TYPE=Release \-DCMAKE_INSTALL_PREFIX=/usr \-DCMAKE_CXX_FLAGS=-Wa,-mimplicit-it=thumb \-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=OFF \-DENABLE_NEON=ON \-DWITH_OPENCL=OFF \-DWITH_OPENMP=OFF \-DWITH_FFMPEG=ON \-DWITH_GSTREAMER=OFF \-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-6.5 \-DCUDA_ARCH_BIN=3.2 \-DCUDA_ARCH_PTX="" \-DINSTALL_C_EXAMPLES=ON \-DINSTALL_TESTS=OFF \-DOPENCV_TEST_DATA_PATH=../opencv_extra/testdata \../opencv //注:這個使用CUDA 6.5,而不是8.0。
(4)Jetson TX1
// $ 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=OFF \-DENABLE_PRECOMPILED_HEADERS=OFF \-DWITH_OPENCL=OFF \-DWITH_OPENMP=OFF \-DWITH_FFMPEG=ON \-DWITH_GSTREAMER=OFF \-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=5.3 \-DCUDA_ARCH_PTX="" \-DINSTALL_C_EXAMPLES=ON \-DINSTALL_TESTS=OFF \-DOPENCV_TEST_DATA_PATH=../opencv_extra/testdata \../opencv //注:此配置不設置ENABLE_NEON?參數。
4、Ubuntu Desktop Linux Configuration
(1)Supported platforms:Ubuntu Desktop Linux 14.04 LTS & Ubuntu Desktop Linux 16.04 LTS
(2)下面的cmake配置選項針對的是Tegra所需的功能。對于桌面系統,您可能希望調整一些選項來啟用(或禁用)某些特性。下面啟用的功能基于OpenCV 2.4.13的構建。
// $ 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=OFF \-DWITH_OPENCL=OFF \-DWITH_OPENMP=OFF \-DWITH_FFMPEG=ON \-DWITH_GSTREAMER=OFF \-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='3.0 3.5 5.0 6.0 6.2' \-DCUDA_ARCH_PTX="" \-DINSTALL_C_EXAMPLES=ON \-DINSTALL_TESTS=OFF \-DOPENCV_TEST_DATA_PATH=../opencv_extra/testdata \../opencv //(3)這個配置與V4L和L4T幾乎相同,除了CUDA_ARCH_BIN參數指定多個架構,以支持各種GPU板。對于桌面,您可以選擇省略此參數,而CMake將運行一個小型的測試程序來探測受支持的架構。然而,所產生的庫可能并不適用于使用不同卡片的Ubuntu系統。與前面的例子一樣,上面給出的配置構建了Python 2的Python綁定(但不是Python 3)作為構建過程的一部分。
?
五、Building OpenCV
一旦cmake完成配置OpenCV,就會使用標準make工具進行構建。
1、用 make 構建
(1)調用make所需的惟一參數是 -j 參數,用于指定要使用多少并行線程。這取決于系統和可用的內存大小、其他運行過程等。
(2)基于您選擇的值,構建(假設您選擇了6):
// $ make -j6 //(3)默認情況下,CMake隱藏了構建步驟的細節。如果您需要查看每個編譯單元的更多細節,等等,您可以啟用詳細輸出:
// $ make -j6 VERBOSE=1 //?
六、Testing OpenCV
?
1、一旦構建成功完成,您就可以選擇運行OpenCV提供的大量測試集。如果您沒有克隆opencv_extra存儲庫并在cmake調用中指定測試數據的路徑,那么不建議進行測試。
2、Linux 下測試
(1)要運行Linux下的基本測試,執行:
// $ make test //(2)這將執行ctest來執行測試,就像在OpenCV存儲庫中指定的ctest語法中指定的那樣。ctest工具包含了許多不同的參數(這里列出了太多的參數,請參閱ctest的手冊頁來查看完整的集合),如果您希望傳遞其中任何一個參數,您可以通過在一個名為ARGS的make命令行參數中指定它們來實現這一點:
// $ make test ARGS="--verbose --parallel 3" //(3)在本例中,有兩參數傳遞給ctest:--verbose和--parallel 3。第一個參數導致ctest的輸出更加詳細,而第二個參數導致ctest并行運行多達3個測試。與選擇構建線程數一樣,在可用的處理器核數、物理內存等方面,可以選擇用于測試的任何選擇。一些測試確實嘗試分配大量內存。
3、測試所知問題
(1)目前,并不是OpenCV測試套件中所有的測試都通過。有一些測試會失敗,不管CUDA是否編譯,還有一些測試只針對CUDA,而且目前還沒有通過。
注:沒有CUDA的測試可以通過,但是只有CUDA包含時才會失敗。由于失敗測試的完整列表根據平臺的不同而不同,在這里列出它們是不現實的。
?
七、Installing OpenCV
1、安裝OpenCV非常簡單,對于基于linux的平臺,該命令是:
// $ make install //2、根據所選的安裝位置,您可能需要root權限才能安裝。
?
八、Building OpenCV 2.4.X
1、如果您希望構建自己的2.4版本的OpenCV,那么只需做一些調整。在寫此本文時,2.4樹的最新版本是2.4.13。這些說明可能適用于2.4版本的后續版本,盡管它們還沒有經過任何早期版本的測試。
注:2.4.X OpenCV源沒有為Tegra提供額外的模塊和代碼。X版本的OpenCV。這部分指南僅適用于您希望構建OpenCV 2.4的vanilla版本的情況。
2、Selecting the 2.4 Source
(1)首先,您必須選擇正確的源分支或標記。如果您想要一個特定的版本,比如2.4.13,您需要基于標記創建一個本地分支,就像上面的3.1.0標簽所做的那樣:
// # Within the opencv directory: $ git checkout -b v2.4.13 2.4.13# Within the opencv_extra directory: $ git checkout -b v2.4.13 2.4.13 //(2)如果您只是想從2.4的OpenCV中獲得最新的代碼,那么在存儲庫中已經有一個2.4分支。你可以查看一下,而不是一個特定的標簽:
// $ git checkout 2.4 //(3)在構建2.4.13源代碼時,不需要使用3.1.0的git cherry-pick命令。
3、配置
(1)與之前一樣配置CMake。主要區別在于OpenCV 2.4只提供Python 2的Python綁定,因此在CMake參數中不區分Python 2和Python 3。只有一個參數BUILD_opencv_python。此外,還存在一個與構建相關的參數,該參數控制2.4中的特性,而不是3.1.0。這個參數是BUILD_opencv_nonfree。配置仍然在一個單獨的目錄中進行,該目錄必須是opencv和opencv_extra目錄的sibling。
(2)Configuring Vibrante V4L
a、For DRIVE PX 2:
// $ 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_nonfree=OFF \-DBUILD_opencv_python=ON \-DENABLE_NEON=ON \-DWITH_OPENCL=OFF \-DWITH_OPENMP=OFF \-DWITH_FFMPEG=ON \-DWITH_GSTREAMER=OFF \-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=6.2 \-DCUDA_ARCH_PTX="" \-DINSTALL_C_EXAMPLES=ON \-DINSTALL_TESTS=ON \-DOPENCV_TEST_DATA_PATH=../opencv_extra/testdata \../opencv //(3)Configuring Jetson L4T
a、For Jetson TK1:
// $ 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_nonfree=OFF \-DBUILD_opencv_python=ON \-DENABLE_NEON=ON \-DWITH_OPENCL=OFF \-DWITH_OPENMP=OFF \-DWITH_FFMPEG=ON \-DWITH_GSTREAMER=OFF \-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-6.5 \-DCUDA_ARCH_BIN=3.2 \-DCUDA_ARCH_PTX="" \-DINSTALL_C_EXAMPLES=ON \-DINSTALL_TESTS=ON \-DOPENCV_TEST_DATA_PATH=../opencv_extra/testdata \../opencv //b、For Jetson TX1:
// $ 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_nonfree=OFF \-DBUILD_opencv_python=ON \-DENABLE_PRECOMPILED_HEADERS=OFF \-DWITH_OPENCL=OFF \-DWITH_OPENMP=OFF \-DWITH_FFMPEG=ON \-DWITH_GSTREAMER=OFF \-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=5.3 \-DCUDA_ARCH_PTX="" \-DINSTALL_C_EXAMPLES=ON \-DINSTALL_TESTS=ON \-DOPENCV_TEST_DATA_PATH=../opencv_extra/testdata \../opencv //(4)Configuring Desktop Ubuntu Linux
a、For both 14.04 LTS and 16.04 LTS:
// $ 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_nonfree=OFF \-DBUILD_opencv_python=ON \-DWITH_OPENCL=OFF \-DWITH_OPENMP=OFF \-DWITH_FFMPEG=ON \-DWITH_GSTREAMER=OFF \-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='3.0 3.5 5.0 6.0 6.2' \-DCUDA_ARCH_PTX="" \-DINSTALL_C_EXAMPLES=ON \-DINSTALL_TESTS=ON \-DOPENCV_TEST_DATA_PATH=../opencv_extra/testdata \../opencv //4、Building, Testing and Installing
(1)一旦配置好,構建、測試和安裝的步驟與上面的3.1.0源代碼相同。
?
九、CMake參數引用
1、下面是在上述推薦調用中傳遞給CMake的所有參數的表。其中一些是來自CMake本身的參數,而大多數是OpenCV的參數。
?
致謝
1、Building OpenCV for Tegra with CUDA
?
?
?
?
總結
以上是生活随笔為你收集整理的TX2--Building OpenCV for Tegra with CUDA的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: OSChina 周四乱弹 ——1000万
- 下一篇: 整型常量(基于百度及各处资料加上我的个人