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