feat: update ptv3 artifacts to v0.1.1

#1
by amadeuszsz - opened
README.md CHANGED
@@ -33,8 +33,8 @@ first launch.
33
  | --- | --- |
34
  | Task | Joint 3D object detection (oriented bounding boxes) and 3D semantic segmentation from a LiDAR point cloud |
35
  | Architecture | Point Transformer V3 encoder (sparse convolutions) with separate detection and segmentation heads |
36
- | Detection classes | `CAR`, `TRUCK`, `BUS`, `BICYCLE`, `PEDESTRIAN`, `TRAFFIC_CONE`, `BARRIER` |
37
- | Segmentation classes | `car`, `truck`, `bus`, `bicycle`, `pedestrian`, `traffic_cone`, `barrier`, `debris`, `drivable_flat`, `non_drivable_flat`, `vegetation`, `building`, `vertical_thin`, `static_clutter`, `noise` |
38
  | Point cloud range [m] | `[-122.88, -122.88, -3.0, 122.88, 122.88, 5.0]` |
39
  | Voxel size (x, y, z) [m] | `0.12, 0.12, 0.12` |
40
  | Runtime | TensorRT (FP16 by default) via the `autoware_ptv3` ROS 2 node, with sparse-conv plugins from `autoware_tensorrt_plugins` |
@@ -47,11 +47,11 @@ The network is split into three ONNX sub-models, matching how the node consumes
47
  `[32, 64, 128, 256, 512]`, serialization orders `z` and `z-trans`, and pooling strides `[2, 2, 2, 2]`.
48
  2. **Detection head** (`ptv3_det3d_head.onnx`): predicts up to 500 oriented 3D boxes with velocity
49
  (`has_twist: true`) over a BEV grid with `bbox_voxel_size: [0.96, 0.96, 8.0]`.
50
- 3. **Segmentation head** (`ptv3_seg3d_head.onnx`): per-point classification over the 15 segmentation
51
  classes listed above.
52
 
53
  Each head can be enabled or disabled independently at launch time (`use_det3d_head`, `use_seg3d_head`).
54
- Pre-processing (voxelization) and post-processing (IoU NMS, yaw normalization, distance-based score
55
  thresholding, class remapping by area, point filtering) run in the node, not in the ONNX graphs.
56
 
57
  ## Files
@@ -61,7 +61,7 @@ thresholding, class remapping by area, point filtering) run in the node, not in
61
  | `ptv3_encoder.onnx` | Shared PTv3 encoder |
62
  | `ptv3_det3d_head.onnx` | 3D object detection head |
63
  | `ptv3_seg3d_head.onnx` | 3D semantic segmentation head |
64
- | `ml_package_ptv3_encoder.param.yaml` | Encoder model parameters (range, voxel size, channels) |
65
  | `ml_package_ptv3_det3d_head.param.yaml` | Detection head model parameters (classes, proposals, BEV voxel size) |
66
  | `ml_package_ptv3_seg3d_head.param.yaml` | Segmentation head model parameters (class names, visualization palette) |
67
  | `deploy_metadata.yaml` | Deployment metadata (records the model version) |
@@ -84,7 +84,7 @@ received message and supports `XYZIRCAEDT` (10 fields), `XYZIRADRT` (9 fields),
84
  | `~/output/objects` | `autoware_perception_msgs/msg/DetectedObjects` | Detected 3D objects after score filtering and IoU NMS |
85
  | `~/output/pointcloud/segmentation` | `sensor_msgs/msg/PointCloud2` | XYZ cloud with class ID and probability fields |
86
  | `~/output/pointcloud/visualization` | `sensor_msgs/msg/PointCloud2` | XYZ cloud with RGB field (colored by class palette) |
87
- | `~/output/pointcloud/filtered` | `sensor_msgs/msg/PointCloud2` | Input cloud with configured classes filtered out (default: `drivable_flat`) |
88
 
