-
-
Notifications
You must be signed in to change notification settings - Fork 33
Closed
Milestone
Description
问题描述:
在使用RapidTable
时,RapidTableInput
参数中已经明确指定了engine_type
为torch
, 但是在实际使用过中仍然会加载onnx
相关的模型。
实际使用过程中,分别比较了 参数use_ocr
设置 True
和 False
的结果,从结果来看,使用use_ocr=True
的效果会好一点,但是只能选择onnxruntime
作为推理引擎,使我感到困惑。
请提供下述完整信息以便快速定位问题
(Please provide the following information to quickly locate the problem)
- 系统环境/System Environment:ubuntu20.04
- 使用的是哪门语言的程序/Which programing language:python
- 所使用语言相关版本信息/Version:3.10.14
- OnnxRuntime版本/OnnxRuntime Version:onnxruntime_gpu==v1.18.0
- RapidTable版本:2.0.2
- rapidocr版本:3.2.0
- 可复现问题的demo/Demo of reproducible problems:
import cv2
from rapidocr import RapidOCR
from rapidocr import EngineType as EngineType_RapidOCR
from rapid_table import ModelType, RapidTable, RapidTableInput
from rapid_table import EngineType as EngineType_Table
# 注意这里的参数
ocr_engine = RapidOCR(
params={
"Det.engine_type": EngineType_RapidOCR.TORCH,
"Cls.engine_type": EngineType_RapidOCR.TORCH,
"Rec.engine_type": EngineType_RapidOCR.TORCH,
"EngineConfig.torch.use_cuda": True, # 使用torch GPU版推理
"EngineConfig.torch.gpu_id": 0, # 指定GPU id
}
)
image_path = "1.jpg"
input_args = RapidTableInput(model_type=ModelType.UNITABLE,
model_dir_or_path={"vocab":"models/rapid_table/unitable_vocab.json", "encoder":"models/rapid_table/unitable_encoder.pth", "decoder":"models/rapid_table/unitable_decoder.pth"},
engine_type=EngineType_Table.TORCH,
engine_cfg={"use_cuda": True, "gpu_id": 0})
table_engine = RapidTable(input_args)
for i in range(10):
start_time = cv2.getTickCount()
rapid_ocr_output = ocr_engine(image_path)
ocr_results = [rapid_ocr_output.boxes, rapid_ocr_output.txts, rapid_ocr_output.scores]
table_results = table_engine(image_path, ocr_results)
print('case #', i)
end_time = cv2.getTickCount()
print(f"Total time: {(end_time - start_time) / cv2.getTickFrequency()} seconds")
- 完整报错/Complete Error Message:
[INFO] 2025-07-10 09:29:23,692 [RapidOCR] base.py:24: Using engine_name: torch
[INFO] 2025-07-10 09:29:24,568 [RapidOCR] download_file.py:56: File exists and is valid: /opt/conda/lib/python3.10/site-packages/rapidocr/models/ch_PP-OCRv4_det_infer.pth
[INFO] 2025-07-10 09:29:24,569 [RapidOCR] torch.py:45: Using /opt/conda/lib/python3.10/site-packages/rapidocr/models/ch_PP-OCRv4_det_infer.pth
[INFO] 2025-07-10 09:29:25,178 [RapidOCR] base.py:24: Using engine_name: torch
[INFO] 2025-07-10 09:29:25,179 [RapidOCR] download_file.py:56: File exists and is valid: /opt/conda/lib/python3.10/site-packages/rapidocr/models/ch_ptocr_mobile_v2.0_cls_infer.pth
[INFO] 2025-07-10 09:29:25,179 [RapidOCR] torch.py:45: Using /opt/conda/lib/python3.10/site-packages/rapidocr/models/ch_ptocr_mobile_v2.0_cls_infer.pth
[INFO] 2025-07-10 09:29:25,273 [RapidOCR] base.py:24: Using engine_name: torch
[INFO] 2025-07-10 09:29:25,324 [RapidOCR] download_file.py:56: File exists and is valid: /opt/conda/lib/python3.10/site-packages/rapidocr/models/ch_PP-OCRv4_rec_infer.pth
[INFO] 2025-07-10 09:29:25,325 [RapidOCR] torch.py:45: Using /opt/conda/lib/python3.10/site-packages/rapidocr/models/ch_PP-OCRv4_rec_infer.pth
[INFO] 2025-07-10 09:29:26,169 [RapidTable] base.py:53: Using engine_name: torch
[INFO] 2025-07-10 09:29:26,813 [RapidOCR] base.py:24: Using engine_name: onnxruntime
[INFO] 2025-07-10 09:29:26,871 [RapidOCR] download_file.py:56: File exists and is valid: /opt/conda/lib/python3.10/site-packages/rapidocr/models/ch_PP-OCRv4_det_infer.onnx
[INFO] 2025-07-10 09:29:26,871 [RapidOCR] main.py:55: Using /opt/conda/lib/python3.10/site-packages/rapidocr/models/ch_PP-OCRv4_det_infer.onnx
[INFO] 2025-07-10 09:29:26,986 [RapidOCR] base.py:24: Using engine_name: onnxruntime
[INFO] 2025-07-10 09:29:26,988 [RapidOCR] download_file.py:56: File exists and is valid: /opt/conda/lib/python3.10/site-packages/rapidocr/models/ch_ppocr_mobile_v2.0_cls_infer.onnx
[INFO] 2025-07-10 09:29:26,988 [RapidOCR] main.py:55: Using /opt/conda/lib/python3.10/site-packages/rapidocr/models/ch_ppocr_mobile_v2.0_cls_infer.onnx
[INFO] 2025-07-10 09:29:27,026 [RapidOCR] base.py:24: Using engine_name: onnxruntime
[INFO] 2025-07-10 09:29:27,049 [RapidOCR] download_file.py:56: File exists and is valid: /opt/conda/lib/python3.10/site-packages/rapidocr/models/ch_PP-OCRv4_rec_infer.onnx
[INFO] 2025-07-10 09:29:27,050 [RapidOCR] main.py:55: Using /opt/conda/lib/python3.10/site-packages/rapidocr/models/ch_PP-OCRv4_rec_infer.onnx
- 可能的解决方案/Possible solutions:
查看了源码后,我猜测可能是下面代码中在初始化RapidOCR
对象时,遗漏了对torch
的支持
rapid_table/main.py line 46:
def _init_ocr_engine(self):
try:
return import_package("rapidocr").RapidOCR()
except ModuleNotFoundError:
logger.warning("rapidocr package is not installed, only table rec")
return None