32 lines
877 B
C++
32 lines
877 B
C++
#pragma once
|
||
#include "types.hpp"
|
||
|
||
// NanoDetHeatV4 检测结果
|
||
struct DetectBox {
|
||
int cls; // 0=红绿灯, 1=锥桶, 2=人行道
|
||
float conf; // 置信度 [0,1]
|
||
float cx, cy; // 中心像素坐标 (160×120)
|
||
float w, h; // 宽高像素
|
||
};
|
||
|
||
// 初始化模型, 加载权重
|
||
// weight_path: nanodet.bin 路径
|
||
// 返回 true 成功
|
||
bool model_init(const char* weight_path);
|
||
|
||
// 运行推理, 返回检测框数量
|
||
// bgr: RGB 图像数据 (H×W×3, uint8, [0,255])
|
||
// w, h: 图像尺寸 (必须 160×120)
|
||
// boxes: 输出检测框数组
|
||
// max: 最大检测框数
|
||
// th: 置信度阈值 (推荐 0.6~0.8)
|
||
int model_detect(const uint8* bgr, int w, int h,
|
||
DetectBox* boxes, int max,
|
||
float th);
|
||
|
||
// 释放模型内存
|
||
void model_deinit();
|
||
|
||
// 模型就绪标志
|
||
bool model_ready();
|