We provide the preprocessing scripts and benchmark data for the ScanNet200 Benchmark. The raw scans and annotations are shared with the original ScanNet benchmark; these scripts provided output semantic and instance labeled meshes according to the ScanNet200 categories.
Differences and similarities to the original benchmark
- The ScanNet200 benchmark evaluates 200 categories, an order of magnitude larger than the original set of 20 classical semantic labels.
- This new benchmark follows the original train/val/test scene splits published in this repository,
- We presented a further split of the category sets into three sets based on their point and instance frequencies, namely head, common, and tail. The category splits can be found in
scannet200_split.pyfile - The raw annotations in the training set containing 550 distinct categories, many of which appear only once, and were filtered to produce the large-vocabulary, challenging ScanNet200 setting. The mapping of annotation category IDs to ScanNet200 valid categories can be found in
scannet200_constants.py. - This larger vocabulary includes a strong natural imbalance and diversity for evaluating modern 3D scene understanding methods in a challenging scenario.
We provide scripts for preprocessing and parsing the scene meshes to semantically and instance labeled meshes in preprocess_scannet200.py.
Additionally, helper functions such as mesh voxelization can be found in utils.py
The scripts are developed and tested with Python 3, and basic libraries like pandas and plyfile are expected to be installed. Additionally, we rely on trimesh and MinkowskiEngine for uniform mesh voxelization, but these libraries are not strictly necessary
The preprocessing can be started with
python --dataset_root <SCANNET_ROOT_FOLDER>
--output_root <OUTPUT_ROOT_FOLDER>
--label_map_file <PATH_TO_MAPPING_TSV_FILE>
Additional options:
--num_workers:
The number of parallel workers for multiprocessing
default=4
--train_val_splits_path:
Where the txt files with the train/val splits live
default='../../Tasks/Benchmark'
