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

3.5.1 网络结构

SiamMask的网络结构,提出了三分支的SiamMask网络。与之前的孪生网络十分相似的是,将模板图像与搜索图像输入网络,两者经过特征提取网络,特征提取网络如下表所示,生成15×15×256和31×31×256的featuremap,与SiamFC相似的是,将两个featuremap逐通道相互卷积,生成17×17×256的featuremap,将这个过程生成的像素值叫做RoW,如下图所示,蓝色的1×1×256的featuremap为heatmap的最大值,代表目标最有可能出现的位置。之后将featuremap输入三个分支中,图中h_{\psi}h​ψ​​,b_{\psi}b​ψ​​,s_{\psi}s​ψ​​ 是1×1的卷积层,作用是改变通道的数量。

网络结构如下表所示:

在box分支中,17×17×256的featuremap经过1×1×(4k)的卷积层后生成17×17×4k的featuremap,这里k是每一个RoW生成k个anchors,这里实际上和SiamRPN相同,每四个一组,分别对应dx、dy、dw、dh四个值,代表着与groundtruth的距离。

在score分支中,17×17×256的featuremap经过1×1×(2k)的卷积层后生成17×17×2k的featuremap,这里k是每一个RoW生成k个anchors,这里实际上和SiamRPN相同,每两个一组,分别对应分类为目标和背景的标签结果。

在Mask分支中。17×17×256的featuremap经过1×1×(63×63)的卷积层后生成17×17×(63×63)的featuremap,从featuremap中取出与RoW位置相同的像素值,为1×1×(63×63),对其做上采样,生成127×127×1的图像,在这个图像中所有的像素值都取0或1,生成的相当于是一个二进制掩码,目标像素值为1,背景像素值为0,这样就完成了实例级分割的任务。   

三分支中的网络结构如下表所示:

除了三分支的SiamMask之外,作者还提出了二分支的SiamMask网络,如上图所示,删掉了box分支,只保留score和Mask分支:

通过Mask分支生成的二进制掩码来生成相对应的bounding box,二分支中的网络结构如下表所示:

3.5.2 模型创新

  • 改进的bounding box生成策略

设计了三种生成bounding box的策略如下图所示的红色、绿色和蓝色框

在之前的视频跟踪网络中,生成的都是平行于图片的x轴,y轴的bounding box。当然,SiamMask也能完成这样的任务,如图中红色框所示,在三分支的SiamMask网络中,box分支负责生成这样的bounding box。而在二分支的SiamMask网络中,利用Mask分支生成的二进制掩码取出目标所在的最小和最大的像素值,来生成Min-max的bounding box。

为了能够将bounding box尽可能的贴合物体,设计了MBR的生成策略,如图绿色框所示。同样,利用Mask分支生成的二进制掩码,求目标的最小包闭矩形,这样会导致生成的bounding box会有一定的倾斜。

还设计了一种策略Opt,如图中蓝色框所示。通过Mask分支生成的二进制掩码,求一个矩形区域使得矩形与目标像素的IoU最大,通过这种策略在一些计算目标与bounding box之间IoU的比赛中会提高SiamMask的成绩。

  • 掩膜细化模型

下图为特征提取网络和Mask分支的结构图,网络忽略了box分支和score分支,经过特征提取网络生成的1×1×256的featuremap,首先经过反卷积生成15×15×32的featuremap,之后每一次反卷积都通过Ui 结合多层的特征,最后经过一个3×3的卷积层和Sigmoid层生成127×127×1的二进制掩码。

下图为细化模型的结构图,经过细化模型可以实现上采样的过程中结合特征提取的featuremap信息。

3.5.3 损失函数

Mask分支的损失函数:

  在Mask分支最后生成一个127×127×1的二进制掩码也需要对其进行标记,目标像素标记为+1,背景像素标记为-1,所以假设一个RoW中会有w×h个像素,cij为Mask中第n个RoW中第i,j个像素的真实标记,mij为对应的网络的输出。所以这里的Mask分支只会计算一个目标RoW在二进制掩码中的所有像素。

  • 二分支:

二分支的SiamMask的损失函数如下式所示,其中λ1与λ2为超参数,λ1=32,λ2=1,L_{mask}L​mask​​ 是上面讲的Mask分支的损失函数,L_{sim}L​sim​​是SiamFC的损失函数

  • 三分支:

三分支的SiamMask的损失函数如下式所示,其中λ1与λ2为超参数,λ1=32,λ2=λ3=1, L_{mask}L​mask​​是Mask分支的损失函数,L_{score}L​score​​和L_{box}L​box​​是SiamRPN的损失函数 L_{cls}L​cls​​和L_{reg}L​reg​​.

3.5.4 模型训练

