從一線“網(wǎng)紅”們說起
智能無人機、自主機器人、智能攝像機、自動駕駛……今年最令硬件創(chuàng)客們著迷的詞匯,想必就是這些一線“網(wǎng)紅”了。而這些網(wǎng)紅的背后,幾乎都和計算機視覺與深度學(xué)習(xí)密切相關(guān)。
深度學(xué)習(xí)是人工智能領(lǐng)域一個最新的分支,可以幫助計算機理解圖像、聲音和文本,但需要強大的數(shù)據(jù)處理能力作為支撐。
在今年的Embedded World、SX Create、FIRST Championship等大型活動中,你都可以看到很多小型團隊或者創(chuàng)業(yè)公司,所打造的應(yīng)用了深度學(xué)習(xí)技術(shù)的機器人和無人機系統(tǒng)。一套套完美的解決方案,背后都有一個共同點——NVIDIA Jetson TX1!
如果說Arduino或者樹梅派是很多創(chuàng)客們此前的最愛,那么Jetson TX1就是今年他們眼中的最酷“玩具”!
什么是Jetson TX1
Jetson TX1是NVIDIA第二代嵌入式平臺開發(fā)者套件,雖然只有信用卡大小,但Jetson TX1 GPU模塊的浮點運算能力卻達到1 Teraflops,相比Jetson TK1有巨幅提升。如此強大的性能,Jetson TX1顯然是智能無人機、機器人最理想的嵌入式解決方案。
Jetson TX1 核心模塊
別看核心模塊只有信用卡大小,身體里可暗藏玄機:內(nèi)建256個CUDA核心的NVIDIA Maxwell GPU,64位ARM A57CPU,4GB LPDDR4內(nèi)存、16GB閃存、藍牙、802.11ac Wi-Fi模塊和千兆以太網(wǎng)卡,運行Linux for Tegra操作系統(tǒng)。
Jetson TX1 開發(fā)者套件
配上坐騎后的Jetson TX1是這個樣子的。主板提供了USB 3.0 Type A、USB 2.0、HDMI、M.2 Key E、PCI-E x4、千兆以太網(wǎng)、SD、SATA數(shù)據(jù)和供電等接口,儼然是臺全功能的PC;既然是開發(fā)者套件,怎能少了針對硬件創(chuàng)客的擴展接口:GPIO、I2C、I2S、SPI、帶流控制的TTL UART、顯示器擴展頭和攝像頭擴展頭一個不少。
Jetson TX1 開發(fā)者套件內(nèi)容詳情
作為上一代Jetson TK1的用戶,自然不會放過性能如此強悍的Jetson TX1。經(jīng)過了一段時間的使用和體驗,這里向大家分享一下粗淺的使用體驗,同時以個人觀點聊聊Jetson TX1到底能為我們帶來哪些想象空間!
開箱體驗與基本使用
開箱體驗
Jetson TX1自帶了底座,十分貼心。雖然包裝盒內(nèi)沒有附帶任何光盤等介質(zhì),但Jetson TX1線上資源十分豐富,囊括文檔及軟件工具,并且獲取十分方便。
Jetson TX1 開發(fā)者套件廬山真面目
Jetson TX1模塊已預(yù)先安裝在主板上,Wi-Fi天線連接線也已接好,同時整個核心模塊由一個巨大的散熱片覆蓋,并配備了風(fēng)扇,為了保證系統(tǒng)運行穩(wěn)定和兼顧控制能耗,按照系統(tǒng)設(shè)定,該風(fēng)扇僅在系統(tǒng)高負(fù)荷運行時才會啟動,平時系統(tǒng)主要依靠散熱片被動散熱,由此可見NVIDIA在保證系統(tǒng)穩(wěn)定并兼顧控制能耗上的細(xì)致,畢竟這樣一塊計算能力達到1Teraflops的Jetson TX1,功耗峰值才10W。
Jetson TX1與Jetson TK1
由于配備了更多的擴展接口,所以Jetson TX1比Jetson TK1主板面積要大一些。較大的外形也暗示著TX1擁有的更強性能和帶給開發(fā)者的想象空間。
開發(fā)環(huán)境搭建
在正式進入Jetson TX1開發(fā)的奇幻之旅前,先簡單介紹一下Jetson TX1開發(fā)環(huán)境的配置,在這里我們需要預(yù)先準(zhǔn)備下列項目:
NVIDIA開發(fā)者賬號
該賬號需要在NVIDIA官網(wǎng)的開發(fā)者頁面進行注冊,并同時加入“Embedded Development Program”。這樣就可以獲取Jetson TX1相關(guān)的全部文檔和軟件包資源,包括嵌入式系統(tǒng)鏡像、開發(fā)工具以及NVIDIA提供的各種工具和軟件庫。
注冊NVIDIA開發(fā)者帳號并加入“Embedded Development Program”
NVIDIA為開發(fā)者提供了涵蓋Jetson TX1方方面面的文檔資源和軟件資源
Jetson TX1相關(guān)的文檔和軟件工具都可以通過Embedded Download Center下載
安裝妥當(dāng)?shù)腏etson TX1
正確的電源、鼠標(biāo)、鍵盤,網(wǎng)絡(luò)和顯示器連接。Jetson TX1開發(fā)套件提供了2個USB接口,包括一個USB 2.0 Micro,雖然通過轉(zhuǎn)接器可以連接標(biāo)準(zhǔn)USB接口的設(shè)備,但是開發(fā)過程中經(jīng)常需要將Jetson TX1通過USB連接至Host電腦,所以這里我推薦大家可以使用USB 3.0 HUB來解決USB接口不足的問題。
安裝妥當(dāng)?shù)腏etson TX1
· JetPack開發(fā)工具套件
可以登錄NVIDIA Embedded Download Center下載。
· 一臺運行Ubuntu Linux 64位操作系統(tǒng)的Host電腦
操作系統(tǒng)推薦使用Ubuntu 14.04 LTS 64位版本,同時至少有10GB硬盤空閑空間。
準(zhǔn)備完畢后,在Host電腦為JetPack安裝包增加運行權(quán)限并執(zhí)行,JetPack安裝程序?qū)⑼ㄟ^圖形界面引導(dǎo)開發(fā)者完成開發(fā)環(huán)境的配置,開發(fā)者只需依照自己的開發(fā)配置在安裝程序的引導(dǎo)下做出選擇即可,整個過程非常簡約,界面友好。
值得注意的是JetPack安裝程序不僅可以在Host電腦和Jetson TX1上搭建開發(fā)環(huán)境,同時還可以對Jetson TX1進行刷機,用來恢復(fù)出場設(shè)置和升級最新的操作系統(tǒng)版本,使用JetPack刷機比用命令行工具更加簡便和不易出錯。
在Host電腦上為JetPack安裝包添加運行權(quán)限并執(zhí)行
全程只需要依據(jù)安裝引導(dǎo)進行配置即可
在Jetson TX1上測試開發(fā)編譯環(huán)境是否安裝成功
小試牛刀——運行/開發(fā)環(huán)境初探
運行環(huán)境方面,JetPack搭建好開發(fā)環(huán)境后,Jetson TX1將重啟并引導(dǎo)之圖形界面。目前Jetson TX1上最新的操作系統(tǒng)為Linux For Tegra R24.1,該操作系統(tǒng)在用于ARM架構(gòu)的Ubuntu 14.04 LTS版本基礎(chǔ)上定制開發(fā)。Ubuntu在國內(nèi)擁有龐大的用戶基礎(chǔ)和社區(qū)環(huán)境,基于Ubuntu定制開發(fā)的Linux For Tegra對于發(fā)者們來說,在界面,命令和操作習(xí)慣等方面非常熟悉,極易上手;與此同時,開發(fā)者使用過程中遇到的問題,除了官方論壇外,也可以在更廣泛的Ubuntu操作系統(tǒng)社區(qū)環(huán)境內(nèi)向眾大神尋求幫助。
Jetson TX1操作系統(tǒng) Linux for Tegra概覽
一般來說,針對嵌入式平臺的開發(fā)有兩種編譯模式:原生編譯和交叉編譯。原生編譯就是直接在嵌入式平臺上編譯代碼并運行,而交叉編譯就是在個人電腦等平臺編譯代碼,然后加載到嵌入式平臺運行。我們在Jetson TX1開發(fā)上使用交叉編譯。這里需要提醒一下各位小伙伴,交叉編譯需要在Jetson TX1和Host電腦間同步代碼,所以需要提前安裝和配置Git,否則在后續(xù)編譯執(zhí)行的時候會報錯的呦,開發(fā)工具會深情地問你“Can you tell me who you are”。
NVDIA Nsight啟動界面
NVDIA Nsight操作界面
Jetson TX1使用的開發(fā)工具NVDIA Nsight是基于eclipse定制開發(fā),其界面和操作習(xí)慣于eclipse基本保持一致,消除了開發(fā)人員的熟悉工具的時間和精力消耗。
接下來分享下在Jetson TX上創(chuàng)建,編輯,生成和運行一個項目的過程。
· 新建項目
NVIDIA Nsight新建項目中目標(biāo)系統(tǒng)設(shè)置
NVIDIA Nsight新建項目中目標(biāo)系統(tǒng)設(shè)置
NVIDIA Nsight新建項目中目標(biāo)系統(tǒng)設(shè)置
由于使用交叉編譯模式,所以在新建項目時,需要指定目標(biāo)系統(tǒng),即實際編譯運行程序的系統(tǒng)——Jetson TX1。這里按提示輸入Jetson TX1的網(wǎng)絡(luò)地址,用戶名,以及Jetson TX1上CUDA Toolkit的安裝路徑就可以了。
如果不知道Jetson TX1上CUDA Toolkit的路徑也沒有關(guān)系,新建項目向?qū)Ш苜N心的設(shè)置了一個“自動檢測”的功能,只要輕輕一點,向?qū)詣铀褜UDA Toolkit的路徑,非常方便。
· 編輯代碼
NVIDIA Nsight代碼編輯視圖
NVIDIA Nsight代碼編輯與eclipse完全一致,只是增加針對CUDA代碼的代碼補全,高亮提示以及語法檢查,用慣eclipse的開發(fā)者絕對能感覺到屠龍在手,天下我有。
· 生成/運行項目
NVIDIA Nsight遠程運行項目對話框
NVIDIA Nsight遠程運行項目對話框
同樣的,在按照工具的提示配置好Jetson TX1后,就可以完成程序的編譯,運行,然后坐等收獲結(jié)果!
軟硬件配置概覽
在簡單介紹了Jetson TX1以及它的開發(fā)環(huán)境后,現(xiàn)在從Jetson TX1的軟硬件配置入手,來探索Jetson TX1開發(fā)者套件帶給廣大開發(fā)者的無限可能。
· CUDA
CUDA是整套平臺的核心,保證了Jetson TX1超高的計算性能。同時,Jetson TX1也支持各種基于CUDA跨架的軟件庫,從而可以用于多種高并行度計算和高數(shù)據(jù)密度的應(yīng)用場景,如機器學(xué)習(xí),深度學(xué)習(xí),大數(shù)據(jù)實施分析以及物聯(lián)網(wǎng)邊緣計算等。
· GPIO、I2C、I2S、SPI、帶流控制的TTL UART等接口
豐富的接口給了今后基于Jetson TX1進行擴展開發(fā)的無限可能,即可以通過TTL UART、GPIO等接口實現(xiàn)其它單片機、嵌入式系統(tǒng)的所有功能外,還能通過自身強大的性能,升任其它單片機、嵌入式系統(tǒng),如樹梅派等無力支撐的高數(shù)據(jù)密度業(yè)務(wù)和高處理實時性業(yè)務(wù),如智能機器人,機器人,無人駕駛汽車等。
· 攝像頭擴展頭
通過將攝像頭(最高支持4K)與Jetson TX1連接,并借助OpenCV和Visionworks進行視覺計算。
· PCIe x4接口
這使得Jetson TX1與其它擴展板卡得以結(jié)合,并碰撞出創(chuàng)新的火花。如可以通過PCIe x4接口將可編程的FPGA接入系統(tǒng),協(xié)助處理通信,加解密等業(yè)務(wù),從而進一步提升Jetson TX1針對特殊應(yīng)用場景的性能。
· USB 2.0 Client/Host接口
USB2.0 Client/Host口也為很多應(yīng)用提供便利。一方面通過USB Host可以將各種USB外設(shè)連接在Jetson TX1上,此外,也可以通過 USB Client 將Jetson TX1作為外設(shè)連接至電腦或其它設(shè)備,開發(fā)者完全可以隨意定義這個USB Client的具體行為和功能,即可以將Jetson TX1開發(fā)為具備任何希望功能的外設(shè)連接至電腦或其它設(shè)備。
初步的使用感受
在基礎(chǔ)開發(fā)環(huán)境配置過程中,最令人映像深刻的感受有以下兩點:
· NVIDIA提供的工具軟件包強大且易用
首先,JetPack為用戶提供了從Jetson TX1系統(tǒng)鏡像燒錄,到Jetson TX1和Host電腦開發(fā)環(huán)境安裝配置的一站式解決方案,省去了用戶用在分別安裝、配置各個組件,解決版本匹配和組件間依賴關(guān)系上的時間和精力,使用戶可以方便快捷的完成環(huán)境的準(zhǔn)備,并將精力集中在產(chǎn)品的研發(fā)上。相比之下,我之前在PC和其他嵌入式平臺上,往往總要在環(huán)境配置上耗費很多時間,需要想方設(shè)法地去解決組件版本不匹配和軟件依賴關(guān)系不滿足等問題。
其次,JetPack在安裝配置過程中向用戶提供了非常詳盡的操作引導(dǎo),使用戶,尤其是新手可以很順利的完成基礎(chǔ)環(huán)境的配置。例如在Jetson TX1操作系統(tǒng)映像燒錄過程開始時,安裝程序會彈出提示窗口,詳細(xì)的介紹了如何將Jetson TX1設(shè)置為recovery模式以及相應(yīng)的注意事項,并要求用戶確認(rèn)準(zhǔn)備妥當(dāng)后按鍵繼續(xù),最大程度的避免了用戶操作不當(dāng)造成的系統(tǒng)損壞;再例如在配置Jetson TX1軟件環(huán)境時,安裝程序會以圖示的形式讓用戶選擇Jetson TX1與Host電腦的連接方式,直觀易懂。
· Jetson TX1相關(guān)的輔助資源非常豐富
NVIDIA圍繞Jetson TX1提供了從用戶手冊,產(chǎn)品設(shè)計文檔,到工具軟件和內(nèi)核源碼等全套資料,便于不同水平的用戶查閱;同時還有專門針對Jetson嵌入式平臺的開發(fā)者論壇,方便用戶針對文檔中未涉及的問題和使用經(jīng)驗進行提問和交流,NVIDIA的官方支持人員也會在論壇中回復(fù)大家提出的各種技術(shù)問題,為用戶的開發(fā)過程提供有力支持。在本次編譯環(huán)境的配置過程中,我就曾遇到交叉編譯報錯,eclipse提示在Jetson TX1上找不到對應(yīng)路徑的問題,當(dāng)時查閱了很多文檔但都沒有找到問題所在,最終在開發(fā)者論壇中通過查閱開發(fā)者的歷史提問找到的問題所在,是Jetson TX1端的Git沒有正確配置,最終配置好Git后,編譯錯誤也迎刃而解。
Jetson TX1憑借強悍的計算性能,相對超低的能耗,豐富的文檔和資源和多樣化的擴展接口,得以成為開發(fā)者和創(chuàng)客們的有力工具。
評論