手寫輸入作為與設備的一種重要交互方式一直都受到各個廠商的重視,特別是對于中老年朋友來說,更喜歡通過手寫而不是鍵盤的方式來進行輸入。此外,對于一些復雜的語言、交互演示場景、試教等,手寫輸入扮演著不可或缺的作用。
15年時谷歌曾經(jīng)推出了支持82種語言的手寫輸入,并在去年升級為100種語言。但隨著機器學習的迅速發(fā)展,研究人員也在不斷重構著以往的方法為用戶帶來更快更準的體驗。
先前的模型基于人工設計的方法,將輸入筆畫切分成單個字符并利用對應的解碼器進行理解。為了提高準確率和速度,研究人員開發(fā)了基于循環(huán)神經(jīng)網(wǎng)絡的端到端手寫識別系統(tǒng),通過將輸入筆畫轉(zhuǎn)為貝塞爾曲線序列進行分析處理,利用RNN得到了準確率更高的識別結果。在這篇文章中,研究人員以拉丁字母為例詳解了新型手寫字符識別背后的故事。
觸點、曲線和循環(huán)神經(jīng)網(wǎng)絡
任何手寫字符識別系統(tǒng)都需要從識別手指/輸入設備的觸點。我們在屏幕或者手寫板上輸入的筆畫可以看做是一系列包含時間戳的出觸點序列??紤]到輸入的設備在尺寸、分辨率上各不相同,研究人員首先對輸入的觸點坐標進行了歸一化處理。而后利用三次貝塞爾曲線來對觸點序列進行描述,以便RNN能夠更好的理解筆畫序列的形狀。
貝塞爾曲線在手寫識別中有著很長的應用歷史,基于貝塞爾曲線可以對輸入數(shù)據(jù)進行更加連續(xù)的表達,對于不同的采樣率和分辨率更加魯棒。在貝塞爾曲線表達中,每一條曲線可以被表示為起始點、終止點和兩個控制點的多項式,較少的參數(shù)精確的表達輸入筆畫。
這種方法代替了谷歌先前基于分割-解碼的方案,先前的方案需要先將輸入的筆畫分割成單個字符,而后利用解碼的方式尋找最有可能的字符。使用貝塞爾曲線表達輸入筆畫的另一個優(yōu)點在于它可以更加緊致的表述輸入的觸點序列,這將便于模型從輸入中抽取輸入的時序依賴性。上圖中顯示了利用貝塞爾曲線擬合“go”字符的過程。原始的輸入點集包含了186個觸點坐標,其中對于字母g可以用圖中的黃色、藍色、粉色和綠色點來表示四條三次貝塞爾曲線的序列,而對于字母o可以用橙色、翠綠色和白色表示的三條貝塞爾曲線序列來描述。在貝塞爾曲線序列表示的輸入基礎上,我們需要對序列進行解碼才能得到所表示的字符。RNN是處理序列輸入的有效方式,所以研究人員利用了多層RNN來對序列數(shù)據(jù)進行解碼,并為每一個輸入序列生成一個表示其所代表字母可能性的矩陣,從而計算出手寫筆畫代表的字符。
在實際過程中,研究人員選擇了一種雙向的準循環(huán)神經(jīng)網(wǎng)絡來作為處理模型,這種模型中具有交替的卷積和回歸層在理論上具有并行處理的可能性,同時也在網(wǎng)絡權重較少的情況下保持模型的能力。由于手寫字符識別更多的是在移動設備上進行,小尺寸的模型是保持速度的關鍵所在。
為了對曲線序列進行解碼,識別出對應的字符,循環(huán)神經(jīng)網(wǎng)絡會生成一個表示字母可能性的解碼矩陣。矩陣的每一列代表了一條貝塞爾曲線,而每一行則代表了對應輸入曲線對應的字母可能性。在上圖中的解碼矩陣中,對于每一列我們可以看到它和先前的序列一起構成了26個字母上對應的概率分布。第一到第三條曲線序列都對應著blank(代表還沒有識別出字符,來自于CTC算法),而到了第四條曲線時網(wǎng)絡在g字母處得到了較高的概率,這意味著RNN從前面的四條曲線中識別出了字母g,而后面的第八條曲線上我們又可以看到字母o對應的位置有較高的概率。通過序列處理就能將曲線解碼為對應的字符。
此外還有兩個有趣的現(xiàn)象值得注意,對于字母g的識別,在第四列中y字母(倒數(shù)第二個)對應的激活也比較高,這是因為g和y看起來比較類似。而對于o字母的識別,每一條曲線輸入后o對應的概率在不斷提升,這也和我們的直覺相吻合,o代表的圓圈畫的越完整是o的可能性就越大。此外研究人員還引入了有限狀態(tài)語言模型解碼器來對網(wǎng)絡的輸出進行組合,對于某些常見的字符組合會有更大的可能性輸入,這樣就可以快速的將解碼出的字符轉(zhuǎn)換為單詞輸出??偨Y下來新方法一共分為了三個主要步驟,首先將觸點序列轉(zhuǎn)為緊湊的貝塞爾曲線,隨后利用QRNN進行解碼,最后利用字符結果組合出對應的單詞。雖然看起來很簡單,但這種方法相比原先的方法使得識別的錯誤率下降了20%-40%!
關于模型訓練
模型的訓練分為兩部分,一部分是基于connectionist temporal classification(CTC)損失對模型進行訓練,另一部分是基于貝葉斯優(yōu)化的解碼器調(diào)參。訓練的數(shù)據(jù)主要包含了三個數(shù)據(jù)集,分別是IAM-OnDB在線手寫字符數(shù)據(jù)集,IBM-UB-1英語數(shù)據(jù)集,以及ICDAR 2013的中文數(shù)據(jù)集Chinese Isolated Characters,ICFHR2018中的越南語數(shù)據(jù)集。詳細的數(shù)據(jù)集鏈接請參看文末參考文獻。
設備部署
對于手寫識別來說,精確的模型沒有速度的保證對于用戶來說是無法忍受的。為了減小手寫輸入的延時,研究人員將模型在tensorflow Lite上進行了實現(xiàn),通過如量化等一系列手段成功地減小了模型和最終應用安裝包的大小。完善的模型加上小巧的實現(xiàn)將讓手機更容易看懂我們筆跡。如果想要了解更多細節(jié),請參考原文:
https://arxiv.org/pdf/1902.10525.pdf
-
解碼器
+關注
關注
9文章
1129瀏覽量
40636 -
神經(jīng)網(wǎng)絡
+關注
關注
42文章
4733瀏覽量
100417 -
rnn
+關注
關注
0文章
76瀏覽量
6868
原文標題:Google手寫字符識別的新進展
文章出處:【微信號:thejiangmen,微信公眾號:將門創(chuàng)投】歡迎添加關注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關推薦
評論