劉彪,黃蓉蓉,林和,蘇偉
(1. 蘭州大學(xué) 信息科學(xué)與工程學(xué)院,甘肅 蘭州 730000; 2. 解放軍69230部隊,新疆 烏蘇 833000)
我國的盲人數(shù)量約為752萬人,是全球盲人數(shù)量最多的國家[1]。隨著從事音樂工作的盲人越來越多,盲文成為盲人與常人進(jìn)行書面交流的主要方式,但用其創(chuàng)作的音樂作品仍然需要人工的轉(zhuǎn)換和翻譯,所以急需一種自動盲文音樂識別方案。文獻(xiàn)[2]最早使用硬件設(shè)備采集普通盲文內(nèi)容的圖片,雖然可通過光學(xué)識別出相應(yīng)內(nèi)容,但是缺乏與用戶的交互性。文獻(xiàn)[3]設(shè)計了一個單面盲文圖片的智能識別系統(tǒng),包括圖像采集、噪聲消除、圖像分割、特征提取和字符識別等步驟,其識別率達(dá)到94.39%,但使用了固定盲文單元大小和盲文點(diǎn)的位置來識別盲文符號,其可擴(kuò)展性極其有限。文獻(xiàn)[4]提出了一種用于識別雙面盲文內(nèi)容的高效算法,即通過對凸點(diǎn)和凹點(diǎn)的灰度值變化來區(qū)分正面點(diǎn)和反面點(diǎn),識別率雖然比較樂觀,但其局限性在于當(dāng)正面點(diǎn)和反面點(diǎn)重疊較多時,對每個盲文點(diǎn)的質(zhì)心檢測和識別會出現(xiàn)很多歧義,其識別效果也因此受到較大影響。文獻(xiàn)[5-7]采用傳統(tǒng)的方法對盲文音樂符號進(jìn)行識別,其中文獻(xiàn)[7]以MusicXML作為中間橋梁來實(shí)現(xiàn)盲文的轉(zhuǎn)換,并由此設(shè)計了從MusicXML到盲文樂譜ASCII碼的自動轉(zhuǎn)換軟件。文獻(xiàn)[8]提出一種基于深度學(xué)習(xí)模型識別盲文字符的方法,使用堆疊去噪自動編碼器來解決盲文識別過程中特征自動提取與降維等問題,利用SDAE自動學(xué)習(xí)盲文點(diǎn)字的圖片特征,使用Softmax分類器進(jìn)行盲文識別。文獻(xiàn)[9]提出將雙面阿姆哈拉盲文圖片翻譯為阿姆哈拉文的系統(tǒng)。該系統(tǒng)使用方向場張量從背景中分割盲文點(diǎn),使用梯度場識別正面點(diǎn)和反面點(diǎn);對于重疊盲文點(diǎn)的分割是該文的核心內(nèi)容,使用盲文點(diǎn)的屬性(質(zhì)心和面積)來分割重疊點(diǎn)并且提出了相應(yīng)的正面點(diǎn)和反面點(diǎn)識別算法。文獻(xiàn)[10]使用人工神經(jīng)網(wǎng)絡(luò)對單面的阿姆哈拉圖片進(jìn)行識別,采用自適應(yīng)直方圖均衡化和形態(tài)學(xué)操作相結(jié)合來對文件中的不同等級的噪聲進(jìn)行降噪處理,并在識別階段采用人工神經(jīng)網(wǎng)絡(luò)和二進(jìn)制編碼相結(jié)合的形式進(jìn)行盲文圖像識別,識別率達(dá)到95.5%。文獻(xiàn)[11]采用BP神經(jīng)網(wǎng)絡(luò)對英語盲文數(shù)字(0~9)圖像進(jìn)行識別。該文展示了BP神經(jīng)網(wǎng)絡(luò)的參數(shù)設(shè)置以及圖像的特征提取過程,其訓(xùn)練精度達(dá)到97.1%,測試精度達(dá)到85%。文獻(xiàn)[12]在FCM和KNN的啟發(fā)下,提出了一個模糊的聚類算法和一種新的數(shù)字特征檢測算法,稱之為斑點(diǎn)檢測算法,即在4個掃描方向上掃描1個盲文單元,從而生成1個八進(jìn)制編碼。然后模糊分類算法根據(jù)生成的八進(jìn)制編碼來識別相應(yīng)的盲文字符,識別精度達(dá)到83%。上述這些研究存在識別過程較煩瑣、識別度較低、泛化能力較差等問題。
為了使研究具有較強(qiáng)泛化能力和較高識別度,同時簡化其識別過程,本文從盲文音樂圖片的結(jié)構(gòu)出發(fā),應(yīng)用卷積神經(jīng)網(wǎng)絡(luò)的識別模型,并在Tensorflow深度學(xué)習(xí)框架下進(jìn)行實(shí)驗(yàn)。實(shí)驗(yàn)表明,采用卷積神經(jīng)網(wǎng)絡(luò)模型來識別盲文音樂圖片具有較為樂觀的結(jié)果。
卷積神經(jīng)網(wǎng)絡(luò)(convolutional neural network,CNN)因其具有獨(dú)特的結(jié)構(gòu)[13-15],在進(jìn)行圖像特征提取的同時,還能夠提取更細(xì)節(jié)的圖像信息。這樣不僅解決了多數(shù)的傳統(tǒng)神經(jīng)網(wǎng)絡(luò)中參數(shù)較多、訓(xùn)練緩慢的難題,而且還防止了過擬合的出現(xiàn)。自2016年AlphaGo戰(zhàn)勝世界圍棋冠軍李世石以來,卷積神經(jīng)網(wǎng)絡(luò)再一次被推向浪潮,尤其是在計算機(jī)視覺領(lǐng)域的研究更是大熱。卷積神經(jīng)網(wǎng)絡(luò)具有了兩個很重要的特點(diǎn):
1)共享權(quán)值[16-17]。傳統(tǒng)的神經(jīng)網(wǎng)絡(luò)中每一層的權(quán)值w僅使用一次 ,而當(dāng)下一次使用時便會重新生成不同的權(quán)值w。但在卷積網(wǎng)絡(luò)中,卷積核要與圖像中的每個像素值(輸入向量)進(jìn)行卷積運(yùn)算,所以僅需要一組權(quán)值即可。當(dāng)輸入向量與該組權(quán)值運(yùn)算完畢時,則表明該次卷積操作結(jié)束。共享權(quán)值的設(shè)計在前向傳播階段并未縮減消耗時間,但是卻在某種程度上將整個模型所需要的權(quán)重參數(shù)的數(shù)量大大降低,很大程度上提高了計算機(jī)的運(yùn)算性能。在進(jìn)行卷積運(yùn)算時,卷積核按照給定的步長s在輸入圖像上從左到右、從上到下依次進(jìn)行滑動,直至操作結(jié)束。相對于傳統(tǒng)的神經(jīng)網(wǎng)絡(luò)而言,卷積神經(jīng)網(wǎng)絡(luò)的參數(shù)數(shù)量不僅降低了,而且其運(yùn)算速度也在一定程度上提高了。
2)稀疏連接[18]。為了挖掘圖像空間局部關(guān)聯(lián)的信息,卷積神經(jīng)網(wǎng)絡(luò)采用了通過加強(qiáng)神經(jīng)網(wǎng)絡(luò)中相鄰層之間節(jié)點(diǎn)的局部連接模式,而摒棄了全連接的方式,即采用核少于輸入的方式來完成。例如,如果有m個輸入n個輸出,傳統(tǒng)的神經(jīng)網(wǎng)絡(luò)會把每個輸出與每個輸入進(jìn)行矩陣乘法運(yùn)算,則時間復(fù)雜度為 O(m×n),而卷積神經(jīng)網(wǎng)絡(luò)只提取其中有意義的k個輸入,其時間復(fù)雜度為 O(k×n),因?yàn)樵趯?shí)際應(yīng)用中,k一般遠(yuǎn)小于m,并更有實(shí)際意義,這一方面降低了時間復(fù)雜度,也提升了存儲的效率。
在傳統(tǒng)的盲文音樂識別方法中,人工介入的工作量較大。盡管目前部分傳統(tǒng)模型提出的算法在一定程度上能夠?qū)崿F(xiàn)對盲文圖像的特征提取,但是對于以點(diǎn)狀為基本組成且難以分辨的盲文音樂圖片而言,其識別的效果并不理想,這歸咎于其弱學(xué)習(xí)能力和弱適應(yīng)性。而相比之下,近年來發(fā)展迅速的CNN的效果卻較為樂觀[19-20],表現(xiàn)出較高的識別精準(zhǔn)率和較強(qiáng)的泛化能力。
盲文音樂圖片的分辨率因受多種因素的影響而不盡相同,為了達(dá)到良好的識別效果,還需要進(jìn)行一定的圖像處理過程。本文在對盲文音樂圖像識別前,先對圖像進(jìn)行了預(yù)處理操作,包括降噪處理、傾斜校正、形態(tài)學(xué)處理、水平/垂直投影分割、點(diǎn)位標(biāo)記、盲文單元切割等,其預(yù)處理前后的對比效果如圖1所示。
圖 1 盲文音樂圖片傾斜校正Fig. 1 Braille music image before tilt correction process
圖2 為盲文音樂圖像識別的卷積神經(jīng)網(wǎng)絡(luò)模型結(jié)構(gòu)。該識別模型有1個輸入層,3個卷積層(C1、C3、C5),2個池化層(S2,S4),2個全連接層以及1個輸出層[21]。卷積層的作用是:對盲文音樂圖像進(jìn)行特征提取,進(jìn)而確定其周圍特征參數(shù)的位置關(guān)系,實(shí)驗(yàn)采用多層卷積層,以便可以獲得更深層次的特征圖。池化層是特征映射層,其主要作用是:對輸入的特征圖進(jìn)行壓縮,簡化網(wǎng)絡(luò)計算復(fù)雜度,提取主要特征。輸出層即展示盲文音樂圖像的分類結(jié)果。
圖 2 識別模型結(jié)構(gòu)圖Fig. 2 Identification model structure
1)輸入層。將預(yù)處理后的圖像作為該模型的輸入。圖3為訓(xùn)練集中的多個樣例圖片,每個圖像的大小為32×64,即該識別模型的輸入維度為2 048。
圖 3 訓(xùn)練集中的樣例圖片F(xiàn)ig. 3 Sample images in the training set
2)C1層。主要作用是首次進(jìn)行提取圖像的特征參數(shù),它會過濾掉多余的特征。C1層與輸入層傳入的數(shù)據(jù)進(jìn)行模板匹配運(yùn)算,從而得到了給定數(shù)量的輸出特征[22]。卷積核的作用并不是單純地計算卷積操作后的結(jié)果,而是在給定的權(quán)重矩陣下對輸入的圖像數(shù)據(jù)進(jìn)行匹配運(yùn)算操作。若卷積核尺寸過大,網(wǎng)絡(luò)參數(shù)會增多,網(wǎng)絡(luò)速度會降低,過小則會影響特征提取的精度,所以卷積核的大小選擇尤為關(guān)鍵。在此次卷積神經(jīng)網(wǎng)絡(luò)的識別模型中,每個卷積層均采用大小為3×3的卷積核,可以降低該模型的參數(shù)數(shù)量。給定輸入層的維度為32×64,C1層的卷積核大小設(shè)置為3×3,并設(shè)置32個卷積核,步長為1。圖4為卷積神經(jīng)網(wǎng)絡(luò)的卷 積操作過程。
圖 4 卷積操作示意圖Fig. 4 Convolution operation diagram
通過該卷積操作就可獲得大小為30×62的特征圖。為了保證卷積前后的圖像大小保持一致,在這里采用“same”卷積方式,從而保證卷積后得到特征圖的大小仍為32×64。為了保證不丟失圖像的邊緣信息,在后面的卷積層(C3、C5)都采用該操作。
由于每個濾波器會得到一個特征圖,經(jīng)過C1層的卷積操作,如圖5所示,圖2中的盲文音樂圖像可得到32個不同的特征圖。某些特征圖中的盲文點(diǎn)邊界比較清晰,例如第1行第7個特征圖,這說明該卷積層提取到了圖像中盲文音樂符號的主干信息。其次也可以看出每個特征圖的具體狀態(tài)迥異,這是因?yàn)槊總€卷積核的權(quán)值信息不同,因而學(xué)習(xí)到的特征不同。
3)S2層。該池化層的主要作用是對特征的具體位置進(jìn)行淡化。當(dāng)提取某個特征之后,只需了解該特征與其他特征的相對位置,例如圖3中的盲文音樂字符,當(dāng)?shù)玫缴蠈拥奶卣髦?,就不用再考慮其字符的具體位置,只要得到下面對應(yīng)的特征,并將上下二者有效地組合在一起便是要識別的盲文音樂字符。
圖 5 C1卷積后的特征圖Fig. 5 The feature map after C1 convolution
在卷積神經(jīng)網(wǎng)絡(luò)中,特征所對應(yīng)的具體位置將不再重要。對C1層卷積后的結(jié)果進(jìn)行池化操作,即得到32個大小為16×32的結(jié)果,輸出的維度相比該層輸入的維度縮減了一半。該層是通過池化操作實(shí)現(xiàn)二次特征提取的,有效地減少了輸入數(shù)據(jù)的參數(shù)數(shù)量,降低了圖像的大小,簡化了網(wǎng)絡(luò)計算的復(fù)雜度。同時,它還可減弱卷積層的輸出在角度變形或拉伸變化方面的敏感程度,進(jìn)行主要特征提取。
如圖6為整個池化操作過程,該操作是利用池化參數(shù)來進(jìn)行最大下采樣操作,池化層中的步長s設(shè)置為1,其權(quán)值矩陣設(shè)置為2×2。在C1層的輸出特征圖中,對每個特征圖中進(jìn)行下采樣操作,根據(jù)圖6所示此規(guī)則輸出S2層的輸出結(jié)果,但 是尺寸大小縮小為原來的一半[22]。
圖 6 下采樣操作Fig. 6 Down sampling operation
S2層的下采樣操作后得到如圖7所示的32個尺寸大小為16×32的特征圖。從圖7中可以看出,除了圖像的尺寸大小發(fā)生了變化之外,還忽 略了部分盲文音樂符號的細(xì)節(jié)信息。
圖 7 S2池化操作后的特征圖Fig. 7 The feature map after S2 pooling
4)C3層。C3層的卷積操作建立在S2層的基礎(chǔ)上,其卷積操作與C1層類似。主要是對S2層的輸出進(jìn)行再卷積操作,進(jìn)行特征再提取。在C3層中,將卷積核的數(shù)目設(shè)置為64,即可得出64個大小為14×30且圖像內(nèi)容各不相同的特征圖。在該層使用“same”卷積操作后,最后得到特征圖的尺寸大小為16×32。值得注意的是,輸入與輸出的特征圖雖然在尺寸上大小相同,但是最終得到的特征圖數(shù)目卻不一樣,其中32個S2層的特征圖作為C3層的輸入,最終得出了如圖8所示的64個C3層的結(jié)果特征圖。在圖8中可以發(fā)現(xiàn),其盲文點(diǎn)的邊緣信息越來越突出。
圖 8 C3層卷積操作后的特征圖Fig. 8 The feature map after C3 convolution operation
圖9所展示的是S2層與C3層之間的關(guān)聯(lián)和映射,從圖中可以看出這些連接并不是一一對應(yīng)的關(guān)系。卷積神經(jīng)網(wǎng)絡(luò)這樣設(shè)計的優(yōu)點(diǎn)是:消除了網(wǎng)絡(luò)的對稱性,從而讓映射的數(shù)量保持在一定的范圍之內(nèi);增加了特征映射的多樣性,從而實(shí)現(xiàn) 了不同特征的有效提取和傳遞。
圖 9 S2層和C3層的連接圖Fig. 9 Connection diagram of S2 and C3
5)S4層。該層是識別模型最后一個池化層,S4層是對C3層的輸出結(jié)果進(jìn)行池化操作,其操作與S2層的操作類似。通過S4層的下采樣操作得到如圖10所示的64個大小為8×16的特征圖。
6)C5層。C5層是識別模型的最后一個卷積操作,作用是進(jìn)一步提取圖像特征。該操作與之前的卷積操作類似,但是此處將卷積核的個數(shù)設(shè)置為128。因此得到128個大小為8×16的特征圖,如圖11所示。
圖 10 S4層操作后的特征圖Fig. 10 The feature map after S4 pool
圖 11 C5層卷積后的特征圖Fig. 11 The feature map after C5 convolution
7)輸出層。為了確保輸出層的分類數(shù)量與實(shí)際的64個盲文符號數(shù)相一致,實(shí)驗(yàn)的模型在最后采用了兩個全連接層使得卷積層C5能夠和輸出分類關(guān)聯(lián)上,即輸出層有64個神經(jīng)元數(shù)量。在輸出結(jié)果時,本文使用softmax函數(shù)對盲文音樂符號進(jìn)行分類,用dropout函數(shù)來防止過擬合現(xiàn)象。
為了增強(qiáng)此次盲文所訓(xùn)練的基于卷積神經(jīng)網(wǎng)絡(luò)識別模型的泛化能力,前期需要大量具有代表性的訓(xùn)練樣本,供其學(xué)習(xí)并獲得可觀的模型。然而,由于盲文本身的局限性圖像化的數(shù)據(jù)集更是相對匱乏,目前公認(rèn)的數(shù)據(jù)集主要來源于:1)線下紙質(zhì)的掃描文件,主要通過現(xiàn)有的OCR技術(shù)對圖像中的盲文字符進(jìn)行提取,但這種提取質(zhì)量很大程度上受限于掃描文件本身的質(zhì)量(分辨率)、OCR技術(shù)的缺陷(光線敏感)、紙質(zhì)盲文的規(guī)整性;2)線上互聯(lián)網(wǎng)共享的盲文圖片,圖片的分辨率、位深等屬性較為可觀,通??梢匀〉幂^好的識別效果;3)電子版音樂文件,可以通過預(yù)處理獲得較高質(zhì)量的盲文圖片,組成較好的數(shù)據(jù)集。另外,受限于版權(quán),實(shí)驗(yàn)采集到的前2種盲文音樂圖片數(shù)量極其有限,主要是采用第3種盲文音樂圖片作為訓(xùn)練集,后期的研究可以在取得相應(yīng)許可后進(jìn)行大規(guī)模數(shù)據(jù)的采集,以便于模型本身能夠有更好的兼容性。
本文采集的6 400張經(jīng)過預(yù)處理后的盲文音樂符號圖片(10個盲文數(shù)字、28種常用符號和26個英文大寫字母)中,總共有64個盲文音樂符號,每個符號對應(yīng)100張圖片。對于每個盲文音樂符號,實(shí)驗(yàn)隨機(jī)選擇其中的80張作為訓(xùn)練集,剩余的20張作為測試集。其主要的劃分情況如表1所示。
表 1 訓(xùn)練集和測試集Table 1 Training sets and test sets
現(xiàn)實(shí)中電子版的盲文字符表現(xiàn)形式有多種,主要形式如圖12所示,該圖展示了測試集中的樣例圖片。
圖 12 測試集中的樣例圖片F(xiàn)ig. 12 Sample images in the test sets
結(jié)合構(gòu)建的基于卷積神經(jīng)網(wǎng)絡(luò)的盲文音樂識別模型,本節(jié)編寫出相應(yīng)的盲文音樂圖像訓(xùn)練算法以及測試算法,對應(yīng)的偽碼描述分別如算法1和算法2所示。
算法1 CNN盲文識別模型訓(xùn)練算法
輸入 TRAIN_IMAGES是訓(xùn)練集,EPOCH是迭代次數(shù),BATCH_SIZE是迭代量,TRAIN_ERROR是錯誤率;
輸出 y 是分類結(jié)果。
1) random(w);
2) random(b);
3) for i=1 in EPOCH :
4) x=BATCH_SIZE;
5) y_true=batch_y ;x中每個元素對應(yīng)的正確值y_true;
6) y =batch_x×w+b ; 經(jīng)過模型預(yù)測的值;
7) Error=error(batch_y,y_true)正確值與預(yù)測值的錯誤率;
8) if Error>TRAIN_ERROR 9) update (w); update (b)
Continue step 3;
10) else
11) update (w); update (b);
12) end
13) end
14)保存訓(xùn)練后的CNN模型y,其中y=x×w+b;
15) end
算法2 CNN盲文識別模型測試算法
輸入 TEST_IMAGES是測試數(shù)據(jù)集,TEST_SIZE是測試數(shù)據(jù)量;
輸出 test_accuracy是正確率。
1) random (w); random (b);
2) load訓(xùn)練模型為y;
3)t est_x=TEST_SIZE 的數(shù)據(jù)作為輸入數(shù)據(jù);
4)獲取測試圖片數(shù)據(jù)text_x與對應(yīng)的標(biāo)簽值y_true;
5)t est_y=test_x×w+b;
6)其測試正確率為test_accuracy=accuracy(test_y,y_true);
7) output test accuracy
在該階段,為了驗(yàn)證實(shí)驗(yàn)建立的卷積神經(jīng)網(wǎng)絡(luò)識別模型的有效性,實(shí)驗(yàn)中的權(quán)重參數(shù)的初始化一律采用隨機(jī)數(shù)。其次,為了使得模型在訓(xùn)練時不過早地陷入飽和,影響卷積神經(jīng)網(wǎng)絡(luò)的學(xué)習(xí)能力,實(shí)驗(yàn)采用的隨機(jī)數(shù)會比較小。
本次實(shí)驗(yàn)中的訓(xùn)練和測試都以分批迭代的方式來進(jìn)行的,分別迭代200次訓(xùn)練,并且每20次輸出測試數(shù)據(jù)的正確率。通過訓(xùn)練和測試,正確率的變化趨勢如圖13所示,通過分析可見在迭代140次后該模型的正確率走向趨于平穩(wěn),并接近1。這是因?yàn)椋好の囊魳贩柕慕Y(jié)構(gòu)相對而言較簡單(以點(diǎn)狀為主要特征),且在訓(xùn)練和測試時使用的圖片的分辨率較高,即圖像的質(zhì)量較好;其次,識別模型對盲文音樂圖片中盲文音樂符號的特征提取較為容易,從而可以快速地進(jìn)行盲文音樂符號的識別。本次實(shí)驗(yàn)也存在許多不足,例如:受限于版權(quán),數(shù)據(jù)集資源過小,來源也較單一。這些都需要在后期的研究中進(jìn)行改進(jìn),從而達(dá) 到更好識別性能。
圖 13 正確率與迭代次數(shù)關(guān)系Fig. 13 The relationship between the correct rate and the number of iterations
就總體識別效果而言,本文所訓(xùn)練的模型的識別準(zhǔn)確度優(yōu)于多數(shù)流行的方法,其對比圖如表2所示。因?yàn)楸疚牡拿の囊魳穲D片是基于單面形式的盲文圖片,所以此處的對比只限于單面盲文圖片的識別對比。將CNN模型與近幾年來所使用的前饋神經(jīng)網(wǎng)絡(luò)[10]、BP神經(jīng)網(wǎng)絡(luò)[11]、模糊分類算法[12]、標(biāo)準(zhǔn)距離定位法[23]作對比,由此可見本文中盲文音樂圖像的識別正確率均高于其他方法。
表 2 正確率對比Table 2 Correct rate comparison
本文首次嘗試了將卷積神經(jīng)網(wǎng)絡(luò)識別模型應(yīng)用于盲文音樂圖片。在識別過程中,首先對盲文音樂圖片進(jìn)行了預(yù)處理操作,以便于獲得更好的輸入圖片。其次,本文展示了通過卷積層、池化層等處理后的盲文音樂圖片的特征圖。在展示特征圖的同時,對識別模型的細(xì)節(jié)也進(jìn)行了說明,例如關(guān)鍵參數(shù)的設(shè)定。最后,通過對實(shí)驗(yàn)結(jié)果進(jìn)行分析,可以發(fā)現(xiàn)該模型可以很好地提取到盲文音樂符號的特征,對盲文音樂具有良好的識別效果。當(dāng)然本文也存在諸多不足之處,例如對數(shù)據(jù)集的選取較單一,若可以采集到現(xiàn)實(shí)生活中紙質(zhì)的盲文書籍,那么數(shù)據(jù)集就較為充實(shí),該識別模型就可以廣泛用到生活中,可以減少盲文識別對人工操作的依賴性。