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

?

復(fù)雜背景圖像的字符識(shí)別算法研究

2019-08-29 08:03:26張紅霞白志城付秀娟剛2梅天燦2王學(xué)華
關(guān)鍵詞:字符識(shí)別分塊字符

張紅霞, 王 燦, 劉 鑫, 白志城, 付秀娟, 王 剛2, 梅天燦2, 王學(xué)華

(1.武漢工程大學(xué) 材料科學(xué)與工程學(xué)院,武漢 430205; 2.武漢大學(xué) 電子信息學(xué)院,武漢 430070)

0 引言

隨著信息通信技術(shù)的迅猛發(fā)展, 人工智能涉及生活圈的方方面面, 其中智能化生產(chǎn)就是最常見(jiàn)的。字符刻印是產(chǎn)品的唯一標(biāo)識(shí), 在大規(guī)模的產(chǎn)品生產(chǎn)、存儲(chǔ)、檢測(cè)和裝配線(xiàn)上, 產(chǎn)品的字符標(biāo)記顯得尤為重要。通過(guò)智能化的設(shè)備對(duì)現(xiàn)實(shí)背景下的產(chǎn)品進(jìn)行身份識(shí)別是智能化生產(chǎn)的基本功能需求。這種字符識(shí)別的系統(tǒng)一般包括3個(gè)方面: 產(chǎn)品圖像的獲取與預(yù)處理, 字符分割和字符識(shí)別?;谧址麍D像的預(yù)處理過(guò)程最大程度的優(yōu)化圖像, 獲取清晰連貫的字符邊緣是字符分割與識(shí)別的首要條件, 但是在自然光下獲取的圖像信息存在部分不滿(mǎn)足智能識(shí)別要求的缺陷, 如噪聲污染, 局部曝光, 字符部分缺失、模糊和變形等, 如何提高這些缺陷字符的識(shí)別質(zhì)量是研究人員一直關(guān)注的熱點(diǎn)問(wèn)題[1-2]。

字符識(shí)別常用模板匹配和深度學(xué)習(xí)[3-5], 對(duì)于復(fù)雜環(huán)境下的不同產(chǎn)品而言, 字符識(shí)別系統(tǒng)對(duì)算法的魯棒性有著更高要求, 所以單一地運(yùn)用某種方法不能解決整個(gè)問(wèn)題[6], 字符識(shí)別系統(tǒng)各個(gè)環(huán)節(jié)的改進(jìn)與創(chuàng)新都是當(dāng)前人工智能的熱點(diǎn)。本文通過(guò)伽馬增強(qiáng)矯正字符圖像的對(duì)比度, 設(shè)計(jì)了一種獲取曝光區(qū)域并進(jìn)行像素均衡化的局部曝光圖像處理算法, 對(duì)其進(jìn)行二值化、膨脹腐蝕、旋轉(zhuǎn)矯正、開(kāi)閉運(yùn)算等預(yù)處理操作獲得較為完整的字符邊緣。最后由分步分割獲取的字符樣本圖像構(gòu)建訓(xùn)練集, 利用Keras模型提供的API接口, 構(gòu)建了一個(gè)三層卷積神經(jīng)網(wǎng)絡(luò), 通過(guò)字符識(shí)別訓(xùn)練實(shí)現(xiàn)了對(duì)局部曝光字符的可靠識(shí)別。

1 圖像預(yù)處理

圖像預(yù)處理能有效控制圖像的噪聲干擾, 矯正字符斷裂, 扭曲變形, 甚至局部曝光等問(wèn)題, 對(duì)于后期字符分割和識(shí)別起到了至關(guān)重要的作用。本文字符識(shí)別系統(tǒng)的整體結(jié)構(gòu)如圖1所示。

圖1 產(chǎn)品零件表面的字符識(shí)別系統(tǒng)簡(jiǎn)易架構(gòu)

圖2為拍攝某產(chǎn)品零件獲取的印刷字符圖像, 圖像中字符信息包括產(chǎn)品標(biāo)記符, 字母, 阿拉伯?dāng)?shù)字以及一些間隔符號(hào)等, 且字符中并沒(méi)有“I”, “Z”, “O” 的字母, 降低了與“1”, “2”, “0” 在字符切割和識(shí)別過(guò)程中的復(fù)雜度。由于拍攝角度和現(xiàn)場(chǎng)環(huán)境原因?qū)е聢D像曝光不均勻, 存在局部曝光過(guò)度的情況, 其次背景材料為金屬材料, 在空氣中容易氧化銹蝕, 導(dǎo)致局部位置存在顯著的“暗斑” 和“亮斑”, 增加了圖像預(yù)處理過(guò)程中的噪聲; 另外, 字符在印刷過(guò)程中由于振動(dòng)或者速度原因?qū)е虏糠肿址麛嗔? 部分字符粘連等現(xiàn)象。為了實(shí)現(xiàn)這些字符信息的準(zhǔn)確識(shí)別, 需要對(duì)圖像進(jìn)行合理的前處理過(guò)程。

