Skip to content
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.

Commit d891ef7

Browse files
amadeuszszpre-commit-ci[bot]knzo25
authoredJun 7, 2024
feat(lidar_transfusion): add lidar_transfusion 3D detection package (autowarefoundation#6890)
* feat(lidar_transfusion): add lidar_transfusion 3D detection package Signed-off-by: amadeuszsz <amadeusz.szymko@tier4.jp> * style(pre-commit): autofix * style(lidar_transfusion): cpplint Signed-off-by: amadeuszsz <amadeusz.szymko@tier4.jp> * style(lidar_transfusion): cspell Signed-off-by: Amadeusz Szymko <amadeusz.szymko@tier4.jp> * fix(lidar_transfusion): CUDA mem allocation & inference input Signed-off-by: amadeuszsz <amadeusz.szymko@tier4.jp> * style(pre-commit): autofix * fix(lidar_transfusion): arrays size Signed-off-by: amadeuszsz <amadeusz.szymko@tier4.jp> * style(pre-commit): autofix * chore(lidar_transfusion): update maintainers Co-authored-by: Satoshi Tanaka <16330533+scepter914@users.noreply.github.com> Signed-off-by: amadeuszsz <amadeusz.szymko@tier4.jp> * fix(lidar_transfusion): array size & grid idx Signed-off-by: amadeuszsz <amadeusz.szymko@tier4.jp> * chore(lidar_transfusion): update maintainer email Signed-off-by: amadeuszsz <amadeusz.szymko.2@tier4.jp> * chore: added transfusion to the respective launchers Signed-off-by: Kenzo Lobos-Tsunekawa <kenzo.lobos@tier4.jp> * refactor(lidar_transfusion): rename config Signed-off-by: amadeuszsz <amadeusz.szymko.2@tier4.jp> * refactor(lidar_transfusion): callback access specifier Signed-off-by: amadeuszsz <amadeusz.szymko@tier4.jp> * refactor(lidar_transfusion): pointers initialziation Signed-off-by: amadeuszsz <amadeusz.szymko@tier4.jp> * refactor(lidar_transfusion): change macros for constexpr Signed-off-by: amadeuszsz <amadeusz.szymko@tier4.jp> * refactor(lidar_transfusion): consts & uniform initialization Signed-off-by: amadeuszsz <amadeusz.szymko@tier4.jp> * refactor(lidar_transfusion): change to unique ptr & uniform initialization Signed-off-by: amadeuszsz <amadeusz.szymko@tier4.jp> * style(pre-commit): autofix * refactor(lidar_transfusion): use of config params Signed-off-by: amadeuszsz <amadeusz.szymko.2@tier4.jp> * refactor(lidar_transfusion): remove unnecessary condition Signed-off-by: amadeuszsz <amadeusz.szymko.2@tier4.jp> * style(lidar_transfusion): switch naming (CPU to HOST) Signed-off-by: amadeuszsz <amadeusz.szymko.2@tier4.jp> * refactor(lidar_transfusion): remove redundant device sync Signed-off-by: amadeuszsz <amadeusz.szymko.2@tier4.jp> * style(lidar_transfusion): intensity naming Signed-off-by: amadeuszsz <amadeusz.szymko.2@tier4.jp> * feat(lidar_transfusion): full network shape validation Signed-off-by: amadeuszsz <amadeusz.szymko.2@tier4.jp> * feat(lidar_transfusion): validate objects' orientation in host processing Signed-off-by: amadeuszsz <amadeusz.szymko.2@tier4.jp> * feat(lidar_transfusion): add json schema Signed-off-by: amadeuszsz <amadeusz.szymko.2@tier4.jp> * style(pre-commit): autofix * style(lidar_transfusion): affine matrix naming Signed-off-by: amadeuszsz <amadeusz.szymko.2@tier4.jp> * style(lidar_transfusion): transformed point naming Signed-off-by: amadeuszsz <amadeusz.szymko.2@tier4.jp> * refactor(lidar_transfusion): add param descriptor & arrays size check Signed-off-by: amadeuszsz <amadeusz.szymko.2@tier4.jp> * style(lidar_transfusion): affine matrix naming Signed-off-by: amadeuszsz <amadeusz.szymko.2@tier4.jp> * feat(lidar_transfusion): caching cloud input as device ptr Signed-off-by: amadeuszsz <amadeusz.szymko.2@tier4.jp> * fix(lidar_transfusion): logging Signed-off-by: amadeuszsz <amadeusz.szymko.2@tier4.jp> * chore(tier4_perception_launch): revert to centerpoint Signed-off-by: amadeuszsz <amadeusz.szymko.2@tier4.jp> * fix(lidar_transfusion): typo Signed-off-by: amadeuszsz <amadeusz.szymko.2@tier4.jp> * docs(lidar_transfusion): use hook for param description Signed-off-by: amadeuszsz <amadeusz.szymko.2@tier4.jp> * fix(lidar_transfusion): interpret eigen matrix as col major Signed-off-by: amadeuszsz <amadeusz.szymko.2@tier4.jp> * feat(lidar_transfusion): update to autware_msgs Signed-off-by: amadeuszsz <amadeusz.szymko.2@tier4.jp> --------- Signed-off-by: Amadeusz Szymko <amadeusz.szymko.2@tier4.jp> Signed-off-by: Kenzo Lobos-Tsunekawa <kenzo.lobos@tier4.jp> Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com> Co-authored-by: Kenzo Lobos Tsunekawa <kenzo.lobos@tier4.jp>
1 parent f93e5b3 commit d891ef7

37 files changed

+3587
-4
lines changed
 

‎launch/tier4_perception_launch/launch/object_recognition/detection/detection.launch.xml

+1-1
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55

66
<!-- Lidar parameters -->
77
<arg name="input/pointcloud"/>
8-
<arg name="lidar_detection_model" default="centerpoint" description="options: `centerpoint`, `apollo`, `pointpainting`, `clustering`"/>
8+
<arg name="lidar_detection_model" default="centerpoint" description="options: `transfusion`, `centerpoint`, `apollo`, `pointpainting`, `clustering`"/>
99
<arg name="use_object_filter" default="true" description="use object filter"/>
1010
<arg name="pointcloud_container_name" default="pointcloud_container"/>
1111

‎launch/tier4_perception_launch/launch/object_recognition/detection/detector/lidar_dnn_detector.launch.xml

+27-2
Original file line numberDiff line numberDiff line change
@@ -2,16 +2,41 @@
22
<launch>
33
<!-- Lidar parameters -->
44
<arg name="input/pointcloud"/>
5-
<arg name="lidar_detection_model" default="centerpoint" description="options: `centerpoint`, `apollo`, `clustering`"/>
5+
<arg name="lidar_detection_model" default="centerpoint" description="options: `transfusion`, `centerpoint`, `apollo`, `clustering`"/>
66

77
<!-- Lidar detector centerpoint parameters -->
88
<arg name="centerpoint_model_name" default="centerpoint_tiny" description="options: `centerpoint`, `centerpoint_tiny` or `centerpoint_sigma`"/>
99
<arg name="centerpoint_model_path" default="$(var data_path)/lidar_centerpoint"/>
10-
<arg name="lidar_model_param_path" default="$(find-pkg-share lidar_centerpoint)/config"/>
10+
11+
<!-- Lidar detector transfusion parameters -->
12+
<arg name="transfusion_model_name" default="transfusion" description="options: `transfusion`"/>
13+
<arg name="transfusion_model_path" default="$(var data_path)/lidar_transfusion"/>
14+
15+
<!-- TransFusion -->
16+
<group if="$(eval &quot;'$(var lidar_detection_model)'=='transfusion'&quot;)">
17+
<push-ros-namespace namespace="transfusion"/>
18+
<arg name="lidar_model_param_path" default="$(find-pkg-share lidar_transfusion)/config"/>
19+
20+
<group>
21+
<include file="$(find-pkg-share lidar_transfusion)/launch/lidar_transfusion.launch.xml">
22+
<arg name="input/pointcloud" value="$(var input/pointcloud)"/>
23+
<arg name="output/objects" value="objects"/>
24+
<arg name="model_name" value="$(var transfusion_model_name)"/>
25+
<arg name="model_path" value="$(var transfusion_model_path)"/>
26+
<arg name="model_param_path" value="$(var lidar_model_param_path)/$(var transfusion_model_name).param.yaml"/>
27+
<arg name="class_remapper_param_path" value="$(var lidar_model_param_path)/detection_class_remapper.param.yaml"/>
28+
29+
<arg name="use_pointcloud_container" value="true"/>
30+
<arg name="pointcloud_container_name" value="$(var pointcloud_container_name)"/>
31+
</include>
32+
</group>
33+
</group>
1134

1235
<!-- CenterPoint -->
1336
<group if="$(eval &quot;'$(var lidar_detection_model)'=='centerpoint'&quot;)">
1437
<push-ros-namespace namespace="centerpoint"/>
38+
<arg name="lidar_model_param_path" default="$(find-pkg-share lidar_centerpoint)/config"/>
39+
1540
<group>
1641
<include file="$(find-pkg-share lidar_centerpoint)/launch/lidar_centerpoint.launch.xml">
1742
<arg name="input/pointcloud" value="$(var input/pointcloud)"/>

‎launch/tier4_perception_launch/launch/perception.launch.xml

+1-1
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,7 @@
4747
<arg name="input/pointcloud" default="/sensing/lidar/concatenated/pointcloud" description="The topic will be used in the detection module"/>
4848
<arg name="mode" default="camera_lidar_fusion" description="options: `camera_lidar_radar_fusion`, `camera_lidar_fusion`, `lidar_radar_fusion`, `lidar` or `radar`"/>
4949
<arg name="data_path" default="$(env HOME)/autoware_data" description="packages data and artifacts directory path"/>
50-
<arg name="lidar_detection_model" default="centerpoint" description="options: `centerpoint`, `apollo`, `pointpainting`, `clustering`"/>
50+
<arg name="lidar_detection_model" default="centerpoint" description="options: `transfusion`, `centerpoint`, `apollo`, `pointpainting`, `clustering`"/>
5151
<arg name="image_raw0" default="/sensing/camera/camera0/image_rect_color" description="image raw topic name"/>
5252
<arg name="camera_info0" default="/sensing/camera/camera0/camera_info" description="camera info topic name"/>
5353
<arg name="detection_rois0" default="/perception/object_recognition/detection/rois0" description="detection rois output topic name"/>
+156
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,156 @@
1+
cmake_minimum_required(VERSION 3.14)
2+
project(lidar_transfusion)
3+
4+
find_package(autoware_cmake REQUIRED)
5+
autoware_package()
6+
7+
add_compile_options(-Wno-deprecated-declarations)
8+
9+
option(CUDA_VERBOSE "Verbose output of CUDA modules" OFF)
10+
11+
# set flags for CUDA availability
12+
option(CUDA_AVAIL "CUDA available" OFF)
13+
find_package(CUDA)
14+
if(CUDA_FOUND)
15+
find_library(CUBLAS_LIBRARIES cublas HINTS
16+
${CUDA_TOOLKIT_ROOT_DIR}/lib64
17+
${CUDA_TOOLKIT_ROOT_DIR}/lib
18+
)
19+
if(CUDA_VERBOSE)
20+
message("CUDA is available!")
21+
message("CUDA Libs: ${CUDA_LIBRARIES}")
22+
message("CUDA Headers: ${CUDA_INCLUDE_DIRS}")
23+
endif()
24+
# Note: cublas_device was depreciated in CUDA version 9.2
25+
# https://forums.developer.nvidia.com/t/where-can-i-find-libcublas-device-so-or-libcublas-device-a/67251/4
26+
# In LibTorch, CUDA_cublas_device_LIBRARY is used.
27+
unset(CUDA_cublas_device_LIBRARY CACHE)
28+
set(CUDA_AVAIL ON)
29+
else()
30+
message("CUDA NOT FOUND")
31+
set(CUDA_AVAIL OFF)
32+
endif()
33+
34+
# set flags for TensorRT availability
35+
option(TRT_AVAIL "TensorRT available" OFF)
36+
# try to find the tensorRT modules
37+
find_library(NVINFER nvinfer)
38+
find_library(NVONNXPARSER nvonnxparser)
39+
if(NVINFER AND NVONNXPARSER)
40+
if(CUDA_VERBOSE)
41+
message("TensorRT is available!")
42+
message("NVINFER: ${NVINFER}")
43+
message("NVONNXPARSER: ${NVONNXPARSER}")
44+
endif()
45+
set(TRT_AVAIL ON)
46+
else()
47+
message("TensorRT is NOT Available")
48+
set(TRT_AVAIL OFF)
49+
endif()
50+
51+
# set flags for CUDNN availability
52+
option(CUDNN_AVAIL "CUDNN available" OFF)
53+
# try to find the CUDNN module
54+
find_library(CUDNN_LIBRARY
55+
NAMES libcudnn.so${__cudnn_ver_suffix} libcudnn${__cudnn_ver_suffix}.dylib ${__cudnn_lib_win_name}
56+
PATHS $ENV{LD_LIBRARY_PATH} ${__libpath_cudart} ${CUDNN_ROOT_DIR} ${PC_CUDNN_LIBRARY_DIRS} ${CMAKE_INSTALL_PREFIX}
57+
PATH_SUFFIXES lib lib64 bin
58+
DOC "CUDNN library."
59+
)
60+
if(CUDNN_LIBRARY)
61+
if(CUDA_VERBOSE)
62+
message(STATUS "CUDNN is available!")
63+
message(STATUS "CUDNN_LIBRARY: ${CUDNN_LIBRARY}")
64+
endif()
65+
set(CUDNN_AVAIL ON)
66+
else()
67+
message("CUDNN is NOT Available")
68+
set(CUDNN_AVAIL OFF)
69+
endif()
70+
71+
if(TRT_AVAIL AND CUDA_AVAIL AND CUDNN_AVAIL)
72+
find_package(ament_cmake_auto REQUIRED)
73+
ament_auto_find_build_dependencies()
74+
75+
include_directories(
76+
include
77+
${CUDA_INCLUDE_DIRS}
78+
)
79+
80+
if(CMAKE_BUILD_TYPE STREQUAL "Debug")
81+
set(CMAKE_CUDA_FLAGS ${CMAKE_CUDA_FLAGS} "-g -G")
82+
set(CUDA_NVCC_FLAGS "-g -G")
83+
endif()
84+
85+
ament_auto_add_library(transfusion_lib SHARED
86+
lib/detection_class_remapper.cpp
87+
lib/network/network_trt.cpp
88+
lib/postprocess/non_maximum_suppression.cpp
89+
lib/preprocess/voxel_generator.cpp
90+
lib/preprocess/pointcloud_densification.cpp
91+
lib/ros_utils.cpp
92+
lib/transfusion_trt.cpp
93+
)
94+
95+
cuda_add_library(transfusion_cuda_lib SHARED
96+
lib/postprocess/circle_nms_kernel.cu
97+
lib/postprocess/postprocess_kernel.cu
98+
lib/preprocess/preprocess_kernel.cu
99+
)
100+
101+
target_link_libraries(transfusion_lib
102+
${NVINFER}
103+
${NVONNXPARSER}
104+
${CUDA_LIBRARIES}
105+
${CUBLAS_LIBRARIES}
106+
${CUDA_curand_LIBRARY}
107+
${CUDNN_LIBRARY}
108+
transfusion_cuda_lib
109+
)
110+
111+
target_include_directories(transfusion_lib
112+
PUBLIC
113+
$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include>
114+
$<INSTALL_INTERFACE:include>
115+
)
116+
117+
# To suppress unknown-pragmas error. The root-cause is CUB library in CUDA 11.6.
118+
# This issue was fixed by https://github.com/NVIDIA/cub/commit/7d608bf1dc14553e2fb219eabeed80b76621b6fe
119+
target_include_directories(transfusion_lib
120+
SYSTEM PUBLIC
121+
${CUDA_INCLUDE_DIRS}
122+
)
123+
124+
ament_auto_add_library(lidar_transfusion_component SHARED
125+
src/lidar_transfusion_node.cpp
126+
)
127+
128+
target_link_libraries(lidar_transfusion_component
129+
transfusion_lib
130+
)
131+
132+
rclcpp_components_register_node(lidar_transfusion_component
133+
PLUGIN "lidar_transfusion::LidarTransfusionNode"
134+
EXECUTABLE lidar_transfusion_node
135+
)
136+
137+
if(BUILD_TESTING)
138+
find_package(ament_lint_auto REQUIRED)
139+
ament_lint_auto_find_test_dependencies()
140+
endif()
141+
142+
ament_auto_package(
143+
INSTALL_TO_SHARE
144+
launch
145+
config
146+
)
147+
148+
else()
149+
find_package(ament_cmake_auto REQUIRED)
150+
ament_auto_find_build_dependencies()
151+
152+
ament_auto_package(
153+
INSTALL_TO_SHARE
154+
launch
155+
)
156+
endif()
+113
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,113 @@
1+
# lidar_transfusion
2+
3+
## Purpose
4+
5+
The `lidar_transfusion` package is used for 3D object detection based on lidar data (x, y, z, intensity).
6+
7+
## Inner-workings / Algorithms
8+
9+
The implementation bases on TransFusion [1] work. It uses TensorRT library for data process and network inference.
10+
11+
We trained the models using <https://github.com/open-mmlab/mmdetection3d>.
12+
13+
## Inputs / Outputs
14+
15+
### Input
16+
17+
| Name | Type | Description |
18+
| -------------------- | ------------------------------- | ----------------- |
19+
| `~/input/pointcloud` | `sensor_msgs::msg::PointCloud2` | Input pointcloud. |
20+
21+
### Output
22+
23+
| Name | Type | Description |
24+
| -------------------------------------- | ------------------------------------------------ | --------------------------- |
25+
| `~/output/objects` | `autoware_perception_msgs::msg::DetectedObjects` | Detected objects. |
26+
| `debug/cyclic_time_ms` | `tier4_debug_msgs::msg::Float64Stamped` | Cyclic time (ms). |
27+
| `debug/pipeline_latency_ms` | `tier4_debug_msgs::msg::Float64Stamped` | Pipeline latency time (ms). |
28+
| `debug/processing_time/preprocess_ms` | `tier4_debug_msgs::msg::Float64Stamped` | Preprocess (ms). |
29+
| `debug/processing_time/inference_ms` | `tier4_debug_msgs::msg::Float64Stamped` | Inference time (ms). |
30+
| `debug/processing_time/postprocess_ms` | `tier4_debug_msgs::msg::Float64Stamped` | Postprocess time (ms). |
31+
| `debug/processing_time/total_ms` | `tier4_debug_msgs::msg::Float64Stamped` | Total processing time (ms). |
32+
33+
## Parameters
34+
35+
### TransFusion
36+
37+
{{ json_to_markdown("perception/lidar_transfusion/schema/transfusion.schema.json") }}
38+
39+
### Detection class remapper
40+
41+
{{ json_to_markdown("perception/lidar_transfusion/schema/detection_class_remapper.schema.json") }}
42+
43+
### The `build_only` option
44+
45+
The `lidar_transfusion` node has `build_only` option to build the TensorRT engine file from the ONNX file.
46+
Although it is preferred to move all the ROS parameters in `.param.yaml` file in Autoware Universe, the `build_only` option is not moved to the `.param.yaml` file for now, because it may be used as a flag to execute the build as a pre-task. You can execute with the following command:
47+
48+
```bash
49+
ros2 launch lidar_transfusion lidar_transfusion.launch.xml build_only:=true
50+
```
51+
52+
### The `log_level` option
53+
54+
The default logging severity level for `lidar_transfusion` is `info`. For debugging purposes, the developer may decrease severity level using `log_level` parameter:
55+
56+
```bash
57+
ros2 launch lidar_transfusion lidar_transfusion.launch.xml log_level:=debug
58+
```
59+
60+
## Assumptions / Known limits
61+
62+
## Trained Models
63+
64+
You can download the onnx format of trained models by clicking on the links below.
65+
66+
- TransFusion: [transfusion.onnx](https://awf.ml.dev.web.auto/perception/models/transfusion/v1/transfusion.onnx)
67+
68+
The model was trained in TIER IV's internal database (~11k lidar frames) for 20 epochs.
69+
70+
### Changelog
71+
72+
## (Optional) Error detection and handling
73+
74+
<!-- Write how to detect errors and how to recover from them.
75+
76+
Example:
77+
This package can handle up to 20 obstacles. If more obstacles found, this node will give up and raise diagnostic errors.
78+
-->
79+
80+
## (Optional) Performance characterization
81+
82+
<!-- Write performance information like complexity. If it wouldn't be the bottleneck, not necessary.
83+
84+
Example:
85+
### Complexity
86+
87+
This algorithm is O(N).
88+
89+
### Processing time
90+
91+
...
92+
-->
93+
94+
## References/External links
95+
96+
[1] Xuyang Bai, Zeyu Hu, Xinge Zhu, Qingqiu Huang, Yilun Chen, Hongbo Fu and Chiew-Lan Tai. "TransFusion: Robust LiDAR-Camera Fusion for 3D Object Detection with Transformers." arXiv preprint arXiv:2203.11496 (2022). <!-- cspell:disable-line -->
97+
98+
[2] <https://github.com/wep21/CUDA-TransFusion>
99+
100+
[3] <https://github.com/open-mmlab/mmdetection3d>
101+
102+
[4] <https://github.com/open-mmlab/OpenPCDet>
103+
104+
[5] <https://www.nuscenes.org/nuscenes>
105+
106+
## (Optional) Future extensions / Unimplemented parts
107+
108+
<!-- Write future extensions of this package.
109+
110+
Example:
111+
Currently, this package can't handle the chattering obstacles well. We plan to add some probabilistic filters in the perception layer to improve it.
112+
Also, there are some parameters that should be global(e.g. vehicle size, max steering, etc.). These will be refactored and defined as global parameters so that we can share the same parameters between different nodes.
113+
-->
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
/**:
2+
ros__parameters:
3+
allow_remapping_by_area_matrix:
4+
# NOTE(kl): We turn all vehicles into trailers if they go over 3x12 [m^2].
5+
# NOTE(kl): We turn cars into trucks if they have an area between 2.2 x 5.5 and 3.0 * 12.0 [m^2]
6+
# row: original class. column: class to remap to
7+
#UNKNOWN, CAR, TRUCK, BUS, TRAILER, MOTORBIKE, BICYCLE,PEDESTRIAN
8+
[0, 0, 0, 0, 0, 0, 0, 0, #UNKNOWN
9+
0, 0, 1, 0, 1, 0, 0, 0, #CAR
10+
0, 0, 0, 0, 1, 0, 0, 0, #TRUCK
11+
0, 0, 0, 0, 1, 0, 0, 0, #BUS
12+
0, 0, 0, 0, 0, 0, 0, 0, #TRAILER
13+
0, 0, 0, 0, 0, 0, 0, 0, #MOTORBIKE
14+
0, 0, 0, 0, 0, 0, 0, 0, #BICYCLE
15+
0, 0, 0, 0, 0, 0, 0, 0] #PEDESTRIAN
16+
17+
min_area_matrix:
18+
#UNKNOWN, CAR, TRUCK, BUS, TRAILER, MOTORBIKE, BICYCLE, PEDESTRIAN
19+
[ 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, #UNKNOWN
20+
0.000, 0.000, 12.100, 0.000, 36.000, 0.000, 0.000, 0.000, #CAR
21+
0.000, 0.000, 0.000, 0.000, 36.000, 0.000, 0.000, 0.000, #TRUCK
22+
0.000, 0.000, 0.000, 0.000, 36.000, 0.000, 0.000, 0.000, #BUS
23+
0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, #TRAILER
24+
0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, #MOTORBIKE
25+
0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, #BICYCLE
26+
0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000] #PEDESTRIAN
27+
28+
29+
max_area_matrix:
30+
#UNKNOWN, CAR, TRUCK, BUS, TRAILER, MOTORBIKE, BICYCLE, PEDESTRIAN
31+
[ 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, #UNKNOWN
32+
0.000, 0.000, 36.000, 0.000, 999.999, 0.000, 0.000, 0.000, #CAR
33+
0.000, 0.000, 0.000, 0.000, 999.999, 0.000, 0.000, 0.000, #TRUCK
34+
0.000, 0.000, 0.000, 0.000, 999.999, 0.000, 0.000, 0.000, #BUS
35+
0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, #TRAILER
36+
0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, #MOTORBIKE
37+
0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, #BICYCLE
38+
0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000] #PEDESTRIAN
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
/**:
2+
ros__parameters:
3+
# network
4+
class_names: ["CAR", "TRUCK", "BUS", "BICYCLE", "PEDESTRIAN"]
5+
trt_precision: fp16
6+
voxels_num: [5000, 30000, 60000] # [min, opt, max]
7+
point_cloud_range: [-76.8, -76.8, -3.0, 76.8, 76.8, 5.0] # [x_min, y_min, z_min, x_max, y_max, z_max]
8+
voxel_size: [0.3, 0.3, 8.0] # [x, y, z]
9+
onnx_path: "$(var model_path)/transfusion.onnx"
10+
engine_path: "$(var model_path)/transfusion.engine"
11+
# pre-process params
12+
densification_num_past_frames: 1
13+
densification_world_frame_id: map
14+
# post-process params
15+
circle_nms_dist_threshold: 0.5
16+
iou_nms_target_class_names: ["CAR"]
17+
iou_nms_search_distance_2d: 10.0
18+
iou_nms_threshold: 0.1
19+
yaw_norm_thresholds: [0.3, 0.3, 0.3, 0.3, 0.0] # refers to the class_names
20+
score_threshold: 0.2

0 commit comments

Comments
 (0)
Please sign in to comment.