-
Notifications
You must be signed in to change notification settings - Fork 35
feat(multi_object_tracker): cherry-pick multi object tracker from AWF #2065
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: beta/v0.44
Are you sure you want to change the base?
Conversation
…uncertainty (autowarefoundation#10378) * preparation Signed-off-by: Taekjin LEE <[email protected]> * feat(autoware_multi_object_tracker): enhance matrix initialization and add debug logging for tracker removal Signed-off-by: Taekjin LEE <[email protected]> * feat(autoware_multi_object_tracker): integrate max distance matrix for tracker removal logic Signed-off-by: Taekjin LEE <[email protected]> * refactor(autoware_multi_object_tracker): remove debug logging for tracker removal process Signed-off-by: Taekjin LEE <[email protected]> style(pre-commit): autofix Signed-off-by: Taekjin LEE <[email protected]> * refactor(autoware_multi_object_tracker): remove unused string include in association.cpp Signed-off-by: Taekjin LEE <[email protected]> * refactor(autoware_multi_object_tracker): remove commented debug logging in association.cpp Signed-off-by: Taekjin LEE <[email protected]> * refactor(autoware_multi_object_tracker): remove distance_threshold parameter and update related configurations Signed-off-by: Taekjin LEE <[email protected]> * refactor(tracker): implement isConfidentTracker method for object confidence assessment Signed-off-by: Taekjin LEE <[email protected]> * refactor(tracker): rename isConfidentTracker to isConfident and add isExpired method for object status management Signed-off-by: Taekjin LEE <[email protected]> * refactor(tracker): enhance updateWithoutMeasurement and isExpired methods for improved object status management Signed-off-by: Taekjin LEE <[email protected]> * refactor(tracker): adjust confidence and expiration thresholds for improved tracking accuracy Signed-off-by: Taekjin LEE <[email protected]> * refactor(tracker): add position covariance methods and improve confidence assessment logic Signed-off-by: Taekjin LEE <[email protected]> * refactor(tracker): add total existence probability calculation and improve debug output Signed-off-by: Taekjin LEE <[email protected]> * refactor(tracker): enhance debug output for expiration checks and adjust minor axis threshold Signed-off-by: Taekjin LEE <[email protected]> * refactor(tracker): simplify overlap removal logic by introducing canRemoveOverlappedTarget method refactor(tracker): improve code readability by formatting and enhancing overlap removal logic refactor(tracker): enhance UUID handling and improve confidence checks in tracker logic refactor(tracker): improve debug output for confidence and expiration checks Signed-off-by: Taekjin LEE <[email protected]> * refactor(tracker): optimize overlap removal by using list iteration instead of sorting Signed-off-by: Taekjin LEE <[email protected]> * refactor(tracker): simplify existence probability retrieval and enhance code clarity Signed-off-by: Taekjin LEE <[email protected]> * refactor(debugger): streamline existence probability retrieval in TrackerObjectDebugger Signed-off-by: Taekjin LEE <[email protected]> * feat(tracker): add time parameter to position covariance and confidence checks Signed-off-by: Taekjin LEE <[email protected]> * refactor(tracker): enhance confidence checks by refining covariance thresholds and improving debug output Signed-off-by: Taekjin LEE <[email protected]> style(pre-commit): autofix Signed-off-by: Taekjin LEE <[email protected]> refactor(tracker): comment out debug messages in confidence and expiration checks for cleaner output refactor(processor): simplify object retrieval in removeOverlappedTracker method Signed-off-by: Taekjin LEE <[email protected]> * refactor(tracker): remove redundant debug messages and enhance expiration checks with constants Signed-off-by: Taekjin LEE <[email protected]> * fix: set default value if the given existence probability is almost zero Signed-off-by: Taekjin LEE <[email protected]> * feat: merge overlapped trackers probability Signed-off-by: Taekjin LEE <[email protected]> * refactor(tracker): improve existence probability updates and add debug output for probability vectors Signed-off-by: Taekjin LEE <[email protected]> * style(pre-commit): autofix Signed-off-by: Taekjin LEE <[email protected]> * refactor(tracker): rename updateExistenceProbabilities to mergeExistenceProbabilities and simplify logic Signed-off-by: Taekjin LEE <[email protected]> * refactor(tracker): remove debug output from mergeOverlappedTracker function Signed-off-by: Taekjin LEE <[email protected]> * refactor(tracker): remove debug output for existence probabilities in mergeOverlappedTracker function Signed-off-by: Taekjin LEE <[email protected]> * refactor(tracker): include string header and simplify UUID string retrieval Signed-off-by: Taekjin LEE <[email protected]> * refactor(tracker): rename normalize parameter to clamp and update related logic Signed-off-by: Taekjin LEE <[email protected]> * refactor(tracker): rename EXPIRED_CONFIDENCE_THRESHOLD to EXPIRED_PROBABILITY_THRESHOLD for clarity Signed-off-by: Taekjin LEE <[email protected]> * refactor(tracker): add comment to clarify target removal condition in canMergeOverlappedTarget function Signed-off-by: Taekjin LEE <[email protected]> * style(pre-commit): autofix * refactor(tracker): add validation checks for covariance matrix in getPositionCovarianceEigenSq and getPositionCovarianceSizeSq functions Signed-off-by: Taekjin LEE <[email protected]> * refactor(tracker): improve covariance validation logging in getPositionCovarianceEigenSq and getPositionCovarianceSizeSq functions Signed-off-by: Taekjin LEE <[email protected]> * refactor(tracker): optimize iterator handling in mergeOverlappedTracker function Signed-off-by: Taekjin LEE <[email protected]> * refactor(types): change default_existence_probability type from double to float Signed-off-by: Taekjin LEE <[email protected]> * refactor(tracker): rename getPositionCovarianceSizeSq to getPositionCovarianceDeterminant for clarity Signed-off-by: Taekjin LEE <[email protected]> * refactor(tracker): update covariance thresholds to mitigate drawbacks Signed-off-by: Taekjin LEE <[email protected]> * refactor(tracker): adjust covariance thresholds for confidence and expiration checks Updated the covariance thresholds in the Tracker class to improve confidence and expiration logic, enhancing the accuracy of object tracking. Signed-off-by: Taekjin LEE <[email protected]> * fix: adjust existence probability threshold of expiration Signed-off-by: Taekjin LEE <[email protected]> * refactor(tracker): improve UUID formatting in tracker_base.hpp Updated the UUID formatting logic in the Tracker class to use a constant for the UUID size and ensure proper type casting, enhancing code clarity and maintainability. Signed-off-by: Taekjin LEE <[email protected]> * fix(types): cap existence probability to a maximum of 0.999 Added a check to ensure that the existence probability does not exceed 0.999, addressing potential issues with overly high values that may not be set correctly. Signed-off-by: Taekjin LEE <[email protected]> --------- Signed-off-by: Taekjin LEE <[email protected]> Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
…hold for data association (autowarefoundation#10648) * refactor(autoware_multi_object_tracker): update Mahalanobis distance threshold for data association Changed the Mahalanobis distance threshold from 3.035 to a new critical value of 3.717, corresponding to a 99.99% confidence level for improved accuracy in object tracking. Signed-off-by: Taekjin LEE <[email protected]> * style(pre-commit): autofix Signed-off-by: Taekjin LEE <[email protected]> * refactor(autoware_multi_object_tracker): rename Mahalanobis distance threshold for clarity Updated the Mahalanobis distance threshold variable name to better reflect its purpose in the data association process, enhancing code readability. Signed-off-by: Taekjin LEE <[email protected]> --------- Signed-off-by: Taekjin LEE <[email protected]> Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
… true positive rate Signed-off-by: Ericpotato <[email protected]>
Thank you for contributing to the Autoware project! 🚧 If your pull request is in progress, switch it to draft mode. Please ensure:
|
@Ericpotato |
|
@technolojin Thanks again for your patience! |
@technolojin |
After this cherry-pick, pedestrian recognition becomes weak(?) in the actual vehicle. 😭 |
Description
This PR cherry-picked changes from the following AWF PRs:
feat(autoware_multi_object_tracker): tracker confidence check by its uncertainty
fix(autoware_multi_object_tracker): update Mahalanobis distance threshold for data association
and changed the parameter
constexpr double EXPIRED_PROBABILITY_THRESHOLD
from0.015
to0.0075
It performed well in experiments. and effectively reduce false positive rate.
Note
There is another PR of multi_object_tracker for branch beta/v0.41, link
But cherry-pick tha PR to beta/v0.44 caused a lot conflict and some contents are not fully verified in road tests
So this part might need to be updated later.
Related links
Parent Issue:
How was this PR tested?
TIER IV Internal Link
Notes for reviewers
None.
Interface changes
None.
Effects on system behavior
None.