关键点,描述子
在进行图像匹配的时候,为加快速度,也为了去除干扰,我们常常通过图像的关键点进行匹配。
图像的角点、斑点等称为关键点。为使得关键点具有区分度(high variance)。我们使用一组向量来对关键点进行描述,称这组向量为描述子(描述量)。这组向量可以是直接对关键点周围patch的像素进行展开,可以使用关键点周围的梯度统计直方图构建,当然也有许多其它的方法。我们这里介绍的是所谓的二进制描述量,即通过一连串的01序列构建的描述量。
BRIEF
为使得不同光照,视角下同一个关键点的描述子尽量相似,于是我们需要使得描述量具有某种不变性。
一个直观的获得光照不变性的方法是提取patch的相对亮度大小。即在patch中选两个点(pairwise point,pp),通过他们的大小关系确定描述量的一位。选取多个这样的点,我们就获得了多维描述量进行关键点的描述。
随机选取256对点生成描述量,我们得到了所谓的BRIEF(Binary Robust Independent Elementary Features)描述子。
rBRIEF
BRIEF描述子的点对是随机生成的,一个自然的疑问是不同的随机序列带来的效果是否一致?显然答案是否定的。
为了找出更优的描述量,我们从大数据集中提取了300k个特征点,对每个特征点使用M个不同的随机点对序列组成不同的向量,并合成一个 300k×M 的矩阵,矩阵每一列代表使用点对 ppi 取得的二进制数。将这些列向量按照他们的variance从大到小排列。然后使用贪心算法去掉相关度过高的列向量,取得最优的256个向量对应的点对位置。通过这些位置得到的描述量称为rBRIEF描述量。这是所谓的全局最优点对序列。ORB特征即采用了这个描述子。
BOLD
但是对于每一个关键点来说,全局最优的点对序列是否是最适合它的呢?答案也很明显。
为对每个特征点都找出最适合它的最优点序列,我们对每个关键点附近的patch生成多视角下的图像,然后求出最稳定的点对序列。由此于是我们得到了所谓的BOLD(Binary Online Learning Descriptor)描述子。
reference
[1]ORB: an efficient alternative to SIFT or SURF
[2]BOLD - Binary Online Learned Descriptor For Efficient Image Matching
[3]Brief: Binary robust independent elementary features