郭衛(wèi)衛(wèi)
(四川大學(xué)計算機(jī)學(xué)院,成都 610065)
常規(guī)柱面圖像拼接的方法,對待拼接圖像有嚴(yán)格的要求,要求其視差、光照、運(yùn)動物體等都盡可能的沒有誤差,而現(xiàn)實場景卻是會經(jīng)常遇到視差問題,運(yùn)動物體運(yùn)動等問題,例如常見場景的多光源投影就會出現(xiàn)重影問題。尤其是用單攝像頭采集的圖像,因為對于手持單攝像頭采集的圖像,要求其嚴(yán)格符合柱面圖像拼接的要求較難,或多或少都會存在一定的視差,尤其對于普通用戶來說,并不會用手持?jǐn)z像頭進(jìn)行嚴(yán)格的圖像采集。
本文主要介紹一種在采樣過程中結(jié)合復(fù)合映射使APAP等算法可以適用于柱面圖像拼接。假設(shè)有兩個待拼接的圖像A和B,如果A和B存在視差等問題,就需要將B進(jìn)行轉(zhuǎn)換,通過尋找A和B直接的配準(zhǔn)模型進(jìn)行轉(zhuǎn)換B,假如A和B都是平面視圖,就可以采用全局單應(yīng)矩陣的方法進(jìn)行轉(zhuǎn)換,但是在本文討論的進(jìn)行兩個不同視角圖像拼接時就不適合,于是本文引用文獻(xiàn)[1-2]的思想,改變傳統(tǒng)的柱面拼接流程,使APAP等算法也可以適用于柱面圖像拼接。
對于任何圖像處理概念,圖像采集都是第一步。在本文,圖像采集是用網(wǎng)絡(luò)資源,其是用手機(jī)進(jìn)行的圖像獲取,原始圖像中存在一定的視差,因此常規(guī)的柱面拼接流程在這個階段已經(jīng)不能完全適用,待拼接的圖像破壞了傳統(tǒng)柱面拼接流程中的圖像采集階段,因此采用本文提出的柱面拼接流程進(jìn)行柱面拼接。
XYZ坐標(biāo)系是照相機(jī)的坐標(biāo)系,相機(jī)坐標(biāo)系和焦距如圖1,那在圖像上的像素點(diǎn)P(x,y),則相機(jī)坐標(biāo)系的坐標(biāo)就是
圖1 相機(jī)坐標(biāo)系的焦距
圖2是圖1的切面,根據(jù)圖我們可以得到圖像寬W、相機(jī)焦距f和相機(jī)水平視角θ的關(guān)系公式。
圖2 相機(jī)像素焦距和實景圖寬度W的關(guān)系
相機(jī)運(yùn)動都是在XYZ平面,光軸和圖像平面相交點(diǎn)就是圖像中心,如圖3(a),原始圖像I,映射后柱面圖像為J,原點(diǎn)為O(投影中心),設(shè)圖像高H,寬為W,柱面半徑為r(等于焦距f),攝像裝備水平視角θ。圖像的左上角設(shè)為坐標(biāo)原點(diǎn),于是圖像上的像素坐標(biāo)就可以確定。圖像I上的任意一點(diǎn)像素坐標(biāo)為P(x,y),那P點(diǎn)在相機(jī)的XYZ坐標(biāo)系下對應(yīng)坐標(biāo)就是:,柱面上對應(yīng)點(diǎn)坐標(biāo)記為Q(x',y')。根據(jù)XYZ平面的截面,如圖3(b),可以求出Q坐標(biāo)。
圖3 柱面映射
因此,相機(jī)坐標(biāo)系的原點(diǎn)和點(diǎn)P間的直線方程如下:
其中,t是參數(shù),柱面方程為:
聯(lián)立上面兩式子可以得到:
將式(4)代入式(2)可以得到:
像素點(diǎn)P(x,y)在柱面投影到柱面的點(diǎn)Q的坐標(biāo)就是(u,v,w),然后將Q點(diǎn)的坐標(biāo)變換到展開面的坐標(biāo)公式如下:
聯(lián)立公式(5)和公式(6),就可以得到平面圖像上點(diǎn)P(x,y)映射到柱面圖像的點(diǎn)Q(x',y')之間的映射關(guān)系:
單一的變換模型對全局使用的是一個估計的單應(yīng)矩陣,對于局部之間的差異考慮的不夠,如果是平面場景并且同景深,采集圖像是用相機(jī)單一旋轉(zhuǎn)得到的,這種情況比較適合,但是對于有景深差異的圖像,卻有一定缺點(diǎn)。Julio Zaragoza等人改進(jìn)了單應(yīng)矩陣,提出了加權(quán)單應(yīng)矩陣的方法,將圖像劃分網(wǎng)格,每個網(wǎng)格就是一個圖像塊,每個圖像塊就代表了不同的單應(yīng)矩陣,在對每個圖像塊進(jìn)行估計時,給每個特征點(diǎn)都加上針對于該單應(yīng)矩陣的一個權(quán)值,特征點(diǎn)距離該圖像塊越近權(quán)值就越大,根據(jù)像素值臨近效應(yīng)的說法,這樣得到的單應(yīng)矩陣也可以更好地估計這個區(qū)域的變換關(guān)系,但是在特征點(diǎn)較少的地方,加權(quán)投影矩陣卻效果不好,會退化為全局的單應(yīng)矩陣。
在三維空間下,一個物體從不同的視角進(jìn)行拍攝,采集到的圖像之間有一定的映射關(guān)系,一般這種映射關(guān)系可以用單應(yīng)映射表示,具象化就是一個3×3的非奇異矩H:
這個H就是單應(yīng)矩陣。
根據(jù)單應(yīng)變換矩陣,單應(yīng)映射表達(dá)式可以表達(dá)如下:
如圖4,將圖像A直接進(jìn)行柱面投影得到A',將B進(jìn)行單應(yīng)和柱面的復(fù)合變換,直接從B平面通過復(fù)合變換到柱面A'的基準(zhǔn)柱面下,簡化了從B通過單應(yīng)變換到A平面,然后再轉(zhuǎn)換到柱面的過程,期間需要注意,復(fù)合映射中柱面映射是考慮整體圖像的映射,也就是需要將A'和B保證在同一個坐標(biāo)系下面,以整體圖像為視角,做柱面映射,因此需要整體圖像已經(jīng)產(chǎn)生,用整體圖像的信息來作為柱面映射中的參數(shù),但是重采樣的時候根據(jù)逆映射關(guān)系在原始圖像進(jìn)行重采樣。
圖4 柱面拼接
B圖像經(jīng)過單應(yīng)變換到A的視角下,然后A和B進(jìn)行融合得到C,然后可以得到C圖像的長寬高,并將坐標(biāo)系轉(zhuǎn)換為C圖像的視角下,假設(shè)圖像C的X軸方向最大值xmax,最小值xmin,同理Y軸最大最小值分別為ymax和ymin,于是可得圖像C的左上角(xmin,ymin),于是圖像A和B'轉(zhuǎn)換到C下的平移關(guān)系,(x',y')=(x+|xmin|,y+|ymin|),圖像高即為 H'=(xmax-xmin),高為H'=(ymax-ymin)。A視角轉(zhuǎn)換到B視角是平移變換。
根據(jù)式(9)、式(7),將式(9)和上述平移變換代入式(7)可得單應(yīng)映射、平移變換和柱面映射的復(fù)合映射為:
本文結(jié)合重采樣的思想,改進(jìn)柱面拼接[3-5]流程,傳統(tǒng)柱面拼接流程在平面投影到柱面,然后在柱面圖像上進(jìn)行圖像配準(zhǔn)和圖像拼接,如果圖像是嚴(yán)格的同一個視角場景,攝像設(shè)備旋轉(zhuǎn)的方式采集的,可以達(dá)到預(yù)期效果,但是如果待拼接的圖像存在視差和多場景等各種問題,因為圖像拼接大多都采用的單應(yīng)變換的方法進(jìn)行的配準(zhǔn),此時傳統(tǒng)的柱面拼接方式,如果在柱面進(jìn)行配準(zhǔn)就會因為單應(yīng)對于曲面的不適應(yīng)而導(dǎo)致柱面拼接的效果較差,于是本節(jié)提出一種柱面拼接流程,讓待拼接的圖像在平面就完成圖像配準(zhǔn),然后獲得單應(yīng)變換關(guān)系和配準(zhǔn)后的圖像的信息,然后將得到的配準(zhǔn)后的圖像信息作為柱面投影的整體進(jìn)行投影,在重采樣階段,可以根據(jù)單應(yīng)變換關(guān)系和柱面映射的公式,分別在基準(zhǔn)原始圖像和待拼接原始圖像進(jìn)行采樣,以此完成柱面圖像拼接,采用此流程可以使柱面拼接的過程中采用目前圖像拼接效果較好的APAP算法[1]和AANAP算法[2]等基于單應(yīng)變換進(jìn)行圖像拼接的算法,從而可以達(dá)到即使待拼接圖像不能嚴(yán)格達(dá)到傳統(tǒng)柱面拼接圖像的標(biāo)準(zhǔn)也可以得到拼接效果良好的拼接圖像。
傳統(tǒng)柱面拼接的流程如圖5[6]。
圖5 柱面拼接流程
這個流程中對于待拼接圖像要求規(guī)格一致,否則投影后的柱面圖像就不在一個柱面參數(shù)下,如果規(guī)定好柱面映射的參數(shù),在規(guī)格一定的情況下可以完成正常拼接,然而,在待拼接圖像存在視差、景深等問題時,柱面投影后的圖像就因為其是曲面不適應(yīng)單應(yīng)變換,做基于單應(yīng)變換的拼接時就會因為這個不適應(yīng)性導(dǎo)致柱面拼接效果較差,于是本文換用一種非傳統(tǒng)的柱面拼接方式,以平面拼接后的圖像作為柱面映射的整體,獲得其圖像拼接,拼接流程如圖6。
圖6 柱面拼接流程
上述拼接流程中,柱面拼接過程以在平面圖像配準(zhǔn)后的獲得圖像可以得到柱面拼接的整體為中心,考慮整個柱面拼接流程中單應(yīng)變換,轉(zhuǎn)換到整體視角下的平移變換,和確定的柱面映射參數(shù),可以得到整個柱面拼接流程中的所有參數(shù),然后獲得復(fù)合映射的各個參數(shù),以此來使基于單應(yīng)變換的一些算法可以采用此流程進(jìn)行柱面圖像拼接。
根據(jù)以下的實驗結(jié)果可以看出,本文提出的柱面拼接流程在一定程度上可以消除視差的錯位問題,傳統(tǒng)拼接流程的直接拼接結(jié)果可以明顯看出嚴(yán)重的拼接錯位問題,傳統(tǒng)拼接流程使用APAP算法的時候,因為其黑色邊界問題,插值時引起明顯的灰色邊界,采用本文的拼接流程可以很好的消除錯位,但是有一定的變形,后期研究可以著眼于變形做出更深一步的研究。
圖7 原始圖像
圖8 實驗結(jié)果,傳統(tǒng)流程拼接(左上),APAP傳統(tǒng)流程拼接(右上),本文流程拼接
本文介紹了一種適合單攝像頭采集獲取的圖像進(jìn)行柱面拼接的一種流程,基于該流程可以將有一定視差的原始圖像采用優(yōu)秀的圖像拼接方法進(jìn)行柱面拼接。但是此流程只是初步提出,需要進(jìn)一步的完善。因為柱面拼接過程中,無論是柱面映射還是單應(yīng)變換都涉及重采樣,重采樣就可能會引起混疊,后續(xù)研究可以著手在柱面拼接的過程中加入抗混疊的算法進(jìn)行柱面拼接。