This commit is contained in:
QuanyiLi
2023-08-27 11:20:51 +01:00
parent 4affa68a06
commit 23bac46826
6 changed files with 126 additions and 31 deletions

View File

@@ -2,5 +2,15 @@
Datasets Datasets
##################### #####################
In this section, we provide detailed guidance about how to setup various datasets in a step by step way. Generally, the detailed setup procedure for each dataset can be found at its official document.
We will keep updating these content and maintain some a troubleshooting section for each dataset. In this section, we still provide a simple guidance about how to setup each dataset in a step by step way,
saving the time for redirecting to new sites and read the comprehensive guidance.
The content of each subsection is a simplified version based on the official setup procedures of each dataset.
Thus if you encountered some problems with our simplified setup instructions,
please read related official documentation.
Also, we kindly ask you to report the encountered problem when following our procedures.
We will fix it as best as we can and record it in the troubleshooting section for each dataset.

View File

@@ -1,13 +1,13 @@
####################### #######################
Example Waymo Example
####################### #######################
In this example, we will show you how to convert a small batch of `Waymo <https://waymo.com/intl/en_us/open/>`_ scenarios into the internal Scenario Description. In this example, we will show you how to convert a small batch of `Waymo <https://waymo.com/intl/en_us/open/>`_ scenarios into the internal Scenario Description.
After that, the scenarios will be loaded to simulator for closed-loop simulation. After that, the scenarios will be loaded to simulator for closed-loop simulation.
First of all, please install `MetaDrive <https://github.com/metadriverse/metadrive>`_ and `ScenarioNet <https://github.com/metadriverse/scenarionet>`_ following these steps :ref:`installation`. First of all, please install `MetaDrive <https://github.com/metadriverse/metadrive>`_ and `ScenarioNet <https://github.com/metadriverse/scenarionet>`_ following these steps :ref:`installation`.
**1. Setup Waymo toolkit** 1. Setup Waymo toolkit
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
For any dataset, this step is necessary after installing ScenarioNet, For any dataset, this step is necessary after installing ScenarioNet,
as we need to use the official toolkits of the data provider to parse the original scenario description and convert to our internal scenario description. as we need to use the official toolkits of the data provider to parse the original scenario description and convert to our internal scenario description.
@@ -15,14 +15,17 @@ For Waymo data, please install the toolkit via::
pip install waymo-open-dataset-tf-2-11-0==1.5.0 pip install waymo-open-dataset-tf-2-11-0==1.5.0
# Or install with scenarionet
pip install -e .[scenarionet]
.. note:: .. note::
This package is only supported on Linux platform. This package is only supported on Linux platform.
For other datasets like nuPlan and nuScenes, you need to setup `nuplan-devkit <https://github.com/motional/nuplan-devkit>`_ and `nuscenes-devkit <https://github.com/nutonomy/nuscenes-devkit>`_ respectively. For other datasets like nuPlan and nuScenes, you need to setup `nuplan-devkit <https://github.com/motional/nuplan-devkit>`_ and `nuscenes-devkit <https://github.com/nutonomy/nuscenes-devkit>`_ respectively.
Guidance on how to setup these datasets and connect them with ScenarioNet can be found at :ref:`datasets`. Guidance on how to setup these datasets and connect them with ScenarioNet can be found at :ref:`datasets`.
**2. Prepare Data** 2. Prepare Data
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Access the Waymo motion data at `Google Cloud <https://console.cloud.google.com/storage/browser/waymo_open_dataset_motion_v_1_2_0>`_. Access the Waymo motion data at `Google Cloud <https://console.cloud.google.com/storage/browser/waymo_open_dataset_motion_v_1_2_0>`_.
Download one tfrecord scenario file from ``waymo_open_dataset_motion_v_1_2_0/uncompressed/scenario/training_20s``. Download one tfrecord scenario file from ``waymo_open_dataset_motion_v_1_2_0/uncompressed/scenario/training_20s``.
@@ -39,7 +42,8 @@ And place the downloaded tfrecord file to a folder. Let's call it ``exp_waymo``
Likewise, place all downloaded tfrecord files to the same folder. Likewise, place all downloaded tfrecord files to the same folder.
**3. Convert to Scenario Description** 3. Build Database
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Run the following command to extract scenarios in ``exp_waymo`` to ``exp_converted``:: Run the following command to extract scenarios in ``exp_waymo`` to ``exp_converted``::
@@ -82,7 +86,8 @@ To aggregate the scenarios produced by all workers, the ``exp_converted/dataset_
from `scenario_id` to the path of the target scenario file relative to ``exp_converted``. from `scenario_id` to the path of the target scenario file relative to ``exp_converted``.
As a result, we can get all scenarios produced by 8 workers by loading the database `exp_converted`. As a result, we can get all scenarios produced by 8 workers by loading the database `exp_converted`.
**4. Database Operations** 4. Database Operations
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Several basic operations are available and allow us to split, merge, move, and check the databases. Several basic operations are available and allow us to split, merge, move, and check the databases.
First of all, let's check how many scenarios are included in this database built from ``training_20s.tfrecord-00000-of-01000``:: First of all, let's check how many scenarios are included in this database built from ``training_20s.tfrecord-00000-of-01000``::
@@ -119,7 +124,8 @@ It will show there are 61 overlapped scenarios.
Congratulations! Now you are already familiar with some common operations. Congratulations! Now you are already familiar with some common operations.
More operations and details is available at :ref:`operations`. More operations and details is available at :ref:`operations`.
**5. Simulation** 5. Simulation
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
The database can be loaded to MetaDrive simulator for scenario replay or closed-loop simulation. The database can be loaded to MetaDrive simulator for scenario replay or closed-loop simulation.
First of all, let's replay scenarios in the ``exp_converted`` database:: First of all, let's replay scenarios in the ``exp_converted`` database::