1.1 圖像伽馬增強(qiáng)

不同光照強(qiáng)度下獲得的圖像背景灰度不一致和細(xì)節(jié)丟失問(wèn)題, 采用伽馬增強(qiáng)運(yùn)算s=crγ, 取修正參數(shù)γ=0.8,c=1, 將字符圖像的背景灰度級(jí)即r都增強(qiáng)到一定的像素值范圍內(nèi)即s, 既增強(qiáng)了圖像的對(duì)比度和亮度, 也保證了后期局部曝光過(guò)程的灰度變換等操作。利用圖2(a)所示的圖像進(jìn)行伽馬增強(qiáng)之后得到的灰度圖像如圖2(b)。

圖2 產(chǎn)品零部件印刷字符圖像及灰度圖

調(diào)整γ=p/10,p=1,2,…10, 隨著γ的增大, 圖像的背景顏色不斷加深, 二值化字符圖像邊緣斷裂情況越明顯。當(dāng)γ<0.6時(shí), 字符局部曝光區(qū)域與背景像素值相近, 字符邊緣不易識(shí)別; 當(dāng)γ=0.8時(shí), 如圖3背景像素值集中在130~200之間, 使得像素值i∈(0,130)的點(diǎn)得到減弱,i∈(130,200)的點(diǎn)得到增強(qiáng),i∈(200,255)的點(diǎn)保持不變. 伽馬增強(qiáng)拉伸了圖像中灰度級(jí)較低的區(qū)域, 同時(shí)壓縮了灰度級(jí)較高的部分, 從而保留了字符邊緣點(diǎn)的像素值, 確定了所有字符圖像局部曝光區(qū)域的及處理。

1.2 局部曝光處理

圖像的灰度直方圖表明背景灰度值明顯存在分布不均勻現(xiàn)象[7-9], 伽馬增強(qiáng)后圖像像素值大部分集中在在130~200范圍內(nèi), 若像素分布相差較大直接二值化會(huì)導(dǎo)致噪聲影響字符的邊緣檢測(cè), 輪廓被噪聲覆蓋或者斷裂。如圖4(a)為閾值T=170時(shí)字符圖像的二值化效果圖, 可以看出背景噪聲與字符區(qū)域相互作用形成字符聯(lián)通或斷裂, 難以進(jìn)行字符的自動(dòng)分割。需要對(duì)圖像進(jìn)行分塊操作, 解決局部曝光造成的分割問(wèn)題[10]。

1.2.1 圖像分塊操作

圖2(a)可以看出單個(gè)字符所在的局部矩形方塊內(nèi)的像素點(diǎn)個(gè)數(shù)是在一定的范圍內(nèi)分布。過(guò)少的像素點(diǎn)數(shù)則表示較暗的區(qū)域, 需要保留其原像素值或者增大像素值以達(dá)到背景均衡化; 過(guò)多的像素點(diǎn)數(shù)則表示噪聲聚集區(qū), 需要分離背景與感興趣的字符區(qū)域, 降低背景像素值。為了找出感興趣區(qū)域(ROI)即局部曝光區(qū)域, 可以對(duì)整體圖像(1 895×417像素)進(jìn)行分塊處理, 圖5為分塊原理圖。

圖5 字符圖像分塊原理圖(單位: 像素)

從字符大小和噪聲區(qū)域觀(guān)察分析判斷塊高H在一個(gè)字符高度, 塊寬W≈2H時(shí), 能最有效保證完整的字符邊緣和局部曝光操作, 對(duì)噪聲的處理也比較細(xì)致。對(duì)不同塊的個(gè)數(shù)進(jìn)行試驗(yàn)發(fā)現(xiàn), 取整塊數(shù)目為5×10時(shí), 相同二值化閾值下有較好的二值化效果, 增大分塊數(shù)量導(dǎo)致基于像素點(diǎn)的操作時(shí)間長(zhǎng), 計(jì)算復(fù)雜度高而且不能保證單個(gè)字符邊緣的完整性。減小分塊數(shù)量不能保證局部曝光塊的細(xì)致處理。

