陳祥輝
(四川大學計算機學院,成都 610065)
空間上的一組平行線,在針孔相機的投影下,在圖像空間相交于一點,這個點被稱為消失點。消失點包含攝像機的姿態信息,因此它被經常用于攝像機定標[1],進而被應用于無源導航[2]、3D重建[3]等領域。消失點的提取首要的步驟是線段的提取,然后是對各條線段進行分類,將其劃分為不同集合,每個集合中的線段交點就表示3維場景中不同方向的消失點。
C均值算法是一種應用十分廣泛的聚類算法,它通過優化目標函數得到每個樣本點對所有類中心的隸屬度,從而決定樣本點的類屬以達到自動對樣本數據進行分類的目的。
本文的工作是運用C-均值[4]的方法對所求得的線段進行分類,然后構建能量方程并用最優化的方法對消失點進行優化。
前人在消失點檢測方面已經有了很多的工作,其大致可以分為3類:第1類是直接用檢測到的線段的信息在圖像空間進行消失點的檢測。其主要步驟為:(1)提取圖像中的線段。(2)求所有直線的交點。(3)取相交點最多的坐標值作為消失點。第2類是空間變換的方法,將線段映射到高斯球上,然后提取消失點,再將消失點映射到原空間。第3類是隨機抽樣一致性(RANSAC)的方法。不斷地從線段中挑選至少2條線段并求得其交點,然后找出與之最一致的線段集合,最后再找出消失點。本文提出的方法屬于第一類方法,但與第一類方法不同的是在求完交點后利用C-均值的方法進行線段分類,而非簡單地取交點最多的坐標值作為消失點。
我們用大寫的英文字母表示集合,用對應的小寫字母表示集合的元素,其下標i表示集合的第i個元素算法的具體描述如圖1所示:

圖1 算法的流程
算法實現過程如下:

然后進行消失點預處理。對VP求直方圖,去掉小于一定閾值δ的消失點。最后對集合VP利用C均值進行分類。對已分類的消失點集合,K為聚類的個數,分別找出與VPi相一致的線段集Li,分別對第i個消失點集合構造能量方程:

將C均值得到的結果作為vp的初始值將E(vp)最小化后即得出第i個消失點。
檢測到的直線段如圖2所示。
最后的結果如圖3所示。
本文提出了應用C均值聚類的方法將提取了消失點的算法并通過構造能量方程對結果進行了優化。算法過程已在Mathematica上實現。實驗證明該算法可以從圖像中準確地提取消失點。但當場景中不存在平行線時該算法就不再適用,這是算法本身的缺點造成的,是下一步解決的重點。

圖2 Hough變換得到的線段

圖3 不同顏色的點為C均值分類的結果,黑色的點為最優化后的消失點
參考文獻:
[1]Caprile B Torre,V.Using Vanishing Points for Camera Calibration[J].International Journal of Computer Vision,1990.
[2]Straforini M,Coelho C,Campani M.Extraction of Vanishing Points from Images of Indoor and Outdoor Scenes.Image and Vision Computing 1993,11(2):91-99.
[3]Criminisi A,Reid I,Zisserman A.Single View Metrology.Proceedings of the 7th International Conference on Computer Vision,Kerkyra,Greece,1999:434-441.
[4]MacQueen,J.B.(1967).Some Methods for Classification and Analysis of Multivariate Observations.Proceedings of 5th Berkeley Symposium on Mathematical Statistics and Probability.1.University of California Press.pp.281-297.