消失点:Fast and Accurate Vanishing Point Detection in Complex Scenes

消失点:Fast and Accurate Vanishing Point Detection in Complex Scenes


文章中算法的大体框架如下:
在这里插入图片描述

首先,通过WOD获取图像的特征。然后,基于差励计算出有效的道路线索。最终,使用文中提出的line-voting scheme (LVS)检测出主消失点。

1.韦伯定律

韦伯定律是表明心理量和物理量之间关系的定律,即感觉的差别阈值跟随原来刺激量的变化而变化,而且表现为一定的规律性。它说,当一个刺激的变化(如声音,照明)小于原始刺激的常数比,它将被识别为背景噪声,而不是有效的信号。用公式来表示,就是:
Δ I I = k \frac{\Delta I }{I} = k IΔI=k

其中 I I I 为原刺激量(初始刺激强度), Δ I \Delta I ΔI 为此时的差别阈值(增量阈值), k k k 为常数,又称韦伯率。

1.1 WLD

由此引出了韦伯局部描述子(Weber Local Descriptor)来描述局部图像纹理特征。原始的WLD由两个部分组成:差励(differential excitation ξ w l d \xi_{wld} ξwld)方向( θ w l d \theta_{wld} θwld)

差励部分由两项的比例计算:

  1. 当前像素 p c p_c pc 和它的邻域 p i p_i pi k ∗ k k*k kk的内核)的相对光强差的和。
  2. 当前像素的光强 p c p_c pc

为了将结果限制在一个有限的区间范围内,采用了arctan函数来表达公式。因此,当前像素的差励可以计算为:
ξ w l d ( p c ) = arctan ⁡ ( ∑ i = 1 n ∣ p i − p c ∣ p c ) \xi_{w l d}\left(p_{c}\right)=\arctan \left(\sum_{i=1}^{n} \frac{\left|p_{i}-p_{c}\right|}{p_{c}}\right) ξwld(pc)=arctan(i=1npcpipc)

WLD的方向部分是一个梯度方向,可以快速的得到稳定的结果。Arctangent函数也可以用当前像素 p c p_c pc y y y 轴方向上的差值 d y ( p c ) d_y(p_c) dy(pc) 和在 x x x 轴方向上的差值 d x ( p c ) d_x(p_c) dx(pc) 的比例来计算。因此,在方向部分的差值可以计算为:
θ w l d ( p c ) = arctan ⁡ ( d y ( p c ) / d x ( p c ) ) \theta_{w l d}\left(p_{c}\right)=\arctan \left(d_{y}\left(p_{c}\right) / d_{x}\left(p_{c}\right)\right) θwld(pc)=arctan(dy(pc)/dx(pc))

1.2 WOD

虽然WLD有着小的计算复杂度,在运行速度上还算快,但是它降低了描述子的精度,因此它仅作为了消失点检测的基础。相比之下,文中设计了一款 Weber Orientation Descriptor,也由两个部分组成:更精确的差励和更精确的方向来解决文中 WLD 的缺陷。

差励的组成与之前不同,每一个相邻像素 p i p_i pi 被换成了所有相邻像素的平均光强 p ˉ i \bar{p}_i pˉi。这样,可以减少不同内核大小带来的相邻像素个数的影响。
G ( p c ) = arctan ⁡ ( p c − p ˉ i p c ) G\left(p_{c}\right)=\arctan \left(\frac{p_{c}-\bar{p}_{i}}{p_{c}}\right) G(pc)=arctan(pcpcpˉi)

