1、引言

2017年CVPR上有不少关于跟踪的paper。CF方面最引人瞩目的应该是ECO了,CNN方面也有一些新的进展。Branchout是一个基于CNN用bagging集成的在线跟踪方法。

contributions:

(1)提出了一种简单有效的正则化技术branchout,减少了集成学习方法在模型多样化和训练样本中噪声标签较少的限制。

(2)网络中每个独立的branch有不同数量的FC,并保留了多层级特征。

(3)验证了方法的有效性,并在没有pretraining的情况下也取得了start-of-the-art的成果。

2、框架

notations:

D = { (xi,yi)| i = 1,2,...,M }为更新模型的训练样本集。其中xi表示image patch,表示xi对应的二进制标签,其中(1,0)表示positive,(0,1)表示negative。

框架如下图:

从图中可以看出,输入图片,大小为3*107*107,之后经过三层卷积层,得到512*3*3的特征图,之后进入branches。每个独立的branch中有多个fc层,论文在实验阶段采用了1层或两层。之后进入average pool,最后再经过fc6层,计算softmax得到最后的结果。

当训练网络时,用伯努利分布来选择一个branches子集,假设有K个branches,则有下面的分布 ak ~ Bernoulli(Pk),其中ak表示第k个branch被选中更新的二进制结果,Pk是分布的一个参数。Loss如下:

Mb是mni-batch的size,F是softmax输出的结果。梯度是直接对theta求导。只对FC层更新,而且只更新一到两个FC层。理由是很难在有限训练样本的情况下在线学习两个以上的全连接层。

对第一帧首先标出正负样本,也就是前景和后景,之后开始跟踪第一帧标出的目标。从上一帧中获取目标中心的xi高斯分布,改变维度,计算所有branches的softmax结果。目标状态由下面的公式得到:

为了提高定位的精确度,采用bounding box regression,用1000个训练样例训练 (at the first frame only),意思是由第一帧进行数据增大得到的?然后应用model到所有后续帧。因为学习目标框很耗时,而且因为没有gt,使用其他帧学习到的特征不一定可靠。

另外一个在线学习的要素是如何构造训练样例。由于没有gt,只能依靠预测得到的目标位置。从第t帧得到的正样本要包含IoU值高于0.7的bounding box。

更新策略:(1)每10帧整个model更新一次,(2)当xt*的值小于0.5时更新一次。

算法流程如下:

寻找每帧的目标时,提取256个样本用于观察。如果连续10帧从CNN获得的分类结果低于阈值就扩大搜索空间。当模型需要更新时,基于ak(Pk = 0.5)选择一个branches子集。每个mini-batch的大小是128.包含36个正样本和92个负样本。在线学习时,学习率设置为0.0001,迭代30次,momentum为0.9,weight decay为0.0005。

3、实验结果

与MDNet相比:

在VOT2015数据集上结果:

C-COT的结果出乎意料的不太好,不过ECO在robustness、EAO、EFO这些指标领先,在acc上SSAT最高(VOT2016)。

