国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于KNN算法的OCR系統(tǒng)的設(shè)計(jì)

2019-05-31 05:55楊廣韓震宇王云萍沈臻
山東工業(yè)技術(shù) 2019年15期

楊廣 韓震宇 王云萍 沈臻

摘 要:針對(duì)半導(dǎo)體芯片加工生產(chǎn)線,設(shè)計(jì)出一種基于KNN算法的OCR識(shí)別系統(tǒng),滿足了企業(yè)自動(dòng)處理芯片加工批號(hào)信息的需求。本文主要介紹了系統(tǒng)通過(guò)相機(jī)外觸發(fā)的方式獲取原始圖像,并進(jìn)行圖像中字符的識(shí)別,硬件部分由典型的機(jī)器視覺(jué)系統(tǒng)構(gòu)成,主要包括工業(yè)相機(jī)、鏡頭、光源、傳感器等。軟件部分主要闡述了圖像預(yù)處理模塊與字符識(shí)別模塊的實(shí)現(xiàn),在進(jìn)行字符識(shí)別前,圖像預(yù)處理模塊可以為字符識(shí)別提供良好的圖像數(shù)據(jù)來(lái)源。經(jīng)過(guò)現(xiàn)場(chǎng)實(shí)驗(yàn)表明,系統(tǒng)具有較高的可靠性與穩(wěn)定性。

關(guān)鍵詞:OCR系統(tǒng);圖像預(yù)處理;KNN算法

DOI:10.16640/j.cnki.37-1222/t.2019.15.146

1 前言

1.1 背景

OCR是指采用光學(xué)的方式,將紙質(zhì)或圖片文檔中的文字轉(zhuǎn)換成為黑白點(diǎn)陣的圖像文件,并通過(guò)識(shí)別軟件將圖像中的文字轉(zhuǎn)換成文本格式,供文字處理軟件進(jìn)一步編輯加工的技術(shù)[1],也就是將圖像上的文字轉(zhuǎn)化為計(jì)算機(jī)可編輯的文字內(nèi)容。評(píng)價(jià)一個(gè)OCR系統(tǒng)的性能優(yōu)劣的指標(biāo)主要包括,識(shí)別準(zhǔn)確率,識(shí)別速度,用戶界面的友好性,識(shí)別的穩(wěn)定性,易用性等,其中,識(shí)別的準(zhǔn)確率是OCR系統(tǒng)最重要的指標(biāo)。到20世紀(jì)90年代以后,隨著我國(guó)信息自動(dòng)化和辦公自動(dòng)化的普及,大大推動(dòng)了OCR技術(shù)的進(jìn)一步發(fā)展,隨著對(duì)OCR技術(shù)的研究更為深入,OCR的識(shí)別率,識(shí)別速度等都已經(jīng)逐漸可以滿足廣大用戶的需求。

1.2 設(shè)計(jì)需求

針對(duì)某實(shí)際半導(dǎo)體的生產(chǎn)線,設(shè)計(jì)一套識(shí)別芯片料盒的OCR系統(tǒng)。整個(gè)生產(chǎn)線分為上料和下料兩個(gè)工位,芯片料盒上標(biāo)注著此次需要加工的芯片批號(hào)的索碼號(hào),在上料工位上,原有的方式是通過(guò)人工記錄芯片料盒上的編號(hào),并通過(guò)這個(gè)編號(hào)來(lái)找到芯片的批號(hào),將批號(hào)上傳至控制中心,告知當(dāng)前正在加工的芯片批號(hào)。在下料工位人工再次上傳芯片的批號(hào),告知當(dāng)前批號(hào)芯片加工完成。這種人工記錄的方式無(wú)法滿足企業(yè)的自動(dòng)化要求,并且在人工記錄,查詢芯片批號(hào),以及上傳產(chǎn)品批號(hào)的過(guò)程中均容易出現(xiàn)錯(cuò)誤,這樣給企業(yè)的管理帶來(lái)了一定的不便,嚴(yán)重影響生產(chǎn)的效率。

根據(jù)企業(yè)的需求,將人工記錄改為計(jì)算機(jī)自動(dòng)化處理,在上料工位通過(guò)OCR系統(tǒng)對(duì)索碼號(hào)的自動(dòng)識(shí)別,獲取到索碼號(hào)信息,并傳遞給企業(yè)內(nèi)部數(shù)據(jù)庫(kù),通過(guò)企業(yè)提供的接口,自動(dòng)獲取到芯片批號(hào),并通知終端控制室此芯片批號(hào)正在加工。在下料工位上,再次對(duì)芯片料盒進(jìn)行一次識(shí)別,再次獲取到索碼號(hào)信息后,傳遞到數(shù)據(jù)庫(kù)中,此時(shí)會(huì)將索碼號(hào)與芯片批號(hào)解除綁定,表示這批芯片加工完成。

