Guard shoe detector output parsing
This commit is contained in:
parent
14526d054b
commit
fa71ccb0d4
@ -323,10 +323,17 @@ private:
|
||||
std::vector<DetBox> dets;
|
||||
if (outputs.empty() || !outputs[0].data) return dets;
|
||||
|
||||
if (outputs[0].type != RKNN_TENSOR_FLOAT32 || outputs[0].size < sizeof(float) * 5) {
|
||||
LogWarn("[ai_shoe_det] unsupported output tensor type or size");
|
||||
return dets;
|
||||
}
|
||||
|
||||
// 假设 YOLOv8 输出格式: [num_boxes, 5] = x, y, w, h, conf
|
||||
// 实际格式可能不同,需要根据模型调整
|
||||
const float* data = reinterpret_cast<const float*>(outputs[0].data);
|
||||
int num_boxes = 8400; // YOLOv8 默认
|
||||
const size_t value_count = outputs[0].size / sizeof(float);
|
||||
const int num_boxes = static_cast<int>(std::min<size_t>(8400, value_count / 5));
|
||||
if (num_boxes <= 0) return dets;
|
||||
|
||||
float scale_x = static_cast<float>(win_w) / model_w_;
|
||||
float scale_y = static_cast<float>(win_h) / model_h_;
|
||||
|
||||
Loading…
Reference in New Issue
Block a user