pythonocr识别技术哪家好_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更多技术

你可能感兴趣的:(pythonocr识别技术哪家好_Python重构ocr的cnocr中文ocr识别技术)