cvpr2017:branchout——基于CNN的在线集成跟踪的更多相关文章

  1. 基于Android的在线播放器系统的设计与实现

    文章结构: 1 引言 1.1系统的研究背景 现在的时代是互联网的时代,互联网高速发展的同时,无线网络也接入了互联网.社会的各个领域都已经被无线网络渗透.小的比如手机,电脑,电视.大的比如灯光系统,智能 ...

  2. 构建一个基本的前端自动化开发环境 —— 基于 Gulp 的前端集成解决方案(四)

    通过前面几节的准备工作,对于 npm / node / gulp 应该已经有了基本的认识,本节主要介绍如何构建一个基本的前端自动化开发环境. 下面将逐步构建一个可以自动编译 sass 文件.压缩 ja ...

  3. 常用 Gulp 插件汇总 —— 基于 Gulp 的前端集成解决方案(三)

    前两篇文章讨论了 Gulp 的安装部署及基本概念,借助于 Gulp 强大的 插件生态 可以完成很多常见的和不常见的任务.本文主要汇总常用的 Gulp 插件及其基本使用,需要读者对 Gulp 有一个基本 ...

  4. 在windows下安装gulp —— 基于 Gulp 的前端集成解决方案(一)

    相关连接导航 在windows下安装gulp —— 基于 Gulp 的前端集成解决方案(一) 执行 $Gulp 时发生了什么 —— 基于 Gulp 的前端集成解决方案(二) 常用 Gulp 插件汇总 ...

  5. 执行 $Gulp 时发生了什么 —— 基于 Gulp 的前端集成解决方案(二)

    前言 文章 在windows下安装gulp —— 基于 Gulp 的前端集成解决方案(一) 中,已经完成对 gulp 的安装,由于是window环境,文中特意提到了可以通过安装 gitbash 来代替 ...

  6. 学习笔记——Maven实战(四)基于Maven的持续集成实践

    Martin的<持续集成> 相信很多读者和我一样,最早接触到持续集成的概念是来自Martin的著名文章<持续集成>,该文最早发布于2000年9月,之后在2006年进行了一次修订 ...

  7. 20个最强的基于浏览器的在线代码编辑器 - OPEN资讯

    20个最强的基于浏览器的在线代码编辑器 - OPEN资讯 20个最强的基于浏览器的在线代码编辑器

  8. 基于storm的在线关联规则

    基于storm的在线视频推荐算法.算法根据youtube的推荐算法  算法相对简单,能够觉得是关联规则仅仅挖掘频繁二项集.以下给出与storm的结合实如今线实时算法 , 关于storm见这里.首先给出 ...

  9. [项目回顾]基于Redis的在线用户列表解决方案

    迁移:基于Redis的在线用户列表解决方案 前言: 由于项目需求,需要在集群环境下实现在线用户列表的功能,并依靠在线列表实现用户单一登陆(同一账户只能一处登陆)功能: 在单机环境下,在线列表的实现方案 ...

随机推荐

  1. Japanese Learning - Words and Sentences 1

    1. いらっしゃいませ.何名さまですか. 二人です. タバコをお吸いになりますか. かしこまりました.少々お待ちください. お勘定お願いします. ご一緒でよろしいでしょうか. 別々にお願いします. 2 ...

  2. 浅谈Ajax 异步的几点细节

    1.浏览器执行到Ajax代码的这行语句的时候,发出了一个HTTP请求,欲想请求服务器上的数据.服务器此时开始I/O,所谓的I/O就是磁盘的读写,需要花费一些时间,所以不会立即产生下行的HTTP报文: ...

  3. HDU 1051 Wooden Sticks 贪心||DP

    Wooden Sticks Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Tot ...

  4. 网络爬虫——针对任意主题批量爬取PDF

    |本文为博主原创,转载请说明出处 任务需求:要求通过Google针对任意关键字爬取大量PDF文档,如K-means,KNN,SVM等. 环境:Anaconda3--Windows7-64位--Pyth ...

  5. Spring Security @PreAuthorize 拦截无效

    1. 在使用spring security的时候使用注解,@PreAuthorize("hasAnyRole('ROLE_Admin')") 放在对方法的访问权限进行控制失效,其中 ...

  6. HelloGitHub.com 网站开源了

    简介 随着 HelloGitHub 月刊持续更新了一年多,内容变的越来越多.因为内容数据没有结构化,如果还是使用之前的编辑文本的方式编辑月刊内容,会对后面的继续发刊和维护带来了很多问题和多余的工作,例 ...

  7. Linux 下搭建www服务器

    偶然的机会接触了前端开发,尽管最初的意愿是后台. 不过现在看来,前端后台数据库密不可分! 回想起来感觉自己学习的层次也还很好,因为之前有学习c语言.c++的基础,所以在学习html,js的过程中感觉还 ...

  8. Linux服务器学习(一)

    一.首先连接服务器 下载一个windows下连接linux的ssh工具,我这里用的putty.一次填入HostName(主机名,可以是服务器域名也可以是对应的ip).Port(端口号默认为22).Co ...

  9. 【grunt】grunt 基础学习

    1. 干啥的呢? 项目打包管理,用处有 1)可用于压缩合并前端文件,包括css/js , 2)可用于管理发布文件与开发文件,3)可用于自动编译less 文件 2. 常用的东西有哪些呢? 常用的插件有 ...

  10. Verilog HDL程序设计——基本要素

    Verilog基本上熟悉了,继续整理一下Verilog的学习笔记吧.前面记载了Verilog的结构,写Verilog的结构有了,但是该怎么写呢?在写之前就得了解一下Verilog的一些基本要素了,也就 ...