字元識別引擎Calamari總結

2021-08-21 13:33:24 字數 1691 閱讀 4508

**:calamari - a high-performance tensorflow-based deep learning package for optical character recognition

github:

依賴:

python3

tensorflow1.8 灰度

高度48pix

基於ocropy 對訓練的每一行進行退縮操作

由於lstm的瞬態效應,每一行的左右各補16個白色的畫素

網路結構:

cnn=40:3x3,pool=2x2,cnn=60:3x3,pool=2x2,lstm=200,dropout=0.5

codec: ['', ' ', "'", '(', ')', ',', '-', '.', '0', '1', '2', '4', '7', '9', ':', 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'k', 'l', 'm', 'n', 'o', 'p', 'r', 's', 't', 'u', 'v', 'w', 'y', 'z', '[', ']', 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z']
需要注意的是在tensorflow中blank是最後乙個label,而在這裡的codec裡面,blank是第乙個label。

layers 

stride

}layers

stride

}layers

stride

}layers

stride

}layers

solver: adam_solver

dropout: 0.5

features: 48

classes: 66

backend

ctc_merge_repeated: true

learning_rate: 0.0010000000474974513

評價標準:

字元錯誤率cer(character error rate),編輯ed(edit distance )。

整體公式表達了編輯距離和pred和groundtruth中較大值的比值。

cer=0表示所有字元匹配正確,cer=1表示沒有字元匹配正確

多模型融合:

**中作者使用了5折交叉訓練,可以分別訓練5個模型。然後進行模型融合,基於confidence_voter_default_ctc (default), confidence_voter_fuzzy_ctc, sequence_voter這3種投票方法,輸出最終識別結果。

總結:

crnn的思路,由於這裡的模型只有2個卷積層,比crnn的網路要小很多,所以使用了模型融合的思想。

純python製作,支援自己訓練和測試

目前只有識別模組,沒有檢測模組

Shape Context字元識別

關於shape context的文章,網上已經很多了。在這裡實現一下shape context描述子的視覺化。include hogimage.h using namespace std using namespace hog hogimage oimg struct color color col...

OCR字元識別

ocr optical character recognition 全稱光學字元識別技術,在halcon中,ocr常被用來分割區域及讀取識別影象中的字元含義。字元識別ocr原理及應用實現 ocr指電子裝置 掃瞄器 數位相機等 檢測在紙上列印的字元,通過檢測暗亮的模式確定其形狀,然後用字元識別方法將形...

字元識別 CRNN CTC

文字檢測過程分兩步,第一步為檢測出文字所在的位置,第二步根據檢測框裡的內容進行文字識別。第一部分文字檢測,這裡介紹了sast演算法 一 背景知識 1 迴圈神經網路rnn 迴圈神經網路recurrent neural network與其他cnn網路不同之處在於rnn每一點的輸出依賴於之前的結果。rnn...