This dataset contains 89 scenes of various objects placed on a table. The set of objects includes simple objects like boxes as well as nonconvex objects such as a teddy bear. Complexity of the scenes varies from single objects to multiple objects put side by side and stacked on top of each other. Scenes were captured by moving a Kinect sensor in approximately 120 degree horizontal arc around the center of the scene and stitching individual RGB-D frames using the Kinect Fusion algorithm. Pointclouds were preporocessed by removing the points belonging to the environment and only leaving the points belonging to the objects on the table. In addition to pointcloud data the following information is available for each scene:
The dataset is organized as follows:
/dataset
contains the scenes/sample_code
a C++ program that shows how to load and display the pointcloud, ground truth segmentation, symmetries and table plane information.Each scene is stored in a folder called scene_xxx
. Scenes are numbered in the increasing order of complexity:
Scene indices | Number of objects |
---|---|
000 - 024 | 1 |
025 - 038 | 2 |
039 - 056 | 3-4 |
057 - 088 | 5+ |
For each scene the following information is provided:
Pointcloud cloud.ply
Pointclouds are stored as ply files which can be opened and manipulated using the PCL library. They contain point location (XYZ), color information (RGB) and surface normal estimates.
Occupancy map occupancy.bt
Occupancy map is a voxelized map of the captured scene where each voxel is marked as either free, occupied or unknown (occluded). These maps were constructed using the OctoMap library. Note that unlike pointclouds which only capture the objects in the scene ocupancy maps capture the whole scene.
Table plane table_plane.txt
The coefficients of the table plane are stored in a text file (ax + by + cx + d = 0).
Ground truth segmentation ground_truth_seg.lbl
Segmentation masks for each object in the scene are stored in .lbl
files. These files have the following structure:
# of segments
--------------------
0 segment
--------------------
indices of points belonging to segment 0
...
--------------------
n segment
--------------------
indices of points belonging to segment n
...
Ground truth symmetries ground_truth_symmetry.txt
Rotational and reflectional symmetries for each object in the scene are stored in .txt
files. Each set of symmetries is labeled with the index of the segment that they belong to. Symmetry files have the following structure:
# of symmetries
--------------------
0
--------------------
symmetries describing segment 0
...
--------------------
n
--------------------
symmetries describing segment n
...
sample_code
shows an example of how to read and write segmentation and symmetry files.
Preview frame preview_frame.png
This file shows a single RGB frame of the scene.
A C++ program that shows how to load a scene, display a pointcloud, the table plane and the ground truth segmentation. Requires PCL.
To compile:
cd sample_code
mkdir build
cd build
cmake ..
make
To run:
./sample_code <scene directory>
Please cite the following reference if you use this dataset:
@inproceedings{Ecins_IROS2018,
author = "Aleksandrs Ecins and Cornelia Fermuller, and Yiannis Aloimonos",
title = "Seeing Behind The Scene: Using Symmetry To Reason About Objects in Cluttered Environments",
booktitle = "International Conference on Intelligent Robots and Systems (IROS)",
year = "2018",
}
Aleksandrs Ecins
Computer Vision Laboratory
University of Maryland College Park
aecins(at)cs.umd.edu
PS: Don't hasitate to contact me for further information.