← 返回 2026-05-18

Raster2Seq:基于多边形序列生成的栅格化平面图矢量化重建 Raster2Seq: Polygon Sequence Generation for Floorplan Reconstruction

Hao Phung, Hadar Averbuch-Elor 📅 2026-05-11 👍 5 2026-07-13 08:36
可变形注意力 平面图矢量化 序列生成 自回归解码 计算机视觉 语义分割

把平面图重建任务建模成序列到序列的自回归生成,用可学习锚点引导的解码器一次预测一个带语义标签的角点。

前置知识

Transformer 与 Seq2Seq 建模

Transformer 是一种基于自注意力的神经网络架构,核心是用 Q/K/V 三元组的点积注意力代替 RNN 的循环结构,从而支持并行训练并捕获长程依赖。Seq2Seq 原本用于机器翻译:编码器把源序列压缩成向量序列,解码器自回归地逐个生成目标 token。

Raster2Seq 的核心就是把平面图重建当成 Seq2Seq 任务:图像特征作为编码器输出,角点序列作为解码器目标,整个框架直接复用 Transformer 的并行训练和掩码注意力机制。

Deformable Attention(可变形注意力)

Deformable DETR 提出的稀疏注意力机制。对每个 query,不是和特征图全部位置算注意力,而是先学习若干参考点(reference points),再预测这些点的偏移作为采样位置,只在少量采样点上计算注意力。这把注意力复杂度从 $O(N^2)$ 降到 $O(NK)$,其中 $K$ 远小于 $N$。

本文解码器把可变形注意力作为第二层,让自回归 query 在图像特征上聚焦到少数信息丰富的空间位置,避免在密集特征图上做全注意力而拖慢速度。

自回归生成与 Causal Mask

自回归模型把输出序列建模为条件概率的链式分解:$p(y_1, \dots, y_L) = \prod_{l=1}^L p(y_l \mid y_{<l})$。训练时用 causal mask 让第 $l$ 个 token 只能看到位置 $< l$ 的 token,从而与推理时的逐步生成保持一致。

Raster2Seq 用 masked attention 实现 causal mask,让每个角点只能看到历史角点。这种左到右的归纳偏置天然匹配 CAD 设计师从左上到右下依次画房间的工作流。

可学习 Anchor(Anchor-based 回归)

Anchor 在目标检测中指预设的参考框,Faster R-CNN、RetinaNet 等都先在每个位置铺一组固定 anchor 再做分类与回归。本文借鉴这一思路,对序列中每个位置都学习一个初始 2D 坐标,模型只预测相对 anchor 的残差而不是直接回归绝对坐标。

直接回归连续坐标训练不稳定,可学习 anchor 把搜索空间缩小到残差范围,让模型更容易收敛。在 Structured3D-B 上从 94.1 F1 飙到 99.6 F1 的关键正是 anchor。

研究动机

建筑平面图通常以栅格化图像的形式分发,但绝大多数下游任务(CAD 编辑、3D 重建、自动户型理解、可控场景生成)都需要结构化的矢量几何。把栅格图反推成矢量化表示的传统流程是依赖手工特征的多阶段管线,例如早期 [De Las Heras et al. 2014]、Liu et al. [2017] 用整数规划从预测的角点恢复几何,再后来 [Zeng et al. 2019] 用像素级分割、[Sun et al. 2022] 用图神经网络建模层级关系。这些方法在干净、低密度的平面图上尚可,但面对真实户型中几十个房间、几百个角点的不规则布局时往往泛化失败。近期的 Transformer 方法(HEAT、FRI-Net、RoomFormer、PolyRoom)虽然摆脱了后处理,但都采用 set-based 预测:RoomFormer 用 2800 个固定 query 与匈牙利匹配,PolyRoom 也是从分割 proposal 中抠出房间。一旦平面图复杂度超出 query 容量,不仅无法再输出更多预测,还会因为 quadratic 注意力代价过高而 OOM。同时这些方法要么完全忽略语义(HEAT、FRI-Net、PolyRoom),要么因为对房间序列做均值池化分类(RoomFormer)而损失 token 级语义精度。

