張 路,林勇康,艾昕晨,沙 超,王汝傳
(1.南京郵電大學(xué) 計算機(jī)學(xué)院、軟件學(xué)院、網(wǎng)絡(luò)空間安全學(xué)院,江蘇 南京 210003; 2.南京郵電大學(xué) 電子與光學(xué)工程學(xué)院、微電子學(xué)院,江蘇 南京 210003)
CT系統(tǒng),即電子計算機(jī)斷層掃描,是一種可以利用人體不同組織對X射線吸收率的不同而對人體內(nèi)部進(jìn)行成像的儀器[1-2]。此外,CT也可以應(yīng)用在工程上,工程CT可以對工程對象內(nèi)部進(jìn)行成像,完成工程結(jié)構(gòu)檢測等任務(wù)[3]。
然而,在CT系統(tǒng)安裝完成后,系統(tǒng)往往存在誤差,需要用已知參數(shù)的標(biāo)定模板來進(jìn)行誤差參數(shù)標(biāo)定,便于進(jìn)行誤差補(bǔ)償。因此,標(biāo)定模板的設(shè)計往往影響著標(biāo)定誤差參數(shù)的精度,進(jìn)而影響到最后的成像質(zhì)量。文中提出的基于PSO算法的標(biāo)定模板設(shè)計方案,具有精度高、收斂快等特點,并與爬山法、遺傳算法進(jìn)行了對比。
一種常見的CT系統(tǒng)如圖1所示。系統(tǒng)工作時,樣品以及托盤靜止不動,512個等間距的“光源-探測器單元組”繞托盤某固定旋轉(zhuǎn)中心逆時針旋轉(zhuǎn)180次。由于旋轉(zhuǎn)誤差的存在,不一定是等間距旋轉(zhuǎn)。經(jīng)過處理后,計算機(jī)得到180組接收信息,每組接收信息包含512個探測器的探測數(shù)值,即可根據(jù)探測器信息結(jié)合標(biāo)定的參數(shù)還原樣品截面圖。CT系統(tǒng)的參數(shù)標(biāo)定是指標(biāo)定安裝完成后的旋轉(zhuǎn)中心點的坐標(biāo),探測器單元的間距,以及CT系統(tǒng)旋轉(zhuǎn)的180個方向角。

圖1 CT系統(tǒng)工作原理
為了提高標(biāo)定的精度和穩(wěn)定性,需要對模板進(jìn)行最優(yōu)化設(shè)計。模板的設(shè)計圍繞以下3個目標(biāo)進(jìn)行:標(biāo)定精度盡量高;單個探測器的接收信息方差盡量大;探測器的利用率盡量高。
其中,“單個探測器的接收信息方差盡量大”這個目標(biāo)會充分利用探測器的量程,以對不同材質(zhì)起到更好的區(qū)分度。但是,此目標(biāo)將導(dǎo)致模板呈現(xiàn)直桿形狀,因為直桿形狀下的模板能讓單個探測器的接收信息從0變化到最大值。
而“探測器的利用率盡量高”這個目標(biāo),會充分利用探測器資源。但是,此目標(biāo)將導(dǎo)致模板呈現(xiàn)半徑較大的圓形。因為半徑大的圓形在任何角度下都能被更多的探測器探測到。
綜上所述,在各個目標(biāo)的制約與均衡下,最終的模板主體形狀會是一個介于圓與直桿之間的形狀,即橢圓形。此外,為了能夠更加便捷地測定探測器間距,并能夠使模板產(chǎn)生不對稱性,以增大各個方向的接收信息區(qū)別,在橢圓右側(cè)引入一個圓。
故最終的標(biāo)定模板為一個橢圓與一個圓構(gòu)成的圖形,假定圓位于橢圓右側(cè)。在標(biāo)定模板的設(shè)計方案中,需要求解的參數(shù)有橢圓的離心率e,長軸長度a,圓的半徑r,圓心和橢圓中心的距離d。設(shè)定模板為均勻的單一材質(zhì),吸收率μ為1。
為了求解出最優(yōu)的標(biāo)定模板,針對上文中的待定參數(shù),建立多目標(biāo)規(guī)劃模型,分別確定目標(biāo)函數(shù)和約束條件,過程如下所述。
2.1.1 目標(biāo)函數(shù)一:標(biāo)定精度盡量高

