本發(fā)明涉及計(jì)算機(jī)視覺領(lǐng)域,特指一種面向圖像拼接的ransac改進(jìn)方法。
背景技術(shù):
圖像拼接是計(jì)算機(jī)視覺和圖像處理領(lǐng)域的研究熱點(diǎn),它是將多幅相互間存在重疊部分的圖像序列進(jìn)行空間匹配對準(zhǔn),經(jīng)重采樣融合后形成一幅包含各圖像序列信息的、寬視角場景、高清晰的新圖像。
圖像拼接過程有3個(gè)主要步驟:圖像預(yù)處理、圖像匹配和圖像融合,其中圖像匹配是最重要的一個(gè)步驟。surf(speeded-uprobustfeatures)算法是運(yùn)用最廣泛的特征匹配算法之一,但是在surf提取特征點(diǎn)后,必須剔除誤匹配點(diǎn),常用概率隨機(jī)抽樣一致性(ransac)進(jìn)行誤匹配點(diǎn)剔除。ransac是種采用迭代法來估計(jì)參數(shù)的數(shù)學(xué)模型,在用傳統(tǒng)的ransac計(jì)算參數(shù)進(jìn)行精配準(zhǔn)時(shí),迭代次數(shù)越多,運(yùn)算越耗時(shí),影響了圖像拼接的效率。傳統(tǒng)的ransac算法在初始化模型時(shí)所選取的特征點(diǎn)是完全隨機(jī)的,并沒有一定的約束規(guī)則,導(dǎo)致算法的實(shí)時(shí)性降低。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明要解決的技術(shù)問題為提出一種能夠有效地提高圖像拼接的質(zhì)量和拼接速率的面向圖像拼接的ransac改進(jìn)方法。
為解決上述技術(shù)問題,本發(fā)明的技術(shù)方案具體包括如下步驟:
第一步:特征點(diǎn)提取與描述子的生成;
第二步:特征匹配;
第三步:采用改進(jìn)的ransac方法進(jìn)行圖像配準(zhǔn);
第四步:采用直方圖均衡化方法對輸入圖像進(jìn)行亮度預(yù)處理,使輸入圖像亮度達(dá)到均衡,然后再使用加權(quán)平均融合法進(jìn)行圖像融合。
作為本發(fā)明技術(shù)方案的優(yōu)選,所述第一步中所述特征點(diǎn)提取具體包括以下步驟:
(1.1)sobel算子采用3×3的模塊進(jìn)行卷積計(jì)算,其函數(shù)矩陣為
(1.2)采用
(1.3)由gx,gy可以計(jì)算得出
然后將提前設(shè)定的閾值和g(x,y)相比,如果閾值小于g(x,y),則該像素點(diǎn)(i,j)為邊緣點(diǎn),將該邊緣點(diǎn)提取為特征點(diǎn)。
作為本發(fā)明技術(shù)方案的優(yōu)選,所述第一步中所述描述子的生成包括以下步驟:
(2.1)以提取的特征點(diǎn)為中心,對半徑為6σ的圓域內(nèi)的任一點(diǎn),求該圓域內(nèi)的任一點(diǎn)在x和y方向上的haar小波響應(yīng)系數(shù);
(2.2)所述圓域內(nèi)的任一點(diǎn)到特征點(diǎn)中心的距離為一個(gè)半徑,然后以該一個(gè)半徑為起點(diǎn),取50°的扇形區(qū)域?yàn)橛?jì)算區(qū)域,然后令該扇形區(qū)域在該半徑為6σ的圓域內(nèi)逆時(shí)針方向旋轉(zhuǎn),每隔30°分別對這個(gè)扇形區(qū)域內(nèi)x和y方向的haar小波系數(shù)的和進(jìn)行計(jì)算;
(2.3)該haar小波系數(shù)的和形成一個(gè)向量,總共有12個(gè)向量,確定這12個(gè)向量中模最大的一個(gè)向量,然后將該模最大的一個(gè)向量的方向作為特征點(diǎn)的主方向;
(2.4)然后選取step1所檢測到的一個(gè)特征點(diǎn),并以該特征點(diǎn)為中心,將坐標(biāo)系旋轉(zhuǎn)到所述主方向,并作一個(gè)邊長為20σ的正方形區(qū)域,將該正方形區(qū)域分為4×4的小區(qū)域,分別計(jì)算每一個(gè)小區(qū)域像素的x和y方向的haar小波系數(shù),每一個(gè)小區(qū)域在計(jì)算時(shí)的邊長為5σ×5σ,方向和主方向一致;
(2.5)將步驟(4)求得的正方形區(qū)域內(nèi)的每一像素點(diǎn)的x和y方向的haar小波系數(shù)進(jìn)行求和操作,分別得到dx和dy,然后將該正方形區(qū)域的每一點(diǎn)像素的haar小波系數(shù)的絕對值求和,分別得到∑dx,∑dy;
(2.6)每個(gè)小區(qū)域內(nèi)得到一個(gè)向量
v=[∑dx,∑dy,∑|dx|,∑|dy|],所述正方形區(qū)域包括16個(gè)小區(qū)域,16個(gè)小區(qū)域的窗口向量構(gòu)成了該描述子,其維數(shù)大小為4×4×4=64。
作為本發(fā)明技術(shù)方案的優(yōu)選,所述第二步中,在匹配過程中,采用歐氏距離進(jìn)行相似度度量,即用最近距離與次近距離之比,若該比值小于某個(gè)設(shè)定閾值,則認(rèn)為是最佳匹配,否則拋棄;
作為本發(fā)明技術(shù)方案的優(yōu)選,所述第三步中,通過改進(jìn)隨機(jī)采樣的過程,利用每次抽取的最小子樣本來估計(jì)模型參數(shù),再根據(jù)估計(jì)的模型參數(shù)調(diào)整子樣本在后面抽樣中被選取的概率,并不斷進(jìn)行迭代抽取檢驗(yàn)以提高獲得正確臨時(shí)模型的概率。
作為本發(fā)明技術(shù)方案的優(yōu)選,所述第三步中,定義圖像配準(zhǔn)時(shí)的數(shù)據(jù)點(diǎn)總數(shù)為n,數(shù)據(jù)點(diǎn)采樣權(quán)重為
p概率閾值為,臨時(shí)內(nèi)點(diǎn)集s,(si,sj)是s中任意點(diǎn)對,其歐氏距離d=||si-sj||,d歐氏距離閾值;
改進(jìn)ransac算法流程具體如下:
step3.1:初始化數(shù)據(jù)點(diǎn)采樣權(quán)重為
step3.2:計(jì)算模型參數(shù)與誤差ei(i=1,2,...,n);
step3.3:更新樣本權(quán)重ωi,獲取采樣概率p(xi);
step3.4:根據(jù)采樣概率p(xi),獲得新數(shù)據(jù)子集ψ0;
step3.5:若p(xi)>p,則返回step3.1,否則,即找到臨時(shí)模型并獲得臨時(shí)內(nèi)點(diǎn)集s;
step3.6:若d<d,獲得符合模型的最終內(nèi)點(diǎn)集和最終的模型參數(shù),結(jié)束算法;若d>d,則返回step3.5繼續(xù)迭代,選取臨時(shí)內(nèi)點(diǎn)集s中任意點(diǎn)對(si,sj),直到d<d,獲得符合模型的最終內(nèi)點(diǎn)集和最終的模型參數(shù),結(jié)束算法。
作為本發(fā)明技術(shù)方案的優(yōu)選,所述第四步具體包括以下步驟:
step4.1:將重疊區(qū)圖像直方圖歸一化,獲得重疊區(qū)圖像像素值的概率密度函數(shù)的均衡化公式,重疊區(qū)像素值的累積分布函數(shù)如下:
式中,ω為任意變量,p(ω)為每個(gè)像素值出現(xiàn)的概率;
step4.2:根據(jù)式(7),建立輸入圖像像素值映射關(guān)系,對圖像的每一個(gè)像素進(jìn)行映射調(diào)整;定義輸入圖像為i1、i2,取i1、i2中直方圖較為平和的一副圖像作為參考圖像,對另一幅圖像的每個(gè)像素值進(jìn)行調(diào)整,使所述另一幅圖像按所述一副圖像的光照調(diào)整;
step4.3:將調(diào)整后的兩幅圖像作為輸入圖像,并使用加權(quán)平均融合法對兩幅輸入圖像進(jìn)行融合。
與現(xiàn)有技術(shù)相比,本發(fā)明具有以下有益效果:
本發(fā)明公開了一種面向圖像拼接的ransac改進(jìn)方法,該方法通過提取圖像特征點(diǎn),采用改進(jìn)的surf算法進(jìn)行圖像匹配,用改進(jìn)的ransac法通過改進(jìn)隨機(jī)采樣的過程,消除錯(cuò)誤匹配點(diǎn),提高匹配計(jì)算速率和匹配準(zhǔn)確率,縮短了算法時(shí)間。在圖像融合階段先對輸入圖像進(jìn)行亮度均衡預(yù)處理,然后采用加權(quán)平均法進(jìn)行融合,從而更好的完成圖像拼接。
附圖說明
圖1是本發(fā)明中一種面向圖像拼接的ransac改進(jìn)方法的流程圖。
圖2是本發(fā)明中改進(jìn)ransac算法流程圖。
圖3是本發(fā)明中ransac直線估計(jì)圖。
圖4是本發(fā)明中圖像光照均衡的累積分布函數(shù)圖。
圖5a、圖5b是本發(fā)明具體實(shí)施方式中經(jīng)基于圖像拼接的改進(jìn)的ransac法處理前的原圖。
圖5c是本發(fā)明具體實(shí)施方式中經(jīng)基于圖像拼接的改進(jìn)的ransac法處理后的效果圖。
具體實(shí)施方式
下面以普通兩幅圖像進(jìn)行拼接為例,結(jié)合附圖對本發(fā)明提出的一種面向圖像拼接的ransac改進(jìn)方法做進(jìn)一步詳細(xì)說明。
圖像匹配為在不同影像設(shè)備采集的并且存在一定的重疊部分的兩幅圖像中尋找到相重合的點(diǎn),然后利用尋找到的相重合的點(diǎn)進(jìn)行空間變換以完成圖像對齊操作的過程。根據(jù)匹配所利用信息的不同,圖像匹配方法大致可歸納為以下3類:基于灰度、基于特征和基于變換域的圖像匹配方法等。
本發(fā)明借助surf(speeded-uprobustfeatures)算法的思想,基于sobel算子,在剔除誤配點(diǎn)時(shí),采用本發(fā)明提出的改進(jìn)的概率隨機(jī)抽樣一致性(ransac)算法,通過不斷調(diào)整采樣概率,從而以更少的時(shí)間獲取正確模型,提高算法效率。在圖像融合時(shí),先進(jìn)行亮度均衡預(yù)處理,再用加權(quán)平滑算法進(jìn)行融合,從而消除結(jié)果圖的拼接線和過渡帶,提高圖像拼接質(zhì)量。
如附圖1所示,本發(fā)明的面向圖像拼接的ransac改進(jìn)方法具體過程如下:
第一步,特征點(diǎn)提取與描述子的生成。
sobel算子主要是通過以圖像f(i,j)一個(gè)像素點(diǎn)(i,j)為中心,對周圍一定范圍內(nèi)的像素值做加權(quán)處理,進(jìn)而判斷該像素點(diǎn)是否處于極值狀態(tài),sobel算子將處于極值狀態(tài)的像素點(diǎn)標(biāo)記為邊緣點(diǎn)。
step1.1:特征點(diǎn)提取。
特征點(diǎn)提取具體過程如下:
(1)sobel算子采用3×3的模塊進(jìn)行卷積計(jì)算,其函數(shù)矩陣為
(2)采用
(3)由gx,gy可以計(jì)算得出
然后將提前設(shè)定的閾值和g(x,y)相比,如果閾值小于g(x,y),則該像素點(diǎn)(i,j)為邊緣點(diǎn),將該邊緣點(diǎn)提取為特征點(diǎn)。
step1.2:描述子的生成。
圖像檢測完極值點(diǎn)后,接下來對檢測到的極值點(diǎn)采用本發(fā)明提出的改進(jìn)的surf算法進(jìn)行描述子的生成,具體分為以下幾個(gè)步驟進(jìn)行:
(2.1)以step1.2求得的特征點(diǎn)為中心,對半徑為6σ的圓域內(nèi)的任一點(diǎn),求該圓域內(nèi)的任一點(diǎn)在x和y方向上的haar小波響應(yīng)系數(shù)。
(2.2)所述圓域內(nèi)的任一點(diǎn)到特征點(diǎn)中心的距離為一個(gè)半徑,然后以該一個(gè)半徑為起點(diǎn),取50°的扇形區(qū)域?yàn)橛?jì)算區(qū)域,然后令該扇形區(qū)域在該半徑為6σ的圓域內(nèi)逆時(shí)針方向旋轉(zhuǎn),每隔30°分別對這個(gè)扇形區(qū)域內(nèi)x和y方向的haar小波系數(shù)的和進(jìn)行計(jì)算。
(2.3)該haar小波系數(shù)的和形成一個(gè)向量,總共有12個(gè)向量,確定這12個(gè)向量中模最大的一個(gè)向量,然后將該模最大的一個(gè)向量的方向作為特征點(diǎn)的主方向。
(2.4)然后選取step1所檢測到的一個(gè)特征點(diǎn),并以該特征點(diǎn)為中心,將坐標(biāo)系旋轉(zhuǎn)到所述主方向,并作一個(gè)邊長為20σ的正方形區(qū)域,將該正方形區(qū)域分為4×4的小區(qū)域,分別計(jì)算每一個(gè)小區(qū)域像素的x和y方向的haar小波系數(shù),每一個(gè)小區(qū)域在計(jì)算時(shí)的邊長為5σ×5σ,方向和主方向一致。
(2.5)將步驟(2.4)求得的正方形區(qū)域內(nèi)的每一像素點(diǎn)的x和y方向的haar小波系數(shù)進(jìn)行求和操作,分別得到dx和dy,然后將該正方形區(qū)域的每一點(diǎn)像素的haar小波系數(shù)的絕對值求和,分別得到∑dx,∑dy。
(2.6)每個(gè)小區(qū)域內(nèi)得到一個(gè)向量:
v=[∑dx,∑dy,∑|dx|,∑|dy|],
所述正方形內(nèi)總共有16個(gè)小區(qū)域,所有的小區(qū)域的窗口向量構(gòu)成了該描述子,其維數(shù)大小為4×4×4=64。
第二步,特征匹配。
在匹配過程中,本發(fā)明相似度度量采用的是歐氏距離,即用最近距離與次近距離之比,若該比的值小于某個(gè)設(shè)定閾值,則認(rèn)為是最佳匹配,否則拋棄;該閾值設(shè)置越大,則得到的匹配對數(shù)目越多,否則,得到的匹配對數(shù)目越少,本發(fā)明所用的相似度性判斷閾值取值為0.8。
第三步,采用改進(jìn)的ransac方法進(jìn)行圖像配準(zhǔn)。
根據(jù)找到的匹配特征點(diǎn)對,可計(jì)算出圖像間的坐標(biāo)轉(zhuǎn)換關(guān)系,即兩幅圖像之間的變換矩陣。
定義兩幅圖像之間的變換為投影變換,投影變換舉證h為:
若p=(x,y),q=(x',y')是匹配的特征點(diǎn)對,則投影變換公式為:
由投影變換公式可計(jì)算出h的各自由度參數(shù)hi(i=0,1,2,...,7),并以各自由度參數(shù)作為初始值,通過迭代精煉h,可進(jìn)一步確定特征點(diǎn)的對應(yīng),直到對應(yīng)點(diǎn)數(shù)目不變?yōu)橹?,停止迭代,從而完成圖像粗配準(zhǔn)。
ransac是一種采用迭代法來估計(jì)參數(shù)的數(shù)學(xué)模型,很多方法均采用ransac對圖像變換矩陣進(jìn)行精煉,以剔除誤配對,提高圖像配準(zhǔn)精度。使用ransac剔除誤配點(diǎn)時(shí),傳統(tǒng)的ransac首先在所有匹配點(diǎn)中任取兩點(diǎn)確定一條直線進(jìn)行直線擬合,在擬合誤差距離范圍內(nèi)的點(diǎn)稱為內(nèi)點(diǎn),否則為外點(diǎn),ransac直線估計(jì)如附圖3所示。
然后,在內(nèi)點(diǎn)集中重新計(jì)算出一條新的直線進(jìn)行擬合,通過不斷迭代,直到找到一個(gè)最大內(nèi)點(diǎn)數(shù)量的直線擬合作為擬合結(jié)果,即可剔除誤配點(diǎn)。
而本發(fā)明改進(jìn)的ransac算法通過改進(jìn)隨機(jī)采樣的過程,利用每次抽取的最小子樣本來估計(jì)模型參數(shù),再根據(jù)該模型參數(shù)調(diào)整子樣本在后面抽樣中被選取的概率。經(jīng)過不斷迭代抽取檢驗(yàn)之后,逐漸提高了獲得正確臨時(shí)模型的概率,從而花費(fèi)較少的時(shí)間獲取正確模型,有效地提高了算法的效率。
設(shè)圖像配準(zhǔn)時(shí)的數(shù)據(jù)點(diǎn)總數(shù)為n,數(shù)據(jù)點(diǎn)采樣權(quán)重為
概率閾值為p;臨時(shí)內(nèi)點(diǎn)集s,(si,sj)是s中任意點(diǎn)對,其歐氏距離d=||si-sj||,歐氏距離閾值為d。
改進(jìn)ransac算法流程如附圖2所示,具體如下:
step3.1:初始化數(shù)據(jù)點(diǎn)采樣權(quán)重為
step3.2:計(jì)算模型參數(shù)與誤差ei(i=1,2,...,n);
step3.3:更新樣本權(quán)重ωi,獲取采樣概率p(xi);
step3.4:根據(jù)采樣概率p(xi),獲得新數(shù)據(jù)子集ψ0;
step3.5:若p(xi)>p,則返回step3.1,否則,即找到臨時(shí)模型并獲得臨時(shí)內(nèi)點(diǎn)集s;
step3.6:若d<d,獲得符合模型的最終內(nèi)點(diǎn)集和最終的模型參數(shù),結(jié)束算法;若d>d,則返回step3.5繼續(xù)迭代,選取臨時(shí)內(nèi)點(diǎn)集s中任意點(diǎn)對(si,sj),直到d<d,獲得符合模型的最終內(nèi)點(diǎn)集和最終的模型參數(shù),結(jié)束算法。
第四步,改進(jìn)的圖像融合。
為了獲得自然的拼接結(jié)果圖,本發(fā)明采用直方圖均衡化方法對輸入圖像進(jìn)行亮度預(yù)處理,使輸入圖像亮度達(dá)到均衡,然后再使用加權(quán)平均融合法進(jìn)行圖像融合,這樣既不會產(chǎn)生過渡帶,又能有效消除拼接線。具體如下:
step4.1:進(jìn)行重疊區(qū)圖像直方圖歸一化,以獲得重疊區(qū)像素值的概率密度函數(shù)的均衡化公式。首先進(jìn)行重疊區(qū)圖像直方圖計(jì)算,由于重疊區(qū)圖像直方圖表示重疊區(qū)像素值頻率,所以將其每個(gè)頻率除以重疊區(qū)總的像素就可得每個(gè)像素值出現(xiàn)的概率p(ω),由此得到重疊區(qū)像素值的累積分布函數(shù)如下:
上式中,ω為任意變量。
step4.2:根據(jù)式(9),建立輸入圖像像素值映射關(guān)系,對圖像的每一個(gè)像素進(jìn)行映射調(diào)整。
設(shè)輸入圖像為i1、i2,取直方圖較為平和的圖像(如i1)作為參考圖像,對i2的每個(gè)像素值(0≤g≤255)進(jìn)行調(diào)整,使i2按i1的光照調(diào)整,如附圖4所示。
由附圖4可知,參考圖像和待調(diào)整圖像分別在g1和g2像素值下具有相同的累積分布函數(shù)值,即:fcd(g1)=fcd(g2)。然后,把i2圖像中所有像素值為g1的像素映射為g2。按照以上類似操作,對圖像i2的所有灰度級進(jìn)行調(diào)整。假設(shè)在某一灰度級,如果待調(diào)整圖像和參考圖像具有相同的積累分布函數(shù)值,則將待調(diào)整圖像像素值調(diào)整為參考圖像對應(yīng)的像素值;如果參考圖像和待調(diào)整圖像沒有相同的累積分布函數(shù)值,則待調(diào)整圖像在該某一灰度級保持原有像素值。
step4.3:將調(diào)整后的兩幅圖像作為輸入圖像,并使用加權(quán)平均融合法對兩幅輸入圖像進(jìn)行融合。
本發(fā)明中提出的方法實(shí)際上可嵌入fpga實(shí)現(xiàn),開發(fā)具有圖像拼接功能的相機(jī)或攝像機(jī)。以上實(shí)施例僅起到解釋本發(fā)明技術(shù)方案的作用,本發(fā)明所要求的保護(hù)范圍并不局限于上述實(shí)施例所述的實(shí)現(xiàn)系統(tǒng)和具體實(shí)施步驟。因此,僅對上述實(shí)施例中具體的公式及算法進(jìn)行簡單替換,但其實(shí)質(zhì)內(nèi)容仍與本發(fā)明所述方法相一致的技術(shù)方案,均應(yīng)屬于本發(fā)明的保護(hù)范圍。