?

基于實時樣本采集的個性化手寫漢字輸入系統設計

2018-02-05 01:45,,
計算機測量與控制 2018年1期
關鍵詞:手寫殘差客戶端

, ,

(1.湖北大學 資源環境學院, 武漢 430062; 2.重慶大學 建設管理與房地產學院,重慶 400045)

0 引言

近年來,隨著我國計算機技術和通訊產業的高速發展,帶有觸摸屏的智能手機已逐漸取代了傳統的按鍵式手機,占據了手機消費市場的絕大份額。另一方面,隨著手機消費人群的擴展,以拼音、五筆為代表的中文漢字人機通訊接口,不能滿足多樣化用戶的使用需求。正因為如此,手寫漢字輸入法作為傳統輸入法的有效補充,以接近傳統文字書寫的方式實現中文漢字的輸入,以成為主流智能手機中文輸入法中重要的組成部分。

手寫漢字輸入法的關鍵在于手寫漢字識別(handwritten chinese character recognition, HCCR)。隨著以深度卷積神經網絡為代表的人工智能技術在圖形、圖像識別領域的成功運用,相關的方法也被逐步應用到手寫體文字識別領域[1],取得了優異的性能。例如在2012年的ICDAR (International Conference on Document Analysis and Recognition) 手寫漢字識別比賽中,來自瑞士IDSIA(Istituto Dalle Molle di Studi sull’Intelligenza Artificiale)實驗室的研究人員在CASIA-OLHWDB1.1 聯機手寫中文數據集上,將識別率提高到了95.39%[2];進一步的,在ICDAR 2013中文聯機和脫機手寫漢字識別的比賽中,取得第一名的隊伍分別取得了97.33%[3]和96.79%[4]的正確識別率。

另一方面,由于使用環境和用戶書寫習慣的多樣性,目前市場上的主流手寫識別軟件的識別率并沒有達到實驗精度,不少知名品牌的手寫輸入法軟件的識別率達不到90%[1]。因此,本文提出了一種基于用戶個性化書寫習慣的實時采樣的手寫漢字識別系統,能夠針對每個用戶的漢字書寫習慣,構建該用戶的專屬手寫漢字識別并支持動態調整,滿足不同漢字書寫習慣用戶的使用需求,提高智能手機用戶手寫漢字輸入的準確率。

1 系統組成功能及工作流程

基于實時采樣的個性手寫漢字識別系統采用C/S架構??蛻舳藶锳ndroid操作系統的智能手機;服務器為訓練手寫漢字識別的深度學習計算服務器,以及完成模型和樣本存儲的數據服務器。系統組成如圖1所示。

圖1 系統組成結構圖

系統功能主要包括兩部分:服務器端功能和客戶端功能。

服務器端包括數據服務器和計算服務器兩部分,其具體功能描述為:

1)數據服務器實現對手寫漢字樣本集的存儲管理。初始情形下,數據服務器中的數據庫僅存放公共的手寫漢字樣本,用于訓練生成手寫漢字識別的預訓練模型,在客戶端首次安裝時傳遞給客戶端使用;另一方面,數據服務器將針對不同的客戶端用戶,實現對該用戶手寫漢字的個性化集中存儲,此類個性化數據由客戶端定期同步上傳至數據服務器。

2)高性能計算服務器將搭建分布式環境,首先將完成對公共手寫漢字樣本集的分類訓練,生成用于客戶端手寫漢字識別的預訓練模型;更重要的,計算服務器將實現對多源客戶端上傳的用戶個人手寫漢字樣本進行個性化模型訓練。同時,高性能服務器集群將支持硬件的靈活擴充,以便于滿足客戶端數量增加時的計算需求。

智能手機客戶端的功能包括:

1)完成手寫漢字識別模型的加載,分為兩種情況:首次使用時從服務器端下載并加載手寫漢字識別的預訓練模型;后續使用中,將根據服務器端針對用戶個性手寫漢字識別模型的訓練情況,定期更新并加載優化后的漢字識別模型。

2)在實現手寫漢字輸入功能的同時,將根據用戶在客戶端手寫輸入的漢字的圖片,以及對應正確輸出的中文漢字,作為樣本和樣本標簽。當用戶完成每次單個漢字的輸入時,都將樣本集標簽輸出至采樣管理模塊。

3)通過采樣管理功能模塊對采集到的用戶樣本及其標簽的一致性檢測。對于篩選后的正確樣本,將臨時保存在客戶端本地的數據庫中,直至成功上傳至數據服務器。

針對用戶的使用需求及系統的功能需求,設計系統的工作流程如圖2所示。其中,在客戶端剛開始使用的一段時間內,手寫漢字識別的預訓練模型的精度不高,無法單獨滿足客戶端用戶的使用需求。因此,預訓練模型在客戶端使用時,除了提供最高可能性的漢字識別結果作為默認的漢字輸出,還將提供模型識別后概率向量最大的前五個漢字,供用戶手動選擇,輔助完成手寫漢字輸入及用戶的個性化漢字樣本的采集。

圖2 系統工作流程圖

2 系統工作原理

本系統采用C/S架構,在計算服務器端將搭載分布式計算系統,采用多GPU并行的方式,搭建Tensorflow[5]深度學習框架,進行手寫漢字識別模型的訓練。樣本庫將采用MySQL構建索引數據庫,完成對指定用戶樣本的快速查找??蛻舳瞬捎肁ndroid操作系統的智能手機,并搭載Tensorflow Android版,完成對手寫漢字分類模型的加載。

2.1 訓練模型設計

深度學習在圖像識別領域已經取得了突破性的進展,一大批優秀的圖像識別模型先后被提出,如2014年的VGGNet、Inception以及2015年的Resnet。手寫漢字的字體部分具有較為明顯的結構特征,可以利用諸如八方向特征[6]、網格智能算法[7]等領域知識結合神經網絡訓練分類模型;同樣,也可以采用端對端(End-to-End)模式,將手寫漢字作為圖像整體加以識別處理。

高性能計算服務器端將采用深度殘差網絡(Deep Residual Networks, DRNs)模型,運用End-to-end的思想構建手寫漢字識別訓練的卷積神經網絡。

深度殘差網絡由殘差學習模塊累加構成,殘差學習模塊的結構如圖3所示。

圖3 殘差學習模塊結構圖

其中,x為輸入,主干路經過卷積層運算后輸出為F(x,W),旁路為線性變換:h(x)=aix,其中i為殘差學習模塊序號。若激活函數變換用f表示,則學習模塊單元的最終輸出y可定義為:

y=f(F(x,Wi))+aix

(1)

整個深度殘差網絡的結構如圖4所示。

圖4 深度殘差網絡結構圖

此外,對于深度殘差網絡的時間復雜度,可由以下公式[8]評估:

(2)

其中:d為整個網絡卷積層的層數;n為卷積神經網絡每一層卷積核的數目;s為卷積核大??;m為圖像卷積后的空間分辨率。

因此,當不改變卷積層相關的參數,不會改變模型的時間復雜度;也即當只改進殘差旁路的變換方式,不會增加網絡訓練的時間開銷。同時,當卷積層層數,卷積核大小、數量,卷積后的空間分辨率確定后,整個網絡的時間復雜度即可由公式(2)計算得出。

2.2 樣本庫設計

樣本庫包括兩部分:一部分為網絡公開的手寫漢字識別樣本集,一部分為用戶個性化手寫漢字樣本。

對于網絡公開的手寫漢字識別樣本集,由于只需使用一次(初始訓練),生成預訓練模型,因此將經過預處理后的樣本集按圖片文件的原始格式保存在數據服務器中。

用戶個性化手寫漢字樣本同樣以圖片的形式在數據服務器文件系統中保存。同時為了多用戶并發的情形下,提升數據的檢索速度,需單獨設計檢索數據庫,數據字典如表1所示。

表1 索引數據庫數據字典

2.3 客戶端設計

客戶端的主要功能為實現用戶手寫漢字的識別,以及將用戶的正確手寫識別樣本傳遞給服務器。

由于客戶端將加載服務器端Tensorflow深度學習框架訓練好的手寫漢字識別模型,因此需要在手機客戶端同樣安裝Android版的Tensorflow,來加載和運行模型。服務器端的Tensorflow主要完成手寫漢字識別模型的反向傳播訓練;客戶端的Tensorflow主要實現服務器端訓練模型的加載讀取,正向傳播實現客戶端用戶手寫漢字的即時識別。