本文的目标是本文的核心目标是设计一个端到端的栅格到矢量平面图重建框架,能同时输出几何结构(房间多边形、角点、边角)和语义标签(房间类型、窗、门),并且对房间数量、角点数量、多边形边数没有预设上限。具体来说,作者希望模型在标准 benchmark(Structured3D、CubiCasa5K、Raster2Graph)的 Room/Corner/Angle F1 上全面达到 SOTA,同时在语义指标(Room Semantic、Window & Door)上至少不弱于现有最佳方法,并能在完全没有训练样本的真实互联网平面图(WAFFLE)上实现强零样本泛化。除此之外,作者还希望这个框架输出的是结构化的"labeled polygon sequence",便于和后续 CAD 工具、3D 扩散模型、可视语言模型无缝对接——本文展示的 TRELLIS 3D 生成和 Gemini 2.5 Pro 后处理就是这种可组合性的直接验证。

与已有工作不同的是,作者从一个关键观察切入:房间本身就是一组有序的角点,CAD 工作流本质上也是从左上到右下依次画房间,因此可以借用序列到序列(seq2seq)框架的左到右生成偏置。他们既不用固定 query 预算,也不需要额外的图像增强或角点采样策略,而是提出一个 anchor 引导的自回归解码器,让模型按顺序生成带语义标签的角点。这种 sequence-based 视角在平面图任务上是全新的切入,避免了 set-based 范式下的容量瓶颈,同时在每个角点直接施加 token 级语义监督,避免均值池化带来的语义稀释。

核心方法

Raster2Seq 的直觉是把一张栅格化平面图当作"源语言",把一组带标签的多边形角点序列当作"目标语言",用 encoder-decoder 翻译。具体来说,输入是 RGB 或二值化的平面图 $I \in \mathbb{R}^{H \times W \times 3}$,先用 ResNet-50 + 6 层 Transformer encoder 提特征得到 $f_{\mathrm{img}} \in \mathbb{R}^{L_I \times D}$;解码器是 6 层自回归 Transformer,每个块依次做 masked attention(捕获历史角点)、deformable attention(在图像特征上采样)、FFN。最后接三个轻量级 head:token head 预测下一个 token 是 // 中的哪一类,semantic head 预测角点所属的房间类型,coordinate head 预测相对于可学习 anchor 的残差。训练时用 L1 loss 监督坐标、CE loss 监督 token 类型、CE loss 监督语义;推理时自回归到 截止,再用多数投票把每个多边形的角点语义聚合成房间标签。

与已有方法的本质区别在于三点。第一,用序列代替固定 query:解码器不需要预设最大房间数或最大角点数,输出长度随输入自适应,因此对大型户型(如 WAFFLE 这种真实建筑图纸)天然友好。第二,可学习 anchor 替代直接回归连续坐标:每个序列位置都配一个学到的 2D 锚点 $v_{\mathrm{anc}} \in \mathbb{R}^{L \times 2}$,head 输出的残差叠加到 anchor 上得到最终坐标;这个残差化技巧在 Structured3D-B 上把 Room F1 从 94.1 抬到 99.6,是表中最大单项增益。第三,token 级语义损失:每个角点都直接计算 CE 而不是先对房间内所有角点做平均再分类,绕开了 RoomFormer 因 padding 角点稀释语义信息的问题。

方法步骤详情

