| --- |
| license: mit |
| language: |
| - en |
| - zh |
| tags: |
| - 3d |
| - bim |
| - multimodal |
| - contrastive-learning |
| - point-cloud |
| - mesh |
| - vision-language |
| - building-information-modeling |
| pipeline_tag: image-classification |
| --- |
| |
| # BIM-CLIP 模型权重 |
|
|
| **图1:BIM-CLIP 框架总览** |
|
|
|  |
|
|
| **图2:BIM-CLIP 工作流与下游应用** |
|
|
| > 框架对异构输入分别通过专用编码器提取特征,并通过对比学习将其对齐到共享语义嵌入空间。经过保持对齐的微调后,所学表示可支持两类实际 BIM 下游任务。 |
|
|
|  |
|
|
| **BIM-CLIP:面向 BIM 构件识别的语言引导多模态表示学习** 模型权重文件。 |
|
|
| > 孟海宁、董浩洋、杨明松、范星、黑新宏 |
| > 西安理工大学 |
|
|
| 📄 [论文(预印本)](https://github.com/[待更新]) | 💻 [GitHub](https://github.com/[待更新]) | 🗂️ [BIMCompNet 数据集](https://bimcompnet-606lab.xaut.edu.cn/) |
|
|
| --- |
|
|
| ## 仓库结构 |
|
|
| ``` |
| bim-clip-weights/ |
| │ |
| ├── README.md |
| │ |
| ├── BIMCompNet/ # 在 BIMCompNet 上训练的模型 |
| │ ├── multimodal/ |
| │ │ ├── best_100.mdl # BIMCompNet-100(42 类),多模态 |
| │ │ ├── best_500.mdl # BIMCompNet-500(31 类),多模态 |
| │ │ └── best_1000.mdl # BIMCompNet-1000(24 类),多模态 |
| │ └── single_modal/ |
| │ ├── best_100.mdl # BIMCompNet-100(42 类),单模态 |
| │ ├── best_500.mdl # BIMCompNet-500(31 类),单模态 |
| │ └── best_1000.mdl # BIMCompNet-1000(24 类),单模态 |
| │ |
| ├── IFCNet/ |
| │ └── best_ifcnet.mdl # 多模态,在 IFCNet 上训练(20 类) |
| │ |
| ├── ModelNet/ |
| │ ├── best_10.mdl # 多模态,ModelNet-10 |
| │ ├── best_40.mdl # 多模态,ModelNet-40 |
| │ ├── ModelNet10.zip # ModelNet-10 多模态扩充数据集(含点云 + 多视角图像) |
| │ └── ModelNet40.zip # ModelNet-40 多模态扩充数据集(含点云 + 多视角图像) |
| │ |
| └── ULIP2/ |
| ├── best_ulip2_1000.mdl # ULIP-2 在 BIMCompNet-1000 上微调 |
| └── ULIP-2-PointBERT-8k-xyz-pc-slip_vit_b-objaverse-pretrained.pt # 官方预训练权重(866 MB) |
| ``` |
|
|
| --- |
|
|
| ## 模型汇总 |
|
|
| | 文件 | 架构 | 训练集 | 类别数 | Acc (%) | F1 (%) | |
| |------|------|--------|--------|---------|--------| |
| | `BIMCompNet/multimodal/best_100.mdl` | BIM-CLIP (CMA) | BIMCompNet-100 | 42 | 87.38 | 87.44 | |
| | `BIMCompNet/multimodal/best_500.mdl` | BIM-CLIP (CMA) | BIMCompNet-500 | 31 | 91.35 | 91.28 | |
| | `BIMCompNet/multimodal/best_1000.mdl` | BIM-CLIP (CMA) | BIMCompNet-1000 | 24 | 91.79 | 91.83 | |
| | `BIMCompNet/single_modal/best_100.mdl` | BIM-CLIP(单模态) | BIMCompNet-100 | 42 | — | — | |
| | `BIMCompNet/single_modal/best_500.mdl` | BIM-CLIP(单模态) | BIMCompNet-500 | 31 | — | — | |
| | `BIMCompNet/single_modal/best_1000.mdl` | BIM-CLIP(单模态) | BIMCompNet-1000 | 24 | 88.69 | 87.90 | |
| | `IFCNet/best_ifcnet.mdl` | BIM-CLIP (CMA) | IFCNet | 20 | 91.00 | 90.39 | |
| | `ModelNet/best_10.mdl` | BIM-CLIP (CMA) | ModelNet-10 | 10 | 95.36 | 95.25* | |
| | `ModelNet/best_40.mdl` | BIM-CLIP (CMA) | ModelNet-40 | 40 | 92.22 | 90.34* | |
| | `ULIP2/best_ulip2_1000.mdl` | ULIP-2 | BIMCompNet-1000 | 24 | 90.98 | 91.02 | |
| | `ULIP2/ULIP-2-PointBERT-…-pretrained.pt` | ULIP-2(官方) | Objaverse | — | — | — | |
|
|
| *ModelNet 指标为 mAP。— 表示论文中未单独报告该指标。* |
|
|
| --- |
|
|
| ## 使用方法 |
|
|
| ### 加载模型并运行评测 |
|
|
| 克隆 GitHub 仓库后执行: |
|
|
| ```bash |
| # 评测 BIMCompNet-1000 多模态 |
| python bimclip.py --mode eval --data_type MULTI_MODAL \ |
| --data_root /path/to/BIMCompNet --index_root /path/to/index \ |
| --set_size 1000 \ |
| --model_path /path/to/BIMCompNet/multimodal/best_1000.mdl \ |
| --embeddings_path embeddings.pt \ |
| --yaml_path ./描述信息.yaml \ |
| --output_dir ./results |
| |
| # 评测 IFCNet 多模态 |
| python bimclip.py --mode eval --data_type MULTI_MODAL \ |
| --ifcnet_root /path/to/IFCNetCorePly/IFCNetCore \ |
| --model_path /path/to/IFCNet/best_ifcnet.mdl \ |
| --embeddings_path ifcnet_embeddings.pt \ |
| --yaml_path ./描述信息.yaml \ |
| --output_dir ./results |
| ``` |
|
|
| ### 文本嵌入文件 |
|
|
| 文本嵌入文件包含在 GitHub 仓库中: |
|
|
| | 文件 | 类别数 | 适用数据集 | |
| |------|--------|-----------| |
| | `embeddings.pt` | 57 | BIMCompNet(全类别) | |
| | `ifcnet_embeddings.pt` | 20 | IFCNet | |
| | `model_net_10_embeddings.pt` | 10 | ModelNet-10 | |
| | `model_net_40_embeddings.pt` | 40 | ModelNet-40 | |
|
|
| > 请使用与评测数据集对应的嵌入文件,**切勿混用**。 |
|
|
| ### 数据集获取 |
|
|
| BIMCompNet 由西安理工大学 606 实验室托管维护,请访问以下页面申请获取或下载: |
|
|
| 👉 **[https://bimcompnet-606lab.xaut.edu.cn/](https://bimcompnet-606lab.xaut.edu.cn/)** |
|
|
| ### ModelNet 多模态扩充数据集 |
|
|
| `ModelNet10.zip` 和 `ModelNet40.zip` 是基于原始 ModelNet 网格,通过本文多模态数据构建流程扩充点云与多视角图像后的完整数据集。每个 zip 内部目录结构如下: |
|
|
| ``` |
| ModelNet{10|40}/ |
| └── {类别}/ |
| ├── train/ |
| │ ├── obj/ # 原始网格文件(.obj) |
| │ ├── ply/ # 从网格采样的点云(1024 点,.ply) |
| │ └── png/ |
| │ └── {样本名}/ |
| │ └── Edges/ # 12 个边缘渲染视角图(0.png – 11.png) |
| └── test/ |
| └── (结构相同) |
| ``` |
|
|
| 点云通过对网格表面均匀采样获得(每个模型 1024 个点)。多视角图像采用边缘渲染方式,从 12 个固定视角渲染,相机布置策略与 BIMCompNet 数据集保持一致。 |
|
|
| ### 第三方权重(ULIP-2 基线) |
|
|
| ULIP-2 官方预训练 PointBERT 权重(866 MB)已包含在本仓库中: |
|
|
| ``` |
| ULIP2/ULIP-2-PointBERT-8k-xyz-pc-slip_vit_b-objaverse-pretrained.pt |
| ``` |
|
|
| 也可从原始来源直接下载: |
| ``` |
| https://huggingface.co/datasets/SFXX/ulip/resolve/main/ULIP-2/pretrained_models/ULIP-2-PointBERT-8k-xyz-pc-slip_vit_b-objaverse-pretrained.pt |
| ``` |
|
|
| --- |
|
|
| ## 架构简介 |
|
|
| BIM-CLIP 使用三个模态编码器(图像用 ViT,点云用 PointNet,网格用 MeshNet),通过对比对齐将各模态特征投影到 1536 维语言嵌入空间(以 `text-embedding-ada-002` 为语义锚点),再经**语言引导的跨模态注意力(CMA)模块**进行融合。微调阶段仅更新 CMA 模块(10.62M 参数)。 |
|
|
| --- |
|
|
| ## 引用 |
|
|
| ```bibtex |
| @article{meng2026bimclip, |
| title={BIM-CLIP: Language-Guided Multimodal Representation Learning for BIM Component Recognition}, |
| author={Meng, Haining and Dong, Haoyang and Yang, Mingsong and Fan, Xing and Hei, Xinhong}, |
| journal={[待期刊接受后更新]}, |
| year={2026} |
| } |
| ``` |
|
|