SemanticFusion , Dyson Robotics Lab(戴森),Imperial College London(帝国理工学院),2016.9.28, NYUv2

SemanticFusion: Dense 3D Semantic Mapping with Convolutional Neural Networks

Dyson Robotics Lab(戴森),Imperial College London(帝国理工学院),2016.9.28, NYUv2


总结

主要贡献:

  1. 将slam系统、CNN网络、贝叶斯更新、条件随机场优化结合设计了semantic mapping的系统。
  2. 实时性:25fps
  3. 结合视频连续帧间的信息,优化CNN对单张图片的分割效果

网络结构

由三部分构成:

  1. ElasticFusion模块:实时计算帧间位姿关系,构建surfels表示的全局地图,提供surfels在帧之间的对应关系。
  2. CNN分割模块:输入RGBD图像,输出每个像素的类别概率
  3. 贝叶斯更新模块(Bayesian update scheme):根据CNN的输出和SLAM提供的2D-3D点关联关系,更新全局地图中每个surfel的类别概率。

最后使用CRF来优化输出结果。

工作流程:

RGBD相机接受输入,SLAM系统构建3D地图。每隔固定帧CNN运行一次,给地图更新语义信息。每隔另一个固定帧,CRF运行一次,调整语义分割结果。同时整个系统作用期间都运行闭环检测,若检测到闭环,就更新地图,同时保持语义信息的不变

1. SLAM Mapping:

论文选择ElasticFusion 作为SLAM模块。slam是实时的,对每一帧都进行处理

  1. 使用ICP进行相机的位姿估计,得到世界坐标到相机坐标的转换矩阵Twc
  2. 对最新的一帧,其中的新的面元信息加入到map中,已经存在的面元负责优化map中的对应面元(位置信息,法向信息,颜色信息)
  3. 闭环检测并行运行,若检测到则进行闭环优化
2. CNN Architecture :

CNN 网络负责语义分割

模型结构:VGG16 + unpooling + deconvolutional layers

预训练的网络输入是RGB,但是实际的输入数据是RGBD,这里论文提出了一种将模型迁移到RGBD的方法:

前三个通道的weights已经由大规模的RGB数据集训练好,第四个通道的 weights 初始化为前三个的均值,然后把灰度图[0,255]的range对应到深度图 的[0,8]

输入图像的预处理:

获取到的深度图和彩色图分辨率应该是不同的,所以先用双线性插值把 RGB图像缩放到224x224,然后用最近邻获取每个点的深度。

最后使用数据集NYUv2进行fine tune

3. Incremental Semantic Label Fusion

即surfels的概率更新机制。

将每个surfel的概率初始化为等概率分布,类别数已知,无先验

更新公式: 在这里插入图片描述

4. Map Regularisation

使用条件随机场优化更新结果,在分割任务中已经见过不少使用CRF来做最后优化的,貌似是行业共识。

作者给出的直觉是,几何上离得近的元素应该拥有相同的类别。

对于每个像素i具有类别标签xi还有对应的观测值yi,这样每个像素点作为节点,像素与像素间的关系作为边,即构成了一个条件随机场。通过观测变量yi来推测像素i对应的类别标签xi

在这里插入图片描述

条件随机场符合吉布斯分布:(此处的xx即上面说的观测值)
P ( X = x ∣ I ) = 1 Z ( I ) e x p ( − E ( x ∣ I ) ) P(X=x|I)= \frac{1}{Z(I)}exp(−E(x|I)) P(X=xI)=Z(I)1exp(E(xI))
其中的E(x|I)是能量函数,为了简便,以下省略全局观测I
E ( x ) = ∑ i Ψ u ( x i ) + ∑ i < j Ψ p ( x i , x j ) E(x)=∑_iΨ_u(x_i)+∑_{i<j}Ψ_p(x_i,x_j) E(x)=iΨu(xi)+i<jΨp(xi,xj)
其中的一元势函数 ∑Ψu(xi)即来自于之前网络的输出。而二元势函数如下:
在这里插入图片描述

二元势函数就是描述像素点与像素点之间的关系,鼓励相似像素分配相同的标签,而相差较大的像素分配不同标签,而这个“距离”的定义与颜色值和实际相对距离有关: 在这里插入图片描述
所以这样CRF能够使图片尽量在边界处分割。而全连接条件随机场的不同就在于,二元势函数描述的是每一个像素与其他所有像素的关系,所以叫“全连接”

实验过程

主要由于slam是实时的,CNN和CRF是每隔几帧运行一次,所以需要用实验寻找跳过多少帧才比较合适。

CNN:

在这里插入图片描述

当CNN每一帧都进行处理时精度最高,52.5%,但是帧率只有8.2Hz。

最终选择每10帧处理一次,49-51%, 25.3Hz

CRF:

在这里插入图片描述
实验发现要是每帧都运行CRF会导致精度大幅下降,最终选择每500帧处理一次,获得轻微的性能提升

实验结果: 在这里插入图片描述

直观效果比较。前两行是效果比较好的,第三行则是太多的旋转导致融合预测结果的不同比较小,第四行则是轨迹并没有清晰地按照跟踪和建图轨迹来走,在这类情况下单目帧框架的准确率将更高。

个人想法:

