0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

关于两个Python开源识别工具的效果

科技绿洲 来源:Python实用宝典 作者:Python实用宝典 2023-10-17 11:36 次阅读

OCR 是光学字符识别(英语:Optical Character Recognition,OCR)是指对文本资料的图像文件进行分析识别处理,获取文字及版面信息的过程。

很早之前就有同学在公众号后台回复希望出一篇 OCR 相关的文章,今天尝试了一下 cnocr 和 tesseract 两个 Python 开源识别工具的效果,给大家分别讲讲两个工具的使用方法和对比效果。

1.准备

开始之前,你要确保Python和pip已经成功安装在电脑上,如果没有,可以访问这篇文章:超详细Python安装指南 进行安装。

(可选1) 如果你用Python的目的是数据分析,可以直接安装Anaconda:Python数据分析与挖掘好帮手—Anaconda,它内置了Python和pip.

(可选2) 此外,推荐大家用VSCode编辑器,它有许多的优点:Python 编程的最好搭档—VSCode 详细指南

请选择以下任一种方式输入命令安装依赖

  1. Windows 环境 打开 Cmd (开始-运行-CMD)。
  2. MacOS 环境 打开 Terminal (command+空格输入Terminal)。
  3. 如果你用的是 VSCode编辑器 或 Pycharm,可以直接使用界面下方的Terminal.

(选择一)安装 cnocr:

pip install cnocr

看到 Successfully installed xxx 则说明安装成功。

如果你只想对图片中的中文进行识别,那么 cnocr 是一个不错的选择,你只需要安装 cnocr 包即可。

但如果你想试试其他语言的OCR识别,Tesseract 是更好的选择。

(选择二)安装 pytesseract:

首先,无论是Windows还是macOS,你都需要安装 pytesseract:

pip install pytesseract

其次,还需要安装Tesseract.

(macOS) Tesseract 在macOS下可以使用brew安装:

brew install tesseract

非常方便,一条命令即可完成安装。

(Windows )**** 安装Tesseract

需要先下载安装tesseract的程序,然后下载中文简体字预训练好的模型包(尽管本教程不会用tesseract,但还是给大家提供了)。

你可以在Python实用宝典公众号后台回复:**tesseract **打包下载。

下载完成后,将 tesseract-ocr-setup-4.00.00dev.exe 安装到 Tesseract-OCR 指定目录下,复制该目录路径增加到Path中:

图片

并将训练好的模型文件 chi_sim.traineddata 放入该目录中,这样安装就完成了。

2.cnocr 识别图片的中文

cnocr 主要针对的是排版简单的印刷体文字图片,如截图图片,扫描件等。目前内置的文字检测和分行模块无法处理复杂的文字排版定位。

尽管它分别提供了单行识别函数和多行识别函数,但在本人实测下,单行识别函数的效果非常糟糕,或者说要求的条件十分苛刻,基本上连截图的文字都识别不出来。

不过多行识别函数还不错,使用该函数识别的代码如下:

from cnocr import CnOcr
ocr = CnOcr()
res = ocr.ocr('test.png')
print("Predicted Chars:", res)

用于识别这个图片里的文字:

图片

效果如下:

图片

如果不是很吹毛求疵,这样的效果已经很不错了。

3.pytesseract 识别图片的英文

如果你的OCR目的不是中文而是英文,是需要别的模型的。这里给大家分享Tesseract-OCR,它是一款由HP实验室开发,由Google维护的开源OCR引擎。

Tesseract-OCR 可扩展性很强,你可以基于它训练属于自己的OCR模型。

现在给大家看看它分类英文的效果,代码如下:

import pytesseract
from PIL import Image

image = Image.open('test.png')
code = pytesseract.image_to_string(image, lang='eng')
print(code)

识别的图片:

图片

效果如下:

图片

Tesseract 识别英文的效果真的很不错,中文效果就比较一般了。

如果你想试试Tesseract识别中文,只需要将代码中的eng改为chi_sim即可,不过相信我,效果不忍直视。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 程序
    +关注

    关注

    114

    文章

    3631

    浏览量

    79552
  • 开源
    +关注

    关注

    3

    文章

    2990

    浏览量

    41722
  • python
    +关注

    关注

    51

    文章

    4677

    浏览量

    83473
  • OCR
    OCR
    +关注

    关注

    0

    文章

    137

    浏览量

    16130
