MOOSE相关滤波跟踪算法(个人学习笔记)

这篇具有很好参考价值的文章主要介绍了MOOSE相关滤波跟踪算法(个人学习笔记)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

MOOSE

论文标题 “Visual Object Tracking using Adaptive Correlation Filters”

原文地址

用滤波器对目标外观进行建模,并通过卷积操作来执行跟踪。

参考阅读:

目标跟踪经典算法——MOSSE(Minimum Output Sum Square Error)

目标跟踪整理(1)之MOSSE

相关滤波跟踪原理

基于以初始帧中给定的bounding box来选择目标,并基于示例图像上(基于初始帧得到)训练滤波器来建模目标的外观。在接下来的每一帧中,通过训练好的关联滤波器来跟踪目标,相关输出中最大值对应的位置表示目标的新位置,然后根据该新位置执行在线更新。

  1. 目标初始化:在视频的第一帧中,选择一个以物体为中心的小窗口,基于该区域初始化滤波器。
  2. 跟踪与滤波器训练:在接下来的每一帧中,在搜索窗口内基于训练好的滤波器进行相关操作,以跟踪目标。这个搜索窗口通常比跟踪窗口大,以便于捕捉目标的移动。
  3. 确定新位置:在相关操作的输出中,寻找最大值对应的位置。这个位置表示目标在当前帧中的新位置。
  4. 在线更新:根据目标的这个新位置,更新滤波器,使其能更好地适应目标可能的外观变化。

MOSSE算法的基本思想:首先根据第一帧图像框选的目标构建一个响应,该响应在所绘制的目标框的中心处的响应值最大,向四周缓慢衰减(二维高斯分布)。然后我们希望找到一个滤波器使得图像和这个滤波器进行相关运算之后刚好得到的就是这个响应,那么就可以根据响应值最大处得到目标的位置了。当新的一帧图像进来时,用之前得到的滤波器与新的图像进行相关运算,就可以得到新的目标位置了。

频域转换

f f f:搜索窗口,即全局图像的局部区域

h h h:滤波器

相关操作: g = f ∗ h g=f*h g=fh

为了让跟踪过程更快,应用相关过滤器的过程在频域内,即使用傅里叶变换(FFT)其使卷积运算变成元素乘法运算(切记)

F F F:输入图像的2D傅里叶变换,即 F = F ( f ) F=\mathcal{F}(f) F=F(f)

H H H:滤波器的2D傅里叶变换,即 H = F ( h ) H=\mathcal{F}(h) H=F(h)

则上式可写为:

G = F ⊙ H ∗ G=F \odot H^* G=FH

其中, ⊙ \odot 表示逐元素相乘操作,而 H ∗ H^* H表示 H H H的复共轭。

为什么是复共轭呢?

因为相关和卷积在某些地方(深度学习领域,如图像卷积操作)可能当成相同的运算,但实际上两者是有差别的(数学意义上的卷积,比如信号处理/传统图像处理)。

f f f h h h做相关实际上是 f f f和旋转了180度的 h h h做卷积。关于这点,也有疑问,相关为什么是翻转了180度的卷积操作呢?

GPT4的回答如下:

MOOSE相关滤波跟踪算法(个人学习笔记),算法,学习,笔记

为什么卷积的定义和深度学习中的卷积不一样呢?这篇回答中提到了,本质原因是:数学中的卷积和卷积神经网络中的卷积严格意义上是两种不同的运算。具体来说:

MOOSE相关滤波跟踪算法(个人学习笔记),算法,学习,笔记

  1. 卷积神经网络图像处理卷积时,没有旋转180度。
  2. 数学上的卷积,比如信号处理/传统图像处理,处理卷积时,才旋转180度。

OK,重新捋一下思路,整个过程可以总结为

  1. 时域中的相关操作:在时域中,相关操作通常表示为 g = f ∗ h g=f*h g=fh,其中 f f f是搜索窗口, h h h 是滤波器(例如模板或掩模),而 g g g是输出结果。相关操作本质上是滤波器 h h h在搜索窗口 f f f上滑动,计算它们之间的局部相似度。
  2. 频域的傅里叶变换:为了加速计算,可以将相关操作转换到频域执行。根据傅里叶变换的性质,时域内的相关操作对应于频域内的逐元素乘积。所以,定义 F = F ( f ) F=\mathcal{F}(f) F=F(f)为输入图像 f f f的2D傅里叶变换, H = F ( h ) H=\mathcal{F}(h) H=F(h)为滤波器 h h h的2D傅里叶变换。
  3. 频域内的卷积和相关操作:在频域内,卷积运算变为 F F F H H H的逐元素相乘。但由于在时域中, f f f h h h原本要进行的是相关操作(不是卷积),这等价于 f f f和旋转180度的 h h h进行卷积。因此,在频域内,这个相关操作表示为 G = F ⊙ H ∗ G=F \odot H^* G=FH,其中 H ∗ H^* H H H H的复共轭。

