專利名稱:一種基于加權(quán)采樣的圖像特征點(diǎn)匹配方法
技術(shù)領(lǐng)域:
本發(fā)明涉及三維重建等領(lǐng)域,尤其涉及一種基于加權(quán)采樣的圖像特征點(diǎn)匹 配方法。
背景技術(shù):
近幾年,計(jì)算機(jī)科學(xué)在視頻的三維重建等方面取得了很大的進(jìn)展。人們可 以用放置在不同位置的多臺(tái)攝像機(jī)對(duì)同一場(chǎng)景進(jìn)行拍攝,通過(guò)對(duì)拍攝到的場(chǎng)景 進(jìn)行處理,恢復(fù)出整個(gè)場(chǎng)景或者場(chǎng)景中某個(gè)物體的坐標(biāo)。從視頻或者圖像中恢 復(fù)出物體的三維模型這種方法得到了很大的應(yīng)用,它被廣泛的應(yīng)用在環(huán)境仿真、 工業(yè)測(cè)量、電子商務(wù)、特技制作等領(lǐng)域。為了提高重建出來(lái)的三維模型的質(zhì)量, 高效率和高質(zhì)量的特征點(diǎn)匹配是非常有用的。
特征點(diǎn)的檢測(cè)和匹配在計(jì)算機(jī)視覺(jué)中是一個(gè)基礎(chǔ)問(wèn)題,在這個(gè)問(wèn)題上,大
量的研究者做了大量的工作。DavidLowe在2004年提出了一個(gè)著名的算法,即 SIFT算法(D丄owe. Distinctive image features from scale-invariant keypoints[J]. International Journal of Computer Vision, 2004, 60(2):91—110),這個(gè)算法可以用來(lái) 在兩幅圖像間檢測(cè)和找到特征點(diǎn)。SIFT算法有尺度不變性,給定兩幅相同大小 或者不同大小的圖片,SIFT算法可以在兩幅圖像中檢測(cè)到圖像中的特征點(diǎn)和匹 配點(diǎn)。但是由于圖像噪聲的存在,SIFT算法找出的圖像匹配點(diǎn)集含有很多不正 確的匹配點(diǎn)。因此,需要一個(gè)算法來(lái)處理SIFT算法找出來(lái)的匹配點(diǎn)集,使得處 理后的匹配點(diǎn)集合中不包含或者包含有比較少的不正確匹配點(diǎn)。
為了從SIFT算法找出的匹配點(diǎn)結(jié)中選出正確的匹配點(diǎn),研究者們提出了使 用極線幾何和隨機(jī)采樣的方法,這里面包括了隨機(jī)釆樣一致性算法(RANSAC) 和LMedS算法等。這些算法的一般模式都是從數(shù)據(jù)集中隨機(jī)采樣一些樣本數(shù)據(jù), 然后用這些樣本數(shù)據(jù)計(jì)算出兩幅圖像間的極線幾何性質(zhì),再用兩幅圖像間的極 線幾何性質(zhì)去找出正確的匹配點(diǎn),隨機(jī)采樣的次數(shù)一般都很多。
這里所說(shuō)的極線幾何的性質(zhì),主要是指兩幅圖像間的基礎(chǔ)矩陣(R.Hartley, A.Zisserman. Multiple View Geometry in Computer Vision,. Cambridge UniversityPress, London, 2000)?;A(chǔ)矩陣描述了兩幅圖像間的代數(shù)關(guān)系,所有 的兩幅圖像間的正確的匹配點(diǎn)都應(yīng)該符合基礎(chǔ)矩陣的關(guān)系。常用的計(jì)算基礎(chǔ)矩 陣的方法有8點(diǎn)法(R.Hartley, A.Zisserman. Multiple View Geometry in Computer Vision[M]. Cambridge University Press, London, 2000)等。在極線幾何里,用Sampson Distance (R.Hartley, A.Zisserman. Multiple View Geometry in Computer Vision[M]. Cambridge University Press, London, 2000)來(lái)衡量一對(duì)匹配點(diǎn)符合基 礎(chǔ)矩陣的程度,可以把Sampson Distance看成是一對(duì)匹配點(diǎn)滿足一個(gè)基礎(chǔ)矩陣的 誤差,誤差大就說(shuō)明這對(duì)匹配點(diǎn)不符合基礎(chǔ)矩陣,因此是一對(duì)不正確的匹配點(diǎn)。 現(xiàn)有的隨機(jī)采樣一致性算法(RANSAC), LMedS等算法的運(yùn)行結(jié)果在很大 程度上和數(shù)據(jù)集中的不正確匹配點(diǎn)的比例有關(guān),實(shí)驗(yàn)證明,在數(shù)據(jù)集中不正確 匹配點(diǎn)的比例很高的時(shí)候,這些算法產(chǎn)生的結(jié)果會(huì)把很多的不正確匹配點(diǎn)認(rèn)為 是正確的匹配點(diǎn)選出來(lái)。
發(fā)明內(nèi)容
本發(fā)明的目的是克服現(xiàn)有技術(shù)的不足,提供了一種有效的基于加權(quán)采樣的 圖像特征點(diǎn)匹配的方法。
基于加權(quán)采樣的圖像特征點(diǎn)匹配的方法包括以下步驟
1) 給定對(duì)同一個(gè)場(chǎng)景在不同角度拍攝的兩幅圖像,用SIFT算法找到兩幅 圖像中的匹配點(diǎn),構(gòu)成一個(gè)數(shù)據(jù)集,數(shù)據(jù)集中元素是兩幅圖像間的一對(duì)匹配點(diǎn);
2) 為每對(duì)匹配點(diǎn)設(shè)定一個(gè)大于0的權(quán)值;
3) 按照匹配點(diǎn)的權(quán)重隨機(jī)采樣,每次采樣8對(duì)點(diǎn),用8點(diǎn)法計(jì)算出兩幅圖 像間的基礎(chǔ)矩陣F,計(jì)算出每對(duì)匹配點(diǎn)在這個(gè)基礎(chǔ)矩陣下的Sampson Distance 并組成誤差數(shù)組記錄下來(lái);
4) 對(duì)步驟3)重復(fù)7V次,得到W個(gè)誤差數(shù)組,找出TV個(gè)誤差數(shù)組中中值最 小的誤差數(shù)組,根據(jù)中值最小的誤差數(shù)組計(jì)算出閾值義,對(duì)中值最小的誤差數(shù)組 中Sampson Distance小于閾值義的匹配點(diǎn),權(quán)重增加一個(gè)預(yù)先設(shè)定好的數(shù)值;
5) 對(duì)步驟3)和步驟4)重復(fù)M次,找出那些權(quán)重大于用戶給定閾值t7的 匹配點(diǎn)作為最后的匹配點(diǎn)。
所述用SIFT算法找到兩幅圖像中的匹配點(diǎn),構(gòu)成一個(gè)數(shù)據(jù)集步驟給定輸 入的對(duì)同一個(gè)場(chǎng)景在不同角度拍攝的兩幅圖像,運(yùn)用SIFT算法找出兩幅圖像中 的匹配點(diǎn),并把找到的兩幅圖像中的匹配點(diǎn)構(gòu)成一個(gè)數(shù)據(jù)集,數(shù)據(jù)集中的每個(gè) 元素就是兩幅圖像間的一對(duì)匹配點(diǎn)。
所述按照匹配點(diǎn)的權(quán)重隨機(jī)采樣步驟隨機(jī)從數(shù)據(jù)集中選出一些匹配點(diǎn), 使得權(quán)重大的匹配點(diǎn)被選中的概率大,假設(shè)數(shù)據(jù)集中包含有w對(duì)匹配點(diǎn),其中 第/對(duì)匹配點(diǎn)的權(quán)重為W,那么,第/對(duì)匹配點(diǎn)被選中的概率A的計(jì)算公式為實(shí)施的算法為 輸入權(quán)重?cái)?shù)組
輸出隨機(jī)采樣出的8對(duì)點(diǎn)的序號(hào)
步驟l:給定包含了每對(duì)匹配點(diǎn)的權(quán)重?cái)?shù)組W,復(fù)制這個(gè)數(shù)組為W',構(gòu)造一 個(gè)空的輸出集合OW0W;
步驟2:求出數(shù)組vt;'中所有元素的和^tv,.;
,.=1
步驟3:生成一個(gè)在[O,S]范圍內(nèi)的隨機(jī)數(shù)A:,從數(shù)組W'中找出下標(biāo)為的元素, 使得如下公式滿足
! =1
乂-l
5>、 <A
, =1
步驟4:把步驟3找出來(lái)的下標(biāo)y添加到輸出集合o啤W,并把w'數(shù)組中的 第/個(gè)元素,即v^.設(shè)為0;
步驟5:對(duì)步驟2,步驟3和步驟4重復(fù)8次;
步驟6:輸出oW/7W數(shù)組。
所述用8點(diǎn)法計(jì)算出兩幅圖像間的基礎(chǔ)矩陣F步驟假設(shè)8對(duì)匹配點(diǎn)的圖像
坐標(biāo)為(x,,X)和(<■,力),首先構(gòu)造一個(gè)矩陣A
,^x!' x,' x!;V ;V 、 ^ 1、
爿=
J^Xg ; ^83^8 Vsh ^78 ^ 乂8 l乂
然后求出一個(gè)矩陣/ = (/ /12 /13 /21 /22 /23 /31 /32 /33),使得/滿足如
下等式
I/H
具體步驟為對(duì)矩陣^進(jìn)行SVD分解,使得^:t/D^,則矩陣/就是矩陣r 的第9列,SVD在matlab中有現(xiàn)成的函數(shù)可以調(diào)用,上述求解矩陣/的過(guò)程用以下的matlab代碼來(lái)表示<formula>formula see original document page 8</formula>
求出矩陣/后,按照矩陣/構(gòu)造一個(gè)3x3的矩陣F',使得矩陣F'滿足:
接著對(duì)矩陣F'進(jìn)行SVD分解,使得F^C/D^, SVD分解后,矩陣D為3x3 的對(duì)角矩陣,D二AagOAO,求出矩陣i^t/^/ag(w,0).",矩陣F為基礎(chǔ)矩陣。
所述計(jì)算出每對(duì)匹配點(diǎn)在這個(gè)基礎(chǔ)矩陣下的Sampson Distance并組成誤差 數(shù)組記錄下來(lái)步驟計(jì)算出一個(gè)基礎(chǔ)矩陣F后,為數(shù)據(jù)集中的每對(duì)匹配點(diǎn)計(jì)算 在基礎(chǔ)矩陣F下的Sampson Distance,并組成一個(gè)數(shù)組,稱為誤差數(shù)組,數(shù)組中 的第/個(gè)元素是數(shù)據(jù)集中第/對(duì)匹配點(diǎn)在基礎(chǔ)矩陣F下的Sampson Distance。計(jì) 算Sampson Distance的公式為
其中,"和"'為數(shù)據(jù)集中的一對(duì)匹配點(diǎn),用齊次坐標(biāo)來(lái)表示,即如果一個(gè)點(diǎn)的坐 標(biāo)表示為0c,力,那么這對(duì)點(diǎn)的齊次坐標(biāo)表示為(;c,少,lf ,公式中"為第l幅圖像上 的匹配點(diǎn),"'為第2幅圖像上的匹配點(diǎn),/,和/,分別是極線/的齊次坐標(biāo)表示的第 一個(gè)和第二個(gè)元素,和/'2分別是極線/'的齊次坐標(biāo)表示的第一個(gè)元素和第二個(gè) 元素。/和/'的計(jì)算公式為
可以看到,/和/'都是一個(gè)3xl的矩陣,因此可以取到這兩個(gè)矩陣的第一個(gè)和第 二個(gè)元素。
所述找出W個(gè)誤差數(shù)組中中值最小的誤差數(shù)組步驟 一個(gè)誤差數(shù)組的中值 被定義為其中,fl是排序好的誤差數(shù)組,a,是數(shù)組中的第/個(gè)元素,w是數(shù)組中的元素個(gè)
數(shù),計(jì)算出每個(gè)誤差數(shù)組的中值,找出中值最小的誤差數(shù)組。
所述根據(jù)中值最小的誤差數(shù)組計(jì)算出閾值;i步驟假設(shè)數(shù)組『是挑選出來(lái)
的中值最小的誤差數(shù)組,闞值義的計(jì)算公式如下
;1 = 2*1.4826 * (1 + 5 /(w - 8》*
其中,w^/an(fn是數(shù)組『的中值,w是數(shù)組『中元素的個(gè)數(shù)。
使用本發(fā)明對(duì)圖像的匹配點(diǎn)進(jìn)行處理具有良好的效果,在給定的匹配點(diǎn)集 中含有大量的不正確匹配點(diǎn)的時(shí)候,該方法能選出大量的正確匹配點(diǎn)。
圖1是本發(fā)明待處理的兩幅圖片; 圖2是用SIFT算法找到的兩幅圖像間的匹配特征點(diǎn); 圖3是本發(fā)明輸出的兩幅圖像間的匹配特征點(diǎn)。
具體實(shí)施例方式
基于加權(quán)采樣的圖像特征點(diǎn)匹配的方法包括以下步驟
1) 給定對(duì)同一個(gè)場(chǎng)景在不同角度拍攝的兩幅圖像,用SIFT算法找到兩幅 圖像中的匹配點(diǎn),構(gòu)成一個(gè)數(shù)據(jù)集,數(shù)據(jù)集中元素是兩幅圖像間的一對(duì)匹配點(diǎn); 把這個(gè)數(shù)據(jù)集稱為S,由于圖像噪聲和SIFT算法本身的因素,數(shù)據(jù)集S中含有 很多不正確的匹配點(diǎn)。
2) 為每對(duì)匹配點(diǎn)設(shè)定一個(gè)大于0的權(quán)值;
為每對(duì)匹配點(diǎn)設(shè)定一個(gè)大于0的權(quán)值,即為這個(gè)集合構(gòu)造一個(gè)權(quán)重?cái)?shù)組w, 其中數(shù)組中的第/個(gè)元素是數(shù)據(jù)集中第/對(duì)匹配點(diǎn)的權(quán)值,數(shù)組中的每個(gè)元素都 被設(shè)為一個(gè)固定的數(shù)值",即每對(duì)匹配點(diǎn)的權(quán)值被設(shè)為a,這里o是一個(gè)大于0 的數(shù)字。
3) 按照匹配點(diǎn)的權(quán)重隨機(jī)采樣,每次采樣8對(duì)點(diǎn),用8點(diǎn)法計(jì)算出兩幅圖 像間的基礎(chǔ)矩陣F,計(jì)算出每對(duì)匹配點(diǎn)在這個(gè)基礎(chǔ)矩陣下的Sampson Distance 并組成誤差數(shù)組記錄下來(lái);
即用隨機(jī)采樣的方法從數(shù)據(jù)集中采樣8對(duì)點(diǎn),采樣的過(guò)程中,數(shù)據(jù)集中每對(duì) 點(diǎn)被采樣到的概率不同,權(quán)重大的匹配點(diǎn)被選中的概率大。
4) 對(duì)步驟3)重復(fù)iV次,得到W個(gè)誤差數(shù)組,找出W個(gè)誤差數(shù)組中中值最 小的誤差數(shù)組,根據(jù)中值最小的誤差數(shù)組計(jì)算出閾值;i,對(duì)中值最小的誤差數(shù)組 中Sampson Distance小于闊值義的匹配點(diǎn),權(quán)重增加一個(gè)預(yù)先設(shè)定好的數(shù)值;即首先對(duì)所有的誤差數(shù)組分別進(jìn)行排序,并求出這些誤差數(shù)組的中值, 個(gè)誤差數(shù)組的中值的計(jì)算公式為
其中,"是排序好的誤差數(shù)組,",.是數(shù)組中的第/個(gè)元素,"是數(shù)組中的元素個(gè) 數(shù)。得到所有誤差數(shù)組的中值后,我們選出誤差中值最小的那個(gè)數(shù)組,把它記 為『,我們用如下公式計(jì)算閾值
其中,附e^m(fn是數(shù)組『的中值,w是『中元素的個(gè)數(shù),也就是數(shù)據(jù)集S 包含的元素個(gè)數(shù)。求出閾值;i后,我們從數(shù)組『中挑出Sampson Distance小于義 那些匹配點(diǎn),并增加它們的權(quán)重,把它們的權(quán)重增加一個(gè)固定的數(shù)值6,即如果 在數(shù)組W中,第z'對(duì)匹配點(diǎn)的Sampson Distance小于義,那么我們?cè)黾铀臋?quán) 重,使得w,;w,+6。
5)對(duì)步驟3)和步驟4)重復(fù)M次,找出那些權(quán)重大于用戶給定閾值cr的 匹配點(diǎn)作為最后的匹配點(diǎn)。
所述用SIFT算法找到兩幅圖像中的匹配點(diǎn),構(gòu)成一個(gè)數(shù)據(jù)集步驟給定輸 入的對(duì)同一個(gè)場(chǎng)景在不同角度拍攝的兩幅圖像,運(yùn)用SIFT算法找出兩幅圖像中 的匹配點(diǎn),并把找到的兩幅圖像中的匹配點(diǎn)構(gòu)成一個(gè)數(shù)據(jù)集,數(shù)據(jù)集中的每個(gè) 元素就是兩幅圖像間的一對(duì)匹配點(diǎn)。
所述按照匹配點(diǎn)的權(quán)重隨機(jī)采樣步驟隨機(jī)從數(shù)據(jù)集中選出一些匹配點(diǎn), 使得權(quán)重大的匹配點(diǎn)被選中的概率大,假設(shè)數(shù)據(jù)集中包含有《對(duì)匹配點(diǎn),其中 第z'對(duì)匹配點(diǎn)的權(quán)重為w,.,那么,第/對(duì)匹配點(diǎn)被選中的概率A.的計(jì)算公式為
實(shí)施的算法為 輸入權(quán)重?cái)?shù)組
輸出隨機(jī)采樣出的8對(duì)點(diǎn)的序號(hào)
步驟l:給定包含了每對(duì)匹配點(diǎn)的權(quán)重?cái)?shù)組W,復(fù)制這個(gè)數(shù)組為W',構(gòu)造一 個(gè)空的輸出集合oW/^;
義=2 * 1.4826 * (1 + 5 /(w — 8)) * mWa,}步驟2:求出數(shù)組W'中所有元素的和^ly,;
,=1
步驟3:生成一個(gè)在[(^]范圍內(nèi)的隨機(jī)數(shù)h從數(shù)組vt;'中找出下標(biāo)為_/的元素,
使得如下公式滿足
步驟4:把步驟3找出來(lái)的下標(biāo)y添加到輸出集合ow^wf,并把vv'數(shù)組中的 第y個(gè)元素,即v^.設(shè)為0;
步驟5:對(duì)步驟2,步驟3和步驟4重復(fù)8次;
步驟6:輸出0W/^數(shù)組。
所述用8點(diǎn)法計(jì)算出兩幅圖像間的基礎(chǔ)矩陣F步驟假設(shè)8對(duì)匹配點(diǎn)的圖像
坐標(biāo)為和0',. ,/, ),首先構(gòu)造一個(gè)矩陣A
爿=
^X! 乂X! X! 乃 X, ^
1、
、X8 X8 J^8 X8 義8 8 3^8 3^8 1,
然后求出一個(gè)矩陣/"/u ,2 /13 /21 /22 /23 /31 /32 /33),使得/滿足如 下等式
II/H
具體步驟為對(duì)矩陣^進(jìn)行SVD分解,使得^ = [//)^,則矩陣/就是矩陣 F的第9列,SVD在matlab中有現(xiàn)成的函數(shù)可以調(diào)用,上述求解矩陣/的過(guò)程 用以下的matlab代碼來(lái)表示
[£/,£>,門= 一」); / = 7(:,9)';
求出矩陣/后,按照矩陣/構(gòu)造一個(gè)3x3的矩陣F',使得矩陣F'滿足
<formula>formula see original document page 11</formula>
接著對(duì)矩陣F'進(jìn)行SVD分解,使得F^C/D", SVD分解后,矩陣D為3x3 的對(duì)角矩陣,D二J/"gO,W),求出矩陣尸-t/.&ag(w,0).W,矩陣F為基礎(chǔ)矩陣。
所述計(jì)算出每對(duì)匹配點(diǎn)在這個(gè)基礎(chǔ)矩陣下的Sampson Distance并組成誤差 數(shù)組記錄下來(lái)步驟計(jì)算出一個(gè)基礎(chǔ)矩陣尸后,為數(shù)據(jù)集中的每對(duì)匹配點(diǎn)計(jì)算 在基礎(chǔ)矩陣尸下的Sampson Distance,并組成一個(gè)數(shù)組,稱為誤差數(shù)組,數(shù)組中 的第Z個(gè)元素是數(shù)據(jù)集中第/對(duì)匹配點(diǎn)在基礎(chǔ)矩陣F下的Sampson Distance。計(jì) 算Sampson Distance的公式為<formula>formula see original document page 12</formula>
其中,"和"'為數(shù)據(jù)集中的一對(duì)匹配點(diǎn),用齊次坐標(biāo)來(lái)表示,即如果一個(gè)點(diǎn)的坐
標(biāo)表示為(x,力,那么這對(duì)點(diǎn)的齊次坐標(biāo)表示為(x,;;,lf ,公式中w為第l幅圖像上 的匹配點(diǎn),"'為第2幅圖像上的匹配點(diǎn),A和/,分別是極線/的齊次坐標(biāo)表示的第 一個(gè)和第二個(gè)元素,^和/、分別是極線/'的齊次坐標(biāo)表示的第一個(gè)元素和第二個(gè) 元素。/和/'的計(jì)算公式為
可以看到,/和/'都是一個(gè)3xl的矩陣,因此可以取到這兩個(gè)矩陣的第一個(gè)和第 二個(gè)元素。
所述找出iV個(gè)誤差數(shù)組中中值最小的誤差數(shù)組步驟 一個(gè)誤差數(shù)組的中值 被定義為
附e^ _ _|"("+i)/2 mod2 = l
1(""/2 +a"/2+i)/2 "mod2 = 0
其中,。是排序好的誤差數(shù)組,",是數(shù)組中的第z'個(gè)元素,"是數(shù)組中的元素個(gè) 數(shù),計(jì)算出每個(gè)誤差數(shù)組的中值,找出中值最小的誤差數(shù)組。
所述根據(jù)中值最小的誤差數(shù)組計(jì)算出閾值2步驟假設(shè)數(shù)組『是挑選出來(lái) 的中值最小的誤差數(shù)組,閾值義的計(jì)算公式如下<formula>formula see original document page 12</formula>是數(shù)組,的中值,n是數(shù)組『中元素的個(gè)數(shù)。 實(shí)施例
如附圖l所示,圖中左右兩幅圖像分別是對(duì)同一個(gè)場(chǎng)景在兩個(gè)不同角度進(jìn)行 拍攝得到的兩幅圖像,其中第二幅圖像是相機(jī)在拍攝第一幅圖像的位置水平轉(zhuǎn)過(guò)一個(gè)角度拍攝的,因此,這兩幅圖像上的匹配點(diǎn)應(yīng)該在一條水平線上。
首先,用SIFT算法找出附圖1中兩幅圖片的匹配點(diǎn),并把這些匹配點(diǎn)組成 集合&集合中的每個(gè)元素是附圖1中兩幅圖片的一對(duì)匹配點(diǎn)。在附圖1中把集 合S每對(duì)匹配點(diǎn)用線段連起來(lái),就得到了附圖2,也就是說(shuō),在附圖2中,每條 線段所連的兩個(gè)點(diǎn)是集合S中的一對(duì)匹配點(diǎn),可以看到,在附圖2中,有很多 線段是不水平的,由于附圖1中的兩幅圖像是相機(jī)通過(guò)水平轉(zhuǎn)過(guò)一個(gè)角度拍攝 的,因此,兩幅圖像中的匹配點(diǎn)應(yīng)該在一條水平線上,因此,附圖2中那些不 水平的線段連接的匹配點(diǎn)都是不正確的,也就是說(shuō),集合S中含有很多不正確 的匹配點(diǎn)。
得到了集合S后,我們接著對(duì)這個(gè)數(shù)據(jù)集進(jìn)行如下處理-
1) 首先為集合S中的每對(duì)匹配點(diǎn)設(shè)定權(quán)值為a。
2) 按照匹配點(diǎn)的權(quán)值大小對(duì)它們隨機(jī)采樣,每次采樣的過(guò)程中,權(quán)值大的 匹配點(diǎn)被采樣到的概率也大。每次采樣8對(duì)點(diǎn),采樣到8對(duì)點(diǎn)后,用這8對(duì)點(diǎn) 求出兩幅圖像間的基礎(chǔ)矩陣F,并求出數(shù)據(jù)集S里面所有匹配點(diǎn)對(duì)在這個(gè)基礎(chǔ)矩 陣下的Sampson Distance并組成誤差數(shù)組保存下來(lái),因此每次采樣的過(guò)程,我們 能得到1個(gè)誤差數(shù)組。
3) 重復(fù)步驟2)W次后,我們得到W個(gè)誤差數(shù)組,找出中值最小的那個(gè)誤 差數(shù)組,并算出閾值/L,從這個(gè)誤差數(shù)組中找出那些Sampson Distance小于義的 匹配點(diǎn)對(duì),把它們的權(quán)值增加6,其中6是一個(gè)大于0的數(shù)字。
4) 重復(fù)步驟2)和步驟3) M次,然后從誤差數(shù)組中選出那些權(quán)值大于一個(gè)
用戶給定閾值C7的匹配點(diǎn)作為輸出。
實(shí)驗(yàn)結(jié)果如附圖3所示,經(jīng)過(guò)本方法處理后,可以看到附圖3中每條線段連 接的點(diǎn)對(duì)都處于一條水平線上,因此結(jié)果比附圖2中的結(jié)果有很大改進(jìn)。
權(quán)利要求
1.一種基于加權(quán)采樣的圖像特征點(diǎn)匹配的方法,其特征在于包括以下步驟1)給定對(duì)同一個(gè)場(chǎng)景在不同角度拍攝的兩幅圖像,用SIFT算法找到兩幅圖像中的匹配點(diǎn),構(gòu)成一個(gè)數(shù)據(jù)集,數(shù)據(jù)集中元素是兩幅圖像間的一對(duì)匹配點(diǎn);2)為每對(duì)匹配點(diǎn)設(shè)定一個(gè)大于0的權(quán)值;3)按照匹配點(diǎn)的權(quán)重隨機(jī)采樣,每次采樣8對(duì)點(diǎn),用8點(diǎn)法計(jì)算出兩幅圖像間的基礎(chǔ)矩陣F,計(jì)算出每對(duì)匹配點(diǎn)在這個(gè)基礎(chǔ)矩陣下的Sampson Distance并組成誤差數(shù)組記錄下來(lái);4)對(duì)步驟3)重復(fù)N次,得到N個(gè)誤差數(shù)組,找出N個(gè)誤差數(shù)組中中值最小的誤差數(shù)組,根據(jù)中值最小的誤差數(shù)組計(jì)算出閾值λ,對(duì)中值最小的誤差數(shù)組中Sampson Distance小于閾值λ的匹配點(diǎn),權(quán)重增加一個(gè)預(yù)先設(shè)定好的數(shù)值;5)對(duì)步驟3)和步驟4)重復(fù)M次,找出那些權(quán)重大于用戶給定閾值σ的匹配點(diǎn)作為最后的匹配點(diǎn)。
2. 根據(jù)權(quán)利要求1所述的一種基于加權(quán)采樣的圖像特征點(diǎn)匹配的方法,其特 征在于所述用SIFT算法找到兩幅圖像中的匹配點(diǎn),構(gòu)成一個(gè)數(shù)據(jù)集步驟給定 輸入的對(duì)同一個(gè)場(chǎng)景在不同角度拍攝的兩幅圖像,運(yùn)用SIFT算法找出兩幅圖像 中的匹配點(diǎn),并把找到的兩幅圖像中的匹配點(diǎn)構(gòu)成一個(gè)數(shù)據(jù)集,數(shù)據(jù)集中的每 個(gè)元素就是兩幅圖像間的一對(duì)匹配點(diǎn)。
3. 根據(jù)權(quán)利要求1所述的一種基于加權(quán)采樣的圖像特征點(diǎn)匹配的方法,其特 征在于所述按照匹配點(diǎn)的權(quán)重隨機(jī)采樣步驟隨機(jī)從數(shù)據(jù)集中選出一些匹配點(diǎn), 使得權(quán)重大的匹配點(diǎn)被選中的概率大,假設(shè)數(shù)據(jù)集中包含有n對(duì)匹配點(diǎn),其中 第z'對(duì)匹配點(diǎn)的權(quán)重為w,,那么,第/對(duì)匹配點(diǎn)被選中的概率A的計(jì)算公式為2^乂實(shí)施的算法為 輸入權(quán)重?cái)?shù)組輸出隨機(jī)采樣出的8對(duì)點(diǎn)的序號(hào)步驟l:給定包含了每對(duì)匹配點(diǎn)的權(quán)重?cái)?shù)組w,復(fù)制這個(gè)數(shù)組為W',構(gòu)造一 空的輸出集合oW/^;步驟2:求出數(shù)組W'中所有元素的和s = |>',.;步驟3:生成一個(gè)在[(M]范圍內(nèi)的隨機(jī)數(shù)A:,從數(shù)組w'中找出下標(biāo)為y的元 素,使得如下公式滿足<formula>formula see original document page 3</formula>步驟4:把步驟3找出來(lái)的下標(biāo)/添加到輸出集合o啤W,并把w'數(shù)組中的 第/個(gè)元素,即力.設(shè)為0;步驟5:對(duì)步驟2,步驟3和步驟4重復(fù)8次;步驟6:輸出OM/pwf數(shù)組。
4.根據(jù)權(quán)利要求1所述的一種基于加權(quán)釆樣的圖像特征點(diǎn)匹配的方法,其特 征在于所述用8點(diǎn)法計(jì)算出兩幅圖像間的基礎(chǔ)矩陣F步驟假設(shè)8對(duì)匹配點(diǎn)的 圖像坐標(biāo)為(A,乂)和(A ,,),首先構(gòu)造一個(gè)矩陣A<formula>formula see original document page 3</formula>然后求出一個(gè)矩陣/ = (/ /12 /13 /21 /22 /23 /31 /32 /33),使得/滿足如 下等式<formula>formula see original document page 3</formula>具體步驟為對(duì)矩陣」進(jìn)行SVD分解,使得J-M)K,則矩陣/就是矩陣K 的第9列,SVD在matlab中有現(xiàn)成的函數(shù)可以調(diào)用,上述求解矩陣/的過(guò)程用 以下的matlab代碼來(lái)表示<formula>formula see original document page 3</formula>求出矩陣/后,按照矩陣/構(gòu)造一個(gè)3x3的矩陣F',使得矩陣F'滿足<formula>formula see original document page 3</formula>接著對(duì)矩陣F'進(jìn)行SVD分解,使得尸="/))^, SVD分解后,矩陣D為3x3 的對(duì)角矩陣,D-^ag(r,s,0,求出矩陣i^t/iag(r,s,0).K,矩陣F為基礎(chǔ)矩 陣。
5. 根據(jù)權(quán)利要求1所述的一種基于加權(quán)采樣的圖像特征點(diǎn)匹配的方法,其特征在于所述計(jì)算出每對(duì)匹配點(diǎn)在這個(gè)基礎(chǔ)矩陣下的Sampson Distance并組成誤 差數(shù)組記錄下來(lái)步驟計(jì)算出一個(gè)基礎(chǔ)矩陣F后,為數(shù)據(jù)集中的每對(duì)匹配點(diǎn)計(jì) 算在基礎(chǔ)矩陣F下的Sampson Distance,并組成一個(gè)數(shù)組,稱為誤差數(shù)組,數(shù)組 中的第/個(gè)元素是數(shù)據(jù)集中第/對(duì)匹配點(diǎn)在基礎(chǔ)矩陣F下的Sampson Distance。 計(jì)算Sampson Distance的公式為<formula>formula see original document page 4</formula>其中,"和"'為數(shù)據(jù)集中的一對(duì)匹配點(diǎn),用齊次坐標(biāo)來(lái)表示,即如果一個(gè)點(diǎn)的坐 標(biāo)表示為(x,力,那么這對(duì)點(diǎn)的齊次坐標(biāo)表示為(x,y,lf ,公式中"為第l幅圖像上 的匹配點(diǎn),"'為第2幅圖像上的匹配點(diǎn),/,和/2分別是極線/的齊次坐標(biāo)表示的第 一個(gè)和第二個(gè)元素,/,和/、分別是極線/'的齊次坐標(biāo)表示的第一個(gè)元素和第二個(gè) 元素。/和/'的計(jì)算公式為<formula>formula see original document page 4</formula>可以看到,/和/'都是一個(gè)3xl的矩陣,因此可以取到這兩個(gè)矩陣的第一個(gè)和第二個(gè)元素。
6. 根據(jù)權(quán)利要求1所述的一種基于加權(quán)釆樣的圖像特征點(diǎn)匹配的方法,其特征在于所述找出W個(gè)誤差數(shù)組中中值最小的誤差數(shù)組步驟 一個(gè)誤差數(shù)組的中 值被定義為<formula>formula see original document page 4</formula>其中,"是排序好的誤差數(shù)組,",是數(shù)組中的第/個(gè)元素,w是數(shù)組中的元素個(gè) 數(shù),計(jì)算出每個(gè)誤差數(shù)組的中值,找出中值最小的誤差數(shù)組。
7.根據(jù)權(quán)利要求1所述的一種基于加權(quán)采樣的圖像特征點(diǎn)匹配的方法,其特 征在于所述根據(jù)中值最小的誤差數(shù)組計(jì)算出閾值;i步驟假設(shè)數(shù)組『是挑選出來(lái)的中值最小的誤差數(shù)組,閾值義的計(jì)算公式如下A = 2 * 1.4826 * (1 + 5 /(w - 8)) *其中,是數(shù)組『的中值,w是數(shù)組『中元素的個(gè)數(shù)。
全文摘要
本發(fā)明公開了一種基于加權(quán)采樣的圖像特征點(diǎn)匹配的方法。給定一個(gè)包含有兩幅圖像間正確匹配點(diǎn)和不正確匹配點(diǎn)的數(shù)據(jù)集合,首先用SIFT算法找出兩幅圖像間的匹配點(diǎn)并構(gòu)成一個(gè)數(shù)據(jù)集,然后為數(shù)據(jù)集中的每對(duì)匹配點(diǎn)設(shè)置一個(gè)大于0的權(quán)值,再按照權(quán)值大小對(duì)數(shù)據(jù)集進(jìn)行多次采樣,用采樣到的匹配點(diǎn)來(lái)計(jì)算基礎(chǔ)矩陣,然后根據(jù)計(jì)算得到的基礎(chǔ)矩陣來(lái)判斷正確的匹配點(diǎn)并增加它們的權(quán)重,重復(fù)上述的采樣過(guò)程多次,最后選出那些權(quán)值大于一個(gè)用戶給定的閾值的匹配點(diǎn)。使用本方法對(duì)圖像的匹配點(diǎn)進(jìn)行處理具有良好的效果,在給定的匹配點(diǎn)集中含有大量的不正確匹配點(diǎn)的時(shí)候,該方法能選出大量的正確匹配點(diǎn)。
文檔編號(hào)G06T15/00GK101320470SQ20081006301
公開日2008年12月10日 申請(qǐng)日期2008年7月4日 優(yōu)先權(quán)日2008年7月4日
發(fā)明者飛 吳, 莊越挺, 俊 徐, 銘 陳 申請(qǐng)人:浙江大學(xué)