fernandotonon commited on
Commit
00d0881
·
verified ·
1 Parent(s): 45c5b54

Upload README.md with huggingface_hub

Browse files
Files changed (1) hide show
  1. README.md +69 -0
README.md ADDED
@@ -0,0 +1,69 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ ---
2
+ license: cc-by-4.0
3
+ tags:
4
+ - mesh-segmentation
5
+ - part-segmentation
6
+ - point-cloud
7
+ - building
8
+ - architecture
9
+ - onnx
10
+ - 3d
11
+ - qtmesheditor
12
+ library_name: onnx
13
+ pipeline_tag: other
14
+ ---
15
+
16
+ # QtMeshEditor — Building Part Segmentation
17
+
18
+ A point-cloud part-segmentation network (PointNet++-style) that labels each
19
+ point of a **building** mesh as `wall`, `roof`, `window`, `door`, `chimney`,
20
+ or `foundation`, exported to **ONNX** for local inference via ONNX Runtime.
21
+
22
+ One of the category-specialised segmentation models built for
23
+ **[QtMeshEditor](https://github.com/fernandotonon/QtMeshEditor)** (epic #818,
24
+ Track B2) — a free, open-source 3D mesh & animation editor. The app
25
+ auto-detects the mesh category with a companion
26
+ [point-cloud classifier](https://huggingface.co/fernandotonon/QtMeshEditor-mesh-segmentation-category)
27
+ and dispatches to this model for buildings; siblings:
28
+ [body](https://huggingface.co/fernandotonon/QtMeshEditor-mesh-segmentation),
29
+ [vegetation](https://huggingface.co/fernandotonon/QtMeshEditor-mesh-segmentation-vegetation),
30
+ [vehicle](https://huggingface.co/fernandotonon/QtMeshEditor-mesh-segmentation-vehicle).
31
+ Aggregate download source used by the app:
32
+ [QtMeshEditor-models](https://huggingface.co/fernandotonon/QtMeshEditor-models)
33
+ (`segment/meshseg_building.onnx`).
34
+
35
+ ## Model
36
+
37
+ - **Input:** a sampled point cloud `float32 [1, N, 3]` (normalised to a centred
38
+ unit box; +Y up).
39
+ - **Output:** per-point class logits over 7 channels
40
+ (`unknown, wall, roof, window, door, chimney, foundation`); argmax → label,
41
+ scattered back to mesh vertices/faces by nearest sampled point.
42
+ - **Architecture:** shared per-point MLP + two kNN local-aggregation blocks
43
+ (in-graph `cdist`+`topk`, ONNX-exportable) + a global max-pooled feature;
44
+ ~0.78 MB. Trained at the app's inference sample size (4096 points).
45
+
46
+ ## Training data & license
47
+
48
+ Trained **from scratch, 100% on procedurally generated synthetic buildings we
49
+ own** (no third-party data at all): parametric houses / towers / huts with
50
+ gable, pyramid, and flat roofs (triangle/quad surface patches), proud window
51
+ panes in rows, doors, chimneys, and foundation slabs — labels are exact by
52
+ construction. Weights released under **CC-BY-4.0**; please credit
53
+ *QtMeshEditor*.
54
+
55
+ ## Evaluation
56
+
57
+ - Held-out synthetic validation accuracy: **86.9%** (per-point, unknown
58
+ masked). Real-world CC0 building kits are the planned next data slice
59
+ (mined via submesh/material-name labels).
60
+
61
+ ## Reproducing
62
+
63
+ `scripts/export-meshseg-onnx.py --category building` in the QtMeshEditor repo
64
+ (one-time, offline; the app never runs Python). Strategy + roadmap:
65
+ `docs/MESH_SEGMENTATION_STRATEGY.md`.
66
+
67
+ ## Versions
68
+
69
+ - **v1.0.0** (current) — initial synthetic-only release (#818 Track B2).