1.立体视觉
立体视觉是一种计算机视觉技术,其目的是从两幅或两幅以上的图像中推理出图像中每个像素点的深度信息。 应用领域:机器人、辅助驾驶/无人驾驶、无人机等 立体视觉的原理: 立体视觉借鉴了人类双眼的“视差”原理,即左、右眼对于真实世界中某一物体的观测是存在差异的,我们的大脑正是利用左、右眼的差异,使得我们能够辨识物体的远近。(视差)
单目系统 注:P、Q是现实世界中两个真实的点,即需要照的点
当只有一个相机时,P、Q在成像平面的一个点上,判断不出两者的距离或两者离摄像机的距离差异。 双目系统–即有两个摄像机(两个眼睛)
转换为俯视图像 将同一空间物理点在不同图像中的映像点对应起来,这个差别称为视差图像 视差(Disparity)
2.点云模型
点云与三维图像 三位图像是一种特殊的信息表达形式,其特征是表达的空间中三个维度和数据。和二维图像相比,三位图像借助第三个维度的信息,可以实现天然的物体和背景解耦。 对于视觉测量来说,物体的二维信息往往随摄影方式而变化,但其三维特征对不同测量方式具有更好的统一性。 与相片不同,三位图像是对一类信息的统称,信息还需要有具体的表现形式,其表现形式包括:深度图(一会都表达物体与相机的距离),几何模型(由CAD软件建立),点云模型(所有逆向工程设备都将物体采样成点云)。
点云数据是最为常见也是最基础的三维模型。
点云:扫描资料以点的形式记录,每个点包含有三维坐标,有些可能含有颜色信息(RGB)或者反射强度信息(Intensity) 点云的概念:点云是在同一个空间参考系下表达目标空间分布和目标表面特征的海量点几何,在获取物体表面每个采样点的空间坐标后,得到的是点的几何,称为“点云”(Point Cloud)
点云的内容:根据机关测量原理得到的点云,包括三维坐标(XYZ)和激光反射强度(Intensity),强度信息与目标的表面材质、粗糙度、入射角风向,以及一起的发射能量,激光波长有关。 根据摄影测量原理得到的点云,包括三维坐标(XYZ)和颜色信息(RGB)。 点云处理的三个层次(了解) Spin image Spin image是基于点云空间分布的最经典的特征描述方法 Spin image的思想是将一定区域的点云分布转换成二维的spin image,然后对场景和模型的Spin images 进行相似性度量
生成Spin image的步骤: 1)定义一个Oriented point 2)以Oriented point为轴生成一个圆柱坐标系 3)**定义Spin image的参数,Spin image是一个具有一定大小(行数列数)、分辨率(二维网格大小)**的二维图像(或者说是网格) 4)将圆柱体内的三维坐标投影到二维Spin image,这一过程可以理解为一个Spin image绕着法向量n旋转360度,Spin image 扫到的三维空间的点会落到Spin image 的网格中。
5)根据Spin image中的每个网格中落入的点不同,计算每个网格的强度I,显示spin image 时每个网格(也就是像素)I为依据。最直接的方法是直接计算每个网格中落入的店的个数,然而为降低对位置的敏感度、降低噪音影响、增加稳定性,Johnson论文中用双线性插值的方法将一个点分布到4个像素中。 当一个点落入网格(i,j)中时会被双线性插值分散到(i,j)、 (i,j+1) 、(i+1,j)、 (i+1,j+1)四个网格中
spin image的三个关键参数 a.分辨率,即二维网格的也就是像素的实际尺寸,使用和三维网格相近的尺寸比较合适,因此通常是取三维网格所有边的平均值来作为spin inage 的每个网格尺寸,通常会把网格的长度和宽定义成相等,即边长,边长的计算公式(e为三维网络模型中的一条边,N为三维网格模型中的边的总数)
b. 大小,即spin image的行数和列数,两者一般也相等。可以参考的大小10 x10或20x20等
c. support angle,即法向量夹角大小的限制。空间中顶点的法向量与创建圆柱坐标系所选点法向量之间的夹角。 可看出,对角度限制以后,那些相对于切面的“凹点(大于90°)”被剔除,保留了主要信息,降低了后续的计算量。 一般角度限制范围为60°-90°之间。
获得的spin image:
3.图像聚类算法
分类与聚类 分类其实是从特定的数据中挖掘模式,做出判断的过程。 主要过程 (1)训练数据集存在一个类标记,判断他是正向数据集(起积极作用,不是垃圾邮件)还是负向数据集(起抑制作用,垃圾邮件); (2)然后需要对数据集进行学习训练,并构建一个训练的模型; (3)通过该模型对预测数据集进行预测,并计算其结果的性能。
总之,聚类主要是”物以类聚“,通过相似性把相似元素聚集在一起,他没有标签;而分类通过标签来训练得到一个模型,对新数据集进行预测的过程,其数据存在标签。
聚类样本间的属性 1)有序属性:西瓜的甜度:0.1,0.5,0.9 2)无序属性:性别:男,女
聚类算法分为三大类: 1)原型聚类
2)层次聚类 3)密度聚类
K-Means聚类 K-Means聚类是最常用的聚类算法,最初起源于信号处理,其目标是将数据点划分为K个类簇。该算法的最大优点是简单、便于理解,运算速度较快,缺点是要在聚类前指定聚集的类簇数。
k-means算法是一种原型聚类算法。
第一步:确定K值,即将数据集聚集成K个类簇或小组。 第二步,从数据集中随机选择K个数据点作为质心(Centroid)或数据中心 第三步,分别计算每个点到每个质心之间的距离,重新定义算法选出新的质心。(对于每个簇,计算其均值,即得到新的K个质心) 第四步,迭代执行第三步到第四步,直到迭代终止条件满足为止(聚类结果不在变化)
K-Means聚类与图像处理
在图像处理中,通过K-Means聚类算法可以实现图像分割、图像聚类、图像识别等操作。
我们通过K-Means可以将这些像素点聚类成K个簇,然后使用每个簇内的质心点来替换簇内所有的像素点,这样就能实现在不改变分辨率情况下量化压缩图像颜色,实现图像颜色层级分割。 优点: 1)是解决聚类问题的一种经典算法,简单、快速 2)对处理大数据集,该算法保持高效率 3)当结果簇是密集的,它的效果较好 缺点: 1)必须事先给出k(要生成簇的数目) 2)对噪声和孤立点数据敏感
4.层次聚类
层次聚类是一种很直观的算法。顾名思义就是要一层一层地进行聚类
层次法(Hierarchicalmethods)先计算样本之间的距离。每次将距离最近的点合并到同一个类。然后,再计算类与类之间的距离,将距离最近的类合并为一个大类。不停的合并,知道合成一个类,其中类与类的距离计算方法有:最短距离法,最长距离法,中间距离法,类平均法等。比如最短距离法,将类与类的距离定义为类与类之间样本的最短距离。 层次聚类法根据层次分解的顺序分为:自底向下和自上而下,即凝聚的层次聚类算法和分层聚类算法(agglomerative和divisive),也可以理解为自下而上法(bottom-up)和自上而下法(top-down) 层次聚类 树形图分类判断 K-Means与层次聚类 每一种聚类方法都有其特征的数据结构,对于服从高斯分布的数据用K-Means来进行聚类效果会比较好。 而对于类别之间存在层结构的数据,用层次聚类会比较好。
密度聚类DBSCAN
算法:
需要两个参数:eps和形成高密度区域所需要的最少点数(minPts)
- 它由一个任意未被访问的点开始,然后探索这个点的eps邻域,如果eps邻域里有足够的点,则建立一个新的聚类,否则这个点被标签为杂音。
- 注意,这个杂音点之后可能被发现在其它点的eps邻域里,而该邻域可能有足够的点,届时这个点会被加入该聚类中。
|