opencv 调用caffe模型并加载均值文件

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/hust_bochu_xuchao/article/details/79042916

       当我们用自己的数据进行分类训练时,会先得到训练数据的均值文件。训练得到模型之后,对单张图像进行分类预测时,都要求输入均值文件。但是,我们用opencv调用caffe模型时,却没有找到加载均值文件的方法。opencv官网给出的例子,和网上比较多的opencv调用caffe模型时,都没有讲到如何加载均值文件。

       博主捣腾了好久,终于找到一种方法来加载均值文件了,在此做一个分享。

一、修改caffe源码并重新编译classsfication

1、打开Caffe.sln文件,找到classsfication项目中的classsfication.cpp文件。

2、定位到 Classifier::SetMean函数,在函数末尾增加以下几行代码。

 std::cout << channel_mean[0] << std::endl;
  std::cout << channel_mean[1] << std::endl;
  std::cout << channel_mean[2] << std::endl;
3、重新编译classsfication项目,得到新的classsfication.exe文件。


二、进行单张图像的分类预测

1、具体操作参考上一篇博文

2、运行时,就会把由均值文件得到的cv::Scalar打印出来。这就是我们需要的均值数据。

三、 opencv调用caffe模型进行分类预测

1、具体操作  参考之前的博文

2、这里 Scalar(183.574, 183.574, 183.574),就是步骤二得到的均值数据。

Mat inputBlob = dnn::blobFromImage(img, 1, Size(227, 227), Scalar(183.574, 183.574, 183.574), false);



展开阅读全文

没有更多推荐了,返回首页