SiamFC论文学习笔记

  • 引言
  • 相似度学习
  • 网络结构
  • 损失函数的定义
  • 优化与训练方案
  • 总结

引言

这是我写下的第一篇博文,主要目的是提升学习自己的主动性,对自己学到的知识进行及时总结反思,也便于在后续回顾时起到温故而知新的效果。

论文:《Full-Convolutional Siamese Networks for Object Tracking》

在本篇论文中,作者提出了全卷积孪生网络(Full-Convolutional Siamese Network,简称SiamFC)。这一网络提出的主要目的是解决如何追踪视频中的任意目标的问题。孪生网络的思想在本篇论文之前其实已经被提出过,但是该论文第一次引入了互相关层(correlation layer)作为两个分支的融合张量(fusion tensor),大大提高了跟踪精度。

相似度学习

对于任意给定的一个目标,要解决目标跟踪问题,孪生全卷积网络提出的主要思路是相似度学习。通俗地说,就是给定尺寸相同的模板图z和样本图x,我们用网络学习一个评价函数f(x,z) ,对两幅图的相似度进行打分,相似度越大,样本图就越可能包含给定模板图中的目标物体。

相似度学习这一思路应用在目标跟踪问题中,就是把上一帧中的目标物体图像作为模板,在本帧中选取多个相同尺寸的候选图,分别进行相似度计算,选出其中评价函数给分最高的候选图,其所在位置就是本帧中目标物体的位置。在原论文中,视频第一帧的目标物体图像被设置为最初的模板图。

网络结构

孪生全卷积网络的总体结构如图所示。

顾名思义,孪生网络是由两个结构相似的网络组成的。z为模板图,x为输入的样本图。两个 φ\varphiφ 表示两个特征提取网络,即原文中所说的embedding(用于降维的嵌入网络),论文中采用的是经典的AlexNet。∗\ast 表示互相关操作:f(z,x)=φ(z)⋆φ(x)+bIIf(z,x)=\varphi(z)\star\varphi(x)+bIIf(z,x)=φ(z)φ(x)+bII
⋆\star即我们平常熟悉的卷积操作,bII是每个子窗口对应的值,一个偏移量矩阵,看其他大佬解读似乎是通过什么窗口惩罚操作来获取的,这里还是需要继续阅读源码。

因此,整个孪生网络的流程如下,以论文输入尺寸的图像为例,127×127×3的模板图z(上一帧的目标物体图)和255×255×3的样本图x分别经过特征提取之后,再进行卷积(互相关操作),可得到一个分数图(分数矩阵),存储相似度评价的结果。

这里我一开始很疑惑,前文不是要求模板图z和样本图x尺寸相同吗?文章中提到,相似度最初的思路是在本帧图像中选取多个与模板图z尺寸相同的样本图x(子窗口),这样一来,经过如图的流程,最后得到的分数就会是一个数值,而非一个矩阵。但是这样一来就要对每个样本图都要执行一次同样的操作,而本结构则是用一副更大的搜索图取代一个样本图,最后得到的分数图各元素实际上就是模板图与搜索图中各个子窗口的相似度评价结果,相当于一次对多个子窗口打分,这样大大减少了时间成本。

再说说搜索图的选取,在跟踪过程中,是以上一帧搜索到的目标图像的中心位置为中心在本帧图中选取255×255×3的搜索图作为输入的x。经过孪生网络得到分数图后,用最大得分所在位置与分数图中心位置之差(即相对位置)乘以孪生网络的步幅(即从输入图像到输出特征图的缩放倍数),即可得出目标从一帧到下一帧的位移。通过缩放模板图像,在一个正向传播中可搜索多种缩放比例。(这一段在原文中不太懂)

损失函数的定义

网络的损失函数采用logistic损失函数,损失函数基于孪生网络输出的分数图进行定义。

对单一分数的损失函数定义如下:
l(y,v)=log(1+exp(−yv))l(y,v)=log(1+exp(-yv))l(y,v)=log(1+exp(yv))
其中v是模板图与某一个子窗口的相似度评价分数,y∈\in{1,-1}是对应的标签值(具体在后面解释)。

如果把分数图这一集合定义为D,其中的每个元素记为u,每个u实际上代表原搜索图x中的一个子窗口。由上面的损失函数可以继续定义分数图的损失函数:
L=1∣D∣∑u∈Dl(y[u],v[u])L=\frac{1}{|D|}\sum_{u\in D}l(y[u],v[u])L=D1uDl(y[u],v[u])
可以发现,这一损失函数是基于均值的思想定义的。

