我正在使用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();