本發(fā)明屬于圖像處理技術(shù)領(lǐng)域,特別是涉及一種基于全局搜索的滅點提取方法及系統(tǒng)。
背景技術(shù):
透視投影中,一束平行于投影面的平行線的投影可以保持平行,而不平行于投影面的平行線的投影會聚集到一個點,這個點成為滅點(Vanishing Point)。滅點可以看作是無限遠處的一點在投影面上的投影。具有正交信息的滅點對于恢復(fù)照片拍攝瞬間相機的方位、估計世界坐標系的結(jié)構(gòu)和解求圖像的內(nèi)部參數(shù)具有重要的意義。同時,作為一個底層的技術(shù),滅點提取可以用在很多應(yīng)用上,例如基于單張影像的場景三維重建、視覺導(dǎo)航和相機自標定等等。
單張影像上提取滅點主要有兩個技術(shù)難點:首先,解算出來的滅點需要滿足全局最優(yōu)性,即解算得到的滅點應(yīng)該在理論上是全局最優(yōu)解,而不是局部最優(yōu)解。其次,滅點需要滿足曼哈頓世界原則(Manhattan world),即得到的若干個滅點應(yīng)該相互正交。當前較為通用的滅點提取算法主要有:基于窮舉搜索的滅點提取算法、基于期望最大(expectation-maximization)的滅點提取算法、基于RANSAC的滅點提取算法和基于數(shù)學(xué)優(yōu)化的滅點提取算法。
基于窮舉搜索的滅點提取算法是最早提出的滅點提取算法之一。這種算法首先選取大量的可能的滅點,然后窮舉遍歷所有的這些可能的滅點,將其中最為精確的那個作為結(jié)果。這種算法保證了全局最優(yōu)性,但是時間耗費太大,因而并不實用。
基于期望最大的滅點提取算法通過迭代進行線段分類(expectation step)和滅點估計(maximization step)這兩個步驟,來找到最優(yōu)的線段分類和滅點。這種算法時間耗費較小,但是需要給定較為精確的滅點的初始估計值,而且理論上并不能保證全局最優(yōu)性和正交性。
基于RANSAC的滅點提取算法首先定義一個最小解算集合(minimal solution set),這樣的最小解算集合可以用來計算得到一組滅點。然后利用RANSAC進行隨機采樣,得到若干最小解算集合,從而得到若干組相對應(yīng)的可能的滅點(其數(shù)量遠小于窮舉搜索的滅點提取算法),最后選取其中精度最高的滅點作為最后的結(jié)果。這種算法雖然能夠保持滅點正交的特性,而且速度很快,但是由于RANSAC本身不具有全局最優(yōu)解的特性,得到的滅點理論上不具有全局最優(yōu)性。
技術(shù)實現(xiàn)要素:
針對現(xiàn)有技術(shù)中存在的不足,本發(fā)明提供了一種基于全局搜索的滅點提取方法及系統(tǒng)。
本發(fā)明提供的一種基于全局搜索的滅點提取方法,包括步驟:
S1基于等效球面構(gòu)建影像的極坐標格網(wǎng),初始化極坐標格網(wǎng)中各子格網(wǎng)的值G(i,j)=0,G(i,j)表示第(i+1)行第(j+1)列子格網(wǎng)的值;
S2對影像中所有的任意兩條直線段l1和l2均執(zhí)行如下:
記l1和l2的交點為p'(x,y),計算p'(x,y)在等效球面上的經(jīng)緯度(λ',φ'),采用公式G(λdeg,φdeg)=G(λdeg,φdeg)+||l1||×||l2||×sin(2θ)更新(λ',φ')所落入的子格網(wǎng)的值G(λdeg,φdeg),其中,||l1||和||l2||分別代表l1和l2的長度;θ代表l1和l2的夾角;
S3基于兩條直線段組成的最小解算集合和滅點的正交特性,獲得所有可能的滅點假設(shè),本步驟進一步包括:
3.1在影像中所有直線段中隨機選擇Its次最小解算集合,各最小解算集合中兩條直線段的交點即第一個滅點v1所有可能的滅點假設(shè);其中,Its=log(1-a)/log(1-Pmax),a表示置信度,a為經(jīng)驗值,在[0.99,0.9999]范圍取值;Pmax為任意最小解算集合同時對應(yīng)于一個滅點的最小概率值,n為預(yù)設(shè)的影像噪聲率,n為經(jīng)驗值,在[0.3,0.5]范圍取值;
3.2對v1的各滅點假設(shè),獲得以v1的各滅點假設(shè)為法向量的平面與等效球面相交的圓弧,在圓弧上密集采樣,采樣點在影像上的對應(yīng)點即第二個滅點v2所有可能的滅點假設(shè);
3.3利用滅點v1、v2、v3間的正交特性,獲得第三個滅點v3所有可能的滅點假設(shè);所述的滅點v1、v2和v3分別表示與曼哈頓世界坐標系三個方向?qū)?yīng)的滅點;
S4對每一個v1、v2、v3的滅點假設(shè),計算v1、v2、v3的滅點假設(shè)的直線段響應(yīng)強度S,最大的S所對應(yīng)的滅點假設(shè)即最終的滅點提取結(jié)果;G(λkdeg,φkdeg)表示(λk,φk)所落入的子格網(wǎng)的值,λkdeg和φkdeg分別表示λk和φk轉(zhuǎn)換成度數(shù)表示后經(jīng)取整得到的整數(shù)值,(λk,φk)為滅點vk的經(jīng)緯度,k=1,2,3。
進一步的,步驟S1中所述的基于等效球面構(gòu)建影像的極坐標格網(wǎng),具體為:
計算影像上每一點p(x,y)在等效球面上對應(yīng)點的經(jīng)緯度(λ,φ),將等效球面按照經(jīng)緯線進行劃分得到極坐標格網(wǎng)。
進一步的,子步驟2.2具體為:
獲得以v1的各滅點假設(shè)為法向量的平面與等效球面相交的圓??;
在圓弧上對經(jīng)度進行密集采樣,獲得各采樣點對應(yīng)的經(jīng)度值;
根據(jù)公式和X1×X2+Y1×Y2+Z1×Z2=0,獲得各采樣點的緯度值及(X2,Y2,Z2);其中,(X1,Y1,Z1)和(X2,Y2,Z2)分別表示v1和v2在相機空間坐標系的三維坐標;(λ2,φ2)表示v2的經(jīng)緯度,也即采樣點的經(jīng)緯度;
根據(jù)采樣點的(X2,Y2,Z2)反推各采樣點在影像上的對應(yīng)點,即第二個滅點v2所有可能的滅點假設(shè)。
本發(fā)明提供的一種基于全局搜索的滅點提取系統(tǒng),包括:
極坐標格網(wǎng)構(gòu)建模塊,用來基于等效球面構(gòu)建影像的極坐標格網(wǎng),初始化極坐標格網(wǎng)中各子格網(wǎng)的值G(i,j)=0,G(i,j)表示第(i+1)行第(j+1)列子格網(wǎng)的值;
子格網(wǎng)值更新模塊,用來對影像中所有的任意兩條直線段l1和l2均執(zhí)行如下:
記l1和l2的交點為p'(x,y),計算p'(x,y)在等效球面上的經(jīng)緯度(λ',φ'),采用公式G(λdeg,φdeg)=G(λdeg,φdeg)+||l1||×||l2||×sin(2θ)更新(λ',φ')所落入的子格網(wǎng)的值G(λdeg,φdeg),其中,||l1||和||l2||分別代表l1和l2的長度;θ代表l1和l2的夾角;
滅點假設(shè)獲得模塊,用來基于兩條直線段組成的最小解算集合和滅點的正交特性,獲得所有可能的滅點假設(shè);
所述的滅點假設(shè)獲得模塊進一步包括子模塊:
第一滅點假設(shè)獲得子模塊,用來在影像中所有直線段中隨機選擇Its次最小解算集合,各最小解算集合中兩條直線段的交點即第一個滅點v1所有可能的滅點假設(shè);其中,Its=log(1-a)/log(1-Pmax),a表示置信度,a為經(jīng)驗值,在[0.99,0.9999]范圍取值;Pmax為任意最小解算集合同時對應(yīng)于一個滅點的最小概率值,n為預(yù)設(shè)的影像噪聲率,n為經(jīng)驗值,在[0.3,0.5]范圍取值;
第二滅點假設(shè)獲得子模塊,用來對v1的各滅點假設(shè),獲得以v1的各滅點假設(shè)為法向量的平面與等效球面相交的圓弧,在圓弧上密集采樣,采樣點在影像上的對應(yīng)點即第二個滅點v2所有可能的滅點假設(shè);
第三滅點假設(shè)獲得子模塊,用來利用滅點v1、v2、v3間的正交特性,獲得第三個滅點v3所有可能的滅點假設(shè);所述的滅點v1、v2和v3分別表示與曼哈頓世界坐標系三個方向?qū)?yīng)的滅點;
滅點提取模塊,用來對每一個v1、v2、v3的滅點假設(shè),計算v1、v2、v3的滅點假設(shè)的直線段響應(yīng)強度S,最大的S所對應(yīng)的滅點假設(shè)即最終的滅點提取結(jié)果;G(λkdeg,φkdeg)表示(λk,φk)所落入的子格網(wǎng)的值,λkdeg和φkdeg分別表示λk和φk轉(zhuǎn)換成度數(shù)表示后經(jīng)取整得到的整數(shù)值,(λk,φk)為滅點vk的經(jīng)緯度,k=1,2,3。
和現(xiàn)有技術(shù)相比,本發(fā)明具有以下優(yōu)點和有益效果:
(1)具有魯棒性:
本發(fā)明可適用到只存在1、2或3個滅點的場景,且在這三種場景下均能穩(wěn)定提取滅點。
(2)具有實時性:
本發(fā)明實現(xiàn)簡單,時間復(fù)雜度較小,且各步驟均適合并行處理,因此實時性強。經(jīng)測試,在未適用任何加速優(yōu)化的情況下,本發(fā)明方法在Intel Core i5-3550p CPU上的運行時間為40ms。
(3)具有全局最優(yōu)性:
本發(fā)明采用密集采樣和全局搜索尋找最優(yōu)的方法提取滅點,所提取滅點在理論上具有全局最優(yōu)性。
附圖說明
圖1為本發(fā)明實施例的整體流程圖;
圖2為等效平面示意圖。
具體實施方式
下面將對本發(fā)明具體實施方式做進一步說明。
一、在等效球面上構(gòu)建極坐標格網(wǎng)。
本步驟包括以下子步驟:
步驟1.1,計算影像上點p(x,y)在等效球面(Equivalent Sphere)上對應(yīng)點的經(jīng)緯度(λ,φ)。
本子步驟的具體實現(xiàn)過程如下:
已知影像的內(nèi)參:焦距f和像主點(x0,y0),給定影像上任意一點p(x,y),該點p(x,y)在相機空間坐標系下對應(yīng)的三維坐標為p(X,Y,Z):
所有點p(X,Y,Z)所圍成的三維球面即等效球面。前述相機空間坐標系為右手坐標系,以相機成像中心為原點,X軸和Y軸的正方向分別與影像坐標系中x軸和y軸的正方向一致,Z軸正方向為相機成像中心指向像主點的方向。
已知三維點p(X,Y,Z),其在等效球面上對應(yīng)點的經(jīng)緯度(λ,φ)為:
聯(lián)立公式(1)和(2),即可得到影像平面上每一個點在等效球面上對應(yīng)點的經(jīng)緯度。
步驟1.2,基于等效球面構(gòu)建極坐標格網(wǎng)。
本子步驟的具體實現(xiàn)過程如下:
極坐標格網(wǎng)基于等效球面構(gòu)建。影像平面上各點在等效球面上對應(yīng)點的經(jīng)度和緯度的取值范圍分別為[0,2π]和[0,π/2],將等效球面按照經(jīng)緯線進行劃分,得到極坐標格網(wǎng)。這里以1°為劃分精度,那么可以將等效球面劃分為包括360×90個子格網(wǎng)的極坐標格網(wǎng)。將極坐標格網(wǎng)記做G,將G中每一個元素初始化為0,即G(i,j)=0,i∈[0,359],j∈[0,89],i、j均為整數(shù),G(i,j)表示極坐標格網(wǎng)中第(i+1)行第(j+1)列子格網(wǎng)的值。
二、更新極坐標格網(wǎng)中各子格網(wǎng)的值。
使影像中直線段兩兩相交,直線段為已知直線段或采用直線提取法從影像中提取得到。設(shè)兩條直線段分別為l1和l2,l1和l2的交點記為p'(x,y),利用子步驟1.1的方法即可計算點p'(x,y)在等效球面上的經(jīng)緯度(λ',φ');然后,找到(λ',φ')所落入的子格網(wǎng),并按照公式(3)對子格網(wǎng)的值進行更新:
G(λdeg,φdeg)=G(λdeg,φdeg)+||l1||×||l2||×sin(2θ) (3)
式(3)中,G(λdeg,φdeg)表示(λ',φ')所落入的子格網(wǎng)的值,其表示影像中與該子格網(wǎng)對應(yīng)的直線段的響應(yīng)強度;λdeg和φdeg分別表示λ'和φ'轉(zhuǎn)換成度數(shù)表示后經(jīng)取整得到的整數(shù)值;||l1||和||l2||分別代表直線段l1和l2的長度;θ代表直線段l1和l2的夾角。
極坐標格網(wǎng)中每個子格網(wǎng)的值代表影像中與該子格網(wǎng)對應(yīng)的直線段的響應(yīng)強度,該數(shù)值越大,則代表這個子格網(wǎng)對應(yīng)越多的線段,即越有可能對應(yīng)一個滅點。
三、基于兩條直線段組成的最小解算集合(minimal solution set)和滅點的正交特性,獲得所有可能的滅點假設(shè)。
本步驟進一步包括以下子步驟:
步驟3.1,利用兩條直線段組成的最小解算集合得到第一個滅點v1所有可能的滅點假設(shè)。
本子步驟的具體實現(xiàn)過程如下:
首先討論兩條直線段組成的最小解算集合的概率問題。給定一張影像,假設(shè)其中共有N條直線段,且這N條直線段不存在噪聲,即所有的直線段都有與之對應(yīng)的滅點。與曼哈頓世界坐標系三個方向?qū)?yīng)的滅點分別記為v1、v2和v3。N條直線段對應(yīng)于滅點v1、v2、v3的直線段數(shù)目分別為n1、n2和n3。在這N條直線段中任意選取2條直線段構(gòu)成一個最小解算集合,那么這2條直線段同時對應(yīng)于一個滅點的概率P為:
式(4)中,當且僅當n1=n2=n3=N/3時,P=1/3。
現(xiàn)在假設(shè)這N條直線段中有50%的直線段是噪聲,即將影像噪聲率設(shè)為0.5,那么任意最小解算集合同時對應(yīng)于一個滅點的最小概率值Pmax為1/3×0.52=1/12。設(shè)定置信度為0.9999,那么可以計算出至少需要隨機選取Its次最小解算集合,才能夠保證有0.9999的概率使得這Its次隨機選取里面至少有一次得到的最小解算集合中的2條直線段對應(yīng)的是同一個滅點。其中Its的計算如下:
Its=log(1-0.9999)/log(1-Pmax)=105 (5)
影像噪聲率和置信度均為經(jīng)驗值,可通過對采樣樣本進行重復(fù)試驗獲取合適值。本發(fā)明中置信度的取值范圍為[0.99,0.9999],并不限于0.9999;本發(fā)明中影像噪聲率的取值范圍為[0.3,0.5],并不限于0.5。
然后,在所有N條直線段里面進行105次選取,每次隨機選取兩條直線段,計算這兩條直線段的交點,這樣即可得到105個第一個滅點的假設(shè)。
步驟3.2,利用正交特性和窮舉采樣得到第二個滅點v2所有可能的滅點假設(shè)。
由于正交特性,第二個滅點v2應(yīng)該存在于以第一個滅點v1為法向量的平面與等效球面相交得到的圓弧上。因此可以在這個圓弧上進行密集采樣來得到第二個滅點v2所有可能的滅點假設(shè)。
假設(shè)第一個滅點v1=(X1,Y1,Z1)T,第二個滅點v2=(X2,Y2,Z2)T,將第二個滅點的經(jīng)緯度記為(λ2,φ2),那么存在下面兩個方程式:
以及
X1×X2+Y1×Y2+Z1×Z2=0 (7)
滅點v1對應(yīng)的圓弧上,對經(jīng)度取值按照1°的采樣間隔進行密集采樣,這樣可以得到360個采樣點,該采樣點的經(jīng)度值記為{1°,2°,3°,...,360°}。由于各采樣點的經(jīng)度值已知,聯(lián)立方程式(6)和(7),即可求出其對應(yīng)的緯度值。
得到各采樣點的經(jīng)緯度后,根據(jù)公式(6)即可得到各采樣點對應(yīng)的滅點v2=(X2,Y2,Z2)T,利用公式(1)~(2)即可反算得到第二個滅點v2在影像坐標系下的坐標。
對于一個可能的滅點v1,可以在其對應(yīng)的圓弧上得到360個采樣點。對于所有105個滅點v1的可能值,可以得到總計150×360=37800個可能的采樣點,從而獲得150×360=37800個可能的滅點v2。
步驟3.3,利用正交特性得到第三個滅點v3所有可能的滅點假設(shè)。
對于每一個可能的滅點v1和v2,可以通過叉乘得到第三個滅點v3,即:
通過子步驟3.1、3.2和3.3,即可得到滅點v1、v2和v3的總計37800個可能的滅點假設(shè)。
四、基于極坐標格網(wǎng)對所有可能的滅點假設(shè)進行驗證,選取最為精確的滅點假設(shè)作為最后的滅點提取結(jié)果。
本步驟進一步包括以下子步驟:
3.1對每一個滅點v1、v2和v3的假設(shè),利用公式(1)~(2)計算對應(yīng)的經(jīng)緯度(λ1,φ1)、(λ2,φ2)和(λ3,φ3)。該假設(shè)的直線段響應(yīng)強度S即為經(jīng)緯度(λ1,φ1)、(λ2,φ2)和(λ3,φ3)所落入的子格網(wǎng)的值之和,即:
其中,G(λkdeg,φkdeg)表示(λk,φk)所落入的子格網(wǎng)的值,λkdeg和φkdeg分別表示λk和φk轉(zhuǎn)換成度數(shù)表示后經(jīng)取整得到的整數(shù)值,k=1,2,3。
3.2選取最大的直線段響應(yīng)強度S所對應(yīng)的滅點假設(shè)作為最終的滅點提取結(jié)果。