目录
一、视觉里程计(特征点在图像中的位置朝向、大小等信息)
特征点:特征点可以分为关键点(keypoint)和描述子(descriptor),关键点就是图中比较重要的位置,比如说角点。描述子就是对关键点进行描述,描述关键点周围的像素信息。比如说SIFT,提取SIFT关键点,计算SIFT描述子。但是对于FAST而言只有关键点没有描述子。ORB主要是由oriented FAST和BRIEF描述子组成。
二、FAST关键点(检测局部像素灰度明显的地方)
具体步骤
1、在图像中选取像素p,假设像素
2、设一个阈值T(比如的百分之20)
3、以p为中心,半径为3画一个圆,在圆的边缘选取16个像素点
4、16个像素点N>+T或者N<-T,则像素点p可认为是特征点
当像素点N取12时,FAST-12(即除去1,5,9,13剩下的点构成12个点)
当像素点N取9时,FAST-9
FAST角点存在的问题
1、数量大且不确定(确定一个特征点就需要十几个像素点和它做对比才能判断出它是否是特征点,而且由于有些地方亮度高,有些地方亮度低使这个判断并不是很准确)
2、FAST角点不具有方向信息
3、固定为3的圆存在尺度问题
解决方案
1、尺度不变性由构建图像金字塔
2、不具有方向信息通过灰度质心法
图像金字塔
1、如图下图所示,图像金字塔包括了四层图像,将这一层一层的图像比喻成金字塔。图像金字塔可以通过梯次向下采样获得,直到达到某个终止条件才停止采样,在向下采样中,层级越高,则图像越小,分辨率越低。
2、向上取样和向下取样
向上取样:相机远离图像,图像特征点变小,视野变大
(1)对图像Gi进行高斯卷积核(高斯滤波);
(2)删除所有的偶数行和列。
向下取样:相机靠近图像,图像特征点变大,视野变小
(1)在每个方向上扩大为原来的两倍,新增的行和列以像素0来填充;
(2)使用与''向下取样''同样的卷积核乘以4,获取''新增像素''的新值.
注:向上采样和向下采样无法互逆
灰度质心法
图像的质心即图像灰度的重心
质心位置坐标表达
例:
000 | 100 | 000 |
000 | 200 | 050 |
-255 | 000 | 200 |
求出质心坐标c(1.992,1.592)
从图像中心o(1.5,1.5)连接到质心坐标c(1.992,1.592)的向量为特征点的方向
三、BRIEF描述子(二进制描述子)
BRIEF算法的核心思想是在关键点P的周围以一定模式选取N个点对,把这N个点对的比较结果组合起来作为描述子。
SIFTF 对每个关键点生成128个特征向量作为描述子
SUFT对每个关键点生成64个特征向量作为描述子
采样方法
1)在图像块内平均采样;
2)p和q都符合(0,S2/25)的高斯分布;
3)p符合(0,S2/25)的高斯分布,而q符合(0,S2/100)的高斯分布;
4)在空间量化极坐标下的离散位置随机采样;
5)把p固定为(0,0),q在周围平均采样。
BRIEF描述子生成步骤
1.以关键点P为圆心,以d为半径做圆O。
2.在圆O内某一模式选取N个点对。这里为方便说明,N=4,实际应用中N可以取512.
假设当前选取的4个点对如上图所示分别标记为:
3.定义操作T
4.分别对已选取的点对进行T操作,将得到的结果进行组合。
假如:
四、特征匹配
1暴力匹配算法(bruteforce)
2、近邻匹配(FLANN)
随机k-d树算法(The Randomized k-d TreeAlgorithm)
k-d树算法就是要确定分割空间的分割线
split={0,1}
a、确定split域首先该取的值,分别计算x,y方向数据方差,x方向方差最大,split=0
b、确定node-date 的域值,根据x轴方向值2,5,9,4,8,7选出中值为7,node-data=(7,2)
c、确定左子空间和右子空间
d、生成k-d树
x,y表示以该节点分割左右子空间split所取得值
k-d树上的最近邻查找算法
''回溯''操作 从(7,2)--(5,4)--(2,3)
3、knn(k-nearest neighber)
近朱者赤近墨者黑
K:选取的最近邻样本实例的个数
k=3绿色判定为红色
k=5绿色判定为蓝色