深度相機對機器人世界至關重要,現在有不同的形狀和框架。為了在現實世界中尋找物體或路徑,機器人需要對周圍環境有感知。這些相機中的大多數使用兩個具有一定距離的相機并進行大量處理以從這兩個 2D 捕獲的視頻中創建一個 3D 世界。在大多數情況下,原始捕獲的視頻需要傳遞給其他模塊用于不同的目的——這是大多數現有深度相機模塊所缺少的部分之一。在本文中,我們將介紹 Qualcomm 的 Snapdragon 820 作為實時深度攝像頭的解決方案,同時不會丟失雙攝像頭系統的基本功能。
高通的 Snapdragon 820 是其系列中功能更強大的 SoC 之一。該 SoC 有一個八核 ARM CPU 作為應用處理器,可與一些子系統(如 GPU、DSP、RPM 等)配合使用。Hexagon DSP 是一個功能強大的 DSP,具有多個硬件線程、數據包指令、L1 和 L2 緩存,以及對外圍設備和雙倍數據速率 (DDR) 的訪問,例如應用處理器 Qualcomm (APQ) 和超長指令字 (VLIW)。在 820 中,使用了該結構的版本 6。在這個新結構中,提供了一個可以處理 1024 位向量的 Hexagon Vector eXtension (HVX) 協處理器。
您可以利用 HVX 進行高分辨率圖像處理。Snapdragon 820 提供的其他功能之一是能夠將定制模塊添加到圖像信號處理 (ISP) 管道(圖 1)。
【圖1 | ISP中的HVX模塊]
在 ISP 管道中擁有一個自定義模塊將讓用戶在將圖像傳遞給 ISP 中的其他模塊之前對其進行處理。該模塊的輸入是拜耳和非拜耳格式,輸出為拜耳格式。該模塊可以直接訪問DDR,處理結果可以實時提供給高級操作系統(HLOS)。
Snapdragon 820 有兩個 ISP,并且兩個管道都可以包含定制的圖像處理模塊。換句話說,如果您將兩臺相機連接到 820,您可以為每臺相機單獨定制圖像處理。如果用戶想為兩個自定義圖像處理模塊使用 HVX 模塊,他們可以使用 512 位矢量。使用定制的圖像處理模塊將使 Hexagon 處于特定模式,該模式將為每個定制的圖像處理模塊分配兩個特定的硬件線程(圖 2)。
【圖2 | HVX模塊和HT]
加工結構
出于我們的目的,我們使用了兩個具有相同分辨率的相機,它們排列在一個固定的夾具中。這意味著我們知道兩個相機之間的重疊程度。我們使用如圖 3 所示的處理管道。
【圖3 | 處理塊]
使用神經網絡解決方案(圖 1),我們可以使用 HVX 模塊同時對兩個相機圖像進行邊緣檢測過程。一個相機上的邊緣檢測圖像使用反饋指針傳遞給另一個相機。然后,使用 SAD 算法對這兩個圖像進行處理。結果將在 DDR 中用于與 HLOS 共享。如前所述,相機的位置和對齊方式是固定的,可用于找到兩個捕獲圖像的重疊部分。如果不是這種情況,那么我們需要在整個過程中添加重疊檢測模塊。
實驗
將兩個攝像機固定在一個靜態幀中,我們可以看到幀具有固定的重疊。
【圖4 | 兩個具有固定重疊和使用 NN 的相關邊緣檢測的相機的視圖]
在兩個相關幀上使用 SAD 算法,并通過插值將數字轉換為灰度,我們得到了如圖 5 所示的結果。
【圖5 | 差異結果]
使用這種算法,我們可以達到 30 FPS 的全高清視頻,同時視頻可以無中斷地提供給 HLOS。
審核編輯:郭婷
-
機器人
+關注
關注
211文章
28524瀏覽量
207552 -
soc
+關注
關注
38文章
4182瀏覽量
218513 -
攝像頭
+關注
關注
60文章
4851瀏覽量
95923
發布評論請先 登錄
相關推薦
評論