深度学习tracking学习笔记(1):Visual Tracking with Fully Convolutional Networks

2024-06-11 04:32

本文主要是介绍深度学习tracking学习笔记(1):Visual Tracking with Fully Convolutional Networks,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

reference:http://blog.csdn.net/carrierlxksuper/article/details/48918297

两个属性

1)不同层上的CNN特征可以针对不同的tracking问题。越top层的特征越抽象,并且具有语义信息这些特征的优势在于区分不同类别,同时对于形变和遮挡robust(下图a)。但是他们的缺点是无法区别类内的物体,比如不同人(下图b)。而底层的特征更多的是局部特征,可以帮助将目标从背景中分离出来(下图b)。但是无法处理目标外表剧烈变化(下图a)。于是在tracking中作者将两个特征根据干扰的情况,实时切换两种特征。

三个观察以及三个方面的贡献:

作者提到CNN网络在tracking的三个observations是非常重要的,因为这个启发了作者如何将imageNet pretrained CNN应用到visual tracking上去。同时作者cvpr2016的文章仍然是这个思路的延续[1].

下面说一下三个observations:

1.Although the receptive field 1 of CNN feature maps is large, the activated feature maps are sparse and localized. The activated regions are highly correlated to the regions of semantic objects . 意思就是说CNN的feature map来定位目标位置是可行的,这个是基础

2.Many CNN feature maps are noisy or unrelated for the task of discriminating a particular target from its background. 意思是feature map虽然有用,但是不是所有的都有用,有的是噪声或者冗余的,因此需要有个选择机制

3.Different layers encode different types of features. Higher layers capture semantic concepts on object categories, whereas lower layers encode more discriminative features to capture intra class variations. 意思是不同层feature map(conv4和conv5)具有不同的特性,要针对tracking出现的不同情况,利用不同的feature maps.

对应的三个贡献如下:

1) 分析了从大规模图像分类中学到的CNN特征,找出适合于visual tracking的一些属性。也就是不同的computer vision tasks需要 不同的特征。

2)作者提出了一种新的tracking的方法,同时考虑两个不同卷积层的特征输出,使他们相互补充来处理剧烈的外观变化和区分目标本身

3)设计了一种方法来自动选择区分性的feature maps,同时忽略掉另外一个以及噪声。

整体框架:



解释如下:

第一步,对于给定的target,对VGG网络的conv4-3和conv5-3层执行feature map selection,目的是选出最相关的feature maps,具体原因就是构建一个L1范数的正则化目标函数。

第二步,在conv5-3的feature maps基础上,构造一个通用网络GNet,用来捕捉目标的类别信息

第三步,在conv4-3的feature maps基础上,构造一个特定网络SNet,用来将目标从背景中区分出来。

第四步,利用第一帧图像来初始化GNet和SNet,但是两个网络采用不用的更新方法

第五步, 对于新的一帧图像,感兴趣区域(ROI)集中在上一帧的目标位置,包含目标和背景上下文信息,通过全卷积网络传递。

第六步,GNet和SNet网络各自产生一个前景heat map。于是对下一帧目标位置的预测就基于这两个热图。

第七步,干扰项检测用来决定采用上一步产生的哪一个热图,从而决定最后目标的位置。

reference:
http://blog.csdn.net/cv_family_z/article/details/50748236(可参考多篇文章)
简而言之就是:

1.对conv5-3和conv4-3进行特组图筛选; 
2.广义网络GNet根据conv5-3筛选建立; 
3.针对性网络SNet根据conv4-3筛选建立; 
4.SNet,GNet使用第一帧初始化并进行目标热度图回归。 
5.对于新的一帧,上次位置的ROI抠取并送到全卷积网。 
6.SNet,GNet 生成两个热度图,distractor选择策略决定哪个图使用。

特征图筛选 
sel-CNN筛选conv4-3,conv5-3。最小化目标热度图与预测热度图的损失使用BP学习模型参数,根据特征图对损失函数的影响选择特征图: 
Lsel=||M̂ M||2

特征图变化带来的损失变化为: 
这里写图片描述

特征图中某个特征的显著性为: 
这里写图片描述

特征图的显著性为所有元素显著性的和: 
Sk=x,ys(x,y,k)

位置预测 
目标定位首先在GNet上进行,当前帧的位置由上一帧位置,使用高斯模型预测: 
这里写图片描述

为了避免相似物体干扰,当目标外与目标内置信度比值超过一定阈值时,选择SNet预测最终位置: 
这里写图片描述

实验结果对比:

这里写图片描述

一些细节

值得一提的是作者采用了很多细节的技术,这些对于提升效果很有帮助。

比如对于模型的更新,作者将目标漂移以及热图匹配同时考虑在内。

参考文献

[1] Lijun Wang, Wanli Ouyang, Wanli Ouyang, Xiaogang Wang, and Huchuan Lu. "STCT: Sequentially Training Convolutional Networks for Visual Tracking", In Proc. CVPR 2016.

