我正在尝试使用tensorrt5.0来优化openpose的coco模型。我想输入图片。但是我无法获得正确的结果,我想我的输入数据有问题。
这是我的输入代码: 加载图像文件并转换为CV_32F:
Mat image = cv::imread("./image.jpg", cv::IMREAD_COLOR);
cv::resize(image, image, cv::Size(inputW, inputH));
image.convertTo(image, CV_32F, 1 / 256.f, -0.5);
然后获取FLOAT像素数据并保存:
float *data = (float *)malloc(inputC * inputH * inputW * sizeof(float));
int height = image.rows;
int width = image.cols;
int nc = image.channels();
for (size_t nrow = 0; nrow < image.rows; nrow++)
{
float* row_data = image.ptr<float>(nrow);
for (size_t ncol = 0; ncol < image.cols * image.channels(); ncol++)
{
int index = nrow * image.cols * image.channels() + ncol;
data[index] = row_data[ncol];
}
}
最后,将此数据放入缓冲区并进行推断:
float* hostInputBuffer = static_cast<float*>(buffers.getHostBuffer(inputTensorName));
for (int i = 0; i < inputC * inputH * inputW; i++)
{
hostInputBuffer[i] = data[i];
}
他们有什么问题吗?