PaddleOCR-json 使用教程:快速掌握离线OCR文字识别

PaddleOCR-json是一款基于PaddleOCR v2.6及v2.8 cpp_infer的离线图片OCR文字识别程序,支持Windows系统和Linux系统,可以直接运行,也提供API接口供开发者调用。

【免费下载链接】PaddleOCR-json OCR离线图片文字识别命令行windows程序,以JSON字符串形式输出结果,方便别的程序调用。提供各种语言API。由 PaddleOCR C++ 编译。 【免费下载链接】PaddleOCR-json 项目地址: https://gitcode.com/gh_mirrors/pa/PaddleOCR-json

项目概述

PaddleOCR-json是一个封装好的OCR引擎组件,使得没有C++编程基础的开发者可以用其他语言来简单地调用OCR,享受到更快的运行效率、更便捷的打包和部署手段。

核心优势

  • 方便:部署方便,解压即用,无需安装和配置环境,无需联网。发布方便,可嵌入程序包也可作为外部组件。
  • 高速:基于PPOCR C++版引擎,识别效率高于Python版本PPOCR及其他一些由Python处理任务流的OCR引擎。
  • 精准:附带PPOCR-v3/v4识别库,对非常规字形(手写、艺术字、小字、杂乱背景等)也具有不错的识别率。
  • 灵活:可以以多种方式指定OCR任务,支持识别本地图片路径、Base64编码的图片、TCP局域网调用。

系统要求

兼容性说明

  • 系统支持:x86-64的Windows 7+、Linux系统
  • CPU要求:CPU必须具有AVX指令集。常见的家用CPU一般都满足该条件
品牌AVX支持支持的产品系列不支持
Intel支持酷睿Core,至强Xeon凌动Atom,安腾Itanium,赛扬Celeron,奔腾Pentium
AMD支持推土机架构及之后的产品,如锐龙Ryzen、速龙Athlon、FX等K10架构及之前的产品

快速开始

准备工作

首先需要下载项目文件。项目仓库地址为:https://gitcode.com/gh_mirrors/pa/PaddleOCR-json

简单试用

最基本的用法是通过命令行直接识别图片:

PaddleOCR-json.exe -image_path="test.jpg"

API调用详解

Python API使用

Python API提供了丰富的功能模块,包括可视化调试模块和文本块后处理技术。

from PPOCR_api import GetOcrApi

# 初始化识别器对象,传入PaddleOCR_json.exe的路径
ocr = GetOcrApi("……\PaddleOCR-json.exe")

# 识别图片,传入图片路径
getObj = ocr.run(r'………\测试.png')
print(f'图片识别完毕,状态码:{getObj["code"]} 结果:\n{getObj["data"]}\n')

Node.js API使用

Node.js API提供了现代JavaScript和TypeScript支持。

const OCR = require('paddleocrjson');

const ocr = new OCR('PaddleOCR-json.exe', [], {
    cwd: './PaddleOCR-json',
}, false);

ocr.flush({ image_path: 'path/to/test/img' })
    .then((data) => console.log(data))
    .then(() => ocr.terminate());

其他语言API

项目还提供了PowerShell、Java、.NET、Rust、Go等多种语言的API接口,方便不同技术栈的开发者使用。

配置参数说明

常用配置参数

键名称默认值值说明
ensure_asciitrue启用ascii编码转换,提高编码兼容性
config_path""指定不同语言的配置文件路径
models_path""指定语言库文件夹的路径
dettrue启用det目标识别
clsfalse启用cls方向分类
use_angle_clsfalse启用方向分类
enable_mkldnntrue启用CPU推理加速
limit_side_len960对图像边长进行限制,降低分辨率,加快速度

语言库与切换识别语言

项目默认附带简体中文、繁体中文、英文、日文、韩文的语言库与配置文件,存放在models目录下。

每个config_xxx.txt文件是一组语言配置文件,只需将这个文件的路径传入config_path参数,即可切换为对应的语言。

