truckscenes-devkit 1.0.0__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (46) hide show
  1. truckscenes-devkit-1.0.0/LICENSE.txt +13 -0
  2. truckscenes-devkit-1.0.0/MANIFEST.in +9 -0
  3. truckscenes-devkit-1.0.0/PKG-INFO +99 -0
  4. truckscenes-devkit-1.0.0/README.md +68 -0
  5. truckscenes-devkit-1.0.0/docs/installation.md +104 -0
  6. truckscenes-devkit-1.0.0/docs/schema_manscenes.md +221 -0
  7. truckscenes-devkit-1.0.0/pyproject.toml +3 -0
  8. truckscenes-devkit-1.0.0/requirements.txt +3 -0
  9. truckscenes-devkit-1.0.0/setup/requirements/requirements_base.txt +4 -0
  10. truckscenes-devkit-1.0.0/setup/requirements/requirements_tutorial.txt +1 -0
  11. truckscenes-devkit-1.0.0/setup/requirements/requirements_visu.txt +4 -0
  12. truckscenes-devkit-1.0.0/setup.cfg +73 -0
  13. truckscenes-devkit-1.0.0/setup.py +5 -0
  14. truckscenes-devkit-1.0.0/src/truckscenes/__init__.py +6 -0
  15. truckscenes-devkit-1.0.0/src/truckscenes/eval/__init__.py +0 -0
  16. truckscenes-devkit-1.0.0/src/truckscenes/eval/common/__init__.py +0 -0
  17. truckscenes-devkit-1.0.0/src/truckscenes/eval/common/config.py +41 -0
  18. truckscenes-devkit-1.0.0/src/truckscenes/eval/common/constants.py +10 -0
  19. truckscenes-devkit-1.0.0/src/truckscenes/eval/common/data_classes.py +158 -0
  20. truckscenes-devkit-1.0.0/src/truckscenes/eval/common/loaders.py +308 -0
  21. truckscenes-devkit-1.0.0/src/truckscenes/eval/common/render.py +66 -0
  22. truckscenes-devkit-1.0.0/src/truckscenes/eval/common/utils.py +190 -0
  23. truckscenes-devkit-1.0.0/src/truckscenes/eval/detection/README.md +319 -0
  24. truckscenes-devkit-1.0.0/src/truckscenes/eval/detection/__init__.py +0 -0
  25. truckscenes-devkit-1.0.0/src/truckscenes/eval/detection/algo.py +231 -0
  26. truckscenes-devkit-1.0.0/src/truckscenes/eval/detection/config.py +35 -0
  27. truckscenes-devkit-1.0.0/src/truckscenes/eval/detection/configs/detection_cvpr_2024.json +23 -0
  28. truckscenes-devkit-1.0.0/src/truckscenes/eval/detection/constants.py +59 -0
  29. truckscenes-devkit-1.0.0/src/truckscenes/eval/detection/data_classes.py +535 -0
  30. truckscenes-devkit-1.0.0/src/truckscenes/eval/detection/evaluate.py +409 -0
  31. truckscenes-devkit-1.0.0/src/truckscenes/eval/detection/render.py +289 -0
  32. truckscenes-devkit-1.0.0/src/truckscenes/eval/detection/utils.py +141 -0
  33. truckscenes-devkit-1.0.0/src/truckscenes/truckscenes.py +580 -0
  34. truckscenes-devkit-1.0.0/src/truckscenes/utils/__init__.py +0 -0
  35. truckscenes-devkit-1.0.0/src/truckscenes/utils/colormap.py +43 -0
  36. truckscenes-devkit-1.0.0/src/truckscenes/utils/data_classes.py +510 -0
  37. truckscenes-devkit-1.0.0/src/truckscenes/utils/geometry_utils.py +148 -0
  38. truckscenes-devkit-1.0.0/src/truckscenes/utils/splits.py +861 -0
  39. truckscenes-devkit-1.0.0/src/truckscenes/utils/visualization_utils.py +1164 -0
  40. truckscenes-devkit-1.0.0/src/truckscenes_devkit.egg-info/PKG-INFO +99 -0
  41. truckscenes-devkit-1.0.0/src/truckscenes_devkit.egg-info/SOURCES.txt +45 -0
  42. truckscenes-devkit-1.0.0/src/truckscenes_devkit.egg-info/dependency_links.txt +1 -0
  43. truckscenes-devkit-1.0.0/src/truckscenes_devkit.egg-info/not-zip-safe +1 -0
  44. truckscenes-devkit-1.0.0/src/truckscenes_devkit.egg-info/requires.txt +17 -0
  45. truckscenes-devkit-1.0.0/src/truckscenes_devkit.egg-info/top_level.txt +1 -0
  46. truckscenes-devkit-1.0.0/tutorials/manscenes_tutorial.ipynb +2406 -0
