studioone精调效果包_cnocr: 极简的中文OCR Python包
Update 2020.04.21: 發(fā)布 cnocr V1.1.0
更輕量的 cnocr-V1.1.0 :最小模型只有 6.8M。具體說明見:
BreezeDeus:更輕量的 cnocr-V1.1.0 :最小模型只有 6.8M?zhuanlan.zhihu.comUpdate 2019.07.25: 發(fā)布 cnocr V1.0.0
cnocr發(fā)布了預(yù)測效率更高的新版本v1.0.0。具體說明見
https://github.com/breezedeus/cnocr/blob/master/README_cn.md?github.com主要更新如下:
- crnn模型支持可變長預(yù)測,提升預(yù)測效率
- 支持利用特定數(shù)據(jù)對(duì)現(xiàn)有模型進(jìn)行精調(diào)(繼續(xù)訓(xùn)練)
- 修復(fù)bugs,如訓(xùn)練時(shí)accuracy一直為0等
雖然現(xiàn)在的對(duì)話機(jī)器人主要理解的還是用戶的文本信息,但對(duì)圖片(尤其是表情)、視頻和語音的理解,也逐漸地會(huì)成為機(jī)器人的標(biāo)配能力。
理解圖片的一種最簡單的方式,就是識(shí)別圖片中的文字,做這個(gè)事的技術(shù)主要有兩種:OCR(Optical Character Recognition,光學(xué)字符識(shí)別),或者STR(Scene Text Recognition,場景文字識(shí)別)。
OCR主要針對(duì)文字比較規(guī)范,沒什么底色或底色單一的圖片,類文字掃描后獲得的圖片,如:
STR針對(duì)的圖片是更一般的復(fù)雜場景,比如隨手拍的照片中廣告牌上的文字,店鋪名稱等,如:
顯然STR比OCR難得多,所以使用的方法也會(huì)更復(fù)雜更耗資源。很多應(yīng)用場景使用OCR技術(shù)就足夠了。
因?yàn)轫?xiàng)目需要,我之前找了下已有可用的開源中文OCR工具,發(fā)現(xiàn)居然沒有特別好用的。 所以就自己封裝了一個(gè)中文OCR Python包,稱之為 cnocr(Chinese OCR的簡稱),項(xiàng)目地址為:
https://github.com/breezedeus/cnocr?github.comcnocr主打使用簡單,功能極簡。
以下是使用說明,歡迎大家試用,幫忙提issue。
cnocr
cnocr是用來做中文OCR的Python 3包。cnocr自帶了訓(xùn)練好的識(shí)別模型,所以安裝后即可直接使用。
目前使用的識(shí)別模型是crnn,識(shí)別準(zhǔn)確度約為 98.7%。
本項(xiàng)目起源于我們自己 (愛因互動(dòng) Ein+) 內(nèi)部的項(xiàng)目需求,所以非常感謝公司的支持。
特色
本項(xiàng)目的大部分代碼都fork自 crnn-mxnet-chinese-text-recognition,感謝作者。 但源項(xiàng)目使用起來不夠方便,所以我在此基礎(chǔ)上做了一些封裝和重構(gòu)。主要變化如下:
- 不再使用需要額外安裝的MXNet WarpCTC Loss,改用原生的 MXNet CTC Loss。所以安裝極簡!
- 自帶訓(xùn)練好的中文OCR識(shí)別模型。不再需要額外訓(xùn)練!
- 增加了預(yù)測(或推斷)接口。所以使用方便!
安裝
pip install cnocr注意:請(qǐng)使用Python3 (3.4, 3.5, 3.6以及之后版本應(yīng)該都行),沒測過Python2下是否ok。使用方法
以如下圖片文件為例,文件內(nèi)容如下:
預(yù)測
代碼引用
from cnocr import CnOcr ocr = CnOcr() res = ocr.ocr_for_single_line('examples/rand_cn1.png') print("Predicted Chars:", res)首次使用cnocr時(shí),系統(tǒng)會(huì)自動(dòng)從Dropbox下載zip格式的模型壓縮文件,并存于 ~/.cnocr目錄。 下載后的zip文件代碼會(huì)自動(dòng)對(duì)其解壓,然后把解壓后的模型相關(guān)文件放于~/.cnocr/models目錄。 如果系統(tǒng)不能自動(dòng)從Dropbox成功下載zip文件,則需要手動(dòng)下載此zip文件并把它放于 ~/.cnocr目錄。 另一個(gè)下載地址是百度云盤(提取碼為pg26)。 放置好zip文件后,后面的事代碼就會(huì)自動(dòng)執(zhí)行了。
上面預(yù)測代碼段的返回結(jié)果如下:
Predicted Chars: ['笠', '淡', '嘿', '驊', '謐', '鼎', '皋', '姚', '殲', '蠢', '駝', '耳', '胬', '撾', '涯', '狗', '蒽', '子', '獷']腳本引用
也可以使用腳本模式預(yù)測:
python scripts/cnocr_predict.py --file examples/rand_cn1.png返回結(jié)果和前面相同:
Predicted Chars: ['笠', '淡', '嘿', '驊', '謐', '鼎', '皋', '姚', '殲', '蠢', '駝', '耳', '胬', '撾', '涯', '狗', '蒽', '子', '獷']訓(xùn)練自己的模型
cnocr安裝后即可直接使用,但如果你非要訓(xùn)練自己的模型,請(qǐng)參考下面命令:
python scripts/cnocr_train.py --cpu 2 --num_proc 4 --loss ctc --dataset cn_ocr未來工作
- 支持空格識(shí)別
- 修bugs(目前代碼還比較凌亂。。)
- 完善測試用例
- 考慮使用MxNet的命令式編程重寫代碼,提升靈活性
- 嘗試新模型,如 DenseNet、ResNet,進(jìn)一步提升識(shí)別準(zhǔn)確率
總結(jié)
以上是生活随笔為你收集整理的studioone精调效果包_cnocr: 极简的中文OCR Python包的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: sht20温湿度传感器原理图_温湿度传感
- 下一篇: python去除中文停用词_删除停止词P