论文精读笔记:FastCAD
1. 核心判断
FastCAD 的关键不是让 CAD encoder 更快,而是 训练时用 encoder 教 scene detector 预测 shape embedding,测试时完全移除 per-object encoder :
旧流程:scene detection → crop 每个对象 → 编码 crop → CAD retrieval → alignment optimization;
FastCAD:一次 scene forward 同时输出 detection、alignment 与 distilled CAD embedding → nearest neighbor。
这既消除了随对象数线性增长的 per-crop encoder,也让 scene receptive field 帮助形状判断,例如同一房间围桌摆放的相同 chairs。其 50× 加速主要来自任务重构,而不是换一个更快 backbone。
2. 任务边界:9DoF CAD alignment 不等于普通 6D pose
输出是 category / CAD identity 与 similarity-like object transform:
3D center translation;
oriented box rotation;
三轴尺寸 / anisotropic scale;
四分类 front-facing side。
Scan2CAD 对象位于 gravity-aligned 室内场景,front side 只在 box 的四个水平侧面中分类,并用 up-axis 2-fold / 4-fold / full rotational symmetry 处理等价方向。因此它更接近 upright indoor 9DoF object-to-scene alignment ,不是任意 SO(3)、遮挡桌面物体的 BOP 6D pose。
视频模式也不是直接从单帧 RGB 回归对象 pose:先用在线 reconstruction 方法把视频融合成 scene mesh / point cloud,再运行 FastCAD。100 ms 由 reconstruction 50 ms + FastCAD 50 ms 组成。
3. 单阶段 scene network
原论文 Figure 2。FastCAD 的 four heads 共享 scene features;独立 encoder 只在训练期构建 target embedding,推理期不参与。来源:ECVA 正式论文 ;图片版权归论文作者及 Springer Nature 所有,本站仅作论文解读展示。
输入点云经 MinkowskiEngine sparse convolutions 与 generative transposed convolutions形成多尺度 feature volume,结构受 TR3D 启发。检测位置输出:
p ^ ∈ R 35 \hat p\in\mathbb R^{35} p ^ ∈ R 35 :object class;
b ^ ∈ R 7 \hat b\in\mathbb R^7 b ^ ∈ R 7 :oriented box parameters;
f ^ ∈ R 4 \hat f\in\mathbb R^4 f ^ ∈ R 4 :front-facing side;
w ^ ∈ R 256 \hat w\in\mathbb R^{256} w ^ ∈ R 256 :shape embedding。
small / large classes 分别取 feature level 2 / 3。总损失为:
L = L c l s + 1 m a t c h e d ( L b b + L f f + L e m b ) , \mathcal L=\mathcal L_{\rm cls}
+\mathbf 1_{\rm matched}
(\mathcal L_{\rm bb}+\mathcal L_{\rm ff}+\mathcal L_{\rm emb}), L = L cls + 1 matched ( L bb + L ff + L emb ) ,
其中 focal loss 负责类别,DIoU 负责 box,cross entropy 负责 front side,MSE 让 w ^ \hat w w ^ 回归 GT CAD embedding。每个 GT 只在最近的 k = 6 k=6 k = 6 detection locations 中分配一次。
将 front orientation 从 embedding 分离有两项收益:
每个 CAD 不必存四个 90° orientation embeddings,库大小减为 1/4;
symmetry 可直接变成 front-side soft label:
non-symmetric:one-hot;
2-fold:两个对向面各 1/2;
4-fold / full up-axis symmetry:四面各 1/4。
4. Shape embedding 如何学习与蒸馏
Anchor 是 Scan2CAD GT box 内含背景、遮挡和缺失的 scan points;positive 是对应 clean CAD;negative 从同类其他 CAD 随机取。三者由共享 Perceiver encoder 得 256D embeddings。
4.1 Triplet
L t r i = max ( 0 , ∥ A − P ∥ 2 2 + m − ∥ A − N ∥ 2 2 ) . \mathcal L_{\rm tri}=\max(0,\|A-P\|_2^2+m-\|A-N\|_2^2). L tri = max ( 0 , ∥ A − P ∥ 2 2 + m − ∥ A − N ∥ 2 2 ) .
同类 negative 比跨类 negative 更难,迫使 embedding 区分 chair / table 内部 shape,而不只是语义类别。
4.2 Foreground segmentation auxiliary task
Anchor crop 仍含 background。point-wise BCE 让 encoder 标 object foreground,并平衡 foreground / background 数量,避免 80–90% foreground 比例淹没背景监督。
4.3 Chamfer-distance regression auxiliary task
浅层 MLP 从 positive / negative embeddings 回归两 CAD point clouds 的 Chamfer distance。它不是直接优化 retrieval rank,而是要求 embedding 保留“两个同类 CAD 到底有多像”的连续几何信息。
Encoder 训练完成后:
离线编码所有 CAD;
每个训练 object annotation 取得 GT CAD embedding w i w_i w i ;
FastCAD 直接用 MSE 回归 w i w_i w i ;
inference 只按 w ^ \hat w w ^ 在预测类别内 nearest-neighbor。
这就是 embedding distillation。这里蒸馏的是 target representation,不是 logits / teacher probability。
5. 数据与指标
Scan2CAD 为 ScanNet 的 1,201 train / 312 val scenes 对齐 ShapeNet CAD,含 14K+ object annotations、3K+ unique CADs 和 35 categories。
5.1 Alignment accuracy
prediction 同时满足才算正确:
class 正确;
translation error < 20 cm;
rotation error < 20°;
scale error < 20%。
每个 GT 只匹配一次。它没有检查 retrieved CAD 是否与 GT shape 相似,因此“对齐正确”可能配了同类但形状很差的 CAD。
5.2 Reconstruction accuracy
把预测与 GT CAD 按各自预测 / GT transform 对齐后,采样表面点;统一缩放到 GT 最大边为 10,再计算 τ = 0.5 \tau=0.5 τ = 0.5 的 F-score,超过 μ = 0.7 \mu=0.7 μ = 0.7 才算正确。它同时惩罚 retrieval shape 与 alignment。
5.3 Shape accuracy
把预测和 GT CAD 都用完美 GT alignment 放置,再做同一 F-score 检查,只测 retrieved shape quality。这三项必须一起看:
alignment:变换与类别;
shape:检索几何;
reconstruction:二者联合。
6. 对齐精度与速度
原论文 Table 1。时间是单场景 / 更新的 inference time,不包括所有方法未披露的预处理;RayTran 没有报告时间。来源:ECVA 正式论文 ;表格版权归论文作者及 Springer Nature 所有,本站仅作论文解读展示。
输入 方法 Instance alignment 时间 RGB-D scan SceneCAD 61.2 2,600 ms RGB-D scan FastCAD 61.7 50 ms RGB video ODAM 29.2 366 ms RGB video Vid2CAD 38.6 3,200 ms RGB video RayTran 43.0 未报告 RGB video FastCAD 48.2 100 ms
FastCAD scan 相对 SceneCAD 只高 0.5 point,但速度约 52×;这是论文真正的 trade-off。video 版比 RayTran 高 5.2 points,但“至少三倍更快”的证据主要来自 ODAM / Vid2CAD,因为 RayTran 没披露时间。
Front-side 设计消融:
orientation 写入 embedding:56.2;
独立 front head:60.1;
symmetry-aware target:61.7。
独立 head +3.9,symmetry 再 +1.6,说明方向监督与 shape retrieval 解耦比单纯增加 embedding 容量更有效。
7. Shape quality 与关键消融
原论文 Table 2。ScanNotate 从 GT pose 初始化,Vid2CAD 又把检索限制在很小的 GT scene pool,带星号结果不与 FastCAD 主配置完全同条件。来源:ECVA 正式论文 ;表格版权归论文作者及 Springer Nature 所有,本站仅作论文解读展示。
主配置:
输入 Alignment Reconstruction Shape 时间 FastCAD scan 61.7 41.7 83.1 50 ms FastCAD video 48.2 24.7 79.8 100 ms FastCAD video,同 Vid2CAD retrieval pool 48.2 29.6 87.7 100 ms
因此摘要“reconstruction 22.9→29.6”是 双方都受 GT scene retrieval pool 限制 的比较。FastCAD 开放库主配置是 24.7;年度总结应同时写清,不能把 29.6 当默认结果。
Embedding distillation:
设计 Reconstruction Shape 2-stage,predicted bbox crop 15.6 51.0 2-stage,nearest GT bbox crop 30.6 78.1 distilled one-stage 41.7 83.1
即使用接近 GT 的 crop,two-stage 仍落后。作者推测 scene-level receptive field 利用了环境内对象 shape correlation;也可能包含 scene / category co-occurrence shortcut,跨建筑域时需重新检查。
Encoder auxiliary tasks 使 Triplet-only 38.3 / 81.1 提到 41.7 / 83.1;单独 segmentation 的 shape accuracy 84.3 甚至略高,但联合配置 reconstruction 最好。Perceiver 比 PointNet++ 的 reconstruction / shape 为 38.3 / 81.1 对 29.6 / 74.0,teacher encoder 质量会传给 distilled student。
ScanNotate 的 shape accuracy 83.5 与 FastCAD 83.1 接近,但前者从 GT pose 初始化、每场景 660,000 ms;它更像离线 annotation upper reference,不是在线公平 baseline。
8. 在线视频行为
原论文 Figure 6:约观看 30% 序列时已有可用结果,随着重建更完整、遮挡对象被看见,shape / alignment / reconstruction 持续上升。来源:ECVA 正式论文 ;图片版权归论文作者及 Springer Nature 所有,本站仅作论文解读展示。
评测只纳入“object center 至少进入过已看帧视野”的 GT。即便 center 已进入 FOV,物体仍可能被遮挡、无法重建,早期 recall 因此偏低。随着相机靠近与视角增加,scene mesh 改善,CAD predictions 也提升。
FastCAD 每次对更新后的 point cloud 重新独立推理,没有 object track / temporal association,因此:
CAD identity 可能跨更新切换;
alignment 会 jitter;
同一物体可能被重复检测成不同类别;
不能利用上一时刻 pose 做稳定 refinement。
10 FPS 表示系统吞吐,不等于输出时间一致性。
9. 局限与失败模式
单一 ScanNet / Scan2CAD 域、35 类、upright indoor objects;
CAD retrieval 受离散库覆盖限制,库外形状只能找最近替代;
video 先依赖 reconstruction,camera tracking / fusion 错误会传递;
无 scene layout、support、collision 或 physical plausibility;
不做 iterative alignment refinement,残留小角度 / 小平移误差;
online 每次独立预测导致 jitter;
training scene context 可能成为 shortcut;
50 ms / 100 ms 基于论文特定实现,未报告移动端部署;
论文只说明基于 PyTorch、MMDetection3D 与 MinkowskiEngine 实现,没有公开 FastCAD 官方代码链接。
10. 复现检查表
使用 Scan2CAD 官方 1,201 / 312 scene split;
point cloud 最大 50K points;
区分 scan model 与专门在 reconstruction outputs 上训练的 video model;
CAD negatives 必须同 category;
teacher encoder 使用 triplet + balanced foreground segmentation + Chamfer regression;
distill 256D GT CAD embeddings,而非 inference 时再 crop;
front side 与 shape embedding 分开,加入 2 / 4 / full symmetry soft labels;
alignment、shape、reconstruction 三指标都报告;
明确 open CAD pool 与 GT scene pool;
runtime 拆成 reconstruction、FastCAD、NN search 与数据预处理;
online 评测增加 identity switches、pose jitter 与首次稳定检测时间。
11. 最终评价
FastCAD 是一篇非常工程化的 scene-level CAD alignment 工作:它用 embedding distillation 把昂贵的 per-object retrieval encoder 压进一次全场景检测,将 SceneCAD 2.6 秒级流程降到 50 ms,同时略升 alignment accuracy。更值得借鉴的是,论文没有只报 20°/20cm/20% 的旧指标,而是新增 shape 与 reconstruction accuracy,避免“pose 对、CAD 形状错”仍被算成功。
它与传统 6D pose 的交集应准确标注:这是 gravity-aligned indoor scene 中的 category / CAD retrieval + 9DoF alignment,不是 BOP 式任意对象 SE(3)。在这个边界内,FastCAD 为实时数字化、AR 与机器人 scene model 提供了很强的系统基线。