mxnet_convert_to_ncnn

2018-02-08  本文已影响0人  LC07
  1. 下载ncnn
  1. 编译ncnn
  1. 模型转换
set MXNET_MODEL_DIR=orig_model
set NCNN_MODEL_DIR=converted_model
mxnet2ncnn.exe  %MXNET_MODEL_DIR%/multitask2-symbol.json  %MXNET_MODEL_DIR%/multitask2-0004.params    %NCNN_MODEL_DIR%/multitask2.param   %NCNN_MODEL_DIR%/multitask2.bin 
pause
  1. 代码移植
  1. debug
static int detect_squeezenet(const cv::Mat& bgr, std::vector<float>& cls_scores)
{
ncnn::Net squeezenet;
squeezenet.load_param("../tools/mxnet/debug/converted_model/multitask2.param");
squeezenet.load_model("../tools/mxnet/debug/converted_model/multitask2.bin");
//cv::Mat dst;
//bgr.convertTo(dst, CV_32FC3, 1.0);
ncnn::Mat in = ncnn::Mat::from_pixels_resize(bgr.data, ncnn::Mat::PIXEL_BGR2RGB, bgr.cols, bgr.rows, 96, 96);

const float mean_vals[3] = {123.f, 117.f, 104.f};
in.substract_mean_normalize(mean_vals, 0);

ncnn::Extractor ex = squeezenet.create_extractor();
ex.set_light_mode(true);

ex.input("data", in);

ncnn::Mat out;
ex.extract("softmax2", out);
out = out.reshape(1, 1, 26);
cls_scores.resize(out.c);
for (int j=0; j<out.c; j++)
{
    const float* prob = out.channel(j);
    cls_scores[j] = prob[0];
}

return 0;
}

PS:本人为初学者,有经验的前辈们对涉及的基础部分请飘过~~~

上一篇 下一篇

猜你喜欢

热点阅读