智慧交通day04-特定目标车辆追踪03:siamese在目标跟踪中的应用-SiamFC(2016)

目标追踪任务是指在一个视频中给出第一帧图像的bbox的位置,在后续的帧中追踪该物体的任务。 目标追踪不同于目标检测的是:

1、需要给出首帧的标定框。

2、只需要给出标定框,后续的搜索范围往往在上一帧图像的附近。

孪生网络是使用深度学习进行目标追踪的重要解决方案,主要包括:孪生网络解决目标追踪开山之作SiamFC、SiamRPN、DaSiamRPN、SiamRPN++,SiamMask,下面对其进行简要介绍:

3.1 SiamFC(2016)

3.1.1 网络结构

SiamFC采用了全卷积式的Siamese网络实现目标跟踪,其网络结构如下图所示,具有两个权值共享的分支。其中,z为127×127的模板图像相当于要追踪的目标,x为255×255的搜索图像,我们要完成的就是在x中找到z的位置。

SiamFC有两个分支对应两个输入为z和x,将他们同时输入进行φ的计算,这里的作用就是进行特征提取,分别生成6×6×128和22×22×128的featuremap。φ所对应的特征提取网络采用的是AlexNet,其结构如下:

将生成的featuremap输入互相关层生成score map,实际上会进行如下的计算:

其中bI为每个位置对应的值,相当于是一个偏置,φ(x)和φ(z)是进行的卷积运算,通过卷积运算提取在x中与z最相似的部分。在SiamFC结构图中,输入的搜索图像中有红蓝两个区域在经过网络后与score map中的红蓝响应值相对应。网络输出的是17×17 的score map,而输入x是255×255的搜索图像,怎样将两者的位置进行映射呢。这里,将17×17的score map进行双三次插值生成272×272的图像,来确定物体的位置。但是为什么不生成255×255的图像呢?由于原始图像相对比较粗糙,为了使定位更加准确,所以生成272*272的结果。

3.1.2 模型输入

孪生网络有两个分支对应两个输入,z与x的大小并不是任意输入的,而是对目标区域进行了扩充,如下图所示:

上面的三张图是网络输入的模板图像z,下面对应的是网络输入的搜索图像x,红色为当前的所在帧的bounding-box。对于模板图像来说,根据第一帧的groundtruth会得到目标的(x_min,y_min,w,h)四个值,会通过以下公式生成模板图像的大小:

 

其中A=127*127, s是对图像进行的一种变换,先将包含上下文信息的(w+2p)×(h+2p)的图片扩展,然后进行resize,生成127×127的模板图像。 对于搜索图像x来说,会从整张图片中裁剪出255×255的图片,裁剪的中心为上一帧预测的bounding-box的中心。为了提高跟踪性能,选取了多种尺度进行预测。最初的SiamFC为5种尺度1.025^{-2,-1,0,1,2} ,其中255×255对应尺度为1。为了提升网络的FPS,又提出了存在3种尺度的SiamFC-3s。当模板图像和搜索图像不够裁剪时,会对不足的像素按照RGB通道的均值进行填充。

3.1.3 损失函数

为了构造有效的损失函数,对搜索区域的位置点进行了正负样本的区分,即目标一定范围内的点作为正样本,这个范围外的点作为负样本,例如网络结构图中最右侧生成的score map中,红色点即正样本,蓝色点为负样本。score map中的groundtruth按下式进行标记:

其中c为物体在score map的中心,u为score map中任意一点,∣∣u−c∣∣是u与c的欧氏距离,R为距离的阈值,k为score map经过网络之后缩小的倍数,从网络结构可以看出,有三层的卷积,池化是以2为步长,所以图像经过网络后会缩小2^3=8倍。

SiamFC采用的损失函数是logistic loss,具体的损失函数形式如下: 对于score map中了每个点的损失:

其中v是score map中每个点真实值,y∈{+1,−1} 是这个点所对应的标签。 上式是score map中每个点的loss值,而对于score map整体的loss,则采用的是全部点的loss的均值。即:

D是生成的score map,∣D∣为heatmap的大小,uϵD代表其在score map中的位置。

3.1.4 训练与跟踪

训练过程使用随机梯度下降法对下式进行优化: 

其中:θ代表着网络参数。

跟踪过程中模板图像只提取一次特征,目标图像在线不更新,对搜索图像进行5个尺度的搜索,利用用双三次插值将score map从 17×17 上采样到 272×272,进行跟踪目标的确定。

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

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

相关文章

word-break|overflow-wrap|word-wrap——CSS英文断句浅析

---恢复内容开始--- word-break|overflow-wrap|word-wrap——CSS英文断句浅析 一 问题引入 今天在再次学习 overflow 属性的时候,查看效果时,看到如下结果,内容在 div 中国换行了,可是两个 P 元素的内容并没有换行,搜索…

智慧交通day04-特定目标车辆追踪03:siamese在目标跟踪中的应用-SiamRPN(2017)

3.2 SiamRPN(2017) 3.2.1 网络结构 Siam-RPN提出了一种基于RPN的孪生网络结构,由孪生子网络和RPN网络组成,前者用来提取特征,后者用来产生候选区域。其中,RPN子网络由两个分支组成,一个是用来区分目标和背景的分类分…

ubuntu 18 Cannot find installed version of python-django or python3-django.

ubuntu系统下安装了django,但是启动django项目时报错 Cannot find installed version of python-django or python3-django. 原因: ubuntu大于14版本的应该安装python3-django 解决办法: apt-get install python3-django 如果提示你有几个…

智慧交通day04-特定目标车辆追踪03:siamese在目标跟踪中的应用-DaSiamRPN(2018)