方法分四步。第一步是输入编码:256×256 的图像经 ImageNet 预训练的 ResNet-50 抽特征,再经 6 层 Transformer encoder(256 维 hidden、8 头、1024 维 FFN),输出 $L_I$ 个图像 token。第二步是序列构建:把每个房间的多边形角点展平成 $[\mathrm{BOS}, c_1^1, c_1^2, \dots, \mathrm{SEP}, c_2^1, \dots, \mathrm{EOS}]$,每个角点 $c_i=(x_i, y_i, p_i)$ 包含 2D 坐标和 $C$ 维语义概率,房间按左上坐标排序以诱导左到右偏置。第三步是解码:在自回归块里,先对 $L$ 个坐标 token 做 masked self-attention(query 注入 anchor 的 positional embedding),把输出和 $f_{\mathrm{img}}$ 在序列维度上做 FeatFusion 拼接得到 key/value,再做 deformable attention(每个 anchor 先 sigmoid 归一到 [0,1],再通过线性层预测偏移产生采样点),最后过 FFN。三个 head 并行输出 token 类型、语义概率和坐标残差;残差通过 $\hat{v}_l = v_{\mathrm{anc}}^l + \Delta v_l$ 还原成绝对坐标。第四步是训练与推理:损失函数 $\mathcal{L}=\lambda_{\mathrm{coord}}\mathcal{L}_{\mathrm{coord}}+\lambda_{\mathrm{token}}\mathcal{L}_{\mathrm{token}}+\lambda_{\mathrm{sem}}\mathcal{L}_{\mathrm{sem}}$,$\lambda_{\mathrm{coord}}=20$、$\lambda_{\mathrm{sem}}=1$ 经验最优,$\lambda_{\mathrm{token}}$ 按数据集调(Structured3D-B 与 Raster2Graph 取 1,CubiCasa5K 取 5)。推理时启用 KV cache 加速,sequence length 512 是默认;语义聚合用多数投票,每个房间取角点预测中出现最多的类别作为房间标签。

技术新颖性

技术新颖性可以从三个维度分析。在表征层面,labeled polygon sequence 是一种新的格式,每个 token 同时携带空间与语义信息,相较 RoomFormer 的 uniform-length room sequence 更紧凑、token 级监督更精准;相较 Raster2Graph 的"每角点四邻居类别"则去掉了对邻接标注的依赖。在架构层面,anchor 引导 + 可变形注意力 + FeatFusion 三件套构成一个自回归 decoder 模板:anchor 解决了连续坐标回归的不稳定性,可变形注意力把计算量限制在图像的少量采样点上(每个 head 仅 4 个采样点),FeatFusion 早期把视觉信息注入 key/value 让角点预测能看到全图上下文。在训练层面,作者还设计了一个经验上重要的小技巧:门和窗的角点不按左到右顺序插入房间之间,而是统一追加到序列末尾,让模型从只含房间的预训练阶段平滑过渡到含门/窗的微调阶段。

Method Overview
Fig. 2: Method Overview
Illustration of our anchor-based autoregressive decoder.
Fig. 3: Illustration of our anchor-based autoregressive decoder.
Sequential corner prediction visualization
Fig. 4: Sequential corner prediction visualization

实验结果

Table 1 展示了在三个数据集上的核心对比。在 Structured3D-B 上,Raster2Seq 在几何指标全面领先:Room F1 99.6 vs PolyRoom 98.9 vs FRI-Net 96.5 vs RoomFormer 95.1,Corner F1 98.3 vs PolyRoom 96.0 vs RoomFormer 91.7,Angle F1 92.7 vs PolyRoom 91.9,Window & Door F1 98.5 vs RoomFormer 94.1;唯一略低于 RoomFormer 的是 Room Semantic(76.9 vs 74.2,依然领先)和 Angle F1(92.7 略胜 PolyRoom 91.9)。在更难的 CubiCasa5K 上,Room F1 88.7 大幅超越 RoomFormer 的 83.5(FRI-Net 77.1、HEAT 78.2),Corner F1 59.4 vs RoomFormer 55.5,Angle F1 37.4 vs RoomFormer 34.1,但 Window & Door 上 77.8 略低于 RoomFormer 的 78.5,说明本文方法在复杂多边形上更强但对细小元素精度略有损失。在 Raster2Graph 数据集上,Room F1 97.0、Corner F1 80.3、Room Semantic F1 85.1 全部超过原方法 Raster2Graph(95.0/78.3/83.4),Angle F1 66.6 接近 Raster2Graph 的 67.3,说明本方法在 Raster2Graph 自家数据集上仍能反向领先。Figure 5 的复杂度曲线表明,在含 15+ 多边形或 150+ 角点的复杂户型上,RoomFormer 与 FRI-Net 性能断崖式下跌,而 Raster2Seq 几乎平稳,这正是固定 query 容量瓶颈与序列生成灵活性的差异体现。Figure 6 的跨数据集热力图进一步显示 Raster2Seq 在 train/test 不同组合下都显著优于基线,尤其在 CubiCasa5K → WAFFLE 零样本测试中 IoU 73.9 vs RoomFormer 60.5、FRI-Net 56.7(表 6),证明其真实互联网平面图上的强泛化能力。

