Apollo  v5.5.0
Open source self driving car software
distance_collection.h
Go to the documentation of this file.
1 /******************************************************************************
2  * Copyright 2018 The Apollo Authors. All Rights Reserved.
3  *
4  * Licensed under the Apache License, Version 2.0 (the "License");
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  * http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  *****************************************************************************/
16 #pragma once
17 
20 
21 namespace apollo {
22 namespace perception {
23 namespace lidar {
24 
25 // @brief: compute location distance for given track & object
26 // @params [in]: object for computing distance
27 // @params [in]: predicted state of track for computing distance
28 // @params [in]: new detected object for computing distance
29 // @params [in]: time interval from last matching
30 // @return: distance
31 float LocationDistance(const TrackedObjectConstPtr& last_object,
32  const Eigen::VectorXf& track_predict,
33  const TrackedObjectConstPtr& new_object,
34  const double time_diff);
35 
36 // @brief: compute direction distance for given track & object
37 // @params [in]: object for computing distance
38 // @params [in]: predicted state of track for computing distance
39 // @params [in]: new detected object for computing distance
40 // @params [in]: time interval from last matching
41 // @return distance
42 float DirectionDistance(const TrackedObjectConstPtr& last_object,
43  const Eigen::VectorXf& track_predict,
44  const TrackedObjectConstPtr& new_object,
45  const double time_diff);
46 
47 // @brief: compute bbox size distance for given track & object
48 // @params [in]: object for computing distance
49 // @params [in]: predicted state of track for computing distance
50 // @params [in]: new detected object for computing distance
51 // @params [in]: time interval from last matching
52 // @return distance
53 float BboxSizeDistance(const TrackedObjectConstPtr& last_object,
54  const Eigen::VectorXf& track_predict,
55  const TrackedObjectConstPtr& new_object,
56  const double time_diff);
57 
58 // @brief: compute point num distance for given track & object
59 // @params [in]: object for computing distance
60 // @params [in]: predicted state of track for computing distance
61 // @params [in]: new detected object for computing distance
62 // @params [in]: time interval from last matching
63 // @return distance
64 float PointNumDistance(const TrackedObjectConstPtr& last_object,
65  const Eigen::VectorXf& track_predict,
66  const TrackedObjectConstPtr& new_object,
67  const double time_diff);
68 
69 // @brief: compute histogram distance for given track & object
70 // @params [in]: object for computing distance
71 // @params [in]: predicted state of track for computing distance
72 // @params [in]: new detected object for computing distance
73 // @params [in]: time interval from last matching
74 // @return distance
75 float HistogramDistance(const TrackedObjectConstPtr& last_object,
76  const Eigen::VectorXf& track_predict,
77  const TrackedObjectConstPtr& new_object,
78  const double time_diff);
79 
80 // @brief: compute centroid shift distance for object and background match
81 // @params [in]: object for computing distance
82 // @params [in]: unused
83 // @params [in]: new detected object for computing distance
84 // @params [in]: unused
85 // @return distance
86 float CentroidShiftDistance(const TrackedObjectConstPtr& last_object,
87  const Eigen::VectorXf& track_predict,
88  const TrackedObjectConstPtr& cur_obj,
89  const double time_diff);
90 
91 // @brief compute bbox iou distance for object and background match
92 // @params [in]: object for computing distance
93 // @params [in]: unused
94 // @params [in]: new detected object for computing distance
95 // @params [in]: unused
96 // @return distance
97 float BboxIouDistance(const TrackedObjectConstPtr& last_object,
98  const Eigen::VectorXf& track_predict,
99  const TrackedObjectConstPtr& cur_obj,
100  const double time_diff, double match_threshold);
101 
102 } // namespace lidar
103 } // namespace perception
104 } // namespace apollo
float DirectionDistance(const TrackedObjectConstPtr &last_object, const Eigen::VectorXf &track_predict, const TrackedObjectConstPtr &new_object, const double time_diff)
Definition: blob.h:72
float BboxSizeDistance(const TrackedObjectConstPtr &last_object, const Eigen::VectorXf &track_predict, const TrackedObjectConstPtr &new_object, const double time_diff)
float BboxIouDistance(const TrackedObjectConstPtr &last_object, const Eigen::VectorXf &track_predict, const TrackedObjectConstPtr &cur_obj, const double time_diff, double match_threshold)
float CentroidShiftDistance(const TrackedObjectConstPtr &last_object, const Eigen::VectorXf &track_predict, const TrackedObjectConstPtr &cur_obj, const double time_diff)
float HistogramDistance(const TrackedObjectConstPtr &last_object, const Eigen::VectorXf &track_predict, const TrackedObjectConstPtr &new_object, const double time_diff)
float PointNumDistance(const TrackedObjectConstPtr &last_object, const Eigen::VectorXf &track_predict, const TrackedObjectConstPtr &new_object, const double time_diff)
float LocationDistance(const TrackedObjectConstPtr &last_object, const Eigen::VectorXf &track_predict, const TrackedObjectConstPtr &new_object, const double time_diff)
std::shared_ptr< const TrackedObject > TrackedObjectConstPtr
Definition: tracked_object.h:153