Skip to content

Commit

Permalink
Release v1.0.0 (nutonomy#64)
Browse files Browse the repository at this point in the history
* Added setup.py for pip installation

* Added speedup to query many points with single function call in map mask

* Added missing methods for improved map mask

* Changes for v0.2

* Updated tutorial path

* Changed logic s.t. map table points to logs, not 1 to 1

* Fix indexing bug

* Reset paths to default

* Removed print statement from setup.py

* Fixed a bug for large map files

* Not excluding any logs from map rendering

* Fixed bug with missing "self" keyword in create_splits_logs(nusc), added dataroot parameter

* Address bug for classes without attributes

* Fixed misspelled motorcycle

* Added missing keyword self

* Added checks for nan values

* Removed teaser splits as they is not compatible with the new logs

* Added (preliminary) splits for v0.2

* Workaround to allow evaluating a subset of the data

* Splits hardcoded in create_splits_logs

* Fix bugs if a results file has zero TPs

* Simpler MapMask (nutonomy#31)

* deleted distance_mask, binary_mask. Created dilate_mask().
* cleanup docstring

* Added missing Dict import (nutonomy#35)

* Typing fix (nutonomy#36)

* Added missing Dict import
* Fixed typing to be compatible where future annotations package cannot be loaded

* Updated code to new folder structure (nutonomy#37)

* Devkit now accepts versions 0.3, 0.4 and 1.0

* Fix TPs analog to commit 94544b5 (nutonomy#41)

* Fix yaw_diff calculation (nutonomy#46)

* Added unittest to catch previous error in yaw_diff

* Updated dataset to v0.4, updated train/val/test splits

* Added assertion

* Cleaned up map API.

* Evaluation Fixes (nutonomy#51)

* Correct recall edge case
* Apply distance filtering to xy only
* Return max error if recall is too low

* Added dataset version as command line argument to nuscenes_eval.py

* Function to get scenes in each split, script to check dataset completeness

* Added command line arguments to launch scripts

* Hotfix for call to create_splits_logs

* Structure re-org towards more tests. (nutonomy#52)

- Moves files around to enable easier inject of tests.
- Enables running unit-tests per usual python -m unittest
- Requires env. variable $NUSCENES for test.
- Added trivial unit-tests for NuScenes & NuScenesEval. Currently uses v0.2. We should switch to mini when data is ready.
- Moved detection eval code to eval/detection to future-proof for next task.

This PR is only the first step.
The next PR will break out the detection eval code to enable testing.

* Updated dataset splits to v1.0

* Updated version to 1.0 and database folder to /data/sets/nuscenes

* Added explanation that visibility token may be empty

* Style update (nutonomy#59)

* Changed format of data_classes.py and avoided default parameters in RadarPointCloud

* Typing and line breaks in long method signatures

* Reset dynprop_states to previous settings

* Spacing and line breaks

* Spacing

* Break circular import dependencies

* More flexible setup.py

* Cleanup setup.py

* Updated radar comments

* fix setup to include root folder

* Backporting bugfix from 873b30b until eval pr is merged

* new pip package

* Workaround to allow version string to include the split, e.g. v1.0-trainval

* Mini splits and modified split logic (nutonomy#63)

* Added mini splits and updated overall logic, note: changed method signatures

* Added an assertion

* Docstrings

* Fixed typo

* Updated eval code to new splits function

* Eval refactor step2 (nutonomy#53)

* reorganized repo to more allow for easier injection of tests. Moved detection eval code to eval/detection subfolder

* Added verify and test instructions to main README

* Added more thorough regression type test. This seem to have triggered an error in the evaluation code

* Standardized dataroot to /data/sets/nuscenes

* Fixed random seed. Passes unit-tests now

* Added data-classes for the EvalBoxes. Cleaned up loading. Same results verified on test_delta()

* Updated all tests to use the EvalBox data class. All tests passing now.

* Changes to calculating distance from ego_vehicle (nutonomy#57)

* Changed result format to accept at most one attribute (nutonomy#60)

* Replaced attribute_scores by a single attribute_name

* v0.2 CI preparation. (nutonomy#65)

* updated to 1.0-mini split for all tests. Skipped those that require DB

* Misc Reorg (nutonomy#68)

* reorganize geometry code

* add shortcuts to common classes

* move quaternion yaw back

* change default nuscenes to mini

* Integrate mini_split into continuous integration (nutonomy#71)

* Enabled v1.0-mini to be used in CI for unit-tests.

* Updated detection metrics code (nutonomy#66)

* Reorganized eval code to more allow for easier injection of tests.

* Make nuScenes compatible to Python3.5/Python3.6 (nutonomy#70)

* Removed python 3.6 and 3.7 only features to make compatible with 3.5

* nuscenes-devkit pip package v0.3.4

* Added num_lidar_points and num_radar_points to schema

* Added instructions to include lidar and radar points

* update create_splits_logs to new database versions (nutonomy#74)

* Some unittests for algo.py and util.py (nutonomy#76)

* Added unittest for utils.py and algo.py

* Repeat unit tests for Python 3.6, 3.7 + bug fix for false negative (nutonomy#77)

* Fixed false negative issue. Added support for 3.6 and 3.7.

* Create a configuration factory (nutonomy#78)

* create a configuration factory

* add unittests

* fix the unittests

* added token field to Box class (nutonomy#79)

* added token field to Box class

* fixed line-break

* Update README installation instructions. (nutonomy#75)

* Cleaned up README. Changed to support for python 3.6 and 3.7.

* added change log message for release

* * Moved continuous integration and Docker dependencies to 'setup' folder. (nutonomy#80)

* Updated readme files (nutonomy#81)

* Added setup/instrucions.md, updated Debris class definition, tuned main README

* update setup.py to new repo structure

* Update tutorial.ipynb

* Simple Unittests for AP calculation (nutonomy#82)

* Clean up old unit tests and added tests for AP calculation

* Revert setup changes to get CI working (nutonomy#84)

* Revert "* Moved continuous integration and Docker dependencies to 'setup' folder. (nutonomy#80)"

This reverts commit fa55433.

* revert setup.py changes

* Bikerack filtering (nutonomy#83)

* spellcheck

* add points_in_box() method to check whether points are inside the box

* test points_in_box() method

* perform bike rack filtering

* docstring for filter_eval_boxes

* added unittests for filter_eval_boxes()

* update comment

* fix docstring

* can't use Box type because of a circular import. So switched to 'Box'

* can't use Box type because of a circular import. So switched to 'Box'

* change threshold after bikerack filtering

* get max_dist from eval_detection_configs

* Update eval renderers (nutonomy#85)

* Updated renderers for detection results. 
* Fixed bugs in detection evaluation.

* Added color options for render_egoposes_on_map (nutonomy#86)

* add color option for render maps

* Summary AP plot update (nutonomy#87)

* updated the plots

* better legend text alignment

* updated legend positions and pretty names for attributes and TP metrics

* Tex table (nutonomy#91)

* added reder tex table

* cleaned up tex render method

* minor changes

* add credits

* misc cleanup

* Instruction updates and misc (nutonomy#89)

* Set default version for export egoposes, better outputs

* Added v1.0 to legal datasets

* Corrected visibility level

* Set face color to black, better status messages

* Updated face color

* Set set to trainval in misc scripts

* Bugfix to preserver black bg color

* Made close_dist a parameter

* Merged truck classes in the instructions

* Removed train from instructions

* Merged police officers into single class

* Reset changes to tutorial

* Updated path to requirements.txt

* Removed v1.0 which was used for setup purposes

* Cleanup

* Fix visibility levels in instructions

* Also print empty categories

* Fixed bug

* Reversed previous changes

* Updated schema comments for map

* Reverted previous changes

* misc cleanup

* next pip package

* added unittests for TP metrics

* Readme update (nutonomy#93)

* OVerhauled eval detection page

* Overhauled main readme

* Removed deprecated links

* Rewording

* Addressed review comments

* fixed the visualize sample, need to test it

* added comments to unit tests

* [WIP] Jupyter notebook tutorial (nutonomy#90)

* Updated tutorial

* Unittests for true positive error metrics calculation (nutonomy#92)

* added unittests for TP metrics

* fixed visualize sample

* added comments to unit tests

* added option to save sample rendering to disk

* added back showing plot if savepath is not given

* Update README.md

Clarifications

* Update schema.md

added an example for subcategories

* update dates

* cleanup imports, fix readme typos, cleaner scripts

* cleanup evaluate

* fix splits

* update unittest to split logic

* update test delta
  • Loading branch information
oscar-nutonomy authored and Alex-nutonomy committed Mar 25, 2019
1 parent afabcfd commit 0334132
Show file tree
Hide file tree
Showing 52 changed files with 5,043 additions and 1,765 deletions.
102 changes: 19 additions & 83 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,48 +9,41 @@ Welcome to the devkit of the [nuScenes](https://www.nuscenes.org) dataset.
- [Devkit setup](#devkit-setup)
- [Tutorial](#tutorial)
- [Object detection task](#object-detection-task)
- [Frequently asked questions](#frequently-asked-questions)
- [Setting up a new virtual environment](#setting-up-a-new-virtual-environment)
- [Backward compatibility](#backward-compatibility)

## Changelog
- Dec. 20, 2018: Initial evaluation code released. See notes on [backward compatibility](#backward-compatibility).
- Mar. 26, 2019: Full dataset & devkit v1.0.0 released. Support dropped for teaser data.
- Dec. 20, 2018: Initial evaluation code released. Devkit folders restructured.
- Nov. 21, 2018: RADAR filtering and multi sweep aggregation.
- Oct. 4, 2018: Code to parse RADAR data released.
- Sep. 12, 2018: Devkit for teaser dataset released.

## Dataset download
To download nuScenes you need to go to the [Download page](https://www.nuscenes.org/download),
create an account and confirm the nuScenes [Terms of Use](https://www.nuscenes.org/terms-of-use).
After logging in you will see multiple archives for images, pointclouds and meta data.
create an account and agree to the nuScenes [Terms of Use](https://www.nuscenes.org/terms-of-use).
After logging in you will see multiple archives.
For the devkit to work you will need to download *all* archives.
Please unpack the archives to the `/data/nuscenes` folder \*without\* overwriting folders that occur in multiple archives.
Please unpack the archives to the `/data/sets/nuscenes` folder \*without\* overwriting folders that occur in multiple archives.
Eventually you should have the following folder structure:
```
/data/nuscenes
maps - Large image files (~500 Gigapixel) that depict the drivable surface and sidewalks in the scene.
/data/sets/nuscenes
samples - Sensor data for keyframes.
sweeps - Sensor data for intermediate frames.
v0.1 - JSON tables that include all the meta data and annotations.
maps - Large image files (~500 Gigapixel) that depict the drivable surface and sidewalks in the scene.
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 below.
If you want to use another folder, specify the `dataroot` parameter of the NuScenes class (see tutorial).

## Devkit setup
Download the devkit to your home directory using:
```
cd && git clone https://github.com/nutonomy/nuscenes-devkit.git
```
The devkit is tested for Python 3.7.
To install Python 3.7 and set up a new virtual environment, you can look at [these instructions](#setting-up-a-new-virtual-environment).
To install the required packages, run the following command in your favourite virtual environment:
```
pip install -r requirements.txt
```
Also add the `python-sdk` directory to your `PYTHONPATH` environmental variable, e.g. by adding the
following to your `~/.virtualenvs/nuscenes/bin/postactivate` (virtual environment) or `~/.bashrc` (global):
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).

Our devkit is available and can be installed via pip:
```
export PYTHONPATH="${PYTHONPATH}:$HOME/nuscenes-devkit/python-sdk"
pip install nuscenes-devkit
```
If you don't have pip, please check [here](https://pip.pypa.io/en/stable/installing/) to install pip.

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:
Expand All @@ -61,70 +54,13 @@ In case you want to avoid downloading and setting up the data, you can also take
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).

## Object detection task
For instructions related to the object detection task, the results format, classes and evaluation metrics, please refer to [this readme](https://github.com/nutonomy/nuscenes-devkit/blob/master/python-sdk/nuscenes/eval/README.md).

## Frequently asked questions
1) *How come some objects visible in the camera images are not annotated?* In the [annotator instructions](https://github.com/nutonomy/nuscenes-devkit/blob/master/instructions.md) we specify that an object should only be annotated if it is covered by at least one LIDAR point. This is done to have precise location annotations, speedup the annotation process and remove faraway objects.

2) *I have found an incorrect annotation. Can you correct it?* Please make sure that the annotation is indeed incorrect according to the [annotator instructions](https://github.com/nutonomy/nuscenes-devkit/blob/master/instructions.md). Then send an email to nuScenes@nutonomy.com.

3) *How can I use the RADAR data?* We recently [added features to parse and visualize RADAR point-clouds](https://github.com/nutonomy/nuscenes-devkit/pull/6). More visualization tools will follow.

4) *Why are there less sample pointclouds than samples?* See [this issue](https://github.com/nutonomy/nuscenes-devkit/issues/8). Scenes 169 and 170 overlap and going forward we will remove scene 169.

## Setting up a new virtual environment

It is recommended to install the devkit in a new virtual environment. Here are the steps you can follow to create one:

### Python 3.7 installation

If you don't have Python 3.7 on your system, you can use the following steps to install it.

Ubuntu:
```
sudo add-apt-repository ppa:deadsnakes/ppa
sudo apt-get update
sudo apt-get install python3.7
```

Mac OS: Download from `https://www.python.org/downloads/mac-osx/` and install.

### Install virtualenvwrapper
```
pip install virtualenvwrapper
```
Add these two lines to `~/.bashrc` (`~/.bash_profile` on MAC OS) to set the location where the virtual environments
should live and the location of the script installed with this package:
```
export WORKON_HOME=$HOME/.virtualenvs
source [VIRTUAL_ENV_LOCATION]
```
Replace `[VIRTUAL_ENV_LOCATION]` with either `/usr/local/bin/virtualenvwrapper.sh` or `~/.local/bin/virtualenvwrapper.sh`
depending on where it is installed on your system.

After editing it, reload the shell startup file by running e.g. `source ~/.bashrc`.

### Create the virtual environment
```
mkvirtualenv nuscenes --python [PYTHON_BINARIES]
```
PYTHON_BINARIES are typically at either `/usr/local/bin/python3.7` or `/usr/bin/python3.7`.

### Activating the virtual environment
If you are inside the virtual environment, your shell prompt should look like: `(nuscenes) user@computer:~$`
If that is not the case, you can enable the virtual environment using:
```
workon nuscenes
```
To deactivate the virtual environment, use:
```
deactivate
```
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).

## Backward compatibility
- Mar. 26, 2019: With the full dataset release we drop support for the code and data of the teaser release. Several changes to the map table and map files break backward compatibility.
- Dec. 20, 2018: We restructured the nuscenes-devkit code, which breaks backward compatibility.
The new structure has a top-level package `nuscenes` which contains packages `eval`, `export` and `utils`.
Therefor existing imports from `nuscenes_utils` should be replaced by `nuscenes.nuscenes`.
Therefore, existing imports from `nuscenes_utils` should be replaced by `nuscenes.nuscenes`.


![](https://www.nuscenes.org/public/images/nuscenes-example.png)
73 changes: 26 additions & 47 deletions instructions.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,13 +8,14 @@
- [Detailed Instructions and Examples](#detailed-instructions-and-examples)

# Instructions
+ Draw 3D bounding box around all objects from the [labels](#labels) list, and label them according to the instructions below.
+ Draw 3D bounding boxes around all objects from the [labels](#labels) list, and label them according to the instructions below.
+ **Do not** apply more than one box to a single object.
+ Check every cuboid in every frame, to make sure all points are inside the cuboid and **look reasonable in the image view**.
+ For nighttime or rainy scenes, annotate objects as if these are daytime or normal weather scenes.

# Special Rules
+ **Minimum LIDAR Points** :
+ Label any target object containing **at least 1 LIDAR point**, as long as you can be reasonably sure you know the location and shape of the object. Use your best judgment on correct cuboid position, sizing, and heading.
+ **Minimum number of points** :
+ Label any target object containing **at least 1 LIDAR or RADAR point**, as long as you can be reasonably sure you know the location and shape of the object. Use your best judgment on correct cuboid position, sizing, and heading.
+ **Cuboid Sizing** :
+ **Cuboids must be very tight.** Draw the cuboid as close as possible to the edge of the object without excluding any LIDAR points. There should be almost no visible space between the cuboid border and the closest point on the object.
+ **Extremities** :
Expand All @@ -34,11 +35,11 @@
**For every bounding box, include one of the following labels:**
1. **[Car or Van or SUV](#car-or-van-or-suv)**: Vehicle designed primarily for personal use, e.g. sedans, hatch-backs, wagons, vans, mini-vans, SUVs and jeeps.

2. **[Truck](#truck)**: Vehicles primarily designed to haul cargo including lorrys, trucks.
2. **[Truck](#truck)**: Vehicles primarily designed to haul cargo including pick-ups, lorrys, trucks and semi-tractors. Trailers hauled after a semi-tractor should be labeled as "Trailer".

3. **[Pickup Truck](#pickup-truck)**: A pickup truck is a light duty truck with an enclosed cab and an open or closed cargo area. A pickup truck can be intended primarily for hauling cargo or for personal use.
- **[Pickup Truck](#pickup-truck)**: A pickup truck is a light duty truck with an enclosed cab and an open or closed cargo area. A pickup truck can be intended primarily for hauling cargo or for personal use.

4. **[Front Of Semi Truck](#front-of-semi-truck)**: Tractor part of a semi trailer truck. Trailers hauled after a semi-tractor should be labeled as a trailer.
- **[Front Of Semi Truck](#front-of-semi-truck)**: Tractor part of a semi trailer truck. Trailers hauled after a semi-tractor should be labeled as a trailer.

5. **[Bendy Bus](#bendy-bus)**: Buses and shuttles designed to carry more than 10 people and comprises two or more rigid sections linked by a pivoting joint. Annotate each section of the bendy bus individually.

Expand All @@ -52,45 +53,40 @@

10. **[Bicycle Rack](#bicycle-rack)**: Area or device intended to park or secure the bicycles in a row. It includes all the bicycles parked in it and any empty slots that are intended for parking bicycles. Bicycles that are not part of the rack should not be included. Instead they should be annotated as bicycles separately.

11. **[Trailer](#trailer)**: Any vehicle trailer, both for trucks, cars and motorcycles (regardless of whether currently being towed or not). For semi-trailers (containers) label the truck itself as "front of semi truck".
11. **[Trailer](#trailer)**: Any vehicle trailer, both for trucks, cars and motorcycles (regardless of whether currently being towed or not). For semi-trailers (containers) label the truck itself as "Truck".

12. **[Police Vehicle](#police-vehicle)**: All types of police vehicles including police bicycles and motorcycles.

13. **[Ambulance](#ambulance)**: All types of ambulances.

14. **[Train](#train)**: Any vehicle that travels on rails e.g. light rail / tram / train. For trains, that consist of several linked units, annotate each segment with a bounding box.
14. **[Adult Pedestrian](#adult-pedestrian)**: An adult pedestrian moving around the cityscape. Mannequins should also be annotated as Adult Pedestrian.

15. **[Adult Pedestrian](#adult-pedestrian)**: An adult pedestrian moving around the cityscape. Mannequins should also be annotated as Adult Pedestrian.
15. **[Child Pedestrian](#child-pedestrian)**: A child pedestrian moving around the cityscape.

16. **[Child Pedestrian](#child-pedestrian)**: A child pedestrian moving around the cityscape.
16. **[Construction Worker](#construction-worker)**: A human in the scene whose main purpose is construction work.

17. **[Construction Worker](#construction-worker)**: A human in the scene whose main purpose is construction work.
17. **[Stroller](#stroller)**: Any stroller. If a person is in the stroller, include in the annotation. If a pedestrian pushing the stroller, then they should be labeled separately.

18. **[Stroller](#stroller)**: Any stroller. If a person is in the stroller, include in the annotation. If a pedestrian pushing the stroller, then they should be labeled separately.
18. **[Wheelchair](#wheelchair)**: Any type of wheelchair. If a pedestrian is pushing the wheelchair then they should be labeled separately.

19. **[Wheelchair](#wheelchair)**: Any type of wheelchair. If a pedestrian is pushing the wheelchair then they should be labeled separately.
19. **[Portable Personal Mobility Vehicle](#portable-personal-mobility-vehicle)**: A small electric or self-propelled vehicle, e.g. skateboard, segway, or scooters, on which the person typically travels in a upright position. Driver and (if applicable) rider should be included in the bounding box along with the vehicle.

20. **[Portable Personal Mobility Vehicle](#portable-personal-mobility-vehicle)**: A small electric or self-propelled vehicle, e.g. skateboard, segway, or scooters, on which the person typically travels in a upright position. Driver and (if applicable) rider should be included in the bounding box along with the vehicle.
20. **[Police Officer](#police-officer)**: Any type of police officer, regardless whether directing the traffic or not.

21. **[Traffic Police](#traffic-police)**: Police officer actively directing traffic.
21. **[Animal](#animal)**: All animals, e.g. cats, rats, dogs, deer, birds.

22. **[Other Police](#other-police)**: Police officer NOT actively directing traffic.
22. **[Traffic Cone](#traffic-cone)**: All types of traffic cones.

23. **[Animal](#animal)**: All animals, e.g. cats, rats, dogs, deer, birds.
23. **[Temporary Traffic Barrier](#temporary-traffic-barrier)**: Any metal, concrete or water barrier temporarily placed in the scene in order to re-direct vehicle or pedestrian traffic. In particular, includes barriers used at construction zones. If there are multiple barriers either connected or just placed next to each other, they should be annotated separately.

24. **[Traffic Cone](#traffic-cone)**: All types of traffic cones.
24. **[Pushable Pullable Object](#pushable-pullable-object)**: Objects that a pedestrian may push or pull. For example dolleys, wheel barrows, garbage-bins with wheels, or shopping carts. Typically not designed to carry humans.

25. **[Temporary Traffic Barrier](#temporary-traffic-barrier)**: Any metal, concrete or water barrier temporarily placed in the scene in order to re-direct vehicle or pedestrian traffic. In particular, includes barriers used at construction zones. If there are multiple barriers either connected or just placed next to each other, they should be annotated separately.

26. **[Pushable Pullable Object](#pushable-pullable-object)**: Objects that a pedestrian may push or pull. For example dolleys, wheel barrows, garbage-bins with wheels, or shopping carts. Typically not designed to carry humans.

27. **[Debris](#debris)**: Debris or movable object that is left **on the driveable surface** that is too large to be driven over safely, e.g tree branch, full trash bag etc.
25. **[Debris](#debris)**: Debris or movable object that is too large to be driven over safely. Includes misc. things like trash bags, temporary road-signs, objects around construction zones, and trash cans.

# Attributes
1. **For every object, include the attribute:**
+ **Visibility**:
+ **0%-20%**: The object is 0% to 20% visible in panoramic view of all cameras.
+ **21%-40%**: The object is 21% to 40% visible in panoramic view of all cameras.
+ **0%-40%**: The object is 0% to 40% visible in panoramic view of all cameras.
+ **41%-60%**: The object is 41% to 60% visible in panoramic view of all cameras.
+ **61%-80%**: The object is 61% to 80% visible in panoramic view of all cameras.
+ **81%-100%**: The object is 81% to 100% visible in panoramic view of all cameras.
Expand Down Expand Up @@ -129,24 +125,22 @@ Bounding Box color convention in example images:

[Top](#overview)
## Truck
+ Vehicles primarily designed to haul cargo including lorrys, trucks.
+ Vehicles primarily designed to haul cargo including pick-ups, lorrys, trucks and semi-tractors. Trailers hauled after a semi-tractor should be labeled as vehicle.trailer.

![](https://www.nuscenes.org/public/images/taxonomy_imgs/truck_2.jpg)
![](https://www.nuscenes.org/public/images/taxonomy_imgs/truck_3.jpg)
![](https://www.nuscenes.org/public/images/taxonomy_imgs/truck_4.jpg)
![](https://www.nuscenes.org/public/images/taxonomy_imgs/truck_5.jpg)

[Top](#overview)
## Pickup Truck
**Pickup Truck**
+ A pickup truck is a light duty truck with an enclosed cab and an open or closed cargo area. A pickup truck can be intended primarily for hauling cargo or for personal use.

![](https://www.nuscenes.org/public/images/taxonomy_imgs/pickup_truck_2.jpg)
![](https://www.nuscenes.org/public/images/taxonomy_imgs/pickup_truck_3.jpg)
![](https://www.nuscenes.org/public/images/taxonomy_imgs/pickup_truck_4.jpg)
![](https://www.nuscenes.org/public/images/taxonomy_imgs/pickup_truck_5.jpg)

[Top](#overview)
## Front Of Semi Truck
**Front Of Semi Truck**
+ Tractor part of a semi trailer truck. Trailers hauled after a semi-tractor should be labeled as a trailer.

![](https://www.nuscenes.org/public/images/taxonomy_imgs/front_of_semi_truck_2.png)
Expand Down Expand Up @@ -267,16 +261,6 @@ Bounding Box color convention in example images:
![](https://www.nuscenes.org/public/images/taxonomy_imgs/ambulance_2.jpg)
![](https://www.nuscenes.org/public/images/taxonomy_imgs/ambulance_3.jpg)

[Top](#overview)
## Train
+ Any vehicle that travels on rails e.g. light rail / tram / train.
+ For trains, that consist of several linked units, annotate each segment with a bounding box.

![](https://www.nuscenes.org/public/images/taxonomy_imgs/train_1.png)
![](https://www.nuscenes.org/public/images/taxonomy_imgs/train_2.png)
![](https://www.nuscenes.org/public/images/taxonomy_imgs/train_3.png)
![](https://www.nuscenes.org/public/images/taxonomy_imgs/train_4.png)

[Top](#overview)
## Adult Pedestrian
+ An adult pedestrian moving around the cityscape.
Expand Down Expand Up @@ -335,16 +319,11 @@ Bounding Box color convention in example images:
![](https://www.nuscenes.org/public/images/taxonomy_imgs/personal_mobility_3.png)

[Top](#overview)
## Traffic Police
+ Police officer actively directing traffic.
## Police Officer
+ Any type of police officer, regardless whether directing the traffic or not.

![](https://www.nuscenes.org/public/images/taxonomy_imgs/traffic_police_1.png)
![](https://www.nuscenes.org/public/images/taxonomy_imgs/traffic_police_2.png)

[Top](#overview)
## Other Police
+ Police officer NOT actively directing traffic.

![](https://www.nuscenes.org/public/images/taxonomy_imgs/other_police_1.png)
![](https://www.nuscenes.org/public/images/taxonomy_imgs/other_police_2.png)

Expand Down
1 change: 1 addition & 0 deletions python-sdk/nuscenes/__init__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
from .nuscenes import NuScenes, NuScenesExplorer
Loading

0 comments on commit 0334132

Please sign in to comment.