cmdbug / MNN_Demo

🥭 移动端MNN部署学习笔记。支持Android与iOS。
GNU General Public License v3.0
88 stars 17 forks source link

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

Open XiongfeiQin opened 3 years ago

XiongfeiQin commented 3 years ago

// 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)



请问该如何解决呢?谢谢
cmdbug commented 3 years ago

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

XiongfeiQin commented 3 years ago

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

cmdbug commented 3 years ago

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

XiongfeiQin commented 3 years ago

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

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

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

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

cmdbug commented 3 years ago

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

XiongfeiQin commented 3 years ago

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

cmdbug commented 3 years ago

mean norm 值是不是对的?

XiongfeiQin commented 3 years ago

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

cmdbug commented 3 years ago

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

XiongfeiQin commented 3 years ago

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

cmdbug commented 3 years ago

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

lengsan1234 commented 1 year ago

mmexport1697722936543.jpg

可否识别这个