论文阅读:Indoor Scene Layout Estimation from a Single Image

项目地址:https://github.com/leVirve/lsun-room/tree/master
发表时间:2018 icpr
在这里插入图片描述
场景理解,在现实交互的众多方面中,因其在增强现实(AR)等应用中的相关性而得到广泛关注。场景理解可以分为几个子任务(即布局估计、场景分类、显著性预测等)。在本文中,我们提出了一种基于深度学习的方法来实时估计一个给定的室内图像的布局。我们的方法包括一个深度全卷积网络,一种新的布局-退化增强方法,以及一种新的训练pipeline,它将自适应边缘惩罚和平滑项集成到训练过程中。与以前基于深度学习的方法(例如,提案排序和优化)不同,我们的方法在不需要部署后处理技术的情况下,激发了网络的泛化能力和估计布局边缘的平滑性。此外,该方法是高效的,因为它只需要模型一次来呈现精确的布局。我们在LSUN房间布局和Hedau数据集上评估了我们的方法,并获得了与最先进的方法相比较的估计结果。

请添加图片描述
这是一篇比较早的论文,偶然发现。其亮点有二:1、将室内布局估计任务转换为语义分割任务,使用像素交叉熵+平滑边缘loss进行训练。2、构建布局退化模式,见2.3,实现了数据增强过程中的布局属性的变化. 该论文已经是6年前的,后续在该领域当有更优质的算法。实在不行,换个模型也有巨大的效果提升。

该论文主要是带来启发:1、语义分割模型还能这样子使用,作用于室内布局估计;2、任务转换的启发,将室内布局任务转换为语义分割,那室内布局任务也可以转换为关键点检测等任务;3、特定任务场景下的数据增强模式存在label的退化行为,数据增强不可滥用。

1. INTRODUCTION

最近对现实交互的需求源于相关应用,将研究人员对场景理解的识别提高到了新的高度。通过使用算法识别场景结构,我们可以很容易地与环境进行交互,并为智能家居、增强现实、机器人导航等任务提供关键信息。虽然对三维场景理解的研究可以追溯到20世纪60年代的简单块世界假设[1],以当地证据重建全球室内布局的愿景,它已成为人工智能和深度学习时代最关键的研究领域之一。

在早期的计算机视觉方法中,已经提出了多种室内场景估计方法。线段提取是布局估计的基础,[1]、[2]是通过外科医生[3]、边缘特征提取[4]、超像素[5]和线段[6]等体积形式实现的。然而,这些方法大多在房间结构被物体遮挡的情况下失败。由于很难仅用局部证据来估计布局,一些研究了通过超体积推理[7],[8],[9]进行推断估计。后来,随着机器学习的兴起,结构化学习[10]被开发出来用于布局估计,其通过生成具有不完整的低层次局部特征[7]、[11]、[8]的假设来建模环境结构。

上述传统的结构推理方法严重依赖于手工特征提取,并是在许多假设下发展起来的。与之前的工作一样,我们在曼哈顿世界假设[12]下发展了我们的方法,其中我们考虑一个房间由正交平面组成,并以房间布局作为长方体结构。从不同的角度来看,布局估计也可以看作是长方体每个表面上的区域分割问题。

近年来,深度学习方法在语义分割等一些计算机视觉任务中的表现都优于传统方法。Long等人[13]提出了第一个用于对象语义分割的端到端监督FCN(全卷积网络)模型,并达到了最先进的性能。因此,一些人采用了将布局估计视为关键线检测的任务,如[11]中的信息边缘估计和[14]中的粗布局预测。Mallya等人,[11]是第一个使用分割网络,通过检测信息边缘的布局估计任务。Dasgupta等人[15],2015年LSUN房间布局挑战的赢家,采用两阶段框架处理任务: 1)用深度神经网络分割输入图像的平面和壁,2)用消失点估计优化输出。达斯库普塔等的结果,al启发几个后续工作[16],[17]遵循两阶段管道,由FCN-like网络语义分割和布局优化技术(例如,布局假设建议排序[11],[15],[14],[16],和特殊优化模块[17])后处理。

