王新軍,尚煜珂,李 平
(火箭軍工程大學(xué),西安,710025)
由發(fā)動(dòng)機(jī)故障引起的火箭發(fā)射失敗案例占總案例的1/3[1],因此對(duì)火箭發(fā)動(dòng)機(jī)的檢測(cè)意義重大。目前,應(yīng)用于固體火箭發(fā)動(dòng)機(jī)缺陷檢測(cè)的無(wú)損檢測(cè)方法很多,例如超聲[2]、紅外[3]、激光全息[4]、X 射線[5]以及工業(yè) CT圖像[6]等,其中工業(yè)CT圖像的檢測(cè)結(jié)果較為理想。但是對(duì)于一界面的檢測(cè)存在邊緣效應(yīng)以及偽影的影響。對(duì)于細(xì)小缺陷,如細(xì)小的一界面脫粘不易檢測(cè)[6]。分水嶺算法的優(yōu)點(diǎn)是魯棒性好,其缺點(diǎn)是過(guò)分割和對(duì)噪聲敏感[7]。目前所研究的幾種改進(jìn)算法[8~11]主要應(yīng)用在醫(yī)學(xué)圖像的處理[12]和粘連物體圖像分割處理[13]等方面。本文為了更好地對(duì)固體火箭發(fā)動(dòng)機(jī) CT圖像中缺陷特征進(jìn)行提取和識(shí)別,應(yīng)用了一種動(dòng)態(tài)合并準(zhǔn)則的改進(jìn)分水嶺算法。
動(dòng)態(tài)合并準(zhǔn)則是基于一定結(jié)構(gòu)信息的對(duì)圖像中灰度差異的一種度量。它測(cè)量的是包含極值點(diǎn)的結(jié)構(gòu)而不是極值點(diǎn)本身或者極值點(diǎn)對(duì)應(yīng)流域。由于在動(dòng)態(tài)合并計(jì)算中用不到圖像的形狀和大小等信息,因此不需知道圖像的相關(guān)先驗(yàn)知識(shí)。而很多基于marker的分割方法需事先知道圖像中物體的形狀、大小等相關(guān)信息。動(dòng)態(tài)合并準(zhǔn)則的計(jì)算沒(méi)有這個(gè)限制,因此具有很好的通用性[14]。
定義兩點(diǎn)間的一條路徑的動(dòng)態(tài)合并區(qū)間,這條路徑上最高點(diǎn)與最低點(diǎn)之間的高度差即為動(dòng)態(tài)合并值:
式中 (,)Pxy為x,y之間的路徑;sup為上確界; ()fx為x點(diǎn)的灰度值。
為了抑制過(guò)分割,需去除不重要的谷底。因此,需要計(jì)算的是谷底的動(dòng)態(tài)合并值,如圖1所示。
由圖1可知,谷底M與另一個(gè)谷底灰度值小于M的流域中一點(diǎn)的所有路徑中,動(dòng)態(tài)合并值最小的一個(gè)就是谷底M的動(dòng)態(tài)合并值,即:式中 ()DM 為谷底M的動(dòng)態(tài)合并值;inf為下確界;分別為谷底高度。
圖1 谷底動(dòng)態(tài)合并示意Fig.1 Dynamic Merging of Grain Bottom
圖1只考慮一維的情況,1()DP和2()DP分別是左右兩個(gè)方向不同路徑上連接谷底M和比M低的谷底的動(dòng)態(tài)合并值,其中1()DP較小, ()DM=1()DP。二維情況也依照此法,只是需要考慮平面內(nèi)所有可能的路徑。
對(duì)過(guò)分割的抑制過(guò)程如圖2所示。
圖2 對(duì)過(guò)分割的抑制示意Fig.2 A Hint of Over Segmentation
由圖2可知,在對(duì)過(guò)分割的抑制過(guò)程中存在噪聲,受噪聲的影響,出現(xiàn)了很多小的假谷底。直接用分水嶺算法進(jìn)行分割時(shí)會(huì)產(chǎn)生很多小的區(qū)域,出現(xiàn)嚴(yán)重的過(guò)分割現(xiàn)象。為了抑制過(guò)分割現(xiàn)象,可做如下處理:a)分別對(duì)各個(gè)谷底進(jìn)行計(jì)算,算出其動(dòng)態(tài)合并值;b)根據(jù)動(dòng)態(tài)合并準(zhǔn)則,將計(jì)算出的值標(biāo)注在圖中。
由于噪聲所產(chǎn)生谷底的動(dòng)態(tài)合并值很小,而真正的谷底M,N的動(dòng)態(tài)合并值則很大,因此只需設(shè)定一個(gè)閾值,就可將噪聲所產(chǎn)生的谷底濾掉,從而達(dá)到抑制過(guò)分割的目的。
改進(jìn)分水嶺算法的流程如圖3所示。
圖3 改進(jìn)分水嶺算法流程示意Fig.3 Process of Improving the Watershed Algorithm
b)重排梯度圖。
分水嶺算法對(duì)像素處理是按照像素值從小到大的順序進(jìn)行的。因此,按照?qǐng)D像的像素值由小到大的順序進(jìn)行重排,生成原圖像的累積直方圖。由于在計(jì)算過(guò)程中需頻繁地訪問(wèn)像素的鄰域,為了加快運(yùn)算的速度,在重排過(guò)程中設(shè)定存儲(chǔ)每個(gè)像素的 8個(gè)鄰域的像素信息,這樣就能直接訪問(wèn)到像素的鄰域信息。
c)從最小的梯度值開始,逐級(jí)處理梯度像素,一邊分割一邊合并,直到進(jìn)行到梯度最大值,整幅圖像就處理完畢。
為了加快處理進(jìn)程,應(yīng)用了先進(jìn)先出隊(duì)列結(jié)構(gòu)。算法執(zhí)行是按照梯度逐步上升處理的,例如處理到梯度級(jí)為h時(shí),小于h的梯度都被處理完了。設(shè)處理完像素的集合為M,h+1的像素集合為N,M與N的關(guān)系有如下3種:a)M與N不相交,說(shuō)明N為新的流域谷底;b)M與N相交且連通,則把N歸到M對(duì)應(yīng)谷底;c)M
由圖3可知,改進(jìn)分水嶺算法流程步驟如下:
a)提取梯度圖。
形態(tài)學(xué)梯度是指用圖像一次膨脹的結(jié)果減去一次腐蝕的結(jié)果,算法應(yīng)用求取形態(tài)學(xué)梯度的方法。形態(tài)學(xué)梯度圖像g為與N相交但不連通,說(shuō)明N屬于不同流域,需計(jì)算與不同谷底的距離,再將其歸入到相應(yīng)的流域。具體步驟為:
1)像素入隊(duì):在整個(gè)程序的執(zhí)行過(guò)程中,存在一個(gè)處理隊(duì)列,用來(lái)將能處理的像素入隊(duì),并且在要處理時(shí)出隊(duì)。例如處理到梯度級(jí)為h的時(shí)候,將梯度為h而且包括在鄰域中已經(jīng)處理完的那些點(diǎn)入隊(duì)。一次入隊(duì)結(jié)束后,再將隊(duì)內(nèi)的點(diǎn)出隊(duì)進(jìn)行處理。
2)從隊(duì)列當(dāng)中逐個(gè)取出像素點(diǎn),設(shè)取出的點(diǎn)為p,計(jì)算p鄰域中分水嶺和流域的個(gè)數(shù),分別用umNW和表示。
3)根據(jù)umN B和umNW來(lái)判斷p輸出。
如果um1N B=,則與p點(diǎn)相鄰流域只有一個(gè),將這個(gè)點(diǎn)的輸出賦給p。
4)判斷新谷底出現(xiàn):與前面所述M與N的不相交的情況相對(duì)應(yīng),此時(shí)要對(duì)圖像進(jìn)行重新的掃描來(lái)判斷是否有新的谷底出現(xiàn)。
對(duì)某型彈體的模型進(jìn)行CT檢測(cè),外殼為鋼體,在藥柱處人工預(yù)制了裂紋缺陷。應(yīng)用傳統(tǒng)的分水嶺算法和本文的方法處理后,對(duì)結(jié)果進(jìn)行比對(duì)。CT檢測(cè)原圖如圖4所示,應(yīng)用線性濾波對(duì)原圖進(jìn)行預(yù)處理,處理后的效果如圖5所示。
圖4 CT檢測(cè)原圖Fig.4 CT Detection Original Map
圖5 預(yù)處理后效果Fig.5 Preconditioning Effect Diagram
傳統(tǒng)分水嶺算法處理后的圖像以及本文方法處理后圖像如圖6所示。
圖6 分水嶺算法處理結(jié)果Fig.6 Watershed Algorithm Processing Result Diagram
由圖6可知,應(yīng)用傳統(tǒng)方法處理后的圖像存在明顯的過(guò)分割現(xiàn)象,而應(yīng)用動(dòng)態(tài)合并準(zhǔn)則的分水嶺方法的處理結(jié)果對(duì)過(guò)分割起到了明顯的抑制,對(duì)比數(shù)據(jù)如表1所示。
表1 計(jì)算錯(cuò)分概率相關(guān)數(shù)據(jù)Tab.1 Calculation of Error Probability Related Data
由表 1可知,本文方法的錯(cuò)分概率為傳統(tǒng)分水嶺方法的1/10。
在傳統(tǒng)分水嶺算法的基礎(chǔ)之上,進(jìn)行了基于動(dòng)態(tài)合并準(zhǔn)則分割方法的改進(jìn),通過(guò)實(shí)驗(yàn)驗(yàn)證該方法對(duì)過(guò)分割有了明顯的抑制?;趧?dòng)態(tài)合并準(zhǔn)則的分水嶺算法不必像區(qū)域生長(zhǎng)分割算法一樣需對(duì)圖片有較多先驗(yàn)知識(shí),也不必像邊緣檢測(cè)方法那樣檢測(cè)到邊緣后還要進(jìn)行邊緣連接。目前實(shí)驗(yàn)只對(duì)裂紋缺陷 CT圖像的處理,后期還會(huì)進(jìn)行其他缺陷的大量實(shí)驗(yàn),進(jìn)一步完善算法研究。