Quantitative comparison on Structured3D-B, CubiCasa5K, and Raster2Graph datasets
Table 1: Quantitative comparison on Structured3D-B, CubiCasa5K, and Raster2Graph datasets
Ablation studies on the Structure3D-B dataset
Table 2: Ablation studies on the Structure3D-B dataset
Ablation on the order of window and doors in the labeled polygon sequence
Table 5: Ablation on the order of window and doors in the labeled polygon sequence
Cross-evaluation of floorplan interior segmentation performance on the WAFFLE test set
Table 6: Cross-evaluation of floorplan interior segmentation performance on the WAFFLE test set
Detailed results of Structured3D-B test set
Table 9: Detailed results of Structured3D-B test set
Quantitative evaluation on the Structured3D test set (density map input)
Table 12: Quantitative evaluation on the Structured3D test set (density map input)
Speed comparison
Table 14: Speed comparison
VLM-based refinement results on CubiCasa5K subset
Table 15: VLM-based refinement results on CubiCasa5K subset
Effect of Random vs. Learnable anchors
Table 16: Effect of Random vs. Learnable anchors
Performance vs. floorplan complexity
Fig. 5: Performance vs. floorplan complexity
Cross-evaluation heatmaps
Fig. 6: Cross-evaluation heatmaps
Ablation results over a sample from the Structure3D-B test set
Fig. 7: Ablation results over a sample from the Structure3D-B test set
查看结构化数据
任务指标本文基线提升
Structured3D-B 房间几何重建 Room F1 / Corner F1 / Angle F1 99.6 / 98.3 / 92.7 PolyRoom 98.9 / 96.0 / 91.9(次优) Room F1 +0.7、Corner F1 +2.3、Angle F1 +0.8
Structured3D-B 房间语义分类 Room Semantic F1 76.9 RoomFormer 74.2 +2.7 F1
Structured3D-B 门窗检测 Window & Door F1 98.5 RoomFormer 94.1 +4.4 F1
CubiCasa5K 房间几何重建 Room F1 / Corner F1 / Angle F1 88.7 / 59.4 / 37.4 RoomFormer 83.5 / 55.5 / 34.1 Room +5.2、Corner +3.9、Angle +3.3
Raster2Graph 数据集房间几何 Room F1 / Corner F1 / Angle F1 97.0 / 80.3 / 66.6 Raster2Graph 原方法 95.0 / 78.3 / 67.3 Room +2.0、Corner +2.0,Angle 接近(-0.7)
WAFFLE 零样本室内分割 IoU / Precision / Recall 73.9 / 81.6 / 88.6 RoomFormer 60.5 / 65.7 / 88.3 IoU +13.4,Precision +15.9
Structured3D 标准 density map 输入(Table 12) Room F1 / Corner F1 / Angle F1 98.8 / 90.0 / 84.2 FRI-Net 99.1 / 87.8 / 86.9(带 PD 细化时 99.1/91.1/89.2) 语义加入后 Room F1 仅降 0.1(98.8 vs 98.7),远优于 RoomFormer 下降 3.1

局限与改进

