Points2Objects is an approach for reconstructing multiple objects from a single image. You can find more information in the following paper: From Points to Multi-Object 3D Reconstruction. If you find the code or the paper useful, please consider citing our work:
@inproceedings{Engelmann21CVPR,
author = {Engelmann, Francis and Rematas, Konstantinos and Leibe, Bastian and Ferrari, Vittorio},
title = {{From Points to Multi-Object 3D Reconstruction}},
booktitle = {{IEEE Conference on Computer Vision and Pattern Recognition (CVPR)}},
year = {2021}
}for n in pairs triplets; do
for s in train val test; do
wget "https://storage.googleapis.com/gresearch/corenet/${n}.${s}.tar" \
-O "data/raw/${n}.${s}.tar"
tar -xvf "data/raw/${n}.${s}.tar" -C data/
done
doneThe CoReNet dataset itself does not contain any polygon meshes.
Instead, it relies on the ShapeNetCore.v2 dataset.
After registering, you can download the dataset as follows:
wget https://shapenet.cs.stanford.edu/shapenet/obj-zip/ShapeNetCore.v2.zip --no-check-certificate
unzip ShapeNetCore.v2.zipThe 14 ShapeNet classes used in the CoReNet datasets (pairs and triplets) are as follows:
| Class ID | Class Name |
|---|---|
| 02818832 | bed |
| 02876657 | bottle |
| 02880940 | bowl |
| 02958343 | car |
| 03001627 | chair |
| 03211117 | display |
| 03467517 | guitar |
| 03636649 | lamp |
| 03790512 | motorcycle |
| 03797390 | mug |
| 03928116 | piano |
| 03938244 | pillow |
| 04256520 | sofa |
| 04379243 | table |
For each mesh, we sample points from its surface to obtain a point cloud,
and we compute a signed distance function (SDF) representation.
This step will take a while.
You can keep track of the progress and verify that all files have been successfully processed using
ls ~/datasets/ShapeNetCore.v2.points_sdf/* -l | wc -l which should show 27881.
python datasets/preprocess_shapenet.py --shapenet_path='~/datasets/ShapeNetCore.v2' --corenet_path='~/datasets/corenet/data' --output_path='~/datasets/ShapeNetCore.v2.points_sdf'This step generates two pickle files (dict_class_model_clusterId.pkl, dict_clusterCenter_class_nearestModel.pkl) used by the model during training and evaluation.
python datasets/preprocess_clusters.py --shapenet_path='~/datasets/ShapeNetCore.v2' --corenet_path='~/datasets/corenet/data' --sdf_path='~/datasets/ShapeNetCore.v2.points_sdf'Work in progress...