得益於卓越的深度運算和紅外線(IR)成像能力,飛時測距(ToF)攝影機在工業應用,尤其是機器人領域越來越受歡迎。儘管具有這些優勢,但光學系統的固有複雜性往往會造成視野的侷限,進而限制獨立功能。本文討論的3D圖像拼接演算法專為支援主機處理器而設計,無需雲端運算。該演算法將來自多個ToF攝影機的紅外線和深度資料即時無縫結合,產生連續的高品質3D圖像,該圖像具有超越獨立單元的擴大視場。借助拼接的3D資料,應用先進的深度學習網路將能徹底改變視覺化及與3D環境的交互,使得深度學習網路在移動機器人應用中特別具價值。
飛時測距(ToF)攝影機能夠作為卓越的測距成像系統,主要視利用ToF技術來確定攝影機與圖像中每個點之間的距離。透過測量雷射或LED發射的人造光訊號的往返時間,便可計算出距離。ToF攝影機提供精準的深度資訊,因此在準確距離測量和3D視覺化十分重要的相關應用,例如在機器人和工業技術應用中,該攝影機是極具價值的工具,例如能夠在270°的視野(FOV)範圍執行碰撞檢測和人體檢測,進而提高安全性。
ADTF3175 ToF感測器的校準FOV可達到75°。然而,當應用的FOV超出該區域時,便出現了挑戰,而此時就需要多個感測器。如果透過整合各個感測器的資料來為整個視野提供全面的分析可能會造成困難。一個潛在的解決方案,是讓感測器對部分FOV執行演算法,然後將輸出傳輸至主機以進行整理。然而,該方法面臨區域重疊、死區和通訊延遲等問題,導致其成為很難有效解決的複雜問題。
另一種方法是將從所有感測器獲取的資料拼接成單個圖像,隨後在拼接的圖像上應用檢測演算法。該過程可卸載至單獨的主機處理器,進而減輕感測器單元的計算負荷,留出空間執行進階分析和其他處理選項。然而,值得注意的是,傳統圖像拼接演算法本身非常複雜,會消耗主機處理器相當一部分的運算能力。此外,由於隱私原因,在許多應用中,資料無法發送到雲端進行拼接。
ADI 演算法解決方案可使用深度資料的點雲投影拼接來自不同感測器的深度和紅外線圖像。這包括使用攝影機外部位置轉換所擷取的資料,並將其投影回2D空間,進而產成單張連續顯示的圖像。
該方法能夠大幅減少運算量,有助於在邊緣達到即時運行的速度,並確保主機處理器的運算能力仍可用於其他進階分析。
ADI的3D ToF解決方案分4個階段運行(圖一):1.預處理紅外線和深度數據:紅外和深度資料的時間同步及預處理;2.將深度資料投影到3D點雲:利用攝影機內參將深度資料投影到3D點雲;3.轉換和合併點:使用攝影機的外部位置對點雲進行座標轉換,合併並重疊區域;4.將點雲投影到2D圖像:採用圓柱投影將點雲投影回到2D圖像。
系統與演算法的挑戰及解決方案
主機接收深度和 IR Frames
主機透過USB等高速連接方式連接到多個ToF感測器。主機收集深度和IR Frames,並將其儲存在佇列中。
同步深度和IR Frames
主機接所收到來自每個感測器的深度和IR Frames在不同時間實例被擷獲。為了避免因物體移動而造成的時間不匹配,所有感測器的輸入需要同步到同一時間實例。此時可使用時間同步器模組,該模組將根據來自佇列的時間戳記匹配傳入的幀。
投影到點雲
透過使用每個感測器的同步深度資料,在主機上產生點雲。然後,每個點雲根據其各自在真實場景中的攝影機位置(圖二)進行轉換(平移和旋轉)。接著,這些轉換後的點雲合併形成單個連續點雲,覆蓋感測器的組合FOV(圖三)。
3D到2D投影
透過使用圓柱投影演算法,也稱為前視圖投影,FOV的組合點雲投影到2D畫布上(圖四)。換言之,該演算法將合併點雲的每個點投影到2D平面的像素上,進而產生單一連續全景圖,覆蓋所有感測器的組合視野。這會產生兩個2D拼接圖像:一個用於拼接的紅外圖像,另一個用於投影到2D平面的拼接深度圖像。
提升投影品質
將3D組合點雲投影到2D圖像仍無法產生高品質圖像。圖像存在失真和雜訊。這不僅影響視覺品質,對投影上運行的任何演算法也會產生不利影響。以下章節記錄了3個關鍵問題(圖五)及其解決方法。
投影無效深度區域
對於超出感測器工作範圍(8000 mm)的點,ADTF3175的深度數據的無效深度值為0 mm。這會導致深度圖像上出現大片空白區域,並形成不完整的點雲。將深度值8000 mm(攝影機支援的最大深度)分配給深度圖像上的所有無效點,並利用該值產生點雲,如此可確保點雲沒有間隙。
填充未映射的像素
將3D點雲投影到2D平面時,2D圖像中存在未映射/未填充的區域。許多點雲(3D)像素映射至同一個2D像素,因此多個2D像素仍是空白。這就會產生如圖6所示的拉伸圖案。為解決該問題,我們使用3 × 3篩檢程式,用其相鄰的8個具備有效值的像素的平均紅外線/深度值來填充未映射的像素。如此便可獲得更完整的輸出圖像,並消除偽影(圖六)。
重疊點產生的雜訊
得益於圓柱投影演算法,重疊區域上的許多點最終在2D投影輸出上獲得相同的靜止座標。由於背景像素與前景像素重疊,因此會產生雜訊。為解決該問題,我們將每個點的徑向距離與現有點進行比較,僅當與攝影機原點的距離小於現有點時,才會替換該點。這有助於僅保留前景點,並提升投影品質(圖七)。
結論
該演算法能夠以小於5°的重疊度拼接來自不同攝影機的圖像,相較之下,傳統關鍵點匹配演算法至少需要20°的重疊度。該方法所需的運算量極少,因此非常適用於邊緣系統。由於圖像無失真,深度資料在拼接後仍具有完整性。該解決方案可進一步支援ADTF3175感測器的模組化實現,以極小的損失獲得所需FOV。
FOV的擴展不限於水準維度,相同技術也可用於在垂直方向上擴展視野,進而獲得真正的球形視覺。該解決方案可以在連接了4個感測器的Arm V8 6核心邊緣CPU上以10 fps的速度運行,提供275°的FOV。當僅使用兩個感測器時,畫面播放速率可達30 fps。
該方法的主要優勢之一是實現了龐大的運算效率增益,基本運算效率的增益超過3倍(表一)。
圖八和圖九展示使用該解決方案所獲得的一些結果。
表1.運算複雜性比較:針對512 × 512 QMP輸入,傳統演算法與本文所提演算法比較
演算法
|
平均浮點運算
|
傳統圖像拼接演算法
|
8.57億
|
本文提出的PCL深度拼接演算法
|
2.6億(減少3.29倍)
|

圖九 : 具有278° FoV的拼接紅外線和深度圖像。 |
|
(本文由ADI提供,作者為ADI資深經理 Rajesh Mahapatra、工程師 Anil Sripadarao 及資深工程師Swastik Mahapatra)