Training datasets
Test datasets
Calibration datasets
Synthetic datasets

We provide a Python script to enable downloading the desired part(s) of the dataset comfortably (except for the synthetic datasets, which are not a part of the benchmark): download_eth3d_slam_datasets.py. Simply call this interactive script from the directory that you would like to download the files into. The script should work both with Python 2 and 3. All download links are additionally also listed below.

Please note that the images have been recorded while trying to avoid overexposure (which leaves no information in the overexposed areas). As a result, often many image areas are relatively dark (while however still containing information). In addition, we did not apply white-balancing to the images in order not to disturb the photometric consistency. While both of these decisions might be beneficial for SLAM systems, they are not well-suited for visualization to humans, and the images may appear yellowish and dark. Therefore, for visualization of the images or of 3D reconstruction results, we recommend to brighten up the colors and apply white balancing as needed.


Training datasets

cables_1 - 1180 frames
The camera views some cable clutter on a table. This arrangement may make it hard to detect reliable features in the RGB images.
cables_1_mono.zip
cables_1_stereo.zip
cables_1_rgbd.zip
cables_1_imu.zip
cables_1_raw.zip
cables_2 - 98 frames
The camera views some cable clutter on a table while moving quickly. This arrangement may make it hard to detect reliable features in the RGB images.
cables_2_mono.zip
cables_2_stereo.zip
cables_2_rgbd.zip
cables_2_imu.zip
cables_2_raw.zip
cables_3 - 313 frames
The camera views some cable clutter on a table while moving quickly. This arrangement may make it hard to detect reliable features in the RGB images.
cables_3_mono.zip
cables_3_stereo.zip
cables_3_rgbd.zip
cables_3_imu.zip
cables_3_raw.zip
camera_shake_1 - 318 frames
The camera is shaken quickly. Using IMU data is probably very helpful here.
camera_shake_1_mono.zip
camera_shake_1_stereo.zip
camera_shake_1_rgbd.zip
camera_shake_1_imu.zip
camera_shake_1_raw.zip
camera_shake_2 - 871 frames
The camera is shaken quickly. Using IMU data is probably very helpful here.
camera_shake_2_mono.zip
camera_shake_2_stereo.zip
camera_shake_2_rgbd.zip
camera_shake_2_imu.zip
camera_shake_2_raw.zip
camera_shake_3 - 285 frames
The camera is shaken quickly. Using IMU data is probably very helpful here.
camera_shake_3_mono.zip
camera_shake_3_stereo.zip
camera_shake_3_rgbd.zip
camera_shake_3_imu.zip
camera_shake_3_raw.zip
ceiling_1 - 1595 frames
The camera moves around while viewing the ceiling of the Vicon area. The lights potentially create difficult illumination conditions, and there may be little to constrain the camera pose sometimes.
ceiling_1_mono.zip
ceiling_1_stereo.zip
ceiling_1_rgbd.zip
ceiling_1_imu.zip
ceiling_1_raw.zip
ceiling_2 - 1535 frames
The camera moves around while viewing the ceiling of the Vicon area. The lights potentially create difficult illumination conditions, and there may be little to constrain the camera pose sometimes.
ceiling_2_mono.zip
ceiling_2_stereo.zip
ceiling_2_rgbd.zip
ceiling_2_imu.zip
ceiling_2_raw.zip
desk_3 - 2061 frames
The camera moves through a scene with clutter on several tables.
desk_3_mono.zip
desk_3_stereo.zip
desk_3_rgbd.zip
desk_3_imu.zip
desk_3_raw.zip
desk_changing_1 - 3931 frames
The camera moves through a scene while objects in the scene are being moved when they are not visible. This can confuse loop closure systems and SLAM methods with implicit map re-use.
desk_changing_1_mono.zip
desk_changing_1_stereo.zip
desk_changing_1_rgbd.zip
desk_changing_1_imu.zip
desk_changing_1_raw.zip
einstein_1 - 487 frames
The camera moves around in a scene with several objects, including a laptop which shows a video. The moving video on the static surface might confuse SLAM systems.
einstein_1_mono.zip
einstein_1_stereo.zip
einstein_1_rgbd.zip
einstein_1_imu.zip
einstein_1_raw.zip
einstein_2 - 1530 frames
The camera moves around in a scene with several objects, including a laptop which shows a video. The moving video on the static surface might confuse SLAM systems.
einstein_2_mono.zip
einstein_2_stereo.zip
einstein_2_rgbd.zip
einstein_2_imu.zip
einstein_2_raw.zip
einstein_dark - 2035 frames
The camera moves around in a scene with several objects, including a laptop which shows a video. The moving video on the static surface might confuse SLAM systems. Since the ambient lights are off, the RGB cameras do not provide information (apart from the laptop screen), so SLAM methods have to rely on other data.
einstein_dark_mono.zip
einstein_dark_stereo.zip
einstein_dark_rgbd.zip
einstein_dark_imu.zip
einstein_dark_raw.zip
einstein_flashlight - 1851 frames
The camera moves around in a scene with several objects. The scene is mostly only illuminated by a hand-held flashlight, which may be a very challenging illumination condition for SLAM systems.
einstein_flashlight_mono.zip
einstein_flashlight_stereo.zip
einstein_flashlight_rgbd.zip
einstein_flashlight_imu.zip
einstein_flashlight_raw.zip
einstein_global_light_changes_1 - 872 frames
While the camera moves through a scene with several objects, the room lights are turned on and off.
einstein_global_light_changes_1_mono.zip
einstein_global_light_changes_1_stereo.zip
einstein_global_light_changes_1_rgbd.zip
einstein_global_light_changes_1_imu.zip
einstein_global_light_changes_1_raw.zip
einstein_global_light_changes_2 - 471 frames
While the camera moves through a scene with several objects, the room lights are turned on and off.
einstein_global_light_changes_2_mono.zip
einstein_global_light_changes_2_stereo.zip
einstein_global_light_changes_2_rgbd.zip
einstein_global_light_changes_2_imu.zip
einstein_global_light_changes_2_raw.zip
einstein_global_light_changes_3 - 2481 frames
While the camera moves through a scene with several objects, the room lights are turned on and off.
einstein_global_light_changes_3_mono.zip
einstein_global_light_changes_3_stereo.zip
einstein_global_light_changes_3_rgbd.zip
einstein_global_light_changes_3_imu.zip
einstein_global_light_changes_3_raw.zip
kidnap_1 - 884 frames
The camera gets 'kidnapped', i.e., moved while its view is blocked, then moved back to the original view. SLAM methods will have to relocalize against the initial scene after the kidnap.
kidnap_1_mono.zip
kidnap_1_stereo.zip
kidnap_1_rgbd.zip
kidnap_1_imu.zip
kidnap_1_raw.zip
kidnap_dark - 526 frames
The camera gets 'kidnapped', i.e., moved while its view is blocked, then moved back to the original view. SLAM methods will have to relocalize against the initial scene after the kidnap. The RGB cameras do not provide information, so SLAM methods have to rely on other data.
kidnap_dark_mono.zip
kidnap_dark_stereo.zip
kidnap_dark_rgbd.zip
kidnap_dark_imu.zip
kidnap_dark_raw.zip
large_loop_1 - 1511 frames
The camera moves around in a large loop. Detecting this loop is likely important to achieve a good result.
large_loop_1_mono.zip
large_loop_1_stereo.zip
large_loop_1_rgbd.zip
large_loop_1_imu.zip
large_loop_1_raw.zip
mannequin_1 - 643 frames
The camera moves around a mannequin to create a 3D reconstruction of it.
mannequin_1_mono.zip
mannequin_1_stereo.zip
mannequin_1_rgbd.zip
mannequin_1_imu.zip
mannequin_1_raw.zip
mannequin_3 - 649 frames
The camera moves around a mannequin to create a 3D reconstruction of it.
mannequin_3_mono.zip
mannequin_3_stereo.zip
mannequin_3_rgbd.zip
mannequin_3_imu.zip
mannequin_3_raw.zip
mannequin_4 - 551 frames
The mannequin enters and leaves the field of view multiple times. Associating all observations correctly is important to obtain a good result.
mannequin_4_mono.zip
mannequin_4_stereo.zip
mannequin_4_rgbd.zip
mannequin_4_imu.zip
mannequin_4_raw.zip
mannequin_5 - 921 frames
The mannequin enters and leaves the field of view multiple times. Associating all observations correctly is important to obtain a good result.
mannequin_5_mono.zip
mannequin_5_stereo.zip
mannequin_5_rgbd.zip
mannequin_5_imu.zip
mannequin_5_raw.zip
mannequin_7 - 634 frames
The camera moves around a mannequin to create a 3D reconstruction of it, but loses view of it multiple times.
mannequin_7_mono.zip
mannequin_7_stereo.zip
mannequin_7_rgbd.zip
mannequin_7_imu.zip
mannequin_7_raw.zip
mannequin_face_1 - 421 frames
The camera scans a mannequin's face and front.
mannequin_face_1_mono.zip
mannequin_face_1_stereo.zip
mannequin_face_1_rgbd.zip
mannequin_face_1_imu.zip
mannequin_face_1_raw.zip
mannequin_face_2 - 444 frames
The camera slowly scans a mannequin's face.
mannequin_face_2_mono.zip
mannequin_face_2_stereo.zip
mannequin_face_2_rgbd.zip
mannequin_face_2_imu.zip
mannequin_face_2_raw.zip
mannequin_face_3 - 637 frames
The camera sloppily scans a mannequin's face, losing view of it multiple times. Associating all observations correctly is important to obtain a good result.
mannequin_face_3_mono.zip
mannequin_face_3_stereo.zip
mannequin_face_3_rgbd.zip
mannequin_face_3_imu.zip
mannequin_face_3_raw.zip
mannequin_head - 664 frames
The camera scans a mannequin's head, but also shakes strongly.
mannequin_head_mono.zip
mannequin_head_stereo.zip
mannequin_head_rgbd.zip
mannequin_head_imu.zip
mannequin_head_raw.zip
motion_1 - 2366 frames
The camera films a person who moves around in a scene and moves several objects.
motion_1_mono.zip
motion_1_stereo.zip
motion_1_rgbd.zip
motion_1_imu.zip
motion_1_raw.zip
planar_2 - 630 frames
The camera views a textured plane. It is important to use photometric information to track the camera pose here, since the geometry does likely not sufficiently constrain it.
planar_2_mono.zip
planar_2_stereo.zip
planar_2_rgbd.zip
planar_2_imu.zip
planar_2_raw.zip
planar_3 - 901 frames
The camera views a textured plane. It is important to use photometric information to track the camera pose here, since the geometry does likely not sufficiently constrain it.
planar_3_mono.zip
planar_3_stereo.zip
planar_3_rgbd.zip
planar_3_imu.zip
planar_3_raw.zip
plant_1 - 70 frames
The camera shortly views a plant.
plant_1_mono.zip
plant_1_stereo.zip
plant_1_rgbd.zip
plant_1_imu.zip
plant_1_raw.zip
plant_2 - 124 frames
The camera shortly views a plant.
plant_2_mono.zip
plant_2_stereo.zip
plant_2_rgbd.zip
plant_2_imu.zip
plant_2_raw.zip
plant_3 - 187 frames
The camera shortly views a plant.
plant_3_mono.zip
plant_3_stereo.zip
plant_3_rgbd.zip
plant_3_imu.zip
plant_3_raw.zip
plant_4 - 86 frames
The camera shortly views a plant.
plant_4_mono.zip
plant_4_stereo.zip
plant_4_rgbd.zip
plant_4_imu.zip
plant_4_raw.zip
plant_5 - 169 frames
The camera shortly views a plant.
plant_5_mono.zip
plant_5_stereo.zip
plant_5_rgbd.zip
plant_5_imu.zip
plant_5_raw.zip
plant_dark - 1140 frames
The camera moves around a plant in the dark. The RGB cameras do not provide information, so SLAM methods have to rely on other data.
plant_dark_mono.zip
plant_dark_stereo.zip
plant_dark_rgbd.zip
plant_dark_imu.zip
plant_dark_raw.zip
plant_scene_1 - 740 frames
The camera slowly moves around in a scene with a plant, a sofa, a table, and a large checkerboard.
plant_scene_1_mono.zip
plant_scene_1_stereo.zip
plant_scene_1_rgbd.zip
plant_scene_1_imu.zip
plant_scene_1_raw.zip
plant_scene_2 - 722 frames
The camera slowly moves around in a scene with a plant, a sofa, a table, and a large checkerboard.
plant_scene_2_mono.zip
plant_scene_2_stereo.zip
plant_scene_2_rgbd.zip
plant_scene_2_imu.zip
plant_scene_2_raw.zip
plant_scene_3 - 618 frames
The camera slowly moves around in a scene with a plant, a sofa, a table, and a large checkerboard. The plant occludes the other objects several times, which may interrupt feature tracks.
plant_scene_3_mono.zip
plant_scene_3_stereo.zip
plant_scene_3_rgbd.zip
plant_scene_3_imu.zip
plant_scene_3_raw.zip
reflective_1 - 4601 frames
The camera observes some reflective metal parts which make it very hard to correctly estimate depth or track features.
reflective_1_mono.zip
reflective_1_stereo.zip
reflective_1_rgbd.zip
reflective_1_imu.zip
reflective_1_raw.zip
repetitive - 1966 frames
The camera slowly moves around a table with some objects on it and next to it. Some of the objects look very similar, which may confuse loop closure detectors.
repetitive_mono.zip
repetitive_stereo.zip
repetitive_rgbd.zip
repetitive_imu.zip
repetitive_raw.zip
sfm_bench - 660 frames
The camera moves around a bench to create a 3D reconstruction of it. This dataset was filmed outside of the Vicon system, thus ground-truth is determined with Structure-from-Motion.
sfm_bench_mono.zip
sfm_bench_stereo.zip
sfm_bench_rgbd.zip
sfm_bench_imu.zip
sfm_bench_raw.zip
sfm_garden - 674 frames
The camera moves in a loop in a garden, mostly filming the meadow. This dataset was filmed outside of the Vicon system, thus ground-truth is determined with Structure-from-Motion.
sfm_garden_mono.zip
sfm_garden_stereo.zip
sfm_garden_rgbd.zip
sfm_garden_imu.zip
sfm_garden_raw.zip
sfm_house_loop - 556 frames
The camera moves in a large loop around a house. This dataset was filmed outside of the Vicon system, thus ground-truth is determined with Structure-from-Motion.
sfm_house_loop_mono.zip
sfm_house_loop_stereo.zip
sfm_house_loop_rgbd.zip
sfm_house_loop_imu.zip
sfm_house_loop_raw.zip
sfm_lab_room_1 - 263 frames
The camera moves through a cluttered lab room. This dataset was filmed outside of the Vicon system, thus ground-truth is determined with Structure-from-Motion.
sfm_lab_room_1_mono.zip
sfm_lab_room_1_stereo.zip
sfm_lab_room_1_rgbd.zip
sfm_lab_room_1_imu.zip
sfm_lab_room_1_raw.zip
sfm_lab_room_2 - 125 frames
The camera moves through a cluttered lab room. This dataset was filmed outside of the Vicon system, thus ground-truth is determined with Structure-from-Motion.
sfm_lab_room_2_mono.zip
sfm_lab_room_2_stereo.zip
sfm_lab_room_2_rgbd.zip
sfm_lab_room_2_imu.zip
sfm_lab_room_2_raw.zip
sofa_1 - 976 frames
The camera slowly moves around a sofa.
sofa_1_mono.zip
sofa_1_stereo.zip
sofa_1_rgbd.zip
sofa_1_imu.zip
sofa_1_raw.zip
sofa_2 - 676 frames
The camera slowly moves around a sofa.
sofa_2_mono.zip
sofa_2_stereo.zip
sofa_2_rgbd.zip
sofa_2_imu.zip
sofa_2_raw.zip
sofa_3 - 533 frames
The camera moves in front of a sofa.
sofa_3_mono.zip
sofa_3_stereo.zip
sofa_3_rgbd.zip
sofa_3_imu.zip
sofa_3_raw.zip
sofa_4 - 788 frames
The camera moves in front of a sofa.
sofa_4_mono.zip
sofa_4_stereo.zip
sofa_4_rgbd.zip
sofa_4_imu.zip
sofa_4_raw.zip
sofa_dark_1 - 1605 frames
The camera moves around a sofa in the dark. The RGB cameras do not provide information, so SLAM methods have to rely on other data.
sofa_dark_1_mono.zip
sofa_dark_1_stereo.zip
sofa_dark_1_rgbd.zip
sofa_dark_1_imu.zip
sofa_dark_1_raw.zip
sofa_dark_2 - 281 frames
The camera moves in front of a sofa in the dark. The RGB cameras do not provide information, so SLAM methods have to rely on other data.
sofa_dark_2_mono.zip
sofa_dark_2_stereo.zip
sofa_dark_2_rgbd.zip
sofa_dark_2_imu.zip
sofa_dark_2_raw.zip
sofa_dark_3 - 1187 frames
The camera moves in front of a sofa in the dark. The RGB cameras do not provide information, so SLAM methods have to rely on other data.
sofa_dark_3_mono.zip
sofa_dark_3_stereo.zip
sofa_dark_3_rgbd.zip
sofa_dark_3_imu.zip
sofa_dark_3_raw.zip
sofa_shake - 500 frames
The camera rotates in front of a sofa.
sofa_shake_mono.zip
sofa_shake_stereo.zip
sofa_shake_rgbd.zip
sofa_shake_imu.zip
sofa_shake_raw.zip
table_3 - 1180 frames
The camera slowly moves around a table with some objects on it and some clutter next to it.
table_3_mono.zip
table_3_stereo.zip
table_3_rgbd.zip
table_3_imu.zip
table_3_raw.zip
table_4 - 1016 frames
The camera slowly moves around a table with some objects on it and some clutter next to it.
table_4_mono.zip
table_4_stereo.zip
table_4_rgbd.zip
table_4_imu.zip
table_4_raw.zip
table_7 - 1675 frames
The camera slowly moves around a table with some objects on it and some clutter next to it.
table_7_mono.zip
table_7_stereo.zip
table_7_rgbd.zip
table_7_imu.zip
table_7_raw.zip
vicon_light_1 - 813 frames
The camera moves around one of the infrared lights of the Vicon system.
vicon_light_1_mono.zip
vicon_light_1_stereo.zip
vicon_light_1_rgbd.zip
vicon_light_1_imu.zip
vicon_light_1_raw.zip
vicon_light_2 - 507 frames
The camera moves around one of the infrared lights of the Vicon system.
vicon_light_2_mono.zip
vicon_light_2_stereo.zip
vicon_light_2_rgbd.zip
vicon_light_2_imu.zip
vicon_light_2_raw.zip

