Official repository for the SyntheT-Less dataset
used in On Object Symmetries and 6D Pose Estimation from Images, G. Pitteri*, M. Ramamonjisoa*, S. Ilic and V. Lepetit
The data is available here (9.6GB zip file).
Here is how the dataset is organised:
multi_objects/
|__images
|__ img_xxxxx.png
|__contours/
|__ xxxxx.png
|__depth/
|__ xxxxx.png
|__normals
|__ xxxxx.png
|__mask
|__ xxxxx.png
|__instances
|__ xxxxx.png --> uint8 image containing object labels from 1 to 9 (background pixels are annotated with 0)
|__gt_poses/
|__ tmp_xxxxx.json --> contains a dictionnary of object poses with keys annotated from 0 to 8
(There is a 1-shift from object instances indices, sorry about that!)
{
"0": {"Euler": [theta_x, theta_y, theta_z],
"T": [Tx, Ty, Tz],
"type": object type from T-LESS (from 1 to 30)},
...
"8": {"Euler": [theta_x, theta_y, theta_z],
"T": [Tx, Ty, Tz],
"type": object type from T-LESS (from 1 to 30)},
"Lamp": {"phi": lamp_phi,
"theta": lamp_theta,
"strength": lamp_strength}
"Ambient Light": ambient occlusion level (0 to 1)
"Table": {"distance": distance in meters,
"Euler": [theta_table_x, theta_table_y, theta_table_z]}
}
Download the Describable Textures Dataset (DTD) and set its folder using:
cd DTD && \
wget https://www.robots.ox.ac.uk/~vgg/data/dtd/download/dtd-r1.0.1.tar.gz && \
tar -xf dtd-r1.0.1.tar.gz --strip-components=1 && cd .. &&\
rm -rf DTD/dtd-r1.0.1.tar.gz
Download the T-LESS CAD models:
wget http://ptak.felk.cvut.cz/darwin/t-less/v2/t-less_v2_models_cad.zip && \
unzip t-less_v2_models_cad.zip && \
rm -rf t-less_v2_models_cad.zip
Download Blender and save it to the Blender/ path. using the following commands (skip this step if you have previously installed Blender).
mv ABSOLUTE_PATH_WHERE_FILE_WAS_DOWNLOADED.tar.bz2 ROOT_OF_THIS_DIRECTORY
bzip2 -d blender-2.80-linux-glibc217-x86_64.tar.bz2
mkdir blender && tar -xf blender-2.80-linux-glibc217-x86_64.tar -C blender/ --strip-components=1
rm -rf blender-2.80-linux-glibc217-x86_64.tar
Make sure you have installed the following requirements:
- Blender (in previous step)
- OpenCV
- OpenEXR
- imageio
- skimage
- multiprocessing
- imath
Most of them can be installed using pip install "package_name"
Then run:
python3 call_blender_multi.py --blender_path $BLENDER_PATH \
--dtd-rootdir DTD \
--models_path models_cad\
--cpus $NUM_CPUS --size $DATASET_SIZE --cuda $CUDA_DEVICE
Variables:
- $BLENDER_PATH: Path to the directory containing your Blender executable (use blender/ if installed with step 3)
- $NUM_CPUS: Number of processes to run data generation in parallel. We recommand setting it to your machine CPUs number.
- $DATASET_SIZE: Aimed dataset size
- $CUDA_DEVICE: GPU ID for data generation
Call python3 call_blender_multi.py --help for help on other parameters.
If you use our data generation code or already generated data, please cite our paper:
@article{pitteri2019threedv,
Title = {On Object Symmetries and 6D Pose Estimation from Images},
Author = {G. Pitteri and M. Ramamonjisoa and S. Ilic and V. Lepetit},
Journal = {International Conference on 3D Vision},
Year = {2019}
}