2 系統(tǒng)設(shè)計(jì)

2.1 系統(tǒng)的硬件設(shè)計(jì)

本系統(tǒng)的硬件部分包括工業(yè)相機(jī),鏡頭,光源,光電傳感器。通過(guò)相機(jī)對(duì)芯片料盒的字符拍照,經(jīng)過(guò)字符識(shí)別算法處理,最終獲得芯片的索碼號(hào)。系統(tǒng)采用GigE接口的工業(yè)相機(jī),LED的光源。芯片料盒用機(jī)械手放在生產(chǎn)線上,在機(jī)械手放置料盒的固定位置加裝一個(gè)光電傳感器,以此來(lái)觸發(fā)相機(jī)進(jìn)行拍照獲取到圖像,并最終通過(guò)軟件識(shí)別出索碼號(hào)信息。

2.2 系統(tǒng)軟件的整體設(shè)計(jì)

整個(gè)軟件系統(tǒng)運(yùn)行在芯片加工的生產(chǎn)線上,需要與企業(yè)內(nèi)部以及現(xiàn)場(chǎng)硬件(主要包括相機(jī),傳感器)進(jìn)行交互,最終通過(guò)字符識(shí)別后,完成系統(tǒng)的功能,實(shí)現(xiàn)系統(tǒng)整體的協(xié)調(diào)運(yùn)行。

系統(tǒng)的主要功能就是通過(guò)相機(jī)對(duì)芯片料盒進(jìn)行拍照,通過(guò)軟件處理之后,獲得芯片生產(chǎn)批號(hào)的索碼號(hào),并傳遞給企業(yè)內(nèi)部的數(shù)據(jù)庫(kù)。整個(gè)系統(tǒng)主要的開(kāi)發(fā)平臺(tái)為vs2010+openCV庫(kù),系統(tǒng)的流程圖如圖1所示:

2.3 系統(tǒng)中重要模塊的實(shí)現(xiàn)

系統(tǒng)的重要模塊包括圖像預(yù)處理模塊和字符識(shí)別模塊。

在軟件部分的處理中,原始輸入數(shù)據(jù)為通過(guò)工業(yè)相機(jī)拍到的圖片,由于系統(tǒng)的運(yùn)行環(huán)境是在生產(chǎn)現(xiàn)場(chǎng),所以對(duì)于獲得的圖片會(huì)有各種各樣的噪聲影響,所以在進(jìn)行正式地識(shí)別之前,必須要進(jìn)行圖像的預(yù)處理,以消除在識(shí)別前的噪聲干擾,提高識(shí)別的準(zhǔn)確率以及系統(tǒng)的穩(wěn)定性。系統(tǒng)的最核心部分就是字符識(shí)別的算法,這是成功獲得芯片批號(hào)的前提,所以對(duì)于料盒索碼號(hào)的準(zhǔn)確識(shí)別是關(guān)鍵。接下來(lái)將對(duì)這兩個(gè)模塊分別進(jìn)行介紹。

2.3.1 圖像預(yù)處理模塊設(shè)計(jì)

在圖像處理中,圖像的質(zhì)量直接影響后續(xù)圖像的分析,它的主要目的就是消除圖像中無(wú)關(guān)的信息,恢復(fù)其有用的真實(shí)信息,增強(qiáng)有關(guān)信息的可檢測(cè)性,在最大程度上簡(jiǎn)化數(shù)據(jù),從而提高特征提取,匹配以及識(shí)別的可靠性。工業(yè)現(xiàn)場(chǎng)的光線變化、噪聲等干擾會(huì)給字符識(shí)別造成較大的影響。為了有效地保證字符的識(shí)別率、識(shí)別系統(tǒng)的可靠性和穩(wěn)定性,字符識(shí)別的預(yù)處理部分就顯得至關(guān)重要[2]。

系統(tǒng)的原輸入圖像見(jiàn)圖2。

在圖像預(yù)處理中,首先需要在相機(jī)拍到的圖片中提取出字符所在的區(qū)域,即是進(jìn)行圖像處理的ROI區(qū)域的選取,同時(shí)我們?yōu)榱藴p少圖像處理的數(shù)據(jù)量,對(duì)ROI區(qū)域圖像進(jìn)行灰度化。得到灰度圖像之后,為了方便對(duì)字符特征的提取,需要將區(qū)域內(nèi)的字符圖像統(tǒng)一到相等的大小,即進(jìn)行圖像的歸一化操作。此時(shí)得到的圖像如圖3所示:

