【ncnn android】算法移植(十)——DBface ncnn模型输出nan/性能简单测试

问题 已经将DBface转成ncnn模型,并在c++上测试通过,但是移植到android平台之后,结果一直不对,只能一段一段的检查,发现ncnn模型输出为nan。

猜想

  • 输入给的不对。c++上推理采用的是cv::Mat作为输入。android平台采用bitmap
  • 预处理不对,因为有image/255 - mean / std
  • ncnn模型没有正确载入
  • 对ncnn的模型进行逐层检查
  • 版本对应不上
    只能一个一个尝试了

检查出的问题
ncnn的模型输出有nan值。说明,DBface android项目是在mtcnn android项目上继续搭建的,后来发现是头文件和libncnn.a的问题。换回官方的就行了。

2020-05-29 15:59:54.043 19415-19415/com.example.ncnntest1 D/DBfaceSo: [in data] | the image data is: nan
2020-05-29 15:59:54.043 19415-19415/com.example.ncnntest1 D/DBfaceSo: [in data] | the image data is: nan

解决方案

  • 替换了ncnn的头文件和动态库
  • 采用20191113的版本。

结果

  • 采用640 * 480 的固定尺寸进行推理
处理器 RAM 图像尺寸 时间(ms) 是否使用GPU
骁龙710 6G 640*480 497
骁龙855 12G 640*480 238

你可能感兴趣的:(嵌入式AI,深度学习框架,人脸检测)