Python工具箱系列(五十五)

文字识别

文字识别是热门研究方向。目前相对成熟的有:

•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

对下图的英文进行识别

Python工具箱系列(五十五)_第1张图片

识别效果如下:

# 命令
tesseract python-ocr-01.png stdout
# 输出
Warning. Invalid resolution 0 dpi. Using 70 instead.
Estimating resolution as 331
PyImageSearch

能够准确识别,随后对下图的中文进行识别。

Python工具箱系列(五十五)_第2张图片

我们使用的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 转 换 的 成 功 率 有 待 提 升 .

_ 大 部 分 还 没 有 实 现 全 文 检 索 , 只 能 够 根 据 档 案 通 用 管 理 要 求 , 提 供

基 于 现 有 编 码 体 制 的 查 询 , 无 法 根 据 档 案 自 身 的 内 容 进 行 检 索

从识别效果来看还是不错的。但是对于视频文件中的字幕识别就有些不太好了,原因在于背景过于凌乱。如下图所示。

Python工具箱系列(五十五)_第3张图片

使用上述代码识别的结果是:自 眉 鸦 王 有 仓 外 孙 卯

这个结果确实不能够让人满意。下面使用百度的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必备开发工具

img

三、Python视频合集

观看零基础学习视频,看视频学习是最快捷也是最有效果的方式,跟着视频中老师的思路,从基础到深入,还是很容易入门的。

img

四、实战案例

光学理论是没用的,要学会跟着一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。

img

五、Python练习题

检查学习结果。

img

六、面试资料

我们学习Python必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有阿里大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。

img

最后祝大家天天进步!!

上面这份完整版的Python全套学习资料已经上传至CSDN官方,朋友如果需要可以直接微信扫描下方CSDN官方认证二维码免费领取【保证100%免费】。

你可能感兴趣的:(python,开发语言)