这篇关于深度学习tracking学习笔记(1):Visual Tracking with Fully Convolutional Networks的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1050198

相关文章

HarmonyOS学习(七)——UI(五)常用布局总结

自适应布局 1.1、线性布局(LinearLayout) 通过线性容器Row和Column实现线性布局。Column容器内的子组件按照垂直方向排列,Row组件中的子组件按照水平方向排列。 属性说明space通过space参数设置主轴上子组件的间距,达到各子组件在排列上的等间距效果alignItems设置子组件在交叉轴上的对齐方式,且在各类尺寸屏幕上表现一致,其中交叉轴为垂直时,取值为Vert

Ilya-AI分享的他在OpenAI学习到的15个提示工程技巧

Ilya(不是本人,claude AI)在社交媒体上分享了他在OpenAI学习到的15个Prompt撰写技巧。 以下是详细的内容: 提示精确化:在编写提示时,力求表达清晰准确。清楚地阐述任务需求和概念定义至关重要。例:不用"分析文本",而用"判断这段话的情感倾向:积极、消极还是中性"。 快速迭代:善于快速连续调整提示。熟练的提示工程师能够灵活地进行多轮优化。例:从"总结文章"到"用

【前端学习】AntV G6-08 深入图形与图形分组、自定义节点、节点动画(下)

【课程链接】 AntV G6:深入图形与图形分组、自定义节点、节点动画(下)_哔哩哔哩_bilibili 本章十吾老师讲解了一个复杂的自定义节点中,应该怎样去计算和绘制图形,如何给一个图形制作不间断的动画,以及在鼠标事件之后产生动画。(有点难,需要好好理解) <!DOCTYPE html><html><head><meta charset="UTF-8"><title>06

学习hash总结

2014/1/29/   最近刚开始学hash,名字很陌生,但是hash的思想却很熟悉,以前早就做过此类的题,但是不知道这就是hash思想而已,说白了hash就是一个映射,往往灵活利用数组的下标来实现算法,hash的作用:1、判重;2、统计次数;

零基础学习Redis(10) -- zset类型命令使用

zset是有序集合,内部除了存储元素外,还会存储一个score,存储在zset中的元素会按照score的大小升序排列,不同元素的score可以重复,score相同的元素会按照元素的字典序排列。 1. zset常用命令 1.1 zadd  zadd key [NX | XX] [GT | LT]   [CH] [INCR] score member [score member ...]

【机器学习】高斯过程的基本概念和应用领域以及在python中的实例

引言 高斯过程(Gaussian Process,简称GP)是一种概率模型,用于描述一组随机变量的联合概率分布,其中任何一个有限维度的子集都具有高斯分布 文章目录 引言一、高斯过程1.1 基本定义1.1.1 随机过程1.1.2 高斯分布 1.2 高斯过程的特性1.2.1 联合高斯性1.2.2 均值函数1.2.3 协方差函数(或核函数) 1.3 核函数1.4 高斯过程回归(Gauss

【学习笔记】 陈强-机器学习-Python-Ch15 人工神经网络(1)sklearn

系列文章目录 监督学习:参数方法 【学习笔记】 陈强-机器学习-Python-Ch4 线性回归 【学习笔记】 陈强-机器学习-Python-Ch5 逻辑回归 【课后题练习】 陈强-机器学习-Python-Ch5 逻辑回归(SAheart.csv) 【学习笔记】 陈强-机器学习-Python-Ch6 多项逻辑回归 【学习笔记 及 课后题练习】 陈强-机器学习-Python-Ch7 判别分析 【学

系统架构师考试学习笔记第三篇——架构设计高级知识(20)通信系统架构设计理论与实践

本章知识考点:         第20课时主要学习通信系统架构设计的理论和工作中的实践。根据新版考试大纲,本课时知识点会涉及案例分析题(25分),而在历年考试中,案例题对该部分内容的考查并不多,虽在综合知识选择题目中经常考查,但分值也不高。本课时内容侧重于对知识点的记忆和理解,按照以往的出题规律,通信系统架构设计基础知识点多来源于教材内的基础网络设备、网络架构和教材外最新时事热点技术。本课时知识

如何在Visual Studio中调试.NET源码

今天偶然在看别人代码时,发现在他的代码里使用了Any判断List<T>是否为空。 我一般的做法是先判断是否为null,再判断Count。 看了一下Count的源码如下: 1 [__DynamicallyInvokable]2 public int Count3 {4 [__DynamicallyInvokable]5 get

线性代数|机器学习-P36在图中找聚类

文章目录 1. 常见图结构2. 谱聚类 感觉后面几节课的内容跨越太大,需要补充太多的知识点,教授讲得内容跨越较大,一般一节课的内容是书本上的一章节内容,所以看视频比较吃力,需要先预习课本内容后才能够很好的理解教授讲解的知识点。 1. 常见图结构 假设我们有如下图结构: Adjacency Matrix:行和列表示的是节点的位置,A[i,j]表示的第 i 个节点和第 j 个