先定义一下"复杂房型":这里指6 个角及以上的非长方体房间------L 形、T 形、十字形、带凹角的房型。
一、一句话结论
**在复杂房型上,HorizonNet 全面领先,而且房间越复杂、领先越多。** 但 DuLa-Net 开创的"不预设房间角点数"这条思路,是它真正的历史贡献------后来的赢家都站在它肩上。
二、硬数据:两组同场竞技的数字
数据组 1:Realtor360(DuLa-Net 自己的主场)
这个数据集是 DuLa-Net 作者专门造的,含大量复杂房型。看看两位选手在别人主场的表现(3D IoU %):
| 房型 | DuLa-Net | HorizonNet | 差距 |
|---|---|---|---|
| 4 角(长方体) | 78.91 | 84.73 | −5.8 |
| 6 角 | 77.79 | 84.78 | −7.0 |
| 8 角 | 74.86 | 78.44 | −3.6 |
| 10 角以上 | 59.72 | 73.64 | −13.9 |
| 整体 | 77.20 | 83.66 | −6.5 |
关键观察 :DuLa-Net 自己造的复杂房型数据集上,HorizonNet 依然全面碾压,而且在最难的 10+ 角房型上领先近 14 个点。
数据组 2:MatterportLayout(IJCV 对比研究,统一了编码器后重测)
这是最公平的一次对比------两个方法都换成同样的 ResNet 编码器、同样的训练设置 :
| 房型 | 指标 | DuLa-Net v2 | HorizonNet |
|---|---|---|---|
| 4 角 | 3D IoU | 77.02 | 81.88 |
| 6 角 | 3D IoU | 78.79 | 82.26 |
| 8 角 | 3D IoU | 71.03 | 71.78 |
| 8 角 | 2D IoU | 74.00 | 73.91 ← DuLa-Net 唯一反超 |
| ≥10 角 | 3D IoU | 63.27 | 68.32 |
| 整体 | 3D IoU | 75.05 | 79.11 |
| 整体 | **RMSE(深度误差)** | 0.291 | 0.197 |
| 整体 | **δ₁(深度准确率)** | 0.818 | 0.929 |
三个必须读懂的细节:
- 8 角房型的 2D IoU,DuLa-Net 反超了(74.00 vs 73.91)。说明只看"平面轮廓"时,它的俯视直推在中等复杂度上仍有竞争力。
- 深度指标差距最悬殊 (δ₁ 0.818 vs 0.929)。IJCV 那篇论文专门强调:2D/3D IoU 看着差距不大,但深度指标一比就露馅了------DuLa-Net 倾向于把 L 形房间的凹角"抹平",IoU 掉得不多,实际几何却错了不少。
- DuLa-Net v2 在 6 角房型上(78.79)远超 LayoutNet v2(72.33)。这证明它"不预设角点数"的设计确实对症。
三、根本差异:两种不同的"世界观"
这是理解两者优劣的钥匙。
| DuLa-Net | HorizonNet | |
|---|---|---|
| 怎么对付遮挡 | 物理上绕开:抬头看天花板,那里没家具 | 算法上推断:LSTM 看完整一圈,脑补被挡的角 |
| 答案长什么样 | 一张 2D 俯视平面图 | 三条 1D 曲线(每列的上下边界 + 墙角概率) |
| 信息如何整合 | 空间上拼图(三张概率图加权平均) | 序列上推理(双向 LSTM 前后各扫一遍) |
| 对房间形状的假设 | 不预设角点数 ✅ | 不预设角点数 ✅ |
| 垂直方向假设 | 整间房一个高度 H | 逐列预测,但后处理取平均(也是平顶) |
两种"对付遮挡"的哲学,决定了胜负
这是最本质的一点:
- DuLa-Net 的思路是"躲" ------地面有家具?那我看天花板,天花板总是空的。这个想法很聪明,但有个致命漏洞:天花板视图只能看到天花板附近,看不到墙脚。沙发挡住的墙脚,天花板视角一样看不见。而且天花板本身可能有吊灯、吊顶。
- HorizonNet 的思路是"推"------这一列被沙发挡住了?没关系,LSTM 已经看过整圈墙的走势,知道对面那面墙在哪、房间大概多宽,能反推出这里应该有个角。
**为什么"推"比"躲"强?** 因为角点越多,能互相印证的线索就越多。10 个角的房间,就算挡住 2 个,剩下 8 个构成的几何约束已经足够推出答案。而"躲"的策略不随角点数增加而变强------天花板永远只有那一片。
这解释了数据里最关键的那一行:10+ 角房型,HorizonNet 领先 13.9 个点。
四、DuLa-Net 的优点(在复杂房型上)
✅ 1. 开创了"不预设角点数"------这是它最大的功劳
LayoutNet 默认"房间是长方体",L 形房间直接崩到 22.35(10+ 角)。DuLa-Net 直接在 2D 上画平面图,几个角都行,一下把 10+ 角提升到 59.72。这是从"完全不会"到"会了"的质变。
✅ 2. 天花板视角确实干净
往上看到的轮廓是个闭合图形,提取起来比从全景图里找边界容易得多。这个洞察本身非常漂亮,后来 AtlantaNet 也继承了这个思路。
✅ 3. 后处理极快,且不依赖慢速优化
平面图拟合只要 21.71 毫秒,对比 LayoutNet 的 30.5 秒 3D 优化,快了上千倍。
✅ 4. 平面图是最"好用"的输出格式
直接给出俯视轮廓,房产、装修、CAD 这类下游应用拿来就能用,不用再转换。
✅ 5. 中等复杂度(8 角)的平面轮廓仍有竞争力
前面提到,8 角房型的 2D IoU 它略胜 HorizonNet。
五、DuLa-Net 的缺点(在复杂房型上)
❌ 1. E2P 投影的 FoV 是硬伤
天花板视图只有 160° 视场角 ,输出到 512×512。房间角越多,越容易有角落落在视野边缘------那里透视变形最严重 ,或者干脆看不见。而且 IJCV 对比研究专门点名:DuLa-Net 对这个 FoV 参数极其敏感,设多少直接影响成绩。这是个没有理论最优解的"玄学超参"。
❌ 2. 平面图拟合的几何近似会累积误差
它的后处理是:找最大连通域 → 取外接矩形 → 切网格 → 面积比 >0.5 的格子保留。
问题在于:一个 L 形房间被塞进"外接矩形"再切网格近似,每多一个凹角,近似误差就多一分。角越多,这个"矩形+网格"的近似越粗糙。
❌ 3. 整间房只预测一个高度 H
复杂房型常伴随局部吊顶、错层、梁。DuLa-Net 只能给一个全局高度,全部抹平。
❌ 4. 天花板视角救不了墙脚
沙发、柜子挡的是墙脚线(地板-墙边界),而天花板视图主要看天花板附近。M_FC 图里的地板部分照样被挡。
❌ 5. 编码器太浅
原始版用 ResNet-18(DuLa-Net v2 换成更深的 ResNet 才明显提升)。复杂房型需要更强的特征提取能力。
❌ 6. 缺物体语义
论文自己放了两张失败图:被镜子反射 骗出一个不存在的房间;被冰箱挡住边界。它分不清"这是镜子"还是"这是墙"。
六、HorizonNet 的优点(在复杂房型上)
✅ 1. LSTM 全局推理------角越多越强
这是它赢的核心。双向 LSTM 把 1024 列当成一句话正读倒读,每一列都知道"全局发生了什么"。被家具挡住的墙角能被脑补出来。论文明确说:后处理对"即使墙角被遮挡的复杂房间"也有效。
✅ 2. 1D 表示没有"零背景"问题
二维边界图里 95% 的值是 0,网络容易学成"一律答没有"。HorizonNet 的 yᶜ/yᶠ 是实数回归,每一列都有真实答案;墙角 yʷ 用 0.96^距离 做成"山包"而非孤立的点。有效信号浓度提高几百倍------这对角点多的复杂房型尤其关键,因为要检测的"山头"更多。
✅ 3. 不受外接矩形/网格的几何近似限制
每列独立预测边界,是一套"连续"的表示,不像网格投票那样有离散化误差。
✅ 4. 深度指标优势巨大
RMSE 0.197 vs 0.291,δ₁ 0.929 vs 0.818。说明它能保住凹角这类局部细节,而不是把复杂形状抹平成方盒子。
✅ 5. 参数更少、精度更高
一维输出只要 25M 参数(对比密集二维的 67M),3D IoU 还从 77.87 涨到 80.65。
✅ 6. 后处理有 PCA 自动纠偏兜底
万一预处理对齐没做好,它会用主成分分析找出墙的主方向,自动把场景转回来。DuLa-Net 没有这层保护。
✅ 7. Pano Stretch 增强特别对症
把房间在 3D 里真的拉长/压扁,直接造出"不同长宽比的复杂房型"训练样本。在一般房型上,一个增强就把 3D IoU 从 77.4 拉到 82.5(+5.1)。
七、HorizonNet 的缺点(在复杂房型上)
❌ 1. 每列只能有一个天花板/地板边界值
1D 表示的天生限制:垂直方向只能表达一层。遇到错层、阁楼、带夹层 Loft 的房间,它表达不了。这点上它和 DuLa-Net 其实是半斤八两。
❌ 2. 后处理把层高"平均"了
虽然逐列预测了 yᶜ/yᶠ,但后处理是1024 列投票取平均作为最终层高。这意味着它最终也假设了平顶,局部高度变化会被平均掉。
❌ 3. 相机高度是硬假设(1.6 米)
单张图测不出真实尺度,全靠这个假设。真实相机高度不同会带来尺度误差。
❌ 4. LSTM 让它变慢
带 RNN 后从 119 FPS 掉到 20 FPS。虽然够用,但 LSTM 的串行计算是瓶颈。
❌ 5. 极重度遮挡照样失手
整面墙被挡完时,全局推断也救不回来。不过它的"救回率"比 DuLa-Net 高得多。
❌ 6. 依然受曼哈顿假设约束
斜墙、圆弧墙、斜天花板------两位选手都搞不定。这是这一代方法的共同天花板,后来 AtlantaNet 才专门来破这个限制。
八、该怎么选?
| 你的场景 | 推荐 | 理由 |
|---|---|---|
| 追求复杂房型最高精度 | HorizonNet | 10+ 角领先近 14 点,深度指标优势巨大 |
| 需要保住凹角等局部细节 | HorizonNet | δ₁ 0.929 vs 0.818,差距明显 |
| 房间遮挡严重(家具多) | HorizonNet | LSTM 能脑补,天花板视角躲不掉墙脚遮挡 |
| 只需要俯视平面图,不关心高度 | 两者都行 | 8 角房型 DuLa-Net 的 2D IoU 甚至略胜 |
| 下游要直接对接 CAD / 房产展示 | DuLa-Net | 平面图输出最直观,拿来即用 |
| 算力紧张、要极致轻量 | DuLa-Net | 无 RNN 版本更快,参数更少(但精度低) |
| 想在此基础上继续研究 | HorizonNet | 它才是后来的主流地基(HoHoNet、LED²-Net、LGT-Net 都继承它) |
九、总结对照表
| 维度 | DuLa-Net | HorizonNet |
|---|---|---|
| 核心表示 | 2D 俯视平面图 | 1D 三条边界曲线 |
| 对付遮挡 | 躲(看天花板) | 推(LSTM 全局推理) |
| 10+ 角 3D IoU | 59.72 | 73.64 |
| 深度准确率 δ₁ | 0.818 | 0.929 |
| 后处理速度 | 21.71 ms | 12 ms |
| 编码器 | ResNet-18(浅) | ResNet-50(深) |
| 最大短板 | FoV 敏感 + 网格近似误差 + 单一高度 | 每列单一边界 + 相机高度硬假设 |
| 历史定位 | 打开"复杂房型"这扇门的先驱 | 成为后续主流方法的地基 |
最后一句总结:
DuLa-Net 解决了"能不能做 "的问题(不预设角点数,让复杂房型从 22 分涨到 60 分),HorizonNet 解决了"能做多好"的问题(用全局推理把 60 分推到 74 分)。两者真正的分水岭在于:一个靠"换个视角躲开遮挡",一个靠"看清全局推断遮挡"------而在房间越复杂、可互证的线索越多时,后者的优势会被放大得越明显。