Deep Reinforcement Learning with Iterative Shift for Visual Tracking
Deep Reinforcement Learning with Iterative Shift for Visual Tracking
2019-07-30 14:55:31
Code: not find yet.
Paper List of Tracking with Deep Reinforcement Learning: https://github.com/wangxiao5791509/Tracking-with-Deep-Reinforcement-Learning
1. Background and Motivation:
本文的贡献在于:
1). 提出一种 Actor-Critic Network 来预测物体运动的参数,并根据跟踪状态选择动作,不同的动作,会根据对结果的影响不同,设置不同的奖励;
2). 将 tracking 看做是迭代的平移问题,而不是 CNN Classification 问题,所以定位更加高效和准确;
3). 在 OTB 和 TC128 数据集上取得了较好的效果;
2. Approach:
本文所提出的方法包含三个模块:1). the actor network; 2). the prediction network; 3). the critic network.
2.1 Iterative Shift for Visual Tracking

本文将 tracking 看做是迭代的平移问题。 给定当前帧和之前的跟踪结果,prediction network 会迭代的平移候选框,以定位住目标物体,与此同时,action network 会在跟踪状态上进行预测,判断是否进行模型的更新,预测网络,甚至是重启跟踪过程。
正式的来说,给定上一帧的跟踪结果 $l_{t-1} = {x_{t-1}, y_{t-1}, w_{t-1}, h_{t-1}}$ 以及 feature $f_{t-1}^*$,我们先根据该位置,得到当前帧的大致位置,抠出该 feature $f_t$,然后用预测网络进行预测:

其中,预测网络的输出为:

此外,跟踪状态也可能会影响最终的结果,即:需要适时的更新预测网络。为了联合的基于 target's motion status 以及 tracker's status 进行决策,我们利用 actor network 根据多项式分布来产生动作:

其中,$a_k \in A = \{ continuous, stop & update, stop & ignore, restart \}$。
对于动作 continuous 来说,即:不用更新模型,继续平移,而进行的 shift 是根据 prediction network 进行的。
对于动作 step & update 来说,即:停止平移,更新模型,即:

对于动作 stop & ignore 来说,停止平移,不更新模型,表示目标物体已经找到,然而,跟踪器无法确定是否需要进行更新。
对于动作 restart 来说,重新进行跟踪过程,即:restart the iteration by re-sampling a random set of candidate patches $L_t$ around $l_{t-1}^*$ in $I_t$ and select the patch which has the highest Q-values.
DRL-IS with Actor-Critic:
我们探索 AC算法,来进行联合的训练三个网络。首先作者根据跟踪的性能,进行了奖励的设定:
对于 continue 动作, 根据

对于 stop & update and stop & ignore 动作,奖励的设定是根据 final prediction 和 ground truth 之间的 IoU 进行评判的:

对于 restart 动作,当 final prediction 和 groundtruth 之间的 IoU 低于 0.4 时,给予 pos 的奖励:

然后,我们计算每一个动作的 Q-value。
对于 action continue 的 Q-value 来说:

对于其他的三个动作来说,是按照如下的式子进行计算:

最终,两个函数的优化是按照如下的式子进行的:

其中,s' 是下一个状态,a' 是选择的最优动作,Action-value 以及 Value function 是按照如下的方式进行计算的:


总体的算法过程如下所示:

