Closed qwedc001 closed 8 months ago
有关win版RapidOCR-json GPU的fun facts:我已经明确加入GPU调用参数,但是在OCR过程中GPU占用只有10%不到,平均值更是约等于5%,与正常情况不符
rapidocr.py
尝试改为这样:
self.ret = subprocess.Popen( # 打开管道
exePath,
cwd=cwd,
stdin=subprocess.PIPE,
stdout=subprocess.PIPE,
# stderr=subprocess.DEVNULL, # 丢弃stderr的内容,注释掉
# startupinfo=startupinfo, # 开启静默模式,注释掉
creationflags=0x00000010, # 创建新控制台
)
如果你想让信息在控制台输出,C++代码中不要用cout,要用 std::cerr << "调试信息" << std::endl;
。
其实创建新控制台是不必要的,就算不创建, std::cerr
的内容也会在调试 python 的控制台里面打印。
而 std::cout
的内容会被转接到python代码内,也就是无论在哪个控制台,都不会打印出来。
rapidocr.py
尝试改为这样:
已尝试,无效,弹出控制台,但是是黑框
上文已更新。估计你这是C++里没有输出到 stderr 所以看不见任何信息。
而
std::cout
的内容会被转接到python代码内,也就是无论在哪个控制台,都不会打印出来。
好吧,我想要获取到的就是std::cout的内容,如果没有办法独立监视的话就难办了
获取std::cout的内容也很简单:
rapidocr.py
→ def runDict
里面有一行 getStr = self.ret.stdout............
后面加一行 print("stdout原始输出:", getStr )
即可。
但是:这样只能获取引擎在处理一张图片的过程中的 cout ,而且会干扰原本的任务流程(可能让python无法获取到引擎的正确输出)。
刚想到了,问题解决了,我调一下 谢啦
题外话,我看到你更新了 tesseract插件 ,能否帮我在 这里 向用户说明一下如何载入插件及法语库。
好,我就去
hiroi-sora/RapidOCR-json/issues/13 GPU相关,但是也没有那么相关。所以单开issue了
我在用我自己的电脑和编译好的win版RapidOCR运行文件进行Umi内GPU测试,然后发现识别时间和预期不符(均值在20秒,单编译ocr的效率在毫秒级)
所以我想要通过展示引擎窗口本身尝试定位问题。
但是我尝试取消掉rapidocr.py的34行的参数和上面的flags,并没有成功让引擎本身弹出,仍然是静默运行的状态,我本身没怎么接触过subprocess,加上在stackoverflow查询尝试未果,只能来这里再开issue了(