文档章节

Minimum Output Sum of Squared Error filter(MOSSE)

mobangjack
 mobangjack
发布于 2016/05/07 23:23
字数 1131
阅读 232
收藏 0

在信号处理中,有这么一个概念——相关性(correlation),用来描述两个因素之间的联系。而相关性又分为cross-correlation(互相关,两个信号之间的联系)和auto-correlation(自相关,本身在不同频域的相关性)。

2010年CVPR,David S.Bolme在文章《visual object tracking using adaptive correlation filters》中首次将相关滤波用在了跟踪领域,在其文章的基础之上,很多改进的算法相继出现,跟踪的效果也越来越好。 在介绍作者的算法之前,先介绍一下相关滤波的原理。 假设有两个信号f和g,则两个信号的相关性(correlation)为:

(f⊗g)(τ)=∫−∞∞f∗(t)g(t+τ)dt

(f⊗g)(n)=∑−∞∞f∗[m]g(m+n) 其中f∗表示f的复共轭。correlation的直观解释就是衡量两个函数在某个时刻相似程度。 而将correlation filter应用与跟踪最简单的想法就是:两个信号越相似,其相关值越高。在跟踪,就是找到与跟踪目标响应最大的项。 作者提出的滤波器叫做Minimum Output Sum of Squared Error filter(MOSSE)(误差最小平方和滤波器)。按照前面的思路,我们需要找到一个滤波器,使其在目标上的响应最大,则如下公式:

g=f⊗h 其中g表示响应输出,f表示输入图像,h表示滤波模板。 显然,我们要是想获得比较获得响应输出,只需确定滤波器模板h即可。上式的计算是进行卷积计算,这在计算机中的计算消耗时很大的,因此作者对上式进行快速傅里叶变换(FFT),这样卷积操作经过FFT后就变成了点乘操作,极大的减少了计算量。上式变成如下形式:

F(g)=F(f⊗g)=F(f)⋅F(h)∗

为了方便描述,将上式写成如下形式:

G=F⋅H∗

有了上面的式子,那么后面跟踪的任务就是找到H∗了:

H∗=GF

但是在实际跟踪的过程中我们要考虑到目标的外观变换等因素的影响,所以需要同时考虑目标的m个图像作为参考,从而提高滤波器模板的鲁棒性,所以作者就提出了MOSSE这个模型,其模型公式入下:

minH∗=∑i=1m|H∗Fi−Gi|2

因为上式的操作都是元素级别的,因此要想找到,只要使其中的每个元素(w和v是H中每个元素的索引)的MOSSE都最小即可。因此上式可转换为如下形式:

minH∗wv∑i=1m|H∗wvFwvi−Gwvi|2

要想得到最小的H8wv,只需要对上式求偏导,并使偏导为0即可。即:

0=∂∂H∗wv∑i|FiwvH∗wv−Giwv|2

复数域求导和实数域求导时不一样的,其求导过程如下:

0=∂∂H∗wv∑i(FiwvH∗wv−Giwv)(FiwvH∗wv−Giwv)∗

0=∂∂H∗wv∑[(FiwvH∗wv)(FiwvH∗wv)∗−(FiwvH∗wv)G∗iwv−Giwv(FiwvH∗wv)∗+GiwvG∗iwv]

0=∂∂H∗wv∑iFiwvF∗iwvHwvH∗wv−FiwvG∗iwvH∗wv−F∗iwvGiwvHwv+GiwvG∗iwv

0=∑i[FiwvF∗iwvHwv−FiwvG∗iwv]

Hwv=∑iFiwvG∗iwv∑iFiwvF∗iwv

上面得到是H中每个元素的值,最后得到H为:

H=∑iFi⋅G∗i∑iFi⋅F∗i

