• Stars
    star
    111
  • Rank 312,709 (Top 7 %)
  • Language
    Python
  • License
    Other
  • Created over 4 years ago
  • Updated 6 months ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

The goal of this repo is to make the drone datasets as easy to use as possible. For this purpose we provide source code in Python, which allows the import and visualization of the datasets.

Drone-Dataset Tools

The goal of this repository is to make using drone datasets as easy as possible. Therefore, we provide source code in Python for import and visualization. Thus, this source code not only allows to visualize trajectories and thus get an overview, but also serves as a template for your own projects.

Installation and Quick Start

  1. Create a new Python environment or select a pre-existing one. This code is tested with Python 3.8, but is very probably compatible with newer releases of Python.

    If you use Anaconda3, this can be done as follows:

    conda create --name drone-dataset-tools38 python=3.8
    conda activate drone-dataset-tools38
  2. Install required packages by navigating to the root directory and using

    pip3 install -r requirements.txt
  3. To run the visualization tool, first, navigate to the src/ directory

    cd src
  4. Then to visualize e.g. recording 26 from the exiD dataset, either copy the content of the dataset's data/ directory into the data/ subdirectory of this repository and use

    python3 run_track_visualization.py --dataset exid --recording 26

    or you can skip the data copying and directly provide the path to the dataset's data/ directory by using the --dataset_dir command line option:

    python3 run_track_visualization.py --dataset_dir /<path/to>/exiD-dataset-v2.0/data/ --dataset exid --recording 26

    See below for further explanations.

Importer

tracks_import.py

This module allows to import the tracks, tracks meta info and recording meta info for a single recording (read_from_csv(tracks_file, tracks_meta_file, recordings_meta_file)) or for all recordings (read_all_recordings_from_csv(base_path)).

Visualizer

The visualizer imports the data and visualizes them on an image of the recording site. The user may visualize specific frames or just playback the recorded tracks. In addition, information like the track id or speeds may be displayed (see "Command-line Options").

Each road user class has its own color: cars are light blue, vans are purple, buses are orange, trucks are orange, pedestrians are red, bicycles are yellow and motorcycles are yellow.

"Screenshot of track visualization"

By clicking on track, a separate window is created with plots of the clicked track's positions, headings, velocities and accelerations.

  • If additional columns (i.a. leadDHW, leadTTC, ...) are present in the *_tracks.csv, these are shown in the pop-up window instead.
  • If surrounding vehicle ID columns (i.e. leadId, rearId, ...) are present in the *_tracks.csv, the corresponding vehicles are colored in the visualization. These are also updated during playback.
    (Hint: Use the --suppress_track_window argument to quickly check the surrounding vehicles of several tracks without opening a lot of track windows)

The following shortcuts are currently implemented:

Keyboard Shortcut Description
space Play/Stop the playback
right arrow Jump to next frame
left arrow Jump to previous frame

Command-line Options

The command-line options can be used when starting the run_track_visualization.py script. For example, run the following command from the src directory to start the visualization of recording 26, when the dataset is present in the data/ folder.

python3 run_track_visualization.py --dataset exid --recording 26 

All available options are listed in the following table:

Command-line Options Default value Description
--help - Show this help message.
--dataset_dir "../data/" Path to directory that contains the dataset csv files.
--dataset exid Name of the dataset (ind, round, exid, unid). Needed to apply dataset specific visualization adjustments.
--recording 26 Name of the recording given by a number with a leading zero.
--playback_speed 4 During playback, only consider every nth frame.
--suppress_track_window False Do not show the track window when clicking on a track. Only surrounding vehicle colors are displayed.
--show_bounding_box False Plot the rotated bounding boxes of all vehicles. Please note, that for vulnerable road users, no bounding box is given.
--show_orientation False Indicate the orientation of all vehicles by triangles.
--show_trajectory False Show the trajectory up to the current frame for every track.
--show_future_trajectory False Show the remaining trajectory for every track.
--annotate_track_id False Annotate every track by its id.
--annotate_class False Annotate every track by its class label.
--annotate_speed False Annotate every track by its current speed.
--annotate_orientation False Annotate every track by its current orientation.
--annotate_age False Annotate every track by its current age.
--show_maximized False Show the track Visualizer maximized. Might affect performance.

Please note that drawing additional features may decrease the playback animation update rate.

Citation

If you use one of our datasets or these scripts in your work, please cite our datasets as follows:

inD Paper

@INPROCEEDINGS{inDdataset,
               title={The inD Dataset: A Drone Dataset of Naturalistic Road User Trajectories at German Intersections},
               author={Bock, Julian and Krajewski, Robert and Moers, Tobias and Runde, Steffen and Vater, Lennart and Eckstein, Lutz},
               booktitle={2020 IEEE Intelligent Vehicles Symposium (IV)},
               pages={1929-1934},
               year={2019},
               doi={10.1109/IV47402.2020.9304839}}

