一、微分梯度(Derivative Gradients)

微分梯度方法仅需要在 $x$ 和 $y$ 两个方向上构造掩膜 $D_x, D_y$(模板匹配方法则需要设计很多模板)。掩膜后的结果为如下形式:

$$ g_x = \frac{\partial}{\partial x} f = D_x ☆ f, \ \ \ \ \ g_y = \frac{\partial}{\partial y} f = D_y ☆ f, \ \ \ \ \ \boldsymbol g = \begin{bmatrix} g_x \\ g_y \end{bmatrix} $$

故幅值和角度可以推导为:

$$ \|\boldsymbol g\| = \sqrt{g_x^2 + g_y^2}, \ \ \ \ \ \arg \boldsymbol g = \arctan \frac{g_y}{g_x} $$

二、模板匹配(Template)

构造多个模板 $T_i$,认为能取得最大响应的模板为与此邻域匹配的模板,模板的「幅度」即为其响应,模板的角度即为设计模板时赋予的角度。

$$ r_i = T_i ☆ f, \ \ \ \ \ k = \argmax_i r_i, \ \ \ \ \ r = r_k $$

1. 单一方向上的差分模板

差分所用的具体公式可以有很多种,只要是一种「方向性减法」即可。这里定义从上向下差分的线性运算和对应相关核如下,除了用上下方向的两个像素,还用了一部分对角像素上的信息,但比重较小;最终再对结果做一定比例的伸缩,以保证输入在区间 $[0, 1)$ 中的条件下,结果落在区间 $[-1, 1)$ 中:

$$ \begin{align*} 6r(x, y) = \ & 4s(x, y+1) - 4s(x, y-1) + \\ & s(x+1, y+1) + s(x-1, y+1) - s(x+1, y-1) - s(x-1, y-1) \end{align*} $$

$$ H_{\downarrow} = \frac 16\begin{bmatrix} -1 & -4 & -1 \\ 0 & 0 & 0 \\ 1 & 4 & 1 \end{bmatrix} $$

同理可以得到其他方向上的相关核。斜方向上的相关核 $H_\searrow$ 这里是根据权重大概进行定义的,后面将推导出用两个相关核做线性组合,得出任意方向上相关核的方法。

$$ H_\rightarrow = \frac 16\begin{bmatrix} -1 & 0 & 1 \\ -4 & 0 & 4 \\ -1 & 0 & 1 \\ \end{bmatrix}, \ \ \ \ \ H_\searrow= \frac 16\begin{bmatrix} -4 & -1 & 0 \\ -1 & 0 & 1 \\ 0 & 1 & 4 \\ \end{bmatrix} $$

2. 任意方向上的差分模板构造

根据线性代数的原理,我们可以得知 $H_{\downarrow}$ 和 $H_{\rightarrow}$ 可以线性组合出任意方向上的卷积核,具体说来,角度为 $\theta$ 的卷积核 $H(\theta)$ 的求法为:

Untitled

$$ H(\theta) = \cos \theta \cdot H_\rightarrow + \sin \theta \cdot H_\downarrow $$

具体公式如下: