資源描述:
《基于halcon的噴碼字符識(shí)別技術(shù)的研究與實(shí)現(xiàn)》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在工程資料-天天文庫。
1、基于HALCON的噴碼字符識(shí)別技術(shù)的研究與實(shí)現(xiàn)肖???,2,葛廣英1,2,姚坤1,2,尹紅敏1,2(1.聊城大學(xué)物理科學(xué)與信息工程學(xué)院,山東聊城252059;2.山東省光通信科學(xué)與技術(shù)重點(diǎn)實(shí)驗(yàn)室,山東聊城252059)摘要:為了實(shí)現(xiàn)產(chǎn)品包裝上噴碼字符高效、快速、準(zhǔn)確地識(shí)別,設(shè)計(jì)了一種基于HALCON的噴碼字符識(shí)別系統(tǒng)。首先采用四次不同結(jié)構(gòu)元素的閉運(yùn)算準(zhǔn)確提取字符,然后再采用BP網(wǎng)絡(luò)訓(xùn)練樣本,根據(jù)字符的特征對(duì)樣本進(jìn)行分類,生成相應(yīng)的字符庫,并調(diào)用該字符庫讀取字符,進(jìn)而識(shí)別出字符符號(hào)。實(shí)驗(yàn)結(jié)果表明,這種方法運(yùn)算
2、速度快、準(zhǔn)確性高。.jyqkage()算子讀取相機(jī)采集到的圖像。采集到的圖像如圖3(a)所示。2.2圖像預(yù)處理采集到的圖像一般為彩色圖像,在圖像處理之前要先調(diào)用rgb1_to_gray()算子對(duì)彩色圖像進(jìn)行灰度變換,處理后的圖像如圖3(b)所示?;叶茸儞Q的公式如下:f(x,y)=0.299R(x,y)+0.587G(x,y)+0.114B(x,y)(1)式中:f(x,y)表示彩色圖像轉(zhuǎn)換為灰度圖像之后的像素灰度值;R(x,y)表示彩色圖像每個(gè)像素紅色分度值;G(x,y)表示彩色圖像每個(gè)像素的綠色分度值;B(
3、x,y)表示彩色圖像每個(gè)像素的藍(lán)色分度值。在噴嗎的過程中,由于物體的角度、物體的運(yùn)行速度等因素影響,噴碼字符有可能會(huì)發(fā)生歪斜、不整齊等情況,為了更精確地識(shí)別噴碼字符,首先要將字符調(diào)整為水平。操作過程為:首先調(diào)用HALCON中的text_line_orientation()算子計(jì)算出圖像中噴碼字符的角度,然后利用rotate_image()算子按照上一步計(jì)算出的角度進(jìn)行角度調(diào)整,旋轉(zhuǎn)后的圖像如圖3(c)所示。2.3獲取感興趣區(qū)域由于相機(jī)的視野較大,噴碼字符只占被采集圖像的一部分區(qū)域,為了減少工程計(jì)算量提高計(jì)算
4、效率,圖像處理過程中的感興趣區(qū)域(RegionofInterest,ROI)的提取是必不可少的。其具體操作步驟如下:(1)調(diào)用threshold()算子對(duì)角度調(diào)整后的圖像進(jìn)行灰度閾值變換,獲取字符區(qū)域;(2)調(diào)用connection()算子計(jì)算區(qū)域的連通域,并利用seclect?shap()算子選擇字符區(qū)域;(3)調(diào)用area?center()算子獲取字符區(qū)域中心,然后利用gen_rectangle2()得到一個(gè)包含全部噴碼字符的矩形區(qū)域;(4)調(diào)用reduce_domain()截取感興趣區(qū)域,如圖4所示。
5、2.4形態(tài)學(xué)處理由于噴碼字符為5列7行的點(diǎn)陣型字體,如果直接進(jìn)行OCR字符識(shí)別,噴碼的質(zhì)量對(duì)識(shí)別結(jié)果的影響很大。為了排除點(diǎn)陣的變形對(duì)字符識(shí)別的影響,需要將圖像進(jìn)行形態(tài)學(xué)處理,形態(tài)學(xué)的基本思想就是用具有一定形態(tài)的結(jié)構(gòu)元素提取圖像中對(duì)應(yīng)的形狀,從而實(shí)現(xiàn)對(duì)圖像的分析和識(shí)別。腐蝕和膨脹是形態(tài)學(xué)兩種最基本的運(yùn)算,腐蝕運(yùn)算公式為:上式表示B對(duì)A的腐蝕作用,就是在A內(nèi)平移B,平移過程中B完全包含在A內(nèi)所有參考點(diǎn)的集合,其中集合A和集合B都在Z2中,腐蝕效果如圖5(a)所示。膨脹運(yùn)算公式為:上式表示B對(duì)A的膨脹作用,就是在
6、A內(nèi)平移B,平移過程中B與A至少有一個(gè)公共點(diǎn)的所有參考點(diǎn)集合,其中集合A和集合B都在Z2中,膨脹效果如圖5(b)所示。本文字符提取主要采用四次不同結(jié)構(gòu)元素的閉運(yùn)算,閉運(yùn)算具有填充細(xì)小空洞,連接鄰近物體,在不明顯改變物體面積的情況下平滑其邊界的作用,能夠擴(kuò)大前景收縮背景。閉運(yùn)算就是對(duì)灰度圖像先膨脹后腐蝕的運(yùn)算方式,閉運(yùn)算公式為:為了得到更加清晰的噴碼字符,在閉運(yùn)算操作之前要調(diào)用dots_image()算子對(duì)圖像進(jìn)行噴碼圓點(diǎn)增強(qiáng)處理,突出圖像中的點(diǎn)陣,然后調(diào)用threshold()算子對(duì)點(diǎn)陣增強(qiáng)后的圖像進(jìn)行閾值
7、處理,處理后的圖像如圖6所示。調(diào)用closing_rectangle1()算子使用水平矩形結(jié)構(gòu)元素對(duì)字符進(jìn)行閉運(yùn)算,填充水平方向的空洞,同理使用豎直矩形結(jié)構(gòu)元素進(jìn)行閉運(yùn)算,可以填充豎直方向的空洞。由于每個(gè)字符之間的間距較小,并且可能存在點(diǎn)陣傾斜、偏移的情況,如果只使用水平矩形結(jié)構(gòu)元素或者豎直矩形結(jié)構(gòu)元素膨脹,幅度過小無法使每個(gè)字符的點(diǎn)陣連在一起,幅度過大很可能使字符粘連,無法分割字符,所以選擇使用對(duì)角線結(jié)構(gòu)元素填充對(duì)角線上的空洞,這里首先調(diào)用gen_rectangle2()算子獲得對(duì)角線結(jié)構(gòu)元素,然后調(diào)用c
8、losing()算子,可以填充一條對(duì)角線上的空洞,同理重復(fù)以上操作填充另一對(duì)角線上的空洞,經(jīng)過以上操作可以將每個(gè)字符連到一起以方便字符的提取,形態(tài)學(xué)處理后的圖像如圖7所示。2.5字符分割由于每個(gè)字符的高度和寬度是特定的,字符分割采用基于字符面積和高度的連通域分割,首先調(diào)用con?nection()算子將圖像中的所有字符分割成單獨(dú)的個(gè)體;然后調(diào)用select_shape()算子對(duì)面積和高度進(jìn)行過濾,選出面積中像素在