陳甦欣, 張聞簫, 陳康琛
(合肥工業(yè)大學(xué) 機械工程學(xué)院,安徽 合肥 230009)
隨著社會的發(fā)展進步,計算機技術(shù)得到了快速發(fā)展,機器視覺技術(shù)在工業(yè)生產(chǎn)活動和日常的生活中得到了廣泛的應(yīng)用。傳統(tǒng)的人工檢驗固然簡單、準(zhǔn)確,但效率較低、成本偏高,且對勞動力是一個嚴重的浪費,不符合現(xiàn)代化社會的要求[1]。機器視覺檢驗的興起使得工業(yè)檢測的準(zhǔn)確率和效率有了大幅度提升,提高了工業(yè)自動化的水平。
機器視覺是一種非接觸的、靈活精確的檢驗技術(shù),其字符識別技術(shù)在工業(yè)生產(chǎn)中對于工件型號數(shù)據(jù)檢測、生產(chǎn)數(shù)據(jù)收集等方面具有重要意義[2-3]。傳統(tǒng)的字符多為橫向整齊排列,環(huán)形排列字符的檢驗往往是一個難題。
本文以識別工件環(huán)形表面上字符為目標(biāo),首先通過相機采集照片,對照片進行圖像濾波,消除噪聲后二值化操作,得到低噪聲的二值化圖像;然后針對環(huán)形區(qū)域字符識別的相應(yīng)問題提出一套解決方案,實現(xiàn)對環(huán)形區(qū)域字符較為準(zhǔn)確的分割;最后對分割后的字符利用模板匹配法實現(xiàn)精度較高的識別。
在分析圖像中,圖像質(zhì)量的好壞直接影響著識別算法的效果與準(zhǔn)確度,因此在圖像分析之前,需要對圖像進行預(yù)處理操作。圖像的預(yù)處理可以減少和消除在圖像采集過程中產(chǎn)生的無關(guān)信息,提高圖像的質(zhì)量,增強識別算法的準(zhǔn)確性,提高檢測質(zhì)量。
空間濾波在圖像處理領(lǐng)域中應(yīng)用極為廣泛,主要用來增強圖像的特征信息,削弱和減少圖像中的無關(guān)信息,從而改善圖像的視覺效果,降低機器檢驗或人工檢驗的難度[4]??臻g濾波器由一個領(lǐng)域及對該領(lǐng)域所包圍的圖像像素執(zhí)行預(yù)定義操作組成。常見的線性濾波算法有均值濾波、中值濾波、方框濾波、高斯濾波、雙邊濾波。通過選擇合適的濾波器可以實現(xiàn)圖像噪聲的減少和消除。原始圖像和經(jīng)過各種算法空間濾波后的圖像如圖1所示。
圖1 圖像的空間濾波
圖像二值化又稱閾值處理,通過選定一個閾值,將灰度圖像中高于閾值的像素點的灰度值置為255,低于閾值的像素點置為0。這樣原先的圖像僅有2個灰度值,有利于后期特征的識別和提取。
因為待檢測位置往往不是固定不動的,所以需要對待檢測字符位置進行定位。考慮到拍攝的圖片環(huán)形缸套表面和背景色明亮程度差距較大,采用梯度算法[5]查找圓形輪廓有較好的效果。在查找輪廓時由于圖片中的圓形輪廓較多,應(yīng)對所需查找的大小范圍進行限制,即可得到待提取的圓形輪廓,并通過circle函數(shù)將提取出的圓形輪廓畫出。待檢測圓形輪廓的定位如圖2所示,工件邊緣的粗圓即為通過梯度算法檢測出的待檢測圓形輪廓。
圖2 待檢測圓形輪廓的定位
由于工件的環(huán)形特征,對環(huán)形工件上字符的直接識別較為繁瑣??紤]先將環(huán)形進行極坐標(biāo)展開,再進行字符位置的定位,最后使用卷積算法提取字符的分布特征,提取單個字符。
利用梯度算法提取工件輪廓,通過極坐標(biāo)變換對提取到的圓形輪廓進行展開,再通過OpenCV中boundingRect函數(shù)返回指定點集最外面的矩形邊界,獲得初始感興趣的區(qū)域[6]。通過觀察可知,字符區(qū)域大致占工件整個圓形區(qū)域的1/4,可以選取2次不同角度的展開方式,再分別作極坐標(biāo)卷積操作,選擇卷積較大的一個角度作為展開的結(jié)果。展開后圖片如圖3所示。
圖3 展開后圖片
一般來說,在獲取環(huán)形展開區(qū)域為矩形的基礎(chǔ)上,要確定字符識別區(qū)域的有效方法是像素投影法。這是一種通過繪制圖像局部區(qū)域橫向或豎向像素值的和,再通過像素和的變化曲線來判斷字符分布位置的方法。該方法有較高的準(zhǔn)確率,但是在噪聲較大的情況下且待檢測圖像為環(huán)形圖像時,易出現(xiàn)較大偏差影響結(jié)果。
本文采用基于連通區(qū)域[7]的方法,通過判斷字符區(qū)域的特征和連通情況,對字符區(qū)域進行合并產(chǎn)生較大的區(qū)域并消除噪聲,提取出相應(yīng)的字符區(qū)域。膨脹處理圖片,讓字符按組變成一塊塊大區(qū)域,然后識別整塊輪廓,并用矩形框住該輪廓,如圖4所示。
圖4 字符組區(qū)域提取
在提取過程中,可能會出現(xiàn)噪聲影響區(qū)域提取的情況,因此在采取降噪處理的同時,對字符組提取的寬度w和高度h進行限制。因為所處理的圖片是由固定的工業(yè)用相機拍攝的,字符的大小和位置在圖片中的位置基本固定,所以根據(jù)測試圖像調(diào)整w、h參數(shù),以提取出正確的區(qū)域。
字符分割是文本識別的必要前提,對圖像信息的提取具有重要意義。將提取出來的字符組分別處理,工件上的字符均分組排列整齊,且保證組內(nèi)字符間距較小、組間間距較大。
進行到這一步已基本不用考慮噪聲的影響,只需對各個字符組分別用上文方法尋找輪廓,再對尋找到的輪廓使用外部矩形邊界法將單個字符用矩形框提取出來,按順序保存處理。
字符識別的方法主要分為決策理論方法和結(jié)構(gòu)方法2類。第1類是統(tǒng)計模式識別的基礎(chǔ),對圖像進行大量統(tǒng)計分析找出規(guī)律性,抽取反映目標(biāo)特征的統(tǒng)計向量進行識別;第2類方法又稱句法結(jié)構(gòu)方法,通過定性描繪即一些語言來描繪圖像,進行目標(biāo)匹配實現(xiàn)圖像中目標(biāo)的識別。
考慮到句法結(jié)構(gòu)方法在圖像獲取過程中受噪聲影響較大,且環(huán)形工件的字符字體為印刷體,較容易區(qū)分辨別,故采用句法模式識別的方法,通過卷積神經(jīng)網(wǎng)絡(luò)對特征判別來識別字符。
模板匹配算法[8]是在像素層面上的一種相對簡單的圖像識別方法,同時該方法可以確定對象在圖像中的位置。但模板匹配算法具有一定的局限性,在只能平行移動的情況下,當(dāng)匹配目標(biāo)的大小尺寸發(fā)生變化,就很難得到準(zhǔn)確的匹配結(jié)果。
工件待識別的字符個數(shù)為20個,每個字符隨機由0—9 10個數(shù)字和A—Z 26個不同的字母組成,則檢驗2種不同字體的環(huán)形工件至少需要72個字符模板。
常見的模板匹配算法分別是基于形狀、灰度值和特征點的?;诨叶戎档哪0迤ヅ渌惴ㄊ瞧渌椒ǖ幕A(chǔ),是以模板與圖像之間差值的絕對值或平方等作為匹配的依據(jù)。通過計算得到A字符模板對A字符的匹配度達5.632 124×e-5,其他字符的匹配度達0.3左右,選取匹配度最低的結(jié)果為匹配結(jié)果。檢測字符模板如圖5所示。
圖5 檢測字符模板
神經(jīng)網(wǎng)絡(luò)是模仿人類大腦,以大腦內(nèi)的神經(jīng)結(jié)構(gòu)作為出發(fā)點的計算模型,可以進行有監(jiān)督和無監(jiān)督學(xué)習(xí),其目的是通過擬合已有的數(shù)據(jù),對輸入的數(shù)據(jù)進行決策和分類。
卷積神經(jīng)網(wǎng)絡(luò)[9-10]包含輸入層、卷積層、池化層、輸出層等,通過各層的擬合和提取,將數(shù)據(jù)的特征信息提取出來。
識別的字體通常有印刷體和手寫體,本文的識別目標(biāo)為印刷體字符。使用手寫字符數(shù)據(jù)集訓(xùn)練的識別模型來做印刷體的識別任務(wù),必然難以取得滿意的分類精度。本文使用tensorflow框架建立對字符數(shù)據(jù)識別的神經(jīng)網(wǎng)絡(luò)層,輸入MNIST手寫字體數(shù)據(jù)集,達到了較高精度的識別效果。識別結(jié)果如圖6所示。
圖6 字符識別結(jié)果
本文的全部工作過程是在Windows10 64位、8 GiB運行內(nèi)存、英特爾Core i5-10210U 1.6 GHz、Nvidia GeForce MX250 2 GiB顯存配置的電腦上運行實現(xiàn)的。程序采用Python語言的OpenCV3.4.10編程實現(xiàn)。
根據(jù)上文的介紹,該工件的字符識別流程主要由圖像預(yù)處理、待檢測區(qū)域定位、待檢測區(qū)域極坐標(biāo)展開、字符分割、卷積神經(jīng)網(wǎng)絡(luò)字符識別6個部分組成,識別流程如圖7所示。
圖7 識別流程
選擇5個工件,分別選取10個不同的位置相機進行拍攝,記錄其字符分割的準(zhǔn)確率、字符識別的準(zhǔn)確率。識別結(jié)果見表1所列。
表1 識別結(jié)果
由表1可知,字符分割和字符識別的準(zhǔn)確率均達到95%以上,說明基于連通域的字符區(qū)域提取有很好的效果,但是字符識別的準(zhǔn)確率稍低,這是由神經(jīng)網(wǎng)絡(luò)模型和數(shù)據(jù)集導(dǎo)致的。若選擇訓(xùn)練更好的數(shù)據(jù)集和算法,識別精度將有更大的提高空間。
本文對工件環(huán)形表面字符的識別提取提出一種可行方案。在字符識別前對工件圖像使用空間濾波、二值化、字符展開、定位、分割的方法,運用基于連通域分割的方法大大減小因為小面積噪聲產(chǎn)生的錯誤分割的影響,提高了分割的正確率,獲取的圖像實現(xiàn)了待識別字符區(qū)域的分割和定位;提出基于卷積神經(jīng)網(wǎng)絡(luò)和模板字符的識別算法,在用手寫字符數(shù)據(jù)集訓(xùn)練的情況下,仍實現(xiàn)了對印刷體字符的高精度識別。實驗驗證得出,該方法在工業(yè)生產(chǎn)領(lǐng)域具有一定的使用價值。