xmfcx commited on
Commit
3914663
·
verified ·
1 Parent(s): ddad3c9

feat: add tensorrt_bevdet v1.0 artifacts (from autoware-files S3 tensorrt_bevdet.tar.gz)

Browse files
Files changed (4) hide show
  1. .gitignore +5 -0
  2. README.md +139 -0
  3. bevdet_one_lt_d.onnx +3 -0
  4. deploy_metadata.yaml +1 -0
.gitignore ADDED
@@ -0,0 +1,5 @@
 
 
 
 
 
 
1
+ # Auto-generated TensorRT artifacts, built locally by Autoware from the ONNX
2
+ # files (see autoware_tensorrt_common). They are environment-specific
3
+ # (GPU arch + TensorRT version) and must not be committed to this repo.
4
+ *.engine
5
+ *.json
README.md ADDED
@@ -0,0 +1,139 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ ---
2
+ license: apache-2.0
3
+ pipeline_tag: object-detection
4
+ tags:
5
+ - autoware
6
+ - ros2
7
+ - autonomous-driving
8
+ - camera
9
+ - multi-view
10
+ - 3d-object-detection
11
+ - bevdet
12
+ - tensorrt
13
+ - onnx
14
+ ---
15
+
16
+ # BEVDet for Autoware (`tensorrt_bevdet`)
17
+
18
+ Multi-view camera 3D object detection model, used by the
19
+ [`autoware_tensorrt_bevdet`](https://github.com/autowarefoundation/autoware_universe/tree/main/perception/autoware_tensorrt_bevdet)
20
+ node in [Autoware](https://github.com/autowarefoundation/autoware).
21
+
22
+ The model follows the **BEVDet** architecture: it unifies six surround-view camera images into a bird's-eye-view
23
+ (BEV) representation for the 3D object detection task, deployed with the **BEVPoolv2** [1] TensorRT/C++
24
+ implementation. It is distributed as ONNX; Autoware builds the TensorRT engine from the ONNX file on first
25
+ launch.
26
+
27
+ ## Model overview
28
+
29
+ | | |
30
+ | --- | --- |
31
+ | Task | 3D object detection (oriented bounding boxes) from 6 surround-view camera images |
32
+ | Architecture | BEVDet (configuration `bevdet_r50_4dlongterm_depth`: depth-aware BEV pooling with temporal fusion of 8 adjacent frames) |
33
+ | Detected classes | `car`, `truck`, `construction_vehicle`, `bus`, `trailer`, `barrier`, `motorcycle`, `bicycle`, `pedestrian`, `traffic_cone` |
34
+ | Cameras | `CAM_FRONT_LEFT`, `CAM_FRONT`, `CAM_FRONT_RIGHT`, `CAM_BACK_LEFT`, `CAM_BACK`, `CAM_BACK_RIGHT` |
35
+ | Network input size | 256 x 704 (resized/cropped from 900 x 1600 source images) |
36
+ | BEV range | `[-51.2, -51.2, -5.0, 51.2, 51.2, 3.0]` m, 0.8 m grid |
37
+ | Runtime | TensorRT (FP16 by default, FP32 selectable) via the `autoware_tensorrt_bevdet` ROS 2 node |
38
+ | Format | ONNX (Autoware builds the TensorRT engine locally on first launch) |
39
+ | License | Apache-2.0 (see Legal Notice for training-data terms) |
40
+
41
+ The node also requires two configuration files that ship inside the `autoware_tensorrt_bevdet` package, not in
42
+ this repository:
43
+
44
+ - `config/bevdet.param.yaml`: ROS parameters (precision, score threshold, class names, camera list)
45
+ - `config/bevdet_r50_4dlongterm_depth.yaml`: model configuration (BEV range, grid, image pre-processing, NMS)
46
+
47
+ ## Files
48
+
49
+ | File | Description |
50
+ | --- | --- |
51
+ | `bevdet_one_lt_d.onnx` | BEVDet network (long-term temporal fusion, depth branch), all six camera views |
52
+ | `deploy_metadata.yaml` | Deployment metadata recording the artifact version of this repository |
53
+
54
+ > **TensorRT engines are not distributed here.** TensorRT engines are specific to the GPU architecture and
55
+ > TensorRT version they are built on and are not portable, so Autoware builds them locally from the ONNX file
56
+ > on first launch (the node appends `_fp16.engine` or `_fp32.engine` to the configured engine path
57
+ > depending on the precision, so with the default config the engine lands next to the ONNX file).
58
+
59
+ ## Inputs and outputs (as used by the node)
60
+
61
+ **Inputs**: six `sensor_msgs/msg/Image` topics (`~/input/topic_img_front_left`, `~/input/topic_img_front`,
62
+ `~/input/topic_img_front_right`, `~/input/topic_img_back_left`, `~/input/topic_img_back`,
63
+ `~/input/topic_img_back_right`) plus the matching six `sensor_msgs/msg/CameraInfo` topics.
64
+
65
+ **Outputs**:
66
+
67
+ - `~/output/boxes` (`autoware_perception_msgs/msg/DetectedObjects`): detected 3D objects
68
+ - `~/output_bboxes` (`visualization_msgs/msg/MarkerArray`): bounding-box markers for nuScenes visualization,
69
+ published when `debug_mode` is enabled
70
+
71
+ ## Usage in Autoware
72
+
73
+ The node loads the model from `~/autoware_data/ml_models/tensorrt_bevdet/` by default and launches with:
74
+
75
+ ```bash
76
+ ros2 launch autoware_tensorrt_bevdet tensorrt_bevdet.launch.xml
77
+ ```
78
+
79
+ Key launch arguments: `model_name` (default `bevdet_one_lt_d`), `model_path`
80
+ (default `$HOME/autoware_data/ml_models/tensorrt_bevdet`), `model_config`, and `param_file`. Precision
81
+ (`fp16`/`fp32`) and `debug_mode` are set in `config/bevdet.param.yaml`. The package README documents
82
+ TensorRT 10.8.0.43 and CUDA 12.4 as prerequisites, and describes how to test the node against
83
+ nuScenes data played back with `ros2_dataset_bridge`. See the
84
+ [package README](https://github.com/autowarefoundation/autoware_universe/tree/main/perception/autoware_tensorrt_bevdet)
85
+ for the full instructions.
86
+
87
+ ## Training
88
+
89
+ The model was trained on the nuScenes dataset for 20 epochs. Training, export, and deployment code:
90
+
91
+ - Original BEVDet: <https://github.com/HuangJunJie2017/BEVDet/tree/dev2.1>
92
+ - TensorRT C++ implementation: <https://github.com/LCH1238/bevdet-tensorrt-cpp/tree/one>
93
+ - ONNX export fork: <https://github.com/LCH1238/BEVDet/tree/export>
94
+ - Training/export fork adapted to the TIER IV dataset: <https://github.com/cyn-liu/BEVDet/tree/train_export>
95
+ - Autoware vendor package (modified TensorRT implementation): <https://github.com/autowarefoundation/bevdet_vendor>
96
+
97
+ ## Limitations
98
+
99
+ - Trained only on nuScenes; the package README notes poor generalization to other data. To use this model on
100
+ your own vehicle and camera setup, retraining is required (see the `train_export` fork above).
101
+ - Expects a six-camera surround-view rig matching the nuScenes camera layout.
102
+ - Only the ten nuScenes classes listed above are detected.
103
+
104
+ ## Provenance and versioning
105
+
106
+ | | |
107
+ | --- | --- |
108
+ | Original source | `tensorrt_bevdet.tar.gz` from the Autoware artifacts S3 bucket (`https://autoware-files.s3.us-west-2.amazonaws.com/models/tensorrt_bevdet.tar.gz`), unversioned |
109
+ | This repository | `AutowareFoundation/tensorrt_bevdet`, extracted ONNX published as tag `v1.0` |
110
+
111
+ ## Citation
112
+
113
+ ```bibtex
114
+ @article{huang2022bevpoolv2,
115
+ title = {BEVPoolv2: A Cutting-edge Implementation of BEVDet Toward Deployment},
116
+ author = {Huang, Junjie and Huang, Guan},
117
+ journal = {arXiv preprint arXiv:2211.17111},
118
+ year = {2022}
119
+ }
120
+ @article{huang2021bevdet,
121
+ title = {BEVDet: High-performance Multi-camera 3D Object Detection in Bird-Eye-View},
122
+ author = {Huang, Junjie and Huang, Guan and Zhu, Zheng and Ye, Yun and Du, Dalong},
123
+ journal = {arXiv preprint arXiv:2112.11790},
124
+ year = {2021}
125
+ }
126
+ ```
127
+
128
+ ## References
129
+
130
+ - [1] Huang and Huang, "BEVPoolv2: A Cutting-edge Implementation of BEVDet Toward Deployment", arXiv:2211.17111, 2022.
131
+ - [2] Huang et al., "BEVDet: High-performance Multi-camera 3D Object Detection in Bird-Eye-View", arXiv:2112.11790, 2021.
132
+ - [3] nuScenes: <https://www.nuscenes.org/nuscenes>
133
+
134
+ ## Legal Notice
135
+
136
+ _The nuScenes dataset is released publicly for non-commercial use under the Creative Commons
137
+ Attribution-NonCommercial-ShareAlike 4.0 International Public License. Additional Terms of Use can be found at
138
+ <https://www.nuscenes.org/terms-of-use>. To inquire about a commercial license please contact
139
+ <nuscenes@motional.com>._
bevdet_one_lt_d.onnx ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:47f156cb63ca97fa1d47b5d46eba648d4bbe71c95a08af14d3d0fdf53d800d77
3
+ size 304801539
deploy_metadata.yaml ADDED
@@ -0,0 +1 @@
 
 
1
+ version: v1.0