李榮瑞,施 霖
(昆明理工大學(xué) 信息工程與自動(dòng)化學(xué)院,云南 昆明 650500)
盲文識(shí)別研究對(duì)于盲人特殊教育事業(yè)和生活具有重要的意義[1-2]。近年來(lái),國(guó)內(nèi)外學(xué)者在盲文識(shí)別方面做了大量研究,國(guó)外Yasuhiko Ogawat等[3-5]進(jìn)行了基于數(shù)字圖像處理的盲文識(shí)別等研究;國(guó)內(nèi)的周小燕、周春耕等學(xué)者[6-9]做了許多盲文漢語(yǔ)轉(zhuǎn)換方面的工作。但是這些研究中還存在問(wèn)題:(1)使用條件要求嚴(yán)苛,光照、角度的輕微變化會(huì)嚴(yán)重影響識(shí)別準(zhǔn)確率;(2)圖片預(yù)處理過(guò)程復(fù)雜,步驟繁瑣;(3)特征點(diǎn)由研究人員手工提取,費(fèi)時(shí)費(fèi)力且無(wú)法保證準(zhǔn)確性。
自2006年以來(lái),深度學(xué)習(xí)作為機(jī)器學(xué)習(xí)領(lǐng)域中對(duì)圖像等進(jìn)行特征學(xué)習(xí)的一種新方法,在圖像識(shí)別方面取得了巨大成功[10]。卷積神經(jīng)網(wǎng)絡(luò)(Convolutional Neural Network, CNN)是深度學(xué)習(xí)中廣為應(yīng)用的經(jīng)典模型,例如Lenet-5[11],Cifar-10[12]等模型,其強(qiáng)大的特征學(xué)習(xí)能力使得圖像識(shí)別研究取得了突破性的進(jìn)展。
本文利用灰度投影方法來(lái)自動(dòng)校正和分割盲文;構(gòu)建卷積神經(jīng)網(wǎng)絡(luò)(CNN)模型,利用大量疊加噪聲的盲文圖片訓(xùn)練網(wǎng)絡(luò)得到的CNN模型連接Softmax分類器作為盲文識(shí)別部分。最終的盲文自動(dòng)識(shí)別系統(tǒng)具有識(shí)別率高、抗干擾性強(qiáng)等特點(diǎn),在傳統(tǒng)盲文識(shí)別研究中無(wú)法工作的多種環(huán)境下,系統(tǒng)可良好工作,突破傳統(tǒng)盲文識(shí)別系統(tǒng)對(duì)環(huán)境的嚴(yán)苛要求。
作盲文圖像的灰度投影圖要先將盲文圖像轉(zhuǎn)換為二值圖像。盲文圖像盲點(diǎn)與背景的灰度差異很大且灰度值比較集中,這有利于通過(guò)閾值分割方法進(jìn)行二值處理,圖1分別為盲文圖像和利用大律法(OTSU法)[13]得到的此盲文圖像的二值圖像。
圖1 盲文圖像二值化處理
如圖2所示,將采集的盲文圖像縮放為邊長(zhǎng)為10 cm的正方形圖像,放置在建立的直角坐標(biāo)系中,使圖像4個(gè)端點(diǎn)分別落在坐標(biāo)點(diǎn)(5 , 5)、(5 , 15)、(15 , 15)、(15 , 5)上,圖像中心點(diǎn)在坐標(biāo)(10 , 10)上。將x軸上投影的采集范圍定為(0 , 0)到(20 , 0)區(qū)間,將y軸的采集范圍定為(0 , 0)到(0 , 20),這樣可保證圖片在旋轉(zhuǎn)不同角度時(shí),其二值投影圖像都被完整采集。
圖2 二值圖像坐標(biāo)投影
設(shè)定順時(shí)針?lè)较驗(yàn)檎较?,將盲文偏轉(zhuǎn)角度 依次為α= 0°、6°、12°、18°、24°,將其二值圖像向x軸投影得到豎直灰度投影圖,圖3為以x軸為底、高度為2的同一區(qū)域的灰度對(duì)比圖。結(jié)果顯示,盲文方向偏轉(zhuǎn)角度越大,投影圖中灰度條越集中于底部。
圖3 灰度投影對(duì)比圖
灰度條的集中程度利用如下方法測(cè)量:在豎直灰度投影圖中,將x軸、y軸、直線x=20、切線y=0.5四條直線圍住的矩形部分定義為T(mén)區(qū)域,其中(0, 0.5)坐標(biāo)點(diǎn)的選擇是根據(jù)50張不同的盲文圖像確定的最佳分割點(diǎn)。假設(shè)T區(qū)域內(nèi)像素點(diǎn)總數(shù)為M,灰度為0(黑色部分)的像素點(diǎn)數(shù)量為M0,則T區(qū)域內(nèi)灰度條像素點(diǎn)所占比例p的值為
(1)
對(duì)于同一幅盲文圖片偏轉(zhuǎn)不同角度的數(shù)張灰度投影圖,T區(qū)域大小相同,像素點(diǎn)總數(shù)M不變。偏轉(zhuǎn)角度越大,T區(qū)域內(nèi)黑色像素點(diǎn)數(shù)量M0越大,從而p越大。
盲文圖像的角度校正過(guò)程如圖4所示:將原始盲文圖片的二值圖片偏轉(zhuǎn)不同角度α并分別向x軸投影,計(jì)算其T區(qū)域內(nèi)黑色占比p。選中其中最小的值px,此值對(duì)應(yīng)的旋轉(zhuǎn)角度αx即為校正原始盲文圖片所需要旋轉(zhuǎn)的角度。校正后的圖片中盲文角度誤差小于α步長(zhǎng)的1/2,若要求更高的校正精度,可減小α每次增加的步長(zhǎng)。此處取偏轉(zhuǎn)角度最大為30°是因?yàn)檎Cの膱D片的采集偏轉(zhuǎn)角度不會(huì)超出此范圍。
圖4 圖像校正流程圖
取50張盲文圖片對(duì)此校正方法進(jìn)行實(shí)驗(yàn),結(jié)果顯示,50張盲文圖像的校正成功率為100%。
在識(shí)別盲文古籍、作業(yè)這種含有大量盲文字符的圖片時(shí),經(jīng)過(guò)角度校正后,其灰度圖投影在x軸、y軸上形成數(shù)條相互獨(dú)立的灰度條。在豎直投影圖中,灰度條是由同一列盲點(diǎn)在x軸的灰度投影疊加而成,即灰度條在x軸上的坐標(biāo)為這一列盲點(diǎn)的x坐標(biāo);同理,在水平投影圖中,灰度條是由同一行盲點(diǎn)在y軸的灰度投影疊加而成,灰度條在y軸上的坐標(biāo)即為這一行盲點(diǎn)的y坐標(biāo)。盲文的盲方為3×2的矩形點(diǎn)陣,一行盲文在y軸的投影為3條灰度條,一列盲文在x軸的投影為2條灰度條。根據(jù)這種特點(diǎn),在y軸上每隔兩條灰度條做一條平行分割線,在x軸上每隔兩條灰度條做一條豎直分割線,橫豎分割線共同作用可將盲文圖片分割。
由于沒(méi)有完整的盲文數(shù)據(jù)庫(kù),實(shí)驗(yàn)所需要的數(shù)據(jù)集從實(shí)際采集的盲文圖片中截取盲文字符制作完成。本次實(shí)驗(yàn)數(shù)據(jù)集包含63類盲文字符和空白盲文圖片一類共64類,每類盲文字符包含20張圖片,此時(shí)數(shù)據(jù)集圖片數(shù)量為:64×20=1 280張??紤]到實(shí)際使用中的幾種影響因素:光照變化、圖像傾斜、盲點(diǎn)偏移等,為增強(qiáng)識(shí)別系統(tǒng)的魯棒性和抗干擾性,將這些影響因素加入到數(shù)據(jù)集中。對(duì)每張圖片作添加噪聲處理9次,對(duì)應(yīng)9種圖像變化處理:光照強(qiáng)度+15,+30,-15,-30共4種,角度左傾6°,右傾6°兩種,字符平移縮放3種。圖5為一張盲文圖片經(jīng)過(guò)噪聲處理形成的10張圖片。此時(shí),1 260張?jiān)疾杉の淖址麍D片經(jīng)過(guò)9種噪聲處理,數(shù)據(jù)集圖像數(shù)量變?yōu)椋? 280+1 280 × 9=12 800張,每類盲文字符包含圖片200張。數(shù)據(jù)集中80%作為訓(xùn)練集,20%作為測(cè)試集。
圖5 噪聲處理圖片示例
CNN的運(yùn)算包含前向傳播和反向傳播[14]。在前向傳播中,上一層的輸出作為這一層的輸入,整個(gè)過(guò)程通過(guò)激活函數(shù)逐層傳遞。反向傳播過(guò)程中通過(guò)計(jì)算實(shí)際輸出與理想輸出的均方誤差,對(duì)權(quán)值參數(shù)進(jìn)行優(yōu)化。信息正向傳播和誤差反向傳播交替進(jìn)行,直到滿足要求或達(dá)到最大迭代次數(shù)[15]。CNN結(jié)構(gòu)過(guò)大或過(guò)小過(guò)擬合或欠擬合,數(shù)據(jù)集太小或不合理會(huì)導(dǎo)致網(wǎng)絡(luò)模型失去泛化能力,初始權(quán)值選取不合理會(huì)導(dǎo)致訓(xùn)練陷入局部最優(yōu)解[16]。
由于盲文字符相對(duì)比較簡(jiǎn)單,CNN中卷積層的層數(shù)初步定為2~3層,每一層卷積層后面接下采樣層,下采樣層可降低特征圖的維度,減少運(yùn)算參數(shù),提高運(yùn)算時(shí)間;另一個(gè)作用是增強(qiáng)系統(tǒng)平移、伸縮不變性。取盲文圖片對(duì)兩種卷積層模型進(jìn)行測(cè)試,結(jié)果顯示,兩層卷積層模型相比于3層卷積層模型,運(yùn)算時(shí)間減少35%,運(yùn)算數(shù)據(jù)量減少43%,而識(shí)別精度僅減少1%。綜合運(yùn)算速度、內(nèi)存和準(zhǔn)確率等因素,文中將卷積層數(shù)目定為2層,每一層卷積層后連接一層下采樣層以減少運(yùn)算參數(shù)。
全連接層為兩層,試驗(yàn)不同節(jié)點(diǎn)數(shù)量CNN模型的識(shí)別效果,當(dāng)?shù)谝粚尤B接層節(jié)點(diǎn)數(shù)為300,第二層全連接層節(jié)點(diǎn)數(shù)為64時(shí),CNN模型的識(shí)別準(zhǔn)確率最高。本文實(shí)驗(yàn)構(gòu)建了多種CNN模型,試驗(yàn)了不同層數(shù)和節(jié)點(diǎn)數(shù)的組合,在保證識(shí)別準(zhǔn)確率的同時(shí)考慮識(shí)別速度等因素,最終確定的CNN模型結(jié)構(gòu)如圖6所示,網(wǎng)絡(luò)結(jié)構(gòu)包括:輸入層,2層卷積層(Conv),2層下采樣層(Pool),1層激活層(Relu),2層全連接層(Ip)。CNN模型末端接一層Softmax分類層,右側(cè)數(shù)字表示一張高、寬為28像素的三通道圖片在網(wǎng)絡(luò)中經(jīng)過(guò)各層運(yùn)算后的數(shù)據(jù)變化過(guò)程。
圖6 卷積神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)
常見(jiàn)的激活函數(shù)有sigmoid函數(shù),tanh函數(shù),ReLU函數(shù),此處選擇稀疏性更好的ReLU函數(shù)[17]。ReLU的算式為
f(x)=max(0,x)
(2)
若通過(guò)卷積計(jì)算得到的值大于0,則此值保持不變;若卷積計(jì)算的值小于0,則將此值賦值為0。
本次實(shí)驗(yàn)共有64類盲文字符,因此分類層我們選擇適合解決多分類問(wèn)題的Softmax函數(shù)。假設(shè)輸入Softmax函數(shù)ζ的向量z的維度為c, 那么Softmax函數(shù)的數(shù)據(jù)也是一個(gè)c維度的向量y,里面的值為1或0。Softmax函數(shù)是一個(gè)歸一化的指數(shù)函數(shù),定義為
(3)
其中分母起到了正則項(xiàng)的作用,使得
(4)
Softmax函數(shù)放在神經(jīng)網(wǎng)絡(luò)的末端起著分類的作用,用c個(gè)神經(jīng)元可以表示函數(shù)中的值。對(duì)于給定的輸入z,可以得到t=c,c=1,2,…,C中每個(gè)分類的概率為
(5)
其中,P(t=C|z)為給定輸入z時(shí),該輸入數(shù)據(jù)是C分類的概率。
將數(shù)據(jù)集的盲文圖片導(dǎo)入構(gòu)建的深度卷積神經(jīng)網(wǎng)絡(luò)中,設(shè)定網(wǎng)絡(luò)訓(xùn)練迭代次數(shù)為1 000次,圖7為訓(xùn)練過(guò)程中準(zhǔn)確率隨迭代次數(shù)增加的變化曲線圖。
圖7 準(zhǔn)確率曲線
如圖所示,CNN模型經(jīng)過(guò)迭代訓(xùn)練逐漸收斂,網(wǎng)絡(luò)誤差減小,準(zhǔn)確率升高。迭代訓(xùn)練1 000次后,CNN模型對(duì)測(cè)試集的識(shí)別準(zhǔn)確率為99.41%,這表明構(gòu)建的卷積神經(jīng)網(wǎng)絡(luò)通過(guò)1 000次的迭代訓(xùn)練已經(jīng)從數(shù)據(jù)集中學(xué)習(xí)到各類盲文字符的深層特征并保存在CNN模型中。
在標(biāo)準(zhǔn)采集環(huán)境和多種影響環(huán)境下制作盲文字符圖片共2 928張,輸入CNN模型進(jìn)行識(shí)別,總體識(shí)別率為98.57%,不同噪聲影響下盲文識(shí)別率如表1所示。
表1 識(shí)別結(jié)果
實(shí)驗(yàn)最后檢測(cè)構(gòu)建的神經(jīng)網(wǎng)絡(luò)模型對(duì)于實(shí)際應(yīng)用中盲文識(shí)別的準(zhǔn)確率,在日常使用環(huán)境下取50張不同語(yǔ)句盲文圖片對(duì)本文研究的基于深度學(xué)習(xí)的盲文自動(dòng)識(shí)別系統(tǒng)進(jìn)行從輸入盲文圖片到輸出漢語(yǔ)拼音的整體測(cè)試。50張盲文圖片中盲文字符總數(shù)(包含空白字符)為2 746個(gè),每張圖片包含的盲文字符數(shù)量(包含空白字符)在24~120個(gè)之間,經(jīng)實(shí)驗(yàn)統(tǒng)計(jì),系統(tǒng)成功識(shí)別其中2 708個(gè),自動(dòng)識(shí)別系統(tǒng)對(duì)盲文圖片中字符的識(shí)別成功率為98.62%。
相比于傳統(tǒng)盲文識(shí)別方法,本文方法具有以下優(yōu)勢(shì):(1) 本文方法避免了傳統(tǒng)方法中繁瑣的預(yù)處理過(guò)程;(2) 傳統(tǒng)方法需要手工定義特征點(diǎn),費(fèi)時(shí)費(fèi)力且不能保證特征的有效性,本文方法通過(guò)CNN自動(dòng)進(jìn)行訓(xùn)練,得到的模型更能刻畫(huà)盲文的本質(zhì)特征;(3) 傳統(tǒng)方法只用來(lái)識(shí)別特定光照和角度的盲文圖片,且識(shí)別率不足96%,本文方法將此識(shí)別率提升為100%;(4) 傳統(tǒng)方法無(wú)法對(duì)平移、伸縮、角度傾斜等噪聲條件下的盲文圖片進(jìn)行識(shí)別,而本文方法對(duì)此類噪聲圖片的識(shí)別率高達(dá)98.2%。
本文研究的基于深度學(xué)習(xí)的盲文自動(dòng)識(shí)別系統(tǒng)相比于傳統(tǒng)的盲文識(shí)別研究,突破了傳統(tǒng)方法中對(duì)使用環(huán)境的限制,在傳統(tǒng)盲文識(shí)別裝置不能正常工作的多種環(huán)境下仍能達(dá)到很高識(shí)別率,提高了盲文識(shí)別系統(tǒng)的適用性、實(shí)用性和準(zhǔn)確率。文中的識(shí)別系統(tǒng)準(zhǔn)確率達(dá)到98.62%,若要進(jìn)一步提高系統(tǒng)的識(shí)別準(zhǔn)確率,可通過(guò)兩種方法進(jìn)行提升:(1) 減小圖像校正部分的旋轉(zhuǎn)角度步長(zhǎng)α;(2) 豐富識(shí)別部分訓(xùn)練集的噪聲變化圖片,增加訓(xùn)練集圖片數(shù)量,增加訓(xùn)練迭代次數(shù)。