预处理

预处理操作如下:

  1. 用log函数处理图像,使其具有低对比度照明情况;
  2. 像素值将正则化到零均值、一方差;
  3. 应用余弦窗到图片上,这会让图像边缘元素值趋于零。

MOSSE 滤波器

MOSSE是一种从较少的训练图像中生成滤波器的算法。因此,其需要一组训练图像 f i f_i fi和训练输出 g i g_i gi

参照原文, g i g_i gi是基于ground truth生成的,其为训练图像中以目标中心为中心的紧凑2D高斯形状峰值( σ = 2 \sigma=2 σ=2)。

为了找到将训练输入映射到所需训练输出的滤波器,MOSSE找到了一个滤波器 H H H,该滤波器 H H H可以最小化实际输出与真实输出之间的平方误差之和,即:
min ⁡ H ∗ ∑ i ∣ F i ⊙ H ∗ − G i ∣ 2 \mathop{\min}_{H^*} \sum_{i}{|F_i\odot H^*-G_i|}^2 minHiFiHGi2
所以可以明白为什么叫MOSSE(Minimum Output Sum of Squared Error)了吧?

H ∗ H^* H求导,令其为0,可得到闭式解:
H ∗ = ∑ i G i ⊙ F i ∗ ∑ i F i ⊙ F i ∗ H^*=\frac{\sum_{i}G_i \odot F_i^*}{\sum_{i}F_i \odot F_i^*} H=iFiFiiGiFi

初始化

为了训练滤波器,需要一组训练图像,但是能够得到的只有初始帧图像。因此使用随机仿射变换构建训练图像,以及对应的训练输出 g i g_i gi,其峰值对应于目标中心。

在线更新

在跟踪过程中,通常会面临由旋转、尺度缩放、光照变化,甚至进行非刚性变形等因素引起的外观变化。因此,滤波器需要在线更新才能适应跟踪目标的变化,如下所示:
H i ∗ = A i B i A i = η G i ⊙ F i ∗ + ( 1 − η ) A i − 1 B i = η F i ⊙ F i ∗ + ( 1 − η ) B i − 1 H^*_i=\frac{A_i}{B_i} \\ A_i= \eta G_i \odot F_i^* + (1-\eta)A_{i-1}\\ B_i= \eta F_i \odot F_i^* + (1-\eta)B_{i-1} Hi=BiAiAi=ηGiFi+(1η)Ai1Bi=ηFiFi+(1η)Bi1
其中, η \eta η表示学习率,其值越大,则对当前帧保留的信息越多,对历史信息保留的越少。文中给出 η \eta η的最佳值为0.125。

峰旁比

衡量峰值强度的一个简单方法为peak to sidelobe ratio(PSR),即峰值旁瓣比。

The Peak-to-Sidelobe Ratio (PSR), which measures the strength of a correlation peak, can be used to detect occlusions or tracking failure, to stop the online update, and to reacquire the track if the object reappears with a similar appearance.

这篇大概讲了一下,但还是不是很明白到底什么是Peak-to-Sidelobe Ratio

还是看原文,PSR的定义为:
P S R = g m a x − μ s σ s PSR=\frac{g_{max}-\mu_s}{\sigma_s} PSR=σsgmaxμs
其中,旁瓣是窗口中除了峰值之外的周围11 × 11区域的像素, g m a x g_{max} gmax为滤波结果的峰值, μ s \mu_s μs σ s \sigma_s σs分别为旁瓣区域的平均值和标准差。

对于MOSSE来说,PSR值在20-60时代表峰值较稳定,当其值在7左右时代表跟踪失败或者发生遮挡。文章来源地址https://www.toymoban.com/news/detail-786594.html

