本文小编为大家详细介绍“Python怎么使用EasyOCR工具识别图像文本”,内容详细,步骤清晰,细节处理妥当,希望这篇“Python怎么使用EasyOCR工具识别图像文本”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。
什么是 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| 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 |