文字识别是热门研究方向。目前相对成熟的有:
•Google的tesseract项目,它能识别100多种语言
•基于机器学习的多个项目,例如百度的paddlehub
tesseract使用比较简单,但是配置相对复杂一下。在Ubuntu bionic的安装过程如下。
apt install -y tesseract-ocr
tesseract -v
# 下载中文识别模型
cp chi_sim.traineddata /usr/share/tesseract-ocr/4.00/tessdata
pip install pytesseract
对下图的英文进行识别
识别效果如下:
# 命令
tesseract python-ocr-01.png stdout
# 输出
Warning. Invalid resolution 0 dpi. Using 70 instead.
Estimating resolution as 331
PyImageSearch
能够准确识别,随后对下图的中文进行识别。
我们使用的python代码如下。
import pytesseract
from pathlib import Path
from PIL import Image
def ocr(filename):
pth = Path(filename)
image = Image.open(filename)
# 图片二值化
image = image.convert('L')
# 可以定义阈值
threshold = 200
table = []
for i in range(256):
if i < threshold:
table.append(0)
else:
table.append(1)
# 识别图片
curdir = pth.parent
tessdata_dir_config = f'--tessdata-dir "{curdir}"'
content = pytesseract.image_to_string(
image, lang='chi_sim', config=tessdata_dir_config,) # 使用简体中文解析图片
print(content)
ocr('/root/dev/gotoolkits/figures/python-ocr-02.png')
以下是识别的结果。
随 着 国 家 对 于 数 字 档 案 管 理 管 理 提 出 了 越 来 越 高 的 要 求 , 档 案 系 统 不 仅
要 进 一 步 提 升 档 案 的 数 字 化 率 , 同 时 也 要 提 供 对 档 案 的 利 用 率 。 目 前 , 大 部
分 档 案 系 统 进 行 了 信 息 系 统 建 设 , 以 及 档 案 数 字 化 工 作 , 但 仍 然 存 在 的 问 题
是 :
@ 数 字 化 率 有 进 一 步 提 升 的 空 间
@ 数 字 化 后 的 档 案 以 图 片 保 存 ,OCR 转 换 的 成 功 率 有 待 提 升 .
_ 大 部 分 还 没 有 实 现 全 文 检 索 , 只 能 够 根 据 档 案 通 用 管 理 要 求 , 提 供
基 于 现 有 编 码 体 制 的 查 询 , 无 法 根 据 档 案 自 身 的 内 容 进 行 检 索
从识别效果来看还是不错的。但是对于视频文件中的字幕识别就有些不太好了,原因在于背景过于凌乱。如下图所示。
使用上述代码识别的结果是:自 眉 鸦 王 有 仓 外 孙 卯
这个结果确实不能够让人满意。下面使用百度的paddlehub进行测试。
import paddlehub as hub
module = hub.Module(name='chinese_ocr_db_crnn_mobile')
img_path_list = ['/root/dev/gotoolkits/figures/python-ocr-03.png']
results = module.recognize_text(paths=img_path_list, visualization=True)
for result in results:
print(result)
第一次运行时,要下载训练模型数据,需要时间较长。输出结果如下。
{'save_path': 'ocr_result/ndarray_1662260520.7737947.jpg', 'data': [{'text': '高清翡翠台', 'confidence': 0.7626923322677612, 'text_box_position': [[1188, 54], [1348, 47], [1350, 87], [1189, 94]]}, {'text': '白眉鹰王有个外孙', 'confidence': 0.9479637742042542, 'text_box_position': [[583, 740], [858, 740], [858, 779], [583, 779]]}]}
能够看出,识别的可信度还是非常高的。paddlehub的安装过程如下。
–javascripttypescriptbashsqljsonhtmlcssccppjavarubypythongorustmarkdown
pip install PyYAML -U --ignore-installed
pip install --upgrade packaging
pip install paddlepaddle paddlehub
pip install shapely pyclipper
以上就是“Python工具箱系列(五十五)”的全部内容,希望对你有所帮助。
关于Python技术储备
学好 Python 不论是就业还是做副业赚钱都不错,但要学会 Python 还是要有一个学习规划。最后大家分享一份全套的 Python 学习资料,给那些想学习 Python 的小伙伴们一点帮助!
一、Python所有方向的学习路线
Python所有方向的技术点做的整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。
二、Python必备开发工具
三、Python视频合集
观看零基础学习视频,看视频学习是最快捷也是最有效果的方式,跟着视频中老师的思路,从基础到深入,还是很容易入门的。
四、实战案例
光学理论是没用的,要学会跟着一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。
五、Python练习题
检查学习结果。
六、面试资料
我们学习Python必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有阿里大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。
最后祝大家天天进步!!
上面这份完整版的Python全套学习资料已经上传至CSDN官方,朋友如果需要可以直接微信扫描下方CSDN官方认证二维码免费领取【保证100%免费】。