特征匹配

目标

  1. 同时辨认3D中的目标及其姿势:这意味着咱们不只要辨认出目标,还要确认它在三维空间中的方位和方向。
  2. 在多个视图中盯梢特征:在不同的图画或视频帧中,要能够辨认和追寻同一个特征。

应战

  1. 由于姿势、光线等的改变,特征在每个视图中的外观会有所不同:例如,由于光线的视点或强度改变,或是目标从不同的视点拍照,同一个物体的同一个特征在不同的图画中或许会有不同的外观。
  2. 在一个视图中可见的某些特征在另一个中或许会缺失:例如,当物体旋转时,之前可见的某个特征或许被遮挡或移出视野。
  3. 背景或许包括类似的“匹配”特征:这意味着背景中或许有与要盯梢的目标类似的特征,这或许会导致误匹配或混淆。

特征匹配作为模型拟合(Feature matching as model fitting)

  1. 不只仅是寻觅相同的特征,而是寻觅相同的空间摆放的特征:这意味着在进行特征匹配时,咱们不只要看这些特征是否类似,还要看它们之间的相对方位或摆放是否类似。

  2. 模型拟合问题

    • 提出一个模型来解说匹配点之间的对应联系:简略地说,就是找到一个数学模型或公式,使得经过这个模型,咱们能够解说或猜测一组点在另一个图画或视角下的方位。
    • 找到契合模型的点/测量拟合度/找到模型参数:这个过程涉及到实践地运用模型去找到或验证匹配的点,并对模型的准确性进行评估,还或许包括优化模型参数以取得更好的匹配结果。
  3. 问题

    • 离群值 (数据不被模型解说 – Outliers) :在实践数据中,总会有一些点或特征与大多数数据不符或不适用于咱们的模型,这些点称为离群值。
    • 模型所解说的数据中的噪声 (Noise):即便某些数据点被模型很好地解说了,但由于各种原因(如传感器差错、环境要素等),这些数据点或许仍然包括噪声或差错。

霍夫改换(Hough Transform)

  • 每个边际点“投票 (vote)”给经过该点的直线。
  • 辨认得票最多的直线。
特征匹配(Feature Matching)
  • 假如点的方位没有噪声,那么辨认得票最多的参数是容易的。
  • 通常状况下,存在一些噪声。
特征匹配(Feature Matching)
  • 解决噪声的办法:参数分箱
  • 点为分箱投票
特征匹配(Feature Matching)

为了应对由于噪声导致的不准确性,能够运用“参数分箱”的办法。也就是说,不是让每个点为一个详细的参数值投票,而是为一个参数规模或“箱子”投票。这样,即便由于噪声导致点的方位有些偏离,它仍然会落入相应的箱子内,然后提高了检测的稳定性和准确性。

另一个问题:斜率和截距 (m,b) 是无界的。

解决方案:运用 (m,b) 的极坐标表示法。

特征匹配(Feature Matching)

参数

  1. 分箱巨细:在参数空间中,将连续的值划分为离散的“箱子”或规模。这有助于削减噪声对直线检测的影响。
  2. 峰值阈值:这是确认一个分箱是否包括一个有用直线的最小票数。只要当票数超越这个阈值的分箱才被认为是代表一个有用的直线。
  3. 峰值数量(= 直线数量) :这是你想从霍夫改换中检测到的直线的最大数量。
  4. 最小直线/线段长度:检测到的直线或线段应该至少有这么长才会被考虑。
  5. 允许的最大空隙:假如两个线段之间的间隔小于这个值,它们能够被视为同一条直线的一部分。

Hough 改换中的峰值

当咱们对图画中的边际点进行霍夫改换时,每个边际点都会为或许经过它的一切直线投票。这些投票在参数空间中累积。当某个区域的投票数达到一个明显的高值(即峰值),这意味着图画中有许多边际点支撑该区域表示的直线存在。

因而,经过在霍夫空间中寻觅峰值,咱们能够确认图画中存在的直线及其参数。每一个峰值都对应于图画中的一个或多个直线。这些峰值的高度(即票数)能够用于过滤出激烈支撑的直线,并舍去只是由噪声或其他不相关要素导致的假阳性直线。

特征匹配(Feature Matching)

Hough 改换的功率

  1. 霍夫改换是一种对参数的网格查找:这意味着霍夫改换实践上是在参数空间的离散网格上进行查找,企图找到最佳的参数组合(即直线、圆或其他形状的参数),这些参数组合能够最好地匹配输入图画中的数据。
  2. 当N个参数添加时会发生什么? :随着参数数量N的添加,查找空间(即参数空间)的维度也会添加。这意味着核算的杂乱度将明显添加。详细地说,假如每个参数都需求相同数量的网格单元,那么总的网格单元数量将成指数地增长。这会导致霍夫改换需求更多的核算资源和时间。此外,随着维度的添加,或许还会遇到所谓的“维度的诅咒”问题,这意味着在高维空间中,数据的分布和行为或许与低维空间中的状况彻底不同,这或许会影响检测的准确性。

小结

  • 霍夫改换是一种用于检测图画中结构的办法。
  • 每个像素为参数“投票”。
  • 常见使用:
    • 直线检测
    • 圆检测
  • 本质上是对每个参数的一切或许值进行的网格查找,所以仅限于少量几个参数。