enginePath = "D:/Test/PaddleOCR_json.exe"  # 引擎路径
argument = {"config_path": "models/config_en.txt"}  # 指定使用英文库
ocr = GetOcrApi(enginePath, argument)

如果config_path留空,则PaddleOCR-json默认加载并使用简体中文识别库。

当语言库在另一个文件夹下时,可以使用models_path参数来设置语言库的位置:

enginePath = "D:/Test/PaddleOCR_json.exe"  # 引擎路径
modelsPath = "D:/Hello/models"             # 语言库路径
argument = {
    "models_path": "D:/Hello/models",
    "config_path": "D:/Hello/models/config_en.txt",
}
ocr = GetOcrApi(enginePath, argument)

交互方式详解

单次识图模式

在启动参数中指定image_path=图片路径即可。程序会识别该图片,输出识别内容,然后结束进程。

示例:

PaddleOCR-json.exe -image_path="D:/test/test 1.jpg"

管道模式

交互遵循对话原则,对每一行(以\n结尾)输入,必然会产生有且仅有一行输出。

Python示例:

ret = subprocess.Popen(
        "程序目录/PaddleOCR-json.exe", # 引擎位置
        cwd="程序目录",                # 引擎工作目录
        stdout=subprocess.PIPE,       # 重定向标准输出
        stdin=subprocess.PIPE         # 重定向标准输入
    )

TCP套接字服务器模式

套接字模式的指令格式与管道模式完全一致,只是启动参数有所区别,交互方式换成TCP。

启用方式:

PaddleOCR-json.exe -port=8888

返回值说明

通过API调用一次OCR,无论成功与否,都会返回一个字典,包含状态码code和内容data。

主要状态码

  • 100:识别到文字,data内容为包含文本信息的数组
  • 101:未识别到文字,这是正常现象
  • 200:图片路径不存在
  • 201:图片路径string无法转换到wstring
  • 202:图片路径存在,但无法打开文件
  • 203:图片打开成功,但读取到的内容无法被opencv解码

语言库管理

删除不需要的语言库

若希望删除不使用的语言库文件以减少软件体积,可以删除models目录中含有对应语言前缀和rec_infer后缀的文件夹。

例如删除日语japan相关的库,只需删除文件夹: japan_PP-OCRv3_rec_infer

一组语言的rec库大约占用10MB空间(未压缩)。若删除到仅剩1组语言,可以节省约60MB空间。

注意:请不要删除cls_infer及det_infer后缀的文件夹,这是所有语言公用的检测/方向分类库。

项目构建指南

稳定版(基于PP-OCR v2.6)

  • Windows平台构建步骤:参考cpp/README.md
  • Linux平台构建步骤:参考cpp/README-linux.md
  • Docker部署:参考cpp/README-docker.md

开发版(基于PP-OCR v2.8)

  • Windows平台构建步骤:参考cpp/README.md
  • Linux平台构建步骤:参考cpp/README-linux.md
  • Docker部署:参考cpp/README-docker.md

常见问题解答

初始化失败怎么办?

如果程序初始化失败,请检查:

  1. CPU是否支持AVX指令集
  2. 系统是否为x86-64架构
  3. 必要的运行库是否已安装

识别效果不佳怎么办?

可以尝试以下方法:

  1. 调整limit_side_len参数,对大图/长图可增大此值
  2. 开启cls和use_angle_cls参数进行方向矫正
  3. 更换不同的语言模型库

通过本教程,您应该能够快速上手PaddleOCR-json,并充分利用其强大的离线OCR文字识别功能。无论是桌面应用还是服务集成,都能轻松应对各种文字识别需求。

【免费下载链接】PaddleOCR-json OCR离线图片文字识别命令行windows程序,以JSON字符串形式输出结果,方便别的程序调用。提供各种语言API。由 PaddleOCR C++ 编译。 【免费下载链接】PaddleOCR-json 项目地址: https://gitcode.com/gh_mirrors/pa/PaddleOCR-json

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值