1. 程式人生 > >OpenCV嵌入式影象處理(三)使用Jetpack安裝OpenCV4Tegra

OpenCV嵌入式影象處理(三)使用Jetpack安裝OpenCV4Tegra

前文記述瞭如何使用下載好的deb包在Jetson tk1上安裝CUDA和OpenCV的方法。但是目前NVIDIA官網已經不提供單獨的CUDA和OpenCV4Tegra的下載包,所有的下載、安裝工作都整合到了Jetpack安裝檔案中去。這就意味著如果你想安裝最新的NVIDIA產品,就必須使用Jetpack安裝方法。如果你拿到一塊新的Jeston tk1或者tx1開發板,筆者建議直接使用Jetpack刷一遍系統並安裝好全部程式;如果你已經使用了一段時間,那可以採用(二)中的安裝方法,因為使用Jetpack安裝稍不留神就會把你板子裡原有的系統和資料統統抹去。

1. 準備工作

首先,你必須準備一臺Ubuntu X64的計算機。切記Jetpack是在宿主機(Ubuntu X64)上執行的,在Jeston平臺上無法執行。

下載完成之後cd到你儲存的路徑下並保證你在超級使用者模式:

root@ZtyUbuntu:~# chmod -x /home/zty/JetPack-L4T-2.1-linux-x64.run 
root@ZtyUbuntu:~# /home/zty/JetPack-L4T-2.1-linux-x64.run 

這時候它會提示你:

bash: /home/zty/JetPack-L4T-2.1-linux-x64.run: 許可權不夠

很多人對此有困惑,第一步明明我已經賦予安裝包許可權了呀,為什麼還是執行不了。其實是因為你沒有給它作為運用程式執行的許可權。右擊選擇屬性,勾選允許作為程式執行檔案就可以了。

這裡寫圖片描述

2. 安裝檔案詳解

安裝程式開始之後選擇TK1,進入如下介面:
這裡寫圖片描述

其中Common為Jetson tk1和tx1共用檔案,For Jetson TK1是其特有檔案。下面為大家介紹一些安裝檔案的作用。

2.1 CUDA Toolkit for L4T

在移動平臺上執行的CUDA,後期編譯OpenCV需要,必須安裝。

2.2 OpenCV4Tegra for Jetson TK1 Developer Kit

OpenCV優化包,必須安裝。

2.3 NVIDIA VisionWorks Toolkit,NVIDIA VisionWorks Plus (SFM),NVIDIA(R) VisionWorks(TM) Object Tracker

NVIDIA自家的視覺庫,基於OpenVX,包含了三維重建(SFM)和跟蹤模組(Object Tracker)硬體加速能力甩OpenCV一條街,建議安裝。

2.4 The NVIDIA CUDA Deep Neural Network library (cuDNN)

NVIDIA自家的深度神經網路庫,GPU加速能力超強,建議研究神經網路和機器學習的使用者安裝(其實TX1還有一個定位就是深度學習機,NVIDIA這點良心啊~)

2.5 CUDA Toolkit on Host for Cross Compiling

安裝在宿主機上的CUDA,用於交叉編譯。希望使用交叉編譯的使用者可以選擇安裝。

2.6 OS and File System
這裡寫圖片描述

注意,如果你選擇了這幾項,就意味著你將重灌Jetson TK1上的系統並且抹去所有檔案,所有這一項慎選!

3. 開始安裝

選擇好要安裝的內容之後,就可以點選下一步了。比起Ubuntu的源,NVIDIA的伺服器速度還是比較良心的,除了CUDA和File System比較大之外,其餘的應該10分鐘左右就能下載好。

這裡寫圖片描述

之後輸入使用者名稱和密碼,預設都是Ubuntu。IP的話如果不填,之後程式會自動計算出,請確保此時你有一根網線和你的宿主機相連,或者他們兩者連線在同一個路由器上。推薦使用網線直連法。

這裡寫圖片描述

如果你是直接用網線連線的Jetson,那麼選擇第二個選項。這一步只有在需要刷系統的時候才會出現。

這裡寫圖片描述

這裡寫圖片描述

這裡系統會自動幫你計算出Jetson的IP地址,但是可能時間比較長。
接下來會有提示將Tk1接入Recovery模式,首先對TK1上電,之後按住Recovery按鍵三秒以上,這時按一下Reset按鍵,再鬆開Recovery,Jetson就自動進入了Recovery模式。為了判斷是否成功進入Recovery模式,可以使用lsusb命令檢視是否有“NVIDIA Corpration”的裝置。

這裡寫圖片描述

接下來的安裝都是自動完成的,使用者只需要按照提示操作即可。

安裝完成之後進入Jetson的系統,按照(二)中所述編譯OpenCV原始碼,這樣OpenCV在Jetson上就可以使用了。