Opencv DNN净尺寸1x1

2024-09-28 15:34:39 发布

您现在位置:Python中文网/ 问答频道 /正文

我在Tensorflow中实现了一个神经网络来分割图像。该网络非常简单,仅使用Cov2D、MaxPooling和UpSampling2D

规格如下:

  • Tensorflow:1.14.0
  • Keras:2.2.4-tf
  • Ubuntu:18.04.4 LTS

网络一旦被训练,我就把它转换成PB,从Windows PC.和OpenCV上可以从C++和C++读取它。

  • 温德斯10
  • Opencv:4.2.0
<>我使用的C++代码是:

cv::Mat imgOriginal = cv::imread(pathOriginal, 1);//1280x1024 image to segment.

#include <opencv2/dnn/dnn.hpp>
cv::dnn::Net MODEL = cv::dnn::readNetFromTensorflow("model.pb");//Load model.
MODEL.setInput(cv::dnn::blobFromImage(imgOriginal, 1/255., cv::Size(64, 64)));//Pass image to Net.
cv::Mat m = MODEL.forward();
cout << m.size();

Print Output: [1x1]

我不明白为什么输出是这个大小[1x1]。我做错了什么


Tags: to图像image网络netmodeltensorflow神经网络
1条回答
网友
1楼 · 发布于 2024-09-28 15:34:39

在.forward()之后需要中间步骤。这种风格仍将保留:

m = MODEL.forward();
cv::Mat detectionMat(m.size[2], m.size[3], CV_32FC1, m.ptr());

现在detectionMat具有正确的输出尺寸

相关问题 更多 >