这并不是要否认上述方法所取得的惊人结果,然而,后处理技术的额外时间消耗使这些方法不适合在时间效率发挥关键作用的应用程序。因此,我们提出了一个单阶段管道来解决基于时间消耗的问题。本文的主要贡献如下:

  • 我们提出了一个单级管道来训练一个端到端神经网络来进行室内布局估计。
  • 我们提出了一种新的布局结构退化方法来扩充数据,并补偿现有数据集中的不平衡分布问题。
  • 我们的方法可以推断一个网络推断空间布局,并实时提供最先进的结果。

2. PROPOSED APPROACH

2.1 Overview

在本节中,我们首先提供了网络设计的详细描述和定制定制的训练准则,其中边缘/表面信息被集成在密集的像素级预测过程中。第二部分将介绍另一种旨在缓解数据不平衡问题的额外训练策略(即布局结构退化)。

2.2. Planar Semantic Segmentation

在曼哈顿世界假设[12]下,我们可以考虑每个场景都是由多个平面组成的,因此在不同的视角下捕获的布局类型有限。我们将这些布局称为[15]中描述的平面语义表示,这些平面被标记为前墙、右墙、左墙、天花板和地板。因此,我们可以将空间布局估计问题建模为表面标记或平面语义分割。
在这里插入图片描述

我们的模型设计是受到最近的FCN布局估计工作的启发。Ren等人[14]使用原始FCN的类似配置,VGG-16作为基础网络,预测粗布局和语义表面;[15]采用扩展卷积FCN的CRF细化,[17]采用ResNet101的扩展卷积网络,在大型数据集上进行语义分割,然后进行微调,转移语义特征进行布局估计,以获得更好的结果。

因此,我们选择了更深的网络,即普通的ResNet101作为我们的特征提取器,并采用DeLay等人[15]提出的布局表示,其中布局估计可以视为一个五类平面语义分割问题。我们的网络的完整视图如图2所示。我们将最大池化替换原始ResNet101中的最后一个平均池化层,用1×1卷积层替换全连接层,并附加三个转置卷积层,通过跳过连接对特征图进行上采样。为了使特征映射的维度保持一致,在转发到上样本模块之前插入了额外的卷积层。此外,对于网络中的主干,在转换分类器块之前有两个额外的辍学层和批处理范数层,以防止对该特定任务的过拟合。
在这里插入图片描述

2.3. Layout Structure Degeneration

我们主要在LSUN房间布局数据集上训练和评估我们的方法。尽管我们的模型的性能可以以9.75%的错误率与几种现有的方法竞争(表一中我们的条目)。现有数据集中的房间类型分布(图4,以绿色条和表二的第三列)非常不平衡,我们从结果中观察到房间类型包含较少的训练图像会导致更高的错误率,特别是对于由较少的表面组成的房间类型(表I)。换句话说,这意味着模型不能很好地处理这些罕见的情况,而最常见的解决方案是在训练阶段扩充原始数据集。但是,一般的随机裁剪和随机旋转等增强技术并不适用于我们想要保留曲面语义意义的情况,裁剪可能会破坏场景的一侧,破坏左墙、前墙、右墙之间的语义关系。因此,我们提出了布局结构的退化来产生和补偿不同房间类型的不平衡分布。
在这里插入图片描述
在这里插入图片描述

我们观察到,具有更多表面的房间类型,较高程度的表面,可以通过适当的变换退化为较低程度的表面。以LSUN房间布局中的0型房间为例,去掉天花板退化为1型,拆除地板退化为2型,拆除左、右墙退化为5型(需要重新标记保留左右语义)。因此,我们可以在LSUN房间布局中建立11种房间类型之间的关系,如图3所示的DAG(有向无环图),所有的非叶节点都退化为较低程度的表面。
在这里插入图片描述
通过深度优先搜索,我们可以枚举退化路径,从而将特定房间类型的图像增强到其他类型中,以弥补某些类型的样本不足。在那些包含较少图像的房间类型上应用布局退化,如类型2、类型3、类型7和类型8,可以使每种类型的分布更加平衡。在图4中,黄色条意味着新生成的数据的数量只有一步退化节点和红色的意味着更激进的退化与更多的步骤,这意味着将会有更多的数据类型由低程度的表面有更多的退化步骤。

我们提出的增强策略可以有效地通过更复杂的变换,扩展现有数据集的场景变化,从而有效地提高模型的性能和泛化能力。此外,它可以成功地将错误率从9.75%降低到6.25%(表二中我们的条目),通过在训练中使用两次或第四次额外的增强数据样本(分别为图4中的黄色条和红色条),可以与最先进的方法竞争。与在以前的方法中对几十次训练数据进行随机增强相比,我们可以在训练中使用更少的数据获得更好的性能。