作者在 Section 4.5 明确指出模型在门和窗等小尺寸语义元素上仍有失败案例(Figure 8):有时会把窗预测到房间内部产生 cross-over 现象,或把门预测到错误位置。从数据看,CubiCasa5K 上 Window & Door F1 77.8 略低于 RoomFormer 的 78.5,Structured3D-B 上虽然 Raster2Seq 98.5 大幅领先但 Room Semantic 76.9 与 RoomFormer 的 74.2 差距较小,说明类别混淆仍然集中在门/窗这种小元素。我的额外观察还有三点:第一,推理时延 0.52s 比 RoomFormer 的 0.04s 高一个数量级,对实时 CAD 应用是瓶颈;第二,semantic loss 权重很敏感,$\lambda_{\mathrm{sem}}=1$ 是默认最优但 CubiCasa5K 上 $\lambda_{\mathrm{token}}$ 需要调到 5,没有自适应策略;第三,CubiCasa5K 原始标注本身存在房间重叠(见 Figure 19),模型直接学会复现这些错误,必须配合 Gemini 2.5 Pro 后处理才能把 Corner F1 从 54.0 拉到 59.0、Angle F1 从 33.0 拉到 45.1,说明几何一致性靠模型本身无法严格保证。

独立分析的弱点

独立分析的弱点有四处。第一,推理时延:自回归解码需要逐个角点采样 0.52s,而 RoomFormer 一次并行 0.04s,差距 13 倍。对实时 CAD 编辑不友好,改进方向是引入非自回归并行解码(如多起点并行采样)或 speculative decoding。第二,门窗定位精度:Figure 8 显示 cross-over window 现象,根本原因是门/窗角点数量远少于房间,模型在多数位置预测 时容易"借用"附近的房间角点;改进方向是显式建模门窗作为独立分支,或者借鉴目标检测的 keypoint head。第三,几何一致性强假设:模型不强制相邻房间共享边、不保证边 axis-aligned,CubiCasa5K 测试集中需要 VLM 后处理才能把 Angle F1 提升 12 个点;改进方向是加入 orthogonality 约束、共享边 loss,或者把 VLM 推理内化进网络(如 RL 训练奖励)。第四,对小数据集的依赖:CubiCasa5K 只有 ~5000 张训练图、Raster2Graph ~9800 张,WAFFLE 几乎全部无标签,模型对真实未见过分布仍依赖零样本外推;改进方向是引入视觉自监督预训练或合成数据扩增。

未来方向

作者在文末提到了三个方向。第一,appearance-based augmentations:通过外观层面的增强让模型对真实未见过分布(如历史建筑、手绘户型)更鲁棒。第二,open-vocabulary semantic:把固定 $C$ 类语义换成开放词汇预测,让手绘平面图中独有的房间类型也能识别。第三,semantic-conditioned generation:用语义标签作为条件去引导角点生成,实现"画一张带指定房间的户型"。基于这些工作我可以再延伸两点:第一,可以扩展到带家具与陈设的层级化平面图生成,让模型在每个房间多边形内再生成家具 bbox;第二,可以把矢量平面图作为强几何先验,结合 3D 扩散模型(如本文 Section E.6 的 TRELLIS + SpaceControl 实验)做可控室内场景合成,把 2D 户型变成可漫游 3D 场景。

复现评估

复现评估整体可行。代码与项目主页已公开(https://cornell-vailab.github.io/Raster2Seq/),开源且包含预训练模型权重。模型规模较小:12 层 Transformer(6 encoder + 6 decoder)、hidden 256、8 头,单张 NVIDIA A6000 即可训练,Structured3D-B 预训练 14.3 小时、CubiCasa5K 19.4 小时、Raster2Graph 21.1 小时,加上语义微调 4-16 小时,单卡 1-2 天可复现主表。数据方面,Structured3D、CubiCasa5K、Raster2Graph 均可公开下载,作者在附录 A 详细给出预处理流程(Closed-contour 提取、二值化、bbox 偏移、坐标对齐)。超参数方面,附录 Table 7 给出完整学习率(2e-4)、batch size(32/64)、dropout(0.1)、loss 系数($\lambda_{\mathrm{coord}}=20, \lambda_{\mathrm{sem}}=1, \lambda_{\mathrm{token}}\in\{1,5\}$),Table 8 给出模型维度。复现难度中等偏低,主要难点在 Structured3D-B 的二进制转换、Coordinate bilinear quantizer 的实现细节,以及 KV cache 与 deformable attention 的工程优化。