梁智錦,王開(kāi)福,顧國(guó)慶,張成斌
(南京航空航天大學(xué)航空宇航學(xué)院,南京210016)
基于微粒子群優(yōu)化算法的數(shù)字散斑圖像相關(guān)方法
梁智錦,王開(kāi)福*,顧國(guó)慶,張成斌
(南京航空航天大學(xué)航空宇航學(xué)院,南京210016)
為了能夠通過(guò)一步搜索同時(shí)得到數(shù)字散斑圖像中所測(cè)點(diǎn)的整像素和亞像素位移信息,采用灰度插值的方法構(gòu)造了亞像素子區(qū),改進(jìn)了基于微粒子群算法的數(shù)字圖像散斑相關(guān)方法。對(duì)含有平移信息的模擬散斑圖和具有應(yīng)變的模擬散斑圖進(jìn)行相關(guān)計(jì)算,驗(yàn)證了該方法的適用性;在對(duì)具有微小面內(nèi)位移轉(zhuǎn)動(dòng)的試件進(jìn)行測(cè)量時(shí),比較了整像素的微粒子群算法和不同量級(jí)的灰度插值下的亞像素微粒子群算法。結(jié)果表明,基于微粒子群算法的亞像素?cái)?shù)字散斑圖像相關(guān)方法在測(cè)量小位移方面具有一定的優(yōu)越性。
圖像處理;數(shù)字散斑相關(guān);微粒子群優(yōu)化算法;灰度插值
微粒子群算法是由KENNEDY和EBERHART于1995年提出來(lái)的一種模仿鳥(niǎo)類捕食的智能搜索算法[1],其算法結(jié)構(gòu)簡(jiǎn)單、易于實(shí)現(xiàn)。微粒子群算法的主要思想是:在被測(cè)目標(biāo)的周圍散落著一定數(shù)量的粒子,這群粒子像鳥(niǎo)一樣的在被測(cè)區(qū)域內(nèi)移動(dòng),每個(gè)粒子分別記錄了自己所經(jīng)歷的最佳位置并與其它粒子的最佳位置進(jìn)行比較以記錄所有粒子經(jīng)歷的全局最佳位置,之后粒子將根據(jù)自己的歷史最佳位置和全局最佳位置決定自身的下一步移動(dòng)目標(biāo),通過(guò)這樣不斷的迭代使得粒子向全局最佳位置靠近并最終達(dá)到最佳值[2]。
數(shù)字散斑相關(guān)是數(shù)字散斑計(jì)量技術(shù)的一種,在20世紀(jì)80年代由YAMAGUCHI[3]和PETERS等人[4]提出來(lái)的位移和變形測(cè)量技術(shù)。與數(shù)字散斑條紋技術(shù)不同,其實(shí)質(zhì)是根據(jù)物體變形前后散斑場(chǎng)的互相關(guān)性來(lái)獲取物體的位移和變形信息,根據(jù)尋求相關(guān)系數(shù)的極值位置,在變形后的散斑場(chǎng)中識(shí)別出對(duì)應(yīng)于變形前的散斑場(chǎng)[5-6]。數(shù)字散斑相關(guān)技術(shù)的關(guān)鍵在于圖像相關(guān)算法。相關(guān)算法從最開(kāi)始的粗細(xì)搜索法發(fā)展到現(xiàn)在,已經(jīng)有很多種,其中的典型算法主要有:雙參量法、牛頓迭代法、梯度搜索法、遺傳算法和差分進(jìn)化算法等[7-9]。DU和WANG曾經(jīng)在2012年發(fā)表過(guò)基于粒子群算法的整像素?cái)?shù)字圖像相關(guān)方法[10],但是在很多微小位移的測(cè)量中,整像素的測(cè)量范圍并不能滿足測(cè)量的需要。2009年,天津大學(xué)CHANG在其碩士畢業(yè)論文中提到使用微粒子群算法進(jìn)行圖像相關(guān)的亞像素搜索,但他所采用的方法是在得到整像素位移的情況下通過(guò)擬合整像素的相關(guān)系數(shù)曲線后利用微粒子群算法進(jìn)行曲線極值的搜索[11]。作者是在微粒子群算法應(yīng)用于數(shù)字散斑圖像相關(guān)運(yùn)算基礎(chǔ)上,采用灰度插值的方式使得微粒子群算法可以直接進(jìn)行精確到亞像素的數(shù)字圖像相關(guān)運(yùn)算。
1.1 微粒子群算法的基本原理
在n維搜索空間中,設(shè)粒子群總數(shù)為k,則第i個(gè)粒子的位置可以表示為Xi=[xi1,xi2,xi3,…,xin]T(T表示轉(zhuǎn)置),速度vi=[vi1,vi2,vi3,…,vin]T,其所經(jīng)歷過(guò)程的最佳位置坐標(biāo)為pi,整個(gè)粒子群所經(jīng)歷過(guò)程的全局最佳位置坐標(biāo)為p。每個(gè)粒子所處的位置坐標(biāo)信息都表示一個(gè)候選解,將候選解的值代入目標(biāo)函數(shù)計(jì)算其適度值以確定候選解的優(yōu)劣度,并據(jù)實(shí)時(shí)更新pi和p。
微粒子群算法可表示為[2]:
式中,vid,t+1表示迭代至(t+1)次時(shí)第i個(gè)粒子第d維的速度,其中t=1,2,3…N,N為最大迭代次數(shù),d=1,2,3…n;w為慣性常數(shù),其具體值根據(jù)代數(shù)t的增加由公式得出;wmax一般取值1.4,wmin取值0;c1和c2為加速常數(shù),一般取值均為2;r1和r2為隨機(jī)數(shù),其范圍為[0,1];pd,t為截止到第t代時(shí)全局最佳位置點(diǎn)的第d維坐標(biāo)值;pid,t為截止到第t代時(shí)第i個(gè)粒子所處的最佳位置的第d維坐標(biāo)值;xid,t表示第t代時(shí),第i個(gè)粒子第d維坐標(biāo)值。
1.2 數(shù)字圖像相關(guān)的基本原理
數(shù)字圖像相關(guān)計(jì)算是指位于散斑場(chǎng)上的兩個(gè)子區(qū)進(jìn)行匹配運(yùn)算的相關(guān)方法。當(dāng)兩個(gè)子區(qū)位于同一個(gè)散斑場(chǎng)時(shí),圖像相關(guān)計(jì)算被稱為自相關(guān)。自相關(guān)算法主要運(yùn)用于粒子圖像測(cè)速中。當(dāng)子區(qū)位于不同散斑場(chǎng)時(shí),圖像相關(guān)算法被稱為互相關(guān)算法,也就是一般所指的數(shù)字圖像相關(guān)。
通過(guò)CCD記錄被測(cè)物體變形或者運(yùn)動(dòng)前后的散斑圖,在散斑圖上每點(diǎn)的位置信息用該點(diǎn)周圍區(qū)域的散斑分布來(lái)表示,其散斑分布的實(shí)質(zhì)就是點(diǎn)周圍區(qū)域(稱為子區(qū))組成的灰度值矩陣。在變形前的散斑圖上選取被測(cè)點(diǎn)子區(qū)I,在變形后的散斑圖上選取待測(cè)點(diǎn)子區(qū)Ii′,兩者進(jìn)行相關(guān)運(yùn)算得到相關(guān)系數(shù)C[5]:
式中,〈…〉表示系綜平均。相關(guān)系數(shù)表明兩個(gè)子區(qū)的相關(guān)程度;當(dāng)相關(guān)系數(shù)為1時(shí),說(shuō)明兩個(gè)子區(qū)完全相關(guān),當(dāng)相關(guān)系數(shù)為0時(shí),說(shuō)明兩個(gè)子區(qū)完全不相關(guān)。
1.3 基于微粒子群算法的數(shù)字散斑圖像相關(guān)算法流程
微粒子群算法的相關(guān)流程是:(1)在搜索域內(nèi)隨機(jī)的分布k個(gè)粒子,并將表示代數(shù)的t設(shè)置為1;(2)通過(guò)適應(yīng)度函數(shù)判斷這所有粒子的適應(yīng)度,比較獲得每個(gè)粒子的適應(yīng)度歷史最大值并記錄其位置坐標(biāo)為pi;(3)通過(guò)比較pi的適應(yīng)度值大小,得到其中的最大適應(yīng)度值的位置坐標(biāo),即為p;(4)通過(guò)(1)式計(jì)算每個(gè)粒子的速度,并確定下一代粒子的新坐標(biāo);(5)將p坐標(biāo)下的適應(yīng)度值和適應(yīng)度函數(shù)的閾值進(jìn)行比較,如果此時(shí)的p滿足閾值要求,則其坐標(biāo)值即為所求目標(biāo)。若不滿足,則比較此時(shí)代數(shù)t和最大迭代數(shù)N,如t=N,則此時(shí)的p坐標(biāo)也為此次所求目標(biāo);如t<N,則令t=t+1,將所得到的新粒子作為第t+1代粒子并轉(zhuǎn)入步驟(2)中進(jìn)行循環(huán)迭代。
將微粒子群算法應(yīng)用于數(shù)字散斑圖像相關(guān)運(yùn)算中的主要改造過(guò)程見(jiàn)下。
(1)微粒子群的每一個(gè)粒子在圖像相關(guān)中代表一個(gè)子區(qū)Ii′(xi,yi),該子區(qū)用其中心坐標(biāo)(xi,yi)來(lái)表示。而圖像相關(guān)算法中的搜索域在變形或運(yùn)動(dòng)后的圖像中已所測(cè)點(diǎn)坐標(biāo)為中心而設(shè)置的一定大小的區(qū)域。
(2)相關(guān)運(yùn)算中的微粒子群算法適應(yīng)度函數(shù)是在物體的變形或運(yùn)動(dòng)之前的圖像中選取以被測(cè)點(diǎn)為中心坐標(biāo)的子區(qū)I(x,y)與粒子子區(qū)Ii′(xi,yi)之間利用(2)式求取相關(guān)系數(shù)C。在圖像相關(guān)運(yùn)算中C值越大兩個(gè)子區(qū)相關(guān)程度越高,當(dāng)C=1的時(shí)候表示兩個(gè)子區(qū)完全相關(guān),C=0則表示兩個(gè)子區(qū)完全不相關(guān);因此,粒子的適應(yīng)度可以直接用C的大小表示,同時(shí)適應(yīng)度的閾值也被設(shè)為1。
(3)通過(guò)(1)式計(jì)算粒子運(yùn)動(dòng)速度的時(shí)候,由于公式中的參量非整且存在除法,粒子的速度也不可能全是整數(shù)。這導(dǎo)致了后面的粒子子區(qū)不會(huì)全為整像素子區(qū)。如果使用微粒子群整像素圖像相關(guān)運(yùn)算的話,就需要將得到的粒子運(yùn)動(dòng)速度進(jìn)行取整運(yùn)算以確保每個(gè)粒子子區(qū)均為整像素子區(qū)。對(duì)于亞像素子區(qū)的獲取,主要采取灰度插值的方式。本文中采用的是雙線性插值法,其插值過(guò)程可表示為[5]:
式中,?x?表示向下取整;I0,I1,I2和I3表示中心坐標(biāo)離坐標(biāo)(x,y)最近的4個(gè)子區(qū),因?yàn)閷?duì)子區(qū)I(x,y)中任意一個(gè)灰度點(diǎn)來(lái)說(shuō),它都包含在這4個(gè)相鄰子區(qū)的對(duì)應(yīng)點(diǎn)中且距離左上角對(duì)應(yīng)點(diǎn)的距離均為Δx和Δy,所以可以直接用子區(qū)來(lái)進(jìn)行灰度插值運(yùn)算而不需要對(duì)每個(gè)點(diǎn)單獨(dú)插值計(jì)算。同時(shí)為了防止粒子的跳躍性太大,超出范圍。粒子的速率被限制在±5個(gè)像素之間,當(dāng)粒子的速率超出這個(gè)范圍時(shí),粒子的速率將被定為邊界值。
2.1 微粒子群算法對(duì)模擬散斑圖的測(cè)量
為檢驗(yàn)此亞像素插值算法對(duì)整像素位移的測(cè)量正確性,用計(jì)算機(jī)制作模擬散斑圖并加入整像素位移值,如圖1所示。其中圖1a為散斑參考圖,圖1b為加入了整像素位移值的模擬散斑圖,圖中的U場(chǎng)和V場(chǎng)位移量為8pixel。采用微粒子群整像素圖像相關(guān)運(yùn)算算法對(duì)其中的U場(chǎng)位移進(jìn)行測(cè)量可以得到圖2所示結(jié)果。圖2中,U場(chǎng)位移的淺灰色平面中的深黑色屬于算法中所測(cè)得的壞點(diǎn),這些壞點(diǎn)的表現(xiàn)形式為其搜索出來(lái)的值遠(yuǎn)遠(yuǎn)超過(guò)周圍區(qū)域所搜索出的正常值,通過(guò)重復(fù)性的使用算法對(duì)這些壞點(diǎn)進(jìn)行搜索可以得到正確值,說(shuō)明其出現(xiàn)的主要原因?yàn)樵谒阉鲄^(qū)域中對(duì)隨機(jī)粒子的選取沒(méi)有做到足夠均勻且散斑場(chǎng)的部分區(qū)域比較相似造成的。但需要說(shuō)明的是這些壞點(diǎn)在所測(cè)區(qū)域100pixel×100pixel的10000個(gè)點(diǎn)中不超過(guò)500個(gè),此算法的正確率達(dá)到了95%以上,所以該算法在圖像相關(guān)中是適用的。圖3所顯示的U場(chǎng)位移是采用微粒子群亞像素圖像相關(guān)算法對(duì)圖1a和圖1b進(jìn)行相關(guān)運(yùn)算所得到結(jié)果,在所得的結(jié)果中同樣的存在不超過(guò)500個(gè)的壞點(diǎn),算法的正確率也達(dá)到了95%以上。
為檢測(cè)此算法對(duì)物體變形信息測(cè)量的正確性,用計(jì)算機(jī)制作模擬散斑圖(見(jiàn)圖4),其中圖4b為圖4a加入V場(chǎng)位移關(guān)于x方向的應(yīng)變0.05(單位為1)后的模擬散斑圖。亞像素微粒子群算法程序?qū)D4a和圖4b中的50pixel×20pixel區(qū)域內(nèi)進(jìn)行數(shù)字圖像相關(guān)運(yùn)算,所得V場(chǎng)位移結(jié)果如圖5所示,由于相關(guān)運(yùn)算算法中沒(méi)有考慮到子區(qū)本身也發(fā)生了一定變形,圖中所得的數(shù)據(jù)呈現(xiàn)出一定得起伏,但其數(shù)值的總體計(jì)算結(jié)果仍然能夠得到x方向上的V場(chǎng)應(yīng)變0.05(單位為1)。
2.2 微粒子群算法對(duì)面內(nèi)旋轉(zhuǎn)的數(shù)字散斑圖的測(cè)量
采用如圖6所示實(shí)驗(yàn)系統(tǒng),當(dāng)試件發(fā)生面內(nèi)轉(zhuǎn)動(dòng)(即物面圍繞試件表面的法線轉(zhuǎn)動(dòng))時(shí),利用CCD相機(jī)記錄試件的面內(nèi)位移。
實(shí)驗(yàn)中所獲得的散斑圖如圖7所示,其中圖7b為圖7a中的試件繞垂直于試件表面的z軸進(jìn)行順時(shí)針面內(nèi)旋轉(zhuǎn)后的試件散斑圖(其中旋轉(zhuǎn)中心在散斑圖的右上方)。
根據(jù)面內(nèi)旋轉(zhuǎn)位移的特點(diǎn),V場(chǎng)位移和x坐標(biāo)具有與旋轉(zhuǎn)角度有關(guān)的線性關(guān)系[11]。因此旋轉(zhuǎn)的角度可以根據(jù)下列公式求得[12]:
對(duì)這兩幅散斑圖分別進(jìn)行整像素的微粒子群算法測(cè)量其所得到的結(jié)果如圖8所示。由圖8可以看出,由于旋轉(zhuǎn)的角度非常小,V場(chǎng)的位移也非常小,這時(shí)整像素的圖像相關(guān)算法只能在200pixel× 200pixel的計(jì)算區(qū)域中獲得兩個(gè)階梯值,同時(shí)由于V場(chǎng)的變化緩慢,兩個(gè)階梯值的邊界也模糊不清。
在采用0.1pixel插值的微粒子群亞像素圖像相關(guān)算法對(duì)圖7a和圖7b進(jìn)行測(cè)量其所得到的結(jié)果如圖9所示。雖然在200pixel×200pixel的計(jì)算區(qū)域內(nèi)所獲得的也是階梯型的結(jié)果,但由于所獲得的階梯較多,已經(jīng)能夠計(jì)算出V場(chǎng)位移與x的線性關(guān)系,將數(shù)據(jù)代入(4)式中經(jīng)過(guò)計(jì)算可得轉(zhuǎn)動(dòng)角度θ= 0.003846rad。
圖10為采用0.01pixel插值的亞像素?cái)?shù)字圖像相關(guān)運(yùn)算所得到的結(jié)果,在這個(gè)量級(jí)下就能很明顯的得到轉(zhuǎn)動(dòng)角度θ=0.003855rad,其與上面0.1pixel所得結(jié)果誤差不超過(guò)0.3%。
圖11顯示是在0.001pixel灰度插值下的V場(chǎng)位移圖??梢园l(fā)現(xiàn)圖10和圖11相比較來(lái)說(shuō)在整體趨勢(shì)上和單體數(shù)據(jù)上都是基本一致的。
對(duì)于任意散斑圖來(lái)說(shuō),其插值精度取決于測(cè)量的精度要求。對(duì)本文中測(cè)量面內(nèi)旋轉(zhuǎn)角度來(lái)說(shuō),在200pixel×200pixel測(cè)量范圍內(nèi)散斑圖在處理后所得到的位移信息需要含有多個(gè)階梯值,而整像素測(cè)量無(wú)法達(dá)到這個(gè)要求,就需要插值到0.1pixel。如果所獲得的測(cè)量數(shù)據(jù)更少,以至于0.1pixel插值不能得到兩個(gè)以上階梯值,那就要通過(guò)進(jìn)一步的插值來(lái)獲取位移信息。
(1)為了擴(kuò)展微粒子群算法在數(shù)字散斑圖像相關(guān)中的應(yīng)用,采用灰度插值的方法構(gòu)造了亞像素的子區(qū),并同時(shí)編寫(xiě)單獨(dú)測(cè)量整像素和在測(cè)量整像素的同時(shí)測(cè)量亞像素的MATLAB程序,應(yīng)用帶有面內(nèi)位移信息模擬散斑圖驗(yàn)證了兩個(gè)程序的正確性。
(2)在應(yīng)用帶有應(yīng)變信息的模擬散斑圖對(duì)亞像素微粒子群算法程序進(jìn)行驗(yàn)證的時(shí)候,證明了亞像素微粒子群算法在對(duì)具有微小應(yīng)變的情況下依然適用。
(3)同時(shí)應(yīng)用整像素微粒子群算法程序和亞像素微粒子群算法程序?qū)γ鎯?nèi)微小轉(zhuǎn)動(dòng)的試件進(jìn)行了測(cè)量,在整像素微粒子群算法無(wú)法計(jì)算出轉(zhuǎn)動(dòng)的微小角度時(shí)成功地運(yùn)用亞像素微粒子群算法測(cè)量出了面內(nèi)轉(zhuǎn)動(dòng)的角度;從而比較說(shuō)明了面對(duì)微小位移時(shí)整像素微粒子群算法的局限性和亞像素微粒子群算法的有效性。同時(shí)對(duì)不同量級(jí)的灰度插值的亞像素微粒子群算法進(jìn)行了比較,表明了在測(cè)量微小位移信息時(shí)亞像素微粒子群的靈活性和多樣性。
[1] KENNEDY J,EBERHART R C.Particle swarm optimization[C]//The University of Western Australia.IEEE International Conference on Neural Networks.Perth,Australia:The University of Western Australia,1995:1942-1948.
[2] XIE X F,ZHANG W J,YANG ZH L.Overview of particle swarm optimization[J].Control and Decision,2003,18(2):129-134(in Chinese).
[3] YAMAGUCHI I.A laser speckle strain gauge[J].Journal of Physics,1981,E14(11):1270-1273.
[4] PETERS W H,RANSON W F.Digital imaging technique in experimental stress analysis[J].Optical Engineering,1982,21(3):427-431.
[5] WANG K F,GAO M H,ZHOU K Y.Modern photo mechanics[M].Harbin:Harbin Institute of Technology Press,2009:58-61,154-156(in Chinese).
[6] XU X,WANG K,GU G Q,et al.Measurement of internal material flaws based on out-of-plane displacement digital speckle pattern interferometry[J].Laser Technology,2012,36(4):548-552(in China).
[7] JIN G C.Computer-aided optical measurement[M].2nd ed.Beijing:Tsinghua University Press,2007:141-147(in Chinese).
[8] LIU M.The improved genetic algorithms for digital image correlation technique[D].Tianjin:Tianjin University,2005:4-6(in Chinese).
[9] PAN B,XIE H M.Digital image correlation method with differential evolution[J].Journal of Optoelectronics·Laser,2007,18(1):100-103(in Chinese).
[10] DU Y Zh,WANG X B.Digital image correlation method based on particle swarm optimization algorithm without sub-pixel interpolation[J].Computer Engineering and Applications,2012,48(6):200-204(in Chinese).
[11] CHANG Y M.Research and application of sub-pixel search algorithm for digital image/speckle correlation method[D].Tianjin:Tianjin University,2009:12-14(in Chinese).
[12] GU G Q,WANG K F,XU X.Measurement of in-plane microrotations and rotation-center location of a rigid body by using digital image correlation[J].Chinese Journal of Lasers,2012,39(1):0108004(in Chinese).
Digital speckle image correlation method base on particle swarm optimization algorithm
LIANG Zhijin,WANG Kaifu,GU Guoqing,ZHANG Chengbin
(College of Aerospace Engineering,Nanjing University of Aeronautics and Astronautics,Nanjing 210016,China)
In order to get the integer pixel displacement information and the sub-pixel displacement information simultaneously at one time,the sub-pixel subarea was constructed by using the method of gray interpolation and the digital image correlation method based on particle swarm optimization algorithm was proposed.The applicability of the method was verified by measuring both the simulated speckle pattern with the translational information and with the strain information.And then,the integer pixel particle swarm algorithm and the sub-pixel of different magnitude interpolation gray particle swarm algorithm were compared by measuring the specimen with tiny rotational displacement.The results show that the particle swarm algorithm based on sub-pixel digital scattered spot image correlation method has advantages for small displacement measurement.
image processing;digital speckle correlation;particle swarm optimization algorithm;gray interpolation
TN911.73
A
10.7510/jgjs.issn.1001-3806.2014.05.006
1001-3806(2014)05-0603-05
國(guó)防技術(shù)基礎(chǔ)科研資助項(xiàng)目;江蘇省高校優(yōu)勢(shì)學(xué)科建設(shè)工程資助項(xiàng)目
梁智錦(1989-),男,碩士研究生,研究方向?yàn)楣鉁y(cè)力學(xué)及圖像處理。
*通訊聯(lián)系人。E-mail:kfwang@nuaa.edu.cn
2013-09-16;
2013-12-02