趙曉瑩,劉艷麗
(1.四川大學計算機學院,成都 610065;2.四川大學視覺合成圖形圖像國家重點實驗室,成都 610065)
在真實的自然環(huán)境中,存在著豐富的平面結構信息,尤其是在建筑物場景中。在透視投影下,物理世界中的平面在不同視點下的圖像可通過單應性相互關聯(lián)。由于平面這種特殊的幾何性質(zhì),平面檢測被廣泛應用于圖像拼接、障礙物檢測、三維重建、場景分析及增強現(xiàn)實等領域中。
目前,在計算機視覺領域,已出現(xiàn)了一些平面檢測算法,但這些平面檢測算法都是基于兩張圖像間的對應關系。到目前為止,平面檢測都是以標識平面中的特征點[1]或部分區(qū)域[2-3]作為最終結果,而本文提出的平面檢測算法則標識完整的平面區(qū)域。
常見的平面檢測算法是類似隨機抽樣一致性(Random Sample Consensus,RANSAC)方法[4-6],假設一個初始樣本模型,選擇原始數(shù)據(jù)中的一組特征點計算單應性矩陣作為初始樣本模型,通過反復迭代測試,得到最優(yōu)的數(shù)據(jù)模型參數(shù),但是該算法的精確度及魯棒性很大程度上依賴于匹配準確度。Toldo等人[7]提出了一種基于隨機抽樣和概念數(shù)據(jù)表示的聚類算法J-link?age,用于將模型的多個實例擬合成受噪聲和異常值影響的數(shù)據(jù),每個點用其偏好集的特征函數(shù)表示,多個模型在概念空間中顯示為群集。該方法不需要事先規(guī)定模型的數(shù)量,也不需要參數(shù)調(diào)整,在多平面檢測中有很好的應用。曹芳等人[8]提出一種基于匹配點相似度引導采樣的分層多平面檢測算法,利用殘差信息的排序和加權分析選擇匹配的特征點采樣,將屬于同一平面結構的匹配特征點加入采樣集合,提高了采樣點集合的全內(nèi)點概率,可快速得到最優(yōu)單應性矩陣的參數(shù)模型。
上述算法都是基于兩張或多張圖像特征點匹配而檢測的平面。不同于傳統(tǒng)的平面檢測算法,本文提出了一種新穎的單張圖像平面檢測算法,利用Mean Shift圖像分割劃分平面區(qū)域后,結合消失點分類線段約束平面邊界從而檢測完整的平面區(qū)域。
如圖1所示本文的算法流程主要分為三個部分,
圖1 算法流程圖
第一部分線段分類,通過檢測圖像中的線段得到圖像中的三個消失點。利用消失點將圖像檢測到的線段進行分類,每一類線段在世界坐標系中相互平行。由于建筑物平面由兩對平行線相交得到,因此對于完整平面區(qū)域的檢測可以通過當前平面最外圍相互平行的兩對平行線來確定。
第二部分圖像分割,在已分類的線段中,由于窗戶邊緣以及平面外其他物體邊緣等干擾物對于線段造成誤判,使得無法通過兩組平行線來確定平面邊界。利用圖像分割對圖像像素值相似區(qū)域進行分割,對于部分區(qū)域中的干擾通過像素替換法去除干擾。
第三部分圖像去噪,對于圖像分割后的圖像通過檢測兩組平行線交點來確定主平面顏色,找到圖像主顏色最大的平面區(qū)域,利用周邊相互平行的兩組平行線段確定該區(qū)域邊界,對于平面下邊界的一些干擾,如地面陰影、草地等,通過圖像去噪的方法消除干擾。
Li等人[9]通過在圖像中線段交點的角度坐標直方圖中尋找峰值的方法獲得消失點的角度坐標,進而求得消失點坐標。消失點要滿足公式(1),其中點(x1,y1),(x2,y2),(x3,y3)分別代表三個消失點,f為焦距。
消失點確定后將圖像中的線段Li(i=0,1,2,3...)分類,直線表達式和距離條件表達式如公式(2)。通過消失點(xj,yj)到直線Li的距離dij滿足一定閾值a,判斷線段Li屬于消失點類Dj,本文中a的閾值設為30。若不存在消失點(xj,yj)到直線Li距離滿足閾值a,則拋棄線段Li。當線段Li同時屬于兩個消失點類時,分別在這兩個消失點類中隨機選取兩條線段作為候選線段,計算候選線段與線段Li交點,若兩個交點都在當前候選線段所在類的消失點附近,則判斷線段Li屬于當前消失點類。分類結果如圖2所示,三組不同的消失點分別用紅綠藍顏色標識。在該例子中我們檢測的主平面區(qū)域是選取藍色和綠色標識的兩組平行線段相交而得。
圖2 線段分類結果
圖像分割,是將灰度圖或彩色圖像分解成同質(zhì)圖像塊,同質(zhì)性在像素值中通常被定義為相似性,即在圖像上執(zhí)行分段常數(shù)模型。Comaniciu等人[10]采用感知色差對應顏色特征空間的歐幾里德距離思想,即一種新的感知均勻的顏色空間度量算法進行平面分割。
上述思想分割圖像后存在許多小塊區(qū)域,例如建筑物一個平面中的小窗戶仍是獨立存在的一個分割結果,如圖3(a)。但我們的平面檢測結果,窗戶是屬于當前平面的一部分,所以需要與周邊大塊分割結果融合。以像素坐標為單位,當小塊區(qū)域像素個數(shù)低于某一閾值,則查找周邊其他塊像素個數(shù),若足夠大,則將小塊區(qū)域像素值(RGB)替換成周邊大塊區(qū)域像素值。最終分割結果如圖3(b)所示。
圖3
圖2 中,我們計算藍色和綠色標識的兩組平行線段交點,在這里需要對每條線段設置一個標志位,當遇到同類線段時不計算交點。利用這些交點的像素值計算主平面的顏色,像素值是主平面顏色的交點被保留下來計算凸包。我們將這些凸包外圍點分成四類,分別是上下左右四個方向,并且計算左上左下右上右下的四個頂點,左上頂點既屬于左方向又屬于上方向,其他三個頂點類似。在所有線段中選擇離左方向上的點最近的線段作為平面左邊界線段,其他三條線段都依此選擇,從而初步檢測到平面區(qū)域邊界線段,如圖4(a)。我們通過驗證當前線段過主平面的點個數(shù)比率來判斷檢測的平面邊界是否偏離真實平面邊界,若過主平面的點比率較小時排除該線段,重新計算離當前方向上的點最近的線段作為邊界線段。
但是由于平面下邊界即與地面相連的邊界線段有諸多干擾,如草地、陰影及遮擋等都會造成干擾使其檢測的邊界線段不準確,我們針對下邊界做額外的優(yōu)化使準確檢測平面下邊界。在這里我們需要用到絕對二次曲線原理公式(3),d1,d2是兩條直線方向(三維矢量),x1,x2分別為 d1,d2方向上的兩個點,K 為相機內(nèi)參矩陣,由焦距f構成的上三角矩陣,在歐式世界系中這兩條直線方向夾角為cosθ。由此我們推出公式(4),V1,V2為兩個消失點,而兩個消失點在歐氏世界系中的方向夾角為90度,即cosθ=0。由2.1計算的消失點存在誤差,而我們已有準確的上左右三個方向線段,消失點V1可由左右方向線段交點而得,公式(3)中的焦距f已由2.1小節(jié)計算,且已知V2過上方向線段,則根據(jù)公式(3)計算V2。因此我們計算離下方向上的點較近的一組候選線段,使上方向線段分別與候選線段計算交點,選擇離消失點V2最近的交點,則下方向線段被確定出來。完整的平面區(qū)域結果如圖4(b)所示。
通過對本文算法與RANSAC算法檢測平面結果進行比較,運行結果如圖5所示。圖5(a)是通過標識特征點檢測平面,但偶有異常點出現(xiàn)是不可避免的;圖5(b)是盡可能排除異常點后由凸包畫出檢測的平面特征點;圖5(c)是本文算法檢測的平面。結果表明,利用圖像分割結果與消失點分類線段算法檢測到的平面區(qū)域更準確。
在平面結構較為簡單的建筑物場景中,本文提出的利用Mean Shift圖像分割劃分平面區(qū)域后,結合消失點分類線段約束平面邊界的平面檢測算法有效且準確檢測完整的平面區(qū)域,為后續(xù)平面跟蹤及檢測新平面出現(xiàn)提供信息和幫助。但該算法受限于條件設置,若場景中干擾物較多,存在干擾線段使得線段分類不準確,平面檢測結果則會不理想,這是下一步要解決的重點問題。
圖4
圖5