2.4 Layout Criterion

语义分割任务是一个像素级分类问题,其原始目标函数是每个像素上的交叉熵损失Lseg。从平面语义分割的结果中,我们发现它在平面中心之外经常发生扭曲或撕裂,也有[15]中提到的“波浪曲线”(而不是直线)。图6 (a)描述了一个远离二维图像上的投影的示例。因此,我们引入了自适应边惩罚和平滑项来缓解这些伪影。通过这些定制的准则,我们可以在边缘上强制执行更光滑、更直的布局预测结果,从而得到更好的定性布局估计。
在这里插入图片描述

Smoothness Term: 将地面真实标签与分割布局之间的像素级L2距离lplesp最小,以增强各平面内的一致性,并对预测施加平滑约束。
Adaptive Edge Penalty: 边缘的分布往往是扭曲的,不够直的布局线索。因此,我们计算了预测布局的边缘图,并使用二值交叉熵损失的边缘来最小化与地面真相的差异。此外,该标准是自适应的,在开始时放松,随着训练迭代的增加更严格(图5)。采用这种自适应策略,计算结果的收敛性优于固定宽度的边缘约束。
在这里插入图片描述
训练深度神经网络模型的总体损失函数为:
在这里插入图片描述
其中M表示网络的输出分块图和E表示边缘图,通过计算梯度M∗生成预测的边缘图,表示最终分段布局预测,和较低的注释gt和pred表示地面真相和预测输出,。

图6 (b)中的结果显示了应用这两个约束条件的视觉效果。虽然没有太多的改进定量措施(降低错误率性能在约1%),整体可视化(见图7)表明约束可以有效地平滑和抑制噪声和人工预测混乱场景的表面,以及理顺扭曲的轮廓布局。
在这里插入图片描述

3、EXPERIMENTAL RESULTS

对于平面语义分割的评估,我们使用LSUN房间布局估计数据集,该数据集包含4000张图像用于训练,394张图像用于验证,1000张图像用于测试。在训练过程中,我们应用随机的颜色抖动,如轻微改变输入图像的亮度和对比度,以增加场景的多样性。除了布局退化增强外,我们还进一步引入了语义增强(通过交换左右两侧的语义标签),以获得更有效的增强。

由于测试集没有公开的地面真实标签,我们使用LSUN Room布局官方工具包在验证集上评估我们的方法,就像在之前的工作[14]中那样。首先,我们想证明我们所提出的标准项的效果。在边缘惩罚和附加的平滑项的监督下,预测变得更平滑,减轻了伪影,如图6 (b).所示图7描述了在训练准则中添加附加的平滑项和自适应边缘约束后,验证集中的一些布局估计结果。

我们进一步证明了改进的模型在提出的布局退化增强策略的结果。图8是在我们的完整策略下的视觉输出,它们都有非常清晰但很直的边缘,并且在每个预测的表面上都有很强的一致性。我们的方法的准确性与在LSUN挑战的官方学习板上表现最好的方法相当,并达到了6.25%的像素级错误率。
在这里插入图片描述

除了LSUN Room布局数据集外,我们还通过直接应用于Hedau数据集的测试集来评估我们的模型的泛化能力,而不使用其训练数据进行微调。从精度和可视化结果的表现,我们可以观察到,我们的模型可以应用于不同的室内数据集,即使无需再训练。图9描述了Hedau测试数据集中高质量布局估计结果的一些示例,表IV显示了我们的模型的准确性几乎可以达到最先进的结果。
在这里插入图片描述
在这里插入图片描述

我们用PyTorch实现了我们的方法,并在使用单个NVIDIA GeForce 1080 GPU和Inteli7-7700K4.20 GHz CPU的机器上执行了所有的实验。对于时间效率的分析,表三显示了退出方法的网络转发和后处理时间的消耗时间。因为我们找不到这些论文的任何发布的完整实现,我们列出了他们论文的官方报告记录或他们发布的演示视频的信息,作为后处理列的统计。为了使网络转发列更加耗时,使用Caffe实现了几种方法,并发布了这些网络配置文件,所以我们可以用Caffe官方分析工具进行测量,并在我们自己的机器上进行公平竞争的评估。
在这里插入图片描述
因此,我们提出了一个单一的网络来进行布局估计,并且该模型可以给出许多令人印象深刻的视觉结果。此外,布局结构退化可以有效缓解数据不平衡问题,进一步提高布局估计精度。此外,我们的端到端网络方法可以直接预测房间的布局,而无需进行任何后处理,因此它可以有效地实时预测来自图像的布局。

