Package Summary
| Version | 0.50.0 |
| License | Apache License 2.0 |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Description | |
| Checkout URI | https://github.com/autowarefoundation/autoware_universe.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2026-02-25 |
| Dev Status | UNKNOWN |
| Released | UNRELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- samrat
- Kok Seang Tan
Authors
autoware_camera_streampetr
Purpose
The autoware_camera_streampetr package is used for 3D object detection based on images only.
Inner-workings / Algorithms
This package implements a TensorRT powered inference node for StreamPETR [1]. This is the first camera-only 3D object detection node in autoware.
This node has been optimized for multi-camera systems where the camera topics are published in a sequential manner, not all at once. The node takes advantage of this by preprocessing (resize, crop, normalize) the images and storing them appropriately on GPU, so that delay due to preprocessing can be minimized.
Topic for image_i arrived -------------------------
| |
| |
| |
v |
Is image distorted? |
| \ |
| \ |
Yes No |Image Updates
| | |done in parallel, if multitheading is on
v | |otherwise done sequentially in FIFO order
Undistort | |
| | |
v v |
Load image into GPU memory |
| |
v |
Preprocess image (scale & crop ROI & normalize) |
| |
v |
Store in GPU memory binding location for model input |
| -------------------------|
v |
Is image the `anchor_image`? |
| \ |
| \ |
No Yes |
| | |
v v | If multithreading is on
(Wait) Are all images synced within `max_time_difference`? | image Updates are temporarily frozen
| \ | until this part completes.
| \ |
Yes No |
| | |
v v |
Perform model forward pass (Sync failed! Skip prediction) |
| |
v |
Postprocess (NMS + ROS2 format) |
| |
v |
Publish predictions -------------------------|
Inputs / Outputs
Input
| Name | Type | Description |
|---|---|---|
~/input/camera*/image |
sensor_msgs::msg::Image or sensor_msgs::msg::CompressedImage
|
Input image topics (supports both compressed and uncompressed). |
~/input/camera*/camera_info |
sensor_msgs::msg::CameraInfo |
Input camera info topics, for camera parameters. |
Output
| Name | Type | Description | RTX 3090 Latency (ms) |
|---|---|---|---|
~/output/objects |
autoware_perception_msgs::msg::DetectedObjects |
Detected objects. | — |
latency/preprocess |
autoware_internal_debug_msgs::msg::Float64Stamped |
Preprocessing time per image(ms). | 3.25 |
latency/total |
autoware_internal_debug_msgs::msg::Float64Stamped |
Total processing time (ms): preprocessing + inference + postprocessing. | 26.04 |
latency/inference |
autoware_internal_debug_msgs::msg::Float64Stamped |
Total inference time (ms). | 22.13 |
latency/inference/backbone |
autoware_internal_debug_msgs::msg::Float64Stamped |
Backbone inference time (ms). | 16.21 |
latency/inference/ptshead |
autoware_internal_debug_msgs::msg::Float64Stamped |
Points head inference time (ms). | 5.45 |
latency/inference/pos_embed |
autoware_internal_debug_msgs::msg::Float64Stamped |
Position embedding inference time (ms). | 0.40 |
latency/inference/postprocess |
autoware_internal_debug_msgs::msg::Float64Stamped |
nms + filtering + converting network predictions to autoware format (ms). | 0.40 |
latency/cycle_time_ms |
autoware_internal_debug_msgs::msg::Float64Stamped |
Time between two consecutive predictions (ms). | 110.65 |
Parameters
StreamPETR node
The autoware_camera_streampetr node has various parameters for configuration:
Model Parameters
-
model_params.backbone_path: Path to the backbone ONNX model -
model_params.head_path: Path to the head ONNX model -
model_params.position_embedding_path: Path to the position embedding ONNX model -
model_params.fp16_mode: Enable FP16 inference mode -
model_params.use_temporal: Enable temporal modeling -
model_params.input_image_height: Input image height for preprocessing -
model_params.input_image_width: Input image width for preprocessing -
model_params.class_names: List of detection class names -
model_params.num_proposals: Number of object proposals
File truncated at 100 lines see the full file
Changelog for package autoware_camera_streampetr
0.50.0 (2026-02-14)
- Merge remote-tracking branch 'origin/main' into humble
- chore(stream_petr): remove invalid thrust stream policy for copy operations (#12064) Remove unnecessary thrust::device specification
- chore(autoware_camera_streampetr): remove cudnn dependency (#11890)
- Contributors: Amadeusz Szymko, Ryohsuke Mitsudome, Samrat Thapa
0.49.0 (2025-12-30)
-
Merge remote-tracking branch 'origin/main' into prepare-0.49.0-changelog
-
chore(streampetr): removed thrust stream policy (#11800)
- removed thrust stream
* syncronize stream before thrust ---------
-
fix: prevent possible dangling pointer from .str().c_str() pattern (#11609)
* Fix dangling pointer caused by the .str().c_str() pattern. std::stringstream::str() returns a temporary std::string, and taking its c_str() leads to a dangling pointer when the temporary is destroyed. This patch replaces such usage with a const reference of std::string variable to ensure pointer validity.
* Revert the changes made to the functions. They should only be applied to the macros. ---------Co-authored-by: Shumpei Wakabayashi <<42209144+shmpwk@users.noreply.github.com>> Co-authored-by: Junya Sasaki <<junya.sasaki@tier4.jp>>
-
feat(streampetr): class wise confidence threshold (#11756)
- class wise threshold
- style(pre-commit): autofix
- add checks
- style(pre-commit): autofix
- prevent cuda reallocatoin
- updated conf values
- style(pre-commit): autofix
- removed unused import
- add policy for thrust
- style(pre-commit): autofix
* use cuda_utils helpers ---------Co-authored-by: pre-commit-ci-lite[bot] <117423508+pre-commit-ci-lite[bot]@users.noreply.github.com>
-
feat(stream_petr): use dynamic triangle filter for image downsampling (#11724)
- downsample with anti-aliasing
- synchronize streams
- remove unused changes
- style(pre-commit): autofix
- fixed cuda sync location
- remove unused code
- added optimize TODO
* style(pre-commit): autofix ---------Co-authored-by: pre-commit-ci-lite[bot] <117423508+pre-commit-ci-lite[bot]@users.noreply.github.com>
-
Contributors: Ryohsuke Mitsudome, Samrat Thapa, Takatoshi Kondo
0.48.0 (2025-11-18)
-
Merge remote-tracking branch 'origin/main' into humble
-
fix: tf2 uses hpp headers in rolling (and is backported) (#11620)
-
feat(autoware_camera_streampetr): cuda based undistortion with rectification (#11420)
- working inference with distortion
- removed unnecessary code
- remove unused parameter
- style(pre-commit): autofix
- fixed based on comments
- style(pre-commit): autofix
- added unroll
- style(pre-commit): autofix
- comment for clarity
* style(pre-commit): autofix ---------Co-authored-by: pre-commit-ci-lite[bot] <117423508+pre-commit-ci-lite[bot]@users.noreply.github.com>
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
| Name |
|---|
| eigen |
Dependant Packages
Launch files
- launch/streampetr.launch.xml
-
- build_only [default: false]
- model_path [default: $(env HOME)/autoware_data/camera_streampetr]
- model_param_path [default: $(var model_path)/ml_package_camera_streampetr.param.yaml]
- node_param_path [default: $(find-pkg-share autoware_camera_streampetr)/config/camera_streampetr.param.yaml]
- is_compressed_image [default: false]
Messages
Services
Plugins
Recent questions tagged autoware_camera_streampetr at Robotics Stack Exchange
Package Summary
| Version | 0.50.0 |
| License | Apache License 2.0 |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Description | |
| Checkout URI | https://github.com/autowarefoundation/autoware_universe.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2026-02-25 |
| Dev Status | UNKNOWN |
| Released | UNRELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- samrat
- Kok Seang Tan
Authors
autoware_camera_streampetr
Purpose
The autoware_camera_streampetr package is used for 3D object detection based on images only.
Inner-workings / Algorithms
This package implements a TensorRT powered inference node for StreamPETR [1]. This is the first camera-only 3D object detection node in autoware.
This node has been optimized for multi-camera systems where the camera topics are published in a sequential manner, not all at once. The node takes advantage of this by preprocessing (resize, crop, normalize) the images and storing them appropriately on GPU, so that delay due to preprocessing can be minimized.
Topic for image_i arrived -------------------------
| |
| |
| |
v |
Is image distorted? |
| \ |
| \ |
Yes No |Image Updates
| | |done in parallel, if multitheading is on
v | |otherwise done sequentially in FIFO order
Undistort | |
| | |
v v |
Load image into GPU memory |
| |
v |
Preprocess image (scale & crop ROI & normalize) |
| |
v |
Store in GPU memory binding location for model input |
| -------------------------|
v |
Is image the `anchor_image`? |
| \ |
| \ |
No Yes |
| | |
v v | If multithreading is on
(Wait) Are all images synced within `max_time_difference`? | image Updates are temporarily frozen
| \ | until this part completes.
| \ |
Yes No |
| | |
v v |
Perform model forward pass (Sync failed! Skip prediction) |
| |
v |
Postprocess (NMS + ROS2 format) |
| |
v |
Publish predictions -------------------------|
Inputs / Outputs
Input
| Name | Type | Description |
|---|---|---|
~/input/camera*/image |
sensor_msgs::msg::Image or sensor_msgs::msg::CompressedImage
|
Input image topics (supports both compressed and uncompressed). |
~/input/camera*/camera_info |
sensor_msgs::msg::CameraInfo |
Input camera info topics, for camera parameters. |
Output
| Name | Type | Description | RTX 3090 Latency (ms) |
|---|---|---|---|
~/output/objects |
autoware_perception_msgs::msg::DetectedObjects |
Detected objects. | — |
latency/preprocess |
autoware_internal_debug_msgs::msg::Float64Stamped |
Preprocessing time per image(ms). | 3.25 |
latency/total |
autoware_internal_debug_msgs::msg::Float64Stamped |
Total processing time (ms): preprocessing + inference + postprocessing. | 26.04 |
latency/inference |
autoware_internal_debug_msgs::msg::Float64Stamped |
Total inference time (ms). | 22.13 |
latency/inference/backbone |
autoware_internal_debug_msgs::msg::Float64Stamped |
Backbone inference time (ms). | 16.21 |
latency/inference/ptshead |
autoware_internal_debug_msgs::msg::Float64Stamped |
Points head inference time (ms). | 5.45 |
latency/inference/pos_embed |
autoware_internal_debug_msgs::msg::Float64Stamped |
Position embedding inference time (ms). | 0.40 |
latency/inference/postprocess |
autoware_internal_debug_msgs::msg::Float64Stamped |
nms + filtering + converting network predictions to autoware format (ms). | 0.40 |
latency/cycle_time_ms |
autoware_internal_debug_msgs::msg::Float64Stamped |
Time between two consecutive predictions (ms). | 110.65 |
Parameters
StreamPETR node
The autoware_camera_streampetr node has various parameters for configuration:
Model Parameters
-
model_params.backbone_path: Path to the backbone ONNX model -
model_params.head_path: Path to the head ONNX model -
model_params.position_embedding_path: Path to the position embedding ONNX model -
model_params.fp16_mode: Enable FP16 inference mode -
model_params.use_temporal: Enable temporal modeling -
model_params.input_image_height: Input image height for preprocessing -
model_params.input_image_width: Input image width for preprocessing -
model_params.class_names: List of detection class names -
model_params.num_proposals: Number of object proposals
File truncated at 100 lines see the full file
Changelog for package autoware_camera_streampetr
0.50.0 (2026-02-14)
- Merge remote-tracking branch 'origin/main' into humble
- chore(stream_petr): remove invalid thrust stream policy for copy operations (#12064) Remove unnecessary thrust::device specification
- chore(autoware_camera_streampetr): remove cudnn dependency (#11890)
- Contributors: Amadeusz Szymko, Ryohsuke Mitsudome, Samrat Thapa
0.49.0 (2025-12-30)
-
Merge remote-tracking branch 'origin/main' into prepare-0.49.0-changelog
-
chore(streampetr): removed thrust stream policy (#11800)
- removed thrust stream
* syncronize stream before thrust ---------
-
fix: prevent possible dangling pointer from .str().c_str() pattern (#11609)
* Fix dangling pointer caused by the .str().c_str() pattern. std::stringstream::str() returns a temporary std::string, and taking its c_str() leads to a dangling pointer when the temporary is destroyed. This patch replaces such usage with a const reference of std::string variable to ensure pointer validity.
* Revert the changes made to the functions. They should only be applied to the macros. ---------Co-authored-by: Shumpei Wakabayashi <<42209144+shmpwk@users.noreply.github.com>> Co-authored-by: Junya Sasaki <<junya.sasaki@tier4.jp>>
-
feat(streampetr): class wise confidence threshold (#11756)
- class wise threshold
- style(pre-commit): autofix
- add checks
- style(pre-commit): autofix
- prevent cuda reallocatoin
- updated conf values
- style(pre-commit): autofix
- removed unused import
- add policy for thrust
- style(pre-commit): autofix
* use cuda_utils helpers ---------Co-authored-by: pre-commit-ci-lite[bot] <117423508+pre-commit-ci-lite[bot]@users.noreply.github.com>
-
feat(stream_petr): use dynamic triangle filter for image downsampling (#11724)
- downsample with anti-aliasing
- synchronize streams
- remove unused changes
- style(pre-commit): autofix
- fixed cuda sync location
- remove unused code
- added optimize TODO
* style(pre-commit): autofix ---------Co-authored-by: pre-commit-ci-lite[bot] <117423508+pre-commit-ci-lite[bot]@users.noreply.github.com>
-
Contributors: Ryohsuke Mitsudome, Samrat Thapa, Takatoshi Kondo
0.48.0 (2025-11-18)
-
Merge remote-tracking branch 'origin/main' into humble
-
fix: tf2 uses hpp headers in rolling (and is backported) (#11620)
-
feat(autoware_camera_streampetr): cuda based undistortion with rectification (#11420)
- working inference with distortion
- removed unnecessary code
- remove unused parameter
- style(pre-commit): autofix
- fixed based on comments
- style(pre-commit): autofix
- added unroll
- style(pre-commit): autofix
- comment for clarity
* style(pre-commit): autofix ---------Co-authored-by: pre-commit-ci-lite[bot] <117423508+pre-commit-ci-lite[bot]@users.noreply.github.com>
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
| Name |
|---|
| eigen |
Dependant Packages
Launch files
- launch/streampetr.launch.xml
-
- build_only [default: false]
- model_path [default: $(env HOME)/autoware_data/camera_streampetr]
- model_param_path [default: $(var model_path)/ml_package_camera_streampetr.param.yaml]
- node_param_path [default: $(find-pkg-share autoware_camera_streampetr)/config/camera_streampetr.param.yaml]
- is_compressed_image [default: false]
Messages
Services
Plugins
Recent questions tagged autoware_camera_streampetr at Robotics Stack Exchange
Package Summary
| Version | 0.50.0 |
| License | Apache License 2.0 |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Description | |
| Checkout URI | https://github.com/autowarefoundation/autoware_universe.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2026-02-25 |
| Dev Status | UNKNOWN |
| Released | UNRELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- samrat
- Kok Seang Tan
Authors
autoware_camera_streampetr
Purpose
The autoware_camera_streampetr package is used for 3D object detection based on images only.
Inner-workings / Algorithms
This package implements a TensorRT powered inference node for StreamPETR [1]. This is the first camera-only 3D object detection node in autoware.
This node has been optimized for multi-camera systems where the camera topics are published in a sequential manner, not all at once. The node takes advantage of this by preprocessing (resize, crop, normalize) the images and storing them appropriately on GPU, so that delay due to preprocessing can be minimized.
Topic for image_i arrived -------------------------
| |
| |
| |
v |
Is image distorted? |
| \ |
| \ |
Yes No |Image Updates
| | |done in parallel, if multitheading is on
v | |otherwise done sequentially in FIFO order
Undistort | |
| | |
v v |
Load image into GPU memory |
| |
v |
Preprocess image (scale & crop ROI & normalize) |
| |
v |
Store in GPU memory binding location for model input |
| -------------------------|
v |
Is image the `anchor_image`? |
| \ |
| \ |
No Yes |
| | |
v v | If multithreading is on
(Wait) Are all images synced within `max_time_difference`? | image Updates are temporarily frozen
| \ | until this part completes.
| \ |
Yes No |
| | |
v v |
Perform model forward pass (Sync failed! Skip prediction) |
| |
v |
Postprocess (NMS + ROS2 format) |
| |
v |
Publish predictions -------------------------|
Inputs / Outputs
Input
| Name | Type | Description |
|---|---|---|
~/input/camera*/image |
sensor_msgs::msg::Image or sensor_msgs::msg::CompressedImage
|
Input image topics (supports both compressed and uncompressed). |
~/input/camera*/camera_info |
sensor_msgs::msg::CameraInfo |
Input camera info topics, for camera parameters. |
Output
| Name | Type | Description | RTX 3090 Latency (ms) |
|---|---|---|---|
~/output/objects |
autoware_perception_msgs::msg::DetectedObjects |
Detected objects. | — |
latency/preprocess |
autoware_internal_debug_msgs::msg::Float64Stamped |
Preprocessing time per image(ms). | 3.25 |
latency/total |
autoware_internal_debug_msgs::msg::Float64Stamped |
Total processing time (ms): preprocessing + inference + postprocessing. | 26.04 |
latency/inference |
autoware_internal_debug_msgs::msg::Float64Stamped |
Total inference time (ms). | 22.13 |
latency/inference/backbone |
autoware_internal_debug_msgs::msg::Float64Stamped |
Backbone inference time (ms). | 16.21 |
latency/inference/ptshead |
autoware_internal_debug_msgs::msg::Float64Stamped |
Points head inference time (ms). | 5.45 |
latency/inference/pos_embed |
autoware_internal_debug_msgs::msg::Float64Stamped |
Position embedding inference time (ms). | 0.40 |
latency/inference/postprocess |
autoware_internal_debug_msgs::msg::Float64Stamped |
nms + filtering + converting network predictions to autoware format (ms). | 0.40 |
latency/cycle_time_ms |
autoware_internal_debug_msgs::msg::Float64Stamped |
Time between two consecutive predictions (ms). | 110.65 |
Parameters
StreamPETR node
The autoware_camera_streampetr node has various parameters for configuration:
Model Parameters
-
model_params.backbone_path: Path to the backbone ONNX model -
model_params.head_path: Path to the head ONNX model -
model_params.position_embedding_path: Path to the position embedding ONNX model -
model_params.fp16_mode: Enable FP16 inference mode -
model_params.use_temporal: Enable temporal modeling -
model_params.input_image_height: Input image height for preprocessing -
model_params.input_image_width: Input image width for preprocessing -
model_params.class_names: List of detection class names -
model_params.num_proposals: Number of object proposals
File truncated at 100 lines see the full file
Changelog for package autoware_camera_streampetr
0.50.0 (2026-02-14)
- Merge remote-tracking branch 'origin/main' into humble
- chore(stream_petr): remove invalid thrust stream policy for copy operations (#12064) Remove unnecessary thrust::device specification
- chore(autoware_camera_streampetr): remove cudnn dependency (#11890)
- Contributors: Amadeusz Szymko, Ryohsuke Mitsudome, Samrat Thapa
0.49.0 (2025-12-30)
-
Merge remote-tracking branch 'origin/main' into prepare-0.49.0-changelog
-
chore(streampetr): removed thrust stream policy (#11800)
- removed thrust stream
* syncronize stream before thrust ---------
-
fix: prevent possible dangling pointer from .str().c_str() pattern (#11609)
* Fix dangling pointer caused by the .str().c_str() pattern. std::stringstream::str() returns a temporary std::string, and taking its c_str() leads to a dangling pointer when the temporary is destroyed. This patch replaces such usage with a const reference of std::string variable to ensure pointer validity.
* Revert the changes made to the functions. They should only be applied to the macros. ---------Co-authored-by: Shumpei Wakabayashi <<42209144+shmpwk@users.noreply.github.com>> Co-authored-by: Junya Sasaki <<junya.sasaki@tier4.jp>>
-
feat(streampetr): class wise confidence threshold (#11756)
- class wise threshold
- style(pre-commit): autofix
- add checks
- style(pre-commit): autofix
- prevent cuda reallocatoin
- updated conf values
- style(pre-commit): autofix
- removed unused import
- add policy for thrust
- style(pre-commit): autofix
* use cuda_utils helpers ---------Co-authored-by: pre-commit-ci-lite[bot] <117423508+pre-commit-ci-lite[bot]@users.noreply.github.com>
-
feat(stream_petr): use dynamic triangle filter for image downsampling (#11724)
- downsample with anti-aliasing
- synchronize streams
- remove unused changes
- style(pre-commit): autofix
- fixed cuda sync location
- remove unused code
- added optimize TODO
* style(pre-commit): autofix ---------Co-authored-by: pre-commit-ci-lite[bot] <117423508+pre-commit-ci-lite[bot]@users.noreply.github.com>
-
Contributors: Ryohsuke Mitsudome, Samrat Thapa, Takatoshi Kondo
0.48.0 (2025-11-18)
-
Merge remote-tracking branch 'origin/main' into humble
-
fix: tf2 uses hpp headers in rolling (and is backported) (#11620)
-
feat(autoware_camera_streampetr): cuda based undistortion with rectification (#11420)
- working inference with distortion
- removed unnecessary code
- remove unused parameter
- style(pre-commit): autofix
- fixed based on comments
- style(pre-commit): autofix
- added unroll
- style(pre-commit): autofix
- comment for clarity
* style(pre-commit): autofix ---------Co-authored-by: pre-commit-ci-lite[bot] <117423508+pre-commit-ci-lite[bot]@users.noreply.github.com>
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
| Name |
|---|
| eigen |
Dependant Packages
Launch files
- launch/streampetr.launch.xml
-
- build_only [default: false]
- model_path [default: $(env HOME)/autoware_data/camera_streampetr]
- model_param_path [default: $(var model_path)/ml_package_camera_streampetr.param.yaml]
- node_param_path [default: $(find-pkg-share autoware_camera_streampetr)/config/camera_streampetr.param.yaml]
- is_compressed_image [default: false]
Messages
Services
Plugins
Recent questions tagged autoware_camera_streampetr at Robotics Stack Exchange
Package Summary
| Version | 0.50.0 |
| License | Apache License 2.0 |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Description | |
| Checkout URI | https://github.com/autowarefoundation/autoware_universe.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2026-02-25 |
| Dev Status | UNKNOWN |
| Released | UNRELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- samrat
- Kok Seang Tan
Authors
autoware_camera_streampetr
Purpose
The autoware_camera_streampetr package is used for 3D object detection based on images only.
Inner-workings / Algorithms
This package implements a TensorRT powered inference node for StreamPETR [1]. This is the first camera-only 3D object detection node in autoware.
This node has been optimized for multi-camera systems where the camera topics are published in a sequential manner, not all at once. The node takes advantage of this by preprocessing (resize, crop, normalize) the images and storing them appropriately on GPU, so that delay due to preprocessing can be minimized.
Topic for image_i arrived -------------------------
| |
| |
| |
v |
Is image distorted? |
| \ |
| \ |
Yes No |Image Updates
| | |done in parallel, if multitheading is on
v | |otherwise done sequentially in FIFO order
Undistort | |
| | |
v v |
Load image into GPU memory |
| |
v |
Preprocess image (scale & crop ROI & normalize) |
| |
v |
Store in GPU memory binding location for model input |
| -------------------------|
v |
Is image the `anchor_image`? |
| \ |
| \ |
No Yes |
| | |
v v | If multithreading is on
(Wait) Are all images synced within `max_time_difference`? | image Updates are temporarily frozen
| \ | until this part completes.
| \ |
Yes No |
| | |
v v |
Perform model forward pass (Sync failed! Skip prediction) |
| |
v |
Postprocess (NMS + ROS2 format) |
| |
v |
Publish predictions -------------------------|
Inputs / Outputs
Input
| Name | Type | Description |
|---|---|---|
~/input/camera*/image |
sensor_msgs::msg::Image or sensor_msgs::msg::CompressedImage
|
Input image topics (supports both compressed and uncompressed). |
~/input/camera*/camera_info |
sensor_msgs::msg::CameraInfo |
Input camera info topics, for camera parameters. |
Output
| Name | Type | Description | RTX 3090 Latency (ms) |
|---|---|---|---|
~/output/objects |
autoware_perception_msgs::msg::DetectedObjects |
Detected objects. | — |
latency/preprocess |
autoware_internal_debug_msgs::msg::Float64Stamped |
Preprocessing time per image(ms). | 3.25 |
latency/total |
autoware_internal_debug_msgs::msg::Float64Stamped |
Total processing time (ms): preprocessing + inference + postprocessing. | 26.04 |
latency/inference |
autoware_internal_debug_msgs::msg::Float64Stamped |
Total inference time (ms). | 22.13 |
latency/inference/backbone |
autoware_internal_debug_msgs::msg::Float64Stamped |
Backbone inference time (ms). | 16.21 |
latency/inference/ptshead |
autoware_internal_debug_msgs::msg::Float64Stamped |
Points head inference time (ms). | 5.45 |
latency/inference/pos_embed |
autoware_internal_debug_msgs::msg::Float64Stamped |
Position embedding inference time (ms). | 0.40 |
latency/inference/postprocess |
autoware_internal_debug_msgs::msg::Float64Stamped |
nms + filtering + converting network predictions to autoware format (ms). | 0.40 |
latency/cycle_time_ms |
autoware_internal_debug_msgs::msg::Float64Stamped |
Time between two consecutive predictions (ms). | 110.65 |
Parameters
StreamPETR node
The autoware_camera_streampetr node has various parameters for configuration:
Model Parameters
-
model_params.backbone_path: Path to the backbone ONNX model -
model_params.head_path: Path to the head ONNX model -
model_params.position_embedding_path: Path to the position embedding ONNX model -
model_params.fp16_mode: Enable FP16 inference mode -
model_params.use_temporal: Enable temporal modeling -
model_params.input_image_height: Input image height for preprocessing -
model_params.input_image_width: Input image width for preprocessing -
model_params.class_names: List of detection class names -
model_params.num_proposals: Number of object proposals
File truncated at 100 lines see the full file
Changelog for package autoware_camera_streampetr
0.50.0 (2026-02-14)
- Merge remote-tracking branch 'origin/main' into humble
- chore(stream_petr): remove invalid thrust stream policy for copy operations (#12064) Remove unnecessary thrust::device specification
- chore(autoware_camera_streampetr): remove cudnn dependency (#11890)
- Contributors: Amadeusz Szymko, Ryohsuke Mitsudome, Samrat Thapa
0.49.0 (2025-12-30)
-
Merge remote-tracking branch 'origin/main' into prepare-0.49.0-changelog
-
chore(streampetr): removed thrust stream policy (#11800)
- removed thrust stream
* syncronize stream before thrust ---------
-
fix: prevent possible dangling pointer from .str().c_str() pattern (#11609)
* Fix dangling pointer caused by the .str().c_str() pattern. std::stringstream::str() returns a temporary std::string, and taking its c_str() leads to a dangling pointer when the temporary is destroyed. This patch replaces such usage with a const reference of std::string variable to ensure pointer validity.
* Revert the changes made to the functions. They should only be applied to the macros. ---------Co-authored-by: Shumpei Wakabayashi <<42209144+shmpwk@users.noreply.github.com>> Co-authored-by: Junya Sasaki <<junya.sasaki@tier4.jp>>
-
feat(streampetr): class wise confidence threshold (#11756)
- class wise threshold
- style(pre-commit): autofix
- add checks
- style(pre-commit): autofix
- prevent cuda reallocatoin
- updated conf values
- style(pre-commit): autofix
- removed unused import
- add policy for thrust
- style(pre-commit): autofix
* use cuda_utils helpers ---------Co-authored-by: pre-commit-ci-lite[bot] <117423508+pre-commit-ci-lite[bot]@users.noreply.github.com>
-
feat(stream_petr): use dynamic triangle filter for image downsampling (#11724)
- downsample with anti-aliasing
- synchronize streams
- remove unused changes
- style(pre-commit): autofix
- fixed cuda sync location
- remove unused code
- added optimize TODO
* style(pre-commit): autofix ---------Co-authored-by: pre-commit-ci-lite[bot] <117423508+pre-commit-ci-lite[bot]@users.noreply.github.com>
-
Contributors: Ryohsuke Mitsudome, Samrat Thapa, Takatoshi Kondo
0.48.0 (2025-11-18)
-
Merge remote-tracking branch 'origin/main' into humble
-
fix: tf2 uses hpp headers in rolling (and is backported) (#11620)
-
feat(autoware_camera_streampetr): cuda based undistortion with rectification (#11420)
- working inference with distortion
- removed unnecessary code
- remove unused parameter
- style(pre-commit): autofix
- fixed based on comments
- style(pre-commit): autofix
- added unroll
- style(pre-commit): autofix
- comment for clarity
* style(pre-commit): autofix ---------Co-authored-by: pre-commit-ci-lite[bot] <117423508+pre-commit-ci-lite[bot]@users.noreply.github.com>
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
| Name |
|---|
| eigen |
Dependant Packages
Launch files
- launch/streampetr.launch.xml
-
- build_only [default: false]
- model_path [default: $(env HOME)/autoware_data/camera_streampetr]
- model_param_path [default: $(var model_path)/ml_package_camera_streampetr.param.yaml]
- node_param_path [default: $(find-pkg-share autoware_camera_streampetr)/config/camera_streampetr.param.yaml]
- is_compressed_image [default: false]
Messages
Services
Plugins
Recent questions tagged autoware_camera_streampetr at Robotics Stack Exchange
Package Summary
| Version | 0.50.0 |
| License | Apache License 2.0 |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Description | |
| Checkout URI | https://github.com/autowarefoundation/autoware_universe.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2026-02-25 |
| Dev Status | UNKNOWN |
| Released | UNRELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- samrat
- Kok Seang Tan
Authors
autoware_camera_streampetr
Purpose
The autoware_camera_streampetr package is used for 3D object detection based on images only.
Inner-workings / Algorithms
This package implements a TensorRT powered inference node for StreamPETR [1]. This is the first camera-only 3D object detection node in autoware.
This node has been optimized for multi-camera systems where the camera topics are published in a sequential manner, not all at once. The node takes advantage of this by preprocessing (resize, crop, normalize) the images and storing them appropriately on GPU, so that delay due to preprocessing can be minimized.
Topic for image_i arrived -------------------------
| |
| |
| |
v |
Is image distorted? |
| \ |
| \ |
Yes No |Image Updates
| | |done in parallel, if multitheading is on
v | |otherwise done sequentially in FIFO order
Undistort | |
| | |
v v |
Load image into GPU memory |
| |
v |
Preprocess image (scale & crop ROI & normalize) |
| |
v |
Store in GPU memory binding location for model input |
| -------------------------|
v |
Is image the `anchor_image`? |
| \ |
| \ |
No Yes |
| | |
v v | If multithreading is on
(Wait) Are all images synced within `max_time_difference`? | image Updates are temporarily frozen
| \ | until this part completes.
| \ |
Yes No |
| | |
v v |
Perform model forward pass (Sync failed! Skip prediction) |
| |
v |
Postprocess (NMS + ROS2 format) |
| |
v |
Publish predictions -------------------------|
Inputs / Outputs
Input
| Name | Type | Description |
|---|---|---|
~/input/camera*/image |
sensor_msgs::msg::Image or sensor_msgs::msg::CompressedImage
|
Input image topics (supports both compressed and uncompressed). |
~/input/camera*/camera_info |
sensor_msgs::msg::CameraInfo |
Input camera info topics, for camera parameters. |
Output
| Name | Type | Description | RTX 3090 Latency (ms) |
|---|---|---|---|
~/output/objects |
autoware_perception_msgs::msg::DetectedObjects |
Detected objects. | — |
latency/preprocess |
autoware_internal_debug_msgs::msg::Float64Stamped |
Preprocessing time per image(ms). | 3.25 |
latency/total |
autoware_internal_debug_msgs::msg::Float64Stamped |
Total processing time (ms): preprocessing + inference + postprocessing. | 26.04 |
latency/inference |
autoware_internal_debug_msgs::msg::Float64Stamped |
Total inference time (ms). | 22.13 |
latency/inference/backbone |
autoware_internal_debug_msgs::msg::Float64Stamped |
Backbone inference time (ms). | 16.21 |
latency/inference/ptshead |
autoware_internal_debug_msgs::msg::Float64Stamped |
Points head inference time (ms). | 5.45 |
latency/inference/pos_embed |
autoware_internal_debug_msgs::msg::Float64Stamped |
Position embedding inference time (ms). | 0.40 |
latency/inference/postprocess |
autoware_internal_debug_msgs::msg::Float64Stamped |
nms + filtering + converting network predictions to autoware format (ms). | 0.40 |
latency/cycle_time_ms |
autoware_internal_debug_msgs::msg::Float64Stamped |
Time between two consecutive predictions (ms). | 110.65 |
Parameters
StreamPETR node
The autoware_camera_streampetr node has various parameters for configuration:
Model Parameters
-
model_params.backbone_path: Path to the backbone ONNX model -
model_params.head_path: Path to the head ONNX model -
model_params.position_embedding_path: Path to the position embedding ONNX model -
model_params.fp16_mode: Enable FP16 inference mode -
model_params.use_temporal: Enable temporal modeling -
model_params.input_image_height: Input image height for preprocessing -
model_params.input_image_width: Input image width for preprocessing -
model_params.class_names: List of detection class names -
model_params.num_proposals: Number of object proposals
File truncated at 100 lines see the full file
Changelog for package autoware_camera_streampetr
0.50.0 (2026-02-14)
- Merge remote-tracking branch 'origin/main' into humble
- chore(stream_petr): remove invalid thrust stream policy for copy operations (#12064) Remove unnecessary thrust::device specification
- chore(autoware_camera_streampetr): remove cudnn dependency (#11890)
- Contributors: Amadeusz Szymko, Ryohsuke Mitsudome, Samrat Thapa
0.49.0 (2025-12-30)
-
Merge remote-tracking branch 'origin/main' into prepare-0.49.0-changelog
-
chore(streampetr): removed thrust stream policy (#11800)
- removed thrust stream
* syncronize stream before thrust ---------
-
fix: prevent possible dangling pointer from .str().c_str() pattern (#11609)
* Fix dangling pointer caused by the .str().c_str() pattern. std::stringstream::str() returns a temporary std::string, and taking its c_str() leads to a dangling pointer when the temporary is destroyed. This patch replaces such usage with a const reference of std::string variable to ensure pointer validity.
* Revert the changes made to the functions. They should only be applied to the macros. ---------Co-authored-by: Shumpei Wakabayashi <<42209144+shmpwk@users.noreply.github.com>> Co-authored-by: Junya Sasaki <<junya.sasaki@tier4.jp>>
-
feat(streampetr): class wise confidence threshold (#11756)
- class wise threshold
- style(pre-commit): autofix
- add checks
- style(pre-commit): autofix
- prevent cuda reallocatoin
- updated conf values
- style(pre-commit): autofix
- removed unused import
- add policy for thrust
- style(pre-commit): autofix
* use cuda_utils helpers ---------Co-authored-by: pre-commit-ci-lite[bot] <117423508+pre-commit-ci-lite[bot]@users.noreply.github.com>
-
feat(stream_petr): use dynamic triangle filter for image downsampling (#11724)
- downsample with anti-aliasing
- synchronize streams
- remove unused changes
- style(pre-commit): autofix
- fixed cuda sync location
- remove unused code
- added optimize TODO
* style(pre-commit): autofix ---------Co-authored-by: pre-commit-ci-lite[bot] <117423508+pre-commit-ci-lite[bot]@users.noreply.github.com>
-
Contributors: Ryohsuke Mitsudome, Samrat Thapa, Takatoshi Kondo
0.48.0 (2025-11-18)
-
Merge remote-tracking branch 'origin/main' into humble
-
fix: tf2 uses hpp headers in rolling (and is backported) (#11620)
-
feat(autoware_camera_streampetr): cuda based undistortion with rectification (#11420)
- working inference with distortion
- removed unnecessary code
- remove unused parameter
- style(pre-commit): autofix
- fixed based on comments
- style(pre-commit): autofix
- added unroll
- style(pre-commit): autofix
- comment for clarity
* style(pre-commit): autofix ---------Co-authored-by: pre-commit-ci-lite[bot] <117423508+pre-commit-ci-lite[bot]@users.noreply.github.com>
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
| Name |
|---|
| eigen |
Dependant Packages
Launch files
- launch/streampetr.launch.xml
-
- build_only [default: false]
- model_path [default: $(env HOME)/autoware_data/camera_streampetr]
- model_param_path [default: $(var model_path)/ml_package_camera_streampetr.param.yaml]
- node_param_path [default: $(find-pkg-share autoware_camera_streampetr)/config/camera_streampetr.param.yaml]
- is_compressed_image [default: false]
Messages
Services
Plugins
Recent questions tagged autoware_camera_streampetr at Robotics Stack Exchange
Package Summary
| Version | 0.50.0 |
| License | Apache License 2.0 |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Description | |
| Checkout URI | https://github.com/autowarefoundation/autoware_universe.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2026-02-25 |
| Dev Status | UNKNOWN |
| Released | UNRELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- samrat
- Kok Seang Tan
Authors
autoware_camera_streampetr
Purpose
The autoware_camera_streampetr package is used for 3D object detection based on images only.
Inner-workings / Algorithms
This package implements a TensorRT powered inference node for StreamPETR [1]. This is the first camera-only 3D object detection node in autoware.
This node has been optimized for multi-camera systems where the camera topics are published in a sequential manner, not all at once. The node takes advantage of this by preprocessing (resize, crop, normalize) the images and storing them appropriately on GPU, so that delay due to preprocessing can be minimized.
Topic for image_i arrived -------------------------
| |
| |
| |
v |
Is image distorted? |
| \ |
| \ |
Yes No |Image Updates
| | |done in parallel, if multitheading is on
v | |otherwise done sequentially in FIFO order
Undistort | |
| | |
v v |
Load image into GPU memory |
| |
v |
Preprocess image (scale & crop ROI & normalize) |
| |
v |
Store in GPU memory binding location for model input |
| -------------------------|
v |
Is image the `anchor_image`? |
| \ |
| \ |
No Yes |
| | |
v v | If multithreading is on
(Wait) Are all images synced within `max_time_difference`? | image Updates are temporarily frozen
| \ | until this part completes.
| \ |
Yes No |
| | |
v v |
Perform model forward pass (Sync failed! Skip prediction) |
| |
v |
Postprocess (NMS + ROS2 format) |
| |
v |
Publish predictions -------------------------|
Inputs / Outputs
Input
| Name | Type | Description |
|---|---|---|
~/input/camera*/image |
sensor_msgs::msg::Image or sensor_msgs::msg::CompressedImage
|
Input image topics (supports both compressed and uncompressed). |
~/input/camera*/camera_info |
sensor_msgs::msg::CameraInfo |
Input camera info topics, for camera parameters. |
Output
| Name | Type | Description | RTX 3090 Latency (ms) |
|---|---|---|---|
~/output/objects |
autoware_perception_msgs::msg::DetectedObjects |
Detected objects. | — |
latency/preprocess |
autoware_internal_debug_msgs::msg::Float64Stamped |
Preprocessing time per image(ms). | 3.25 |
latency/total |
autoware_internal_debug_msgs::msg::Float64Stamped |
Total processing time (ms): preprocessing + inference + postprocessing. | 26.04 |
latency/inference |
autoware_internal_debug_msgs::msg::Float64Stamped |
Total inference time (ms). | 22.13 |
latency/inference/backbone |
autoware_internal_debug_msgs::msg::Float64Stamped |
Backbone inference time (ms). | 16.21 |
latency/inference/ptshead |
autoware_internal_debug_msgs::msg::Float64Stamped |
Points head inference time (ms). | 5.45 |
latency/inference/pos_embed |
autoware_internal_debug_msgs::msg::Float64Stamped |
Position embedding inference time (ms). | 0.40 |
latency/inference/postprocess |
autoware_internal_debug_msgs::msg::Float64Stamped |
nms + filtering + converting network predictions to autoware format (ms). | 0.40 |
latency/cycle_time_ms |
autoware_internal_debug_msgs::msg::Float64Stamped |
Time between two consecutive predictions (ms). | 110.65 |
Parameters
StreamPETR node
The autoware_camera_streampetr node has various parameters for configuration:
Model Parameters
-
model_params.backbone_path: Path to the backbone ONNX model -
model_params.head_path: Path to the head ONNX model -
model_params.position_embedding_path: Path to the position embedding ONNX model -
model_params.fp16_mode: Enable FP16 inference mode -
model_params.use_temporal: Enable temporal modeling -
model_params.input_image_height: Input image height for preprocessing -
model_params.input_image_width: Input image width for preprocessing -
model_params.class_names: List of detection class names -
model_params.num_proposals: Number of object proposals
File truncated at 100 lines see the full file
Changelog for package autoware_camera_streampetr
0.50.0 (2026-02-14)
- Merge remote-tracking branch 'origin/main' into humble
- chore(stream_petr): remove invalid thrust stream policy for copy operations (#12064) Remove unnecessary thrust::device specification
- chore(autoware_camera_streampetr): remove cudnn dependency (#11890)
- Contributors: Amadeusz Szymko, Ryohsuke Mitsudome, Samrat Thapa
0.49.0 (2025-12-30)
-
Merge remote-tracking branch 'origin/main' into prepare-0.49.0-changelog
-
chore(streampetr): removed thrust stream policy (#11800)
- removed thrust stream
* syncronize stream before thrust ---------
-
fix: prevent possible dangling pointer from .str().c_str() pattern (#11609)
* Fix dangling pointer caused by the .str().c_str() pattern. std::stringstream::str() returns a temporary std::string, and taking its c_str() leads to a dangling pointer when the temporary is destroyed. This patch replaces such usage with a const reference of std::string variable to ensure pointer validity.
* Revert the changes made to the functions. They should only be applied to the macros. ---------Co-authored-by: Shumpei Wakabayashi <<42209144+shmpwk@users.noreply.github.com>> Co-authored-by: Junya Sasaki <<junya.sasaki@tier4.jp>>
-
feat(streampetr): class wise confidence threshold (#11756)
- class wise threshold
- style(pre-commit): autofix
- add checks
- style(pre-commit): autofix
- prevent cuda reallocatoin
- updated conf values
- style(pre-commit): autofix
- removed unused import
- add policy for thrust
- style(pre-commit): autofix
* use cuda_utils helpers ---------Co-authored-by: pre-commit-ci-lite[bot] <117423508+pre-commit-ci-lite[bot]@users.noreply.github.com>
-
feat(stream_petr): use dynamic triangle filter for image downsampling (#11724)
- downsample with anti-aliasing
- synchronize streams
- remove unused changes
- style(pre-commit): autofix
- fixed cuda sync location
- remove unused code
- added optimize TODO
* style(pre-commit): autofix ---------Co-authored-by: pre-commit-ci-lite[bot] <117423508+pre-commit-ci-lite[bot]@users.noreply.github.com>
-
Contributors: Ryohsuke Mitsudome, Samrat Thapa, Takatoshi Kondo
0.48.0 (2025-11-18)
-
Merge remote-tracking branch 'origin/main' into humble
-
fix: tf2 uses hpp headers in rolling (and is backported) (#11620)
-
feat(autoware_camera_streampetr): cuda based undistortion with rectification (#11420)
- working inference with distortion
- removed unnecessary code
- remove unused parameter
- style(pre-commit): autofix
- fixed based on comments
- style(pre-commit): autofix
- added unroll
- style(pre-commit): autofix
- comment for clarity
* style(pre-commit): autofix ---------Co-authored-by: pre-commit-ci-lite[bot] <117423508+pre-commit-ci-lite[bot]@users.noreply.github.com>
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
| Name |
|---|
| eigen |
Dependant Packages
Launch files
- launch/streampetr.launch.xml
-
- build_only [default: false]
- model_path [default: $(env HOME)/autoware_data/camera_streampetr]
- model_param_path [default: $(var model_path)/ml_package_camera_streampetr.param.yaml]
- node_param_path [default: $(find-pkg-share autoware_camera_streampetr)/config/camera_streampetr.param.yaml]
- is_compressed_image [default: false]
Messages
Services
Plugins
Recent questions tagged autoware_camera_streampetr at Robotics Stack Exchange
Package Summary
| Version | 0.50.0 |
| License | Apache License 2.0 |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Description | |
| Checkout URI | https://github.com/autowarefoundation/autoware_universe.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2026-02-25 |
| Dev Status | UNKNOWN |
| Released | UNRELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- samrat
- Kok Seang Tan
Authors
autoware_camera_streampetr
Purpose
The autoware_camera_streampetr package is used for 3D object detection based on images only.
Inner-workings / Algorithms
This package implements a TensorRT powered inference node for StreamPETR [1]. This is the first camera-only 3D object detection node in autoware.
This node has been optimized for multi-camera systems where the camera topics are published in a sequential manner, not all at once. The node takes advantage of this by preprocessing (resize, crop, normalize) the images and storing them appropriately on GPU, so that delay due to preprocessing can be minimized.
Topic for image_i arrived -------------------------
| |
| |
| |
v |
Is image distorted? |
| \ |
| \ |
Yes No |Image Updates
| | |done in parallel, if multitheading is on
v | |otherwise done sequentially in FIFO order
Undistort | |
| | |
v v |
Load image into GPU memory |
| |
v |
Preprocess image (scale & crop ROI & normalize) |
| |
v |
Store in GPU memory binding location for model input |
| -------------------------|
v |
Is image the `anchor_image`? |
| \ |
| \ |
No Yes |
| | |
v v | If multithreading is on
(Wait) Are all images synced within `max_time_difference`? | image Updates are temporarily frozen
| \ | until this part completes.
| \ |
Yes No |
| | |
v v |
Perform model forward pass (Sync failed! Skip prediction) |
| |
v |
Postprocess (NMS + ROS2 format) |
| |
v |
Publish predictions -------------------------|
Inputs / Outputs
Input
| Name | Type | Description |
|---|---|---|
~/input/camera*/image |
sensor_msgs::msg::Image or sensor_msgs::msg::CompressedImage
|
Input image topics (supports both compressed and uncompressed). |
~/input/camera*/camera_info |
sensor_msgs::msg::CameraInfo |
Input camera info topics, for camera parameters. |
Output
| Name | Type | Description | RTX 3090 Latency (ms) |
|---|---|---|---|
~/output/objects |
autoware_perception_msgs::msg::DetectedObjects |
Detected objects. | — |
latency/preprocess |
autoware_internal_debug_msgs::msg::Float64Stamped |
Preprocessing time per image(ms). | 3.25 |
latency/total |
autoware_internal_debug_msgs::msg::Float64Stamped |
Total processing time (ms): preprocessing + inference + postprocessing. | 26.04 |
latency/inference |
autoware_internal_debug_msgs::msg::Float64Stamped |
Total inference time (ms). | 22.13 |
latency/inference/backbone |
autoware_internal_debug_msgs::msg::Float64Stamped |
Backbone inference time (ms). | 16.21 |
latency/inference/ptshead |
autoware_internal_debug_msgs::msg::Float64Stamped |
Points head inference time (ms). | 5.45 |
latency/inference/pos_embed |
autoware_internal_debug_msgs::msg::Float64Stamped |
Position embedding inference time (ms). | 0.40 |
latency/inference/postprocess |
autoware_internal_debug_msgs::msg::Float64Stamped |
nms + filtering + converting network predictions to autoware format (ms). | 0.40 |
latency/cycle_time_ms |
autoware_internal_debug_msgs::msg::Float64Stamped |
Time between two consecutive predictions (ms). | 110.65 |
Parameters
StreamPETR node
The autoware_camera_streampetr node has various parameters for configuration:
Model Parameters
-
model_params.backbone_path: Path to the backbone ONNX model -
model_params.head_path: Path to the head ONNX model -
model_params.position_embedding_path: Path to the position embedding ONNX model -
model_params.fp16_mode: Enable FP16 inference mode -
model_params.use_temporal: Enable temporal modeling -
model_params.input_image_height: Input image height for preprocessing -
model_params.input_image_width: Input image width for preprocessing -
model_params.class_names: List of detection class names -
model_params.num_proposals: Number of object proposals
File truncated at 100 lines see the full file
Changelog for package autoware_camera_streampetr
0.50.0 (2026-02-14)
- Merge remote-tracking branch 'origin/main' into humble
- chore(stream_petr): remove invalid thrust stream policy for copy operations (#12064) Remove unnecessary thrust::device specification
- chore(autoware_camera_streampetr): remove cudnn dependency (#11890)
- Contributors: Amadeusz Szymko, Ryohsuke Mitsudome, Samrat Thapa
0.49.0 (2025-12-30)
-
Merge remote-tracking branch 'origin/main' into prepare-0.49.0-changelog
-
chore(streampetr): removed thrust stream policy (#11800)
- removed thrust stream
* syncronize stream before thrust ---------
-
fix: prevent possible dangling pointer from .str().c_str() pattern (#11609)
* Fix dangling pointer caused by the .str().c_str() pattern. std::stringstream::str() returns a temporary std::string, and taking its c_str() leads to a dangling pointer when the temporary is destroyed. This patch replaces such usage with a const reference of std::string variable to ensure pointer validity.
* Revert the changes made to the functions. They should only be applied to the macros. ---------Co-authored-by: Shumpei Wakabayashi <<42209144+shmpwk@users.noreply.github.com>> Co-authored-by: Junya Sasaki <<junya.sasaki@tier4.jp>>
-
feat(streampetr): class wise confidence threshold (#11756)
- class wise threshold
- style(pre-commit): autofix
- add checks
- style(pre-commit): autofix
- prevent cuda reallocatoin
- updated conf values
- style(pre-commit): autofix
- removed unused import
- add policy for thrust
- style(pre-commit): autofix
* use cuda_utils helpers ---------Co-authored-by: pre-commit-ci-lite[bot] <117423508+pre-commit-ci-lite[bot]@users.noreply.github.com>
-
feat(stream_petr): use dynamic triangle filter for image downsampling (#11724)
- downsample with anti-aliasing
- synchronize streams
- remove unused changes
- style(pre-commit): autofix
- fixed cuda sync location
- remove unused code
- added optimize TODO
* style(pre-commit): autofix ---------Co-authored-by: pre-commit-ci-lite[bot] <117423508+pre-commit-ci-lite[bot]@users.noreply.github.com>
-
Contributors: Ryohsuke Mitsudome, Samrat Thapa, Takatoshi Kondo
0.48.0 (2025-11-18)
-
Merge remote-tracking branch 'origin/main' into humble
-
fix: tf2 uses hpp headers in rolling (and is backported) (#11620)
-
feat(autoware_camera_streampetr): cuda based undistortion with rectification (#11420)
- working inference with distortion
- removed unnecessary code
- remove unused parameter
- style(pre-commit): autofix
- fixed based on comments
- style(pre-commit): autofix
- added unroll
- style(pre-commit): autofix
- comment for clarity
* style(pre-commit): autofix ---------Co-authored-by: pre-commit-ci-lite[bot] <117423508+pre-commit-ci-lite[bot]@users.noreply.github.com>
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
| Name |
|---|
| eigen |
Dependant Packages
Launch files
- launch/streampetr.launch.xml
-
- build_only [default: false]
- model_path [default: $(env HOME)/autoware_data/camera_streampetr]
- model_param_path [default: $(var model_path)/ml_package_camera_streampetr.param.yaml]
- node_param_path [default: $(find-pkg-share autoware_camera_streampetr)/config/camera_streampetr.param.yaml]
- is_compressed_image [default: false]
Messages
Services
Plugins
Recent questions tagged autoware_camera_streampetr at Robotics Stack Exchange
Package Summary
| Version | 0.50.0 |
| License | Apache License 2.0 |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Description | |
| Checkout URI | https://github.com/autowarefoundation/autoware_universe.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2026-02-25 |
| Dev Status | UNKNOWN |
| Released | UNRELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- samrat
- Kok Seang Tan
Authors
autoware_camera_streampetr
Purpose
The autoware_camera_streampetr package is used for 3D object detection based on images only.
Inner-workings / Algorithms
This package implements a TensorRT powered inference node for StreamPETR [1]. This is the first camera-only 3D object detection node in autoware.
This node has been optimized for multi-camera systems where the camera topics are published in a sequential manner, not all at once. The node takes advantage of this by preprocessing (resize, crop, normalize) the images and storing them appropriately on GPU, so that delay due to preprocessing can be minimized.
Topic for image_i arrived -------------------------
| |
| |
| |
v |
Is image distorted? |
| \ |
| \ |
Yes No |Image Updates
| | |done in parallel, if multitheading is on
v | |otherwise done sequentially in FIFO order
Undistort | |
| | |
v v |
Load image into GPU memory |
| |
v |
Preprocess image (scale & crop ROI & normalize) |
| |
v |
Store in GPU memory binding location for model input |
| -------------------------|
v |
Is image the `anchor_image`? |
| \ |
| \ |
No Yes |
| | |
v v | If multithreading is on
(Wait) Are all images synced within `max_time_difference`? | image Updates are temporarily frozen
| \ | until this part completes.
| \ |
Yes No |
| | |
v v |
Perform model forward pass (Sync failed! Skip prediction) |
| |
v |
Postprocess (NMS + ROS2 format) |
| |
v |
Publish predictions -------------------------|
Inputs / Outputs
Input
| Name | Type | Description |
|---|---|---|
~/input/camera*/image |
sensor_msgs::msg::Image or sensor_msgs::msg::CompressedImage
|
Input image topics (supports both compressed and uncompressed). |
~/input/camera*/camera_info |
sensor_msgs::msg::CameraInfo |
Input camera info topics, for camera parameters. |
Output
| Name | Type | Description | RTX 3090 Latency (ms) |
|---|---|---|---|
~/output/objects |
autoware_perception_msgs::msg::DetectedObjects |
Detected objects. | — |
latency/preprocess |
autoware_internal_debug_msgs::msg::Float64Stamped |
Preprocessing time per image(ms). | 3.25 |
latency/total |
autoware_internal_debug_msgs::msg::Float64Stamped |
Total processing time (ms): preprocessing + inference + postprocessing. | 26.04 |
latency/inference |
autoware_internal_debug_msgs::msg::Float64Stamped |
Total inference time (ms). | 22.13 |
latency/inference/backbone |
autoware_internal_debug_msgs::msg::Float64Stamped |
Backbone inference time (ms). | 16.21 |
latency/inference/ptshead |
autoware_internal_debug_msgs::msg::Float64Stamped |
Points head inference time (ms). | 5.45 |
latency/inference/pos_embed |
autoware_internal_debug_msgs::msg::Float64Stamped |
Position embedding inference time (ms). | 0.40 |
latency/inference/postprocess |
autoware_internal_debug_msgs::msg::Float64Stamped |
nms + filtering + converting network predictions to autoware format (ms). | 0.40 |
latency/cycle_time_ms |
autoware_internal_debug_msgs::msg::Float64Stamped |
Time between two consecutive predictions (ms). | 110.65 |
Parameters
StreamPETR node
The autoware_camera_streampetr node has various parameters for configuration:
Model Parameters
-
model_params.backbone_path: Path to the backbone ONNX model -
model_params.head_path: Path to the head ONNX model -
model_params.position_embedding_path: Path to the position embedding ONNX model -
model_params.fp16_mode: Enable FP16 inference mode -
model_params.use_temporal: Enable temporal modeling -
model_params.input_image_height: Input image height for preprocessing -
model_params.input_image_width: Input image width for preprocessing -
model_params.class_names: List of detection class names -
model_params.num_proposals: Number of object proposals
File truncated at 100 lines see the full file
Changelog for package autoware_camera_streampetr
0.50.0 (2026-02-14)
- Merge remote-tracking branch 'origin/main' into humble
- chore(stream_petr): remove invalid thrust stream policy for copy operations (#12064) Remove unnecessary thrust::device specification
- chore(autoware_camera_streampetr): remove cudnn dependency (#11890)
- Contributors: Amadeusz Szymko, Ryohsuke Mitsudome, Samrat Thapa
0.49.0 (2025-12-30)
-
Merge remote-tracking branch 'origin/main' into prepare-0.49.0-changelog
-
chore(streampetr): removed thrust stream policy (#11800)
- removed thrust stream
* syncronize stream before thrust ---------
-
fix: prevent possible dangling pointer from .str().c_str() pattern (#11609)
* Fix dangling pointer caused by the .str().c_str() pattern. std::stringstream::str() returns a temporary std::string, and taking its c_str() leads to a dangling pointer when the temporary is destroyed. This patch replaces such usage with a const reference of std::string variable to ensure pointer validity.
* Revert the changes made to the functions. They should only be applied to the macros. ---------Co-authored-by: Shumpei Wakabayashi <<42209144+shmpwk@users.noreply.github.com>> Co-authored-by: Junya Sasaki <<junya.sasaki@tier4.jp>>
-
feat(streampetr): class wise confidence threshold (#11756)
- class wise threshold
- style(pre-commit): autofix
- add checks
- style(pre-commit): autofix
- prevent cuda reallocatoin
- updated conf values
- style(pre-commit): autofix
- removed unused import
- add policy for thrust
- style(pre-commit): autofix
* use cuda_utils helpers ---------Co-authored-by: pre-commit-ci-lite[bot] <117423508+pre-commit-ci-lite[bot]@users.noreply.github.com>
-
feat(stream_petr): use dynamic triangle filter for image downsampling (#11724)
- downsample with anti-aliasing
- synchronize streams
- remove unused changes
- style(pre-commit): autofix
- fixed cuda sync location
- remove unused code
- added optimize TODO
* style(pre-commit): autofix ---------Co-authored-by: pre-commit-ci-lite[bot] <117423508+pre-commit-ci-lite[bot]@users.noreply.github.com>
-
Contributors: Ryohsuke Mitsudome, Samrat Thapa, Takatoshi Kondo
0.48.0 (2025-11-18)
-
Merge remote-tracking branch 'origin/main' into humble
-
fix: tf2 uses hpp headers in rolling (and is backported) (#11620)
-
feat(autoware_camera_streampetr): cuda based undistortion with rectification (#11420)
- working inference with distortion
- removed unnecessary code
- remove unused parameter
- style(pre-commit): autofix
- fixed based on comments
- style(pre-commit): autofix
- added unroll
- style(pre-commit): autofix
- comment for clarity
* style(pre-commit): autofix ---------Co-authored-by: pre-commit-ci-lite[bot] <117423508+pre-commit-ci-lite[bot]@users.noreply.github.com>
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
| Name |
|---|
| eigen |
Dependant Packages
Launch files
- launch/streampetr.launch.xml
-
- build_only [default: false]
- model_path [default: $(env HOME)/autoware_data/camera_streampetr]
- model_param_path [default: $(var model_path)/ml_package_camera_streampetr.param.yaml]
- node_param_path [default: $(find-pkg-share autoware_camera_streampetr)/config/camera_streampetr.param.yaml]
- is_compressed_image [default: false]
Messages
Services
Plugins
Recent questions tagged autoware_camera_streampetr at Robotics Stack Exchange
Package Summary
| Version | 0.50.0 |
| License | Apache License 2.0 |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Description | |
| Checkout URI | https://github.com/autowarefoundation/autoware_universe.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2026-02-25 |
| Dev Status | UNKNOWN |
| Released | UNRELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- samrat
- Kok Seang Tan
Authors
autoware_camera_streampetr
Purpose
The autoware_camera_streampetr package is used for 3D object detection based on images only.
Inner-workings / Algorithms
This package implements a TensorRT powered inference node for StreamPETR [1]. This is the first camera-only 3D object detection node in autoware.
This node has been optimized for multi-camera systems where the camera topics are published in a sequential manner, not all at once. The node takes advantage of this by preprocessing (resize, crop, normalize) the images and storing them appropriately on GPU, so that delay due to preprocessing can be minimized.
Topic for image_i arrived -------------------------
| |
| |
| |
v |
Is image distorted? |
| \ |
| \ |
Yes No |Image Updates
| | |done in parallel, if multitheading is on
v | |otherwise done sequentially in FIFO order
Undistort | |
| | |
v v |
Load image into GPU memory |
| |
v |
Preprocess image (scale & crop ROI & normalize) |
| |
v |
Store in GPU memory binding location for model input |
| -------------------------|
v |
Is image the `anchor_image`? |
| \ |
| \ |
No Yes |
| | |
v v | If multithreading is on
(Wait) Are all images synced within `max_time_difference`? | image Updates are temporarily frozen
| \ | until this part completes.
| \ |
Yes No |
| | |
v v |
Perform model forward pass (Sync failed! Skip prediction) |
| |
v |
Postprocess (NMS + ROS2 format) |
| |
v |
Publish predictions -------------------------|
Inputs / Outputs
Input
| Name | Type | Description |
|---|---|---|
~/input/camera*/image |
sensor_msgs::msg::Image or sensor_msgs::msg::CompressedImage
|
Input image topics (supports both compressed and uncompressed). |
~/input/camera*/camera_info |
sensor_msgs::msg::CameraInfo |
Input camera info topics, for camera parameters. |
Output
| Name | Type | Description | RTX 3090 Latency (ms) |
|---|---|---|---|
~/output/objects |
autoware_perception_msgs::msg::DetectedObjects |
Detected objects. | — |
latency/preprocess |
autoware_internal_debug_msgs::msg::Float64Stamped |
Preprocessing time per image(ms). | 3.25 |
latency/total |
autoware_internal_debug_msgs::msg::Float64Stamped |
Total processing time (ms): preprocessing + inference + postprocessing. | 26.04 |
latency/inference |
autoware_internal_debug_msgs::msg::Float64Stamped |
Total inference time (ms). | 22.13 |
latency/inference/backbone |
autoware_internal_debug_msgs::msg::Float64Stamped |
Backbone inference time (ms). | 16.21 |
latency/inference/ptshead |
autoware_internal_debug_msgs::msg::Float64Stamped |
Points head inference time (ms). | 5.45 |
latency/inference/pos_embed |
autoware_internal_debug_msgs::msg::Float64Stamped |
Position embedding inference time (ms). | 0.40 |
latency/inference/postprocess |
autoware_internal_debug_msgs::msg::Float64Stamped |
nms + filtering + converting network predictions to autoware format (ms). | 0.40 |
latency/cycle_time_ms |
autoware_internal_debug_msgs::msg::Float64Stamped |
Time between two consecutive predictions (ms). | 110.65 |
Parameters
StreamPETR node
The autoware_camera_streampetr node has various parameters for configuration:
Model Parameters
-
model_params.backbone_path: Path to the backbone ONNX model -
model_params.head_path: Path to the head ONNX model -
model_params.position_embedding_path: Path to the position embedding ONNX model -
model_params.fp16_mode: Enable FP16 inference mode -
model_params.use_temporal: Enable temporal modeling -
model_params.input_image_height: Input image height for preprocessing -
model_params.input_image_width: Input image width for preprocessing -
model_params.class_names: List of detection class names -
model_params.num_proposals: Number of object proposals
File truncated at 100 lines see the full file
Changelog for package autoware_camera_streampetr
0.50.0 (2026-02-14)
- Merge remote-tracking branch 'origin/main' into humble
- chore(stream_petr): remove invalid thrust stream policy for copy operations (#12064) Remove unnecessary thrust::device specification
- chore(autoware_camera_streampetr): remove cudnn dependency (#11890)
- Contributors: Amadeusz Szymko, Ryohsuke Mitsudome, Samrat Thapa
0.49.0 (2025-12-30)
-
Merge remote-tracking branch 'origin/main' into prepare-0.49.0-changelog
-
chore(streampetr): removed thrust stream policy (#11800)
- removed thrust stream
* syncronize stream before thrust ---------
-
fix: prevent possible dangling pointer from .str().c_str() pattern (#11609)
* Fix dangling pointer caused by the .str().c_str() pattern. std::stringstream::str() returns a temporary std::string, and taking its c_str() leads to a dangling pointer when the temporary is destroyed. This patch replaces such usage with a const reference of std::string variable to ensure pointer validity.
* Revert the changes made to the functions. They should only be applied to the macros. ---------Co-authored-by: Shumpei Wakabayashi <<42209144+shmpwk@users.noreply.github.com>> Co-authored-by: Junya Sasaki <<junya.sasaki@tier4.jp>>
-
feat(streampetr): class wise confidence threshold (#11756)
- class wise threshold
- style(pre-commit): autofix
- add checks
- style(pre-commit): autofix
- prevent cuda reallocatoin
- updated conf values
- style(pre-commit): autofix
- removed unused import
- add policy for thrust
- style(pre-commit): autofix
* use cuda_utils helpers ---------Co-authored-by: pre-commit-ci-lite[bot] <117423508+pre-commit-ci-lite[bot]@users.noreply.github.com>
-
feat(stream_petr): use dynamic triangle filter for image downsampling (#11724)
- downsample with anti-aliasing
- synchronize streams
- remove unused changes
- style(pre-commit): autofix
- fixed cuda sync location
- remove unused code
- added optimize TODO
* style(pre-commit): autofix ---------Co-authored-by: pre-commit-ci-lite[bot] <117423508+pre-commit-ci-lite[bot]@users.noreply.github.com>
-
Contributors: Ryohsuke Mitsudome, Samrat Thapa, Takatoshi Kondo
0.48.0 (2025-11-18)
-
Merge remote-tracking branch 'origin/main' into humble
-
fix: tf2 uses hpp headers in rolling (and is backported) (#11620)
-
feat(autoware_camera_streampetr): cuda based undistortion with rectification (#11420)
- working inference with distortion
- removed unnecessary code
- remove unused parameter
- style(pre-commit): autofix
- fixed based on comments
- style(pre-commit): autofix
- added unroll
- style(pre-commit): autofix
- comment for clarity
* style(pre-commit): autofix ---------Co-authored-by: pre-commit-ci-lite[bot] <117423508+pre-commit-ci-lite[bot]@users.noreply.github.com>
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
| Name |
|---|
| eigen |
Dependant Packages
Launch files
- launch/streampetr.launch.xml
-
- build_only [default: false]
- model_path [default: $(env HOME)/autoware_data/camera_streampetr]
- model_param_path [default: $(var model_path)/ml_package_camera_streampetr.param.yaml]
- node_param_path [default: $(find-pkg-share autoware_camera_streampetr)/config/camera_streampetr.param.yaml]
- is_compressed_image [default: false]