Skip to content

Commit b5398ad

Browse files
technolojinpre-commit-ci[bot]
authored and
KhalilSelyan
committed
feat(multi_object_tracker): tracker refactoring (#7271)
* feat: separate filters Signed-off-by: Taekjin LEE <taekjin.lee@tier4.jp> * fix: object validator to modular Signed-off-by: Taekjin LEE <taekjin.lee@tier4.jp> * fix: replace xyzrpy covariance index Signed-off-by: Taekjin LEE <taekjin.lee@tier4.jp> * chore: refactor tracker class members Signed-off-by: Taekjin LEE <taekjin.lee@tier4.jp> * chore: refactor Signed-off-by: Taekjin LEE <taekjin.lee@tier4.jp> * chore: refactoring destructor Signed-off-by: Taekjin LEE <taekjin.lee@tier4.jp> * chore: refactoring getUpdatingObject Signed-off-by: Taekjin LEE <taekjin.lee@tier4.jp> * chore: refactoring object size checker Signed-off-by: Taekjin LEE <taekjin.lee@tier4.jp> * fix: debugger delay calculation order is fixed Signed-off-by: Taekjin LEE <taekjin.lee@tier4.jp> * fix: bicycle size update bug fix Signed-off-by: Taekjin LEE <taekjin.lee@tier4.jp> * fix: renamed message package Signed-off-by: Taekjin LEE <taekjin.lee@tier4.jp> * chore: refactoring Signed-off-by: Taekjin LEE <taekjin.lee@tier4.jp> * feat: object parameter class Signed-off-by: Taekjin LEE <taekjin.lee@tier4.jp> * style(pre-commit): autofix Signed-off-by: Taekjin LEE <taekjin.lee@tier4.jp> * chore: refactor includes Signed-off-by: Taekjin LEE <taekjin.lee@tier4.jp> * feat: initial impl. of object model Signed-off-by: Taekjin LEE <taekjin.lee@tier4.jp> * feat: impl. object model to bicycle, big, normal Signed-off-by: Taekjin LEE <taekjin.lee@tier4.jp> * feat: impl. object model to pedestrian Signed-off-by: Taekjin LEE <taekjin.lee@tier4.jp> * feat: impl. cont Signed-off-by: Taekjin LEE <taekjin.lee@tier4.jp> * style(pre-commit): autofix Signed-off-by: Taekjin LEE <taekjin.lee@tier4.jp> * chore: fix missing refactoring Signed-off-by: Taekjin LEE <taekjin.lee@tier4.jp> * fix: align unit of angles, yaw rates Signed-off-by: Taekjin LEE <taekjin.lee@tier4.jp> * fix: rename tier4_autoware_utils to autoware_universe_utils Signed-off-by: Taekjin LEE <taekjin.lee@tier4.jp> * fix: missing unit conversion Signed-off-by: Taekjin LEE <taekjin.lee@tier4.jp> * style(pre-commit): autofix Signed-off-by: Taekjin LEE <taekjin.lee@tier4.jp> * fix: sources Signed-off-by: Taekjin LEE <taekjin.lee@tier4.jp> * chore: Update include and import statements Signed-off-by: Taekjin LEE <taekjin.lee@tier4.jp> * fix: unit convert bug Signed-off-by: Taekjin LEE <taekjin.lee@tier4.jp> * fix: update to autoware::universe_utils Signed-off-by: Taekjin LEE <taekjin.lee@tier4.jp> * fix: mis-implementation of process noise Signed-off-by: Taekjin LEE <taekjin.lee@tier4.jp> --------- Signed-off-by: Taekjin LEE <taekjin.lee@tier4.jp> Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
1 parent f82b4ef commit b5398ad

32 files changed

+1036
-896
lines changed

perception/multi_object_tracker/include/multi_object_tracker/data_association/data_association.hpp

+7-6
Original file line numberDiff line numberDiff line change
@@ -19,19 +19,20 @@
1919
#ifndef MULTI_OBJECT_TRACKER__DATA_ASSOCIATION__DATA_ASSOCIATION_HPP_
2020
#define MULTI_OBJECT_TRACKER__DATA_ASSOCIATION__DATA_ASSOCIATION_HPP_
2121

22-
#include <list>
23-
#include <memory>
24-
#include <unordered_map>
25-
#include <vector>
26-
2722
#define EIGEN_MPL2_ONLY
23+
2824
#include "multi_object_tracker/data_association/solver/gnn_solver.hpp"
2925
#include "multi_object_tracker/tracker/tracker.hpp"
3026

3127
#include <Eigen/Core>
3228
#include <Eigen/Geometry>
3329

34-
#include <autoware_perception_msgs/msg/detected_objects.hpp>
30+
#include "autoware_perception_msgs/msg/detected_objects.hpp"
31+
32+
#include <list>
33+
#include <memory>
34+
#include <unordered_map>
35+
#include <vector>
3536

3637
class DataAssociation
3738
{

perception/multi_object_tracker/include/multi_object_tracker/debugger/debug_object.hpp

+4-4
Original file line numberDiff line numberDiff line change
@@ -15,15 +15,15 @@
1515
#ifndef MULTI_OBJECT_TRACKER__DEBUGGER__DEBUG_OBJECT_HPP_
1616
#define MULTI_OBJECT_TRACKER__DEBUGGER__DEBUG_OBJECT_HPP_
1717

18+
#include "autoware/universe_utils/ros/uuid_helper.hpp"
1819
#include "multi_object_tracker/tracker/model/tracker_base.hpp"
1920

20-
#include <autoware/universe_utils/ros/uuid_helper.hpp>
2121
#include <rclcpp/rclcpp.hpp>
2222

23-
#include "unique_identifier_msgs/msg/uuid.hpp"
24-
#include <autoware_perception_msgs/msg/detected_objects.hpp>
25-
#include <autoware_perception_msgs/msg/tracked_objects.hpp>
23+
#include "autoware_perception_msgs/msg/detected_objects.hpp"
24+
#include "autoware_perception_msgs/msg/tracked_objects.hpp"
2625
#include <geometry_msgs/msg/point.hpp>
26+
#include <unique_identifier_msgs/msg/uuid.hpp>
2727
#include <visualization_msgs/msg/marker_array.hpp>
2828

2929
#include <boost/functional/hash.hpp>

perception/multi_object_tracker/include/multi_object_tracker/debugger/debugger.hpp

+4-4
Original file line numberDiff line numberDiff line change
@@ -15,16 +15,16 @@
1515
#ifndef MULTI_OBJECT_TRACKER__DEBUGGER__DEBUGGER_HPP_
1616
#define MULTI_OBJECT_TRACKER__DEBUGGER__DEBUGGER_HPP_
1717

18+
#include "autoware/universe_utils/ros/debug_publisher.hpp"
19+
#include "autoware/universe_utils/ros/published_time_publisher.hpp"
1820
#include "multi_object_tracker/debugger/debug_object.hpp"
1921

20-
#include <autoware/universe_utils/ros/debug_publisher.hpp>
21-
#include <autoware/universe_utils/ros/published_time_publisher.hpp>
2222
#include <diagnostic_updater/diagnostic_updater.hpp>
2323
#include <diagnostic_updater/publisher.hpp>
2424
#include <rclcpp/rclcpp.hpp>
2525

26-
#include <autoware_perception_msgs/msg/detected_objects.hpp>
27-
#include <autoware_perception_msgs/msg/tracked_objects.hpp>
26+
#include "autoware_perception_msgs/msg/detected_objects.hpp"
27+
#include "autoware_perception_msgs/msg/tracked_objects.hpp"
2828
#include <geometry_msgs/msg/pose_stamped.hpp>
2929

3030
#include <list>

perception/multi_object_tracker/include/multi_object_tracker/multi_object_tracker_core.hpp

+2-2
Original file line numberDiff line numberDiff line change
@@ -27,8 +27,8 @@
2727

2828
#include <rclcpp/rclcpp.hpp>
2929

30-
#include <autoware_perception_msgs/msg/detected_objects.hpp>
31-
#include <autoware_perception_msgs/msg/tracked_objects.hpp>
30+
#include "autoware_perception_msgs/msg/detected_objects.hpp"
31+
#include "autoware_perception_msgs/msg/tracked_objects.hpp"
3232
#include <geometry_msgs/msg/pose_stamped.hpp>
3333

3434
#include <tf2/LinearMath/Transform.h>

perception/multi_object_tracker/include/multi_object_tracker/processor/processor.hpp

+2-2
Original file line numberDiff line numberDiff line change
@@ -19,8 +19,8 @@
1919

2020
#include <rclcpp/rclcpp.hpp>
2121

22-
#include <autoware_perception_msgs/msg/detected_objects.hpp>
23-
#include <autoware_perception_msgs/msg/tracked_objects.hpp>
22+
#include "autoware_perception_msgs/msg/detected_objects.hpp"
23+
#include "autoware_perception_msgs/msg/tracked_objects.hpp"
2424

2525
#include <list>
2626
#include <map>

perception/multi_object_tracker/include/multi_object_tracker/tracker/model/bicycle_tracker.hpp

+8-15
Original file line numberDiff line numberDiff line change
@@ -19,24 +19,18 @@
1919
#ifndef MULTI_OBJECT_TRACKER__TRACKER__MODEL__BICYCLE_TRACKER_HPP_
2020
#define MULTI_OBJECT_TRACKER__TRACKER__MODEL__BICYCLE_TRACKER_HPP_
2121

22+
#include "kalman_filter/kalman_filter.hpp"
2223
#include "multi_object_tracker/tracker/model/tracker_base.hpp"
2324
#include "multi_object_tracker/tracker/motion_model/bicycle_motion_model.hpp"
24-
25-
#include <kalman_filter/kalman_filter.hpp>
25+
#include "multi_object_tracker/tracker/object_model/object_model.hpp"
2626

2727
class BicycleTracker : public Tracker
2828
{
2929
private:
3030
autoware_perception_msgs::msg::DetectedObject object_;
3131
rclcpp::Logger logger_;
3232

33-
private:
34-
struct EkfParams
35-
{
36-
double r_cov_x;
37-
double r_cov_y;
38-
double r_cov_yaw;
39-
} ekf_params_;
33+
object_model::ObjectModel object_model_ = object_model::bicycle;
4034

4135
double z_;
4236

@@ -48,9 +42,7 @@ class BicycleTracker : public Tracker
4842
};
4943
BoundingBox bounding_box_;
5044

51-
private:
5245
BicycleMotionModel motion_model_;
53-
const char DIM = motion_model_.DIM;
5446
using IDX = BicycleMotionModel::IDX;
5547

5648
public:
@@ -63,15 +55,16 @@ class BicycleTracker : public Tracker
6355
bool measure(
6456
const autoware_perception_msgs::msg::DetectedObject & object, const rclcpp::Time & time,
6557
const geometry_msgs::msg::Transform & self_transform) override;
66-
autoware_perception_msgs::msg::DetectedObject getUpdatingObject(
67-
const autoware_perception_msgs::msg::DetectedObject & object,
68-
const geometry_msgs::msg::Transform & self_transform);
6958
bool measureWithPose(const autoware_perception_msgs::msg::DetectedObject & object);
7059
bool measureWithShape(const autoware_perception_msgs::msg::DetectedObject & object);
7160
bool getTrackedObject(
7261
const rclcpp::Time & time,
7362
autoware_perception_msgs::msg::TrackedObject & object) const override;
74-
virtual ~BicycleTracker() {}
63+
64+
private:
65+
autoware_perception_msgs::msg::DetectedObject getUpdatingObject(
66+
const autoware_perception_msgs::msg::DetectedObject & object,
67+
const geometry_msgs::msg::Transform & self_transform) const;
7568
};
7669

7770
#endif // MULTI_OBJECT_TRACKER__TRACKER__MODEL__BICYCLE_TRACKER_HPP_

perception/multi_object_tracker/include/multi_object_tracker/tracker/model/big_vehicle_tracker.hpp

+9-16
Original file line numberDiff line numberDiff line change
@@ -19,25 +19,19 @@
1919
#ifndef MULTI_OBJECT_TRACKER__TRACKER__MODEL__BIG_VEHICLE_TRACKER_HPP_
2020
#define MULTI_OBJECT_TRACKER__TRACKER__MODEL__BIG_VEHICLE_TRACKER_HPP_
2121

22+
#include "kalman_filter/kalman_filter.hpp"
2223
#include "multi_object_tracker/tracker/model/tracker_base.hpp"
2324
#include "multi_object_tracker/tracker/motion_model/bicycle_motion_model.hpp"
24-
25-
#include <kalman_filter/kalman_filter.hpp>
25+
#include "multi_object_tracker/tracker/object_model/object_model.hpp"
2626

2727
class BigVehicleTracker : public Tracker
2828
{
2929
private:
3030
autoware_perception_msgs::msg::DetectedObject object_;
3131
rclcpp::Logger logger_;
3232

33-
private:
34-
struct EkfParams
35-
{
36-
double r_cov_x;
37-
double r_cov_y;
38-
double r_cov_yaw;
39-
double r_cov_vel;
40-
} ekf_params_;
33+
object_model::ObjectModel object_model_ = object_model::big_vehicle;
34+
4135
double velocity_deviation_threshold_;
4236

4337
double z_;
@@ -51,9 +45,7 @@ class BigVehicleTracker : public Tracker
5145
BoundingBox bounding_box_;
5246
Eigen::Vector2d tracking_offset_;
5347

54-
private:
5548
BicycleMotionModel motion_model_;
56-
const char DIM = motion_model_.DIM;
5749
using IDX = BicycleMotionModel::IDX;
5850

5951
public:
@@ -66,15 +58,16 @@ class BigVehicleTracker : public Tracker
6658
bool measure(
6759
const autoware_perception_msgs::msg::DetectedObject & object, const rclcpp::Time & time,
6860
const geometry_msgs::msg::Transform & self_transform) override;
69-
autoware_perception_msgs::msg::DetectedObject getUpdatingObject(
70-
const autoware_perception_msgs::msg::DetectedObject & object,
71-
const geometry_msgs::msg::Transform & self_transform);
7261
bool measureWithPose(const autoware_perception_msgs::msg::DetectedObject & object);
7362
bool measureWithShape(const autoware_perception_msgs::msg::DetectedObject & object);
7463
bool getTrackedObject(
7564
const rclcpp::Time & time,
7665
autoware_perception_msgs::msg::TrackedObject & object) const override;
77-
virtual ~BigVehicleTracker() {}
66+
67+
private:
68+
autoware_perception_msgs::msg::DetectedObject getUpdatingObject(
69+
const autoware_perception_msgs::msg::DetectedObject & object,
70+
const geometry_msgs::msg::Transform & self_transform);
7871
};
7972

8073
#endif // MULTI_OBJECT_TRACKER__TRACKER__MODEL__BIG_VEHICLE_TRACKER_HPP_

perception/multi_object_tracker/include/multi_object_tracker/tracker/model/multiple_vehicle_tracker.hpp

+1-1
Original file line numberDiff line numberDiff line change
@@ -19,11 +19,11 @@
1919
#ifndef MULTI_OBJECT_TRACKER__TRACKER__MODEL__MULTIPLE_VEHICLE_TRACKER_HPP_
2020
#define MULTI_OBJECT_TRACKER__TRACKER__MODEL__MULTIPLE_VEHICLE_TRACKER_HPP_
2121

22+
#include "kalman_filter/kalman_filter.hpp"
2223
#include "multi_object_tracker/tracker/model/big_vehicle_tracker.hpp"
2324
#include "multi_object_tracker/tracker/model/normal_vehicle_tracker.hpp"
2425
#include "multi_object_tracker/tracker/model/tracker_base.hpp"
2526

26-
#include <kalman_filter/kalman_filter.hpp>
2727
#include <rclcpp/time.hpp>
2828

2929
class MultipleVehicleTracker : public Tracker

perception/multi_object_tracker/include/multi_object_tracker/tracker/model/normal_vehicle_tracker.hpp

+9-16
Original file line numberDiff line numberDiff line change
@@ -19,25 +19,19 @@
1919
#ifndef MULTI_OBJECT_TRACKER__TRACKER__MODEL__NORMAL_VEHICLE_TRACKER_HPP_
2020
#define MULTI_OBJECT_TRACKER__TRACKER__MODEL__NORMAL_VEHICLE_TRACKER_HPP_
2121

22+
#include "kalman_filter/kalman_filter.hpp"
2223
#include "multi_object_tracker/tracker/model/tracker_base.hpp"
2324
#include "multi_object_tracker/tracker/motion_model/bicycle_motion_model.hpp"
24-
25-
#include <kalman_filter/kalman_filter.hpp>
25+
#include "multi_object_tracker/tracker/object_model/object_model.hpp"
2626

2727
class NormalVehicleTracker : public Tracker
2828
{
2929
private:
3030
autoware_perception_msgs::msg::DetectedObject object_;
3131
rclcpp::Logger logger_;
3232

33-
private:
34-
struct EkfParams
35-
{
36-
double r_cov_x;
37-
double r_cov_y;
38-
double r_cov_yaw;
39-
double r_cov_vel;
40-
} ekf_params_;
33+
object_model::ObjectModel object_model_ = object_model::normal_vehicle;
34+
4135
double velocity_deviation_threshold_;
4236

4337
double z_;
@@ -51,9 +45,7 @@ class NormalVehicleTracker : public Tracker
5145
BoundingBox bounding_box_;
5246
Eigen::Vector2d tracking_offset_;
5347

54-
private:
5548
BicycleMotionModel motion_model_;
56-
const char DIM = motion_model_.DIM;
5749
using IDX = BicycleMotionModel::IDX;
5850

5951
public:
@@ -66,15 +58,16 @@ class NormalVehicleTracker : public Tracker
6658
bool measure(
6759
const autoware_perception_msgs::msg::DetectedObject & object, const rclcpp::Time & time,
6860
const geometry_msgs::msg::Transform & self_transform) override;
69-
autoware_perception_msgs::msg::DetectedObject getUpdatingObject(
70-
const autoware_perception_msgs::msg::DetectedObject & object,
71-
const geometry_msgs::msg::Transform & self_transform);
7261
bool measureWithPose(const autoware_perception_msgs::msg::DetectedObject & object);
7362
bool measureWithShape(const autoware_perception_msgs::msg::DetectedObject & object);
7463
bool getTrackedObject(
7564
const rclcpp::Time & time,
7665
autoware_perception_msgs::msg::TrackedObject & object) const override;
77-
virtual ~NormalVehicleTracker() {}
66+
67+
private:
68+
autoware_perception_msgs::msg::DetectedObject getUpdatingObject(
69+
const autoware_perception_msgs::msg::DetectedObject & object,
70+
const geometry_msgs::msg::Transform & self_transform);
7871
};
7972

8073
#endif // MULTI_OBJECT_TRACKER__TRACKER__MODEL__NORMAL_VEHICLE_TRACKER_HPP_

perception/multi_object_tracker/include/multi_object_tracker/tracker/model/pass_through_tracker.hpp

+1-3
Original file line numberDiff line numberDiff line change
@@ -19,10 +19,9 @@
1919
#ifndef MULTI_OBJECT_TRACKER__TRACKER__MODEL__PASS_THROUGH_TRACKER_HPP_
2020
#define MULTI_OBJECT_TRACKER__TRACKER__MODEL__PASS_THROUGH_TRACKER_HPP_
2121

22+
#include "kalman_filter/kalman_filter.hpp"
2223
#include "tracker_base.hpp"
2324

24-
#include <kalman_filter/kalman_filter.hpp>
25-
2625
class PassThroughTracker : public Tracker
2726
{
2827
private:
@@ -43,7 +42,6 @@ class PassThroughTracker : public Tracker
4342
bool getTrackedObject(
4443
const rclcpp::Time & time,
4544
autoware_perception_msgs::msg::TrackedObject & object) const override;
46-
virtual ~PassThroughTracker() {}
4745
};
4846

4947
#endif // MULTI_OBJECT_TRACKER__TRACKER__MODEL__PASS_THROUGH_TRACKER_HPP_

perception/multi_object_tracker/include/multi_object_tracker/tracker/model/pedestrian_and_bicycle_tracker.hpp

+1-2
Original file line numberDiff line numberDiff line change
@@ -19,12 +19,11 @@
1919
#ifndef MULTI_OBJECT_TRACKER__TRACKER__MODEL__PEDESTRIAN_AND_BICYCLE_TRACKER_HPP_
2020
#define MULTI_OBJECT_TRACKER__TRACKER__MODEL__PEDESTRIAN_AND_BICYCLE_TRACKER_HPP_
2121

22+
#include "kalman_filter/kalman_filter.hpp"
2223
#include "multi_object_tracker/tracker/model/bicycle_tracker.hpp"
2324
#include "multi_object_tracker/tracker/model/pedestrian_tracker.hpp"
2425
#include "multi_object_tracker/tracker/model/tracker_base.hpp"
2526

26-
#include <kalman_filter/kalman_filter.hpp>
27-
2827
class PedestrianAndBicycleTracker : public Tracker
2928
{
3029
private:

perception/multi_object_tracker/include/multi_object_tracker/tracker/model/pedestrian_tracker.hpp

+8-15
Original file line numberDiff line numberDiff line change
@@ -19,10 +19,10 @@
1919
#ifndef MULTI_OBJECT_TRACKER__TRACKER__MODEL__PEDESTRIAN_TRACKER_HPP_
2020
#define MULTI_OBJECT_TRACKER__TRACKER__MODEL__PEDESTRIAN_TRACKER_HPP_
2121

22+
#include "kalman_filter/kalman_filter.hpp"
2223
#include "multi_object_tracker/tracker/model/tracker_base.hpp"
2324
#include "multi_object_tracker/tracker/motion_model/ctrv_motion_model.hpp"
24-
25-
#include <kalman_filter/kalman_filter.hpp>
25+
#include "multi_object_tracker/tracker/object_model/object_model.hpp"
2626

2727
// cspell: ignore CTRV
2828

@@ -32,13 +32,7 @@ class PedestrianTracker : public Tracker
3232
autoware_perception_msgs::msg::DetectedObject object_;
3333
rclcpp::Logger logger_;
3434

35-
private:
36-
struct EkfParams
37-
{
38-
double r_cov_x;
39-
double r_cov_y;
40-
double r_cov_yaw;
41-
} ekf_params_;
35+
object_model::ObjectModel object_model_ = object_model::pedestrian;
4236

4337
double z_;
4438

@@ -56,9 +50,7 @@ class PedestrianTracker : public Tracker
5650
BoundingBox bounding_box_;
5751
Cylinder cylinder_;
5852

59-
private:
6053
CTRVMotionModel motion_model_;
61-
const char DIM = motion_model_.DIM;
6254
using IDX = CTRVMotionModel::IDX;
6355

6456
public:
@@ -71,15 +63,16 @@ class PedestrianTracker : public Tracker
7163
bool measure(
7264
const autoware_perception_msgs::msg::DetectedObject & object, const rclcpp::Time & time,
7365
const geometry_msgs::msg::Transform & self_transform) override;
74-
autoware_perception_msgs::msg::DetectedObject getUpdatingObject(
75-
const autoware_perception_msgs::msg::DetectedObject & object,
76-
const geometry_msgs::msg::Transform & self_transform);
7766
bool measureWithPose(const autoware_perception_msgs::msg::DetectedObject & object);
7867
bool measureWithShape(const autoware_perception_msgs::msg::DetectedObject & object);
7968
bool getTrackedObject(
8069
const rclcpp::Time & time,
8170
autoware_perception_msgs::msg::TrackedObject & object) const override;
82-
virtual ~PedestrianTracker() {}
71+
72+
private:
73+
autoware_perception_msgs::msg::DetectedObject getUpdatingObject(
74+
const autoware_perception_msgs::msg::DetectedObject & object,
75+
const geometry_msgs::msg::Transform & self_transform) const;
8376
};
8477

8578
#endif // MULTI_OBJECT_TRACKER__TRACKER__MODEL__PEDESTRIAN_TRACKER_HPP_

perception/multi_object_tracker/include/multi_object_tracker/tracker/model/tracker_base.hpp

+3-3
Original file line numberDiff line numberDiff line change
@@ -28,8 +28,8 @@
2828

2929
#include "autoware_perception_msgs/msg/detected_object.hpp"
3030
#include "autoware_perception_msgs/msg/tracked_object.hpp"
31-
#include "geometry_msgs/msg/point.hpp"
32-
#include "unique_identifier_msgs/msg/uuid.hpp"
31+
#include <geometry_msgs/msg/point.hpp>
32+
#include <unique_identifier_msgs/msg/uuid.hpp>
3333

3434
#include <vector>
3535

@@ -54,7 +54,7 @@ class Tracker
5454
const rclcpp::Time & time,
5555
const std::vector<autoware_perception_msgs::msg::ObjectClassification> & classification,
5656
const size_t & channel_size);
57-
virtual ~Tracker() {}
57+
virtual ~Tracker() = default;
5858

5959
void initializeExistenceProbabilities(
6060
const uint & channel_index, const float & existence_probability);

0 commit comments

Comments
 (0)