如何使用OpenCV将相机图像设置为来自android应用的caffe网络输入?

时间:2018-07-03 16:56:45

标签: java android opencv neural-network

我正在使用SqueezeNet v1.1对图像进行分类。 Android相机图像在移动设备上存储在“ /sdcard/camera_app/cam_image.jpg”中。 应该使用以下代码来转换图像,以便可以将其用作我的网络的输入。问题是我遇到以下错误:

E / cv :: error():OpenCV错误:声明失败(blobs [0] .dims == 4 && blobs [0] .size [3] == kernel.width && blobs [0] .size [ 2] == kernel.height)在虚拟void cv :: dnn :: BaseConvolutionLayerImpl :: finalize(const std :: vector&,std :: vector&),文件/ build / master_pack-android / opencv / modules / dnn / src /层/convolution_layer.cpp,第71行。

我应该如何设置咖啡网的输入?我使用的代码是:

            Mat frame = imread("/sdcard/camera_app/cam_image.jpg");
            String proto = getPath("deploy.prototxt", context);
            String weights = getPath("train_iter_7200.caffemodel", context);
            Net net = Dnn.readNetFromCaffe(proto, weights);
            frame.convertTo(frame, CV_32F);  // Cast to floats
            resize(frame, frame, new Size(227, 227));  // Resize.
            imageMat = blobFromImage(frame);
            net.setInput(imageMat);
            Mat prob = net.forward();

0 个答案:

没有答案