DaSiamRPN网络的全称为Distractor-aware SiamRPN,是基于SiamRPN网络结构,提出更好的使用数据,针对跟踪过程的干扰物,利用更好的训练方式是跟踪更加的鲁棒。 DaSiamRPN认识到了现有的目标追踪数据集中存在的不平衡问题&#xff0c…

智慧交通day04-特定目标车辆追踪03:siamese在目标跟踪中的应用-SiamRPN++(2019)

3.4.1 模型结构 SiamRPN网络结构如下图所示,虚线的两边都是网络结构图,虚线左侧是特征提取网络结构,右侧是RPN结构图。其实SiamRPN的网络结构与SiamRPN网络结构十分相似,而SiamRPN就是在SiamRPN的基础上加入许多的创新点。 SiamR…

lanmp之二 (奇葩问题)

ps:该篇是接 lanmp —— 动静分离 lanmp —— 奇葩问题 话说,在 搭建 bbs.abc.com (discuz论坛)的 时候。。。。 1、说明:web机器上以前已经有一个 discuz 旧论坛 要做数据迁移(改域名/拷贝数据/迁移网站&a…

[已解决]user is not in the sudoers file. This incident will be reported.(简单不容易出错的方式)

linux Ubuntu中报错,XXX is not in the sudoers file. This incident will be reported. 今天在学习的时候,不小心把自己的用户sudo玩坏了(Broken sudo),于是上谷歌搜索XXX is not in the sudoers file. This inciden…

智慧交通day04-特定目标车辆追踪03:siamese在目标跟踪中的应用-SiamMask(2019)

与普通的视频跟踪网络不同的是,SiamMask可以同时完成视频跟踪和实例级分割的任务。如下图所示,与传统的对象跟踪器一样,依赖于一个简单的边界框初始化(蓝色)并在线操作。与ECO(红色)等最先进的跟…

编译器的大小端模式

大端模式(Big_endian):字数据的高字节存储在低地址中,而字数据的低字节则存放 在高地址中。 小端模式(Little_endian):字数据的高字节存储在高地址中,而字数据的低字节则存放 在低地…

【原】jQuery编写插件

分享一下编写设置和获取颜色的插件,首先我将插件的名字命名为jquery.color.js。该插件用来实现以下两个功能1.设置元素的颜色。2.获取元素的颜色。 先在搭建好如下编写插件的框架: ;(function($){//这里编写插件代码 })(jQuery); 我这里采用jQuery.fn.ex…

数据结构链表之单向链表:Python3 实现单向链表——1

Python3 实现单向链表 链表定义与简介 定义:链表与顺序表(Python中列表)性质相反,链表是物理单元上非顺序的、非连续的,在逻辑顺序上其数据元素是通过指针实现的,组成链表的每一个元素也可以叫做链表的节点,节点可以…

C语言(贪心法)

C语言有这样一个规则,每一个符号应该包含尽可能多的字符。也就是说,编译器将程序分解成符号的方法是,从左到右一个一个字符地读入,如果字条可能组成一个符号,那么再读入下一个字符,判断已经读入的两个字符组…

数据结构链表之双向链表:Python3 实现双向链表——2

Python3 实现双向链表 双向链表 定义:双向链表是链表中的一种,双向链表也叫双链表,它由多个节点组成,每个节点由一个数据域和两个指针域组成,一个指针指向前驱元素,一个指向后继元素 双向链表一般用来构…

linux驱动之ioctl

大部分驱动除了需要具备读写设备的能力之外,还需要具备对硬件控制的能力。 一、在用户空间,使用ioctl系统调用来控制设备,原型如下: int ioctl(int fd,unsigned long cmd,...); /* fd:文件描述符 cmd:控制命令 ...:可选参数:插入*…

数据结构链表之单链表的快慢指针——3

单链表之快慢指针 单链表的快慢指针简介 快慢指针指链表中定义两个指针,两个指针的移动速度一快一慢,一般快指针移动步长为慢指针的两倍 快慢指针适合解决的几个典型问题 中间值问题单向链表是否有环问题有环链表的入口问题 先定义一个简单的节点 …

【Pytorch神经网络基础理论篇】 04 线性代数

同学你好!本文章于2021年末编写,已与实际存在较大的偏差! 故在2022年末对本系列进行填充与更新,欢迎大家订阅最新的专栏,获取基于Pytorch1.10版本的理论代码(2023版)实现, Pytorch深度学习理论篇(2023版)…

Bootstrap实现弹出框和提示框效果代码

一、Bootstrap弹出框使用过JQuery UI应该知道,它里面有一个dialog的弹出框组件,功能也很丰富。与jQuery UI的dialog类似,Bootstrap里面也内置了弹出框组件。打开bootstrap 文档可以看到它的dialog是直接嵌入到bootstrap.js和bootstrap.css里面…

数据结构链表之循环链表——4

循环链表与约瑟夫问题 循环链表定义 定义:循环链表的定义十分简单,只需使一条单链表的尾部结点指向头结点,即可完成循环链表 循环链表的构建 class Node:def __init__(self, item):self.item itemself.next Nonefirst Node(aa) secon…

【Pytorch神经网络基础理论篇】 05 矩阵计算

同学你好!本文章于2021年末编写,已与实际存在较大的偏差! 故在2022年末对本系列进行填充与更新,欢迎大家订阅最新的专栏,获取基于Pytorch1.10版本的理论代码(2023版)实现, Pytorch深度学习理论篇(2023版)…

统计iOS项目的总代码行数的方法

1、打开终端, 2、用cd命令 定位到工程所在的目录,然后调用以下命名即可把每个源代码文件行数及总数统计出来: find . "(" -name "*.m" -or -name "*.mm" -or -name "*.cpp" -or -name "*.h&quo…