89
  The node also publishes processing-time and latency debug topics under `debug/`.
90
 
@@ -107,8 +107,8 @@ for the full parameter reference.
107
 
108
  ## Training
109
 
110
- The model was trained on the T4Dataset using approximately 4,000 frames, as documented in the package README.
111
- A public training configuration is not documented in the package.
112
 
113
  - Sparse convolution backend: <https://github.com/traveller59/spconv>
114
  - C++ sparse convolution implementation used by Autoware: <https://github.com/autowarefoundation/spconv_cpp>
@@ -118,9 +118,9 @@ A public training configuration is not documented in the package.
118
 
119
  | | |
120
  | --- | --- |
121
- | Original hosting | `https://awf.ml.dev.web.auto/perception/models/ptv3/v4/` |
122
- | Source version path | `ptv3/v4` |
123
- | This repository | `AutowareFoundation/ptv3`, tag `v4.0` |
124
 
125
  ## Limitations
126
 
 
33
  | --- | --- |
34
  | Task | Joint 3D object detection (oriented bounding boxes) and 3D semantic segmentation from a LiDAR point cloud |
35
  | Architecture | Point Transformer V3 encoder (sparse convolutions) with separate detection and segmentation heads |
36
+ | Detection classes | `CAR`, `TRUCK`, `BUS`, `MOTORCYCLE`, `BICYCLE`, `PEDESTRIAN`, `ANIMAL`, `BARRIER`, `TRAFFIC_CONE`, `DEBRIS` |
37
+ | Segmentation classes | `car`, `truck`, `bus`, `motorcycle`, `bicycle`, `pedestrian`, `animal`, `barrier`, `traffic_cone`, `debris`, `driveable_flat`, `non_driveable_flat`, `vegetation`, `manmade`, `vertical_thin`, `noise` |
38
  | Point cloud range [m] | `[-122.88, -122.88, -3.0, 122.88, 122.88, 5.0]` |
39
  | Voxel size (x, y, z) [m] | `0.12, 0.12, 0.12` |
40
  | Runtime | TensorRT (FP16 by default) via the `autoware_ptv3` ROS 2 node, with sparse-conv plugins from `autoware_tensorrt_plugins` |
 
47
  `[32, 64, 128, 256, 512]`, serialization orders `z` and `z-trans`, and pooling strides `[2, 2, 2, 2]`.
48
  2. **Detection head** (`ptv3_det3d_head.onnx`): predicts up to 500 oriented 3D boxes with velocity
49
  (`has_twist: true`) over a BEV grid with `bbox_voxel_size: [0.96, 0.96, 8.0]`.
50
+ 3. **Segmentation head** (`ptv3_seg3d_head.onnx`): per-point classification over the 16 segmentation
51
  classes listed above.
52
 
53
  Each head can be enabled or disabled independently at launch time (`use_det3d_head`, `use_seg3d_head`).
54
+ Pre-processing (multi-frame densification, voxelization) and post-processing (IoU NMS, yaw normalization, distance-based score
55
  thresholding, class remapping by area, point filtering) run in the node, not in the ONNX graphs.
56
 
57
  ## Files
 
61
  | `ptv3_encoder.onnx` | Shared PTv3 encoder |
62
  | `ptv3_det3d_head.onnx` | 3D object detection head |
63
  | `ptv3_seg3d_head.onnx` | 3D semantic segmentation head |
64
+ | `ml_package_ptv3_encoder.param.yaml` | Encoder model parameters (range, voxel size, max points per voxel, channels) |
65
  | `ml_package_ptv3_det3d_head.param.yaml` | Detection head model parameters (classes, proposals, BEV voxel size) |
66
  | `ml_package_ptv3_seg3d_head.param.yaml` | Segmentation head model parameters (class names, visualization palette) |
67
  | `deploy_metadata.yaml` | Deployment metadata (records the model version) |
 
