Skip to content

Commit

Permalink
nuScenes map expansion pack (nutonomy#172)
Browse files Browse the repository at this point in the history
* Initial commit

* Added missing descartes requirement

* Overhauled tutorial

* Renamed map files

* Fix wrong file extension

* Renamed map extension to map expansion

* Fix wrong import, clear outputs

* Fixes for queenstown map

* Overhauled map tutorial

* Fixed wrong output message

* Added detailed information on map origin and size

* Reorganized readme and faq for map expansion pack

* Rewording

* Minor fixes to the map tutorial

* Change order of the getting started bullet points

* Binary map mask api and visualization example (nutonomy#181)

* rename map_graph to map_api

* wip: rendering

* rendering

* map api done

* visualization example

* Renamed MapAPIExplorer to NuscenesMapExplorer

* Reformatting

* Reformatting

* Undo spacing bug

* Fix missing return statement

* Added n_rows as argument

* Pass on n_rows argument

* Improved tutorial visualization

* Updated naming conventions, first extract raw data then visualize, changed order

* Rename `get_map_patch_mask` to `get_map_mask` and change output format to be a stacked numpy array

* Added instructions for rotated map patches

* Updated typing

* Plot whole map by default

* Typo in the map names

* Round canvas size

* Swapped order of arguments

* Handle case where canvas_size is not given to render_map_mask

* Started on semantic prior check

* Fixed bug with swapped height/width

* More experiments on reconstructing semantic prior

* Removing comparison to semantic_prior

* Delete test.py
  • Loading branch information
holger-motional authored Jul 15, 2019
1 parent 4d3bab4 commit 1c70dd0
Show file tree
Hide file tree
Showing 6 changed files with 2,081 additions and 28 deletions.
40 changes: 25 additions & 15 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,13 +5,13 @@ Welcome to the devkit of the [nuScenes](https://www.nuscenes.org) dataset.
## Overview
- [Changelog](#changelog)
- [Dataset download](#dataset-download)
- [Map expansion](#map-expansion)
- [Devkit setup](#devkit-setup)
- [Tutorial](#tutorial)
- [Frequently asked questions](#frequently-asked-questions)
- [Object detection task](#object-detection-task)
- [Getting started](#getting-started)
- [Citation](#citation)

## Changelog
- Jul. 1, 2019: Map expansion pack released.
- Apr. 30, 2019: Devkit v1.0.1: loosen PIP requirements, refine detection challenge, export 2d annotation script.
- Mar. 26, 2019: Full dataset, paper, & devkit v1.0.0 released. Support dropped for teaser data.
- Dec. 20, 2018: Initial evaluation code released. Devkit folders restructured, which breaks backward compatibility.
Expand All @@ -30,11 +30,19 @@ Eventually you should have the following folder structure:
/data/sets/nuscenes
samples - Sensor data for keyframes.
sweeps - Sensor data for intermediate frames.
maps - Large image files (~500 Gigapixel) that depict the drivable surface and sidewalks in the scene.
maps - Folder for all map files: rasterized .png images and vectorized .json files.
v1.0-* - JSON tables that include all the meta data and annotations. Each split (trainval, test, mini) is provided in a separate folder.
```
If you want to use another folder, specify the `dataroot` parameter of the NuScenes class (see tutorial).

## Map expansion
In July 2019 we published a map expansion pack with 11 semantic layers (crosswalk, sidewalk, traffic lights, stop lines, lanes, etc.).
To install this expansion, please follow these steps:
- Download the expansion pack from the [Download page](https://www.nuscenes.org/download),
- Move the four .json files to your nuScenes maps folder (e.g. `/data/sets/nuscenes/maps`).
- Get the latest version of the nuscenes-devkit.
- If you already have a previous version of the devkit, update the pip requirements (see [details](https://github.com/nutonomy/nuscenes-devkit/blob/master/setup/installation.md)): `pip install -r setup/requirements.txt`

## Devkit setup
The devkit is tested for Python 3.6 and Python 3.7.
To install Python, please check [here](https://github.com/nutonomy/nuscenes-devkit/blob/master/installation.md#install-python).
Expand All @@ -45,20 +53,22 @@ pip install nuscenes-devkit
```
For an advanced installation, see [installation](https://github.com/nutonomy/nuscenes-devkit/blob/master/setup/installation.md) for detailed instructions.

## Tutorial
To get started with the nuScenes devkit, please run the tutorial as an IPython notebook:
## Getting started
Please follow these steps to make yourself familiar with the nuScenes dataset:
- Read the [dataset description](https://www.nuscenes.org/overview).
- [Explore](https://www.nuscenes.org/explore/scene-0011/0) the lidar viewer and videos.
- [Download](https://www.nuscenes.org/download) the dataset.
- Get the [nuscenes-devkit code](https://github.com/nutonomy/nuscenes-devkit).
- Read the [online tutorial](https://www.nuscenes.org/tutorial) or run it yourself using:
```
jupyter notebook $HOME/nuscenes-devkit/python-sdk/tutorial.ipynb
```
In case you want to avoid downloading and setting up the data, you can also take a look at the [rendered notebook on nuScenes.org](https://www.nuscenes.org/tutorial).
To learn more about the dataset, go to [nuScenes.org](https://www.nuscenes.org) or take a look at the [database schema](https://github.com/nutonomy/nuscenes-devkit/blob/master/schema.md) and [annotator instructions](https://github.com/nutonomy/nuscenes-devkit/blob/master/instructions.md).
The [nuScenes paper](https://arxiv.org/abs/1903.11027) provides detailed analysis of the dataset.

## Frequently asked questions
See [FAQs](https://github.com/nutonomy/nuscenes-devkit/blob/master/faqs.md).

## Object detection task
For instructions related to the object detection task (results format, classes and evaluation metrics), please refer to [this readme](https://github.com/nutonomy/nuscenes-devkit/blob/master/python-sdk/nuscenes/eval/detection/README.md).
- Read the [nuScenes paper](https://www.nuscenes.org/publications) for a detailed analysis of the dataset.
- Run the [map expansion tutorial](https://github.com/nutonomy/nuscenes-devkit/blob/master/python-sdk/nuscenes/map_expansion/map_demo.ipynb).
- Take a look at the [experimental scripts](https://github.com/nutonomy/nuscenes-devkit/tree/master/python-sdk/nuscenes/scripts).
- For instructions related to the object detection task (results format, classes and evaluation metrics), please refer to [this readme](https://github.com/nutonomy/nuscenes-devkit/blob/master/python-sdk/nuscenes/eval/detection/README.md).
- See the [database schema](https://github.com/nutonomy/nuscenes-devkit/blob/master/schema.md) and [annotator instructions](https://github.com/nutonomy/nuscenes-devkit/blob/master/instructions.md).
- See the [FAQs](https://github.com/nutonomy/nuscenes-devkit/blob/master/faqs.md).

## Citation
Please use the following citation when referencing [nuScenes](https://arxiv.org/abs/1903.11027):
Expand Down
14 changes: 2 additions & 12 deletions faqs.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,15 +6,6 @@ On this page we try to answer questions frequently asked by our users.
- For issues and bugs *with the devkit*, file an issue on [Github](https://github.com/nutonomy/nuscenes-devkit/issues).
- For any other questions, please post in the [nuScenes user forum](https://forum.nuscenes.org/).

- How can I get started?
- Read the [dataset description](https://www.nuscenes.org/overview).
- [Explore](https://www.nuscenes.org/explore/scene-0011/0) the lidar viewer and videos.
- Read the [tutorial](https://www.nuscenes.org/tutorial).
- Read our [publications](https://www.nuscenes.org/publications).
- [Download](https://www.nuscenes.org/download) the dataset.
- Get the [nuscenes-devkit code](https://github.com/nutonomy/nuscenes-devkit).
- Take a look at the [experimental scripts](https://github.com/nutonomy/nuscenes-devkit/tree/master/python-sdk/nuscenes/scripts).

- Can I use nuScenes for free?
- For non-commercial use [nuScenes is free](https://www.nuscenes.org/terms-of-use), e.g. for educational use and some research use.
- For commercial use please contact [nuScenes@nuTonomy.com](mailto:nuScenes@nuTonomy.com). To allow startups to use our dataset, we adjust the pricing terms to the use case and company size.
Expand All @@ -24,13 +15,12 @@ On this page we try to answer questions frequently asked by our users.
- See the overview site for the [tracking challenge](https://www.nuscenes.org/tracking).

- What's next for nuScenes?
- A map expansion kit with 20+ different semantic layers (e.g. lanes, stop lines, traffic lights).
- Raw IMU & GPS data.
- Object detection, tracking and other challenges (see above).

- How can I get more information on the sensors used?
- Read the [Data collection](https://www.nuscenes.org/data-collection) page.
- Note that we do not give away the vendor name and model to avoid endorsing a particular vendor. All sensors are publicly available from third-party vendors.
- Note that we do not *publicly* reveal the vendor name and model to avoid endorsing a particular vendor. All sensors are publicly available from third-party vendors.
- For more information, please contact [nuScenes@nuTonomy.com](mailto:nuScenes@nuTonomy.com).

- Can I use nuScenes for 2d object detection?
Expand All @@ -39,4 +29,4 @@ On this page we try to answer questions frequently asked by our users.

- How can I share my new dataset / paper for Autonomous Driving?
- Please contact [nuScenes@nuTonomy.com](mailto:nuScenes@nuTonomy.com) to discuss possible collaborations and listing your work on the [Publications](https://www.nuscenes.org/publications) page.
- To discuss it with the community, please post in the [nuScenes user forum](https://forum.nuscenes.org/).
- To discuss it with the community, please post in the [nuScenes user forum](https://forum.nuscenes.org/).
2 changes: 1 addition & 1 deletion python-sdk/nuscenes/eval/detection/data_classes.py
Original file line number Diff line number Diff line change
Expand Up @@ -98,7 +98,7 @@ def __init__(self,
assert not np.any(np.isnan(rotation)), 'Error: Rotation may not be NaN!'

# Velocity can be NaN from our database for certain annotations.
assert len(velocity) == 2, 'Error: Rotation must have 2 elements!'
assert len(velocity) == 2, 'Error: Velocity must have 2 elements!'

assert detection_name is not None, 'Error: detection_name cannot be empty!'
assert detection_name in DETECTION_NAMES, 'Error: Unknown detection_name %s' % detection_name
Expand Down
Loading

0 comments on commit 1c70dd0

Please sign in to comment.