吉白冰,曹其新
(上海交通大學機械與動力工程學院,上海200240)
三維重建系統在機器人、生物醫學工程、建筑測繪等領域均有廣泛的應用。在機器人領域當中,三維重建主要有兩類應用,一類是移動機器人的定位導航地圖構建,另一類是機器人的抓取任務中,待抓取物體的三維模型構建。在機器人抓取任務中,無論是傳統的PPF方法[2]還是基于深度學習的物體姿態估計方法[3]都將待抓取物體的三維模型作為已知信息。目前基于結構光原理[4-5]的三維掃描儀雖然可以重建較高精度的物體模型,但此類三維掃描儀價格昂貴且操作繁瑣,在家庭環境中難以被普通用戶接受和使用。視覺傳感器成本低且通用性強的傳感器。目前已有應用單目傳感器解決工業機器人識別問題的研究[9],基于視覺的三維重建系統,對家用服務機器人抓取任務也有很大意義。
針對基于視覺傳感器的三維重建問題,文獻[10]提出了一種基于運動恢復的雙目視覺三維重建系統,將原有拋物線擬合的方法加入到三維重建系統,提高了三維重建系統精度。但并未考慮到雙目圖像錯誤立體匹配產生的三維結構,重建結果中噪點較多,因此上述方法僅在形狀規則的物體中取得較好的效果。面向家庭環境的機器人視覺抓取的三維重建系統具有以下幾個特點:一是涉及到的場景較小,一般為桌面上玩偶、書本等物體,太大或太小的物體都難于使用抓手抓取;二是重建使用的硬件和三維重建軟件系統需簡單易用,方便家庭用戶的使用;三是對精度與實時性有一定要求。
針對上述特點,提出了一種應用于家庭環境中機器人抓取任務的單目三維重建系統,可以基于目前消費電子產品中主流的單目視覺傳感器實時運行,降低了傳統三維重建系統對傳感器的要求。同時,在傳統單目三維重建系統上增加了基于連通區域濾波器等后處理模塊,用于消除立體匹配中錯誤恢復的三維結構,保證重建效果和精度。此外,算法基于GPU并行處理技術[11]設計和實現,加速立體匹配過程,確保三維重建系統實時性。
雙目三維重建系統建立在的理想雙目相機成像模型下,即左右兩個相機位于同一平面(光軸平行),且相機固有參數(如內參矩陣K)一致??赏瞥鋈缦鹿?,如圖1所示。

圖1 理想雙目模型Fig.1 Ideal Stereo Model

式中:x2-x1—視差,b—相機左右目的光心O1和O2間的距離,p1—空間點P在左相機成像的像素,p2—空間點P在左相機成像的像素。空間點P的深度Z與視差成反比,即深度圖的計算與視差圖的計算具有反比對應關系。
對于圍繞物體運動并采集圖像的單目相機而言,雖然缺少物理意義上的雙目結構,但可以組合當前相機所拍攝圖像與歷史某時刻相機所拍攝的圖像組成從運動中構造雙目(motion stereo)。如圖2所示,公式(1)在從運動中構成雙目的相機配置下不再成立,且從運動中構造雙目的相機相對位置關系未知且并不固定。因此不能簡單應用雙目三維重建方法解決單目三維重建問題。

圖2 從運動中構造雙目的雙目相機位置關系Fig.2 Motion from Stereo
針對單目三維重建問題的上述特點,提出了的三維重建系統算法框架。在單目三維重建系統中,首先根據SFM算法[7-8]恢復不同時刻相機間的相對運動關系,根據幾何關系選擇相機當前幀和過去某一幀組成虛擬雙目。根據虛擬雙目間的幾何關系和圖像像素相似性,計算當前幀視場內的場景點云。經過坐標系變換將不同時刻相機幀重建點云拼接為完整的物體模型。系統基于SFM算法恢復相機運動,后應用TSDF方法[6]完成坐標系對齊功能。上述方法已有成熟的研究結果,因此不再贅述相應原理。下文中將詳細說明基于虛擬雙目構造、立體匹配及后處理過程,如圖3所示。

圖3 算法流程圖Fig.3 Flow Chart of Proposed Algorithm
在單目三維重建系統中,三維結構恢復指根據從運動中構造的雙目計算相機視場內的場景三維結構。下面將從虛擬雙目構造,虛擬雙目立體匹配,后處理三個部分介紹基于單目相機的三維結構恢復方法。
基于SFM方法恢復的相機相對位置關系存在一定誤差,因此要保證最終場景三維結構的準確性,需要合理選擇歷史相機幀與當前幀配對,使得誤差對深度圖質量的影響較小。在配對選擇的過程中,歷史相機幀與當前相機幀間要保持較大的重疊和相似的朝向,這樣深度圖可以覆蓋圖像的大部分范圍,同時兩個相機狀態間要有合理的基線,較長的基線會降低圖像的重疊度,減少深度圖的有效區域,較短的基線會導致深度圖易受到噪聲的干擾,降低深度估計的準確性?;谏鲜龇治?,提出了如下評價函數:

由章2所述,從運動中恢復雙目得到雙目圖像對基本不滿足理想雙目模型,因此其立體匹配過程分為如下幾步:
像素匹配和匹配代價計算:首先基于先驗信息確定待計算深度圖的圖像所對應場景的深度分布區間,在得到的分布區間內確定N個深度假設,每個深度假設對應于一個代表深度值d的平面。為增強深度估計結果對于場景光照變化和圖像噪聲的魯棒性,在以像素p為中心的方形領域內采樣計算代價函數C(p,d)。應用ZNCC算子構造像素對應代價函數C(p,d)。

