UAV-Speed:基于 YOLO 目标跟踪与相机运动补偿的单目无人机车辆测速(二)——加权滑动平均速度优化

UAV-Speed:基于 YOLO 目标跟踪与相机运动补偿的单目无人机车辆测速(二)——加权滑动平均速度优化

文章目录


前言

在这里插入图片描述

在前期工作中,我们实现了一套基于单目无人机视频的车辆速度估计算法框架,结合目标检测、目标跟踪与单应性背景补偿,在复杂斜视场景下实现了连续的目标速度估计,并在多段真实无人机视频中完成了验证。(具体详情请看前文)欢迎大家给我们的项目点赞支持

相关代码与实验配置已开源于 GitHub:
👉 https://github.com/Thamkench/uav-speedlab

在进一步实验过程中发现,采用固定系数指数滑动平均(EMA)的速度平滑策略,在检测噪声、几何不稳定或目标接近图像边缘时,仍可能出现局部速度波动。为此,本文在原有框架基础上,引入了一种基于置信度加权的自适应速度平滑方法,将多种影响测速可靠性的因素统一纳入平滑权重设计中,以提升速度估计在真实场景下的稳定性与可解释性。


一、pandas是什么?

1. 背景与研究动机

在无人机测速模块的初始实现中,目标速度通常通过两次连续观测之间的空间位移与对应时间间隔直接计算得到。该方法虽然具有较高的瞬时响应性,但对检测噪声、目标框抖动、单应性估计不稳定以及目标在图像边缘处发生的部分截断现象高度敏感。因此,直接计算得到的瞬时速度在时间序列上往往呈现出明显的帧间波动,从而显著降低了测速结果的稳定性与物理可解释性。

为缓解上述问题,系统随后引入了固定系数的指数滑动平均(Exponential Moving Average, EMA)对速度进行平滑处理。在第 (k) 帧处,平滑速度被定义为

V s m o o t h ( k ) = α V r a w ( k ) + ( 1 − α ) V s m o o t h ( k − 1 ) , α = 0.6. V_{\mathrm{smooth}}^{(k)}= \alpha \, V_{\mathrm{raw}}^{(k)} + (1-\alpha)\, V_{\mathrm{smooth}}^{(k-1)}, \quad \alpha = 0.6 . Vsmooth(k)​=αVraw(k)​+(1−α)Vsmooth(k−1)​,α=0.6.

该方法在一定程度上改善了速度曲线的时间连续性。然而,固定的平滑系数隐含地假设所有瞬时速度观测具有相同的可信度。在真实的无人机应用场景中,速度观测的可靠性会随着检测质量、几何稳定性、目标空间位置以及运动连续性等因素发生显著变化。因此,在复杂场景下采用常数平滑因子仍然存在明显局限。


2. 置信度加权指数滑动平均方法

针对上述问题,本次更新将固定的平滑系数替换为随时间变化的置信度权重 (W_k \in [0,1]),从而得到自适应的速度更新形式:

V s m o o t h ( k ) = W k V r a w ( k ) + ( 1 − W k ) V s m o o t h ( k − 1 ) . V_{\mathrm{smooth}}^{(k)}= W_k \, V_{\mathrm{raw}}^{(k)} + (1 - W_k)\, V_{\mathrm{smooth}}^{(k-1)} . Vsmooth(k)​=Wk​Vraw(k)​+(1−Wk​)Vsmooth(k−1)​.

其中,当前帧速度观测对最终平滑结果的贡献由其置信度进行调制。当观测可信度较高时,(W_k) 取值较大,平滑速度能够快速响应瞬时测速结果;当观测可信度较低时,(W_k) 被抑制,系统将更多依赖历史速度信息,从而增强整体稳定性。


3. 组合置信度权重的定义

瞬时置信度权重由多个相互独立的子权重构成,每一项分别刻画一种潜在的不确定性来源。整体权重定义为

W r a w = w b b o x ⋅ w h o m o ⋅ w Δ v ⋅ w e d g e . W_{\mathrm{raw}}= w_{\mathrm{bbox}} \cdot w_{\mathrm{homo}} \cdot w_{\Delta v} \cdot w_{\mathrm{edge}} . Wraw​=wbbox​⋅whomo​⋅wΔv​⋅wedge​.

该乘性结构保证了当任意一个因素显著退化时,当前速度观测的整体可信度能够被有效抑制。

为避免权重在时间维度上发生剧烈变化,可对其进一步进行时间平滑处理:

W k = η w W r a w + ( 1 − η w ) W k − 1 . W_k= \eta_w \, W_{\mathrm{raw}} + (1 - \eta_w)\, W_{k-1} . Wk​=ηw​Wraw​+(1−ηw​)Wk−1​.


4. 目标框一致性权重(Bounding-Box Consistency Weight)

在第 (k) 帧处,目标检测框的特征尺度定义为

s k = w k h k , s_k = \sqrt{w_k \, h_k}, sk​=wk​hk​​,

