熊雪琴, 王湘江
(南華大學(xué) 機械工程學(xué)院, 湖南 衡陽 421001)
為了保證核電站反應(yīng)堆安全運行,運營商會對蒸汽發(fā)生器進行檢修工作,安裝堵板是蒸發(fā)器水室內(nèi)檢修作業(yè)的前提條件,要順利完成檢修工作需先確定堵口位置[1]。根據(jù)核電工業(yè)發(fā)展趨勢,未來,視覺機器人將會取代人工完成堵板安裝工作。視覺機器人代替人工作業(yè)同樣面臨高輻射問題,因此需要一套滿足定位精度又快速的堵口及螺釘孔圓心的定位算法。根據(jù)課題研發(fā)小組需求,要想實現(xiàn)機械化自動安裝堵板,需要先解決堵口和螺釘孔的視覺定位問題。
核電蒸汽發(fā)生器水室內(nèi)堵口端面的形狀信息如圖1所示,主要由堵口圓孔和緊固用的螺釘孔組成,且堵口圓與螺釘孔圓心所在圓同心。由于實物成像大小與物體距離相機的距離成反比,在空間足夠?qū)挸ǖ那闆r下,相機感光芯片可以直接獲取堵口全局視野圖像,對堵口圖像做Hough圓檢測即可得到圓心坐標(biāo),但蒸汽發(fā)生器水室外形如圖2所示,上部封閉,內(nèi)部空間狹小,且堵口圓與螺釘孔圓尺寸差距大,即使能夠獲取到堵口全局圖像,卻難以檢測到清晰的螺釘孔圓特征,因此采用基于螺釘孔圓心的輔助法定位堵口圓心,可以同時得到堵口與螺釘孔坐標(biāo)。
檢測圓形物體位置的常用方法如下:霍夫變換、模板匹配、小波變換方法、梯度矢量流(GVF)模型及最小二乘法,Hough變換圓檢測是最常用的圓特征檢測方法[2]。經(jīng)典的霍夫變換圓檢測算法很容易檢測到圓心,何立新等人[3]利用經(jīng)典的Hough變換檢測分別對圓形閥門把手的直線段特征和圓形特征進行檢測,實驗結(jié)果表明該方法檢測與定位精度達90.7%;許益成等人[2]對圓形車燈進行檢測,通過對預(yù)處理后的圖像進行Hough圓識別,該方法對夜間車輛的位置檢測效果很好;孫曉敏等人[4]首先采用Canny邊緣檢測檢測圓,做非圓篩選后用,用改進的Hough變換檢測求取特征圓的半徑參數(shù)和圓心參數(shù),該方法精度高、實時性好且抗噪性能好。
圖1 核電蒸汽發(fā)生器水室內(nèi)部堵口
Fig. 1 Plug in water chamber of nuclear power steam generator
圖2 核電蒸汽發(fā)生器水室外觀
Fig.2 Appearance of water chamber of nuclear power steam generator
基于多點坐標(biāo)求圓心法的方法中,常用的有最小二乘圓求解法、弦中點法。朱正偉等人[5]對Hough圓檢測算法進行改進,將圖像預(yù)處理得到的輪廓點隨機抽樣,對抽樣點的領(lǐng)域內(nèi)做最小二乘圓擬合,該方法減少了計算量,實現(xiàn)快速檢測圓;朱嘉等人[6]利用圓心約束對最小二乘擬合法改進,使得短圓弧測量精度高,速度快;王磊等人[7]提出的基于弦中點Hough變換的同心圓檢測方法,對像素點進行弦中點和半徑參量累加統(tǒng)計,得到最終檢測圓的圓心和半徑,使計算過程簡化。譚永[8]改進了基于最小二乘圓擬合的圓提取方法,縮短對特征目標(biāo)的提取時間。
高精度的最小二乘擬合法,是對一些列點的誤差和的偏導(dǎo)求極值,計算量龐大;弦中點法計算方法復(fù)雜,為了減少機器人輻照時間和提高系統(tǒng)實時性,本文直接采用Hough圓檢測螺釘孔位置,利用檢測到的螺釘孔坐標(biāo)先快速求出螺釘孔位置圓半徑R,再取兩點解方程得到2個圓心(m1,n1)、(m2,n2),經(jīng)第三點坐標(biāo)約束,確定唯一圓心坐標(biāo),與其他圓求解方法相比,在保證精度的前提下大幅減少圓心檢測時間。
本文提出的核電廠蒸汽發(fā)生器水室堵口圓心定位的詳細流程如圖3所示。其中,i表示檢測到的螺釘孔的數(shù)量,(ui,vi)表示螺釘孔端面圓心像素坐標(biāo),(x,y)表示蒸發(fā)器水室堵口端面圓心的像素坐標(biāo),R表示螺釘孔位置圓圓心所在圓的像素半徑。蒸發(fā)器水室內(nèi)環(huán)境惡劣、復(fù)雜,在直接進行圓特征檢測前一般會對圖像進行預(yù)處理,其主要處理步驟如下:
(1)非線性雙邊濾波:對干擾噪聲的去除,同時較好地保持輪廓邊緣;
(2)形態(tài)學(xué)開運算處理:消除細微噪聲、在纖小點處分開目標(biāo)信息、模糊大物體邊界、降低分辨率,且較好保留原區(qū)域。
(3)自適應(yīng)閾值化:針對同幅圖像上不同部位亮度不一致問題,自動計算每個小區(qū)域的最佳閾值。
(4)Hough變換圓檢測:直接檢測到圓形目標(biāo)的圓心與半徑值。
(5)快速圓心定位:對檢測到的螺釘孔坐標(biāo)計算,快速求解堵口圓心坐標(biāo)。
圖3 核電蒸汽發(fā)生器水室堵口圓心定位流程圖
霍夫變換魯棒性強,不僅對噪聲不敏感,而且還能夠檢測部分缺失或略微變形的形狀。在利用機械視覺對堵口和螺釘孔端面圓心定位的方法中,對螺釘孔端面圓心檢測是難點、也重點之一。由于蒸發(fā)器水室內(nèi)部環(huán)境限制,通過獲取堵口局部圖像,對其進行Hough變換圓檢測,求解其圓心坐標(biāo)和半徑。
Hough變換檢測方法中,常用到參數(shù)空間與圖像空間,在參數(shù)空間里,任意一條解析曲線的表達式如下所示:
f[(a1,ax...,an),(x,y)]=0,
(1)
其中,a1,ax...,an是曲線的特征參數(shù),將式(1)中特征參數(shù)與變量x,y對換,則式(1)轉(zhuǎn)化成:
g[(x,y),(a1,ax,...,an)]=0,
(2)
可以用公式(2)解釋圖像空間中相同分析曲線上的點由(2)變換, 映射成參數(shù)空間的一點,該點由特征參數(shù)a1,ax...,an確定。因此,對參數(shù)空間中各參數(shù)點的累積值的判斷,可以實現(xiàn)在圖像空間中對分析曲線的描述。
假設(shè),在像空間中,滿足圓性質(zhì)的點集合(xi,yi)(i=1,2,3...n)可以用其一般式(3)表示:
(x-a)2+(y-b)2=r2,
(3)
所以,在參數(shù)空間中,圖像空間中的點集的表達式為:
(a-xi)2+(b-yi)2=r2.
(4)
公式(4)可以解釋為,圖像空間中二維點x,y轉(zhuǎn)換成的立體參數(shù)空間圓心點(a,b)和半徑r,并且圖像空間上的點(xi,yi) 與三維空間圓錐面相對應(yīng);滿足圓周條件的圖像空間中的點在三維參數(shù)空間為一個錐面,因此,則有如圖4所示圓錐表面簇在三維空間形成。
對圓心(a,b)和半徑r的識別,需要先創(chuàng)建r閾值(rmin,rmax),在圖像空間中,形成圓的多個點經(jīng)過等式(4)變換,以得到參數(shù)空間參數(shù)(a,b,r),這些圓必定相交于一個點,即圓心(a,b);設(shè)置變量,對局部交點處圓的個數(shù)統(tǒng)計,設(shè)置三維累加器A(a,b,r),取各個局部最大值A(chǔ)max(a,b,r),計算得到的(a,b)為圓心,r為半徑。
堵口圓心不能直接檢測定位,以周圍螺釘孔中心位置圓與堵口圓同心這一特性為輔助,對堵口圓心坐標(biāo)進行計算。如圖5所示,假設(shè)Hough圓檢測到螺釘孔圓心有A、B、C三點,坐標(biāo)分別為(x1,y1)、(x2,y2)、(x3,y3),點M(m1,n1)、N(m2,n2)為以A、B點計算得到的圓心,C為圓心最終定位的約束點。
圖5 圓心求解示意圖
(5)
得到螺釘孔中心位置圓半徑后,取其中兩點A(x1,y1)、B(x2,y2)坐標(biāo),根據(jù)一般情況下圓的數(shù)學(xué)公式(x-m)2+(y-m)2=R2有:
(6)
這里,令:
(7)
兩式相減得到m,n的關(guān)系式如式(8)所示:
(8)
m,n關(guān)系可用式(9)表達,繼而把式(9)代入A點圓方程得到以n為未知量的一元二次方程式(10)。詳見如下:
m=C1-nC2,
(9)
(C22+1)n2+(2x1C2-2C1C2-2y1)n+
(x12-2x1C1+C12+y12-R2)=0,
(10)
此處令a=C22+1,b=2x1C2-2C1C2-2y,c=x12-2x1C12+y12-R2根據(jù)標(biāo)準(zhǔn)的二次方程求解得到式(11),代入式(9)得到式(12):
(11)
(12)
以C(x3,y3)為約束點,判斷C點到圓心M(m1,n1)和N(m2,n2)距離與半徑R的差的絕對值大小,即當(dāng)t>0時取點N為圓心,否則取點M。此時需用到如下數(shù)學(xué)公式:
(13)
實驗平臺搭建如圖6所示,主要由相機、堵口簡化模型及圖片數(shù)據(jù)處理系統(tǒng)組成。相機采用的是魔客仕UC30,照片取樣圖像分辨率640×480,幀率60 fps;由于真實的核電蒸汽發(fā)生器水室內(nèi)部圖片難以獲得,采用圖6中的特制圓環(huán)模擬堵口端面形狀;圖片數(shù)據(jù)處理系統(tǒng)是基于Windows7的Visual Studio2015及OpenCV3.0。
圖6 實驗平臺
如圖7所示,隨機采取11張不同位姿的堵口局部圖片進行試驗。把這11 張圖片進行Hough變換圓識別,對檢測到的螺釘孔圓心坐標(biāo)進行圓心求解,隨機選取一張本文提出的半徑法識別圓心的快速定位方法檢測效果圖,如圖8所示。該方法能夠有效擬合出螺釘孔中心位置圓,輸出堵口圓心坐標(biāo)。最后,將最小二乘圓求解算法和基于弦中點圓求解法與本文提出的快速圓心定位算法進行對比,3種方法檢測的數(shù)據(jù)結(jié)果見表1。表1中,坐標(biāo)和R均為像素值。研究中,比較檢測到的圓心坐標(biāo)和運算時間,可推得先半徑法具有可行性和耗時少兩個優(yōu)點,對此可做分析闡述如下。
圖7 堵口模型局部隨機圖像
(a) 檢測效果
(b) 計算結(jié)果圖
表1 3種方法檢測結(jié)果數(shù)據(jù)
(1)可行性。假設(shè)ABC分別表示最小二乘法、弦中點法、先半徑法;j=1,2…,11表示圖號,(xAj,yAj),(xBj,yBj),(xCj,yCj)為第j張圖用A,B,C法檢測到的圓心坐標(biāo)。由于最小二乘法圓擬合算法是一種經(jīng)典的高精度擬合算法,現(xiàn)已廣泛應(yīng)用在各種場合,以其檢測到的圓心坐標(biāo)為參照,分別計算弦中點法和先半徑法檢測到的11組圓心距離的和,比較其大小,來分析先半徑法的可行性。如式(14)所示:
(14)
其中,d1為弦中點法與最小二乘法的計算值,d2為先半徑法與最小二乘法的計算值。
經(jīng)計算知d1≈d2≈6.305 3,相當(dāng)于6.3個像素值,觀察數(shù)據(jù)分布知偏差主要來自圖7(4),去除圖7(4)后的數(shù)據(jù)得d1≈d2≈0.003 3,接近于0,可以認(rèn)為圖7(4)的最小二乘法計算上出現(xiàn)錯誤,排除錯誤后先半徑法與最下二乘法檢測到的圓心坐標(biāo)非常接近,說明數(shù)據(jù)達到精度要求,算法可行。
(2)耗時少。如圖9所示,用3種方法對每張圖計算時間進行對比,本文提出的先半徑法檢測耗時穩(wěn)定,除了圖7(3),其余圖計算都比最小二乘法和弦中點法耗時短,對其平均值進行比較,本文提出的先半徑法相對于最小二乘法,單幀圖像在處理速度上提升21.4%,相對于弦中點法提升了33.3%,能夠在蒸發(fā)器堵口定位過程中有效減少機器人受輻照時間。
圖9 3種方法耗時對比
本文提出的快速圓心定位算法,是基于Hough變換檢測的圓心坐標(biāo)基礎(chǔ)上求解堵口圓心坐標(biāo),充分利用了三點快速求半徑R的作用,已知半徑R后只需聯(lián)立方程求解,以第三個點做約束,通過判斷圓心與第三點距離大小確定最終圓心,而最小二乘圓擬合算法著重于誤差較小的高精度擬合,其對和的偏導(dǎo)計算內(nèi)容龐大;基于弦中點的圓心求解需要求取2個以上的直線方程再聯(lián)立求解交點,計算過程復(fù)雜。實驗證明,與最小二乘法和弦中點法相比,證明了本文提出的堵口圓心定位方法可行,對比前兩者,計算速度分別提升21.4%和33.3%,且單張圖像計算耗時穩(wěn)定,能夠在實際應(yīng)用中大大減少機器人在核電蒸汽發(fā)生器內(nèi)受輻照時間。