[!abstract]
项目需要实现一个识别图片中文字、数字的小功能,因此找了比较好用的开源库 easyocr,本文介绍其使用方法。
EasyOCR 介绍
EasyOCR 是一个可以直接使用的开源项目,目前在 Github 上已经有 20k+ 的 star,支持 80 多种语言的识别,精度非常高。
项目地址:https://github.com/JaidedAI/EasyOCR
EasyOCR 安装
注意:本实验默认在 Ubuntu 上进行测试,Windows 理论上可以同样操作。
(1)环境搭建
为了避免 python 包混乱冲突,一般先创建一个 conda 环境,参考此文章配置 anaconda。
1
| conda create -n easyocr python=3.9
|
(2)安装 PyTorch
EasyOCR 依赖于 PyTorch,因此需要在环境中安装 PyTorch,此处以 1.12 版本为例,其他版本的安装命令可以从此处查看
1 2
| 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 非常简单,执行以下命令即可
EasyOCR 基本使用
Easy 使用示例代码如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35
| import os import easyocr import cv2 import numpy as np
image_path = './src/digital_recognition/image/digit/2000-1400-Trans.png'
reader = easyocr.Reader(['en']) result = reader.readtext(image_path) print(result)
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()
|