EasyOCR
摘要
EasyOCR 是一个python版的文字识别工具。目前支持80中语言的识别。
安装
安装稳定版
pip install easyocr |
安装最新版本:
pip install git+https://github.com/JaidedAI/EasyOCR.git |
安装完成后,可以通过easyocr.version 查看版本号:
import easyocr |
测试
第一次安装使用,easyocr会下载默认模型。等待的时间比较长,而且容易失败。 如果一直失败,可以采用另一种方式,登录到网站下载模型。
下载检测器模型
下载识别器模型
将下载的模型文件解压后拷贝到当前登录的用户目录的.EasyOCR\model文件夹下,Windows系统为:C:\Users\用户名.EasyOCR\model。
识别模型(语言包)的文件名称和后面看到的语言类型并不是完全对应的,ch_sim对应简体中文(zh_sim_g2),en对应英文(english_g2)。
调用方式
import easyocr |
输出结果:
[([[189, 75], [469, 75], [469, 165], [189, 165]], '愚园路', 0.3754989504814148), |
方法详解
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 时合并文本框的最大垂直距离。