前言

在实时/非实时大规模三维场景重建中,引入了语义SLAM这个概念,参考三维重建:SLAM的尺度和方法论问题三维重建:SLAM的粒度和工程化问题 。大规模三维场景重建的尺度增大,因此相对于整个重建过程的粒度也从点到特征点到目标物体级别,对场景进行语义标记成为重要的工作。

场景语义标记的传统方法

其他:机器人在线场景感知问题,场景识别问题。

参考文章:场景感知:图像的稀疏表示

对场景进行目标检测,并串联目标特征或者打包成set,形成场景特征。根据场景特征进行分类场景,既是场景感知。对于大量需要感知的场景,既是场景中有多类物体,形成的场景特征的向量维数变得更大更长,为了降低计算量,引入了稀疏编码的方法。

深度学习的语义标记方法

对于超大环境,比如整个中国建立一个三维地图,Agent端的存储能力和计算能力必定达不到海量数据存储和检索的要求。因此,引入C/S模式的云端框架是合适的选择。对于超量的类别进行模式识别,传统的集成学习仍然遇到理论上的困难,比如VC维的约束。因此,基于深度学习的场景语义识别是暂时最佳可选的方案,Agent作为一个数据获取端,把数据传输到云端服务器,在服务器上使用DCNN进行语义检测,用于检测目标和场景,进而判断是否存在闭环/Agent在场景中的位姿。

语义SLAM的关键元素

目标检测、场景识别、DCNN。

目标识别的传统方法经典方法利用概率图模型(CRF)对图片进行分割,使用传统模式识别方法进行目标识别(SVM、随机森林等),这些传统方法应对海量数据和高精度的挑战都成问题,比如CRF模型对于大量数据训练极为困难、模式识别方法模型本身就受到VC维的约束。

场景识别的传统方法如前面所述,使用稀疏编码的方式对每一类场景进行稀疏编码,把图片场景识别拖入模式识别的范畴,使用传统模式识别的方法完成场景识别。

DCNN

对于检测-识别过程,传统方法的一般模式是,需要对图像进行特征提取,把图像从二维张量空间转化到N维向量空间,称为特征提取;再通过模式识别方法把N维向量空间压缩到0维空间的离散个点上。由此完成分类识别。

在此过程中,特征提取是一个专家知识极浓的经验过程,并在图像压缩转化过程中必然承受着压缩/特征提取损失。

CNN具有图像处理过程中张量压缩的天然结构。CNN结构直接把图像在二维张量空间中进行处理,不停的Conv和polling,使用数据来完成特征提取,更多的数据得出更可靠的特征(特征一词对于CNN没有实际意义,此过程并非形式化,且可以表示为任一步及几步的组合)。不停的Conv和polling,直至图像的X*X像素收敛为1*1,直接把图像从二维张量空间压缩到一维向量空间中的点(也可以称之为二维张量空间上的点,但没有了明确的维度限制)上。

此外,CNN的二维链接结构,可以使用权值共享和分层乘法来降低参数数量,以至于在添加更多的类别时避免造成参数的指数级增长(传统方法随类别的参数增长一般是指数级别或者亚指数级别的,至少是超多项式的)。

深度学习方法作为分类模型,发展已久,从AlexNet到GoogleNet,到Residual Network,不断取得更高的精度和处理更多的类别以及获得更快的速度。

深度学习作为检测模型,经典网络为R-CNN和Yolo-DarkNet,随后更新了多个版本,基于Region Proposal的网络为R-CNN、SPP-Net、Fast R-CNN、Faster R-CNN、R-FCN和Mask RCNN;基于Regression的有Yolo、SSD-Net、YoloV2、LocalNet等。

DCNN检测模型

基于Region Proposal的网络为R-CNN、SPP-Net、Fast R-CNN、Faster R-CNN、R-FCN和Mask RCNN;基于Regression的有Yolo、SSD-Net、YoloV2、LocalNet等。

参考文章:SPP-Net:CNNs添加一尺度不变特征-神经元层

参考文章:Going deeper with convolutions:卷积的更深一些

参考文章:CVPR 2016论文快讯:目标检测领域的新进展

工程化问题

语义SLAM中大规模语义分析,通常方法也变为S端使用DCNN做服务器实现场景检测/闭环检测和C端Agent根据返还结果辅助实现三维位姿确定。

