SiamFC:基于全卷积孪生网络的目标跟踪算法

2023-05-16

Abstract

  • 本论文提出一种新的全卷积孪生网络作为基本的跟踪算法,这个网络在ILSVRC15的目标跟踪视频数据集上进行端到端的训练。我们的跟踪器在帧率上超过了实时性要求,尽管它非常简单,但在多个benchmark上达到最优的性能。

1. Introduction

  • 最近很多研究通过使用预训练模型来解决上述问题。这些方法中,要么使用网络内部某一层作为特征的shallow方法(如相关滤波);要么是使用SGD方法来对多层网络进行微调。然而shallow的方法没有充分利用端到端学习的益处,而使用SGD微调虽然能到达时最优结果,但却难以达到实时性的要求。
  • 我们提出另一种替代性的方法。这个方法在初始离线阶段把深度卷积网络看成一个更通用的相似性学习问题,然后在跟踪时对这个问题进行在线的简单估计。这篇论文的关键贡献就在于证明这个方法在benchmark上可以达到非常有竞争性的性能,并且运行时的帧率远超实时性的要求。具体点讲,我们训练了一个孪生网络在一个较大的搜索区域搜索样本图片。本文另一个贡献在于,新的孪生网络结构是一个关于搜索区域的全卷积网络:密集高效的滑动窗口估计可通过计算两个输入的互相关性并插值得到。

2. Deep similarity learning for tracking

  • 跟踪任意目标的学习可看成是相似性问题的学习。我们提出学习一个函数 f ( x , z ) f(x,z) f(x,z) 来比较样本图像 z z z 和搜索图像 x x x 的相似性。如果两个图像描述的是同一个目标,则返回高分,否则返回低分。
  • 我们用深度神经网络来模拟函数 f f f,而深度卷积网络中相似性学习最典型的就是孪生结构。孪生网络对两个输入 z z z x x x 进行相同的变换 φ \varphi φ ,然后将得到的输出送入函数 g g g,最后得到相似性度量函数为: (1) f ( z , x ) = g ( φ ( z ) , φ ( x ) ) f(z,x)=g(\varphi(z),\varphi(x)) \tag{1} f(z,x)=g(φ(z),φ(x))(1) 1.函数 g g g 是一个简单的距离或相似性度量
    2. φ \varphi φ 相当于特征提取器

2.1 Fully-convolutional Siamese architecture

  • 网络结构如下图所示
    1. z z z 表示样本图像(即目标)
    2. x x x 表示待搜索图像
    在这里插入图片描述
  • 全卷积网络的优点是待搜索图像不需要与样本图像具有相同尺寸,可以为网络提供更大的搜索图像作为输入,然后在密集网格上计算所有平移窗口的相似度。本文的相似度函数使用互相关,公式如下 (2) f ( z , x ) = φ ( z ) ∗ φ ( x ) + b 1 f(z,x)=\varphi(z) * \varphi(x) + b\mathcal 1 \tag{2} f(z,x)=φ(z)φ(x)+b1(2) 1. b 1 b\mathcal 1 b1 表示在得分图中每个位置的取值
    2.上式可将 φ ( z ) \varphi(z) φ(z) 看成卷积核,在 φ ( x ) \varphi(x) φ(x) 上进行卷积
  • 跟踪时以上一帧目标位置为中心的搜索图像来计算响应得分图,将得分最大的位置乘以步长即可得到当前目标的位置。

