GeoLayout: Geometry Driven Room Layout Estimation Based on Depth Maps of Planes
1. 论文简介
论文题目:GeoLayout: Geometry Driven Room Layout Estimation Based on Depth Maps of Planes
Paper地址:paper
Paper简单评论:这篇论文核心是提出了将pixel-level surface参数化,还提出了一个新的数据集。
2. 摘要
房间布局估计的任务是确定墙壁地板、墙壁天花板和墙壁的边界。
目前解决这一问题的方法大多基于边缘/关键点检测或语义分割。
然而,这些方法对主要平面的几何结构和它们之间的交叉点关注有限,这对房间布局有重大影响。
在这项工作中,我们建议将几何推理结合到深度学习中进行布局估计。
我们的方法通过预测像素级表面参数来学习推断场景中主要平面的深度图,并且可以通过深度图的交集来生成布局。
此外,我们提出了一个新的数据集像素级深度标注的主导平面。
它比现有的数据集更大,包含长方体和非长方体房间。实验结果表明,我们的方法在2D和3D数据集上都产生了相当大的性能增益。
3. 引言
室内场景不同于自然场景,它通常包含地板、天花板和墙壁等主导平面。这些平面可能彼此正交。
因此,室内场景的空间结构往往具有一定的规律性,可以通过房间布局来表现。目前,房间布局估计的任务是确定墙壁-地板,墙壁-天花板和墙壁-墙壁的边界。
它可以为广泛的计算机视觉任务提供有用的先验,如场景重建[26,2,17]和增强现实[35,18,24]。
最近的方法取得了显著的性能提升,主要集中在学习深度网络的特征映射,如全卷积网络(FCNs)[33]。一个流行的想法是学习墙壁-地板,墙壁-天花板和墙壁的边缘[25,31,40]。
另一种是学习地板、天花板、前墙、左墙、右墙等语义表面标签[5,38]。此外,也有尝试推断布局角(关键点)的方法[20,43]。
但是,来自边缘/关键点检测或语义分割的自下而上信息可能无法反映房间布局的底层几何结构,例如正交平面。
从本质上讲,两个表面之间的理想边界出现是因为三维空间中的两个平面相交于一条直线。这促使我们关注室内场景中主要表面(如地板、天花板和墙壁)的几何模型。
基于这一关键见解,我们建议预测主导曲面的深度图,并通过深度图的交集生成布局,如图1所示。首先分析了三维平面在深度图中的投影原理,得到了不带显式相机intrinsic的平面深度参数化表示。
与一般的3D坐标系(例如,相机坐标系)相比,我们的参数化可以忽略相机固有参数的需要。
同时,该方法也适用于Hedau[13]、LSUN[39]等现有布局数据集中未提供固有参数的情况。然后我们训练一个深度网络来预测每个平面的像素级表面参数。
像素级参数进一步聚合为实例级参数以计算相应的深度图,并根据预测的深度图生成布局。我们的方法通常需要平面的深度图进行学习。
然而,通过我们的参数化和几何约束,模型也可以只用二维分割来训练。
然而,现有的布局估计数据集并不完全支持所提出的三维几何感知模型的学习,因为没有提供三维标签。所有的图像都是简单的长方体布局。
这些数据集的缺陷严重限制了布局估计算法的发展和实际应用。因此,我们生成了一个用于房间布局估计的新数据集,提供了主要平面的像素级深度注释。
采用人工标注与平面拟合相结合的方法半自动采集地面真相,数据集包含复杂非长方体布局的室内场景
这项工作的主要贡献总结如下:
(1)我们提出将几何推理纳入深度学习,以完成布局任务估计,它被重新表述为预测主导平面的深度图。
(2)我们证明了所提出的模型可以有效地训练来预测表面参数,并且还可以利用学习到的3D知识提高2D布局性能。
(3)提出了一种带三维标签的布局估计数据集。该数据集规模大,与以往数据集互补,有利于房间布局估计领域的研究
3 方法
在这项工作中,我们打算通过预测房间中主要平面(例如地板、墙壁、天花板)的深度图来解决布局估计问题。
然后通过相互相交的平面深度图的相交得到平面布局。在3.1节中,我们首先分析了平面的深度图,给出了(u, v, Z)坐标系下的一般方程,可用于参数化任意平面的深度图。
然后,我们使用深度网络学习优势平面的表面参数并生成布局估计。我们的方法如图所示。
3.1 Parameterizing Depth Maps of Planes
通过法线将3D Point投影到图像平面。最后得到深度图(depth map)Z。
在实际应用中,室内场景的全局尺度是模糊的,这使得这三个参数与尺度有关。因此,我们引入一个比例因子去归一化平面参数。
3.2 Learning Depth Maps of Planes
让网络估计平面参数。优化函数包括平面参数Loss,深度Loss。
3.3 Training on 2D Layout Datasets
Lyout估计。
3.4 Generating Layout Estimates
训练阶段完成后,采用后处理步骤获得参数化布局估计结果。由于判别损失(式(5)-(7)),预测的像素级表面参数可能是分段常数,并且可以很容易地分组以产生表示表面实例的分割图。
我们使用标准的均值偏移聚类,因为簇的数量不需要预先定义。聚类完成后,将放弃占总像素不足1%的小簇。接下来,我们提取每个聚类内参数的平均值以获得实例级参数。然后生成每个平面的深度图。
为了在相互相交的深度图中找到真正的布局,我们根据布局估计与聚类分割的一致性来评估布局估计。具体来说,我们对不同表面的深度图按照每个像素的升序进行排序,而指示表面实例的索引将构成多层分割图。
从第一层开始,我们将当前分割与聚类分割进行比较。
对于当前分割的每个区域,如果标签与聚类分割的优势标签,我们使用下一层的标签来替换不一致的标签。这个过程一直持续到当前分割与聚类分割一致为止。
然后得到预测的布局分割、深度图以及相应的表面参数。利用摄像机固有参数,还可以根据深度图生成代表布局的三维点云。最后,根据预测深度图的方程计算布局角,即布局角为三个曲面的交点,或两个曲面与图像边界的交点。
4. 新数据集Matterport3D-Layout Dataset
在本节中,我们将介绍我们的大规模数据集,用于我们的训练目的,名为Matterport3D-Layout。我们使用来自Matterport3D数据集[3]的图像,因为数据集包含来自复杂场景的真实照片,这提供了良好的布局多样性。
它还提供了可用于恢复三维布局地面真相的深度图像。我们对每个平面的可见区域进行标注,并使用式(1)对每个曲面进行参数拟合。然后用式(1)计算平面的深度图。
Annotation.我们首先过滤掉没有可识别的布局的图像。然后,我们使用LabelMe[32]在地板、天花板和墙壁的可见区域上为每张图像绘制2D多边形。
不同表面上的多边形具有不同的语义类别。我们也放弃了表面完全被室内物体遮挡的图像,因为表面的真实深度是不可用的。
Layout generation. 给定深度图和区域标注,提取每个标注区域的深度值和像素坐标,采用RANSAC算法[9]进行曲面拟合,得到实例级曲面参数。然后可以按照第3.4节中描述的类似方式生成布局
原始的Matterport3D数据集包含90个不同的建筑物,因此我们根据建筑物ID随机将数据集分为训练集、验证集和测试集。训练集包括64座建筑,共计4939张图像。验证集包括6栋建筑和456张图像。
测试集包括剩下的20座建筑,总共有1965张图像。所有图像的分辨率为1024×1280。数据集包含以下字段:
(1)彩色图像;(2)平面深度图;(3)布局二维分割;(4)包含室内物体的原始深度图;(5)可视区域标注;(6)摄像机的内禀矩阵;(7)各平面p, q, r的曲面参数;(8)布局角的坐标(u, v, Z);(9)原表面法线。
图4显示了我们数据集的一些例子。在我们的数据集之前,有两个基准布局数据集:Hedau[13]和LSUN[39]。表1汇总了现有数据集的统计数据。可以看出,所提出的数据集是最大的数据集,提供了最丰富的事实。
此外,所提出的数据集包含非长方体布局样本其他数据集。我们希望这个数据集能够造福社会,并推动室内布局估计和相关任务的研究。
5. 总结
提出了一种新的几何驱动室内布局估计方法。关键思想是学习平面表面的深度图,然后通过应用几何规则生成布局。我们证明了该模型可以有效地使用2D或3D地面事实进行训练。
该方法在2D和3D布局的基准数据集上都取得了最先进的性能。我们还提出了一个新的三维布局真实数据集,我们认为这对房间布局估计领域是有益的。
6. 结语
努力去爱周围的每一个人,付出,不一定有收获,但是不付出就一定没有收获! 给街头卖艺的人零钱,不和深夜还在摆摊的小贩讨价还价。愿我的博客对你有所帮助(*^▽^*)(*^▽^*)!
如果客官喜欢小生的园子,记得关注小生哟,小生会持续更新(#^.^#)(#^.^#)。
GeoLayout: Geometry Driven Room Layout Estimation Based on Depth Maps of Planes的更多相关文章
- 房屋布局分析《Physics Inspired Optimization on Semantic Transfer Features: An Alternative Method for Room Layout Estimation》
视觉算法在智能审核系统上的演进与实践 刘天悦 贝壳找房 / 资深工程师 https://static001.geekbang.org/con/56/pdf/1088777747/file/%E8%A7 ...
- Wideband Direction of Arrival Estimation Based on Multiple Virtual Extension Arrays
基于多重虚拟扩展阵列的宽带信号DOA估计[1]. 宽带DOA估计是阵列信号处理领域的一个重要研究方向.在DOAs估计的实际应用中,信号总是会被噪声破坏,在某些情况下,源信号的数量大于传感器的数量,因此 ...
- CSharpGL(14)用geometry shader渲染模型的法线(normal)
+BIT祝威+悄悄在此留下版了个权的信息说: CSharpGL(14)用geometry shader渲染模型的法线(normal) +BIT祝威+悄悄在此留下版了个权的信息说: 2016-08-13 ...
- 手势估计- Hand Pose Estimation
http://blog.csdn.net/myarrow/article/details/51933651 1. 目前进展 1.1 相关资料 1)HANDS CVPR 2016 2 ...
- 深入理解Auto Layout 第一弹
本文转载至 http://zhangbuhuai.com/2015/07/16/beginning-auto-layout-part-1/ By 张不坏 2015-07-16 更新日期:2015-07 ...
- Auto Layout压缩阻力及内容吸附讲解
Auto Layout压缩阻力及内容吸附讲解 本文为投稿文章,作者:梁炜V 在Auto Layout的使用中,有两个很重要的布局概念:Content Compression Resistance 和 ...
- 泡泡一分钟:Visual Odometry Using a Homography Formulation with Decoupled Rotation and Translation Estimation Using Minimal Solutions
张宁 Visual Odometry Using a Homography Formulation with Decoupled Rotation and Translation Estimation ...
- paper 154:姿态估计(Hand Pose Estimation)相关总结
Awesome Works !!!! Table of Contents Conference Papers 2017 ICCV 2017 CVPR 2017 Others 2016 ECCV 20 ...
- 文献阅读笔记——group sparsity and geometry constrained dictionary
周五实验室有同学报告了ICCV2013的一篇论文group sparsity and geometry constrained dictionary learning for action recog ...
- 泡泡一分钟:Towards real-time unsupervised monocular depth estimation on CPU
Towards real-time unsupervised monocular depth estimation on CPU Matteo Poggi , Filippo Aleotti , Fa ...
随机推荐
- P3402 可持久化并查集
P3402 通过主席树维护不同版本的并查集,注意要采用按秩合并的方式,路径压缩可能会爆. 1 #include <bits/stdc++.h> 2 using namespace std; ...
- 使用 Spring Security 手动验证用户
1.概述 在这篇快速文章中,我们将重点介绍如何在 Spring Security 和 Spring MVC 中手动验证用户的身份. 2.Spring Security 简单地说,Spring Secu ...
- 浅谈MySQL、Hadoop、BigTable、Clickhouse数据读写机制
个人理解,欢迎指正 数据库 引擎 写数据 读数据 补充 MySql InnoDB:支持事务,高速读写性能一般 Myisam:不支持事务,高速读写性能好 以InnoDB更新一条记录为例 1.B+Tree ...
- 手把手教你玩转 Gitea|使用 Helm 在 K3s 上安装 Gitea
前言 在前面的文章中,演示了如何用 Docker 镜像和 Windows 二进制包来安装运行 Gitea.今天是玩转 Gitea 系列的使用 Helm 在 K3s 上安装 Gitea. 关于 Gite ...
- 数据结构中的哈希表(java实现)利用哈希表实现学生信息的存储
哈希表 解释 哈希表是一种根据关键码去寻找值的数据映射结构,该结构通过把关键码映射的位置去寻找存放值的地方 内存结构分析图 1.定义一个类为结点,存储的信息 2.定义链表的相关操作 3.定义一个数组存 ...
- C语言爱心表白程序
#include <stdio.h> #include <math.h> #include <windows.h> #include <tchar.h> ...
- Debian玩红警2
Debian玩红警2 1. 安装wine sudo apt update sudo apt install wine wine --version wine-5.0.3 (Debian 5.0.3-3 ...
- SpringBoot简单快速入门操作
项目类分为: dao层 server层 controller层 Mapper → Server→ controller mapper层(必须要用interface创建) 创建后,首先要在方法前加@Ma ...
- Golang Gorm time 时间字段格式化模型类 重写
问题: 在使用GORM中 如果我们使用到了CreateAt 和UpdateAt 就会发现 这个时间的类型是time.Time 而其数据是 "2022-10-13T10:14:02.97352 ...
- Vue2基础知识学习
Vue2基础知识学习 01.初识 new Vue({ el: '#root', //用于指定当前Vue实例为哪个容器服务,值通常为css选择器符 data () { return { } } }); ...