84
  | `~/output/objects` | `autoware_perception_msgs/msg/DetectedObjects` | Detected 3D objects after score filtering and IoU NMS |
85
  | `~/output/pointcloud/segmentation` | `sensor_msgs/msg/PointCloud2` | XYZ cloud with class ID and probability fields |
86
  | `~/output/pointcloud/visualization` | `sensor_msgs/msg/PointCloud2` | XYZ cloud with RGB field (colored by class palette) |
87
+ | `~/output/pointcloud/filtered` | `sensor_msgs/msg/PointCloud2` | Input cloud with configured classes filtered out (default: `driveable_flat`, `non_driveable_flat`, `noise`) |
88
 
89
  The node also publishes processing-time and latency debug topics under `debug/`.
90
 
 
107
 
108
  ## Training
109
 
110
+ The model was trained by TIER IV on the internal T4Dataset with
111
+ [Autoware-ML](https://github.com/tier4/autoware-ml) ([documentation](https://tier4.github.io/autoware-ml/)).
112
 
113
  - Sparse convolution backend: <https://github.com/traveller59/spconv>
114
  - C++ sparse convolution implementation used by Autoware: <https://github.com/autowarefoundation/spconv_cpp>
 
118
 
119
  | | |
120
  | --- | --- |
121
+ | Source | TIER IV model release, trained and exported with Autoware-ML |
122
+ | Source version | `v0.1.1` |
123
+ | This repository | `AutowareFoundation/ptv3`, tag `v0.1.1` |
124
 
125
  ## Limitations
126
 
deploy_metadata.yaml CHANGED
@@ -1 +1 @@
1
- version: v4.0
 
1
+ version: v0.1.1
ml_package_ptv3_det3d_head.param.yaml CHANGED
@@ -5,5 +5,4 @@
5
  has_twist: true
6
  num_proposals: 500
7
  post_center_range: [-132.88, -132.88, -5.0, 132.88, 132.88, 12.0]
8
- class_names: ["CAR", "TRUCK", "BUS", "BICYCLE", "PEDESTRIAN", "TRAFFIC_CONE", "BARRIER"]
9
-
 
5
  has_twist: true
6
  num_proposals: 500
7
  post_center_range: [-132.88, -132.88, -5.0, 132.88, 132.88, 12.0]
8
+ class_names: ["CAR", "TRUCK", "BUS", "MOTORCYCLE", "BICYCLE", "PEDESTRIAN", "ANIMAL", "BARRIER", "TRAFFIC_CONE", "DEBRIS"]
 
ml_package_ptv3_encoder.param.yaml CHANGED
@@ -3,7 +3,7 @@
3
  encoder:
4
  point_cloud_range: [-122.88, -122.88, -3.0, 122.88, 122.88, 5.0]
5
  voxel_size: [0.12, 0.12, 0.12]
 
6
  serialization_orders: ["z", "z-trans"]
7
  pooling_strides: [2, 2, 2, 2]
8
  enc_channels: [32, 64, 128, 256, 512]
9
-
 
3
  encoder:
4
  point_cloud_range: [-122.88, -122.88, -3.0, 122.88, 122.88, 5.0]
5
  voxel_size: [0.12, 0.12, 0.12]
6
+ max_points_per_voxel: 32
7
  serialization_orders: ["z", "z-trans"]
8
  pooling_strides: [2, 2, 2, 2]
9
  enc_channels: [32, 64, 128, 256, 512]
 
ml_package_ptv3_seg3d_head.param.yaml CHANGED
@@ -6,34 +6,35 @@
6
  "car",
7
  "truck",
8
  "bus",
 
9
  "bicycle",
10
  "pedestrian",
11
- "traffic_cone",
12
  "barrier",
 
13
  "debris",
14
- "drivable_flat",
15
- "non_drivable_flat",
16
  "vegetation",
17
- "building",
18
  "vertical_thin",
19
- "static_clutter",
20
- "noise"
21
  ]