平滑處理是一種簡(jiǎn)單且使用頻率很高的圖像處理方法,消除圖像中的噪聲成分叫作圖像的平滑化或?yàn)V波操作。均值濾波,是最簡(jiǎn)單的一種濾波操作,輸出圖像的每一個(gè)像素是核窗口內(nèi)輸入圖像對(duì)應(yīng)像素的平均值[3]。圖像經(jīng)過(guò)均值濾波后的圖像如圖4所示:

圖像的閾值操作是最簡(jiǎn)單的圖像分割,對(duì)圖像進(jìn)行二值化后,可以進(jìn)一步降低數(shù)據(jù)的計(jì)算量,增加識(shí)別的效率。通過(guò)調(diào)用openCV里閾值操作函數(shù)對(duì)其進(jìn)行二值化,由于圖像受到光照強(qiáng)度,陰影等因素的影響,其中二值化的閾值參數(shù)的確定需要通過(guò)現(xiàn)場(chǎng)試驗(yàn)獲得,二值化后的圖像如圖5所示:

通過(guò)均值濾波之后的二值圖像,還存在著一定的離散的干擾點(diǎn),為了準(zhǔn)確地識(shí)別出字符,需要先去除這些孤立干擾點(diǎn)的影響。

在形態(tài)學(xué)操作中,腐蝕可以將圖像中面積較小的區(qū)域消除,而膨脹可以連接間距較小的區(qū)域,在膨脹和腐蝕后,目標(biāo)區(qū)域的面積變化比較大。為了讓目標(biāo)區(qū)域的面積變化較小,定義了開(kāi)運(yùn)算和閉運(yùn)算。開(kāi)運(yùn)算是用形態(tài)學(xué)運(yùn)算的內(nèi)核對(duì)圖像進(jìn)行腐蝕后,再用相同的內(nèi)核對(duì)圖像進(jìn)行膨脹。閉運(yùn)算是用形態(tài)學(xué)運(yùn)算的內(nèi)核對(duì)圖像進(jìn)行膨脹后,再用相同的內(nèi)核對(duì)圖像進(jìn)行腐蝕。開(kāi)運(yùn)算的作用與腐蝕的作用類似,閉運(yùn)算的作用與膨脹類似。

運(yùn)用開(kāi)運(yùn)算對(duì)干擾點(diǎn)區(qū)域進(jìn)行處理的效果圖如圖6所示,從圖中可以看出,運(yùn)用開(kāi)運(yùn)算可以較好地去除孤立的干擾點(diǎn)。

綜上,圖像預(yù)處理步驟如下:(1)提取ROI區(qū)域;(2)灰度化,歸一化;(3)均值濾波;(4)二值化;(5)開(kāi)運(yùn)算。

2.3.2 KNN算法

KNN算法,即KNN近鄰分類法,是一種基本的分類和回歸方法。這個(gè)算法通過(guò)先存儲(chǔ)訓(xùn)練樣本,然后通過(guò)分析新輸入的樣本周圍K最近鄰從而給出該樣本所屬的類別,所以這種算法就是基于樣本的學(xué)習(xí)算法。核心思路就是,輸入一個(gè)樣本,從訓(xùn)練樣本中找出K個(gè)與其最相近的樣本,然后計(jì)算這些樣本中相應(yīng)類別的數(shù)量,數(shù)量最多的類別就定為該樣本的類別。

K近鄰分類法的具體實(shí)現(xiàn)過(guò)程如下:(1)計(jì)算已知類別數(shù)據(jù)集中每個(gè)樣本與當(dāng)前輸入樣本的距離。(2)統(tǒng)計(jì)與當(dāng)前輸入樣本距離最近的K個(gè)點(diǎn)。(3)統(tǒng)計(jì)這K個(gè)點(diǎn)中每個(gè)樣本出現(xiàn)的頻率。(4)選取出現(xiàn)頻率最高的樣本類別返回作為當(dāng)前輸入樣本的類別。

2.3.3 字符識(shí)別關(guān)鍵模塊設(shè)計(jì)

在字符的識(shí)別過(guò)程中,先輸入在圖像預(yù)處理階段已經(jīng)生成的圖像,然后利用openCV中提供的findContours函數(shù)尋找出整張圖的輪廓數(shù)據(jù),由于還可能存在圖像非識(shí)別區(qū)域輪廓的干擾,所以應(yīng)該對(duì)其孤立干擾區(qū)域輪廓進(jìn)行去除,經(jīng)過(guò)分析可以得到,要識(shí)別的字符所具有的輪廓相對(duì)于孤立干擾區(qū)域的輪廓面積大很多,所以可以設(shè)置出一個(gè)輪廓面積臨界值來(lái)濾除掉干擾區(qū)域。

