本發(fā)明涉及一種單幅圖像的三維配準(zhǔn)方法,尤其涉及一種基于幾何投影信息的以消隱點(diǎn)為特征進(jìn)行相機(jī)標(biāo)定的單幅圖像三維配準(zhǔn)方法。
背景技術(shù):
三維重建是通過(guò)運(yùn)用二維圖像中的基本信息來(lái)恢復(fù)三維空間信息,也就是需要研究二維圖像中的點(diǎn)、線、面的二維坐標(biāo)與三維空間中對(duì)應(yīng)的點(diǎn)、線、面之間的匹配關(guān)系,從而對(duì)空間物體的大小和位置關(guān)系進(jìn)行定量配準(zhǔn)分析。由于具備過(guò)程簡(jiǎn)單、速度快、投入少、效率高等優(yōu)點(diǎn),用單幅圖像進(jìn)行三維重建配準(zhǔn)越來(lái)越多地得到人們的重視?,F(xiàn)有的單幅圖像配準(zhǔn)方法,主要可分為三大類別:
1、基于特征統(tǒng)計(jì)學(xué)習(xí)方法。這種方法建立在大型的目標(biāo)數(shù)據(jù)庫(kù)基礎(chǔ)上,將數(shù)據(jù)庫(kù)中的目標(biāo)與重建目標(biāo)進(jìn)行特征比對(duì),建立概率函數(shù),通過(guò)概率大小進(jìn)行目標(biāo)深度的配準(zhǔn)。目前已用的概率模型有馬爾科夫模型、隱馬爾科夫模型等。
2、基于形狀恢復(fù)技術(shù)。此方法的核心在于抽取二維圖像中的三維線索(例如立體光、陰影、輪廓、紋理、運(yùn)動(dòng)等),進(jìn)行物體的三維形貌恢復(fù)、配準(zhǔn)。目前大多數(shù)形狀恢復(fù)技術(shù)的基礎(chǔ)是朗伯體反射圖方程,它對(duì)成像條件、光學(xué)特征都做了理想假設(shè)。
3、基于圖像中的幾何投影信息。其基本原理是利用圖像中含有的大量幾何屬性的約束進(jìn)行相機(jī)或平面標(biāo)定,從而估計(jì)相機(jī)的內(nèi)外參數(shù),然后對(duì)圖像建立數(shù)字化模型,最后完成三維模型的配準(zhǔn)和重建。
基于特征統(tǒng)計(jì)學(xué)習(xí)方法的單幅圖像三維配準(zhǔn)雖然取得了較好的效果,但當(dāng)圖像與目標(biāo)數(shù)據(jù)庫(kù)不一致時(shí),效果不夠理想,甚至完全背離。配準(zhǔn)效果對(duì)目標(biāo)數(shù)據(jù)庫(kù)的依賴性很強(qiáng),而精準(zhǔn)、全面的目標(biāo)數(shù)據(jù)庫(kù)獲取難度很高,所以此種方法較其余兩種方法成本和難度較高。
基于形狀恢復(fù)技術(shù)的配準(zhǔn)方法對(duì)光線和灰度要求較大,需要對(duì)圖像的光度和灰度做預(yù)處理,并且圖像分辨率高低和前景背景灰度差別都會(huì)影響配準(zhǔn)的效果,而且此項(xiàng)技術(shù)若沒(méi)有其它約束條件,對(duì)形如凸面和凹面等曲面物體不能實(shí)現(xiàn)唯一匹配與重建。
基于幾何投影信息的單幅圖像三維配準(zhǔn)技術(shù)對(duì)含有幾何結(jié)構(gòu)的目標(biāo)圖像取得了較理想的效果,但是測(cè)量誤差累積較多。因此,如何更準(zhǔn)確地獲取幾何特征從而減少配準(zhǔn)誤差,是值得研究的問(wèn)題。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明的目的在于提供一種單幅圖像的三維配準(zhǔn)方法,能夠克服基于幾何投影信息的單幅圖像三維配準(zhǔn)技術(shù)的誤差累積較多的缺點(diǎn),得到更加準(zhǔn)確的三維重建效果。
本發(fā)明的技術(shù)方案是:
一種單幅圖像的三維配準(zhǔn)方法,包括三個(gè)步驟:一、相機(jī)標(biāo)定步驟:對(duì)單幅圖像檢測(cè)直線信息并提取消隱點(diǎn),以所述消隱點(diǎn)作為特征計(jì)算出相機(jī)的內(nèi)外參數(shù)即標(biāo)定信息,包括焦距和旋轉(zhuǎn)矩陣;二、交互式建模步驟:利用所述標(biāo)定信息進(jìn)行結(jié)構(gòu)約束,以此完成交互式三維場(chǎng)景結(jié)構(gòu)的建模;三、相機(jī)注冊(cè)步驟:將分布在一個(gè)或多個(gè)局部世界坐標(biāo)系中的三維場(chǎng)景結(jié)構(gòu)注冊(cè)到統(tǒng)一的三維場(chǎng)景中,得到最終的三維配準(zhǔn)重建效果;其中,所述相機(jī)標(biāo)定步驟中采用網(wǎng)格法提取粗精度消隱點(diǎn),采用PClines空間轉(zhuǎn)換和對(duì)齊直線點(diǎn)檢測(cè)的算法對(duì)所述粗精度消隱點(diǎn)提純得到候選消隱點(diǎn),對(duì)所述候選消隱點(diǎn)進(jìn)行優(yōu)化更新得到典型消隱點(diǎn),以所述典型消隱點(diǎn)為相機(jī)標(biāo)定特征建立曼哈頓世界模型約束,對(duì)所述典型消隱點(diǎn)進(jìn)行分析,得出相機(jī)的內(nèi)外參數(shù)。
對(duì)于步驟一,所述相機(jī)標(biāo)定可以包括五個(gè)部分,分別是:1、直線檢測(cè):檢測(cè)所述單幅圖像中局部的直輪廓;2、直線優(yōu)化與去噪:對(duì)直線檢測(cè)結(jié)果進(jìn)行優(yōu)化;3、候選消隱點(diǎn)獲?。夯趦?yōu)化后的直線檢測(cè)結(jié)果信息提取消隱點(diǎn),包括采用網(wǎng)格法的粗精度消隱點(diǎn)提取和采用PClines空間轉(zhuǎn)換和對(duì)齊直線點(diǎn)檢測(cè)算法的粗精度消隱點(diǎn)提純兩個(gè)步驟;4、候選消隱點(diǎn)優(yōu)化:對(duì)所獲取的消隱點(diǎn)進(jìn)行優(yōu)化;5、場(chǎng)景約束分析及相機(jī)參數(shù)計(jì)算:通過(guò)對(duì)優(yōu)化后的消隱點(diǎn)的分析計(jì)算相機(jī)的內(nèi)外參數(shù),其中所述直線檢測(cè)優(yōu)選采用LSD算法:
首先對(duì)所述單幅圖像進(jìn)行高斯濾波和降采樣;
然后計(jì)算每個(gè)像素點(diǎn)的梯度、和梯度等高線角度,相關(guān)公式為:
, (1)
, (2)
, (3)
其中,表示灰度圖像上像素點(diǎn)處的灰度值,對(duì)計(jì)算得到的經(jīng)過(guò)區(qū)域生長(zhǎng)算法得到直線支撐區(qū)域;
進(jìn)行矩形估計(jì),即找到每個(gè)所述直線支撐區(qū)域的最小外接矩形;
對(duì)所述矩形進(jìn)行篩選、調(diào)整:定義矩形內(nèi)像素點(diǎn)的相對(duì)于矩形主方向角度偏差在以內(nèi)的點(diǎn)為對(duì)齊點(diǎn),循環(huán)計(jì)算所述矩形的對(duì)齊點(diǎn)密度以及誤報(bào)數(shù),相關(guān)公式為:
, (4)
, (5)
其中,表示當(dāng)前矩形,表示當(dāng)前矩形的誤報(bào)數(shù),表示當(dāng)前矩形的對(duì)齊點(diǎn)密度;為圖像高度,為圖像寬度,為矩形內(nèi)像素總數(shù),為矩形內(nèi)對(duì)齊點(diǎn)總數(shù),表示像素點(diǎn)是對(duì)齊點(diǎn)的概率且初始值定為,為嘗試不同值的個(gè)數(shù),
判斷所計(jì)算出的對(duì)齊點(diǎn)密度是否大于設(shè)定的對(duì)齊點(diǎn)密度閾值且誤報(bào)數(shù)是否小于設(shè)定的誤報(bào)數(shù)閾值,若不滿足,則對(duì)相應(yīng)的直線支撐區(qū)域進(jìn)行截?cái)嗵幚砘騾?shù)調(diào)整并重新確定矩形,再對(duì)新的矩形依據(jù)公式(4)、(5)重新計(jì)算并判斷,直至找到對(duì)齊點(diǎn)密度大于設(shè)定的對(duì)齊點(diǎn)密度閾值且誤報(bào)數(shù)小于設(shè)定的誤報(bào)數(shù)閾值的矩形;
每個(gè)矩形對(duì)應(yīng)一條直線段,直線段的方向即為矩形主方向,直線段的長(zhǎng)度等于矩形的長(zhǎng)邊的長(zhǎng)度,所得到的直線段即為直線檢測(cè)的結(jié)果。
所述直線優(yōu)化與去噪的結(jié)果是得到優(yōu)化后的直線集,優(yōu)選包括續(xù)接斷開(kāi)的直線段,是對(duì)直線段進(jìn)行兩兩判斷,將符合條件的兩條直線段進(jìn)行續(xù)接,續(xù)接后的直線段再與其他直線段繼續(xù)續(xù)接,直至完成所有可能的續(xù)接,其步驟包括判斷所選取兩條直線段是否符合續(xù)接條件以及對(duì)于符合續(xù)接條件的直線段進(jìn)行續(xù)接,其中,判斷所選取兩條直線段是否符合續(xù)接條件的方法是:從直線段的兩端點(diǎn)和向直線段做垂線得到垂點(diǎn);從直線段的兩端點(diǎn)和向直線段做垂線得到垂點(diǎn),
定義直線段、的距離為:
, (6)
其中,表示直線段的長(zhǎng)度,
當(dāng)直線段、的夾角小于給定閾值,且直線段、的距離小于,則認(rèn)定直線段、符合續(xù)接條件;
所述對(duì)于符合續(xù)接條件的直線段進(jìn)行續(xù)接的方法是:選取兩條直線段中誤報(bào)數(shù)較小的作為標(biāo)準(zhǔn)調(diào)整另一條直線段的斜率,具體為,假設(shè),則延長(zhǎng)直線段交直線段或其延長(zhǎng)線于點(diǎn),將直線段繞點(diǎn)以最小角度旋轉(zhuǎn)到直線段的延長(zhǎng)線上,再連接旋轉(zhuǎn)后的兩條直線段相近的端點(diǎn)得到新直線段,刪除原直線段、。
所述直線優(yōu)化與去噪還可以包括剔除過(guò)短直線段,其方法可以是:設(shè)定直線段長(zhǎng)度閾值,如果直線段長(zhǎng)度小于所述直線段長(zhǎng)度閾值,則剔除此直線段。
所述網(wǎng)格法具體為:對(duì)消隱點(diǎn)提取所基于的直線集進(jìn)行遍歷,當(dāng)兩條直線均未被已有消隱點(diǎn)對(duì)應(yīng)時(shí),取交點(diǎn)并將此交點(diǎn)的圖像坐標(biāo)轉(zhuǎn)換到以圖像平面的主點(diǎn)為原點(diǎn)、兩軸方向不變的坐標(biāo)系中,得到新的橫、縱坐標(biāo)、,將轉(zhuǎn)換后的坐標(biāo)按公式(7)和公式(8)進(jìn)行極坐標(biāo)有限映射,其中表示圖像的高度,
, (7)
, (8)
將映射后的坐標(biāo)值對(duì)應(yīng)到以、為坐標(biāo)軸的網(wǎng)格中,將對(duì)應(yīng)網(wǎng)格的交點(diǎn)數(shù)加1,本次遍歷完成后,得到網(wǎng)格圖像矩陣,對(duì)網(wǎng)格圖像矩陣進(jìn)行均值濾波,輸出濾波后網(wǎng)格圖像矩陣中的最大值所對(duì)應(yīng)的網(wǎng)格坐標(biāo),即為此次遍歷下獲得的粗精度消隱點(diǎn),依此方法進(jìn)行N次遍歷,N為自然數(shù)且2≤N≤5,獲得N個(gè)粗精度消隱點(diǎn),前一次遍歷所得到的粗精度消隱點(diǎn)所對(duì)應(yīng)的直線集不用在下一次遍歷的直線集中;
所述PClines空間轉(zhuǎn)換和對(duì)齊直線點(diǎn)檢測(cè)的過(guò)程具體為:針對(duì)一個(gè)粗精度消隱點(diǎn),首先將其對(duì)應(yīng)的直線子集轉(zhuǎn)換到PClines空間,PClines空間包含直空間和彎空間,直空間的縱軸和縱軸分別對(duì)應(yīng)于圖像空間的橫軸和縱軸,彎空間的縱軸和縱軸分別對(duì)應(yīng)于圖像空間的橫軸和縱軸,以此將消隱點(diǎn)檢測(cè)轉(zhuǎn)化成在對(duì)偶空間中提取直線模型的問(wèn)題,完成對(duì)偶空間轉(zhuǎn)換后,使用對(duì)齊直線點(diǎn)檢測(cè)算法分別對(duì)兩個(gè)對(duì)偶空間中的點(diǎn)集提取直線模型,將所得的直線模型反轉(zhuǎn)換到圖像空間即得到候選消隱點(diǎn)集和對(duì)應(yīng)的值。
所述候選消隱點(diǎn)優(yōu)化可以包括兩個(gè)方面的優(yōu)化,第一:針對(duì)候選消隱點(diǎn)對(duì)應(yīng)的直線子集,通過(guò)計(jì)算消隱點(diǎn)到每條直線的距離權(quán)重和來(lái)更新消隱點(diǎn),其中直線的權(quán)重由其長(zhǎng)度的平方?jīng)Q定,給定條齊次直線向量,計(jì)算矩陣,
, (9)
其中,是歸一化的直線權(quán)重,其中最長(zhǎng)直線的設(shè)為1,通過(guò)公式(10),用奇異值分解(Singular Value Decomposition簡(jiǎn)稱SVD)的方法更新消隱點(diǎn),其中,為矩陣,而為向量,
, (10)
計(jì)算過(guò)程中,若出現(xiàn)新消隱點(diǎn)與原消隱點(diǎn)差別超過(guò)給定閾值的情況,則本次更新無(wú)效;
第二:使用單鏈接聚類算法剔除同類消隱點(diǎn),將每個(gè)消隱點(diǎn)設(shè)置為單獨(dú)的類并計(jì)算類之間的距離,采用的距離計(jì)算公式為:
, (11)
如果計(jì)算出的距離小于給定閾值,則認(rèn)為這兩個(gè)消隱點(diǎn)為同類消隱點(diǎn),保留其中值較小的消隱點(diǎn);
通過(guò)所述候選消隱點(diǎn)優(yōu)化得到集成有對(duì)應(yīng)直線所包含的幾何信息的典型消隱點(diǎn)。
所述場(chǎng)景約束分析及相機(jī)參數(shù)計(jì)算是針對(duì)曼哈頓世界模型約束進(jìn)行的,優(yōu)選包括如下步驟:
步驟1,取直線對(duì)應(yīng)數(shù)最多的兩個(gè)消隱點(diǎn)和,記它們的圖像坐標(biāo)分別為和,、在相機(jī)坐標(biāo)系下的坐標(biāo)分別為、,由曼哈頓世界模型約束可得到焦距:
; (12)
步驟2:計(jì)算與這兩個(gè)消隱點(diǎn)均正交的第三個(gè)消隱點(diǎn)的相機(jī)坐標(biāo)并轉(zhuǎn)換回圖像平面;
步驟3:按所述候選消隱點(diǎn)優(yōu)化的方法優(yōu)化第三個(gè)消隱點(diǎn);
步驟4:取上述三個(gè)消隱點(diǎn)中縱坐標(biāo)絕對(duì)值最大且與圖像縱軸夾角最小者作為空間中垂直方向上的消隱點(diǎn);
步驟5:根據(jù)場(chǎng)景先驗(yàn)信息,計(jì)算出所述旋轉(zhuǎn)矩陣。
對(duì)于步驟二,所述交互式建??梢园?、建立初始模型:由二維圖元生成相對(duì)應(yīng)的三維體元;2、初始模型后處理:計(jì)算并繪制三維可視表面兩部分;
所述建立初始模型所基于的基礎(chǔ)定義是:三維空間中的幾何結(jié)構(gòu)為體元,其在二維圖像平面上的投影為圖元,場(chǎng)景圖,其中表示用戶輸入的圖元及相應(yīng)的體元,表示體元之間的空間位置關(guān)系;
所述建立初始模型所應(yīng)遵循的坐標(biāo)系約束及坐標(biāo)依賴原則為:1)生成的體元必須滿足世界坐標(biāo)系約束,所有圖元及體元的坐標(biāo)信息均轉(zhuǎn)換到相機(jī)坐標(biāo)系下表示;2)按照參考性,體元分為被參考體元和參考體元兩類,同一體元同時(shí)只能歸結(jié)為一類;3)新的體元被創(chuàng)建時(shí),如果能確定其被參考體元,則認(rèn)為該體元為參考體元,同時(shí)以被參考體元所在的局部世界坐標(biāo)系來(lái)定位該體元,否則認(rèn)為該體元為被參考體元,其坐標(biāo)位置使用某個(gè)初始位置來(lái)進(jìn)行初始化;4)每個(gè)被參考體元都對(duì)應(yīng)一個(gè)局部的世界坐標(biāo)系,當(dāng)有體元以該被參考體元為參考時(shí),其坐標(biāo)使用該局部世界坐標(biāo)系中的坐標(biāo)進(jìn)行表示;5)由于參考關(guān)系而更新某個(gè)體元的坐標(biāo)信息時(shí),需要更新與之相關(guān)的體元坐標(biāo),更新原則如下:若待更新的體元為被參考體元,則同時(shí)更新所有參考體元的體元坐標(biāo),否則更新其被參考體元的坐標(biāo)信息,從被參考體元出發(fā)更新所有參考該被參考體元的體元坐標(biāo);
所述建立初始模型可以包括針對(duì)點(diǎn)、直線、長(zhǎng)方體和多面體體元的生成,其算法具體為:
1)點(diǎn)圖元的體元生成算法:根據(jù)點(diǎn)在空間所在的位置分為四類,即已知點(diǎn)、孤立點(diǎn)、直線上點(diǎn)和面上點(diǎn),對(duì)于已知點(diǎn),直接返回已知點(diǎn)在場(chǎng)景圖中的編號(hào);對(duì)于孤立點(diǎn),選擇該點(diǎn)視線方向上的任意點(diǎn)作為該點(diǎn)對(duì)應(yīng)的體元;對(duì)于直線上點(diǎn),根據(jù)直線的體元與圖元之間的幾何比例關(guān)系計(jì)算得到;對(duì)于面上點(diǎn),根據(jù)多邊形的體元與圖元之間的幾何比例關(guān)系計(jì)算得到;
2)直線圖元的體元生成算法:通過(guò)構(gòu)建兩個(gè)點(diǎn)圖元對(duì)應(yīng)的體元,在此基礎(chǔ)上根據(jù)兩個(gè)點(diǎn)體元之間的空間位置關(guān)系完成直線體元的生成;
當(dāng)直線與某一消隱點(diǎn)方向一致時(shí),可以分四種情況對(duì)場(chǎng)景圖進(jìn)行更新:
i)若直線首尾端點(diǎn)對(duì)應(yīng)體元均為被參考體元,則以首端點(diǎn)對(duì)應(yīng)體元為參考更新尾端點(diǎn)對(duì)應(yīng)體元坐標(biāo),同時(shí)更新所有以尾端點(diǎn)對(duì)應(yīng)體元為參考的其他體元坐標(biāo);
ii)若直線首端點(diǎn)對(duì)應(yīng)體元為參考體元,尾端點(diǎn)對(duì)應(yīng)體元為被參考體元,則將尾端點(diǎn)對(duì)應(yīng)體元所在的局部世界坐標(biāo)系轉(zhuǎn)換到首端點(diǎn)對(duì)應(yīng)體元所在的局部世界坐標(biāo)系中,反之也成立;
iii)若直線首尾端點(diǎn)對(duì)應(yīng)體元均為參考體元,且二者不在同一局部世界坐標(biāo)系中,則將尾端點(diǎn)對(duì)應(yīng)體元所在的局部世界坐標(biāo)系轉(zhuǎn)換到首端點(diǎn)對(duì)應(yīng)體元所在的局部世界坐標(biāo)系中;
iv)若直線首尾端點(diǎn)對(duì)應(yīng)體元均為參考體元,且二者均在同一局部世界坐標(biāo)系中,則用首端點(diǎn)對(duì)應(yīng)體元重新定位尾端點(diǎn)對(duì)應(yīng)體元,使兩者在空間中與相應(yīng)軸向一致;
當(dāng)直線與任意消隱點(diǎn)方向均不一致時(shí),可以分三種情況進(jìn)行更新:
i)若直線首尾端點(diǎn)對(duì)應(yīng)體元均為參考體元,且二者均在同一局部世界坐標(biāo)系中,則將首尾端點(diǎn)對(duì)應(yīng)體元組合成一個(gè)直線體元,置于當(dāng)前局部世界坐標(biāo)系中;
ii)若直線首端點(diǎn)對(duì)應(yīng)體元為參考體元,其直接參考體元為面體元,且尾端點(diǎn)對(duì)應(yīng)體元為被參考體元,則更新尾端點(diǎn)對(duì)應(yīng)體元,使其也處于首端點(diǎn)對(duì)應(yīng)體元所在的平面上,并更新所有以尾端點(diǎn)對(duì)應(yīng)體元為參考的其他體元;
iii)其他情況,由于無(wú)法通過(guò)任何方法得知兩個(gè)端點(diǎn)體元的空間位置關(guān)系,故可認(rèn)為此種情況的交互式操作無(wú)效;
3)長(zhǎng)方體和多面體體元生成算法:
首先定義空間中兩鄰邊分別平行于一條世界坐標(biāo)系坐標(biāo)軸的矩形為參考矩形,參考矩形投影到圖像平面上形成的兩組對(duì)邊分別經(jīng)過(guò)一個(gè)消隱點(diǎn)方向,規(guī)定交互式拾取的參考矩形和多邊形均位于場(chǎng)景地面上;
構(gòu)建長(zhǎng)方體體元時(shí),首先指定參考矩形兩個(gè)對(duì)角頂點(diǎn)在圖像上的位置,然后根據(jù)消隱點(diǎn)特性計(jì)算參考矩形剩余的兩個(gè)頂點(diǎn)的圖像坐標(biāo),再通過(guò)直線體元生成方法依次生成四條直線體元,組合形成矩形體元,最后,將矩形體元按照垂直消隱點(diǎn)方向進(jìn)行拔高處理即得到長(zhǎng)方體體元;
構(gòu)建多面體體元時(shí),先在圖像上交互拾取一個(gè)多邊形體元,在此基礎(chǔ)上將多邊形體元按照垂直消隱點(diǎn)方向進(jìn)行拔高處理即生成相應(yīng)的多面體體元,多邊形體元的各邊不一定平行于世界坐標(biāo)系的坐標(biāo)軸,但多邊形各頂點(diǎn)滿足共面的約束關(guān)系。
所述初始模型后處理可以包括體元三角化和紋理生成,所述體元三角化為:采用三角面片的劃分方法,首先構(gòu)建空的三角面片體元集合,遍歷中的體元,將三角化后得到的面片體元放入中,對(duì)中投影面積大于給定閾值的三角面片重新劃分并更新;所述紋理生成為:用公式(13)對(duì)集合中所有面片體元的所有頂點(diǎn)計(jì)算得到相應(yīng)的紋理坐標(biāo),
, (13)
其中,、分別表示圖像坐標(biāo)系和相機(jī)坐標(biāo)系下的點(diǎn),表示相機(jī)的焦距。
對(duì)于步驟三,所述相機(jī)注冊(cè)是將分布在一個(gè)或多個(gè)局部世界坐標(biāo)系中的所述初始模型注冊(cè)到統(tǒng)一的三維場(chǎng)景中,主要包括調(diào)整相機(jī)旋轉(zhuǎn)矩陣、相機(jī)坐標(biāo)系轉(zhuǎn)換到局部世界坐標(biāo)系、局部世界坐標(biāo)系轉(zhuǎn)換到三維場(chǎng)景模型坐標(biāo)系和計(jì)算視錐體參數(shù)四個(gè)部分,分別為:
調(diào)整相機(jī)旋轉(zhuǎn)矩陣:設(shè)相機(jī)中心到垂直消隱點(diǎn)的向量在圖像平面的投影為,令相機(jī)中心到拾取直線對(duì)應(yīng)消隱點(diǎn)的向量在圖像平面的投影為,另一向量為,按照拍攝場(chǎng)景時(shí)相機(jī)的俯仰將消隱點(diǎn)分布分為四種情況,根據(jù)局部世界坐標(biāo)系和相機(jī)坐標(biāo)系的對(duì)應(yīng)關(guān)系分別對(duì)所述旋轉(zhuǎn)矩陣進(jìn)行調(diào)整:
a、垂直消隱點(diǎn)位于圖像平面的主點(diǎn)的下方,拾取直線對(duì)應(yīng)的水平消隱點(diǎn)位于圖像主點(diǎn)的右方,此時(shí),,,據(jù)此計(jì)算得到調(diào)整后的旋轉(zhuǎn)矩陣,,
b、垂直消隱點(diǎn)位于圖像平面的主點(diǎn)的下方,拾取直線對(duì)應(yīng)的水平消隱點(diǎn)位于圖像主點(diǎn)的左方,此時(shí),,,據(jù)此計(jì)算得到調(diào)整后的旋轉(zhuǎn)矩陣,,
c、垂直消隱點(diǎn)位于圖像平面的主點(diǎn)的上方,拾取直線對(duì)應(yīng)的水平消隱點(diǎn)位于圖像主點(diǎn)的右方,此時(shí),,,據(jù)此可計(jì)算得到調(diào)整后的旋轉(zhuǎn)矩陣,,
d、垂直消隱點(diǎn)位于圖像平面的主點(diǎn)的上方,拾取直線對(duì)應(yīng)的水平消隱點(diǎn)位于圖像主點(diǎn)的左方,此時(shí),,,據(jù)此計(jì)算得到調(diào)整后的旋轉(zhuǎn)矩陣,,
其中,、、分別為向量在局部世界坐標(biāo)系下的坐標(biāo)表示,、、分別為向量在相機(jī)坐標(biāo)系下的坐標(biāo)表示;
相機(jī)坐標(biāo)系轉(zhuǎn)換到局部世界坐標(biāo)系:
用戶在圖像上拾取過(guò)消隱點(diǎn)的直線,它是空間直線在圖像平面上的投影,為相機(jī)中心,為圖像主點(diǎn),這里約定,圖像坐標(biāo)系以圖像平面左上頂點(diǎn)為原點(diǎn),水平向右為橫軸,豎直向下為縱軸,主點(diǎn)為圖像平面的中心;相機(jī)坐標(biāo)系以圖像平面水平向右為橫軸,豎直向下為縱軸,視線方向?yàn)樨Q軸,記的相機(jī)坐標(biāo)、、分別為、、,假設(shè)兩點(diǎn)的相機(jī)坐標(biāo)為、,
根據(jù)相機(jī)標(biāo)定和調(diào)整旋轉(zhuǎn)矩陣的結(jié)果和構(gòu)造局部世界坐標(biāo)系到相機(jī)坐標(biāo)系的轉(zhuǎn)換矩陣,相機(jī)坐標(biāo)系到局部世界坐標(biāo)系的轉(zhuǎn)換矩陣為,通過(guò)這個(gè)轉(zhuǎn)換矩陣能夠獲得相機(jī)坐標(biāo)系上任意一點(diǎn)在局部世界坐標(biāo)系下的參考坐標(biāo),設(shè)直線端點(diǎn)、在局部世界坐標(biāo)系中的坐標(biāo)為、,則:
; (14)
局部世界坐標(biāo)系轉(zhuǎn)換到三維場(chǎng)景模型坐標(biāo)系:計(jì)算局部世界坐標(biāo)系和三維場(chǎng)景模型坐標(biāo)系的兩條對(duì)應(yīng)直線的夾角并構(gòu)造旋轉(zhuǎn)矩陣,計(jì)算局部世界坐標(biāo)系與三維場(chǎng)景模型坐標(biāo)系的變換尺度因子并構(gòu)造縮放矩陣,得到局部世界坐標(biāo)系到三維場(chǎng)景模型坐標(biāo)系的轉(zhuǎn)換矩陣,得到從相機(jī)坐標(biāo)系到三維場(chǎng)景模型坐標(biāo)系的完整變換矩陣為:
; (15)
計(jì)算視錐體參數(shù):相機(jī)中心在模型坐標(biāo)系中的坐標(biāo)為:
, (16)
其中,是點(diǎn)在三維場(chǎng)景模型坐標(biāo)系下坐標(biāo),
相機(jī)的up向量為:
, (17)
相機(jī)的forward向量為:
, (18)
相機(jī)的center向量為:
, (19)
根據(jù)公式(16)-(19),能夠?qū)⑾鄼C(jī)坐標(biāo)系下的坐標(biāo)轉(zhuǎn)換到統(tǒng)一的三維場(chǎng)景模型坐標(biāo)系下,三維配準(zhǔn)過(guò)程完成。
本發(fā)明的有益效果為:
本發(fā)明針對(duì)幾何投影信息技術(shù)誤差累積較多的缺點(diǎn),提供一種使用消隱點(diǎn)為特征的單幅圖像三維配準(zhǔn)方法,可更加精確地獲取消隱點(diǎn),從而較大程度規(guī)避相機(jī)標(biāo)定中產(chǎn)生的誤差,并通過(guò)交互式建模與直線特征對(duì)齊的方式,實(shí)現(xiàn)單幅二維圖像與三維模型間的對(duì)應(yīng)配準(zhǔn),從而得到更加準(zhǔn)確的三維重建效果。
由于進(jìn)行了直線優(yōu)化與去噪,使得到的優(yōu)化后直線的平行線特征比例更加集中,且噪聲等無(wú)效信息得到有效去除,在配準(zhǔn)的基礎(chǔ)操作階段就顯著降低了誤差,為后續(xù)的消隱點(diǎn)提取提供了更優(yōu)質(zhì)的信息基礎(chǔ),有助于后續(xù)獲得穩(wěn)定性更好、精度更高的消隱點(diǎn),對(duì)降低整個(gè)配準(zhǔn)過(guò)程的誤差累積有很大的意義。
由于采用網(wǎng)格法提取消隱點(diǎn)后,再利用PClines空間轉(zhuǎn)換和對(duì)齊直線點(diǎn)檢測(cè)的算法對(duì)所提取的消隱點(diǎn)進(jìn)一步提純,最終獲得了精度更為穩(wěn)定的高質(zhì)量消隱點(diǎn),進(jìn)而提高了配準(zhǔn)的準(zhǔn)確性。
由于進(jìn)行了候選消隱點(diǎn)優(yōu)化,得到集成有對(duì)應(yīng)直線所包含的幾何信息的典型消隱點(diǎn),以此作為三維配準(zhǔn)的特征依據(jù),極大地減少了配準(zhǔn)誤差。
附圖說(shuō)明
圖1是本發(fā)明的整體流程框圖;
圖2是斷開(kāi)直線的校正和續(xù)接原理示意圖;
圖3是網(wǎng)格法提取粗精度消隱點(diǎn)流程圖;
圖4是PClines空間轉(zhuǎn)換和對(duì)齊直線點(diǎn)檢測(cè)典型消隱點(diǎn)流程圖;
圖5是相機(jī)坐標(biāo)系轉(zhuǎn)換到局部世界坐標(biāo)系拾取直線示意圖。
具體實(shí)施方式
本發(fā)明提供了一種單幅圖像的三維配準(zhǔn)方法,如圖1所示,包括三個(gè)步驟:一、相機(jī)標(biāo)定:對(duì)單幅圖像檢測(cè)直線信息并提取消隱點(diǎn),以所述消隱點(diǎn)作為特征計(jì)算出相機(jī)的內(nèi)、外參數(shù)即標(biāo)定信息,包括內(nèi)參數(shù)焦距和外參數(shù)旋轉(zhuǎn)矩陣;二、交互式建模:利用所述標(biāo)定信息對(duì)交互方式下用戶輸入的三維空間幾何結(jié)構(gòu)進(jìn)行結(jié)構(gòu)約束,以此完成交互式三維場(chǎng)景結(jié)構(gòu)的建模;三、相機(jī)注冊(cè):將分布在一個(gè)或多個(gè)局部世界坐標(biāo)系中的三維場(chǎng)景結(jié)構(gòu)注冊(cè)到統(tǒng)一的三維場(chǎng)景中,得到最終的三維配準(zhǔn)重建效果。
其中,所述相機(jī)標(biāo)定步驟是借助于圖像中消隱點(diǎn)信息,確定相機(jī)的內(nèi)、外參數(shù),得到有效的成像模型,以達(dá)到在圖像平面上像素點(diǎn)與三維場(chǎng)景模型坐標(biāo)系中的點(diǎn)之間建立映射的目的,優(yōu)選采用網(wǎng)格法提取粗精度消隱點(diǎn),采用PClines空間轉(zhuǎn)換(the PClines dual spaces)和對(duì)齊直線點(diǎn)檢測(cè)(the point alignment detection)的算法對(duì)所述粗精度消隱點(diǎn)提純得到候選消隱點(diǎn),對(duì)所述候選消隱點(diǎn)進(jìn)行優(yōu)化更新得到典型消隱點(diǎn),以所述典型消隱點(diǎn)為相機(jī)標(biāo)定特征建立曼哈頓世界模型約束,對(duì)所述典型消隱點(diǎn)進(jìn)行分析,得出相機(jī)的內(nèi)外參數(shù)。
本發(fā)明通過(guò)采用網(wǎng)格法提取消隱點(diǎn)后,再利用PClines空間轉(zhuǎn)換和對(duì)齊直線點(diǎn)檢測(cè)算法對(duì)所提取的消隱點(diǎn)進(jìn)一步提純,獲得了精度更為穩(wěn)定的高質(zhì)量消隱點(diǎn),進(jìn)而提高了配準(zhǔn)的準(zhǔn)確性。不僅如此,還繼續(xù)進(jìn)行了候選消隱點(diǎn)優(yōu)化,得到集成有對(duì)應(yīng)直線所包含的幾何信息的典型消隱點(diǎn),并以此作為三維配準(zhǔn)的特征依據(jù),較大程度上規(guī)避了相機(jī)標(biāo)定中產(chǎn)生的誤差,極大地減少了配準(zhǔn)過(guò)程中的誤差累積,從而為得到更加準(zhǔn)確的三維重建效果提供了先決條件。
對(duì)于步驟一,所述相機(jī)標(biāo)定可以包括五個(gè)部分,分別是:1、直線檢測(cè):檢測(cè)所述單幅圖像中局部的直輪廓;2、直線優(yōu)化與去噪:對(duì)直線檢測(cè)結(jié)果進(jìn)行優(yōu)化;3、候選消隱點(diǎn)獲?。夯趦?yōu)化后的直線檢測(cè)結(jié)果信息提取消隱點(diǎn),包括采用網(wǎng)格法的粗精度消隱點(diǎn)提取和采用PClines空間轉(zhuǎn)換和對(duì)齊直線點(diǎn)檢測(cè)算法的粗精度消隱點(diǎn)提純兩個(gè)步驟;4、候選消隱點(diǎn)優(yōu)化:對(duì)所獲取的消隱點(diǎn)進(jìn)行優(yōu)化;5、場(chǎng)景約束分析及相機(jī)參數(shù)計(jì)算:通過(guò)對(duì)優(yōu)化后的消隱點(diǎn)的分析計(jì)算相機(jī)的內(nèi)外參數(shù)。
1、直線檢測(cè):
直線檢測(cè)優(yōu)選采用LSD算法,該算法能夠快速檢測(cè)圖像中的直線段,其核心是像素合并與誤差控制,主要用于幾何形狀明顯的目標(biāo)的檢測(cè),具體過(guò)程如下:
首先對(duì)所述單幅圖像進(jìn)行高斯濾波和降采樣,縮小單幅圖像的大小,減弱或者消除單幅圖像中的鋸齒效應(yīng)。
然后計(jì)算每個(gè)像素點(diǎn)的梯度、和梯度等高線角度,相關(guān)公式為:
, (1)
, (2)
, (3)
其中,表示灰度圖像上像素點(diǎn)處的灰度值,對(duì)計(jì)算得到的經(jīng)過(guò)區(qū)域生長(zhǎng)算法得到直線支撐區(qū)域。
進(jìn)行矩形估計(jì),即找到每個(gè)所述直線支撐區(qū)域的最小外接矩形。
對(duì)所述矩形進(jìn)行篩選、調(diào)整:定義矩形內(nèi)像素點(diǎn)的相對(duì)于矩形主方向(即矩形長(zhǎng)軸方向)角度偏差在以內(nèi)的點(diǎn)為對(duì)齊點(diǎn),循環(huán)計(jì)算這些矩形的對(duì)齊點(diǎn)密度以及誤報(bào)數(shù)并進(jìn)行閾值判斷,相關(guān)公式為:
, (4)
, (5)
其中,表示當(dāng)前矩形,表示當(dāng)前矩形的誤報(bào)數(shù),表示當(dāng)前矩形的對(duì)齊點(diǎn)密度;為圖像高度,為圖像寬度,為矩形內(nèi)像素總數(shù),為矩形內(nèi)對(duì)齊點(diǎn)總數(shù),表示像素點(diǎn)是對(duì)齊點(diǎn)的概率且初始值定為,為嘗試不同值的個(gè)數(shù)。
判斷所計(jì)算出的對(duì)齊點(diǎn)密度是否大于設(shè)定的對(duì)齊點(diǎn)密度閾值且誤報(bào)數(shù)是否小于設(shè)定的誤報(bào)數(shù)閾值,即是否滿足(通常閾值設(shè)為1),若不滿足,則對(duì)相應(yīng)的直線支撐區(qū)域進(jìn)行截?cái)嗵幚砘騾?shù)調(diào)整并重新確定矩形,這里所說(shuō)的參數(shù)調(diào)整是對(duì)矩形的調(diào)整,然后再對(duì)新的矩形依據(jù)公式(4)、(5)重新計(jì)算并判斷,直至找到對(duì)齊點(diǎn)密度大于設(shè)定的對(duì)齊點(diǎn)密度閾值且誤報(bào)數(shù)小于設(shè)定的誤報(bào)數(shù)閾值的矩形。
每個(gè)矩形對(duì)應(yīng)一條直線段,直線段的方向即為矩形主方向,直線段的長(zhǎng)度等于矩形的長(zhǎng)邊的長(zhǎng)度,所得到的直線段即為直線檢測(cè)的結(jié)果。
采用此種策略進(jìn)行直線檢測(cè),不僅能檢測(cè)出圖像上的直線段,而且能夠給出直線段的客觀性評(píng)價(jià)指標(biāo),為后續(xù)的消隱點(diǎn)檢測(cè)提供了額外的有價(jià)值信息。
2、直線優(yōu)化與去噪:
這個(gè)步驟主要通過(guò)續(xù)接斷開(kāi)直線段及剔除過(guò)短直線段兩部分對(duì)前面檢測(cè)到的直線進(jìn)行優(yōu)化和去噪,其結(jié)果是得到優(yōu)化后的直線集。
如圖2所示,假設(shè)在前面檢測(cè)到的直線集中有斷開(kāi)的直線段和,續(xù)接斷開(kāi)的直線段和的方法是:選取兩條直線段中誤報(bào)數(shù)(該誤報(bào)數(shù)是此前直線檢測(cè)時(shí)計(jì)算得到的誤報(bào)數(shù))較小的作為標(biāo)準(zhǔn)調(diào)整另一條直線段的斜率,具體為,假設(shè),則延長(zhǎng)直線段交直線段或其延長(zhǎng)線于點(diǎn),將直線段繞點(diǎn)以最小角度旋轉(zhuǎn)到直線段的延長(zhǎng)線上,再連接旋轉(zhuǎn)后的兩條直線段相近的端點(diǎn)得到新直線段,刪除原直線段、。續(xù)接后的直線段再與其他直線段繼續(xù)續(xù)接,直至完成所有可能的續(xù)接。
續(xù)接是對(duì)符合續(xù)接條件的直線段進(jìn)行的續(xù)接,此前先要判斷所選取兩條直線段是否符合續(xù)接條件,判斷方法是:從直線段的兩端點(diǎn)和向直線段做垂線得到垂點(diǎn);從直線段的兩端點(diǎn)和向直線段做垂線得到垂點(diǎn),圖中和分別為直線和的中點(diǎn),定義直線段、的距離為:
, (6)
其中,表示直線段的長(zhǎng)度,當(dāng)直線段、的夾角小于給定閾值,且直線段、的距離小于,則認(rèn)定直線段、符合續(xù)接條件,需要進(jìn)行接續(xù)。
剔除過(guò)短直線段的方法是:設(shè)定直線段長(zhǎng)度閾值,如果有直線段其長(zhǎng)度小于所述直線段長(zhǎng)度閾值,則認(rèn)為此直線段為噪聲形成的干擾線,將其從直線集中剔除。
經(jīng)過(guò)優(yōu)化后的直線,平行線特征比例更加集中,且噪聲等無(wú)效信息對(duì)消隱點(diǎn)提取算法穩(wěn)定性及精度的影響得到有效降低,對(duì)降低整個(gè)配準(zhǔn)過(guò)程的誤差累積有很大的意義。
3、候選消隱點(diǎn)獲?。?/p>
本發(fā)明的候選消隱點(diǎn)提取算法是網(wǎng)格統(tǒng)計(jì)法(簡(jiǎn)稱網(wǎng)格法),具體為:如圖3所示,對(duì)消隱點(diǎn)提取所基于的直線集進(jìn)行遍歷,這里是對(duì)所述優(yōu)化后的直線集進(jìn)行遍歷,可以有效減少累計(jì)誤差。當(dāng)兩條直線均未被已有消隱點(diǎn)對(duì)應(yīng)時(shí),取交點(diǎn)并將此交點(diǎn)的圖像坐標(biāo)轉(zhuǎn)換到以圖像平面的主點(diǎn)(相關(guān)定義見(jiàn)后文的各種坐標(biāo)系的約定)為原點(diǎn)、兩軸方向不變的坐標(biāo)系中,得到新的橫、縱坐標(biāo)、,將轉(zhuǎn)換后的坐標(biāo)按公式(7)和公式(8)進(jìn)行極坐標(biāo)有限映射,其中表示圖像的高度,
, (7)
, (8)
將映射后的坐標(biāo)值對(duì)應(yīng)到以、為坐標(biāo)軸的網(wǎng)格中,將對(duì)應(yīng)網(wǎng)格的交點(diǎn)數(shù)加1,然后對(duì)下一對(duì)直線取交點(diǎn),重復(fù)上述過(guò)程。凡是沒(méi)有被已有消隱點(diǎn)對(duì)應(yīng)的直線,都要兩兩直線取交點(diǎn),這樣可以防止真正消隱點(diǎn)被遺漏。本次遍歷完成后,得到網(wǎng)格圖像矩陣,對(duì)網(wǎng)格圖像矩陣進(jìn)行均值濾波,輸出濾波后網(wǎng)格圖像矩陣中的最大值所對(duì)應(yīng)的網(wǎng)格坐標(biāo),即為此次遍歷下獲得的粗精度消隱點(diǎn)。依此方法進(jìn)行N次遍歷,N為自然數(shù)且2≤N≤5,獲得N個(gè)粗精度消隱點(diǎn)。本實(shí)施例中進(jìn)行5次遍歷,獲得5個(gè)粗精度消隱點(diǎn)。前一次遍歷所得到的粗精度消隱點(diǎn)所對(duì)應(yīng)的直線集不用在下一次遍歷的直線集中。
為了進(jìn)一步獲得精度穩(wěn)定和高質(zhì)量消隱點(diǎn),進(jìn)而提高配準(zhǔn)的準(zhǔn)確性,本發(fā)明優(yōu)選對(duì)以上粗精度消隱點(diǎn)進(jìn)一步提純,如圖4所示,采用所述PClines空間轉(zhuǎn)換和對(duì)齊直線點(diǎn)檢測(cè)的算法,具體過(guò)程為:針對(duì)一個(gè)粗精度消隱點(diǎn),首先將其對(duì)應(yīng)的直線子集轉(zhuǎn)換到PClines空間,PClines空間包含直空間和彎空間,直空間的縱軸和縱軸分別對(duì)應(yīng)于圖像空間的橫軸和縱軸,彎空間的縱軸和縱軸分別對(duì)應(yīng)于圖像空間的橫軸和縱軸。通常取,相應(yīng)地,直空間有效區(qū)間為,彎空間有效區(qū)間為,落在范圍之外的點(diǎn)將被舍棄,以此將消隱點(diǎn)檢測(cè)轉(zhuǎn)化成在對(duì)偶空間中提取直線模型的問(wèn)題。完成對(duì)偶空間轉(zhuǎn)換后,使用對(duì)齊直線點(diǎn)檢測(cè)算法分別對(duì)兩個(gè)對(duì)偶空間中的點(diǎn)集提取直線模型,將所得的直線模型反轉(zhuǎn)換到圖像空間即得到候選消隱點(diǎn)集和對(duì)應(yīng)的值。
4、候選消隱點(diǎn)優(yōu)化:
本發(fā)明優(yōu)選從兩個(gè)方面進(jìn)行優(yōu)化,第一:針對(duì)候選消隱點(diǎn)對(duì)應(yīng)的直線子集,通過(guò)計(jì)算消隱點(diǎn)到每條直線的距離權(quán)重和來(lái)更新消隱點(diǎn),其中直線的權(quán)重由其長(zhǎng)度的平方?jīng)Q定,給定條齊次直線向量,計(jì)算矩陣,
, (9)
其中,是歸一化的直線權(quán)重,其中最長(zhǎng)直線的設(shè)為1。通過(guò)公式(10),用奇異值分解(Singular Value Decomposition簡(jiǎn)稱SVD)的方法更新消隱點(diǎn),其中,為矩陣,而為向量,
, (10)
計(jì)算過(guò)程中,若出現(xiàn)新消隱點(diǎn)與原消隱點(diǎn)差別超過(guò)給定閾值的情況,則本次更新無(wú)效。
第二:使用單鏈接聚類算法剔除同類消隱點(diǎn),將每個(gè)消隱點(diǎn)設(shè)置為單獨(dú)的類并計(jì)算類之間的距離,采用的距離計(jì)算公式為:
, (11)
如果計(jì)算出的距離小于給定閾值,則認(rèn)為這兩個(gè)消隱點(diǎn)為同類消隱點(diǎn),保留其中值較小的消隱點(diǎn)。
通過(guò)所述候選消隱點(diǎn)優(yōu)化得到集成有對(duì)應(yīng)直線所包含的幾何信息(包括優(yōu)化過(guò)程中用到消隱點(diǎn)對(duì)應(yīng)直線與消隱點(diǎn)本身的一致性誤差)的典型消隱點(diǎn)。以此作為三維配準(zhǔn)的特征依據(jù),可極大減少配準(zhǔn)誤差。
5、場(chǎng)景約束分析及相機(jī)參數(shù)計(jì)算:
本發(fā)明以曼哈頓世界模型約束對(duì)消隱點(diǎn)進(jìn)行分析,優(yōu)選包括如下步驟:
步驟1,取直線對(duì)應(yīng)數(shù)最多的兩個(gè)消隱點(diǎn)和,記它們的圖像坐標(biāo)分別為和,、在相機(jī)坐標(biāo)系下的坐標(biāo)分別為、,由曼哈頓世界模型約束可得到焦距:
; (12)
步驟2:計(jì)算與這兩個(gè)消隱點(diǎn)均正交的第三個(gè)消隱點(diǎn)的相機(jī)坐標(biāo)并轉(zhuǎn)換回圖像平面;
步驟3:按所述候選消隱點(diǎn)優(yōu)化的方法優(yōu)化第三個(gè)消隱點(diǎn);
步驟4:取上述三個(gè)消隱點(diǎn)中縱坐標(biāo)絕對(duì)值最大且與圖像縱軸夾角最小者作為空間中垂直方向上的消隱點(diǎn);
步驟5:根據(jù)場(chǎng)景先驗(yàn)信息(包括垂直消隱點(diǎn)和水平消隱點(diǎn)相對(duì)于主點(diǎn)的位置關(guān)系),計(jì)算出所述旋轉(zhuǎn)矩陣,即得到了相機(jī)在世界坐標(biāo)中的朝向信息。
至此,相機(jī)標(biāo)定過(guò)程結(jié)束。
對(duì)于步驟二,所述交互式建模可以包括1、建立初始模型:由二維圖元生成相對(duì)應(yīng)的三維體元;2、初始模型后處理:計(jì)算并繪制三維可視表面,恢復(fù)整個(gè)場(chǎng)景結(jié)構(gòu)。
1、建立初始模型:
建立初始模型所基于的基礎(chǔ)定義是:三維空間中的幾何結(jié)構(gòu)為體元,其在二維圖像平面上的投影為圖元,場(chǎng)景圖,其中表示用戶輸入的圖元及相應(yīng)的體元,表示體元之間的空間位置關(guān)系。由此可將交互式三維場(chǎng)景結(jié)構(gòu)的建模轉(zhuǎn)換為二維圖像平面上圖元的分隔及由圖元生成相對(duì)應(yīng)體元的過(guò)程。
所述建立初始模型所應(yīng)遵循的坐標(biāo)系約束及坐標(biāo)依賴原則為:1)生成的體元必須滿足世界坐標(biāo)系約束,所有圖元及體元的坐標(biāo)信息均轉(zhuǎn)換到相機(jī)坐標(biāo)系下表示;2)按照參考性,體元分為被參考體元和參考體元兩類,同一體元同時(shí)只能歸結(jié)為一類;3)新的體元被創(chuàng)建時(shí),如果能確定其被參考體元,則認(rèn)為該體元為參考體元,同時(shí)以被參考體元所在的局部世界坐標(biāo)系來(lái)定位該體元,否則認(rèn)為該體元為被參考體元,其坐標(biāo)位置使用某個(gè)初始位置來(lái)進(jìn)行初始化;4)每個(gè)被參考體元都對(duì)應(yīng)一個(gè)局部的世界坐標(biāo)系,當(dāng)有體元以該被參考體元為參考時(shí),其坐標(biāo)使用該局部世界坐標(biāo)系中的坐標(biāo)進(jìn)行表示;5)由于參考關(guān)系而更新某個(gè)體元的坐標(biāo)信息時(shí),需要更新與之相關(guān)的體元坐標(biāo),更新原則如下:若待更新的體元為被參考體元,則同時(shí)更新所有參考體元的體元坐標(biāo),否則更新其被參考體元的坐標(biāo)信息,從被參考體元出發(fā)更新所有參考該被參考體元的體元坐標(biāo)。
所述坐標(biāo)系約束及坐標(biāo)依賴原則是根據(jù)虛擬三維場(chǎng)景結(jié)構(gòu)和真實(shí)世界場(chǎng)景結(jié)構(gòu)的一致性原則提出的交互式建模操作應(yīng)該遵循的原則。
三維模型主要是由點(diǎn)、直線、面三種元素組合而成,因此本發(fā)明確定所述建立初始模型包括針對(duì)點(diǎn)、直線、長(zhǎng)方體和多面體體元的生成,其算法具體如下。
1)點(diǎn)圖元的體元生成算法:根據(jù)點(diǎn)在空間所在的位置分為四類,即已知點(diǎn)、孤立點(diǎn)、直線上點(diǎn)和面上點(diǎn),對(duì)于已知點(diǎn),直接返回已知點(diǎn)在場(chǎng)景圖中的編號(hào);對(duì)于孤立點(diǎn),選擇該點(diǎn)視線方向上的任意點(diǎn)作為該點(diǎn)對(duì)應(yīng)的體元;對(duì)于直線上點(diǎn),根據(jù)直線的體元與圖元之間的幾何比例關(guān)系計(jì)算得到;對(duì)于面上點(diǎn),根據(jù)多邊形的體元與圖元(多邊形體元是空間物體某個(gè)連續(xù)表面,多邊形圖元是這個(gè)表面體元投影到圖像平面后的多邊形輪廓)之間的幾何比例關(guān)系計(jì)算得到。
2)直線圖元的體元生成算法:通過(guò)構(gòu)建兩個(gè)點(diǎn)圖元對(duì)應(yīng)的體元,在此基礎(chǔ)上根據(jù)兩個(gè)點(diǎn)體元之間的空間位置關(guān)系完成直線體元的生成。
當(dāng)直線與某一消隱點(diǎn)方向一致時(shí),可以分四種情況對(duì)場(chǎng)景圖進(jìn)行更新:
i)若直線首尾端點(diǎn)對(duì)應(yīng)體元均為被參考體元,則以首端點(diǎn)對(duì)應(yīng)體元為參考更新尾端點(diǎn)對(duì)應(yīng)體元坐標(biāo),同時(shí)更新所有以尾端點(diǎn)對(duì)應(yīng)體元為參考的其他體元坐標(biāo);
ii)若直線首端點(diǎn)對(duì)應(yīng)體元為參考體元,尾端點(diǎn)對(duì)應(yīng)體元為被參考體元,則將尾端點(diǎn)對(duì)應(yīng)體元所在的局部世界坐標(biāo)系轉(zhuǎn)換到首端點(diǎn)對(duì)應(yīng)體元所在的局部世界坐標(biāo)系中,反之也成立;
iii)若直線首尾端點(diǎn)對(duì)應(yīng)體元均為參考體元,且二者不在同一局部世界坐標(biāo)系中,則將尾端點(diǎn)對(duì)應(yīng)體元所在的局部世界坐標(biāo)系轉(zhuǎn)換到首端點(diǎn)對(duì)應(yīng)體元所在的局部世界坐標(biāo)系中;
iv)若直線首尾端點(diǎn)對(duì)應(yīng)體元均為參考體元,且二者均在同一局部世界坐標(biāo)系中,則用首端點(diǎn)對(duì)應(yīng)體元重新定位尾端點(diǎn)對(duì)應(yīng)體元,使兩者在空間中與相應(yīng)軸向一致。
當(dāng)直線與任意消隱點(diǎn)方向均不一致時(shí),可以分三種情況進(jìn)行更新:
i)若直線首尾端點(diǎn)對(duì)應(yīng)體元均為參考體元,且二者均在同一局部世界坐標(biāo)系中,則將首尾端點(diǎn)對(duì)應(yīng)體元組合成一個(gè)直線體元,置于當(dāng)前局部世界坐標(biāo)系中;
ii)若直線首端點(diǎn)對(duì)應(yīng)體元為參考體元,其直接參考體元為面體元,且尾端點(diǎn)對(duì)應(yīng)體元為被參考體元,則更新尾端點(diǎn)對(duì)應(yīng)體元,使其也處于首端點(diǎn)對(duì)應(yīng)體元所在的平面上,并更新所有以尾端點(diǎn)對(duì)應(yīng)體元為參考的其他體元;
iii)其他情況,由于無(wú)法通過(guò)任何方法得知兩個(gè)端點(diǎn)體元的空間位置關(guān)系,故認(rèn)為此種情況的交互式操作無(wú)效。
3)長(zhǎng)方體和多面體體元生成算法:
首先定義空間中兩鄰邊分別平行于一條世界坐標(biāo)系坐標(biāo)軸的矩形為參考矩形,參考矩形投影到圖像平面上形成的兩組對(duì)邊分別經(jīng)過(guò)一個(gè)消隱點(diǎn)方向,規(guī)定交互式拾取的(即用戶輸入)參考矩形和多邊形均位于場(chǎng)景地面上。
構(gòu)建長(zhǎng)方體體元時(shí),首先指定參考矩形兩個(gè)對(duì)角頂點(diǎn)在圖像上的位置,然后根據(jù)消隱點(diǎn)特性計(jì)算參考矩形剩余的兩個(gè)頂點(diǎn)的圖像坐標(biāo),再通過(guò)直線體元生成方法依次生成四條直線體元,組合形成矩形體元,最后,將矩形體元按照垂直消隱點(diǎn)方向進(jìn)行拔高處理即得到長(zhǎng)方體體元。
構(gòu)建多面體體元時(shí),先在圖像上交互拾取一個(gè)多邊形體元,在此基礎(chǔ)上將多邊形體元按照垂直消隱點(diǎn)方向進(jìn)行拔高處理即生成相應(yīng)的多面體體元,多邊形體元的各邊不一定平行于世界坐標(biāo)系的坐標(biāo)軸,但多邊形各頂點(diǎn)滿足共面的約束關(guān)系。
2、初始模型后處理:
初始模型后處理可以包括體元三角化和紋理生成,用于恢復(fù)整個(gè)場(chǎng)景的結(jié)構(gòu)和完整的可視表面。
所述體元三角化為:采用三角面片的劃分方法,首先構(gòu)建空的三角面片體元集合,遍歷中的體元,將三角化后得到的面片體元放入中,對(duì)中投影面積大于給定閾值的三角面片重新劃分并更新。
通過(guò)以上步驟后,可以有效剔除場(chǎng)景圖中無(wú)用的點(diǎn)體元及線體元,同時(shí)限定最終保留的三角面片的投影面積小于給定閾值可以保證紋理貼圖過(guò)程中每個(gè)三角面片都能夠?qū)?yīng)足夠的圖像像素,從而獲得較好的三維建模視覺(jué)效果。
所述紋理生成為:用公式(13)對(duì)集合中所有面片體元的所有頂點(diǎn)計(jì)算得到相應(yīng)的紋理坐標(biāo),
, (13)
其中,、分別表示圖像坐標(biāo)系和相機(jī)坐標(biāo)系下的點(diǎn),表示相機(jī)的焦距。根據(jù)所述紋理坐標(biāo)可以進(jìn)一步繪制三維可視表面,得到三維場(chǎng)景結(jié)構(gòu)模型,是三維配準(zhǔn)需要的基礎(chǔ)數(shù)據(jù)之一。至此,通過(guò)建模得到了易與單幅圖像數(shù)據(jù)相融合的三維場(chǎng)景結(jié)構(gòu),使用此結(jié)構(gòu)進(jìn)行三維配準(zhǔn),易于實(shí)現(xiàn),準(zhǔn)確度高。
對(duì)于步驟三,所述相機(jī)注冊(cè)是將分布在一個(gè)或多個(gè)局部世界坐標(biāo)系中的所述初始模型(場(chǎng)景結(jié)構(gòu)模型)注冊(cè)到統(tǒng)一的三維場(chǎng)景中,統(tǒng)一的過(guò)程需要根據(jù)相機(jī)標(biāo)定及建模結(jié)果。
相機(jī)注冊(cè)的目的主要有兩個(gè):其一是將建構(gòu)好的三維體元安放在三維場(chǎng)景模型的相應(yīng)位置上;其二確定所拍攝視頻的相機(jī)在三維場(chǎng)景模型中的位姿信息。本發(fā)明使用基于直線特征對(duì)齊的方法將三維模型配準(zhǔn)并注冊(cè)到統(tǒng)一的三維場(chǎng)景中,注冊(cè)效率高且能夠人為加入場(chǎng)景幾何約束,避免了基于特征匹配注冊(cè)方法誤匹配,并提高效率。主要內(nèi)容包括:1、調(diào)整相機(jī)旋轉(zhuǎn)矩陣;2、相機(jī)坐標(biāo)系轉(zhuǎn)換到局部世界坐標(biāo)系;3、局部世界坐標(biāo)系轉(zhuǎn)換到三維場(chǎng)景模型坐標(biāo)系;4、計(jì)算視錐體參數(shù)四個(gè)部分。
1、調(diào)整相機(jī)外參數(shù)旋轉(zhuǎn)矩陣:
首先對(duì)外參數(shù)旋轉(zhuǎn)矩陣進(jìn)行調(diào)整,根據(jù)消隱點(diǎn)和用戶的交互式操作,集成世界坐標(biāo)系到相機(jī)坐標(biāo)系之間的軸對(duì)應(yīng)關(guān)系,從而得到全面的轉(zhuǎn)換參數(shù)。
設(shè)相機(jī)中心到垂直消隱點(diǎn)的向量在圖像平面的投影為,令相機(jī)中心到拾取直線對(duì)應(yīng)消隱點(diǎn)的向量在圖像平面的投影為,另一向量為,按照拍攝場(chǎng)景時(shí)相機(jī)的俯仰將消隱點(diǎn)分布分為四種情況,根據(jù)局部世界坐標(biāo)系和相機(jī)坐標(biāo)系的對(duì)應(yīng)關(guān)系分別對(duì)所述旋轉(zhuǎn)矩陣進(jìn)行調(diào)整。
a、垂直消隱點(diǎn)位于圖像主點(diǎn)的下方,拾取直線對(duì)應(yīng)的水平消隱點(diǎn)位于圖像主點(diǎn)的右方,此時(shí),,,據(jù)此計(jì)算得到調(diào)整后的旋轉(zhuǎn)矩陣,;
b、垂直消隱點(diǎn)位于圖像主點(diǎn)的下方,拾取直線對(duì)應(yīng)的水平消隱點(diǎn)位于圖像主點(diǎn)的左方,此時(shí),,,據(jù)此計(jì)算得到調(diào)整后的旋轉(zhuǎn)矩陣,;
c、垂直消隱點(diǎn)位于圖像主點(diǎn)的上方,拾取直線對(duì)應(yīng)的水平消隱點(diǎn)位于圖像主點(diǎn)的右方,此時(shí),,,據(jù)此可計(jì)算得到調(diào)整后的旋轉(zhuǎn)矩陣,;
d、垂直消隱點(diǎn)位于圖像主點(diǎn)的上方,拾取直線對(duì)應(yīng)的水平消隱點(diǎn)位于圖像主點(diǎn)的左方,此時(shí),,,據(jù)此計(jì)算得到調(diào)整后的旋轉(zhuǎn)矩陣,;
其中,、、分別為向量在局部世界坐標(biāo)系下的坐標(biāo)表示,、、分別為向量在相機(jī)坐標(biāo)系下的坐標(biāo)表示。
2、相機(jī)坐標(biāo)系轉(zhuǎn)換到局部世界坐標(biāo)系:
由于用戶在圖像上拾取的直線是二維圖像坐標(biāo)形式,故需要先將直線從圖像坐標(biāo)系經(jīng)相機(jī)坐標(biāo)系轉(zhuǎn)換到局部世界坐標(biāo)系中。
如圖5所示,用戶在圖像上拾取過(guò)消隱點(diǎn)的直線,它是空間直線在圖像平面上的投影,為相機(jī)中心,為圖像主點(diǎn),這里約定,圖像坐標(biāo)系以圖像平面左上頂點(diǎn)為原點(diǎn),水平向右為橫軸,豎直向下為縱軸,主點(diǎn)為圖像平面的中心。相機(jī)坐標(biāo)系以圖像平面水平向右為橫軸,豎直向下為縱軸,視線方向?yàn)樨Q軸。記的相機(jī)坐標(biāo)、、分別為、、,假設(shè)兩點(diǎn)的相機(jī)坐標(biāo)為、。
根據(jù)相機(jī)標(biāo)定和調(diào)整旋轉(zhuǎn)矩陣的結(jié)果和構(gòu)造局部世界坐標(biāo)系到相機(jī)坐標(biāo)系的轉(zhuǎn)換矩陣。
綜上所述,相機(jī)坐標(biāo)系到局部世界坐標(biāo)系的轉(zhuǎn)換矩陣為。通過(guò)這個(gè)轉(zhuǎn)換矩陣能夠獲得相機(jī)坐標(biāo)系上任意一點(diǎn)在局部世界坐標(biāo)系下的參考坐標(biāo),設(shè)直線端點(diǎn)、在局部世界坐標(biāo)系中的坐標(biāo)為、,則:
, (14)。
3、局部世界坐標(biāo)系轉(zhuǎn)換到三維場(chǎng)景模型坐標(biāo)系:
首先計(jì)算局部世界坐標(biāo)系和三維場(chǎng)景模型坐標(biāo)系的兩條對(duì)應(yīng)直線的夾角并構(gòu)造旋轉(zhuǎn)矩陣,接著計(jì)算局部世界坐標(biāo)系與三維場(chǎng)景模型坐標(biāo)系的變換尺度因子并構(gòu)造縮放矩陣,由此得到局部世界坐標(biāo)系到三維場(chǎng)景模型坐標(biāo)系的轉(zhuǎn)換矩陣。
綜上所述,得到從相機(jī)坐標(biāo)系到三維場(chǎng)景模型坐標(biāo)系的完整變換矩陣為:
; (15)
4、計(jì)算視錐體參數(shù):
相機(jī)中心在模型坐標(biāo)系中的坐標(biāo)為:
, (16)
其中,是點(diǎn)在三維場(chǎng)景模型坐標(biāo)系下坐標(biāo),
相機(jī)的up向量為:
, (17)
相機(jī)的forward向量為:
, (18)
相機(jī)的center向量為:
, (19)
根據(jù)公式(16)-(19),能夠?qū)⑾鄼C(jī)坐標(biāo)系下的坐標(biāo)轉(zhuǎn)換到統(tǒng)一的三維場(chǎng)景模型坐標(biāo)系下。用戶交互式操作選擇圖元,這些圖元經(jīng)過(guò)體元生成算法得到對(duì)應(yīng)相機(jī)坐標(biāo),再通過(guò)以上注冊(cè)算法就可以實(shí)現(xiàn)將場(chǎng)景結(jié)構(gòu)注冊(cè)顯示在三維場(chǎng)景模型中,至此整個(gè)基于單幅圖像的三維配準(zhǔn)過(guò)程完成。
以下是本文所提及的各種坐標(biāo)系的約定:
1)世界坐標(biāo)系:定義在三維世界的絕對(duì)坐標(biāo)系,用于描述場(chǎng)景的結(jié)構(gòu)和相機(jī)的位置、運(yùn)動(dòng)等。
2)局部世界坐標(biāo)系:定義在三維世界的相對(duì)坐標(biāo)系,以物體某一參考點(diǎn)為坐標(biāo)原點(diǎn),通過(guò)旋轉(zhuǎn)和平移可以轉(zhuǎn)換為世界坐標(biāo)系。
2)相機(jī)坐標(biāo)系:定義以相機(jī)的光心為坐標(biāo)原點(diǎn),光軸為z軸的直角坐標(biāo)系,可以用(i,j,k)表示,k=f的平面即為圖像平面,即圖像平面與相機(jī)坐標(biāo)系的i-j平面平行。
4)圖像坐標(biāo)系:定義在圖像平面上的二維坐標(biāo)系,以圖像平面左上頂點(diǎn)為原點(diǎn),水平向右為橫軸,豎直向下為縱軸,用于描述圖像中像素的位置,橫軸和縱軸分別平行于相機(jī)坐標(biāo)系的橫軸和縱軸,光軸與圖像平面的交點(diǎn)為圖像平面的主點(diǎn)。
5)三維場(chǎng)景模型坐標(biāo)系:定義在模型中的絕對(duì)坐標(biāo)系,坐標(biāo)原點(diǎn)和坐標(biāo)軸方向能夠自定義,一般情況下XOY平面和地面平行,滿足右手坐標(biāo)系。