@@ -261,10 +261,16 @@ void MultiObjectTracker::onMeasurement(
261
261
(*itr)->predict (measurement_time);
262
262
}
263
263
264
+ /* filter by objects size before association */
265
+ autoware_auto_perception_msgs::msg::DetectedObjects filtered_objects;
266
+ autoware_auto_perception_msgs::msg::DetectedObjects unexpected_objects;
267
+ data_association_->filterMeasurementsBySize (
268
+ transformed_objects, filtered_objects, unexpected_objects);
269
+
264
270
/* global nearest neighbor */
265
271
std::unordered_map<int , int > direct_assignment, reverse_assignment;
266
272
Eigen::MatrixXd score_matrix = data_association_->calcScoreMatrix (
267
- transformed_objects , list_tracker_); // row : tracker, col : measurement
273
+ filtered_objects , list_tracker_); // row : tracker, col : measurement
268
274
data_association_->assign (score_matrix, direct_assignment, reverse_assignment);
269
275
270
276
/* tracker measurement update */
@@ -274,7 +280,7 @@ void MultiObjectTracker::onMeasurement(
274
280
if (direct_assignment.find (tracker_idx) != direct_assignment.end ()) { // found
275
281
(*(tracker_itr))
276
282
->updateWithMeasurement (
277
- transformed_objects .objects .at (direct_assignment.find (tracker_idx)->second ),
283
+ filtered_objects .objects .at (direct_assignment.find (tracker_idx)->second ),
278
284
measurement_time, *self_transform);
279
285
} else { // not found
280
286
(*(tracker_itr))->updateWithoutMeasurement ();
@@ -287,12 +293,12 @@ void MultiObjectTracker::onMeasurement(
287
293
sanitizeTracker (list_tracker_, measurement_time);
288
294
289
295
/* new tracker */
290
- for (size_t i = 0 ; i < transformed_objects .objects .size (); ++i) {
296
+ for (size_t i = 0 ; i < filtered_objects .objects .size (); ++i) {
291
297
if (reverse_assignment.find (i) != reverse_assignment.end ()) { // found
292
298
continue ;
293
299
}
294
300
std::shared_ptr<Tracker> tracker =
295
- createNewTracker (transformed_objects .objects .at (i), measurement_time, *self_transform);
301
+ createNewTracker (filtered_objects .objects .at (i), measurement_time, *self_transform);
296
302
if (tracker) list_tracker_.push_back (tracker);
297
303
}
298
304
0 commit comments