PaddlePaddle / PaddleOCR

Awesome multilingual OCR toolkits based on PaddlePaddle (practical ultra lightweight OCR system, support 80+ languages recognition, provide data annotation and synthesis tools, support training and deployment among server, mobile, embedded and IoT devices)
Apache License 2.0
38.99k stars 7.32k forks source link

华为Atlas 300I(3010,昇腾310)部署paddleOCR,使用npu推断报错 #12001

Closed adamzhg closed 2 weeks ago

adamzhg commented 3 weeks ago

版本、环境信息: 1)Paddle Lite 版本:git clone的最新开发代码 2)Host 环境:Ubuntu 20.04 3)运行设备环境:华为鲲鹏服务器+Atlas 300I(3010,昇腾310) 4)CANN 7.0

PaddleLite编译/安装方式信息: 参考[https://www.paddlepaddle.org.cn/lite/develop/demo_guides/huawei_ascend_npu.html进行编译安装。 命令参数如下: ./lite/tools/build_linux.sh --arch=armv8 --toolchain=gcc --with_extra=ON --with_log=ON --with_exception=ON --with_cv=ON --with_nnadapter=ON --nnadapter_with_huawei_ascend_npu=ON --nnadapter_huawei_ascend_npu_sdk_root=/usr/local/Ascend/ascend-toolkit/latest full_publish

PaddleOCR安装方式: 参考官网https://github.com/PaddlePaddle/PaddleOCR/blob/main/deploy/lite/readme_ch.md信息进行安装。 安装过程中如果直接make会报错,提示找不到【include ../Makefile.def】 参考https://blog.51cto.com/u_12195/7267972,参考Paddle-Lite-Demo/ocr/armlinux/shell/cxx/ppocr_demo中的CMakeLists.txt进行修改后编译通过。 然后使用官网下载的nb模型文件都可以跑通;

报错内容: 但是如果使用opt工具将模型转换时添加npu支持:a.set_valid_places("huawei_ascend_npu,arm") 使用这样生成的nb文件,运行时会报错: [F 4/25 14:20:34.400 ...le-Lite/lite/kernels/nnadapter/engine.cc:294 Engine] Check failed: (device_names.size() > 0): 0!>0 No device specified. 另外,看了下ocr_db_crnn.cc的代码,好像也没有支持华为npu的相关代码,比如官网https://www.paddlepaddle.org.cn/lite/develop/demo_guides/huawei_ascend_npu.html上介绍的set_nnadapter_context_properties等等。

cuicheng01 commented 3 weeks ago

您好,目前PaddleOCR没有完全支持npu推理设备,未来这块的npu适配的内容会在6月份开源到PaddleX套件中,尽请期待~