Comments (21)
恰恰相反,你这不是构建成功了嘛😂只是缺少模型库,所以未能启动引擎而已。
下载一个1.3.0版的release包,将其中的models文件夹整个拷贝到你编译生成的 ppocr.exe 同目录下,即可。
可选传入-config_path
来手动指定加载哪一套模型库,比如 ppocr.exe -config_path="models/config_german_v2.txt"
。
from paddleocr-json.
请问如何设置PaddleOCR-json.exe 的工作路径?我的调用代码所在的位置就是其工作路径吗? 能实现,将任意位置的PaddleOCR-json.exe路径传给matlab程序脚本 吗? 现在只能是PaddleOCR-json.exe和所有的matlab程序脚本 都在一个文件夹下,才能正常工作。
搞定了。
1、matlab程序脚本 和 PaddleOCR-json.exe ,不必在一个文件夹下,
2、cd(which('PaddleOCR-json.exe')),设置PaddleOCR-json.exe所在路径为当前文件夹即可。
from paddleocr-json.
from paddleocr-json.
我也是同样的问题,也把models文件夹整个拷贝到panddleOCR-Json_v1.3.0文件夹下面了(和panddleOCR-json.exe同路径),然后还是同样的错误。
from paddleocr-json.
我是在matlab调用,文件也都有,这些错误怎么搞呢?
1、配置config代码:
exepath = '.\PaddleOCR-json_v.1.3.0\PaddleOCR-json.exe';
configpath = '.\PaddleOCR-json_v.1.3.0\models\config_chinese.txt';
commandconfig = [exepath,' "--config_path" ',configpath];
[status,cmout] = system(commandconfig)
报错:
cmout =
'PaddleOCR-json v1.3.0
Load config from [.\PaddleOCR-json_v.1.3.0\models\config_chinese.txt] : det_model_dir set to models/ch_PP-OCRv3_det_infercls_model_dir set to models/ch_ppocr_mobile_v2.0_cls_inferrec_model_dir set to models/ch_PP-OCRv3_rec_inferrec_char_dict_path set to models/dict_chinese.txt.
[ERROR] det_model_dir [models/ch_PP-OCRv3_det_infer] does not exist. rec_model_dir [models/ch_PP-OCRv3_rec_infer] does not exist.
'
2、使用PaddleOCR-json.exe
exepath = '.\PaddleOCR-json_v.1.3.0\PaddleOCR-json.exe';
command = [exepath,' ',imagepath];
[status,cmout] = system(command);
报错:
cmout =
'PaddleOCR-json v1.3.0
config_path [] does not exist.
[ERROR] det_model_dir [models/ch_PP-OCRv3_det_infer] does not exist. rec_model_dir [models/ch_PP-OCRv3_rec_infer] does not exist.
'
from paddleocr-json.
你先试试,不通过程序调用,直接打开 PaddleOCR-json.exe 有没有问题。
如果直接运行OK。通过程序调用失败,那么是你代码调用exe的工作路径的问题。
PaddleOCR-json.exe 的工作路径必须是它所在的文件夹。可能你在调用时,调用方默认设置了另外的工作路径,导致相对路径找不到模型库。
请尝试手动设置工作路径,或者传入绝对路径。
from paddleocr-json.
你先试试,不通过程序调用,直接打开 PaddleOCR-json.exe 有没有问题。 如果直接运行OK。通过程序调用失败,那么是你代码调用exe的工作路径的问题。
PaddleOCR-json.exe 的工作路径必须是它所在的文件夹。可能你在调用时,调用方默认设置了另外的工作路径,导致相对路径找不到模型库。 请尝试手动设置工作路径,或者传入绝对路径。
1、matlab调用PaddleOCR-json.v1.2.1,不会报错,但是matlab一直会run下去,10min还没停,就1张100k的图片。
Umi-OCR这个软件,10张差不多的图片,18s就提取完了。
2、直接打开1.3.0的 PaddleOCR-json.exe是这个界面
from paddleocr-json.
直接打开1.3.0的 PaddleOCR-json.exe是这个界面
对,这个界面表示 PaddleOCR-json 初始化成功了,能正常读入models文件夹中的模型库。所以肯定是调用方的代码编写有问题,而我估计大概率是工作路径没设置对。
from paddleocr-json.
直接打开1.3.0的 PaddleOCR-json.exe是这个界面
对,这个界面表示 PaddleOCR-json 初始化成功了。所以肯定是调用方的代码编写有问题,而我估计大概率是工作路径没设置对。
1、更改了绝对路径,也将matlab程序脚本放在PaddleOCR-json.exe同目录下,确实不会报错了。
但是对于1.2.1,这两个额外配置都是不需要的。
2、新的问题是,1.3.0和1.2.1,调用后,一直在运行,没有一点停下来的意思。。。。这是不正常的吧?
from paddleocr-json.
没有一点停下来的意思
嗯,因为你用堵塞的方式来调用OCR(即PaddleOCR-json.exe程序退出后,你的代码才能得到返回结果)。而 PaddleOCR-json 默认是循环工作模式,即识别一张图片后不会主动退出,而是等待下一张图片任务。因此,就算 PaddleOCR-json 输出了识别结果,因为它没有退出,你的堵塞模式的代码也无法得到命令行输出。
有两种解法:
- 使用单次识图模式,见 文档 。
- 将你的代码改写为非堵塞模式。
from paddleocr-json.
另外,我发现了你原本代码里的一个错误,可能是这个错误导致了读模型库失败,而不是工作路径的问题。
configpath = '.\PaddleOCR-json_v.1.3.0\models\config_chinese.txt';
这句写错了,模型库的相对路径,是相对于PaddleOCR-json.exe的位置,而不是相对于调用方脚本的位置。正确的是:
configpath = 'models\config_chinese.txt';
改正上述错误之后,v1.3.0和1.2.1的表现应该一致,即既不需要绝对路径,也不需要移动matlab脚本位置。
from paddleocr-json.
没有一点停下来的意思
嗯,因为你用堵塞的方式来调用OCR(即PaddleOCR-json.exe程序退出后,你的代码才能得到返回结果)。而 PaddleOCR-json 默认是循环工作模式,即识别一张图片后不会主动退出,而是等待下一张图片任务。因此,就算 PaddleOCR-json 输出了识别结果,因为它没有退出,你的堵塞模式的代码也无法得到命令行输出。
有两种解法:
1. 使用单次识图模式, 2. 将你的代码改写为非堵塞模式。
from paddleocr-json.
这是一个示例,演示如何用非堵塞模式处理多张图片。(我不熟悉matlab,有错请见谅)
% 图片地址列表
imagePaths = {'test1.png', 'test2.png', 'test3.png'};
% 配置文件路径
configPath = 'models\config_chinese.txt';
% 导入 JSON 库
json = jsondecode('{"image_path": ""}');
% 打开管道
cmd = '.\PaddleOCR-json_v.1.3.0\PaddleOCR-json.exe --config_path "%s"';
pipe = popen(sprintf(cmd, configPath), 'w');
% 循环处理每个图片
for i = 1:numel(imagePaths)
% 获取当前图片地址
imagePath = imagePaths{i};
% 构造 JSON 对象
json.image_path = imagePath;
jsonString = jsonencode(json);
% 转义 JSON 字符串
jsonString = matlab.net.base64encode(uint8(jsonString));
% 发送转义后的 JSON 字符串到管道
fprintf(pipe, '%s\n', jsonString);
% 刷新管道缓冲区
fflush(pipe);
% 监听管道回传的结果
result = fgets(pipe);
disp(result);
% TODO:对result做反ascii转义 和 json解析
end
% 关闭管道
pclose(pipe);
from paddleocr-json.
单次识图模式,出现这个错误
这是因为单次识别模式可能对中文路径的兼容性不好。如果要用单次识别模式,请准备纯英文路径的图片。
如果需要处理中文路径,那么请使用循环模式+json传入值,像上面我给的例子。
from paddleocr-json.
这是一个示例,演示如何用非堵塞模式处理多张图片。(我不熟悉matlab,有错请见谅)
非常感谢,我确定matlab没有多线程运行的功能,不知道这个非阻塞模式是否和这个相关,如果是,就不行了,后面我会试试看,先搞定单次识别吧,再加上for循环
from paddleocr-json.
非常抱歉可能闹了乌龙,我查了一下,matlab似乎没有提供管道的机制,所以我示例中的 popen() 可能不存在这个函数。
你也许可能找找第三方库或别的方式,实现管道通信的机制。或者,只能使用单次识别模式+英文路径。
from paddleocr-json.
单次识图模式,出现这个错误
这是因为单次识别模式可能对中文路径的兼容性不好。如果要用单次识别模式,请准备纯英文路径的图片。 如果需要处理中文路径,那么请使用循环模式+json传入值,像上面我给的例子。
非常感谢,图片名改成英文就可以了,但是不能转成文字,我还需要配置什么呢?
from paddleocr-json.
非常抱歉可能闹了乌龙,我查了一下,matlab似乎没有提供管道的机制,所以我示例中的 popen() 可能不存在这个函数。
你也许可能找找第三方库或别的方式,实现管道通信的机制。或者,只能使用单次识别模式+英文路径。
谢谢特地查询,后面我试试看,结果会在此反馈。
from paddleocr-json.
但是不能转成文字,我还需要配置什么呢?
你这已经识别成功了。后续只需要将这个json字符串转为matlab对象,就可以读取结果的每个字段。
https://ww2.mathworks.cn/help/matlab/ref/jsondecode.html
from paddleocr-json.
单次识别模式+英文路径
matlab确实不能用管道模式,单次识别模式+英文路径+for循环,每张图大概3s,还可以接受...
谢谢作者的程序与解答!!!
from paddleocr-json.
PaddleOCR-json.exe 的工作路径必须是它所在的文件夹。可能你在调用时,调用方默认设置了另外的工作路径,导致相对路径找不到模型库。
请问如何设置PaddleOCR-json.exe 的工作路径?我的调用代码所在的位置就是其工作路径吗?
能实现,将任意位置的PaddleOCR-json.exe路径传给matlab程序脚本 吗?
现在只能是PaddleOCR-json.exe和所有的matlab程序脚本 都在一个文件夹下,才能正常工作。
from paddleocr-json.
Related Issues (20)
- config_path HOT 1
- 其他语言支持 HOT 1
- 能支持方向识别结果的输出嘛
- 字节流识别失败 错误信息:Base64 data imdecode failed. HOT 2
- 是否可以跳过文本检测模型 HOT 1
- 【致谢,被其他开源项目用到了】QT+Rust开发的paddleOCR桌面软件(示例) HOT 2
- 如果一张图片同时有中文/英文/日文,那么该如何选择模型呢? HOT 3
- 不知道能否增加GPU版本的支持 HOT 1
- 超长图片无法识别。 HOT 2
- MingW64 编译的C++项目,是不是不能嵌入本项目? HOT 2
- ocr.runBase64(base64Str)运行后无法获取正确结果
- ocr.runBase64(base64Str)运行后无法获取正确结果 HOT 2
- 能否增加表格识别的支持 HOT 1
- 无法使用PIL读取的图片进行识别,也无法使用字节流 HOT 1
- 无法使用ch_PP-OCRv4_rec_infer HOT 3
- 推理结果问题 HOT 4
- PaddleOCR-json.exe 文字识别很好用 能不能开放一个表格识别接口出来 HOT 1
- 使用python-api的依赖包 HOT 1
- 关于pyinstaller 封装exe的问题 HOT 3
- python调用,存在内存泄漏,跑了一天,内存增长到6G HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from paddleocr-json.