SLAM - simultaneous localization and mapping,也称为CML-Concurrent Mapping and Localization 中文含义为“同步定位与建图”( 即时定位与地图构建)
物体位姿估计:给定彩色图像时,估计从目标物体坐标系到摄像机坐标系的转换矩阵T,该矩阵包含了平移t和旋转R物体的位姿估计,是估计目标物体在相机坐标系下的坐标,即3D位置坐标和3D姿态坐标。
如何理解呢?
现在假设,你已经知道了目标物体在第一个坐标系下的空间坐标,那么这个物体在第二个坐标系下是什么坐标呢?我们只需要知道第一个坐标系,到第二个坐标系,发生了怎样的变化?(旋转和平移),也就知道目标物体通过相同的旋转和平移,变成了
目标检测:R-CNN,Fast R-CNN,Faster R-CNN,Mask R-CNN,理解各自的原理和不同
两阶段:two-stage:先产生候选区域,再进行检测
一阶段:single-stage:回归问题
YOLO目标检测算法的原理,优点,缺点
Xshell是一个强大的安全终端模拟软件,它支持SSH1, SSH2, 以及Microsoft Windows 平台的TELNET 协议。Xshell 通过互联网到远程主机的安全连接以及它创新性的设计和特色帮助用户在复杂的网络环境中享受他们的工作。
Xshell可以在Windows界面下用来访问远端不同系统下的服务器,从而比较好的达到远程控制终端的目的。
一、基本概念
1.计算机视觉:计算机视觉是一门研究利用图像传感设备和计算机来模拟人类视觉系统的学科,使计算机能够代替人眼完成目标识别、跟踪、测量等任务。简言之,有关计算机视觉领域的研究方向都是基于图像展开的。
2.图像深度估计:图像深度估计是计算机视觉领域中一项重要的研究课题,目的是估计图像中场景的深度,即场景中各点像素到相机成像中心的距离。
3.深度信息,场景理解:深度信息可以消除 RGB 图像中最关键的物体尺度的歧义。
4.真三维显示技术:结合人眼双目立体成像原理,根据已知视点的深度信息,通过 3D 映射变换,将已知视点图像变换到未知视点的成像平面,最后经过图像融合,来实现虚拟视点绘制。
5.深度图:表示图像中每个像素在空间中的位置
6.卷积层:卷积操作实际上是一种局部操作方式,通过一定大小的卷积核作用于局部图像区域位置获得图像的局部信息,并对各个位置进行加权求和。通过卷积操作可以提取图像的不同特征,卷积神经网络中的第一层卷积用来提取图像的低级特征,随着卷积层数的增加提取图像更高级的特征。
7.激活层:卷积层是线性操作,卷积神经网络中使用激活层对输入特征进行非线性操作,使CNN 能够拟合非线性映射。激活层的引入在一定程度上增加了卷积神经网络的计算复杂度,但是随着网络层数的不断加深,在网络的训练过程中能产生极其鲁棒的效果,这体现了激活层的重要性。常见的有 Sigmoid 函数、Tanh 函数和 Re LU 函数。
8.池化层:池化层通常分为最大值池化和平均值池化,主要用来对视觉输入对象进行降维和抽象,减少算法的复杂度。池化层不包含需要学习的参数,在使用时只需指定卷积核的大小和卷积步长。通过减少数据的维度来防止过拟合,同时还能保持特征不变性,是卷积神经网络重要的组成部分
最大值池化运算:计算出某区域的最大值来提取特征,能够保留图像更多局部的纹理信息。
平均值池化运算:计算某区域的平均值来减小误差,能够保留图片更多的背景信息。
9.反卷积层:反卷积是卷积的逆过程,通过实现上采样来完成信号复原。反卷积操作使最后输出结果保持原特征图的尺寸。
10.批归一化层:批归一化层就是对神经网络的每一批数据都进行归一化处理,能够很好地解决在训练过程中中间层数据分布发生改变的情况。
11.注意力机制(Attention):
12.循环神经网络框架(Recurrent Neural Network,RNN)
13.图像深度估计数据集: NYU Depth,RGB-D,Make3D,VKITTI
(1)KITTI 数据集
KITTI 是目前自动驾驶场景下最大的计算机视觉算法评测数据集,它由芝加哥丰田理工学院和卡尔斯鲁厄理工学院共同发起。该数据集可用于评测视觉测距、立体图像、光流、3D 物体检测和 3D 跟踪等多个计算机视觉任务在车载环境下的性能。KITTI包含了在城市、乡村和公路等多种场景下采集的图像数据,原始数据集一共包含42382 个立体图像对。现有的大多数有关图像深度估计方法都会利用该数据集作为测试算法性能的基准。该数据集中的深度图由雷达设备采集得到,因此深度图十分稀疏并且存在大量的缺失的,因此并不十分适合单独作为标签进行监督学习。
(2)Virtual KITTI
Virtual KITTI 是一个采用 Unity 游戏引擎渲染的虚拟世界和模拟 KITTI 采集的真实世界条件的数据集。与 KITTI 类似,它也用于学习和评估用于多个视频理解任务的计算机视觉模型,包括深度估计、目标检测、多目标跟踪、语义分割和光流等。Virtual KITTI 包含 2 万张来自不同的城市、不同天气条件和不同相机旋转角度的虚拟世界的图像。由于数据均为虚拟而来,相比于KITTI 中的深度图,它的标签更加精确和完整,但是和真实场景难免会有差距。
14.深度:场景的深度指的是场景中点到相机成像中心的距离。深度估计的结果一般以深度图(Depth Map)作为表达方式。
相对深度指的是场景中两个点的相对远近关系。
绝对深度则表明了场景中目标到相机之间的真实距离。
15.深度图:三种表示方法
1)灰度图:灰度值来表示场景中每个像素点的深度。灰度代表距离的倒数,像素越亮,说明该点越近。像素点越暗,表示该点离相机越远。
2)彩色图:不同的颜色表示不同的距离。
3)Pseudo-3D:伪 3D 的效果,它可以展示重建场景的不同视角。
深度图的获取:双目,结构光编码,TOF相机,激光雷达
16.三维数据的表达方式?(如体素,点云,网格分别是什么东西)
参考网址见:
参考1
参考2
参考3
1)参数化方法:用函数表示三维物体的表面。
优点是易于生成曲面上的点;
缺点是难以分辨正反面,是否在面上,也难以表示复杂平面(进而产生mesh)
2)隐式表面(模糊法):表示点在内部,外部,还是在面上。
缺点是难以生成具体点,只能表示相对位置。无法实时渲染。
3)体素网格(体积像素网格):二维空间的最小单位是像素,像素表示二维图像的数据。体积像素是数字数据于三维空间上的最小单位。
真正的三维显示器运用体素来描述它们的分辨率,如可以显示512×512×512体素的显示器。
4)点云:无序点集,每一个点包含有三维座标,有些可能含有色彩信息(R,G,B)或物体反射面强度。
点云是最简单的三维表达方式,可以实现很高的分辨率近似物体真实表面,减少栅格化表达中3D数据占用的稀疏性。
1】点云数据方面的挑战:
~缺少数据: 扫描的模型通常被遮挡,部分数据丢失
~噪音: 所有传感器都是嘈杂的。有几种类型的噪声,包括点云扰动和异常值。这意味着一个点有一定的概率位于它被采样的地方(扰动)附近的某一半径范围内,或者它可能出现在空间的任意位置(异常值)
~旋转: 一辆车向左转,同一辆车向右转,会有不同的点云代表同一辆车
2】在点云上直接用深度学习的方法是将数据转换成体积表示,比如体素网格,然后就可以用3D滤波器来训练CNN,但是体积数据会变得非常大,3DCNN处理会非常慢,所以需要妥协到较低的分辨率,就会带来量化误差的代价。
3】针对无序点云数据的深度学习方法研究进展缓慢,主要有三个方面:
~点云具有无序性:
~点云具有稀疏性:
在KITTI数据集中,如果把原始的激光雷达点云投影到对应的彩色图像上,大概只有3%的像素才有对应的雷达点。这种极强的稀疏性让基于点云的高层语义感知变得尤其困难。
~点云信息量有限:
点云的数据结构就是一些三维空间的点坐标构成的点集,本质是对三维世界几何形状的低分辨率重采样,因此只能提供片面的几何信息。
5)深度图:点云的图像形式
6)三角网格(多边形网格):表示边界,近似光滑表面,是一种比较好的表示方式,能表示任意形状、效率高。
要表示一个大三角形,多边形网格仅需要三个顶点和一个面,而体素和点云则需要在该面上有许多采样点。
由于多边形网格代表带有少量参数的 3D 形状,因此可以减小用于 3D 模型的大小和数据集的大小。
另一个优点是它适用于几何变换。物体的旋转,平移和缩放由对顶点的简单操作表示。
其缺点是几何拓扑复杂程度高。
17.在3D数据的表示方式中(体素网格,点云,隐式表面和三角网格),为什么选择点云的方式呢?
答:
1)点云数据获取比较简单,而且点云最接近原始传感器的数据(激光雷达扫描得到的就是点云数据,深度传感器获得的是一个深度图像,可以理解为局部的点云)。
2)点云的表示形式很简单。
3)不是所有的3维图形都能用隐式表面表示出来,而且隐式表面比较复杂。
4)由于点云中的点是不规则、无序的,所以有些研究是将点云转化为体素结构的形式,从而变成规则的表达。但是,在这个转化的过程中会丢失很多精准度。
5)三角网格的精度较高,但是也比较难以获得,常用于3维建模。
18.图像的语义信息是什么?
答:图像的语义分为视觉层、对象层和概念层。
1)视觉层即通常所理解的底层,即颜色、纹理和形状等等,这些特征都被称为底层特征语义;
2)对象层即中间层,通常包含了属性特征等,就是某一对象在某一时刻的状态;
3)概念层是高层,是图像表达出的最接近人类理解的东西。
举例:比如一张图上有沙子,蓝天,海水等,视觉层是一块块的区分,对象层是沙子、蓝天和海水这些,概念层就是海滩,这是这张图表现出的语义。
19.3D视觉的基本概念?
详见点击
20.baseline和benchmark的区别?
答:
baseline:是将某篇代表性论文为基础,在上面进行改进,改进后的性能自然不能低于原论文。
benchmark:与baseline进行区别,baseline是你自己和你自己比较,benchmark是大家一起比较,最好的那个被我们称作SOTA。不同代表性方法的经典论文,为一个benchmark,如果benchmark的性能为当前最先进,就是SOTA。谈到benchmark,一般有个benchmark数据集,如姿态估计方法,linemod就是一个benchmark数据集,大家的方法都在上面比较,谁的性能好,谁就是SOTA。
1 、 2 、3
21.非结构化环境?
答:
机器人的作业环境通常分为结构化环境(structured environment)和非结构化环境(unstructured environment)两类。结构化环境是指机器人工作的周围场所是固定的布局。非结构环境则相反,是指周围环境是不固定的,变化的。
22.合作目标和非合作目标?
答:
按照测量目标上是否有为姿态测量所安装的合作标志器,可以把目标对象分为合作目标和非合作目标。合作目标上有专门便于姿态测量的标识器或者已知的几何特征,比如发光标志点。而对于非合作目标来说,目标上面没有为测量而特定安装的合作特征,对目标的大小等信息了解较少,识别和提取目标上的特征信息难度较高。
目标指的是完整的物体,合作标志器是安装在物体上的一个组成部分。
当前位姿测量的研究的对象主要是合作目标位姿测量方面,然而通过视觉测量的方法用在非合作目标的位姿测量上,目前研究较少。
面临的主要问题有:没有对非合作目标的先验信息,目标上可利用的有用信息少,识别目标困难,提取目标上的特征难度大,处理算法复杂等。综上所述,对于非合作目标的位姿测量算法的研究具有十分重要的研究价值和意义。