OCR文字識別用的是什麼演算法?

時間 2021-05-29 22:15:21

1樓:鳳舞九天

之前做過兩年多的ocr,這裡簡單寫一下,主要講進入深度學習時代的演算法方案。

純粹的OCR主要分兩種,一種是檢測+識別兩階段,還有一種是檢測識別一起端到端來做。據我了解,穩定演算法大多還是基於檢測識別兩階段來做的。

鳳舞九天:Ocr 檢測入門演算法

之前兩年多主要是做識別,目前識別,特別是中文上還是backbone + lstm + ctc 效果穩定,西語上attention 或者trnsformer 會好一些,我也寫過乙個簡單的介紹,是github開源的專案:

鳳舞九天:開源專案介紹L:deep-text-recognition-benchmark

未來我會在這把調好的transformer 也開源出來。

最後多說兩句,OCR有很多場景,比如銀行卡、發票這種不同的場景,會有一些新鮮的做法~

2樓:其義唐

前面很多人回答的都很不錯,按自己的經驗和見解,我這邊也再補充幾點下,

ocr文字識別演算法,按分類如下:

字元識別演算法有最早的k近鄰演算法,貝葉斯分類演算法,svm分類演算法,BP神經網路,卷積神經網路,到現在流行的crnn+ctc以及cnn+rnn+attention

行定位演算法,從傳統的基於文字行的投影資訊和二值連通域資訊進行文字行檢測,也有以MSER和SWT為代表的連通域分析方法進行文字檢測,到目前基於深度學習技術的CTPN,pixellink,psenet等演算法

正常ocr流程就是文字行檢測和文字行識別,再加乙個後處理。

要考慮到商業應用和更全面的處理,那OCR文字識別的流程就豐富的多,大概步驟如下:

首先,有文字影象質量判斷(模糊判斷,反光判斷,對比度判斷等),

其次,進行影象預處理(傾斜矯正、去背景、、去噪、方向矯正、影象增強等),

再次,進行行定位,行識別和後處理(核心)

最後,在最終ocr識別結果後我們主要還會再進行兩方面的應用處理,一方面主要是版面還原(基於版面分析的結果),另外一方面是結構化提取。

3樓:大熊

傳統的ocr都是二值化,字元分割識別吧。速度比較快,但是只能適應簡單背景。

深度學習檢測,end-to-end識別適應性好,但是cpu速度不行,手機端更別說了。

電腦GPU還行的話,可以自己去訓練乙個

blog.csdn.net/u013293750/article/details/73188934訓練的模型樣本只有100多玩,模型還不穩定,標點符號錯得比較多,因為沒有專門對標點符號進行訓練,都識別成中文了。

有硬體支援的話樣本增加到幾千萬,上億,應該會有更好的結果.

4樓:Liu Wei

說一下自己做了兩年的topic吧(單指識別)。

自己剛剛開始上手的framework是: CNN + LSTM + CTC。這個framework加上residue network + stn可以把通用的資料集刷的非常高。

之後開始研究attention based的框架,這個框架比較靈活,可挖的坑也比較多,目前遇到的主要問題是資料集。現有的資料集的不夠支撐更加複雜的模型。

深度學習ocr識別準確率高的演算法是哪些

學而時習 baseline可以是crnn ctc stn酌情加 高階可以global attention ce再高階可以local attention 再高階可以dynamically refine kernel再高階可以multi loss 再高階可以nas 再高階可以gan 以上還只是說的模型結...

人類本身識別面部用的是什麼 演算法 ?

Great 人對人的識別應該是根據遞進排除的,首先會將常見 或者覺得會見到的人形成乙個集合,在這個集合裡面進行識別。見面之後,未必是按照面部優先的順序,更多情況下,性別 姿態 年齡 膚色都有可能進行了資訊篩選,進入更少的人選內容。真正到了面部識別,基於對這個人的情緒表情記憶,可能會有一些表情識別,然...

A演算法和A 演算法的區別是什麼

若羽 A 演算法是一種可容納最優的啟發式搜尋演算法 其中 是最接近目標的真實代價,是實際A 演算法擬合的函式。伯克利的CS188課舉過這樣乙個例子 A是最優目標 區域性的 B是次優目標。B在邊緣,A的一些祖先節點n也在邊緣,代價函式f n 小於f A A 搜尋必須考慮forward cost和bac...