RANSAC

  1. RANSAC = RANdom Sample Consensus(随机抽样一致性) :RANSAC是一种迭代办法,用于从包括许多离群点的数据中估算数学模型的参数。

  2. 像霍夫改换相同,点“为解说它们的模型投票” :这意味着在RANSAC中,咱们不是简略地为一个参数组合或模型投票,而是查看哪个模型最好地解说了数据点的调集。

  3. 迭代地

    • 随机抽取N个点:为了估计模型,首先随机选择数据中的N个点。
    • 核算模型参数:运用这N个点来核算模型的参数。
    • 核算被模型解说的点数(内点) :之后,查看整个数据会集有多少点契合这个模型,这些点被称为内点。
    • 最佳模型 = 解说最多点的模型:在屡次迭代中,那个解说了最多点的模型被视为最佳模型。

RANSAC办法特别适用于那些数据中含有大量噪声或离群点的状况,它能够有用地找到最有或许的模型参数。

线拟合过程(Line fitting)

  1. 随机从数据中抽取少量点(例如,对于直线拟合,抽取2个点)
  2. 找到线的参数(Line Parameters)
  3. 核算内点数量(跟线拟合的点)

重复以上过程直到达到最大迭代次数

最终的模型:拥有最高的 N 的模型

运转第一步:随机从数据中抽取少量点(例如,对于直线拟合,抽取2个点)

特征匹配(Feature Matching)

运转第二步:找到线的参数(Line Parameters)

特征匹配(Feature Matching)

运转第三步:核算内点数量(跟线拟合的点)

特征匹配(Feature Matching)

一直重复以上过程,最后回来 NinlierN_{inlier} 最大的模型

特征匹配(Feature Matching)

RANSAC 的参数

  1. 迭代次数(Number of iterations):应当满足多,确保在一切迭代中有高概率(如0.99)至少得到一个无离群点的样本。

    • 考虑要素:假如数据中离群点较多,需求添加迭代次数以取得良好的模型。
  2. 内点阈值(Threshold for inliers):设定一个间隔阈值,确认哪些点与估计的模型满足挨近,然后能够被视为内点。

    • 选择原则:即便在噪声的影响下,良好的数据点也应有高概率(如0.95)被认为是内点。

使用(Application)

特征匹配(Feature Matching)

特征匹配(Feature Matching)

特征匹配(Feature Matching)

问题:许多要害点,许多类似的特征 – 很或许出现过错匹配。

为了更稳健的匹配,能够考虑运用比率(ratio),即最佳匹配的类似性与次佳匹配的类似性之比。

削减过错的匹配

特征匹配(Feature Matching)

匹配

全面匹配的问题

  • 运用穷举法进行特征匹配十分慢,其时间杂乱度为O(m*n)。其间,m和n分别是两张图片中要害点的数量。

更高效的选择

  • 运用近似的最近邻办法。
  • 这种办法更快,但或许无法找到最挨近的匹配。
  • 即便运用比率匹配,过错匹配的份额或许仍然很高。

第三步:运用RANSAC办法

  • 用RANSAC找到能够由某种改换模型解说的匹配子集。

改换(Transformations)

仿射改换(Affine transformation)

仿射改换是一种二维或三维空间中的线性改换,它坚持了点、直线和平面之间的平行联系。这意味着平行的线在改换后仍然是平行的。常见的仿射改换包括平移(移动物体而不旋转或改变其巨细)、缩放(增大或减小物体的巨细)、旋转(围绕一个点旋转物体)和剪切(沿一个轴将物体斜切)等。经过组合这些基本改换,咱们能够完成更杂乱的空间改换作用。

特征匹配(Feature Matching)

射影改换(Projective transformation)

射影改换,也被称为单应性改换或透视改换,是图画处理和核算机视觉中的一种更为通用的改换。与仿射改换不同,射影改换不只能够进行平移、缩放、旋转和剪切,还能够进行透视扭曲,使得物体在透视投影下看起来是实在的。射影改换在处理相机拍照的实在场景图片时特别有用,由于相机通常会引进透视扭曲。简略地说,射影改换能够处理图画的深度和透视作用,使得远处的物体看起来更小,而近处的物体看起来更大。

特征匹配(Feature Matching)

仿射改换 Vs. 射影改换

仿射改换

  • 直线映射为直线。
  • 平行线仍坚持平行。
  • 份额得以坚持。

特征匹配(Feature Matching)

射影改换

  • 直线映射为直线。
  • 平行线或许不再坚持平行。
  • 份额不再得以坚持。

特征匹配(Feature Matching)

2D 平面改换(2D planar transformations)

特征匹配(Feature Matching)

需求多少点来定义一个射影改换

射影改换能够包括缩放(scaling)、旋转(rotation)、仿射位移(affine shift)和射影扭曲(warp)的任意组合。

一个点不足以辨认任何改换

特征匹配(Feature Matching)

两个点 – 无法区别缩放(scaling)、位移(shift)和扭曲(warp)的不同组合

特征匹配(Feature Matching)

三个点 – 满足辨认仅为仿射的改换。 但无法区别仅为仿射和射影改换

特征匹配(Feature Matching)

四个点 – 唯一的解决方案!

特征匹配(Feature Matching)

小结

  • 运用RANSAC的特征匹配在不同的图片中找到匹配的要害点。

  • 在不同的视图中找到匹配点,并核算相关这些点的改换。

  • 使用:

    • 实例辨认(Instance recognition)
    • 视频稳定化(Video stabilisation)
    • 全景图拼接(Panorama stitching)
    • 在图画中找到平面、消失点等(Finding planes, vanishing points, etc. in images)
    • 3D重建(3D reconstruction)