Closed Aweiiss closed 9 months ago
你必须使用项目内置的python解释器来启动main.py,而不是使用你电脑上安装的python解释器。
你可以先点击运行 Umi-OCR.exe
或者 UmiOCR-data/RUN_CLI.bat
,看看能否正常启动。
然后,你需要在你的编辑器(似乎是IDEA?)中,修改项目配置,指定使用 ${工作目录}/UmiOCR-data/runtime/python.exe
作为当前项目的解释器。
如果你不熟悉上述流程,建议使用Vscode进行开发,本仓库内已包含完整的Vscode项目配置文件。参考 文档 可以简便地导入项目环境。
嘿嘿,感谢作者大大,这个问题已经解决啦。还有一个问题希望请教一下,我看项目中TesseractOCR模型是可以调整置信度的,但是其他:PaddleOCR、Pix2Text和RapidOCR好像都无法调整置信度,这块是模型限制无法实现吗?还是当前项目未计划对这块的开发呀?
不,所有模型都支持 输出置信度信息 。
TesseractOCR插件是由 @qwedc001 开发的,他额外添加了一个置信度下限的功能,可以过滤掉 置信度低于指定值的文本块。这可能有助于避免误识别。(比如,引擎误将一个表情识别为文本,但置信度会比较低,可以被过滤掉)
PaddleOCR、Pix2Text和RapidOCR插件都可以实现该功能的,做法非常容易。但是,我考虑到这三个插件都是使用Paddle系模型,精度已经比较高,误识别的几率较少。而且就算误识别,置信度也比较高,难以将错误的文本与正常文本区分开。因此,我就没有做置信度下限的功能。
可以请教一下作者大大,PaddleOCR、Pix2Text和RapidOCR插件如何实现置信度下限的功能吗?我想测试一下,如果对于这三个插件相对应的置信度下限是怎么样的一个表现,不知道作者大大方便吗?感谢感谢
以PaddleOCR插件为例,在 UmiOCR-data\plugins\win7_x64_PaddleOCR-json\paddleocr.py
的71行有一句 return jsonLoads(getStr)
。你可以将这一句改为:
先获取json字典对象,遍历data列表,检查并过滤置信度score低于指定值的条目。如:
try:
res = jsonLoads(getStr)
if res["code"] == 100: # 识别成功
# 重新构建data列表,保留置信度 >= 60% 的条目
res["data"] = [d for d in res["data"] if d.get("score", 1) >= 0.6]
return res
其他插件也大同小异。
作者大大,我刚刚按照你说的这样进行修改了: 修改完之后运行软件,然后进行图片识别,这个时候反而出现了错误:
修改后:
try:
res = jsonLoads(getStr)
if res["code"] == 100: # 识别成功
# 重新构建data列表,保留置信度 >= 60% 的条目
res["data"] = [d for d in res["data"] if d.get("score", 1) >= 0.6]
# 若所有块都被过滤,则重设code为101
if len(res["data"]) <= 0:
res["code"] = 101
return res
非常感谢作者大大,这样确实就可以实现了,非常非常感谢,必须得给作者大大点赞,嘿嘿🌹🌹🌹❤
作者大大,主程序运行是不是可以直接运行UmiOCR-data下的main.py文件吗?我按照提示已经搭建好了项目目录,但是我在运行main.py文件的时候显示主程序启动失败! 提示是:Directory ‘static/’ does not exist 请问这种情况应该怎么解决啊?是不是我哪里没有配置好呀?主要是这个路径应该如何设置!