DefTruth / lite.ai.toolkit

🛠 A lite C++ toolkit of awesome AI models, support ONNXRuntime, MNN. Contains YOLOv5, YOLOv6, YOLOX, YOLOv8, FaceDet, HeadSeg, HeadPose, Matting etc. Engine: ONNXRuntime, MNN.
https://github.com/DefTruth/lite.ai.toolkit
GNU General Public License v3.0
3.53k stars 672 forks source link

rvm ncnn推理问题 #371

Closed lblbk closed 1 year ago

lblbk commented 1 year ago

大佬,这个仓库 里面的 ncnn 版本的 rvm 可以正常使用吗,我看到你有个 ncnn 仓库提到这个 issue, 但在你的仓库里面并没看到解决方案,所以你有解决吗,谢谢大佬

DefTruth commented 1 year ago

目前还没有解决,建议用MNN或ORT版本

lblbk commented 1 year ago

目前还没有解决,建议用MNN或ORT版本

好吧,还是github回复快,哈哈哈

我遇到的问题大概是这样的

CPU

我写的c++测试代码在cpu运行时能展示出正常结果,比如下图 pha 当我把这个代码放到安卓工程里面默认 runtime 为 cpu,我发现 net.extract 取出来的值是空

GPU

我就在 ubuntu 用 vulkan 推理,可以得到正确图片和上图一样,但是会报段错误,用 GDB 调试后发现

Thread 1 "rvm_ncnn_gl" received signal SIGSEGV, Segmentation fault.
__GI___pthread_mutex_lock (mutex=0x258) at ../nptl/pthread_mutex_lock.c:67
67      ../nptl/pthread_mutex_lock.c: No such file or directory.

打印堆栈内容

#0  __GI___pthread_mutex_lock (mutex=0x258) at ../nptl/pthread_mutex_lock.c:67
#1  0x00007ffff7334e34 in ncnn::VulkanDevice::reclaim_blob_allocator(ncnn::VkAllocator*) const ()
    at /home/yunxi/data/CPPProjects/rvmncnn/ncnn-20220729-ubuntu-2004-shared/lib/libncnn.so.1
#2  0x00007ffff73a8161 in ncnn::Extractor::clear() () at /home/yunxi/data/CPPProjects/rvmncnn/ncnn-20220729-ubuntu-2004-shared/lib/libncnn.so.1
#3  0x00007ffff73a81e4 in ncnn::Extractor::~Extractor() () at /home/yunxi/data/CPPProjects/rvmncnn/ncnn-20220729-ubuntu-2004-shared/lib/libncnn.so.1
#4  0x000055555555b205 in RVM::matting(cv::Mat&, cv::Mat&, cv::Mat&, cv::Mat&, cv::Mat&) ()
#5  0x00005555555579fd in main ()

我排查到的问题是 这个,我这边报的也是这个错误,其中最新哥们的回复是解决野指针的问题并不是这个问题,我最终的排查到这里就没啥头绪了,哈哈哈

谢谢大佬回复了,也谢谢你的 export_onnx 脚本,哈哈哈

DefTruth commented 1 year ago

关于RVM,我们已经在 PaddlePaddle/FastDeploy 中进行了一版移植,目前支持CPU/GPU/TensorRT推理,另外FastDeploy目前也集成了PaddleSeg的抠图模型和分割模型,你也可以尝试下哈:

lblbk commented 1 year ago

关于RVM,我们已经在 PaddlePaddle/FastDeploy 中进行了一版移植,目前支持CPU/GPU/TensorRT推理,另外FastDeploy目前也集成了PaddleSeg的抠图模型和分割模型,你也可以尝试下哈:

好的谢谢,我一会儿看一下文档具体了解一下