Fast multi-language LSTM-based online handwriting recognition 線上手寫識別
Fast multi-language LSTM-based online handwriting recognition 線上手寫識別
paper
線上手寫識別,是區別於離線手寫識別,即帶書寫軌跡的字元識別,比如平板,寫字板等觸控式螢幕活著觸控筆等。帶有筆跡時許資訊。
也區分單字識別(觸屏輸入法)和行識別(一次性寫一行直接識別出來,666)
本文是2019年的論文,我寫一下論文概要
谷歌的線上手寫識別系統,在IAM-OnDB英文線上行識別資料集上最好。
該系統將來自序列識別的方法與使用貝塞爾曲線的新輸入編碼相結合。102種語言,各種文字元號都可以,快了10倍,更精確了20%
線上手寫越來越重要的原因:
1 新興市場中許多裝置專門是手寫的,很多母語不像英文一樣好輸入(由於有字素簇,字母不一樣大,小語種鍵盤不好設計)
2 觸屏裝置越來越多
2020年我們取代了自己2017年的分割-解碼的系統25(先將筆跡ink過度的細分,再將細分分組轉換為字元假設),計算每個字元的特徵,然後使用淺層網路分類器。
識別結果使用最佳路徑搜尋解碼演算法,結合語言模型等額外資訊。以來大量預處理,分割和知識啟發內容。但是現在不需要這些了。
新模型就是雙向LSTM+CTC
早期方法HMM,比如TDNNs,延時神經網路
近期RNN比如LSTM (6,7,14)
資料上也有所變化:早期用一系列基於手工特徵的,每個點都用一組特徵表示,或者用全域性特徵代表整個字元。
現在掃除了大量工程上的努力,變成可學習的特徵。
上圖你看這識別,各國語言千差萬別,多行的,符號的,也能識別
論文創新點:
- 詳細描述我們調整網路的過程,與之前論文做詳細實驗比較
- 一個創新的輸入表達特方式:貝塞爾曲線插值。更短的輸入序列,更快的識別
- IAM-OnDB資料集最佳精度,包括限制的訓練集和開放的訓練集(自己有內部資料集)
- 為生僻的IBM——UB引入一個評估方式
- 消融實驗,分析每個部件
訓練方法上,早期:顯式的分割變為:
CTC loss 或者 encoder-decode方法再加最大似然估計
我們的模型類似於語音識別那個CLDNN(卷積+LSTM+DNNs),有四點不同
- 不使用卷積,相比語音,我們的筆跡序列較短
- 雙向LSTM,時間延遲不太影響
- 不用雙向LSTM前後的全連線層
- CTC而不是HMM
如上圖,序列輸入+雙向LSTM+softmax+CTC 序列預測線上手寫資料
輸入:老論文中,每個點特徵23維
我們現在提出兩種表示:
- 原始接觸點
- 貝塞爾曲線
原始筆畫:
we use a sequence of 5-dimensional points (xi , yi , ti , pi , ni )
一個點用5維的資訊
ti是時間戳
pi代表落筆和筆拿開
ni代表新的筆畫
二者之間有冗餘,但是大量資料實驗中逐漸形成的,簡化後不太會有很大提升。
實際輸入是座標差值:
5維:
( xi - xi-1 , y i - yi-1 , ti - ti-1 , pi , ni )
貝塞爾曲線:
自己看論文吧,一種三次多項式擬合筆畫的方法,還有很多工程資訊,比如筆畫過長過彎,擬合不好時,先切斷筆畫,擬合,再合起來,擬合時可以少量點控制多個筆觸點,
對不同取樣率適應得很好
1由於不同裝置取樣率不一致,需要重取樣,
2重新選擇取樣率後,可以代表小特徵,但是直線這種會被過度取樣
3模型複雜度,模型必須學會繪製小圖且能對映到全域性特徵
貝塞爾曲線是描述軌跡的自然方法空間,論文21主要是消除異常值的方法,22是上取樣稀疏資料,35是螢幕上平滑手寫資料
貝塞爾曲線可以表示潛在很長的序列,我們使用輸入點序列作為引數三次多項式的序列。
s在0-1之間
x(s) = α0 + α1s + α2s2 + α3s3
對精度影響不太大,主要是更快,長度短為四分之一
精度差別不大,速度快好幾倍
貝塞爾曲線的資料預處理:
1平移使得x0=0,縮放使得y在0-1之間,若未知大小,則使輸入範圍大於書寫範圍20%
2沿著筆畫等距離的重取樣,δ = 0.05, 即 長度為1的線取樣20個點
雙層LSTM
根據不同語種的識別任務設定不同層數
層數大一些還是更精確一些
資料更多也是更精確,LSTM節點數大概64或者128就飽和了
softmax層
每個LSTM層的每個幀都輸入到softmax層,來獲得C上的概率分佈。
decode
按照論文12的步驟,softmax層的輸出是T時間序列
使用CTC解碼器,softmax層的logit輸出與特定語言先驗知識結合(decoder權值),將其線性的合併
在解碼時使用beam search,可以提高精度
重要的引用
12. Graves, A., Fernández, S., Gomez, F.J., Schmidhuber, J.: Con- nectionist temporal classification: labelling unsegmented sequence data with recurrent neural networks. In: ICML (2006)
12是谷歌上一版本的論文,用了很多工程技巧拆分結構
25.Keysers, D., Deselaers, T., Rowley, H., Wang, L.L., Carbune, V.: Multi-language online handwriting recognition. IEEE Trans. Pat- tern Anal. Mach. Intell. 39(6), 1180–1194 (2017)
這篇論文資料處理方面比較好
後記
看完這些,希望你已經沒有想復現的衝動了。
如果是這樣的話,不妨點個贊吧。
為何要點贊?
如果本文解決了你的困惑,不妨點個贊鼓勵一下。
不管你信不信,也不管你同不同意,實際上,你的每一次點贊都標誌著你自身的進步。而打賞乃是點讚的高階形式
曾經有無數個點讚的機會,但是我都沒有好好珍惜,假如時光可以倒流,我一定為他們也為自己點贊。
相關文章
- Action Recognition——基於表示的動作識別綜述
- Action Recognition——基於深度學習的動作識別綜述深度學習
- 在win10上安裝face_recognition(人臉識別)Win10
- 寫給程式設計師的機器學習入門 (九) - 物件識別 RCNN 與 Fast-RCNN程式設計師機器學習物件CNNAST
- [論文][表情識別]Towards Semi-Supervised Deep Facial Expression Recognition with An Adaptive Confidence MarginExpressAPTIDE
- 手寫數字圖片識別-全連線網路
- Python實現人臉識別功能,face_recognition的使用 | 機器學習Python機器學習
- 手寫識別 b友
- python三層全連線層實現手寫字母識別方式Python
- Sequence recognition
- 基於深度學習的場景文字檢測和識別(Scene Text Detection and Recognition)綜述深度學習
- 雲脈文件雲識別APP:輕鬆識別潦草手寫體APP
- 【翻譯】GRAIL-手寫識別AI
- C# 手寫識別方案整理C#
- torch--minst手寫體識別
- 外掛級OCR神器:免費文件解析、表格識別、手寫識別、古籍識別、PDF轉Word
- face-recognition
- tensorflow.js 手寫數字識別JS
- 如何識別網頁上的文字?線上工具免費識別網頁
- Win7環境下VS2015+Python 2.7 編譯人臉識別開源庫 face_recognitionWin7Python編譯
- 【機器學習】手寫數字識別機器學習
- 使用 Vyper 編寫簡易文字識別程式
- Selective Search for Object RecognitionObject
- 自己上手寫效能測試工具(二)
- 機器學習演算法(九): 基於線性判別模型的LDA手寫數字分類識別機器學習演算法模型LDA
- Node.js文字識別介面、文字錄入、線上免費文字識別介面Node.js
- opencv python 基於KNN的手寫體識別OpenCVPythonKNN
- 【Get】用深度學習識別手寫數字深度學習
- opencv python 基於SVM的手寫體識別OpenCVPython
- Tensorflow實現RNN(LSTM)手寫數字識別RNN
- 瀏覽器中的手寫數字識別瀏覽器
- java 百度手寫文字識別介面配置Java
- Tensorflow2.0-mnist手寫數字識別示例
- 線上改表工具oak-online-alter-table和pt-online-schema-change的使用限制總結
- OCR文字識別軟體線上如何操作?
- 快速上手——我用scrapy寫爬蟲(一)爬蟲
- 充分理解Kotlin,快速上手寫業務Kotlin
- fast-inAST