Skip to content

Python3 package for Chinese/English OCR, with paddleocr-v4 onnx model(~14MB). 基于ppocr-v4-onnx模型推理,可实现 CPU 上毫秒级的 OCR 精准预测,通用场景中英文OCR达到开源SOTA。

License

Notifications You must be signed in to change notification settings

hunterboy2023/imgocr

 
 

Repository files navigation

🇨🇳中文 | 🌐English | 📖文档/Docs


imgocr: Image OCR toolkit

PyPI version Downloads Contributions welcome License Apache 2.0 python_version GitHub issues Wechat Group

imgocr:Python3 package for Chinese/English OCR, with paddleocr-v4 onnx model(~14MB).

imgocr:基于PaddleOCR-v4-onnx模型(~14MB)推理,性能更高,可实现 CPU 上毫秒级的 OCR 精准预测,在通用场景上达到开源SOTA。

Showcase

银行存根 银行存根
表格 表格
火车票 火车票
英文论文 英文论文

Benchmark

PP-OCRv4串联系统由文本检测模型和文本识别模型串联完成,首先输入预测图片,经过文本检测模型获取全部的检测框。根据检测框坐标在原图中抠出文本行,并进行矫正,最后将全部文本行送入文本识别模型,得到文本结果。

整个流程如下图所示:

ppocr-v4

OCR 检测/识别 benchmark:

模型 检测 mAP(%) 识别 Acc(%) GPU 推理耗时(ms) CPU 推理耗时(ms) 模型存储大小(M)
PP-OCRv4-mobile(高效率,默认) 77.79 78.20 2.71 79.11 14
PP-OCRv4-server(高精度) 82.69 84.04 24.92 2742.31 207

GPU 推理耗时基于 NVIDIA Tesla T4 机器,精度类型为 FP32,CPU 推理速度基于 Intel(R) Xeon(R) Gold 5117 CPU @ 2.00GHz,精度类型为 FP32。

OCR 评估集是 PaddleOCR 自建的中文数据集,覆盖街景、网图、文档、手写多个场景,其中文本识别包含1.1w张图片,检测包含500张图片。

Demo

HuggingFace Demo: https://huggingface.co/spaces/shibing624/imgocr

run example: examples/gradio_demo.py to see the demo:

python examples/gradio_demo.py

Install

无需安装paddlepaddle、paddleocr等深度学习库,仅需安装onnxruntime,即可用imgocr调用。

pip install onnxruntime # pip install onnxruntime-gpu for gpu
pip install imgocr

or

pip install onnxruntime # pip install onnxruntime-gpu for gpu
pip install -r requirements.txt
git clone https://github.com/shibing624/imgocr.git
cd imgocr
pip install --no-deps .

Usage

OCR识别

example: examples/ocr_demo.py

from imgocr import ImgOcr
m = ImgOcr(use_gpu=False, is_efficiency_mode=True)
result = m.ocr("data/11.jpg")
print("result:", result)

is_efficiency_mode: 是否使用高效率模型,默认True,使用高效率模型(mobile,14MB),速度更快,精度稍低。如果需要更高精度,设置为False,使用高精度模型(server,207MB)。

output:

命令行模式(CLI)

支持批量做OCR识别

code: cli.py

> imgocr -h                                    
usage: cli.py [-h] --image_dir IMAGE_DIR [--output_dir OUTPUT_DIR]
              [--chunk_size CHUNK_SIZE] [--use_gpu USE_GPU]

imgocr cli

options:
  -h, --help            show this help message and exit
  --image_dir IMAGE_DIR
                        input image dir path, required
  --output_dir OUTPUT_DIR
                        output ocr result dir path, default outputs
  --chunk_size CHUNK_SIZE
                        chunk size, default 10
  --use_gpu USE_GPU     use gpu, default False

run:

pip install imgocr -U
imgocr --image_dir data

输入图片目录(--image_dir, required)

Contact

  • Issue(建议):GitHub issues
  • 邮件我:xuming: [email protected]
  • 微信我:加我微信号:xuming624, 备注:姓名-公司-NLP 进NLP交流群。

Citation

如果你在研究中使用了imgocr,请按如下格式引用:

APA:

Xu, M. imgocr: Image OCR toolkit (Version 0.0.1) [Computer software]. https://github.com/shibing624/imgocr

BibTeX:

@misc{imgocr,
  author = {Ming Xu},
  title = {imgocr: Image OCR toolkit},
  year = {2024},
  publisher = {GitHub},
  journal = {GitHub repository},
  howpublished = {\url{https://github.com/shibing624/imgocr}},
}

License

授权协议为 The Apache License 2.0,可免费用做商业用途。请在产品说明中附加imgocr的链接和授权协议。

Contribute

项目代码还很粗糙,如果大家对代码有所改进,欢迎提交回本项目,在提交之前,注意以下两点:

  • tests添加相应的单元测试
  • 使用python -m pytest -v来运行所有单元测试,确保所有单测都是通过的

之后即可提交PR。

References

About

Python3 package for Chinese/English OCR, with paddleocr-v4 onnx model(~14MB). 基于ppocr-v4-onnx模型推理,可实现 CPU 上毫秒级的 OCR 精准预测,通用场景中英文OCR达到开源SOTA。

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Python 100.0%