Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

高性能框架 #3515

Open
4 tasks
wangwenqi567 opened this issue Mar 4, 2025 · 7 comments
Open
4 tasks

高性能框架 #3515

wangwenqi567 opened this issue Mar 4, 2025 · 7 comments
Assignees

Comments

@wangwenqi567
Copy link

Checklist:

描述问题

为什么单独使用文本识别模型的高性能推理没有问题,但是将文本检测和文本识别模型放到一个文件中,
都使用高性能推理框架却报错,文本识别模型: PP-OCRv4_server_rec_doc,文本检测模型:PP-OCRv4_server_det

复现

  1. 高性能推理

  2. 服务化部署

    • 您是否完全按照服务化部署文档教程跑通了流程?

    • 您在服务化部署中是否有使用高性能推理插件,如果是,您使用的是离线激活方式还是在线激活方式?

    • 如果是多语言调用的问题,请给出调用示例子。

  3. 端侧部署

    • 您是否完全按照端侧部署文档教程跑通了流程?

    • 您使用的端侧设备是?对应的PaddlePaddle版本和PaddleLite版本分别是什么?

  4. 您使用的模型数据集是?

  5. 请提供您出现的报错信息及相关log

环境

  1. 请提供您使用的PaddlePaddle、PaddleX版本号、Python版本号
    3.0.0rc0,python 3.10
  2. 请提供您使用的操作系统信息,如Linux/Windows/MacOS
    Linux
  3. 请问您使用的CUDA/cuDNN的版本号是?
    cuda11.8-cudnn8.6-trt8.5
@Bobholamovic
Copy link
Member

请给出具体的代码调用示例并提供报错信息。

@wangwenqi567
Copy link
Author

model_name = "PP-OCRv4_server_det"
model_dir = "paddlex/official_inference_model/PP-OCRv4_server_det_infer/"
model = create_model(model_name=model_name, model_dir=model_dir, device="gpu:0", use_hpip=True)

model1_name = "PP-OCRv4_server_rec_doc"
model1_dir = "paddlex/official_inference_model/PP-OCRv4_server_rec_doc_infer/"
model1 = create_model(model_name=model1_name, model_dir=model1_dir, device="gpu:0", use_hpip=False)
def pp_det(np_image, batch_size=1):
out_det = model.predict(np_image, batch_size=1)
det_box = []
for res in out_det:
det_box=res['dt_polys']
return det_box
def pp_ocr(
image_file
):
image_data = await image_file.read()
img = Image.open(io.BytesIO(image_data)).convert("RGB")
np_image = np.array(img)

det_box = pp_det(np_image, batch_size=1)
for box in det_box:
    xmin, ymin, xmax, ymax = (
        int(box[0][0]),
        int(box[0][1]),
        int(box[2][0]),
        int(box[2][1]),
    )
    crop_patch = np.array(img.crop((xmin, ymin, xmax, ymax)))
    output = model1.predict(crop_patch, batch_size=1)
    for res in output:
        text = ''.join(res['rec_text'])

[ERROR] Due to the unsupported operators, the conversion is aborted.
Aborted (core dumped)

@Bobholamovic
Copy link
Member

请问有通过配置文件手工指定使用的推理后端吗?另外,使用的模型是否是paddlex 3.0rc导出的模型,或者是paddlex 3.0rc的官方模型呢?

@wangwenqi567
Copy link
Author

这两个模型没有通过配置文件去指定推理后端
使用的是paddlex 3.0rc的官方模型
不太清楚为什么两个模型都使用高性能框架 use_hpip会报错,文本检测模型单个使用高性能框架也会报错

@Bobholamovic
Copy link
Member

请问可以提供一下完整的错误日志信息吗?从上面的代码看来,是模型在转onnx格式时遇到了不支持的算子,但这个模型在issue里所指示的环境中是经过测试的,如果使用高性能推理的默认配置不应该出现这个问题,所以我们可能需要根据详细的错误信息判断一下原因。建议可以以文件的形式上传~

@Bobholamovic
Copy link
Member

另外,目前paddlex不支持在一个进程中,部分模型启用hpip,另一部分模型不启用。我们在下一个版本将补足这块的能力

@wangwenqi567
Copy link
Author

好的,谢谢,之后我将上传代码文件

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants