Python重構ocr的cnocr中文ocr識別技術


簡介

由於國內愛因互動 Ein+項目需求,項目組內部成員對ocr技術進行了重構,開發出了python的cnocr庫。

cnocr是用來做中文OCR的Python3包。cnocr自帶了訓練好的識別模型,安裝后即可直接使用。

cnocr主要針對的是排版簡單的印刷體文字圖片,如截圖圖片,掃描件等。cnocr目前內置的文字檢測和分行模塊無法處理復雜的文字排版定位。如果要用於場景文字圖片的識別,需要結合其他的場景文字檢測引擎使用。

安裝

sudo pip3 install cnocr               

注意事項

首次使用cnocr時,系統會自動從Dropbox下載zip格式的模型壓縮文件,並存於~/.cnocr目錄。下載后的zip文件代碼會自動對其解壓,然后把解壓后的模型相關文件放於 ~/.cnocr/models 目錄。

如果系統不能自動從 Dropbox 成功下載zip文件,則需要手動下載此zip文件並把它放於~/.cnocr目錄。下載地址是 百度雲盤:https://pan.baidu.com/s/1s91985r0YBGbk_1cqgHa1Q (提取碼為 pg26 )

使用

單行識別

如果明確知道要預測的圖片中只包含了單行文字,可以使用函數CnOcr.ocr_for_single_line(img_fp)進行識別。和 CnOcr.ocr()相比,CnOcr.ocr_for_single_line()結果可靠性更強,因為它不需要做額外的分行處理。

# 參數說明 
輸入參數 img_fp: 可以是需要識別的單行文字圖片文件路徑(如上例);或者是已經從圖片文件中讀入的數組,
類型可以為mx.nd.NDArray 或 np.ndarray,取值應該是[0,255]的整數,維數應該是(height, width)或(height, width, channel)。
如果沒有channel,表示傳入的就是灰度圖片。第三個維度channel可以是1(灰度圖片)或者3(彩色圖片)。如果是彩色圖片,它應該是RGB格式的。 返回值:為一個list,類似這樣['你', '好', 'U', 'O', 'S']。 示例1: from cnocr import CnOcr ocr = CnOcr() res = ocr.ocr_for_single_line('examples/1.png') print("Predicted Chars:", res) 示例2: import mxnet as mx from cnocr import CnOcr ocr = CnOcr() img_fp = 'examples/1.png' img = mx.image.imread(img_fp, 1) res = ocr.ocr_for_single_line(img) print("Predicted Chars:", res)

多行識別

函數CnOcr.ocr_for_single_lines(img_list)可以對多個單行文字圖片進行批量預測。函數CnOcr.ocr(img_fp)和CnOcr.ocr_for_single_line(img_fp)內部其實都是調用的函數CnOcr.ocr_for_single_lines(img_list)。

# 參數說明 
輸入參數 img_list: 為一個list;其中每個元素是已經從圖片文件中讀入的數組,類型可以為mx.nd.NDArray 或 np.ndarray,
取值應該是[0,255]的整數,維數應該是(height, width)或(height, width, channel)。如果沒有channel,表示傳入的就是灰度圖片。
第三個維度channel可以是1(灰度圖片)或者3(彩色圖片)。如果是彩色圖片,它應該是RGB格式的。 返回值:為一個嵌套的list,類似這樣[['第', '一', '行'], ['第', '二', '行'], ['第', '三', '行']]。 示例: import mxnet as mx from cnocr import CnOcr ocr = CnOcr() img_fp = 'examples/multi-line_cn1.png' img = mx.image.imread(img_fp, 1).asnumpy() line_imgs = line_split(img, blank=True) line_img_list = [line_img for line_img, _ in line_imgs] res = ocr.ocr_for_single_lines(line_img_list) print("Predicted Chars:", res)

關於cnocr更多技術

cnocr技術


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM