汪成龍,黃余鳳,陳銘泉,陳澤濤,何 宣
(惠州學(xué)院 電子信息與電氣工程學(xué)院,惠州 516015)
在日常生活和工業(yè)生產(chǎn)中,大部分產(chǎn)品都印刷有各種字符,利用字符識(shí)別產(chǎn)品已成為主要途徑。字符可以代表產(chǎn)品的品牌、型號(hào)、生產(chǎn)日期、長度和重量等,這些信息反映了產(chǎn)品的狀況,因此字符印刷的正確性影響人類對(duì)產(chǎn)品的認(rèn)識(shí)度和產(chǎn)品及質(zhì)量。工業(yè)生產(chǎn)中,字符由機(jī)器印刷,由于產(chǎn)品漏放,偏放或機(jī)器誤操作,都會(huì)導(dǎo)致產(chǎn)品字符缺陷。字符缺陷主要包括:字符印刷不清晰,字符相對(duì)位置不合格,字符漏印。這將導(dǎo)致產(chǎn)品信息的不完全甚至錯(cuò)誤,因此在生產(chǎn)制造中,產(chǎn)品的字符檢測尤為重要。
傳統(tǒng)的質(zhì)量檢測主要依靠人眼檢測,而在嘈雜的工廠環(huán)境中,大量的檢測工作以及質(zhì)量檢測的高要求,單純依靠人眼是難以滿足。這使得以機(jī)器視覺代替人眼實(shí)現(xiàn)字符缺陷檢測成為必然的發(fā)展趨勢。
鑒于目前我國產(chǎn)品字符檢測技術(shù)還不夠成熟,而人工檢測效率低、主觀性強(qiáng),國內(nèi)字符缺陷檢測多采用人工方式,缺乏客觀性和科學(xué)性,勞動(dòng)強(qiáng)度大,效率低[1],因此有必要研究一種速度快,準(zhǔn)確率高的自動(dòng)檢測方法。
基于機(jī)器視覺的字符缺陷檢測需要對(duì)字符用相機(jī)進(jìn)行采集,然后運(yùn)用圖像處理的算法進(jìn)行識(shí)別判斷,最后控制電機(jī)進(jìn)行相應(yīng)操作。
本文首先對(duì)產(chǎn)品的字符圖像進(jìn)行采集,然后對(duì)采集到的圖像進(jìn)行預(yù)處理,將圖片中的噪音消除并且將雜質(zhì)過濾掉;接著設(shè)定字符檢測區(qū)域,再選取7~10個(gè)正常樣本進(jìn)行訓(xùn)練,查看均值圖像和標(biāo)準(zhǔn)差圖像,并設(shè)定最小絕對(duì)閾值和基本閾值。最后對(duì)系統(tǒng)進(jìn)行運(yùn)行檢測和數(shù)據(jù)分析實(shí)驗(yàn)表明,該方法能精準(zhǔn)穩(wěn)定地檢測產(chǎn)品字符是否缺陷,且檢測速度快,準(zhǔn)確率高。
在halcon中,獲取圖像有兩種方法,一是通過攝像頭實(shí)時(shí)采集,二是讀取磁盤中的圖片。halcon為百余種工業(yè)相機(jī)和圖像采集卡提供接口,包括GenlCam,GigE和IIDC1394[2]。通過halcon自帶的圖像獲取助手能快速的進(jìn)行實(shí)時(shí)采集,步驟如下:
1)點(diǎn)擊打開新的Image Acquisition;
2)選擇圖像獲取接口;
3)點(diǎn)擊自動(dòng)檢測接口;
4)實(shí)時(shí)連續(xù)采集;
5)代碼生成;
6)插入代碼。
由于已有相機(jī)采集的字符圖片,本文直接采用第二種方法,即從磁盤中讀取圖片。利用halcon自帶的算子read_image(:Image:FileName:)獲取圖片。
圖1 圖像獲取助手
圖像的每個(gè)像素的顏色由R、G和B三個(gè)分量決定,每個(gè)分量有256種取值,如果直接進(jìn)行處理,信息計(jì)算量非常大,因此對(duì)圖像進(jìn)行灰度化處理可降低圖像處理時(shí)間。Halcon的rgb1_to_gray算子能夠進(jìn)行灰度化操作,其灰度圖像根據(jù)下面公式所得[3]:
Red,Green,Blue分別表示紅綠藍(lán)三個(gè)通道,它們占的比例分別為29.9%,58.7%和11.4%。
圖2 原始圖像
圖3 灰度圖像
濾波是圖像處理中常用的一種算法,其主要原理是在指定圖像上給定一個(gè)模板,該模板包括了目標(biāo)像素及其周圍的像素(一般模板的大小為3×3),而目標(biāo)像素的灰度值由其他像素和自身像素的灰度值確定。均值濾波里的模板核中所有的系數(shù)都為1,雖然能夠很好的取出圖片中的噪點(diǎn),但它卻使圖像變得模糊,并且破壞了圖像中應(yīng)有的結(jié)構(gòu)特征[4]。相比于均值濾波,高斯濾波的模板核中的系數(shù)發(fā)生了變化,高斯濾波中的系數(shù)是根據(jù)式(2)得到的,其原型是二維高斯函數(shù)。
圖4 均值濾波核結(jié)構(gòu)
圖5 高斯濾波核結(jié)構(gòu)(σ=0.8)
經(jīng)過高斯濾波的圖像,不僅去除了圖像中的高斯噪聲,而且保持了圖像中的細(xì)節(jié)部分和輪廓特征,但其所得效果也與系數(shù)有關(guān),過小平滑效果不明顯,達(dá)到1.8時(shí)其效果基本和平滑濾波相近,因此需要調(diào)好高斯濾波的系數(shù)。由于本文中所采取的圖像打光效果好,圖像噪聲少,故采用σ=0.8的高斯濾波即可。
圖6 原始圖像
圖7 高斯濾波圖像
圖8 均值濾波圖像
變化模型是halcon中檢測字符缺陷常用的一種算法,用于區(qū)分好的對(duì)象和壞的對(duì)象,它僅僅依靠對(duì)象的灰度值進(jìn)行判別。主要原理是對(duì)比字符上每個(gè)像素點(diǎn)的灰度值。不同位置上點(diǎn)的判斷標(biāo)準(zhǔn)不一樣,字符內(nèi)部的點(diǎn)要求較高,允許范圍較小,字符邊緣部分的點(diǎn)允許范圍較大。由于每個(gè)樣本的灰度值都存在著些許差異,所以變化模型要用到不止一個(gè)好的樣本,它有一個(gè)訓(xùn)練的過程,一般需要用到8~10好的樣本,因此變化模型匹配的通用性好,穩(wěn)定性高[5]。
固定字符的區(qū)域,根據(jù)以下公式設(shè)定需要得到的字符區(qū)域灰度值范圍:
部分檢測結(jié)果如圖9所示。
圖9 部分樣品檢測結(jié)果
Create _ variation _model (::Width ,Height ,Type,Mode : ModelID )[6]
Width:輸入需要對(duì)比圖像的寬度;
Height:輸入需要對(duì)比圖像的高度;
Type:輸入要對(duì)比圖像的類型,默認(rèn):’byte’參考:’byte’,’int2’,’unit2’ ;
Mode:輸入變換模型的計(jì)算方法,默認(rèn):’standard’,參 考:’standard’,’robust’,’direct’;
ModelID:輸出變換模型的句柄。
在可變模型中,存在著理想圖像和變換圖像的概念。在創(chuàng)建對(duì)象時(shí),需要注意Mode這個(gè)參數(shù)。當(dāng)Mode=’standard’,將對(duì)象的理想圖像表示為所有訓(xùn)練圖像的平均值,相應(yīng)的變化圖像表示為所有訓(xùn)練圖像的標(biāo)準(zhǔn)偏差。要確保只有良好對(duì)象的圖像被訓(xùn)練,因?yàn)槠骄岛蜆?biāo)準(zhǔn)偏差對(duì)于異常值是不穩(wěn)定的,如果不良對(duì)象的圖像被無意地訓(xùn)練,則理想對(duì)象的精度可能會(huì)受到影響。其優(yōu)點(diǎn)是可以迭代地對(duì)變化模型進(jìn)行訓(xùn)練。
當(dāng)Mode=’robust’,將對(duì)象的理想圖像表示為所有訓(xùn)練圖像的中值,相應(yīng)的變化圖像表示為所有訓(xùn)練圖像的中值絕對(duì)偏差。這種模式的優(yōu)點(diǎn)在于容錯(cuò)性較大,不會(huì)因?yàn)榧尤氩涣紝?duì)象導(dǎo)致模型的不穩(wěn)定。缺點(diǎn)在于不能進(jìn)行迭代訓(xùn)練,所有的訓(xùn)練都是累積的。
在創(chuàng)建變換模型對(duì)象中,選擇’standard’模式,在下面的訓(xùn)練過程中加入的都是良好對(duì)象的圖像,這里采用了10張圖像進(jìn)行訓(xùn)練。訓(xùn)練中特別需要注意的是,由于變換模型對(duì)灰度值要求很高,而每張圖像中字符位置總有偏差,為了確保字符都在同一個(gè)區(qū)域,有必要進(jìn)行匹配定位和放射變換,以矯正字符的位置。
訓(xùn)練完畢后,通過get_variation_model(:image Image,image VarImage:
Variation_model ModelID:)查找變化模型的理想圖像和變換圖像,結(jié)果如圖11~圖13所示。
圖10 理想圖像
圖11 變換圖像
圖12 最暗灰度圖像圖
圖13 最亮灰度圖像
由于設(shè)定的模式為standard,理想圖像即為均值圖像,變化圖像即為標(biāo)準(zhǔn)偏差圖像。從圖9(b)中可看出,理想圖像基本上與良好對(duì)象的圖像相同。從圖9(c)中可看出,變換圖像中字符邊緣部分亮度較高,字符內(nèi)部區(qū)域亮度較低,背景部分亮度最低,即反應(yīng)了字符邊緣灰度值變化較大,而其他地方灰度值變換較小或不變。上面兩圖符合預(yù)先設(shè)想的結(jié)果,表明加入訓(xùn)練的樣本都為良好樣本。接著要進(jìn)行標(biāo)準(zhǔn)設(shè)定,即設(shè)定每個(gè)像素點(diǎn)灰度值的波動(dòng)范圍為多少,超過波動(dòng)范圍即算缺失。
根據(jù)多次實(shí)驗(yàn)結(jié)果表明,當(dāng)AbsThreshold=20,VarThreshold=3時(shí)正確率最高。
以60張產(chǎn)品字符圖片為樣本,利用halcon編寫檢測軟件,軟件界面如圖10所示。
圖14 字符缺陷檢測系統(tǒng)
表1表明,該系統(tǒng)對(duì)四種缺陷類型和完整樣本測試正確率均為100%。
表1 運(yùn)行結(jié)果數(shù)據(jù)表
得到結(jié)論如下:
1)檢測精度高,可檢測細(xì)小的瑕疵。
2)檢測速度快,檢測時(shí)間一般在幾百毫秒內(nèi)。
3)穩(wěn)定性高,對(duì)相似產(chǎn)品有一樣的判斷。
4)滿足工業(yè)二十四小時(shí)生產(chǎn)的需求。