式中:q—右圖像中與像素p對應的像素,K—內參矩陣,R—相機旋轉矩陣,t—相機平移向量,n—平面法向量。q代表像素p在由圖像上的投影,如圖4所示。

圖4 像素點投影示意圖Fig.4 Illustration of Pixel Reprojection
代價聚合與深度值求精:計算得到每個深度假設d所對應的代價函數C(p,d)后,按WTA規則估計每個像素p所對應的深度:

為補償深度假設離散化造成的精度損失,采用拋物線擬合的方式獲取亞像素級深度估計精度。則拋物線函數極小值點對應的深度值dmin滿足公式(5):

式中:di—最小C(p,d)所對應的深度假設,di-1di+1—與di相鄰的深度假設,Δd—深度假設間距。由于間中每個像素的深度估計過程具有獨立性,因此每個像素的深度估計過程可以并行進行,得到初始深度圖。
立體匹配計算的深度圖中存在大量錯誤深度估計,使最終的三維模型產生大量噪點,降低三維模型質量。為解決這一問題,提出了如下的后處理過程。
左右一致性檢查:由于立體匹配過程具有計算對稱性,因此估計正確的深度應滿足如下所示的重投影誤差公式:

式中:Dc—當前幀深度圖,Dk—歷史幀深度圖,δ—閾值,其余符號同公式(3)。
獨特性比率濾波器:在被圖像噪聲干擾或相對運動關系的誤差而產生錯誤深度估計的區域,其最小代價函數與次小代價函數會比較接近。根據上述觀察,定義如下獨特性比率過濾噪聲。當像素p的獨特性比率小于閾值時過濾對應深度:

式中:runiq(p)—p像素的獨特性比率,dsec—次小代價函數對應的深度假設,dmin—最小代價函數對應的深度假設。rthres—獨特性比率的閾值。
連通區域濾波器:真實場景中大部分區域在空間是連續的,因此體現在深度圖上相鄰區域的深度值也具有一定的連續性。錯誤匹配的深度值一般與其周邊區域的深度值相比具有較大的不連續性,且在深度圖中零散的分布與各個區域。根據如下公式判斷深度圖上某像素與相鄰區域在深度圖上的連續性關系。

式中:d—某像素對應深度,dr某像素領域的對應深度,Δd—深度假設間距。應用上述公式將深度圖的深度連續區域的劃分問題轉化為一個二值圖像連通區域標記問題,使用兩步法將所有的深度圖連通區域分類并標記。根據標記的連通區域中像素的數量,將像素數量小于一定值的連通區域從原始深度圖中去除。經過上述后處理后得到的深度圖經過坐標系對齊后得到最終的物體模型。
在家庭環境中常用且易于機器人抓取的三種物體上進行了實驗。實驗圖像分辨率為640×480,程序運行于配備i7-4710MQ處理器和GTX880M顯卡的筆記本電腦上。以Realsense SR300傳感器測量的結果作為真值。
對比了應用后處理和不應用后處理方法的重建結果。在實際環境中由于采集的圖像中圖像噪聲及場景光照變化,一些在理想條件下正確匹配的像素在噪聲干擾下匹配錯誤,進而物體模型表面不完整且中存在大量噪點。通過節3.3介紹的后處理流程可以過濾單幀深度圖中的錯誤匹配結果。在基于運動的單目三維重建系統中,不同幀圖像恢復的三維結構存在一定冗余,某一幀中被過濾的錯誤三維結構會被其他幀中正確估計的三維結構代替,因此后處理模塊不會對完整性造成影響,如圖5所示。

圖5 實驗結果對比Fig.5 Comparison of Experiment Result
基于結構光傳感器的測量結果作為真值計算三維重建結果物體模型的精度。根據計算結果繪制了誤差色溫圖,誤差表示范圍從0%到100%,且色溫越冷代表誤差越小。上述三個實驗物體的模型與結構光傳感器測量真值的中位數相對誤差(MAE)均在1.0%左右,從相對誤差色溫圖中也可以看出重建物體模型的大部分區域誤差非常小。對于長寬高在20cm范圍內的家庭中常見物體而言,生成的模型可以滿足服務機器人構建抓取物體數據庫的模型精度要求,如圖6所示。

圖6 三種不同物體重建模型(上)與誤差色溫圖(下)Fig.6 Models of Three different objects 3D Reconstruction(Up)and Corresponding Error Color Map(Down)
為驗證三維重建系統實時性,記錄了圖6中玩偶熊模型建模過程中每一幀的處理時間并繪制了的處理時間隨拍攝時間變化的曲線。幀平均處理時間為33.95ms,即29.45幀/秒的處理速度,滿足實時運行的要求,如圖7所示。

圖7 三維重建系統單幀處理時間曲線圖Fig.7 Graph of Running Time of 3D Reconstruction
介紹了一種基于運動恢復深度的單目實時三維重建系統,針對運動中單目相機采集的圖像序列,提出了一種虛擬雙目相機的構造準則。并推導了虛擬雙目相機的立體匹配公式。針對實際場景中圖像噪聲對三維重建結果產生較大影響的問題,在傳統算法框架基礎上增加了后處理模塊。實驗結果表明應用后處理模塊,取得了質量更好的物體模型。針對三種不同物體的重建實驗說明了應用三維重建系統的精度。系統并行處理圖像數據并生成三維模型。平均處理速度為29.45幀每秒,滿足服務機器人抓取任務對建模系統速度的要求。未來將在本文實驗得到的模型基礎上,設計基于物體模型服務機器人抓取系統,進一步驗證本文模型對于服務機器人抓取任務的適用性。