趙亞琴,蔡曉騮
(安徽機電職業(yè)技術學院 藝術設計學院,安徽 蕪湖 241000)
越來越多的智能化產(chǎn)品在室內(nèi)環(huán)境中工作,需要精確知道自己的位置,以及環(huán)境中物體的位置和三維空間信息[1],才能有效避開障礙物,到達指定位置。但是由于室內(nèi)場景復雜,所獲取的原始深度圖像存在空洞[2],而重建過程需要進行大量計算,因而給實時處理帶來挑戰(zhàn)。這就要求這些智能機器具有感知環(huán)境三維信息的能力。以家庭掃地機器人為例,業(yè)界采用的基于無線定位的解決方案,需要人為設置,機器人通過測量周圍環(huán)境中存在的障礙物自身與信標之間的距離實現(xiàn)定位導航,這種方案無法感知周圍環(huán)境中存在的障礙物,從而頻繁發(fā)生碰撞。室內(nèi)的點云數(shù)據(jù)有很多[3-4],例如天棚點云數(shù)據(jù)、內(nèi)墻點云數(shù)據(jù)、踢腳線點云數(shù)據(jù)、地磚點云數(shù)據(jù)等、室內(nèi)固定布置點云數(shù)據(jù),以及住宅窗戶外面的點云數(shù)據(jù)等。因此,針對復雜室內(nèi)場景設計并優(yōu)化三維重建算法,具有重要意義[5]。但是在常用的基于深度學習的室內(nèi)三維空間分割方法中[6],由于室內(nèi)存在障礙物遮擋,迭代陷入局部循環(huán),導致對三維空間分割過后的建模出現(xiàn)偏差,因此本文設計一種基于組合光透視的室內(nèi)三維空間分割方法。
本文基于組合光的透視現(xiàn)象,將室內(nèi)三維空間進行分割,進而提取空間點云。只有獲得完整的點云數(shù)據(jù),才能開始研究點云數(shù)據(jù)。組合光透視獲取點云數(shù)據(jù)的實現(xiàn)原理是:利用光學的反射和透射原理,將現(xiàn)實場景的透射光路疊加后進行數(shù)據(jù)輸出。該方案具有簡單、分辨率高、無視覺偏差等優(yōu)點,同時定位精度高。例如住宅室內(nèi)收集研究點云數(shù)據(jù),在采集數(shù)據(jù)之前應該先探查現(xiàn)場,了解住宅的室內(nèi)情況[7],然后根據(jù)了解到的特點去掃描,這樣可以去掉多余的數(shù)據(jù),降低工作量,減少工作時間,提高準確性,使數(shù)據(jù)更加完整可靠。一般測站的布設考慮如下因素:
1)所用設備的最佳掃描范圍。最佳掃描范圍可以保證數(shù)據(jù)的準確性。
2)布置標靶的配合性。配合性好可以減少工作量。
3)點云數(shù)據(jù)的重疊度。重疊度大于正常值會增大工作量。
4)障礙物的遮擋[8]。在掃描時,往往會遇到障礙物,把收集到的點云數(shù)據(jù)最小化。
所以必須針對這些數(shù)據(jù)作出相應的調(diào)整。以實現(xiàn)誤差減少,使得兩個測站之間數(shù)據(jù)的分層消除。在收集室內(nèi)點云數(shù)據(jù)時,會受到人和環(huán)境等多重因素的影響,所以要對收集到的數(shù)據(jù)去噪,以保證點云數(shù)據(jù)能用在室內(nèi)繪圖及模型建立上。
建立三維坐標系(x0,y0,z0),首先計算被測目標的距離L,如公式(1)所示:
(1)
其中,C為組合光的速度,T為組合光發(fā)射到接受的時間。根據(jù)距離和方向角得到坐標公式(2):
(2)
其中,θ為垂直方向的夾角,β為水平方向的夾角?;谏鲜鲂畔?,設置通過掃描得到的點云數(shù)據(jù)為Z={zi∈R|i=1,…,N},N為點云數(shù)據(jù)個數(shù),R為鄰域點的數(shù)據(jù)集。對該數(shù)據(jù)進行去噪處理,得到降噪后的點云數(shù)據(jù)如公式(3)所示。
(3)
點云數(shù)據(jù)經(jīng)過去噪后,得到真實的點云數(shù)據(jù),可以方便研究相關數(shù)據(jù),從而更準確地繪制室內(nèi)平面圖和建立立體模型。
通過組合光透視獲得了相關的點云數(shù)據(jù)后,根據(jù)這些數(shù)據(jù)在室內(nèi)的三維空間建模。三維重建流程大致如下:首先,相機等設備采集室內(nèi)場景圖像;其次,前端視覺里程計估計當前幀對應的相機位姿,后端視覺里程計對當前重建好的點云數(shù)據(jù)進行優(yōu)化;最后,根據(jù)位姿融合當前幀點云,構建地圖。根據(jù)應用需求的不同,最終構建的地圖也不盡相同,包括二維拓撲地圖,三維稀疏、半稠密和稠密地圖等。室內(nèi)場景下的機器人執(zhí)行導航、避障等任務需要精細的環(huán)境三維信息,因而本系統(tǒng)最終重建的是稠密的室內(nèi)場景。網(wǎng)絡在VGG16模型的基礎上調(diào)整參數(shù)繼續(xù)訓練,提高效率。截取VGG16至全連接層,在后面添加上采樣和反池化層。得到的結果較為粗糙,將不同池化層結果加權融合到反池化結果中,可以提高結果精度。網(wǎng)絡最終輸出組合光透視分割圖像大小為224×224,Kinectv2設備采集的深度圖像大小為640×480,需將分割結果采用線性插值法調(diào)整至該尺寸,并建立條件隨機場模型,如圖1所示:
圖1中的頂點由集合Y={y0,y1,…,yn}構成,表示像素點的類別,圖中頂點之間通過直線連接,可以表示條件隨機場之間變量的關系。每個頂點虛線連接一個變量,由集X={x0,x1,…,xn}構成,稱為觀測變量,可由圖像灰度、特征等來表征。集合X為觀測變量集合,表示輸入,集合Y為類別變量集合,表示輸出,條件隨機場最大化條件概率P(Y|X),輸出最符合觀測的類別。建立優(yōu)化問題,假設圖像幀F(xiàn)l對應的特征點是{p1,p2,…,pN},圖像幀F(xiàn)2對應的特征點是{q1,q2,…,qN},通過最小化匹配點對之間的歐氏距離,求解建模過程中的相機位姿[R/t],待優(yōu)化目標函數(shù)如公式(4)所示:
(4)
通過組合光透視采集的點云數(shù)據(jù)中最優(yōu)化點與平面誤差點的平面距離的示意圖如圖2所示,已經(jīng)重建好的三維點表示目標表面上的點,當前幀對應的三維點表示源表面上的點。點到平面的距離示意圖如圖2所示:
記上圖中的第i個像素點(x,y)對應的坐標為vi,根據(jù)坐標計算該點位置處的平面矢量ui=(vi(x+1,y)-vi(x,y))×(vi(x,y+1)-vi(x,y))。構建點到平面距離最優(yōu)化目標函數(shù)如公式(5)所示:
(5)
目標函數(shù)為J1,是最優(yōu)化點到點之間的距離,且只對稀疏的少量點對進行優(yōu)化;此處目標函數(shù)J2是最優(yōu)化點到平面之間的距離,是對圖像幀中所有的點進行優(yōu)化,實驗結果表明優(yōu)化點到平面之間距離結果優(yōu)于優(yōu)化點到點之間的距離。隨后,采用條件隨機場進行優(yōu)化處理,利用語義分割結果修復深度圖像。接著,采用幾個三維重建系統(tǒng)優(yōu)化方法。由粗及精的相機位姿估計方法;基于關鍵幀的全局優(yōu)化方法,抑制誤差累積;基于像素編碼的幀匹配策略,提高圖像匹配速度。最后利用GPU和OpenGL對代碼優(yōu)化加速,以便進行室內(nèi)三維空間建模。
在傳統(tǒng)的射線分割跟蹤算法中[9],正在跟蹤的射線向量需要與環(huán)境模型內(nèi)所有物體的三維表面進行求交點的運算[10]。隨著環(huán)境復雜度的提高,繞射發(fā)生次數(shù)隨之增加,使得算法需要跟蹤更多的射線[11-12]。并且環(huán)境復雜度和總射線數(shù)量的提高都會使得算法求交運算的次數(shù)大幅提升[13]。因此,通過組合光透視技術對三維環(huán)境模型進行空間分割,是將一個大區(qū)域平均劃分為多個小分區(qū)以分攤區(qū)域中物體的數(shù)量,形成級區(qū)域分割方式:一級分割將大區(qū)域平均劃分為四部分;二級分割是將已經(jīng)分割后的區(qū)域再次平均劃分;后續(xù)的高級分割以此類推。射線跟蹤每次只在射線當前所在分區(qū)Nold中檢索碰撞點[14],若在該分區(qū)沒有碰撞點,則射線離開當前分區(qū)Nold進入到下一個分區(qū)Nnew,并在Nnew內(nèi)繼續(xù)檢索碰撞點,直到跟蹤的射線到達接收位置或信號衰落權重超過預設閾值為止。如圖3所示為空間分割方法流程。
對大區(qū)域進行空間分割后[15],檢索碰撞點的算法將不需要和大區(qū)域內(nèi)所有的物體表面進行求交點運算,只需在當前射線所在的小分區(qū)中進行碰撞檢索,這樣可以大幅度減少跟蹤一條射線所需檢索的碰撞點的次數(shù)。
因此,在組合光透視模型中正確判斷射線當前所在的分區(qū),是空間分割方法的關鍵。如公式(6)所示:
其中,Nold為射線當前所在的分區(qū)序號,Nnew為射線將要進入的分區(qū)序號,n為空間分割等級,Pc為射線碰撞點坐標,x和y是射線三維方向向量中的x值與y值。但是,在傳統(tǒng)的分割過程中,室內(nèi)三維空間中存在一些物體對空間的整體出現(xiàn)一定的遮擋,因此對于特征點的提取會出現(xiàn)偏差。在以組合透視光為基礎的點云模型中,在空間分割的基礎上設計了一種基于高度劃分的動靜結合分割方法,以進一步提高組合光透視技術的分割算法效率??臻g分割方法流程如圖3所示:
當組合光射線的碰撞點Pc在分區(qū)的邊界上時,可根據(jù)式(6)計算得出組合光射線下一次范圍檢索的正確分區(qū)序號。理論上對空間分割得越細,求交點運算計算量減少得越多,算法的效率也會越高,能夠減少出現(xiàn)的誤差。
為了驗證本文設計的基于組合光透視的室內(nèi)三維空間分割方法在特征點提取過程中的有效性,需要設計實驗進行驗證。在本文的實驗中,選擇某建筑物的室內(nèi)結構作為研究對象,該研究區(qū)域中的功能空間分布主要包括房間、客廳、陽臺、窗戶、書桌以及書架。根據(jù)本文設計的組合光透視技術,得到室內(nèi)點云數(shù)據(jù)。
首先選取房間和內(nèi)部的書桌以及書架進行對比分析實際數(shù)據(jù)和點云數(shù)據(jù),確定本文方法的精度,如表1所示。
表1 基于組合光透視的室內(nèi)三維空間分割方法精度
根據(jù)表1可知,本文方法通過組合光透視技術得到的點云數(shù)據(jù)的寬度誤差最高為0.5 cm,均在1 cm以內(nèi),面積誤差最高為147.1 cm2,所有誤差均低于1%,因此,本文方法的精度較高。
在上述實驗條件下,得到不同分割方法提取到的特征點坐標,為了方便對比,將所有的坐標值進行歸一化處理,結果如表2所示。
表2 兩種方法的特征點坐標對比
在選擇的室內(nèi)模型中,將不同方法下提取到的室內(nèi)區(qū)域分類中的特征點精度進行對比。為了更加直觀地看出兩種空間分割方法得到的特征點位置的誤差,將兩方法的特征點坐標與實際坐標進行對比,得到的誤差結果如圖4所示。
從上圖可以看出,在本文設計的分割方法中,得到的特征點偏差較小,說明經(jīng)過本文分割方法分割后的室內(nèi)三維空間更接近于實際情況,本文設計的基于組合光透視的室內(nèi)三維空間分割方法具有一定的可靠性。
本文根據(jù)原始分割方法的不足,結合組合光透視與動、靜態(tài)空間分割方法,提出了一種基于組合光透視的室內(nèi)三維空間分割方法。為了獲得準確的室內(nèi)三維信息,首先提取點云,然后采用由粗及精的相機位姿估計方法減小局部誤差,通過基于關鍵幀的全局優(yōu)化抑制誤差累積。先進行稀疏特征點匹配得到粗略的位姿,在此基礎上再對最優(yōu)化點到平面距離差異,可用來對室內(nèi)場景的三維空間進行分割。本文方法雖然取得了一定的有效性,但仍有較大的優(yōu)化提升空間,在后期的研究中還需要進一步研究。