onnxruntime cpp yolo-cls fp16 fix (#9412)

pull/9386/head^2
Myyura 8 months ago committed by GitHub
parent 03d0ffd9f5
commit 1ca14a9ad0
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
  1. 14
      examples/YOLOv8-ONNXRuntime-CPP/inference.cpp
  2. 1
      examples/YOLOv8-ONNXRuntime-CPP/inference.h

@ -301,12 +301,24 @@ char* YOLO_V8::TensorProcess(clock_t& starttime_1, cv::Mat& iImg, N& blob, std::
break; break;
} }
case YOLO_CLS: case YOLO_CLS:
case YOLO_CLS_HALF:
{ {
cv::Mat rawData;
if (modelType == YOLO_CLS) {
// FP32
rawData = cv::Mat(1, this->classes.size(), CV_32F, output);
} else {
// FP16
rawData = cv::Mat(1, this->classes.size(), CV_16F, output);
rawData.convertTo(rawData, CV_32F);
}
float *data = (float *) rawData.data;
DL_RESULT result; DL_RESULT result;
for (int i = 0; i < this->classes.size(); i++) for (int i = 0; i < this->classes.size(); i++)
{ {
result.classId = i; result.classId = i;
result.confidence = output[i]; result.confidence = data[i];
oResult.push_back(result); oResult.push_back(result);
} }
break; break;

@ -29,6 +29,7 @@ enum MODEL_TYPE
//FLOAT16 MODEL //FLOAT16 MODEL
YOLO_DETECT_V8_HALF = 4, YOLO_DETECT_V8_HALF = 4,
YOLO_POSE_V8_HALF = 5, YOLO_POSE_V8_HALF = 5,
YOLO_CLS_HALF = 6
}; };

Loading…
Cancel
Save