jerrylususu / PaddleOCR-json-java-api

MIT License
22 stars 8 forks source link

你好,我想请问一下,linux环境下,exePath我该指定到哪里,linux是否像windows一样无需部署即可运行 #8

Closed saberorlancer closed 3 months ago

jerrylususu commented 3 months ago
  1. 本项目之前只在 Windows 上进行了测试,未在 Linux 上测试;上游项目 PaddleOCR-json 也是最近才支持 Linux
  2. 我自己在 Ubuntu 22.04 下试用后,发现目前代码存在一些问题,不能直接启用(主要是布局和 LD_LIBRARY_PATH 设置);目前已经完成修正( 3e11ab2 )
  3. 在 Linux 上,在下载并解压 PaddleOCR-json 的 Linux 压缩包后,可以参考以下示例正常运行
    
    package org.example;

import java.io.*; import java.nio.file.Files; import java.nio.file.Paths; import java.util.HashMap; import java.util.Map;

public class Main { public static void main(String[] args) { // 可选的配置项 Map<String, Object> arguments = new HashMap<>(); arguments.put("models_path", "/mnt/PaddleOCR-json_v1.4.0_debian_gcc_x86-64/bin/models");

    // 初始化 OCR:使用本地进程或者套接字服务器
    String exePath = "/mnt/PaddleOCR-json_v1.4.0_debian_gcc_x86-64/bin/PaddleOCR-json"; // paddleocr_json 的可执行文件所在路径
    try (Ocr ocr = new Ocr(new File(exePath), arguments)) {
        String imgPath = "/mnt/t.png";
        OcrResponse resp = ocr.runOcr(new File(imgPath));
        // 读取结果
        if (resp.code == OcrCode.OK) {
            for (OcrEntry entry : resp.data) {
                System.out.println(entry.text);
            }
        } else {
            System.out.println("error: code=" + resp.code + " msg=" + resp.msg);
        }
    } catch (IOException e) {
        e.printStackTrace();
    }
}

}

jerrylususu commented 3 months ago

另外参考上游项目的文档(Docker 部署指南),建议是在 Docker 中启动 paddleocr-json,然后通过套接字方式连接;这样可以避免各类 glibc 版本不匹配导致的问题。

saberorlancer commented 3 months ago

另外参考上游项目的文档(Docker 部署指南),建议是在 Docker 中启动 paddleocr-json,然后通过 JSON 方式连接;这样可以避免由于 glibc 版本不匹配导致的问题。

多谢,我试一下

saberorlancer commented 3 months ago

image 之前也是这种情况,我感觉我的系统缺了什么东西,linux版启动是否也像win一样解压即可

saberorlancer commented 3 months ago

另外参考上游项目的文档(Docker 部署指南),建议是在 Docker 中启动 paddleocr-json,然后通过套接字方式连接;这样可以避免各类 glibc 版本不匹配导致的问题。

应该就是glibc的问题了,我执行了下run.sh,报glibc版本不适配