全局例如颜色、纹理这些描述图片,今天我们在完成傅里叶变换和拉普拉斯变换前我们介绍一下什么是 harris 角点检测,要不总是理论和公式推导比较枯燥乏味,大家可能感觉不给力。
局部特征
局部特征包括边特征、角点特征点,通过提取这些特征点可以帮助我们分析物体在空间上运动。在 3D 重建和照相机推导问题中也会用到局部特征点检测,今天介绍 harris 角点检测
Haars特征原理
角点的用途
我们需要用一些特征来表述图片,角点作为图片的一个特征,可以用于描述图片中一些位置信息,尤其对于图像中的物体定位特别有用。
如何识别角点
那么首先我们需要区分边和角,并行于边方向变化像素灰度变化不大,垂直方向像素变化大。那么相对于边角点在各个方向上都变化就认为是边。
harris_1.jpeg- (flat) 在任意方向没有明显的变化
- 边(edge) 沿边方向没有明显的变化
- 角点(corner) 在所有方向都有变化
公式推导
在推导过程中我们会用到高等数学的知识,
- w 我们暂时忽略考虑 w,在窗口 w 内的值全部都为 1 而窗口外面的值都 0
- UV u 表示向竖直方向移动一个,v 表示水平单位
- w 窗口会包括一定数量像素,数量根据 w 窗口的大小而定。w 窗口内每一个点位置是由 x 和 y 而定,然后移动窗体 w 水平方向 u 距离,在垂直方向移动 v 距离后得到新窗口,那么新窗口包括点位置就是对应点就是 (x+u,y+v) 通过对相对于窗口相同位置两次对应点进行差值后平方在取和来表示变化率,变换率越大说明这里就是边或角点,如果是角点我们就是希望无论窗口向哪个方向移动,变化率都要比较低。
高斯核(窗口)权重分布按高斯分布,距离中心的权重较高,四周的权重较小。
harris_window_uniform.png
这样卷积核(窗口)内点值为 1 窗口外点都为零。
好了现在我们明确目标,完成对角点检测的建模。
泰勒展开
上面是泰勒展开,不过这里我们这里只需要泰勒展开一阶导数
上面推导应该不难理解,这里用泰勒一阶展开式将方程进行化简。
然后我们将上面线性方程写出矩阵的形式
因为求和是和x和y 相关与 u和 v 相关可以将求和sigma移动到内部矩阵
在 u v 取任意值,都让 E(u,v)尽量大,我们在方程进行化简一下。
在继续进行化简我们需要了解什么实对称矩阵,以及什么是
如果有n阶矩阵A,其矩阵的元素都为实数,且矩阵A的转置等于其本身(aij=aji)(i,j为元素的脚标),则称A为实对称矩阵。
我们知道实对称矩阵是可以相似对角化,那么什么是相似对角化呢,他定义是假设 A 为 n 阶方阵,若存在可逆矩阵P,使得 其中 是对角矩阵,则称矩阵 A 可视化。
有了上面实对称矩阵和相似对角化的知识,我们就可以将 M 进行变换为上面矩阵并且 P 是正交矩阵,所以 P 的转置等于 P 的逆。
有了实对称矩阵 M ,这个可以根据上面实对称矩阵定义而知,然后将 P 的转置写成 P 的逆,然后我们可以 P 和 uv 矩阵进行合并,因为 P是正交矩阵所以相当对矩阵进行旋转操作。经过一系列化简我们发现如果想让E(u,v)尽可能大,就得让 和尽可能大。而且从形式上看这就是一个椭圆方程,那么椭圆中方程 以及
harris_region.jpg那么到现在我们明白了上图和 含义,以及他们不同取值会得到不同特征,如果其中一个lambda 很大就是边,如果两个 lambda 都很大就是角点。
为了方便描述 lambda1 和lambda2 都大,方便计算对行列式也就是特征值的乘积也就是lambda1 和lambda2乘积,对角线元素和就是
计算出 R值就是每一个像素点得分,越大得分越大。
网友评论