一欧元滤波器(OneEuroFilter)

在查阅人脸关键点防抖动相关资料时,留意到一篇2012发布的防止抖动滤波器—–一欧元滤波器

论文:
Casiez, G., Roussel, N., & Vogel, D. (2012). 1€ filter: a simple speed-based low-pass filter for noisy input in interactive systems. In Proceedings of the SIGCHI Conference on Human Factors in Computing Systems (pp. 2527–2530). ↩︎
http://www.lifl.fr/~casiez/publications/CHI2012-casiez.pdf

1. 介绍

本文探讨了 1€ 滤波器,这是一种用于过滤噪声实时信号的简单但功能强大的算法。文章侧重于算法的实际实现,涵盖了算法的数学基础、伪代码实现和简单、纯 Python 实现。要了解过滤器的工作原理和方式,我们建议阅读原始文章 1。

2. 1€ Filter

1€ 滤波器是用于实时过滤噪声信号的低通滤波器。它也是一个只有两个可配置参数的简单过滤器。时间 T i T_i T i ​ 处的信号表示为 X i X_i X i ​,滤波后的信号表示为值 X ^ i \hat{X}_{i}X ^i ​。滤波器使用 指数平滑

X ^ 1 = X 1 X ^ i = α X i + ( 1 − α ) X ^ i − 1 , i ≥ 2 \begin{gathered} \hat{X}{1}=X{1} \ \hat{X}{i}=\alpha X{i}+(1-\alpha) \hat{X}_{i-1}, \quad i \geq 2 \end{gathered}X ^1 ​=X 1 ​X ^i ​=αX i ​+(1 −α)X ^i −1 ​,i ≥2 ​

其中平滑因子 α ∈ [ 0 , 1 ] \alpha \in[0,1]α∈[0 ,1 ] 不是一个常数,而是自适应的,即使用有关信号变化率(速度)的信息动态计算。自适应平滑因子旨在平衡抖动与滞后的权衡,因为人们对低速时的抖动敏感,而对高速时的滞后更敏感。平滑因子定义为:

α = 1 1 + τ T e \alpha=\frac{1}{1+\frac{\tau}{T_{e}}}α=1 +T e ​τ​1 ​

其中 T e T_{e}T e ​ 是根据样本之间的时间差计算得出的采样周期
T e = T i − T i − 1 T_{e}=T_{i}-T_{i-1}T e ​=T i ​−T i −1 ​

τ \tau τ 是使用截止频率计算的时间常数
τ = 1 2 π f C . \tau=\frac{1}{2 \pi f_{C}} .τ=2 πf C ​1 ​.

截止频率 f C f_{C}f C ​ 随着变化率(即速度)的增加而线性增加
f C = f C min ⁡ + β ∣ X ˙ ^ i ∣ f_{C}=f_{C_{\min }}+\beta\left|\hat{\dot{X}}_{i}\right|f C ​=f C min ​​+β∣∣∣​X ˙^i ​∣∣∣​

其中 f C min ⁡ > 0 f_{C_{\min }}>0 f C min ​​>0 是最小截止频率,β > 0 \beta>0 β>0 是速度系数,X ^ i \hat{X}{i}X ^i ​ 是过滤后的变化率。我们定义变化率 X ^ i \hat{X}{i}X ^i ​ 作为信号的离散导数
X ˙ 1 = 0 X ˙ i = X i − X ^ i − 1 T e , i ≥ 2 \begin{gathered} \dot{X}{1}=0 \ \dot{X}{i}=\frac{X_{i}-\hat{X}{i-1}}{T{e}}, i \geq 2 \end{gathered}X ˙1 ​=0 X ˙i ​=T e ​X i ​−X ^i −1 ​​,i ≥2 ​

然后使用具有恒定截止频率 f C d f_{C_{d}}f C d ​​ 的指数平滑 (1) 对其进行滤波,默认情况下 f C d = 1 f_{C_{d}}=1 f C d ​​=1 。

3. 调整过滤器

模型中有两个可配置参数,最小截止频率 f C min ⁡ f_{C_{\min }}f C min ​​ 和速度系数 β \beta β。降低最小截止频率会降低慢速抖动。增加速度系数会减少速度滞后。

参考:

Original: https://blog.csdn.net/weixin_41967328/article/details/124606824
Author: 胖胖腐乳
Title: 一欧元滤波器(OneEuroFilter)

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/622917/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球