三维重建5:场景中语义分析/语义SLAM/DCNN-大尺度SLAM的更多相关文章

  1. TensorFlow中的语义分割套件

    TensorFlow中的语义分割套件 描述 该存储库用作语义细分套件.目标是轻松实现,训练和测试新的语义细分模型!完成以下内容: 训练和测试方式 资料扩充 几种最先进的模型.轻松随插即用 能够使用任何 ...

  2. 三维重建:SFM中BA的并行化

    1. BA在重建中的作用 借鉴于运动中重建的方法,BA引入SLAM过程,而传统的滤波方法引入BA是跟随闭环检测出现. 1.1 BA在滤波方法中的嵌入 PTAM 1.2 BA在闭环检测之后的应用 在三维 ...

  3. 第七章 人工智能,7.6 DNN在搜索场景中的应用(作者:仁重)

    7.6 DNN在搜索场景中的应用 1. 背景 搜索排序的特征分大量的使用了LR,GBDT,SVM等模型及其变种.我们主要在特征工程,建模的场景,目标采样等方面做了很细致的工作.但这些模型的瓶颈也非常的 ...

  4. 三维场景中使用BillBoard技术

    三维场景中对于渲染效果不是很精致的物体可以使用BillBoard技术实现,使用该技术需要将物体实时朝向摄像机,即计算billboard的旋转矩阵M. 首先根据摄像机位置cameraPos和billBo ...

  5. LoadRunner测试场景中添加负载生成器

    如何在LoadRunner测试场景中添加负载生成器 本文对如何在LoadRunner的测试场景中添加负载生成器,如何使用负载生成器的方法,总结形成操作指导手册,以指导测试人员指导开展相关工作. 1.什 ...

  6. [python]在场景中理解装饰器

    原来我也自己通过查资料,来学习python的装饰器,但是效果不好.因为没有接触过需要用到装饰器的场景,所以 一起的资料都只停留在纸面上,但是今天偶然看到了vimer的这篇文章:http://www.v ...

  7. SharpGL学习笔记(十二) 光源例子:解决光源场景中的常见问题

    笔者学到光源这一节,遇到的问题就比较多了,收集了一些如下所述: (1) 导入的3ds模型,如果没有材质光照效果很奇怪.如下图 (2) 导入的3ds模型,有材质,灯光效果发暗,材质偏色,效果也很奇怪. ...

  8. Loadrunner:场景中添加负载生成器

    场景中添加负载生成器: (1)远程机子(假设ip为192.168.134.23)开启负载生成器 开始菜单找到:LoadRunner Agent Process 开启后任务栏会显示如下图: (2)场景中 ...

  9. [Unity3D]Unity3D游戏开发之在3D场景中选择物体并显示轮廓效果

    大家好,我是秦元培,欢迎大家关注我的博客,我的博客地址是blog.csdn.net/qinyuanpei. 在<仙剑奇侠传>.<古剑奇谭>等游戏中,常常须要玩家在一个3D场景中 ...

随机推荐

  1. 【模板】dijkstra

    洛谷 4779 #include<cstdio> #include<cstring> #include<algorithm> #include<queue&g ...

  2. IDEA 工具使用报错总结

    读前语:此文章仅给非入门级观看 1.使用Debug  无法运行,而使用Run 则正常启动,报错代码如下 1 Error running 'jx_web': Unable to open debugge ...

  3. 固定一个div在浏览器底部

    转自原文 如何固定一个div在浏览器底部   方法1:使用CSS绝对定位 div{ position:absolute; bottom:0px; left:0px; } 方法2:使用CSS固定定位 d ...

  4. [Tools] Using colours in a NodeJS terminal - make your output pop

    Use can use colour and styles to make it easy to spot errors and group common functionality into blo ...

  5. UVA 12683 Odd and Even Zeroes(数学—找规律)

    Time Limit: 1000 MS In mathematics, the factorial of a positive integer number n is written as n! an ...

  6. [Android]Fragment源代码分析(三) 事务

    Fragment管理中,不得不谈到的就是它的事务管理,它的事务管理写的很的出彩.我们先引入一个简单经常使用的Fragment事务管理代码片段: FragmentTransaction ft = thi ...

  7. Android中检測字符编码(GB2312,ASCII,UTF8,UNICODE,TOTAL——ENCODINGS)方法(一)

    package com.android.filebrowser;   import java.io.*; import java.net.*;   public class FileEncodingD ...

  8. Android开发之WebView的开发使用(源码分享)

    假设我们想提供一个web应用程序(或仅仅是一个网页)作为client应用程序的一部分,我们能够使用WebView.WebView类是Android的视图类的扩展,它同意您显示web页面的一部分活动布局 ...

  9. hdu 1542(线段树+扫描线 求矩形相交面积)

    Atlantis Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Total Su ...

  10. bzoj2595 [Wc2008]游览计划——斯坦纳树

    题目:https://www.lydsy.com/JudgeOnline/problem.php?id=2595 今天刚学了斯坦纳树,还不太会,写一道题练习一下: 参考了博客:http://www.c ...