@@ -759,6 +759,7 @@ Result YoloModelImpl::forwards(void *stream)
{
data::Box result_object_box(pbox[0], pbox[1], pbox[2], pbox[3], pbox[4], label);
result_object_box.label = class_names_[label];
+ // 后续class_id会被用来做追踪的id,这里给变成负数
result_object_box.class_id = label - class_names_.size();
if (model_type_ == ModelType::YOLO11POSE)
@@ -146,7 +146,7 @@ void DrawNode::handle_data(std::shared_ptr<meta::MetaData>& meta_data)
std::tuple<int, int, int, int> pbox = std::make_tuple(box.left, box.top, box.right, box.bottom);
int x, y;
std::string text;
- if (box.class_id > 0)
+ if (box.class_id >= 0)
text = str_format("%s %.2f id=%d", box.label.c_str(), box.score, box.class_id);
}
@@ -37,8 +37,6 @@ void InferNode::handle_data(std::shared_ptr<meta::MetaData>& meta_data)
auto result = std::get<data::BoxArray>(det_result);
for (auto& r : result)
- // 默认将id设置为-1,复用目标检测的id作为追踪的id, 只有经过追踪的目标才会设置id
- r.class_id = -1;
meta_data->boxes.push_back(r);