← 返回 PaperDaily 视觉与图像

通用分割模型看不懂建筑?SAM 2.1微调后幕墙IoU涨35.5点

一栋楼站在那儿,几十米高,几千个构件。想把它搬进电脑,常见做法是让无人机绕着飞一圈拍上千张照片,再交给算法重建三维模型。

通用分割模型看不懂建筑?SAM 2.1微调后幕墙IoU涨35.5点
原论文信息如下:
论文标题:
Domain Adaptation of SAM 2.1 for Building-Component Segmentation in Image-Based 3D Reconstruction
发表日期:
2026年10月
发表单位:
LSU Dept. Const. Mgmt., LSU Div. CS&E
原文链接:
https://arxiv.org/pdf/2610.12786v1.pdf

建筑3D重建的痛点:为什么通用分割模型不够用

一栋楼站在那儿,几十米高,几千个构件。想把它搬进电脑,常见做法是让无人机绕着飞一圈拍上千张照片,再交给算法重建三维模型。这一步现在挺成熟:摄影测量(photogrammetry)能解出相机位姿和稠密点云,神经辐射场(Neural Radiance Field,简称NeRF)能学出一个可任意切换视角渲染的辐射场。几何这块,基本够用。
真正麻烦的是另一件事:模型知道“这里有一块凸起的面”,但它不知道“这是一扇窗”。
要把重建结果真用起来——做数字孪生、算工程量、做改造设计——就必须回答“哪块是墙、哪块是窗、哪块是屋顶”这样的语义问题,也就是建筑构件分割。本文要分的构件一共11类:Wall(墙)、Window(窗)、Ceiling(天花板)、Door(门)、Column(柱)、Beam(梁)、Floor(楼板)、Opening(洞口)、Curtain Wall(幕墙)、Roof(屋顶)、Lift(电梯)。
作者的判断很直接:现成的分割模型不是为建筑准备的。YOLOv8走的是检测框那一套;SegFormer(一种基于Transformer的语义分割网络)只输出预先定义好的类别集合;SAM 3虽然能用文本提示做开放词汇分割,但3D重建需要的不是“按类别点名”,而是整张场景自动吐出掩码——只有掩码在全局范围保持一致,2D的分组结果才能在3D里被稳定地聚到一起。
这里要交代两个基础模型。SAM(Segment Anything Model)是Meta AI提出的可提示分割视觉基础模型;SAM 2.1是它的图像加视频统一版本,架构由图像编码器(一个视觉Transformer)、提示编码器和掩码解码器三部分组成,用户给点、框或掩码提示,它就在图像或视频帧里把目标分割出来,训练数据是SA-V,包含5.09万段视频、64.26万个掩码片段(masklet)。另一个是GARField(Group Anything with Radiance Fields),它把2D分组掩码提升到3D,而它依赖的自动掩码生成器,需要覆盖不同尺度的掩码——同一扇窗,可能一张掩码框住整扇窗,另一些掩码只框住窗的一半。
几个术语先垫一下。IoU是交并比,预测掩码与真实掩码的交集除以并集;Dice系数是两倍交集除以两个掩码面积之和;mIoU是按类别算完IoU再取算术平均,正因为按类平均,实例少的类才不会被数量多的类淹没。域适应(domain adaptation)指的是把在自然图像领域训好的模型,迁移到建筑图像领域继续训练,让它适应当地的数据分布。
数据用的是Wong等人构建的HBD数据集,2,679张建筑内外景标注图像,覆盖42栋建筑,标注已划分好训练、验证、测试集。选它的理由很实在:这个数据集本来就是为建筑构件的3D重建准备的,注释覆盖大部分立面与室内,而不是随手抓一批街景图凑数。
Figure 1
图1:由无人机图像重建的路易斯安那州立大学Patrick F. Taylor Hall。上图为渲染的照片视图;下图为同一视角下,用本文微调后的SAM 2.1完成建筑构件分割、再由GARField在3D中做层次化分组的结果,每个3D分组用不同颜色表示。

SAM 2.1微调秘籍:如何让视觉基础模型读懂建筑构件

