CVPR18读文笔记:SINT++:Robust Visual Tracking via Adversarial Postive Instance Generation

2023-05-16

CVPR18一共出现了3篇将Adersarial概念应用于tracking,解决正样本弱的问题。VITAL是用了GAN,惊为天人。本文国产,索然性能不是最优,但是VAE+DRL+SINT的集大成之作,还是足够significant。

  • 本文主旨:

Improve the robustness of visual tracking through the generation of hard positive samples. Baseline tracker用的是SINT,即一个Siamese two-frame matching(learn a matching function to match DRs in new frame match to Trajs in last frame)。

  • 文章概述:

           针对online trained T-by-D tracker训练时(hard) 正样本(双重)匮乏(具有long-tail distribution的rare and uncommon positive samples)的问题,即1. 正样本总量少且在线密集重叠采样导致正样本之间overlap太大,不够diverse;2. Hard正样本(被遮挡和形变的)更少。这种训练数据的匮乏导致训练所得的classifier and tracker无法捕捉和适应目标在线发生的外观变化。

传统方法为了解决正样本总量少的问题,可采用暴力采集样本扩大数据集或者random geometric or appearance transformation的data augmentation。这两种方法1. 费时费力不智能;2. 依旧不能解决hard positive少的问题。

因此,为了填补Deep CNN对正样本的需求与跟踪本质上只能提供有限正样本的这个矛盾。本文1. 通过Adversarial Generation(VAE)的思想,补充增强正样本;2. 通过DRL学习用背景负样本图片遮挡正样本图片生成hard正样本。

总结来说,本文一共由三大核心模块组成,解决三个核心问题:

  • Positive Sample Generation Network (PSGN)

假设所有目标样本都存在于一个manifold之上,因为用一个VAE(Variational Auto-Encoder)来decode生成大量与原encoding样本相似但又不完全一样的(with more diversity and degree of deformation and motion blur)正样本;解决正样本总量少的问题;

  • Hard Positive Transformation Network (HPTN)

用Deep Reinforcement Learning的手段学习如何使用负样本图片遮挡正样本图片以产生被遮挡的hard positive samples;解决hard正样本少的问题;

  • Two-stream Siamese Instance Search Network。

SINT(CVPR16)是一个offline trained matching functionno online model updating(后续帧一直与第一帧匹配),no occlusion detection,no combination of trackers,no geometric matching的tracker。SINT的几大特点如下:

  • 类fast-rcnn的roi pooling加速设计:

Siamese的两路CNN都采用输入整图加多个bbox的input,前几层conv直接提取全图的feature(这样就节省了分别输入多个小patch多个pass的时间和计算),然后用roi pooling把bbox的feature map转换为固定长度的feature vector;

  • 控制pooling的次数:

classification的任务更依赖于semantic information所以down-sampling损失掉resolution信息并不可怕。但是类似检测跟踪这一类localization的任务对像素级信息依赖,所以希望在resolution上尽量少degrade;

  • CNN feature hierarchical:

顶层semantic information和底层spatial information的结合。

  • Matching function的训练:

是一对儿图片外加一个label作为一个训练样本。

           上图(a)描述了在一帧中estimated location周围按照IoU密集采集到的正样本基本相似,不够diverse;(b)描述了出现遮挡的hard positive很少;(3)左是PSGN中的VAE,右是HPTN中的DRL。

  • 技术细节:
  1. 网络流程:

           最上端的SINT是按照原文照搬的;SINTinput数据最先由PSGNVAE生成reconstructed sample images,这些images输入HPTN然后将它们occlude,之后这些occluded image再输入SINT去训练一个matching function。基于这样造就的数据训练出来的matching function,对于遮挡等带来的形变更加鲁邦。

  1. PSGN:
  1. VAE理解:一个数据转换。将input图片通过encoder转换成一个latent variable vector,再由decoder转换回图像维,生成一张新图片。为了是这种转换受约束且有创造力,在encode的过程中约束latent variable必须服从Gaussian分布,这就是Variational中variation的来由。输出与输入图片在经历了一次数据转化之后产生的变化,来自于encode时对中间latent variable vector的高斯分布约束。

           最初,仅仅是一个decoder,即从一个vector decode出一个图片,换言之,可以把一只猫的图片储存为一个【0,0,0,1】的向量,通过decoder来还原。

           然而这样做的弊端是one-hot encoding的容量由位数直接限制。所以考虑如何把one-hot的向量转化成实数向量比如【4.3, 3.1, 3.2,5.6】来代表一只猫。

