Изменение размера изображения на GPU медленнее, чем cv :: resize - PullRequest
0 голосов
/ 09 ноября 2019

Я изменяю размеры этой тестовой картинки:

Mat im = Mat::zeros(Size(832*3,832*3),CV_8UC3);
putText(im,"HI THERE",Point2i(10,90),1,7,Scalar(255,255,255),2);

по стандарту

cv::resize(im,out,Size(416,416),0,0,INTER_NEAREST);

и по версии CUDA изменения размера:

static void gpuResize(Mat in, Mat &out){
    double k = in.cols/416.;
    cuda::GpuMat gpuInImage;
    cuda::GpuMat gpuOutImage;
    gpuInImage.upload(in);
    const Size2i &newSize = Size(416, in.rows / k);
    //cout << "newSize " << newSize<< endl;
    cuda::resize(gpuInImage, gpuOutImage, newSize,INTER_NEAREST);
    gpuOutImage.download(out);
}

Время измерения показывает, чтоcv :: resize в 25 раз быстрее. Что я делаю неправильно? Я на видеокарте GTX1080ti, но такую ​​же ситуацию наблюдаю и на Jetson NANO. Может быть, есть какие-то альтернативные методы для изменения размера изображения быстрее, чем cv :: resize с аппаратным ускорением nvidia?

...