Python使用EasyOCR识别图像文本

EasyOCR 是 PyTorch 实现的一个光学字符识别 (OCR) 工具。
安装 EasyOCR
在命令窗口中,使用 pip 安装 EasyOCR 稳定版本。
pip install easyocr
使用 EasyOCR
import easyocrreader = 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 |
修改 easyocr-server
上面 easyocr-server 项目的核心代码在 GitHub: easyocr-server/ocr.py 中,可以按实际需求修改。