Test datasets

boxes - 1554 frames
The camera slowly moves around some presents on a table to create a 3D reconstruction of them.
boxes_mono.zip
boxes_stereo.zip
boxes_rgbd.zip
boxes_imu.zip
boxes_raw.zip
boxes_dark - 816 frames
The camera moves around some stacked boxes. The RGB cameras do not provide information, so SLAM methods have to rely on other data.
boxes_dark_mono.zip
boxes_dark_stereo.zip
boxes_dark_rgbd.zip
boxes_dark_imu.zip
boxes_dark_raw.zip
buddha - 2048 frames
The camera slowly moves around a figure on a table to create a 3D reconstruction of it.
buddha_mono.zip
buddha_stereo.zip
buddha_rgbd.zip
buddha_imu.zip
buddha_raw.zip
cables_4 - 681 frames
The camera views some cable clutter on a table. This arrangement may make it hard to detect reliable features in the RGB images.
cables_4_mono.zip
cables_4_stereo.zip
cables_4_rgbd.zip
cables_4_imu.zip
cables_4_raw.zip
cables_5 - 386 frames
The camera views some cable clutter on a table while moving quickly. This arrangement may make it hard to detect reliable features in the RGB images.
cables_5_mono.zip
cables_5_stereo.zip
cables_5_rgbd.zip
cables_5_imu.zip
cables_5_raw.zip
desk_1 - 771 frames
The camera moves around a scene with several objects.
desk_1_mono.zip
desk_1_stereo.zip
desk_1_rgbd.zip
desk_1_imu.zip
desk_1_raw.zip
desk_2 - 1324 frames
The camera moves quickly through a scene with clutter on several tables.
desk_2_mono.zip
desk_2_stereo.zip
desk_2_rgbd.zip
desk_2_imu.zip
desk_2_raw.zip
desk_changing_2 - 3591 frames
The camera moves through a scene while objects in the scene are being moved when they are not visible. This can confuse loop closure systems and SLAM methods with implicit map re-use.
desk_changing_2_mono.zip
desk_changing_2_stereo.zip
desk_changing_2_rgbd.zip
desk_changing_2_imu.zip
desk_changing_2_raw.zip
desk_dark_1 - 1059 frames
The camera moves around in a scene with several objects in the dark. The RGB cameras do not provide information, so SLAM methods have to rely on other data.
desk_dark_1_mono.zip
desk_dark_1_stereo.zip
desk_dark_1_rgbd.zip
desk_dark_1_imu.zip
desk_dark_1_raw.zip
desk_dark_2 - 1424 frames
The camera moves around in a scene with several objects in the dark. The RGB cameras do not provide information, so SLAM methods have to rely on other data.
desk_dark_2_mono.zip
desk_dark_2_stereo.zip
desk_dark_2_rgbd.zip
desk_dark_2_imu.zip
desk_dark_2_raw.zip
desk_global_light_changes - 1517 frames
The camera moves through a scene with clutter on several tables while the room lights are being turned on and off.
desk_global_light_changes_mono.zip
desk_global_light_changes_stereo.zip
desk_global_light_changes_rgbd.zip
desk_global_light_changes_imu.zip
desk_global_light_changes_raw.zip
desk_ir_light - 359 frames
The camera views a desk with objects on it that is also illuminated by an external, hand-held infrared light.
desk_ir_light_mono.zip
desk_ir_light_stereo.zip
desk_ir_light_rgbd.zip
desk_ir_light_imu.zip
desk_ir_light_raw.zip
dino - 2074 frames
The camera slowly moves around a toy dinosaur on a table to create a 3D reconstruction of it.
dino_mono.zip
dino_stereo.zip
dino_rgbd.zip
dino_imu.zip
dino_raw.zip
drone - 1412 frames
The camera slowly moves around a drone on a table to create a 3D reconstruction of it.
drone_mono.zip
drone_stereo.zip
drone_rgbd.zip
drone_imu.zip
drone_raw.zip
foreground_occlusion - 451 frames
The camera views a scene, while its view is often temporarily obscured by a foreground object, which may interrupt feature tracks.
foreground_occlusion_mono.zip
foreground_occlusion_stereo.zip
foreground_occlusion_rgbd.zip
foreground_occlusion_imu.zip
foreground_occlusion_raw.zip
helmet - 1704 frames
The camera slowly moves around a bicycle helmet on a table to create a 3D reconstruction of it.
helmet_mono.zip
helmet_stereo.zip
helmet_rgbd.zip
helmet_imu.zip
helmet_raw.zip
kidnap_2 - 878 frames
The camera gets 'kidnapped', i.e., moved while its view is blocked, then moved back to the original view. SLAM methods will have to relocalize against the initial scene after the kidnap.
kidnap_2_mono.zip
kidnap_2_stereo.zip
kidnap_2_rgbd.zip
kidnap_2_imu.zip
kidnap_2_raw.zip
lamp - 984 frames
The camera scans a large studio lamp.
lamp_mono.zip
lamp_stereo.zip
lamp_rgbd.zip
lamp_imu.zip
lamp_raw.zip
large_loop_2 - 1947 frames
The camera moves around in a large loop in the Vicon area.
large_loop_2_mono.zip
large_loop_2_stereo.zip
large_loop_2_rgbd.zip
large_loop_2_imu.zip
large_loop_2_raw.zip
large_loop_3 - 1751 frames
The camera performs loopy movement within the Vicon area.
large_loop_3_mono.zip
large_loop_3_stereo.zip
large_loop_3_rgbd.zip
large_loop_3_imu.zip
large_loop_3_raw.zip
large_non_loop - 1727 frames
The camera moves along a long trajectory without closing a loop.
large_non_loop_mono.zip
large_non_loop_stereo.zip
large_non_loop_rgbd.zip
large_non_loop_imu.zip
large_non_loop_raw.zip
motion_2 - 401 frames
The camera films a person who moves several objects in a scene with two tables.
motion_2_mono.zip
motion_2_stereo.zip
motion_2_rgbd.zip
motion_2_imu.zip
motion_2_raw.zip
motion_3 - 1119 frames
The camera films a person who moves several objects in a scene with two tables.
motion_3_mono.zip
motion_3_stereo.zip
motion_3_rgbd.zip
motion_3_imu.zip
motion_3_raw.zip
motion_4 - 2833 frames
The camera films a person who moves several objects in a scene with two tables.
motion_4_mono.zip
motion_4_stereo.zip
motion_4_rgbd.zip
motion_4_imu.zip
motion_4_raw.zip
planar_1 - 425 frames
The camera views a painting which is mostly planar. It is important to use photometric information to track the camera pose here, since the geometry does likely not sufficiently constrain it.
planar_1_mono.zip
planar_1_stereo.zip
planar_1_rgbd.zip
planar_1_imu.zip
planar_1_raw.zip
reflective_2 - 1128 frames
The camera views a reflective (and very dark) TV screen. This makes it very hard to correctly estimate depth or track features.
reflective_2_mono.zip
reflective_2_stereo.zip
reflective_2_rgbd.zip
reflective_2_imu.zip
reflective_2_raw.zip
scale_change - 406 frames
The camera starts close to an object, moves far away, and then returns. Correctly associating the initial and final views is likely important for high accuracy.
scale_change_mono.zip
scale_change_stereo.zip
scale_change_rgbd.zip
scale_change_imu.zip
scale_change_raw.zip
table_1 - 858 frames
The camera slowly moves around a blank table with two chairs next to it.
table_1_mono.zip
table_1_stereo.zip
table_1_rgbd.zip
table_1_imu.zip
table_1_raw.zip
table_2 - 1136 frames
The camera slowly moves around a blank table to create a 3D reconstruction of it.
table_2_mono.zip
table_2_stereo.zip
table_2_rgbd.zip
table_2_imu.zip
table_2_raw.zip
table_5 - 934 frames
The camera slowly moves around a table with some objects on it and some clutter next to it.
table_5_mono.zip
table_5_stereo.zip
table_5_rgbd.zip
table_5_imu.zip
table_5_raw.zip
table_6 - 1409 frames
The camera slowly moves around a table with some objects on it and some clutter next to it.
table_6_mono.zip
table_6_stereo.zip
table_6_rgbd.zip
table_6_imu.zip
table_6_raw.zip
table_global_light_changes - 2556 frames
While the camera moves through a scene with several objects on two tables, the room lights are turned on and off.
table_global_light_changes_mono.zip
table_global_light_changes_stereo.zip
table_global_light_changes_rgbd.zip
table_global_light_changes_imu.zip
table_global_light_changes_raw.zip
table_local_light_changes - 1931 frames
The camera moves through a scene with several objects on two tables. The scene is only illuminated by a hand-held flashlight, which may be a very challenging illumination condition for SLAM systems.
table_local_light_changes_mono.zip
table_local_light_changes_stereo.zip
table_local_light_changes_rgbd.zip
table_local_light_changes_imu.zip
table_local_light_changes_raw.zip
table_scene - 1116 frames
The camera moves around in a scene with objects on two tables and some clutter.
table_scene_mono.zip
table_scene_stereo.zip
table_scene_rgbd.zip
table_scene_imu.zip
table_scene_raw.zip
trashbin - 573 frames
The camera slowly moves around a trashbin to create a 3D reconstruction of it. There is a translucent foil on the trashbin which may cause issues with depth sensing.
trashbin_mono.zip
trashbin_stereo.zip
trashbin_rgbd.zip
trashbin_imu.zip
trashbin_raw.zip

