前言

在实时/非实时大规模三维场景重建中,引入了语义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. node.js 中的package.json文件怎么创建?

    最近在用webstorm和nodejs做一些东西,老是各种混乱,今天上午创建一个新的项目,结果发现,npm init之后,并没有出现package.json,并没有太明确他的功能的小姑娘表示十分的惊慌 ...

  2. Pillow 模块~Python图像处理

    什么是验证码? 验证码(CAPTCHA)是“Completely Automated Public Turing test to tell Computers and Humans Apart”(全自 ...

  3. windows下db2的一些使用心得(不含安装)

    1.安装完成后开始菜单栏里会有一个 DB2 Command Window - Administrator 打开这个命令窗口 2.db2 db2,启动 3.list databse directory ...

  4. noip模拟赛 fateice-shop

    题目背景 紫女,韩国歌舞坊(实为刺客组织)紫兰轩之主,千娇百媚,美艳无方.武艺高强且极有谋略胆识,精通奇石药物,冶炼之术及制毒用毒之术独步天下,真实姓名与来历无人知晓,只因总是身着一袭紫衣,所以众人以 ...

  5. [bzoj4282]慎二的随机数列_动态规划_贪心

    慎二的随机数列 bzoj-4282 题目大意:一个序列,序列上有一些数是给定的,而有一些位置上的数可以任意选择.问最长上升子序列. 注释:$1\le n\le 10^5$. 想法:结论:逢N必选.N是 ...

  6. Linux网络编程——浅谈 TCP 三次握手和四次挥手

    一.tcp协议格式 二.三次握手 在 TCP/IP 协议中.TCP 协议提供可靠的连接服务,採用三次握手建立一个连接. 第一次握手:建立连接时,client发送 syn 包(tcp协议中syn位置1. ...

  7. codeforces 391E2 (【Codeforces Rockethon 2014】E2)

    题目:http://codeforces.com/problemset/problem/391/E2    题意:有三棵树.每棵树有ni个结点,加入两条边把这三棵树连接起来,合并成一棵树.使得合并的树 ...

  8. c# POST和GET方式通过server地址提交数据

    1:POST方式提交: <strong><span style="font-size:14px;">private static string HttpPo ...

  9. 使用memcachedclientXmemcached与Spring整合

    1 简单介绍 Xmemcached是一个高性能的基于java nio的memcachedclient.在经过三个RC版本号后.正式公布1.10-final版本号. xmemcached特性一览: 1. ...

  10. 用sp_executesql执行动态SQL语句及获得返回值

    过去我执行拼凑出来的动态SQL语句,都直接使用EXEC @sql 的方式.有好几次,都看到有资料说,应该尽量使用 sp_executesql. 究其原因,是因为仅仅参数不同的情况下,sp_execut ...