[решить] почему jetson-inference detectNet-> detect() возвращает 0 при вводе GpuMat
Я пытаюсь обнаружить объект в буфере изображения, например cv::GpuMat, с jetson detectNet::detect(), но он возвращает 0 объект, обнаруженный без ошибок при использовании loadImageRGBA() (эта функция загружает файл изображения, а не из буфера), поскольку ввод будет возвращать Обнаружен 1 объект
Я использую opencv 3.4.7 и последнюю версию jetson-inference
detectNet* net = detectNet::Create(netType);
cv::Mat frame;
const char* imagPath = "/opt/jetson-inference/data/002337.jpg";
frame = cv::imread(imagPath);
int imgWidth = frame.cols;
int imgHeight = frame.rows;
float* imgCPU = NULL;
float* imgCUDA1 = NULL;
cv::cuda::GpuMat cvCUDA();
cvCUDA.upload(frame);
if( !loadImageRGBA(imagPath, (float4**)&imgCPU, (float4**)&imgCUDA1, &imgWidth, &imgHeight) )
{
printf("failed to load image '%s'\n", "/opt/jetson-inference/data/002337.jpg");
return 0;
}
detectNet::Detection* detections = NULL;
cout<<"error 1"<<endl;
const int numDetections1 = net->Detect((float*)cvCUDA.data, imgWidth, imgHeight, &detections);
const int numDetections = net->Detect((float*)imgCUDA1, imgWidth, imgHeight, &detections);
cout<<"error 2"<<endl;
// // print out the detection results
cout<<numDetections1<<" "<<numDetections<<" objects detected\n"<<endl;
Ожидайте: 1 обнаружение 1 объекта, но текущая проблема: 0 1 обнаружение объекта
soluition: cv::cvtColor(src,dst,cv::BGR2RGBA) // просто конвертируем изображение в RGBA, потому что ввод тензора равен float4