LitePT: Lighter Yet Stronger Point Transformer
Organizations: ETH Zurich · University of Oxford · University of Zurich
Abstract
Modern neural architectures for 3D point cloud processing contain both convolutional layers and attention blocks, but the best way to assemble them remains unclear. We analyse the role of different computational blocks in 3D point cloud networks and find an intuitive behaviour: convolution is adequate to extract low-level geometry at high-resolution in early layers, where attention is expensive without bringing any benefits; attention captures high-level semantics and context in low-resolution, deep layers more efficiently, where convolution inflates the parameter count. Guided by this design principle, we propose a new, improved 3D point cloud backbone that employs convolutions in early stages and switches to attention for deeper layers. To avoid the loss of spatial layout information when discarding redundant convolution layers, we introduce a novel, parameter-free 3D positional encoding, PointROPE. The resulting LitePT model has fewer parameters, runs faster, and uses less memory than the state-of-the-art Point Transformer V3, but nonetheless matches or outperforms it on a range of tasks and datasets. Code and models are available at: https://github.com/prs-eth/LitePT.
Figures & tables
| ScanNet [ 14 ] | nuScenes [ 6 ] | |||
|---|---|---|---|---|
| Model | #Params | mIoU | mIoU | |
| PTv3 [ 88 ] | 46.1M | 77.5 | 80.4 | |
| \scriptsize{1}⃝ | PTv3 w/o Transformer | 32.4M | 73.4 | 76.1 |
| \scriptsize{2}⃝ | PTv3 w/o SPConv | 15.4M | 70.7 | 74.9 |
| Training | Inference | ||||
| Method | #Params | Latency | Memory | Latency | Memory |
| MinkUNet [ 12 ] | 39.2M | 60ms | 1.9G | 21ms | 2.4G |
| PTv2 [ 87 ] | 12.8M | 188ms | 22.8G | 151ms | 22.9G |
| PTv3 [ 88 ] | 46.1M | 110ms | 5.8G | 51ms | 4.1G |
| LitePT-S (Ours) | 12.7M | 72ms | 2.3G | 21ms | 2.0G |
| LitePT-S* (Ours) | 16.0M | 81ms | 3.3G | 26ms | 2.0G |
| Setting | #Params | Latency | mIoU | |
| 0 | A-A-A-A-A | 11.8M | 35.1ms | 82.1 |
| 1 | C-A-A-A-A | 11.9M | 30.4ms | 81.7 |
| 2 | C-C-A-A-A | 12.0M | 25.8ms | 82.0 |
| 3 | C-C-C-A-A | 12.7M | 21.5ms | 82.2 |
| 4 | C-C-C-C-A | 18.8M | 16.2ms | 80.9 |
| 5 | C-C-C-C-C | 26.9M | 13.5ms | 75.4 |
| Semantic Segmentation (mIoU) | Instance Segmentation ( ) | ||||
| Decoder | ScanNet [ 14 ] | Structured3D [ 104 ] | nuScenes [ 6 ] | Waymo [ 72 ] | ScanNet [ 14 ] |
| LitePT-S | 76.5 | 83.6 | 82.2 | 73.1 | 62.2 |
| LitePT-S* | 76.8 | 83.0 | 81.8 | 72.7 | 64.9 |
| Method | #Params | Latency | Memory | mIoU |
|---|---|---|---|---|
| PTv3 [ 88 ] | 46.1M | 57ms | 5.83G | 82.4 |
| LitePT-S (Ours) | 12.7M | 23ms | 2.56G | 83.6 |
| LitePT-B (Ours) | 45.1M | 36ms | 2.60G | 85.1 |
| LitePT-L (Ours) | 85.9M | 44ms | 3.58G | 85.4 |
| PointROPE | |||||
|---|---|---|---|---|---|
| mIoU | 79.6 | 81.7 | 82.2 | 81.8 | 81.3 |
| nuScenes [ 6 ] | Waymo [ 72 ] | ||||
|---|---|---|---|---|---|
| Method | #Param | mIoU | mAcc | mIoU | mAcc |
| MinkUNet [ 12 ] | 39.2M | 73.3 | - | 65.9 | 76.6 |
| SPVNAS [ 74 ] | - | 77.4 | - | - | - |
| Cylinder3D [ 105 ] | - | 76.1 | - | - | - |
| AF2S3Net [ 11 ] | - | 62.2 | - | - | - |
| SphereFormer [ 41 ] | - | 78.4 | - | 69.9 | - |
| Limited Scenes (Pct.) | Limited Annotations (Pts.) | |||||||||
|---|---|---|---|---|---|---|---|---|---|---|
| Method | #Params | Full | 1 | 5 | 10 | 20 | 20 | 50 | 100 | 200 |
| MinkUNet [ 12 ] | 39.2M | 72.2 | 26.0 | 47.8 | 56.7 | 62.9 | 41.9 | 53.9 | 62.2 | 65.5 |
| PTv2 [ 87 ] | 12.8M | 75.4 | 24.8 | 48.1 | 59.8 | 66.3 | 58.4 | 66.1 | 70.3 | 71.2 |
| PTv3 [ 88 ] | 46.1M | 77.5 | 25.8 | 48.9 | 61.0 | 67.0 | 60.1 | 67.9 | 71.4 | 72.7 |
| LitePT-S (Ours) | 12.7M | 76.5 | 27.3 | 50.6 | 63.1 | 67.3 | 62.5 | 68.4 | 70.9 | 72.8 |
| LitePT-S* (Ours) | 16.0M | 76.8 | 27.2 | 51.6 | 63.0 | 67.1 | 63.2 | 69.5 | 72.0 | 74.2 |
| Val | Test | ||||
|---|---|---|---|---|---|
| Method | #Params | mIoU | mAcc | mIoU | mAcc |
| MinkUNet [ 12 ] | 39.2M | 76.4 | 84.3 | 77.4 | 85.5 |
| PTv2 [ 87 ] | 12.8M | 79.0 | 86.8 | 78.5 | 86.6 |
| PTv3 [ 88 ] | 46.1M | 82.4 | 90.3 | 82.1 | 90.3 |
| LitePT-S (Ours) | 12.7M | 83.6 | 90.7 | 82.4 | 90.3 |
| ScanNet [ 14 ] | ScanNet200 [ 62 ] | ||||||
|---|---|---|---|---|---|---|---|
| PointGroup [ 37 ] | #Params | mAP 25 | mAP 50 | mAP | mAP 25 | mAP 50 | mAP |
| MinkUNet [ 12 ] | 39.2M | 72.8 | 56.9 | 36.0 | 32.2 | 24.5 | 15.8 |
| PTv2 [ 87 ] | 12.8M | 76.3 | 60.0 | 38.3 | 39.6 | 31.9 | 21.4 |
| PTv3 [ 88 ] | 46.2M | 77.5 | 61.7 | 40.9 | 40.1 | 33.2 | 23.1 |
| LitePT-S* (Ours) | 16.0M | 78.5 | 64.9 | 41.7 | 40.3 | 33.1 | 22.2 |
| Vehicle L2 | Pedestrian L2 | Cyclist L2 | Mean L2 | ||||
|---|---|---|---|---|---|---|---|
| Method | mAP | APH | mAP | APH | mAP | APH | mAPH |
| PointPillars [ 43 ] | 63.6 | 63.1 | 62.8 | 50.3 | 61.9 | 59.9 | 57.8 |
| CenterPoint [ 99 ] | 66.7 | 66.2 | 68.3 | 62.6 | 68.7 | 67.6 | 65.5 |
| SST [ 21 ] | 64.8 | 64.4 | 71.7 | 63.0 | 68.0 | 66.9 | 64.8 |
| SST-Center [ 21 ] | 66.6 | 66.2 | 72.4 | 65.0 | 68.9 | 67.6 | 66.3 |
| VoxSet [ 28 ] | 66.0 | 65.6 | 72.5 | 65.4 | 69.0 | 67.7 | 66.2 |
Appendix figures & tables14 assets
Supplementary material from the paper’s appendix.
Appendix
| LitePT-S | LitePT-S* | LitePT-B | LitePT-L | |
| stem | ||||
| E0 | \left[\begin{array}[]{c}\text{C}\!=\!36\\ \text{K}\!=\!3{\times}3{\times}3\end{array}\right]\!\times\!2 | \left[\begin{array}[]{c}\text{C}\!=\!36\\ \text{K}\!=\!3{\times}3{\times}3\end{array}\right]\!\times\!2 | \left[\begin{array}[]{c}\text{C}\!=\!54\\ \text{K}\!=\!3{\times}3{\times}3\end{array}\right]\!\times\!3 | \left[\begin{array}[]{c}\text{C}\!=\!72\\ \text{K}\!=\!3{\times}3{\times}3\end{array}\right]\!\times\!3 |
| E1 | pool stride 2 | pool stride 2 | pool stride 2 | pool stride 2 |
| \left[\begin{array}[]{c}\text{C}\!=\!72\\ \text{K}\!=\!3{\times}3{\times}3\end{array}\right]\!\times\!2 | \left[\begin{array}[]{c}\text{C}\!=\!72\\ \text{K}\!=\!3{\times}3{\times}3\end{array}\right]\!\times\!2 | \left[\begin{array}[]{c}\text{C}\!=\!108\\ \text{K}\!=\!3{\times}3{\times}3\end{array}\right]\!\times\!3 | \left[\begin{array}[]{c}\text{C}\!=\!144\\ \text{K}\!=\!3{\times}3{\times}3\end{array}\right]\!\times\!3 | |
| E2 | pool stride 2 | pool stride 2 | pool stride 2 | pool stride 2 |
| \left[\begin{array}[]{c}\text{C}\!=\!144\\ \text{K}\!=\!3{\times}3{\times}3\end{array}\right]\!\times\!2 | \left[\begin{array}[]{c}\text{C}\!=\!144\\ \text{K}\!=\!3{\times}3{\times}3\end{array}\right]\!\times\!2 | \left[\begin{array}[]{c}\text{C}\!=\!216\\ \text{K}\!=\!3{\times}3{\times}3\end{array}\right]\!\times\!3 | \left[\begin{array}[]{c}\text{C}\!=\!288\\ \text{K}\!=\!3{\times}3{\times}3\end{array}\right]\!\times\!3 |
| nuScenes [ 6 ] | Waymo [ 72 ] | ScanNet [ 14 ] | Structured3D [ 104 ] | |
| Input feature | XYZ+Intensity | RGB+Normal | ||
| Grid size | 0.05m | 0.02m | ||
| Head (framework) | Linear segmentor | Linear segmentor | ||
| Loss | CrossEntropy+Lovasz [ 3 ] | CrossEntropy+Lovasz [ 3 ] | ||
| Optimizer | AdamW [ 48 ] | AdamW [ 48 ] | ||
| Weight decay | 0.005 | 0.05 | ||
| ScanNet [ 14 ] | ScanNet200 [ 62 ] | |
| Input feature | RGB+Normal | |
| Grid size | 0.02m | |
| Head (framework) | PointGroup [ 37 ] | |
| Loss | As in PointGroup [ 37 ] | |
| Optimizer | AdamW [ 48 ] | |
| Weight decay | 0.05 | |
| Object Detection | |
| Waymo [ 72 ] | |
| Input feature | XYZ+Intensity+Elongation |
| Grid size | (0.32m, 0.32m, 6.0m) |
| Head (framework) | CenterPoint-Pillar [ 99 ] |
| Loss | As in CenterPoint-Pillar [ 99 ] |
| Optimizer | Adam [ 39 ] |
| mIoU | mAcc | |
| PointROPE | 79.6 | 86.5 |
| Spherical | 80.7 | 87.1 |
| Cartesian | 82.2 | 88.1 |
| 82.2 | 88.1 | |
| 80.3 | 86.8 | |
| 80.3 | 86.7 |
| PosEnc | APE (sinusoidal) | RPE | PointROPE | |
|---|---|---|---|---|
| mIoU | 79.6 | 80.2 | 80.6 | 82.2 |
| Latency | 20.7 ms | 23.3 ms | 27.6 ms | 21.5 ms |
| Method | #Param | mIoU | mAcc |
|---|---|---|---|
| PTv3 [ 88 ] | 46.1M | 57.1 | 69.5 |
| LitePT-S | 12.7M | 65.0 | 77.2 |
| \scriptsize{1}⃝ ModelNet40 | \scriptsize{2}⃝ ScanNet | ||||
|---|---|---|---|---|---|
| #Params | Latency | Memory | OA (%) | mIoU | |
| PointMamba | 12.3 M | 10.5 ms | 0.20 G | 92.4 | 60.5 |
| LitePT-S (Ours) | 12.7 M | 11.7 ms | 0.13 G | 92.5 | 76.5 |
| Semantic Segmentation (mIoU) | Instance Segmentation ( mAP ) | |||
|---|---|---|---|---|
| Structured3D | Waymo | nuScenes | ScanNet | |
| #Points (Billion) | 9.55 | 4.15 | 0.98 | 0.17 |
| PTv3 | 82.4 | 71.3 | 80.4 | 40.9 |
| LitePT-S | 83.6 | 73.1 | 82.2 | 41.7 |
| LitePT-L | 1111 85.4 (+1.8) | 1111 74.0 (+0.9) | 1111 82.6 (+0.4) | 1111 42.3 (+0.6) |
| Training | Inference | |||||
| Method | #Params | Latency | Memory | Latency | Memory | mIoU |
| PTv3 | 46.1 M | 153 ms | 14.1 G | 100 ms | 7.1 G | 71.3 |
| LitePT-S (Ours) | 12.7 M | 86 ms | 9.4 G | 47 ms | 5.4 G | 73.1 |
| Method | #Param | mIoU | mAcc |
|---|---|---|---|
| PTv3 [ 88 ] | 46.1M | 80.4 | 87.2 |
| LitePT-S | 12.7M | 82.2 | 88.1 |
| PTv3 [ 88 ] ( chunking and TTA) | 46.1M | 78.3 | 86.0 |
| LitePT-S ( chunking and TTA) | 12.7M | 80.4 | 86.9 |
Point Cloud Learning
Point Cloud Learning develops methods for representing and interpreting unordered 3D point sets from LiDAR, depth sensors, radar, and 3D models.
See all 159 papers