邵 珩, 周 勇, 祁俊峰, 聶中原
(北京衛(wèi)星制造廠有限公司, 北京 100094)
電子剪切散斑干涉測(cè)量技術(shù)是一種全場(chǎng)、非接觸、高精度和高靈敏度的光學(xué)測(cè)量方法,測(cè)量系統(tǒng)光路簡(jiǎn)單,調(diào)節(jié)方便,對(duì)環(huán)境要求不高,特別適合于無損檢測(cè)實(shí)時(shí)測(cè)量[1-3]。散斑圖像的處理需要大量的運(yùn)算。例如采用時(shí)間相移法時(shí),首先需要將若干散斑圖進(jìn)行相減、相除和反正切計(jì)算,得到散斑干涉相位差圖,然后通過濾波處理去掉噪聲,獲得散斑條紋圖,最后通過解包裹算法得到物體變形量的空間導(dǎo)數(shù)。隨著激光散斑干涉測(cè)量技術(shù)的應(yīng)用,相關(guān)濾波算法也得到較多研究[4-8],但這些研究一般都關(guān)注于改善濾波效果,對(duì)濾波時(shí)間基本不做考慮,無法應(yīng)用于電子剪切散斑干涉連續(xù)測(cè)量的實(shí)時(shí)處理。在電子剪切散斑干涉連續(xù)測(cè)量中,需要計(jì)算機(jī)在短時(shí)間內(nèi)對(duì)硬件獲得的大量圖像數(shù)據(jù)進(jìn)行處理,因此計(jì)算機(jī)的運(yùn)算能力成為能否實(shí)時(shí)處理測(cè)量數(shù)據(jù)的關(guān)鍵。傳統(tǒng)的CPU計(jì)算靈活性高,適合處理各種復(fù)雜情況,但CPU單核運(yùn)算能力有限,隨著圖像處理規(guī)模的不斷擴(kuò)大,CPU的處理能力越來越成為測(cè)量結(jié)果實(shí)時(shí)處理顯示的瓶頸;若采用多核CPU計(jì)算,一則計(jì)算任務(wù)的分割、多核CPU間的通信處理較為繁瑣,二則隨著核心數(shù)量的增多,CPU平臺(tái)的成本也迅速提高,不利于無損檢測(cè)實(shí)時(shí)測(cè)量的商業(yè)應(yīng)用。
GPU傳統(tǒng)上用于游戲圖形顯示,近年來因其運(yùn)算能力、存儲(chǔ)帶寬遠(yuǎn)超CPU而被用于加速計(jì)算。GPU計(jì)算核心數(shù)量眾多而單核處理能力較弱,尤其適用于大規(guī)模并行計(jì)算任務(wù),被廣泛應(yīng)用于流體動(dòng)力學(xué)模擬[9-10],分子動(dòng)力學(xué)模擬[11-12],神經(jīng)網(wǎng)絡(luò)與深度學(xué)習(xí)算法等[13-15]。由于GPU具有強(qiáng)大的計(jì)算能力,易于實(shí)現(xiàn)數(shù)據(jù)的實(shí)時(shí)處理[16-17],因此,將GPU用于圖像處理有望大幅提升計(jì)算機(jī)的運(yùn)算能力,實(shí)現(xiàn)電子剪切散斑干涉的實(shí)時(shí)測(cè)量;同時(shí),GPU的運(yùn)算能力和能源效率遠(yuǎn)超同價(jià)位的CPU,有利于相關(guān)商業(yè)平臺(tái)的開發(fā)。本研究擬在電子剪切散斑干涉連續(xù)測(cè)量的數(shù)據(jù)處理中采用GPU加速計(jì)算技術(shù),以提高圖像處理效率,提高測(cè)量效率。
激光照射到粗糙物體表面時(shí)發(fā)生漫反射,生成無數(shù)子波。這些子波在空間中發(fā)生干涉,形成明暗不一的斑點(diǎn),稱為激光散斑。由于激光散斑源于激光在粗糙表面上發(fā)生的漫反射,攜帶了粗糙表面的形貌信息,當(dāng)粗糙表面的形貌發(fā)生變化時(shí),激光散斑的分布也隨之發(fā)生變化,因而可以利用激光散斑的這一特性對(duì)物體表面的形變進(jìn)行測(cè)量。
圖1 基于邁克爾遜剪切裝置的剪切散斑干涉光路圖Fig.1 Shearing speckle interferometry optical system based on Michelson shearing device
圖1為剪切干涉光路示意圖。相干光經(jīng)粗糙被測(cè)物S漫反射,部分光線被分光鏡反射后經(jīng)反射鏡M1再次反射,穿過分光鏡后進(jìn)入CCD成實(shí)像S1;另一部分光線穿過分光鏡,被反射鏡M2反射后經(jīng)分光鏡反射進(jìn)入CCD成實(shí)像S2。如果M1和M2相互垂直并且到分光鏡的距離相等時(shí),S1與S2大小相等且互相重合;當(dāng)反射鏡M2的角度發(fā)生偏轉(zhuǎn)時(shí),S2的位置將發(fā)生移動(dòng),與S1形成剪切。將S1與S2之間距離的大小和方向映射到被測(cè)物上即得到剪切量和剪切方向。此時(shí),S1和S2將在像面上互相干涉,生成散斑圖像。若記錄被測(cè)物發(fā)生形變前后的散斑干涉圖像,經(jīng)過處理可以得到表示物體沿剪切方向的位移偏導(dǎo)數(shù)的條紋圖案。
GPU加速計(jì)算將計(jì)算任務(wù)分派給大量的線程同時(shí)處理,利用遠(yuǎn)高于CPU的線程數(shù)量獲得遠(yuǎn)超出CPU的性能。GPU本身單核計(jì)算能力很弱,因此只有將計(jì)算任務(wù)分割為互相獨(dú)立的小任務(wù),使每個(gè)線程都可以不依賴其他線程的計(jì)算結(jié)果而完成本身的計(jì)算任務(wù)時(shí),才能發(fā)揮GPU線程數(shù)量多的優(yōu)勢(shì)。
采用CUDA平臺(tái)處理計(jì)算任務(wù)時(shí),CPU作為控制器,負(fù)責(zé)讀取數(shù)據(jù),并將數(shù)據(jù)傳輸給GPU;GPU作為協(xié)處理器,接收CPU傳遞的數(shù)據(jù),在顯存中開辟相應(yīng)存儲(chǔ)空間,存儲(chǔ)傳入的數(shù)據(jù)和中間處理數(shù)據(jù),將這些數(shù)據(jù)分配給GPU上的多個(gè)線程進(jìn)行處理;處理完成后,將數(shù)據(jù)傳回CPU,由CPU進(jìn)行后續(xù)處理。
電子剪切散斑干涉實(shí)時(shí)測(cè)量過程中,圖像處理包括兩部分:解相位差和濾波。解相位差采用四步相移法[18]:首先在加載前對(duì)被測(cè)物采集4幅散斑圖,每次采集后對(duì)實(shí)像S1引入π/2的相移。4幅圖的光強(qiáng)可以表示為:
(1)
式中:Ii為第i步測(cè)得的光強(qiáng)分布,i=1,2,3,4,a為背景光強(qiáng),b為調(diào)制度,α為未知的隨機(jī)相位。
加載后,再次采集4幅散斑圖,光強(qiáng)為:
(2)
式中:β為加載引入的相位差。
根據(jù)Ii和Ii′,可以解出每個(gè)點(diǎn)在加載前后位置的相位差:
(3)
(4)
θ=θ2-θ1.
(5)
為濾除相位差圖的噪聲,采用3種速度較快的濾波方法,包括正余弦均值濾波、復(fù)數(shù)均值濾波、Butterworth低通濾波方法,分別比較它們的精度、計(jì)算效率以及GPU加速效果。
(6)
(7)
對(duì)正余弦均值濾波方法采用GPU加速時(shí),首先將圖像分割為32×32的小塊,將每個(gè)小塊及其外圍一圈像素分配給一個(gè)線程塊,即采用3×3窗口時(shí),每個(gè)線程塊分配34×34的小塊,其中超出圖像邊界的部分采用鏡像處理。對(duì)小塊內(nèi)像素的相位值分別求正弦和余弦值,然后采用式(6)、(7)求得正余弦均值并通過反正切函數(shù)還原為相位。為提高計(jì)算效率,每個(gè)線程塊內(nèi)采用共享存儲(chǔ)存取正余弦值。
復(fù)數(shù)均值濾波中,首先將相位值轉(zhuǎn)換為復(fù)數(shù):
cx,y=exp(θx,yi),
(8)
然后按照類似式(6)的方式對(duì)其求取均值:
(9)
多次濾波完成之后再通過反正切函數(shù)將復(fù)數(shù)平均值還原為相位值。
比較正余弦均值濾波和復(fù)數(shù)均值濾波可以發(fā)現(xiàn),在進(jìn)行一次濾波時(shí),兩者是等價(jià)的。在進(jìn)行多次濾波時(shí),復(fù)數(shù)均值濾波減少了正余弦計(jì)算和反正切計(jì)算次數(shù),降低了計(jì)算量。
對(duì)復(fù)數(shù)均值濾波進(jìn)行GPU加速時(shí),將相位與復(fù)數(shù)的轉(zhuǎn)換與還原、復(fù)數(shù)求均值分別進(jìn)行GPU加速計(jì)算,其中求均值部分采用類似正余弦濾波圖像分割的方法采用共享存儲(chǔ)加速計(jì)算。
Butterworth低通濾波中,對(duì)相位差圖任意點(diǎn)(x,y)的相位值θ,將其轉(zhuǎn)換為復(fù)數(shù)c。對(duì)cx,y進(jìn)行傅里葉變換,得到Cu,v,然后進(jìn)行低通濾波:
(10)
式中,Du,v是到原點(diǎn)的距離,D0為截止距離,n為濾波器的階數(shù)。
對(duì)Butterworth低通濾波采用GPU加速時(shí),可以將轉(zhuǎn)換與還原、正反傅里葉變換和低通濾波每個(gè)步驟均采用相應(yīng)的GPU計(jì)算。
4.2.1 CPU解相位差
采用CPU解相位差時(shí),首先讀取8幅圖片的數(shù)據(jù),然后掃描圖片,解出每個(gè)點(diǎn)的相位差值。解相位差的全部時(shí)長約500 ms,其中25 ms用于讀取圖片,465 ms用于解相位差計(jì)算,10 ms用于保存圖片,解相位差的時(shí)間占總時(shí)間的90%以上。采用的CPU為i7-6500U@2.5 GHz,圖片尺寸為2 592×2 048,下同。圖2為計(jì)算得到的相位差圖。
圖2 四步相移法得到的相位差圖Fig.2 Phase-difference map obtained by four-step phase shift method
4.2.2 GPU解相位差
從式(3)~(5)可知,每個(gè)點(diǎn)的相位差求解過程都與周圍點(diǎn)無關(guān),因此適用于GPU并行處理。本研究中采用兩個(gè)不同的GPU進(jìn)行圖像處理,其中GPU1型號(hào)為GeForce 940MX@1004 MHz,GPU2型號(hào)為Quadro P3000@1088 MHz,下同。
求解結(jié)果表明,采用GPU解相位差的耗時(shí)遠(yuǎn)少于CPU解相位差,如表1所示。采用GPU1時(shí),全部求解時(shí)長約77 ms,其中26 ms用于讀取圖片,43 ms用于解相位差計(jì)算,8 ms用于保存圖片,解相位差的時(shí)間下降到總時(shí)間的約56%;采用GPU2時(shí),解相位差時(shí)間下降到18 ms,總耗時(shí)52 ms。
表1 GPU加速解相位差與CPU解相位差耗時(shí)對(duì)比
Tab.1 Time consumption of phase difference calculation by CPU and GPU
ms
進(jìn)一步分析表明,對(duì)于GPU1,在43 ms的解相位差時(shí)間中,GPU初始化和分配顯存耗時(shí)10 ms,從CPU到GPU的數(shù)據(jù)傳輸耗時(shí)約23 ms,計(jì)算耗時(shí)約6 ms,數(shù)據(jù)從GPU傳回至CPU耗時(shí)約4 ms;對(duì)于GPU2,初始化和分配顯存耗時(shí)約7 ms,從CPU到GPU的數(shù)據(jù)傳輸耗時(shí)約7 ms,計(jì)算和數(shù)據(jù)回傳耗時(shí)均約2 ms。若僅考慮計(jì)算時(shí)間,GPU1的計(jì)算速度是CPU單核的約80倍,GPU2的速度則達(dá)到200倍以上。由此可見,在解相位差計(jì)算中,GPU初始化和顯存分配、數(shù)據(jù)傳輸占據(jù)了絕大部分時(shí)間,真正用于計(jì)算的時(shí)間非常短。
計(jì)算時(shí)間對(duì)比表明, CPU解相位差的瓶頸在于求解過程,而采用GPU加速計(jì)算時(shí),求解過程耗時(shí)占比極小,絕大部分時(shí)間用于數(shù)據(jù)存取與傳輸,其次為GPU的初始化過程,計(jì)算總時(shí)間降到原來的約10.4%~15.4%,大幅加速了求相位差圖過程。
4.2.1 CPU串行算法濾波
為便于比較不同濾波算法的效果,首先采用模擬散斑圖進(jìn)行測(cè)試。模擬相位分布為:
d1=sqrt[(x-1696)2+(y-1024)2],
(11)
d2=sqrt[(x-896)2+(y-1024)2],
(12)
θx,y=3000×[exp(d1/1000)-exp(d2/1000)].
(13)
然后給模擬相位附加均值為0、標(biāo)準(zhǔn)差為60的高斯噪聲,得到含噪聲散斑圖。無噪聲相位圖和含噪聲散斑圖如圖3所示。
圖3 模擬相位圖。(a)無噪聲; (b)含噪聲。Fig.3 Simulated phase diagram. (a)Without noise; (b)With noise.
對(duì)圖3(b)采用不同的算法進(jìn)行濾波,并比較其標(biāo)準(zhǔn)峰值信噪比 PSNR的變化。其中PSNR的定義為:
(14)
式中:KMSE為濾波后圖像與不含噪聲的原始相位圖之間的均方誤差。
由定義可知,PSNR越大,濾波后圖像與原始相位圖差別越小,濾波失真越小。圖4為正余弦均值濾波和復(fù)數(shù)均值濾波的PSNR隨濾波次數(shù)和濾波窗口尺寸變化的曲線及不同階次Butterworth低通濾波的PSNR隨截止距離的變化。
圖4 正余弦均值濾波(SC)和復(fù)數(shù)均值濾波(Mean)的PSNR隨濾波次數(shù)和濾波窗口大小變化(a), 與不同階次Butterworth低通濾波的PSNR隨截止距離的變化(b)。Fig.4 Influence of the filtering times and window size on PSNR of sin-cos filtering (SC) and complex mean filtering (Mean) (a), and influence of the order and cut-off distance on PSNR of Butterworth filtering (b).
圖4表明,對(duì)于正余弦均值濾波和復(fù)數(shù)均值濾波而言,濾波窗口越大,PSNR上升越快,且在相同的濾波窗口下正余弦濾波效果較復(fù)數(shù)濾波更好。對(duì)于Butterworth低通濾波,階次越低,達(dá)到最佳效果的截止距離越短??傮w而言,正余弦均值濾波和復(fù)數(shù)均值濾波的最好效果好于Butterworth低通濾波。由于Butterworth濾波的計(jì)算時(shí)間比較穩(wěn)定,不隨階次和截止距離而變化,以其達(dá)到的最佳效果為標(biāo)準(zhǔn)(n=2、D0=37時(shí),PSNR為88.84),選取PSNR≥88.84的正余弦均值濾波和復(fù)數(shù)均值濾波不同濾波窗口下最短計(jì)算時(shí)間(“3×3”窗口下濾波100次以內(nèi)PSNR值均未達(dá)88.84,因此不再考慮),結(jié)果見表2。
表2表明,對(duì)于正余弦均值濾波,每次濾波時(shí)重新計(jì)算正余弦值和相位值耗時(shí)較大,因此濾波次數(shù)對(duì)濾波時(shí)間的影響比濾波窗口影響更大;而對(duì)于復(fù)數(shù)均值濾波,濾波次數(shù)與濾波窗口對(duì)總計(jì)算時(shí)間的影響相當(dāng),因此達(dá)到相同效果時(shí)采用不同濾波窗口的計(jì)算時(shí)間較為接近。盡管達(dá)到同樣效果時(shí)復(fù)數(shù)均值濾波所需次數(shù)大于正余弦均值濾波,但由于不必每次濾波都重新計(jì)算正余弦值和相位值,其計(jì)算速度顯著快于正余弦均值濾波。
表2 達(dá)到Butterworth濾波最佳效果時(shí)正余弦均值濾波和復(fù)數(shù)均值濾波不同濾波窗口下最短計(jì)算時(shí)間
Tab.2 The shortest times for sin-cos filtering and complex mean filtering with different filtering window sizes to reach the best of Butterworth filtering
算法PSNR計(jì)算參數(shù)耗時(shí)/msButterworth濾波88.84n=2,D0=371416正余弦均值濾波88.92“7×7”,24次11995正余弦均值濾波89.00“5×5”,39次15427復(fù)數(shù)均值濾波89.08“7×7”,26次7023復(fù)數(shù)均值濾波88.88“5×5”,41次6719
圖5為對(duì)模擬圖進(jìn)行不同方法濾波所得結(jié)果。從圖中可以看出,Butterworth濾波對(duì)細(xì)節(jié)的平滑最為徹底,條紋最為平滑,剩余微小起伏最小,但其缺點(diǎn)在于邊緣效應(yīng)明顯,在圖像左右邊緣出現(xiàn)了平行于邊緣的多余條紋,甚至產(chǎn)生了殘差點(diǎn)。正余弦均值與復(fù)數(shù)均值濾波結(jié)果基本相同,條紋較不平滑,殘余微小起伏較大,邊緣效應(yīng)不明顯,濾波圖中無殘差點(diǎn)。
圖5 模擬圖濾波結(jié)果。(a)Butterworth濾波,n=2,D0=37;(b)正余弦均值濾波“7×7”,24次;(c)復(fù)數(shù)均值濾波,“7×7”,26次。Fig.5 Filtered images of simulated diagram with different filtering methods. (a)Butterworth filtering, n=2, D0=37; (b) Sin-cos filtering, “7×7”, 24 times; (c) Complex mean filtering, “7×7”, 26 times.
圖5表明,Butterworth濾波對(duì)圖像內(nèi)部的濾波效果較好,但邊緣部分結(jié)果較差;正余弦均值與復(fù)數(shù)均值濾波對(duì)圖像內(nèi)部濾波效果略差,但邊緣部分結(jié)果較為穩(wěn)定,濾波效果與圖像內(nèi)部相當(dāng)。
總體而言,正余弦均值濾波和復(fù)數(shù)均值濾波達(dá)成與之相當(dāng)?shù)男Ч璧挠?jì)算時(shí)間遠(yuǎn)遠(yuǎn)超出Butterworth濾波。雖然可以通過減少濾波次數(shù)縮短計(jì)算耗時(shí),但將時(shí)間縮短至Butterworth濾波耗時(shí)將嚴(yán)重惡化濾波效果。因此,在CPU平臺(tái)上,Butterworth濾波效率遠(yuǎn)高于正余弦均值濾波和復(fù)數(shù)均值濾波。
4.2.2 GPU并行算法濾波
由于GPU濾波加速算法基于CPU濾波算法,兩者結(jié)果理論上一致,因此仍按表2中的計(jì)算參數(shù)對(duì)各種算法重新測(cè)定計(jì)算時(shí)間。結(jié)果如表3所示。
表3表明,雖然仍然是Butterworth濾波速度最快,但其他算法的速度劣勢(shì)已經(jīng)大幅減小,可以犧牲一定的精度換取更短的計(jì)算時(shí)間。例如在GPU1上,采用“7×7”窗口進(jìn)行濾波時(shí),若將濾波次數(shù)減少到15次,正余弦均值濾波和復(fù)數(shù)均值濾波需要的時(shí)間將縮短為145 ms和161 ms,時(shí)間短于Butterworth濾波,相應(yīng)PSNR值為85.39和85.15,與Butterworth濾波精度最好時(shí)相差不大。就GPU加速而言,Butterworth濾波加速比最低,僅有正余弦均值濾波的1/9~1/6,復(fù)數(shù)均值濾波的1/3左右。究其原因,主要是因?yàn)锽utterworth濾波需要進(jìn)行正反快速傅里葉變換,計(jì)算中內(nèi)存讀寫不連續(xù),控制較為復(fù)雜,而正余弦均值濾波和復(fù)數(shù)均值濾波計(jì)算中內(nèi)存讀寫連續(xù),有利于提高內(nèi)存讀寫效率。GPU加速正余弦均值濾波快于復(fù)數(shù)均值濾波表明,在這兩種GPU算法中,主要瓶頸已經(jīng)由不再是正余弦和反正切計(jì)算,而是內(nèi)存的讀寫,包括線程塊內(nèi)共享內(nèi)存的讀寫和線程塊與全局顯存間的讀寫。復(fù)數(shù)均值濾波的全局內(nèi)存讀寫量為正余弦均值濾波的2倍,因此在消除正余弦和反正切重復(fù)計(jì)算之后速度仍然慢于正余弦均值濾波。
表3 采用GPU加速計(jì)算時(shí),達(dá)到Butterworth濾波最佳效果時(shí)正余弦均值濾波和復(fù)數(shù)均值濾波不同濾波窗口下最短計(jì)算時(shí)間
Tab.3 The shortest times for sin-cos filtering and complex mean filtering with different filtering window sizes to reach the best of Butterworth filtering adopting GPU accelerated computing
算法計(jì)算參數(shù)耗時(shí)/msGPU1GPU2加速比GPU1GPU2Butterworth濾波n=2,D0=37170508.328.3正余弦均值濾波“7×7”,24次2067158169正余弦均值濾波“5×5”,39次2157272214復(fù)數(shù)均值濾波“7×7”,26次2468028.688復(fù)數(shù)均值濾波“5×5”,41次2968222.782
4.2.3 解相位差與濾波合并計(jì)算
由于濾波讀取的數(shù)據(jù)源自解相位差得到的數(shù)據(jù),將相位差數(shù)據(jù)從GPU傳到CPU,保存至硬盤,再從硬盤中讀取數(shù)據(jù),傳到GPU進(jìn)行濾波,可以看出中間傳遞數(shù)據(jù)的部分實(shí)際上做了無用功。因此,將解相位差與濾波合并計(jì)算,即在GPU中解相位差后直接進(jìn)行濾波可進(jìn)一步提高效率。表4為合并解相位差和濾波計(jì)算后的總計(jì)算時(shí)間,其較解相位差全過程時(shí)間和單純?yōu)V波時(shí)間之和減少約10~20 ms,這主要是因?yàn)槿コ巳哂嗟臄?shù)據(jù)傳送過程。
因此,采用GPU加速計(jì)算后,求解相位差和濾波的總時(shí)間可以從CPU計(jì)算時(shí)的1 900 ms降低到239 ms或86 ms。采用性能較弱的GPU時(shí),可以通過降低濾波次數(shù)將正余弦均值濾波時(shí)間進(jìn)一步縮短,從而保證濾波的實(shí)時(shí)性,如正余弦均值濾波采用“7×7”濾波10次時(shí),總計(jì)算時(shí)間為190 ms,代價(jià)是濾波不充分,PSNR下降至81.5;采用性能較強(qiáng)的GPU時(shí),可以直接采用Butterworth低通濾波,同時(shí)獲得較好的濾波效果和濾波實(shí)時(shí)性。
表4 解相位差合并不同濾波算法的計(jì)算總耗時(shí)Tab.4 Total procssing time of difforent filting method combined with phase calculation
圖6為對(duì)原始圖進(jìn)行解相位差和濾波所得結(jié)果。與模擬圖最大的不同在于,因?yàn)榧す庹彰髻|(zhì)量和遮擋等原因,實(shí)際散斑圖各處相干程度相差很大。從圖2(相位差圖)可以看出,圖像中心部位條紋明顯,相干程度強(qiáng),外圍條紋暗弱,相干程度弱,圖像四角和左側(cè)則無條紋,為非相干區(qū)。圖6表明,Butterworth濾波對(duì)細(xì)節(jié)的平滑最為徹底,不僅外圍弱相干和非相干區(qū)的殘差點(diǎn)最少,中心強(qiáng)相干區(qū)的微小起伏也最小,但其缺點(diǎn)在于邊緣效應(yīng)明顯,在圖像邊緣平行于邊緣的多余條紋。正余弦均值濾波在弱相干區(qū)留下的殘差點(diǎn)最多,強(qiáng)相干區(qū)的微小起伏也最大。復(fù)數(shù)均值濾波介于兩者之間,對(duì)弱相干區(qū)殘差點(diǎn)的消除更接近Butterworth濾波,強(qiáng)相干區(qū)的微小起伏程度更接近正余弦均值濾波,且和正余弦均值濾波一樣邊緣效應(yīng)不明顯。
圖6 解相位差和濾波合并計(jì)算結(jié)果。(a)Butterworth濾波,n=2,D0=37;(b)正余弦均值濾波“7×7”,24次;(c)復(fù)數(shù)均值濾波,“7×7”,26次。Fig.6 Results of combined phase difference and filtering calculation with different filtering methods:(a)Butterworth filtering, n=2, D0=37; (b) Sin-cos filtering, “7×7”, 24 times; (c) Complex mean filtering, “7×7”, 26 times.
(1)采用GPU計(jì)算可以大幅提高運(yùn)算速度。相對(duì)于i7-6500U單線程,GeForce 940MX的濾波計(jì)算速度可以提高8.3倍(Butterworth低通濾波)、58倍(正余弦均值濾波,“7×7” 窗口)和28.6倍(復(fù)數(shù)均值濾波,“7×7”窗口),Quadro P3000可提高28.3倍(Butterworth低通濾波)、169倍(正余弦均值濾波,“7×7” 窗口)和88倍(復(fù)數(shù)均值濾波,“7×7” 窗口)。
(2)不同濾波方法有不同的優(yōu)缺點(diǎn),Butterworth低通濾波對(duì)強(qiáng)相干區(qū)和弱相干區(qū)濾波效果均較好,濾波結(jié)果平滑,但在圖像邊緣有嚴(yán)重邊緣效應(yīng),易出現(xiàn)異常條紋;正余弦濾波平滑程度低于Butterworth低通濾波,在弱相干區(qū)容易殘留大量殘差點(diǎn),而邊緣效應(yīng)不明顯;復(fù)數(shù)均值濾波平滑程度與正余弦濾波相似,在弱相干區(qū)效果與Butterworth低通濾波相似,邊緣效應(yīng)不明顯。
(3)采用GPU計(jì)算時(shí),速度瓶頸很大程度上出現(xiàn)在數(shù)據(jù)傳輸中,包括系統(tǒng)內(nèi)存與GPU顯存之間的傳輸和GPU核心與顯存間的傳輸。數(shù)據(jù)傳輸量越少、顯存讀寫連續(xù)性越好,越有利于發(fā)揮GPU計(jì)算速度快的優(yōu)點(diǎn)。
(4)對(duì)于性能不同的GPU,可以采取不同的算法在濾波速度和濾波精度間取得平衡。對(duì)性能較低的GPU,可以適當(dāng)降低精度要求,采用正余弦均值濾波通過減少濾波次數(shù)的方式提高濾波速度,保證實(shí)時(shí)性;對(duì)于性能較強(qiáng)的GPU,可以采用Butterworth低通濾波同時(shí)獲得較好的濾波效果和濾波實(shí)時(shí)性;如果GPU性能更強(qiáng),可以采用正余弦均值濾波增加濾波次數(shù)以獲得更好的濾波效果。