到了这里,关于MOOSE相关滤波跟踪算法(个人学习笔记)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 使用 TensorRT、卡尔曼滤波器和 SORT 算法进行实时对象检测和跟踪:第 2 部分将模型转换为 TensorRT 并进行推理

    在本博客文章系列的第 1 部分中,我们展示了如何使用 mmdetection 框架训练对象检测模型并在 BDD100K 数据集上对其进行微调。在第 2 部分中,我们将介绍将模型转换为 TensorRT 并在 Nvidia GPU 上执行推理的过程。 在本博客文章系列的第 2 部分中,我们将讨论以下主题: 将模型转换

    2024年02月15日
    浏览(47)
  • 基于卡尔曼滤波的视频跟踪,基于卡尔曼滤波的运动小球跟踪

    完整代码和数据下载链接:基于卡尔曼滤波的视频跟踪,基于卡尔曼滤波的运动小球跟踪(代码完整,数据齐全)资源-CSDN文库 https://download.csdn.net/download/abc991835105/88738577 卡尔曼滤波原理 RBF的定义 RBF理论 易错及常见问题 RBF应用实例,基于rbf的空调功率预测 代码 结果分析

    2024年02月02日
    浏览(46)
  • 会话跟踪技术学习笔记(Cookie+Session)+ HTTP学习笔记

    1.1 Cookie 1. Cookie:是一种客户端会话技术,数据会被保存在客户端,Cookie会携带数据访问服务器,用以完成一次会话内多次请求间的数据共享 2. 过程:浏览器(客户端)先向服务端发送请求,服务端会发送一个Cookie给客户端,在此后同一次会话中,每次客户端都会将Cookie发送

    2024年02月10日
    浏览(44)
  • 【学习笔记】目标跟踪领域SOTA方法比较

    常用于行人跟踪的多目标跟踪数据集包括:MOT 15/16/17/20、PersonPath22等… 为更好比较现有SOTA算法的检测性能,本博客将针对在各数据集上表现较优的算法模型进行介绍。(表中画粗数据表明对应算法为该数据集表现最优算法) 数据集 算法模型 MOTA 年份 代码 MOT15 TraDeS 66.5 202

    2024年02月15日
    浏览(36)
  • 基于深度学习的多目标跟踪算法

    基于深度学习的多目标跟踪(MOT,Multi-Object Tracking)算法在近年来取得了显著的进步。这些算法主要利用深度学习模型对视频中的多个目标进行检测和跟踪。 在介绍一些常见的深度学习多目标跟踪算法之前,我们首先了解一下其基本概念和挑战: 目标检测 :首先识别视频帧

    2024年01月23日
    浏览(40)
  • 图像处理ASIC设计方法 笔记18 轮廓跟踪算法的硬件加速方案

    P129 轮廓跟踪算法的硬件加速方案 如果图像中某区域存在相邻像素之间仅有对角连接的部位,则对包围该区域的像素进行跟踪时,在对角连接部位,轮廓跟踪方向可能发生转移,跨越目标区域,最终生成断裂链表或者伪孤立点链表。伪孤立点是指与相邻像素仅存在对角连通的

    2024年04月28日
    浏览(56)
  • 机器学习笔记 - 3D 对象跟踪极简概述

            大多数对象跟踪应用程序都是 2D 的。但现实世界是 3D 的,无论您是跟踪汽车、人、直升机、导弹,还是进行增强现实,您都需要使用 3D。在 CVPR 2022(计算机视觉和模式识别)会议上,已经出现了大量3D目标检测论文。         对象跟踪是指随着时间的推移定

    2024年02月07日
    浏览(48)
  • LC滤波器设计学习笔记(一)滤波电路入门

    部分摘自《LC滤波器设计与制作》,侵权删。 最近需要学习放大电路和滤波电路,但是由于只在之前做音乐频谱分析仪的时候简单了解过一点点运放,所以也是相当从零开始学习了。 滤波器:主要是从不同频率的成分中提取出特定频率的信号。 有源滤波器:由RC元件与运算放

    2024年02月02日
    浏览(50)
  • 卡尔曼滤波学习笔记

    从直观上来看,卡尔曼滤波是把两个存在误差的结果 融合 在一起,得到一个从数学上可以得到证明的 最优估计值 。 而这两个存在误差的结果,一个是从理论上推导出来的,称之为 先验估计值 ;一个是用传感器测量出来的,称之为 测量值 。它们之所以存在误差,是因为前

    2024年02月11日
    浏览(42)
  • OpenCV-空间滤波学习笔记

    了解和实践OpenCV在空间滤波上的应用。 Source:机器视觉技术与应用_中国大学MOOC(慕课) (icourse163.org) 当图像中的边缘信息和卷积核的形状是相符合的,得到的响应值最大。 中值滤波 均值滤波 高斯均值滤波 Sobel边缘提取 中值滤波 实验用图 带有椒盐噪声的图像: 实验代码 #i

    2024年01月17日
    浏览(38)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包