← 返回 2026-08-04

CADENA:逐步式CAD逆向工程 CADENA: Stepwise CAD Reverse Engineering

Soslan Kabisov, Gennadiy Savrasov, Maksim Elistratov, Antonio Rodriguez, Daniil Ignatiev, Nikita Gavrilov, Rustam Uzdenov, Alexey I. Boyko, Igor Pasechnik, Anton Konushin, Andrey Kuznetsov, Dmitrii Zhemchuzhnikov 📅 2026-08-01 👍 38 2026-08-09 18:30
CAD逆向工程 三维重建 基准评测 强化学习 视觉语言模型

逐步执行CAD操作并对比几何反馈,重建可编辑参数化程序

前置知识

参数化CAD程序(Parametric CAD Program)

参数化CAD用一系列有序操作(拉伸、旋转、倒角、打孔等)构造零件,每个操作带参数(如半径、高度)。最终几何是这些操作的执行结果,且可被工程师编辑修改某个参数。它对应一棵构造历史树,区别于只能渲染/打印的原始网格(mesh)。

本文目标就是把目标网格逆向还原成这种可编辑的程序,理解'程序'与'几何'的区别才能理解为何单凭形状匹配不够。

视觉语言模型(Vision-Language Model, VLM)

VLM同时处理图像与文本,能把图像编码为token再与文字token一起送入Transformer。本文用Qwen2-VL-2B作为策略网络,输入是描述目标/当前几何差异的多视图图像,输出是下一行CAD操作的DSL代码。

本文策略以视觉反馈为观察,VLM是承载该能力的核心模型,理解它才能理解为何要渲染成图像而非输入坐标。

GRPO强化学习(Group Relative Policy Optimization)

GRPO不使用独立critic,而是在同一状态处采样一组候选动作,用组内均值和标准差对奖励做归一化得到advantage。本文在每个前缀状态分支32个候选操作,对奖励(执行几何的IoU)做组归一化,保留advantage绝对值最大的两个候选做更新。

RL精调是CADENA-RL相对CADENA-SFT的关键提升来源,且奖励来自执行几何而非token重叠,是理解其有效性与低无效率的钥匙。

IoU与Chamfer Distance(倒角距离)

IoU衡量预测与目标占据体积的重叠比例,仅对水密(watertight)网格有定义;Chamfer Distance是两片点云间最近点距离的均值,衡量形状吻合度。二者只看'形状'而非'构造',本文指出这会让用错误基元拼出的形状也得分。

作者据此提出GMS指标,并在固定坐标系下评测,这是理解为何要造新基准和新指标的关键。

研究动机

现有AI系统把CAD逆向工程当作'一次性翻译':把点云或渲染图喂给模型,让它一口气输出完整CadQuery程序,从不在生成过程中查看中间几何。这带来两个后果:其一,模型在每步操作时看不到前面操作究竟建出了什么形状,一个早期错误会静默累积;其二,模型只能依据已写出的程序文本做条件,选择依赖训练语料的组合统计而非眼前的残差几何。在真实机械零件(齿轮、轴、弹簧等含旋转/阵列特征)上,这些方法退化严重——例如cadrille在DeepCAD上GMS达94.8,迁移到CADENA-Bench只剩49.8,近一半能力蒸发。同时评测本身也有病:现有测试集多为简单sketch-extrude零件,指标只看形状体积而忽略构造树是否正确,且只在水密子集上平均,掩盖了硬零件上的失败。

本文的目标是本文要构建一个像人类工程师那样'逐特征构造、每步检查残差'的逆向工程模型CADENA:给定目标网格$M$,逐步追加一条CAD操作$o_{t+1}$,每次执行后把当前建造$S_t=\text{exec}(P_t)$与目标对比,再决定下一步,最终输出一段可编辑的参数化程序。同时要补齐评测短板:提出CADENA-Bench——3396个真实机械零件、分六个零件族的真实基准;提出GMS指标——以表面类型匹配(位置+法向)代替单纯体积匹配,且对开放几何也有定义,从而真正衡量'构造树是否正确'而非'轮廓是否填满'。

与已有工作不同的是,独特切入点在于:单次生成方法忽略了一个关键事实——目标形状是逆向工程的输入而非隐藏标签,因此推理时它和训练时一样可见。CADENA利用这一点把'残差几何(目标比当前建造多了什么)'直接作为每步观察,使策略只依赖几何而非程序文本:每条DSL行都通过单一变量$r$消费并重绑$r$(如$r=\text{extrude}(r,\ldots)$),下一步只看当前形状就能继续,与具体写法无关。与CADReasoner'整段重写'、CADFit'优化搜索'相比,CADENA在粒度上每次只追加一个操作,把闭环反馈做到操作级而非程序级。

核心方法

