為什麼手寫對於潦草字體的識別率很高,但是OCR就不行呢?

現在各種手寫輸入法很容易就能識別出各種各樣的,潦草的字體。而OCR則還停留在對列印字體的識別上。為什麼不能把手寫輸入法的演算法用在OCR上呢。


簡單回答,手寫過程中其實附帶了很多輔助信息,比如筆順,速度等,這些信息對文字識別的幫助很大。而ocr就是對一個圖片進行分辨,難度要比手寫識別大很多。

舉個例子:

方程組left{ 
egin{aligned}
x+y=2\
 x-y=0 
end{aligned}

ight. ,你能得到唯一解,如果只有一個x+y=2的方程呢?


請去知網搜索一下「卷積神經網路 漢字」

"而OCR則還停留在對列印字體的識別上"是錯的。

另外有在線漢字識別和離線漢字識別之分,

請看Database Home


最近恰好在做OCR相關的事。總的說來,手寫識別和OCR是有一定區別的。

1. 手寫識別通常包涵更多的信息(這裡指的是在線識別,我接觸到的高識別率手寫識別都是在線識別), 如筆畫順序, 連筆等。 這些細節看似簡單, 卻在無形之中給識別提供了不少的特徵, 有助於識別率的提升。

2. 手寫識別的樣本預處理比較容易。 與OCR相比,手寫輸入的文字需要的預處理步驟較少。 通常手寫是一個字元一個字元錄入,位置比較固定,不會有太大的旋轉角度。 而OCR, 你是無法預知文字排布的。 OCR的樣本通常來自於掃描,拍照,樣本在解析度上顯然不如手寫識別, 而且會有很多雜訊。 特徵提取一般都是像素級別的, 因此這些雜訊對於識別來說是一個很大的挑戰, 尤其是對於中文這種字符集龐大且複雜的語言。

3. 手寫識別還有一個特性是它的識別過程是人為干預的。當輸入一個字元時,識別引擎會根據輸入給出若干的識別結果,得分最高的為默認結果。如果這個結果不是你想要的,你仍然可以在若干個候選結果中選擇。而OCR,一個輸入對應一個輸出,最終你看到的只是分類得分最高的結果不能對識別進行實時的控制。


另一方面我熟悉的OCR流程中需要在整張圖片里先找只包括字的方框框,然後把方框里的內容縮放成合適的大小再進行識別。印刷字可以很容易地找到這個框,因為印刷非常整齊,但是手寫就辦不到啦。


手寫輸入法中字元的識別屬於聯機識別的範疇,普通手寫體圖像的識別屬於離線識別。手寫體的識別可以分為切分和字元識別兩個部分,其中切分是最困難的。聯機識別的優勢就是可以利用時間和空間的信息對字元進行較為準確的切分,而離線手寫的識別沒有時間上的信息,因此其切分要比聯機難很多,自然識別率也要低。 另外,1. 一般簡單的測試採樣很少,不具備統計意義;2。輸入法給出的是10選,二離線手寫給出的是首選,不具有直接可比性。

作者:王言偉 THOCR Lab

鏈接:為什麼現在手寫輸入法識別率比OCR軟體高? - 王言偉 THOCR Lab 的回答 - 知乎

來源:知乎

著作權歸作者所有,轉載請聯繫作者獲得授權。


動態識別和靜態識別,多了一維時間因素,信息自然也多了很多


各位大佬好厲害


目標對象不同的原因.


你指的手寫識別一般指在線手寫識別,相比ocr識別,可利用的信息不光是空間信息,還包含了時序信息,所以手寫識別和語音識別的原理可以互相借鑒,hmm,lstm等對時序問題都非常經典的解決演算法都可以用到在線手寫中。而對於手寫文字一旦變成離線圖片後的ocr問題後,丟失了時序信息,自然識別率就會低了


主要是手寫的訓練圖片太少,用手寫的字體弄得樣本訓練出來能識別一部分,連筆太嚴重的就不行了


推薦閱讀:

遊戲引擎真的是拿錢堆出來的
極樂技術周報(第二十五期)
如何設計一種演算法或程序,使得它難以設計專用硬體加速(或者作用有限)?

TAG:編程 | 計算機 | OCR光學字元識別 |