SolutionΒΆ
This page contains the solutions to the tutorial exercises found here.
import raillabel
path_to_calibration_json = ... # insert path to the downloaded 1_calibration_1.1_labels.json
scene = raillabel.load(path_to_calibration_json)
# Task 1: What is the ID of the first frame in the scene?
frame_id_list = list(scene.frames.keys())
first_frame_id = frame_id_list[0]
assert first_frame_id == 12
# Task 2: What is the timestamp of the third frame in the scene?
frame_id_list = list(scene.frames.keys())
third_frame = scene.frames[frame_id_list[2]]
third_frame_timestamp = third_frame.timestamp
assert third_frame_timestamp == Decimal("1631441453.499971000")
# Task 3: How many annotations are in the second frame?
frame_id_list = list(scene.frames.keys())
second_frame = scene.frames[frame_id_list[2]]
second_frame_annotation_number = len(second_frame.annotations)
assert second_frame_annotation_number == 210
# Task 4: How many cuboid annotations are in the fourth frame?
# option 1:
frame_id_list = list(scene.frames.keys())
fourth_frame = scene.frames[frame_id_list[3]]
number_of_cuboid_annotations_in_fourth_frame = 0
for annotation in fourth_frame.annotations.values():
if isinstance(annotation, raillabel.format.Cuboid):
number_of_cuboid_annotations_in_fourth_frame += 1
assert number_of_cuboid_annotations_in_fourth_frame == 15
# option 2:
filtered_scene = scene.filter(
[
raillabel.filter.IncludeFrameIdFilter([15]),
raillabel.filter.IncludeAnnotationTypeFilter(["cuboid"]),
]
)
number_of_cuboid_annotations_in_fourth_frame = len(filtered_scene.annotations())
assert number_of_cuboid_annotations_in_fourth_frame == 15
# Task 5: How many camera sensors are in the scene?
# option 1:
number_of_camera_sensors = 0
for sensor in scene.sensors.values():
if isinstance(sensor, raillabel.format.Camera):
number_of_camera_sensors += 1
assert number_of_camera_sensors == 9
# option 2:
filtered_scene = scene.filter(
[raillabel.filter.IncludeSensorTypeFilter(["camera"])]
)
number_of_camera_sensors = len(filtered_scene.sensors)
assert number_of_camera_sensors == 9
# Task 6: How many unique persons are in the scene?
# option 1:
number_of_persons = 0
for obj in scene.objects.values():
if obj.type == "person":
number_of_persons += 1
assert number_of_persons == 3
# option 2:
filtered_scene = scene.filter(
[raillabel.filter.IncludeObjectTypeFilter(["person"])]
)
number_of_persons = len(filtered_scene.objects)
assert number_of_persons == 3