由于接收信息經(jīng)過了增益等處理,結(jié)合Beer-lambert定律[4],理論值可以通過下式計算。
(1)

2.1.2 目標(biāo)函數(shù)二:單個探測器接收信息方差盡量大

2.1.3 目標(biāo)函數(shù)三:探測器的利用率盡量高
2.1.4 目標(biāo)函數(shù)的轉(zhuǎn)化
對于三個目標(biāo)函數(shù),求解的難度相對較大,因此,在保證目標(biāo)不變的情況下,可對目標(biāo)函數(shù)進(jìn)行一定的改進(jìn)。
目標(biāo)函數(shù)一可轉(zhuǎn)化為:max(d-b-r)2。目標(biāo)使圓與橢圓間隔盡可能大,根據(jù)探測器間距測量方法,能提高探測器間隔的標(biāo)定精度。
目標(biāo)函數(shù)二可轉(zhuǎn)化為:maxe。此目標(biāo)使得橢圓盡可能扁平,從而使得單個探測器接收信息方差盡可能大。
目標(biāo)函數(shù)三可轉(zhuǎn)化為:maxa2+b2,此目標(biāo)使得橢圓盡可能大,從而提高探測器利用率。其中,a為橢圓形模板的半長軸,b為橢圓的半短軸。
其示意圖如圖2所示。

