szad670401 / HyperLPR

基于深度学习高性能中文车牌识别 High Performance Chinese License Plate Recognition Framework.
Apache License 2.0
5.68k stars 2.01k forks source link

c++ demo运行卡住,无预测结果,更换测试图片依旧卡住,无结果 #364

Closed SCUT-chenjia closed 1 year ago

SCUT-chenjia commented 1 year ago

[test_classification.cpp][C_A_T_C_H_T_E_S_T_0][17]: [UnitTest]->Classification Model [InferenceHelper][133] Use MNN The device support dot:0, support fp16:0, support i8mm: 0

[test_detection.cpp][C_A_T_C_H_T_E_S_T_0][15]: [UnitTest]->Detect Model [test_detection.cpp][C_A_T_C_H_T_E_S_T_0][25]: Detect Model SplitModel [InferenceHelper][133] Use MNN [InferenceHelper][133] Use MNN

[test_recognition.cpp][C_A_T_C_H_T_E_S_T_0][15]: [UnitTest]->Recognition Model [InferenceHelper][133] Use MNN [test_recognition.cpp][C_A_T_C_H_T_E_S_T_0][35]: Rec Model RPV3 [test_recognition.cpp][C_A_T_C_H_T_E_S_T_0][44]: 津B6H920 -> 津B6H920 [test_recognition.cpp][C_A_T_C_H_T_E_S_T_0][44]: 皖KD01833 -> 皖KD01833 [test_recognition.cpp][C_A_T_C_H_T_E_S_T_0][44]: 蒙B023H6 -> 蒙B023H6 [test_recognition.cpp][C_A_T_C_H_T_E_S_T_0][44]: 冀D5L690 -> 冀D5L690

=============================================================================== All tests passed (39 assertions in 3 test cases) 测试是通过对,说明构建成功了,但是运行c++的demo一直卡住

SCUT-chenjia commented 1 year ago

实测,卡在HLPR_ContextUpdateStream(ctx, buffer, &results);

tunmx commented 1 year ago

你好,请提供你的操作系统版本、gcc和g++版本,我这边排查一下问题哈

SCUT-chenjia commented 1 year ago

g++ (Ubuntu 9.3.0-17ubuntu1~20.04) 9.3.0 系统:基于nvcr.io/nvidia/tensorrt:22.02-py3的容器,容器的操作系统是Ubuntu 20.04.3 LTS 另外想问一下,The device support dot:0, support fp16:0, support i8mm: 0 这行检测的是显卡性能吗

tunmx commented 1 year ago

好的,我们这边排查一下有结果第一时间回复你;这句话是MNN框架检测设备是否支持一些加速推理的框架,据我所知可能是针对移动端的,如果你使用NVIDIA显卡加速推理的需求,可以自行编译cuda版的MNN

chuqingq commented 1 year ago

遇到了相同的问题,请问有什么进展吗?

tunmx commented 1 year ago

你好,经过测试,发现卡住不动的问题是因为不同的Linux系统和环境的本地依赖库和一些工具链版本冲突导致的,目前主要发现崩溃的原因在opencv库的函数上,我们目前整理了两种解决方案供参考: 1、自行编译系统支持的opencv库并安装,拉取最新代码默认会去链接系统的opencv; 2、自行编译系统可用opencv静态库,并替换3rdparty_hyper_inspire_op中的linux-opencv静态库,需拉取最新代码,编译hyperlpr3库时需要开启LINUX_USE_3RDPARTY_OPENCV项;

注:为防止MNN库也出现该问题,我修改了工程让MNN支持从git在线拉取仓库进行编译,如果不需要拉取则需要将LINUX_FETCH_MNN项关闭

以上仅针对linux系统版本

chuqingq commented 1 year ago

谢谢!

在RK3588的ubuntu20.04上验证通过: 1.使用系统的opencv 2.使用2.2.3版本的mnn 可以编译Cpp库成功,并运行Prj-Linux成功。