同時,對于每次的用戶手寫漢字輸入結果,將以圖片文件的形式臨時保存于手機中,直至將這些圖片樣本回傳服務器后刪除。

最后,采樣管理功能模塊將對樣本進行篩選,刪除用戶書寫及標簽錯誤的手寫漢字樣本,并將篩選后的樣本按照時間規則定期打包,通過通訊接口傳遞給數據服務器保存,便于計算服務器對該用戶手寫漢字識別模型的優化訓練。

3 系統測試

系統測試采用兩類樣本庫。第一類樣本庫為自動化所的脫機手寫漢字樣本庫CASIA-HWDB(V1.1)[9],該數據庫包含3755個GB2312一級漢字,共300套,分別為300人用Anoto筆在點陣紙上書寫后掃描、分割得到;每個漢字的樣本庫中包含240個訓練樣本和60個測試樣本;每個樣本表示為8bit灰度圖像。每個書寫人的構建的所有樣本保存在一個用GNT格式存儲的二進制文件中。第二類樣本庫為測試人員書隨機書寫的7000個漢字所構成的樣本庫。其中,第一類樣本庫用于手寫漢字預訓練模型的迭代訓練預模型生成;第二類模型庫用于測試特定用戶的書寫習慣下,優化模型的訓練及系統的對比測試。

計算服務器采用TitanX顯卡、32G內存,操作系統為Ubuntu16.04的服務器。深度學習框架選用Tensorflow_gpu 1.2版,訓練過程采用單Gpu的計算環境。訓練的神經網絡設計為如圖3所示的殘差學習模塊構成的深度殘差網絡。系統測試設計了一組對比實驗:對比原始的預訓練手寫漢字識別模型的識別精度,以及針對特定用戶優化后的手寫漢字識別模型的精度。

3.1 預訓練模型測試

預訓練模型將采用原始的CASIA-HWDB(V1.1)數據樣本進行訓練。為訓練模型,定義了一個損失函數(Loss Function)來描述模型對手寫體漢字的分類精度。損失函數的值越小,表示模型的分類結果與真實值的偏差越小,模型就越精確。在訓練初始階段,將初始化填充全零的模型參數,此時模型也將有一個初始的損失函數值。訓練的過程即通過不斷的迭代訓練,逐步減少損失函數的值,直到達到一個全局最優或局部最優解。

由于手寫漢字識別為多分類問題,因此,可以采用傳統的交叉熵(Cross Entropy)作為損失函數。設y為預測的概率分布,y′為真實的概率分布(也即模型學得的漢字分類),則損失函數的交叉熵表示,可用如下公式定義:

(3)

進而,可選擇合適的梯度下降算法(Gradient Descent Algorithm)以及學習速率來不斷最小化交叉熵,實現手寫漢字分類模型的訓練過程。同時,為進一步提升模型的性能,在整個訓練框架中引入輔助分類節點(Auxiliary Classifiers),將中間層的輸出用作分類,并按一定的權重比(0.1左右)加到最終的分類結果中,作為融合模型輸出。

最終,在本文設計的深度殘差網絡的訓練框架下,迭代訓練60萬次后,在CASIA-HWDB(V1.1)樣本庫提供的測試集上得到了90.32%的分類精度。同時,在客戶端輸入第二類樣本庫(測試人員手寫)中隨機選取的1000個漢字進一步測試特定用戶的模型識別率為87.73%。

3.2 優化模型測試

深度殘差網絡經過60萬次迭代訓練后,將生成手寫漢字識別的預訓練模型。由于預訓練模型是在公共樣本集上訓練所得,而與具體某一個用戶的漢字書寫習慣無關,因此無法通過“理解”特定用戶的書寫習慣而提高手寫漢字的識別率。

預訓練模型以checkpoint的形式保存在計算服務器中。在數據服務器獲取了特定用戶的手寫漢字樣本集后,即可在checkpoint的基礎上繼續訓練,逐步調整模型參數,以更好的匹配該用戶的書寫習慣。

優化模型測試即使對預訓練模型的再訓練測試。將第二類樣本庫中隨機選取6000個漢字,作為優化訓練的數據集,在預訓練模型的checkpoint基礎上繼續進行20萬次迭代訓練,將新生成的優化模型傳輸到客戶端??蛻舳藢⑹S嗟?000個該用戶的手寫漢字樣本作為測試集測試,測的該測試用戶手寫漢字的識別率為91.25%。

