Why Extract Features?
- Robot Localization
- 3D object recognition
- 图像拼接,两张图拼成一个视角更大的图
Advantages of Local Features
- Locality:局部性(局部特征,抗遮挡等干扰)
- Quantity:数量较多(一张图像中可能提取几百几千个)
- Dintinctiveness:区别性比较好,毕竟要具有代表性,unique
- Efficency:高效性(这个主要看提取原则)
The Feature Matching Problem
- 首先找到一个好的点
- 然后找到对应的点(再另一个变化的图上)
- 总的来说就是两个层面:检测和描述,且 invariant to transformation(拉伸、光照变化、转换)。
Detection: What Makes a Good Feature?
Look for image regions that are unusual.
How to define "unusual"?
Harris conner detector.
这篇讲Harris conner detector的也不错。
由图可知unique区域一般在什么地方。再看下其数学定义,是一个关于u、v的函数。
注意,窗口移动的方向是很多的,不只垂直、水平(任意u、v方向移动)。窗口计算是SSD(对应元素相减求平方然后加起来,当然也可以加权,比如高斯加权)计算的。
为了分析方便,进行数学分析:
- 假定(u,v)很小
- 假定连续
上面那个推导并不难,主要是那个一阶泰勒近似等价(推导的关键),那个是关键。牛逼。注意下面:
绝大多数信息在M里面,分析M可以知能量函数的情况。
注意:A、B、C都是与一阶导相关的,能量函数是一个二次曲面。
我们找个等高线的截面。解出来一个椭圆?
椭圆的长短轴是有物理含义的,分别对应矩阵M的特征值的倒数成比例关系。长轴和小特征值的倒数成比例关系。。自然。。。
特征值对应的特征向量的方向就是对应的椭圆的轴的方向。
短轴是能量增长最快的方向,长轴。。。
特征向量~回忆一下:Ax = ax;(想想怎么说?把矩阵A看成变换)
长短轴是一个区间(理解下这句话啥意思)。看上面的图两个特征值都应该稍微大一些,这样的话长轴和短轴都不会太长,那么在各个方向变化应该都比较大。。。现在理解了么?
两个特征值分别是能量增长最大、最小的方向!
非极大值抑制,这个怎么理解?
局部最大搜索?
这个经常会用在物体检测上~暂时先浅显的理解下。
Feature Dector Invariance
- 旋转,是否还能检测到?
- 如果改变光照么?
- 尺度缩放呢?
- 或者上面的变化的综合呢?
接下来看看Harris corner的一些性质
- Rotation Invariance 这里需要从能量函数的物理意义入手。能量函数是一个二次曲面,我们截等高线的图,然后分析两根轴的长短来分析是否为角点。R是不变的!
- 加减像素值,也不影响响应值R,因为M不变;乘除倍数,会有一定影响,但是问题不大,想想为啥?因为M变了,但是总体问题不大。
- 但是Harris corner 不能解决尺度问题,因为我们的window size是固定的。
如何解决尺度不变性问题?
思路:自动决定window size,根据图像的内容?怎么做?
谭平老师的拓展内容?
如何衡量Feature detector?