上式就是滤波器的模型公式。 但是在跟踪中该怎么得到滤波器H呢?Fi和Gi又该怎么获取? 在作者的文章中,其对跟踪框(groundtruth)进行随机仿射变换,获取一系列的训练样本fi,而gi则是由高斯函数产生,并且其峰值位置是在fi的中心位置。获得了一系列的训练样本和结果之后,就可以计算滤波器h的值。注意:这里的f,g,h的size大小都相同。 作者为了让滤波器对与形变、光照等外界影响具有更好的鲁棒性,采取了如下的模板更新策略:

Ht=AtBt

At=ηFt⋅G∗t+(1−η)At−1

Bt=ηFt⋅F∗t+(1−η)Bt−1

作者将滤波器的模型公式分为分子和分母两个部分,每个部分都分别的进行更新,更的参数为η。其中At和At−1分别表示的是当前帧和上一帧的分子。

本文转载自:http://www.myexception.cn/operating-system/2005048.html

mobangjack
粉丝 2
博文 4
码字总数 1723
作品 0
武汉
程序员
私信 提问
神经网络php代码,慢慢研究

<?php requireonce("classneuralnetwork.php"); function normalize($a){ return strpad($a,8,'0',STRPAD_LEFT); } $r = 23;//$_POST['red']; $g = 12;//$_POST['green']; $b = 12;//$_POST[......

lwaif
2016/07/01
203
0
ML4T笔记 | 01-08 Optimizers: Building a parameterized model

01 - What is an optimizer What is an optimizer?: An optimizer is an algorithm that can: find minimum values for functions. find the parameters for parameterized models from data......

我的名字叫清阳
01/19
0
0
Intermediate linear regression

1: Introduction To The Data The Leaning Tower of Pisa is one of the largest tourist attractions in Italy. For hundreds of years this tower slowly leaned to one side, eventually ......

Betty__
2016/09/27
10
0
回归评价指标MSE、RMSE、MAE、R-Squared

前言 分类问题的评价指标是准确率,那么回归算法的评价指标就是MSE,RMSE,MAE、R-Squared。下面一一介绍 均方误差(MSE) MSE (Mean Squared Error)叫做均方误差。看公式 这里的y是测试集...

skullfang
2018/01/19
0
0
维纳滤波图像处理

维纳滤波处理模糊图像 代码链接: https://github.com/hoijui/DIP/tree/master/ex04/src/main/native感谢作者。 wiener.h wiener.cpp mian.cpp...

KyJason
2016/12/12
458
3

没有更多内容

加载失败,请刷新页面

加载更多

Java 文件类操作API与IO编程基础知识

阅读目录: https://www.w3cschool.cn/java/java-io-file.html Java 文件 Java 文件 Java 文件操作 Java 输入流 Java 输入流 Java 文件输入流 Java 缓冲输入流 Java 推回输入流 Java 数据输入...

boonya
32分钟前
3
0
SDKMAN推荐一个好

是在大多数基于Unix的系统上管理多个软件开发工具包的并行版本的工具。它提供了一个方便的命令行界面(CLI)和API来安装,切换,删除和列出sdk相关信息。以下是一些特性: By Developers, fo...

hotsmile
57分钟前
9
0
什么是 HDFS

是什么? HDFS 是基于 Java 的分布式文件系统,允许您在 Hadoop 集群中的多个节点上存储大量数据。 起源: 单机容量往往无法存储大量数据,需要跨机器存储。统一管理分布在集群上的文件系统称...

Garphy
今天
5
0
一起来学Java8(四)——复合Lambda

在一起来学Java8(二)——Lambda表达式中我们学习了Lambda表达式的基本用法,现在来了解下复合Lambda。 Lambda表达式的的书写离不开函数式接口,复合Lambda的意思是在使用Lambda表达式实现函...

猿敲月下码
今天
11
0
debian10使用putty配置交换机console口

前言:Linux的推广普及,需要配合解决实际应用方能有成效! 最近强迫自己用linux进行实际工作,过程很痛苦,还好通过网络一一解决,感谢各位无私网友博客的帮助! 系统:debian10 桌面:xfc...

W_Lu
今天
12
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部