亚像素数值极值检测算法总结

本文总结了计算机视觉中亚像素数值极值检测的几种常见算法,包括高斯近似、抛物线近似、质心算法、线性插值和数值微分滤波。这些方法通过对离散数据的邻域信息进行模型拟合,从而估算出极值点的亚像素位置。在实际应用中,选择哪种算法取决于准确性和速度的需求。
摘要由CSDN通过智能技术生成

动机

在计算机视觉领域,经常需要检测极值位置,比如SIFT关键点检测、模板匹配获得最大响应位置、统计直方图峰值位置、边缘检测等等,有时只需要像素精度就可以,有时则需要亚像素精度。本文尝试总结几种常用的一维离散数据极值检测方法,几个算法主要来自论文《A Comparison of Algorithms for Subpixel Peak Detection》,加上自己的理解和推导。

问题定义

给定如下离散值,求其极值位置。可知125为观察极值。

[ 60 , 80 , 100 , 120 , 125 , 105 , 70 , 55 ] [60, 80, 100, 120, 125, 105, 70, 55] [60,80,100,120,125,105,70,55]

如果这些离散值是从某个分布 f f f中等间距采样获得,其真正的极值位置应位于120和125之间。

下面给出形式化的定义:给定一组离散值,令 x x x为观测到的极值点位置,其值为 f ( x ) f(x) f(x),其左右相邻位置的值为 f ( x − 1 ) f(x-1) f(x1) f ( x + 1 ) f(x+1) f(x+1),真正的极值点位置为 x + δ x+\delta x+δ,令 δ ^ \hat{\delta} δ^ δ \delta δ的估计值。

算法

假设** x x x的邻域**可通过某个模型进行近似,如高斯近似、抛物线近似,则可以利用 x x x的邻域信息根据模型估计出极值。使用的模型不同就有不同的算法,具体如下。

高斯近似

一维高斯函数如下:

y = y m a x ⋅ e x p ( − ( x − μ ) 2 2 σ 2 ) y = y_{max} \cdot exp(-\frac{(x-\mu)^2}{2\sigma^2}) y=ymaxexp(2σ2(xμ)2)
y m a x = 1 2 σ π y_{max}=\frac{1}{\sqrt{2\sigma}\pi} ymax=2σ π1时为标准高斯函数,形如

标准高斯函数

假设 x x x的邻域可用高斯近似,用 ( x , f ( x ) ) (x, f(x)) (x,f(x)) ( x − 1 , f ( x − 1 ) ) (x-1, f(x-1)) (x1,f(x1)) ( x + 1 , f ( x + 1 ) ) (x+1, f(x+1)) (x+1,f(x+1))三点对高斯函数进行拟合,获得模型参数 μ \mu μ即为峰值位置, δ ^ = μ − x \hat{\delta}=\mu - x δ^=μx。将三点带入上面的高斯函数两边同时取对数求得:

δ ^ = 1 2 ln ⁡ ( f ( x − 1 ) ) − ln ⁡ ( f ( x + 1 ) ) ln ⁡ ( f ( x − 1 ) ) − 2 ln ⁡ ( f ( x ) ) + ln ⁡ ( f ( x + 1 ) ) \hat{\delta} = \frac{1}{2} \frac{\ln(f(x-1)) - \ln(f(x+1))}{\ln(f(x-1)) - 2\ln(f(x)) + \ln(f(x+1))} δ^=21ln(f(x1))2ln(f(x))+ln(f(x+1))ln(f(x1))ln(f(x+1))

下面可以看到,高斯近似相当于取对数后的抛物线近似

抛物线近似

使用抛物线近似 x x x的局部,可以将 ( x , f ( x ) ) (x, f(x)) (x,f(x)) ( x −

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值