siamMask是端到端训练模型,训练参数如下表所示:

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

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

    DaSiamRPN网络的全称为Distractor-aware SiamRPN,是基于SiamRPN网络结构,提出更好的使用数据,针对跟踪过程的干扰物,利用更好的训练方式是跟踪更加的鲁棒. DaSia ...

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

    目标追踪任务是指在一个视频中给出第一帧图像的bbox的位置,在后续的帧中追踪该物体的任务. 目标追踪不同于目标检测的是: 1.需要给出首帧的标定框. 2.只需要给出标定框,后续的搜索范围往往在上一帧图 ...

  3. 智慧交通day04-特定目标车辆追踪03:siamese在目标跟踪中的应用-汇总

    总结: Siamese网络衡量两个输入的相似程度,输出是一个[0,1]的浮点数,表示二者的相似程度.孪生神经网络有两个输入(Input1 and Input2),将两个输入feed进入两个神经网络(N ...

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

    3.4.1 模型结构 SiamRPN++网络结构如下图所示,虚线的两边都是网络结构图,虚线左侧是特征提取网络结构,右侧是RPN结构图.其实SiamRPN++的网络结构与SiamRPN网络结构十分相似, ...

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

    3.2 SiamRPN(2017) 3.2.1 网络结构 Siam-RPN提出了一种基于RPN的孪生网络结构,由孪生子网络和RPN网络组成,前者用来提取特征,后者用来产生候选区域.其中,RPN子网络由 ...

  6. 单目标跟踪SiamMask:特定目标车辆追踪 part2

    日萌社 人工智能AI:Keras PyTorch MXNet TensorFlow PaddlePaddle 深度学习实战(不定时更新) CNN:RCNN.SPPNet.Fast RCNN.Faste ...

  7. 智慧交通day04-特定目标车辆追踪01:总览概述

    项目介绍: 运动目标跟踪一直以来都是一项具有挑战性的工作, 也是研究的热点方向. 现阶段, 随着硬件设施 的不断完善和人工智能技术的快速发展, 运动目标跟踪技术越来越重要. 目标跟踪在现实生活中有很 ...

  8. 智慧交通day04-特定目标车辆追踪02:Siamese网络+单样本学习

    1.Siamese网络 Siamese network就是"连体的神经网络",神经网络的"连体"是通过共享权值来实现的,如下图所示.共享权值意味着两边的网络权重 ...

  9. 智慧交通day03-车道线检测实现03:相机校正和图像校正的实现

    1.相机标定 根据张正友校正算法,利用棋盘格数据校正对车载相机进行校正,计算其内参矩阵,外参矩阵和畸变系数. 标定的流程是: 准备棋盘格数据,即用于标定的图片 对每一张图片提取角点信息 在棋盘上绘制提 ...

最新文章

  1. 【S1官方核心】18128核心纯净雅黑H大全力打造的1.9精品
  2. exists hive中如何使用_HIVE使用基础
  3. 一次利用位图索引进行SQL优化的案例
  4. 暑期训练日志----2018.8.24
  5. 05-IntelliJ IDEA清空项目缓存
  6. java雪崩_【并发编程】java 如何解决redis缓存穿透、缓存雪崩(高性能示例代码)...
  7. C# ?? 操作符示例
  8. 原生JS实现简易转盘抽奖
  9. 在非MVC环境下使用 Razor引擎
  10. Java中synchronized与Lock的区别
  11. 易华录数据湖事业部安全中心招聘中高级安全工程师2-4人
  12. Linux下screen的简单介绍
  13. WordPress优化攻略:全面提升WP网站速度仅需3个加速方法和1个插件
  14. 小爱同学app安卓版_小爱同学app下载|小爱同学手机版安卓最新版v2.8.21 下载_当游网...
  15. 如何让学习像打游戏一样具有成瘾性
  16. VIM 参 考 手 册
  17. 如何用python整理表格_Python 自动整理 Excel 表格
  18. esd win10 /win8 最简单快速的安装方法 双系统、vhd、wimboot+VHD
  19. 教你windows10系统更改任务栏颜色教程
  20. B站弹幕爬取并制成词云

热门文章

  1. akshare双均线backtrader
  2. java类加public和不加public
  3. Python协程--生成器(通过异常来判断生成器已经结束)
  4. 数据结构与算法--2.数组的定位排序
  5. h5页 点击返回时关闭_在微信、支付宝、百度钱包实现点击返回按钮关闭当前页面和窗口...
  6. 用计算机三级处理文件,【题目】计算机三级题目,献给为计算机三级挣扎的同学们...
  7. Python 包管理之 poetry
  8. php dingo和jwt,dingo配合laravel、JWT使用
  9. java 年计算_java实现计算某年某月的天数
  10. 快速傅里叶变换python_FFT快速傅里叶变换的python实现过程解析