这样的向量如果通过随机初始化来获得,不理想。

那么,就外加一个encoder网络,来负责生成这种latent variable(即实数化的向量)。这就得到了一个如下的标准自编码器

          

           标准自编码器的能力是把一张图encode成一个latent向量来储存,但它并没有能力生成未曾见过的图片。而只是起到了一个图片到vector的翻译作用。

           那么,为了能够使得AE网络能够生成与input图像不同的output图像,又不randomly地manipulate latent variable,那么最好的办法就是对encoder生成latent variable的过程加限制条件,即迫使encoder产生服从单位高斯分布的latent variable。具有这样特性的标准自编码器就进化为了VAE

           这时,要产生新的图片,只需要在单位高斯分布上采样得到一个latent variable,然后将其传给解码器decode出图像即可。

           在训练时,计算重构图像与GT的loss就有两部分组成,一部分去计算图像的重构误差(MSE),另一部分去用KL-divergence度量latent variable distribution与单位高斯distribution的差异:

           为了优化KL-divergence的计算,用到一个参数重构的技巧:不像标准自编码器那样直接产生实数值向量,VAE encoder两个数:产生单位高斯分布的meanstandard deviation vector,再由这两个值从其描述的Gaussian distribution上采样:

  1. PSGN中VAE的作用是利用中间的latent variable(其实就是2D,即一个Gaussian distribution的mean和std)map到一个manifold上,所有见到过的目标都落在这个manifold之上,因而在这个manifold上沿不同方向(可以得到不同的vector?)decode就能得到diverse的正样本,这样就解决了密集采样正样本不diverse的问题。这个VAE生成的reconstructed正样本,既包括与真实样本相似的样本,还包括不曾见过的样本,这些样本可以理解为帧间的变化。

这个VAE的输入将bbox resize到64*64*3再flatten之后的12288维向量。中间层latent variable的输出是2D,后接一个512D的FC。整个VAE是FC based,没有conv。注意,本文对每一段视频是单独训练这个VAE的,有点cheating

  1. HPTN:一个标准的DQN网络训练。

Hard positive transformation就是做两件事:1. Decide which part to occlude;2. Decide use which part of background patch to occlude。这两件事合二为一就是选择一个image patch。这个在大图上选择一个小patch的过程,可以用deep reinforcement learning with 8 actions来做,转化为一个Markov Decision Process(MDP):

这里面不断在选择的patch是resized到224 * 224的patch,feature采自VGG的第八层conv。 Reward function如下:

其中s和s‘是连续的连个state(即有s进行一次action就得到s’),St是后面SINT给t这一MDP种时间节点产生的state(一张遮挡了的正样本图片)的打分,换言之,上式就是SINT给这个正样本的打分越低,reward越大,即这次action选择的state遮挡的越好越能迷惑SINT。

具体DQN的训练没看懂,需深究。。。

  1. 实验:

似乎SINT,PSGN,HPTN这三部分都是分开训练的,完全不是E2E。时效性与SINT相仿2fps左右,精确性只是超过SINT,但并不能与MDNet和ECO等抗衡。性能不堪但仍能够中稿CVPR,体现了本文VAE+DRL+SINT的集大成之优势。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

