Я пытаюсь использовать tenensrt 5.0 для оптимизации кокосовой модели openpose. Я хочу ввести изображение. Но я не смог получить правильный результат, думаю, что-то не так с моими входными данными.
это мой входной код:
Загрузите файл изображения и конвертируйте в 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];
}
Что-то не так с ними?