版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
第3章JETSON嵌入式平臺3.1
JETSON平臺簡介3.2
JETSON平臺硬件資源介紹3.3
JETSON平臺軟件資源介紹
NVIDIAJETSON嵌入式平臺(簡稱JETSON平臺)提供的性能可提高自主機器軟件的運行速度,而且功耗更低。JETSON平臺的每個系統(tǒng)都是一個完備的模塊化系統(tǒng)(SOM),具備CPU、GPU、電源管理集成芯片(PowerManagementIntegratedCircuit,PMIC)、動態(tài)隨機存儲器(DynamicRandomAccessMemory,DRAM)和閃存,可節(jié)省開發(fā)時間和資金。JETSON平臺還具備可擴展性,用戶只需要選擇適合應用場合的SOM,就能構建自定義系統(tǒng),滿足特定的應用需求。
3.1JETSON平臺簡介
2015年11月,NVIDIA嵌入式開發(fā)板家族迎來了第一個成員——JETSONTX1,其設計緊湊的、只有50?mm?×?90?mm的JETSONTX核心板包含了NVIDIATegraX1core、板載Wi-Fi和Bluetooth、帶風扇的散熱片和工業(yè)連接器。JETSONTX1開發(fā)模組旨在針對機器人、無人機等的應用,其核心模組和開發(fā)人員套件外形如圖3.1所示。
圖3.1JETSONTX1的核心模組和開發(fā)人員套件外形
2017年3月,JETSONTX1的升級版JETSONTX2問世。JETSONTX1的配置是TegraX1+4GBLPDDR4,GPU是擁有256個CUDA核心的NVIDIAMaxwell架構,而JETSONTX2則升級為TegraParker處理器,CPU部分也升級為NVIDIAPascal架構,同樣是擁有256個CUDA核心,但其性能提高了50%。JETSONTX2可在像信用卡大小的模塊中提供1萬億次浮點計算性能,其核心模組和開發(fā)人員套件外形如圖3.2所示。
圖3.2JETSONTX2的核心模組和開發(fā)人員套件外形
2018年6月,一款重量級的JETSON家族成員JETSONXavier問世。作為NVIDIAISAAC平臺的核心,JETSONXavier是全球首款專為機器人設計的智能芯片。它有6個處理器,包括1個VoltaTensorCoreCPU、1個8核ARM64CPU、2個NVIDIA深度學習加速器、1個圖像處理器和1個視頻處理器,每秒可執(zhí)行30萬億次操作,其處理能力與配備了10萬美元GPU的工作站大致相當,但功耗僅為30?W。JETSONXavier的核心模組如圖3.3所示。
圖3.3JETSONXavier的核心模組
019年3月,在硅谷召開的GTC(GPUTechnologyConference)大會上,NVIDIA的CEO黃仁勛又發(fā)布了一款輕量級的、為機器人開發(fā)人員量身定制的工具套件——
JETSONNano。JETSONNano搭載了4核Cortex-A57處理器,CPU則是擁有128個CUDA核心的NVIDIAMaxwell架構,可以提供472千兆浮點計算性能,而功耗卻低至5?W。雖然其計算能力不及JETSONXavier和JETSONTX2,但其價格僅為JETSONXavier的1/7,在各種提供邊緣計算功能的開發(fā)板中具有最高性價比。JETSONNano的核心模組和開發(fā)人員套件外形如圖3.4所示。
圖3.4JETSONNano的核心模組和開發(fā)人員套件外形
NVIDIA迄今為止推出的4款嵌入式人工智能平臺的參數(shù)及性能對比見表3.1。
3.2JETSON平臺硬件資源介紹3.2.1JETSON平臺網(wǎng)絡接口JETSON平臺在硬件資源方面不僅具有USB、HDMI、以太網(wǎng)等常規(guī)輸入/輸出(I/O)接口,還具有豐富的硬件可擴展接口資源,為開發(fā)人員進行擴展應用提供了無限可能。開發(fā)人員不僅可以通過UART(異步收發(fā)傳輸器)、GPIO(通用型輸入/輸出)、I2C(總線)等外設接口實現(xiàn)其他單片機、嵌入式系統(tǒng)的所有功能,還可以通過自身強大的性能,勝任其他單片機、嵌入式系統(tǒng)無力支撐的高數(shù)據(jù)密度業(yè)務和高處理實時性業(yè)務,如智能機器人、無人駕駛汽車等。
1.?JETSON平臺的網(wǎng)絡接口
JETSON平臺支持千兆有線網(wǎng)絡接口,而且網(wǎng)絡接入速度穩(wěn)定,因此,在項目開發(fā)過程中推薦采用有線方式接入網(wǎng)絡。通常,路由器端都是通過DHCP(動態(tài)主機配置協(xié)議)方式設置自動分配IP,所以只要用網(wǎng)線把JETSON平臺連接到路由器上即可實現(xiàn)上網(wǎng)。
(1)基于M.2的無線網(wǎng)絡接口。M.2接口是Intel推出的專為便攜設備量身定制的一種主機接口方案,可以兼容多種通信協(xié)議,如SATA(串口硬盤)、PCIe、USB、HSIC(高速集成電路)、UART、SMBus(系統(tǒng)管理總線)等。M.2接口主要有兩方面的優(yōu)勢:
第一是速度優(yōu)勢。
第二是體積優(yōu)勢。
(2)?IntelWireless-AC8265網(wǎng)卡。目前在JETSON設備上官方推薦的M.2接口的無線網(wǎng)卡是IntelWireless-AC8265,其外形如圖3.5所示。
圖3.5IntelWireless-AC8265無線網(wǎng)卡的外形
IntelWireless-AC8265網(wǎng)卡的無線接入功能和藍牙接入功能必須插接天線才能正常使用,所支持的天線有兩種:一種是FPC軟排線天線,帶3M膠,可隨意粘貼固定;另一種是膠棒天線,在外殼上需要有固定裝置,如圖3.6所示。用戶可以根據(jù)實際情況選擇使用這兩種天線。圖3.6IntelWireless-AC8265無線網(wǎng)卡天線
①在JETSONNano上安裝M.2接口無線網(wǎng)卡。
JETSONNano使用M.2接口連接設備需要拆卸開發(fā)板,一旦操作有誤,就有可能損壞開發(fā)板,而這種人為損壞不在保修范圍內(nèi),所以用戶在動手前一定要謹慎!
拆卸過程:先將JETSONNano核心模組(見圖3.7)的固定螺絲旋轉(zhuǎn)取下,然后用雙手按壓松脫核心模組兩端的固定卡扣,將核心模組翻轉(zhuǎn)后脫離連接器。
安裝過程:用手指將天線按壓到無線網(wǎng)卡上,再將開發(fā)板上M.2接口的螺絲擰下,把無線網(wǎng)卡插至該接口上,用剛剛擰下的螺絲將無線網(wǎng)卡固定好后,重新將JETSONNano核心模組固定到開發(fā)板上。
圖3.7JETSONNano的核心模組
②在JETSONXavier上安裝M.2接口無線網(wǎng)卡。
在JETSONXavier上,M.2接口無線網(wǎng)卡的安裝稍微容易一些,無須拆裝模組,只需將JETSONXavier底部朝上放置,即可看到其連接無線網(wǎng)卡的M.2接口。
安裝過程:將JETSONXavier底部朝上放置,將JETSONXavier底部連接無線網(wǎng)卡的M.2接口上的螺絲擰下,用手指將天線按壓到無線網(wǎng)卡上,再將無線網(wǎng)卡插至JETSONXavier底部的M.2接口上,用剛剛擰下的螺絲將無線網(wǎng)卡固定好即可。
2.基于USB的無線網(wǎng)絡接口
和M.2接口相比,通過USB方式接入無線網(wǎng)卡的接口操作簡單,只需插入即可。由于L4T平臺(JETSON平臺定制的Linux操作系統(tǒng),即Ubuntu定制款)的兼容性問題,并不是所有的USB接口的無線網(wǎng)卡都能即插即用。NVIDIA官方推薦的USB接口無線網(wǎng)卡是EdimaxEW-7811Un,如圖3.8所示。
圖3.8EdimaxEW-7811Un無線網(wǎng)卡
3.接入無線網(wǎng)絡及設置無線熱點
連接好無線網(wǎng)卡后,用戶可以在桌面上設置進入無線網(wǎng)。用鼠標點擊桌面上的“網(wǎng)絡連接”圖標,在列出的無線網(wǎng)絡中點擊可用的無線熱點,在彈出的對話框中輸入該無線熱點的密碼并點擊確認,即可將JETSON設備接入互聯(lián)網(wǎng)。
在有些實際應用場景中,可能并不需要將JETSON設備接入廣域網(wǎng)絡,但是需要讓其他移動設備和JETSON設備互連。這時將JETSON設備設置為熱點是一個不錯的備選方案。
將JETSON設備設為熱點的操作步驟如下:
(1)用鼠標點擊桌面上的“網(wǎng)絡連接”圖標,在彈出的菜單中選擇“EditConnections...”菜單項,再在彈出的“NetworkConnections”對話框中點擊左下角的“+”按鈕。
(2)在彈出的連接類型選擇對話框中下拉選擇“Wi-Fi”,點擊“Create...”按鈕。
(3)在彈出的網(wǎng)絡連接對話框中,修改“Connectionname”為“MyHotspot”,在“Wi-Fi”頁面中填寫“SSID”為“Nano”,選擇“Mode”為“Hotspot”,選擇“Device”為“wlan0(08:BE:AC:06:3B:38)”,切換至“Wi-FiSecurity”頁面,選擇“Scurity”為“WEP40/128bitKey(HexorASCII)”,填寫“Key”為相應密碼,如“12345”,點擊“Save”按鈕即可。
(4)再用鼠標點擊桌面上“網(wǎng)絡連接”圖標,在彈出的菜單中選擇“ConnecttoHiddenWi-FiNetwork”菜單項,在彈出的連接到隱藏網(wǎng)絡對話框中選擇“Connection”,修改為之前創(chuàng)建的“MyHotshot”,點擊“Connect”按鈕。
(5)片刻后,在系統(tǒng)桌面的右上角會顯示“YouarenowconnectedtotheWi-Finetwork‘Nano’.”的字樣,說明SSID為“Nano”的熱點已經(jīng)成功創(chuàng)建了。
一般來說,當前機器的IP應該是“10.42.0.1”這時就可以用其他移動設備搜索SSID為“Nano”的無線網(wǎng)絡,并使用所設定的密碼接入該無線熱點網(wǎng)絡中,接入設備就可以通過當前機器的IP和當前機器進行網(wǎng)絡通信。
3.2.2JETSON平臺外設接口
JETSON平臺的外設接口有多種,下面將詳細介紹不同版本JETSON平臺的外設接口以及其中的重要接口。
1.外設接口圖
1)?JETSONNano開發(fā)板套件的外設接口
JETSONNano開發(fā)板套件的前視圖如圖3.9所示,頂視圖如圖3.10所示。
圖3.9JETSONNano開發(fā)板套件的前視圖
圖3.10JETSONNano開發(fā)板套件的頂視圖
2)?JETSONTX2開發(fā)板套件的外設接口圖
JETSONTX2開發(fā)板套件的頂視圖如圖3.11所示。圖3.11JETSONTX2開發(fā)板套件的頂視圖
3)?JETSONXavier開發(fā)板套件的外設接口圖
JETSONXavier開發(fā)板套件的前視圖和后視圖如圖3.12所示,頂視圖如圖3.13所示。圖3.12JETSONXavier開發(fā)板套件的前視圖和后視圖圖3.13JETSONXavier開發(fā)板套件的頂視圖
2.?GPIO接口
GPIO接口是通用型輸入/輸出接口的簡稱,其接腳可以供開發(fā)人員通過程序控制自由使用。GPIO接口可根據(jù)實際情況作為通用輸入或通用輸出,也可以作為通用輸入與輸出。JETSON系列開發(fā)板中都包含40引腳的GPIO接口,其中JETSONXavier和JETSONNano只有一個40針2.54?mm間隔的GPIO接口,而JETSONTX2有兩個GPIO接口,一個40針、2.54?mm間隔的通用接口J21和一個30針2.54?mm間隔的擴展接口J26。
GPIO接口可以用于輸入、輸出或其他特殊功能。對于輸入,可以通過讀取某個寄存器來確定引腳電位的高低;對于輸出,可以通過寫入某個寄存器來讓引腳輸出高電位或低電位;對于其他特殊功能,則由另外的寄存器來控制。以JETSONNano為例,GPIO引腳排列見表3.2。
對于如何通過控制GPIO輸出來打開和關閉發(fā)光二極管(LED),首先,選取LED燈、NPN晶體管、3300?Ω電阻、10?kΩ電阻和若干電線,用面包板將所有器件連接起來;其次,在控制LED的過程中,需要通過添加限流電阻來確保LED能夠承受的電流量,簡而言之,通過選擇合適的電阻可以設定LED實際吸收電流的上限。根據(jù)歐姆定律選擇電阻(在同一電路中,通過某段導體的電流與該導體兩端的電壓成正比,與該導體的電阻成反比):
(3-1)
當已知LED的參數(shù)時可以計算出合適的電阻值,即根據(jù)LED的正向電壓(陰極和陽極之間的最小電壓差)計算正向電流,即LED能夠連續(xù)處理的最大電流。本節(jié)中LED正向電流為20?mA,正向電壓為2.0?V,當使用JETSONNano的5?V引腳驅(qū)動LED時,按照歐姆定律,有
如果以最大電流運行,將會影響LED壽命。通常,使用220~470?Ω的電阻來實現(xiàn)此應用,本節(jié)使用330Ω。
在實際連接過程中,將JETSONNano上的引腳2(?+?5V)用導線接入面包板電路?+?5?V相應位置,將引腳6(GND)用導線接入面包板電路GND相應位置,將引腳12(gpio79)用導線經(jīng)由基極電阻連接到晶體管基座。連接好后運行如下命令:
3.串行通信接口
JETSON系列開發(fā)板上有4種類型的串行通信接口,分別為USB、SPI、UART和I2C。USB接口是插入鼠標和鍵盤的接口。對于SPI接口,在默認的JETSON配置中沒有SPI接口訪問權限,但以JETSONNano為例,可以通過J41擴展接頭重新配置設備樹以訪問SPI。本節(jié)重點介紹UART和I2C兩類接口。
1)?UART接口
通過電線傳輸串行數(shù)據(jù)可以追溯到百年前,計算機行業(yè)中的串行通信無處不在。UART是串行控制臺,允許直接訪問串行和調(diào)試控制臺。除了提供典型的控制臺之外,串行控制臺在許多其他情況下也很有用,包括為不同的啟動映像(Linux內(nèi)核映像)選擇菜單條目的功能,以及訪問沒有鍵盤、鼠標、網(wǎng)絡或顯示器的設備。本節(jié)以通過J44上的UART接口將PC計算機連接到JETSONNano為例,介紹UART接口功能。
運行查看串口的命令時,如果出現(xiàn)無法找到ttyTHS2的問題,可以將系統(tǒng)的設備樹文件進行反編譯,使能ttyTHS2后再重新編譯。注意:下面的命令如果操作不當可能會引起系統(tǒng)無法啟動。
要在確保JETSONNano未通電的情況下按如下方式接線,如圖3.14所示。圖3.14JETSONNano的UART接線圖
2)?I2C接口
I2C是一種簡單的串行協(xié)議,用于單個器件內(nèi)的短距離通信。通常有兩條連接線,一條串行數(shù)據(jù)線(SDA),另一條串行時鐘線(SCL),但大多數(shù)器件還需要電源(VCC)和地(GND)。NVIDIAJETSON開發(fā)板可以通過GPIO接口訪問I2C總線0和12C總線1。
安裝ServoKit庫并設置I2C和GPIO權限,以便可以從用戶空間運行程序,添加GPIO權限以支持底層JETSON.GPIO庫。群組更改在登錄前不會生效,必須注銷/登錄或重新啟動計算機才能使更改生效。
(1)單電機角度伺服。
值得注意的是,在連接JETSON平臺之前,要確保斷開電源。因為插入電源后,即使處理器本身處于關閉狀態(tài),接口上的電源和地也始終處于工作狀態(tài)。
值得注意的是,在連接JETSON平臺之前,要確保斷開電源。因為插入電源后,即使處理器本身處于關閉狀態(tài),接口上的電源和地也始終處于工作狀態(tài)。
J41引腳3(SDA)→PCA9685SDA;
J41引腳5(SCL)→PCA9685SCL;
J41引腳1(3.3V)→PCA9685VCC;
J41引腳6(CND)→PCA9685GND。
(2)雙電機云臺單獨控制。
關閉并拔下JETSONNano電源后,連接PCA9685進行雙電機云臺伺服控制,通過I2C總線0連接伺服電機的接線方式如下:
J41引腳27(SDA)→PCA9685SDA;
J41引腳28(SCL)→PCA9685SCL;
J41引腳1(3.3V)→PCA9685VCC;
J41引腳6(GND)→PCA9685GND。
3.2.3JETSON平臺開發(fā)板接口
JETSON開發(fā)板及應用套件的研發(fā),能夠為行業(yè)用戶提供低成本高可靠的產(chǎn)品級解決方案,擺脫硬件平臺搭建的風險,讓他們?nèi)W脤用娴拈_發(fā),快速推出面向特定應用市場的整體解決方案。
1.?JETSONTX1/TX2擴展開發(fā)板
1)瑞泰新時代(北京)公司RTSO-9001開發(fā)板
RTSO-9001是一款搭配JETSONTX1/TX2核心模塊的低成本、小體積開發(fā)板,包括上下堆棧兩塊板卡。開發(fā)板長、寬尺寸與JETSONTX1/TX2模塊相當,適合緊湊型部署需求;面向工業(yè)部署應用,其主要接口進行了靜電安全保護設計;采用了高可靠性的電源應用方案,具有豐富的對外接口,全板器件采用寬溫型號。產(chǎn)品接口及說明如表3.3所示。
RTSO-9001開發(fā)板的外觀如圖3.15所示。RTSO-9001開發(fā)板的外觀如圖3.15所示。
2)瀝拓科技(深圳)有限公司LEETOP-A300開發(fā)板
LEETOP-A300是一個高性能、尺寸小、接口豐富的JETSONTX1/TX2開發(fā)板,開發(fā)板大小與JETSONTX1/TX2模塊一致,提供USB3.0、千兆以太網(wǎng)、HDMI2.0、USB2.0、UART、GPIO、I2C、CAN、風扇等接口。LEETOP-A300開發(fā)板的外觀如圖3.16所示。
圖3.16LEETOP-A300開發(fā)板外觀
該產(chǎn)品的其他接口及說明如表3.4所示。
3)?Auvidea公司J121開發(fā)板
JI21開發(fā)板將JETSONTX2計算模塊轉(zhuǎn)變?yōu)槌⌒陀嬎銠C,用于桌面使用或者集成到機器人和無人機中。JI21與JETSONTX2具有相同的高度,并延伸到一側(cè),為千兆以太網(wǎng)、兩個USB3.0和迷你HDMI的標準連接器騰出空間;具有一個M.2型M插槽,用于超快速SSD(2280mm外形尺寸),通過4個PCIe通道連接,實現(xiàn)高達2500?Mb/s的讀寫性能。該產(chǎn)品的其他接口及說明如表3.5所示。
J21開發(fā)板的外觀如圖3.17所示。圖3.17J21開發(fā)板外觀
2.?JETSONNano擴展開發(fā)板
1)瑞泰新時代(北京)公司RTSO-6001開發(fā)板
RTSO-6001是針對Nano的工業(yè)級開發(fā)板,工作溫度為-40~+80℃,低功耗,安全級別高,可滿足各種苛刻條件。該產(chǎn)品的接口及說明如表3.6所示。
RTSO-6001開發(fā)板的外觀如圖3.18所示。圖3.18RTSO-6001開發(fā)板外觀
EETOP-A200是一個高性能、接口豐富的JETSONNano開發(fā)板,提供了HDMI2.0、千兆以太網(wǎng)、USB3.0、USB2.0、M.2Wi-Fi/BT、CSICAMERA、SATA、Mini-PCIe/mSATA、UART232串口、SIM卡、GPIO、I2C、I2S風扇等豐富的外圍接口,搭載科大訊飛專門為JETSONNano設計的麥克風陣列、慣導模塊等外部設備。LEETOP-A200開發(fā)板的外觀如圖3.19所示。LEETOP-A200接口及說明見表3.7。
圖3.19LEETOP-A200開發(fā)板的外觀
3)?Auvidea公司JN30開發(fā)板
JN30專為JETSONNano設計,將Nano計算模塊轉(zhuǎn)變?yōu)槌売嬎銠C。JN30支持輕松自動閃存(USBOTG電纜)和高性能存儲(M.2NVMEPCIe×4)。JN30接口及說明見表3.8。
3.?JETSONXavier擴展開發(fā)板
1)瀝拓科技(深圳)有限公司LEETOP-A501開發(fā)板
LEETOP-A501開發(fā)板主要應用于物流行業(yè)中具有陸運貨車裝卸口的、需要計算機視覺分析的場地,如中轉(zhuǎn)場、重貨、網(wǎng)點、快遞、零擔(運輸)、冷運裝卸口、商超裝卸口、港口裝卸口、海關裝卸口、鐵路運輸裝卸口,以及具有行為檢測需求的幼兒園、工廠、銀行等。LEETOP-A501開發(fā)板的外觀如圖3.20所示。
圖3.20LEETOP-A501開發(fā)板外觀
LEETOP-A501開發(fā)板的主要端口及說明見表3.9。
2)?Auvidea公司X200開發(fā)板
X200是JETSONAGXXavier的首款開發(fā)板,其特點是以透明的方式利用計算模塊的所有接口,給出了5個PCIe插槽上的所有PCIe接口,其他接口包括USB2.0、USB3.0、2?×USB-C、2個HDMI、2個CAN、8個CSI-2、GPIO、GbE、UART,電源輸入為12~48?V,擁有9個基于PCIe的千兆以太網(wǎng)(GbE)接口,可連按9個GigE攝像頭,用于多攝像頭應用。每個GbE接口都是本機連接的,并提供最大的數(shù)據(jù)傳輸速率。X200開發(fā)板的外觀如圖3.21所示。
圖3.21X200開發(fā)板外觀
3.3JETSON平臺軟件資源介紹
3.3.1JETSON平臺的架構JETSONSDK平臺中涵蓋的軟件開發(fā)資源及依賴關系如圖3.22所示。
圖3.22JETSONSDK平臺中涵蓋的軟件開發(fā)資源及依賴關系
這套開發(fā)工具包括:
(1)?CUDA(ComputeUnifiedDeviceArchitecture):一種由NVIDIA推出的通用并行計算架構和編程模型,能使GPU解決復雜的計算問題。
(2)?cuBLAS(CUDABasicLinearAlgebraSubroutines):CUDA專門用來解決線性代數(shù)運算的庫,可以實現(xiàn)向量相乘、矩陣乘向量、矩陣乘矩陣等運算。
(3)?cuFFT(CUDAFastFourierTransform):CUDA提供的封裝的FFT庫,還提供了與CPU的FFT庫相似的接口,讓用戶能夠輕易地挖掘GPU強大浮點處理能力,不需要用戶自己實現(xiàn)專門的FFT內(nèi)核函數(shù)。
(4)?cuDNN(CUDADeepNeuralNetworklibrary),是NVIDIA專門針對深度神經(jīng)網(wǎng)絡中的基礎操作推出的庫,為深度神經(jīng)網(wǎng)絡中的標準流程提供了高度優(yōu)化的實現(xiàn)方式,如convolution、pooling、normalization及activationlayers的前向及后向過程。
(5)?TensorRT(TensorRuntime):一個高性能的深度學習推理引擎,用于在生產(chǎn)環(huán)境中部署深度學習應用程序,應用包括圖像分類、分割和目標檢測等。TensorRT可提供最大的推理吞吐量和效率,用戶無須安裝并運行深度學習框架。
(6)?VisionWorks:一個用于計算機視覺和圖像處理的軟件開發(fā)包,實現(xiàn)并擴展了KhronosOpenVX標準,并對支持CUDA的GPU和片上系統(tǒng)(SoC)進行了優(yōu)化,使開發(fā)人員能夠在可伸縮的、靈活的平臺上實現(xiàn)計算機視覺(ComputerVision,CV)應用。
(7)?OpenCV(OpenComputerVision):一個跨平臺計算機視覺庫,可以運行在Linux、Windows、Android和MacOS操作系統(tǒng)上,可以實現(xiàn)圖像處理和計算機視覺方面的很多通用算法。OpenCV4Tegra是NVIDIA專為Tegra平臺優(yōu)化的一個OpenCV版本。
(8)?OpenGL(OpenGraphicsLibrary):一個跨編程語言、跨平臺的專業(yè)圖形程序接口,可用于二維/三維圖像處理,是一個功能強大、調(diào)用方便的底層圖形庫。
(9)?libargus:為攝像機應用程序提供了低級幀同步應用編程接口(ApplicationProgrammingInterface,API)、每幀攝像機參數(shù)控制、多個/同步攝像機支持和設備說明表(EquipmentGuideList,EGL)流輸出。
(10)?GStreamer:用來構建流媒體應用的開源多媒體框架,其目標是簡化音/視頻應用程序開發(fā),主要用來處理MP3、MPEG1(MPEG組織制定的第一個視頻和音頻有損壓縮標準)、MPEG2、AVI(音頻視頻交錯格式)、Quicktime等多種格式的多媒體數(shù)據(jù)。
3.3.2基于Tegra核心的Linux系統(tǒng)
JETSON平臺使用的是NVIDIA公司推出的Tegra處理器。Tegra處理器是采用單片機系統(tǒng)設計的SoC(SystemonChip)芯片,集成了ARM架構處理器和NVIDIA的GeForceGPU,面向便攜設備提供高性能、低功耗體驗。在Tegra芯片上運行的是Linux內(nèi)核,采用U-Boot(UniversalBootLoader)來實現(xiàn)系統(tǒng)引導。在Linux內(nèi)核上,Jetpack采用Ubuntu桌面系統(tǒng),目前最新版本的Jetpack已經(jīng)集成了Ubuntu18.04。此外,Jetpack還集成了BusyBox,包括了300多個最常用Linux命令和工具軟件,并結(jié)合相關硬件的外部設備重新編譯內(nèi)核,稱之為Linux4Tegra,簡稱L4T。
1.從操作系統(tǒng)到Ubuntu
操作系統(tǒng)(OperatingSystem,OS)是管理和控制計算機硬件與軟件資源的計算機程序,是直接運行在“裸機”上的最基本的系統(tǒng)軟件,其他任何軟件都必須在操作系統(tǒng)的支持下才能運行。操作系統(tǒng)并不是與計算機硬件一起誕生的,它是在人們使用計算機的過程中,為了滿足兩大需求——提高資源利用率和增強計算機系統(tǒng)性能,同時隨著計算機技術本身及其應用的日益發(fā)展而逐步形成和完善起來的。
Linux是個人操作系統(tǒng)的另一個分支中的杰出之作,它是一種類UNIX操作系統(tǒng),和Windows系統(tǒng)相比,有以下幾個優(yōu)點:
(1)自由與開放。
(2)配置需求低。
(3)內(nèi)核強大且穩(wěn)定。
(4)適合于嵌入式系統(tǒng),
2.常用的Linux操作命令
在Linux系統(tǒng)里,大部分在圖形界面下可以完成的操作都可以在Terminal應用界面通過鍵入相應的命令行來實現(xiàn)。特別地,對于JETSON平臺的程序開發(fā)人員來說,大多數(shù)操作也都是在Terminal應用界面中完成的。Terminal應用的運行界面如圖3.23所示。
圖3.23Terminal應用的運行界面
下面針對不同的場景介紹Ubuntu系統(tǒng)中的常用命令。
1)文件/文件夾管理常用命令
(1)?pwd命令是“PrintWorkingDirectory”的簡寫,指令內(nèi)容顯示當前工作目錄的路徑,在Terminal界面的使用格式為:
$pwd
(2)cd命令是“ChangeDirectory”的簡寫,指令內(nèi)容是進入到指定目錄下,其參數(shù)是指定目錄相對于當前目錄的路徑,在Terminal界面中的使用格式為:
$cd<文件夾相對路徑>
cd命令后面的參數(shù)還支持一些特殊的指代符號,如進入當前目錄的上一級目錄:
(3)?ls命令是“List”的簡寫,指令內(nèi)容是列出指定目錄下的文件/文件夾,在Terminal界面中的使用格式為:
$ls<文件夾相對路徑>
①后綴“-l”參數(shù),會列出文件/文件夾的詳細信息,具體包括文件類型、所有者/所有者權限、組用戶權限、其他用戶權限、鏈接數(shù)/子目錄數(shù)、用戶名、組名、文件大小、最后修改時間和文件名。
②后綴“-lh”參數(shù),會將列出的文件大小以K、M、G的格式顯示,更便于查看。
(4)?mkdir命令是“MakeDirectory”的簡寫,指令內(nèi)容是創(chuàng)建指定名稱的文件夾,在Terminal界面中的使用格式為:
$mkdir<文件夾名稱>
(5)?cp命令是“Copy”的簡寫,指令內(nèi)容是將原始路徑的文件復制到目標路徑。這個命令可以在復制文件的同時修改文件名,在Terminal界面中的使用格式為:
$cp<原始路徑><目標路徑>
①后綴“-i”參數(shù),可以在覆蓋目標文件之前給出提示,要求用戶確認。
②后綴“-r”參數(shù),會將源目錄下的所有文件夾及文件夾下的文件復制到目標目錄下。
(6)?mv命令是“Move”的簡寫,指令內(nèi)容是將原始路徑的文件移動到目標路徑。這個命令也可用于(在移動文件的同時)修改文件名,在Terminal界面中的使用格式為:
$mv<原始路徑><目標路徑>
(7)?rm命令是“Remove”的簡寫,指令內(nèi)容是刪除指定的文件。該命令支持常見的通配符,在Terminal界面中的使用格式為:
$rm<文件名>
①后綴“-r”參數(shù),可以刪除指定目錄下的所有文件和文件夾(包括子文件夾)。
②后綴“-f”參數(shù),可以實現(xiàn)強制刪除。
【注意】“rm-rf*”是非常危險的命令,謹慎使用!
2)應用安裝常用命令
目前,Linux系統(tǒng)下最常用的應用程序管理器是AdvancedPackageTool,簡稱apt。apt應用程序管理器最初于1998年發(fā)布,用于檢索應用程序并將其加載到DebianLinux系統(tǒng)。apt成名的原因之一在于其出色的解決軟件依賴關系的能力,使用apt可以自動從互聯(lián)網(wǎng)的多個軟件倉庫中搜索、安裝、升級、卸載軟件或操作系統(tǒng)。
apt命令一般需要root權限執(zhí)行,所以都會結(jié)合sudo命令使用。下面介紹apt命令的一些常用選項及相關功能。
(1)?update選項可以更新安裝源,在Terminal界面中的使用格式為:
$sudoaptupdate
(2)?upgrade選項可以升級所有可升級的軟件包,在Terminal界面中的使用格式為:
$sudoaptupgrade
一般在第一次運行aptupdate命令之后,就會運行aptupgrade命令。
(3)?install選項可以安裝指定的軟件包。
install選項結(jié)合參數(shù)“-y”使用,可以在命令行交互式提示“[Y/N]”時自動輸入“y”;如果結(jié)合參數(shù)“-no-install-recommends”使用,則可以避免安裝非必需的文件。在Terminal界面中的使用格式為:
在使用apt命令時,偶爾會遇到“E:Couldnotgetlock/var/lib/dpkg/lock”“E:Couldnotget/var/lib/dpkg/lock-frontend”“E:Couldnotget/var/cache/apt/archives/lock”等錯誤,這是由于用戶上一次調(diào)用apt命令時沒有正確退出,系統(tǒng)還鎖定著apt進程,以避免同時運行兩個apt進程而導致沖突。因此,在實際操作時,用戶應首先確認沒有其他的apt進程正在工作,然后使用rm命令將相應的lock文件刪除,就可以正常使用apt命令。
rm命令使用格式為:
【注意】此時使用rm命令千萬不要帶“-r”參數(shù),以免操作不慎將“dpkg”目錄或其他目錄刪除。
(9)?dpkg命令可以實現(xiàn).deb格式軟件包的安裝及卸載。
①后綴“-i”參數(shù),可以實現(xiàn).deb格式軟件包的安裝。
②后綴“-r”參數(shù),可以實現(xiàn).deb格式軟件包的卸載。
dpkg命令在Terminal界面中的使用格式為:
$sudodpkg-i<安裝包文件名>.deb
$sudodpkg-r<軟件包名稱>
3)其他常用命令
(1)?tar命令可以實現(xiàn)對指定的文件/文件夾進行打包或解包的功能,可選是否壓縮。
①后綴“-c”參數(shù),實現(xiàn)打包功能。
②后綴“-x”參數(shù),實現(xiàn)解包功能。
③后綴“-z”參數(shù),實現(xiàn).gzip格式的壓縮/解壓功能。
④后綴“-f”參數(shù),指定文件名,這個參數(shù)必須放在最后。
(4)?find命令在指定路徑下查找文件。
①后綴“-name”參數(shù),指定要查找的文件名,文件名中支持通配符。
②后綴“-iname”參數(shù),表示忽略文件名中的大、小寫。
③還可以后綴各種不同的參數(shù),實現(xiàn)指定文件更新時間、文件類型等功能。
find命令在Terminal界面中的使用格式為:
$find<路徑>-name<文件名>
還有一些常用的信息查詢命令,在此就不一一具體說明了,可以參見表3.10。
3.3.3基于CUDA的智能計算平臺
1.?CUDA簡介
20世紀90年代,NVIDIA的第一個通用計算圖形處理單元(GPU)被設計成圖形加速器,它提供了可編程的功能,GPU出色的浮點性能很快被應用于通用計算。2003年,由伊恩·巴克(IanBuck)領導的一組研究人員公布了Brook,這是第一個被廣泛采用的編程模式,它使用數(shù)據(jù)并行結(jié)構擴展了C語言。伊恩·巴克后來加入了NVIDIA,并在2006年發(fā)布了由他領導的CUDA,這是世界上第一個基于GPU的通用計算解決方案。
GPU并不是一個獨立運行的計算平臺,它需要與CPU協(xié)同工作,也可以看成是CPU的協(xié)處理器,因此說GPU的并行計算其實就是指基于CPU+?GPU的異構計算架構(見圖3.24)。在這個異構計算架構中,GPU與CPU通過PCIe總線連接在一起協(xié)同工作,CPU所在位置稱為主機端(host),GPU所在位置稱為設備端(device)。
圖3.24基于CPU+GPU的異構計算框架
典型的CUDA程序的執(zhí)行流程如下:
①分配host內(nèi)存,進行數(shù)據(jù)初始化;
②分配device內(nèi)存,從host將數(shù)據(jù)拷貝到device上;
③調(diào)用CUDA的核函數(shù),在device上完成指定的運算;
④將device上的運算結(jié)果拷貝到host上;
⑤釋放device和host上分配的內(nèi)存。
要想深刻理解核函數(shù),就必須詳細了解核函數(shù)的線程層次結(jié)構。GPU上有很多并行化的輕量級線程,核函數(shù)在device上執(zhí)行時實際上是啟動了很多個線程(thread)。一個核函數(shù)啟動的所有線程稱為一個網(wǎng)格(grid),同一個網(wǎng)格上的線程共享相同的全局內(nèi)存空間,網(wǎng)格是線程結(jié)構的第一個層次;其次,網(wǎng)格又可以分為很多線程塊(Block),一個線程塊包含了很多線程,線程塊是線程結(jié)構的第二個層次。核函數(shù)上的兩層線程組織結(jié)構如圖3.25所示。
圖3.25核函數(shù)上的兩層線程組織結(jié)構(二維)
2.?CUDA的內(nèi)存模型
CUDA的內(nèi)存模型如圖3.26所示。圖3.26CUDA的內(nèi)存模式
GPU硬件的一個核心組件是SM,SM的核心組件包括CUDA核心、共享內(nèi)存和寄存器等。SM的并發(fā)能力取決于SM擁有的資源數(shù),可以并發(fā)地執(zhí)行數(shù)百個線程。當一個核函數(shù)被執(zhí)行時,其網(wǎng)格中的線程塊被分配到SM上。一個線程塊只能在一個SM上被調(diào)度,而SM則可以調(diào)度多個線程塊,調(diào)度線程塊的數(shù)量取決于SM自身的能力。還有可能是一個核函數(shù)的各個線程塊被分配到多個SM上,所以網(wǎng)格只是邏輯層,而SM才是執(zhí)行的物理層。CUDA編程的邏輯層和物理層如圖3.27所示。
圖3.27CUDA編程的邏輯層和物理層
基于JETSON平臺的實際開發(fā)中,很多時候用戶并不需要編寫底層的CUDA核函數(shù)。因為NVIDIA在CUDA的基礎上,還提供了cuBLAS、cuFFT和cuDNN等運行庫,這些運行庫相當于對CUDA又做了一層封裝,用戶只需對這些運行庫提供的函數(shù)進行調(diào)控就可以完成計算任務。
3.3.4基于DeepStream的智能視覺平臺
1.?DeepStream簡介
視頻是當下最常見的傳感器數(shù)據(jù)之一。2020年,全球啟用的攝像頭數(shù)量達10億,這是一個難以置信的原始傳感器數(shù)據(jù)量,可利用攝像頭和流數(shù)據(jù)分析構建一些功能強大的應用,如機場的入境管理、制造中心和工廠的生產(chǎn)線管理、停車管理和客流分析等,這對構建智慧城市是很重要的。另外,利用視頻分析可以讓人們具備更全面的洞察力。
以上這些以往需要開發(fā)人員逐步去實現(xiàn)的步驟,DeepStream可以一站式解決。DeepStream是基于NVIDIA運行的工具,主要應用于視覺整個流程的解決方案。它與其他視覺庫(如OpenCV)的區(qū)別在于,DeepStream建立了一個完整的端到端的支持方案,換句話說,用戶的源無論是Camera、Video還是云服務器上的視頻,從視頻的編、解碼到后臺的圖像推理,再到展示,對這一完整流程上的各個細節(jié),DeepStream都能起到輔助的作用。在這個流程中,用戶只需加上自己的內(nèi)容,比如,視頻檢索需要訓練一個模型用于識別或檢測視頻中的人臉,只需將人臉識別和人臉檢測的相關模型添加到方案中即可,對于設置視頻源的完整流程,DeepStream可自動完成。
2.?DeepStream的核心組件
DeepStream是一個建立在GStreamer基礎上的軟件開發(fā)工具包(SDK),而GStreamer是一個開源的多媒體分析框架,由幾個核心組件組成。GStreamer底層(第一個層次)最基本的單元是插件(plug-ins)。GStreamer支持很多種不同的插件,每個插件都具有自己特定的功能。例如,第一個插件從數(shù)據(jù)源接收數(shù)據(jù),并解碼原始數(shù)據(jù)幀中的像素,再將數(shù)據(jù)發(fā)送給第二個插件;第二個插件做圖像縮放處理,然后將數(shù)據(jù)發(fā)送給下一個插件。這些最基本的插件是基于GStreamer的基本功能塊。
GStreamer第二個層次的基本單元是功能箱(bin)。在GStreamer和DeepStream里,其功能箱包含了很多功能塊,許多功能塊一起工作來完成某種具體的功能。GStreamer第三個層次實際上是一種總線,一種基于GStreamer或DeepStream的管理數(shù)據(jù)流動和同步的總線。
GStreamer為應用程序和管道之間的通信和數(shù)據(jù)交換提供了4種機制:第一種交換機制其本質(zhì)是緩沖區(qū),負責在插件之間傳遞流數(shù)據(jù)。在管道中,緩沖區(qū)將數(shù)據(jù)從視頻文件傳遞到解碼器,再傳遞到縮放插件,再傳遞到過濾器插件,最終傳遞到顯示插件。第二種交換機制叫作事件(event),用于在GStreamer框架中多個插件之間傳遞信
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 施工安全協(xié)議書模板
- 2025年度棗樹種植與現(xiàn)代農(nóng)業(yè)園區(qū)建設合同4篇
- 行業(yè)間對于展會安全管理知識的普及推廣
- 網(wǎng)絡安全背景下學生行為規(guī)范的強化措施
- 科技助力孩子藝術成長現(xiàn)代教學方法與實踐
- 二零二五年度車輛擔保質(zhì)押投資合作合同4篇
- 2025版施工安全協(xié)議書:裝配式建筑安全協(xié)議范本3篇
- 維護策略在實驗室設備長期運行中的重要性
- 二零二五年度車牌租賃與車輛租賃信用評估合同4篇
- 巖棉防火技術在現(xiàn)代建筑中的應用研究
- 人教版數(shù)學四年級下冊核心素養(yǎng)目標全冊教學設計
- JJG 692-2010無創(chuàng)自動測量血壓計
- 三年級下冊口算天天100題(A4打印版)
- 徐州市2023-2024學年八年級上學期期末地理試卷(含答案解析)
- CSSD職業(yè)暴露與防護
- 飲料對人體的危害1
- 數(shù)字經(jīng)濟學導論-全套課件
- 移動商務內(nèi)容運營(吳洪貴)項目三 移動商務運營內(nèi)容的策劃和生產(chǎn)
- 中考記敘文閱讀
- 產(chǎn)科溝通模板
- 2023-2024學年四川省成都市小學數(shù)學一年級下冊期末提升試題
評論
0/150
提交評論