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