22
  palette: [
23
  0, 150, 245, # Blue - car
24
  160, 32, 240, # Purple - truck
25
  255, 255, 0, # Yellow - bus
 
26
  255, 192, 203, # Pink - bicycle
27
  255, 0, 0, # Red - pedestrian
28
- 255, 240, 150, # Light Yellow - traffic_cone
29
  255, 127, 0, # Orange - barrier
30
- 210, 180, 140, # Tan - debris
31
- 255, 0, 255, # Magenta - drivable_flat
32
- 139, 137, 137, # Grey - non_drivable_flat
 
33
  0, 175, 0, # Green - vegetation
34
- 230, 230, 250, # Lavender - building
35
  153, 50, 204, # Dark Orchid - vertical_thin
36
- 188, 143, 143, # Rosy Brown - static_clutter
37
  64, 224, 208, # Turquoise - noise
38
  ]
39
-
 
6
  "car",
7
  "truck",
8
  "bus",
9
+ "motorcycle",
10
  "bicycle",
11
  "pedestrian",
12
+ "animal",
13
  "barrier",
14
+ "traffic_cone",
15
  "debris",
16
+ "driveable_flat",
17
+ "non_driveable_flat",
18
  "vegetation",
19
+ "manmade",
20
  "vertical_thin",
21
+ "noise",
 
22
  ]
23
  palette: [
24
  0, 150, 245, # Blue - car
25
  160, 32, 240, # Purple - truck
26
  255, 255, 0, # Yellow - bus
27
+ 255, 105, 180, # Hot Pink - motorcycle
28
  255, 192, 203, # Pink - bicycle
29
  255, 0, 0, # Red - pedestrian
30
+ 173, 255, 47, # Green Yellow - animal
31
  255, 127, 0, # Orange - barrier
32
+ 255, 240, 150, # Light Yellow - traffic_cone
33
+ 255, 0, 255, # Magenta - debris
34
+ 139, 137, 137, # Grey - driveable_flat
35
+ 139, 137, 137, # Grey - non_driveable_flat
36
  0, 175, 0, # Green - vegetation
37
+ 230, 230, 250, # Lavender - manmade
38
  153, 50, 204, # Dark Orchid - vertical_thin
 
39
  64, 224, 208, # Turquoise - noise
40
  ]
 
ptv3_det3d_head.onnx CHANGED
@@ -1,3 +1,3 @@
1
  version https://git-lfs.github.com/spec/v1
2
- oid sha256:5b199d2765fcec19a4f15e2586f9dde0a85292ba8babd31d2275fd4787807abf
3
- size 43083411
 
1
  version https://git-lfs.github.com/spec/v1
2
+ oid sha256:4fbacb62ff6b27d9205dc3ff2c68fcde8f850d8c121e9637b1f458e070fbdbf4
3
+ size 21603770
ptv3_encoder.onnx CHANGED
@@ -1,3 +1,3 @@
1
  version https://git-lfs.github.com/spec/v1
2
- oid sha256:c244cfe2e6016740f894fb24480e15d8e29a8c667c90bfcdf95cfbad8a34b9b8
3
- size 112755753
 
1
  version https://git-lfs.github.com/spec/v1
2
+ oid sha256:a8f93bf3fda957b44e8d8b8dede3a605e772cdec4aa5b7b2611353dce8cfb28d
3
+ size 112786044
ptv3_seg3d_head.onnx CHANGED
@@ -1,3 +1,3 @@
1
  version https://git-lfs.github.com/spec/v1
2
- oid sha256:06dcc59e67c39e6ddf9ab26254a188cd85e4d765cfacbd48e9678c152edf5817
3
- size 14275912
 
1
  version https://git-lfs.github.com/spec/v1
2
+ oid sha256:138fbbe01c4e08bf3463f7fc646e5699fb99bcf8d3603e06ff6ef7e22b91e2c8
3
+ size 14281175