三维重建5:场景中语义分析/语义SLAM/DCNN-大尺度SLAM
前言:
在实时/非实时大规模三维场景重建中,引入了语义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:卷积的更深一些
工程化问题
语义SLAM中大规模语义分析,通常方法也变为S端使用DCNN做服务器实现场景检测/闭环检测和C端Agent根据返还结果辅助实现三维位姿确定。
三维重建5:场景中语义分析/语义SLAM/DCNN-大尺度SLAM的更多相关文章
- TensorFlow中的语义分割套件
TensorFlow中的语义分割套件 描述 该存储库用作语义细分套件.目标是轻松实现,训练和测试新的语义细分模型!完成以下内容: 训练和测试方式 资料扩充 几种最先进的模型.轻松随插即用 能够使用任何 ...
- 三维重建:SFM中BA的并行化
1. BA在重建中的作用 借鉴于运动中重建的方法,BA引入SLAM过程,而传统的滤波方法引入BA是跟随闭环检测出现. 1.1 BA在滤波方法中的嵌入 PTAM 1.2 BA在闭环检测之后的应用 在三维 ...
- 第七章 人工智能,7.6 DNN在搜索场景中的应用(作者:仁重)
7.6 DNN在搜索场景中的应用 1. 背景 搜索排序的特征分大量的使用了LR,GBDT,SVM等模型及其变种.我们主要在特征工程,建模的场景,目标采样等方面做了很细致的工作.但这些模型的瓶颈也非常的 ...
- 三维场景中使用BillBoard技术
三维场景中对于渲染效果不是很精致的物体可以使用BillBoard技术实现,使用该技术需要将物体实时朝向摄像机,即计算billboard的旋转矩阵M. 首先根据摄像机位置cameraPos和billBo ...
- LoadRunner测试场景中添加负载生成器
如何在LoadRunner测试场景中添加负载生成器 本文对如何在LoadRunner的测试场景中添加负载生成器,如何使用负载生成器的方法,总结形成操作指导手册,以指导测试人员指导开展相关工作. 1.什 ...
- [python]在场景中理解装饰器
原来我也自己通过查资料,来学习python的装饰器,但是效果不好.因为没有接触过需要用到装饰器的场景,所以 一起的资料都只停留在纸面上,但是今天偶然看到了vimer的这篇文章:http://www.v ...
- SharpGL学习笔记(十二) 光源例子:解决光源场景中的常见问题
笔者学到光源这一节,遇到的问题就比较多了,收集了一些如下所述: (1) 导入的3ds模型,如果没有材质光照效果很奇怪.如下图 (2) 导入的3ds模型,有材质,灯光效果发暗,材质偏色,效果也很奇怪. ...
- Loadrunner:场景中添加负载生成器
场景中添加负载生成器: (1)远程机子(假设ip为192.168.134.23)开启负载生成器 开始菜单找到:LoadRunner Agent Process 开启后任务栏会显示如下图: (2)场景中 ...
- [Unity3D]Unity3D游戏开发之在3D场景中选择物体并显示轮廓效果
大家好,我是秦元培,欢迎大家关注我的博客,我的博客地址是blog.csdn.net/qinyuanpei. 在<仙剑奇侠传>.<古剑奇谭>等游戏中,常常须要玩家在一个3D场景中 ...
随机推荐
- MongoDB整库备份与还原以及单个collection备份、恢复
备份前的检查> show dbsMyDB 0.0625GBadmin (empty)bruce 0.0625GBlocal (empty)test 0.0625GB> use MyDBsw ...
- Macbook上安装Win7经验总结
昨天兴致突发,想在Macbook上装个win7跑双系统玩玩,结果遇到了几个非常奇葩的问题.折腾了差不多一天,硬盘分区又合并分区N次,若干次卡死,最后总算搞定.记录下经验,以慰后来人. 问题一:安装程序 ...
- [TS-A1505] [清橙2013中国国家集训队第二次作业] 树 [可持久化线段树,求树上路径第k大]
按Dfs序逐个插入点,建立可持久化线段树,每次查询即可,具体详见代码. 不知道为什么,代码慢的要死,, #include <iostream> #include <algorithm ...
- hdu_1036_Average is not Fast Enough_201311021335
Average is not Fast Enough! Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (J ...
- Color the ball 线段树 区间更新但点查询
#include<iostream> #include<cstdio> #include<cmath> #include<cstring> #inclu ...
- Java 和JS Base64加密
项目在登录.注册等场景实现时,经常会用到用户信息前端加密,然后项目后端二次解密,避免信息直接在浏览器上以明文显示. 本文主要介绍了base64加密的方式处理代码,不支持中文 源码如下: base64. ...
- ZooKeeper之初识
它是什么 俗称动物管理员,它使用java开发,开源,接口简单,高效,稳定的分布式系统,为其它分布式系统提供协调服务 为什么会存在? 开发分布式系统跟单机上做开发完全不同,碰到的问题完全不同,开发分布式 ...
- pt-osc改表导致数据不一致案例分析
2016-06-10 李丹 dba流浪猫 我们平时除了解决自己问题外,有时候也会协助圈内人士,进行一些故障排查,此案例就是帮某公司DBA进行的故障分析,因为比较典型,特分享一下,但仅仅是分享发生的过程 ...
- natural join 以及 v$statname , v$sessstat
oracle natural join是一个比较方便的用法.如果两个表的某些字段名称相同,类型相同,natural join就会把他们做等值连接.比如下面我们知道这两个视图的结构如下: SQL> ...
- AutoCAD 2014:安装时发生allied product not found错误
有个朋友在安装AutoCAD 2014时不慎误删了一个文件夹,结果导致安装AutoCAD时总是跳出”allied product not found”的错误. Google搜了下,解决方案如下: 1. ...