如何给caffe模型提供多个图像

时间:2016-06-28 05:49:02

标签: c++ visual-studio opencv caffe

using Caffe Framework Models

detect(Image)会给出图片补丁。我想将这个图像补丁传递给caffe模型进行识别。每个Image都会提供可变数量的补丁,因此我使用Mat的补丁作为补丁。

vector<Mat> patch = detect(Image);
for(int i = 0; i < patch.size(); i++) {
    resize(patch.at(i), patch.at(i), Size(224, 224));       
    dnn::Blob inputBlob = dnn::Blob(patch.at(i));   
    net.setBlob(".data", inputBlob);   
    net.forward();
    dnn::Blob prob = net.getBlob("prob");
    int classId;
    double classProb;
    getMaxClass(prob, &classId, &classProb);
    std::vector<String> classNames = readClassNames();
    std::cout << "Best class: #" << classId << " '" << classNames.at(classId) << "'" << std::endl;
    std::cout << "Probability: " << classProb* 100 << "%" << std::endl;
}

我在net.forward()遇到麻烦(转发到网络)。我没有创建网络并使用导入器初始化它的问题。有人可以帮助我。

我遇到的错误是:OpenCV错误:断言失败((size_t)innerSize *(size_t)numOutputs == blobs [ 0] .total())在cv :: dnn :: FullyConnectedLayer :: allocate

0 个答案:

没有答案