大规模场景的实时三维重建与分割

 2022-05-16 08:05

论文总字数:34340字

摘 要

本文中,我们提出了一种实现大规模场景实时三维重建与语义分割的方法。已有的实时三维重建与分割方法通常采用同时定位与建图(SLAM)系统和二维语义分割卷积神经网络(CNN)结合的方法。其中,SLAM系统负责建图,语义分割网络则对RGB-D相机的每一帧做二维的语义分割,随后将二维语义信息整合到三维模型中去,生成三维语义模型。这种基于二维语义分割的方法通常有以下弊端:1. 语义信息局限于局部场景;2. 不能很好地利用场景的几何信息。

为了解决这些问题,我们将三维语义分割网络与SLAM系统结合。我们使用FlashFusion作为SLAM模块,使用现在顶尖的基于Submanifold Submanifold Convolution Network (SSCN)构建的UNet作为系统的语义分割模块。为了让系统实现实时运行,我们对SSCN做了大幅的性能优化:用GPU实现了哈希表和卷积规则表生成的并行化,并且加速了卷积运算CUDA核函数。同时,我们优化了SLAM系统的建图线程,实现整个系统的实时运行,语义地图的更新频率为2Hz。我们在ScanNet数据集上进行了训练和测试,与其他的语义SLAM系统对比,我们的语义地图准确率远高于现有的语义SLAM系统,并且帧率没有明显降低。

关键词:SLAM,语义分割,三维

Abstract

In this work, we present a new system for 3D real-time semantic mapping. Existing semantic mapping methods often suffer from problems such as poor global consistency and low semantic accuracy. Since they mostly use 2D semantic convolutional neural network(CNN) to extract semantic information, they are often restricted to local features and not aware of 3D geometry.

We address these problems by replacing 2D semantic CNN with 3D semantic CNN. We combined the state-of-the-art network Submanifold Sparse Convolution Networks (SSCN) with the most efficient CPU-only SLAM system FlashFusion. A lot of optimization has been done, such as GPU parallelization on rulebook generation, hashing and convolution. As a result, the system is able to run in real time, at a frame-rate of 2Hz. We tested our system on the ScanNet dataset. Compared with other semantic SLAM systems, our system achieves better accuracy and global consistency and the frame-rate is comparable.

KEY WORDS: SLAM, semantic segmentation, 3D

中英文名词对照表

英文名词

对应中文

Simultaneous localization and mapping(SLAM)

同时定位与建图

Convolutional Neural Network(CNN)

卷积神经网络

RGB-D

图像与深度

Structure from Motion (SfM)

从运动中恢复结构

Multi-view Stereo (MVS)

多视角双目

primitive-based

基于基元的

voxel

体素

Submanifold Sparse Convolution Networks(SSCN)

稀疏卷积神经网络

Truncated signed distance function (TSDF)

截断带符号距离函数

surfel

面元

batch normalization

批标准化

max pooling

最大值池化

residual block

残差模块

channel

网络特征通道

Sparse Convolution (SC)

稀疏卷积

Submanifold Sparse Convolution (SSC)

副流形稀疏卷积

feature

网络特征

active

激活的

CUDPP multivariable hash

CUDPP多值哈希表

Google sparse hash

Google稀疏哈希表

Cuckoo hashing

“杜鹃”哈希法

open addressing

开放寻址

backward

反向传播的

rulebook

规则表

Intersection over union(IoU)

交集与并集之比

epoch

(神经网络训练中的)一期

ground truth

(神经网络训练中的)标准结果

cross entropy

交叉熵

目 录

摘 要 I

Abstract I

中英文名词对照表 II

第一章 绪论 1

1.1 研究背景 1

1.2 相关工作 2

1.2.1 三维几何建模 2

1.2.2 三维语义分割 4

1.2.3 语义SLAM 6

1.3 研究内容和主要贡献点 6

1.4 论文组织结构 7

第二章 系统设计方案 8

2.1 SLAM模块 8

2.1.1 跟踪线程 8

2.1.2 优化线程 10

2.1.3 TSDF融合 10

2.1.4 建图线程 12

2.2 语义分割模块 13

2.2.1 3D U-Net 13

2.2.2 Submanifold Sparse Convolutional Networks 15

2.3 系统整合 16

第三章 性能优化 18

3.1 SSCN的实现方法 18

3.2 哈希表优化 19

3.2.1 使用GPU并行计算加速 19

3.2.2 哈希函数 20

3.3 卷积计算函数优化 22

3.4 卷积规则表优化 23

3.5 优化前后性能对比 24

第四章 实验与分析 25

4.1 代码实现 25

4.1.1 开发环境 25

4.1.2 项目结构和依赖关系 25

4.1.3 用C 实现UNet 25

4.2 网络的训练 26

4.2.1 数据集 26

4.2.2 训练步骤 26

4.2.3 超参数对比 27

4.2.4 与其他模型准确率对比 27

4.3 实时语义分割 28

4.3.1 数据集处理 28

4.3.2 性能分析 28

4.3.3 分割结果分析 28

4.3.4 缺点与不足 29

第五章 总结 31

参考文献 32

致 谢 34

绪论

研究背景

在三维计算机视觉领域,一个核心问题是:如何让计算机理解周围的环境?这个问题之所以重要,是因为很多应用都需要解决它。例如,自动驾驶汽车需要知道它周围的环境的信息,可能包括:周围有哪些车和行人、识别车道线并确认自己在哪个车道、识别各种交通标志等等。智能机器人也需要做类似的场景理解,它必须理解周围的环境,才能判别应该如何规划行走路线、避开行人以及根据指令抓取场景内的某个物体。

一般来说,三维场景理解的目标是,将计算机置于空间内的某个位置,计算机能够通过其传感器和算法捕捉到环境,并且能够得到以下信息:(1)环境的三维结构;(2)自身的位置和姿态,即位姿;(3)环境中有哪些物体,分别在什么位置。其中,(1)(2)两项属于几何信息,是对场景的纯几何刻画,而(3)属于语义信息,属于人类语境中的理解。

剩余内容已隐藏,请支付后下载全文,论文总字数:34340字

您需要先支付 80元 才能查看全部内容!立即支付

该课题毕业论文、开题报告、外文翻译、程序设计、图纸设计等资料可联系客服协助查找;