吳振宇 路 檸 高洪波
由于自身復雜的結構以及拍攝角度和像素值等因素的影響,字符體現出形態上的不確定性.尤其在手寫字符中,手寫人不同的書寫風格將導致字體多變的樣式和形狀,不確定性更加顯著.字符識別是通過機器模擬人類閱讀字符的過程[1],已經廣泛應用于卡號識別、車牌識別、安全認證[2]等領域.
特征提取和識別算法是字符識別中的兩個重要步驟.其中,特征提取主要包括基于結構特征和基于統計特征的方法[3].ROCHA 等使用原型描述字符形狀的結構信息,把噪音和形狀的變化建模成原型特征的一系列變換[4].ARICA 等使用圖像分割方法結合隱馬爾可夫模型(hidden Markov model,HMM)估計字符形狀[5].Blumenstein 等通過檢測字符的前景和背景像素之間的轉換,實現字符的特征提取[6].WANG 等提出一種直接在掃描文檔灰度圖像里提取特征的方法,將一幅灰度圖像看作連續表面上的噪音采樣,通過在連續表面上字符形狀的提取獲取字符特征[7].LIU提出了正則協同梯度特征(normalization-cooperated gradient feature,NCGF)方法,將原始字符圖像的梯度方向元素映射到平面方向,以減少形狀正則化導致的筆畫方向無序的影響[8].最近,通過深度學習技術自動提取字符特征,大大簡化了手動特征提取的過程[9].
識別算法主要包括在線識別和離線識別兩種[10].SCOTT 等提出了一種基于模板的字符識別方法,使用模板表示字符的風格,使用最近鄰、決策樹等分類算法,可以達到86.9%左右的識別準確率[11].分區方法綜合考慮了拓撲結構和隸屬度函數,也被用于字符識別中[12].RAJAVELU 等應用神經網絡識別不同類型、大小的字符[13].隨后,以卷積神經網絡(convolutional neural network,CNN)為代表的深度學習模型在字符識別上取得了較好的效果[14].ZHANG 等將正則協同方向解耦特征圖(normalization-cooperated direction-decomposed feature map,NDFM)引入到CNN 中,通過引入先驗知識提升了中文手寫字符的識別準確率[15].LI 等提出了香草組合網絡(vanilla compositional network,VCN)進行在線中文手寫字符識別,通過對字符的上下文信息建模提升了CNN 模型識別的準確率[16].雖然CNN 方法在字符識別上的準確率較高,但是存在可解釋性等問題,MELNYK 等采用離線中文字符識別模型的可視化技術,說明了字符識別中的原理[17].最近,預訓練模型也被用于字符識別中.GHOSH 等使用基于CNN 的預訓練模型,主要包括Inception-NetV3 和DenseNet121,識別孟加拉字符[18].ARSALAN等使用基于長短時記憶網絡(long short term memory,LSTM)分析了時間序列上的字符數據,研究字符的書寫軌跡[19].另外,預訓練Transformer 模型也被應用于字符識別任務中[20].采用無監督學習方法,通過計算字符之間的相似性可以將相似字符劃分成組[21-23].
已有的研究雖然取得了較高的字符識別準確率,但是不確定性字符的認知機理尚未闡明.認知模型已經成為應對不確定性問題的重要手段[24].李強等提出了“社會認知”的概念應對全域作戰中的威脅挑戰[25].賈奮勵等提出全息地圖進行態勢認知,從而應對戰場環境復雜高維、多元異構等不確定性問題[26].
本質上,人類對字符的認知是從大量的字符樣本中學習規律,形成定性表示的過程.并且在定性表示的基礎上,通過書寫等手段可以生成新的字符.由于光照、視角等外部環境以及心情等內在因素的影響,新字符在大小、粗細、形狀上存在著差異.然而,這些字體又不會相差太多,符合一個人的寫字風格,使得筆跡認證成為可能.因此,本文主要從不確定性人工智能的角度研究字符的定性和定量的雙向認知方法,具體包括以下兩個部分,1)從字符樣本中提取描述字符不確定性的特征矩陣,實現對該字符的定性表示;2)在定性表示的基礎上,生成新字符樣本,實現對該字符的定量轉換.
云模型是實現數據樣本定性和定量雙向認知的重要工具之一[27],已經廣泛應用于一維、二維數據樣本的不確定性認知中.然而,字符圖像是多維矩陣結構,本文對云模型理論做了進一步的完善.即,將一維云模型中的3 個數字特征重新定義為3 個特征矩陣,分別稱為期望矩陣、熵矩陣和超熵矩陣.其中,期望矩陣表示在大量字符樣本的基礎上,形成的對該字符定性認知的期望,是一種共性認識,可以可視化為一張期望圖像.熵矩陣表示定性認知的過程中,字符樣本偏離期望圖像的程度.超熵矩陣用于度量熵矩陣中的不確定程度.同理,熵矩陣和超熵矩陣也可以分別可視化為熵圖像和超熵圖像.另外,本文首次應用逆向云發生器提取字符的3 個特征矩陣,用于字符的定性表示;并且將正向云發生器擴展為矩陣運算形式,生成新的字符樣本,用于字符的定量表示.進一步地,考慮像素尺度上字符大小、形態、伸縮性等的變化會較大地影響上述認知過程,在字符圖像的特征級別上,應用自編碼器自動提取字符圖像特征,得到字符的語義向量.從而在語義向量空間中,提出應用云模型理論進行雙向認知的方法.最后,云模型中的確定度可以度量一個字符樣本隸屬于字符類別的程度.確定度越大,其屬于該類別的概率也越大,確定度越小,其屬于該類別的概率也越小.因此,本文提出了基于云模型確定度的字符識別方法,并與卷積神經網絡方法進行了對比.
假設有一組字符數據樣本D={X,Y},其中,X={x1,x2,…,xn}是原始的字符圖像集合,Y={y1,y2,…,yn}表示對應的字符標簽集合.字符圖像可以表示為:
其中,c 表示圖像通道數;h 和w 分別表示圖像的高度和寬度;R是像素矩陣,其中每一個元素的值對應圖像中像素點的灰度值.
針對同一個類別的字符圖像C={c1,c2,…,cm}(ci∈X,1≤i≤m),排除不確定性因素帶來的干擾,得到表示該類字符圖像共性的期望矩陣C_Ex,稱為一個定性認知過程.并且字符圖像集合C 中的樣本偏離期望矩陣的程度表示為熵矩陣C_En,樣本偏離熵矩陣的程度表示為超熵矩陣C_He.反過來,可以根據期望圖像以及不確定性度量生成字符圖像的定量化表示,即,生成一幅新的字符圖像.
其中,f 表示字符圖像的生成函數.
另外,使用期望矩陣、熵矩陣和超熵矩陣,可以判斷一個字符圖像是否屬于本類別.假設一個分類函數g,對于給定的測試字符圖像c,判斷其是否屬于類別C.
對于特定類別(如數字1,字母A 等)的字符圖像集合C,根據云模型的定義,存在著針對該字符表示的h×w 維的期望矩陣C_Ex,以及偏離期望的不確定性度量矩陣C_En 和C_He,它們是在數據樣本基礎上形成的對該字符的定性認知.相反地,根據給定的3 個矩陣C_Ex、C_En 和C_He 生成一個新的字符圖像樣本的過程,是對該字符圖像從定性的表示到定量化的表示轉換的過程,體現了對字符的定量認知.
對字符圖像樣本的定性認知的過程,是在字符圖像集合C 上應用逆向云發生器的過程.根據以下公式,可以估計出C 中字符圖像樣本的期望矩陣:
其中,C_Ex 是一個h×w 維的矩陣.計算字符圖像樣本的二階中心距:
從而,可以估計字符圖像樣本的熵矩陣C_En,C_En 也是一個h×w 維的矩陣,進一步,可以估計字符圖像樣本的超熵矩陣:
最終輸出(C_Ex,C_En,C_He)作為字符數據集C 的云模型表示.
同理,根據輸入的字符數據集云模型表示的3個矩陣,在將正向高斯云發生器擴展到h×w 維的基礎上,生成一個字符圖像樣本.根據C_En 和C_He生成一個高斯隨機數矩陣C_En',具體如下式:
其中,NORM 是高斯隨機數生成函數.
根據C_Ex 和C_En' 生成一個高斯隨機數矩陣x,對應一個新的字符圖像,如下式:
并且,可以計算x對于字符圖像集合C 的確定度Z,確定度越高說明該字符圖像隸屬于該字符圖像集C 的程度越大,反之越小.
2.2.1 字符語義空間上的雙向認知
本文使用深度學習模型自動化地提取字符特征,將像素級別的特征轉換到另一個語義空間中,在此基礎上,通過云模型度量語義空間中字符的不確定性.對字符圖片進行歸一化的基礎上,使用一個自編碼器Encoder 提取字符的特征,針對x,輸出一個語義空間上的矩陣x',即有如下關系:
自編碼器包括2 個卷積層、2 個池化層以及2個全相連層.字符特征提取的過程如下:通過輸入層輸入20×20 大小、1 個通道的圖片,然后,經過第1次卷積產生64 個通道,并進行第1 次池化.接著進行第2 次卷積產生32 個通道,并進行第2 次池化.最后將所有神經元展平,準備接入全相連層.最后進入兩層全相連層,得到自編碼器輸出層.解碼的過程相反,將上述網絡結構反過來,分別通過池化和卷積操作恢復為64 個通道,再次通過池化與卷積操作,得到1 張1 個通道的字符圖像.
此時,一個類別的字符集合在編碼之后的語義向量空間上可以表示為C'={x1',x2',…,xm'}(1≤i≤m).同理,應用逆向云發生器,可以獲得字符集在語義向量空間上的3 個矩陣表示(C'_Ex,C'_En,C'_He),分別表示期望矩陣、熵矩陣和超熵矩陣.相反地,應用正向云發生器,可以得到一個語義向量表示的字符圖像,通過解碼器之后可以還原成一幅帶有像素的字符圖像.
2.2.2 基于云模型的字符識別算法
針對一個字符圖像,可以計算其對不同的字符集合的確定度,那么,確定度大的字符集合可以預測為該字符所屬于的集合,并把該集合的標簽設置為該字符的標簽,具體過程如算法1 所示.
如果將C 中的圖像先通過編碼器,編碼成圖像的語義表示,然后再應用逆向高斯云模型提取圖像的3 個矩陣,就得到了基于編碼器和云模型的字符識別算法.
本文使用的數據集中包含數字、字母和漢字3種類型.其中,數字包括0~9 共10 個數字,字母包括24 個大寫字母,漢字包括每一個省份的簡稱,共31個.樣本數量上,數字樣本最多,字母次之,漢字的樣本最少.每一種類型的個數統計如表1 所示.

表1 實驗數據集Table 1 Experiment dataset
期望圖像、熵圖像和超熵圖像,它們可以使用可視化的方法呈現.
本文分別選擇了數字、字母和漢字來說明針對字符圖像的定性認知過程.圖像的大小都是20×20,即400 個像素.
圖1 顯示了針對數字圖像“5”的認知結果.顯然,圖1(a)是數據集中字符“5”的期望,它最能夠反映所有的樣本特征.而圖1(b)是所有字符“5”的樣本偏離期望程度的度量,可以看到,中間的部分是空的,邊緣的像素分布體現了偏離期望的程度.圖1(c)是熵的不確定性度量,表示所有字符“5”的樣本偏離熵的程度.從圖1(a)~圖1(c),字符圖像變得越來越模糊,符合人類對字符樣本的認知規律.圖1(d)是字符“5”期望的另外一種可視化形式.其橫坐標表示圖1(a)中圖像的按行展開,縱坐標表示對應像素的像素值.從該圖可以看出數字“5”的像素值的分布規律,大致上分為3 個密集區域.

圖1 數字的云模型表示Fig.1 Cloud model representation of a number
針對每一類字母數據集合,也可以通過逆向云發生器得到表示該類字母的期望圖像、熵圖像和超熵圖像.字母“B”的結果如圖2 所示.圖2(a)~2(c)分別表示字母“B”的期望圖像、熵圖像和超熵圖像.通過圖2(d)也可以看出,像素值連續比較高的有3 個地方,分別對應著“B”在水平方向上的3 個較長的連續像素分布.

圖2 字母的云模型表示Fig.2 Cloud model representation of an alphabet
圖3 給出了漢字“云”的逆向云發生器提取的結果.其中,圖3(a)~3(c)分別表示“云”的期望圖像、熵圖像和超熵圖像.同理,在圖3(d)中存在3 部分像素值較高的密集區域,分別對應著“云”中在水平方向上的3 個像素分布密集區域.

圖3 漢字的云模型表示Fig.3 Cloud model representation of a Chinese character
通過圖1~圖3 中分別對數字、字母和漢字的云模型表示看出,本文采用的逆向云發生器對字符的不確定性可以很好地表示.在人類對字符的認知規律上,3 個數字特征也可以反映出對字符的認識特點.
在云模型的理論中,如果有了對于一類字符的定性認知,那么,就可以應用正向云發生器生成對應的字符樣本.可以認為是從針對字符的定性表示到定量的數據樣本之間的一次轉換,是對字符的定量認知.本文分別生成了數字、字母和漢字的數據樣本,如圖4 所示.其中圖4(a)~4(c)分別是生成的數字“5”、字母“B”和漢字“云”.

圖4 正向云發生器生成的字符Fig.4 Characters generated by normal cloud generator
通過圖4 中的生成字符可以看出,雖然字符比較模糊,但是能夠分辨出來每一個字符的結構,并且能夠判斷出字符的值.為了區分與該類字符相比,生成字符的不確定程度,可以使用確定度來定量的衡量.在圖4 中,生成的字符“5”、“B”和“云”的確定度分別為8.02e-84、2.24e-64和6.82e-60.根據確定度的計算公式可知,確定度的值是樣本與表示一個字符類的3 個特征向量計算之后得到的.那么,一個樣本屬于一個字符類的確定度值越大,就說明它隸屬于該類的確定程度越大.通過確定度值大小的比較,可以找出一個數據樣本的類別.因此,確定度常被用于分類任務中,即可以用于字符識別.
另外,在同一個字符類的確定度比較中,確定度的值越大,說明數據樣本與該類字符的期望圖像之間的相似性越高,反之亦然.
為了應對字符的尺寸變化、多變性等影響因素,本文采用自編碼器進行圖像特征提取,自編碼器的主要參數如下:第1 層卷積核個數為64,第2 層卷積核個數為32,兩次池化大小均為2*2,兩層全相連層的神經元個數均為400,損失函數采用均方誤差.
結果如圖5 所示.其中,圖5(a)~5(c)分別是漢字“云”在編碼之后的語義空間中的期望圖像、熵圖像和超熵圖像.編碼之后的圖像特征比較匯聚,通過圖5(d)中期望圖像的像素值的分布可以看出.本質上,圖5 顯示的是應用云模型度量字符圖像特征編碼的不確定性.

圖5 自編碼器云模型的表示Fig.5 Cloud model representation of auto-encoder
在字符圖像的特征語義空間中,根據得到的描述圖像特征云模型的3 個特征向量.應用正向云發生器算法,可以生成一個新的在語義空間中的圖像,該圖像也是經過編碼之后得到的.進一步地,通過解碼器恢復出原始圖像,結果如圖6 所示.圖6(a)~圖6(c)分別表示生成的字符“5”、“B”和“云”.同理,也可以計算出生成的字符樣本隸屬于其類別的確定度.對比圖6 和圖4 可以看出,經過編解碼操作之后,生成的字符圖像樣本更加清晰.

圖6 自編碼器逆向云發生器生成的字符Fig.6 Characters generated by normal cloud generator of auto-encoder
根據前面的分析,將一個字符類別可以用云模型定性表示,并且通過確定度值的大小可以判斷一個字符圖像樣本的類別.根據處理的是原始字符圖像或者編碼之后的字符圖像,可以分為云模型的分類方法和云模型編碼器的分類方法.將數據分為兩部分,分別是訓練集和測試集,其中,訓練集占80%,測試集占20%.除了以上兩種方法外,還用了CNN分類器.
3 種方法的字符識別準確率如圖7 所示.圖中橫坐標表示字符的類型,主要分為數字、字母和漢字3類.縱坐標表示識別的準確率.條形柱1 是CNN 的結果,條形柱2 是云模型編碼器分類器的結果,條形柱3 是云模型分類器的結果.在字符類型的識別上,數字的識別準確率大于字母的識別準確率,字母的識別準確率大于漢字的準確率,這與字符本身的復雜程度成反比.在識別的方法上,CNN 方法要優于云模型編碼器方法,云模型編碼分類器方法要優于云模型分類器方法.這是因為,CNN 需要大量的數據自動提取特征,而云模型編碼分類器和云模型分類器都是在特征或者像素統計學習的基礎上進行不同類別的劃分.雖然準確率較低,但是,在對字符的雙向認知上,云模型分類器和云模型編碼分類器方法更具有優勢,即,這兩種方法可以生成新的字符樣本.

圖7 字符識別正確率Fig.7 Accuracy results of character recognition
由于數據集中的字符都是經過對齊處理的,為了驗證3 種方法的識別泛化性,采用了對測試集數據旋轉的方式.主要方法如下:對原始圖像隨機旋轉0~20°,使得圖像中的字符發生變化.對字符“A”旋轉的結果,如圖8 所示.

圖8 字符旋轉的例子Fig.8 Examples of character rotation
3 種方法的模型訓練好之后,采用字符隨機旋轉的測試集進行測試,結果如圖9 所示.從圖中可以看出,在不同的字符類型對比上,漢字識別的準確率要差于數字和字母的識別準確率.在方法比較上,CNN在3 種字符上仍然取得了最優的結果,另外,云模型子編碼分類器要優于云模型分類器.云模型分類器的識別效率受到字符旋轉的影響更大,特別是在漢字的識別上.這是因為云模型分類器主要是在像素級別上通過統計學習字符的特征,而其他兩種方法都是基于深度學習進行特征的提取.

圖9 隨機旋轉字符識別正確率Fig.9 Recognition accuracy results on randomly rotated characters
在隨機旋轉的測試集上,分別統計了數字、字母和漢字的識別準確率.圖10 是旋轉數字測試集上的識別效果.其中,橫坐標表示0~9 共10 個數字,縱坐標表示識別的準確率.曲線1 表示CNN 方法的結果,曲線2 表示云模型編碼器分類器的結果,曲線3 表示云模型分類器的結果.顯然,在各個數字的識別上,CNN 方法要優于其他兩種方法,整體上,云模型編碼分類器的識別結果要優于云模型分類器的識別結果.然而在數字“1”“8”和“9”的識別上,云模型分類器表現的更優.
圖11 展示了字母識別的結果.圖中,橫坐標表示24 個不同的字母,縱坐標表示識別準確率.曲線1表示CNN 方法的結果,曲線2 表示云模型編碼器分類器的結果,曲線3 表示云模型分類器的結果.結果表明CNN 方法優于其他兩種方法,云模型編碼分類器總體上雖然優于云模型分類器算法,但是在個別字母的識別上,它也體現出了一定的優勢.

圖11 旋轉字母的識別準確率Fig.11 Recognition accuracy results of rotated alphabets
在旋轉字符測試集上,漢字的識別結果如圖12所示.圖中,橫坐標表示31 個不同的漢字,縱坐標表示識別準確率.曲線1 表示CNN 方法的結果,曲線2表示云模型編碼器分類器的結果,曲線3 表示云模型分類器的結果.結果表明,在漢字識別上,CNN 的方法優于其他兩種方法.云模型自編碼分類器方法明顯優于云模型分類器.這是因為由于漢字的結構更加復雜,給云模型進行像素級別的統計學習和分類判斷帶來了更大的挑戰.

圖12 旋轉漢字的識別準確率Fig.12 Recognition accuracy results of rotated Chinese characters
因此,在當前的實驗中,基于深度學習的方法在字符的識別準確率上要優于云模型的方法,云模型自編碼分類器的方法要優于云模型分類器的方法.當然,如果考慮模型的訓練時間,云模型自編碼分類器和云模型分類器的訓練時間大大小于CNN 的訓練時間.另外,在字符分類的可解釋性上,云模型自編碼器和云模型分類器更能體現出來人類對字符進行認知、識別的規律.
在常用的3 種字符,主要包括數字、字母和漢字的基礎上,本文使用云模型理論研究了字符圖像中的不確定性表示方法.通過期望圖像來表示最能夠代表該字符的、確定的部分,通過熵圖像來表示字符圖像樣本偏離期望圖像的程度,通過超熵圖像來表示熵圖像中的不確定性程度.
本文分別在原始字符圖像上進行了實驗.進一步在編解碼器的基礎上,研究了云模型在字符圖像語義向量空間中的不確定性度量,結果顯示云模型自編碼器的方法在字符生成上要優于云模型方法.在字符識別上,分別采用CNN、云模型自編碼器和云模型進行了字符分類實驗,結果表明CNN 方法要優于其他兩種方法,云模型自編碼器方法要優于云模型方法.然而,本文的重點在于闡述針對字符從樣本到知識的定性認知過程和從定性知識到定量樣本的定量認知過程,為字符的認知、生成提供更多的思路.盡管如此,本文仍然提出了針對字符識別的思路,在后續的工作中將進一步探索提升應用云模型理論的字符識別準確率的方法.