趙云 許晶 周莉莉
【關(guān)鍵詞】貝葉斯決策;文字識別
近年來模式識別技術(shù)被廣泛應(yīng)用[1]。在我們的日常生活中,大數(shù)據(jù)中文本數(shù)據(jù)占相當(dāng)大的比例,例如使用聊天工具QQ,WeChat,Ding Talk等軟件工具時,當(dāng)遇到的圖像中有喜歡的話語、篇幅很長的文章時,由于邊看圖像邊打字不方便以及沒有耐心打完所有字體時,這時候文字識別系統(tǒng)就發(fā)揮了極大的作用。 漢字識別技術(shù)目前主要分為印刷體漢字識別和手寫體漢字識別為兩大類,手寫文字識別是指通過掃描設(shè)備將紙張上的文字信息變?yōu)閿?shù)字圖像輸入計算機,然后利用計算機對圖像中的文字進行識別的方法[2]。
常見的文字識別算法主要有最近鄰算法,支持向量機,以及BP神經(jīng)網(wǎng)絡(luò)算法等。本篇所講述的是基于最小錯誤貝葉斯算法,此算法也是平時最常見和簡單的方法之一,在常見的模式識別問題中,其目標(biāo)往往是盡量減少分類的錯誤,運用概率觀點中的貝葉斯公式,以追求最小的錯誤率。按照貝葉斯的判定原則,如果我們要預(yù)測某個樣本處于哪一種類型,需要計算所有的后驗概率P(A|B),其中后驗概率最高的那一種類型便是預(yù)測的類型。
本文中手寫文字識別系統(tǒng)主要使用最小錯誤率的貝葉斯決策,如公式(1)所示。
基于最小錯誤率的貝葉斯決策模型,需要預(yù)先知道先驗概率 和類條件概率密度 ,概率密度 反映了特征值 在類 的概率。
(一)創(chuàng)建字庫
1、圖像預(yù)處理
基于貝葉斯算法對手寫文字進行識別,需要對待識別圖片進行預(yù)處理。
對樣本圖片從處理到識別需分步驟進行,具體研究過程流程圖如圖1所示。
首先讀取訓(xùn)練樣本,對樣本進行二值化處理,設(shè)置二值化的閾值,通過閾值判斷圖像是否為目標(biāo),是則繼續(xù)判斷,否則作為背景,得到完整的二值化圖像。
接著利用imerode函數(shù)和imdilate函數(shù)對圖像進行腐蝕和膨脹操作,腐蝕與膨脹處理是一對逆操作,簡單理解為膨脹可以處理缺陷問題,腐蝕可處理不光滑的問題。膨脹就是填補缺陷,腐蝕腐蝕毛刺。圖像的膨脹原理是通過對輸入圖像中高亮區(qū)域進行膨脹處理,將高亮區(qū)域擴大。圖像的腐蝕過程恰恰與膨脹過程相反,主要通過對輸入圖像中的高亮區(qū)域進行腐蝕處理,將原有圖像中高亮區(qū)域縮小。[4]
2、圖像切割創(chuàng)建字庫
在循環(huán)中讀入訓(xùn)練樣本圖片后,首先確定文字的區(qū)域,將預(yù)處理后得到的圖像信息轉(zhuǎn)化為double型數(shù)組,對數(shù)組縱向掃描確定Y方向上的文字區(qū)域,同理橫向掃描確定X方向上的文字區(qū)域,根據(jù)X和Y方向上的文字區(qū)域即可確定文字的整體區(qū)域。
使用bwareaopen函數(shù)刪除雜質(zhì)圖像,將掃描區(qū)域局限于以文字為邊界的方形區(qū)域內(nèi),避免雜質(zhì)的影響。利用charslice函數(shù)對每個分離的字符圖片進行文字區(qū)域限定,因為需要判斷的文本字體大小相差不大,同時為了方便代碼執(zhí)行,這里將每個字符大小規(guī)格化為40×40。
得到的最終分割圖片,在循環(huán)中按照順序依次對其進行命名并保存在文件夾中,從而創(chuàng)建了字庫,其中一個訓(xùn)練樣本的切割結(jié)果,如圖2所示;創(chuàng)建的字庫部分展示,如圖3所示。
(二)特征提取及樣本訓(xùn)練
讀入生成的單字庫,設(shè)計每個樣本圖片僅包含12個中文字符,即“貝葉斯算法的手寫文字識別”。接著對每個單字圖片提取漢字特征值[5]。這里使用網(wǎng)格特征選擇,定義將每個待處理文字圖形的長、寬進行十等分,即能分為100份,樣本等分如圖4所示。
模板的大小可根據(jù)具體問題變化,且分類結(jié)果的精確度與等分的大小呈正相關(guān)。由于每一個樣本僅識別12個漢字,因此,只需考慮10×10大小的模板即可。
由于處理過后的圖片,其上所有像素點的值,非黑(0)即白(255),因此要待測樣本和這些像素點的值有關(guān)。本文對分出的這100個區(qū)域,計算黑色像素點占比ratio,如公式(5)所示,其中count表示黑色像素點的個數(shù),cellRow*cellCol為總像素點個數(shù)。
由此可得到100個介于0至1之間的小數(shù)。我們將其用1×100的向量表示,即圖片的特征向量。
對每個單字庫圖片提取特征值后,依次將所有的樣本數(shù)據(jù)保存在文件中,樣本特征提取完成。
如圖將“文字識別”作為待測樣本輸入到程序中,首先對待測樣本進行預(yù)處理以及圖像切割成單字圖片,待測樣本切割圖如圖5所示,對其進行特征提取通過貝葉斯分類器分類識別出的結(jié)果如圖6所示。
最小錯誤率的貝葉斯決策就是按后驗概率的大小判斷,對比出最大后驗概率所屬類別的判決函數(shù)值[6],就歸于哪個類別。貝葉斯分類器首先分析出先驗概率prior,即出現(xiàn)每個漢字的可能性,接著對每個字庫的漢字的每個10*10的模塊進行處理,經(jīng)過計算得到類條件概率,接著根據(jù)這些條件代入貝葉斯公式,得到后驗概率,計算概率最大值和其所在位置,可得到漢字的類號。
本研究結(jié)果表明基于貝葉斯分類器算法可運用于手寫文字圖像識別這一模塊。在實際問題研究中,一般存在一些不精確的條件概率密度,需要人為估算出線性函數(shù)或非線性函數(shù),會對結(jié)果造成一定的誤差。通過對圖像進行灰度化,二值化,腐蝕,切割和膨脹等操作實現(xiàn)文字的特征提取,并對樣本進行訓(xùn)練,再基于最小錯誤貝葉斯分類器對文字進行識別,代碼運行結(jié)果與預(yù)期結(jié)果一致。文字識別這一模塊在智能化未來會有很大的發(fā)展空間,在現(xiàn)實生活中,識別應(yīng)用還未普及到日常生活中,可對這一領(lǐng)域進行深入研究。