其中 (w_k) 与 (h_k) 分别表示检测框的宽度和高度。为描述目标尺度的长期变化趋势,引入指数滑动平均形式的参考尺度:

s r e f ( k ) = ρ s i z e s k + ( 1 − ρ s i z e ) s r e f ( k − 1 ) . s_{\mathrm{ref}}^{(k)}=\rho_{\mathrm{size}} \, s_k + (1 - \rho_{\mathrm{size}})\, s_{\mathrm{ref}}^{(k-1)} . sref(k)​=ρsize​sk​+(1−ρsize​)sref(k−1)​.

当前尺度相对于参考尺度的偏差定义为

δ s = ∣ s k − s r e f ( k ) ∣ s r e f ( k ) + ε . \delta_s= \frac{\lvert s_k - s_{\mathrm{ref}}^{(k)} \rvert} {s_{\mathrm{ref}}^{(k)} + \varepsilon} . δs​=sref(k)​+ε∣sk​−sref(k)​∣​.

该偏差通过高斯衰减函数映射为目标框一致性权重:

w b b o x = max ⁡ ( w min ⁡ , b b o x , exp ⁡ ( − δ s 2 2 σ b b o x 2 ) ) . w_{\mathrm{bbox}}= \max \left( w_{\min,\mathrm{bbox}}, \; \exp \left( -\frac{\delta_s^2}{2\sigma_{\mathrm{bbox}}^2} \right) \right) . wbbox​=max(wmin,bbox​,exp(−2σbbox2​δs2​​)).

该权重用于抑制由遮挡、检测不稳定或目标关联错误引起的异常尺度变化对速度估计的影响。


5. 单应性质量权重(Homography Quality Weight)

设 (r) 表示单应性估计中的内点比例,(N) 表示内点数量,则二者分别归一化为

r n = c l i p ( r − r 0 1 − r 0 , 0 , 1 ) , N n = c l i p ( N N 0 , 0 , 1 ) . r_n= \mathrm{clip} \left( \frac{r - r_0}{1 - r_0}, \, 0, \, 1 \right), \qquad N_n= \mathrm{clip} \left( \frac{N}{N_0}, \, 0, \, 1 \right). rn​=clip(1−r0​r−r0​​,0,1),Nn​=clip(N0​N​,0,1).

基于上述归一化结果,单应性质量权重定义为

w h o m o = w min ⁡ , h + ( 1 − w min ⁡ , h ) r n N n . w_{\mathrm{homo}}= w_{\min,\mathrm{h}} + (1 - w_{\min,\mathrm{h}})\, r_n \, N_n . whomo​=wmin,h​+(1−wmin,h​)rn​Nn​.

该权重反映了用于将图像空间位移映射到真实世界尺度的几何关系的可靠程度。


6. 图像边缘邻近权重(Image Border Proximity Weight)

设目标中心在图像坐标系中的位置为 ((x, y)),图像分辨率为 (W \times H),则目标中心到图像边界的最小距离定义为

d = min ⁡ ( x , y , W − x , H − y ) . d = \min(x, y, W - x, H - y) . d=min(x,y,W−x,H−y).

定义边缘带宽为

d 0 = e d g e _ r a t i o ⋅ min ⁡ ( W , H ) . d_0 = \mathrm{edge\_ratio} \cdot \min(W, H) . d0​=edge_ratio⋅min(W,H).

对应的边缘邻近权重定义为