1.2.2 確定局部曝光區(qū)域

感興趣區(qū)域即曝光區(qū)域定義為在一個(gè)塊區(qū)域內(nèi), 像素值i大于整幅圖二值化閾值的像素點(diǎn)個(gè)數(shù)Q超過(guò)該塊區(qū)域面積S的50%, 則這個(gè)塊為感興趣區(qū)域(ROI)?;谌址謮K化確定感興趣區(qū)域的方法可以保證應(yīng)對(duì)不同曝光圖片時(shí)算法的自適應(yīng)性。分塊是基于像素點(diǎn), 整個(gè)區(qū)域在縱向和橫向的分塊上會(huì)存在余留區(qū), 在圖像的噪聲處理時(shí)余留區(qū)也需要同時(shí)處理。

1.2.3 對(duì)曝光和非曝光區(qū)域進(jìn)行不同噪聲處理

非曝光區(qū)域也定義為標(biāo)準(zhǔn)分塊區(qū)。為了簡(jiǎn)便操作, 將縱向和橫向余留區(qū)劃分為感興趣區(qū)域, 分兩段式處理整個(gè)區(qū)域, 如公式1-1。確定曝光區(qū)域后因?yàn)楸尘暗幕叶炔痪鶆蛐? 需要做出不同灰度級(jí)處理, 以每個(gè)塊的像素值imin為閾值將兩段式函數(shù)再次細(xì)分處理。

f1j(i)=K1×i,imin∈(0,100)∪

(100,120)∪(120,130)∪(130,140),

f2j(i)=K2×i,imin∈(0,140)∪

(140,160)∪(160,255),j=1,2,3…

(1)

圖6 字符圖像分割詳細(xì)流程圖

f1j(i)中j=4,f2j(i)中j=3,K1與K2為矯正常數(shù)。j值越大, 則圖像像素值分類(lèi)越細(xì),j值越小, 則圖像像素值分類(lèi)越疏。伽馬增強(qiáng)后像素值集中分布為130~255,較低的像素值分布代表“暗區(qū)域”, 較高的像素值分布代表“亮區(qū)域”, 增加較低的像素值, 降低較高的像素值, 以T為閾值重新分布閾值, 定義c|=i/10, 統(tǒng)計(jì)對(duì)應(yīng)c值的概率pc=nc/n(nc為c值對(duì)應(yīng)的像素?cái)?shù),n為該塊的像素總數(shù))。通過(guò)概率分布將像素值做出如表1的矯正。

1.2.4 二值化

矯正后的像素值依次按照原像素點(diǎn)的位置處理原圖, 得到相同閾值下二值化圖如圖4(b)所示。局部曝光區(qū)域噪聲有了明顯的減少, 且依舊保持字符的清晰邊緣, 銹蝕區(qū)域?qū)е碌淖址吘壌?lián)消失, 在一定程度上解決了因局部曝光造成字符難以分割的影響。

2 字符分割

字符分割不僅要保證字符邊緣的完整性且需整齊歸一化, 才能保證整個(gè)流程的穩(wěn)定性和廣泛適用性[11-12]。圖4(b)可以清晰看出部分字符邊緣的缺失斷裂, 以及不需要識(shí)別的產(chǎn)品標(biāo)記符。為了穩(wěn)定快速的讀取字符信息, 對(duì)“特殊標(biāo)志符” 和“有效的單個(gè)字符” 依次進(jìn)行分割, 使得整體分割圖像中不存在干擾標(biāo)記, 單個(gè)字符互不關(guān)聯(lián)。

2.1 去掉“特殊標(biāo)志符”

除了需要識(shí)別的字符外, 字符圖像還包含產(chǎn)品特定即特殊的標(biāo)志符不在識(shí)別范圍內(nèi), 為了避免不必要的分割誤差和識(shí)別錯(cuò)誤率, 將“特殊標(biāo)志符” 在分割過(guò)程中直接“抹黑”。“特殊標(biāo)志符”具有面積大, 寬和高的數(shù)值較大, 像素點(diǎn)之間存在斷裂, 與字符距離較遠(yuǎn)的特點(diǎn)。結(jié)合OpenCV機(jī)器視覺(jué)庫(kù)的封裝接口利用數(shù)學(xué)形態(tài)學(xué)的膨脹、腐蝕和開(kāi)閉運(yùn)算, 去掉高度小于標(biāo)準(zhǔn)字符高度的一般“特殊標(biāo)志符”及預(yù)處理未完全去除干凈的“亮斑”、“暗斑” 和最大高度的“特殊標(biāo)志符”等, 詳細(xì)的字符分割流程圖如圖6。