整体思路是'以执行结果为闭环的逐步生成'。直觉上:与其盲写整段代码,不如像搭积木——每次看一眼'还差什么',补一块,再看。技术路线:策略是Qwen2-VL-2B,每步接收一个观察$R(M,S_t)$,由一张多视图图像加一个提示点组成;模型输出下一行DSL操作;执行后产生新建造$S_{t+1}$,循环直到停止。训练分两阶段:SFT用规则程序生成器提供逐步监督(前缀冻结执行得当前态、续写给出目标操作),RL用执行几何的IoU做奖励做GRPO精调。推理用贪心解码、预算20步,并返回IoU最高的前缀——因为每步前缀都可执行可打分,损坏重建的晚操作会被直接丢弃,方法优雅降级。

核心创新是把策略的条件从'程序文本'换成'残差几何',做到操作级闭环。观察图像把目标和当前建造叠加在不同颜色通道(目标=绿色、当前预测=红色),用六个轴对齐正交投影(深度编码为颜色强度)加两个等距视图,拼成一张$504\times1008$图像;重叠区域呈黄色、纯绿=缺失几何、纯红=多余材料,差异一目了然。再配一个提示点(文本形式3D坐标)指向待修改区域,消除多连通差异歧义。DSL的关键设计是单变量$r$:每条操作都消费并重绑$r$,无自由变量名需解析,使'下一行只依赖当前几何、不依赖代码文本'成立。这与一次性生成、整段重写、优化搜索三类方法在条件结构上本质不同。

方法步骤详情

完整流程:1) 渲染——把目标$M$与当前建造$S_t$置于同一坐标系,按CADReasoner/CADEvolve协议从8个视点渲染,拼成$504\times1008$图(每视图$252\times252$,按VLM patch尺寸的倍数)。2) 提示点——训练时从真实中间形状采样点,取距$S_t$超过阈值$\tau$的点、且落在$(\tau,3\tau)$区间内(靠近新增/已有几何界面);推理时未知中间态,先在目标采样点、用递减阈值$\tau'$做连通分量分析找差异区,取最远代表点后向已重建边界做贪心游走得到提示点。3) 生成——VLM读图与提示点,输出一行DSL(extrude/revolve/sweep/loft/shell/chamfer/fillet/gear等)。4) 执行——用CadQuery+OpenCASCADE执行整段程序导出新STL。5) 选择——对每步前缀按IoU打分,返回最优前缀。坐标全程绝对整数、归一到$[-100,100]$,使尺度/位置误差计入评分。

技术新颖性

新颖性体现在四处:其一,操作级残差闭环,区别于CADReasoner的程序级重写和单次生成;其二,DSL单变量$r$设计使策略与代码文本解耦,保证'只看几何'的观察充分性,任意前缀都是任意续写的合法上下文;其三,RL奖励用执行几何的IoU(失败执行得0),把'可执行有效性'写进目标而非事后过滤,CADENA-RL在外部数据集无效率仅0.3%–1.2%;其四,评测侧的CADENA-Bench(六族、去重、去平凡)与GMS(位置+法向匹配、对开放几何有定义)共同堵住'用错基元填对体积'的漏洞。此外GRPO采用$\beta=0$无KL惩罚、每组保留advantage绝对值最大的两候选、按组奖励标准差排序后截断到批大小倍数的工程细节,也较标准做法有针对性调整。

CADENA overview
Figure 1: CADENA overview
Stepwise reconstruction by CADENA
Figure 2: Stepwise reconstruction by CADENA

实验结果

核心发现有三。其一,外部数据集已饱和:DeepCAD上各方法IoU 89.7–96.1、GMS 89.8–97.0,差距落在评测噪声内难分高下。其二,真实机械零件难得多:从DeepCAD迁到CADENA-Bench,各方法GMS几乎腰斩——cadrille 94.8→49.8、CADEvolve 95.3→52.9、CADReasoner 94.9→52.9;CADENA-RL从97.0降到67.0,领先优势从1.7点扩到12.2点,在MCB上达IoU 88.2、GMS 73.7、IR 0.7%。其三,有效性比精度更能区分方法:CADReasoner在MCB上31.7%无效、CAD-Recode 21.5%,CADFit固定算力下27.5%–29.7%未收敛,CADENA-RL却把精度领先与≤1.2%低无效率结合。CADFit呈倒置画像:弱在DeepCAD(89.8)却在CADENA-Bench(54.8)成最强基线,但其无效是搜不收敛而非程序坏、均值偏乐观。BenchCAD上CADENA-RL以0.910体素IoU、0.9%IR超GPT-5.6 Sol的0.706(输入利于己方)。

