Skip to content
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

3D object tracking #7161

Open
3 of 6 tasks
beginningfan opened this issue May 29, 2024 · 8 comments · May be fixed by #9298
Open
3 of 6 tasks

3D object tracking #7161

beginningfan opened this issue May 29, 2024 · 8 comments · May be fixed by #9298
Assignees
Labels
component:perception Advanced sensor data processing and environment understanding. (auto-assigned) status:stale Inactive or outdated issues. (auto-assigned)

Comments

@beginningfan
Copy link
Contributor

Checklist

  • I've read the contribution guidelines.
  • I've searched other issues and no duplicate issues were found.
  • I've agreed with the maintainers that I can plan this task.

Description

Currently, the tracking module in Autoware is 2D, which only considers the information of the xy plane and cannot adapt to situations such as uphill and downhill. This task aims to design a 3D tracking module to solve the problem of poor 2D performance.

Purpose

Design a 3D tracker to improve tracking performance

Possible approaches

Autoware also has a bytetracker. I will try the effect of this tracker. If it works well, I will transform this tracker into 3D.

Definition of done

  • Testing the existing bytetracker
  • Add a new 3D tracking package
  • Input and output result adaptation to Autoware topics
@beginningfan beginningfan added the component:perception Advanced sensor data processing and environment understanding. (auto-assigned) label May 29, 2024
@beginningfan beginningfan self-assigned this May 29, 2024
@idorobotics idorobotics moved this to Todo in Autoware Labs Jun 11, 2024
@liuXinGangChina liuXinGangChina moved this from Todo to In Progress in Autoware Labs Jul 2, 2024
@beginningfan
Copy link
Contributor Author

Sorry for the late update. I was unable to test bytetracker because the yolox module could not generate roi.
Today I tested the tracking effect of bytetracker. Even when facing fast-moving pedestrians or being temporarily blocked, it still has a relatively good tracking effect. ID switching will only occur when the target's movement direction changes significantly or disappears for a long time.
There is the test video
Next I will try to modify the tracking logic of bytetracker to 3D and add it to multi_object_tracker

@beginningfan
Copy link
Contributor Author

Basic tracking functions have been implemented, but there are still some problems.

  1. Information such as speed and heading angle has not been added.
  2. The truck cannot be tracked (for unknown reasons)

This is a test video. The blue bbox is the detected target and the green bbox is the tracked target.

2024-07-24.09.52.29.mp4

@alanmengg
Copy link
Contributor

we have add uuid to track objects, and currently working on solving yaw problem.

test.mp4

@alanmengg
Copy link
Contributor

alanmengg commented Aug 28, 2024

the yaw problem has been partially solved in tracking process, as showed in picture below, orientation of turning object is correct in first picture, as second picture is before yaw correction.
Screenshot from 2024-08-28 13-47-06
Screenshot from 2024-08-28 13-50-49
still the object orientation will shake if the detection yaw is noisy, we will try to stabilize yaw tracking process.

@alanmengg
Copy link
Contributor

alanmengg commented Sep 4, 2024

After frame-wise analysis, we discover that yaw is caused by centerpoint detection often give inconsistent yaw between two frames, which has about 180 degree difference. as showed below pitctures(track confidence is draw on left front point)
Screenshot from 2024-09-04 11-51-04
Screenshot from 2024-09-04 11-50-54
To resolve the problem, we think add ego velocity into tracking process which can estimation absolute velocity of track, then yaw estimation can be inferred from it.

@alanmengg
Copy link
Contributor

There are a lot of low confidence(<0.5) but real object which detected by centerpoint.
To track those objects, we modified bytetrack a little by two frame objects association in initilization.
As showed in below video, the bus has been tracked.
https://github.com/user-attachments/assets/89f8e2e9-912d-4f44-bfd3-7524f047a681

@cyn-liu
Copy link
Contributor

cyn-liu commented Nov 5, 2024

After frame-wise analysis, we discover that yaw is caused by centerpoint detection often give inconsistent yaw between two frames, which has about 180 degree difference. as showed below pitctures(track confidence is draw on left front point) Screenshot from 2024-09-04 11-51-04 Screenshot from 2024-09-04 11-50-54 To resolve the problem, we think add ego velocity into tracking process which can estimation absolute velocity of track, then yaw estimation can be inferred from it.

If there is a 180 degree difference in the yaw of the same tracking target between two frames, the algorithm will correct the yaw based on the difference between the observed yaw and the predicted yaw each time the tracking trajectory is updated.

Copy link

stale bot commented Jan 4, 2025

This pull request has been automatically marked as stale because it has not had recent activity.

@stale stale bot added the status:stale Inactive or outdated issues. (auto-assigned) label Jan 4, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
component:perception Advanced sensor data processing and environment understanding. (auto-assigned) status:stale Inactive or outdated issues. (auto-assigned)
Projects
Status: In Progress
Development

Successfully merging a pull request may close this issue.

3 participants