- 题目:SemanticFusion: Dense 3D Semantic Mapping with Convolutional Neural Networks
- 出处:McCormac J, Handa A, Davison A, et al. Semanticfusion: Dense 3d semantic mapping with convolutional neural networks[C]//2017 IEEE International Conference on Robotics and automation (ICRA). IEEE, 2017: 4628-4635.
- 来自英国帝国理工学院Davison实验室的论文。为机器人顶会ICRA2017接收文章。
摘要
整体框架的组成为三个部分:
- A real-time SLAM system ElasticFusion
- A Convolutional Neural Network
- A Bayesian update scheme
其中过程如下:
CNN接收2D图像并且返回每个像素的分类概率分布,然后贝叶斯更新模型将跟踪每个曲面的分类概率分布,然后使用SLAM系统提供的数据关联来基于CNN的预测更新这些概率。(SLAM系统提供了什么样的数据关联?)最后,我们使用CRF regularisation框架来使用地图自身的尺度信息来改善语义预测。
接下来将详细介绍。
A. SLAM Mapping选择ElasticFusion作为SLAM系统。对于每一帧k,ElasticFusion通过结合ICP和RGB的匹配来跟踪相机姿态(实际上ICP匹配即考虑位置信息,RGB匹配考虑外表相似信息。),来得到新的姿态。使用这个相机姿态,在地图中加入新的点元(surfels),同时更新已存在点元的位置、法向量和颜色信息。
在该过程中同步运行回环检测,并且基于结果优化整个地图。
[接下来作者强调了一下用ElasticFusion中储存三维信息方式的优越性] :
- 基于变形图和点元的ElasticFusion表现方式让其自然而然地适应了这个任务,允许概率分布能够与点元一起在回环中”携带(carried along)”,同时融合了新的深度读数来更新点元的深度和法向量信息。这个过程不需要破坏点元或者其基于的概率分布。
接下来介绍该系统中应用的CNN模型。基于caffe,使用Deconvolutional Semantic Segmentation 网络架构,基于VGG 16-layer网络,但是额外配备了max-unpooling和deconvolutional的训练来输出稠密像素级语义概率地图的神经元。
它为RGB输入训练,在接下来我们称呼其为RGB-CNN。
由于深度信息是有效的,作为第四通道输入网络中训练。
我们将到来的图像缩放到基本的224x224分辨率,缩放过程中用双线性差值获得RGB,用最邻近获得深度。
C. Incremental Semantic Label Fusion感觉是全文重点。
简单解析一下这个公式表示的内容:
左边含义:给定1-k帧的图像,第i个分类的概率分布为,上一次的概率分布,乘以一段更新。这一段更新的理解:
其中
表示第k帧中第s个点元的像素坐标。O应该作为n元的向量(n代表类别个数),其中取第i元,得到一张种类li的概率分布图,取其中u的位置的概率值,来乘以原来的概率进行一次更新。
- 作者强调了是SLAM系统给定的correspondence来让我们能够用贝叶斯方式从多张图像中更新标签。很好理解,SLAM用相机姿态建立了各图之间像素的联系,同一个空间点不断被观测,从而不断被更新。
在这种思想下,slam可以非常简易地辅助segmentation! 甚至到达可应用。同时也能辅助其他的识别方法来进行贝叶斯更新。
D. Map Regularisation该步骤核心思路为,几何空间中相近的像素点应该具有相似的类别。
使用全连接的CRF,以及高斯边缘能量(Gaussian edge potentials)给三维世界框架的点元。
我们并非使用CRF直接得到最终预测,而是增量式更新概率分布。在我们的工作中,将每个点元作为图中的结点,算法使用均场估计(mean-field approximation)和信息传递框架来高效推断潜在变量,使得估计地最小化标签x的吉布斯能量E,在全连接图中,
表示给定点元s一个类别标签。
下面介绍Gibbs Energy,重点来了:
能量E(x)由两部分组成:一元的数据项,是给定标签的函数,为点元如上所示融合了多个CNN预测之后的内在概率分布。成对的平滑项,则是图中两个连接的点元的类别的函数,与地图的几何信息有关:
对于数据项直接使用给定点元为被选择的标签概率分布的负log:
平滑项约束为K个高斯边缘能核的线性组合,其中表示点元s的一些特征向量,在我们的情况下,
的值由Potts模型
给定,其实就是不相等的所有值集合。
[ 这里插一句, Potts模型之前查过, 说明这篇论文之前已经读到这里过了. ]
跟随前面的工作[8]我们使用两对能量,一个双边表现势( bilateral appearance potential ) 用于紧紧地连接具有相似位置和外表的点元,另一个是空间平滑势( spatial smoothing potential ) 用来增强与具有相似表面向量的点元的平滑预测。
我们选择单位标准偏差
在空间域中,
在RGB颜色域中,以及
弧度在角度域中。我们不会为了不同数据集而特意调整这些参数。同时我们对所有实验取?。这些是论文[13]中的公开应用。
IV. 实验部分 A. Network Training
我们初始化CNNs用某个已经存在的训练模型(Noh et. Al. trained for segmentation on PASCAL VOC 2012)。对于深度输入,我们初始化第四通道按Section III-B所述,即其他三个通道输入的平均值,然后转化到0-8m的深度中再乘以~32的因子。
接下来基于NYUv2数据集针对13个语义分类微调该训练模型。
对于优化,我们使用标准随机梯度下降,以0.01的训练率,0.9的动量,以及…。在Nvidia GTX Titan X上训练了2天。
B. Reconstruction Dataset
我们产生了一个小的试验用RGB-D重建数据集,目的为相对完整的办公房间的重建。使用的轨迹更为显著地多圈,本地与局部皆为如此,而NYUv2数据集只由单个来回扫组成。我们相信我们的数据集更加能呈现一个活动的专家观察场景时执行的扫描运动。
我们也采用一个不同的方式来手动标记数据,通过使用3D工具,我们标记最终3D重建的点元,使用经过考虑的13个 NYUv2 语义分类(呈现出9个)。我们然后通过投影针对输入序列每一帧自动生成2D标签。 [非常机智啊。] 每第100帧序列被用于测试样本来我们的预测和标记的ground truth,于是产生49个测试帧。
图3. 在右边建立好的3d模型中标记annotation, 自动生成二维图的label.
C. CNN and CRF Update Frequency Experiments
该过程测试对每一帧都应用RGB-CNN到跳过2^n帧用的情况下的帧率。
帧率和处理跳过的帧数之间的关系
同时评估CRF更新之间帧数的不同的影响。我们发现太频繁时,CRF有可能”drown out” CNN的预测,导致准确率严重下降。每500帧一次更新,会有轻微改善,因此我们使用它作为接下来所有实验的默认的更新率。
所以实际上加入CRF对整体准确率的改善非常小,估计只有0.2%。对我来说我就不要这玩意儿了。
D. Accuracy Evaluation
对比单帧CNN segmentation的准确率。在表格I中总结了结果。
我们观察到在所有的情况下,语义地融合额外的观测点改善单帧系统的语义分割准确率。性能改善从43.6%到48.3%,当从3D语义融合地图中投影预测结果的时候。[ 这个改善也就5.3%, 要我来看非常小,但是如果是最前沿的分割竞赛,那可是夺冠的区别 ]
[ 该系统在进行segmentation的时候,如果在3D语义地图中有了分类结果,则直接使用该结果,如果没有的话则直接用单帧CNN的结果 ]
还在Eigen的系统上运用了SF做测试。
E. NYU Dataset
我们选择来验证我们在NYUv2数据集上的过程,它是少数提供了完整信息来评估语义RGB-D重建的数据集之一。
但该数据集自身完成这个目标也有一些缺陷,其中206个视频中大部分存在明显掉帧,因此对跟踪和重建并不适合。在我们的评估中,去除了帧率低于2Hz的任何序列,剩余的140个测试序列包含原始654个图像测试集中的360个带标记的测试图像。
在这个测试中,由于剔除了一些低帧率视频,不与Hermans et al.的成果直接比较。
直观效果比较。前两行是效果比较好的,第三行则是太多的旋转导致融合预测结果的不同比较小,第四行则是轨迹并没有清晰地按照跟踪和建图问题来走,在这类情况下单目帧框架的准确率将更高。
[ 总体来讲SemanticFusion对于segmentation的提升有作用但是不大( 基于 Eigen提升了3.3%),而且达到了像素级别的打标签,但并非物体级别的建模。]
总结
本文经常强调ElasticFusion所采用的点元模型非常适合应用类别指定的平滑,但不是很理解具体原因。
SLAM++等系统证明了labeling/recognition可以使得重建和SLAM更加准确高效。[ 个人认为这个方面是个非常好的方向,人类或许也是如此认识环境,看到一部分沙发,我们能知道其剩余遮挡部分。因此引出了一个小分支,即如何为室内家庭场景建立足够的三维模型,如椅子等。或许这也不过是二维样本的扩展呢?感觉非常有趣。 ]
最后一句,作者表示更加强大的系统应该是直接与清晰的物体识别模型交互,以及将所谓的点元模型替代为3D物体模型,一旦置信度超过了一个合适的阈值。[ 所以点元模型可以作为3D模型替代前的过渡状态. ]
自言自语目前了解了非物体而是点元方式打上标签的SLAM,可以辅助segmentation,但效果并非很好(3.3%),接下来探索object的SLAM。
不如看看SLAM++。
碎碎念:如果要发表高水平论文,似乎热点便是引入神经网络、机器学习。将来的工作或者科研,或者单纯为了快乐地钻研机器学习(233),都要与神经网络相结合。
参考-
[论文]SemanticFusion CNN稠密3D语义建图