w e d g e = { w min ⁡ , e d g e + ( 1 − w min ⁡ , e d g e ) d d 0 , d < d 0 , 1 , d ≥ d 0 . w_{\mathrm{edge}}= \begin{cases} w_{\min,\mathrm{edge}} + \left(1 - w_{\min,\mathrm{edge}}\right)\dfrac{d}{d_0}, & d < d_0, \\[6pt] 1, & d \ge d_0 . \end{cases} wedge​=⎩⎨⎧​wmin,edge​+(1−wmin,edge​)d0​d​,1,​d<d0​,d≥d0​.​

该项用于降低目标靠近图像边缘时速度估计的权重,以缓解因目标截断和定位误差带来的不稳定性。


7. 速度突变门控权重(Speed Jump Gating Weight)

为抑制异常的速度突变,引入允许的最大速度变化阈值:

Δ V max ⁡ = d v a + d v b ⋅ V s m o o t h . \Delta V_{\max}= d v_a + d v_b \cdot V_{\mathrm{smooth}} . ΔVmax​=dva​+dvb​⋅Vsmooth​.

速度变化的归一化幅值定义为

x = ∣ Δ V ∣ Δ V max ⁡ + ε . x= \frac{\lvert \Delta V \rvert} {\Delta V_{\max} + \varepsilon} . x=ΔVmax​+ε∣ΔV∣​.

基于上述定义,速度突变门控权重表示为

w Δ v = max ⁡ ( w min ⁡ , Δ v , 1 1 + x p ) . w_{\Delta v}= \max \left( w_{\min,\Delta v}, \; \frac{1}{1 + x^p} \right) . wΔv​=max(wmin,Δv​,1+xp1​).

该机制能够有效抑制物理上不合理的速度跳变,同时在正常运动情况下保持足够的响应性。


8. 讨论与总结

在这里插入图片描述


在这里插入图片描述

本文提出的基于置信度加权的指数滑动平均方法,将多种与测速可靠性相关的因素统一纳入自适应平滑框架之中。与固定系数的 EMA 方法相比,该方法在高置信度条件下保持了良好的响应能力,同时在检测噪声、几何不稳定、图像边缘效应以及异常速度突变等情况下表现出更强的鲁棒性。最终得到的速度估计在时间维度上更加平滑、在物理意义上更加合理,并具备良好的可解释性,适用于实际无人机监测与交通分析等应用场景。

总结

本次更新在原有无人机目标测速框架的基础上,引入了基于置信度加权的自适应速度平滑机制,以替代传统固定系数的指数滑动平均方法。通过综合考虑检测尺度稳定性、单应几何可靠性、速度突变一致性以及目标在图像中的空间位置等因素,新方法在复杂真实场景下显著提升了速度估计结果的稳定性与物理合理性,同时保持了对真实速度变化的响应能力。

完整实现、实验配置与示例结果已同步更新至项目仓库:
👉 https://github.com/Thamkench/uav-speedlab
欢迎访问、交流与 ⭐ Star 支持。

Read more

文心一言开源版部署及多维度测评实例

文心一言开源版部署及多维度测评实例

文章目录 * 第一章 文心一言开源模型简介 * 第二章 模型性能深度实测 * 2.1 通用能力基准测试 * 2.1.1 文本生成质量 * 2.1.2 数学推理能力 * 2.2 极端场景压力测试 * 2.2.1 高并发性能 * 2.2.2 长上下文记忆 * 第三章 中文特色能力解析 * 3.1.2 文化特定理解 * 3.2 行业术语处理 * 3.2.1 法律文书解析 * 3.2.2 医疗报告生成 * 第四章 开源生态建设评估 * 4.1 模型可扩展性验证 * 4.

解决llama.cpp项目Vulkan后端编译难题:从环境配置到实战修复

解决llama.cpp项目Vulkan后端编译难题:从环境配置到实战修复 【免费下载链接】llama.cppPort of Facebook's LLaMA model in C/C++ 项目地址: https://gitcode.com/GitHub_Trending/ll/llama.cpp 你是否在编译llama.cpp的Vulkan后端时遇到过"找不到Vulkan库"或"编译失败"的问题?本文将系统梳理Windows、Linux和Docker环境下的完整解决方案,帮助你顺利启用GPU加速功能。读完本文后,你将掌握:Vulkan SDK的正确配置方法、常见编译错误的诊断流程、跨平台构建脚本编写,以及性能验证技巧。 Vulkan后端编译环境准备 Vulkan作为llama.cpp支持的GPU加速后端之一,需要特定的开发环境配置。官方文档docs/build.

撰写‘Stable Diffusion’文生图联动IndexTTS文生音工作流

构建“图文音”一体化生成工作流:Stable Diffusion 与 IndexTTS 的协同实践 在短视频日更、虚拟人直播带货、AI动画批量生成成为常态的今天,内容创作者面临一个看似简单却长期难以解决的问题:如何让画面里的人物“说人话”?这里的“说人话”,不只是语音通顺,更是指声音与形象匹配、情绪一致、节奏同步——真正像一个人在说话。 传统流程中,图像靠画师或文生图模型生成,配音则依赖真人录制或通用TTS合成。结果往往是:嘴型对不上发音节奏,角色前一秒温柔甜美,后一秒变成东北大叔;旁白语气平淡如机器朗读,完全无法呼应剧情张力。这些问题不仅拉低作品质感,更让自动化生产止步于“半自动”。 而如今,随着 Stable Diffusion 和 IndexTTS 2.0 这类高可控性开源模型的成熟,我们终于有机会构建一条真正意义上的“端到端视听内容生成链路”:从一段文本剧本出发,自动生成角色画面、匹配音色、驱动情感语调,并精确对齐音画时序。这条路径的核心,

丹摩智算平台部署 Llama 3.1:实践与体验

丹摩智算平台部署 Llama 3.1:实践与体验

文章目录 * 前言 * 部署前的准备 * 创建实例 * 部署与配置 Llama 3.1 * 使用心得 * 总结 前言 在最近的开发工作中,我有机会体验了丹摩智算平台,部署并使用了 Llama 3.1 模型。在人工智能和大模型领域,Meta 推出的 Llama 3.1 已经成为了目前最受瞩目的开源模型之一。今天,我将通过这次实践,分享在丹摩平台上部署 Llama 3.1 的实际操作流程以及我的个人心得。 部署前的准备 Llama 3.1 是一个资源需求较高的模型,因此在部署之前,首先要确保拥有合适的硬件环境。按照文档中的要求,我选择了 Llama 3.1 8B 版本进行测试。8B 模型对 GPU 显存的需求为