**: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...