View all files | ||||
Official implementation for
Learning Multi-View Aggregation In the Wild for Large-Scale 3D Semantic Segmentation
(CVPR'22 Best Paper Finalist 🎉)
If you ❤️ or simply use this project, don't forget to give the repository a ⭐,
it means a lot to us !
We propose to exploit the synergy between images 🖼️ and 3D point clouds ☁️ by learning to select the most relevant views for each point. Our approach uses the viewing conditions 👀 of 3D points to merge features from images taken at arbitrary positions. We reach SOTA results for S3DIS (74.7 mIoU 6-Fold) and on KITTI- 360 (58.3 mIoU) without requiring point colorization, meshing, or the use of depth cameras: our full pipeline only requires raw, large-scale 3D point clouds and a set of images and poses.
| 🤖 Learns 2D+3D features end-to-end |
| 👀 Attentive multi-view aggregation from viewing conditions |
| 🚫 No need for 3D colorization, meshing, depth sensor, synthetic views, or 2D labels |
| ✅ Only needs raw point clouds, images, and poses |
The following must be installed before installing this project.
All remaining dependencies (PyTorch, PyTorch Geometric, etc.) should be installed using the provided installation script.
The code has been tested in the following environment:
To install DeepViewAgg, simply run ./install.sh from inside the repository.
This is not the official Torch-Points3D framework. This work builds on and modifies a fixed version of the framework and has not been merged with the official repository yet. In particular, this repository introduces numerous features for multimodal learning on large-scale 3D point clouds. In this repository, some TP3D-specific files were removed for simplicity.
The project follows the original Torch-Points3D framework structure.
Several changes were made to extend the original project to multimodal learning on point clouds with images. The most important ones can be found in the following:
Notebook to create synthetic toy dataset and get familiar with 2D-3D mappings construction :
Notebooks to create dataset, get familiar with dataset configuration and produce interactive visualization. You can also run inference from a checkpoint and visualize predictions:
Notebooks to create multimodal models, get familiar with model configuration and run forward and backward passes for debugging:
Notebooks to run full inference on multimodal datasets, from a model checkpoint. Those should allow you to reproduce our results by using the pretrained models in Models:
Scripts to replicate our paper's best experiments 📈 for each dataset:
If you need to go deeper into this project, see the Documentation section.
If you have trouble using these or need reproduce other results from our paper, create an issue or leave me a message 💬 !
| Res16UNet34-L4-early | S3DIS 6-Fold | 74.7 | 2.0G | link |
| Res16UNet34-PointPyramid-early-cityscapes-interpolate | KITTI-360 | 61.7 Val / 58.3 Test | 339M | link |
| Res16UNet34-L4-early | ScanNet | 71.0 Val | 341M | link |
The official documentation of Pytorch Geometric and Torch-Points3D are good starting points, since this project largely builds on top of these frameworks. For DeepViewAgg-specific features (i.e. all that concerns multimodal learning), the provided code is commented as much as possible, but hit me up 💬 if some parts need clarification.
We provide code to produce interactive and sharable HTML visualizations of multimodal data and point-image mappings:
Examples of such HTML produced on S3DIS Fold 5 are zipped here and can be opened in your browser.
In case you use all or part of the present code, please include the following citation:
You can find our DeepViewAgg paper 📄 on arxiv.
Also, if you ❤️ or simply use this project, don't forget to give the repository a ⭐, it means a lot to us !