-
Notifications
You must be signed in to change notification settings - Fork 650
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
feat(shape_estimation): add ml shape estimation #7860
feat(shape_estimation): add ml shape estimation #7860
Conversation
Thank you for contributing to the Autoware project! 🚧 If your pull request is in progress, switch it to draft mode. Please ensure:
|
@kaancolak This is really amazing! Could you please describe the mechanism and node parameters in the README? If there is a learning method, please also include the user's learning procedure. |
Thank you @yukkysaito -san, I will prepare documentation about model details and also how to train the model/convert to ONNX. |
fd59254
to
460fb6e
Compare
I updated the readme file that added retraining/deploying guidelines. Please check it out and feel free to share your thoughts. This is the training repository, maybe we can move it under Autoware foundation : |
b31afb7
to
a13a441
Compare
Could you review or assign a proper reviewer? |
Hi. @kaancolak Test with sample rosbagI built and checked your ml based shape estimation with sample rosbag and confirmed it works.
sample objects after fitting is like following:
DiscussionI have several opinion and question.
|
perception/shape_estimation/config/shape_estimation_ml.param.yaml
Outdated
Show resolved
Hide resolved
|
||
~TrtShapeEstimator(); | ||
|
||
bool inference(const DetectedObjectsWithFeature & input, DetectedObjectsWithFeature & output); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
[just a comment]
I think it's better to share interface between ml and non-ml shape estimation in the future update.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I completely agree with that. It will make the package better as a design.
Signed-off-by: Kaan Çolak <kaancolak95@gmail.com>
a13a441
to
d1213d9
Compare
@YoshiRi -san, thank you for your review. Sorry, I haven't been looked for last week. Like your comment, I separated the cuda and non-cuda parts of the code that are controlled by cuda and cuda library founding flags.
The model takes one hot vector and point cloud as input. Yet if we feed different objects than vehicle labels, it will probably return the closest vehicle shape to the fed point cloud. The model could be easily extended for other classes according to the training readme file. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM and worked with my local environment.
lib/corrector/utils.cpp | ||
lib/corrector/no_corrector.cpp | ||
set(${PROJECT_NAME}_SOURCES | ||
lib/shape_estimator.cpp |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
[minor comment]
Do you have any intention to add these indent?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
thank you warning, I fixed the indent
- object size classification result | ||
- object size residuals | ||
|
||
### Training ML Based Shape Estimation Model |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
[minor comment]
It may better to separate training document with README for future.
Signed-off-by: Kaan Çolak <kaancolak95@gmail.com>
Signed-off-by: Kaan Çolak <kaancolak95@gmail.com>
} | ||
|
||
int iter_count = static_cast<int>(input_pc_size) / point_size_of_cloud; | ||
int remainer_count = static_cast<int>(input_pc_size) % point_size_of_cloud; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
int remainer_count = static_cast<int>(input_pc_size) % point_size_of_cloud; | |
int remainder_count = static_cast<int>(input_pc_size) % point_size_of_cloud; |
Spell check failed, so can you change remainer
to another word? I think reminder
is better.
https://github.com/autowarefoundation/autoware.universe/actions/runs/10196767728/job/28208175986?pr=7860
Rerun CI to check builds. Please wait for a while. |
Codecov ReportAll modified and coverable lines are covered by tests ✅
Additional details and impacted files@@ Coverage Diff @@
## main #7860 +/- ##
==========================================
- Coverage 15.09% 5.50% -9.59%
==========================================
Files 1967 109 -1858
Lines 135941 4558 -131383
Branches 42122 567 -41555
==========================================
- Hits 20520 251 -20269
+ Misses 92700 4256 -88444
+ Partials 22721 51 -22670
☔ View full report in Codecov by Sentry. |
) * feat(shape_estimation): add ml shape estimation Signed-off-by: Kaan Çolak <kaancolak95@gmail.com> * style(pre-commit): autofix * feat(shape_estimation): fix exceed objects Signed-off-by: Kaan Çolak <kaancolak95@gmail.com> * style(pre-commit): autofix * feat(shape_estimation): fix indent Signed-off-by: Kaan Çolak <kaancolak95@gmail.com> --------- Signed-off-by: Kaan Çolak <kaancolak95@gmail.com> Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
) * feat(shape_estimation): add ml shape estimation Signed-off-by: Kaan Çolak <kaancolak95@gmail.com> * style(pre-commit): autofix * feat(shape_estimation): fix exceed objects Signed-off-by: Kaan Çolak <kaancolak95@gmail.com> * style(pre-commit): autofix * feat(shape_estimation): fix indent Signed-off-by: Kaan Çolak <kaancolak95@gmail.com> --------- Signed-off-by: Kaan Çolak <kaancolak95@gmail.com> Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
Description
Pointnet-based vehicle shape estimation module.
Choosing the estimation method is optional in the config file.
Related links
ONNX model file: https://drive.google.com/drive/folders/1xj95FShWo3_lL-1wtXMBB7T2OR8oFxB8
Parent Issue:
#7106
How was this PR tested?
Notes for reviewers
Test using the given ONNX file, no need to any other change
Interface changes
None.
Effects on system behavior
None.