View File

@@ -36,6 +36,7 @@ Please feel free to contact us if you have any suggestions or ideas!
nuscenes.rst nuscenes.rst
waymo.rst waymo.rst
PG.rst PG.rst
lyft.rst
new_data.rst new_data.rst
.. toctree:: .. toctree::

View File

@@ -4,48 +4,92 @@
Installation Installation
######################## ########################
1. Conda Environment
~~~~~~~~~~~~~~~~~~~~~~~~
The ScenarioNet repo contains tools for converting scenarios and building database from various data sources. The ScenarioNet repo contains tools for converting scenarios and building database from various data sources.
We recommend to create a new conda environment and install Python>=3.8,<=3.9:: We recommend to create a new conda environment and install Python>=3.8,<=3.9::
conda create -n scenarionet python==3.9 conda create -n scenarionet python==3.9
conda activate scenarionet conda activate scenarionet
2. Make a New Folder (Optional)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In addition, the operations in ScenarioNet are executed as Python module ``python -m``, and thus we have to make sure
the working directory contains NO folders named ``metadrive`` or ``scenarionet``.
Therefore, we strongly recommend creating a new folder under your routine working directory.
For example, supposing you prefer working at ``/home/lee``,
it would be greate to have a new folder ``mdsn`` created under this path.
And the ``git clone`` and package installation should happen in this new directory.
As a result, the directory tree should look like this::
/home/lee/
├──mdsn
├──metadrive
├──scenarionet
├──...
In this way, you can freely run the dataset operations at any places other than ``/home/lee/mdsn``.
Now, let's move to this new directory for further installation with ``cd mdsn``.
.. note::
This step is optional. One can still ``git clone`` and ``pip install`` the following two packages at any places.
If any ``python -m scenarionet.[command]`` fails to run, please check if there is a folder called `metadrive`
or `scenarionet` contained in the current directory. If so, please switch to a new directory to avoid this issue.
3. Install MetaDrive
~~~~~~~~~~~~~~~~~~~~~~~~~~~~
The simulation part is maintained in `MetaDrive <https://github.com/metadriverse/metadrive>`_ repo, and let's install MetaDrive first. The simulation part is maintained in `MetaDrive <https://github.com/metadriverse/metadrive>`_ repo, and let's install MetaDrive first.
**1. Install MetaDrive**
The installation of MetaDrive on different platforms is straightforward and easy! The installation of MetaDrive on different platforms is straightforward and easy!
We recommend to install from Github in the following two ways:: We recommend to install in the following ways::
# Method 1 (Recommend, if you don't want to access the source code) # Method 1 (Recommend, latest version, source code exposed)
pip install git+https://github.com/metadriverse/metadrive.git
# Method 2
git clone git@github.com:metadriverse/metadrive.git git clone git@github.com:metadriverse/metadrive.git
cd metadrive cd metadrive
pip install -e. pip install -e.
# Method 2 (Stable version, source code hidden)
A more stable version of MetaDrive can be installed from PyPI by::
# More stable version than installing from Github
pip install "metadrive-simulator>=0.4.1.1" pip install "metadrive-simulator>=0.4.1.1"
To check whether MetaDrive is successfully installed, please run:: To check whether MetaDrive is successfully installed, please run::
python -m metadrive.examples.profile_metadrive python -m metadrive.examples.profile_metadrive
.. note:: Please do not run the above command in the folder that has a sub-folder called :code:`./metadrive`. .. note:: Please do not run the above command at a directory that has a sub-folder called :code:`./metadrive`.
**2. Install ScenarioNet** 4. Install ScenarioNet
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
For ScenarioNet, we only provide Github installation. Likewise, there are two ways to install from Github:: For ScenarioNet, we only provide Github installation::
# Method 1 (Recommend, if you don't want to access the source code)
pip install git+https://github.com/metadriverse/scenarionet.git
# Method 2
git clone git@github.com:metadriverse/scenarionet.git git clone git@github.com:metadriverse/scenarionet.git
cd scenarionet cd scenarionet
Anyone of the following commands will automatically install basic requirements with additional requirements
for specific datasets::
# Install basic requirement only
pip install -e . pip install -e .
# Install Waymo official toolkit
pip install -e .[waymo]
# Install nuScenes development tookit
pip install -e .[nuscenes]
# Install nuPlan development tookit
pip install -e .[nuplan]
# Install all toolkit for all datasets
pip install -e .[all]
.. note::
If you don't wanna access the source code, you can install these two packages with
``pip install git+https://github.com/metadriverse/scenarionet.git``
and ``pip install git+https://github.com/metadriverse/metadrive.git``.
Though it is more straightforward, one has to install additional requirements, like development
toolkits, manually.

28
documentation/lyft.rst Normal file
View File

@@ -0,0 +1,28 @@
####################
Lyft (In Upgrading)
####################
| Website: https://woven.toyota/en/prediction-dataset
| Download: https://woven-planet.github.io/l5kit/dataset.html
| Paper: https://proceedings.mlr.press/v155/houston21a/houston21a.pdf
This dataset includes the logs of movement of cars, cyclists, pedestrians,
and other traffic agents encountered by our automated fleet.
These logs come from processing raw lidar, camera, and radar data through our teams perception systems and are ideal
for training motion prediction models.
The dataset includes:
- 1000+ hours of traffic agent movement
- 16k miles of data from 23 vehicles
- 15k semantic map annotations
.. note::
Currently, the old Lyft dataset can be read by ``nuscenes-toolkit`` and thus can share the nuScenes convertor.
The new Lyft data is now maintained by Woven Planet and we are working on support the ``L5Kit`` for allowing
using new Lyft data.
Known Issues
#############

View File

@@ -55,6 +55,10 @@ train_requirement = [
"tensorflow", "tensorflow",
"tensorflow_probability"] "tensorflow_probability"]
waymo = ["waymo-open-dataset-tf-2-11-0", "tensorflow==2.11.0"]
nuplan = ["nuplan-devkit>=1.2.0"]
nuscenes = ["nuscenes-devkit>=1.1.10"]
setup( setup(
name="scenarionet", name="scenarionet",
python_requires='>=3.8', # do version check with assert python_requires='>=3.8', # do version check with assert
@@ -67,11 +71,13 @@ setup(
install_requires=install_requires, install_requires=install_requires,
extras_require={ extras_require={
"train": train_requirement, "train": train_requirement,
"doc": doc "doc": doc,
"waymo": waymo,
"nuplan": nuplan,
"nuscenes": nuscenes,
}, },
include_package_data=True, include_package_data=True,
license="Apache 2.0", license="Apache 2.0",
long_description=long_description, long_description=long_description,
long_description_content_type='text/markdown', long_description_content_type='text/markdown',
) )