筆者從 2019 年開始使用 NVIDIA Jetson Nano 開發(fā)套件,一開始是被 NVIDIA 當時推出的 Jetbot 智能小車所吸引,這套 2,000 元以內(nèi)能實現(xiàn)智能避撞功能的小車,總共使用 10 個左右的部件(如下圖),大約花了 6 小時左右時間,幾乎無需焊接即可完成小車的組裝,然后就可開始執(zhí)行教程里的幾個基本功能,十分省心。
雖然后續(xù)并沒有持續(xù)在智能小車上開發(fā)更多應用,但是 Jetbot 所使用的 Jetson Nano 開發(fā)套件,卻成為筆者學習人工智能與邊緣計算的最重要工具,因為它解決了不少對筆者造成困擾的問題,主要如下:
(一)滿足雙系統(tǒng)操作
由于近年來人工智能技術(shù)都是基于人工神經(jīng)網(wǎng)絡(luò)的基礎(chǔ),而 CUDA GPU經(jīng)過 10 年以上的驗證,是目前最適合執(zhí)行大型神經(jīng)網(wǎng)絡(luò)的計算架構(gòu),因此筆者最初學習人工智能應用時,就是在一臺 x86 系統(tǒng)上安裝 CUDA 架構(gòu)的 GPU 計算卡,最入門的設(shè)備也只需要 5,000 人民幣的購置成本,以及 500W 以上的使用功耗。
最麻煩的問題,就是大部分關(guān)于人工智能的資源是基于 Linux 操作系統(tǒng)發(fā)展的,如果要復現(xiàn)前人的精華成果,就得在大致相同的環(huán)境下進行操作。但是 Linux 操作系統(tǒng)上缺少很多日常辦公用途的軟件,例如微信、QQ、Photoshop 等依賴度高的應用,因此搭建“雙系統(tǒng)”環(huán)境就成為第一個挑戰(zhàn)。
這里的“雙系統(tǒng)”并非指在一臺機器上安裝兩個可啟動的操作系統(tǒng),然后在開機時選擇要啟動 Windows 或 Ubuntu 系統(tǒng),因為這種方式一次也只能啟動一個,并不能解決前面所提到的問題。
以下提供兩種解決方案:
使用虛擬機技術(shù)
VMware 或 Virtual Box 等虛擬機可能是比較好的選擇,但目前這些技術(shù)并不支持直連 GPU 的功能,如果在 Windows 操作系統(tǒng)搭建 Ubuntu 虛擬機,是無法提供對 CUDA 開發(fā)環(huán)境的支持,也就無法執(zhí)行 GPU 的智能計算功能。
于是解決的方案就是在 x86 機器上先安裝 Ubuntu 操作系統(tǒng),然后創(chuàng)建 Windows 的虛擬機,這樣就能在 Ubuntu 上執(zhí)行編程調(diào)試等開發(fā)任務,在 Windows 虛擬機上執(zhí)行辦公相關(guān)的操作,是目前看來比較合適的搭配。
最終存在的問題,就是您得將 Windows 操作系統(tǒng)完整遷移到虛擬機上,否則從頭創(chuàng)建一個新的操作環(huán)境,代表很多設(shè)定或密碼也得重來一次。
使用兩套獨立系統(tǒng)
大部分先進技術(shù)工作者都會使用便攜式辦公設(shè)備,例如筆記本電腦或平板電腦,而這類設(shè)備幾乎都不具備 CUDA GPU 開發(fā)能力。因此要學習或開發(fā)人工智能應用的話,就需要另一臺具備 CUDA 開發(fā)環(huán)境的獨立系統(tǒng),然后從慣用的辦公設(shè)備去遠程操作 CUDA 計算設(shè)備,這樣的組合是最合適的方式,互相不影響。
在 NVIDIA 推出 Jetson 嵌入式設(shè)備之前,我們只能選擇在 x86 電腦插上 CUDA 架構(gòu) GPU 計算卡的方式。由于體積、重量和電源等方面等限制,這種設(shè)備不能隨身攜帶到任何地方進行開發(fā)、測試或演示。
如今 Jetson Nano 的特性能解放這些束縛,讓我們能在絕大部分環(huán)境下執(zhí)行任務。下表是 Jetson Nano 與 x86 系統(tǒng)安裝 GPU 卡的一些基本特性比較表:
Jetson Nano 定位在智能邊緣的推理計算,并不適合執(zhí)行人工智能的模型訓練任務,以及對“延遲”較為敏感的應用,但是作為入門者的學習工具,以及開發(fā)輕量級的邊緣智能推理應用,是再適合不過了。
(二)隨時隨地操作
要執(zhí)行遠程操作的前提,就是需要在兩臺設(shè)備上形成連線。在辦公室或家中有網(wǎng)絡(luò)的環(huán)境下,可以較為輕松地使用 Wi-Fi 方式進行連線,但如果在沒有網(wǎng)絡(luò)或不能自主獲取 IP 的環(huán)境下,為兩臺設(shè)備建立連線則有一些挑戰(zhàn)。
NVIDIA 為 Jetson Nano 提供一種“無頭(headless)”連線方式,只需要一條具備數(shù)據(jù)傳輸能力的 USB/MicroB 連接線,在 Jetson Nano 與辦公電腦之間,按照下圖接線就能形成連線,此時 Jetson Nano 會提供一個 192.168.55.1 的固定 IP,這樣就能在辦公電腦上非常輕松地操作 Jetson Nano。
此外,如果所處環(huán)境缺乏電源插口,我們也可以用一般 5V 充電寶來為 Jetson Nano 提供電源,如此一來就完全不會受到任何的限制,只要帶好筆記本電腦、Jetson Nano、USB 線以及充電寶這四個東西,就能在任何地方執(zhí)行任務,這是 x86 電腦所不能提供的特性。
(三)快速搭建開發(fā)環(huán)境
大部分在 x86 系統(tǒng)上使用 CUDA 開發(fā)資源的初學者,一開始最痛苦的經(jīng)歷都在“環(huán)境調(diào)試”的過程,除了根據(jù) GPU 卡型號挑選正確驅(qū)動版本之外,緊跟著就是CUDA、cuDNN、TensorRT 這三者之間的版本匹配問題,然后再往上添加 TensorFlow、PyTorch、ONNX 等框架,整個過程都需要非常細膩的版本對應,任何一個環(huán)節(jié)出錯,都可能需要將前面的安裝全部推倒重來,十分消耗時間與精力。
要執(zhí)行計算機視覺相關(guān)應用,大部分會以 OpenCV 這套普及率高的開源庫為主,如果使用開源包進行完整的安裝,在過程不出錯的狀況下大約需要 1 個多小時,幾乎沒有哪個新手能一次就安裝成功。
總的來說,要在 x86 系統(tǒng)上安裝并調(diào)試好能工作的 CUDA 開發(fā)環(huán)境,根據(jù)經(jīng)驗,即便是熟手也得 6 小時以上時間,很多新手可能都得花個 2~3 天時間才能完成,有些人在這個階段就會產(chǎn)生放棄的念頭。
NVIDIA 為 Jetson Nano 開發(fā)套件設(shè)計 TF 卡啟動方式,并為其提供官方安裝鏡像文件,只要到指定的地方下載 7G 以內(nèi)的文件,然后使用推薦的軟件燒錄到 TF 卡里,接著插入 Jetson Nano 卡槽內(nèi),再開啟電源就可以。
正常狀況下能在 1 個小時以內(nèi)完成,使用者不需要執(zhí)行任何安裝指令,就能得到一個調(diào)試好的 CUDA/cuDNN/TensorRT/OpenCV 開發(fā)環(huán)境與開源范例,非常輕松。
我們還可以用多張 TF 卡來確保不同應用的環(huán)境獨立性,例如 Python 的 NumPy 庫就經(jīng)常發(fā)生在不同應用之間的版本沖突問題,最好的解決方式就是為不同應用提供獨立的 TF 卡,而不需要在一個環(huán)境中去設(shè)立多個 env 或 conda 虛擬環(huán)境。
筆者自己就用了 4 張 64GB 的 TF 卡,分別針對 Jetbot 小車、DeepStream 智能分析、YOLO 口罩識別與機械手臂操作的應用開發(fā),提供互不干擾的開發(fā)環(huán)境,大量節(jié)省調(diào)試兼容性的精力。
(四)更廣泛的應用場景
雖然 Jetson Nano 的計算性能遠遠不如 x86 安裝 CUDA GPU 卡,但這款嵌入式設(shè)備就是為鎖定在低功耗的邊緣應用領(lǐng)域而設(shè)計,面向絕大部分智能推理識別的計算是相當足夠的,并且還提供一組 40 針兼容擴充引腳,可以使用市場上絕大部分周邊設(shè)備,自行采購來擴充作為機械手臂之類的機電控制應用。
例如 Jetbot 小車所使用的 CSI 攝像頭、OLED 顯示板、PCA9685+TBB6612 機電控制板、低功率電機等等,都是在網(wǎng)上可以用很低成本采購到的元器件,讓開發(fā)者能夠根據(jù)想要解決的問題,開發(fā)更廣泛的應用。
NVIDIA 在https://developer.nvidia.com/embedded/community/jetson-projects 提供上百個基于 Jetson Nano 所創(chuàng)建的項目,這里不僅提供效果演示視頻,還提供項目復現(xiàn)的開源內(nèi)容,使用者可以基于這些項目所提供的資源,非常輕易地創(chuàng)建符合自己需求的 AI 邊緣應用,這些都是在 x86 系統(tǒng)上很難實現(xiàn)的特點。
寫在最后
最后再為讀者總結(jié)一下 Jetson Nano 的優(yōu)點:
1、高性能計算能力:配備了 NVIDIA Maxwell 架構(gòu)的 128 核 GPU,可以處理大量的計算工作,包括深度學習、圖像處理、視頻編解碼等任務。
2、低功耗:Jetson Nano 開發(fā)套件的功耗只有 5W,是傳統(tǒng)計算機的十分之一,這意味著它可以在移動設(shè)備、嵌入式系統(tǒng)、機器人等低功耗場景中使用。
3、強大的軟件支持:支持多種人工智能和機器學習框架,包括 TensorFlow、PyTorch、Caffe 等,并且還提供了 NVIDIA JetPack 軟件套件,可以快速啟動和配置系統(tǒng)。
4、多種接口和擴展性:提供多種接口和擴展選項,包括 HDMI、USB、GPIO、CSI 等,可以輕松地連接各種傳感器、顯示器和外部設(shè)備。
5、適用于多種應用場景:由于其高性能、低功耗和強大的軟件支持,Jetson Nano 開發(fā)套件可以用于多種應用場景,包括智能攝像頭、無人機、自動駕駛車輛、機器人、醫(yī)療設(shè)備等。
如今,基于 Jetson 平臺的開發(fā)者人數(shù)已經(jīng)突破百萬,NVIDIA 依舊不斷為這個平臺灌注豐富并且易用的 AI 開發(fā)資源,大部分開發(fā)人員都能在短期內(nèi)掌握 AI 應用開發(fā)技能與提升性能的技巧,足以證明 Jetson Nano 是目前成本低、使用場景廣泛的快速 AI 邊緣計算的學習平臺,即便您只是要用來學習最基礎(chǔ)的 C/C++ 或 Python 開發(fā)語言、計算機視覺 OpenCV 應用,這都是獲取成本低、見效快的神器。
*本文中圖片均由 GPUS 開發(fā)者社區(qū)的 Jetson 開發(fā)者提供,如果您有任何疑問或需要使用本文中圖片,請聯(lián)系GPUS 開發(fā)者社區(qū)。
即刻點擊“閱讀原文”,在 NVIDIA On-Demand 上觀看 GTC 精選回放,包括主題演講相關(guān)精選、中國本地精選內(nèi)容、生成式 AI 專題以及全球各行業(yè)及領(lǐng)域最新成果!
原文標題:Jetson Nano 是學習 AI 邊緣計算的神器
文章出處:【微信公眾號:NVIDIA英偉達】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
-
英偉達
+關(guān)注
關(guān)注
22文章
3683瀏覽量
90491
原文標題:Jetson Nano 是學習 AI 邊緣計算的神器
文章出處:【微信號:NVIDIA_China,微信公眾號:NVIDIA英偉達】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
評論