Calibration datasets

These raw datasets in rosbag format were used to calibrate the camera system. They are provided here to make it possible to improve upon our calibration. If using the already-processed, non-raw datasets, these calibration datasets do not need to be used.

Note that the images of the RGB cameras are set to 'mono8' encoding, however they actually use a Bayer pattern which would correspond to the 'bayer_rggb8' encoding. This means that the pattern consists of the following repeating block:

R G
G B

A list of dead pixels or pixels with broken color filter that we compiled is provided here: dead_pixels.txt.

Please note that in some of the raw datasets, the images of some cameras may be shifted to the left/right by two pixels, which is for example noticeable from the location of the dead pixels, and potentially from missing data on the left image border. This is due to a bug in the camera system that we used, and needs to be detected and corrected on a per-dataset basis.

The images also have artifacts at the borders that should be cut off. We cut the following numbers of pixels from different sides: left 4, bottom 10, right 2, top 2.

Raw calibration dataset for videos recorded in the motion capturing system (with 4 cameras), using a large checkerboard pattern. 2018-08-13-15-44-25-camera-calibration.bag
large_checkerboard_target.yaml (ideal geometry of the checkerboard; compatible with Kalibr)
Raw calibration dataset for videos recorded outside of the motion capturing system (with 8 cameras), using several small checkerboard patterns tagged with AprilTags. 2018-10-18-15-30-00-8-camera-calibration.bag
small_checkerboard_pattern.txt (ideal geometry of a single checkerboard; one 3D corner point per line)
Several raw calibration datasets for fixed-pattern noise calibration. Consists of black recordings, in which images are supposed to show pure black, and homogeneous recordings, in which images are supposed to show approximately homogeneous color. fpn_calibration_datasets.zip
Per-dataset calibration sequences: We recorded data for camera rig extrinsics refinement and for camera-mocap calibration for each dataset. However, one such calibration set may correspond to multiple datasets. In a raw dataset archive, the text file calibration_dataset.txt contains the name of the corresponding calibration dataset. The calibration dataset can then be downloaded from: https://www.eth3d.net/data/slam/calibration/dataset-name.zip. The Python download script can download these automatically.

