prs-eth
Scene-Recognition-in-3D
Python

[IROS 2020] Indoor Scene Recognition in 3D

Last updated Jun 30, 2026
58
Stars
11
Forks
5
Issues
0
Stars/day
Attention Score
9
Language breakdown
Python 84.9%
Jupyter Notebook 6.5%
Cuda 4.9%
C++ 3.7%
Objective-C 0.1%
โ–ธ Files click to expand
README

Scene-Recognition-in-3D(IROS'20)

This repository contains the source code and pretrained models from the paper Scene Recognition in 3D.

Indoor Scene Recognition in 3D

Shengyu Huang, Mikhail Usvyatsov, Konrad Schindler

To the best of our knowledge, we are the first to study the task of indoor scene recognition in 3D.

News

  • 2020-11-26 Updates on pretrained weights and a small data pre-processing script
  • 2019-02-28 initial release

Citation

If you find our work useful, please consider citing
@article{huang2020indoor,
  title={Indoor Scene Recognition in 3D},
  author={Huang, Shengyu and Usvyatsov, Mikhail and Schindler, Konrad},
  journal={IROS},
  year={2020}
}

Dependencies

The required libraries can be easily installed by runing
pip3 install -r requirements.txt
We use MinkowskiEngine(v0.4.2) as our 3D sparse convolution framework. If you have problem with compiling it, please refer to MinkowskiEngine for more details.

Data

We evaluate our model on ScanNet benchmark, the dataset is released under the ScanNet Term of Use, please contact ScanNet team for access.

We preprocess the raw data to be pth file for efficient access. We use torch_cluster for GPU-based effficient farthest point sampling, you can find a sample under the folder `tmp. The train/val/test split can be found under the folder split.

Pretrained model

You can download the pretrained models for testing from here.

Train and test

DGCNN

Please change
basetrain, baseval to your data folder. Then run <pre><code class="lang-shell">python3 main.py</code></pre>

PointNet++

Please change
basetrain, baseval to your data folder. Then run <pre><code class="lang-shell">python3 sceneclassification.py --addcolor True --num_points 4096</code></pre>

sparseConv

  • For Resnet14, change pathtrain and pathval` then run
python3 main.py --numpoints 4096 --usecolor True
  • Follow the following 3 steps to train the multi-task learner, these three parts only differ slightly in our implementation, please refer to three folders respectively for more details:
  • train the sparse encoder and semantic segmentation decoder
  • freeze the encoder then train the sparse classification decoder
  • finetune both encoder and decoder with small lr

References

Here are some great resources we benefit: I personally also recommend these three repositories regarding sparse convolution to you:

ยฉ 2026 GitRepoTrend ยท prs-eth/Scene-Recognition-in-3D ยท Updated daily from GitHub