CVPR18读文笔记:SINT++:Robust Visual Tracking via Adversarial Postive Instance Generation 的相关文章

  • 使用Visual Studio 2022运行C++代码

    使用Visual Studio 2022运行C 43 43 代码 1 打开VS 2022 xff0c 创建新项目 2 安装多个工具和功能 3 选中 使用C 43 43 的桌面开发 和 通用Windows平台开发 xff0c 点击修改 xff
  • KITTI 数据集 参数—— tracking devkit中的rotation_y和alpha角

    根据devkit中的readme txt和cs overview pdf的描述以及根据通过对数据集做的小实验总结的 xff0c 如果过有错误的地方欢迎指正 61 61 61 61 61 61 61 61 61 61 61 61 61 61
  • 里程计及基于双目视觉的视觉里程计(stereo visual odometry)

    里程计在slam算法中扮演的作用不言而喻 xff0c 通常里程计可以分为轮子编码器的里程计 wheel odometry 和视觉里程计 visual odometry 而视觉里程计又可分为基于单目的视觉里程计 monocular odome
  • Intel Realsense Tracking Camera T265上手测试与总结

    首先在官网 https www intelrealsense com zh hans get started tracking camera 上认真阅读使用教程 xff0c 让自己对 Realsense T265相机有一个初步的认识 了解过
  • Visual Studio 与Visual C++ 有什么区别

    Visual C 43 43 是 Visual Studio的一个部分 xff0c 此外还有 Visual Basic xff08 VB xff09 Visual C 等 VC 43 43 6 0 是VS6的 VC 43 43 2003 是
  • Visual Studio和VS Code的区别

    1 Visual Studio简介 xff1a 是一个集成开发环境 IDE xff0c 安装完成后就能直接用 xff0c 编译工具 xff0c 调试工具 xff0c 各个语言的开发工具 xff0c 都是已经配置好的 xff0c 开箱即用 适
  • 低版本MATLAB配置高版本Visual Studio进行C/C++编译

    文章目录 前言1 下载支持Visual Studio2019的配置文件2 将Visual Studio2019的配置文件复制粘贴到MATLAB相应路径3 确定注册表添加路径和数值名称4 完成添加4 验证是否成功总结 前言 低版本的MATLA
  • Visual Studio + Opencv配置

    目录 Opencv安装 环境变量配置Visual Studio 库的两种配置 本文使用操作系统为Windows10 xff0c 仅适用于windows环境Visual Studio编译器上的 Opencv开发配置 Opencv所有平台通用的
  • 利用Visual Studio创建C语言dll

    利用VS2019创建dll方法 动态链接库的定义及意义如何在VS创建dll入口函数DLLMain如何创建导出函数动态调用导出函数 动态链接库的定义及意义 动态链接库 xff08 Dynamic Link Library 或者 Dynamic
  • Visual Basic相关

    vb教程
  • LVGL 之 windows 上 lvgl 模拟器 基于 Visual Studio 搭建方法的简单整理

    mark GUI Guider与lvgl联合仿真 xff08 结合stm32实验进行演示 xff0c 含触摸屏实验计数器与计算器 xff09 https blog csdn net gudao07 article details 12752
  • Visual Studio中设置opencv环境

    图像处理的项目中 xff0c 每建立一个新的项目 xff0c 需要对环境重新设置 xff0c 本文记录一下自己在VS中设置环境的步骤 xff0c 也分享给相同的入门小白 本文侧重说明VS中调用opencv的环境设置步骤 xff0c open
  • Visual Studio 2022下载安装

    Visual Studio 2022下载安装 1 进入官网 官网地址 xff1a https visualstudio microsoft com 这里以Windows操作系统为例 根据需要选择版本 xff0c 我这里下载的是Enterpr
  • 相关滤波论文

    MOSSE 2010 Visual Object Tracking using Adaptive Correlation Filters PDF Minimum Output Sum of Squared Error MOSSE 是第一篇将
  • Android 应用安装跟踪如何工作?

    这里有人能解释一下 Android 应用程序推荐跟踪的工作原理吗 一位朋友给了我一个 Android 应用程序的 google play 推荐网址 我安装了该应用程序并打开了它 应用程序开发人员如何知道是我的朋友向我推荐了他们的应用程序 我
  • 用于跟踪 Visual Studio 中项目的总工作时间的附加组件

    VS2010 是否有一个扩展可以跟踪项目上花费的总时间 因此 开发人员可以看到他为特定解决方案的开发贡献了多少时间 None
  • 跟踪 GA 中的主题标签和查询字符串

    我有一些贴纸 其中包含我网站的 URL 二维码 如下所示 我会把它贴在街上 正如你所看到的 如果有人阅读了这个二维码 他就会转发到http issocial net qr page 现在我想跟踪通过此二维码贴纸访问我的网站的人 遗憾的是 G
  • 在 JavaScript 中隐藏/欺骗引用者的最可靠方法是什么?

    通常 引荐来源网址可通过以下方式追踪 JavaScript 的document referrer 请求标头 即PHP SERVER HTTP REFERER 我已经设置了一个键盘演示它显示了这些属性 用于测试目的 要求 原始引用者应该有效地
  • Mac OS X 中是否有等效的 PTHREAD_MUTEX_ROBUST ?

    我正在使用一个pthread mutex t with PTHREAD PROCESS SHARED在共享内存上进行不同进程之间的同步 如果进程退出但互斥锁保持锁定状态 则互斥锁可能会死锁 有一个PTHREAD MUTEX ROBUST在
  • 查找字符串的*最*常见前缀 - 更好的方法吗?

    我有一个钥匙列表 foo a foo b foo c fnord 这里所有类似的解决方案都假设您没有fnord在你的文字中 我有这个代码可以完成这项工作 def detect prefix keys PCT 0 70 cutof pre l

