本發(fā)明屬于虛擬現(xiàn)實(shí)技術(shù)領(lǐng)域,涉及一種圖像投影變換方法,尤其涉及一種基于離散全景圖構(gòu)建連續(xù)場(chǎng)景的圖像投影方法,是一種行人導(dǎo)航的全景視覺(jué)連續(xù)引導(dǎo)方式的應(yīng)用。
背景技術(shù):
比較在運(yùn)用全景圖實(shí)現(xiàn)虛擬現(xiàn)實(shí)技術(shù)方面的兩種方法,第一種方式在漫游的過(guò)程中保留了全景圖的全部特性,比如對(duì)場(chǎng)景的無(wú)死角觀察,縮放觀察等,但是由于實(shí)現(xiàn)連續(xù)觀察的方式是逐一切換全景圖片,這種方式被百度地圖,谷歌地圖,等普遍采用,目前在圖片切換的過(guò)程中沒(méi)有出現(xiàn)很好的過(guò)渡方法能夠使得場(chǎng)景連續(xù)變化,正是視覺(jué)上的不連續(xù)使全景圖在導(dǎo)航中的引導(dǎo)效果大大降低。第二種方法是依據(jù)全景圖進(jìn)行場(chǎng)景的三維重建,恢復(fù)場(chǎng)景中地物的空間關(guān)系,使用的仍然是傳統(tǒng)的數(shù)字三維技術(shù),雖然這種方式建立的場(chǎng)景可以用于連續(xù)漫游但是場(chǎng)景的逼真度遠(yuǎn)不如全景圖的效果好,而且這種方式實(shí)現(xiàn)起來(lái)難度比較大,場(chǎng)景重建和紋理映射都需要人工參與。這種方式適用于小區(qū)域場(chǎng)景的展示或?qū)n}展示。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明主要是解決現(xiàn)有行人導(dǎo)航技術(shù)所存在定位引導(dǎo)方式不直觀的問(wèn)題;對(duì)于導(dǎo)航引導(dǎo)來(lái)說(shuō)需要一種能夠容易得到的既能滿足連續(xù)場(chǎng)景觀察又能夠保留一定的照片效果的實(shí)景引導(dǎo)方式,鑒于以上兩種方法的優(yōu)勢(shì)和不足,本發(fā)明提出了一種基于離散全景圖的連續(xù)場(chǎng)景實(shí)現(xiàn)方法。
本發(fā)明所采用的技術(shù)方案是:一種基于離散全景圖構(gòu)建連續(xù)場(chǎng)景的圖像投影方法,其特征在于:若是離散全景圖,則使用球體投影模型對(duì)單個(gè)全景圖進(jìn)行圖像投影構(gòu)建;若是連續(xù)視覺(jué)場(chǎng)景,則使用圓柱面投影模型對(duì)連續(xù)視覺(jué)場(chǎng)景進(jìn)行圖像投影構(gòu)建;所述離散全景圖與連續(xù)視覺(jué)場(chǎng)景之間能進(jìn)行互逆轉(zhuǎn)換,完整的連續(xù)視覺(jué)場(chǎng)景模型由單個(gè)球體投影模型與連續(xù)的圓柱面投影模型構(gòu)成。
作為優(yōu)選,所述離散全景圖沿道路采集并保持一定的間隔距離。
作為優(yōu)選,離散全景圖,是使用球體投影模型而紋理使用雙目魚(yú)眼相機(jī)獲取。
作為優(yōu)選,離散全景圖,使用OpenGL的建模技術(shù),使用建模軟件Sketch Up繪制球體模型并把全景圖貼合到球的內(nèi)表面上,按照obj格式導(dǎo)出模型,之后用Perl腳本解析出頂點(diǎn)數(shù)組、法線數(shù)組、紋理坐標(biāo)數(shù)組作為原始數(shù)據(jù)提供給OpenGL。
作為優(yōu)選,連續(xù)視覺(jué)場(chǎng)景,圓柱面投影模型中的圓柱面是使用從球體全景圖投影變換并拼接后的圖片作為紋理。
作為優(yōu)選,連續(xù)視覺(jué)場(chǎng)景,圓柱面投影模型中球體模型與圓柱面是外接關(guān)系,即球體模型與圓柱面具有相同的半徑R,圓柱面模型的實(shí)現(xiàn)使用OpenGL建模技術(shù)繪制圓柱面并把柱面全景圖貼合在圓柱內(nèi)表面上。
作為優(yōu)選,所述離散全景圖與連續(xù)視覺(jué)場(chǎng)景之間能進(jìn)行互逆轉(zhuǎn)換,采用的是橫向經(jīng)線對(duì)投影方法,把球面上同一條經(jīng)線上的像素沿著從球心射出經(jīng)過(guò)該經(jīng)線的射線方向投影到與球面外接的圓柱面上,投影時(shí)經(jīng)線是成對(duì)投影的,經(jīng)線對(duì)關(guān)于視線對(duì)稱;逆轉(zhuǎn)換的過(guò)程與展開(kāi)的原理完全相同只是把像素從圓柱面逆向投影還原到球面的位置。
作為優(yōu)選,球體投影模型的實(shí)現(xiàn)和使用是在iOS平臺(tái)上,在iOS中使用OpenGL es技術(shù),數(shù)據(jù)的存儲(chǔ)使用SQLite;圓柱面投影模型的實(shí)現(xiàn)和使用同樣是在iOS平臺(tái)上,使用OpenGL es技術(shù)實(shí)現(xiàn);離散全景圖與連續(xù)視覺(jué)場(chǎng)景的互轉(zhuǎn)換使用Opencv函數(shù)庫(kù)和C++語(yǔ)言編程實(shí)現(xiàn)。
本發(fā)明具有如下優(yōu)點(diǎn):數(shù)據(jù)獲取簡(jiǎn)單方便、成本低,模型結(jié)構(gòu)實(shí)現(xiàn)簡(jiǎn)單,模型視覺(jué)效果逼真基本保留圖片效果,在行人導(dǎo)航中運(yùn)用方便可以配合定位、定向數(shù)據(jù)進(jìn)行場(chǎng)景展示。
附圖說(shuō)明
附圖1是本發(fā)明實(shí)施例的一種基于離散全景實(shí)現(xiàn)連續(xù)視覺(jué)場(chǎng)景的示意圖。
附圖2是本發(fā)明實(shí)施例的原始圖像,轉(zhuǎn)換過(guò)程,效果圖片,逆向轉(zhuǎn)換效果圖。
附圖3是本發(fā)明實(shí)施例的投影原理圖。
附圖4是本發(fā)明實(shí)施例的原始球面全景圖片。
附圖5是本發(fā)明實(shí)施例中按照橫向經(jīng)線投影方法從球面圖像展開(kāi)到圓柱面圖像的效果圖。
附圖6是本發(fā)明實(shí)施例中按照橫向經(jīng)線投影方法從圓柱面圖像逆向還原到球形全景圖像的效果圖。
附圖7是本發(fā)明實(shí)施例中還原后的圖像用于球形全景的效果圖。
附圖8是本發(fā)明實(shí)施例中構(gòu)建連續(xù)場(chǎng)景的模型結(jié)構(gòu)示意圖。
附圖9是本發(fā)明實(shí)施例中圓柱面全景效果示意圖。
具體實(shí)施方式
為了便于本領(lǐng)域普通技術(shù)人員理解和實(shí)施本發(fā)明,下面結(jié)合附圖及實(shí)施例對(duì)本發(fā)明作進(jìn)一步的詳細(xì)描述,應(yīng)當(dāng)理解,此處所描述的實(shí)施示例僅用于說(shuō)明和解釋本發(fā)明,并不用于限定本發(fā)明。
在導(dǎo)航應(yīng)用中全景圖的采集一般都是沿著可行走路徑按照一定的距離進(jìn)行離散采集的,如圖1所示在一段路徑上有A、B、C、D四個(gè)全景圖采集點(diǎn),設(shè)想全景圖是一個(gè)具有一定半徑的球形模型全景圖像作為紋理貼合在球的內(nèi)表面上,人的眼睛也就是觀察點(diǎn)設(shè)置在球心,通過(guò)前面章節(jié)的分析這個(gè)模型恰好模擬了人眼在真實(shí)世界中的視覺(jué)效果,如果行人在BD路段上行走,從B點(diǎn)到D點(diǎn),人眼緩慢移動(dòng)同時(shí)相應(yīng)的全景球體也伴隨運(yùn)動(dòng),設(shè)想每個(gè)全景球都具有相應(yīng)位置的場(chǎng)景映射,那么從B到D將會(huì)形成一個(gè)連續(xù)的外接圓柱面,這個(gè)柱面的半徑與球的半徑相同,在球面與圓柱面相切的地方具有相同的圖像像素值,這樣的話就相當(dāng)于人在圓柱中行走同時(shí)可以連續(xù)觀察周圍的場(chǎng)景,能夠滿足導(dǎo)航引導(dǎo)過(guò)程中的大場(chǎng)景展示、位置標(biāo)定、路徑標(biāo)識(shí)、POI提示和道路兩側(cè)環(huán)境分析。
基于離散的全景圖實(shí)現(xiàn)場(chǎng)景的連續(xù)化的關(guān)鍵在于圖像的投影變換的方法,如圖1所示的原理從球心向外做射線,射線與球面的交點(diǎn)為P與柱面的交點(diǎn)為P’按照這樣的投影方式把P點(diǎn)處的像素值賦給P’點(diǎn),投影的過(guò)程中盡量保證圖像中的地物之間的相鄰關(guān)系不變,取消了與道路平行方向的透視效果取而代之的是等距投影效果。當(dāng)行人沿著B(niǎo)->D方向觀察時(shí),可以連續(xù)觀察兩側(cè)的場(chǎng)景。在B、D點(diǎn)處仍然保留原來(lái)的全景圖這樣從B點(diǎn)到D點(diǎn)就構(gòu)成了一個(gè)封閉完整的場(chǎng)景,類似有一個(gè)膠囊,把這些膠囊在末端處連接起來(lái)就實(shí)現(xiàn)了場(chǎng)景的連續(xù)化漫游,B點(diǎn)表示路口處出現(xiàn)場(chǎng)景交接的地方使用球面模型與圓柱面模型嵌套的方式以保證在路口處視覺(jué)效果完整性如圖8所示。
為了重點(diǎn)保持圖像中建筑物的垂直性現(xiàn)在考慮一種投影方法稱之為全景圖的橫向經(jīng)線展開(kāi)模型。所謂橫向經(jīng)線展開(kāi)是指把球面上同一條經(jīng)線上的像素沿著從球心射出經(jīng)過(guò)該經(jīng)線的射線方向投影到與球面外接的圓柱面上,投影時(shí)經(jīng)線是成對(duì)投影的,經(jīng)線對(duì)關(guān)于視線對(duì)稱。具體的做法是在投影的過(guò)程中目標(biāo)圖像的一次列掃描對(duì)應(yīng)兩條經(jīng)線,這兩條經(jīng)線關(guān)于圓柱面的中軸線對(duì)稱。如圖2、圖3所示。
這種投影方式具有以下特點(diǎn):
(1)目標(biāo)圖像的像素在對(duì)稱線處是不連續(xù)的;
(2)圖像中取消了沿外接圓柱軸線方向的透視效果,得到的是等距投影的效果;
(3)圖像在垂直方向上能夠保持基本的垂直效果;
(4)相當(dāng)于在橫向和縱向?qū)υ袌D像都做了等比例拉伸;
(5)隨著原圖像上兩條經(jīng)線間夾角的縮小造成投影后遠(yuǎn)處的圖像像素分辨率逐漸降低。
實(shí)驗(yàn)示例:
(1)以雙目魚(yú)眼相機(jī)獲得的全景圖片為例,輸入圖像是單個(gè)魚(yú)眼獲取到的圖像,本實(shí)驗(yàn)中選用從圖幅1/4到3/4出的圖像(如圖4)。
(2)投影變換過(guò)程是從目標(biāo)圖像(展開(kāi)后的圖像)像素坐標(biāo)(tX,tY)轉(zhuǎn)換到球面坐標(biāo)(R,L,B)在轉(zhuǎn)換到源圖像坐標(biāo)(x,y)。涉及到的變量有:
R=球面半徑;
C=球的周長(zhǎng);
投影中滿足如下關(guān)系:
這里cosθy理解為透視恢復(fù)因子(縮放效果)。
圖像展開(kāi)過(guò)程的總結(jié)與分析;
從投影變換的結(jié)果可以得出以下結(jié)論(如圖5):
(1)目標(biāo)圖像像素在圖幅橫向中線出不連續(xù)表現(xiàn)為道路面出現(xiàn)拼接縫,同時(shí)圖像兩條橫邊也不能保持連續(xù),這是由于經(jīng)線展開(kāi)本身的特性所導(dǎo)致的;
(2)圓柱面軸向無(wú)透視效果;
(3)建筑物基本保持垂直說(shuō)明模型較為合理,展開(kāi)圖像右側(cè)分辨率降低;
圖像還原過(guò)程的總結(jié)與分析:
(1)如圖6所示,還原后的圖像與原始圖像一致,無(wú)明顯的圖形畸變,同時(shí)圖像質(zhì)量?jī)?yōu)良;
(2)與原始圖像相比,還原后的圖像丟失了部分內(nèi)容即圖像中的藍(lán)色區(qū)域,這是由于按照經(jīng)線投影的方法,如果完全展開(kāi)原始圖像那么展開(kāi)圖像會(huì)無(wú)限長(zhǎng),但是隨著分辨率的降低,只有靠左側(cè)部分圖像是有實(shí)際意義的因此存在一個(gè)投影截止角,如圖中藍(lán)色區(qū)域邊緣的兩條經(jīng)線所夾的角度就是投影截止角,由于圖像是沿著道路方向展開(kāi)的因此還原后圖像中丟失的內(nèi)容主要是天空和路面,基本不包含關(guān)鍵信息,還原后的圖像用于球面全景的效果如圖7所示。
(3)之所以在球形全景效果中出現(xiàn)這種啞鈴狀的圖像盲區(qū),是因?yàn)闄M向經(jīng)線展開(kāi)的過(guò)程中并不是把一條經(jīng)線上的所有圖像信息都保留了下來(lái),而是按照比例cosθy(見(jiàn)公式1)保留了一條經(jīng)線的中間部分,這是為了消除圖像中的透視效果。也是為了統(tǒng)一使用柱面投影模型,如果完全保留每條經(jīng)線的圖像信息,那么展開(kāi)后的圖像將不是矩形而是扇形的那么就要使用類似喇叭口的投影模型而不是圓柱面模型了。
連續(xù)全景的運(yùn)用;
上述過(guò)程描述了球形全景圖與圓柱面全景圖的互轉(zhuǎn)換方法,如圖9所示柱面全景中只使用了一幅全景圖的展開(kāi)圖片,在實(shí)際運(yùn)用中需要多于2幅的全景展開(kāi)圖經(jīng)過(guò)拼接后才能使用,這是為了使圖像分辨率變化差異不至于過(guò)大,平衡視覺(jué)效果。
本發(fā)明的保護(hù)范圍并不限于連續(xù)全景實(shí)現(xiàn)方法在行人導(dǎo)航中的運(yùn)用,通過(guò)改變應(yīng)用的領(lǐng)域可以滿足更多的需求。顯然,本領(lǐng)域的技術(shù)人員可以對(duì)本發(fā)明進(jìn)行投影原理和運(yùn)用方式上的改進(jìn)而不脫離本發(fā)明的范圍和精神。倘若這些改動(dòng)屬于發(fā)明權(quán)利要求及其等同技術(shù)的范圍內(nèi),則發(fā)明的意圖也包含這些改動(dòng)在內(nèi)。
本文中所描述的具體實(shí)施例僅僅是對(duì)本發(fā)明精神作舉例說(shuō)明。本發(fā)明所屬技術(shù)領(lǐng)域的技術(shù)人員可以對(duì)所描述的具體實(shí)施例做各種各樣的修改或補(bǔ)充或采用類似的方式替代,但并不會(huì)偏離本發(fā)明的精神或者超越所附權(quán)利要求書(shū)所定義的范圍。