陳 鍵
(安徽電子信息職業(yè)技術(shù)學(xué)院 信息工程學(xué)院,安徽 蚌埠 233030)
生產(chǎn)機(jī)械零部件是制造業(yè)中最基礎(chǔ)的一環(huán),零件的尺寸測(cè)量是保證產(chǎn)品質(zhì)量的重要環(huán)節(jié)[1]。近年來,工廠的自動(dòng)化程度越來越高,傳統(tǒng)的檢測(cè)方式已經(jīng)難以滿足生產(chǎn)需求[2]。傳統(tǒng)的檢測(cè)方式大多是接觸式測(cè)量,比如游標(biāo)卡尺、三角規(guī)等,檢測(cè)效率較低,難免會(huì)出現(xiàn)誤差[3-4],而機(jī)器視覺技術(shù)很好地解決了這個(gè)問題。圖像測(cè)量作為一種非接觸式測(cè)量具有非常多的優(yōu)點(diǎn):測(cè)量效率高,能夠滿足高度自動(dòng)化的要求;不會(huì)對(duì)零件和工人造成損傷;人工成本低,節(jié)省資源;測(cè)量范圍廣,能夠測(cè)量各種各樣的零件[5]。本研究基于機(jī)器視覺和數(shù)字圖像處理技術(shù)設(shè)計(jì)了一個(gè)目標(biāo)尺寸檢測(cè)系統(tǒng),通過采集零件圖片處理得到輪廓,結(jié)合相機(jī)標(biāo)定得到實(shí)際物理尺寸信息。該系統(tǒng)還帶有可編程邏輯控制器(PLC)和傳感器,符合自動(dòng)化工廠的生產(chǎn)需求,為機(jī)器視覺圖像處理技術(shù)的應(yīng)用提供了理論支撐。
機(jī)器視覺目標(biāo)尺寸檢測(cè)系統(tǒng)主要由電氣控制、圖像處理、上位機(jī)顯示3個(gè)模塊組成,其工作原理是對(duì)待測(cè)工業(yè)零件進(jìn)行圖像處理后得到邊緣輪廓信息,再結(jié)合相機(jī)標(biāo)定信息得到實(shí)際尺寸信息。
本檢測(cè)系統(tǒng)硬件主要由PLC、CCD相機(jī)、計(jì)算機(jī)、電機(jī)、傳感器、光源組成;軟件主要由電氣控制程序、圖像處理程序、上位機(jī)通信和顯示程序組成;檢測(cè)過程由物體運(yùn)送、采集圖像、圖像處理、界面顯示組成。系統(tǒng)總體設(shè)計(jì)方案見圖1。在圖像處理方面,首先由PLC控制傳送帶,電機(jī)啟動(dòng)運(yùn)送目標(biāo)零件,然后目標(biāo)零件到達(dá)光電處,光電給PLC信號(hào),PLC給相機(jī)一個(gè)外部觸發(fā)信號(hào)控制相機(jī)拍照,最后相機(jī)采集圖像并將圖像傳輸給圖像采集卡,圖像采集卡將圖像數(shù)據(jù)傳送給圖像處理軟件。圖像處理軟件先對(duì)圖像進(jìn)行灰度化、去噪、二值化分割等預(yù)處理,再進(jìn)行邊緣提取,邊緣擬合得到直線和圓的圖形信息,接著對(duì)相機(jī)進(jìn)行標(biāo)定,利用標(biāo)定數(shù)據(jù)對(duì)相機(jī)進(jìn)行畸變矯正,得到實(shí)際尺寸與像素尺寸的比值,最終在上位機(jī)上顯示處理前后的圖片及得到的尺寸信息。
圖1 檢測(cè)系統(tǒng)總體設(shè)計(jì)方案Fig.1 Overall design scheme of detection system
本研究選用的PLC是Omron PLC,它采用DC電源,有18個(gè)DC輸入與12個(gè)繼電器輸出。選用雷塞DM556型驅(qū)動(dòng)器,該驅(qū)動(dòng)器采用最新的32位DSP技術(shù),具備運(yùn)行平穩(wěn)、噪聲極小的中低速性能,能夠滿足大多數(shù)小型設(shè)備的應(yīng)用需要。選用德國(guó)AVT stringray F125b型CCD相機(jī),比CMOS相機(jī)有更好的成像質(zhì)量,且抓拍速度快、成像質(zhì)量高、體積小、質(zhì)量輕、適應(yīng)性強(qiáng)、穩(wěn)定性強(qiáng)。由于被測(cè)量的工業(yè)零件是反光的不透明物體,故采用同軸度照明,不僅圖像對(duì)比度較高,而且由于照明均勻不會(huì)產(chǎn)生邊緣陰影,有利于后續(xù)的邊緣提取等操作。
一個(gè)系統(tǒng)由硬件搭建框架,由軟件發(fā)出控制信號(hào),軟件起到至關(guān)重要的作用。PLC采用的是CX-Programmer軟件,它可以完成用戶程序的建立、編輯、調(diào)試、檢查和監(jiān)控。圖像處理采用的是Halcon軟件[6],該軟件是德國(guó)MVTec公司設(shè)計(jì)的一款機(jī)器視覺軟件,支持包括C、C++、C#、Visual Basic、Delphi在內(nèi)的多種編程語言,并且兼容Windows、Linux、UNIX等多種操作系統(tǒng)。上位機(jī)編程采用的是Visual Studio軟件。
圖2 PLC控制流程Fig.2 PLC control flow chart
1.3.1PLC整體流程
PLC控制流程如圖2所示。首先,設(shè)計(jì)系統(tǒng)啟動(dòng),對(duì)所有數(shù)據(jù)進(jìn)行重置。然后,依次設(shè)計(jì)電機(jī)啟動(dòng),設(shè)置好電機(jī)的模式、脈沖和頻率;設(shè)計(jì)光電檢測(cè)物體,最多一次檢測(cè)4個(gè)物品,每個(gè)物品對(duì)應(yīng)一個(gè)定時(shí)器;設(shè)計(jì)相機(jī)拍照,在光電傳感器感應(yīng)到物品時(shí),通過物品對(duì)應(yīng)的定時(shí)器時(shí)間控制拍照;設(shè)計(jì)燈光在系統(tǒng)啟動(dòng)時(shí)自動(dòng)打開。最后,設(shè)計(jì)了急停按鈕,按急停按鈕斷開程序,對(duì)電機(jī)速度置0。
1.3.2圖像處理
圖像邊緣提取處理效果見圖3。
圖像灰度化:一個(gè)正常的圖像對(duì)于計(jì)算機(jī)來說就是一個(gè)很大的矩陣,把圖片按行列分割成一個(gè)個(gè)正方體,每一個(gè)小正方體就相當(dāng)于矩陣中的一個(gè)元素。這個(gè)元素又由R、G、B這3個(gè)分量組成,也就是紅、綠、藍(lán)3種顏色分量,每個(gè)分量的數(shù)值是0~255,對(duì)這3種顏色分量進(jìn)行組合可以得到任何一種顏色。本研究是要得到零件的尺寸信息,并不需要圖像的彩色信息。要操作R、G、B這3個(gè)分量也相對(duì)麻煩,所以采用平均值法對(duì)圖像進(jìn)行灰度化處理,得到8位的灰度值圖像。當(dāng)R、G、B這3個(gè)分量都相等時(shí)圖像就會(huì)變成黑白圖像,而它們的值就是灰度值,取值也是0~255。當(dāng)灰度值是0時(shí)圖像為黑色,當(dāng)灰度值是255時(shí)圖像為白色,如圖3(a)所示。
圖像去噪:由于本系統(tǒng)采用的CCD相機(jī)成像質(zhì)量良好,所以直接采用Canny算子所需要的高斯濾波器進(jìn)行圖像去噪。高斯濾波器是根據(jù)高斯函數(shù)的形狀來選擇權(quán)值的濾波器。圖像處理中,采用二維零均值離散高斯函數(shù)為平滑濾波器。
圖像分割:由于本系統(tǒng)只對(duì)零件尺寸進(jìn)行測(cè)量,但相機(jī)采集到的圖像含零件、傳送帶及很多其他多余的地方,所以需要將零件圖像單獨(dú)篩選出來便于后續(xù)處理。本研究采用圖像分割中的閾值分割和特征直方圖篩選方法,采用面積這個(gè)特征值,設(shè)置最低值和最高值就可以將零件圖像篩選出來,然后將這片區(qū)域摳出來,就完成了圖像分割。圖3(b)中間的矩形區(qū)域就是篩選出來的待測(cè)零件圖像。
邊緣檢測(cè):將零件區(qū)域分割出來后,需要對(duì)圖像邊緣進(jìn)行提取。邊緣檢測(cè)是基于目標(biāo)圖像與背景圖像存在灰度值差異實(shí)現(xiàn)的,某段圖像灰度值發(fā)生突變就被認(rèn)作是邊緣。本研究采用的是Sobel算子,用來運(yùn)算圖像亮度函數(shù)的灰度值近似值,提取效果見圖3(c)。
圖3 圖像邊緣提取處理Fig.3 Image edge extraction processing
圖形擬合:提取后的圖像邊緣采用最小二乘法進(jìn)行圖形擬合,擬合效果見圖4。最小二乘法在擬合直線時(shí),先對(duì)需要擬合成直線的亞像素級(jí)輪廓進(jìn)行采樣,得到一系列的點(diǎn),接著求取一條直線,使得這些點(diǎn)到這條直線距離的平方和最小,這條直線就是擬合出來的直線。最小二乘法擬合圓時(shí),對(duì)需要擬合成圓的亞像素級(jí)輪廓進(jìn)行采樣,得到一系列的點(diǎn),求取一個(gè)圓,用這些點(diǎn)到圓心距離的平方減去半徑的平方得到X值。當(dāng)這些X值的平方和最小時(shí),這個(gè)圓就是擬合出來的圓。
圖4 圖形邊緣擬合效果Fig.4 Edge fitting effect of graphs
1.3.3相機(jī)的畸變矯正
所有的光學(xué)鏡頭都存在畸變問題。畸變是焦平面上的不同區(qū)域?qū)D像的放大率不同導(dǎo)致的畫面扭曲變形現(xiàn)象,這種現(xiàn)象在圖像的邊緣更明顯,對(duì)尺寸測(cè)量有嚴(yán)重的影響,所以要對(duì)相機(jī)的畸變進(jìn)行矯正。本研究主要對(duì)相機(jī)的徑向畸變進(jìn)行矯正,數(shù)學(xué)模型表達(dá)式[7]如下:
(1)
式中:(x0,y0)是畸變點(diǎn)在成像儀上的原始位置;(x,y)是畸變矯正后新的位置;k1、k2、k3是非線性畸變參數(shù)。
為了驗(yàn)證本系統(tǒng)的可靠性,對(duì)完成預(yù)處理的零件圖像進(jìn)行邊長(zhǎng)(L1、L2、L3、L4)與孔徑(大孔徑:C1、C2、C7、C8;小孔徑:C3、C4、C5、C6)的測(cè)試。實(shí)驗(yàn)采用上位機(jī)編程軟件Visual Studio,用長(zhǎng)80.00 mm、寬50.00 mm、大圓半徑2.50 mm、小圓半徑2.00 mm的標(biāo)準(zhǔn)零件作為測(cè)試對(duì)象進(jìn)行系統(tǒng)性能測(cè)試,共檢測(cè)3次,測(cè)試結(jié)果見表1。
表1 邊長(zhǎng)和孔徑測(cè)試結(jié)果Tab.1 Test results of side length and aperture
從表1可以看出,無論是零件的邊長(zhǎng)還是孔徑,檢測(cè)誤差都小于0.8 mm,滿足GB/T 1800.1—2020《產(chǎn)品幾何技術(shù)規(guī)范(GPS)線性尺寸公差I(lǐng)SO代號(hào)體系 第1部分:公差、偏差和配合的基礎(chǔ)》[8]的要求,可以實(shí)現(xiàn)零部件邊長(zhǎng)與孔徑的測(cè)量。
針對(duì)目前傳統(tǒng)測(cè)量存在的不足,本研究制定了整體的系統(tǒng)方案,并且根據(jù)系統(tǒng)需求和實(shí)際實(shí)驗(yàn)條件,對(duì)PLC、相機(jī)、電機(jī)、光源等硬件進(jìn)行選型,對(duì)圖像進(jìn)行灰度化、去噪、分割和邊緣提取預(yù)處理,對(duì)相機(jī)進(jìn)行標(biāo)定,利用得到的內(nèi)參和外參對(duì)相機(jī)進(jìn)行畸變矯正。對(duì)系統(tǒng)進(jìn)行測(cè)試,可知其性能滿足實(shí)際需求。