4、CONCLUSION

我们提出了一种端到端深度神经网络模型,该模型可以通过加强对边缘信息的平滑性约束和整体平滑性来估计房间的布局。同时,我们还引入了一种新的增强方法来进一步提高模型的布局估计精度和泛化能力。我们的实时方法可以在不使用任何后处理的情况下达到最先进的水平,我们还可以将布局估计模型移植到一个移动设备上,从现实世界中捕获时间图像。然而,我们发现布局估计结果的时间不一致性是一个需要解决的问题,因为许多现实世界的应用程序需要对视频进行稳健的时间布局估计。因此,我们未来的工作将集中于提高视频布局估计的鲁棒性。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/695524.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Makefile:从零开始入门Makefile

目录 1.前言 2.Makefile的简单介绍 3.Makefile中的指令规则 4.Makefile的执行流程 5.Makefile中的变量类型 6.Makefile中的模式匹配 7.Makefile中的函数 8.Makefile补充知识 前言 在Linux中编译CPP文件,我们能够使用GCC命令进行编译,但当项目文件多且繁杂…

如何利用pandas解析html的表格数据

如何利用pandas解析html的表格数据 我们在编写爬虫的过程中,经常使用的就是parsel、bs4、pyquery等解析库。在博主的工作中经常的需要解析表格形式的html页面,常规的写法是,解析table表格th作为表头,解析td标签作为表格的行数据 …

网站不收录的原因

随着互联网的发展,越来越多的网站被创建和更新,然而,并不是所有的网站都能被搜索引擎收录。有时候,这些网站会因为各种原因而被搜索引擎排除在搜索结果之外。下面我们来探讨一下网站不收录的原因。 首先,网站不收录可能…

贪心算法学习三

例题一 解法(贪⼼): 贪⼼策略: ⽤尽可能多的字符去构造回⽂串: a. 如果字符出现偶数个,那么全部都可以⽤来构造回⽂串; b. 如果字符出现奇数个,减去⼀个之后,剩下的…

12.【Orangepi Zero2】基于orangepi_Zero_2 Linux的智能家居项目

基于orangPi Zero 2的智能家居项目 需求及项目准备 语音接入控制各类家电,如客厅灯、卧室灯、风扇回顾二阶段的Socket编程,实现Sockect发送指令远程控制各类家电烟雾警报监测, 实时检查是否存在煤气泄漏或者火灾警情,当存在警情时…

Robust Tiny Object Detection in Aerial Images amidst Label Noise

文章目录 AbstractIntroductionRelated WorkMethodsClass-aware Label CorrectionUpdateFilteringTrend-guided Learning StrategyTrend-guided Label ReweightingRecurrent Box RegenerationExperimentpaper Abstract 精确检测遥感图像中的小目标非常困难,因为这类目标视觉信…

关于目前ggrcs包的报错解决方案

目前有不少粉丝私信我说使用ggrcs包出现如下错误 我查看了一下,目前报错来源于新版本后的RMS包,主要是预测函数的报错,这个只能等R包作者来修复这个错误。目前需要急用的话,我提供了一个方案,请看下面视频操作 关于目前…

外部排序快速入门详解:基本原理,败者树,置换-选择排序,最佳归并树

文章目录 外部排序1.最基本的外部排序原理2.外部排序的优化2.1 败者树优化方法2.2 置换-选择排序优化方法2.3 最佳归并树 外部排序 为什么要学习外部排序? 答: 在处理数据的过程中,我们需要把磁盘(外存)中存储的数据拿到内存中处理…

通过 Python+Nacos实现微服务,细解微服务架构

shigen坚持更新文章的博客写手,擅长Java、python、vue、shell等编程语言和各种应用程序、脚本的开发。记录成长,分享认知,留住感动。 个人IP:shigen 背景 一直以来的想法比较多,然后就用Python编写各种代码脚本。很多…

