| --- |
| license: mit |
| library_name: pytorch |
| tags: |
| - point-cloud |
| - 3d |
| - classification |
| - bim |
| - aec |
| - ifc |
| - building-information-modeling |
| datasets: |
| - ifcnetcore |
| --- |
| |
| # BIM-JEPA (Finetuned on IFCNetCore) |
|
|
| Classification model finetuned from [`llama2thedog/BIM-JEPA-pretrained`](https://huggingface.co/llama2thedog/BIM-JEPA-pretrained) on the **IFCNetCore** dataset. |
|
|
| ## Performance (test set) |
|
|
| | Metric | Value | |
| |---|---| |
| | **Overall Accuracy** | **89.37%** | |
| | Mean Class Accuracy (macro recall) | 86.63% | |
| | Precision (macro) | 89.38% | |
| | Recall (micro) | 89.37% | |
| | F1 Score (macro) | 87.69% | |
|
|
| ## Paper |
|
|
| **Self-supervised learning for BIM element classification using a joint embedding predictive architecture** |
| Jack Wei Lun Shi, Wawan Solihin, Yufeng Weng, Yimin Zhao, Leong Hien Poh, Justin K.W. Yeoh |
| *Automation in Construction* |
|
|
| - [GitHub repo](https://github.com/jackswl/bim-jepa) (code + configs) |
| - [Project page](https://jackswl.github.io/bim-jepa/) |
| - [Pretrained base](https://huggingface.co/llama2thedog/BIM-JEPA-pretrained) |
|
|
| ## Architecture |
|
|
| - **Backbone**: BIM-JEPA encoder (12-layer Transformer, 384 dim, 6 heads) — initialized from the pretrained checkpoint |
| - **Head**: MLP classifier, 256 hidden dim, mean+max pooling, 0.5 dropout |
| - **Loss**: Cross-entropy with label smoothing (0.1) |
| - **Encoder schedule**: Frozen for the first 175 epochs, then unfrozen and finetuned end-to-end |
|
|
| ## Training |
|
|
| | | | |
| |---|---| |
| | Dataset | IFCNetCore | |
| | Input | 4096 points per object | |
| | Augmentations | Scale, rotate (all axes), translate | |
| | Epochs | 350 | |
| | Batch size | 32 | |
| | Optimizer | AdamW (head lr=1e-3, encoder lr=1e-4, weight decay 0.05) | |
| | Schedule | Linear warmup (10 epochs) + cosine decay | |
| | Precision | bf16-mixed | |
|
|
| Full training hyperparameters are in [`hparams.yaml`](./hparams.yaml). |
|
|
| ## Files |
|
|
| | File | Size | Description | |
| |---|---|---| |
| | `bim_jepa_finetuned_ifcnetcore.ckpt` | 256 MB | PyTorch Lightning checkpoint | |
| | `hparams.yaml` | 2 KB | Training hyperparameters | |
|
|
| ## Usage |
|
|
| Clone the [GitHub repo](https://github.com/jackswl/bim-jepa) first to get the model code, then: |
|
|
| ```python |
| from huggingface_hub import hf_hub_download |
| from bimjepa.models.classification import BimJepaClassification |
| |
| ckpt_path = hf_hub_download( |
| repo_id="llama2thedog/BIM-JEPA-finetuned-ifcnetcore", |
| filename="bim_jepa_finetuned_ifcnetcore.ckpt", |
| ) |
| model = BimJepaClassification.load_from_checkpoint(ckpt_path) |
| model.eval() |
| ``` |
|
|
| ## Citation |
|
|
| ``` |
| in progress |
| ``` |
|
|
| ## License |
|
|
| MIT |
|
|