欧博app:[Computer Vision]Harris角点检测的详细推导

admin 4周前 (06-14) 科技 4 0

Harris角点检测

头脑

为什么要检测角点呢?由于角点的特征对照显著。举行角点检测的质朴头脑是行使图像梯度,也就是凭据图像强度的转变来寻找角点。如图所示

这里举了个例子,给定一个小的区域(PatCh),当这个小区域在差别位置滑动的时刻,所出现出来的一些特征是差其余,凭据图示,有三个方面。

  • Flat,平的地方,在任何偏向,梯度都没什么转变。
  • Edge,边的地方,当沿着边偏向的时刻,梯度没什么转变。
  • Corner,角的地方,沿着任何偏向,梯度都有转变。

Error FunctI.N

\[E(u,v)=\sum_{x,y}{w(x,y)[I(x+u,y+v)-I(x,y)]^2} \]

  • \(x,y\)是相对于一个小patch来说的,例如一个5*5的区域
  • \((u,v)\)是一个很小的移动量
  • \(w(x,y)\)是windows function,也就是对于每个点的权重,例如想让中央的点权重高,可以用高斯核,一样平常就是全1或者高斯。
  • \(I(x,y)\)就代表图像在\((x,y)\)的强度值。
  • 后面做差实在就是类似求梯度一样

凭据之前的讨论,在一个patch里,如果有角点的存在,各个偏向的梯度值都很大,于是乎,我们的目的是让\(E(u,v)\)尽可能的大。
由于\((u,v)\)的值很小,以是我们可以行使二元函数的泰勒睁开,来近似盘算。
二元函数的泰勒睁开,固然扔掉了一些项。

\[f(x+u,y+v) \APProx f(x,y)+uf_x(x,y)+vf_y(x,y) \]

那么我们对Error function中的要害部门举行睁开

\[\begin{alIGned} [I(x+u,y+v)-I(x,y)]^2 &\approx [I(x,y)+uI_x+vI_y-I(x,y)]\\ &=(uI_x+vI_y)^2\\ &=[u,v] \begin{bmatrix} I_x^2 &I_xI_y\\ I_xI_y&I_y^2 \end{bmatrix} \begin{bmatrix} u\\v \end{bmatrix} \end{aligned} \]

以是Error Function可以近似为

\[E(u,v)\approx [u,v]M\begin{bmatrix} u\\v \end{bmatrix} \]

\[M= \sum_{x,y}{w(x,y) \begin{bmatrix} I_x^2 &I_xI_y\\ I_xI_y&I_y^2 \end{bmatrix} } \]

这就涉及到线性代数里的二次型问题了。

简朴的二次型

例如 \(f(x,y) = x^2+y^2\)的可以写作矩阵的形式

\[[x,y]\begin{bmatrix} 1 & 0\\ 0 & 1 \end{bmatrix} \begin{bmatrix} x\\y \end{bmatrix} \]

由中心这个矩阵来决议这个二次型的形状,由于我们研究的二次型只有两个变量,以是可以可视化来明白如下图所示。对形状矩阵可以举行特征剖析,分为中心的对角阵(对角线都是特征值)双方是特征向量。特征向量代表了椭圆切片的是非轴的偏向,而特征值平方根的倒数代表了轴的是非。至于为什么剖析完会和椭圆对应,线性代数书上会有。

这样就把Error Function给可视化了,有了几何寄义,加倍直观了。

  • Flat的时刻,\((u,v)\)往哪个偏向转变都不大,反应在几何上,应该是一个较为平展的面
  • Edge的时刻,\((u,v)\)往某个偏向转变大,反应在几何上,应该是某个偏向翘起。
  • Corner的时刻,\((u,v)\)往大部门偏向转变都大,反应在几何上,应该是大部门偏向都翘起。

如图所示

我们可以通过两个特征值之间的巨细关系,以及他们自身的关系来作为评估的依据。

Sunbet,进入申博Sunbet官网  第1张

当两个特征值都很大,且差不多时,意味着角点。

角点响应的器量

以上剖析了,要两个特征值都很大,且同时大,那怎么来器量?于是乎在最原始的论文里,这样界说了响应函数,而且对差其余\(\lambda\)有以下的响应图

\[R = det(M)-k(trace(M))^2\\ det(M) = \lambda_1\lambda_2\\ trace(M) = \lambda_1+\lambda_2 \]

\(k\)一样平常在是0.04-0.06

Sunbet,进入申博Sunbet官网  第2张

如图所示,黄色的线是等值线,代表\(R\)的值都相同,左上角是\((0,0)\)点,往右下角去\(R\)的值越大,代表角点的响应越高,图中画了个绿线,右侧的R值基本可以判断为是角点了。另外另有一些其余响应函数,基本大同小异吧。

算法

以是现在经由以上的剖析,总结一下角点检测的算法步骤。

  1. 盘算整个图像的梯度值\(I_x,I_y\)
  2. 对于每个像素的\(I_{x^2}=I_xI_x,I_{y^2}=I_yI_y,I_{xy}=I_xI_y\)
  3. 盘算每一个像素窗口的和,意思就是对于一个像素,界说一个领域例如5*5,就和之前提及的那样,然后盘算这个邻域内里所有第二步盘算出来的值的和。\(S_{x^2}=G_{\sigma}*I_{x^2},S_{y^2}=G_{\sigma}*I_{y^2},S_{xy}=G_{\sigma}*I_{xy}\)
  4. 对于每个点\((x,y)\),界说矩阵\(\begin{bmatrix}S_{x^2}&S_{xy}\\S_{xy}&S_{y^2}\end{bmatrix}\)
  5. 对于每个点,盘算响应值\(R=Det(H)-k(Trace(H))^2\)
  6. \(R\)设定阈值,而且盘算非极大值抑制(nonmax suppression, NMS),这个的意思应该就是好比5*5的邻域内有好几个点通过了阈值的筛选,那么选择最大的谁人,抑制其他的点。

一些特征

  • Harris角点响应具有旋转不变性,由于旋转不会改变特征值的巨细。
  • Harris角点响应对强度转变具有一定的不变性,缩放或者平移。由于经由缩放或者平移,最大值照样最大值,然则阈值可能要改改。
  • Harris角点响应纰谬尺度有不变性,改变尺度可能会改变检测的效果。可能在某一尺度下检测出为角点,而另一尺度检测出为边缘。

参考

  • [1]CSE486 PSU http://www.cse.psu.edu/~rtc12/CSE486/
  • [2]16-385 CMU 5http://www.cs.cmu.edu/~16385/
,

欧博APP

欢迎进入欧博APP(Allbet Game):www.aLLbetgame.us,欧博官网是欧博集团的官方网站。欧博官网开放Allbet注册、Allbe代理、Allbet电脑客户端、Allbet手机版下载等业务。

Sunbet声明:该文看法仅代表作者自己,与本平台无关。转载请注明:欧博app:[Computer Vision]Harris角点检测的详细推导

网友评论

  • (*)

最新评论

站点信息

  • 文章总数:950
  • 页面总数:0
  • 分类总数:8
  • 标签总数:1967
  • 评论总数:52
  • 浏览总数:5308