{ "cells": [ { "cell_type": "markdown", "id": "37a2fdbf-1fc9-433f-ac19-b073d95ad154", "metadata": { "jp-MarkdownHeadingCollapsed": true }, "source": [ "# 0. Preliminaries" ] }, { "cell_type": "markdown", "id": "15c2bd16-09cd-4dd6-b4b3-14b424ea4764", "metadata": {}, "source": [ "Before starting, here are some prerequisites for this tutorial.\n", "\n", "### 💻 Environment requirements\n", "This project was tested with:\n", "\n", "- Linux OS (Windows Subsystem for Linux _**might**_ work but we do not officially support it)\n", "- 64G RAM\n", "- NVIDIA GTX 1080 Ti 11G, NVIDIA V100 32G, NVIDIA A40 48G\n", "- CUDA 11.8 and 12.1\n", "- conda 23.3.1\n", "\n", "### 🏗 Installation\n", "As indicated in our [README](../README.md), simply run [`install.sh`](install.sh) to install all dependencies in a new conda environment \n", "named `spt`. \n", "\n", "```bash\n", "# Creates a conda env named 'spt' env and installs dependencies\n", "./install.sh\n", "```\n", "\n", "### 👩💻 Coding experience\n", "Being familiar with the following is _**mandatory**_:\n", "- [Python](https://www.python.org/)\n", "- [Jupyter](https://jupyter.org/)\n", "- [PyTorch](https://pytorch.org/docs/stable/index.html/)\n", "- [PyTorch Lightning](https://lightning.ai/docs/pytorch/stable/)\n", "\n", "Knowledge of the following would also be _**nice to have**_:\n", "- [PyTorch Geometric](https://pytorch-geometric.readthedocs.io/en/latest/)\n", "- [Hydra](https://hydra.cc/docs/intro/)\n", "- [lightning-hydra-template](https://github.com/ashleve/lightning-hydra-template)\n", "\n", "Finally, having a look at our [README](../README.md) would help you better _**navigate our code structure**_.\n", "\n", "### 🧑🎓 Machine learning experience\n", "Whether you intend to **simply understand, make use of, or extend** our method, we **strongly encourage you to read (and cite) our paper [_Efficient 3D Semantic Segmentation with Superpoint Transformer_](https://arxiv.org/abs/2306.08045)** (ICCV 2023).\n", "\n", "Besides, if you are not very familiar with 3D deep learning and self-attention, some important papers might provide a bit more context for this work:\n", "- [Transformer](https://arxiv.org/abs/1706.03762) (NeurIPS 2017)\n", "- [PointNet](https://arxiv.org/abs/1612.00593) (CVPR 2017)\n", "- [Superpoint Graph](https://arxiv.org/abs/1711.09869) (CVPR 2018)" ] }, { "cell_type": "markdown", "id": "969c39a3-f0a6-449d-bdb2-f71a9f9cb86c", "metadata": { "jp-MarkdownHeadingCollapsed": true }, "source": [ "# 1. Introduction" ] }, { "attachments": {}, "cell_type": "markdown", "id": "3dd7a80a-9ef6-4d27-9005-7114014f7461", "metadata": { "jp-MarkdownHeadingCollapsed": true }, "source": [ "### 👉 [Introductory slides](../media/superpoint_transformer_tutorial.pdf)\n", "### 👉 [Tutorial video](https://www.youtube.com/watch?v=2qKhpQs9gJw)\n", "\n", "This tutorial will demonstrate how to use Superpoint Transformer (SPT) on your own point cloud data. \n", "\n", "In our running example, we will use a large point cloud from the [Vancouver LiDAR 2022](https://opendata.vancouver.ca/explore/dataset/lidar-2022/map/?location=12,49.25683,-123.14421) dataset and run inference on it with SPT pretrained on [DALES](https://udayton.edu/engineering/research/centers/vision_lab/research/was_data_analysis_and_processing/dale.php), a similar dataset for which we officially provide pretrained weights.\n", "\n", "
\n",
"
\n",
"