最后说说每个子窗口u的标签值y的定义:
y[u]={+1k∣∣u−c∣∣≤R−1otherwisey[u]=\left\{\begin{matrix} +1&k||u-c||\le R \\ -1&otherwise \end{matrix}\right. y[u]={+11k∣∣uc∣∣Rotherwise
这里人为定义了一个范围半径R,对于分数图中那些与中心点c的距离∣∣u−c∣∣||u-c||∣∣uc∣∣再乘以网络的步幅k小于等于R的元素u,记为正例,实际上就是在搜索图中与搜索图中心点距离小于R的那些子窗口。

为了平衡正负例数量的不均衡,还要对正例和负例对应的损失函数加权处理。

优化与训练方案

有了损失函数,就可以确定优化训练方案了。本论文采用深度学习经典的学习方式——随机梯度下降法(SGD)进行孪生网络参数θ\thetaθ的学习。

结合网络损失函数的定义,整个问题就可以转换为使用SGD方法求解
argmin⁡θE(y,z,x)[L(y,f(z,x;θ))]arg \min_{\theta} E_{(y,z,x)} [L(y,f(z,x;\theta))] argθminE(y,z,x)[L(y,f(z,x;θ))]

总结

本论文的主要知识暂时总结到这里,不足的部分欢迎大家批评指正。论文阅读过程中参考了许多大佬的博文分析,非常感谢。

推荐一篇分析得很不错的博文:
SiamFC 学习(论文、总结与分析)

SiamFC论文学习笔记相关推荐

  1. SiamRPN论文学习笔记(上)

    SiamRPN论文学习笔记(上) 引言 SiamRPN的网络结构 孪生子网络部分 区域候选子网络部分 RPN的诞生 区域候选子网络 训练阶段 两阶段训练 anchors尺寸设置 分类分支中anchor ...

  2. 动态环境下的SLAM:DynaSLAM 论文学习笔记

    动态环境下的SLAM:DynaSLAM 论文学习笔记 这篇文章 论文摘要 系统流程 相关环节的实现方法 神经网络检测图中动态物体(Mask R-CNN) Low-Cost Tracking 使用多视图 ...

  3. 识别和追踪主题层次的影响力者(来自2018 Machine Learning 论文学习笔记)

    本文作者:合肥工业大学 管理学院 钱洋 email:1563178220@qq.com . 以下内容是个人的论文阅读笔记,内容可能有不到之处,欢迎交流. 未经本人允许禁止转载. 文章目录 论文来源 论 ...

  4. 论文学习笔记 POSEIDON: Privacy-Preserving Federated Neural Network Learning

    论文学习笔记 POSEIDON: Privacy-Preserving Federated Neural Network Learning NDSS 2021录用文章 目录 论文学习笔记 POSEID ...

  5. 【论文学习笔记-2】高分辨率3D深度重建

    [论文学习笔记-2] 高分辨率3D深度重建 背景介绍 模型 目标 Related Works 背景介绍 应用场景广泛:桥,电缆etc 高分辨率图像的特点:像素多,potential disparity ...

  6. Dual Graph Attention Networks for Deep Latent Representation of Multifaceted Social...》论文学习笔记

    Dual Graph Attention Networks for Deep Latent Representation of Multifaceted Social Effects in Recom ...

  7. 论文学习笔记: Learning Multi-Scale Photo Exposure Correction(含pytorch代码复现)

    论文学习笔记: Learning Multi-Scale Photo Exposure Correction--含pytorch代码复现 本章工作: 论文摘要 训练数据集 网络设计原理 补充知识:拉普 ...

  8. 网规第二版:第8章 网络规划与设计论文学习笔记(含历年真题)(完结)

    第8章 网络规划与设计论文学习笔记 8.1写作范围要求 1.网络技术应用与对比分析 2.网络技术对应用系统建设的影响 3.专用网络需求分析.设计.实施和项目管理 4.下一代网络技术分析 8.2论文考试 ...

  9. 论文学习笔记 MUSE: Secure Inference Resilient to Malicious Clients

    论文学习笔记 MUSE: Secure Inference Resilient to Malicious Clients 一.背景介绍-神经网络推理 二.在半诚实模型下的模型提取攻击 2.1 模型结构 ...

最新文章

  1. 面向高精度领域的视觉伺服算法汇总
  2. [原]missing #39;;#39; before #39;namesapce#39;错误的解决
  3. puppet 类、模块
  4. 程序员的核心竞争力究竟是什么?
  5. .net core mysql CodeFirst
  6. 【Android 逆向】ART 脱壳 ( DexClassLoader 脱壳 | exec_utils.cc 中执行 Dex 编译为 Oat 文件的 Exec 和 ExecAndReturnC函数 )
  7. 如何实现SAP UI5 Web Component React控件的加载效果
  8. HAproxy开启日志记录
  9. Java中的继承:父类和子类的关系
  10. login控件authenticate_关于asp:login控件和验证码的问题?(转)
  11. Github Coding Developer Book For LiuGuiLinAndroid
  12. HI3516A/Hi3516D H265流结构分析
  13. Kubernets的资源管理
  14. LLVM学习笔记----clang、llvm-as、llvm-dis、llc、 llvm-link、lli
  15. 按关键字采集淘特商品列表API接口H5
  16. 2021最新python爬取12306列车信息自动抢票并自动识别验证码
  17. mmap是什么,为什么?
  18. c语言中执行cl exe时出错,执行cl.exe时出错怎么办
  19. 微型计算机控制系统分几类,微型计算机控制技术 潘新民版 答案
  20. [Vue warn]: Property or method “throttle“ is not defined on the instance but referenced during rende

热门文章

  1. 教材征订管理系统c语言,基于C语言的图书管理系统的设计与实现范文.doc
  2. 中国移动计算机类行测题目,2019中国移动春招考试行测题库:行测常识判断模拟题(十三)...
  3. [项目] Vue+Element-Plus+SpringBoot+WebSocket 简洁好看的聊天室项目(附源码)
  4. 格志日志 android,格志日记
  5. 递增数列(迭代加深搜索)
  6. 沁恒低功耗M0单片机CH579功耗低至0.2uA——带蓝牙USB以太网等接口
  7. Aspose.PDF for Java系列5-转化PDF文档为Word
  8. mysql查询已知两列第三列,MySQL查询从两列中查找出现的次数?
  9. oracle服务启动自动关闭,oracle启动服务时,启动之后又立即自动停止
  10. 松下PLC FP-XH M4L编程注意事项2