Python使用EasyOCR识别图像文本

EasyOCRPyTorch 实现的一个光学字符识别 (OCR) 工具。

安装 EasyOCR

在命令窗口中,使用 pip 安装 EasyOCR 稳定版本。

pip install easyocr

使用 EasyOCR

import easyocr

reader = easyocr.Reader(
    ['ch_sim', 'en'],
    gpu=False,
    model_storage_directory='model/.',
    user_network_directory='model/.',
)
result = reader.readtext('examples/chinese.jpg')

执行上面的代码时,会自动通过网络下载检测与识别模型到指定目录下。

  • ['ch_sim', 'en'],: 指定识别的语言
  • gpu=False,: 设置是否使用GPU (EasyOCR在GPU上运行效率更高, 没有GPU或者GPU内存不足时设置False)
  • model_storage_directory='model/.',: 检测与识别模型的存储路径 (没有设置时默认存储在~/.EasyOCR/model目录)

识别结果 result 是一个列表,列表中的每一项都是一个长度为 3 的识别结果,例如 ([[189, 75], [469, 75], [469, 165], [189, 165]], '愚园路', 0.3754989504814148),它们分别是 边界框检测到的文本置信度 值。

easyocr-server

EasyOCR 服务器是一个用于从图像中提取文本。它是一种通用的 OCR,既可以读取自然场景文本,也可以读取文档中的密集文本。目前支持 80+ 种语言,并且还在扩展。

安装步骤

步骤 0. 从 GitHub 下载 easyocr-server 并安装。

git clone https://github.com/hekaiyou/easyocr-server.git

步骤 1. 使用 PyPI 安装 easyocrbottlegevent 模块。

cd easyocr-server
pip install -r requirements.txt

验证安装

python main.py
  • Browser: http://localhost:8080/ocr/
  • CMD: curl http://localhost:8080/ocr/ -F "language=en" -F "img_file=@examples/english.png"

验证成功后,您应该能够在浏览器中看到打印的推理结果。

在这里插入图片描述

通过 Docker 部署服务

我们提供了一个 Dockerfile 来构建镜像。

docker build -t easyocr-server:latest .

运行它。

docker run -it -v {
    
    DATA_DIR}:/workspace/model -p 8083:8080 easyocr-server:latest

支持语言

Language Code Name
Abaza abq
Adyghe ady
Afrikaans af
Angika ang
Arabic ar
Assamese as
Avar ava
Azerbaijani az
Belarusian be
Bulgarian bg
Bihari bh
Bhojpuri bho
Bengali bn
Bosnian bs
Simplified Chinese ch_sim
Traditional Chinese ch_tra
Chechen che
Czech cs
Welsh cy
Danish da
Dargwa dar
German de
English en
Spanish es
Estonian et
Persian (Farsi) fa
French fr
Irish ga
Goan Konkani gom
Hindi hi
Croatian hr
Hungarian hu
Indonesian id
Ingush inh
Icelandic is
Italian it
Japanese ja
Kabardian kbd
Kannada kn
Korean ko
Kurdish ku
Latin la
Lak lbe
Lezghian lez
Lithuanian lt
Latvian lv
Magahi mah
Maithili mai
Maori mi
Mongolian mn
Marathi mr
Malay ms
Maltese mt
Nepali ne
Newari new
Dutch nl
Norwegian no
Occitan oc
Pali pi
Polish pl
Portuguese pt
Romanian ro
Russian ru
Serbian (cyrillic) rs_cyrillic
Serbian (latin) rs_latin
Nagpuri sck
Slovak sk
Slovenian sl
Albanian sq
Swedish sv
Swahili sw
Tamil ta
Tabassaran tab
Telugu te
Thai th
Tajik tjk
Tagalog tl
Turkish tr
Uyghur ug
Ukranian uk
Urdu ur
Uzbek uz
Vietnamese vi

修改 easyocr-server

上面 easyocr-server 项目的核心代码在 GitHub: easyocr-server/ocr.py 中,可以按实际需求修改。

猜你喜欢

转载自blog.csdn.net/hekaiyou/article/details/129973259
今日推荐