日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

CV 两幅图像配准

發(fā)布時(shí)間:2023/12/6 编程问答 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 CV 两幅图像配准 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

http://www.cnblogs.com/Lemon-Li/p/3504717.html

圖像配準(zhǔn)算法一般可分為: 一、基于圖像灰度統(tǒng)計(jì)特性配準(zhǔn)算法;二、基于圖像特征配準(zhǔn)算法;三、基于圖像理解的配準(zhǔn)算法。

其中,算法類型二最普遍,基于特征的圖像配準(zhǔn)算法的核心步驟為:1.特征提取、2.特征匹配、3.模型參數(shù)估計(jì)、4.圖像變換和灰度插值(重采樣)。

圖像配準(zhǔn)必須得考慮3個(gè)問(wèn)題: 分別是配準(zhǔn)時(shí)所用到的空間變換模型、配準(zhǔn)的相似性測(cè)度準(zhǔn)則以及空間變換矩陣的尋優(yōu)方式。

1)空間變換模型,是指的這兩幅要配準(zhǔn)的圖像之間的映射模型,比如只有旋轉(zhuǎn)、平移這些操作,那就是剛體變換模型,又比如有縮放操作,甚至X方向和Y方向縮放的幅度都還不一樣,那就是仿射變換或者非線性變換模型。總之你要做配準(zhǔn),先要確定這兩幅圖像之間是一種什么樣的映射模型。要是對(duì)這個(gè)變換模型還不清楚,你就到google上或者萬(wàn)方上搜索“仿射變換”、“剛體變換”這些關(guān)鍵詞。帖子里不可能講的太詳細(xì)。
2)配準(zhǔn)的相似性測(cè)度準(zhǔn)則。在你確定了變換模型后,接下去要做什么?當(dāng)然是確定模型里的參數(shù)了,而要確定這些參數(shù)(不同的變換模型參數(shù)個(gè)數(shù)是不一樣的,像剛體變換有x平移、y平移和旋轉(zhuǎn)角度sita三個(gè)參數(shù),仿射變換有6個(gè)參數(shù))你得告訴程序什么參數(shù)是最好的,或者說(shuō)是正確的。那么判斷什么參數(shù)是正確的一個(gè)準(zhǔn)則就是我們說(shuō)的配準(zhǔn)的相似性測(cè)度準(zhǔn)則,也就是告訴程序在某組參數(shù)下是配準(zhǔn)的程度是多少,顯然使得配準(zhǔn)程度最好的那組參數(shù)就是我們要找的參數(shù)。

3)空間變換矩陣的尋優(yōu)方式。因?yàn)榇蠖鄶?shù)情況下,模型中的參數(shù)不是靠解出來(lái)的,而是要靠“嘗試-判斷”這種方式去尋找,空間變換矩陣的尋優(yōu)說(shuō)白了也就是怎么對(duì)這些參數(shù)進(jìn)行尋優(yōu),找出使得配準(zhǔn)程度最好的那一組參數(shù)的過(guò)程。這里有很多方法,如遺傳算法、粒子群優(yōu)化算法等等,如果你對(duì)這些算法都不了解,沒辦法,你只有用最笨的遍歷式搜索方法了,也就是以某一個(gè)步距,搜索所有的參數(shù)組合方式,然后找出使得按照相似性測(cè)度準(zhǔn)則配準(zhǔn)程度最高的那一組參數(shù)。

?