Synthetic datasets

These datasets were used to evaluate the effect of rolling shutter and asynchronous frames in our paper on BAD SLAM. They are not part of the ETH3D SLAM benchmark, but provided here for the case that they may be useful.

The datasets with suffix clean are perfect renderings without any distortions.
The datasets with suffix async have asynchronous color and depth images.
The datasets with suffix rs use simulated rolling shutter cameras.
The datasets with suffix async_rs both have asynchronous frames and rolling shutter cameras.

The datasets were created by first making 3D reconstructions of TUM RGB-D benchmark datasets with SurfelMeshing and then rendering those. The 3D reconstructions may serve as ground truth geometry and can be downloaded here: synthetic_groundtruth_meshes.zip.

The original TUM RGB-D datasets are licensed under a CC BY 4.0 license and were authored by J. Sturm, N. Engelhard, F. Endres, W. Burgard, and D. Cremers.

Downloads:
rgbd_dataset_freiburg1_360 - clean async rs async_rs
rgbd_dataset_freiburg1_desk2 - clean async rs async_rs
rgbd_dataset_freiburg1_desk - clean async rs async_rs
rgbd_dataset_freiburg1_rpy - clean async rs async_rs
rgbd_dataset_freiburg1_xyz - clean async rs async_rs
rgbd_dataset_freiburg3_long_office_household - clean async rs async_rs
rgbd_dataset_freiburg3_nostructure_texture_near_withloop - clean async rs async_rs