圖2 待求解模板示意圖
考慮到所求的目標(biāo)函數(shù)都是要求最大值,因此首先考慮相加。但是因為數(shù)量級上有差異,首先要將其進(jìn)行標(biāo)準(zhǔn)化[5],建立一個目標(biāo)函數(shù)F。將上述三個目標(biāo)函數(shù)分別記作F1,F2,F3,則最終的目標(biāo)函數(shù)為:
(2)
約束條件一:橢圓長軸長度與離心率范圍的約束。一方面,橢圓要限定在托盤內(nèi)。文中的系統(tǒng)托盤寬度為100 mm。另一方面,橢圓不能與圓相交,由此得到如下兩個約束關(guān)系:
(3)
約束條件二:圓的半徑范圍約束。圓的半徑范圍一方面與橢圓離心率有關(guān);另一方面,半徑和圓與橢圓中間距離也限定了圓不能超出托盤區(qū)域,關(guān)系式如下:
0 (4) 約束條件三:圓與橢圓相對位置關(guān)系的約束。為了能夠更加方便地測定探測器間距,要保持圓和橢圓之間有一定的間距,關(guān)系式如下: (5) 根據(jù)新設(shè)計的模塊信息,可采用對參數(shù)遍歷的方式來達(dá)到多目標(biāo)規(guī)劃的最優(yōu)解。然而,考慮到需要對橢圓的離心率e,橢圓的長軸長度a,圓的半徑r、橢圓中心和圓心的間距d,分別進(jìn)行遍歷,計算量繁重且結(jié)果不精確。故根據(jù)收斂速度及求解精度的需要,采用PSO算法[6-10]對模型進(jìn)行求解。 PSO算法,即粒子群優(yōu)化算法,是由Eberhart和Kennedy基于群鳥覓食行為提出。在粒子群算法中,每個粒子都被當(dāng)成一只鳥。在群鳥覓食的過程中,每只鳥的初始位置和飛翔方向都是隨機(jī)的。每只鳥都不知道食物的具體位置。但是,隨著時間的推移,這些鳥通過相互學(xué)習(xí)、信息共享和不斷積累覓食的經(jīng)驗,自發(fā)組織積聚成一個群落,并朝著食物前進(jìn)。迭代終止的條件一般為目前搜索的最優(yōu)位置滿足目標(biāo)函數(shù)的最小容許誤差,或者達(dá)到了最大迭代次數(shù)。 在本例中,PSO算法的具體步驟如下: 步驟1:由于需要對橢圓的離心率e,橢圓的長軸長度a以及圓的半徑r、橢圓中心和圓心的間距d進(jìn)行遍歷求解,因此,首先確定一個四維粒子(a,e,r,d),根據(jù)已經(jīng)確定的約束條件,在范圍內(nèi)對四維粒子進(jìn)行賦值。 (6) 步驟2:在已經(jīng)確定的約束條件下,進(jìn)行第一次選取。為了能夠得到全局最優(yōu)解,需要先設(shè)置100個粒子,粒子按照粒子運(yùn)動規(guī)律在全局范圍內(nèi)演變。在滿足最優(yōu)化目標(biāo)的條件下,從粒子群中選取較小的(a,e,r,d)作為下一次選取的上限:amax,emax,rmax,dmax。 步驟3:同理,在滿足最優(yōu)化目標(biāo)的條件下,從粒子群中選取較大的(a,e,r,d)作為下一次選取的下限:amin,emin,rmin,dmin。 步驟4:在已經(jīng)確定的上下限范圍內(nèi)進(jìn)行下一次選取。 (7) 步驟5:設(shè)定迭代次數(shù)。經(jīng)過測試,本例中的PSO算法大部分在31~73次迭代之后達(dá)到收斂條件。為了兼?zhèn)浣Y(jié)果的精確性和速度,選定最大迭代次數(shù)為100次。 在托盤尺寸為100 mm×100 mm,探測器為512組,旋轉(zhuǎn)180個角度的情況下,對表1中PSO算法的求解參數(shù)進(jìn)行求解。 表1 PSO算法參數(shù)值 借助MATLAB的粒子群工具箱,求得標(biāo)定模板的各項參數(shù)值,如表2所示,此時的目標(biāo)函數(shù)值為2.086 2。 表2 標(biāo)定模板的各項參數(shù) 為了檢測PSO算法與其他優(yōu)化算法在求解本問題上的優(yōu)劣,分別采用爬山法[11-12]和遺傳算法[13-15]進(jìn)行求解。 爬山法是一種求解局部最優(yōu)解效果較好的算法。通過不斷與鄰居節(jié)點的函數(shù)值進(jìn)行比較,如果鄰居節(jié)點函數(shù)值較大,則用鄰居節(jié)點代替當(dāng)前節(jié)點,從而尋求到最優(yōu)解。若初值選取的不恰當(dāng),爬山法往往找到的是局部最優(yōu)解。 遺傳算法是基于達(dá)爾文進(jìn)化論產(chǎn)生的一種隨機(jī)搜索算法,通過模擬自然界生物進(jìn)化過程尋找最優(yōu)解。包含復(fù)制、交叉、變異三種算子。對非線性問題有良好效果。 爬山算法和遺傳算法的參數(shù)如表3所示。 表3 爬山算法與遺傳算法求解參數(shù) 爬山法 遺傳算法 參數(shù)名參數(shù)值參數(shù)名參數(shù)值反射因子100種群數(shù)量100收縮因子0.729變異率0.01拓展因子1.494交叉率0.85全收縮因子1交叉方法均勻交叉 在MATLAB R2017b下,經(jīng)過求解,得到的迭代搜索對比如圖3所示。 圖3 不同算法迭代搜索圖 由圖可以看出,在本例中,爬山法容易陷入局部最優(yōu)解的狀況,在多次測試中,只有少數(shù)幾例由于隨機(jī)初值選取在全局最優(yōu)解附近,使得爬山法取得了全局最優(yōu)解,其他大部分情況均陷入了局部最優(yōu)解。而本例中存在4個維度的搜索,遺傳算法在高維問題的收斂速度較慢甚至很難收斂。 提出了一種基于PSO算法的標(biāo)定模板的設(shè)計方案。首先根據(jù)設(shè)計目標(biāo)確定標(biāo)定模板大致形狀,然后根據(jù)相關(guān)目標(biāo)與約束條件建立多目標(biāo)規(guī)劃模型,最后采用PSO算法求解出模板的參數(shù),得到了在指定情況下的最優(yōu)化模板設(shè)計方案。與爬山法、遺傳算法的對比結(jié)果證明了PSO算法在本例中的優(yōu)越性。 但是,在運(yùn)行過程中,PSO算法同樣存在一些問題,例如求解參數(shù)的設(shè)置對最終結(jié)果影響很大,局部搜索能力較差,結(jié)果不穩(wěn)定等。因此,如何降低對參數(shù)的依賴性,提高結(jié)果的穩(wěn)定性和局部搜索能力,是下一步的研究方向。3 基于PSO算法的優(yōu)化求解



4 不同算法對比


5 結(jié)束語