微调这件事本身不新鲜,路线倒是有讲究。一条是适配器式微调,比如SAM2-Adapter只动上层权重;本文走的是Meta AI官方提供的自定义数据集微调流程,把权重整体调一遍。
训练目标是这样设定的:从预训练权重出发,每一步训练都模拟一次“用户提示”——从真实标注掩码里随机采一个点或一个框,喂给模型,让它预测掩码。写成公式就是 Mpred = D(Eimg(I;θ), Eprompt(p;θ)),其中Eimg是图像编码器,Eprompt是提示编码器,D是掩码解码器,θ是可学习参数,I是输入图像,p是提示点或提示框。
公式1
公式1:掩码预测的前向过程,图像编码器与提示编码器的输出共同送入掩码解码器。
预测结果和真实标注之间的差距,用一组组合损失来衡量:L = 20·LBCE + LDice + LIoU + Lclass。四项分别是逐像素的二分类交叉熵、区域重叠、置信度校准和目标检测项,其中BCE前面挂了一个20的倍率,其余三项等权相加;梯度通过链式法则反传,优化器用AdamW。
公式2
公式2:细调SAM 2.1所用的组合损失,逐像素分类项被赋予了更高的权重,另外三项分别管区域重叠、置信度校准和目标检测。
数据准备没什么花活:HBD的标注原本是JSON格式,作者把它们转成PNG掩码,每个物体实例单独一张。这一点很关键,因为GARField吃进去的就是逐实例掩码。训练配置交代得也很细:用SAM 2.1的Hiera-Large检查点,采用多掩码(multimask)训练配置,在LSU的SuperMike3高性能计算集群上跑,一个计算节点配四张NVIDIA A100,训练40个epoch,每个epoch 1,340步,合计53,600步,耗时18小时5分钟。
评估协议是本文比较有意思的地方。SAM 2.1不像SAM 3那样能用文本提示按类别分割,它只能靠点或框出掩码;但评估的时候不能把真实标注的完整掩码喂给它,否则就成了开卷考试。作者的做法是:对每个真实构件掩码M,取它内部离边界最远的那个像素作为提示点,写成 p* = argmaxp∈M d(p, ∂M)。这里∂M是掩码边界,d是欧氏距离,图像边框也算作边界的一部分。实际计算时这个点通过欧氏距离变换得到,本质就是物体内部最大内切圆的圆心。
公式3
公式3:中心点击提示的选取规则,在掩码内部寻找距离边界最远的像素。
Figure 3
图3:中心点击提示的选取方式。对每个真实构件掩码,先计算每个内部像素到掩码边界的欧氏距离(b),再取距离最大的像素p*(红星)作为SAM 2的单次正点击。这个“最深点”一定落在物体内部,即使对环形构件也成立,而构件的质心(×)在(a)这种情况下会掉到掩码外面。
为什么这么绕?因为质心不靠谱🤔。对环形或者凹形构件,质心可能落到掩码外面,点上去就点到了别的物体;随机采点又每次结果都不一样,没法复现。最大内切圆圆心这个“最深点”既保证在掩码内部,又是确定性的——同一张图跑一百遍,提示点还在原地。所有对比实验用同一条规则,所以指标衡量的是掩码质量本身,而不是模型的定位和分类能力。
Figure 2
图2:SAM 2的整体架构(引自Ravi等人的工作),图像编码器、提示编码器与掩码解码器各司其职,微调时改动的就是这三部分的参数。
整条评估流程可以压成一段伪代码:先取图像I、真实标注对(掩码Mk,类别ck)和模型f;对图像只做一次编码;然后逐个物体做距离变换、取最大值点作为中心点击;把它当作一次正点击交给模型预测掩码;再用IoU和Dice与真实掩码比对,把结果挂到对应类别下;最后返回逐类均值以及宏平均的mIoU、mDice。
    输入:图像 I;真实标注对 {(M_k, c_k)};模型 f
    输出:逐类 IoU 与 Dice
    1: f.setImage(I)                      // 图像只编码一次
    2: for 每个物体 (M_k, c_k) do
    3:     D ← 距离变换(M_k)               // 到边界的欧氏距离
    4:     p* ← argmax D(p)               // 最深内部像素=中心点击
    5:     M̂_k ← f.predict(point=p*, label=+1)  // 一次正点击
    6:     IoU_k ← |M̂_k ∩ M_k| / |M̂_k ∪ M_k|
    7:     Dice_k ← 2|M̂_k ∩ M_k| / (|M̂_k| + |M_k|)
    8:     把 IoU_k、Dice_k 记到类别 c_k 下
    9: end for
    10: return 逐类均值,以及宏平均 mIoU、mDice

    2D到3D的桥梁:GARField如何实现层次化建筑分组

    先补一句NeRF:它用一批带相机位姿的2D图像,学出一个三维辐射场,场里每个空间点带着颜色和密度,于是可以从任意新视角渲染图像。几何有了,但辐射场里没有“这是窗”这种语义。
    GARField的思路是把2D分组掩码蒸馏进3D,学一个尺度条件化的3D亲和场(scale-conditioned 3D affinity field):场里每个3D点都带一个高维特征向量,空间上属于同一构件的点,特征彼此接近;用户给一个分组尺度,算法就把亲和度足够高的点聚成一组。
    这个“尺度”是关键。尺度调大,窗、门、墙这些挨得近的构件会被合成一整片立面;尺度调小,一扇窗就是一扇窗,不会跟旁边的墙糊在一起。层次化分组本身是GARField的贡献,本文只是沿用并引用,它真正做的是换掉GARField背后的掩码生成器——把SAM 2.1塞进去,然后比较两种条件:预训练的SAM 2.1,和微调过的SAM 2.1。
    为了把“微调”这个变量单独摘出来,实验设计做得很干净:同一批图像、同一组相机位姿、同一个辐射场、同样的分组尺度和训练计划,GARField训练两次,唯一差别就是生成掩码用的SAM 2.1检查点。而且这一步的掩码是自动生成的(用点网格提示,没有任何真实标注引导),因为到了3D阶段,本来就没有标注可用。
    场景选的是路易斯安那州立大学的Patrick F. Taylor Hall,无人机拍了1,250张图,原始分辨率4000×3000,做重建时下采样4倍,等效分辨率1000×750;相机位姿和稀疏点云用COLMAP做运动恢复结构(structure-from-motion)得到。训练用nerfstudio搭建辐射场与GARField分组场,跑30,000步,硬件是一张NVIDIA GeForce RTX 4070 Ti(12GB显存),配Intel Core i9-13900K和128GB内存。
    评估方式是定性的:把分组场的逐点特征用PCA(主成分分析)降到RGB显示,和渲染图像并排放,看构件分组是不是更完整、更干净。这里有个细节得注意——PCA投影是每张图独立计算的,不同图之间的颜色不能直接比,能比的只有分组在空间上的一致性。
    Figure 7 part 1
    图7(局部):固定视角下的输入照片。
    Figure 7 part 2
    图7(局部):重建得到的RGB视图。
    Figure 7 part 3
    图7(局部):GARField分组场经PCA投影到RGB后的可视化结果。
    Figure 7 a
    图7(a):使用预训练SAM 2.1掩码,分组尺度0.15。
    Figure 7 b
    图7(b):使用微调后SAM 2.1掩码,分组尺度0.15。
    Figure 7 part 4
    图7(局部):分组尺度0.05条件下的场景视图之一。
    Figure 7 part 5
    图7(局部):分组尺度0.05条件下的场景视图之二。
    Figure 7 cd
    图7(c)(d):分组尺度0.05下,预训练与微调后SAM 2.1掩码带来的3D分组对比。图7整体为Patrick F. Taylor Hall无人机场景在固定视角(相机15)、两个分组尺度下的定性分组结果;每行从左到右依次为输入照片、重建RGB、GARField分组场(PCA投影到RGB)。前两行分组尺度0.15,后两行0.05;(a)(c)用预训练掩码,(b)(d)用微调后掩码,两次训练配置完全相同,只差SAM 2.1检查点。
    从可视化上看,微调后的模型在屋顶和立面区域的分组更成块、更连续,而预训练模型会把一部分构件和邻近表面并到一起;这种差异在较粗的分组尺度上更明显,尺度变细之后就不那么突出了。论文自己也划了边界:这个实验是定性的,只能算示意性证据。

    实验结果大揭秘:mIoU提升19.8个百分点的背后

    训练过程本身就是结果的一部分。总损失从1.864一路降到最低0.823,降幅55.9%,最低点出现在第31个epoch。这说明模型确实在往建筑这个领域收敛,而不是靠原有能力硬扛。
    Figure 4
    图4:在HBD建筑立面数据集上微调SAM 2 Hiera-Large的40个epoch训练损失收敛曲线。总损失从1.864降到0.823(第31个epoch达到最低),降幅55.9%,说明模型成功适应了建筑领域;训练用了2,679张图像、4张NVIDIA A100、耗时18小时。
    测试集是349张图像、5,541个标注实例。在完全相同的中心点击提示协议下,微调把SAM 2.1的平均IoU从49.9%拉到69.6%,涨了19.8个百分点;平均Dice从59.3%提升到77.3%。11个类里,10个类都在涨。
    涨得最猛的是那些离SAM 2原有预训练领域最远的构件:幕墙涨35.5个点、门涨34.7个点、天花板涨20.6个点、屋顶涨20.2个点。高频结构类同样有明显提升,墙涨17.7、窗涨17.0。
    Table 1
    表1:HBD测试集上的逐类分割精度(349张图像、5,541个标注实例)。预训练SAM 2.1与本文微调后的SAM 2.1都用真实掩码导出的单次中心点击提示、按对象评分,加粗表示两者中更好的一个;SegFormer为全自动语义分割、自己预测类别并逐像素评分,仅作参考,不属于严格的同条件对比。分数按类别做宏平均。
    唯一没吃到红利的是洞口类,IoU掉了5.7个点。作者的解释是:洞口这种东西没有实体表面,空间范围本身就含糊,比如一个门洞、一条通道,边界在哪儿全靠约定;微调之后模型更倾向于把它并进周围的墙体。这个解释站得住——模型学到的是“建筑构件的实体表面”,而洞口恰恰不是实体表面。
    还有两处需要点名。一是即使微调之后,墙仍然是最难的类,IoU只有53.0%,大面积、弱纹理的表面靠单个点提示很难把边界划准。二是屋顶和电梯的实例数只有38和21个,样本太少,这两类的分数波动比较大,不宜过度解读。
    Figure 5a
    图5(a):微调后的SAM 2.1在Patrick F. Taylor Hall上的自动掩码生成结果,建筑立面、窗与地面的分离更清楚。
    Figure 5b
    图5(b):预训练SAM 2.1(Hiera-Large)在同一场景上的自动掩码生成结果,作为对照。
    评价协议的边界必须讲清楚:这里给的是单次中心点击提示,类别标签直接取自真实标注,所以测出来的是“在给定正确位置和类别的前提下,掩码画得好不好”,而不是“模型能不能自己找到并认对物体”。这两个问题的难度完全不是一回事😅。

    与SegFormer的对比:谁更擅长分割建筑构件

    为了有个参照系,作者另外训了一个SegFormer。配置是这样的:ImageNet预训练的MiT-B3编码器做骨干,输入512×512,AdamW优化器学习率6×10⁻⁵,批大小4,随机水平翻转,最多训80个epoch,每个epoch结束在验证集上评估一次,保留验证损失最低的检查点。
    这里有个工程细节值得说:SegFormer要求每个像素只对应一个类别,而HBD的标注是逐实例的,还存在重叠——一扇窗嵌在墙里,这块像素同时属于窗和墙。作者的处理是“更具体的优先”,窗盖过墙,每个像素拿最具体的那个类。代价是丢掉了数据集本身的层次多尺度结构,3,378张图里有25张因为无法避免的重叠丢掉了某个类。
    结果是:这个模型在测试集上拿到64.8%的mIoU和77.0%的mDice。训练损失一路降到0.03左右,但验证损失在第6个epoch就触底(0.43),之后开始上升——典型的过拟合,说明MiT-B3这个骨干相对数据集规模还是偏大。所以最终保留的是第6个epoch的检查点。
    Figure 6
    图6:SegFormer微调过程中的验证损失曲线,最低点出现在第6个epoch(图中已标出),之后验证损失回升,因此保留第6个epoch的检查点;训练损失(未画出)继续下降到约0.03,说明已经过拟合。
    逐类看,两个模型的强项是互补的。SegFormer在大面积连续表面上更占优:墙83.2对53.0,天花板79.9对65.2,楼板87.0对86.4,逐像素分类在这种区域天然有优势。带提示的SAM 2.1则在离散、不那么常见的构件上更强:柱子71.7对49.1,幕墙68.3对53.2,屋顶63.0对39.4,洞口58.7对38.3——一次点击就能干净地把一个物体圈出来,这是它的看家本领。窗、楼板、电梯这三类,两者基本相当。
    但这两组数字不能直接放一起比。协议差在两点:一是提示,SAM 2.1拿到的是从真实标注导出的提示,SegFormer完全自动、什么都不知道;二是聚合方式,SAM 2.1逐对象评分,SegFormer逐像素评分。所以论文把SegFormer定位成“全自动语义分割的参照物”,而不是严格意义上的对手。真正受控的对比,是同一套提示、同一套评分规则下的预训练SAM 2.1与微调SAM 2.1。看数字的时候,别把69.6%和64.8%直接当成一场胜负👍。

    龙迷三问

    下面是龙哥对于大家可能的一些问题的解答:
    这篇论文到底在解决什么问题?路易斯安那州立大学在HBD数据集上微调SAM 2.1,用于建筑构件二维分割,mIoU从49.9%提升至69.6%,再接入GARField完成三维层次化分组,为图像式建筑三维重建提供更可靠的掩码来源。
    这篇工作最值得看的点是什么?微调后SAM 2.1的mIoU从49.9%提升至69.6%(+19.8),mDice从59.3%提升至77.3%。11个类别中10个类别的IoU均有提升,其中Curtain Wall (+35.5)、Door (+34.7)、Ceiling (+20.6)、Roof (+20.2)提升最大。唯一未提升的是Opening (-5.7)。SegFormer达到64.8% mIoU和77.0% mDice,在大面积连续表面(Wall 83.
    这篇工作的边界或风险在哪里?优点:(1)首次将SAM 2.1领域适配到建筑构件分割任务,填补了视觉基础模型在建筑领域应用的空白;(2)微调方法简单有效,mIoU提升显著(+19.8);(3)将2D分割与3D分组(GARField)结合,形成了完整的从2D到3D的流程;(4)使用确定性中心点击提示策略,保证了评估的可重复性。缺点:(1)3D分组评估仅为定性,缺乏定量指标;(2)SegFormer对比协议不一致,不能严格头对头比较;(3)未与其他微调策略(如adapter-based)对比;(4)Opening类别性能下降未提出解决方案;(5)数据集规模有限(42栋建筑),泛化性有待验证。
    如果你还有哪些想要了解的,欢迎在评论区留言或者讨论~

    龙哥点评

    论文创新性分数:★★★★☆

    在HBD建筑构件数据集上微调SAM 2.1视觉基础模型,使其适配建筑领域,生成更准确的2D建筑构件掩码,并将微调后的掩码输入GARField进行3D层次化分组,从而提升基于图像的3D建筑重建中构件分割的一致性与准确性。

    实验合理度:★★★★☆

    每类IoU、Dice分数、mIoU、mDice

    学术研究价值:★★★★☆

    在HBD建筑构件数据集上微调SAM 2.1视觉基础模型,使其适配建筑领域,生成更准确的2D建筑构件掩码,并将微调后的掩码输入GARField进行3D层次化分组,从而提升基于图像的3D建筑重建中构件分割。

    稳定性:★★★☆☆

    现有材料未提供充分的极端条件、重复运行或扰动测试,稳定性暂按中性评价。

    适应性以及泛化能力:★★★☆☆

    现有材料未完整展示跨数据集、跨场景或分布外实验,泛化能力仍需进一步验证。

    硬件需求及成本:★★★☆☆

    SAM 2.1 Hiera-Large微调训练在4×NVIDIA A100 GPU上运行40个epoch(53,600步),耗时18小时5分钟。

    复现难度:★★★☆☆

    现有材料未确认完整代码、配置、数据处理脚本和权重是否齐备,复现难度暂按中性评价。

    产品化成熟度:★★★☆☆

    论文验证以研究实验为主,真实部署中的时延、成本、维护和异常场景仍需补充验证。

    可能的问题:(1)3D分组评估仅为定性,缺乏定量指标;

    主要参考文献

    [1] Ehsan Agha Ebrahimi, Yong-Cheol Lee, Keith G. Mills. Domain Adaptation of SAM 2.1 for Building-Component Segmentation in Image-Based 3D Reconstruction. arXiv:2610.12786, 2026.
    [2] Nikhila Ravi, et al. SAM 2: Segment Anything in Images and Videos. arXiv, 2024.
    [3] Alexander Kirillov, et al. Segment Anything. arXiv:2304.02643, 2023.
    [4] Chung Min Kim, Mingxuan Wu, Justin Kerr, et al. GARField: Group Anything with Radiance Fields. arXiv, 2024.
    [5] Enze Xie, Wenhai Wang, et al. SegFormer: Simple and Efficient Design for Semantic Segmentation with Transformers. NeurIPS, 2021.
    [6] Alexander Wong, et al. HBD: A Building Dataset for Image-Based 3D Reconstruction(论文引用的建筑构件数据集).
    原文链接:https://arxiv.org/pdf/2610.12786v1.pdf

    融会贯通

    结合PaperDaily已收录的论文范围看,建筑构件分割这个细分方向暂时没有足够多的同基准数值可直接横向对照——目前能拿到的只是这篇论文自己的mIoU 64.8%(SegFormer参考值)与64.8%的个别类别口径片段,库里的同基准数值覆盖不足以判断排名,所以不能把这篇文章的结果外推成“全面领先”。
    更该留意的其实是口径:微调SAM 2.1的69.6% mIoU,是在“真实标注导出的中心点击提示 + 逐对象评分 + 类别来自标注”这套协议下测出来的;SegFormer的64.8%则是全自动、逐像素评分。两组数字背后的任务难度不同,split、setting、baseline任何一处变化都可能让差距缩水甚至反转。真正可靠的结论只有一条:在完全相同的提示与评分规则下,微调把SAM 2.1的mIoU从49.9%抬到了69.6%。
    顺带一提,论文很坦然地披露了写作与代码环节使用了大语言模型(Anthropic的Claude)协助语言润色和评估代码的调试,但实验设计、参数选择与结果分析全部由作者完成。这种披露在今天的论文里越来越常见,也算是一个值得注意的细节。

    end
    墙面、窗户、门框,分不清就等于没重建 🤚 想和做图像分割、三维重建的朋友一起拆论文、聊落地?添加龙哥助手微信号加群:

    *本文仅代表个人理解及观点,不构成任何论文审核或者项目落地推荐意见,具体以相关组织评审结果为准。欢迎就论文内容交流探讨,理性发言哦~ 想了解更多原文细节的小伙伴,可以点击"阅读原文",查看更多原论文细节哦!       

    转发文章 微博 X LinkedIn Facebook

    读者留言

    可直接以游客身份留言,也可注册读者账号。所有留言均需管理员审核后公开。

    0 条已公开

    还没有公开留言,欢迎留下你的看法。

    游客可以直接留言;注册后可使用固定昵称和账号身份。 登录 免费注册
    同一访问者每天最多提交 5 条。
    龙哥读论文 · PaperDaily

    本文基于龙哥读论文 PaperDaily 数据库整理,结合论文原文与工程视角进行解读。

    LONGGE AI COMMUNITY

    把每天读到的论文,变成长期积累

    加入「龙哥读论文」知识星球,持续获取 AI 论文、资讯、开源项目、招聘与研究思路。

    加入龙哥读论文微信群:添加微信 kangjinlonghelper,备注“研究方向 + 地点 + 学校/公司 + 昵称”。

    龙哥读论文知识星球二维码 微信扫码加入知识星球