==
Deep Reinforcement Learning with Iterative Shift for Visual Tracking的更多相关文章
- 论文笔记之:Action-Decision Networks for Visual Tracking with Deep Reinforcement Learning
论文笔记之:Action-Decision Networks for Visual Tracking with Deep Reinforcement Learning 2017-06-06 21: ...
- Deep Reinforcement Learning for Visual Object Tracking in Videos 论文笔记
Deep Reinforcement Learning for Visual Object Tracking in Videos 论文笔记 arXiv 摘要:本文提出了一种 DRL 算法进行单目标跟踪 ...
- (转) Deep Reinforcement Learning: Pong from Pixels
Andrej Karpathy blog About Hacker's guide to Neural Networks Deep Reinforcement Learning: Pong from ...
- (zhuan) Deep Reinforcement Learning Papers
Deep Reinforcement Learning Papers A list of recent papers regarding deep reinforcement learning. Th ...
- getting started with building a ROS simulation platform for Deep Reinforcement Learning
Apparently, this ongoing work is to make a preparation for futural research on Deep Reinforcement Le ...
- 论文笔记之:Asynchronous Methods for Deep Reinforcement Learning
Asynchronous Methods for Deep Reinforcement Learning ICML 2016 深度强化学习最近被人发现貌似不太稳定,有人提出很多改善的方法,这些方法有很 ...
- 18 Issues in Current Deep Reinforcement Learning from ZhiHu
深度强化学习的18个关键问题 from: https://zhuanlan.zhihu.com/p/32153603 85 人赞了该文章 深度强化学习的问题在哪里?未来怎么走?哪些方面可以突破? 这两 ...
- Paper Reading 1 - Playing Atari with Deep Reinforcement Learning
来源:NIPS 2013 作者:DeepMind 理解基础: 增强学习基本知识 深度学习 特别是卷积神经网络的基本知识 创新点:第一个将深度学习模型与增强学习结合在一起从而成功地直接从高维的输入学习控 ...
- repost: Deep Reinforcement Learning
From: http://wanghaitao8118.blog.163.com/blog/static/13986977220153811210319/ accessed 2016-03-10 深度 ...
随机推荐
- 查找单链表中倒数第k个结点
本文转自:程序员面试题6--查找链表中倒数第k个结点 题目:输入一个单向链表,输出该链表中倒数第k个结点.链表的倒数第0个结点为链表的尾指针.链表结点定义如下: struct ListNode { i ...
- SpringBoot2.x项目初始化
1. 项目初始化说明 使用SpringBoot生成器 修改application.properties为application.yml 启动运行SpringBoot项目 2. 初始化项目 Spring ...
- MySQL Case--Strict mode与NOT NULL
事故回溯 某业务流程操作为: 1.循环扫描某张待处理请求表,查看是否有请求等待处理. 2.找到待处理请求后,申请相关资源进行处理,并将处理结果插入到处理结果表中. 3.将该请求从待处理请求表中移除. ...
- MySQL Replication--TABLE_ID与行格式复制
BINLOG中的TABLE_ID 在ROW格式的二进制中,事件信息中没有列的信息,需要通过Table_Map将表名对于的表信息加载到cache中,然后根据事件信息中的列下标来定位到数据列,每次表信息加 ...
- go语言笔记2
上接Go语言学习笔记(一) 11 Go错误处理11.1 nil函数通常在最后的返回值中返回错误信息.使用errors.New 可返回一个错误信息: package main ...
- Codeforces G. Ant colony
题目描述: F. Ant colonytime limit per test1 secondmemory limit per test256 megabytesinputstandard inputo ...
- Linux常用命令学习一
rpm -qa |grep jdk:查询系统中是否有存在jdk的rpm已安装程序: rpm -e --nodeps jdk1.8:卸载jdk1.8的程序: rpm -ivh rpm文件:安装rpm文件 ...
- Hive UDF函数构建
1. 概述 UDF函数其实就是一个简单的函数,执行过程就是在Hive转换成MapReduce程序后,执行java方法,类似于像MapReduce执行过程中加入一个插件,方便扩展.UDF只能实现一进一出 ...
- SparkSQL读写外部数据源-基本操作load和save
数据源-基本操作load和save object BasicTest { def main(args: Array[String]): Unit = { val spark = SparkSessio ...
- 关于git clone远程仓库账户密码错误的问题
这两天刚使用coding和git,但是在我第一次克隆coding上的项目的时候,提示输入账户和密码,当时我不知道这个账户和密码是指的哪个,就随便输入了,然后提示错误,,,,,, 之后每次克隆的时候都提 ...