【论文阅读】Online Decision Based Visual Tracking via Reinforcement Learning

news2024/9/29 3:30:01

Online Decision Based Visual Tracking via Reinforcement Learning

概述

本文2020年发布于NeurIPS(CCF-A)。视觉跟踪通常基于目标检测或者模板区配,但它们都只适用于特定的场景或对象。因为它们遵循不同的跟踪原则,直接将它们融合在一起是不明智的。

本文主要提出了一种新的视觉跟踪集成框架DTNet,它基于层次强化学习(HRL)的决策机制。该框架提供了一个基于规则的动态转换策略,其中探测和模板跟踪器必须相互竞争来决定使用谁来跟踪。此外,提出了一个新的检测追踪器,它可以避免错误建议的普遍问题(不需要建议目标的候选边界框,从而使识别过程灵活)。实验结果表明,DTNet达到了最先进的跟踪性能,并且实现了性能和效率之间的平衡。

方法

与融合方法不同,DTNet学习如何自动切换两种tracker适用于不同场景。该框架包含两个模块: decision module 和 tracker module。
在这里插入图片描述

  • decision module

    • switch network:编码继承自前一帧 I t − 1 I_{t-1} It1的 image patch Φ t \Phi_t Φt 和初始模板 Φ ∗ \Phi^* Φ,然后输出一个二进制信号选择tracker,该tracker从当前帧 I t I_t It中估计目标的位置。
    • termination network:估计tracker的输出,并决定是继续使用当前tracker还是终止该tracker(这使得 decision module 不会在两个tracker之间振荡)。如果决定终止,只能证明当前tracker性能不是很好而不能证明另一个tracker性能更好,此时使用switch network从两个tracker中选择一个。

    马尔可夫选择 w ∈ Ω w\in \Omega wΩ由三部分组成:intra-option策略 π : S × A → [ 0 , 1 ] \pi:S \times A →[0,1] π:S×A[0,1],终止条件 β : S + → [ 0 , 1 ] \beta:S^+ → [0,1] βS+[0,1],初始集合 I ⊆ S I ⊆ S IS。若采取 w w w,根据 π w \pi_w πw选择动作,直到 w w w根据 β w \beta_w βw终止。
    Q Ω Q_\Omega QΩ表示switch network,可以被看做一个服从带网络权重 θ \theta θ和终止网络 β Ω , v \beta_{\Omega,v} βΩ,v Ω \Omega Ω的函数。决定当前tracker是否被终止的终止概率是由 β Ω , v \beta_{\Omega,v} βΩ,v根据选择 Ω \Omega Ω和其网络权重 v v v估计。将 Q Ω Q_\Omega QΩ定义如下,用HRL的方法评估option w w w的值:
    Q Ω ( s , w ; θ ) = r ( s , w ) + λ U ( s ′ , w ) Q_\Omega(s,w;\theta)=r(s,w)+\lambda U(s^{'},w) QΩ(s,w;θ)=r(s,w)+λU(s,w)
    r ( s , w ) r(s,w) r(s,w)表示agent在采取 w w w,选择一个特定tracker后收到的奖励。 U ( s ′ , w ) U(s',w) U(s,w)是在与终止概率 β w , v \beta_{w,v} βw,v相关的新状态 s ′ s' s执行 w w w的值,通过结合switch和termination network输出的值来计算:
    U ( s ′ , w ) = ( 1 − β w , ν ( s ′ ) ) Q Ω ( s ′ , w ) + β w , ν ( s ′ ) V Ω ( s ′ ) U(s',w)= (1 − β_{w,ν}(s'))Q_Ω(s', w) + β_{w,ν}(s')V_Ω(s') U(s,w)=(1βw,ν(s))Q(s,w)+βw,ν(s)V(s)
    β w , ν ( s ′ ) β_{w,ν}(s') βw,ν(s)是在状态 s ′ s' s的终止概率, V Ω V_\Omega VΩ是switch函数的最优解,它可以通过在option w w w上搜索switch函数 Q Ω Q_\Omega QΩ的最大值来得到:
    V Ω = max ⁡ w ( Q Ω ( s ′ , w ) ) V_\Omega=\max_w(Q_\Omega(s',w)) VΩ=wmax(QΩ(s,w))
    如果当前的option表现为 w g o o d w_{good} wgood,即 β w , ν β_{w,ν} βw,ν趋近于0, U ( s ′ , w g o o d ) ≈ Q Ω ( s ′ , w g o o d ) U(s',w_{good})≈Q_Ω(s', w_{good}) U(s,wgood)Q(s,wgood),反之, β w , ν β_{w,ν} βw,ν趋近于1,根据 V Ω = ( Q Ω ( s ′ , w g o o d ) ) V_\Omega=(Q_\Omega(s',w_{good})) VΩ=(QΩ(s,wgood)),仍有 U ( s ′ , w g o o d ) ≈ Q Ω ( s ′ , w g o o d ) U(s',w_{good})≈Q_Ω(s', w_{good}) U(s,wgood)Q(s,wgood) U ( s , w ) U(s,w) U(s,w)是可微的,其关于termination network的权值 v v v的梯度表示为:
    ∂ U ( s ′ , w ) ∂ v = − ∂ β w , v ( s ′ ) ∂ v ( Q Ω ( s ′ , w ) − V Ω ( s ′ ) ) + ( 1 − β w , v ( s ′ ) ) ∂ U ( s ′ ′ , w ′ ) ∂ v \frac{\partial U(s',w)}{\partial v}=-\frac{\partial \beta_{w,v}(s')}{\partial v}(Q_\Omega(s',w)-V_{\Omega}(s'))+(1-\beta_{w,v}(s'))\frac{\partial U(s'',w')}{\partial v} vU(s,w)=vβw,v(s)(QΩ(s,w)VΩ(s))+(1βw,v(s))vU(s′′,w)
    switch network Q Ω ( s , w ) Q_Ω(s, w) Q(s,w)作为"Critic"评估option的值,并且为 termination network β w , v \beta_{w,v} βw,v提供更新梯度, termination network 本质上作为"Actor",并且评估正在使用的tracker的性能以决定是否在当前帧终止它。switch network 的权重 θ \theta θ通过贝尔曼公式学习。

在这里插入图片描述

  • Tracker Module
    • Template tracker:使用 SiamFC作为Template tracker,标准的暹罗架构以一个包含一个范例图像 z z z和一个候选图像 x x x的图像对作为输入。

      • tips: Siamese network(https://zhuanlan.zhihu.com/p/35040994)

      z z z表示感兴趣的目标,而 x x x通常更大,表示后续视频帧的搜索区域。 x x x z z z的特征由相同的 τ \tau τ参数化的 C N N   φ CNN\ \varphi CNN φ提取:
      f τ ( z , x ) = φ τ ( z ) ⋆ φ τ ( x ) + b f_{\tau}(z,x)=\varphi_\tau(z)\star\varphi_\tau(x)+b fτ(z,x)=φτ(z)φτ(x)+b
      ⋆ \star 表示卷积操作。该公式在 x x x上对 z z z进行了穷举搜索,目标是将响应映射 f f f中的最大值区配到目标位置。

    • Detection tracker:为了构建一个基于目标检测的跟踪器,同时避免昂贵的提案生成过程,采用了一个全卷积tracker——FCT,包括一个分类分支和一个回归分支。分类分支预测目标位置,回归分支预测一个4D向量,表示从目标中心到其边界框的边缘的距离。
      给定主干CNN的特征映射 F ∈ R H × W × C F\in R^{H×W×C} FRH×W×C和在前一层中应用的所有步长的和 s s s F F F中的每个位置 ( x , y ) (x,y) (x,y)对应于图中的每个位置 ( ⌊ s 2 ⌋ + x s , ⌊ s 2 ⌋ + y s ) (\lfloor\frac{s}{2}\rfloor+xs,\lfloor\frac{s}{2}\rfloor+ys) (⌊2s+xs,2s+ys),直接预测F每个位置的类标签和回归距离。
      同一类object有可能被认为是一个序列的目标,但是另一个序列的背景,因此不能简单地使用传统分类器分配给目标‘1’或者‘0’。提出的分类branch,在每个域中,如果位置 ( x , y ) (x,y) (x,y)落在groundtruth box,类标签 c ∗ c^* c分配为‘1’,被视为正样本,否则类标签被分配为‘0’,视为负样本。
      回归分支输出一个4D矢量 r e ∗ = ( l ∗ , t ∗ , r ∗ , b ∗ ) re^*=(l^*,t^*,r^*,b^*) re=(l,t,r,b),表示从目标的位置到边界框四个边界的距离(如图3)。跟踪器最终输出的分类得分映射 c c c和回归值 r e re re,训练损失函数如下所示:
      L ( c , r ) = 1 N ∑ i = 1 N L c l s ( c i , c i ∗ ) + λ N [ W h e r e c ∗ > 0 ] ∑ i = 1 N L r e g ( r e i , r e i ∗ ) L(c,r)=\frac{1}{N}\sum^N_{i=1}L_{cls}(c_i,c^*_i)+\frac{\lambda}{N}[Where{c^*>0}]\sum^N_{i=1}L_{reg}(re_i,re^*_i) L(c,r)=N1i=1NLcls(ci,ci)+Nλ[Wherec>0]i=1NLreg(rei,rei)
      N表示用来训练的视频帧的总数。

训练

给定 K K K个训练序列,对第 j j j个随机提取一条训练序列 I j = { I 1 j , I 2 j , . . . , I T j } I_j=\{I_{1j},I_{2j},...,I_{Tj}\} Ij={I1j,I2j,...,ITj}依次对应ground truth G j = { G 1 j , G 2 j , . . . , G T j } G_j=\{G_{1j},G_{2j},...,G_{Tj}\} Gj={G1j,G2j,...,GTj},每对相邻的帧以一定概率跳过 n n n ( 0 ≤ n ≤ 5 ) (0≤n≤5) (0n5)。初始目标在第一帧的ground truth附近随机采样并作为模板,switch network有选择地评估模板编码的特征,观察结果继承自前一帧,并且选择一个tracker。switch过程中奖励如下:
r t ( s , w ) = { η L ⋅ D I o U , I F ( P t > t h h i   a n d   P t ∗ < t h e l o ) η L ⋅ D I o U , I F ( P t < t h h i   a n d   P t ∗ > t h e l o ) η M ⋅ D I o U , I F ( P t > t h h i   a n d   P t ∗ > t h e l o ) η S ⋅ D I o U , I F ( P t < t h h i   a n d   P t ∗ < t h e l o ) r_t(s,w)=\begin{cases}\eta_L·D_{IoU},IF(P_t>th_{hi}\ and\ P^*_t<the_{lo})\\ \eta_L·D_{IoU},IF(P_t<th_{hi}\ and\ P^*_t>the_{lo})\\ \eta_M·D_{IoU},IF(P_t>th_{hi}\ and\ P^*_t>the_{lo})\\ \eta_S·D_{IoU},IF(P_t<th_{hi}\ and\ P^*_t<the_{lo})\\ \end{cases} rt(s,w)= ηLDIoU,IF(Pt>thhi and Pt<thelo)ηLDIoU,IF(Pt<thhi and Pt>thelo)ηMDIoU,IF(Pt>thhi and Pt>thelo)ηSDIoU,IF(Pt<thhi and Pt<thelo)
(如下图所示) P t P_t Pt是所选tracker的预测边界框与ground truth G t G_t Gt P t ∗ P^*_t Pt之间的 I o U IoU IoU P t ∗ P^*_t Pt是未选tracker对应的 I o U IoU IoU D I o U D_{IoU} DIoU是它们之间的差值。有三种情况:(1)一个成功一个失败;(2)两个都成功;(3)两个都失败。三个较大的系数降序分配,在指导跟踪竞争的同时选择具有更高精度的agent,这些样本由未被选择的tracker依次采集以更新相应的网络。也就是,继续训练更糟的那个来保证两个tracker的竞争。新状态 s ′ s' s由当前帧的预测更新,然后agent以 β w , v ( s ′ ) \beta_{w,v}(s') βw,v(s)的概率终止前一个option并且重新评估option的价值。
对switch module,‘Critic’ model Q Ω ( s , w ) Q_\Omega(s,w) QΩ(s,w)可以通过贝尔曼公式学习,学习过程通过最小化如下损失实现:
L = 1 N ∑ i = 1 N ( y i − Q Ω ( s i , w i ; θ ) ) 2 L=\frac{1}{N}\sum^N_{i=1}(y_i-Q_\Omega(s_i,w_i;\theta))^2 L=N1i=1N(yiQΩ(si,wi;θ))2
其中 y i = r ( s i , w i ) + γ ( 1 − β w i , v ( s i ′ ) Q Ω ( s i ′ , w i ) ) + β w i , v ( s i ′ ) V Ω ( s i ′ ) y_i=r(s_i,w_i)+\gamma(1-\beta_{w_i,v}(s_i')Q_\Omega(s_i',w_i))+\beta_{w_i,v}(s_i')V_\Omega(s_i') yi=r(si,wi)+γ(1βwi,v(si)QΩ(si,wi))+βwi,v(si)VΩ(si)。’Actor‘ module β w , v \beta_{w,v} βw,v更新如下:
v = v − α v ∂ β w , v ( s ′ ) ∂ v ( Q Ω ( s ′ , w ) − V Ω ( s ′ ) ) v=v-\alpha_v\frac{\partial\beta_{w,v}(s')}{\partial v}(Q_\Omega(s',w)-V_\Omega(s')) v=vαvvβw,v(s)(QΩ(s,w)VΩ(s))

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/129070.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

会话技术和JSP技术

会话技术&#xff1a;一次会话中包含多次的请求和响应 一次会话&#xff1a;浏览器第一次给服务器资源发送请求&#xff0c;会话建立&#xff0c;直到有一方断开为止 功能&#xff1a;在一次会话的范围内共享数据 方式&#xff1a; 1、客户端会话技术&#xff1a;Cookie 2、服务…

我司赤城弘一CEO受邀参加东盟与中日韩中小企业人工智能产业论坛并做主旨发言。

我司赤城弘一CEO受邀参加东盟与中日韩中小企业人工智能产业论坛并做主旨发言。 一、活动背景 为推动东盟与中日韩&#xff08;103&#xff09;中小企业服务联盟务实合作&#xff0c;帮助中小企业提高生产力和技术创新能力&#xff0c;进一步提高国际化发展水平&#xff0c;促进…

Web前端期末大作业---新农村建设网页设计

✅ 作者简介&#xff1a;一名普通本科大三的学生&#xff0c;致力于提高前端开发能力 ✨ 个人主页&#xff1a;前端小白在前进的主页 ⭐️ 个人社区 : 个人交流社区 &#x1f340; 学习格言: ☀️ 打不倒你的会使你更强&#xff01;☀️ &#x1f525;前言 期末来咯&#xff0c…

Unity脚本(一)

视频教程&#xff1a;https://www.bilibili.com/video/BV12s411g7gU/?p112 目录 脚本 特性 控制台Console 脚本生命周期 Assembly-CSharp.dll 调试 Component 脚本 脚本是附加在游戏物体上用于定义游戏对象行为指令的代码&#xff0c;需要继承自MonoBehaviour类 编…

使用VTK和Python进行体绘制

使用VTK和Python进行体绘制IntroductionVolume Rendering1. Imports2. Helper-functions3.Options4. Image-Data Input5. Prep-work6. Volume RenderingIntroduction 科学可视化技术是运用计算机图形学、图像处理、计算机视觉等方法&#xff0c;将科学、工程学、医学等计算、测…

亚马逊跨境电商可靠吗?2023年还可以做吗?

新的一年新的打算&#xff0c;不少小伙伴在问&#xff0c;亚马逊跨境电商可靠吗&#xff1f;2023年还可以做亚马逊跨境电商吗&#xff1f;为此我们小编就来简单说说自己的想法吧&#xff01; 亚马逊跨境电商可靠吗&#xff1f; 【回答】&#xff1a;首先我们需要肯定一点的是&…

【Unity3D日常开发】Unity3D中屏蔽不想显示的黄色警告消息

推荐阅读 CSDN主页GitHub开源地址Unity3D插件分享简书地址我的个人博客QQ群&#xff1a;1040082875 大家好&#xff0c;我是佛系工程师☆恬静的小魔龙☆&#xff0c;不定时更新Unity开发技巧&#xff0c;觉得有用记得一键三连哦。 一、前言 在开发中&#xff0c;会有一些脚本…

在vue项目中使用rem的完整步骤

首先要知道几个概念&#xff1a; 设计稿是物理像素&#xff0c;在移动端上是css像素&#xff0c;1css像素2物理像素/3物理像素&#xff1b; 要想实现一张设计稿的尺寸能在各个移动端上适配&#xff0c;因为不同的移动端的css像素和物理像素比不一样&#xff0c;所以固定的物理…

【前端】Vue项目:旅游App-(1)搭建项目、重置css、配置router和store(pinia)

文章目录创建项目搭建和配置项目&#xff1a;项目目录结构划分重置CSSnormalize.cssreset.css目录结构配置router对应页面组件index.js配置store创建项目 npm init vuelatest本项目相关选择&#xff1a; 安装相关依赖&#xff1a; npm install试着跑一下&#xff1a; npm ru…

提面录取占比:浙大MBA MPA MEM复试中不可忽视的关键因素之一。

对于复试考生来说&#xff0c;单纯的探讨某个专业有多少人报考没有太大意义&#xff0c;单纯的关注这个专业招多少人也没有太多意义&#xff0c;我们要更加关注在复试阶段还能剩余多少录取指标&#xff0c;因为这个才是复试考生直接相关的数据。不同项目和专业间目前对提前批面…

剖析免密登录,集群之间的免密登录

免密登录1.免密登录的原理2.实现2.1首先配置每个节点的hosts文件2.2 在server1生成秘钥2.3了解文件2.4 实验是否可行3.补充1.免密登录的原理 每台主机authorized_keys文件&#xff0c;该文件就是身份验证的钥匙&#xff0c;该文件里如果有另一台主机的公钥&#xff08;id_rsa.…

Pytest自动化测试框架之Allure报告

目录 简介 部署使用 1、安装&#xff1a; 2、基本使用 测试报告 简介 Allure Framework是一种灵活的、轻量级、多语言测试报告工具。 不仅可以以简洁的网络报告形式非常简洁地显示已测试的内容&#xff0c; 而且还允许参与开发过程的每个人从日常执行中提取最大程度的有…

Android设计模式详解之享元模式

前言 享元模式是对象池的一种实现&#xff0c;用来尽可能减少内存使用量&#xff0c;适合用于可能存在大量重复对象的场景&#xff0c;来缓存可共享的对象&#xff1b; 定义&#xff1a;使用共享对象可有效地支持大量的细粒度的对象&#xff1b; 使用场景&#xff1a; 系统…

STM32/51单片机实训day7——电机驱动|ULN2003A步进电机|Proteus电路设计|旋转角度控制函数|驱动函数|Keil5程序设计

目录 1 ULN2003A步进电机简介 2 步进电机电路设计 3 旋转角度控制函数 4 程序设计 motor.c motor.h 前期LCD参考文章&#xff1a;​​​​​​​ 内 容&#xff1a;编程实现控制步进电机旋转不同角度 学 时&#xff1a;3学时 知识点&#xff1a; GPIO配置、步进电机…

【pygame学习_5】窗口设计

1、引言 窗体是游戏的交互界面&#xff0c;一般我们会遇到窗口大小可调&#xff0c;窗口无边框&#xff0c;全屏显示&#xff0c;最小化设计&#xff0c;改名字&#xff0c;换图标等设计需求。 屏幕绘制有如下重要函数&#xff1a; 2、屏幕模式函数 pygame.display.set.mode …

Event Loop

javascript是单线程语言 那么&#xff0c;你可能要问&#xff0c;javascript为什么是单线程&#xff0c;难道不能实现多线程吗&#xff1f; 这跟历史有关系。javascript从诞生的时候就是单线程&#xff0c;原因大概是不想让浏览器变得太复杂&#xff0c;因为多线程需要共享资源…

dark room - 2020 年苹果设计奖得主,一个足够强大的照片视频编辑器

dark room - 2020 年苹果设计奖得主&#xff0c;一个足够强大的照片视频编辑器 2020年苹果设计奖得主 2015年App Store最佳应用 Darkroom 是一个高级照片和视频编辑器。它对业余摄影师来说很容易操作&#xff0c;但对专业摄影师来说足够强大。 下载 ➤ Darkroom 下载安装 ⇲…

七十二——八十八

七十二、JavaScript——面向对象简介 面向对象编程&#xff08;OOP) 1. 程序是干嘛的 - 程序是现实世界的抽象&#xff08;照片就是对人的抽象&#xff09; 2. 对象是干嘛的&#xff1f; - 一个事物抽象到程序后就变成了对象 - 在程序的试接中&#xff0c;一切皆对象 - 一个事物…

来到CSDN一周年(hacker的2022年终总结)

✅作者简介&#xff1a;CSDN内容合伙人、阿里云专家博主、51CTO专家博主、新星计划第三季python赛道Top1&#x1f3c6; &#x1f4c3;个人主页&#xff1a;hacker707的csdn博客 &#x1f4ac;个人格言&#xff1a;不断的翻越一座又一座的高山&#xff0c;那样的人生才是我想要的…

【数据结构】排序算法大总结

文章目录1. 排序的概念及运用2. 常见排序算法的实现2.1 插入排序2.1.1 直接插入排序2.1.2 希尔排序2.2 选择排序2.2.1 直接选择排序2.2.2 堆排序2.3 交换排序2.3.1 冒泡排序2.3.1 快速排序小区间优化hoare版本挖坑法前后指针法2.3.2 快排非递归2.4 归并排序2.4.1 归并排序递归2…