2.2 單個(gè)字符的分割

初步分割之后的圖像存在部分字符“粘連”, 如圖6(b)所示。為了防止識(shí)別過(guò)程出現(xiàn)多個(gè)字符連接導(dǎo)致的互相干擾的情況, 以除字符“1”以外的最小字符的寬為標(biāo)準(zhǔn)寬ws, 當(dāng)最小外矩形的寬w/ws取整m時(shí)分別將最小外接矩形進(jìn)行等分分割, 如公式(2)和(3), 并將每個(gè)字符左右裁邊2個(gè)像素值截取保留。

表1 像素值矯正中的k值

確定粘連字符的最小外接矩形的寬度w:

m=|w/ws|,m=1,2,3…

(2)

已知粘連外接矩形的點(diǎn)(x,y), 寬w, 和高h(yuǎn), 分割第i個(gè)最小矩形的參數(shù):

(3)

由于最小外接矩形中字符“1” 的寬度最小, 其他字符的印刷寬度是一致的。以除“1” 外最小寬度的字符為標(biāo)準(zhǔn)既排除了其他字符因印刷不規(guī)范或拍攝角度導(dǎo)致的寬度變形, 又保證了分割過(guò)程中m取整的標(biāo)準(zhǔn)性。整體分割后的部分單個(gè)字符圖像如圖7(a)所示。

圖7 字符圖像分割效果(部分字符)

3 字符識(shí)別

字符識(shí)別常用模板匹配和神經(jīng)網(wǎng)絡(luò)兩種算法。模板匹配算法計(jì)算量大, 匹配過(guò)程要求嚴(yán)格; 卷積神經(jīng)網(wǎng)絡(luò)(CNN)對(duì)高維數(shù)據(jù)處理高效, 特征分類(lèi)效果好[13-15], 可用于識(shí)別各種物體。由于實(shí)驗(yàn)待識(shí)別的圖片數(shù)量少, 分割之后待識(shí)別字符的數(shù)據(jù)集小, 實(shí)驗(yàn)表明CNN網(wǎng)絡(luò)也適用于小數(shù)據(jù)集的訓(xùn)練, 有較高的識(shí)別率。

3.1 準(zhǔn)備訓(xùn)練集、驗(yàn)證集與測(cè)試集

統(tǒng)計(jì)7張待識(shí)別圖片的分割字符, 部分字符“I”, “Z”, “O” 等因字符間相似不存在印刷和識(shí)別過(guò)程, 整理把數(shù)據(jù)集分為27類(lèi), 形成每類(lèi)含有7~20張不等的測(cè)試集。為了盡量利用有限的訓(xùn)練數(shù)據(jù), 通過(guò)Keras提供的ImageGenerator函數(shù)對(duì)原始樣本圖像實(shí)現(xiàn)一系列旋轉(zhuǎn)、移動(dòng)、剪切變換、放大縮小, 水平變換等隨機(jī)變換, 將數(shù)據(jù)集進(jìn)行提升, 如圖7(c)。訓(xùn)練模型中不存在兩張完全相同的圖片, 有利于抑制過(guò)擬合, 使得模型的泛化能力更好。提升后形成每類(lèi)有110~200張不等的訓(xùn)練集, 將訓(xùn)練集和驗(yàn)證集的比例控制在10:1左右。

整理所有字符文件, 將圖片格式保存成單通道的二值化圖片, 白字黑底, 并將所有圖片歸一化到60×40像素值大小的格式如圖7(b), 降低計(jì)算復(fù)雜度, 保證后期模型訓(xùn)練。

3.2 搭建與訓(xùn)練模型

卷積神經(jīng)網(wǎng)絡(luò)可對(duì)圖像進(jìn)行正確的分類(lèi), Keras模塊是基于Tensorflow、Theano等后端的高層神經(jīng)網(wǎng)絡(luò)框架, 可在CPU和GPU之間無(wú)縫切換, 執(zhí)行效率高。由于27類(lèi)小數(shù)據(jù)集的應(yīng)用, 所以模型使用簡(jiǎn)單的三層卷積網(wǎng)絡(luò)結(jié)構(gòu), 數(shù)據(jù)模型采用Sequential模型。