在 Ubuntu 中安装 Docker

在 Ubuntu 中安装 Docker 首先,更新你的 Ubuntu 系统。 1、更新 Ubuntu 打开终端,依次运行下列命令: sudo apt update sudo apt upgrade sudo apt full-upgrade 2、添加 Docker 库 首先,安装必要的证书并允许 apt 包管理器…

AI数据分析:根据Excel表格数据绘制柱形图

工作任务:将Excel文件中2013年至2019年间线上图书的销售额,以条形图的形式呈现,每个条形的高度代表相应年份的销售额,同时在每个条形上方标注具体的销售额数值 在deepseek中输入提示词: 你是一个Python编程专家&#…

XMind v24.04.1 全功能VIP版(思维升级,效率飞跃)

软件介绍 XMind 是一款功能丰富的思维导图和创新构思工具,可在多个平台助力高效思考。它涵盖了从灵感触发、结构构建到演示展示的完整思维过程,有效提升创建思维导图的效率。这款工具适用于记录灵感、创新思维、问题解决和效率提升等多元场景&#xff0…

GEE训练教程——如何确定几何形状的中心点坐标和相交的坐标

简介 在GEE中,可以使用.geometry()方法来获取几何形状的中心点坐标和相交的坐标。 首先,使用.geometry()方法获取几何形状的几何信息,然后使用.centroid()方法获取几何形状的中心点坐标。示例代码如下: // 获取几何形状的中心点…

Golang | Leetcode Golang题解之第132题分割回文串II

题目&#xff1a; 题解&#xff1a; func minCut(s string) int {n : len(s)g : make([][]bool, n)for i : range g {g[i] make([]bool, n)for j : range g[i] {g[i][j] true}}for i : n - 1; i > 0; i-- {for j : i 1; j < n; j {g[i][j] s[i] s[j] && g[…

【Linux文件篇】系统文件、文件描述符与重定向的实用指南

W...Y的主页 &#x1f60a; 代码仓库分享&#x1f495; 前言&#xff1a;相信大家对文件都不会太陌生、也不会太熟悉。在没有学习Linux操作系统时&#xff0c;我们在学习C或C时都学过如何去创建、打开、读写等待文件的操作&#xff0c;知道一些语言级别的一些接口与函数。但…

【C++题解】1389 - 数据分析

问题&#xff1a;1389 - 数据分析 类型&#xff1a;简单循环 题目描述&#xff1a; 该方法的操作方式为&#xff0c;如果要传递 2 个数字信息给友军&#xff0c;会直接传递给友军一个整数 n&#xff08;n 是一个 10 位以内的整数&#xff09;&#xff0c;该整数的长度代表要传…

Python私教张大鹏 Vue3整合AntDesignVue之Breadcrumb 面包屑

显示当前页面在系统层级结构中的位置&#xff0c;并能向上返回。 何时使用 当系统拥有超过两级以上的层级结构时&#xff1b; 当需要告知用户『你在哪里』时&#xff1b; 当需要向上导航的功能时。 案例&#xff1a;面包屑导航基本使用 核心代码&#xff1a; <template…

[spring] Spring MVC Thymeleaf(上)

[spring] Spring MVC & Thymeleaf&#xff08;上&#xff09; 本章内容主要过一下简单的 Spring MVC 的案例 简单来说&#xff0c;spring mvc 就是比较传统的网页开发流程&#xff0c;目前 boot 是可以比较轻松的配置 thymeleaf——毕竟 spring boot 内置对 thymeleaf 的…

快速开始一个go程序(极简-快速入门)

一、 实验介绍 1.1 实验简介 为了能更高效地使用语言进行编码&#xff0c;Go 语言有自己的哲学和编程习惯。Go 语言的设计者们从编程效率出发设计了这门语言&#xff0c;但又不会丢掉访问底层程序结构的能力。设计者们通过一组最少的关键字、内置的方法和语法&#xff0c;最终…

ChatGPT对话基本原则和玩法

一、使用三个准备 1.1 认知上 超级学霸&#xff0c;几乎所有的工作/生活场景&#xff0c;都可以找它帮忙 ChatGPT作为一个人工智能语言模型&#xff0c;具有强大的知识储备和处理能力。这意味着在许多工作和生活场景中&#xff0c;你都可以向它请教问题或寻求帮助。无论是科…