• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

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

      2019-08-29 08:03:26張紅霞白志城付秀娟剛2梅天燦2王學(xué)華
      計算機測量與控制 2019年8期
      關(guān)鍵詞:字符識別分塊字符

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

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

      0 引言

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

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

      1 圖像預(yù)處理

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

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

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

      1.1 圖像伽馬增強

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

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

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

      1.2 局部曝光處理

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

      1.2.1 圖像分塊操作

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

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

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

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

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

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

      非曝光區(qū)域也定義為標(biāo)準(zhǔn)分塊區(qū)。為了簡便操作, 將縱向和橫向余留區(qū)劃分為感興趣區(qū)域, 分兩段式處理整個區(qū)域, 如公式1-1。確定曝光區(qū)域后因為背景的灰度不均勻性, 需要做出不同灰度級處理, 以每個塊的像素值imin為閾值將兩段式函數(shù)再次細分處理。

      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 字符圖像分割詳細流程圖

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

      1.2.4 二值化

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

      2 字符分割

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

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

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

      2.2 單個字符的分割

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

      表1 像素值矯正中的k值

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

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

      (2)

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

      (3)

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

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

      3 字符識別

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

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

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

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

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

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

      Sequential模型是是單輸入和單輸出型簡單模型, 層與層之間只有相鄰關(guān)系。在本實驗中搭建的3層卷積網(wǎng)絡(luò)中加上激活函數(shù)ReLU, 最后接池化層max-pooling和2個全連接網(wǎng)絡(luò)Dense, 以單個神經(jīng)元和激活函數(shù)Softmax結(jié)束模型, 這種配置會產(chǎn)生多分類的結(jié)果, 為了與這種配置相適應(yīng), 使用categorical_crossentropy作為損失函數(shù)。利用.flow_from_directory函數(shù)從jpgs圖片中直接產(chǎn)生數(shù)據(jù)和標(biāo)簽, 并根據(jù)這個生成器來訓(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個字符文件, 驗證集230個字符文件。模型訓(xùn)練反復(fù)調(diào)整參數(shù), 定義batch_size=256, epoch=70。在CPU上訓(xùn)練這個模型的loss、acc、value_loss和value_acc與epoch的關(guān)系如圖9所示。loss和value_loss隨著epoch的增大依次減小, 不斷趨近于0; acc和value_loss隨著epoch的增大依次增大, 不斷趨近于1。

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

      5 結(jié)束語

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

      猜你喜歡
      字符識別分塊字符
      尋找更強的字符映射管理器
      分塊矩陣在線性代數(shù)中的應(yīng)用
      字符代表幾
      一種USB接口字符液晶控制器設(shè)計
      電子制作(2019年19期)2019-11-23 08:41:50
      消失的殖民村莊和神秘字符
      一種改進深度學(xué)習(xí)網(wǎng)絡(luò)結(jié)構(gòu)的英文字符識別
      儀表字符識別中的圖像處理算法研究
      反三角分塊矩陣Drazin逆新的表示
      基于自適應(yīng)中值濾波的分塊壓縮感知人臉識別
      基于CUDA和深度置信網(wǎng)絡(luò)的手寫字符識別
      龙陵县| 安图县| 盘锦市| 呼伦贝尔市| 金坛市| 长海县| 襄汾县| 浑源县| 丰原市| 扶余县| 息烽县| 灵宝市| 榕江县| 宁远县| 永安市| 兴隆县| 呼图壁县| 潮州市| 卓资县| 若尔盖县| 昌都县| 丰城市| 怀柔区| 康定县| 巴林右旗| 东乡族自治县| 定陶县| 兴文县| 定兴县| 松溪县| 富源县| 新乐市| 亳州市| 饶平县| 延川县| 怀柔区| 黄冈市| 宾川县| 久治县| 新平| 克东县|