(-215: утверждение не выполнено) 1 ‹= blobs.size() && blobs.size() ‹= 2

Я пытаюсь импортировать свою собственную предварительно обученную модель Caffe Googlenet с помощью OpenCV v.3.4.3, где я запускаю тест Caffe после обучения с использованием файла развертывания модели, и все работает нормально. Однако при подаче сети OpenCv (после ее загрузки) с изображением BLOB-объекта я получаю исключение.

Код OpenCv:

Net net = Dnn.readNetFromCaffe("deploy.prototxt","bvlc_googlenet.caffemodel");
Mat image = Imgcodecs.imread(input.getAbsolutePath(), Imgcodecs.IMREAD_COLOR);
Mat blob = Dnn.blobFromImage(image);
System.out.println(image);
System.out.println(blob);
net.setInput(blob);
Mat result = net.forward().reshape(1);

Ошибка вывода:

Mat [ 24*15*CV_8UC3, isCont=true, isSubmat=false, nativeObj=0x1bcd0740, dataAddr=0x1a9d1880 ]
Mat [ -1*-1*CV_32FC1, isCont=true, isSubmat=false, nativeObj=0x1bcd0eb0, dataAddr=0x1a4e4340 ]
Exception in thread "main" CvException [org.opencv.core.CvException: cv::Exception: OpenCV(3.4.3) Z:\build tools\opencv-3.4.3\modules\dnn\src\layers\fully_connected_layer.cpp:73: error: (-215:Assertion failed) 1 <= blobs.size() && blobs.size() <= 2 in function 'cv::dnn::FullyConnectedLayerImpl::FullyConnectedLayerImpl'
]
    at org.opencv.dnn.Net.forward_1(Native Method)
    at org.opencv.dnn.Net.forward(Net.java:62)
    at test.OpenCVTests.main(OpenCVTests.java:54)

Caffe-train-val-model.prototxt Caffe-deploy-model.prototxt

Заранее спасибо!


person peter bence    schedule 18.09.2018    source источник


Ответы (1)


Эта проблема была решена для меня здесь: https://github.com/opencv/opencv/issues/12578#issuecomment-422304736

«нет loss3/classifier_retrain из Caffe-deploy-model.prototxt в Caffe-train-val-model.prototxt. Если вы пытались запустить эту модель несколько раз в Caffe, вы получите разные выходные данные для одного и того же ввода, потому что Caffe заполняет пропущенные веса случайным образом».

Авторское право (github.com/dkurt)

person peter bence    schedule 18.09.2018
comment
Публикация ответа здесь лучше, чем размещение ссылок. Ссылки могут исчезнуть через некоторое время. - person Ishara Madhawa; 18.09.2018