最后一句,作者表示更加强大的系统应该是直接与清晰的物体识别模型交互,一旦置信度超过了一个合适的阈值,就将所谓的点元模型替代为3D物体模型。

slam相关的论文看的太少,看完之后还有很多不是特别清楚的地方。不过可以把语义分割的模型用deeplabV3试试,帧率应该也会快一点(虽然我猜已经有人做了。。。)

不过整个pipeline的性能提升不超过6%,本论文的重点应该还是在于将slam建图和深度学习结合的思想,目标检测(不管是3D还是2D)早就做不动了,slam + deep learning 说不定是眼下值得研究的一个方向。

引用:
https://blog.csdn.net/pikachu_777/article/details/84553835
https://blog.csdn.net/u012759136/article/details/52434826

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
提供的源码资源涵盖了Java应用等多个领域,每个领域都包含了丰富的实例和项目。这些源码都是基于各自平台的最新技术和标准编写,确保了在对应环境下能够无缝运行。同时,源码中配备了详细的注释和文档,帮助用户快速理解代码结构和实现逻辑。 适用人群: 适合毕业设计、课程设计作业。这些源码资源特别适合大学生群体。无论你是计算机相关专业的学生,还是对其他领域编程感兴趣的学生,这些资源都能为你提供宝贵的学习和实践机会。通过学习和运行这些源码,你可以掌握各平台开发的基础知识,提升编程能力和项目实战经验。 使用场景及目标: 在学习阶段,你可以利用这些源码资源进行课程实践、课外项目或毕业设计。通过分析和运行源码,你将深入了解各平台开发的技术细节和最佳实践,逐步培养起自己的项目开发和问题解决能力。此外,在求职或创业过程中,具备跨平台开发能力的大学生将更具竞争力。 其他说明: 为了确保源码资源的可运行性和易用性,特别注意了以下几点:首先,每份源码都提供了详细的运行环境和依赖说明,确保用户能够轻松搭建起开发环境;其次,源码中的注释和文档都非常完善,方便用户快速上手和理解代码;最后,我会定期更新这些源码资源,以适应各平台技术的最新发展和市场需求。 所有源码均经过严格测试,可以直接运行,可以放心下载使用。有任何使用问题欢迎随时与博主沟通,第一时间进行解答!
提供的源码资源涵盖了小程序应用等多个领域,每个领域都包含了丰富的实例和项目。这些源码都是基于各自平台的最新技术和标准编写,确保了在对应环境下能够无缝运行。同时,源码中配备了详细的注释和文档,帮助用户快速理解代码结构和实现逻辑。 适用人群: 适合毕业设计、课程设计作业。这些源码资源特别适合大学生群体。无论你是计算机相关专业的学生,还是对其他领域编程感兴趣的学生,这些资源都能为你提供宝贵的学习和实践机会。通过学习和运行这些源码,你可以掌握各平台开发的基础知识,提升编程能力和项目实战经验。 使用场景及目标: 在学习阶段,你可以利用这些源码资源进行课程实践、课外项目或毕业设计。通过分析和运行源码,你将深入了解各平台开发的技术细节和最佳实践,逐步培养起自己的项目开发和问题解决能力。此外,在求职或创业过程中,具备跨平台开发能力的大学生将更具竞争力。 其他说明: 为了确保源码资源的可运行性和易用性,特别注意了以下几点:首先,每份源码都提供了详细的运行环境和依赖说明,确保用户能够轻松搭建起开发环境;其次,源码中的注释和文档都非常完善,方便用户快速上手和理解代码;最后,我会定期更新这些源码资源,以适应各平台技术的最新发展和市场需求。 所有源码均经过严格测试,可以直接运行,可以放心下载使用。有任何使用问题欢迎随时与博主沟通,第一时间进行解答!
提供的源码资源涵盖了Java应用等多个领域,每个领域都包含了丰富的实例和项目。这些源码都是基于各自平台的最新技术和标准编写,确保了在对应环境下能够无缝运行。同时,源码中配备了详细的注释和文档,帮助用户快速理解代码结构和实现逻辑。 适用人群: 适合毕业设计、课程设计作业。这些源码资源特别适合大学生群体。无论你是计算机相关专业的学生,还是对其他领域编程感兴趣的学生,这些资源都能为你提供宝贵的学习和实践机会。通过学习和运行这些源码,你可以掌握各平台开发的基础知识,提升编程能力和项目实战经验。 使用场景及目标: 在学习阶段,你可以利用这些源码资源进行课程实践、课外项目或毕业设计。通过分析和运行源码,你将深入了解各平台开发的技术细节和最佳实践,逐步培养起自己的项目开发和问题解决能力。此外,在求职或创业过程中,具备跨平台开发能力的大学生将更具竞争力。 其他说明: 为了确保源码资源的可运行性和易用性,特别注意了以下几点:首先,每份源码都提供了详细的运行环境和依赖说明,确保用户能够轻松搭建起开发环境;其次,源码中的注释和文档都非常完善,方便用户快速上手和理解代码;最后,我会定期更新这些源码资源,以适应各平台技术的最新发展和市场需求。 所有源码均经过严格测试,可以直接运行,可以放心下载使用。有任何使用问题欢迎随时与博主沟通,第一时间进行解答!

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值