Datasets:
You need to agree to share your contact information to access this dataset
This repository is publicly accessible, but you have to accept the conditions to access its files and content.
Released for research use; access granted manually. State your name, affiliation, and intended use.
Log in or Sign Up to review the conditions and access this dataset content.
MFCAD++ — 加工特征识别 · 原始 STEP(25 类)
MFCAD++(Hierarchical CADNet, Colligan et al., 英国女王大学 QUB): 59,665 个 STEP(B-rep) 实体模型 + 每个面的加工特征类别标签。已转为团队统一 7 字段 SFT schema。
按庞威裁决上传原始 dataset 本身("需要 render 的先把原始数据传上来,渲染他来想办法")。 本库是原始 STEP,无图像;渲染由团队后续统一处理。
🔴 与 mfcad_original 不是一个数据集(别混)
组织里已有 mfcad_original(MFCAD 原版,16 类,15,488 个)。
本库是 MFCAD++,25 类、59,665 个,是 MFCAD 的扩展版,两者标签体系都不同。故仓库名取 mfcadpp。
⚠ 连发行 zip 的文件名都在挖坑:下载得到的叫 MFCAD_dataset.zip(没有 ++),装的却是
MFCAD++_dataset/ —— **它就是 MFCAD++**,落盘时勿与 16 类原版 MFCAD 混淆。
🔴 面序契约:annot 的索引是 STEP 文本序,不是 OCC 遍历序
annot / metadata.face_labels / metadata.face_label_names 的索引
= ADVANCED_FACE 实体在 STEP 文件文本里的出现顺序(0..N-1)。
这不是 pythonocc TopologyExplorer(shape).faces() 的遍历顺序 —— 而官方标注管线和
所有 baseline(Hierarchical CADNet 等)用的是后者,两个顺序不保证一致。
需要按 OCC 序对齐的下游:metadata.face_entity_ids 存了每个面的 STEP 实体号
(#325 = ADVANCED_FACE(...) 里的 325,与 annot 同序),用它把文本序映射回你自己的解析序。
metadata.face_index_semantics 里也写明了这一契约。
标签怎么来的(有官方依据,已实测校验)
- 每个面的类别号明文写在 STEP 的
ADVANCED_FACE里:例如#325 = ADVANCED_FACE('8',...)里的'8'就是该面的类别号。官方 readme 原文:*"these labels can easily be extracted from the STEP files"*。 - ⚠ 这点与 MFCAD 原版不同:MFCAD 的 Name 是面 ID,还要再查一层标签数组;MFCAD++ 只有一层, 照搬 MFCAD 的重排修法反而会引入错误。
- 类别名映射取自发行包内
feature_labels.txt(权威 25 类表,0..24);转换器每次运行都会把该文件 原文打印出来与硬编码表人工核对(运行时校验)。 - 已实测校验:600 个随机抽样、0 个无面、0 个越界、标签严格落在 0..24;抽样标签并与官方 h5 逐位交叉验证一致。
- 转换时逐模型断言「可解析标签数 == 文件里
ADVANCED_FACE总数」:Name 为空/非数字的面不会被静默 吞掉(官方生成管线正是在这种面上整模型静默跳过的),对不上的模型整个剔除并记账。
发行包里有什么(转换器运行时清点)
- 发行包除 STEP、readme、
feature_labels.txt、train/val/test.txt清单和h5_structure.h5(结构说明文件) 外,还带hierarchical_graphs/下预计算的层次图 h5(2026-08-14 实测确认;早前"不含现成训练 h5"的说法已更正)。 本库只上传 STEP 几何 + 逐面标签,这些 h5 不入库;也可自己用官方 hierarchical-brep-graphs 仓库生成, 且该生成脚本有已知的丢样本/重样本 bug(batch 边界丢一个模型、超限单图写两遍、无名面整模型静默跳过), 自己生成的 h5 凑不满官方数量。 - 官方 h5 里的
idx是跨全部 split 的全局累计终点偏移,不是本 split 内的行号。 - 本次转换实际清点到的非 STEP 文件:
test_MFCAD++.h5,training_MFCAD++.h5,val_MFCAD++.h5,readme.txt,MFCAD++_machining_features.jpg,h5_structure.txt,test.txt,train.txt,val.txt,feature_labels.txt。转换器每次运行都重新清点并断言 (若出现预期外的全量 h5 会直接报错),本节即运行时校验结果。
评测口径(引用数字前先看这节)
- 官方指标是逐面 micro 准确率(正确面数/总面数,全测试集所有面汇总,不是逐模型平均); 作者明确拒绝 mIoU(稀有类会把 mIoU 抬虚),拿 IoU 类数字与原文对比不可比。 原文口径(thesis Table 7.11,MFCAD++ 测试集):Hierarchical CADNet (Edge) **97.63%**、 (Adj) **97.23%**、PointNet++ **85.88%**、DGCNN **85.98%**。
- 数据里含拓扑损坏的 STEP。本库未做几何校验,按原样收录(与论文同总体)。 AAGNet 团队专门做过清洗(crosscheck_MFCADPP.py),清洗后 train/val/test 都变小 —— 所以 AAGNet 系列论文里的数字跑在清洗后子集上,与上面的 97.63% 不可直接对比。
数据说明
- 总数口径:发行包自带 readme 与 QUB 发行页一致 —— train 41,766 / val 8,950 / test 8,949 共 59,665;论文/thesis 里常被引用的 59,655 与发行包不符(是错的)。 本库实收 train 41,766 / val 8,950 / test 8,949,转换时已逐 split 断言与发行包口径一致 (运行时校验,对不上不上传)。
- 官方划分按发行包
train/val/test.txt三个清单文件烘焙(不靠路径猜),每个 STEP 都在且只在一个 清单里(转换时断言)。 - 每模型面数(本次转换全量实算):min 6 / 中位 30 / max 86 (thesis 口径:平均约 30 面)。
- 25 个类:Chamfer, Through hole, Triangular passage, Rectangular passage, 6-sided passage, Triangular through slot, Rectangular through slot, Circular through slot, Rectangular through step, 2-sided through step, Slanted through step, O-ring, Blind hole, Triangular pocket, Rectangular pocket, 6-sided pocket, Circular end pocket, Rectangular blind slot, Vertical circular end blind slot, Horizontal circular end blind slot, Triangular blind step, Circular blind step, Rectangular blind step, Round, Stock
- 面标签分布(前 8):
| 类别 | 面数 |
|---|---|
Stock |
401,040 |
6-sided passage |
150,517 |
6-sided pocket |
148,932 |
Rectangular pocket |
112,889 |
Circular end pocket |
106,547 |
Rectangular passage |
101,199 |
Triangular pocket |
87,449 |
Triangular passage |
74,792 |
Schema
query(分类提示,含 25 个类名 + 面序契约与输出条数要求) · step(STEP 原文) · image(null —— 需渲染) ·
annot({面序号: 类名} JSON —— 键是 STEP 文本序,见上面的面序契约) · reasoning(null) ·
cate=B / task=T-B4(与 mfcad_D01_TB4 / fcad_D03_TB4 / mfcad_original 同属加工特征识别族) ·
metadata(model_id、split、n_faces、**face_labels、face_label_names、face_entity_ids、
n_advanced_face_total、face_index_semantics**、features_present、label_source)
Load
from datasets import load_dataset
ds = load_dataset("AI4Manufacturing/mfcadpp")
Gated — request access; granted manually.
Provenance / 复现
- 源:https://pure.qub.ac.uk/en/datasets/mfcad-dataset-dataset-for-paper-hierarchical-cadnet-learning-from/
(
MFCAD_dataset.zip,1,615,810,586 字节,内含MFCAD++_dataset/—— 实为 MFCAD++,见上) DOI 10.17034/d1fec5a0-8c10-4630-b02e-b92dc81df823 - 复现:源站有 Cloudflare 人机验证挡自动下载,需浏览器手动下
MFCAD_dataset.zip放进FORGE_DATASETS_SUB,再python mfcadpp/convert_mfcadpp.py—— 脚本会核对字节数 (common/fetch.py)并做上述全部运行时校验;原始数据不入库,一条命令从零重建。 - 论文:Colligan, A.R., Robinson, T.R., Nolan, D.C., Hua, Y., Cao, W. Hierarchical CADNet: Learning from B-Reps for Machining Feature Recognition. Computer-Aided Design.
- 许可:CC BY(发行页 "Licence: CC BY")。我们是研究用途,请引用上游。
- Downloads last month
- 21