陳宏遠,許小進,龐靜珠,李康妹
(1.東華大學 機械工程學院,上海 201620;2.國核電站運行服務技術(shù)有限公司,上海 200233)
核電站燃料組件受水下工作環(huán)境、裝配應力和熱應力等因素的影響,在工作中產(chǎn)生局部變形等問題,因此,核電站水下核燃料棒的高精度檢測與維護是其安全運行的重要保障[1]。由于水下檢測條件惡劣,水下核燃料棒高精度三維測量面臨著巨大的挑戰(zhàn)。基于線激光掃描的單目視覺測量方法采用單目攝像機在被測物表面做左右方向的掃描運動,獲取線激光條紋信息,通過提取激光條紋中心,將其轉(zhuǎn)換為三維點云坐標,實現(xiàn)被測物尺寸的高精度測量。水下檢測中的激光條紋照射質(zhì)量、水下檢測環(huán)境和待測物表面特性都會對攝像機采集的光條圖像造成影響[2],從而給中心線的提取帶來一系列問題。因此,如何精確快速地提取光條中心線,是保證整個檢測系統(tǒng)測量精度的關(guān)鍵一步。
近年來,國內(nèi)外學者提出了許多條紋中心提取方法[3-4],主要有幾何法[5]、極值法[6]、骨架提取法[7]、高斯擬合法[8]、方向模板法[9]、灰度重心法[10]等。極值法運算速度快,但若光條出現(xiàn)多個極值,定位精度會明顯降低;骨架提取法方法簡單,但其精度受環(huán)境影響大。田慶國[11]提出基于輪廓線多邊形提取方法,可快速定位光帶橫截面方向并進行中心提取;方向模板法穩(wěn)定性較弱,中心提取效果一般,王澤浩[12]提出自適應方向模板法,提高了方向模板的提取穩(wěn)定性;高世一[13]提出變邊限高斯擬合提取激光條紋中心線法,可適應條紋寬度進行高斯擬合;吳家勇[14]針對灰度梯度特性,提出了梯度重心法,有效提取了光條中心;Steger[15]基于Hessian 矩陣得到光條橫截面上一階導數(shù)零點位置,求得光條紋中心線的亞像素位置,其考慮了光條幾何特性,定位精度高,但無法解決光條中心多極值的問題,且運算速度慢,無法滿足實時測量需求;灰度重心法考慮了光條灰度特性,運算快,熊會元[16]提出應用灰度梯度計算光條法線方向,在法線方向上應用灰度重心法精確提取光條中心的方法,解決了被測物體表面曲率變化大的問題;程鑫[17]結(jié)合Hessian 矩陣對光條的中心進行定位,利用高斯曲線準確擬合出激光條的中心。以上算法提高了光條中心提取的速度及魯棒性,但對于提取水下高反光表面光條中心的問題未能很好解決。
基于上述分析,本文提出了一種反光表面條紋自適應中心提取算法,基于光條幾何特性自適應修正高反光區(qū)域輪廓,結(jié)合圖像灰度卷積處理方法自適應修正高反光區(qū)域灰度分布,經(jīng)灰度重心法確定中心點的亞像素坐標,實現(xiàn)了水下核燃料棒表面激光條紋中心的高精度提取。該方法可以有效地減少水下噪聲及核燃料棒反光影響,準確、快速地提取激光條紋中心,控制三維重建精度在0.2 mm 以內(nèi),滿足核燃料棒變形測量精度0.3 mm的需求。
當激光器投影到物體表面,將形成一定寬度的激光條紋,其光強從條紋中心展開,滿足高斯分布。其條紋截面灰度值分布曲線的表達式為
式中:S為灰度值的幅值;σ為標準差;μ為光條截面坐標;d為光條中心坐標。
因激光器自身質(zhì)量、測量環(huán)境及被測量物體材質(zhì)的不同,單目攝像機所采集的激光條紋灰度分布差異性較大,為此,截取核燃料棒原始圖像中激光條紋部分,繪制光條左部和中部截面的灰度分布曲線,見圖1所示。
圖1 原始激光條紋及其截面灰度分布Fig.1 Original laser stripes and section gray distribution
根據(jù)圖1分析可以得到原始激光條紋圖像具有以下特征:1)光條邊界附近存在水下環(huán)境噪聲干擾;2)光條截面灰度極值不同,截面寬度存在差異;3)光條中間部分存在高反光區(qū)域,輪廓改變,灰度分布不滿足近似高斯分布。
通過以上特征可以得到,受水下測量環(huán)境影響,獲取的激光條紋圖像存在大量噪聲,影響激光條紋分離提?。皇芪矬w表面反光特性影響,光條中部截面處存在多灰度極值的情況,靠近光條中心灰度值迅速增加;受金屬鏡面反光特性影響,條紋中心出現(xiàn)垂直方向的反光噪點,通過調(diào)整圖片曝光時間及拍攝角度可以減輕;通過傳統(tǒng)提取中心算法難以獲得精確激光條紋中心,中心線提取依賴光條中灰度分布符合高斯分布的截面信息。
文中出現(xiàn)較多物理量,主要分為3類。第1類是像素灰度值,其中ω表示像素點經(jīng)預處理的灰度值;ω′表示像素點經(jīng)自適應閾值提取的灰度值;ω″表示像素點經(jīng)過灰度修正的灰度值。第2類是灰度分布,其中Tn表示灰度修正卷積模板;G(i,j)表示光條所在矩形內(nèi)的點集。第3類是光條幾何特征,其中wn表示激光條紋寬度;kv表示光條輪廓的切線方向;kn表示光條的截面方向。
實際圖像中因其他因素產(chǎn)生的噪聲,需要通過圖像去噪將其消除。通過對圖像中噪聲研究發(fā)現(xiàn),水下核燃料圖像中的噪聲主要分為兩種:一是孤立噪點或者由幾個噪點組成的假光點;二是沿核燃料棒上下邊緣的線狀反光噪聲。通過濾波方法及卷積運算消除噪聲,保證對激光條紋區(qū)域提取的精確性。
1)首先利用中值濾波處理圖像,通過在噪點周圍定義一個5×5的鄰域窗口,對窗口中像素點灰度值進行升序排列,取灰度值的中值作為濾波結(jié)果,可以去除水下核燃料棒激光條紋圖像中的椒鹽噪點。
2)對原始圖像進行全局閾值的二值化處理,根據(jù)原始圖像選擇合適的灰度閾值Ct,計算實現(xiàn)圖像二值化:
式中ω(μ,ν)表示二值化后的光條在坐標(μ,ν)處的灰度值。
在灰度值非零的點上利用3×3 模板去除噪點,模板如圖2所示,a1~a8分別對應圖像中的每個像素的位置。
圖2 卷積模板Fig.2 Convolution template
將該卷積模板在圖像上移動,根據(jù)(3)式計算判定該點是否為噪點:
通過對點(μ,ν)的A值進行判斷,去除圖像中的孤立噪點和沿核燃料棒上下邊緣的反光噪點。將去噪圖像與原始圖像各像素灰度值相乘,獲得具有原始灰度信息的去噪激光圖像,最后使用高斯濾波平滑圖像。
3)根據(jù)圖像灰度值,實現(xiàn)激光條紋的自適應閾值提取。從垂直激光平面方向開始掃描,尋找包含像素點的灰度值為255的行。當?shù)谝淮螜z測到時,記該點為(imin,jmin),最后一次檢測到時,記該點為(imax,jmax),框選出包含光條位置的矩形,矩陣寬度為wd。則光條所在的矩形內(nèi)點集G(i,j)為
根據(jù)每列像素灰度值對該光條截面的不同影響程度確定閾值,選擇使用基于梯度的自適應行閾值法在矩形內(nèi)計算每列的閾值。如圖3所示,將激光條紋圖像中任一列的灰度分布抽象為兩條一次函數(shù):
圖3 自適應閾值原理Fig.3 Principle of self-adaptive threshold
計算兩像素點間灰度梯度Vmn:
式中ω(m,n)是點(μ,ν)在圖像第m行n列的灰度值。
計算每行灰度梯度的平均值Bn:
式中D為光條大致寬度。
在進行測量時,D為25個像素。通過下式判斷點(μ,ν)是否屬于光條有效點:
式中:gn表示閾值界限系數(shù);Gmax表示每行灰度的最大值;ω'(μ,ν)表示自適應閾值提取的光條在點(μ,ν)處的灰度值。
該方法能使光條的提取閾值根據(jù)列像素自適應變化,快速將激光從環(huán)境背景中提取,圖4(a)為經(jīng)自適應分割的光條圖像。通過圖4(b)分析,光條附近噪聲被去除,提取出的光條圖像邊界明顯,保證了提取精度。
圖4 自適應閾值分割及其激光截面灰度分布圖Fig.4 Self-adaptive threshold segmentation and gray distribution of laser section
提取的光條已從圖像背景分割,但由于反光現(xiàn)象,激光條紋在被測物體表面的輪廓發(fā)生改變,此時直接進行光條中心線提取無法達到精度要求。為解決這一問題,選取灰度分布滿足高斯分布的光條截面端點,采用3層BP神經(jīng)網(wǎng)絡對所選坐標點進行曲線擬合,擬合出兩條激光條紋輪廓,對光條進行進一步的修正提取。
如圖5所示,BP神經(jīng)網(wǎng)絡設(shè)定輸入層結(jié)點為X,隱藏層節(jié)點為h,輸出層節(jié)點為Y,輸入層和輸出層節(jié)點數(shù)為1,隱藏層的節(jié)點數(shù)C為2。設(shè)定wic為輸入層到隱層第c個節(jié)點之間的連接權(quán)值,ψc表示隱層第c個節(jié)點的閾值;woc為隱層第c個節(jié)點到輸出層之間的連接權(quán)值,θ表示輸出層節(jié)點的閾值;隱層輸入變量為hic,c=1,2,隱層輸出變量為hoc,c=1,2。
圖5 神經(jīng)網(wǎng)絡的基本原理Fig.5 Basic principle of neural network
隱層激活函數(shù)fh選用(10)式Sigmoid函數(shù),輸出層激活函數(shù)fo則選用purelin函數(shù)。
隱層的第c個節(jié)點的輸入為
隱層的第c個節(jié)點的輸出為
輸出層節(jié)點的輸入為
輸出層節(jié)點的輸出為
設(shè)定Y(k)為第k個點的縱坐標,對圖像中提取的總數(shù)為K的像素點擬合輪廓,在網(wǎng)絡反向傳播時神經(jīng)網(wǎng)絡得到的輪廓位置誤差為
式中yo(t)(k)為神經(jīng)網(wǎng)絡權(quán)值在第t次調(diào)整后得到的第k個點的縱坐標。
根據(jù)Levenberg-Marquardt 最優(yōu)化算法調(diào)整,得到最終神經(jīng)網(wǎng)絡權(quán)值。訓練直到網(wǎng)絡輸出的誤差減少到給定誤差,或進行到預先設(shè)定的訓練次數(shù)時,可以停止訓練。設(shè)定目標誤差為0.01,設(shè)定最大訓練次數(shù)為1 000次,訓練數(shù)據(jù)選取各行兩端的非高反光區(qū)域像素坐標點,確定其為曲線輪廓擬合的真實值,基于條紋輪廓真實值進行預測,最終得到激光條紋的擬合曲線如圖6所示。
圖6 輪廓擬合Fig.6 Contour fitting
分別提取光條兩邊有效像素點進行輪廓擬合,可以獲得經(jīng)過輪廓修正的激光條紋圖像,如圖7所示。
圖7 輪廓修正后的激光條紋Fig.7 Laser stripe after contour correction
如圖8所示,兩組數(shù)據(jù)分別為輪廓修正前后的激光條紋各行寬度,因反光干擾,修正前條紋各行寬度變化較大。通過BP神經(jīng)網(wǎng)絡對激光條紋的輪廓進行擬合,修正表面反光造成的光條寬度變化的部分,解決了激光條紋輪廓變形問題。
圖8 輪廓修正前后的光條寬度Fig.8 Width of light bar before and after contour correction
激光條紋反光部分輪廓已經(jīng)修正,但各像素灰度值仍未改變。此時若對光條進行中心線提取,反光區(qū)域?qū)⒋嬖诙鄻O值點的情況。本文方法通過設(shè)定自適應卷積模板修正光條灰度分布,利用條紋寬度信息生成模板對圖像進行卷積運算,獲得經(jīng)灰度分布正常的激光條紋圖像。因為線激光照射在被測物體表面后其灰度分布近似符合高斯分布,所以灰度修正系數(shù)將通過高斯函數(shù)設(shè)定。同一列中,像素修正系數(shù)由中部向列兩邊依次遞減,激光條紋圖像中任意一點p灰度修正系數(shù)表示為
式中:wn(n=0,1,…,N?1)為經(jīng)過輪廓修正的激光條紋圖像中點p所在第n列的非零灰度值像素個數(shù),即光條帶寬;N為含有非零灰度值的總列數(shù),表示激光條紋長度;mp為點p所在行數(shù);mmin為點p所在的n列中第1個非零像素點的行數(shù);б為高斯函數(shù)標準差,取值為4;δ為固定系數(shù),取值為0.95。
因為點p的灰度修正系數(shù)已經(jīng)求得,所以激光條紋上的點p修正灰度值如(17)式所示:
式中:ω″(μp,νp)為點(μ,ν)經(jīng)過灰度修正后的灰度值。
已知任意點的灰度修正系數(shù)后,可設(shè)計激光條紋圖像中任意列的灰度修正卷積模板。卷積模板的行數(shù)設(shè)為激光條紋寬度wn,列數(shù)設(shè)為1,此時激光條紋的每個截面都可生成與其截面寬度相適應的灰度修正卷積模板Tn(n=0,1,…,N?1)。由(16)式知fp的范圍在(0~1)之內(nèi),且根據(jù)光條截面寬度wn,fp在模板中間時取最高值,然后依次向兩邊遞減。激光條紋圖像中任意列n的灰度修正卷積模板為
式中Mn為激光條紋第n列含有非零灰度值的總行數(shù)。
根據(jù)激光條紋寬度生成自適應灰度修正卷積模板,在光條原始灰度分布矩陣I(β,α)上自左向右進行滑動運算,可以得到激光光條修正后的灰度分布:
式中:α為光條原始圖像中含有非零灰度值的總列數(shù);βm為第m列中含有非零灰度值的總行數(shù),且1≤m≤α;β為激光條紋各列中含有非零灰度值總行數(shù)的最大值。
對經(jīng)輪廓修正的水下核燃料棒掃描圖像進行卷積灰度修正,其結(jié)果如圖9(a)所示。
圖9 灰度修正后的激光條紋及其截面灰度分布Fig.9 Laser stripe after gray correction and section gray distribution
激光條紋反光部分灰度值過高,灰度分布改變,因此通過自適應卷積模板處理激光條紋圖像灰度,對中間高反光區(qū)域進行灰度值降低使其滿足高斯分布規(guī)律,如圖9(b)所示,與圖4(b)對比所見,獲得了良好效果。
采用灰度重心法對完成修正的光條圖像進行激光條紋亞像素中心提取。因為核燃料棒是圓柱體,所以線激光平面與核燃料棒表面相交形成的激光條紋輪廓通過單目攝像機采集后成曲線輪廓。對于非直線激光條紋的中心提取,需要在其光條截面方向進行。如圖10所示,因為光條輪廓線已確定,所以可以通過計算其輪廓線上任一像素點的切線kv,確定光條的截面方向kn。
圖10 激光截面中心Fig.10 Center of laser section
取輪廓線上一點為q,通過光條輪廓線在q點的一階導數(shù)可求得該點在光條輪廓上的切線斜率kv。此時易得出經(jīng)q點的光條截面方向斜率kn:
光條截面方向線條經(jīng)過q點后向前后方向延長,直至抵達光條邊界像素點,自適應光條寬度。通過判斷像素點所在的行向量與列向量是否與斜率kn同時相交,確定其是否被光條截面方向線條經(jīng)過。將符合條件的像素點記為一組像素點集合Xq={xh|xh=(μh,νh),h=1,2,…,H},其中H為光條截面方向斜率kn所經(jīng)過的像素點總數(shù)。q點所在截面的亞像素中心通過在該像素點集合Xq內(nèi)使用灰度重心法求解:
式中:xq為q點所在光條截面的亞像素中心橫坐標;yq為縱坐標。
采用Visio studio 2013 作為軟件開發(fā)平臺、結(jié)合OpenCV 3.0 庫及PCL 1.8.0點云庫實現(xiàn)文中方法。如圖11所示,采用的水下核燃料棒線結(jié)構(gòu)光測量平臺,搭載Mako G-507 PoE 工業(yè)相機,其分辨率為2 464(H)× 2 056(V)像素,像素尺寸為3.45 μm×3.45 μm;激光器波長為520 nm。通過經(jīng)水下標定的水下核燃料棒測量系統(tǒng)對核燃料棒尺寸進行測量。
圖11 水下核燃料棒測量系統(tǒng)Fig.11 Underwater nuclear fuel rod detection system
圖12(a)~12(c)分別選用傳統(tǒng)灰度重心法、基于最小二乘擬合中心提取算法[18]和文中算法進行激光條紋中心提取。從圖12(a)可以看出,傳統(tǒng)灰度重心法提取的光條中心線條受反光影響,光條中心點存在前后錯開的現(xiàn)象,線條不連續(xù);圖12(b)中基于最小二乘擬合中心提取算法對光條進行提取,光條中心線條連續(xù)性增加,但由于其提取的中心點與擬合中心點重合不足,存在線條中心不唯一的情況,容易產(chǎn)生噪點;圖12(c)為文中算法,算法充分利用了光條的有效數(shù)據(jù),光條中心線條連續(xù)性較好,更客觀地反映了光條中心分布情況。
圖12 不同激光條紋中心提取方法對比Fig.12 Comparison of different laser stripe center extraction methods
使用3種算法提取激光條紋中心線后生成點云進行對比。圖13(a)點云為傳統(tǒng)灰度重心法生成,圖13(b)點云為基于最小二乘擬合中心提取算法生成,圖13(c)點云為文中算法生成。結(jié)構(gòu)光中心線提取不準確,將導致通過圖像坐標點求解出的三維坐標發(fā)生較大偏差,產(chǎn)生點云離群現(xiàn)象??梢钥闯觯ㄟ^傳統(tǒng)灰度重心法和基于最小二乘擬合中心提取算法得到的點云含有較多的離群噪點,被測物體各部分的反光導致多數(shù)截面光條中心線條出現(xiàn)斷點和噪點,這些會影響點云測量的準確性;通過文中算法解決因反光造成的結(jié)構(gòu)光中心線提取不準的現(xiàn)象,可以明顯看到所獲得的點云大量噪點被消除,圓柱點云表面更加光滑。
圖13 點云計算結(jié)果Fig.13 Calculation results of point cloud
通過對10組測量提取的激光條紋中心線生成的點云進行直徑測量,與核燃料棒人工采用游標卡尺測量的結(jié)果進行比對。表1所示為10組擬合直徑統(tǒng)計結(jié)果。針對水下核燃料棒檢測要求,測量數(shù)據(jù)應保持高精度與穩(wěn)定性,傳統(tǒng)灰度重心法在水下測量中穩(wěn)定性較好,但是其測量數(shù)據(jù)誤差較大,基于最小二乘擬合中心提取算法的測量數(shù)據(jù)的最大誤差和平均誤差有所減少,但是其穩(wěn)定性不足。文中算法相較于傳統(tǒng)灰度重心法和基于最小二乘擬合中心提取算法平均誤差明顯降低,分別為97%和89%,測量穩(wěn)定性分別提高9%和33%,測量效果良好,擬合圓柱的誤差在0.2 mm 以內(nèi)??梢钥闯觯闹刑岢龅乃惴軌蛴行p少核燃料棒水下測量的噪聲,具有較好的穩(wěn)定性和精確性。
表1 核燃料棒測量結(jié)果Table1 Measurement results of nuclear fuel rod mm
針對水下核燃料棒檢測過程中激光條紋受水下環(huán)境噪聲及反光影響的問題,本文根據(jù)激光條紋特征提出了結(jié)合BP神經(jīng)網(wǎng)絡輪廓擬合與卷積運算的自適應激光條紋亞像素中心提取方法。文中算法通過對核燃料棒反光部分的幾何特性與灰度特征進行自適應修正,實現(xiàn)了水下核燃料棒表面激光條紋中心線的高精度提取。實驗證明,使用該方法實現(xiàn)了在水下測量650 mm 處燃料棒尺寸誤差控制在0.3 mm 以內(nèi)。與其他算法進行比較,平均誤差分別降低97%和89%,穩(wěn)定性分別提高9%和33%,驗證了該算法測量的精確性和魯棒性。文中算法對于核燃料棒尺寸的準確測量,保證核燃料組件安全運行具有重要意義。