舉例說(shuō)明:比如有一幅圖像A,我將A左移了2個(gè)像素,再往下移了3個(gè)像素,又順時(shí)針旋轉(zhuǎn)了60度,這時(shí)的圖像我們稱作B。如果我們要對(duì)A和B進(jìn)行配準(zhǔn),其實(shí)就是確定2、3、60這三個(gè)參數(shù)的過(guò)程,因?yàn)檫@三個(gè)參數(shù)一旦確定了,我就知道了B和A的對(duì)應(yīng)關(guān)系,換句話說(shuō)對(duì)于B中的任何一個(gè)像素點(diǎn)我就知道在A中對(duì)應(yīng)的是哪個(gè)點(diǎn)。這里因?yàn)槲抑肋@兩幅圖只有平移和旋轉(zhuǎn)的變換操作,所以我們采用的模型是剛體變換模型(實(shí)際情況下,你如果不知道這兩幅圖像進(jìn)行了什么變換操作,只有大概根據(jù)圖像的位置信息揣測(cè)了,一般情況下非線性變換模型是最正確的,但是參數(shù)也最多)。配準(zhǔn)的相似性測(cè)度準(zhǔn)則這里我們就用簡(jiǎn)單點(diǎn)的(只是舉個(gè)例子說(shuō)明下過(guò)程,事實(shí)上的許多情況都要復(fù)雜的多),以二值化后兩幅圖像重合的像素點(diǎn)個(gè)數(shù)為準(zhǔn),也就是說(shuō)我們認(rèn)為使得兩幅圖像重合的像素最多的那組參數(shù)就是正確的變換參數(shù),理論上來(lái)講,如果兩幅圖像嚴(yán)格配準(zhǔn)了,那么顯然他們所有的像素點(diǎn)都是重合的,否則就有錯(cuò)開的部分。尋優(yōu)方法比較啰嗦,任何一個(gè)優(yōu)化算法都不是幾句話說(shuō)的明白的,這里直接用遍歷搜索法吧。因?yàn)橛腥齻€(gè)參數(shù)需要尋優(yōu)因此,我們對(duì)這三個(gè)參數(shù)的解空間進(jìn)行遍歷,比如對(duì)X方向的平移像素個(gè)數(shù)我們從-100搜索到+100,步距為1像素,對(duì)Y方向的平移像素我們也從-100搜索到+100,步距為1像素,對(duì)旋轉(zhuǎn)角度我們從0搜索到360度,步距為1度。這樣等于說(shuō)要完成一個(gè)200*200*360次的循環(huán),然后在每次循環(huán)里面,我們都判斷一下,按照當(dāng)次循環(huán)參數(shù)進(jìn)行變換后的A圖像與B圖像的重合像素個(gè)數(shù)有多少,找出200*200*360次循環(huán)中使得重合像素個(gè)數(shù)最多的那組循環(huán)中所使用的參數(shù),這組參數(shù)就是我們所要的結(jié)果,如果一切正常,顯然我們會(huì)在2,3,60這組參數(shù)所在循環(huán)中得到重合像素個(gè)數(shù)最多的結(jié)果。而所謂優(yōu)化算法其實(shí)就是用一種更為智能的方式得到2,3,60這三個(gè)參數(shù)的過(guò)程。這樣就完成了配準(zhǔn)的過(guò)程。

?

多項(xiàng)式模型:在兩幅圖像上找到足夠的同名點(diǎn)對(duì),然后用多項(xiàng)式模型強(qiáng)行糾正。大小、旋轉(zhuǎn)、噪聲等都不是問(wèn)題。?

自己構(gòu)造算法的話,可以這樣。假設(shè)A為正確位置的圖像,B是待校正的圖像。B圖上的任意一點(diǎn)(x,y),在校正后圖像上的位置應(yīng)該為(u,v)有(假設(shè)多項(xiàng)式為2階):

u = a0 + a1*x + a2*y + a3*x2 + a4*y2 + a5*x*y

v = b0 + b1*x + b2*y + b3*x2 + b4*y2 + b5*x*y

在B圖上散布取x,y值,在A圖的同名點(diǎn)上取u,v值,當(dāng)點(diǎn)數(shù)足夠時(shí),解a、b共12個(gè)參數(shù)。

得到方程后,遍歷b圖所有像元點(diǎn)x,y帶入上述公式,就得到了全部配準(zhǔn)后的位置u,v。

自動(dòng)獲取同名點(diǎn)比較困難些,其它容易。這個(gè)可以多階,但如果像你說(shuō)的非剛性變化一般3階就夠了。?

?

兩點(diǎn)線段匹配:選取兩幅圖的兩個(gè)應(yīng)該相同的點(diǎn)(一共4個(gè)點(diǎn)),得到4個(gè)點(diǎn)的坐標(biāo),然后用A圖的兩點(diǎn)線段與B圖的兩點(diǎn)線段計(jì)算出仿射變換的矩陣,再把矩陣應(yīng)用于整幅圖就行了。看看opencv吧,好多現(xiàn)成的API函數(shù)。

?