@@ -0,0 +1,13 @@
1
+ Copyright 2024 MAN Truck & Bus SE
2
+
3
+ Licensed under the Apache License, Version 2.0 (the "License");
4
+ you may not use this file except in compliance with the License.
5
+ You may obtain a copy of the License at
6
+
7
+ http://www.apache.org/licenses/LICENSE-2.0
8
+
9
+ Unless required by applicable law or agreed to in writing, software
10
+ distributed under the License is distributed on an "AS IS" BASIS,
11
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
+ See the License for the specific language governing permissions and
13
+ limitations under the License.
@@ -0,0 +1,9 @@
1
+ include *.md
2
+ include *.txt
3
+ recursive-include docs *.md
4
+ recursive-include setup *.txt
5
+ recursive-include src *.md
6
+ recursive-include src *.py
7
+ recursive-include src *.json
8
+ recursive-include tutorials *.ipynb
9
+ prune venv
@@ -0,0 +1,99 @@
1
+ Metadata-Version: 2.1
2
+ Name: truckscenes-devkit
3
+ Version: 1.0.0
4
+ Summary: Official development kit of the MAN TruckScenes dataset (www.man.eu/truckscenes).
5
+ Home-page: https://github.com/TUMFTM/truckscenes-devkit
6
+ Author: Felix Fent, Fabian Kuttenreich, Florian Ruch, Farija Rizwin
7
+ Author-email: truckscenes@man.eu
8
+ License: Apache-2.0
9
+ Description: <div align="center">
10
+
11
+ <h1>MAN TruckScenes devkit</h1>
12
+
13
+ The first multimodal dataset for autonomous trucking
14
+
15
+ [![Python](https://img.shields.io/badge/python-3-blue.svg)](https://www.python.org/downloads/)
16
+ [![Linux](https://img.shields.io/badge/os-linux-blue.svg)](https://www.linux.org/)
17
+ [![Windows](https://img.shields.io/badge/os-windows-blue.svg)](https://www.microsoft.com/windows/)
18
+
19
+ </div>
20
+
21
+ ## Overview
22
+ - [Installation](#installation)
23
+ - [Setup](#truckscenes-setup)
24
+ - [Usage](#truckscenes-usage)
25
+ - [Citation](#citation)
26
+
27
+ ## Installation
28
+ Our devkit is available and can be installed via pip:
29
+ ```
30
+ pip install truckscenes-devkit
31
+ ```
32
+
33
+ If you also want to install all the (optional) dependencies for running the visualizations:
34
+ ```
35
+ pip install "truckscenes-devkit[all]"
36
+ ```
37
+
38
+ The usage requires Python (install [here](https://www.python.org/downloads/), tested for 3.6 and 3.8) and pip (install [here](https://pip.pypa.io/en/stable/installation/)) for the installation.
39
+
40
+ ## TruckScenes Setup
41
+ The MAN TruckScenes dataset can be downloaded on our [Download page](https://www.man.eu/truckscenes/) or search for TruckScenes in the [AWS Open Data Registry](https://registry.opendata.aws/).
42
+
43
+ For the devkit to work you will need to download **all** archives.
44
+ Please unpack the archives to the `/data/truckscenes` folder **without** overwriting folders that occur in multiple archives.
45
+ Eventually you should have the following folder structure:
46
+ ```
47
+ /data/truckscenes
48
+ samples - Sensor data for keyframes.
49
+ sweeps - Sensor data for intermediate frames.
50
+ v1.0-* - JSON tables that include all the meta data and annotations. Each split (trainval, test, mini) is provided in a separate folder.
51
+ ```
52
+ If you want to use another folder, specify the `dataroot` parameter of the TruckScenes class (see [installation](./docs/installation.md)).
53
+
54
+ ## TruckScenes Usage
55
+ Please follow these steps to make yourself familiar with the MAN TruckScenes dataset:
56
+ - [Download](https://www.man.eu/truckscenes/) the dataset on our website.
57
+ - Make yourself familiar with the [dataset schema](./docs/schema_truckscenes.md)
58
+ - Run the [tutorial](./python-sdk/tutorials/truckscenes_tutorial.ipynb) to get started:
59
+ ```
60
+ jupyter notebook $HOME/truckscenes-devkit/tutorials/truckscenes_tutorial.ipynb
61
+ ```
62
+ - Read the [MAN TruckScenes Paper](https://arxiv.org/abs/2407.07462) for a detailed analysis of the dataset.
63
+
64
+ ## Citation
65
+ ```
66
+ @article{truckscenes2024,
67
+ title={MAN TruckScenes: A multimodal dataset for autonomous trucking in diverse conditions},
68
+ author={Fent, Felix and Kuttenreich, Fabian and Ruch, Florian and Rizwin, Farija and
69
+ Juergens, Stefan and Lechermann, Lorenz and Nissler, Christian and Perl, Andrea and
70
+ Voll, Ulrich and Yan, Min and Lienkamp, Markus},
71
+ journal={arXiv preprint arXiv:2407.07462},
72
+ year={2024}
73
+ }
74
+ ```
75
+
76
+ _Copied and adapted from [nuscenes-devkit](https://github.com/nutonomy/nuscenes-devkit)_
77
+
78
+ Keywords: MAN,TruckScenes,dataset,devkit,perception
79
+ Platform: linux
80
+ Platform: windows
81
+ Classifier: Intended Audience :: Developers
82
+ Classifier: Intended Audience :: Education
83
+ Classifier: Intended Audience :: Science/Research
84
+ Classifier: License :: OSI Approved :: Apache Software License
85
+ Classifier: Natural Language :: English
86
+ Classifier: Operating System :: OS Independent
87
+ Classifier: Programming Language :: Python :: 3
88
+ Classifier: Programming Language :: Python :: 3 :: Only
89
+ Classifier: Programming Language :: Python :: 3.6
90
+ Classifier: Programming Language :: Python :: 3.7
91
+ Classifier: Programming Language :: Python :: 3.8
92
+ Classifier: Programming Language :: Python :: 3.9
93
+ Classifier: Programming Language :: Python :: 3.10
94
+ Classifier: Programming Language :: Python :: 3.11
95
+ Classifier: Topic :: Scientific/Engineering :: Artificial Intelligence
96
+ Requires-Python: >=3.6
97
+ Description-Content-Type: text/markdown
98
+ Provides-Extra: all
99
+ Provides-Extra: visu
@@ -0,0 +1,68 @@
1
+ <div align="center">
2
+
3
+ <h1>MAN TruckScenes devkit</h1>
4
+
5
+ The first multimodal dataset for autonomous trucking
6
+
7
+ [![Python](https://img.shields.io/badge/python-3-blue.svg)](https://www.python.org/downloads/)
8
+ [![Linux](https://img.shields.io/badge/os-linux-blue.svg)](https://www.linux.org/)
9
+ [![Windows](https://img.shields.io/badge/os-windows-blue.svg)](https://www.microsoft.com/windows/)
10
+
11
+ </div>
12
+
13
+ ## Overview
14
+ - [Installation](#installation)
15
+ - [Setup](#truckscenes-setup)
16
+ - [Usage](#truckscenes-usage)
17
+ - [Citation](#citation)
18
+
19
+ ## Installation
20
+ Our devkit is available and can be installed via pip:
21
+ ```
22
+ pip install truckscenes-devkit
23
+ ```
24
+
25
+ If you also want to install all the (optional) dependencies for running the visualizations:
26
+ ```
27
+ pip install "truckscenes-devkit[all]"
28
+ ```
29
+
30
+ The usage requires Python (install [here](https://www.python.org/downloads/), tested for 3.6 and 3.8) and pip (install [here](https://pip.pypa.io/en/stable/installation/)) for the installation.
31
+
32
+ ## TruckScenes Setup
33
+ The MAN TruckScenes dataset can be downloaded on our [Download page](https://www.man.eu/truckscenes/) or search for TruckScenes in the [AWS Open Data Registry](https://registry.opendata.aws/).
34
+
35
+ For the devkit to work you will need to download **all** archives.
36
+ Please unpack the archives to the `/data/truckscenes` folder **without** overwriting folders that occur in multiple archives.
37
+ Eventually you should have the following folder structure:
38
+ ```
39
+ /data/truckscenes
40
+ samples - Sensor data for keyframes.
41
+ sweeps - Sensor data for intermediate frames.
42
+ v1.0-* - JSON tables that include all the meta data and annotations. Each split (trainval, test, mini) is provided in a separate folder.
43
+ ```
44
+ If you want to use another folder, specify the `dataroot` parameter of the TruckScenes class (see [installation](./docs/installation.md)).
45
+
46
+ ## TruckScenes Usage
47
+ Please follow these steps to make yourself familiar with the MAN TruckScenes dataset:
48
+ - [Download](https://www.man.eu/truckscenes/) the dataset on our website.
49
+ - Make yourself familiar with the [dataset schema](./docs/schema_truckscenes.md)
50
+ - Run the [tutorial](./python-sdk/tutorials/truckscenes_tutorial.ipynb) to get started:
51
+ ```
52
+ jupyter notebook $HOME/truckscenes-devkit/tutorials/truckscenes_tutorial.ipynb
53
+ ```
54
+ - Read the [MAN TruckScenes Paper](https://arxiv.org/abs/2407.07462) for a detailed analysis of the dataset.
55
+
56
+ ## Citation
57
+ ```
58
+ @article{truckscenes2024,
59
+ title={MAN TruckScenes: A multimodal dataset for autonomous trucking in diverse conditions},
60
+ author={Fent, Felix and Kuttenreich, Fabian and Ruch, Florian and Rizwin, Farija and
61
+ Juergens, Stefan and Lechermann, Lorenz and Nissler, Christian and Perl, Andrea and
62
+ Voll, Ulrich and Yan, Min and Lienkamp, Markus},
63
+ journal={arXiv preprint arXiv:2407.07462},
64
+ year={2024}
65
+ }
66
+ ```
67
+
68
+ _Copied and adapted from [nuscenes-devkit](https://github.com/nutonomy/nuscenes-devkit)_
@@ -0,0 +1,104 @@
1
+ # Advanced Installation
2
+ We provide step-by-step instructions to install our devkit.
3
+ - [Download](#download)
4
+ - [Install Python](#install-python)
5
+ - [Setup a virtual environment](#setup-a-virtual-environment)
6
+ - [Setup PYTHONPATH](#setup-pythonpath)
7
+ - [Install required packages](#install-required-packages)
8
+ - [Setup environment variable](#setup-environment-variable)
9
+ - [Setup Matplotlib backend](#setup-matplotlib-backend)
10
+ - [Verify install](#verify-install)
11
+
12
+ ## Download
13
+
14
+ Download the devkit to your home directory.
15
+
16
+ ## Install Python
17
+
18
+ The devkit is tested for Python 3.6 onwards, but we recommend to use Python 3.8.
19
+ For Ubuntu: If the right Python version is not already installed on your system, install it by running:
20
+ ```
21
+ sudo apt update
22
+ sudo apt install software-properties-common
23
+ sudo add-apt-repository ppa:deadsnakes/ppa
24
+ sudo apt update
25
+ sudo apt install python3.8
26
+ sudo apt install python3.8-dev
27
+ ```
28
+ For Windows or Mac OS see `https://www.python.org/downloads/`.
29
+
30
+ -----
31
+ ## Setup a virtual environment
32
+ For setting up a virtual environment we use venv.
33
+
34
+ #### Install venv
35
+ To install venv, run:
36
+ ```
37
+ sudo apt-get install python3-venv
38
+ ```
39
+
40
+ #### Create the virtual environment
41
+ We create a new virtual environment named `venv`.
42
+ ```
43
+ python3 -m venv venv
44
+ ```
45
+
46
+ #### Activate the virtual environment
47
+ If you are inside the virtual environment, your shell prompt should look like: `(venv) user@computer:~$`
48
+ If that is not the case, you can enable the virtual environment using:
49
+ ```
50
+ source venv/bin/activate
51
+ ```
52
+ To deactivate the virtual environment, use:
53
+ ```
54
+ deactivate
55
+ ```
56
+
57
+ ## Setup PYTHONPATH
58
+ Add the `src` directory to your `PYTHONPATH` environmental variable:
59
+ ```
60
+ export PYTHONPATH="${PYTHONPATH}:$HOME/truckscenes-devkit/src"
61
+ ```
62
+
63
+ ## Install required packages
64
+
65
+ To install the required packages, run the following command in your favorite virtual environment:
66
+ ```
67
+ pip install -r requirements.txt
68
+ ```
69
+ **Note:** The requirements file is internally divided into base requirements (`base`) and additional requirements (`tutorial`, `visu`).
70
+
71
+ If you want to install these additional requirements, please run:
72
+ ```
73
+ pip install -r setup/requirements/requirements_<>.txt
74
+ ```
75
+
76
+ ## Setup environment variable
77
+ Finally, if you want to run the unit tests you need to point the devkit to the `truckscenes` folder on your disk.
78
+ Set the TRUCKSCENES environment variable to point to your data folder:
79
+ ```
80
+ export TRUCKSCENES="/data/truckscenes"
81
+ ```
82
+
83
+ ## Setup Matplotlib backend
84
+ When using Matplotlib, it is generally recommended to define the backend used for rendering:
85
+ 1) Under Ubuntu the default backend `Agg` results in any plot not being rendered by default. This does not apply inside Jupyter notebooks.
86
+ 2) Under MacOSX a call to `plt.plot()` may fail with the following error (see [here](https://github.com/matplotlib/matplotlib/issues/13414) for more details):
87
+ ```
88
+ libc++abi.dylib: terminating with uncaught exception of type NSException
89
+ ```
90
+ To set the backend, add the following to your `~/.matplotlib/matplotlibrc` file, which needs to be created if it does not exist yet:
91
+ ```
92
+ backend: TKAgg
93
+ ```
94
+
95
+ ## Verify install
96
+ To verify your environment run `python -m unittest` in the `test` folder.
97
+
98
+ That's it you should be good to go!
99
+
100
+
101
+
102
+
103
+
104
+ Copied and adapted from [nuscenes-devkit](https://github.com/nutonomy/nuscenes-devkit)
@@ -0,0 +1,221 @@
1
+ TruckScenes schema
2
+ ==========
3
+ This document describes the database schema used in MAN TruckScenes.
4
+ All annotations and meta data (including calibration, taxonomy, vehicle coordinates etc.) are covered in a relational database.
5
+ The database tables are listed below.
6
+ Every row can be identified by its unique primary key `token`.
7
+ Foreign keys such as `sample_token` may be used to link to the `token` of the table `sample`.
8
+
9
+ attribute
10
+ ---------
11
+ An attribute is a property of an instance that can change while the category remains the same.
12
+ Example: a vehicle being parked/stopped/moving, and whether or not a bicycle has a rider.
13
+ ```
14
+ attribute {
15
+ "token": <str> -- Unique record identifier.
16
+ "name": <str> -- Attribute name.
17
+ "description": <str> -- Attribute description.
18
+ }
19
+ ```
20
+
21
+ calibrated_sensor
22
+ ---------
23
+ Definition of a particular sensor (lidar/radar/camera) as calibrated on a particular vehicle.
24
+ All extrinsic parameters are given with respect to the ego vehicle body frame.
25
+ All camera images come undistorted and rectified.
26
+ ```
27
+ calibrated_sensor {
28
+ "token": <str> -- Unique record identifier.
29
+ "sensor_token": <str> -- Foreign key pointing to the sensor type.
30
+ "translation": <float> [3] -- Coordinate system origin in meters: x, y, z.
31
+ "rotation": <float> [4] -- Coordinate system orientation as quaternion: w, x, y, z.
32
+ "camera_intrinsic": <float> [3, 3] -- Intrinsic camera calibration. Empty for sensors that are not cameras.
33
+ }
34
+ ```
35
+
36
+ category
37
+ ---------
38
+ Taxonomy of object categories (e.g. vehicle, human).
39
+ Subcategories are delineated by a period (e.g. `human.pedestrian.adult`).
40
+ ```
41
+ category {
42
+ "token": <str> -- Unique record identifier.
43
+ "name": <str> -- Category name. Subcategories indicated by period.
44
+ "description": <str> -- Category description.
45
+ "index": <int> -- The index of the label used for efficiency reasons.
46
+ }
47
+ ```
48
+
49
+ ego_motion_cabin
50
+ ---------
51
+ Ego vehicle cabin motion at a particular timestamp. Given with respect to vehicle coordinate system.
52
+ The cabin movement can be different from the chassis movement.
53
+ ```
54
+ ego_motion_cabin {
55
+ "token": <str> -- Unique record identifier.
56
+ "timestamp": <int> -- Unix time stamp.
57
+ "vx": <float> -- Velocity in x direction given in meters per second (m/s).
58
+ "vy": <float> -- Velocity in y direction given in meters per second (m/s).
59
+ "vz": <float> -- Velocity in z direction given in meters per second (m/s).
60
+ "ax": <float> -- Acceleration in x direction given in meters per second squared (m/s^2).
61
+ "ay": <float> -- Acceleration in y direction given in meters per second squared (m/s^2).
62
+ "az": <float> -- Acceleration in z direction given in meters per second squared (m/s^2).
63
+ "yaw": <float> -- Yaw angle around the z axis given in rad.
64
+ "pitch": <float> -- Pitch angle around the y axis given in rad.
65
+ "roll": <float> -- Roll angle around the x axis given in rad.
66
+ "yaw_rate": <float> -- Yaw rate around the z axis given in rad per second.
67
+ "pitch_rate": <float> -- Pitch rate around the z axis given in rad per second.
68
+ "roll_rate": <float> -- Roll rate around the z axis given in rad per second.
69
+ }
70
+ ```
71
+
72
+ ego_motion_chassis
73
+ ---------
74
+ Ego vehicle chassis motion at a particular timestamp. Given with respect to vehicle coordinate system.
75
+ The cabin movement can be different from the chassis movement.
76
+ ```
77
+ ego_motion_chassis {
78
+ "token": <str> -- Unique record identifier.
79
+ "timestamp": <int> -- Unix time stamp.
80
+ "vx": <float> -- Velocity in x direction given in meters per second (m/s).
81
+ "vy": <float> -- Velocity in y direction given in meters per second (m/s).
82
+ "vz": <float> -- Velocity in z direction given in meters per second (m/s).
83
+ "ax": <float> -- Acceleration in x direction given in meters per second squared (m/s^2).
84
+ "ay": <float> -- Acceleration in y direction given in meters per second squared (m/s^2).
85
+ "az": <float> -- Acceleration in z direction given in meters per second squared (m/s^2).
86
+ "yaw": <float> -- Yaw angle around the z axis given in rad.
87
+ "pitch": <float> -- Pitch angle around the y axis given in rad.
88
+ "roll": <float> -- Roll angle around the x axis given in rad.
89
+ "yaw_rate": <float> -- Yaw rate around the z axis given in rad per second.
90
+ "pitch_rate": <float> -- Pitch rate around the z axis given in rad per second.
91
+ "roll_rate": <float> -- Roll rate around the z axis given in rad per second.
92
+ }
93
+ ```
94
+
95
+ ego_pose
96
+ ---------
97
+ Ego vehicle pose at a particular timestamp. Given with respect to global coordinate system in UTM-WGS84 coordinates mapped to cell U32.
98
+ ```
99
+ ego_pose {
100
+ "token": <str> -- Unique record identifier.
101
+ "translation": <float> [3] -- Coordinate system origin in meters: x, y, z. Note that z is always 0.
102
+ "rotation": <float> [4] -- Coordinate system orientation as quaternion: w, x, y, z.
103
+ "timestamp": <int> -- Unix time stamp.
104
+ }
105
+ ```
106
+
107
+ instance
108
+ ---------
109
+ An object instance, e.g. particular vehicle.
110
+ This table is an enumeration of all object instances we observed.
111
+ Note that instances are not tracked across scenes.
112
+ ```
113
+ instance {
114
+ "token": <str> -- Unique record identifier.
115
+ "category_token": <str> -- Foreign key pointing to the object category.
116
+ "nbr_annotations": <int> -- Number of annotations of this instance.
117
+ "first_annotation_token": <str> -- Foreign key. Points to the first annotation of this instance.
118
+ "last_annotation_token": <str> -- Foreign key. Points to the last annotation of this instance.
119
+ }
120
+ ```
121
+
122
+ sample
123
+ ---------
124
+ A sample is an annotated keyframe at 2 Hz.
125
+ The data is collected at (approximately) the same timestamp as sample_data marked as keyframes.
126
+ ```
127
+ sample {
128
+ "token": <str> -- Unique record identifier.
129
+ "timestamp": <int> -- Unix time stamp.
130
+ "scene_token": <str> -- Foreign key pointing to the scene.
131
+ "next": <str> -- Foreign key. Sample that follows this in time. Empty if end of scene.
132
+ "prev": <str> -- Foreign key. Sample that precedes this in time. Empty if start of scene.
133
+ }
134
+ ```
135
+
136
+ sample_annotation
137
+ ---------
138
+ A bounding box defining the position of an object seen in a sample.
139
+ All location data is given with respect to the global coordinate system.
140
+ ```
141
+ sample_annotation {
142
+ "token": <str> -- Unique record identifier.
143
+ "sample_token": <str> -- Foreign key. NOTE: this points to a sample NOT a sample_data since annotations are done on the sample level taking all relevant sample_data into account.
144
+ "instance_token": <str> -- Foreign key. Which object instance is this annotating. An instance can have multiple annotations over time.
145
+ "attribute_tokens": <str> [n] -- Foreign keys. List of attributes for this annotation. Attributes can change over time, so they belong here, not in the instance table.
146
+ "visibility_token": <str> -- Foreign key. Visibility may also change over time. If no visibility is annotated, the token is an empty string.
147
+ "translation": <float> [3] -- Bounding box location in meters as center_x, center_y, center_z.
148
+ "size": <float> [3] -- Bounding box size in meters as width, length, height.
149
+ "rotation": <float> [4] -- Bounding box orientation as quaternion: w, x, y, z.
150
+ "num_lidar_pts": <int> -- Number of lidar points in this box. Points are counted during the lidar sweep identified with this sample.
151
+ "num_radar_pts": <int> -- Number of radar points in this box. Points are counted during the radar sweep identified with this sample. This number is summed across all radar sensors without any invalid point filtering.
152
+ "next": <str> -- Foreign key. Sample annotation from the same object instance that follows this in time. Empty if this is the last annotation for this object.
153
+ "prev": <str> -- Foreign key. Sample annotation from the same object instance that precedes this in time. Empty if this is the first annotation for this object.
154
+ }
155
+ ```
156
+
157
+ sample_data
158
+ ---------
159
+ A sensor data e.g. image, point cloud or radar return.
160
+ For sample_data with is_key_frame=True, the time-stamps should be very close to the sample it points to.
161
+ For non key-frames the sample_data points to the sample that follows closest in time.
162
+ ```
163
+ sample_data {
164
+ "token": <str> -- Unique record identifier.
165
+ "sample_token": <str> -- Foreign key. Sample to which this sample_data is associated.
166
+ "ego_pose_token": <str> -- Foreign key.
167
+ "calibrated_sensor_token": <str> -- Foreign key.
168
+ "filename": <str> -- Relative path to data-blob on disk.
169
+ "fileformat": <str> -- Data file format.
170
+ "width": <int> -- If the sample data is an image, this is the image width in pixels.
171
+ "height": <int> -- If the sample data is an image, this is the image height in pixels.
172
+ "timestamp": <int> -- Unix time stamp.
173
+ "is_key_frame": <bool> -- True if sample_data is part of key_frame, else False.
174
+ "next": <str> -- Foreign key. Sample data from the same sensor that follows this in time. Empty if end of scene.
175
+ "prev": <str> -- Foreign key. Sample data from the same sensor that precedes this in time. Empty if start of scene.
176
+ }
177
+ ```
178
+
179
+ scene
180
+ ---------
181
+ A scene is a 20s long sequence of consecutive frames.
182
+ Multiple scenes can come from the same measurement drive.
183
+ Note that object identities (instance tokens) are not preserved across scenes.
184
+ ```
185
+ scene {
186
+ "token": <str> -- Unique record identifier.
187
+ "name": <str> -- Short string identifier.
188
+ "description": <str> -- List of scene tags according to seven distinct categories separated by semicolon.
189
+ "log_token": <str> -- Foreign key. Always empty.
190
+ "nbr_samples": <int> -- Number of samples in this scene.
191
+ "first_sample_token": <str> -- Foreign key. Points to the first sample in scene.
192
+ "last_sample_token": <str> -- Foreign key. Points to the last sample in scene.
193
+ }
194
+ ```
195
+
196
+ sensor
197
+ ---------
198
+ A specific sensor type.
199
+ ```
200
+ sensor {
201
+ "token": <str> -- Unique record identifier.
202
+ "channel": <str> -- Sensor channel name.
203
+ "modality": <str> {camera, lidar, radar} -- Sensor modality. Supports category(ies) in brackets.
204
+ }
205
+ ```
206
+
207
+ visibility
208
+ ---------
209
+ The visibility of an instance is the fraction of annotation visible in all 4 images. Binned into 4 bins 0-40%, 40-60%, 60-80% and 80-100%.
210
+ ```
211
+ visibility {
212
+ "token": <str> -- Unique record identifier.
213
+ "level": <int> -- Visibility level.
214
+ "description": <str> -- Description of visibility level.
215
+ }
216
+ ```
217
+
218
+
219
+
220
+
221
+ Copied and adapted from [nuscenes-devkit](https://github.com/nutonomy/nuscenes-devkit)
@@ -0,0 +1,3 @@
1
+ [build-system]
2
+ requires = ["setuptools>=42.0", "wheel"]
3
+ build-backend = "setuptools.build_meta"
@@ -0,0 +1,3 @@
1
+ -r setup/requirements/requirements_base.txt
2
+ -r setup/requirements/requirements_tutorial.txt
3
+ -r setup/requirements/requirements_visu.txt
@@ -0,0 +1,4 @@
1
+ numpy
2
+ pyquaternion>=0.9.5
3
+ tqdm
4
+ pypcd4
@@ -0,0 +1,4 @@
1
+ matplotlib
2
+ open3d
3
+ opencv-python
4
+ Pillow>6.2.1
@@ -0,0 +1,73 @@
1
+ [metadata]
2
+ name = truckscenes-devkit
3
+ version = 1.0.0
4
+ author = Felix Fent, Fabian Kuttenreich, Florian Ruch, Farija Rizwin
5
+ author_email = truckscenes@man.eu
6
+ url = https://github.com/TUMFTM/truckscenes-devkit
7
+ description = Official development kit of the MAN TruckScenes dataset (www.man.eu/truckscenes).
8
+ long_description = file: README.md
9
+ long_description_content_type = text/markdown
10
+ keywords = MAN, TruckScenes, dataset, devkit, perception
11
+ license = Apache-2.0
12
+ license_files = LICENSE
13
+ platforms = linux, windows
14
+ classifiers =
15
+ Intended Audience :: Developers
16
+ Intended Audience :: Education
17
+ Intended Audience :: Science/Research
18
+ License :: OSI Approved :: Apache Software License
19
+ Natural Language :: English
20
+ Operating System :: OS Independent
21
+ Programming Language :: Python :: 3
22
+ Programming Language :: Python :: 3 :: Only
23
+ Programming Language :: Python :: 3.6
24
+ Programming Language :: Python :: 3.7
25
+ Programming Language :: Python :: 3.8
26
+ Programming Language :: Python :: 3.9
27
+ Programming Language :: Python :: 3.10
28
+ Programming Language :: Python :: 3.11
29
+ Topic :: Scientific/Engineering :: Artificial Intelligence
30
+
31
+ [options]
32
+ packages = find_namespace:
33
+ package_dir =
34
+ = src
35
+ include_package_data = True
36
+ install_requires =
37
+ numpy
38
+ pyquaternion>=0.9.5
39
+ tqdm
40
+ pypcd4
41
+ python_requires =
42
+ >=3.6
43
+ zip_safe = False
44
+
45
+ [options.packages.find]
46
+ where = src
47
+ exclude =
48
+ tutorials
49
+
50
+ [options.package_data]
51
+ truckscenes.eval.* =
52
+ *.json
53
+
54
+ [options.extras_require]
55
+ all =
56
+ matplotlib
57
+ jupyter
58
+ open3d
59
+ opencv-python
60
+ Pillow>6.2.1
61
+ visu =
62
+ matplotlib
63
+ open3d
64
+ opencv-python
65
+ Pillow>6.2.1
66
+
67
+ [flake8]
68
+ max-line-length = 99
69
+
70
+ [egg_info]
71
+ tag_build =
72
+ tag_date = 0
73
+
@@ -0,0 +1,5 @@
1
+ from setuptools import setup
2
+
3
+
4
+ if __name__ == "__main__":
5
+ setup()
@@ -0,0 +1,6 @@
1
+ # Copyright 2021 Motional
2
+ # Copyright 2024 MAN Truck & Bus SE
3
+
4
+ from .truckscenes import TruckScenes # noqa: E731
5
+
6
+ __all__ = ('TruckScenes',)