本發(fā)明屬于計(jì)算機(jī)視覺(jué)和圖像處理領(lǐng)域,具體涉及一種基于投影變換和薄板樣條的全景成像方法
背景技術(shù):
戶(hù)外場(chǎng)景圖像拼接在地面車(chē)載全景、旅游景區(qū)攝影、街景車(chē)等方面有廣泛的應(yīng)用。拼接這類(lèi)戶(hù)外場(chǎng)景的常規(guī)做法是采用相機(jī)旋轉(zhuǎn)模型采集圖像,采用投影變換模型對(duì)齊圖像,這種常規(guī)做法存在的問(wèn)題是:當(dāng)相機(jī)的光心發(fā)生偏移時(shí)很容易引入視差,采用投影變換模型對(duì)齊能力不足。
為了解決光心不一致情形下的圖像拼接問(wèn)題,現(xiàn)有技術(shù)多結(jié)合局部變換和圖像變形的方法,比如apap(as-projective-as-possible)算法和dhw(dual-homographywarping)算法。dhw算法需要根據(jù)圖像上下兩部分的特征匹配,分別評(píng)估兩個(gè)單應(yīng)變換,但是戶(hù)外場(chǎng)景圖像的下部分一般是路面,紋理信息較少,根據(jù)此部分的特征匹配評(píng)估單應(yīng)變換魯棒性不高。apap算法雖然優(yōu)化了局部對(duì)齊能力,但保留了全局單應(yīng)性約束,全景拼接結(jié)果仍然存在投影失真和對(duì)齊質(zhì)量差的問(wèn)題。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明的目的在于提供一種基于投影變換和薄板樣條的全景成像方法,以解決雙平面場(chǎng)景圖像拼接中存在的投影失真過(guò)大和對(duì)齊質(zhì)量差的問(wèn)題。
實(shí)現(xiàn)本發(fā)明目的的解決方案為:一種基于投影變換和薄板樣條的全景成像方法,包括以下步驟:
步驟1、從左到右采集三幅圖像,依次為第一圖像、第二圖像和第三圖像,相鄰兩幅圖像在水平方向存在部分重疊;
步驟2、采用sift算法對(duì)每幅圖像提取特征點(diǎn),并生成特征描述向量;
步驟3、采用brute-force搜索算法結(jié)合比率驗(yàn)證方法對(duì)相鄰圖像的特征點(diǎn)進(jìn)行匹配;
步驟4、采用多結(jié)構(gòu)擬合算法對(duì)相鄰兩幅圖像的特征匹配做進(jìn)一步的篩選,擬合出地平面和遠(yuǎn)景兩個(gè)平面模型;
步驟5、根據(jù)擬合的平面模型確定一條水平界線,將每幅圖像的特征點(diǎn)分為上下兩部分,得到上下兩個(gè)子圖像;
步驟6、對(duì)相鄰兩幅圖像上部分的特征匹配采用直接線性變換(dlt)算法估計(jì)出第一圖像、第三圖像到第二圖像的投影變換矩陣,并根據(jù)投影變換矩陣將第二圖像下部分的特征點(diǎn)分別映射到第一、第三圖像下部分子圖像中;
步驟7、將第一、第三圖像下部分子圖像的特征點(diǎn)和映射點(diǎn)分別作為薄板樣條變形前后的控制點(diǎn),基于薄板樣條函數(shù)對(duì)第一、第三圖像進(jìn)行變形處理;
步驟8、根據(jù)投影矩陣將變形后的第一、第三圖像變換到第二圖像的坐標(biāo)系中,使得3幅圖像上下兩部分都得到了對(duì)齊,得到全景圖。
步驟1中相鄰圖像之間有20%-60%的重疊區(qū)域。
步驟3進(jìn)行特征點(diǎn)匹配的具體方法為:
步驟3.1、對(duì)相鄰兩幅圖像的特征描述向量集合做循環(huán)遍歷,選擇兩幅圖像中歐式距離小于距離閾值的特征向量對(duì)作為單向匹配候選;
步驟3.2、從單向匹配候選集中選擇每個(gè)特征向量的兩個(gè)最近鄰描述向量,僅當(dāng)?shù)谝唤徠ヅ涞臍W式距離與第二近鄰的比值小于比值閾值時(shí),則確認(rèn)是正確的匹配,否則確認(rèn)是錯(cuò)誤的匹配,將其剔除。
步驟4的多結(jié)構(gòu)擬合算法采用殘差排序獲得的信息引導(dǎo)并加速假設(shè)采樣過(guò)程。
步驟6的dlt算法表示如下:
aih=0
其中,
步驟7中薄板樣條變換函數(shù)表示如下:
式中,φ(ri)=ri2logri為徑向基函數(shù),其中
本發(fā)明與現(xiàn)有技術(shù)相比,其顯著優(yōu)點(diǎn)是:本發(fā)明方法針對(duì)包含遠(yuǎn)景平面和地平面的場(chǎng)景進(jìn)行全景拼接,對(duì)遠(yuǎn)景平面部分使用該部分的特征匹配估計(jì)出的單應(yīng)性矩陣進(jìn)行變換,得到了“保直性”的效果,減小了投影畸變;對(duì)地平面部分采用了薄板樣條插值的算法,需要更少的特征點(diǎn)就得到較好的對(duì)齊效果,契合了地面紋理信息少的特點(diǎn);本發(fā)明方法提高了圖像的對(duì)齊能力,減輕了投影畸變。
附圖說(shuō)明
圖1是本發(fā)明的方法流程圖。
圖2是本發(fā)明的多源輸入圖像。
圖3是本發(fā)明的特征匹配篩選與分割的結(jié)果圖。
圖4是本發(fā)明的薄板樣條圖像變形示意圖。
圖5是本發(fā)明的全局投影變換結(jié)果圖。
圖6是本發(fā)明的相鄰兩幅圖像的拼接過(guò)程圖。
圖7是本發(fā)明的全景效果圖。
具體實(shí)施方式
下面結(jié)合附圖和具體實(shí)施例,對(duì)本發(fā)明方案做進(jìn)一步的說(shuō)明。
如圖1所示,基于投影變換和薄板樣條的全景成像方法,以中間圖像為參考基準(zhǔn),左右側(cè)圖像分別與之對(duì)齊,生成全景圖,包括以下步驟:
步驟1、相機(jī)做水平旋轉(zhuǎn)運(yùn)動(dòng),從左到右采集三幅圖像,依次為第一圖像、第二圖像和第三圖像,每幅圖像為分辨率是730×487的3通道圖像。如圖2所示,圖像包含了地面信息,第一與第二圖像、第二與第三圖像之間分別具有50%和57%的重疊區(qū)域。為了產(chǎn)生有區(qū)分的結(jié)果,拍攝場(chǎng)景的相機(jī)的光心位置允許有一定位移,這打破了拼接場(chǎng)景必須符合單一單應(yīng)性變換的假設(shè)。
步驟2、采用sift特征提取算法分別提取3幅圖像的角點(diǎn)特征;
步驟3、采用brute-force算法加入比率驗(yàn)證獲得相鄰圖像之間的初始匹配,具體方法為:
步驟3.1、對(duì)相鄰兩幅圖像的特征描述向量集合做循環(huán)遍歷,選擇兩幅圖像中歐式距離小于距離閾值的特征向量對(duì)作為單向匹配候選;
步驟3.2、從單向匹配候選集中選擇每個(gè)特征向量的兩個(gè)最近鄰描述向量,僅當(dāng)?shù)谝唤徠ヅ涞臍W式距離與第二近鄰的比值小于比值閾值時(shí),則確認(rèn)是正確的匹配,否則確認(rèn)是錯(cuò)誤的匹配,將其剔除。
步驟4、為了篩除局外點(diǎn),同時(shí)保留不屬于同一模型但正確的匹配點(diǎn),采用多結(jié)構(gòu)擬合算法對(duì)相鄰兩幅圖像的特征匹配進(jìn)行過(guò)濾,擬合出地平面和遠(yuǎn)景兩個(gè)平面模型。多結(jié)構(gòu)擬合算法采用殘差排序獲得的信息引導(dǎo)并加速假設(shè)采樣過(guò)程。第二圖像和第三圖像經(jīng)過(guò)多結(jié)構(gòu)擬合算法過(guò)濾后的特征匹配結(jié)果如圖3所示,其中遠(yuǎn)景平面的特征匹配有42對(duì),地平面的特征匹配有21對(duì)。
步驟5、根據(jù)多結(jié)構(gòu)擬合算法得到兩個(gè)不同單應(yīng)性變換模型對(duì)應(yīng)的內(nèi)點(diǎn),將匹配點(diǎn)分為上下兩部分,并據(jù)此劃定圖像上下分割邊界。
步驟6、選定圖像上部分的特征點(diǎn),用dlt算法計(jì)算出第一圖像、第三圖像上的匹配點(diǎn)集映射到第二圖像上的匹配點(diǎn)集的單應(yīng)性矩陣h1和h2。
dlt算法表示如下:
aih=0
其中,
h1和h2的結(jié)果分別為:
步驟7、對(duì)路面場(chǎng)景做基于薄板樣條函數(shù)的非剛性配準(zhǔn)拼接,從給定的稀疏特征匹配得到兩幅圖像的稠密對(duì)應(yīng)。為了保留全局單應(yīng)性約束,根據(jù)兩個(gè)投影變換矩陣,將第二圖像下部分的特征點(diǎn)分別映射到第一、第三圖像下部分子圖像中。在第一、第三圖像下部分子圖像中,將初始的特征點(diǎn)和映射點(diǎn)分別作為薄板樣條變形前后的控制點(diǎn),對(duì)第一、第三圖像做變形處理。對(duì)第三圖像做薄板樣條變形的結(jié)果如圖4所示。
薄板樣條變換函數(shù)表示如下:
式中,φ(ri)=ri2logri為徑向基函數(shù),其中
步驟8、將變形后的第一、第三圖像分別經(jīng)由單應(yīng)性矩陣h1和h2變換到參考圖像,即第二圖像的坐標(biāo)系中,這樣3幅圖像中的場(chǎng)景落在了統(tǒng)一的坐標(biāo)系下,實(shí)現(xiàn)了圖像的對(duì)齊,得到了全景圖。
圖5顯示了采用全局投影變換對(duì)齊之后3幅圖像的位置和形狀。圖6顯示了相鄰兩幅圖像的拼接過(guò)程,圖7顯示了最終的全景圖。從圖7可以看出,本發(fā)明方法具有“保直性”的效果、投影畸變更小,得到的全景圖整體效果和對(duì)齊細(xì)節(jié)都較好。