本發(fā)明屬于計算機視覺和數(shù)字圖像處理領(lǐng)域。
背景技術(shù):
圖像拼接技術(shù)是計算機視覺和數(shù)字圖像處理領(lǐng)域的一個重要分支,它是將兩幅以上的具有部分重疊的圖像進行無縫拼接從而得到較高分辨率或?qū)捯暯菆D像的技術(shù)。圖像拼接中兩個最為關(guān)鍵環(huán)節(jié)為圖像配準和圖像融合。對于圖像融合技術(shù),現(xiàn)階段方法在耗時和融合效果方面差別不大,已趨于成熟。但是對于圖像配準,由于其配準時間及效果直接影響到圖像拼接的速度和成功率,所以圖像配準一直是當前圖像拼接方面研究的熱點。常見的圖像配準方法都是基于sift或者是surf特征描述圖像的,這些特征描述子的優(yōu)點在于旋轉(zhuǎn)不變性,尺度不變性以及不易受光照影響,現(xiàn)階段的研究開始關(guān)注brief,orb以及brisk等二進制特征,因為其需要更少的存儲空間以及計算的快速性。但是現(xiàn)階段的圖像拼接方法大都是基于幀對幀的比較方法,這種方法在圖像數(shù)目較少時可以收到很好的效果,但是,隨著圖像數(shù)目的增加,這種方法在實時性要求較高時就不適用。
技術(shù)實現(xiàn)要素:
本發(fā)明的目的是提出一種適用于實時性要求較高的基于詞袋模型的全景圖像拼接方法,技術(shù)方案如下。
一種基于詞袋模型的全景圖像拼接方法,包括下列步驟:
1)準備已經(jīng)訓練好的orb詞袋樹;
2)對于待拼接圖像數(shù)據(jù)集里的圖像i,進行orb特征提取,將圖像i中提取的特征描述子按照漢明距離從orb詞袋樹的根節(jié)點開始逐級向下到達葉子節(jié)點,遍歷完所有的特征之后,在詞袋樹中存儲該圖像所有特征的正向索引,設(shè)k為上一插入到拼接結(jié)構(gòu)圖的關(guān)鍵幀,通過正向索引對兩幅圖像進行特征搜索,建立特征之間的對應,從而得到兩幅圖像間特征的對應;
3)根據(jù)得到的兩幅圖像之間特征的對應,得到兩幅圖像之間的單應性矩陣khi;
4)利用隨機抽樣極大似然估計算法來最小化二次投影誤差和排除外點,進而得到對應圖像對的內(nèi)點集;
5)根據(jù)得到的內(nèi)點集計算圖像的邊界矩陣,通過邊界矩陣計算圖像的重疊百分比;
6)根據(jù)計算的重疊百分比,計算對應圖像對之間的重疊koi=min(ok,oi),如果內(nèi)點的數(shù)目大于閾值τin并且重疊koi大于閾值τov,那么圖像i作為潛在的關(guān)鍵幀保存,如果待拼接數(shù)據(jù)集中下一幀圖像與關(guān)鍵幀k得到的內(nèi)點數(shù)目和重疊不滿足上述兩個閾值,則將圖像i作為關(guān)鍵幀加入到拼接結(jié)構(gòu)圖;
7)當圖像i作為關(guān)鍵幀加入到拼接結(jié)構(gòu)圖中時,需要與之前的關(guān)鍵幀通過單應性矩陣建立聯(lián)系,即圖像i為拼接結(jié)構(gòu)圖的第k+1關(guān)鍵幀,則khi就表示為khk+1,則第k+1關(guān)鍵幀的單應性矩陣mhk+1表示為:mhk+1=mhkkhk+1,其中,mhk表示第k關(guān)鍵幀的單應性矩陣,m是為保證關(guān)鍵幀之間的對齊而定義的一個通用關(guān)鍵幀;
8)檢測回環(huán),新加入的關(guān)鍵幀圖像i,與拼接結(jié)構(gòu)圖之前所有的關(guān)鍵幀圖像進行檢索匹配:新加入關(guān)鍵幀圖像的orb特征進入詞袋模型,按照漢明距離從詞袋樹的根節(jié)點開始逐級向下到達葉子節(jié)點,計算每個葉子節(jié)點也就是詞袋樹中每個詞在圖像i中出現(xiàn)的頻率tf,將新加入關(guān)鍵幀圖像的所有特征,在詞袋樹中做檢索,得到每個詞的值,將這些值構(gòu)成圖像的描述向量;設(shè)新加入關(guān)鍵幀圖像和與其匹配的上一關(guān)鍵幀圖像的描述向量分別為ν1和ν2,兩幅關(guān)鍵幀圖像的相似度分數(shù)計算公式表示為:
得分越高表示這兩幅關(guān)鍵幀圖像的相似度越高,由此可以得到新加入關(guān)鍵幀圖像與之前關(guān)鍵幀圖像的相似程度,從而可以得到一個從高到低關(guān)鍵幀相似度列表,這些關(guān)鍵幀圖像即為有可能與新加入關(guān)鍵幀圖像形成回環(huán)的關(guān)鍵幀。
9)根據(jù)關(guān)鍵幀相似度列表順序,計算這些關(guān)鍵幀與新加入關(guān)鍵幀的單應性矩陣,如果通過單應性矩陣得到的內(nèi)點數(shù)目大于一個固定的閾值,那么相應的連接關(guān)系就成為拼接結(jié)構(gòu)圖的一部分,即為形成回環(huán);
10)優(yōu)化單應性矩陣,采用光束法平差減小由單應性矩陣所造成的誤差,誤差函數(shù)ε為:
其中
11)圖像拼接結(jié)構(gòu)圖的融合。
本發(fā)明主要優(yōu)點及特色體現(xiàn)在如下幾個方面:
1、目前圖像拼接算法中圖像配準都是基于sift或者是surf特征描述圖像的,得益于這些特征的尺度、旋轉(zhuǎn)不變性以及不易受光照影響,但是這些特征的提取需要的時間過多,造成算法的實時性達不到要求,此外圖像配準為基于幀對幀的匹配,也會增加配準時間。本發(fā)明提出的基于詞袋模型的檢索結(jié)構(gòu),采用orb特征描述子。實驗表明,基于詞袋模型的圖像配準方法在同樣得到配準效果的同時,可以顯著減少算法時間。
2、目前圖像拼接算法大都基于單線程的算法,算法各個部分之間有著明顯的順序性和耦合性,本發(fā)明的算法可以采用多線程架構(gòu),實現(xiàn)算法不同部分的同時執(zhí)行,實現(xiàn)在保證拼接效果的基礎(chǔ)上,可以有效的縮短算法時間。
附圖說明
圖1是本發(fā)明基于詞袋模型的多線程圖像拼接算法的流程圖;
圖2是valldemossa數(shù)據(jù)集的圖像拼接圖;
圖3是valldemossa數(shù)據(jù)集的拓撲結(jié)構(gòu)圖;
圖4是odemar數(shù)據(jù)集的圖像拼接圖;
圖5是odemar數(shù)據(jù)集的拓撲結(jié)構(gòu)圖。
具體實施方式
本發(fā)明提出基于詞袋模型的多線程全景圖像拼接技術(shù),結(jié)合實例及附圖詳細說明如下:
本發(fā)明算法的整體框架如圖1所示,系統(tǒng)分為四部分且這四部分可并行運行,這種并行的設(shè)計可以減少各個部分之間的耦合性,從而減少算法運行的時間。這四個部分通過一個稱為拼接結(jié)構(gòu)圖的結(jié)構(gòu)相連接,這個結(jié)構(gòu)用來估計拼接環(huán)境的拓撲結(jié)構(gòu),同時用于協(xié)調(diào)各個部分之間的關(guān)系,保證實時性。
拼接結(jié)構(gòu)圖部分是本發(fā)明方法的一個重要組成部分,其中的拓撲圖代表著拼接環(huán)境的拓撲結(jié)構(gòu),以及統(tǒng)一不同部分之間運行的機制。環(huán)境的拓撲結(jié)構(gòu)表示參與圖像拼接的圖像及其之間的聯(lián)系。在本發(fā)明中,拓撲結(jié)構(gòu)的數(shù)學模型是無向圖的形式,其中節(jié)點代表著最終拼接中所選擇的圖像,連接線代表著它們之間的重疊部分,在本發(fā)明中,被選擇的圖像稱為關(guān)鍵幀。為了產(chǎn)生最終的拼接圖,需要選取關(guān)鍵幀,即為拼接圖像幀。
系統(tǒng)其他部分和拼接結(jié)構(gòu)圖的建立是同步進行的,關(guān)鍵幀部分描述輸入圖像,進入詞袋檢索結(jié)構(gòu)處理圖像以及決定圖像為關(guān)鍵幀,是否為最終拼接結(jié)構(gòu)圖像的組成部分;閉環(huán)檢測部分在檢測匹配圖像對后可以建立當前幀與所匹配關(guān)鍵幀的聯(lián)系,形成回環(huán);優(yōu)化部分通過光束法平差調(diào)整單應性矩陣,來減少誤匹配造成的誤差;優(yōu)化之后的拼接結(jié)構(gòu)圖進入融合部分產(chǎn)生最后的拼接圖。具體實施方案如下:
7)構(gòu)建詞袋樹,dbow2庫利用一個大的圖像數(shù)據(jù)庫,離線訓練好了orb庫和sift庫,供大家使用。在本發(fā)明中,使用的是dbow2庫中已經(jīng)訓練好的orb詞袋樹。
8)對于待拼接圖像數(shù)據(jù)集里的圖像i,進行orb特征提取,將圖像i中提取的特征描述子按照漢明距離從orb詞袋樹的根節(jié)點開始逐級向下到達葉子節(jié)點,遍歷完所有的特征之后,在詞袋樹中存儲該圖像所有特征的正向索引。k為上一插入到拼接結(jié)構(gòu)圖的關(guān)鍵幀,通過正向索引對兩幅圖像進行特征搜索,建立特征之間的對應,從而得到兩幅圖像間特征的對應;
9)根據(jù)得到的兩幅圖像之間特征的對應,得到兩幅圖像之間的單應性矩陣khi;
10)利用隨機抽樣極大似然估計算法來最小化二次投影誤差和排除外點,進而得到對應圖像對的內(nèi)點集;
11)根據(jù)得到的內(nèi)點集計算圖像的邊界矩陣,通過邊界矩陣計算圖像的重疊百分比;
12)根據(jù)計算的重疊百分比,計算對應圖像對之間的重疊koi=min(ok,oi),如果內(nèi)點的數(shù)目大于閾值τin并且重疊koi大于閾值τov,那么圖像i作為潛在的關(guān)鍵幀保存,如果待拼接數(shù)據(jù)集中下一幀圖像與關(guān)鍵幀k得到的內(nèi)點數(shù)目和重疊不滿足上述兩個閾值,則將圖像i作為關(guān)鍵幀加入到拼接結(jié)構(gòu)圖;
7)當圖像i作為關(guān)鍵幀加入到拼接結(jié)構(gòu)圖中時,需要與之前的關(guān)鍵幀通過單應性矩陣建立聯(lián)系,則第k+1關(guān)鍵幀的單應性矩陣mhk+1表示為:mhk+1=mhkkhk+1,其中m是為了保證關(guān)鍵幀之間的對齊而定義的一個通用關(guān)鍵幀,拼接結(jié)構(gòu)圖中各個關(guān)鍵幀的單應性矩陣mhk+1,mhk都是與關(guān)鍵幀m建立的;
8)檢測回環(huán),新加入的關(guān)鍵幀圖像i,與拼接結(jié)構(gòu)圖之前所有的關(guān)鍵幀圖像進行檢索匹配:新加入關(guān)鍵幀圖像的orb特征進入詞袋模型,按照漢明距離從詞袋樹的根節(jié)點開始逐級向下到達葉子節(jié)點,計算每個葉子節(jié)點也就是詞袋樹中每個詞在圖像i中出現(xiàn)的頻率tf,在詞袋樹中每個葉子節(jié)點都存儲了反向索引,即為存儲了到達葉子節(jié)點的圖像id和詞在圖像描述向量中的值,將新加入關(guān)鍵幀圖像的所有特征,在詞袋樹中做檢索,得到每個詞的值,將這些值構(gòu)成圖像的描述向量;設(shè)新加入關(guān)鍵幀圖像和與其匹配的上一關(guān)鍵幀圖像的描述向量分別為ν1和ν2,兩幅關(guān)鍵幀圖像的相似度分數(shù)計算公式表示為:
得分越高表示這兩幅關(guān)鍵幀圖像的相似度越高,由此可以得到新加入關(guān)鍵幀圖像與之前關(guān)鍵幀圖
像的相似程度,從而可以得到一個從高到低關(guān)鍵幀相似度列表,這些關(guān)鍵幀圖像即為有可能與新加入關(guān)
鍵幀圖像形成回環(huán)的關(guān)鍵幀。
9)根據(jù)關(guān)鍵幀相似度列表順序,計算這些關(guān)鍵幀與新加入關(guān)鍵幀的單應性矩陣,如果通過單應性矩陣得到的內(nèi)點數(shù)目大于一個固定的閾值,那么相應的連接關(guān)系就成為拼接結(jié)構(gòu)圖的一部分,即為形成回環(huán);
10)優(yōu)化單應性矩陣,關(guān)鍵幀圖像之間都是通過單應性矩陣進行聯(lián)系的,然而單應性矩陣存在著誤差,需要進行優(yōu)化,采用光束法平差減小由單應性矩陣所造成的誤差,誤差函數(shù)ε為:
其中
11)圖像拼接結(jié)構(gòu)圖的融合。
融合是拼接算法的最后一步,用于產(chǎn)生最后的無縫拼接圖,這一部分是opencv庫中stitching的應用,包括縫和線技術(shù)以及曝光補償,在本發(fā)明中,這一部分根據(jù)之前產(chǎn)生的拼接結(jié)構(gòu)圖可以即時形成最終的無縫拼接圖,即最終的實驗效果圖。
為了驗證本發(fā)明方法的有效性和實時性,本發(fā)明選用兩組數(shù)據(jù)集。valldemossa數(shù)據(jù)集,此數(shù)據(jù)集采集于西班牙的港口城市valldemossa的水下環(huán)境,包含201張320×180的圖片,是由相機俯視拍攝的,此數(shù)據(jù)集包含有一個大的閉環(huán);odemar數(shù)據(jù)集,此數(shù)據(jù)集為由miquelmassot-campos采集的水下環(huán)境,包含64張480×270的圖片,是由相機仰視拍攝的,此數(shù)據(jù)集沒有包含大的閉環(huán)。實驗結(jié)果如下:
1.得到的valldemossa數(shù)據(jù)集的拼接圖如圖2所示,環(huán)境的拓撲估計如圖3所示,拓撲圖含有76幀關(guān)鍵幀。得到odemar數(shù)據(jù)集的拼接圖如圖4所示,環(huán)境的拓撲結(jié)構(gòu)圖如圖5所示,拓撲圖含有22幀關(guān)鍵幀。
2.此組實驗為對比試驗,由本發(fā)明的方法與采用orb特征的單線程拼接方法的比較,依然選用這兩組數(shù)據(jù)集,得到的實驗數(shù)據(jù)如表1所示,可以看到,在二次投影誤差差別不大的情況下,算法的時間得到了很大的改善。
表1是本發(fā)明的實驗數(shù)據(jù)與基于orb特征的單線程圖像拼接算法的數(shù)據(jù)對比;
表1。