3.3 測試結果對比分析

兩組對比實驗的實驗結果對比如表2所示。

表2 測試結果對比

從上表的對比結果可以看出,經過優化訓練生成的模型,能夠更好的“理解”用戶的個性化書寫習慣,使該用戶的手寫漢字識別率從87.73%提高至91.25%,錯誤率下降了29%,模型的優化效果較為明顯。

4 結束語

本文提出了一種基于實時樣本采集的手寫漢字識別系統。系統C/S模式構建,服務器端選用新設計的殘差學習模塊構建的深度殘差網絡進行手寫漢字模型的訓練;客戶端采用Android智能手機完成手寫漢字的識別及實時樣本的采集。系統在傳統的一次模型訓練的基礎上,提出了多次優化訓練的概念,實現針對不同用戶漢字書寫習慣的優化模型,以提升智能手機客戶端的手寫漢字識別率,并通過實驗驗證了該方法對于手寫漢字識別精度的提升。

系統采用的實時樣本采集方法,對樣本及其標簽統一打包傳遞給服務器訓練,期間只驗證了樣本及其標簽對應是否一致。在以后的研究中,將進一步考慮實時采集樣本的篩選機制,刪減和過濾類似樣本,實現一定時間段內打包上傳樣本的多樣性,增加優化模型的泛化能力。

[1] 金連文, 鐘卓耀, 楊 釗,等. 深度學習在手寫漢字識別中的應用綜述[J]. 自動化學報, 2016, 42(8): 1125-1141.

[2] Ciresan D, Meier U, Schmidhuber J. Multi-column deep neural networks for image classification. In: Proceedings of the 2012 IEEE Conference on Computer Vision and Pattern Recognition[J]. IEEE, 2012, 3642-3649.

[3] Yang W X, Jin L W, Tao D C, et al. DropSample: a new training method to enhance deep convolutional neural networks for large-scale unconstrained handwritten Chinese character recognition[J]. arXiv: 1505.05354, 2015.

[4] Chen L, Wang S, Fan W, et al. Beyond human recognition: a CNN-based framework for handwritten character recognition[A]. In: Proceedings of the 3rd IAPR Asian Conference on Pattern Recognition[C]. IEEE, 2015,695-699.

[5] Mart′in Abadi, Ashish Agarwal, Paul Barham, et al. TensorFlow: Large-Scale Machine Learning on Heterogeneous Distributed Systems[J]. arXiv, 2016: 1603.04467.

[6] Bai Z L, Huo Q. A study on the use 8-directional features for online handwritten Chinese character recognition[A]. In: Proceedings of the 8th International Conference on Document Analysis and Recognition[C]. IEEE, 2005,262-266.

[7] 卓 偉, 馬紹惠, 王志華. 屬性嵌套計算網格智能算法實現車牌漢字精準識別的設計[J]. 計算機測量與控制. 2014, 22(6): 1918-1921.

[8] He K M, Sun J. Convolutional Neural Networks at Constrained Time Cost[A].CVPR 2015: IEEE Conference on Computer Vision and Pattern Recognition[C]. Boston: IEEE, 2015: 5353-5360.

[9] Liu C L, Yin F, Wang D H, et al. Online and offline handwritten Chinese character recognition: Benchmarking on new databases[J]. Pattern Recognition, 2013, 46(1): 155-162.

[10] 閆喜亮, 王黎明. 卷積深度神經網絡的手寫漢字識別系統[J]. 計算機工程與應用,2017, 53(10): 246-250.

猜你喜歡
手寫殘差客戶端
你的手機安裝了多少個客戶端
“人民網+客戶端”推出數據新聞
——穩就業、惠民生,“數”讀十年成績單
基于殘差-注意力和LSTM的心律失常心拍分類方法研究
基于雙向GRU與殘差擬合的車輛跟馳建模
我手寫我心
基于殘差學習的自適應無人機目標跟蹤算法
基于深度卷積的殘差三生網絡研究與應用
我手寫我意
6萬字的情書
新華社推出新版客戶端 打造移動互聯新聞旗艦
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合