Add model card, leaderboard, training configuration, and checksums
Browse files- LICENSE +21 -0
- README.md +101 -0
- checksums.sha256 +32 -0
- leaderboard.json +10 -0
- training_config.json +25 -0
LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
MIT License
|
| 2 |
+
|
| 3 |
+
Copyright (c) 2024 cstnetwork
|
| 4 |
+
|
| 5 |
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
| 6 |
+
of this software and associated documentation files (the "Software"), to deal
|
| 7 |
+
in the Software without restriction, including without limitation the rights
|
| 8 |
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
| 9 |
+
copies of the Software, and to permit persons to whom the Software is
|
| 10 |
+
furnished to do so, subject to the following conditions:
|
| 11 |
+
|
| 12 |
+
The above copyright notice and this permission notice shall be included in all
|
| 13 |
+
copies or substantial portions of the Software.
|
| 14 |
+
|
| 15 |
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
| 16 |
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
| 17 |
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
| 18 |
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
| 19 |
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
| 20 |
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
| 21 |
+
SOFTWARE.
|
README.md
ADDED
|
@@ -0,0 +1,101 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
---
|
| 2 |
+
license: mit
|
| 3 |
+
library_name: pytorch
|
| 4 |
+
pipeline_tag: feature-extraction
|
| 5 |
+
tags:
|
| 6 |
+
- point-cloud
|
| 7 |
+
- 3d
|
| 8 |
+
- geometric-deep-learning
|
| 9 |
+
- constraint-prediction
|
| 10 |
+
- baseline
|
| 11 |
+
datasets:
|
| 12 |
+
- ZXCCHENGXI/cstnet2_stage1_mini
|
| 13 |
+
---
|
| 14 |
+
|
| 15 |
+
# CSTNet2 Stage 1 Backbone Baselines
|
| 16 |
+
|
| 17 |
+
This repository contains eight independently trained XYZ-only Stage 1 direct
|
| 18 |
+
baselines. Each model uses one point-cloud backbone and four per-point heads to
|
| 19 |
+
predict primitive type, direction, dimension, and location. The baselines do
|
| 20 |
+
not load CSTNet2 Stage 1 weights and do not use instance embedding, clustering,
|
| 21 |
+
or geometric primitive fitting.
|
| 22 |
+
|
| 23 |
+
Source code: [xcheng-tsinghua/cstnet2](https://github.com/xcheng-tsinghua/cstnet2)
|
| 24 |
+
|
| 25 |
+
Training dataset: [ZXCCHENGXI/cstnet2_stage1_mini](https://huggingface.co/datasets/ZXCCHENGXI/cstnet2_stage1_mini)
|
| 26 |
+
|
| 27 |
+
## Training configuration
|
| 28 |
+
|
| 29 |
+
- Points per sample: 2,048
|
| 30 |
+
- Epochs: 80
|
| 31 |
+
- Hardware: 4 GPUs with DDP
|
| 32 |
+
- Precision: BF16 AMP
|
| 33 |
+
- Per-GPU batch size: 32 (global batch size 128)
|
| 34 |
+
- Seed: 2026
|
| 35 |
+
- Learning rate: 1e-4
|
| 36 |
+
- Weight decay: 1e-4
|
| 37 |
+
|
| 38 |
+
All eight models were randomly initialized and trained independently with the
|
| 39 |
+
same dataset and optimization settings.
|
| 40 |
+
|
| 41 |
+
## Training-set leaderboard
|
| 42 |
+
|
| 43 |
+
| Backbone | Best primitive mIoU | Best total loss |
|
| 44 |
+
|---|---:|---:|
|
| 45 |
+
| PointMLP | 0.654248 | 867.811967 |
|
| 46 |
+
| DGCNN | 0.570031 | 867.934994 |
|
| 47 |
+
| PointNet++ | 0.547805 | 867.963349 |
|
| 48 |
+
| PointNeXt | 0.545523 | 867.983210 |
|
| 49 |
+
| PointNet | 0.531966 | 867.991856 |
|
| 50 |
+
| Attn3DGCN | 0.448774 | 867.927836 |
|
| 51 |
+
| PointMamba | 0.391190 | 868.047581 |
|
| 52 |
+
| PointTransformer | 0.385701 | 868.044473 |
|
| 53 |
+
|
| 54 |
+
These values are **training-set metrics**. No held-out validation split was
|
| 55 |
+
used for checkpoint selection, so they must not be interpreted as
|
| 56 |
+
generalization results.
|
| 57 |
+
|
| 58 |
+
## Repository layout
|
| 59 |
+
|
| 60 |
+
```text
|
| 61 |
+
<backbone>/seed_2026/
|
| 62 |
+
best_pmt_miou.pth
|
| 63 |
+
best_loss.pth
|
| 64 |
+
last.pth
|
| 65 |
+
history.json
|
| 66 |
+
config.json
|
| 67 |
+
```
|
| 68 |
+
|
| 69 |
+
The available backbone names are `pointnet2`, `pointnet`, `attn3dgcn`,
|
| 70 |
+
`dgcnn`, `pointtransformer`, `pointmamba`, `pointnext`, and `pointmlp`.
|
| 71 |
+
|
| 72 |
+
## Loading
|
| 73 |
+
|
| 74 |
+
```python
|
| 75 |
+
import torch
|
| 76 |
+
|
| 77 |
+
from networks.stage1_direct_baselines import build_stage1_direct_baseline
|
| 78 |
+
|
| 79 |
+
checkpoint = torch.load(
|
| 80 |
+
"pointmlp/seed_2026/best_pmt_miou.pth",
|
| 81 |
+
map_location="cpu",
|
| 82 |
+
weights_only=False,
|
| 83 |
+
)
|
| 84 |
+
model = build_stage1_direct_baseline(checkpoint["model_config"])
|
| 85 |
+
model.load_state_dict(checkpoint["model"], strict=True)
|
| 86 |
+
model.eval()
|
| 87 |
+
```
|
| 88 |
+
|
| 89 |
+
## Related repository
|
| 90 |
+
|
| 91 |
+
The original standalone PointNet++ upload remains available at
|
| 92 |
+
[FanMingyu/cstnet2-stage1-pointnet2-baseline](https://huggingface.co/FanMingyu/cstnet2-stage1-pointnet2-baseline).
|
| 93 |
+
|
| 94 |
+
## Limitations
|
| 95 |
+
|
| 96 |
+
- Reported scores are training metrics only.
|
| 97 |
+
- The models were trained on mechanical CAD-derived point clouds and may not
|
| 98 |
+
generalize to noisy real-world scans.
|
| 99 |
+
- Checkpoint files use Python/PyTorch serialization. Load only files from
|
| 100 |
+
trusted sources.
|
| 101 |
+
|
checksums.sha256
ADDED
|
@@ -0,0 +1,32 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
b588edd758d676105bd14eb9de7b708f248f08f182bd075e07d8302aaa710e26 pointnet2/seed_2026/best_pmt_miou.pth
|
| 2 |
+
aca79f4ed80b63e97bab0281e900d8dbc8c7724a6dc2de0f5527f1e16185fa72 pointnet2/seed_2026/best_loss.pth
|
| 3 |
+
d7baad9eca967b316950543dae995fcd6aaa4fd4115fdc8daec3cb5d4b3cfcaf pointnet2/seed_2026/last.pth
|
| 4 |
+
8ff30faaff063cbc687e2c6b7e9f50704e86d9b649155650cded4e934a066f32 pointnet2/seed_2026/history.json
|
| 5 |
+
1217b8366b57c17a2f42e78274a51153ddfd64118929ccb9d12fae32d7cf9003 pointnet/seed_2026/best_pmt_miou.pth
|
| 6 |
+
eeb9e73ebea6fe1ca1d03b8fe529016dc55f364cf33b3f0234ef2657f6060479 pointnet/seed_2026/best_loss.pth
|
| 7 |
+
2119b8d8394e259b065d76ed6fadd93a63327b9cf360274d5545aeb9278a3d8a pointnet/seed_2026/last.pth
|
| 8 |
+
f37dfc6357f28f6bea10e9f1a7bd58c54fbc5e22022195f07ee3d3d8bb29962b pointnet/seed_2026/history.json
|
| 9 |
+
719caadcf8c2c2ac6a784c72029a3400f3cf2e32d903d557efb518788eb12dde attn3dgcn/seed_2026/best_pmt_miou.pth
|
| 10 |
+
c3d794d3810e5960285c913d3cf1798a1d405c7ca00d607bb7ed68f93b7f8f4b attn3dgcn/seed_2026/best_loss.pth
|
| 11 |
+
634ce3c334d7759b1f6fec2a4f9eea0fe4836c26fa062a478992487a652bddbd attn3dgcn/seed_2026/last.pth
|
| 12 |
+
f8740d592396d148073863b32208c5b45e75ca46886e355e84c96eefec30b99f attn3dgcn/seed_2026/history.json
|
| 13 |
+
b289100c1bc1f4e93e40a5e7b6d8e295a0c1c4b0d469e666af6c294eb12478af dgcnn/seed_2026/best_pmt_miou.pth
|
| 14 |
+
d597e08fffdb575521b7aad97b8cffe9bfb1204630d2d609a2ee4a90d2c0963c dgcnn/seed_2026/best_loss.pth
|
| 15 |
+
1f6717ef361e5585bb42a21764fabebad960b74beaeba9ed98e5e6a97044290b dgcnn/seed_2026/last.pth
|
| 16 |
+
5433dc2e0a2a603021a8c9e43a6ea095f5a7d7f4c0f98709cc80ed8061628ff6 dgcnn/seed_2026/history.json
|
| 17 |
+
6dbabe817adccc4d92077fcbf415dfe290c80f74cd2177d5d1689e6287adf12f pointtransformer/seed_2026/best_pmt_miou.pth
|
| 18 |
+
7b68a4ede51c42453cde4d6a37273c8201091fd71cfb2234677419ec1dc91446 pointtransformer/seed_2026/best_loss.pth
|
| 19 |
+
a03d9f417290e6212a491c82514d5b46f22f51ceddb59628ff25db5e7db6224b pointtransformer/seed_2026/last.pth
|
| 20 |
+
26372f6b74361d732170fda6665d75edb477a61d262aa0d4d92df824023591a5 pointtransformer/seed_2026/history.json
|
| 21 |
+
d851c93f1f506698bcffc028c06a855038ea1092b4a5da2eaf1009abbe354636 pointmamba/seed_2026/best_pmt_miou.pth
|
| 22 |
+
5e385ad5fb0726aafc366aac5ff6d3f5f0cee327af937e665192be334b982d4e pointmamba/seed_2026/best_loss.pth
|
| 23 |
+
0e887216c437cd7dbca27c4bb321cde1dcd6cc7172823bb42550698b17594b23 pointmamba/seed_2026/last.pth
|
| 24 |
+
4feb118a70a04769b0c9adab85c99bb1b8ddc945ab0a3ec9731e9f77b8c7f1be pointmamba/seed_2026/history.json
|
| 25 |
+
ed455b3989c9da256d8727d56295c7403d00769736f2fff29ecf1b5caa5646f1 pointnext/seed_2026/best_pmt_miou.pth
|
| 26 |
+
98a06e87d103744a4ec381f52416da764c5abd52d68c838a0a6e97423a112469 pointnext/seed_2026/best_loss.pth
|
| 27 |
+
1622455f300cd355533d89f519813b7433f7cae4d3f127e7f6b001461dacae31 pointnext/seed_2026/last.pth
|
| 28 |
+
4b89bdce4a7b04b86bc6e2ef932a5cb194deb967616726e59f1660697620d2ed pointnext/seed_2026/history.json
|
| 29 |
+
3466f3fc68fe14d9322863546318f5ce7fd606b701f8c1e3752e56d9e7dad280 pointmlp/seed_2026/best_pmt_miou.pth
|
| 30 |
+
f1882609d0f5d9135663204c64e522086e574228cc9b9f8f27b24a33f1544ac9 pointmlp/seed_2026/best_loss.pth
|
| 31 |
+
72f916992ceaf0339febede8f36eb01b0cc09bddc8d37b3ee2f0ef52326d29c1 pointmlp/seed_2026/last.pth
|
| 32 |
+
91ffc38115fe211649969207df1e49785801ec200d18a6af51c2273750e40c61 pointmlp/seed_2026/history.json
|
leaderboard.json
ADDED
|
@@ -0,0 +1,10 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
[
|
| 2 |
+
{"backbone": "pointmlp", "best_pmt_miou": 0.654248, "best_loss": 867.811967},
|
| 3 |
+
{"backbone": "dgcnn", "best_pmt_miou": 0.570031, "best_loss": 867.934994},
|
| 4 |
+
{"backbone": "pointnet2", "best_pmt_miou": 0.547805, "best_loss": 867.963349},
|
| 5 |
+
{"backbone": "pointnext", "best_pmt_miou": 0.545523, "best_loss": 867.983210},
|
| 6 |
+
{"backbone": "pointnet", "best_pmt_miou": 0.531966, "best_loss": 867.991856},
|
| 7 |
+
{"backbone": "attn3dgcn", "best_pmt_miou": 0.448774, "best_loss": 867.927836},
|
| 8 |
+
{"backbone": "pointmamba", "best_pmt_miou": 0.391190, "best_loss": 868.047581},
|
| 9 |
+
{"backbone": "pointtransformer", "best_pmt_miou": 0.385701, "best_loss": 868.044473}
|
| 10 |
+
]
|
training_config.json
ADDED
|
@@ -0,0 +1,25 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"model_type": "cstnet2_stage1_direct_backbone_baselines",
|
| 3 |
+
"architecture": "Stage1DirectBaseline",
|
| 4 |
+
"dataset": "ZXCCHENGXI/cstnet2_stage1_mini",
|
| 5 |
+
"backbones": [
|
| 6 |
+
"pointnet2",
|
| 7 |
+
"pointnet",
|
| 8 |
+
"attn3dgcn",
|
| 9 |
+
"dgcnn",
|
| 10 |
+
"pointtransformer",
|
| 11 |
+
"pointmamba",
|
| 12 |
+
"pointnext",
|
| 13 |
+
"pointmlp"
|
| 14 |
+
],
|
| 15 |
+
"point_count": 2048,
|
| 16 |
+
"epochs": 80,
|
| 17 |
+
"precision": "bfloat16",
|
| 18 |
+
"world_size": 4,
|
| 19 |
+
"per_gpu_batch_size": 32,
|
| 20 |
+
"global_batch_size": 128,
|
| 21 |
+
"seed": 2026,
|
| 22 |
+
"learning_rate": 0.0001,
|
| 23 |
+
"weight_decay": 0.0001,
|
| 24 |
+
"source_code": "https://github.com/xcheng-tsinghua/cstnet2"
|
| 25 |
+
}
|