rounD Paper

@INPROCEEDINGS{rounDdataset,
               title={The rounD Dataset: A Drone Dataset of Road User Trajectories at Roundabouts in Germany},
               author={Krajewski, Robert and Moers, Tobias and Bock, Julian and Vater, Lennart and Eckstein, Lutz},
               booktitle={2020 IEEE 23rd International Conference on Intelligent Transportation Systems (ITSC)},
               year={2020},
               doi={10.1109/ITSC45102.2020.9294728}}

exiD Paper

@inproceedings{exiDdataset,
               title={The exiD Dataset: A Real-World Trajectory Dataset of Highly Interactive Highway Scenarios in Germany},
               author={Moers, Tobias and Vater, Lennart and Krajewski, Robert and Bock, Julian and Zlocki, Adrian and Eckstein, Lutz},
               booktitle={2022 IEEE Intelligent Vehicles Symposium (IV)},
               pages={958-964},
               year={2022},
               doi={10.1109/IV51971.2022.9827305}}

More Repositories

1

Cam2BEV

TensorFlow Implementation for Computing a Semantically Segmented Bird's Eye View (BEV) Image Given the Images of Multiple Vehicle-Mounted Cameras.
Python
660
star
2

acdc

Code Repository for the MOOC "Automated and Connected Driving Challenges" available on edX.
C++
162
star
3

acdc-notebooks

Jupyter Notebooks for the MOOC "Automated and Connected Driving Challenges" available on edX.
Jupyter Notebook
152
star
4

mqtt_client

ROS / ROS 2 C++ Node for bi-directionally bridging messages between ROS and MQTT
C++
143
star
5

docker-ros

docker-ros automatically builds development and deployment Docker images for your ROS-based repositories
Dockerfile
102
star
6

libtensorflow_cc

Pre-built libtensorflow_cc.so and Docker Images for TensorFlow C++ API
Dockerfile
50
star
7

EviLOG

TensorFlow training pipeline and dataset for prediction of evidential occupancy grid maps from lidar point clouds.
Python
43
star
8

docker-run

'docker run' and 'docker exec' with useful defaults
Python
39
star
9

MultiCorrupt

MultiCorrupt: A benchmark for robust multi-modal 3D object detection, evaluating LiDAR-Camera fusion models in autonomous driving. Includes diverse corruption types (e.g., misalignment, miscalibration, weather) and severity levels. Assess model performance under challenging conditions.
Python
38
star
10

docker-ros-ml-images

Machine Learning-Enabled ROS Docker Images
Dockerfile
37
star
11

Point-Cloud-Compression

Implements a deep RNN based Point Cloud Compression approach for Velodyne Point Clouds. Reference implementation of corresponding IEEE IV22 paper.
Python
34
star
12

etsi_its_messages

ROS / ROS 2 Support for ETSI ITS Messages for V2X Communication
C
27
star
13

PCLSegmentation

Tensorflow 2.9 Pipeline for Semantic Point Cloud Segmentation with SqueezeSeqV2, Darknet21 and Darknet53.
Python
21
star
14

tensorflow_cpp

Helpful model wrappers around TensorFlow C++ API
C++
19
star
15

acdc-research-projects

Research Projects of the MOOC "Automated and Connected Driving Challenges"
Jupyter Notebook
18
star
16

carlos

CARLA Open Simulation Architecture
Python
17
star
17

omega_format

A Python library for reading, writing and visualizing the OMEGA Format, targeted towards storing reference and perception data in the automotive context on an object list basis with a focus on an urban use case.
Python
15
star
18

RoadGeneration

Generation of Complex Road Networks Using a Simplified Logical Description for the Validation of Automated Vehicles
C++
14
star
19

SimDriver

A responsive driver model for traffic simulations to create exact and closed-loop microscopic traffic scenarios.
C++
14
star
20

robotkube

Orchestrating Large-Scale Cooperative Multi-Robot Systems with Kubernetes and ROS
Shell
13
star
21

ros-v2x-benchmarking-suite

ROS V2X Benchmarking Suite
C++
13
star
22

mqtt-in-docker

Learn how to combine the MQTT protocol with Docker for applications in the Internet of Things (IoT). Secure your communication with authentication and encryption. Learn how to create a Public-Key Infrastructure.
12
star
23

dorotos

Tooling Suite for Containerized ROS Applications
11
star
24

message_tf_frame_transformer

ROS Node to transform messages of arbitrary type to a different frame using tf2::doTransform
C++
8
star
25

DEviLOG

Python
7
star
26

agent-model-integration

Integration of an Agent Model into an Open Simulation Architecture for Scenario-Based Testing of Automated Vehicles
C++
5
star
27

mqtt_client-release

ROS release repository for mqtt_client
2
star
28

docker-ros-ci

Shell
2
star
29

acdc-wiki-pub

Temporary repository
HTML
1
star