六參數(shù)配準(zhǔn)(仿射變換)具體求法:一共是6個(gè)參數(shù),坐標(biāo)軸的變化夾角,旋轉(zhuǎn)夾角,X尺度變化,Y尺度變化,X平移,Y平移。

進(jìn)行一系列運(yùn)算過(guò)后,可以變成一個(gè)線性代數(shù)式(具體怎么變換的不用管,比較復(fù)雜)

u = Ax + By + C

v = Dx + Ey + F

其中,U,V是目標(biāo)圖的橫縱坐標(biāo),X,Y是原圖橫縱坐標(biāo).也就是說(shuō)

[u v 1]'=[ A B C;D E F;0 0 1]*[x y z]'

具體A-F六個(gè)參數(shù)的計(jì)算可以通過(guò)SIFT在兩張圖中找到足夠的尺度不變特征點(diǎn),然后對(duì)這些特征點(diǎn)進(jìn)行匹配。匹配后就能得到很多特征點(diǎn)對(duì)。然后建立

u = Ax + By + C

v = Dx + Ey + F

這樣的方程。一共3對(duì)特征點(diǎn),6個(gè)方程,就足夠解6個(gè)參數(shù)了。但是實(shí)際上矩陣空間內(nèi)三個(gè)遠(yuǎn)遠(yuǎn)不夠。一般要把所有的一起拿來(lái)解超定方程組。

至于特征點(diǎn)匹配,SIFT應(yīng)該能算出128位特征描述子,用兩個(gè)點(diǎn)之間的特征描述子的歐式距離可以實(shí)現(xiàn)匹配。另外要速度優(yōu)化的話可以不算這個(gè),直接用灰度相關(guān)系數(shù)和一些其他算法來(lái)排除誤匹配,比如ransac。其實(shí)128位特征描述子只有在進(jìn)行初始配準(zhǔn)的時(shí)候有用。而且128位空間的歐氏距離計(jì)算開銷大,一般都用的正交反余弦來(lái)逼近。所以干脆不算這個(gè)東西,時(shí)間開銷一下就少了70%以上。那么只知道一些特征點(diǎn),用什么來(lái)進(jìn)行初始匹配呢?方法就是用特征點(diǎn)之間的灰度相關(guān)系數(shù),這個(gè)是很輕量級(jí)的。

?

?

總之,配準(zhǔn)問(wèn)題要實(shí)驗(yàn),看結(jié)果,分析,再做改動(dòng),很難說(shuō)有個(gè)算法能一定解決的。

需要考慮的可能問(wèn)題包括:

resize分辨率,再做進(jìn)一步處理的,控制特征點(diǎn)數(shù)量。

平滑去噪。?

減少亮度對(duì)比度差異,用image normalization,就是先求圖的mean,std,然后把所有pixel變換,使得最終mean是0,std是1.

surf算法、SIFT算子、Harris角點(diǎn)提取。

?

關(guān)于Image Alignment,推薦論文: Lucas-Kanade 20 years On: compositional algorithm,它是最慢的,不過(guò)根據(jù)我的經(jīng)驗(yàn)來(lái)看,z在變換并不是特別大的時(shí)候,還蠻好用的。它適用于translation,scaling,rotation變換,尋找最優(yōu)過(guò)程類似于用gradient of multi-variable function 尋找 local minimum。 但是假如變換太大,這個(gè)方法應(yīng)該不行。關(guān)于代碼,http://www.codeproject.com/KB/recipes/ImgAlign.aspx。?Remark:如果圖像里有太多非剛性變換,忽略所有的推薦。

Shi-Tomasi角點(diǎn)特征+Lucas-kanade(光流).Harris's original definition involved taking the determinant of H(p), subtracting the trace of H(p) (with some weighting coefficient), and then comparing this difference to a predetermined threshold. It was later found by Shi and Tomasi [Shi94] that good corners resulted as long as the smaller of the two eigenvalues was greater than a minimum threshold. Shi and Tomasi's method was not only sufficient but in many cases gave more satisfactory results than Harris's method

創(chuàng)作挑戰(zhàn)賽新人創(chuàng)作獎(jiǎng)勵(lì)來(lái)咯,堅(jiān)持創(chuàng)作打卡瓜分現(xiàn)金大獎(jiǎng)

總結(jié)

以上是生活随笔為你收集整理的CV 两幅图像配准的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。