智慧應用 影音
MongoDB
ADI

[3D視覺計算] 3D視覺計算方式

3D視覺資料表示以及計算方式。(a)為電腦圖學中沿用多時利用網格來描述3D物件。(b)為點雲範例,利用立體相機拍攝出來物體表面的稀疏點來描述立體資訊。(c)為使用固定大小的立體像素(voxel)堆疊出3D物件。每種表示法有其相對的視覺計算方式。徐宏民

3D(立體)視覺計算的目的是利用3D感測器所拍攝到的資訊,來偵測物件或是辨識應用場景。例如自駕車使用LiDAR精確掌握人、車、障礙物位置;機器手臂使用立體相機偵測正確的抓取點、塗膠位置等。需要3D訊號是因為多了立體空間資訊,有機會超越單使用2D平面影像。所以各種嶄新的應用包括AR(擴增實境)/VR(虛擬實境)、自駕車、 醫療、安全、機械製造、機器人(手臂)等都仰賴3D視覺計算的精進。

在過去,我們並未全然掌握如何計算這些3D資料,所以就沿用2D影像上的做法。比如圖a,這是個利用網格表示的標準3D模型,為了計算方便,就將立體模型投影到多個2D視角上,利用2D影像的計算(例如卷積網路CNN)辨識各個2D投影,接著匯集多個視角計算結果(通常是採用最大池化法max pooling)。這方法最具代表的就是MVCNN,可此法會受制於過多計算量(多視角影像)、視角取樣等問題。

另一常用的做法是只利用深度圖(depth map),即3D相機拍攝時畫面中各位置相對相機的距離,可以表示物件位置的遠近。因為是2D畫面,可以沿用過去2D影像上的計算方式,甚至與RGB三個頻道結合,成為RGBD四個頻道來計算。但是未真正利用全部的立體空間訊息,所以稱為2.5D的算法。其他缺點在於深度值的估算本來就有誤差,而且3D感測器因為軟硬體的限制,深度圖在某些環境材質、或是物件接縫處會有疏漏,影響正確率。

立體畫素(voxel)則延伸2D的做法來使用3D訊息。它使用3D的小區塊(可以想像類似樂高積木)來表示3D物件(如圖c)。因為有了這些規則的立體畫素(可以與2D上的畫素做比較),可以進行系統化的視覺計算。所以近幾年可以看到卷積網路開始在voxel上大行其道。類似2D的做法,只是輸入變為3D,增加一個維度,所以運算資源(記憶體、特徵圖、卷積核等)也得再加上一個維度,計算量龐大。為了平衡運算資源,一般使用低解析度的voxel(顆粒較大)。另一個侷限是無法全然克服實際物體旋轉所造成的辨識錯誤。

3D視覺計算的突破,來自於近來發現可以設計適合點雲(point cloud)(如圖b)的算法,直接在眾多的點雲中計算。每個點都有空間中3D位置資訊、RGB顏色值,有些還有物體表面的反射量(如LiDAR點雲中由金屬反射回來的訊號較強)。點雲計算在過去是非常困難的,因為這些點雲不像2D畫素或是立體畫素般規則排列,每個拍攝到的點雲並沒有特定的順序。舉例來說,每台車子上所偵測到的點雲並沒有特定的順序,所以雖然保有豐富空間訊息量,卻不知如何有系統的計算。

2017年發表在電腦視覺頂會CVPR的PointNet算法開啟了這個機會。他們發現透過使用「對稱函數」,可以保有重要的「排列不變性」的特質,也就是解決同樣物件中,偵測出的點雲排列卻不同的問題。深度學習中常使用的最大池化法剛好就是對稱函數,因此開啟深度學習技術使用在點雲上的機會,可以更精細的利用3D中豐富的空間資訊。接下來延伸的一系列點雲算法,更大大提升點雲運算效率、正確性等。

當然在實際解決問題時,我們會將RGB、voxel、點雲等混搭使用,目的是為了發揮各個做法的優點或是善用更豐富的訊息。我們將在接下來的各種立體視覺應用文章中繼續解析這些前瞻算法以及可能的產業情境。

徐宏民(Winston Hsu)現任富智捷(MobileDrive)技術長暨副總經理以及台大資訊工程學系教授。哥倫比亞大學電機博士,專精於機器學習、大規模影像視訊搜尋與辨識。為訊連科技研發團隊創始成員,慧景科技(thingnario)共同創辦人,NVIDIA AI Lab計畫主持人;曾任IBM華生研究中心客座研究員、美國微軟研究院客座研究員。習慣從學術及產業界的角度檢驗技術發展的機會;十餘年產學合作及新創經驗。曾獲2018 IBM Research Pat Goldberg Memorial Best Paper Award 、2018偽裝人臉辨識冠軍、傑出資訊人才獎、吳大猷先生紀念獎等國內外研究獎項。