Fast-Hessian Detector
\begin{align}
\mathcal{H}(\mathbf{x}, \sigma) &= \left(\begin{array}{cc} L_{xx}(\mathbf{x}, \sigma) & L_{xy}(\mathbf{x}, \sigma) \\ L_{yx}(\mathbf{x}, \sigma) & L_{yy}(\mathbf{x}, \sigma) \end{array} \right) \\
L_{xy}(\mathbf{x}, \sigma) &= L_{yx}(\mathbf{x}, \sigma)
\end{align}
SURF(Speeded Up Robust Features)では上記で定義されるヘッセ行列に基づいて特徴量抽出を行います。式における$L_{xx}(\mathbf{x}, \sigma)$はスケール$\sigma$のガウス分布を用いた畳み込み処理の結果を$x$方向に2階微分した導関数に対応します。
SURFでは計算量の削減にあたって上図のようなフィルタで近似的な処理を行います。上記の理解にあたっては下記のように標準正規分布の確率密度関数の1階と2階の導関数の計算とグラフの描画を行うとわかりやすいです。
\begin{align}
f(x) &= \frac{1}{\sqrt{2 \pi}} \exp{ -\frac{2 x^2}{2} } \\
f'(x) &= \frac{1}{\sqrt{2 \pi}} \exp{ -\frac{2 x^2}{2} } \times (-x) \\
&= -\frac{x}{\sqrt{2 \pi}} \exp{ -\frac{2 x^2}{2} } \\
f^{''}(x) &= -\frac{1}{\sqrt{2 \pi}} \exp{ -\frac{2 x^2}{2} } - \frac{x}{\sqrt{2 \pi}} \exp{ -\frac{2 x^2}{2} } \times (-x) \\
&= \frac{(x^2-1)}{\sqrt{2 \pi}} \exp{ -\frac{2 x^2}{2} }
\end{align}
import numpy as np
import matplotlib.pyplot as plt
import seaborn as sns
sns.set_theme()
x = np.arange(-5., 5.01, 0.01)
y1 = -x*np.exp(-x**2/2.)/np.sqrt(2*np.pi)
y2 = (x**2-1)*np.exp(-x**2/2.)/np.sqrt(2*np.pi)
plt.plot(x, y1)
plt.savefig("SURF1.png")
plt.plot(x, y2)
plt.savefig("SURF2.png")