CAD reverse engineering on external benchmarks
Table 1: CAD reverse engineering on external benchmarks
Per-category GMS on CADENA-Bench
Table 2: Per-category GMS on CADENA-Bench
Vision2Code on BenchCAD
Table 3: Vision2Code on BenchCAD
SFT vs RL under greedy and sampling
Table 4: SFT vs RL under greedy and sampling
Qualitative comparison across methods
Figure 3: Qualitative comparison across methods
查看结构化数据
任务指标本文基线提升
CAD逆向工程(CADENA-Bench,3396机械零件) GMS↑(%) 67.0(CADENA-RL) 最强基线CADFit 54.8;CADEvolve/CADReasoner 52.9 整体+12.2点;六族中领先五族,仅gears & bearings被CADFit(61.3)超过(58.1)
CAD逆向工程(MCB数据集) GMS↑ / IoU↑ / IR↓(%) 73.7 / 88.2 / 0.7 CADEvolve 58.3 / 72.9 / 9.2;CADReasoner 55.2 / 69.0 / 31.7 GMS+15.4点,无效率从9.2%降到0.7%
BenchCAD Vision2Code(前沿模型对比) Voxel IoU↑ / IR↓ 0.910 / 0.9 GPT-5.6 Sol 0.706;专精qwen3-2b-rl-iid 0.752 0.910 vs 最强前沿0.706;作者注明输入更丰富、含测试时选择,非严格可比
DeepCAD(外部sketch-extrude数据集) IoU↑ / GMS↑(%) 96.1 / 97.0 CADEvolve 92.4 / 95.3;cadrille 89.7 / 94.8 数据集已饱和,差距落在噪声内

局限与改进

作者承认三点:其一,CADENA并非在所有零件族领先,gears & bearings上CADFit直接拟合达61.3 GMS、超过本文58.1,因为直接优化几何不受训练分布是否覆盖旋转阵列特征的限制;其二,尚未报告在自有语料上训练的单次模型,无法分离'逐步推理'与'训练数据'各自的贡献;其三,CADENA输出CadQuery,继承其局限——极端情况下CadQuery能执行的构造树在工业CAD软件里没有忠实对应物,导出程序未必能跨软件存活。方法层面局限包括:固定八视图协议使所有规范视角都看不到的隐藏几何对策略不可见;DSL无法表达的形状只能用一堆拉伸近似;齿轮齿数等可数特征因'少一颗齿'残差几乎相同而无法精确计数;选错基准面的早期操作会被后续步骤绕过而非撤销。逐步推理每步都要执行+渲染,单零件开销显著高于单次前向。我的额外观察:BenchCAD对比中CADENA吃到目标网格且按其对同一网格做前缀选择,本质是把测试目标当成了打分依据,这种'开卷'优势作者虽已诚实声明但仍会高估生成器本身的真实水平。

独立分析的弱点

其一,八视图固定协议对内部/遮挡几何盲区——改进方向是引入主动视角选择或体素/点云多模态输入,让策略能'转头看'被遮挡特征。其二,可数特征(齿数、孔数)近似而非计数,因残差几乎不区分'差一颗'——可加一个显式计数头或在DSL引入阵列/镜像算子直接参数化重复特征,从根源消除歧义。其三,BenchCAD对比中'吃目标网格+按其选前缀'的开卷优势使结果难以公平解读——应额外报告仅给单张复合图的设定,剥离测试时选择的影响以孤立生成器能力。其四,单次模型缺位导致无法归因——应补一个在同等自有语料上训练的单次前向模型做对照,量化逐步闭环的纯收益。其五,gears & bearings被CADFit超越提示分布外旋转阵列特征弱——可用CADFit做难例挖掘生成训练样本,或把直接拟合作为CADENA失败时的兜底分支,二者互补。

未来方向

作者明示方向:补做单次模型以分离逐步推理与训练数据的贡献;处理CadQuery到工业CAD的导出兼容性。基于成果可延伸:其一,把逐步残差思想推广到更广的'程序生成+执行器'任务(如生成可执行科学计算代码、机器人动作序列),核心是把残差做成图像/状态观察;其二,CADENA-Bench与GMS可作为社区标准,扩展更多零件族(钣金、注塑件)和更细工艺特征标注;其三,CADFit与CADENA失败模式互补(一个平滑退化、一个要么完美要么空),可设计混合系统:先用CADENA快速建主体、对旋转阵列难点调用CADFit精修;其四,RL奖励工程可进一步——作者已发现用GMS做奖励反而伤及Chamfer/IoU,说明奖励与评测指标失配,可探索多目标奖励或课程学习;其五,把提示点从静态改为策略自适应、或引入主动提问机制,处理多区域差异时的分支选择。

复现评估

可复现性较好。代码开源(github.com/zhemdi/cadena),权重与CADENA-Bench在HuggingFace(kulibinai/cadena及cadena-bench);DSL语法见附录A.2;评测协议(固定坐标系、仅在指标定义集上平均、IR单独报告)详尽;GMS公式$\text{GMS}=(100/\alpha_{\max})\int_0^{\alpha_{\max}} g(\tau,\alpha)d\alpha$($\alpha_{\max}=25^\circ$,$\tau=0.05$,$N=8192$)完全可算。训练规模不小:SFT两阶段共约2000万样本、batch 64、Qwen2-VL-2B、2轮、余弦学习率$1.2\times10^{-4}$;RL用约4k网格、20轮5000批、约2万次更新、3卡梯度累积,对中等算力团队有门槛但非不可及。难点在于:RL每步分支32个候选都要执行CadQuery+渲染,rollout开销大;CADFit基线需同样算力预算复现其IR统计;BenchCAD前沿行多为厂商自报未独立验证。整体属'中高复现门槛'。