|
@@ -38,19 +38,29 @@ void TrackNode::work()
|
|
|
return obj;
|
|
|
}
|
|
|
});
|
|
|
- std::vector<STrack> output_stracks = tracker_->update(objects);
|
|
|
- // ***** 详细打印 tracker_->update() 的输出 *****
|
|
|
- printf("节点 %s: tracker_->update() 返回了 %zu 个 STrack:\n", name_.c_str(), output_stracks.size());
|
|
|
- for (size_t i = 0; i < output_stracks.size(); ++i) {
|
|
|
- const auto& track = output_stracks[i];
|
|
|
- const std::vector<float>& tlwh = track.tlwh;
|
|
|
- printf(" Track %zu: ID=%d, Score=%.2f, TLWH=[%.1f, %.1f, %.1f, %.1f]\n",
|
|
|
+ // ***** 关键调试打印:检查输入给 tracker 的 objects *****
|
|
|
+ printf("节点 %s: tracker_->update() 的输入 objects (共 %zu 个):\n", name_.c_str(), objects.size());
|
|
|
+ for (size_t i = 0; i < objects.size(); ++i) {
|
|
|
+ const auto& obj = objects[i];
|
|
|
+ printf(" Object %zu: Prob=%.2f, Rect=[%.1f, %.1f, %.1f, %.1f]\n",
|
|
|
i,
|
|
|
- track.track_id,
|
|
|
- track.score,
|
|
|
- tlwh[0], tlwh[1], tlwh[2], tlwh[3]);
|
|
|
+ obj.prob, // 确保 Object 结构里有 score/prob
|
|
|
+ obj.rect.x, obj.rect.y, obj.rect.width, obj.rect.height); // 确保 Object 结构里有 rect
|
|
|
}
|
|
|
// ***********************************************
|
|
|
+ std::vector<STrack> output_stracks = tracker_->update(objects);
|
|
|
+ // ***** 详细打印 tracker_->update() 的输出 *****
|
|
|
+ // printf("节点 %s: tracker_->update() 返回了 %zu 个 STrack:\n", name_.c_str(), output_stracks.size());
|
|
|
+ // for (size_t i = 0; i < output_stracks.size(); ++i) {
|
|
|
+ // const auto& track = output_stracks[i];
|
|
|
+ // const std::vector<float>& tlwh = track.tlwh;
|
|
|
+ // printf(" Track %zu: ID=%d, Score=%.2f, TLWH=[%.1f, %.1f, %.1f, %.1f]\n",
|
|
|
+ // i,
|
|
|
+ // track.track_id,
|
|
|
+ // track.score,
|
|
|
+ // tlwh[0], tlwh[1], tlwh[2], tlwh[3]);
|
|
|
+ // }
|
|
|
+ // ***********************************************
|
|
|
|
|
|
// 然后才开始添加到 metaData->track_boxes
|
|
|
metaData->track_boxes.clear(); // 确保清空 (或者你已确认不需要)
|