Python如何使用EasyOCR工具识别图像文本

2023-05-15 14:05:18 识别 图像 如何使用

什么是 EasyOCR ?

描述: EasyOCR 是一个用于从图像中提取文本的 python 模块, 它是一种通用的 OCR,既可以读取自然场景文本,也可以读取文档中的密集文本。目前支持 80 多种语言和所有流行的书写脚本,包括:拉丁文、中文、阿拉伯文、梵文、西里尔文等。

EasyOCR 是 PyTorch 实现的一个光学字符识别 (OCR) 工具

Q: 使用 EasyOCR 可以干什么?

描述: EasyOCR 支持两种方式运行一种是常用的CPU,而另外一种是需要GPU支持并且需安装CUDA环境, 我们使用其可以进行图片中语言文字识别, 例如小程序里图片识别、车辆车牌识别(即车债管理系统)。

安装 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 安装 easyocr、 bottle 和 gevent 模块。

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
LanguageCode Name
Abazaabq
Adygheady
Afrikaansaf
Angikaang
Arabicar
Assameseas
Avarava
Azerbaijaniaz
Belarusianbe
Bulgarianbg
Biharibh
Bhojpuribho
Bengalibn
Bosnianbs
Simplified Chinesech_sim
Traditional Chinesech_tra
Chechenche
Czechcs
Welshcy
Danishda
Dargwadar
Germande
Englishen
Spanishes
Estonianet
Persian (Farsi)fa
Frenchfr
Irishga
Goan Konkanigom
Hindihi
Croatianhr
Hungarianhu
Indonesianid
Ingushinh
Icelandicis
Italianit
Japaneseja
Kabardiankbd
Kannadakn
Koreanko
Kurdishku
Latinla
Laklbe
Lezghianlez
Lithuanianlt
Latvianlv
Magahimah
Maithilimai
Maorimi
Mongolianmn
Marathimr
Malayms
Maltesemt
Nepaline
Newarinew
Dutchnl
Norwegianno
Occitanoc
Palipi
Polishpl
Portuguesept
Romanianro
Russianru
Serbian (cyrillic)rs_cyrillic
Serbian (latin)rs_latin
Nagpurisck
Slovaksk
Sloveniansl
Albaniansq
Swedishsv
Swahilisw
Tamilta
Tabassarantab
Telugute
Thaith
Tajiktjk
Tagalogtl
Turkishtr
Uyghurug
Ukranianuk
Urduur
Uzbekuz
Vietnamesevi

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

到此这篇关于Python如何使用EasyOCR工具识别图像文本的文章就介绍到这了,更多相关Python EasyOCR识别图像文本内容请搜索以前的文章或继续浏览下面的相关文章希望大家以后多多支持!

相关文章