Caffe Net.Forward Ошибка при попытке обнаружения лица с помощью OpenCV - PullRequest
0 голосов
/ 05 июня 2019

Я вхожу в нейронные сети и попробовал некоторый пример кода с этой страницы Ссылка

Все отлично работает, пока я не дохожу до части

cv::Mat detection = net.forward("detection_out");
  • Я использую изображение RGB в качестве входных данных, но также пробовал каждый тип CV_.
  • Я пробовал разные файлы конфигурации / веса.(Я использую предоставленные файлы Ссылка )

Возможно, некоторые важные части кода:

Scalar meanVal = Scalar(104.0, 177.0, 123.0);
const size_t inWidth = 300;
const size_t inHeight = 300;
const double inScaleFactor = 1.0;
const float confidenceThreshold = 0.7;

#define CAFFE
    const std::string caffeConfigFile = "./deploy.prototxt";
    const std::string caffeWeightFile = "./res10_300x300_ssd_iter_140000_fp16.caffemodel";

,..
,..
,..

Mat inputBlob = cv::dnn::blobFromImage(image, inScaleFactor, cv::Size(inWidth, inHeight), meanVal, false, false, 5);
net.setInput(inputBlob, "data");
cv::Mat detection = net.forward("detection_out");

,.. 
,..
,..

int main(){

Mat image(YRes, XRes, CV_32F, PixelPointerOut);
.............................

Я получаю следующее сообщение об ошибке:

{msg="OpenCV(4.0.1-dev) C:\\OpenCV\\opencv-master\\modules\\dnn\\src\\layers\\convolution_layer.cpp:267: error: (-2:Unspecified error) Number of input channels should be multiple of 3 but got 1 in function 'cv::dnn::ConvolutionLayerImpl::getMemoryShapes"}

Заранее спасибо за любой ответ!

1 Ответ

0 голосов
/ 05 июня 2019

Попытка CV_8UC3 уже решила это без использования пустого имени слоя.Я был уверен, что попробовал это раньше, потому что CV_32FC3 не работал.Большое спасибо!

...