本系列上一篇文章里,我們帶領大家體驗了視覺功能庫。在本篇文章中,我們將帶領大家安裝與調用攝像頭。
不管是 AI 深度學習或者 IOT 應用中,視覺處理都占據非常大的使用比例,而攝像頭更是使用率最高的數據源設備,本文就帶領大家為 Jetson Nano 2GB 安裝攝像頭,并且通過一些工具與簡單代碼,對攝像頭進行測試。
Jetson Nano 2GB 開發者套件支持 CSI 攝像頭、USB 攝像頭和網絡攝像頭。
本文主要針對入門者,所以重點放在 CSI 攝像頭與 USB 攝像頭這兩種比較合適的設備上,至于 GigE 這種復雜度較高的攝像頭,先不做說明。
如何為 Jetson Nano 2GB 選擇 CSI 或者 USB 攝像頭
在選擇攝像頭之前,我們可以通過以下網址查看:
https://www.elinux.org/Jetson_Nano#Cameras
這里列出了 NVIDIA 官方推薦的攝像頭型號。
一般來說 USB 接口攝像頭都是免驅支持,不多做說明。
但是 CSI 接口的攝像頭根據傳感器芯片的不同區別很大,不是任何一款 CSI 攝像頭都支持 Jetson Nano 產品,所以購買時一定要注意這個問題。目前在 Jetson Nano 上,開發者們常用的 CSI 攝像頭是樹莓派 V2 攝像頭(傳感器芯片是 IMX219)。
文章中,我們使用的就是以下這款:
【注意】CSI 攝像頭不支持即插即用,所以必須在開機前先裝上去,系統才能識別 CSI 攝像頭,如果開機之后再安裝,會導致 Jetson Nano 2GB 識別不出攝像頭,且有其他風險,因此請避免在開機狀態下安裝攝像頭。
安裝 CSI 攝像頭
Jetson Nano 2GB 有一個 CSI 攝像頭接口,位置與外觀如下圖。
安裝攝像頭排線之前,我們首先要拔起上面的插銷,請一定要特別小心,千萬別弄斷這個小塑料片,是會影響質保的。
安裝時注意排線方向。
有金手指(金屬針頭)的部分,必須面向 CSI 接口與攝像頭接口有排針的一面,并且謹慎地讓排線插到底,否則會有接觸不良的問題。最后輕輕扣上插銷,安裝完成!
檢測攝像頭
安裝好攝像頭后,我們需要檢測一下是否安裝正確。
我們為了演示,安裝了 1 個 CSI 攝像頭以及 2 個 USB 攝像頭:
最簡單的檢測指令如下:
如果攝像頭沒有問題,且安裝正確,這個指令會顯示目前安裝的攝像頭數量。如下截屏:
你會看到列出了單個設備,但是這樣的信息量太少,通常無法判斷到底哪個編號是哪個攝像頭。
要更進一步檢測攝像頭數量與詳細規格,就需要 v4l2-utils 這個工具協助,安裝方法很簡單,如下指令:
安裝完之后,可以用以下指令檢測比較完整的信息:
本例中執行這個命令后,會看到下面截屏信息,將三個攝像頭都列清楚:
這里就能非常清楚看到第一個(/dev/video0)屬于 imx219 規格(CSI)攝像頭,第二個(dev/video2)是 USB2.0 的攝像頭,接到 xusb-2(規格是 USB3)接口,第三個(/dev/video1)是 USB 攝像頭,接到 xusb-3.2 (規格是 USB2)接口,這樣就能一目了然知道哪個編號對應哪個攝像頭。
接下來還可以用這個指令,進一步檢測每個攝像頭的更細致規格,包括所支持的圖像種類、寬高、幀數等等,這些在后面使用代碼時很重要。
請執行以下指令,來看一下第一個 CSI 攝像頭的規格參數:
這里更精確地列出了這個攝像頭的細節參數,例如顯示的“RG10”就算代表這個攝像頭的數據格式,下面的“10-bit Bayer RGRG/GBGB”則是進一步說明這個格式使用的算法與通道對應的參數。
再下面的尺寸,例如 3264x2464,其下還有對應的 Interval 性能參數,表示所支持的分辨率,以及該分辨率的最高執行幀率,這樣的信息量才能夠幫助我們在后面開發應用時作為設定的依據。
其他的設備,請自行修改。
機器之心報道
編輯:張倩
Jetson Nano 還能這么用?
近年來,基于深度學習的神經解碼器已成為實現神經假肢靈巧、直覺控制的主要方法。人類甚至已經設想出了這種假肢在醫學領域的廣泛應用圖景。
然而,由于深度學習對計算的要求很高,很少有研究將其應用于臨床。邊緣計算設備的發展為解決這一問題提供了可能。
在一篇新論文中,來自明尼蘇達大學等機構的研究者提出了一種基于嵌入式深度學習控制的神經假肢實現。該研究中的神經解碼器基于 RNN 架構設計,部署在 NVIDIA Jetson Nano 上。NVIDIA Jetson Nano 擁有不錯的 AI 算力,但體格非常小巧,這使得假肢安裝者可以實時控制每一根手指,同時還能自由移動。
研究者利用外周神經信號在橈骨截肢的志愿者身上評估所提出的系統。實驗結果顯示,無論是在實驗室還是真實環境下,該系統都能提供魯棒、準確(95-99%)、低延遲(50-120 毫秒)的單個手指控制。
研究者表示,據他們所知,該系統是第一個在臨床神經假肢應用的便攜式平臺上有效實現深度學習神經解碼器的系統。這種新型假肢系統擁有嵌入式人工智能,可以作為新型可穿戴生物醫學設備的基礎,有助于加快深度神經網絡在臨床應用中的部署。
論文鏈接:https://arxiv.org/pdf/2103.13452.pdf
這一成果離不開之前研究取得的進展,包括 Overstreet 等人 2019 年提出的連接神經纖維和生物電子系統的神經束內微電極陣列;Nguyen 等人 2020 年設計的能同時展開神經記錄和刺激的 Neuronix 神經接口微芯片;Luu 等人 2021 年提出的降低解碼器計算復雜度的深度學習電機解碼范式優化;以及 SOTA 邊緣計算平臺的軟硬件實現等。
系統概覽
下圖展示了研究者提出的神經假肢神經解碼器的大體構造:
該系統包含 Scorpius 神經接口、帶有定制載板的 Jetson Nano、定制的手臂控制器以及一個可多次充電的鋰電池。
下圖是該系統的原型圖。AI 引擎重 90 克,鋰電池(7.4V,2200mAh)重 120 克。在實際應用中,整個系統都可以集成到假肢內部,替代假肢現有的 ENG 傳感器和電子設備,因此對手臂的重量和美感影響極小。
神經數據是通過研究者之前提出的 Scorpius 神經接口獲得的。每個 Scorpius 設備有 8 個記錄通道,配有頻率整形(FS)放大器和高精度模數轉換器(ADC)。根據需要的通道數量,可以配置多個設備。FS 神經記錄器被證明能夠在抑制 artifact 的同時獲得超低噪聲神經信號。原始的神經數據會直接傳輸到 Jetson Nano 電腦進行進一步處理。
該系統的核心是由Jetson Nano 平臺支撐的 AI 引擎。研究者設計了一個定制的載板為 Nano 模塊提供電源管理和 I/O 連接。該模塊可工作在 10W 模式 (4 核 CPU 1900 MHz,GPU 1000 GHz) 或 5W 模式 (2 核 CPU 918 MHz,GPU 640 MHz) 下,按當前電池尺寸,可分別連續使用 2 小時和 4 小時左右。
在這個系統中,訓練好的深度學習模型被部署到 AI 引擎上,實時地將神經信號轉化為個體手指運動的真實意圖。最后的預測被發送到手部控制器來驅動假手。
這個假手是基于英國科技公司 Touch Bionics 的 i-Limb 假肢平臺設計的,有五個單獨驅動的手指。研究者用定制的手部控制器替換了原來的 i-Limb 默認驅動器,從而根據深度學習模型的預測,直接操作隱藏在每根手指中的直流電機。該控制器是圍繞 ESP32 模塊設計的,帶有一個低功耗微控制器。
下圖 3 更詳細地展示了各個組件的硬件實現:
關于該研究的更多細節可以參考原論文。