随机推荐

  • C/C++分割字符串: strtok函数

    C语言如何实现将字符串ABCD efgh i1234 David Julie Susan中 和 分隔开的几个字串ABCD efgh i1234 David Julie Susan取出来 xff1f 有个函数叫 strtok span cla
  • 浅谈用Google Scholar查找并获取外文文献的技巧和方法

    一 Google Scholar是什么 Google Scholar是Google于2004年底推出的专门面向学术资源的免费搜索工具 xff0c 能够帮助用户查找包括期刊论文 学位论文 书籍 预印本 文摘和技术报告在内的学术文献 xff0c
  • 常见的字符串处理函数strstr,strlen,strtok

    字符串处理 strstrstrlenstrtokstrchrstrcpystrcmpstrcatsprintfbzeromemsetmemcpymemcmperrno strstr span class token function str
  • Vscode+MinGW配置C++开发环境(解决版本过老和在线下载极慢问题)

    文章目录 准备电脑MinGW的编译器环境安装注意 配置Path环境路径VScode 安装C C 43 43 拓展配置运行 xff08 多数配置直接被VSCODE自动生成 xff09 准备电脑MinGW的编译器环境 为什么选择MinGW xf
  • Python——alembic数据库ORM模型的迁移与映射

    Python alembic数据库ORM模型的迁移与映射 alembic 作用 xff1a 方便数据库与ORM模型的迁移与映射 alembic 安装 xff1a pip install alembic alembic 用法 xff1a 1
  • 解决VNC远程连接树莓派,窗口显示不全的问题,亲测可行!!

    哇 xff0c 就在刚刚才百度到解决VNC远程连接树莓派 xff0c 窗口显示不全的问题 xff0c 昨晚上查了一晚上都没搞定 xff0c xff0c xff0c 首先说下问题吧 xff0c 就是用VNC远程连接树莓派后 xff0c 会出现
  • Kotlin Parameter specified as non-null is null

    报错信息如下 span class hljs label java lang IllegalArgumentException span Parameter specified as non null is null method kotl
  • 如何获取维普免费账号--应对大家工作后在校外下载维普万方等全文

    马上就要工作了 xff0c 觉得学校里面图书馆资料很多 xff0c 并且很有用 xff0c 都可以在CNKI 万方维普等中文数据库 xff0c 和SD EBSCO SpringerLink等西文数据库中下载全文 xff0c 但是仅仅限于校内
  • Ubuntu下搭建samba服务

    Samba服务器和NFS差不多 xff0c Samba是在Windows操作系统下访问Linux主机 xff0c NFS可以让Linux客户端访问NFS服务器 xff0c NFS服务器可以使用Windows搭建也可以使用Linux搭建 xf
  • VsCode打不开终端

    VsCode打不开终端 问题现象解决办法 问题现象 解决办法 打开设置 输入 integrated 并打开 settin json 插入对于终端路径设置 代码如下 xff1a 34 terminal integrated shell win
  • VMware虚拟机中的Ubuntu图形界面蓝屏问题

    VMware虚拟机中的Ubuntu图形界面蓝屏问题 因为某次暴力关机后 xff0c 进入Ubuntu时发现蓝屏 xff0c 界面显示不正常 xff0c 但Ctrl 43 alt 43 F4后可以进入命令行 xff0c 说明系统正常只是图形界
  • GD32F205在IAR上移植FreeRTOS

    目录 简述 xff1a 第一步 xff1a 准备最简工程与系统第二步 xff1a 拷贝源码第三步 xff1a 编译器IAR配置第四步 xff1a 工程代码修改第五步 xff1a 编译工程 简述 xff1a 1 主芯片 xff1a GD32F
  • vscode之C/C++代码自动补全

    目录 准备 xff1a 步骤 xff1a 安装插件重启加载更改配置选项找到 设置 打开json配置添加配置json保存并重新打开vscode即可自动补全 准备 xff1a IDE xff1a vscode 安装就不展开啦 步骤 xff1a
  • git生成公钥

    平台 xff1a Windows 打开git bash 随便在一个目录下右键 xff0c 选择 Git Bash Here 生成公钥命令 ssh keygen t rsa C your email 64 example com 备注 xff
  • CentOS安装arm-linux-gcc交叉编译器

    xff08 注 xff1a 首先需要明确需要安装centos系统的位数 xff0c 即是32位的还是64位的 xff09 1 下载并解压文件 xff1a 下载arm linux gcc 4 4 3 tgz到任意的目录下 xff0c 进入这个
  • STM32F107之CAN配置

    STM32F107属于STMF10x系列的互联型产品 xff0c 所以配有2个CAN模块即CAN1和CAN2 CAN模块正常工作模式和测试模式 xff0c 且测试模式又分为环回模式 静默模式和环回静默模式 xff0c 但一般都使用正常工作模
  • 元学习基本概念笔记

    元学习是深度学习领域最活跃的研究领域之一 人工智能 xff08 AI xff09 社区中的一些思想流派赞成这样的论点 xff0c 即元学习是解锁人工智能 xff08 AGI xff09 的垫脚石之一 近年来 xff0c 我们已经看到了元学习
  • 【数据库】联合索引的最左匹配原则理解

    索引是基于B 43 树实现 xff0c 所以这个最左匹配原则肯定要站在B 43 树的角度上来思考 首先我们看一下单个索引的B 43 树 xff1a 如上图 xff0c 一颗B 43 树根据一个值来构建 xff0c 很容易理解索引的使用 假如
  • debian非正常关机进不了图形界面的解决方法

    昨天调试一个程序的时候 xff0c 把界面设置成了POPUP方式 xff0c 结果触发断点的时候 xff0c 界面不能最小化 xff0c 程序就死到那了 xff0c 动不了 xff0c 没办法只好按电源了 xff0c 结果启动的时候提示 A
  • CVPR18读文笔记:SINT++:Robust Visual Tracking via Adversarial Postive Instance Generation

    CVPR18一共出现了3篇将Adersarial概念应用于tracking xff0c 解决正样本弱的问题 VITAL是用了GAN xff0c 惊为天人 本文国产 xff0c 索然性能不是最优 xff0c 但是VAE 43 DRL 43 S