唐家福, 穆平安, 周天媛
(上海理工大學(xué) 光電信息與計算機(jī)工程學(xué)院, 上海 200093)
數(shù)字散斑相關(guān)方法(Digital Speckle Correlation Method,DSCM)又稱數(shù)字圖像相關(guān)方法(Digital Image Correlation Method,DICM),是一種對位移和形變的光學(xué)非接觸測量技術(shù),最早在1980年代由Ranson[1]和Yamaguchi[2]等人分別獨(dú)立提出。DSCM是通過對變形前后物體表面兩張散斑的灰度信息進(jìn)行相關(guān)運(yùn)算,對變形前后的灰度圖像匹配并建立其對應(yīng)關(guān)系,然后通過這一對應(yīng)關(guān)系搜尋對應(yīng)點(diǎn),經(jīng)過數(shù)值運(yùn)算即可獲得位移和形變信息??沼蛏蠑?shù)字散斑相關(guān)方法研究的主要內(nèi)容是對相關(guān)系數(shù)中極值點(diǎn)搜索算法的研究?;诮?jīng)典數(shù)學(xué)理論的搜索算法[3-5]主要有粗細(xì)搜索法、爬山搜索法、十字搜索法、Newton-Raphson迭代法等。十字搜索法[6]將逐像素二維搜索轉(zhuǎn)變?yōu)橐痪S搜索,大大減少了計算量。Newton-Raohson迭代法[7]對位移及應(yīng)變量同時搜索,但是有許多冗余計算,計算速度變慢。爬山算法沿著領(lǐng)域的極值方向搜索,搜索速度快但容易出現(xiàn)往復(fù)搜索的情況。由于相關(guān)系數(shù)的分布有多個峰值,傳統(tǒng)搜索算法容易陷入局部最優(yōu)。隨著現(xiàn)代數(shù)學(xué)理論的不斷引入,許多新的搜索算法被相繼提出,如遺傳算法[8-9]、粒子群算法[10]、傅里葉變換[11]等。遺傳算法精度比較高,但計算速度比較慢。容易丟失種群多樣性。粒子群算法包含并行計算思想,但不容易收斂?;诟道锶~變換的頻率搜索法速度快,精度高,但需要設(shè)計合適的濾波器。布谷鳥算法(Cuckoo Search,CS Algorithm)是由YANG等[12]于2009年提出的新型啟發(fā)式智能算法,是一種通過模擬布谷鳥的寄生育雛方式求解最優(yōu)化問題的算法。布谷鳥算法通過Levy飛行獲得下一代個體,由于Levy飛行的長短變步長相間的特點(diǎn)決定了布谷鳥算法不易陷入局部最優(yōu)值,但是后期布谷鳥算法收斂速度變慢。本文將布谷鳥算法與爬山搜索算法結(jié)合,加快了其后期的收斂速度,通過模擬散斑平移和實(shí)際散斑實(shí)驗(yàn)來驗(yàn)證算法是否能夠跳出局部最優(yōu)。
數(shù)字散斑相關(guān)方法以變形前原圖像散斑場的某一點(diǎn)I(x,y)為中心,周圍區(qū)域M(x+Δx,y+Δy)為子圖像,以相關(guān)系數(shù)為代價函數(shù),對變形后散斑圖像進(jìn)行搜索,獲得子圖像的最佳匹配區(qū)域M′(x+Δx,y+Δy),對子圖像對進(jìn)行相應(yīng)的數(shù)值運(yùn)算可獲得位移和應(yīng)變。皮爾森相關(guān)系數(shù)(Pearson correlation coefficient)也稱皮爾森積矩相關(guān)系數(shù)(Pearson product-moment correlation coefficient),皮爾森相關(guān)系數(shù)更能突出相關(guān)系數(shù)的單峰峰值,精度高,所以本文選擇皮爾森相關(guān)系數(shù)為代價函數(shù),即
圖1 相關(guān)系數(shù)分布圖
(1)
皮爾森相關(guān)系數(shù)的范圍為-1~1,當(dāng)相關(guān)函數(shù)值等于1時,稱這兩個子區(qū)完全相關(guān);當(dāng)相關(guān)函數(shù)值等于0時,則稱這兩個子區(qū)完全不相關(guān);當(dāng)相關(guān)函數(shù)值等于-1時,稱這兩個子區(qū)負(fù)相關(guān)。本文利用S=1-R,將相關(guān)系數(shù)的范圍調(diào)整到0~2,進(jìn)而將該問題轉(zhuǎn)化為求S的最小值。取出一塊散斑圖像子圖,在其共軛散斑圖像中逐像素遍歷搜索相關(guān)子圖,可得一個子圖的相關(guān)系數(shù)分布(圖1)。
為了便于模擬布谷鳥尋窩行為,假定了三條基本準(zhǔn)則:
(1)每個布谷鳥一代只產(chǎn)一個蛋,并隨機(jī)選擇鳥窩以寄生的方式養(yǎng)育;
(2)在隨機(jī)選擇的一代群體中,最好的子代才能繁衍下一代;
(3)鳥窩數(shù)量N為定值,鳥窩宿主能發(fā)現(xiàn)寄生鳥蛋的概率Pa∈[0,1]。
布谷鳥尋找寄生鳥窩的位置更新公式為
Xt+1=Xt+α?Levy(s),
(2)
其中Xt表示第t代的鳥窩位置,?為點(diǎn)對點(diǎn)乘法,α表示步長控制量,Levy(s)為Levy隨機(jī)搜索路徑。
根據(jù)準(zhǔn)則(3),當(dāng)宿主鳥發(fā)現(xiàn)寄生鳥后,無論解的質(zhì)量如何都被舍棄,為了保證一代群體數(shù)量不變,新建鳥窩即加入新解,這個位置普遍采用偏好隨機(jī)游動的方式,即利用了其他鳥窩的相似性。新建鳥窩的位置更新公式為
Xt+1=Xt+r?Heaviside(Pa-ε)?(Xi-Xj),
(3)
其中r、ε是服從均勻分布的隨機(jī)數(shù),Heaviside(x)是跳躍函數(shù),Xi、Xj是其他任意的兩個鳥窩位置。
(4)
在二維數(shù)字散斑相關(guān)方法的整像素搜索過程中,Levy隨機(jī)步長一般不是整數(shù),需要在Levy隨機(jī)步長的計算之后再進(jìn)行一次取整。為了加快全局搜索能力,在兩幅共軛圖像上設(shè)定隔離邊界,保證一個布谷鳥個體只在各自的區(qū)域進(jìn)行搜索而不會重復(fù)搜索同一個區(qū)域,于是每一個子代個體更新公式為
圖2 平面內(nèi)Levy飛行隨機(jī)步長分布
改進(jìn)布谷鳥搜索算法流程如下:
(1)對圖像劃分網(wǎng)格設(shè)定搜索隔離邊界,初始化群體位置,計算相關(guān)系數(shù),初始化全局最優(yōu)解;
(2)根據(jù)公式(5)更新子代布谷鳥群體位置,隨機(jī)步長由公式(4)產(chǎn)生,計算相關(guān)系數(shù),計算局部最優(yōu)解,比較局部最優(yōu)解與全局極值大小并更新全局最優(yōu)解r;
(3)根據(jù)2.1節(jié)的準(zhǔn)則(2)和準(zhǔn)則(3)隨機(jī)丟棄部分個體解,并由公式(3)補(bǔ)充群體數(shù)量;
(4)判斷是否達(dá)到迭代準(zhǔn)則,否則返回第(2)步。
在數(shù)字散斑相關(guān)方法的搜索中,如果迭代準(zhǔn)則設(shè)置過于嚴(yán)格,會導(dǎo)致收斂速度變慢;迭代準(zhǔn)則設(shè)置寬松,則無法搜索到準(zhǔn)確的峰值。本文選擇的迭代準(zhǔn)則為相關(guān)系數(shù)值,設(shè)置合適的相關(guān)系數(shù)閾值,本文設(shè)定閾值為0.5,通過布谷鳥算法搜索峰值附近的位置,進(jìn)一步利用傳統(tǒng)搜索算法快速收斂到峰值。傳統(tǒng)搜索算法容易陷入局部最優(yōu)值,通過布谷鳥算法避免了這一點(diǎn),但布谷鳥算法后期收斂速度將會變慢,選擇一個合適的收斂準(zhǔn)則搜索到峰值附近的一個位置,再利用爬山搜索算法快速收斂搜索到峰值位置。
利用計算機(jī)將一幅散斑圖像在x方向(水平向右)和y方向(豎直向下)分別平移10個像素和11個像素,如圖3所示。
(a) 平移前 (b) 平移后圖3 理論平移散斑測試實(shí)驗(yàn)
圖4 位移矢量圖
對上述兩張理論位移圖像進(jìn)行分析,然后對位移矩陣進(jìn)行數(shù)據(jù)統(tǒng)計,求解出在兩個方向上的位移解的平均值。由于理論散斑圖像的平移,使得原照片的右邊緣和下邊緣丟失一部分。這一部分在統(tǒng)計中被舍去。經(jīng)過統(tǒng)計,除了在右邊緣有兩個點(diǎn)相關(guān)系數(shù)高于閥值0.5,不能準(zhǔn)確匹配到相應(yīng)點(diǎn),其余點(diǎn)均準(zhǔn)確地匹配到像素點(diǎn),但是由于是散斑邊緣,而邊緣在測試過程中一般不作為測試范圍,因此這兩個點(diǎn)對于測試影響不大。根據(jù)U、V位移矩陣?yán)L制出位移矢量圖,繪制的理論平移實(shí)驗(yàn)的位移矢量圖如圖4所示。
想要測量實(shí)際位移量的大小,必須對照相機(jī)系統(tǒng)進(jìn)行標(biāo)定,將毫米尺放置在散斑表面即可完成標(biāo)定。利用模擬散斑制作軟件制作合適大小和密度的散斑,我們制作了不同質(zhì)量的散斑進(jìn)行實(shí)驗(yàn),由于散斑質(zhì)量的不確定性對于測量結(jié)果具有較大的影響,需要進(jìn)行多組重復(fù)實(shí)驗(yàn),去除不合理結(jié)果再求均值。具體的剛體平移實(shí)驗(yàn)步驟如下:
(1)利用散斑軟件制作散斑,并利用激光器打在試件表面;
(2)搭建好實(shí)驗(yàn)平臺,調(diào)整最佳焦距和光照,利用標(biāo)尺標(biāo)定出單位像素與單位長度的對應(yīng)關(guān)系;
(3)采集試件散斑在T1時刻的散斑圖片;
(4)移動一定距離試件,記錄試件散斑在T2時刻的散斑圖片,計算剛體位移并重復(fù)實(shí)驗(yàn)。
采集照片分辨率為640×480,縱向是480像素,通過標(biāo)定尺標(biāo)定計算出一個像素約為0.142 71 mm。如需獲得更高精度,使用更高精度的標(biāo)尺即可。其中一組采集到的散斑圖像如圖5所示。
(a) 平移前 (b) 平移后圖5 實(shí)驗(yàn)測試試件前后的散斑圖像
對散斑做了若干組平移測試,其中兩次平移結(jié)果如表1所示。
表1 DSCM實(shí)驗(yàn)數(shù)據(jù)
通過與上述結(jié)果類似的多組實(shí)驗(yàn),發(fā)現(xiàn)隨著位移量的增大,其誤差也逐漸增大。這是由于散斑的逐漸平移,導(dǎo)致一部分散斑離開照相機(jī)的拍攝范圍,所以一般需要保證拍攝散斑一直在照相機(jī)范圍內(nèi)。實(shí)驗(yàn)表明在采用分度值為1 mm的標(biāo)尺的情況下,精度可以達(dá)到1 mm,即將布谷鳥搜索與爬山搜索組合應(yīng)用到數(shù)字散斑相關(guān)方法的搜索中能夠有效測量位移量。
傳統(tǒng)DSCM方法容易陷入局部最優(yōu),而布谷鳥算法能夠跳出局部最優(yōu),但是在算法后期速度將會變慢,而傳統(tǒng)搜索算法如爬山搜索法收斂速度極快,但容易陷入局部最優(yōu),無法搜索具有多極值的相關(guān)系數(shù)峰值。本文將二者結(jié)合,揚(yáng)長避短,不僅能夠跳出局部最優(yōu),而且能夠快速收斂。通過仿真驗(yàn)證了算法的正確性,通過實(shí)驗(yàn)證明了算法精度滿足要求。