-
Notifications
You must be signed in to change notification settings - Fork 680
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
Evaluate performance of object detection pipeline #565
Evaluate performance of object detection pipeline #565
Comments
* Ros2 v0.8.0 topic state monitor (autowarefoundation#283) * Add node_name_suffix to topic_state_monitor.launch (autowarefoundation#1157) (autowarefoundation#370) Signed-off-by: Kenji Miyake <kenji.miyake@tier4.jp> * fix launch file (autowarefoundation#411) * add transient local option to topic state monitor (autowarefoundation#410) * add transient local option to topic state monitor * sort parameters * sort parameter * [topic_state_monitor]: Add best effort option (autowarefoundation#430) Signed-off-by: autoware <autoware@example.com> Co-authored-by: autoware <autoware@example.com> * add use_sim-time option (autowarefoundation#454) * Fix for rolling (autowarefoundation#1226) * Replace doc by description Signed-off-by: Kenji Miyake <kenji.miyake@tier4.jp> * Replace ns by push-ros-namespace Signed-off-by: Kenji Miyake <kenji.miyake@tier4.jp> * change to composable node (autowarefoundation#1233) * Unify Apache-2.0 license name (autowarefoundation#1242) * Remove use_sim_time for set_parameter (autowarefoundation#1260) Signed-off-by: wep21 <border_goldenmarket@yahoo.co.jp> * Fix lint errors (autowarefoundation#1378) * Fix lint errors Signed-off-by: Kenji Miyake <kenji.miyake@tier4.jp> * Fix variable names Signed-off-by: Kenji Miyake <kenji.miyake@tier4.jp> * Use integrated generic subscription (autowarefoundation#1342) Signed-off-by: wep21 <border_goldenmarket@yahoo.co.jp> * suppress warnings for declare parameters (autowarefoundation#1724) * fix for lanelet2_extension * fix for traffic light ssd fine detector * fix for topic_state_monitor * fix for dummy diag publisher * fix for remote cmd converter * fix for vehicle_info_util * fix for multi object tracker * fix for freespace planner * fix for autoware_error_monitor * add Werror for multi object tracker * fix for multi object tracker * add Werror for liraffic light ssd fine detector * add Werror for topic state monitor * add Werror * add Werror * add Werror * add Werror * fix style * Fix -Wunused-parameter (autowarefoundation#1836) * Fix -Wunused-parameter Signed-off-by: Kenji Miyake <kenji.miyake@tier4.jp> * Fix mistake Signed-off-by: Kenji Miyake <kenji.miyake@tier4.jp> * fix spell * Fix lint issues Signed-off-by: Kenji Miyake <kenji.miyake@tier4.jp> * Ignore flake8 warnings Signed-off-by: Kenji Miyake <kenji.miyake@tier4.jp> Co-authored-by: Hiroki OTA <hiroki.ota@tier4.jp> * Change formatter to clang-format and black (autowarefoundation#2332) * Revert "Temporarily comment out pre-commit hooks" This reverts commit 748e9cdb145ce12f8b520bcbd97f5ff899fc28a3. * Replace ament_lint_common with autoware_lint_common Signed-off-by: Kenji Miyake <kenji.miyake@tier4.jp> * Remove ament_cmake_uncrustify and ament_clang_format Signed-off-by: Kenji Miyake <kenji.miyake@tier4.jp> * Apply Black Signed-off-by: Kenji Miyake <kenji.miyake@tier4.jp> * Apply clang-format Signed-off-by: Kenji Miyake <kenji.miyake@tier4.jp> * Fix build errors Signed-off-by: Kenji Miyake <kenji.miyake@tier4.jp> * Fix for cpplint * Fix include double quotes to angle brackets Signed-off-by: Kenji Miyake <kenji.miyake@tier4.jp> * Apply clang-format Signed-off-by: Kenji Miyake <kenji.miyake@tier4.jp> * Fix build errors Signed-off-by: Kenji Miyake <kenji.miyake@tier4.jp> * Add COLCON_IGNORE (autowarefoundation#500) Signed-off-by: Kenji Miyake <kenji.miyake@tier4.jp> * remove COLCON_IGNORE in system_packages and map_tf_generator (autowarefoundation#532) * [topic_state_monitor]add readme (autowarefoundation#565) * add readme * Update system/topic_state_monitor/Readme.md Co-authored-by: Kazuki Miyahara <kmiya@outlook.com> * Update system/topic_state_monitor/Readme.md Co-authored-by: Kazuki Miyahara <kmiya@outlook.com> * Update system/topic_state_monitor/Readme.md Co-authored-by: Kazuki Miyahara <kmiya@outlook.com> * Update system/topic_state_monitor/Readme.md Co-authored-by: Kazuki Miyahara <kmiya@outlook.com> * Update system/topic_state_monitor/Readme.md Co-authored-by: Kazuki Miyahara <kmiya@outlook.com> Co-authored-by: Kazuki Miyahara <kmiya@outlook.com> Co-authored-by: Daisuke Nishimatsu <42202095+wep21@users.noreply.github.com> Co-authored-by: Ryohsuke Mitsudome <43976834+mitsudome-r@users.noreply.github.com> Co-authored-by: autoware <autoware@example.com> Co-authored-by: Kenji Miyake <31987104+kenji-miyake@users.noreply.github.com> Co-authored-by: Taichi Higashide <taichi.higashide@tier4.jp> Co-authored-by: Kazuki Miyahara <kmiya@outlook.com> Co-authored-by: Hiroki OTA <hiroki.ota@tier4.jp> Co-authored-by: Takeshi Miura <57553950+1222-takeshi@users.noreply.github.com> Co-authored-by: taikitanaka3 <65527974+taikitanaka3@users.noreply.github.com>
In the Autoware.Auto, we have 2D and 3D detection benchmark tools for the KITTI dataset. We can test our 2D/3D detections by integrating these tools into Autoware.Universe. In addition, I think, we need to evaluate the entire perception stack of Autoware.Universe from sensor output(Point Cloud/Camera Frame) to object tracking output, because all perception modules work together. Such as; deterministic and deep learning-based 3D bounding boxes are based merged or tracking results are merged with detected objects. For object tracking, the KITTI dataset has only 2D bounding box-based evaluation. For this reason, we are planning to implement Waymo dataset for 3D detection & tracking evaluation. |
I shared high-level architecture for the planned perception benchmark pipeline. If you have any comments feel free to share them with us. Limitations when benchmarking with the Waymo dataset:
Current situation:
There is small jittering I think caused by localization, base_link - global frame transformation. |
I shared the initial 3D tracking benchmark results in the README file of the PR. It contains only the results of the lidar-only pipeline. For vehicles, everything works fine, but for pedestrians, we are giving a constant length and width size to the pedestrian bounding boxes in Autoware.Universe, it's equal to 1 meter. But, Waymo Dataset has so strict IoU scores for matching tracked ground truth objects and predictions. When we give a fixed size to pedestrians, it falls below the cutoff score. (Vehicle: 0.7 , Pedestrian and Cyclist: 0.5) I will write a detailed explanation under the PR. If you have any suggestions or advice please share them. |
@kaancolak I'm wondering if using Waymo Open Dataset Toolkit for evaluation is a good idea. I understand that the best solution would be to make it possible to use the same metric calculation software for Waymo, Kitti ( + other open datasets), as well as with synthetic data generated in the simulators. In this case, as Autoware is based on ROS2, it would be perfect to have metric calculation based on ROS topics directly, optionally on rosbags (like we develop in this issue) What is your opinion ? I'm not really familiar with Waymo Open Dataset toolkit, so I might misunderstand something. |
@WJaworskiRobotec Thanks for your feedback. Current benchmarking tool scripts subscribe to ROS2 topics and convert the tracked objects to the proto format desired by the Waymo dataset. If we want to compare our tracking result with other tracking submissions in the Waymo 3D Tracking Challenge, I think Waymo Open Dataset Toolkit is the best way for doing it, it contains a lot of special configurations for metric calculation. I chose the Waymo Dataset for the 3D tracking benchmark because most of the popular dataset doesn't contain a 3D tracking benchmark, like KITTI, Berkeley DeepDrive, and Lyft. If we want to evaluate our 2D, and 3D detection results with other open datasets and the synthetic data generated in the simulators, real-time evaluation directly over the ROS2 topic could be very useful, just need to implement proper metrics. I can easily extend the functionality of this tool. |
Thanks a lot for the explanation. Pipeline that you created is perfect for comparing Autoware results with others, as well as it will be very easy to just connect metric calculation node that is created in the task I mentioned directly to the same topics that you connect the "data converter" converting to the Waymo format. Look perfect to me and once we have proper metrics we will connect it with your code. |
@WJaworskiRobotec Instead of working on the different benchmarking pipelines, I think we can extend the metric calculation node. It's a more generic evaluator that contains the entire stack(evaluator, planning, control, detection, etc.) that makes sense. I would like to implement the perception(2D/3D perception) part on your metric calculation nodes, base algorithm will be very similar to this tool but must be in the same code format as your nodes. |
@kaancolak Sounds great. @djargot is currently working on the last node that we wanted to create as an example and it is related to perception (segmentation algorithm evaluation). Once it's done we will assign you as a reviewer, and you can continue with adding your nodes for 2D/3D Object Detection. |
This PR waiting for review. |
@kaancolak can you update the current status of this issue? |
I have made some updates on the code base. Currently, it's waiting for review. |
…undation#565) * refactor(pull_out): consolidate similar function (autowarefoundation#3803) * consolidate planWithPriority function Signed-off-by: kyoichi-sugahara <kyoichi.sugahara@tier4.jp> * add comments Signed-off-by: kyoichi-sugahara <kyoichi.sugahara@tier4.jp> * fix Signed-off-by: kyoichi-sugahara <kyoichi.sugahara@tier4.jp> * refactoring Signed-off-by: kyoichi-sugahara <kyoichi.sugahara@tier4.jp> * refactoring Signed-off-by: kyoichi-sugahara <kyoichi.sugahara@tier4.jp> * change arg type Signed-off-by: kyoichi-sugahara <kyoichi.sugahara@tier4.jp> * Update planning/behavior_path_planner/src/scene_module/pull_out/pull_out_module.cpp * Update planning/behavior_path_planner/include/behavior_path_planner/scene_module/pull_out/pull_out_module.hpp --------- Signed-off-by: kyoichi-sugahara <kyoichi.sugahara@tier4.jp> Co-authored-by: Kosuke Takeuchi <kosuke.tnp@gmail.com> * refactor(start_planner): rename pull out to start planner (autowarefoundation#3908) Signed-off-by: kosuke55 <kosuke.tnp@gmail.com> --------- Signed-off-by: kyoichi-sugahara <kyoichi.sugahara@tier4.jp> Signed-off-by: kosuke55 <kosuke.tnp@gmail.com> Co-authored-by: Kyoichi Sugahara <kyoichi.sugahara@tier4.jp>
* chore: sync files Signed-off-by: GitHub <noreply@github.com> * pre-commit fixes Signed-off-by: GitHub <noreply@github.com> Co-authored-by: kenji-miyake <kenji-miyake@users.noreply.github.com> Co-authored-by: github-actions <github-actions@github.com>
Does the perception benchmark tool still work? It seems that there are some problems with the python version |
…foundation#565) Signed-off-by: kminoda <koji.minoda@tier4.jp>
chore: sync awf-latest
Checklist
Description
Evaluate performance of perception pipeline.
Purpose
Evaluate performance of perception pipeline to confirm if current perception has enough capability for BGus
Possible approaches
Find available open datasets for evaluation and do benchmark testing.
Possible datasets:
Definition of done
The text was updated successfully, but these errors were encountered: