參考
[1] https://github.com/eragonruan/text-detection-ctpn
[2] https://github.com/senlinuc/caffe_ocr
[3] https://github.com/YCG09/chinese_ocr 感謝作者!
[4] https://github.com/xiaomaxiao/keras_ocr
認真看源碼!
基於Tensorflow和Keras實現端到端的不定長中文字符檢測和識別
- 文本檢測:CTPN
- 文本識別:DenseNet + CTC
環境部署
-
Bash
sh setup.sh
```
* 注:CPU環境執行前需注釋掉for gpu部分,並解開for cpu部分的注釋 -
Demo
將測試圖片放入test_images目錄,檢測結果會保存到test_result中
``` Bash
python demo.py
``` - 一定在終端運行demo.py 代碼,另外,因不能連接外網,所以在進行依賴時,需要用公司鏡像完成安裝。
- 釋放占用的顯存時,只需要kernel,restart重啟即可。在jupyter notebook中加!命令,相當於終端執行的命令。
- 切換python環境 source activate base 即可切換到常用的,安裝有許多依賴庫的 anaconda2 python2環境。這樣才能運行demo.py.
Demo
將測試圖片放入test_images目錄,檢測結果會保存到test_result中
python demo.py
模型訓練
CTPN訓練
詳見ctpn/README.md
DenseNet + CTC訓練
1. 數據准備
數據集:https://pan.baidu.com/s/1QkI7kjah8SPHwOQ40rS1Pw (密碼:lu7m)
- 共約364萬張圖片,按照99:1划分成訓練集和驗證集
- 數據利用中文語料庫(新聞 + 文言文),通過字體、大小、灰度、模糊、透視、拉伸等變化隨機生成
- 包含漢字、英文字母、數字和標點共5990個字符
- 每個樣本固定10個字符,字符隨機截取自語料庫中的句子
- 圖片分辨率統一為280x32
圖片解壓后放置到train/images目錄下,描述文件放到train目錄下
2. 訓練
cd train
python train.py
3. 結果
| val acc | predict | model |
|---|---|---|
| 0.983 | 8ms | 18.9MB |
- GPU: GTX TITAN X
- Keras Backend: Tensorflow
4. 生成自己的樣本
可參考SynthText_Chinese_version,TextRecognitionDataGenerator和text_renderer


