俞 洋,金 彬
(江蘇理工學(xué)院電氣信息工程學(xué)院,江蘇常州 213001)
傳統(tǒng)的接插件尺寸測(cè)量方法,主要測(cè)量對(duì)象為普通尺寸或中大型工件,公差允許范圍較大。目前接插件正在向小型化、微型化方向發(fā)展,傳統(tǒng)測(cè)量方法在對(duì)微型電子接插件進(jìn)行檢測(cè)時(shí),測(cè)量的核心環(huán)節(jié)還需要人工,一定程度上降低了檢測(cè)效率[1]。由于微型電子接插件具有尺寸小、質(zhì)量輕等特點(diǎn),少量的微塵或圖像陰影就可能造成數(shù)個(gè)像素點(diǎn)的偏差,從而導(dǎo)致測(cè)量結(jié)果不準(zhǔn)確[2]。傳統(tǒng)方法提高測(cè)量精度主要依靠環(huán)境無塵化以及鏡頭、照明設(shè)備的更新升級(jí),代價(jià)較高。
本文提出一種新的微型電子接插件尺寸測(cè)量方法,提高了檢測(cè)精度,保證產(chǎn)品的質(zhì)量。本方法通過改進(jìn)算法,解決了部分因微塵或光線陰影造成的邊緣判定不準(zhǔn)確導(dǎo)致的測(cè)量結(jié)果偏差大的問題,從而提高了尺寸測(cè)量的準(zhǔn)確度。
本文提出的微型電子接插件尺寸測(cè)量方法,將相機(jī)采集到的圖片進(jìn)行處理,獲取待測(cè)工件的邊緣,并測(cè)算待測(cè)距離,將測(cè)量結(jié)果保存到JSON 文本中。微型電子接插件尺寸測(cè)量流程圖如圖1 所示。首先獲取相機(jī)采集到的圖像,并進(jìn)行模板匹配,獲取待測(cè)區(qū)域;其次,對(duì)待測(cè)區(qū)域進(jìn)行圖像濾波;接著,對(duì)濾波后的待測(cè)區(qū)域進(jìn)行邊緣檢測(cè),獲取微型電子接插件的邊緣;然后對(duì)獲取的邊緣進(jìn)行最小二乘法擬合;利用相機(jī)的校準(zhǔn)與標(biāo)定結(jié)果,對(duì)圖片進(jìn)行校正,并測(cè)量最終尺寸。最后,將測(cè)量結(jié)果保存為JSON格式。
圖1 微型電子接插件尺寸測(cè)量流程圖
模板匹配也稱為像素的模板匹配方法,是一種比較新型的圖像輪廓的檢測(cè)和識(shí)別方法[3]。在獲取相機(jī)拍攝的圖片后,通過模板匹配算法,將待測(cè)量區(qū)域找出,縮小圖像處理的區(qū)域,從而提高后續(xù)圖像處理流程的速度。
傳統(tǒng)模板匹配算法需要各種角度旋轉(zhuǎn)模板以達(dá)到匹配,速度較慢[4]。考慮到微型電子接插件在各生產(chǎn)流程中自帶的料帶孔、定位孔的特點(diǎn),本文提出了一種基于圖形的金字塔模板匹配算法,可以快速定位料帶孔、定位孔以及其他定位圖形的位置,進(jìn)而定位待測(cè)件的位置,提高了模板匹配的速度。
新的模板匹配具體步驟如下:首先,算法采用2 ×2 均值濾波方法生成4 層圖像金字塔;再使用3 ×3Prewit算子計(jì)算各層金字塔圖像所對(duì)應(yīng)的向量圖;在頂層圖像中進(jìn)行基于形狀的模板匹配,將最高層金字塔匹配所得信息帶入低層金字塔跟蹤匹配,并作必要的篩選,最后在底層金字塔圖像進(jìn)行基于形狀的模板匹配,獲取輔助定位圖形的可能位置。
定位到輔助定位圖形候選位置后,對(duì)候選位置進(jìn)行篩選,以沖壓料帶為例,篩選原則為同一直線上的相同大小候選孔為真實(shí)定位孔。再以真實(shí)定位孔為定位基準(zhǔn),精確定位到待測(cè)區(qū)域,并進(jìn)行待測(cè)區(qū)提取。
圖像邊緣檢測(cè)是圖像分析與檢測(cè)的前提,其原理是提取目標(biāo)與背景之間的邊界信息[5],準(zhǔn)確提取出圖像邊緣。在眾多傳統(tǒng)邊緣檢測(cè)算子中,Canny 算法的檢測(cè)結(jié)果包含了圖像更多邊緣信息,能夠取得更好的檢測(cè)效果[6]。但傳統(tǒng)Canny算法邊緣檢測(cè)極易受到噪聲及光照變化等因素的影響,需采用高斯濾波器平滑圖像,而如此一來會(huì)導(dǎo)致圖像過于平滑,繼而引發(fā)邊緣模糊與細(xì)節(jié)丟失。目前已經(jīng)有許多研究者為此做出了改進(jìn),比如:自適應(yīng)高斯濾波器、形態(tài)學(xué)濾波、自適應(yīng)閾值、自適應(yīng)中值濾波等等[7-9]。本文在自適應(yīng)閾值Canny算法上進(jìn)行了改進(jìn)。
改進(jìn)的Canny 算法流程如圖2 所示,首先對(duì)圖像進(jìn)行濾波,在盡可能保持邊緣特性的前提下濾除噪聲,從而獲取較為理想的待測(cè)圖片。然后對(duì)圖像進(jìn)行梯度幅值與梯度方向計(jì)算,獲得待測(cè)區(qū)域的梯度圖。再對(duì)像素點(diǎn)進(jìn)行非極大值抑制,獲取邊緣點(diǎn)。隨后采用改進(jìn)的自適應(yīng)閾值算法,計(jì)算全局閾值比例,再根據(jù)全局閾值計(jì)算局部高低閾值矩陣[10]。通過局部高、低閾值矩陣進(jìn)行強(qiáng)、弱邊緣劃分,減小了邊緣提取的誤判率。對(duì)強(qiáng)邊緣保留、弱邊緣刪除,對(duì)中庸點(diǎn)進(jìn)行中庸邊緣編號(hào),將與強(qiáng)邊緣相連但自身不閉合的中庸邊緣進(jìn)行刪除,從而過濾掉部分微塵、毛刺的影響,進(jìn)一步提高了邊緣提取的準(zhǔn)確性。
圖2 改進(jìn)Canny算法流程
1.2.1 濾波去噪
本方法中,放棄了傳統(tǒng)高斯濾波器的平滑濾波方式,采用小波變換和中值濾波相結(jié)合的方式進(jìn)行圖像濾波。首先使用中值濾波方法濾除椒鹽噪聲,再對(duì)去噪后的圖像進(jìn)行小波分解,分解后的系數(shù)向量經(jīng)過閾值化后再進(jìn)行小波重構(gòu)[11]。
1.2.2 計(jì)算梯度幅值和方向
本文采用Sobel 算子進(jìn)行梯度幅值與方向的計(jì)算。傳統(tǒng)的Sobel 算子有X(橫向),Y(縱向)兩個(gè)方向[12],公式如下:
像素沿X方向的梯度為
沿Y方向的梯度為
式中:*為卷積符號(hào);Arr為以該像素點(diǎn)為中心的3 ×3像素矩陣。
梯度幅值A(chǔ)(x,y)和梯度方向θ(x,y),
1.2.3 非極大值抑制獲取邊緣點(diǎn)
在3 ×3 像素鄰域內(nèi)通過插值獲得梯度方向上的兩個(gè)像素點(diǎn)值[13],并對(duì)梯度方向上的3 個(gè)像素點(diǎn)進(jìn)行梯度幅值比較。如果當(dāng)前像素點(diǎn)的梯度幅值比梯度方向上其他兩個(gè)像素點(diǎn)的梯度幅值都要大,稱該像素點(diǎn)為邊緣候選點(diǎn),標(biāo)記為1;否則,標(biāo)記為0。邊緣候選點(diǎn)圖像用A1(x,y)表示。
1.2.4 獲取全局比例值
首先,利用大津法計(jì)算梯度幅值圖A(x,y)的分割閾值,求得的閾值記為:T_val;再通過遍歷灰度值矩陣,比較像素點(diǎn)灰度值與閾值的大小,統(tǒng)計(jì)出超出閾值的像素點(diǎn)數(shù)。計(jì)算不低于分割閾值的像素點(diǎn)數(shù)與圖像總像素點(diǎn)數(shù)之間的比例,計(jì)算結(jié)果記為T_r,
1.2.5 獲取局部閾值矩陣
在梯度幅值矩陣A[r,l]中提取大小為s ×s 的局部矩陣塊S,并計(jì)算當(dāng)前局部塊中心像素點(diǎn)的局部閾值T_s,要求局部閾值滿足以下公式:
當(dāng)前像素點(diǎn)的局部高、低閾值可以通過下式求得:
由于局部塊S無法取到圖像外,因此圖片最邊緣處,有數(shù)量為s/2 的像素點(diǎn)無法作為S的中心點(diǎn),這些像素點(diǎn)稱為“外圈邊界點(diǎn)”,外圈邊界點(diǎn)的局部閾值直接取鄰近點(diǎn)的局部閾值。
1.2.6 邊緣檢測(cè)
采用如下步驟獲取最終邊緣:
步驟1獲取邊緣候選點(diǎn)的梯度幅值圖
步驟2通過局部高、低閾值判定強(qiáng)、弱邊緣點(diǎn),并分別使用1 與0.5 標(biāo)記強(qiáng)、弱邊緣點(diǎn)
步驟3連接邊緣,將強(qiáng)邊緣點(diǎn)保留,與強(qiáng)邊緣點(diǎn)相連且自身閉合的邊緣保留,剩余邊緣剔除:
從而得到最終邊緣圖像E(x,y)。
傳統(tǒng)的測(cè)量方法都是隨機(jī)選取數(shù)個(gè)像素點(diǎn),計(jì)算橫、縱坐標(biāo)平均值,根據(jù)計(jì)算結(jié)果進(jìn)行距離測(cè)算。由于選取點(diǎn)的隨機(jī)性,導(dǎo)致計(jì)算結(jié)果波動(dòng)性較大。本方法中,對(duì)邊緣進(jìn)行最小二乘法擬合,將邊緣信息函數(shù)化,測(cè)量結(jié)果穩(wěn)定且更精確。
對(duì)已獲得的梯度圖中的邊緣編號(hào),分析局部范圍內(nèi),同一編號(hào)邊緣的梯度方向,判斷當(dāng)前邊緣是否為規(guī)則邊緣,如果是規(guī)則邊緣,則進(jìn)行擬合;如果不是規(guī)則邊緣,則使用傳統(tǒng)方法進(jìn)行測(cè)量。
計(jì)算中,規(guī)則邊緣尤其是直線的擬合,對(duì)多項(xiàng)式的次數(shù)要求較低;而當(dāng)邊緣為曲線時(shí),擬合的多項(xiàng)式次數(shù)越高,擬合結(jié)果越精確,但隨之帶來的是計(jì)算量的增加[14]。因此,在非規(guī)則邊緣區(qū)域,直接采用“數(shù)像素點(diǎn)”這樣的傳統(tǒng)方法,雖然精度無法提升,但是能夠保持較快的測(cè)算速度。
1.4.1 相機(jī)的標(biāo)定
為了實(shí)現(xiàn)通過像素計(jì)算實(shí)際距離,需要對(duì)相機(jī)進(jìn)行標(biāo)定,構(gòu)建成像模型,建立圖像像素點(diǎn)與微型電子接插件表面點(diǎn)位置的對(duì)應(yīng)關(guān)系[15]。
假設(shè)相機(jī)與標(biāo)定面(待測(cè)面)垂直,則有設(shè)計(jì)安裝如圖3(a)所示。此時(shí),相機(jī)的模型為理想的小孔成像模型,物與像之間可以看作相似三角,其模型如圖4 所示。理想模型中的換算比例K 為實(shí)際距離dr 與對(duì)應(yīng)像素?cái)?shù)dp的比值:
圖3 設(shè)計(jì)相機(jī)安裝示意圖
圖4 小孔成像模型示意圖
1.4.2 相機(jī)的校準(zhǔn)
實(shí)際中,并不能保證相機(jī)軸線與待測(cè)面完全垂直,如圖3(b)所示。相機(jī)光軸與標(biāo)定面的垂線之間存在一個(gè)夾角。對(duì)于微型電子接插件來講,很小的偏差角就可能使檢測(cè)的邊緣多出或者縮短數(shù)個(gè)像素點(diǎn),從而使測(cè)量誤差增大。
理想拍攝圖像是相機(jī)軸線與拍攝面完全垂直,理想拍攝圖片如圖5(a)所示;實(shí)際情況下,由于非理想安裝導(dǎo)致相機(jī)軸線與被拍攝面不完全垂直,從而引發(fā)另類的切向畸變,實(shí)際拍攝圖片如圖5(b)所示。
圖5 標(biāo)定圖像拍攝效果圖
可以將實(shí)際拍攝看作是理想拍攝的一個(gè)三維投影。為此,引入了一個(gè)透視變換模型,利用高精度的棋盤標(biāo)定圖片,提取棋盤角點(diǎn)信息與亞像素角點(diǎn)信息并通過標(biāo)定公式進(jìn)行參數(shù)標(biāo)定,標(biāo)定的參數(shù)可用于圖像的畸變校正[16]:
式中,相機(jī)內(nèi)部參數(shù)的矩陣為
通過以上步驟獲得的矩陣,在圖像矯正過程中將畸變程度縮小,改善輸入圖像的質(zhì)量,從而提高圖像質(zhì)量與測(cè)量準(zhǔn)確度。
在得到相機(jī)的標(biāo)定數(shù)據(jù)后,只需要測(cè)得圖片中的像素點(diǎn)數(shù)就可得到對(duì)應(yīng)的實(shí)際距離。常見的尺寸測(cè)量可歸類為點(diǎn)到點(diǎn)、點(diǎn)到線、線到線的距離測(cè)量以及面積的測(cè)量。如圖6(a)所示,計(jì)算點(diǎn)到點(diǎn)距離,直接使用勾股定理;如圖6(b)所示,計(jì)算點(diǎn)到線距離,需構(gòu)建點(diǎn)到線的垂線,再通過計(jì)算點(diǎn)到點(diǎn)距離來實(shí)現(xiàn)測(cè)距;如圖6(c)所示,計(jì)算線到線距離,做出垂線與L1,L2相交,通過計(jì)算交點(diǎn)之間的距離來測(cè)量?jī)善叫芯€之間的距離。測(cè)量面積則通過統(tǒng)計(jì)所在區(qū)域的像素點(diǎn)數(shù),計(jì)算像素點(diǎn)所對(duì)應(yīng)的面積和。
圖6 3種測(cè)量方法示意圖
在測(cè)得距離結(jié)果后,需要對(duì)結(jié)果進(jìn)行保存,本方法分析比較了EXCEL、JSON、XML、數(shù)據(jù)庫(kù)。綜合分析,使用JSON格式來存儲(chǔ)測(cè)量結(jié)果是比較好的方案。如果在速度要求不高的場(chǎng)合,也可以使用EXCEL表格方式進(jìn)行存儲(chǔ),方便非專業(yè)人員進(jìn)行手工分析。
本文以BK-3.0 微型電子接插件為例(見圖7 實(shí)時(shí)圖像區(qū)域),實(shí)現(xiàn)微型電子接插件尺寸測(cè)量方法并進(jìn)行驗(yàn)證。
圖7 軟件界面圖
驗(yàn)證方法的硬件系統(tǒng)主要由傳動(dòng)裝置、PLC 控制器、工業(yè)相機(jī)、照明系統(tǒng)和工業(yè)主機(jī)(PC 系統(tǒng))組成,測(cè)量系統(tǒng)結(jié)構(gòu)如圖8 所示。系統(tǒng)測(cè)量對(duì)象為BK-3.0微型電子接插件,高像素相機(jī)配合雙遠(yuǎn)心鏡頭拍攝料帶上的待測(cè)件,使用同軸光源與背光源配合提供光線。PC系統(tǒng)對(duì)工業(yè)相機(jī)將采集到的圖片進(jìn)行分析,并測(cè)量拍攝的工件尺寸,然后將尺寸以JSON 格式保存到外置硬盤,測(cè)量結(jié)束后PC系統(tǒng)向控制器發(fā)送信號(hào),料帶前進(jìn)更新視野范圍內(nèi)工件。同時(shí),根據(jù)當(dāng)前拍攝到的圖像是否為最佳視野范圍,預(yù)測(cè)下一次的料帶傳動(dòng)距離,該方案不需要光電傳感器,避免了定位孔與物料中空部位重疊引起的定位錯(cuò)誤問題。
圖8 微型電子接插件尺寸測(cè)量硬件系統(tǒng)結(jié)構(gòu)圖
本文使用的視覺軟件為Opencv 2.4.9,其具有眾多圖像處理算子和系統(tǒng)接口,可以方便地對(duì)圖片進(jìn)行各類存取操作;使用MFC 庫(kù)進(jìn)行人機(jī)交互界面的編寫,界面如圖7 所示。在圖像窗口中,可以實(shí)時(shí)顯示相機(jī)當(dāng)前拍攝的圖片、模板匹配后的待測(cè)量區(qū)域圖片等;右上方的眾多按鍵提供了豐富的查詢、存儲(chǔ)、導(dǎo)出等功能。右下角為文本窗口,可以顯示測(cè)量結(jié)果,方便檢測(cè)人員統(tǒng)計(jì)測(cè)量結(jié)果。
本文選取了非接觸式多元傳感三維測(cè)量?jī)x器(Optical Gaging products,OGP)測(cè)量?jī)x測(cè)量后的20 個(gè)微型電子接插件為實(shí)驗(yàn)樣本,以O(shè)GP 測(cè)量結(jié)果為標(biāo)準(zhǔn),通過對(duì)比傳統(tǒng)測(cè)量方法與本文測(cè)量方法的測(cè)量偏差值來驗(yàn)證本文尺寸測(cè)量方法的實(shí)際測(cè)量效果。對(duì)比試驗(yàn)中,傳統(tǒng)檢測(cè)方法與本文檢測(cè)方法使用相同硬件設(shè)備條件,硬件架構(gòu)如圖8 所示。使用500 W像素相機(jī),視野43 mm×35 mm,單像素尺寸約為0.017 mm,對(duì)每個(gè)接插件圖片分別使用傳統(tǒng)測(cè)量方法與本文測(cè)量方法進(jìn)行指定區(qū)域?qū)ο蟮某叽鐪y(cè)量,并分別計(jì)算兩種測(cè)量方法測(cè)得數(shù)值與OGP測(cè)量?jī)x測(cè)得數(shù)值的偏差值。最終測(cè)量結(jié)果如表1 所示。
根據(jù)表1 中所展示的數(shù)據(jù),繪制了兩種方法測(cè)得的尺寸與OGP測(cè)量?jī)x所測(cè)得的實(shí)際尺寸之間的偏差折線圖,折線圖如圖9 所示,其中虛線為傳統(tǒng)尺寸方法的偏差,實(shí)線為本文尺寸測(cè)量方法的偏差。
表1 微型電子接插件尺寸測(cè)量結(jié)果 mm
圖9 顯示了20 個(gè)樣本分別使用傳統(tǒng)方法與本文方法測(cè)得結(jié)果相對(duì)于實(shí)際值的偏差。從圖中可以看出,本文提出的測(cè)量方法在測(cè)量準(zhǔn)確度上有明顯提高。其中,傳統(tǒng)測(cè)量方法誤差最大為0.025 mm,本文誤差最大為0.017 mm,準(zhǔn)確度提升了32%。
圖9 偏差折線圖
本文針對(duì)傳統(tǒng)檢測(cè)方案存在微型電子接插件檢測(cè)誤差準(zhǔn)確度不高的問題,提出一種新的微型電子接插件尺寸檢測(cè)方法,該方法采用了快速定位的模板匹配算法、改進(jìn)的自適應(yīng)閾值Canny 算法、邊緣擬合過程、相機(jī)標(biāo)定與校準(zhǔn)等一系列改進(jìn)措施,減少了光線、微塵、非理想安裝等因素對(duì)微型電子接插件的尺寸測(cè)量的影響。通過搭建實(shí)驗(yàn)軟硬件平臺(tái),并以BK-3.0 微型電子接插件為被測(cè)對(duì)象進(jìn)行驗(yàn)證,測(cè)量結(jié)果表明本方法的測(cè)量結(jié)果比傳統(tǒng)檢測(cè)方法測(cè)量結(jié)果在準(zhǔn)確度上提高了32%,驗(yàn)證了本方法的有效性。