收藏 人收藏

    评论

    相关推荐

    求助,关于FX3的两个使用问题求解

    如题,咨询FX3的两个使用问题: 1,在F1F模式下,烧写成功后,WIN10无法识别设备,切换到0F1,烧写成功后,WIN10同样无法识别设备,所以现在我的板子只能使用USB引导了,烧写到RAM可以
    发表于 02-22 07:16

    关于数据采集的两个问题

    本人菜鸟,做关于LABVIEW数据采集的毕设,刚刚开始就遇到两个问题,希望论坛的大神们能帮忙解决,感激不尽! 问题一:照着网上的视频做了一很基本的用两个DAQ助手EXPRESS VI
    发表于 05-03 15:56

    实现人脸识别应注意的两个问题

    带来的。前文中我们已经介绍过人脸识别的主要组成模块以及其优势。那么今天北京萨尔笛()将为您解析下在人脸识别中应注意的两个困难点。1、相似性:不同个体之间的区别不大,所有的人脸的结构都相似,甚至人脸器官
    发表于 04-01 15:19

    【LeMaker Guitar试用体验】之基于Python下的人脸识别系统【结贴】

    本帖最后由 windworld 于 2017-1-22 11:26 编辑 OpenCV 作为开源的计算机视觉软件包,在人脸识别方便也具有很广泛的应用,在这里我们采用opencv相关库数,在
    发表于 02-25 14:03

    python开发工具推荐

    Python开发软件可根据其用途不同分为种,一种是Python代码编辑器,一种是Python集成开发工具
    发表于 04-12 16:12

    专业python web编程工具

    PythonWeb应用程序、工具的鼻祖,是Python家族一强有力的分支。Zope 2的“对象发布”系统非常适合面向对象开发方法,并且可以减轻开发者的学习曲线,还可以帮助你发现应用程序里一些不好的功能。3.
    发表于 06-12 16:23

    利用MTCH6102手势识别是否需要两个芯片

    Hello论坛,建立一利用MTCH6102手势识别的项目-该设备有两个触摸表面(圆圈,直径20mm,3x3轮廓)。是否需要两个芯片,用于每个触摸表面,或者有一种方式将
    发表于 11-14 16:26

    自然语言处理工具python调用hanlp中文实体识别

    Hanlp作为一款重要的中文分词工具,在GitHub的用户量已经非常之高,应该可以看得出来大家对于hanlp这款分词工具还是很认可的。本篇继续分享一篇关于hanlp的使用实例即Python
    发表于 02-13 10:26

    如何使用提供的两个spi.acd文件中的一识别内部闪存?

    在尝试了答案记录59572中的说明后,我仍然无法使用提供的两个spi.acd文件中的任何一来让程序员识别内部闪存。任何想法为什么都不会工作?到目前为止,我已经尝试过:在我的机器上卸载所有
    发表于 08-08 07:25

    LabVIEW+Python+openCV

    的,动态链接库也需要配置,还需要知道各个参数含义和类型,这里提供另外一种方法,那就是Python的openCV工具包,绝对开源和免费,LabVIEW可以利用Python节点调用
    发表于 12-07 20:59

    Python OCR 识别库-ddddocr

    对他们彻底说拜拜,它的名字是 ddddocr 带带弟弟 OCR 通用验证码识别 SDK 免费开源版。 安装将自动安装符合自己电脑环境的最新 ddddocr。Python 环境需要小于等于 3.9
    发表于 03-30 17:26

    Github开源的数字手势识别CNN模型简析

    2.概述一简单的AI开发sampleGithub开源的数字手势识别CNN模型,识别数字0-10十一种手势类LeNet-5,两个卷积层,
    发表于 04-02 15:22

    网络工程师学Python-开源自动化部署工具Fabric

    Python Fabric是一个基于Python开源自动化部署工具,可以简化管理远程服务器的过程。
    的头像 发表于 04-28 09:54 499次阅读

    关于Python 加速工具的选单

    一些高效的函数实现,也有已经封装好的拓展模块,还包括速度更快的 Python 解释器。 当然 多处理器版本 确实能大幅提高运行效率。如果想了解多核编程,可以从 multiprocessing 模块 开始。而且也能找到非常多的关于分布式计算的第三方
    的头像 发表于 07-07 11:19 231次阅读

    OCR如何自动识别图片文字

    回复希望出一篇 OCR 相关的文章,今天尝试了一下 cnocr 和 tesseract 两个 Python 开源识别工具
    的头像 发表于 10-31 16:45 436次阅读
    OCR如何自动<b class='flag-5'>识别</b>图片文字