由于在實(shí)際地識(shí)別中,并不是對(duì)單個(gè)字符的識(shí)別,而是一行字符的識(shí)別,所以在識(shí)別之前,要先對(duì)一行字符進(jìn)行相應(yīng)的分割,變成一個(gè)一個(gè)字符,然后再對(duì)一個(gè)一個(gè)字符進(jìn)行識(shí)別。對(duì)字符的單個(gè)分割可以采用對(duì)輪廓的外接矩形來(lái)實(shí)現(xiàn)。用輪廓的外接矩形來(lái)將字符分割開(kāi),并對(duì)其進(jìn)行分別識(shí)別。

對(duì)于KNN算法的實(shí)現(xiàn)主要借助openCV提供的Knearest類,先輸入訓(xùn)練樣本進(jìn)行學(xué)習(xí),分別生成相應(yīng)的訓(xùn)練樣本數(shù)據(jù)文件與標(biāo)簽數(shù)據(jù)文件,通過(guò)train函數(shù)將訓(xùn)練樣本數(shù)據(jù)與標(biāo)簽數(shù)據(jù)建立對(duì)應(yīng)關(guān)系,再通過(guò)find_nearest函數(shù)輸入需要識(shí)別的樣本,通過(guò)尋找K近鄰的方法確定當(dāng)前輸入樣本的類別,即為輸出結(jié)果。識(shí)別結(jié)果如圖7所示,其中上料盒信息即為芯片的索碼號(hào)。

3 實(shí)驗(yàn)結(jié)果及分析

系統(tǒng)設(shè)計(jì)完成后,通過(guò)在生產(chǎn)現(xiàn)場(chǎng)搭建好硬件環(huán)境,調(diào)試運(yùn)行本系統(tǒng)。調(diào)試時(shí),需要先對(duì)其需要識(shí)別的字符進(jìn)行樣本的學(xué)習(xí),生成相應(yīng)的KNN算法需要的訓(xùn)練文件,其格式為XML。同時(shí),由于環(huán)境的影響,需要預(yù)先將圖像處理中二值化的閾值作為系統(tǒng)參數(shù)傳入,直接運(yùn)行系統(tǒng),識(shí)別可靠性與穩(wěn)定性很好,對(duì)于識(shí)別有誤差的字符,需要再次擴(kuò)大樣本學(xué)習(xí)的容量,實(shí)驗(yàn)證明,可以準(zhǔn)確識(shí)別。

4 結(jié)束語(yǔ)

系統(tǒng)基于KNN算法,設(shè)計(jì)出了針對(duì)工業(yè)現(xiàn)場(chǎng)的OCR系統(tǒng),經(jīng)過(guò)現(xiàn)場(chǎng)實(shí)驗(yàn),系統(tǒng)的識(shí)別結(jié)果準(zhǔn)確,運(yùn)行穩(wěn)定,為生產(chǎn)過(guò)程中的管理控制,以及自動(dòng)化提供了可靠的解決方案。

參考文獻(xiàn):

[1]肖堅(jiān).基于學(xué)習(xí)的OCR字符識(shí)別[J].計(jì)算機(jī)時(shí)代,2018,13(07):48-49.

[2]李杜,白瑞林,高保平,溫振市.工業(yè)字符識(shí)別中實(shí)用的預(yù)處理技術(shù)[J].江南大學(xué)學(xué)報(bào)(自然科學(xué)版),2011,10(01):16-17.

[3]毛星云,冷雪飛等.openCV3編程入門(mén)[M].北京:電子工業(yè)出版社,2015:154-157.

作者簡(jiǎn)介:楊廣(1995-),男,四川達(dá)州人,碩士研究生在讀,主要從事測(cè)量與控制方向的研究。

临武县| 巴林左旗| 西平县| 镇雄县| 鹤壁市| 平定县| 金阳县| 抚远县| 平武县| 洪湖市| 康乐县| 乐清市| 凤冈县| 涿州市| 锦州市| 康平县| 新安县| 雷山县| 砚山县| 台北市| 博乐市| 措美县| 普格县| 华亭县| 凭祥市| 冷水江市| 浦江县| 临沧市| 丹棱县| 长乐市| 壤塘县| 黎城县| 上栗县| 柯坪县| 鹤岗市| 苍梧县| 武威市| 桃园县| 山东省| 平度市| 萝北县|