在公式中,仅考虑 G G G 大于零的响应,因为在暗处和阴影区域的方向是不可信的。平方根函数被用在了上述函数的结果中。平方根函数的作用是:减小更大的值相对于更小的值的变化,使得差励部分对较小的值更为敏感。因此,差励被计算为:
ξ w o d ( p c ) = { G ( p c )  if  G ( p c ) ≥ 0 0  if  G ( p c ) < 0 \xi_{w o d}\left(p_{c}\right)=\left\{\begin{array}{ll} \sqrt{G\left(p_{c}\right)} & \text { if } G\left(p_{c}\right) \geq 0 \\ 0 & \text { if } G\left(p_{c}\right)<0 \end{array}\right. ξwod(pc)={G(pc) 0 if G(pc)0 if G(pc)<0

在WLD中,方向部分仅使用到了在 x x x 轴与 y y y 轴方向的像素。它忽略了内核中其他像素的细节,这也许会导致在方向估计上的错误。我们使用 Gabor(加伯) filter,它可以使用内核中所有的像素,来更精准的估计在每个像素上的局部主要方向。Gabor 滤波器组是目前估计局部纹理方向的最佳滤波器之一,广泛应用于指纹分类等领域。一个二维的 k × k k\times k k×k(kernel_size) Gabor 内核 g g g,在一个特定的方向 φ n \varphi_n φn 和一个径向频率 ω \omega ω 下,可以表示为:
g φ n ( x , y ) = e − 1 8 σ 2 ( 4 a 2 + b 2 ) ⋅ ( i a ω − e c 2 / 2 ) g_{\varphi_{n}}(x, y)=e^{-\frac{1}{8 \sigma^{2}}\left(4 a^{2}+b^{2}\right)} \cdot\left(i a \omega-e^{c^{2} / 2}\right) gφn(x,y)=e8σ21(4a2+b2)(iaωec2/2)

该函数中, ( x , y ) = ( 0 , 0 ) (x,y)=(0,0) (x,y)=(0,0) 为内核中心位置; a = x cos ⁡ φ n + y sin ⁡ φ n a=x \cos \varphi_{n}+y \sin \varphi_{n} a=xcosφn+ysinφn b = − x sin ⁡ φ n + y cos ⁡ φ n b=-x \sin \varphi_{n}+y \cos \varphi_{n} b=xsinφn+ycosφn σ = k / 9 \sigma=k / 9 σ=k/9 c = 2.2 c = 2.2 c=2.2

为了估计在图像中每个像素位置 p c p_c pc 的主方向 θ a ( p c ) \theta_a(p_c) θa(pc),灰度输入图 I ( p c ) I(p_c) I(pc)使用了36个预定义方向 ( 0 ∘ , 5 ∘ , . . . 17 5 ∘ ) (0^\circ,5^\circ,...175^\circ) (0,5,...175)的一组Gabor滤波器卷积。Gabor energy E φ n E_{\varphi_{n}} Eφn被计算为复合滤波相应的幅值。
E φ n ( p c ) = Re ⁡ ( I ^ φ n ( p c ) ) 2 + Im ⁡ ( I ^ φ n ( p c ) ) 2 E_{\varphi_{n}}\left(p_{c}\right)=\operatorname{Re}\left(\hat{I}_{\varphi_{n}}\left(p_{c}\right)\right)^{2}+\operatorname{Im}\left(\hat{I}_{\varphi_{n}}\left(p_{c}\right)\right)^{2} Eφn(pc)=Re(I^φn(pc))2+Im(I^φn(pc))2

其中 I ^ φ n ( p c ) = I ( p c ) ⊗ g φ n \hat{I}_{\varphi_{n}}\left(p_{c}\right)=I\left(p_{c}\right) \otimes g_{\varphi_{n}} I^φn(pc)=I(pc)gφn ⊗ \otimes 代表卷积算子。卷积结果 I ^ φ n ( p c ) \hat{I}_{\varphi_{n}}\left(p_{c}\right) I^φn(pc)由两部分组成,一个实部 R e Re Re 和一个虚部 I m Im Im。因此我们计算复合响应的平方范数来获得稳定的局部纹理特性。

最终,滤波器给出最大复合相应的方向,被选为了实际方向,即:
θ w o d ( p c ) = Argmax ⁡ φ n E φ n ( p c ) \theta_{w o d}\left(p_{c}\right)=\operatorname{Argmax}_{\varphi_{n}} E_{\varphi_{n}}\left(p_{c}\right) θwod(pc)=ArgmaxφnEφn(pc)

算法实现

获得WOD

给定一个输入图像,首先使用中值滤波卷积来降低噪声和图像缺陷。图像被转换成了灰度空间, ξ w o d \xi_{w o d} ξwod θ w o d \theta_{wod} θwod 将通过WOD模型获得。

一个比较重要的需要考虑的点是如何在WOD中设定内核大小 k k k 的值。更大的 k k k 值可以让更多的纹理信息被考虑,但会使结果缺少局部代表性。

提取道路线索区域

根据韦伯定律,任何有效区域仅当差励大于一个固定的比率 T T T 时才值得注意,而更小的被当成了背景噪声。减小背景噪声的效果可以提高模型的精度。更多的道路线索,能得到更准确的结果。因此, T T T 需要被设置的足够小。

LVS获得消失点

在完成了上述的步骤之后,可以为图像区域的消失点投票。投票的方案有:hard-voting scheme, soft-voting scheme, weighting-voting scheme。文中提出了line-voting scheme(讲道理,这个时间复杂度有点长(等等,我可以试试,累加器只用中间特别小的一部分,因为消失点的上下浮动区域会特别小))。

首先,构建一个与图片大小相同的累加器空间,将值均设为0。然后,有效区域内的每一个像素都可以被看成一个 voter,如果候选消失点在它的位置和方向的线上,所对应的累加器位置值增加1。最终,累加器值最大的位置被选定为所估计的消失点。

  • 3
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

泠山

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值