SLAM技术交流视觉slam与三维重建

harris角点检测

2020-05-11  本文已影响0人  低调小帅哥

一:harris基础

计算点(u,v)处的harrirs响应,实际是计算两个窗口内所有像素值得加权差异

以像素点(u,v)为中心的窗口W1经过平移(\Delta u,\Delta v)得到窗口W2,两个窗口像素差异定义为:

E(\Delta u,\Delta v)=\sum_{x,y}   \omega (x,y)[I(x+\Delta u,y+\Delta v) -I(x,y) ]

                                \approx \sum_{x,y}\omega (x,y)[\frac{δI}{δx}(x,y)\Delta u+\frac{δI}{δy} (x,y)\Delta v ]²

                        =[\Delta u,\Delta v]H[\Delta u,\Delta v]^T

其中:

(x,y)为窗口W1内的像素点,(x+\Delta u,y+\Delta v)为窗口W2内像素点。

\omega (x,y)=\frac{e^{-(x^2 +y^2)}}{2\sigma ^2} 为窗口内的高斯卷积核(和窗口同样大小)

H=\sum_{x,y}  \left[\begin{matrix}
  w(x,y)\cdot  (\frac{\delta I}{\delta x}(x,y))^2   & w(x,y)\cdot  \frac{\delta I}{\delta x}(x,y)\cdot \frac{\delta I}{\delta x}(x,y)  \\
  w(x,y)\cdot  \frac{\delta I}{\delta x}(x,y)\cdot \frac{\delta I}{\delta x}(x,y) &  w(x,y)\cdot (\frac{\delta I}{\delta y}(x,y))^2  
  \end{matrix}
\right]

二:计算流程

1)计算梯度图X,Y

            X=I\otimes (-1,0,1)

            Y=I\otimes (-1,0,1)^T

2)计算梯度图的卷积

            A=X\cdot X\otimes w

            B=Y\cdot Y\otimes w

            C=X\cdot Y\otimes w

其中\cdot 为梯度图矩阵对应位置相乘,w为5x5高斯卷积核(也可以为其他大小的高斯卷积核)

则:

            H=\left[\begin{matrix}
   A(u,v) & C(u,v) \\
   C(u,v) & B(u,v) 
  \end{matrix}
\right]

3)计算每个像素点(u,v)的harris响应值

设矩阵H的特征值分别为\alpha ,\beta ,则:

            Tr(H)=\alpha +\beta =A(u,v)+B(u,v)

            Det(H)=\alpha \beta =A(u,v)B(u,v)-{C(u,v)}^2

像素点(u,v)的harris的响应值(response)为:

            R(u,v)=Det(H)-k\cdot {Tr(H)}^2

其中k=0.04(也可以为其他值),如果R(u,v)>M,则点(u,v)为预选harris角点

4)harris角点筛选

对步骤3中的预选harris角点执行非极大值抑制,得到最终的harris角点。

上一篇 下一篇

猜你喜欢

热点阅读