梁智濱, 吳鵬飛, 李靈巧,3, 楊輝華,3
(1.桂林電子科技大學 電子工程與自動化學院,廣西 桂林 541004;2.桂林電子科技大學 計算機與信息安全學院,廣西 桂林 541004;3.北京郵電大學 人工智能學院,北京 100876)
電子接插件作為可分離式元件在電子系統(tǒng)中起著至關(guān)重要的作用[1],是電子系統(tǒng)中信號與功率的重要載體,必須對裝配前的電子接插件進行嚴格的質(zhì)量檢測。視覺檢測作為一種非接觸式的自動檢測技術(shù),具有高精度、高效率的優(yōu)點,在汽車電子工業(yè)的自動檢測領(lǐng)域得到了廣泛應(yīng)用[2]。
接插件的插針圖像是基于陣列橢圓的灰度圖像,橢圓中心作為期望的金屬插針的位置特征點[3],直接影響插針位置度的檢測精度。目前,常用的圓形特征點定位方法包括灰度質(zhì)心法、Hough變換法[4]、模板匹配法、邊緣檢測法[5]等像素級檢測方法。Georgescu等[6]使用二階Riesz分數(shù)導(dǎo)數(shù)推廣了一些經(jīng)典的邊緣檢測器,利用分數(shù)微分法的優(yōu)勢克服了Robert、Prewitt和Sobel等傳統(tǒng)算子的缺點。傳統(tǒng)的像素級檢測方法已經(jīng)難以適應(yīng)如今工業(yè)上高精度的檢測要求。因此,針對亞像素邊緣檢測算法的研究被廣泛關(guān)注。亞像素邊緣檢測原理是通過對邊緣附近的像素進行細分來實現(xiàn)精確的邊緣定位。常用的亞像素邊緣檢測方法有插值法、擬合法和矩方法。其中,插值法相對簡單,但易受噪聲的影響;擬合法可以獲得更好的邊緣,但計算量相對較大,所需的模型也更加復(fù)雜;矩方法相比插值法和擬合法具有較好的抗噪性和高效性,被廣泛應(yīng)用于高精度檢測系統(tǒng)[7]。Tabatabai等[8]采用三階灰度矩的邊緣檢測方法,實現(xiàn)了亞像素檢測精度,該方法以閉合形式提供邊緣位置,且無需插值或迭代,不受加性和乘性灰度變化的影響。Lyvers等[9]提出一種基于空間矩的方法,利用空間矩和邊緣階躍參數(shù)確定邊緣位置。雖然文獻[8-9]的方法具有較高的精度,但計算量太大,只適合信息量小的圖像。Ghosal等[10]提出一種基于Zernike正交矩的亞像素定位算法,僅需3個Zernike矩便可獲得邊緣相關(guān)參數(shù),能以較低的計算量獲得較高的精度,但該算法在判斷邊緣時需要通過人工調(diào)整來選擇閾值,不僅效率低下,且容易誤判,嚴重影響檢測的精度。Peng等[11]提出一種新的基于邊緣梯度方向插值和Zernike正交矩的子像素邊緣檢測方法,大大提高了邊緣檢測的精度,在圖像中存在復(fù)雜邊緣時,避免了邊緣干擾。Liu等[12]針對邊緣檢測的快速、高精度要求,提出一種快速亞像素邊緣檢測方法,利用Otsu閾值進行背景分割,并使用Zernike矩計算邊緣點的梯度方向。張曉林等[13]利用被測物的幾何信息,只使用零階矩實現(xiàn)了對邊緣的亞像素定位,大幅減少了運算量。Duan等[14]提出了一種基于高斯積分模型的亞像素邊緣檢測算法。這些改進的檢測算法主要集中在亞像素邊緣檢測,卻未保留傳統(tǒng)像素級邊緣檢測的速度快和計算復(fù)雜度低的優(yōu)點。為此,提出一種基于改進的Zernike矩邊緣檢測方法,結(jié)合均值漂移以實現(xiàn)插針位置度的亞像素檢測。
Zernike矩是一種復(fù)正交矩陣,其核心是在極坐標空間中定義在單位圓(x2+y2=1)內(nèi)的一組由復(fù)多項式表示的完全正交基。圖像f(x,y)的n階m次Zernike矩可定義為
(1)
基于Zernike矩的亞像素邊緣定位原理是通過圖像的3個不同階的Zernike矩計算模型的4個參數(shù),將這些參數(shù)與設(shè)定的閾值比較,從而準確定位圖像的邊緣。假設(shè)單位圓的中心點在圖像的某個像素點,并且圖像的邊緣穿過該圓,從而創(chuàng)建理想的邊緣階躍模型。Zernike矩的理想邊緣模型如圖1所示。
圖1 Zernike矩的理想邊緣模型
圖1中,h為圖像背景灰度,k為灰度差,陰影部分的灰度為h+k,D為理想邊緣,ab、cd表示在不同階次的Zernike矩下的圖像邊緣,l1、l2分別為原點到ab、cd的垂直距離,lD為原點到邊緣的垂直距離,φ為l與x軸的夾角。將圖像順時針旋轉(zhuǎn)φ,旋轉(zhuǎn)后的圖像與y軸平行。旋轉(zhuǎn)后的圖像關(guān)于x軸對稱,可表示為
(2)
(3)
圖像的旋轉(zhuǎn)角度為
(4)
(5)
與A00、A11、A20對應(yīng)的積分和函數(shù)分別為V00=1,V11=x+jy,V20=2x2+2y2-1。旋轉(zhuǎn)圖像的Zernike矩的推導(dǎo)如下:
(6)
(7)
(8)
結(jié)合式(6)~(8)及l(fā)、k、h可推導(dǎo)出
(9)
(10)
(11)
由此圖像的亞像素邊緣為
(12)
其中,(xs,ys)為亞像素邊緣坐標,(x,y)為像素級邊緣位置。
針對圖像的Zernike亞像素邊緣檢測,需要將不同階的Zernike模板在圖像上逐像素移動,再與其相對應(yīng)的像素進行卷積操作,得到不同的Zernike矩,通過圖像的Zernike矩計算各像素所對應(yīng)的l、k、h、φ參數(shù),用以判斷該點是否屬于邊緣點。傳統(tǒng)算法采用5×5像素的Zernike模板系數(shù)進行邊緣檢測,存在檢測結(jié)果定位精度低、邊緣較粗的問題。本模型采用7×7像素的Zernike模板系數(shù),更大的Zernike矩邊緣算子可相應(yīng)提高邊緣定位精度,噪聲抑制能力也會相應(yīng)增強,從而提高檢測精度。
令圖像f(x,y)=1,根據(jù)式(1)記Anm的模板為Mnm,則有
(13)
單位圓被7×7像素模板劃分,如圖3所示。
圖2 7×7像素模板
設(shè)圓x2+y2≤1所圍成的面積為C,圖2中第i行、第j列的正方形面積為Sij,對應(yīng)的積分域表示為ωij=C∩Sij,由此可計算第i行、第j列的模板系數(shù)
(14)
通過式(13)、(14)可計算出7×7的模板系數(shù)A00、A11、A20、A31、A40。由于邊緣點的判斷和計算只需參數(shù)l、k、h、φ,根據(jù)式(4)、(9)~(11)可知,僅需計算A00、A11、A20即可。
由于未考慮模板放大效應(yīng),式(12)在實際計算亞像素邊緣坐標時會產(chǎn)生偏差。假設(shè)模板是N×N,上述亞像素邊緣公式的推導(dǎo)和模板系數(shù)的計算均在單位圓內(nèi)進行,而實際上模板在圖像上移動并與相對應(yīng)的像素進行卷積操作,在模板中心周圍被N2像素覆蓋,單位圓的半徑變?yōu)镹/2。因此,距離l在單位圓上計算的值應(yīng)放大N/2倍,并轉(zhuǎn)換為N×N模板所需的形式。亞像素邊緣坐標公式修改為
(15)
單個接插件含有27根插針,為準確定位各插針的精確位置,需要對檢測到的所有插針邊緣點進行聚類,從而分離出單根插針的所有邊緣點。
在d維空間Rd,給定n個數(shù)據(jù)采樣點集{xi,i=1,2,…,n},由核函數(shù)K(x)和窗口半徑h得到多元核密度估計函數(shù)為
(16)
徑向?qū)ΨQ核函數(shù)K(x)滿足
K(x)=ck,dk(‖x‖2),
(17)
(18)
(19)
meanshift矢量
(20)
由式(20)可知,均值漂移向量所指的方向是密度增加最大的方向。插針分類流程為:
1)計算檢測到的每個亞像素坐標的均值漂移向量mh,G(x);
2)對每個坐標點mh,G(x)進行平移,xi=xi+mh,G(xi);
3)重復(fù)步驟1)、2),直到亞像素坐標點收斂,即mh,G(x)=0;
4)收斂到相同點的亞像素坐標被歸為同一插針簇。
由于插針金屬材質(zhì)的高反光特性,在補光燈照射下,攝像機成的像是橢圓形的白色亮斑。由于使用了更大尺寸的7×7模板,計算量會大幅增加。為減少計算量、提高檢測效率,通過圖像預(yù)處理將插針與背景分離,獲得只保留插針點基本輪廓的灰度圖像;使用Canny算子對預(yù)處理圖像進行邊緣粗定位,提取插針ROI;基于改進的Zernike矩對插針邊緣進行亞像素精確定位,獲得邊緣亞像素坐標點集;為分離出每根插針,采用meanshift對所有亞像素坐標進行聚類;最后采用非線性最小二乘法建立橢圓參數(shù)的優(yōu)化目標函數(shù),對每根插針所含坐標進行橢圓擬合,求解每根插針的中心點坐標,從而實現(xiàn)插針位置的精確定位。插針位置度檢測流程如圖3所示,亞像素檢測流程如圖4所示。
圖3 插針位置度檢測流程
圖4 亞像素檢測流程
檢測具體步驟為:
1)使用工業(yè)相機對汽車電子接插件拍攝灰度圖像,采用高斯濾波核對圖像去噪,分離圖像前后景,保留只含插針的圖像。
2)Canny算子對預(yù)處理圖像進行邊緣粗定位,提取插針ROI,獲得邊緣點像素集合{P}。
3)計算7×7的Zernike模板系數(shù)M00、M11、M20、M31、M40,將該模板系數(shù)與邊緣點集合{S}進行卷積操作,計算得到A00、A11、A20、A31、A40矩。
4)從集合{P}中逐一取出第i個像素點Pi,根據(jù)式(4)、(9)、(10)計算相應(yīng)的邊緣參數(shù)。
5)判斷邊緣Pi是否滿足參數(shù)閾值條件,若不滿足則將該點從邊緣集合{P}中刪除,并繼續(xù)檢測下一個邊緣點;將滿足條件的點根據(jù)式(15)計算其亞像素邊緣坐標,繼續(xù)判斷該點亞像素坐標是否滿足條件(取值為0.5像素)。將滿足上述條件的亞像素邊緣點保存到點集{S}。
6)采用meanshift對亞像素邊緣點集{S}進行聚類,將邊緣點集{S}分成K類,提取每根插針的ROI。本接插件圖像中插針共27根,根據(jù)實際的接插件圖像將meanshift的窗口搜索半徑w設(shè)置為25像素,可將亞像素邊緣點集{S}分為27個類K1,K2,…,K27,每個類包含若干個亞像素邊緣點坐標。
7)遍歷每個類Ki,根據(jù)最小二乘法,針對該類所含的亞像素邊緣坐標建立橢圓的一般方程,進而求解橢圓參數(shù),得到橢圓圓心(x,y),以此精確定位插針的位置。
圖5 仿真圖像邊緣檢測結(jié)果比較
實驗2目的是測試本方法對圖像邊緣的亞像素坐標的檢測精度。表1為檢測仿真圓測試圖像的部分邊緣數(shù)據(jù)。從表1可看出,使用5×5模板的Ghosal算法檢測精度可控制在0.5像素內(nèi),使用改進模板的7×7 Zernike矩方法可將檢測精度提高0.2像素,達到0.3像素內(nèi)。本方法使用更大的模板和優(yōu)化閾值判定條件,將邊緣檢測精度提高到0.1像素內(nèi)。此外,在單張測試圖像的計算耗時方面,Ghosal算法耗時541 ms,改進模板方法耗時559 ms,本方法耗時603 ms,3種方法所需的計算時間相差不大,說明本方法只增加少量時間成本,但具有更高的檢測精度。
表1 仿真圓測試圖像部分檢測坐標
實驗3目的是測試噪聲的敏感度。由于實際圖像的采集過程中對光照變化的非絕對可控、相機發(fā)熱及鏡頭成像所帶來的噪聲會影響邊緣的檢測精度,使得插針位置的定位精度受到影響。為盡可能模擬真實使用環(huán)境,由軟件生成指定橢圓中心坐標的插針模擬圖像,并對模擬圖像加入噪聲系數(shù)為σ=0.002和σ=0.004的高斯白噪聲。圖6為加入σ=0.004高斯白噪聲插針模擬圖。利用本方法對模擬圖像進行邊緣提取,對獲取的邊緣坐標使用meanshift將插針進行分類,利用橢圓最小二乘法對坐標進行中心擬合。
圖6 混合高斯白噪聲插針模擬圖
表2為仿真測試圖定位精度對比。從表2可看出:本算法對模擬圖像的絕對均值誤差和方差都最小;在添加噪聲系數(shù)為0.002和0.004的圖像中,本方法相對Ghosal算法的5×5模板系數(shù)和改進模板系數(shù)的方法,絕對均值誤差及方差都是最小的。說明本方法抗噪性能較好,具有良好的穩(wěn)定性。
表2 仿真測試圖定位精度對比
圖7為實際拍攝獲得的接插件插針區(qū)域圖像。使用本方法對插針圖像進行邊緣檢測,邊緣定位結(jié)果如圖8所示。從圖8放大的插針邊緣檢測圖像可看出,使用本方法檢測的插針邊緣,在插針與圖像背景的灰度過渡像素區(qū)域準確描繪了亞像素邊緣位置以及預(yù)測的邊緣方向,插針邊緣定位達到亞像素等級。
圖7 接插件插針檢測原圖
圖8 插針邊緣定位結(jié)果
對提取的插針邊緣坐標使用meanshift聚類分離單個插針ROI的邊緣坐標,采用最小二乘法進行橢圓擬合,獲得插針中心,分別計算每個插針中心的標準差。由于插針數(shù)量過多,僅列出圖8中放大顯示的6個插針點的標準差數(shù)據(jù),檢測結(jié)果如表3所示。x坐標和y坐標的最大標準偏差值均小于0.2像素。因此,本方法適用于接插件的插針位置檢測,針對一般的視覺檢測任務(wù)具有較高的檢測精度和穩(wěn)定性。
表3 插針位置標準差
在汽車電子接插件的視覺檢測系統(tǒng)中,針對接插件插針位置度的高精度檢測,在傳統(tǒng)Zernike矩方法基礎(chǔ)上,提出了一種基于改進Zernike矩和meanshift聚類的汽車電子接插件亞像素位置度檢測方法。通過改進傳統(tǒng)Zernike矩模板系數(shù),提高亞像素檢測精度;同時為了精確定位接插件每根插針的位置,采用meanshift聚類算法對插針進行單根插針ROI提取,并采用最小二乘法橢圓擬合出中心坐標。實驗結(jié)果表明,本方法不僅能準確檢測插針的亞像素邊緣,且邊緣檢測精度小于0.2像素。本方法對噪聲敏感度較低,具有較強的抗噪性,能適用于一般的視覺檢測環(huán)境,滿足實際生產(chǎn)檢測要求,對提高接插件生產(chǎn)質(zhì)量有重要意義。