单目标追踪——【相关滤波】C-COT原理与ECO基于C-COT的改进
目录
- C-COT:Continuous Convolution Operator Tracker
- 文章侧重点
- 连续卷积算子
- 目标追踪框架
- 初始化过滤器:
- 追踪流程
- ECO
- 文章侧重点
- 因式卷积因子
- 生成采样空间模型
- 模型更新策略
论文链接:C-COT:Beyond Correlation Filters: Learning Continuous
Convolution Operators for Visual Tracking + ECO: Efficient Convolution Operators for Tracking 提取码:qqzd
代码:python实现的eco——pytracking
参考博客:C-COT – 超越相关滤波:学习连续卷积算子(Continuous Convolution Operators)
https://zhuanlan.zhihu.com/p/67819411
C-COT:Continuous Convolution Operator Tracker
文章侧重点
- 因为梯度特征(HOG)、颜色空间的直方图、浅层卷积网络的深度特征是不同分辨率的特征,传统的KCF或者DCF算法无法将不同分辨率的特征通道进行融合。C-COT则基于深度特征+手工特征,提出连续卷积算子,在连续域实现多个分辨率特征的融合。
- C-COT的主要贡献在于提出一个理论框架,可以在连续空间域中学习一个具有判别力的卷积算子。文中重点阐述了理论框架与公式推导。
- 该框架与传统的相关滤波算法对比的优势在于:可以融合多分辨率(multi-resolution)的特征图【其实就是针对不同分辨率的特征训练不同的卷积滤波器,再在score map层面上加起来】;可以进行准确的像素定位,因为文中还将C-COT方法应用到特征点追踪(feature point tracking)benchmark上。
连续卷积算子
- 连续卷积算子的实现,实际是针对一维特征域:
- 首先,利用三次插值核函数将离散的特征插值得到连续的特征;
- 再将真值 y y y 映射为以目标估计为中心的高斯分布(为了能在连续域做相关性运算)
- 在连续域中训练一个连续卷积算子(也可以看作卷积滤波器),将连续域中的目标特征映射为目标置信函数(即对应特征是追踪目标的概率值)。
- 针对高维的特征:
- 分别训练不同的卷积滤波器
- 分别与连续域中的目标特征作卷积操作,得到不同分辨率下的score map
- 将这些score map按照对应的像素点加起来,得到最终的目标特征对应的置信函数,我们通过寻找图片区域中的最大置信分数来定位目标。
目标追踪框架
初始化过滤器:
即,利用待追踪序列的第一帧的信息,确定要追踪的目标,并用已知的追踪目标的特征初始化(训练)卷积滤波器的参数。
- 处理思路是首先提取第一帧中的特征 X X X;要通过在傅里叶域最小化泛函得到最佳的卷积滤波器的参数:利用公式5计算置信分数函数 s s s 的傅里叶系数。
- 处理步骤:
- 首先利用离散的傅里叶变换得到一个粗略的估计——即网格搜索方法:在空间的离散点处估计得分函数,找到最大值;
- 最大值作为傅里叶级数展开的初始值,进行5次标准牛顿迭代,得到粗略的卷积滤波器的参数估计。
追踪流程
- 从预训练好的深度网络中提取出多分辨率特征图;
- 在每一帧采样一个训练样本 x j x_j xj,采样的方法是以目标为中心,裁剪出目标边界框面积 5 2 5^2 52倍大的图片区域。越靠近当前帧的采样的训练样本的权重越大。最大的保存400帧历史帧。
- 应用多尺度估计,5个尺度,相对尺度因子1.02。最大化网格搜索后,进行 5 次牛顿迭代;
- 求解正规方程以训练滤波器,采用共轭梯度法进行迭代,在第一帧中,使用100次迭代找到滤波器系数 的初始估计,随后的帧中,用当前的滤波器初始化CG(共轭梯度),每帧五次迭代就足够。
ECO
文章侧重点
文章针对当前相关滤波追踪器存在的问题做如下总结:
- 模型参数量过大使得在线更新容易过拟合。 高维特征,尤其是深度特征使得目标外观模型的参数急剧上升。例如上文的C-COT连续更新的参数多达800,000个,同时在线更新的采样样本缺乏多样本,容易引起模型对目标的某一位置过拟合,尤其是当目标出现尺度变化、变形等问题时,根据历史帧预测目标框裁剪的样本本来就可能不精确。
- 在线更新的训练样本缺乏丰富的样本。由于当前的在线相关滤波追踪模型都有一个迭代优化算法来实现模型的在线更新以应对不同的挑战。那么数据对于更新的重要性不言而喻。
- 当前的模型的连续更新策略是逐帧更新,使得模型的鲁棒性降低了。 由于新出现的Siamese网络是不需要在线更新的,但仍保持了较高的追踪精度。但是我认为这不是在线更新造成的,主要还是采样样本的准确度问题,因为历史帧中采样的更新样本是根据历史帧中预测的目标框为中心裁剪出来的。所以当历史帧样本的不准确性使得当前的模型受到了影响,过拟合到目标的局部。设想一个问题,如果历史帧中用于在线更新的样本如groundtruth般准确,那么在线更新会达到较好的效果。
文章针对上述问题,基于C-COT做如下改进:
- 提出因式分解卷积算子,对C-COT中的卷积滤波器进行缩减,从而减少模型本身的参数。(对于512维的深度特征+512个卷积滤波器,可以将512个卷积滤波器减到64个,从而剔除了一些不重要的深度特征,降低模型参数。)
- 一个为在线更新设计的更加简洁的采样分布的生成模型,降低内存和时间复杂度;增加样本多样性。
- 保守模型更新策略,即降低更新频率,增大更新样本的多样性,继而增强鲁棒性,降低复杂性。
因式卷积因子
出发点: 出于对C-COT中卷积滤波器的观察,每个维度的特征对应一个滤波器;然而一部分训练好的卷积滤波器包含了微乎其微的能量,也就是说对最后目标定位的贡献很小,但它们仍消耗了训练时间和内存。
改进思路: 故采用类似主变量降维的思想,以深度特征为例,一共512维特征对应512个卷积滤波器,而因式卷积的思路就是用64个主要的卷积滤波器,利用一个线性对应矩阵 P P P , 线性组合之后可以还原这512个卷积滤波器的作用。
优点: 线性矩阵 P P P 可以在第一帧初始化。这样的设计使得内存开销大大降低,并且降低了在线更新的计算复杂度。
生成采样空间模型
- 出发点: 当前的相关滤波追踪器C-COT、SRDCF等的在线更新策略是在每一帧都添加一个训练样本,然后为这些历史帧赋予一个衰减的权重(离当前帧近的的帧权重大,离当前帧远的帧权重小)。然而这样的采样空间存在大量冗余的样本,因为相邻帧之间的外观大致相同。
- 改进思路:提出一个样本集合的概率生成模型。基于样本特征映射 x x x和相应输出置信度分数 y y y
模型更新策略
出发点:在C-COT中,这意味着在每个新样本添加后,通过迭代求解正态方程进行优化。基于迭代优化的DCF方法利用了损失函数在帧之间逐渐变化的特点。因此,过滤器的当前估计提供了迭代搜索的良好初始化。不过,在每一帧中更新过滤器会对计算负载产生严重影响。
改进思路:将训练样本建模为高斯混合模型,避免逐帧更新,只需在每个 N s N_s Ns帧中启动优化过程来更新过滤器。参数 N s N_s Ns决定过滤器更新的频率,其中 N s = 1 N_s= 1 Ns=1 对应于在每一帧中优化过滤器,就像在标准DCF方法中一样。在每个 N s N_s Ns帧中,我们执行固定数量的 N C G N_CG NCG共轭梯度迭代来优化模型。因此,每帧CG迭代的平均次数减少到 N C G / N s N_CG/N_s NCG/Ns。
优点:模型更新频率降低到 N s N_s Ns,当然节约了时间,并且可以避免模型的漂移问题,一定程度上改进效果,但是也不可以把Ns取得太大,否则会使得模型跟不上目标的变化。
单目标追踪——【相关滤波】C-COT原理与ECO基于C-COT的改进相关推荐
- VOT 2017挑战赛——目标追踪相关分享
视觉跟踪领域国际顶级赛事 Visual-Object-Tracking Challenge (VOT) 2017年结果出炉,结合传统滤波及深度学习的方案取得最佳成绩.本文是第二名北京邮电大学代表团队的 ...
- 单目标追踪——【Transformer】Transformer Meets Tracker:Exploiting Temporal Context for Robust Visual Tracking
目录 文章侧重 网络结构 具体的Encoder和Decoder的结构 模型的推理过程 Transformer这个香饽饽怎么能不用来迁移到目标追踪里呢. 我计划对CVPR2021的3篇将Transfor ...
- 单目标追踪——常见的评价指标和评估方法梳理
目录 评估指标 精确度(Precision) 归一化的精确度(Norm. Prec) 成功率(Success Rate/IOU Rate/AOS) EAO F-score 评估方法 OPE(One-P ...
- 多目标追踪相关 + reid
多目标跟踪的目的就是将每个目标和其他目标进行区分开来,具体方法是给每个目标分配一个ID,并记录他们的轨迹. 和目标检测的最大区别:仅仅使用目标检测无法给对象分配ID,并且多目标跟踪算法能够优化轨迹,能 ...
- python多目标跟踪卡尔曼滤波_卡尔曼滤波+单目标追踪+python-opencv
向面试官一句话解释卡尔曼滤波: 用上一次的最优状态估计和最优估计误差去计算这一次的先验状态估计和先验误差估计: 用1得到的本次先验误差估计和测量噪声,得到卡尔曼增益: 用1,2步骤得到所有先验误差估计 ...
- 一文详解目标跟踪中的相关滤波
点击上方"3D视觉工坊",选择"星标" 干货第一时间送达 本文来源:AI干货知识库 / 导读 / 目标跟踪是计算机视觉领域的一个重要问题,目前广泛应用在体育赛事 ...
- 单目标跟踪 (一)相关滤波器 方法综述
<Handcrafted and Deep Trackers: Recent Visual Object Tracking Approachesand Trends> MOSSE: Min ...
- 三维空间无人机集群编队控制,避障,目标追踪
无人机集群编队控制算法,二维,三维空间MATALB仿真 引言 无人机集群编队 无人机避障 无人机目标追踪 引言 本人研究生期间,主要研究无人机集群编队,目标追踪,避障,路径规划等,参考了大量论文,也走 ...
- 超实时性单目标跟踪网络——Siamese RPN(CVPR2018 spotlight论文)
今年sensetime在CVPR上的表现力压国内其他科研机构,直逼谷歌.以44篇论文(3oral,11spotlight,28poster)在国内一骑绝尘.其中有一篇北航大四学生李博为一作的论文Sia ...
最新文章
- Android WebView与ViewPager的滑动冲突分析
- hadoop1.x 与hadoop2.x 架构变化分析
- .NET架构与模式探索
- 对Docker常用命令的整理
- LeetCode 1663. 具有给定数值的最小字符串
- 固定资产分类与代码_促进产业技术升级换代!固定资产加速折旧优惠政策了解一下...
- 字节输入流-InputStream demo3
- 40行代码的人脸识别实践【转】
- 命令行中,变量 date time 格式化设定
- java js 打开摄像头_js调用网络摄像头
- 成都青白江的羽毛球场地
- 秦小明金融 第五讲 财务模型的搭建与分析
- 推荐系列:易文档,让接口文档更加给力
- 数据库分页数据丢失问题
- MySQL基础 - 带搜索条件的查询
- 二舅治好我的精神内耗,也让我火出了B站
- 辗转相除法——求最大公约数
- 微信小程序订阅消息开发教程及代码(java后端实现)
- 瑞幸咖啡新获2.5亿美元融资背后
- JavaScript基础知识与脚本语言总结