目录
  1. EasyOCR 介绍
  2. EasyOCR 安装
  3. EasyOCR 基本使用

Abstract 项目需要实现一个识别图片中文字、数字的小功能,因此找了比较好用的开源库 easyocr,本文介绍其使用方法。

EasyOCR 介绍

EasyOCR 是一个可以直接使用的开源项目,目前在 Github 上已经有 20k+ 的 star,支持 80 多种语言的识别,精度非常高。

项目地址:https://github.com/JaidedAI/EasyOCR

EasyOCR 安装

注意:本实验默认在 Ubuntu 上进行测试,Windows 理论上可以同样操作。

(1)环境搭建

为了避免 python 包混乱冲突,一般先创建一个 conda 环境,参考此文章配置 anaconda。

conda create -n easyocr python=3.9

(2)安装 PyTorch

EasyOCR 依赖于 PyTorch,因此需要在环境中安装 PyTorch,此处以 1.12 版本为例,其他版本的安装命令可以从此处查看

conda activate easyocr
conda install pytorch==1.12.1 torchvision==0.13.1 torchaudio==0.12.1 cudatoolkit=11.6 -c pytorch -c conda-forge

(3)安装 EasyOCR

安装 EasyOCR 非常简单,执行以下命令即可

pip install easyocr

EasyOCR 基本使用

Easy 使用示例代码如下:

# 库
import os
import easyocr
import cv2
import numpy as np

# 1. 获取图像,既可以是在线图像,也可以是本地图像
# IMAGE_PATH = 'https://img.mahaofei.com/img/202401011439226.png'
image_path = './src/digital_recognition/image/digit/2000-1400-Trans.png'

# 2. 识别文字
# reader = easyocr.Reader(['ch_sim','en']) # 要识别的语言,ch_sim是简体中文,en是英文
reader = easyocr.Reader(['en'])
result = reader.readtext(image_path)     # 也可以传入opencv的图像对象(numpy数组),detail为0表示只返回识别的文字,为1表示返回识别的文字和位置
print(result)

# 3. 绘制文字矩形框和文字
image = cv2.imread(image_path)
for detection in result:
    # 提取文字框坐标和识别结果
    (bbox, text, prob) = detection
    # 将浮点数坐标转换为整数
    bbox = np.array(bbox).astype(int)
    # 在图像上绘制矩形框
    cv2.rectangle(image, (bbox[0][0], bbox[0][1]), (bbox[2][0], bbox[2][1]), (0, 255, 0), 2)
    # 在矩形框左上角绘制文字和置信度
    text_position = (bbox[0][0], bbox[0][1] - 20)
    confidence_position = (bbox[0][0], bbox[0][1] - 5)
    cv2.putText(image, text, text_position, cv2.FONT_HERSHEY_SIMPLEX, 1, (0, 0, 255), 2)
    cv2.putText(image, f"Confidence: {prob:.2f}", confidence_position, cv2.FONT_HERSHEY_SIMPLEX, 0.5, (255, 0, 0), 2)

# 显示图像
cv2.imshow("OCR Result", image)
cv2.waitKey(0)
cv2.destroyAllWindows()

EasyOCR 基本使用