MyMonsterCat / RapidOcr-Java

🔥🔥🔥Java代码实现调用RapidOCR(基于PaddleOCR),适配Mac、Win、Linux,支持最新PP-OCRv4
Apache License 2.0
261 stars 38 forks source link

RapidOcr-Java

😺 项目起源

因此本项目将Kotlin部分移除,并在此基础上加以完善且提供了更友好的的调用方法,更方便java开发者直接进行使用。

✨如果该项目对您有帮助,您的star是我不断优化的动力!!!

👏 项目特点

🎉 快速开始

项目提供了JavaEESpringBoot 的使用Demo,仅作参考(可以拉取下来运行试一下)

1️⃣ 添加依赖

此种方式会根据你使用的系统自动使用对应的jar包,目前支持的系统请查看版本说明

<!--  rapidocr这个必须要引入     -->
<!--  可前往maven中央仓库https://central.sonatype.com/artifact/io.github.mymonstercat/rapidocr/versions,查看版本      -->
<dependency>
    <groupId>io.github.mymonstercat</groupId>
    <artifactId>rapidocr</artifactId>
    <version>0.0.7</version>
</dependency>

<!--  一般只需要引入一个,CPU端建议使用onnx,移动端建议使用ncnn     -->
<!--  可前往maven中央仓库https://central.sonatype.com/artifact/io.github.mymonstercat/rapidocr-onnx-platform/versions,查看版本      -->
<dependency>
    <groupId>io.github.mymonstercat</groupId>
    <artifactId>rapidocr-onnx-platform</artifactId>
    <version>0.0.7</version>
</dependency>

<dependency>
    <groupId>io.github.mymonstercat</groupId>
    <artifactId>rapidocr-ncnn-platform</artifactId>
    <version>0.0.7</version>
</dependency>

⚠️ 如果你想体验最新功能,请拉取main分支代码,自己打包后进行使用!!!

2️⃣ 使用示例

public class Main {
    public static void main(String[] args) {
        InferenceEngine engine = InferenceEngine.getInstance(Model.ONNX_PPOCR_V3);
        OcrResult ocrResult = engine.runOcr("/images/test.png");
        System.out.println(ocrResult.getStrRes().trim());
    }
}

更多使用示例请参考使用示例

3️⃣ 添加打印日志(可选)

项目中添加了日志打印,方便打印OCR日志,请自行添加日志实现(springboot自带,可以不用添加)

<!-- 非SpringBoot项目:例如添加slf4j-simple     -->
<dependency>
    <groupId>org.slf4j</groupId>
    <artifactId>slf4j-simple</artifactId>
    <version>2.0.3</version>
</dependency>
<!-- SpringBoot项目:去除依赖,防止冲突     -->
<dependency>
    <groupId>io.github.mymonstercat</groupId>
    <artifactId>rapidocr</artifactId>
    <exclusions>
        <exclusion>
            <artifactId>slf4j-api</artifactId>
            <groupId>org.slf4j</groupId>
        </exclusion>
    </exclusions>
</dependency>

添加后效果如下:

⚠️ 注意:当前JVM启动时只能同时启动一种推理引擎,以第一次调用runOcr方法时的引擎配置为准

🔝 进阶使用

📌 TODO

🤔 FAQ

Q1:CentOS7无法运行?

Q2:如何传入二进制数据,而非图片路径?

由于缺少其他系统的设备,因此暂不提供最新的jar包(也就用v0.0.7传不了二进制),可参考以下步骤自行编译可传入二进制数据的jar包

⚠️ 如果你是mac-arm64的设备,直接 拉取项目、运行测试用例即可(也就是目前仅mac-arm64的动态库是支持二进制传入的!)

Q3:如何使用其他版本(如服务器版本)的模型?

Q4:如何更新模型?

如有其他问题请提issue,我会尽快解决。

鸣谢

开源许可

使用 Apache License 2.0