本發(fā)明涉及計算機視覺領(lǐng)域,尤其涉及一種用于虛擬現(xiàn)實的三維全景拼接方法、裝置和系統(tǒng)。
背景技術(shù):
虛擬現(xiàn)實技術(shù)是利用計算機技術(shù)構(gòu)建一個逼真的虛擬三維場景,即以仿真的方式給人們創(chuàng)造一個反映實體對象變化及其相互作用的三維世界,使得人們能夠通過使用專用設(shè)備,就能像在自然環(huán)境中一樣對虛擬環(huán)境中的實體進行觀察與控制。在虛擬場景的構(gòu)建過程中,生成場景畫面的質(zhì)量和速度是衡量這個虛擬場景優(yōu)劣的兩項關(guān)鍵性指標。早期虛擬場景的構(gòu)建通常采用基于計算機圖形學(xué)原理,即所謂的基于模型繪制技術(shù)首先對場景進行三維幾何建模,然后將圖像映射到幾何體上,當作某一部分場景的近似,這個過程稱作紋理映射,它依賴于定義紋理空間坐標與三維幾何模型中對應(yīng)位置之間的映射函數(shù),這種映射的確定既困難又費時,經(jīng)常需要人工的干預(yù),并且需要昂貴的專門硬件來加速繪制,同時具有很高的復(fù)雜度,對于當前的VR設(shè)備具有很大的挑戰(zhàn)。
因此,現(xiàn)有技術(shù)還有待于改進和發(fā)展。
技術(shù)實現(xiàn)要素:
鑒于上述現(xiàn)有技術(shù)的不足,本發(fā)明提供的一種用于虛擬現(xiàn)實的三維全景拼接方法、裝置和系統(tǒng),利用采集的離散并有空間重合的圖像序列或連續(xù)的視頻幀作為基礎(chǔ)數(shù)據(jù),然后,通過圖像拼接技術(shù)生成一系列的圖像序列,并對圖像序列進行拼接、鏈接、重投影交互列,對其進行空間關(guān)聯(lián),即可生成360度的全景圖像,并進行3D建模和繪制,解決了現(xiàn)有技術(shù)的不足。
本發(fā)明的技術(shù)方案如下:
一種用于虛擬現(xiàn)實的三維全景拼接方法,其中,包括以下步驟:
s1,分別提取圖像的sift特征點,進行特征點檢測得到描述子,根據(jù)所述描述子進行特征點描述得到種子點;
s2,根據(jù)種子點進行特征點匹配查找得到葉子節(jié)點;
s3,根據(jù)葉子節(jié)點進行匹配點篩選與變換矩陣的計算得到模型;
s4,根據(jù)模型進行圖像拼接融合。
所述用于虛擬現(xiàn)實的三維全景拼接方法,其中,所述s1步驟中進行所述特征點的檢測包括:
對原始圖像進行若干次連續(xù)濾波得到第一尺度組圖像,再把原始圖像寬高縮小一半,再進行若干次連續(xù)濾波得到第二尺度組圖像,不斷重復(fù)該過程,直至圖像寬高小于等于設(shè)定的閾值為止;
對每個尺度組中的高斯圖像進行差分,形成高斯差分尺度組圖像;
求解計算這些高斯差分尺度組圖像的局部極值點,即為所求的特征點。
所述用于虛擬現(xiàn)實的三維全景拼接方法,其中,所述s1步驟中進行所述特征點的描述包括:
確定計算描述子所需的圖像區(qū)域;
將坐標移至關(guān)鍵點主方向;
在圖像半徑區(qū)域內(nèi)對每個像素點求其梯度幅值和方向,對每個梯度幅值乘以高斯權(quán)重參數(shù),生成方向直方圖;
在區(qū)域內(nèi)計算8個方向的梯度方向直方圖,繪制每個梯度方向的累加值,即可形成一個種子點,在下一個區(qū)域內(nèi)進行直方圖統(tǒng)計,形成下一個種子點,生成若干個種子點;
描述子向量元素門限化及門限化后的描述子的向量規(guī)范化。
所述用于虛擬現(xiàn)實的三維全景拼接方法,其中,所述s2步驟包括:
以所有特征點建立K-D樹;
對于某個目標特征點K-D樹的根節(jié)點出發(fā),遞歸的向下搜索K-D樹,若目標點當前維的坐標小于切分點的坐標,則移動到左子節(jié)點,否則移動到右子節(jié)點,直到子節(jié)點為葉子節(jié)點為止,并以此葉子節(jié)點為當前最近點;
遞歸的向上回溯,在每個節(jié)點中進行以下操作:
若該節(jié)點保存的實例點比當前最近點距離目標點近,則更新當前最近點,否則,保持當前最近點不變;
若存在距目標點更近的點,則移動到另一個子結(jié)點,繼續(xù)遞歸的進行最近鄰搜索,否則,向上回溯;
回退到根節(jié)點,搜索結(jié)束,得到最近鄰點。
所述用于虛擬現(xiàn)實的三維全景拼接方法,其中,所述s3步驟包括:
初步匹配后通過隨機采樣一致算法刪除一些誤匹配點對從而得到比較精準的匹配,比計算兩幅圖像匹配點對之間的變換矩陣;
上述隨機采樣一致算法通過反復(fù)選取數(shù)據(jù)中的一組隨機子集來達成目標,被選取的子集被假設(shè)為局內(nèi)點,并用下述方法進行驗證:
用一個模型適應(yīng)于假設(shè)的局內(nèi)點,即所有的未知參數(shù)都能從假設(shè)的局內(nèi)點計算得出;
用所述模型去測試所有的其它數(shù)據(jù),若某個點適用于估計的模型,則認為它是局內(nèi)點;
若有足夠多的點被歸類為假設(shè)的局內(nèi)點,則所述模型合理,再用所有假設(shè)的局內(nèi)點去重新估計上述模型;
通過估計局內(nèi)點與模型的錯誤率來評估模型。
所述用于虛擬現(xiàn)實的三維全景拼接方法,其中,所述s4步驟將待拼接的圖像分為多個部分經(jīng)變換矩陣拼接融合到一個新圖像中。
相應(yīng)的,本發(fā)明實施例還提供一種用于虛擬現(xiàn)實的三維全景拼接裝置,包括:
檢測模塊,用于提取圖像的sift特征點,進行特征點檢測得到描述子;
描述模塊,與檢測模塊相連,用于根據(jù)描述子進行特征點描述得到種子點;
匹配查找模塊,與描述模塊相連,用于根據(jù)種子點對特征點進行匹配查找,得到葉子節(jié)點;
篩選模塊,與匹配查找模塊相連,用于根據(jù)葉子節(jié)點進行匹配點的篩選和變換矩陣的計算得到模型;
圖像拼接模塊,與篩選模塊相連,用于根據(jù)模型進行圖像的拼接融合。
此外的,本發(fā)明實施例還提供一種用于虛擬現(xiàn)實的三維全景拼接系統(tǒng),包括本發(fā)明實施例所提供的任一用于虛擬現(xiàn)實的三維全景拼接裝置。
有益效果:本發(fā)明中提供的一種用于虛擬現(xiàn)實的三維全景拼接方法,操作簡單,應(yīng)用成本低,可以快速生成高質(zhì)量的場景畫面,解決了現(xiàn)有虛擬場景構(gòu)建采用基于計算機圖形學(xué)原理存在的不足。
附圖說明
圖1為本發(fā)明一種用于虛擬現(xiàn)實的三維全景圖像拼接方法的流程圖。
圖2為本發(fā)明實施例提供的采集到的兩幅草原圖像示意圖。
圖3為本發(fā)明實施例對圖2兩幅草原圖像提取sift特征點后的示意圖。
圖4為本發(fā)明實施例提供的匹配點篩選中初步匹配的結(jié)果示意圖。
圖5為本發(fā)明實施例提供的匹配點篩選中精確匹配的結(jié)果示意圖。
圖6為本發(fā)明實施例對圖2中兩幅草原圖像拼接的效果示意圖。
圖7為本發(fā)明一種用于虛擬現(xiàn)實的三維全景圖像拼接裝置的結(jié)構(gòu)示意圖。
圖8為本發(fā)明一種用于虛擬現(xiàn)實的三維全景圖像拼接裝置的另一具體結(jié)構(gòu)示意圖。具體實施方式
本發(fā)明提供一種用于虛擬現(xiàn)實的三維全景拼接方法,為使本發(fā)明的目的、技術(shù)方案及效果更加清楚、明確,以下對本發(fā)明進一步詳細說明。應(yīng)當理解,此處所描述的具體實施例僅僅用以解釋本發(fā)明,并不用于限定本發(fā)明。
如圖1所示,一種用于虛擬現(xiàn)實的三維全景拼接方法,包括以下步驟:
s1,分別提取圖像的sift特征點(Sift特征是圖像的局部特征,對平移、旋轉(zhuǎn)、尺度縮放、亮度變化、遮擋和噪聲等具有良好的不變性,對視覺變化、仿射變換也保持一定程度的穩(wěn)定性),進行特征點檢測得到描述子,根據(jù)所述描述子進行特征點描述得到種子點;
s2,采用BBF算法(是對K-D tree算法的改進,通過將查詢路徑上的節(jié)點進行排序,優(yōu)先回溯優(yōu)先級最高的節(jié)點來確保優(yōu)先檢索包含最近鄰節(jié)點可能性更高的空間)進行特征匹配查找得到葉子節(jié)點;
s3根據(jù)葉子節(jié)點進行匹配點篩選與變換矩陣的計算得到模型;
s4,根據(jù)模型進行圖像拼接融合。
為了便于說明全景圖像的制作過程,采用普通相機拍攝的兩張圖像(圖2)來闡述采用本發(fā)明中的全景拼接方法生成更大分辨率的的全景圖像過程。
實際應(yīng)用中,從視覺感官的角度看,關(guān)鍵點是指圖像中不會因光照變化而消失的與周圍點差異較大的突出點,比如角點、邊緣點、暗區(qū)域的亮點以及亮區(qū)域的暗點;數(shù)學(xué)上則是圖像在不同尺度空間下檢測出的具有方向信息的局部極值點。
參見圖3,s1步驟中進行特征點的檢測包括:
采用高斯濾波器對原始圖像進行若干次連續(xù)濾波得到第一尺度組圖像,再把原始圖像寬高縮小一半,同樣采用高斯濾波器進行若干次連續(xù)濾波得到第二尺度組圖像,不斷重復(fù)該過程,直至圖像寬高小于等于設(shè)定的閾值為止;
對每個尺度組中的高斯圖像進行差分,形成高斯差分尺度組圖像;
求解計算這些高斯差分尺度組圖像的局部極值點,即為所求的特征點。
實際應(yīng)用中,描述的目的是在特征點計算后,用一組向量將一個關(guān)鍵點描述出來,這個描述子不但包括關(guān)鍵點,也包括關(guān)鍵點周圍對其有貢獻的像素點。
參見圖3,s1步驟中進行特征點的描述,Sift算法中128維的描述子的生成步驟如下:
確定計算描述子所需的圖像區(qū)域;
將坐標移至關(guān)鍵點主方向;
在圖像半徑區(qū)域內(nèi)對每個像素點求其梯度幅值和方向,對每個梯度幅值乘以高斯權(quán)重參數(shù),生成方向直方圖;
在窗口寬度為2*2的區(qū)域內(nèi)計算8個方向的梯度方向直方圖,繪制每個梯度方向的累加值,即可形成一個種子點。然后再在下一個2*2的區(qū)域內(nèi)進行直方圖統(tǒng)計,形成下一個種子點,共生成16個種子點;
描述子向量元素門限化及門限化后的描述子的向量規(guī)范化。
進一步的,兩幅圖像的特征點找到后,需要找到兩幅圖像中特征點之間的匹配關(guān)系,如果采用圖像1中的每個特征點與圖像2中所有特征點進行暴力匹配,整個過程的匹配速度會非常慢,我們采用BBF算法進行特征匹配。
以圖3中第一幅圖的一個特征點,在圖3第二幅圖中所有的特征點中找到最佳匹配點為例。
s2步驟包括:
以圖3第二幅圖的所有特征點建立K-D樹。
對于圖3第一幅圖中的某個目標特征點x,從圖3第二幅圖的K-D樹的根節(jié)點出發(fā),遞歸地向下搜索K-D樹,若目標點x當前維的坐標小于切分點的坐標,則移動到左子節(jié)點,否則移動到右子節(jié)點,直到子節(jié)點為葉子節(jié)點為止;
以此葉子節(jié)點為“當前最近點”;
遞歸的向上回溯,在每個節(jié)點中進行以下操作:
若該節(jié)點保存的實例點比當前最近點距離目標點更近,則更新“當前最近點”,否則,保持“當前最近點”不變;
當前最近點一定存在于該節(jié)點一個子節(jié)點對應(yīng)的區(qū)域,檢查子節(jié)點的父節(jié)點的另一子節(jié)點對應(yīng)的區(qū)域是否有更近的點。具體做法是,檢查另一子結(jié)點對應(yīng)的區(qū)域是否以目標點位球心,以目標點與“當前最近點”間的距離為半徑的圓或超球體相交:如果相交,可能在另一個子結(jié)點對應(yīng)的區(qū)域內(nèi)存在距目標點更近的點,移動到另一個子結(jié)點,接著,繼續(xù)遞歸地進行最近鄰搜索;如果不相交,向上回溯;
當回退到根節(jié)點時,搜索結(jié)束,最后的“當前最近點”即為x的最近鄰點。
更進一步的,參見圖4和圖5,通過RANSAC算法(Random Sample Consensus,隨機采樣一致算法)刪除一些誤匹配點對從而得到比較精準的匹配,比計算兩幅圖像匹配點對之間的變換矩陣H。
RANSAC算法通過反復(fù)選擇數(shù)據(jù)中的一組隨機子集來達成目標。被選取的子集被假設(shè)為局內(nèi)點,被選取的子集被假設(shè)為局內(nèi)點,并用下述方法進行驗證,s3步驟包括:
初步匹配后通過隨機采樣一致算法刪除一些誤匹配點對從而得到比較精準的匹配,比計算兩幅圖像匹配點對之間的變換矩陣;
上述隨機采樣一致算法通過反復(fù)選取數(shù)據(jù)中的一組隨機子集來達成目標,被選取的子集被假設(shè)為局內(nèi)點,并用下述方法進行驗證:
用一個模型適應(yīng)于假設(shè)的局內(nèi)點,即所有的未知參數(shù)都能從假設(shè)的局內(nèi)點計算得出;
用所述模型去測試所有的其它數(shù)據(jù),若某個點適用于估計的模型,則認為它是局內(nèi)點;
若有足夠多的點被歸類為假設(shè)的局內(nèi)點,則所述模型合理,再用所有假設(shè)的局內(nèi)點去重新估計上述模型,因為它僅僅被初始的假設(shè)局內(nèi)點估計過;
通過估計局內(nèi)點與模型的錯誤率來評估模型。
實際應(yīng)用中,s4步驟將待拼接的圖像分為多個部分經(jīng)變換矩陣H拼接融合到一個新圖像(如圖6所示)中,具體方法為:
將融合拼接后的目標圖像分為三部分,左部分,中間重合部分及右部分;
左部分我們直接取自圖2第一幅圖中的圖像;
中間兩幅圖像重合部分取圖2第一幅圖和圖2第二幅圖重合部分的加權(quán)平均;
右部分完全取自圖2第二幅圖經(jīng)過變換矩陣H變換后的圖像;
最后將兩幅優(yōu)化后的圖像進行拼接融合。
實際應(yīng)用中,參見圖7和圖8,本發(fā)明還提供一種用于虛擬現(xiàn)實的三維全景拼接裝置,包括:
檢測模塊101和描述模塊201,用于提取圖像的sift特征點,進行特征點的檢測與描述;
匹配查找模塊301,用于對特征點進行匹配查找;
篩選模塊401,用于匹配點的篩選和變換矩陣的計算;
圖像拼接模塊501,用于圖像的拼接融合。
其中檢測模塊還包括:
濾波模塊102,用于對原始圖像進行若干次連續(xù)濾波得到第一尺度組圖像,把原始圖像寬高縮小一半,再進行若干次連續(xù)濾波得到第二尺度組圖像,不斷重復(fù)該過程,直至圖像寬高小于等于設(shè)定的閾值為止;
差分模塊103,用于對每個尺度組中的高斯圖像進行差分,形成高斯差分尺度組圖像;
計算模塊104,用于求解計算這些高斯差分尺度組圖像的局部極值點,即為所求的特征點。
其中描述模塊還包括:
區(qū)域確定模塊202,用于確定計算描述子所需的圖像區(qū)域;
坐標移動模塊203,用于將坐標移至關(guān)鍵點主方向;
直方圖生成模塊204,具體用于在圖像半徑區(qū)域內(nèi)對每個像素點求其梯度幅值和方向,對每個梯度幅值乘以高斯權(quán)重參數(shù),生成方向直方圖;
種子點生成模塊205,用于在區(qū)域內(nèi)計算8個方向的梯度方向直方圖,繪制每個梯度方向的累加值,即可形成一個種子點,在下一個區(qū)域內(nèi)進行直方圖統(tǒng)計,形成下一個種子點,生成若干個種子點;
規(guī)范模塊206,用于描述子向量元素門限化及門限化后的描述子的向量規(guī)范化。
進一步的,匹配查找模塊還包括:
建立模塊302,用于以所有特征點建立K-D樹;
搜索模塊303,用于對某個目標特征點K-D樹的根節(jié)點出發(fā),遞歸的向下搜索K-D樹,若目標點當前維的坐標小于切分點的坐標,則移動到左子節(jié)點,否則移動到右子節(jié)點,直到子節(jié)點為葉子節(jié)點為止,并以此葉子節(jié)點為當前最近點;
回溯模塊304,用于遞歸的向上回溯,得到最近鄰點;
若該節(jié)點保存的實例點比當前最近點距離目標點近,則更新當前最近點,否則,保持當前最近點不變;
若存在距目標點更近的點,則移動到另一個子結(jié)點,繼續(xù)遞歸的進行最近鄰搜索,否則,向上回溯。
更進一步的,篩選模塊還包括:
刪除模塊402,用于初步匹配后通過隨機采樣一致算法刪除一些誤匹配點對從而得到比較精準的匹配,計算兩幅圖像匹配點對之間的變換矩陣;
選取模塊403,用于通過反復(fù)選取數(shù)據(jù)中的一組隨機子集來達成目標,被選取的子集被假設(shè)為局內(nèi)點;
實際應(yīng)用中,選取模塊還包括:
假設(shè)模塊404,用于用一個模型適應(yīng)于假設(shè)的局內(nèi)點,即所有的未知參數(shù)都能從假設(shè)的局內(nèi)點計算得出;
測試模塊405,用于所述模型去測試所有的其它數(shù)據(jù),若某個點適用于估計的模型,則認為它是局內(nèi)點;
評估模塊406,若有足夠多的點被歸類為假設(shè)的局內(nèi)點,則所述模型合理,再用所有假設(shè)的局內(nèi)點去重新估計上述模型,通過估計局內(nèi)點與模型的錯誤率來評估模型。
此外,本發(fā)明還提供一種用于虛擬現(xiàn)實的三維全景拼接系統(tǒng),包括本實施例任一項虛擬現(xiàn)實的三維全景拼接裝置。
本發(fā)明中提供的一種用于虛擬現(xiàn)實的三維全景拼接方法,操作簡單,應(yīng)用成本低,可以快速生成高質(zhì)量的場景畫面,解決了現(xiàn)有虛擬場景構(gòu)建采用基于計算機圖形學(xué)原理存在的不足。
應(yīng)當理解的是,本發(fā)明的應(yīng)用不限于上述的舉例,對本領(lǐng)域普通技術(shù)人員來說,可以根據(jù)上述說明加以改進或變換,所有這些改進和變換都應(yīng)屬于本發(fā)明所附權(quán)利要求的保護范圍。