Sequential模型是是單輸入和單輸出型簡(jiǎn)單模型, 層與層之間只有相鄰關(guān)系。在本實(shí)驗(yàn)中搭建的3層卷積網(wǎng)絡(luò)中加上激活函數(shù)ReLU, 最后接池化層max-pooling和2個(gè)全連接網(wǎng)絡(luò)Dense, 以單個(gè)神經(jīng)元和激活函數(shù)Softmax結(jié)束模型, 這種配置會(huì)產(chǎn)生多分類(lèi)的結(jié)果, 為了與這種配置相適應(yīng), 使用categorical_crossentropy作為損失函數(shù)。利用.flow_from_directory函數(shù)從jpgs圖片中直接產(chǎn)生數(shù)據(jù)和標(biāo)簽, 并根據(jù)這個(gè)生成器來(lái)訓(xùn)練網(wǎng)絡(luò), 網(wǎng)絡(luò)結(jié)構(gòu)如圖8。

圖8 Keras卷積網(wǎng)絡(luò)結(jié)構(gòu)

4 數(shù)據(jù)分析

訓(xùn)練集4490個(gè)字符文件, 驗(yàn)證集230個(gè)字符文件。模型訓(xùn)練反復(fù)調(diào)整參數(shù), 定義batch_size=256, epoch=70。在CPU上訓(xùn)練這個(gè)模型的loss、acc、value_loss和value_acc與epoch的關(guān)系如圖9所示。loss和value_loss隨著epoch的增大依次減小, 不斷趨近于0; acc和value_loss隨著epoch的增大依次增大, 不斷趨近于1。

隨機(jī)連續(xù)取5次epoch的數(shù)據(jù)如表2所示, 當(dāng)epoch=65時(shí), 準(zhǔn)確率高達(dá)96.91%, 損失值低為0.0969, 實(shí)驗(yàn)表明隨著epoch的增大, 損失值越來(lái)越小, 準(zhǔn)確率越來(lái)越大, 且訓(xùn)練集和測(cè)試集近似相等。記錄得到每個(gè)epoch在CPU上耗時(shí)80~150 s。訓(xùn)練的模型穩(wěn)定良好, 可以保證字符全部識(shí)別, 速度快且準(zhǔn)確率高。

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

系統(tǒng)由VS2015開(kāi)發(fā)平臺(tái)采用C++編碼, 在CPU主頻3.2 GHz, 8 G內(nèi)存的Windows 7(64位)電腦平臺(tái)上開(kāi)發(fā)實(shí)現(xiàn)并測(cè)試識(shí)別效果。結(jié)合OpenCV機(jī)器視覺(jué)庫(kù)和Keras的高層神經(jīng)網(wǎng)絡(luò)API, 本文對(duì)局部曝光的工業(yè)零部件印刷字符進(jìn)行取圖, 曝光預(yù)處理, 單個(gè)字符的分割, 圖像歸一化和CNN神經(jīng)網(wǎng)絡(luò)識(shí)別處理, 從像素值的參數(shù)調(diào)整上解決了局部曝光和自然環(huán)境下背景污染問(wèn)題, 并以小數(shù)據(jù)集的提升構(gòu)建神經(jīng)網(wǎng)絡(luò)模型, 實(shí)現(xiàn)了小數(shù)據(jù)集下的96.9%的正確識(shí)別率。

猜你喜歡
字符識(shí)別分塊字符
尋找更強(qiáng)的字符映射管理器
分塊矩陣在線(xiàn)性代數(shù)中的應(yīng)用
字符代表幾
一種USB接口字符液晶控制器設(shè)計(jì)
電子制作(2019年19期)2019-11-23 08:41:50
消失的殖民村莊和神秘字符
一種改進(jìn)深度學(xué)習(xí)網(wǎng)絡(luò)結(jié)構(gòu)的英文字符識(shí)別
儀表字符識(shí)別中的圖像處理算法研究
反三角分塊矩陣Drazin逆新的表示
基于自適應(yīng)中值濾波的分塊壓縮感知人臉識(shí)別
基于CUDA和深度置信網(wǎng)絡(luò)的手寫(xiě)字符識(shí)別
清水河县| 隆林| 皮山县| 原阳县| 尖扎县| 文水县| 准格尔旗| 任丘市| 兴海县| 徐汇区| 浮山县| 固原市| 禹城市| 崇信县| 淄博市| 浪卡子县| 汶川县| 赤峰市| 于都县| 云浮市| 甘谷县| 普洱| 武清区| 淳安县| 星子县| 瑞昌市| 乡宁县| 天柱县| 合江县| 屯昌县| 五华县| 慈利县| 杭州市| 革吉县| 平原县| 宁武县| 丹巴县| 富蕴县| 宣武区| 南汇区| 双辽市|