• EasyOCR简单实用


    摘要

    EasyOCR 是一个python版的文字识别工具。目前支持80中语言的识别。
    框架如下:
    在这里插入图片描述

    • 图像预处理(去噪、色彩饱和度、尖锐处理)
    • CRAFT文字检测
    • 中间处理(倾斜处理等)
    • 文字识别
    • 后续处理
    • 输出结果

    安装

    安装稳定版

    pip install easyocr
    
    • 1

    安装最新版本:

    pip install git+https://github.com/JaidedAI/EasyOCR.git
    
    • 1

    安装完成后,可以通过easyocr.__version__查看版本号:

    import easyocr
    print(easyocr.__version__)
    
    • 1
    • 2

    在这里插入图片描述

    测试

    第一次安装使用,easyocr会下载默认模型。
    在这里插入图片描述
    等待的时间比较长,而且容易失败。
    如果一直失败,可以采用另一种方式,登录到网站:https://www.jaided.ai/easyocr/modelhub/
    下载模型。
    下载检测器模型
    在这里插入图片描述
    下载识别器模型
    在这里插入图片描述
    将下载的模型文件解压后拷贝到当前登录的用户目录的.EasyOCR\model文件夹下,Windows系统为:C:\Users\用户名.EasyOCR\model。
    识别模型(语言包)的文件名称和后面看到的语言类型并不是完全对应的,ch_sim对应简体中文(zh_sim_g2),en对应英文(english_g2)。

    调用方式

    import easyocr
    reader = easyocr.Reader(['ch_sim','en']) # this needs to run only once to load the model into memory
    result = reader.readtext('chinese.jpg')
    
    • 1
    • 2
    • 3

    在这里插入图片描述

    输出结果:

    [([[189, 75], [469, 75], [469, 165], [189, 165]], '愚园路', 0.3754989504814148),
     ([[86, 80], [134, 80], [134, 128], [86, 128]], '西', 0.40452659130096436),
     ([[517, 81], [565, 81], [565, 123], [517, 123]], '东', 0.9989598989486694),
     ([[78, 126], [136, 126], [136, 156], [78, 156]], '315', 0.8125889301300049),
     ([[514, 126], [574, 126], [574, 156], [514, 156]], '309', 0.4971577227115631),
     ([[226, 170], [414, 170], [414, 220], [226, 220]], 'Yuyuan Rd.', 0.8261902332305908),
     ([[79, 173], [125, 173], [125, 213], [79, 213]], 'W', 0.9848111271858215),
     ([[529, 173], [569, 173], [569, 213], [529, 213]], 'E', 0.8405593633651733)]
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

    在这里插入图片描述

    方法详解

    Reader()参数详解:

    • lang_list (list):识别语言代码,比如[‘ch_sim’,’en’]分别表示简体中文和英文。
    • gpu (bool, string, default = True) :是否使能GPU,只有安装了GPU版本才有效。
    • model_storage_directory (string, default = None) :模型存储位置,依次查找系统变量EASYOCR_MODULE_PATH (preferred)、MODULE_PATH (if defined)表示的路径或者~/.EasyOCR/路径。
    • download_enabled (bool, default = True):如果没有对应模型文件时,自动下载模型。
    • user_network_directory (bool, default = None) :用户自定义识别网络的路径,如果没有指明,则在MODULE_PATH + ‘/user_network’ (~/.EasyOCR/user_network)目录中查找。
    • recog_network (string, default = ‘standard’) :替代标准模型,使用自定义的识别网络。
    • detector (bool, default = True) :是否加载检测模型。
    • recognizer (bool, default = True) :是否加载识别模型。

    readtext()参数详解

    • image (string, numpy array, byte) : 输入图像;
    • decoder (string, default = ‘greedy’):选项有 ‘greedy’、‘beamsearch’ 和 ‘wordbeamsearch’;
    • beamWidth (int, default = 5) : 当解码器 = ‘beamsearch’ 或 ‘wordbeamsearch’ 时要保留多少光束;
    • batch_size (int, default = 1) : batch_size>1 将使 EasyOCR 更快但使用更多内存;
    • worker (int, default = 0) : 数据加载器中使用的编号线程;
    • allowlist (string) : 强制 EasyOCR 只识别字符的子集。对特定问题有用(例如车牌等);
    • blocklist (string) : 字符的块子集。如果给定了允许列表,则此参数将被忽略。
    • detail (int, default = 1): 将此设置为 0 以进行简单输出;
    • paragraph (bool, default = False):将结果合并到段落中;
    • min_size (int, default = 10) : 过滤文本框小于最小值(以像素为单位);
    • rotation_info (list, default = None) : 允许 EasyOCR 旋转每个文本框并返回具有最佳置信度分数的文本框。符合条件的值为 90、180 和 270。例如,对所有可能的文本方向尝试 [90, 180 ,270]。
    • contrast_ths (float, default = 0.1) : 对比度低于此值的文本框将被传入模型 2 次。首先是原始图像,其次是对比度调整为“adjust_contrast”值。结果将返回具有更高置信度的那个;
    • adjust_contrast (float, default = 0.5) : 低对比度文本框的目标对比度级别。
    • text_threshold (float, default = 0.7) : 文本置信度阈值
    • low_text (float, default = 0.4) : 文本下限分数
    • link_threshold (float, default = 0.4) : 链接置信度阈值
    • canvas_size (int, default = 2560) :最大图像尺寸。大于此值的图像将被缩小。
    • mag_ratio (float, default = 1) :图像放大率
    • slope_ths (float, default = 0.1) - 考虑合并的最大斜率 (delta y/delta x)。低值意味着不会合并平铺框。
    • ycenter_ths (float, default = 0.5) - y 方向的最大偏移。不应该合并不同级别的框。
    • height_ths (float, default = 0.5) - 盒子高度的最大差异。不应合并文本大小非常不同的框。
    • width_ths (float, default = 0.5) - 合并框的最大水平距离。
    • add_margin (float, default = 0.1) - 将边界框向所有方向扩展某个值。这对于具有复杂脚本的语言(例如泰语)很重要。
    • x_ths (float, default = 1.0) - 当段落=True 时合并文本框的最大水平距离。
    • y_ths (float, default = 0.5) - 当段落 = True 时合并文本框的最大垂直距离。
  • 相关阅读:
    【模拟电路建模与控制系统分析】01Laplace变换
    vue移动端项目渲染pdf步骤
    STM32F103标准库开发---SPI实验---底层驱动程序
    SpringBoot日志使用、记录日志文件
    【PHPWrod】使用PHPWord导出word文档
    Java的idea不能新建java class
    物联网AI MicroPython学习之语法 umqtt客户端
    HTML5七夕情人节表白网页制作【飘落蒲公英动画超酷炫的HTML5页面】HTML+CSS+JavaScript
    Allegro174版本如何关闭模块复用后铜皮自动从动态变成静态操作指导
    【云服务器开放端口详细教程~来了】
  • 原文地址:https://blog.csdn.net/hhhhhhhhhhwwwwwwwwww/article/details/126478838