/astyx

An API to access the Astyx Hires dataset

Primary LanguagePython

Astyx

Astyx is an API to access the Astyx Hires 2019 dataset.

Requirements

  1. Create a virtual environment
python -m venv venv

source venv/bin/activate
  1. Install the required packages in the virtual environment
python -m pip install -r requirements.txt

Dataset

  1. Download the dataset at: https://www.astyx.com/development/astyx-hires2019-dataset.html

  2. Unzip the downloaded file and copy the dataset in this folder

NOTE: The structure of the folder must be similar to the following

dataset_astyx_hires2019
  ├── calibration
  ├── camera_front
  ├── dataset.json
  ├── groundtruth_obj3d
  ├── lidar_vlp16
  └── radar_6455

Make sure that the dataset.json is at the root of the dataset directory. The library uses that file to load the dataset.

CLI interface usage

The Astyx Hires dataset has 546 entries (from 0 to 545). Each entry has lidar, radar, camera, calibration data as well as ground truth data.

Just lead by examples here

  1. Overview of the dataset
python dataset.py --overview
  1. Plot the lidar point cloud of a given entry
python dataset.py -i <index> --lidar
python dataset.py -i 2 --lidar
  1. Plot the radar point cloud of a given entry
python dataset.py -i <index> --radar
python dataset.py -i 56 --radar
  1. View the camera image of a given entry
python dataset.py -i <index> --camera
python dataset.py -i 43 --camera
  1. Read all the ground truth data of a given entry of the dataset
python dataset.py -i <index> --groundtruth
python dataset.py -i 2 --groundtruth

Example of output expected

        id              : 0
        name            : Car
        lidar-points    : 20
        radar-points    : 7
        distance        : 18.520 m
        yaw-angle       : 264.847 deg
        Dimensions
            length      : 4.040 m
            width       : 1.790 m
            height      : 1.390 m

The id field of the result is the order in which the ground truth object appears in the dataset.

  1. View Camera + Lidar data for a given ground truth object.
python dataset.py -i <index> --groundtruth --view <object-id> --lidar
python dataset.py -i 127 --groundtruth --view 2 --lidar

NOTE: It's recommended to list all the available groundtruth object of an entry first (see 4.) in order to provide a valid object-id.

  1. View Camera + Radar data for a given ground truth object.
python dataset.py -i <index> --groundtruth --view <object-id> --radar
python dataset.py -i 127 --groundtruth --view 2 --radar
  1. Search for a ground truth object that match some criteria
# <d> in meter
# <a> in degree
python dataset.py filter --distance <d> --angle <a> --max <number-objects>
# distance: 30 meters
# angle: 20°
python dataset.py filter --distance 30 --angle 20 --max 2
python dataset.py filter --distance 10

python dataset.py filter --angle 1

Both filtering criteria are not mandatory. At leat one must be provided. If the max argument is not provided, 10 result will be displayed.

NOTE: The search starts from the entry 0 and stops when the max number of objects have been found. This operation is quite slow as for each entry some data need to be loaded along with some computation.

  1. Bird eye view of lidar/radar pointcloud
# Lidar pointcloud
python dataset.py -i <index> --lidar -bev [--resolution <res> --width <width> --height <height>]

# Radar pointcloud
python dataset.py -i <index> --radar -bev [--resolution <res> --width <width> --height <height>]

Resolution, width and height parameters are optional. The default values are:

  • Resolution: 0.05 (5cm/pixel)
  • Width: 80 (meter)
  • Height: 80 (meter)

The RGB channels of each pixel in the bird-eye-view are encoded as follow:

  • R (red channel): Distance informatiom of each data point in the pointcloud
  • G (green channel): Height information (z-axis)
  • B (blue channel): Intensity of reflection for lidar pointcloud and radial velocity for radar pointcloud
# Bird eye view output of the lidar point cloud from the dataset entry 146
python dataset.py -i 146 --lidar -bev

# Bird eye view output of the radar point cloud from the dataset entry 146
python dataset.py -i 146 --radar -bev

References