2.2 Training with large search images

  • 我们用判别方法来对正、负样本对进行训练,其逻辑损失定义如下: (3) l ( y , v ) = l o g ( 1 + e x p ( − y v ) ) \mathcal l(y,v)=log(1+exp(-yv))\tag{3} l(y,v)=log(1+exp(yv))(3) 1. y ∈ ( + 1 , − 1 ) y\in(+1,-1) y(+1,1) 表示真值
    2. v v v 表示样本–搜索图像的实际得分
    3.上式表示的正样本的概率为 1 1 + e − v \frac{1}{1+e^{-v}} 1+ev1(sigmoid函数),负样本的概率为 1 − 1 1 + e − v 1-\frac{1}{1+e^{-v}} 11+ev1,则按交叉熵的公式很容易得到式 ( 3 ) (3) (3) 的loss
  • 训练时采用所有候选位置的平均loss来表示,公式如下: (4) L ( y , v ) = 1 D ∑ u ∈ D l ( y [ u ] , v [ u ] ) L(y,v)=\frac{1}{\mathcal D}\sum_{u\in \mathcal D}\mathcal l(y[u],v[u])\tag{4} L(y,v)=D1uDl(y[u],v[u])(4) 1. D \mathcal D D 表示最后得到的 score map
    2. u u u 表示 score map 中的所有位置
  • 训练的卷积参数 θ \theta θ 通过SGD来最小化如下问题得到: (5) a r g   m i n θ = E ( z , x , y )   L ( y , f ( z , x ; θ ) ) arg\ \underset {\theta}{min}=\underset {(z,x,y)}{E}\ L(y,f(z,x;\theta))\tag{5} arg θmin=(z,x,y)E L(y,f(z,x;θ))(5)
  • 训练样本对 ( z , x ) (z,x) (z,x) 从标注的视频数据集得到,如下图所示
    1.搜索区域 x x x 以目标区域 z z z 为中心
    2.如果超出图像则用像素平均值填充,保持目标宽高比不变
    3.训练时不考虑目标类别
    4.网络的输入尺寸统一
    在这里插入图片描述
  • 网络输出正负样本的确定:在输入搜索图像上(如 255 ∗ 255 255*255 255255),只要和目标的距离不超过R,那就算正样本,否则就是负样本,用公式表示如下: (6) y [ u ] = { + 1 i f   k ∣ ∣ u − c ∣ ∣ ≤ R − 1 o t h e r w i s e . y[u]=\left\{\begin{matrix} & +1\quad if\ k||u-c||\leq R\\ &-1\qquad otherwise\quad . \end{matrix}\right.\tag{6} y[u]={+1if kucR1otherwise.(6) 1. k k k 为网络的总步长
    2. c c c 为目标的中心
    3. u u u 为score map的所有位置
    4. R R R 为定义的半径

2.3 Practical considerations

  • Dataset curation
    1.样本图像大小 127 × 127 127\times 127 127×127,搜索图像大小 255 × 255 255\times255 255×255
    2.图像的缩放与填充如式所示: s ( w + 2 p ) × s ( h + 2 p ) = A s(w+2p)\times s(h+2p)=A s(w+2p)×s(h+2p)=A
    3.从ILSVRC15的4500个视频中选出4417个视频,超过2,000,000个标注的跟踪框作为训练集
  • Network architecture
    1.前两个卷积层后有池化层;
    2.每个卷积层后都有ReLU层(conv5除外);
    3.每个线性层后都加上BN;
    4.卷积层没有加padding;
    在这里插入图片描述

3. Experiments

3.1 Implementation details

  • Training
    1.梯度下降采用SGD
    2.用高斯分布初始化参数
    3.训练50个epoch,每个epoch有50,000个样本对
    4.mini-batch等于8
    5.学习率从 1 0 − 2 10^{-2} 102 衰减到 1 0 − 8 10^{-8} 108
  • Tracking
    1.初始目标的特征提取 φ ( z ) \varphi(z) φ(z) 只计算一次
    2.用双三次插值将score map从 17 × 17 17 \times 17 17×17 上采样到 272 × 272 272 \times 272 272×272
    3.对目标进行5种尺度来搜索( 1.02 5 { − 2 , − 1 , 0 , 1 , 2 } 1.025^{\left\{-2,-1,0,1,2\right\}} 1.025{2,1,0,1,2}
    4.目标图像在线不更新,因为对于CNN提取的是高层语义特征,不会像HOG或CN这些浅层特征苛求纹理相似度。(如跟踪目标是人,不论躺着或站着,CNN都能“认出来”这是人,而纹理特征如HOG或conv1可能完全无法匹配)
    5.跟踪效率:3尺度86fps,5尺度58fps (NVIDIA GeForce GTX Titan X and an Intel Core i7-4790K at 4.0GHz)

3.2 Evalution

  • Dataset size
    在这里插入图片描述
  • VOT 2015
    为什么5尺度比3尺度效果要差???
    在这里插入图片描述
  • Snapshots
    1.motion blur—robust(row 2)
    2.drastic change of appearance—robust(row 1,3,4)
    3.poor illumination and scale change—robust(row 6)
    4.occlusion—sensitive(row 5):because the model is never updated
    在这里插入图片描述

4. Cross-correlation与Correlation Filter

  • Cross-correlation:适合特征分辨率较小的高层CNN,典型AlexNet的conv5,CNN特征提取部分更大更慢,滑窗检测计算量较大但没有边界效应,检测范围不受限,目标模型在线不更新,定位精度较低但更鲁棒。
  • Correlation Filter:适合特征分辨率较大的低层CNN,典型AlexNet的conv2,CNN特征提取部分更小更快,模板更新和检测都可以在频域高效解决,CF速度快,但边界效应难以处理目标模型在线更新,定位精度更高但容易被污染。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

SiamFC:基于全卷积孪生网络的目标跟踪算法 的相关文章

  • 最长递增子序列的三种算法

    转载自 xff1a http qiemengdao iteye com blog 1660229 最长递增子序列 问题 给定一个长度为N的数组 xff0c 找出一个最长的单调自增子序列 xff08 不一定连续 xff0c 但是顺序不能乱 x
  • 树莓派手动指定静态IP和DNS 终极解决大法

    在把玩树莓派的过程中 xff0c 往往需要手动给它设定一个静态的IP地址 xff0c 一来可以防范DHCP自动分配的IP来回变动 xff0c 导致远程SSH时常无法连接 xff1b 二来还可以提高树莓派的网络连接速度 对此菲菲君在网上查了很
  • Anroid面试专题(十二):图片大小的优化 及 三级缓存

    面试官 xff1a 你在项目中处理过图片吗 xff0c 说一下你是如何对它做优化的 xff0c 及三级缓存是什么 xff1f 我们可以这样一步一步来回答 xff1a 1 一张图的大小是怎么计算的 要回答这个问题 xff0c 我们要先从图片说
  • UART和RS232/RS485的关系是什么?

    串口通讯是电子工程师和嵌入式开发工程师面对的最基本问题 xff0c RS232则是其中最简单最常用的通讯方式 但是初学者往往搞不清有关的名词如UART和RS232或RS485之间是什么关系 xff0c 因为它们经常被放到语句中同等的位置使用
  • TensorBoard的使用

    介绍 使用 Tensorboard 是TF 的可视化工具 xff0c 它通过对Tensoflow程序运行过程中输出的日志文件进行可视化Tensorflow程序的运行状态 xff0c 如下所示 SCALARS 对标量数据进行汇总和记录 使用方
  • Tensorflow 多 GPU 训练

    介绍 TensorFlow中的并行主要分为模型并行和数据并行 模型并行需要根据不同模型设计不同的并行方式 xff0c 其主要原理是将模型中不同计算节点放在不同硬件资源上运算 比较通用的且能简便地实现大规模并行的方式是数据并行 xff0c 其
  • Hadoop 各组件介绍

    转自 https www cnblogs com klb561 p 9085615 html Hadoop是一个由Apache基金会所开发的分布式系统基础架构 用户可以在不了解分布式底层细节的情况下 xff0c 开发分布式程序 充分利用集群
  • 8、解决Linux无法上网的各种问题

    最近发现Linux重新开机后无法上网 xff0c 不仅不能ping通windows主机也不能上外网 ifconfig后eth0也没有分配IP地址 xff0c 总之各种问题都被我碰到了 现在来一一解决 xff01 1 没有分配到IP地址 开机
  • 解决开发板ping不通主机和虚拟机的问题

    使用TFTP和NFS从虚拟机下载文件或者制作根文件系统的前提是开发板能够ping同虚拟机 xff01 相信很多人都像我一样有过ping不通的经历 xff0c 经过2 3天的研究和实验后终于把问题解决了 xff0c 而且屡试不爽 最后得出结论
  • USB摄像头驱动配置及V4L2编程

    1 摄像头驱动开发 1 1 摄像头软件系统架构 摄像头系统架构分为四层 xff1a 摄像头 支持V4L2的摄像头驱动 V4L2核心 应用程序 V4L2核心是Linux系统自带的组件 xff0c 它可以屏蔽摄像头驱动层的差异 xff0c 不管
  • 机器学习中的五种回归模型及其优缺点

    转自https blog csdn net Katherine hsr article details 79942260 好像有部分公式不能显示 xff0c 请查看原博客 本文将会介绍五种常见的回归模型的概念及其优缺点 xff0c 包括线性
  • VGGNet介绍

    VGGNet介绍 1 简要概括 VGGNet由牛津大学计算机视觉组合和Google DeepMind公司研究员一起研发的深度卷积神经网络 它探索了卷积神经网络的深度和其性能之间的关系 xff0c 通过反复的堆叠3 3的小型卷积核和2 2的最
  • PX4编译问题总结

    PX4在变编译的时候总会碰到很多问题 有些问题根据提示就可以解决 xff0c 有些问题却有点麻烦 1 找不到python jinja2模块 CMake Error at usr share cmake 3 2 Modules FindPac
  • 面试专题(十三):Service 与 IntentService

    1 Service 与 IntentService区别 Service不是运行在独立的线程 xff0c 所以不建议在Service中编写耗时的逻辑和操作 xff0c 否则会引起ANR IntentService 1 可用于执行后台耗时的任务
  • ResNet介绍

    ResNet介绍 1 简要概括 ResNet xff08 Residual Neural Network xff09 由微软研究院的Kaiming He等四名华人提出 xff0c 通过使用ResNet Unit成功训练出了152层的神经网络
  • PX4日志生成及查看

    Pixhawk的飞行日志由固件中的sd2log模块记录在SD卡的log文件中 xff0c 目前版本的格式为 px4log xff08 曾经是 bin xff09 xff0c 根据sd2log的设置不同 xff0c 包含飞行日志的文件夹的名字
  • PX4中混控器Mixer的分析

    PX4架构保证了核心控制器中不需要针对机身布局做特别处理 混控指的是把输入指令 xff08 例如 xff1a 遥控器打右转 xff09 分配到电机以及舵机的执行器 xff08 如电调或舵机PWM xff09 指令 对于固定翼的副翼控制而言
  • PX4-固定翼的姿态控制

    下面分析代码的版本是v1 8 2 1 参数介绍 固定翼中有很多参数 xff0c 理解这些参数的含义非常重要 FW AIRSPD TRIM 巡航状态下的空速 15m s FW AIRSPD MIN 最小空速 10m s FW AIRSPD M
  • PX4子模块不一致的问题

    PX4新代码改变了很多东西 xff0c 同时子模块改变也挺大的 将主代码切换到较老版本时会发生子模块版本不符合的情况 xff0c 这时候需要注意 xff0c 切换后需要同步下子模块 make clean git checkout lt wh
  • 【乌拉喵.教程】串口服务器的配置与连接调试

    串口服务器型号 xff1a NSC6008 8 1 使用网线将PC与串口服务器进行连接 2 将PC的IP设为如下 3 使用光盘所带软件update exe找到与PC相连的串口服务器IP 点击图标修改串口服务器IP地址为10 116 2 20

随机推荐

  • 解决Linux-Ubuntu下网速慢的解决方法

    官网上下了一个新版的Ubuntu18 04 xff0c 发现这个版本的网络速度像乌龟一样 xff0c 查阅了很多人的博客都没有用 xff0c 很多都是解决关于浏览器慢的方法 但是 xff0c 这个系统慢的不是浏览器 xff0c 是接上WIF
  • FPGA---7系列之IBERT_GTX内外环测试

    一 概述 IBERT xff08 集成误码率测试仪 xff09 是xilinx为7系列FPGA GTX收发器设计的 xff0c 用于评估和监控GTX收发器 IBERT包括在FPGA逻辑中实现的模式生成器和检查器 xff0c 以及对端口的访问
  • FPGA之JESD204B接口——总体概要 尾片

    在上一篇博客中 JESD204B 1 总体概要 xff0c 我们框架性的介绍了JESD204B xff0c 这篇博客介绍协议所需要关注的一些参数 xff0c 这些参数基本就是决定了连接特性 理解这些参数 xff0c 有助于理解连接中的转换特
  • FPGA之JESD204B接口——总体概要 实例上

    JESD204B IP CORE结构 JESD204B支持速率高达12 5Gbps xff0c IPcore可以配置为发送端 xff08 如用于DAC xff09 或接收端 xff08 如用于ADC xff09 xff0c 每个core支持
  • Android-使用RecyclerView的ItemDecoration 实现炫酷的 吸顶效果

    转载请注明出处 xff1a 李诗雨 http blog csdn net cjm2484836553 article details 53453982 开始逐渐领略到 ItemDecoration的美 源码已上传至github xff0c
  • FPGA之JESD204B接口——总体概要 实例 中

    1 AD9174配置 本设计采用AD9174 xff0c 其是一款高性能 双通道 16位数模转换器 DAC xff0c 支持高达12 6 GSPS的DAC采样速率 该器件具有8通道 15 4 Gbps JESD204B数据输入端口 高性能片
  • FPGA之JESD204B接口——总体概要 实例 下

    1 概述 DAC正常工作的前提是电源以及时钟稳定工作 xff0c 因此需要首先配置锁相环 xff0c 根据ADI评估板EVAL AD9174开发记录 上的时钟需求配置出需要的时钟频率 xff0c 待时钟锁定后配置dac内部锁相环 xff0c
  • STM32与DS1302设计时钟芯片,超详细

    DS1302 是DALLAS 公司推出的涓流充电时钟芯片 xff0c 内含有一个实时时钟 日历和31 字节静态RAM xff0c 通过简单的串行接口与单片机进行通信 实时时钟 日历电路提供秒 分 时 日 周 月 年的信息 xff0c 每月的
  • SX1278与STM8L的精美结合。

    转发请注重原创出处 xff0c 谢谢 一 引言 能耗对于电池供电的产品来说是一个重大的问题 xff0c 一旦电能耗尽设备将 罢工 xff0c 在某些场合电能意味着电子产品的生命 物联网时代将会有越来越多电池供电的设备通过无线通信连接 xff
  • 手把手教你查找stm32 HardFault_Handler调试及问题方法

    版权声明 xff1a 本文为博主原创文章 xff0c 未经博主允许不得转载 https blog csdn net u013184273 article details 84440177 在编写STM32程序代码时由于自己的粗心会发现有时候
  • STM32进阶之串口环形缓冲区实现 FIFO

    队列的概念 在此之前 xff0c 我们来回顾一下队列的基本概念 xff1a 队列 Queue xff1a 是一种先进先出 First In First Out 简称 FIFO 的线性表 xff0c 只允许在一端插入 xff08 入队 xff
  • DLT645-2007电能表通讯协议

    DLT645 2007通讯协议 xff1a 1 发送的帧格式 xff1a 1 1 帧起始符 0x68H 这个不多说 xff0c 记住就好 xff1b 1 2 地址域A0 A5 地址域由 6 个字节构成 xff0c 每字节 2 位 BCD 码
  • nvcc 编译 spdlog出现的问题

    1 链接 libspdlog a 时提示需要加 fpic选项 在编译spdlog库时加上cmake选项 xff1a DCMAKE CXX FLAGS 61 34 fpic 34 参考 2 core h出现error 将core h中的如下代
  • protobuf安装

    clone 代码 git clone https github com protocolbuffers protobuf git安装依赖项 sudo apt get install autoconf sudo apt get install
  • git lfs 的使用

    安装 curl s https packagecloud io install repositories github git lfs script deb sh sudo bashsudo apt get install git lfsg
  • 李诗雨的2016

    不诗意的女程序猿不是好厨师 xff0c 大家好 xff0c 我是李诗雨 xff5e 首先 xff0c 要先向各位道个歉 xff0c 其实我也是在csdn上刚拿到 暂住证 的新人 所以有好多功能还不知道 xff0c 今天在手机app上才看到有
  • 使用barrier共享键鼠

    1 安装flatpak 1 1 ubuntu 18及以后 sudo apt install flatpak 1 2 ubuntu18 以前 sudo add apt repository ppa flatpak stablesudo apt
  • OpenCV中访问图像中像素的三种方法

    1 用指针访问像素元 用指针访问像素的这种方法利用的是C语言中的操作符 xff0c 这种方法最快 如 xff1a cv Mat image span class hljs number 100 span span class hljs nu
  • 目标跟踪方法总结

    1 数据集 1 1 OTB 最经典的benchmark xff0c 有2013的OTB50和2015的OTB100OTB包括25 的灰度序列 xff0c 分辨率相对较低http cvlab hanyang ac kr tracker ben
  • SiamFC:基于全卷积孪生网络的目标跟踪算法

    Abstract 本论文提出一种新的全卷积孪生网络作为基本的跟踪算法 xff0c 这个网络在ILSVRC15的目标跟踪视频数据集上进行端到端的训练 我们的跟踪器在帧率上超过了实时性要求 xff0c 尽管它非常简单 xff0c 但在多个ben