MNN_Demo icon indicating copy to clipboard operation
MNN_Demo copied to clipboard

使用nanodet训练自己模型,移植到安卓demo中出现闪退报错

Open XiongfeiQin opened this issue 4 years ago • 12 comments

  • 参照项目nanodet
  • 修改代码如下:
// NanoDet.h  75行
    std::vector<HeadInfo> heads_info{
            // cls_pred|dis_pred|stride
//            {"792", "795", 8},
//            {"814", "817", 16},
//            {"836", "839", 32},
            {"cls_pred_stride_8", "dis_pred_stride_8", 8},
            {"cls_pred_stride_16", "dis_pred_stride_16", 16},
            {"cls_pred_stride_32", "dis_pred_stride_32", 32},
    };

// MainActivity 315行
    protected void initModel() {
        String path = this.getFilesDir() + File.separator;
        if (USE_MODEL == NANODET) {
//            NanoDet.init("nanodet_320.mnn", path, USE_GPU);
            NanoDet.init("nanodet_jpq_mm.mnn", path, USE_GPU);
        }
    }

// 模型输出label及num_class均有修改
  • 模型转换使用项目中懒人转换工具 流程为torch->onnx->mnn
  • 报错信息如下:
I/WZT_MNN: model path:/data/user/0/com.wzt.mnn/files/nanodet_jpq_mm.mnn
A/libc: Fatal signal 11 (SIGSEGV), code 1 (SEGV_MAPERR), fault addr 0x0 in tid 9811 (com.wzt.mnn), pid 9811 (com.wzt.mnn)

请问该如何解决呢?谢谢

XiongfeiQin avatar Sep 24 '21 16:09 XiongfeiQin

WelcomeActivity.java 44行 里面有一个复制模型的过程,名称也要改一下。

cmdbug avatar Sep 25 '21 00:09 cmdbug

按照你给的方法问题已经解决,但是又出现新的问题,识别效果大打折扣,思考之后猜测原因在检测部分处理图片方面出现问题,请问一下有没有好的修改建议及思路,谢谢!

XiongfeiQin avatar Sep 25 '21 04:09 XiongfeiQin

检查下模型的输入格式rgb、bgr啊,归一化值等是不是有修改。

cmdbug avatar Sep 25 '21 05:09 cmdbug

仔细琢磨发现jni_interface.cpp第59行

cv::cvtColor(tempMat, srcMatImg, CV_RGBA2RGB);  // 将bitmap转成RGB

原项目nanodet 读取训练图片使用opencv直接读取,默认通道为BGR,这就产生了通道不一致直接导致效果下降。

另:如果将c++及java调用模型及推理部分单独打包供其他安卓插件调用,博主是否愿意提供有偿帮助,微信qxf130312.

XiongfeiQin avatar Sep 25 '21 08:09 XiongfeiQin

NanoDet.cpp 67行 有指定格式,估计是其它地方有问题。如训练的模型。

cmdbug avatar Sep 25 '21 09:09 cmdbug

自己原项目中使用demo_ncnn部分测试过模型,输出达到预期。如果提供模型给你能有偿帮忙吗?

XiongfeiQin avatar Sep 25 '21 09:09 XiongfeiQin

mean norm 值是不是对的?

cmdbug avatar Sep 25 '21 09:09 cmdbug

不是,我都有仔细核对过,mnn和ncnn提供的两套demo代码基本上没什么差异。本人不是很擅长这个方向,还是希望这件事情博主能提供帮助,拜托🙏🏻

XiongfeiQin avatar Sep 25 '21 09:09 XiongfeiQin

对吼,mnn的转换工具版本跟推理库的版本尽量一致,不一致可能会有问题。

cmdbug avatar Sep 25 '21 12:09 cmdbug

那你这边用的推理库是什么版本 我需要用哪个版本的转换工具

XiongfeiQin avatar Sep 25 '21 14:09 XiongfeiQin

https://github.com/RangiLyu/nanodet/issues/92

cmdbug avatar Sep 25 '21 14:09 cmdbug

mmexport1697722936543.jpg

可否识别这个

lengsan1234 avatar Oct 20 '23 14:10 lengsan1234