A devkit for working with recorded and annotated train ride data from Deutsche Bahn.
Read the full documentation on Github pages.
You can install the latest released version directly from PyPI.
pip install raillabel
To set up a development environment, clone the project and install it into a virtual environment.
git clone https://github.com/DSD-DBS/raillabel
cd raillabel
python -m venv .venv
source .venv/bin/activate.sh # for Linux / Mac
.venv\Scripts\activate # for Windows
pip install -U pip pre-commit
pip install -e '.[docs,test]'
pre-commit install
The first step in using raillabel
is downloading a desired dataset (like OSDaR23). You can then load any scene by running
import raillabel
scene = raillabel.load("path/to/annotation_file.json")
This returns a raillabel.Scene
, which is the root class for the annotations.
If a file is too extensive for your use-case you can filter out certain parts of a scene like this
from raillabel.filter import (
IncludeObjectTypeFilter,
ExcludeAnnotationTypeFilter,
StartTimeFilter, ExcludeFrameIdFilter,
IncludeAttributesFilter
)
scene_with_only_trains = scene.filter([IncludeObjectTypeFilter(["rail_vehicle"])])
scene_without_bboxs = scene.filter([ExcludeAnnotationTypeFilter(["bbox"])])
cut_scene_with_only_red_trains = scene.filter([
StartTimeFilter("1587349200.004200000"),
ExcludeFrameIdFilter([2, 4]),
IncludeObjectTypeFilter(["rail_vehicle"]),
IncludeAttributesFilter({"color": "red"}),
])
An overview of all available filters can be found here.
If you then want to save your changes, then use
raillabel.save(cut_scene_with_only_red_trains, "/path/to/target.json")
We'd love to see your bug reports and improvement suggestions! Please take a look at our guidelines for contributors for details.
This project is compliant with the REUSE Specification Version 3.0.
Copyright DB InfraGO AG, licensed under Apache 2.0 (see full text in LICENSES/Apache-2.0.txt)
Dot-files are licensed under CC0-1.0 (see full text in LICENSES/CC0-1.0.txt)