本發(fā)明屬于計(jì)算機(jī)視覺領(lǐng)域,具體涉及一種面向森林防火的全景拼接方法。
背景技術(shù):
隨著國內(nèi)外圖像拼接技術(shù)研究的興起,更多的國內(nèi)外學(xué)界對(duì)其研究也逐漸得到發(fā)展。在國外,2007年提出了對(duì)一組無序圖像采用概率模型從而得到順序圖像并且檢測(cè)出其中的噪聲圖像,實(shí)現(xiàn)了自動(dòng)拼接圖像。隨后有人提出了基于sift的圖像序列拼接算法,算法通過一個(gè)概率模型驗(yàn)證全景圖像序列,通過假設(shè)圖像特征點(diǎn)不變的基礎(chǔ)上實(shí)現(xiàn)全自動(dòng)圖像拼接。近幾年又提出了基于能量譜技術(shù)消除拼接后的重影,該技術(shù)通過使用人眼更加關(guān)注顯著特征這一特點(diǎn),計(jì)算圖像的灰度提到和能量譜,還原并放大縫隙處的特征點(diǎn),然后根據(jù)人眼視覺特點(diǎn)消除重影。在國內(nèi),有人分析了harris算子的實(shí)現(xiàn)原理及其不足,提出了一種改進(jìn)harris角點(diǎn)檢測(cè)算法提取圖像的特征點(diǎn),提高了角點(diǎn)的定位精度,增強(qiáng)了算法抗噪性能,還減少了計(jì)算量,圖像融合采用的是像素加權(quán)的方法,該算法能有效提高配準(zhǔn)精確性,具有較好的使用價(jià)值。2010提出了基于surf特征配準(zhǔn)的pcb圖像拼接算法,在拼接過程中引入surf配準(zhǔn)來完成pcb圖像融合,實(shí)現(xiàn)了pcb局部小圖像間的無縫拼接,成像質(zhì)量較高。2010年改進(jìn)了圖像拼接算法中的特征點(diǎn)匹配問題,他使用雙向順序搜尋的方法得到圖像間的最大相關(guān)性角點(diǎn),有效地提高了圖像拼接的精度和速度。
從圖像拼接理念的提出到現(xiàn)在,圖像拼接技術(shù)得到了極大的重視和較多的研究,國內(nèi)外研究者提出并設(shè)計(jì)了多種多樣的圖像拼接方法,拼接技術(shù)獲得了長足的發(fā)展。但是目前現(xiàn)有的拼接技術(shù),基本上都是針對(duì)近距離以及鏡頭焦距基本固定的場景。在森林防火中攝像頭監(jiān)測(cè)的距離達(dá)到了5公里以上,監(jiān)測(cè)范圍的變化以及檢測(cè)場景的復(fù)雜為全景拼接帶來了各種新的挑戰(zhàn),如攝像頭的變焦帶來的圖像模糊,監(jiān)測(cè)范圍內(nèi)大量植物、山區(qū)的相似性引發(fā)的特征提取的困難等。通過分析研究全景圖像拼接的發(fā)展現(xiàn)狀可知,圖像拼接技術(shù)依然面臨一些需要解決的問題。
技術(shù)實(shí)現(xiàn)要素:
針對(duì)現(xiàn)有技術(shù)中存在的上述技術(shù)問題,本發(fā)明提出一種面向森林防火的全景拼接方法,設(shè)計(jì)合理,克服了現(xiàn)有技術(shù)的不足,具有良好的效果。
在面向森林防火復(fù)雜大場景的全景圖像拼接過程中,由于現(xiàn)在要拼接的對(duì)象是從攝像頭獲取的連續(xù)圖像幀,待拼接圖像數(shù)量較大,需要匹配速率較快的算法,直接從視頻中得到待拼接的圖像的話,相鄰兩幀的圖像重疊部分太多,會(huì)降低匹配速率,所以本發(fā)明中每隔n幀來拼接,n的選擇由攝像機(jī)旋轉(zhuǎn)角度等參數(shù)決定,以使相鄰兩幀圖像重疊部分在一半左右為宜;場景復(fù)雜,對(duì)應(yīng)的拼接算法時(shí)要滿足多種場景的拼接,包括森林、天空、道路、湖泊等復(fù)雜場景的拼接,這就對(duì)算法的配準(zhǔn)精度提出了更高的要求;監(jiān)測(cè)距離超過5公里,整個(gè)全景包含的區(qū)域達(dá)到了100平方公里,帶來了各種攝像參數(shù)和圖像質(zhì)量的變化,使得全景拼接的算法更為復(fù)雜。
為了實(shí)現(xiàn)上述目的,本發(fā)明采用如下技術(shù)方案:
1、一種面向森林防火的全景拼接方法,包括如下步驟:
步驟1:啟動(dòng)用于森林防火監(jiān)控的攝像頭,將沿特定方向轉(zhuǎn)動(dòng)過程中獲得的視頻幀經(jīng)過預(yù)處理后輸入給拼接線程,具體包括如下步驟:
步驟1.1:啟動(dòng)拼接線程,在拼接線程啟動(dòng)的同時(shí)啟動(dòng)預(yù)處理線程,裁剪從攝像頭中獲取的一幀圖像的邊緣部分;
步驟1.2:將步驟1.1預(yù)處理完成的一幀圖像傳送到拼接線程中;
步驟2:對(duì)預(yù)處理后的每一幀圖像提取特征點(diǎn);
步驟3:對(duì)于相鄰圖像的每個(gè)特征點(diǎn),使用k-d樹算法尋找最鄰近的匹配特征點(diǎn);
步驟4:根據(jù)步驟3中找到的匹配特征點(diǎn),用ransac算法選取4對(duì)特征匹配對(duì)求解對(duì)應(yīng)矩陣;
步驟5:對(duì)于步驟4求出的對(duì)應(yīng)矩陣,利用捆綁調(diào)整算法估計(jì)具有最小誤差的相機(jī)參數(shù)值,并以此計(jì)算出初步的全景拼接圖像;
步驟6:對(duì)于步驟5中所得到的全景拼接圖像,使用多波段融合的方法消除拼接縫隙,得到最終的全景拼接圖像。
優(yōu)選地,在步驟3中,具體包括如下步驟:
步驟3.1:用待拼接圖像的左側(cè)的圖和待拼接圖像的右側(cè)的圖的特征初始化k-d樹;
步驟3.2:對(duì)待拼接圖像的左側(cè)圖中的每個(gè)特征執(zhí)行優(yōu)先搜索以查找最鄰近的匹配特征點(diǎn)。
優(yōu)選地,在步驟4中,具體包括如下步驟:
步驟4.1:隨機(jī)地從所提取的特征點(diǎn)中抽出4對(duì)特征點(diǎn),計(jì)算出變換矩陣h,記為模型m;
其中,h的形式為:
其中,hij為從圖像j向圖像i變換時(shí)的矩陣;
ki是源圖像的相機(jī)模型,
rj、kj是和ri、ki形式相同的參數(shù);
步驟4.2:根據(jù)實(shí)際情況設(shè)置一個(gè)閾值;
步驟4.3:計(jì)算特征點(diǎn)中所有數(shù)據(jù)與模型m的誤差,并判斷誤差與閾值的大?。?/p>
若:判斷結(jié)果是誤差小于閾值,則將誤差小于閾值的特征點(diǎn)加入到內(nèi)點(diǎn)集i中;
或判斷結(jié)果是誤差大于閾值,則重復(fù)步驟4.3;
步驟4.4:判斷步驟4.3中內(nèi)點(diǎn)集i中元素個(gè)數(shù)與最優(yōu)內(nèi)點(diǎn)集i_optimal中元素個(gè)數(shù)的大??;
若:判斷結(jié)果是步驟4.3中內(nèi)點(diǎn)集i中元素個(gè)數(shù)大于最優(yōu)內(nèi)點(diǎn)集i_optimal中元素個(gè)數(shù),則更新ioptimal=i,同時(shí)更新迭代次數(shù)k;
或判斷結(jié)果是步驟4.3中內(nèi)點(diǎn)集i中元素個(gè)數(shù)小于或者等于最優(yōu)內(nèi)點(diǎn)集i_optimal中元素個(gè)數(shù),則重復(fù)步驟4.3-步驟4.4;
步驟4.5:判斷迭代次數(shù)k與總迭代次數(shù)k的大??;
若:判斷結(jié)果是迭代次數(shù)k大于總迭代次數(shù)k,則退出;
或判斷結(jié)果是迭代次數(shù)k小于或者等于總迭代次數(shù)k,則迭代次數(shù)k加1,并重復(fù)步驟4.3-步驟4.5,直至迭代次數(shù)k大于總迭代次數(shù)k。
優(yōu)選地,在步驟6中,具體包括如下步驟:
步驟6.1:為每個(gè)圖像i分配一個(gè)加權(quán)函數(shù)w(x,y)=w(x)w(y);
其中,從中心到邊緣w(x)的值從1到0線性變化;
步驟6.2:對(duì)加權(quán)函數(shù)在球形坐標(biāo)系wi(θ,φ)內(nèi)重新采樣,采樣后的加權(quán)函數(shù)的圖像強(qiáng)度的加權(quán)總和如公式(1)所示:
其中,iliner(θ,φ)是使用線性融合形成的復(fù)合球面圖像;上標(biāo)i是每個(gè)需要融合的圖像的編號(hào),i的取值范圍為[1n],n是需要融合的圖像的總數(shù)量;wi(θ,φ)是圖像i的權(quán)重;θ、
步驟6.3:通過找到圖像最有用的點(diǎn)集來初始化每個(gè)圖像的混合權(quán)重,混合權(quán)重表示如下:
這些最大權(quán)值的映射連續(xù)混合形成了每個(gè)波段的混合權(quán)值,所呈現(xiàn)圖像的高通版本形式如下:
其中,gσ(θ,φ)是標(biāo)準(zhǔn)偏差為σ的高斯分布;*操作符表示卷積;ii(θ,φ)為第i個(gè)圖像在球形坐標(biāo)系wi(θ,φ)中的表示,i的取值范圍為[1n],n是需要融合的圖像的總數(shù)量;
通過模糊這幅圖像的最大權(quán)值映射,形成融合權(quán)值,表示如下:
其中,
步驟6.4:對(duì)每個(gè)波段,使用對(duì)應(yīng)的融合權(quán)值線性合并重疊的圖像,如下所示:
其中,下標(biāo)k指的是各個(gè)波段;
這會(huì)引起高頻段在小范圍內(nèi)的融合,低頻段在大范圍內(nèi)的融合。
本發(fā)明所帶來的有益技術(shù)效果:
本發(fā)明使用特征點(diǎn)匹配時(shí)使用ransac算法和捆綁調(diào)整相結(jié)合的算法、多波段融合的算法適應(yīng)森林防火項(xiàng)目中復(fù)雜場景的拼接;本發(fā)明拼接圖像數(shù)量大,包含的場景范圍達(dá)到了100平方公里以上,并且拼接效率較高。
附圖說明
圖1為面向森林防火拼接方法的流程圖。
圖2為用k-d樹算法尋找最近鄰特征點(diǎn)匹配的流程圖。
圖3為用ransac算法求區(qū)單應(yīng)矩陣的流程圖。
具體實(shí)施方式
下面結(jié)合附圖以及具體實(shí)施方式對(duì)本發(fā)明作進(jìn)一步詳細(xì)說明:
為了滿足森林防火項(xiàng)目中待拼接圖像數(shù)量大并且適合多種復(fù)雜大場景的圖像拼接,在一定程度上提高圖像拼接速率,本發(fā)明提出了一種面向森林防火復(fù)雜大場景的全景拼接方法。該方法主要包括兩部分:特征點(diǎn)的匹配和圖像匹配。點(diǎn)的匹配涉及發(fā)明內(nèi)容中的步驟(3),變換矩陣的求解涉及發(fā)明內(nèi)容的步驟(4)至步驟(5)。首先對(duì)于相鄰圖像的每個(gè)特征點(diǎn),使用k-d樹算法尋找最近鄰的匹配特征點(diǎn),然后根據(jù)上面找到的匹配特征點(diǎn)用ransac算法選取4對(duì)特征匹配對(duì)求解對(duì)應(yīng)矩陣,然后使用捆綁調(diào)整算法對(duì)所得到的對(duì)應(yīng)矩陣中的參數(shù)調(diào)制以達(dá)到最小的誤差。下面展開具體說明。
由于sift特征在旋轉(zhuǎn)和尺度變化時(shí)是不變的,所以可以處理方向和大小變化的圖像,這是傳統(tǒng)的特征匹配技術(shù)不能實(shí)現(xiàn)的,例如harris角點(diǎn)圖像修補(bǔ)的相關(guān)性。傳統(tǒng)的相關(guān)性在圖像旋轉(zhuǎn)是是發(fā)生變化的,harris角點(diǎn)在改變圖像尺度時(shí)也是變化的。
在這里假設(shè)相機(jī)繞光學(xué)中心旋轉(zhuǎn),圖像的變換群是一個(gè)對(duì)應(yīng)矩陣的特殊群。由一個(gè)旋轉(zhuǎn)矢量θ=[θ1,θ2,θ3]和焦距f把每個(gè)攝像頭參數(shù)化,就給出了成對(duì)的對(duì)應(yīng)矩陣
4參數(shù)的相機(jī)模型定義為:
旋轉(zhuǎn)使用指數(shù)表示,旋轉(zhuǎn)參數(shù)ri用對(duì)數(shù)表示:
在這個(gè)變換群中,理想條件下將會(huì)使用不變的圖像特征。
在圖像坐標(biāo)中對(duì)于小的變換表示如下:
或者等價(jià)于
其中,
從所有n個(gè)圖像提取特征點(diǎn)后,需對(duì)特征點(diǎn)進(jìn)行匹配。由于多個(gè)圖像可能重疊在一個(gè)單一的光線上,在特征空間內(nèi)每個(gè)特征點(diǎn)需和它最近的4個(gè)領(lǐng)域點(diǎn)匹配,通過使用k-d樹算法找到近似最近的領(lǐng)域點(diǎn),時(shí)間復(fù)雜度為o(nlogn)。k-d樹是一種軸對(duì)齊的二進(jìn)制空間劃分,它在平均最高方差遞歸劃分特征空間。
下面來詳細(xì)地展開利用k-d樹的最近鄰搜索算法尋找匹配特征點(diǎn)x,也就是尋找與根結(jié)點(diǎn)距離最近的葉子結(jié)點(diǎn)x的過程。具體的實(shí)施方法如下:
(1)從根結(jié)點(diǎn)出發(fā),遞歸地向下訪問k-d樹。如果目標(biāo)點(diǎn)x當(dāng)前維的坐標(biāo)小于切分點(diǎn)的坐標(biāo),則移動(dòng)到左子結(jié)點(diǎn),否則移動(dòng)到右子結(jié)點(diǎn)。直到子節(jié)點(diǎn)為葉結(jié)點(diǎn)為止。
(2)以此葉結(jié)點(diǎn)為“當(dāng)前最近點(diǎn)”。
(3)遞歸地向上回退,在每個(gè)結(jié)點(diǎn)進(jìn)行以下操作:
(a)如果該結(jié)點(diǎn)保存的實(shí)際點(diǎn)比當(dāng)前最近點(diǎn)距離目標(biāo)點(diǎn)更近,則以該實(shí)例點(diǎn)為“當(dāng)前最近點(diǎn)”。
(b)當(dāng)前最近點(diǎn)一定存在于該結(jié)點(diǎn)的一個(gè)子結(jié)點(diǎn)對(duì)應(yīng)區(qū)域。檢查該子結(jié)點(diǎn)的父結(jié)點(diǎn)的另一個(gè)子結(jié)點(diǎn)對(duì)應(yīng)的區(qū)域是否有更近的點(diǎn)。具體地,檢查另一個(gè)子結(jié)點(diǎn)對(duì)應(yīng)的區(qū)域是否與以目標(biāo)點(diǎn)為球心、以目標(biāo)點(diǎn)與“當(dāng)前最近點(diǎn)”間的距離為半徑的超球體相交。如果相交,可能在另一個(gè)子結(jié)點(diǎn)對(duì)應(yīng)的區(qū)域內(nèi)存在距離目標(biāo)點(diǎn)更近的點(diǎn),移動(dòng)到另一個(gè)子結(jié)點(diǎn)。接著,遞歸地進(jìn)行最近鄰搜索;如果不相交,向上回退。
(4)當(dāng)回退到根結(jié)點(diǎn)時(shí),搜索結(jié)束,最后的“當(dāng)前最近點(diǎn)”即為x的最近鄰點(diǎn)。
具體的流程圖如圖2所示。
2.面向森林防火的圖像匹配
圖像匹配的目標(biāo)是找到所有匹配圖像,然后匹配連通成為全景圖。在面向森林防火的整個(gè)圖像拼接過程中,得到的是有序的圖像序列。從上面的特征匹配的步驟中,找到大量匹配點(diǎn)的圖像。對(duì)于當(dāng)前圖像,將m幅圖像作為可能的匹配圖像,這m幅圖像與當(dāng)前圖像有最大數(shù)量的匹配特征點(diǎn)。首先,使用ransac算法選擇一系列和圖像間對(duì)應(yīng)矩陣包含的內(nèi)點(diǎn)。ransac算法是使用最少的一組隨機(jī)采樣匹配點(diǎn)的一種魯棒估計(jì)過程,用來估計(jì)圖像變換參數(shù),并找到與數(shù)據(jù)具有最好一致性的解決方案。在全景圖的情況下,選擇r=4對(duì)匹配特征點(diǎn),使用直接線性變換方法計(jì)算圖像間的對(duì)應(yīng)矩陣h。該算法的具體步驟圖3所示。
然而考慮到圖像間的幾何一致性匹配集,需要捆綁調(diào)整解決所有相機(jī)參數(shù)的問題,這是重要的一個(gè)步驟,由于成對(duì)對(duì)應(yīng)矩陣拼接將會(huì)造成累計(jì)誤差,忽略圖像間的多重約束。圖像一個(gè)一個(gè)被添加到捆綁調(diào)節(jié)器,最佳匹配圖像在每一步被添加,新圖像用與最佳匹配圖像具有相同的旋轉(zhuǎn)和焦距長度初始化,然后相機(jī)參數(shù)使用l-m算法被更新。
當(dāng)然,上述說明并非是對(duì)本發(fā)明的限制,本發(fā)明也并不僅限于上述舉例,本技術(shù)領(lǐng)域的技術(shù)人員在本發(fā)明的實(shí)質(zhì)范圍內(nèi)所做出的變化、改型、添加或替換,也應(yīng)屬于本發(fā)明的保護(hù)范圍。