莊家俊,冼文鋒,王前
(仲愷農(nóng)業(yè)工程學院計算科學學院,廣州510225)
信息時代,大量信息通常以文字(明文)的形式存儲在互聯(lián)網(wǎng)中;不同于明文,盲文是盲人教育體系中的一種基礎(chǔ)性文化知識的重要傳播媒介,其與明文之間存在顯著差異[1]。長期以來,盲文翻譯系統(tǒng)是盲人群體快速獲取海量互聯(lián)網(wǎng)信息的一種重要手段[2],而盲文翻譯結(jié)果的正確性依賴于盲文字符識別的準確性。目前,常用的盲文字符識別方法主要采用圖像處理和機器學習技術(shù)[3-6]。尹佳等人[3]采用全局閾值圖像分割法和數(shù)學形態(tài)學運算提取盲文圖像中的字符區(qū)域,但該方法要求輸入字符具有相似的成像尺度;李婷[5]采用基于堆疊去噪自動編碼器的深度學習模型實現(xiàn)盲文字符識別,有效提高了多場景中盲文字符識別的準確率;李榮瑞等人[6]通過卷積神經(jīng)網(wǎng)絡自動提取盲文字符圖像特征,識別準確率達到了98.62%。上述基于深度學習的識別方法雖能顯著提高盲文字符識別準確率,但對專屬GPU 硬件的要求較高、且學習模型訓練開銷較高,而傳統(tǒng)基于圖像處理的方法則普遍要求輸入的盲文圖像源自特定應用場景,極易受到盲文出版物掃描方式的影響,如難以適應發(fā)生旋轉(zhuǎn)畸變的盲文圖像。為權(quán)衡盲文字符識別的準確率和識別模型的計算資源開銷,結(jié)合盲文字符特有的形態(tài)結(jié)構(gòu)特征和傳統(tǒng)的BP神經(jīng)網(wǎng)絡算法,提出了一種新穎魯棒的盲文字符識別方法,以進一步提高盲文字符識別系統(tǒng)的實用性。
下面提出盲文字符識別方法主要包括盲文字符分割與校正、字符提取和字符識別三個主要部分。
盲文屬于一種借助觸感感知的特殊字符,不少盲文圖像是通過紙質(zhì)材料的電子掃描方式獲得,圖1(a)給了一幅通過電子掃描方式獲取的盲文圖像。為避免掃描過程中可能引入的加性噪聲,首先通過方差為1.5、模板尺寸為3×3 像素的高斯均值濾波器對盲文圖像進行預處理。由圖1(a)可知,盲文字符結(jié)構(gòu)與紙質(zhì)材料之間存在一定的成像差異性,采用OTSU 閾值分割算法[7]實現(xiàn)盲文字符區(qū)域的前景分割;閾值分割結(jié)果中仍可能存在部分干擾噪點,進一步基于尺寸為5×5像素的方形結(jié)構(gòu)元,采用數(shù)學形態(tài)學開運算處理所得的Otsu 閾值分割結(jié)果,處理效果如圖1(b)所示。
圖1 盲文字符分割結(jié)果
盲文出版物經(jīng)過多次翻閱容易導致其表面出現(xiàn)一定程度的紙張彎曲,且電子掃描過程中無法總能確保紙質(zhì)材料擺放方位的一致性,可能導致掃描圖像中盲文字符的凸點輪廓發(fā)生旋轉(zhuǎn)畸變,如圖1 所示。為此,采用Hough 變換[8]檢測圖像中的字符線條,以直線檢測的方式校正盲文字符的旋轉(zhuǎn)畸變。為便于檢測如圖1(b)所示圖像中的字符線條,基于尺寸為35×35 像素的方形結(jié)構(gòu)元,首先通過形態(tài)學膨脹運算處理圖1(b)所示的圖像,通過Canny 算子對膨脹后的字符區(qū)域進行邊緣提取,繼而采用Hough 變換實現(xiàn)直線檢測,結(jié)果如圖2(a)所示;進一步,將Hough 變換所得的最長線條為基礎(chǔ),計算其與水平線之間的夾角(直線斜率),從而得到盲文圖像的旋轉(zhuǎn)校正角度,通過該角度實現(xiàn)盲文字符的旋轉(zhuǎn)畸變校正,校正結(jié)果如圖2(b)所示,校正后的盲文圖像有利于提高后續(xù)盲文字符提取結(jié)果的精確性。
圖2 盲文字符校正結(jié)果
鑒于盲文字符特殊的形態(tài)結(jié)構(gòu)特征(如圖3 所示),盲文段落與普通文本文檔段落之間存在較大的差異性,常規(guī)的投影法[9]可能難以準確提取獨立的盲文字符,如空方字符(即圖3 所示6 個結(jié)構(gòu)點位均為空時)將被直接投影成背景區(qū)域。針對該問題,結(jié)合盲文字符的形態(tài)結(jié)構(gòu)特征,將字符寬度估算融入常規(guī)投影法中,提出了一種基于盲文字符形態(tài)結(jié)構(gòu)連接約束的改進投影法。
改進投影法的基本步驟如下:①對校正后的盲文字符圖像進行適當尺度膨脹處理,如采用尺寸為15×15像素的方形結(jié)構(gòu)元,通過膨脹運算連接垂直及水平方向上的同一個盲文字符(視為形態(tài)結(jié)構(gòu)連接約束),防止投影過程中的獨立字符被分離成多個子區(qū)域;值得指出的是,步驟(1)中結(jié)構(gòu)元的尺寸必須足夠大以確保膨脹后字符的各點位結(jié)構(gòu)具備連通性質(zhì);②基于膨脹后的字符圖像,按行進行字符段落的切割,并采用與膨脹運算相同的結(jié)構(gòu)元,通過形態(tài)學腐蝕運算處理行切割后的字符段落,以還原盲文字符原有尺寸;③對膨脹后的字符段落進行垂直方向上的像素投影,為確保投影后潛在字符區(qū)域內(nèi)可完整包含盲文的所有結(jié)構(gòu)點,保守地選擇最大字寬數(shù)值以確定盲文字寬,并通過最小區(qū)域間隔修正相鄰的盲文字符字寬,即在最大字寬條件下從左至右掃描同一行切割段落上的所有字符,以前一個字符區(qū)域的右邊界作為后一個字符區(qū)域的左邊界,掃描過程基于腐蝕還原后的字符段落。圖4 給出了如圖2(b)所示第一行部分盲文圖像的字符提取結(jié)果。
圖3 盲文字符的點位形態(tài)結(jié)構(gòu)圖
圖4 基于改進投影法的獨立盲文字符提取
由圖3 所示的盲文字符形態(tài)結(jié)構(gòu)可知,一個盲文字符由6 個點位結(jié)構(gòu)組成,每個點位結(jié)構(gòu)各有兩種不同的狀態(tài)(即開或關(guān)),不同于普通文本文檔中的字符識別任務,盲文字符總數(shù)僅為26=64,所以盲文字符識別任務面對的是一個64 類模式分類問題。直接將提取后的盲文字符區(qū)域通過像素灰度值并接方式(即采用先按行后按列的模式逐一提取字符區(qū)域的像素灰度值)轉(zhuǎn)成對應的特征向量,并采用適合多類模式分類的BP 神經(jīng)網(wǎng)絡算法構(gòu)建判別字符特征向量的分類器。
鑒于盲文字符識別面臨的是較多模式類別(相比較于多數(shù)產(chǎn)品缺陷檢測或質(zhì)量評判問題)的分類問題,常規(guī)單隱含層結(jié)構(gòu)的BP 神經(jīng)網(wǎng)絡可能難以較好地擬合盲文字符的特征向量,為此,分別采用基于雙隱含層和三隱含層結(jié)構(gòu)的BP 神經(jīng)網(wǎng)絡模型建立策略。在上述兩種結(jié)構(gòu)的BP 神經(jīng)網(wǎng)絡模型中,設(shè)置隱含層神經(jīng)元數(shù)量分別為10、20、32、64、200 和784 個,以探討隱含層神經(jīng)元數(shù)量對盲文字符識別結(jié)果的影響程度;其中,隱含層和輸出層的激活函數(shù)均采用Logistic 函數(shù)。
這里共采集了200 幅分辨率為800 像素×480 像素盲文圖像,按4:1 的方式隨機將其劃分為訓練數(shù)據(jù)集(包含160 幅圖像)和測試數(shù)據(jù)集(包含40 幅圖像),并提取出訓練數(shù)據(jù)集中的所有盲文字符組成訓練樣本集;為訓練一個具有良好泛化性能的BP 神經(jīng)網(wǎng)絡模型,對訓練樣本集中的各類別字符通過隨機旋轉(zhuǎn)和平移的方式適當擴充訓練數(shù)據(jù)總量,如此,每類盲文字符各包含1200個訓練樣本,64 類盲文字符共有76800 個訓練樣本,充足的訓練樣本數(shù)量有利于避免BP 神經(jīng)網(wǎng)絡模型對少量數(shù)據(jù)的過擬合效應,圖5 給出了部分訓練樣本示例,所有訓練樣本均被尺度縮放至28×28 像素。40 幅測試圖像中共包含待識別字符總數(shù)為19200,且所有字符均通過人工標定以形成算法驗證的客觀標準。
圖5 部分盲文字符訓練樣本示例
文中實驗運行在搭載Intel i5-6300HQ(2.30 GHz)CPU 和8 GB 內(nèi)存的計算機平臺上,相關(guān)算法的運行環(huán)境為MATLAB R2017a。基于不同隱含層層數(shù)及神經(jīng)元數(shù)量的BP 神經(jīng)網(wǎng)絡參數(shù)設(shè)置條件下,表1 給出了常規(guī)投影法[9]和文中改進投影法在40 副測試圖像上的盲文字符提取準確率,該準確率定義為測試圖像中被正確識別的字符數(shù)量與字符總數(shù)(19200)之比。
表1 不同投影方法及BP 神經(jīng)網(wǎng)絡結(jié)構(gòu)參數(shù)配置下的盲文字符識別準確率
從表1 中可以看出,不管基于何種字符提取方法(投影方法),最終的盲文字符識別準確率與BP 神經(jīng)網(wǎng)絡隱含層層數(shù)關(guān)聯(lián)度較小,即在同一神經(jīng)元數(shù)量配置的前提下,雙隱含層與三隱含層結(jié)構(gòu)的網(wǎng)絡模型具有類似的識別結(jié)果;但在隱含層層數(shù)相同的前提下,BP神經(jīng)網(wǎng)絡的字符識別結(jié)果對隱含層神經(jīng)元的數(shù)量非常敏感。顯然,隨著隱含層神經(jīng)元數(shù)量的增加,BP 神經(jīng)網(wǎng)絡更適合于盲文字符識別任務,可能是因為隱含層神經(jīng)元數(shù)量的增多有利于保證獲得更為精確的非線性擬合結(jié)果,可顯著提高包含64 個不同類別模式的盲文字符識別結(jié)果;此外,當隱含層神經(jīng)元數(shù)量大于200時,BP 神經(jīng)網(wǎng)絡在測試數(shù)據(jù)集上的字符識別性能逐漸趨于飽和;值得指出的是,隱含層神經(jīng)元數(shù)量的增加會顯著提高BP 神經(jīng)網(wǎng)絡的訓練時間,如神經(jīng)元數(shù)量為784 時三隱含層結(jié)構(gòu)的訓練時間耗費約為1 h 23 min 14 s、神經(jīng)元數(shù)量為784 時雙隱含層結(jié)構(gòu)的訓練時間耗費約為21 min 45 s,而神經(jīng)元數(shù)量為200 時三隱含層結(jié)構(gòu)的訓練時間耗費為4 min 9 s、神經(jīng)元數(shù)量為200時雙隱含層結(jié)構(gòu)的訓練時間耗費僅為3 min 17 s。為權(quán)衡網(wǎng)絡模型的識別性能和訓練時間開銷,對于盲文字符識別任務來說可選取雙隱層且神經(jīng)元數(shù)量為200的BP 神經(jīng)網(wǎng)絡結(jié)構(gòu),此時在測試圖像上已獲得了95.32%的識別準確率。可以得出,傳統(tǒng)BP 神經(jīng)網(wǎng)絡所需的計算開銷顯著低于基于深度學習的字符識別方法,但也能獲得較為滿意的識別結(jié)果。
圖6 圖4所示盲文字符區(qū)域的常規(guī)投影法提取結(jié)果
另外,由表1 還可以看出,基于常規(guī)投影法的BP神經(jīng)網(wǎng)絡模型并不適合于盲文字符識別任務,這是因為多數(shù)模式類型的盲文字符無法被準確提取出來。圖6 給出了采用常規(guī)投影法切割如圖4 右上區(qū)域所示盲文圖像的字符提取結(jié)果,與圖4 所示的改進投影法相比:①空方字符被常規(guī)投影法錯誤切割為背景區(qū)域,導致空方字符無法送入后續(xù)的網(wǎng)絡模型進行判別,繼而影響這類字符的召回率;②獨立完整的盲文字符可能被錯誤切割成不同組分,這是由于盲文字符具備如圖3所示的形態(tài)結(jié)構(gòu),明顯有別于普通文本文檔中的字符結(jié)構(gòu),如英文字符識別任務中幾乎所有字符均具備全連接結(jié)構(gòu),但盲文字符左右兩側(cè)的點位結(jié)構(gòu)并不存在全連接性,因此極容易被常規(guī)投影視為不同的獨立字符,進一步提高了字符提取失敗的可能性。
提出了一種基于字符形態(tài)結(jié)構(gòu)特征和BP 神經(jīng)網(wǎng)絡的盲文字符識別方法,主要結(jié)論如下:
(1)結(jié)合較大結(jié)構(gòu)元形態(tài)學膨脹運算、Canny 邊緣檢測算子和Hough 變換算法能有效校正盲文圖像的旋轉(zhuǎn)畸變,有利于降低掃描過程對紙質(zhì)盲文成像視角的要求,從而提高后續(xù)字符識別模塊的場景適應性;
(2)借助形態(tài)學基礎(chǔ)算子改善盲文字符點位結(jié)構(gòu)的整體連接性,相比于傳統(tǒng)投影法,基于盲文字符形態(tài)結(jié)構(gòu)連接約束的改進投影法能顯著提高獨立盲文字符提取的準確性;
(3)采用雙隱含層結(jié)構(gòu)的BP 神經(jīng)網(wǎng)絡模型,當每層神經(jīng)元數(shù)量約為200 個時,能在較少計算開銷的條件下,獲得較為準確的盲文字符識別結(jié)果,可望進一步提高盲文識別系統(tǒng)的實用價值。