0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

SiamRPN:High Performance Visual Tracking with Siamese Region Proposal Network 孪生网络

jf_96884364 来源:代码的路 作者: 代码的路 2023-01-11 17:41 次阅读

原文链接

论文地址:http://openaccess.thecvf.com/content_cvpr_2018/papers/Li_High_Performance_Visual_CVPR_2018_paper.pdf

摘要

大多数性能优越的视觉目标跟踪器很难有实时速度。在这篇文章中,我们提出了孪生候选区域生成网络(Siamese region proposal network),简称Siamese-RPN,它能够利用大尺度的图像对离线端到端训练。具体来讲,这个结构包含用于特征提取的 孪生子网络 (Siamese subnetwork)和 候选区域生成网络 (region proposal subnetwork),其中候选区域生成网络包含分类回归两条支路。在跟踪阶段,我们提出的方法被构造成为单样本检测任务(one-shot detection task)。

我们预先计算孪生子网络中的模板支路,也就是第一帧,并且将它构造成一个检测支路中区域提取网络里面的一个卷积层,用于在线跟踪。得益于这些改良,传统的多尺度测试和在线微调可以被舍弃,这样做也大大提高了速度。Siamese-RPN跑出了160FPS的速度,并且在VOT2015,VOT2016和VOT2017上取得了领先的成绩。

1.引言

与适当设计的最先进的基于相关滤波器的方法相比,基于离线训练的基于深度学习的跟踪器可以获得较好的结果。关键是候选的孪生候选区域生成网络(Siamese-RPN)。它由模板分支检测分支组成,它们以端到端的方式对大规模图像对进行离线训练。受到最先进的候选区域提取方法RPN 的启发,我们对相关feature map进行提议提取。与标准RPN不同,我们使用两个分支的相关特征映射进行提议提取。在跟踪任务中,我们没有预定义的类别,因此我们需要模板分支将目标的外观信息编码到RPN要素图中以区分前景和背景。

在跟踪阶段,作者将此任务视为单目标检测任务(one-shot detection),什么意思呢,就是把第一帧的bb视为检测的样例,在其余帧里面检测与它相似的目标。

综上所述,作者的贡献有以下三点:

1.提出了Siamese region proposal network,能够利用ILSVRC和YouTube-BB大量的数据进行离线端到端训练。

2.在跟踪阶段将跟踪任务构造出局部单目标检测任务。

3.在VOT2015, VOT2016和VOT2017上取得了领先的性能,并且速度能都达到160fps。

2.相关工作

2.1 RPN

RPN即Region Proposal Network,是用RON来选择感兴趣区域的,即proposal extraction。例如,如果一个区域的p>0.5,则认为这个区域中可能是80个类别中的某一类,具体是哪一类现在还不清楚。到此为止,网络只需要把这些可能含有物体的区域选取出来就可以了,这些被选取出来的区域又叫做ROI(Region of Interests),即感兴趣的区域。当然RPN同时也会在feature map上框定这些ROI感兴趣区域的大致位置,即输出Bounding Box。

RPN详细介绍:https://mp.weixin.qq.com/s/VXgbJPVoZKjcaZjuNwgh-A

2.2 One-shot learning

最常见的例子就是人脸检测,只知道一张图片上的信息,用这些信息来匹配出要检测的图片,这就是单样本检测,也可以称之为一次学习。

3 Siamese-RPN framework

3.1 SiamFC

SiamFC详细介绍:https://mp.weixin.qq.com/s/kS9osb2JBXbgb_WGU_3mcQ

所谓的Siamese(孪生)网络,是指网络的主体结构分上下两支,这两支像双胞胎一样,共享卷积层的权值。上面一支(z)称为模板分支(template),用来提取模板帧的特征。φ表示一种特征提取方法,文中提取的是深度特征,经过全卷积网络后得到一个6×6×128的feature map φ(z)。下面一支(x)称为检测分支(search),是根据上一帧的结果在当前帧上crop出的search region。同样提取了深度特征之后得到一个22×22×128的feature map φ(x)。模版支的feature map在当前帧的检测区域的feature map上做匹配操作,可以看成是φ(z)在φ(x)上滑动搜索,最后得到一个响应图,图上响应最大的点就是对应这一帧目标的位置。

Siamese网络的优点在于,把tracking任务做成了一个检测/匹配任务,整个tracking过程不需要更新网络,这使得算法的速度可以很快(FPS:80+)。此外,续作CFNet将特征提取和特征判别这两个任务做成了一个端到端的任务,第一次将深度网络和相关滤波结合在一起学习。

Siamese也有明显的缺陷:

1.模板支只在第一帧进行,这使得模版特征对目标的变化不是很适应,当目标发生较大变化时,来自第一帧的特征可能不足以表征目标的特征。至于为什么只在第一帧提取模版特征,我认为可能因为:

(1)第一帧的特征最可靠也最鲁棒,在tracking过程中无法确定哪一帧的结果可靠的情况下,只用第一帧特征足以得到不错的精度。

(2)只在第一帧提取模板特征的算法更精简,速度更快。

2.Siamese的方法只能得到目标的中心位置,但是得不到目标的尺寸,所以只能采取简单的多尺度加回归,这即增加了计算量,同时也不够精确。

网络训练原理

如图所示,上一帧的目标模板与下一帧的搜索区域可以构成很多对的模板-候选对(exemplar-candidate pair), 但是根据判别式跟踪原理,仅仅下一帧的目标与上一帧的目标区域(即 exemplar of T frame-exemplar of T+1 frame)属于模型的正样本,其余大量的exemplar-candidate pair都是负样本。这样就完成了网络结构的端到端的训练。

3.2 Siamese-RPN

左边是孪生网络结构,上下支路的网络结构和参数完全相同,上面是输入第一帧的bounding box,靠此信息检测候选区域中的目标,即模板帧。下面是待检测帧,显然,待检测帧的搜索区域比模板帧的区域大。中间是RPN结构,又分为两部分,上部分是分类支路,模板帧和检测帧的经过孪生网络后的特征再经过一个卷积层,模板帧特征经过卷积层后变为2k×256通道,k是anchor数量,因为分为两类,所以是2k。下面是边界框回归支路,因为有四个量[x, y, w, h],所以是4k右边是输出。

3.3 孪生特征提取子网络

预训练的AlexNet,剔除了conv2 conv4两层 。φ(z)是模板帧输出,φ(x)是检测帧输出

3.4 候选区域提取子网络

分类支路和回归支路分别对模板帧和检测帧的特征进行卷积运算:

A^{cls}{w×h×2k}=[\\psi(x)]{cls}×[\\psi(z)]{cls}\\
A^{reg}
{w×h×4k}=[\\psi(x)]{reg}×[\\psi(z)]{reg}

**A^{cls}{w×h×2k}**包含2k个通道向量,中的每个点表示正负激励,通过交叉熵损失分类;**A^{reg}{w×h×4k}**包含4k个通道向量,每个点表示anchor和gt之间的dx,dy,dw,dh,通过smooth L1 损失得到:

\\delta[0]=\\frac{T_x-A_x}{A_w},
\\delta[1]=\\frac{T_y-A_y}{A_h}\\
\\delta[2]=ln\\frac{T_w}{A_w},
\\delta[3]=ln\\frac{T_h}{A_h}

Ax, Ay, Aw, Ah是anchor boxes中心点坐标和长宽; Tx, Ty, Tw, Th是gt boxes,为什么要这样呢,因为不同图片之间的尺寸存在差异,要对它们做正规化。

smoothL1损失:

smooth_{L1}(x,\\sigma)=\\begin{cases} 0.5\\sigma^2x^2, & \\text |x|<\\frac{1}{{\\sigma^2}} \\ |x|-\\frac{1}{{2\\sigma^2}}, & \\text |x|≥\\frac{1}{{\\sigma^2}} \\end{cases}

3.5 训练阶段:端到端训练孪生RPN

因为跟踪中连续两帧的变化并不是很大,所以anchor只采用一种尺度,5种不同的长宽比(与RPN中的3×3个anchor不同)。当IoU大于0.6时是前景,小于0.3时是背景。

4. Tracking as one-shot detection

平均损失函数L:

\\min_{W'} \\frac{1}{n} \\sum_{i=1}^n L(\\psi(x_i;w(z_i,W')),l_i)

如上所述,让z表示模板patch,x表示检测patch,函数φ表示Siamese特征提取子网,函数ζ表示区域建议子网,则一次性检测任务可以表示为:

\\min_{W} \\frac{1}{n} \\sum_{i=1}^n L(\\zeta(\\psi(x_i;W);\\psi(z_i;W)),l_i)

如图,紫色的部分像原始的Siamese网络,经过同一个CNN之后得到了两个feature map,蓝色的部分是RPN。模板帧在RPN中经过卷积层,** \\phi (x){reg}** 和 ** \\phi (x){cls}** 当作检测所用的核。

简单的说,就是预训练模版分支,利用第一帧的目标特征输出一系列weights,而这些weights,包含了目标的信息,作为检测分支RPN网络的参数去detect目标。这样做的好处是:

(1)模板支能学到一个encode了目标的特征,用这个特征去寻找目标,这会比直接用第一帧的feature map去做匹配更鲁棒。

(2)相比原始的Siamese网络,RPN网络可以直接回归出目标的坐标和尺寸,既精确,又不需要像multi-scale一样浪费时间。

经过网络后,我们将分类和回归特征映射表示为点集:

A^{cls}{w×h×2k}={(x_i^{cls},y_j^{cls},c_l^{cls})}\\
A^{reg}
{w×h×4k}={(x_i^{reg},y_i^{reg},dx_p^{reg},dy_p^{reg},dw_p^{reg},dh_p^{reg})}\\
i∈[0,w),j∈[0,h),l∈[0,2k),p∈[0,k)

由于分类特征图上的奇数通道代表正激活,我们收集所有**A^{cls}_{w×h×2k}**中的前K个点,其中l是奇数,并表示点集为:

CLS^*={(x_i^{cls},y_j^{cls},c_l^{cls})_{i∈I,j∈J,l∈L}}

其中I,J,L是一些索引集。

变量i和j分别编码相应锚点的位置,l编码相应锚点的比率,因此我们可以导出相应的锚点集合为:

ANC^*={(x_i^{an},y_j^{an},w_l^{an},h_l^{an})_{i∈I,j∈J,l∈L}}

此外,我们发现**A^{cls}_{w×h×2k}**上ANC*的激活得到相应的细化坐标为:

FEG^*={(x_i^{reg},y_j^{reg},dx_l^{reg},dy_l^{reg},dw_l^{reg},dh_l^{reg})_{i∈I,j∈J,l∈L}}

因为是分类,**A^{cls}_{w×h×2k}**选前k个点,分两步选择:

第一步,舍弃掉距离中心太远的bb,只在一个比原始特征图小的固定正方形范围里选择,如下图:

中心距离为7,仔细看图可以看出,每个网格都有k个矩形。

第二步,用余弦窗(抑制距离过大的)和尺度变化惩罚(抑制尺度大变化)来对proposal进行排序,选最好的。具体公式可看论文。

用这些点对应的anchor box结合回归结果得出bounding box:

x_i^{pro}=x_i^{an}+dx_l^{reg}*w_l^{an}

y_j^{pro}=y_j^{an}+dy_l^{reg}*h_l^{an}\\

w_l^{pro}=w_l^{an}*e^{dw_l}\\

h_l^{pro}=h_l^{an}*e^{dh_l}

an就是anchor的框,pro是最终得出的回归后的边界框 至此,proposals set就选好了。

然后再通过非极大抑制(NMS),顾名思义,就是将不是极大的框都去除掉,由于anchor一般是有重叠的overlap,因此,相同object的proposals也存在重叠。为了解决重叠proposal问题,采用NMS算法处理:两个proposal间IoU大于预设阈值,则丢弃score较低的proposal。

IoU阈值的预设需要谨慎处理,如果IoU值太小,可能丢失objects的一些 proposals;如果IoU值过大,可能会导致objects出现很多proposals。IoU典型值为0.6。

5.实施细节

我们使用从ImageNet [28]预训练的改进的AlexNet,前三个卷积层的参数固定,只调整Siamese-RPN中的最后两个卷积层。这些参数是通过使用SGD优化等式5中的损耗函数而获得的。共执行了50个epoch,log space的学习率从10-2降低到10-6。我们从VID和Youtube-BB中提取图像对,通过选择间隔小于100的帧并执行进一步的裁剪程序。如果目标边界框的大小表示为(w,h),我们以大小A×A为中心裁剪模板补丁,其定义如下:

(w+p)×(h+p)=A^2

其中p =(w + h)/2

之后将其调整为127×127。以相同的方式在当前帧上裁剪检测补丁,其大小是模板补丁的两倍,然后调整为255×255。

在推理阶段,由于我们将在线跟踪制定为一次性检测任务,因此没有在线适应。我们的实验是在带有Intel i7,12G RAM,NVidia GTX 1060的PC上使用PyTorch实现的。

学习更多编程知识,请关注我的公众号:

[代码的路]

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 神经网络
    +关注

    关注

    42

    文章

    4572

    浏览量

    98749
  • 图像处理
    +关注

    关注

    26

    文章

    1224

    浏览量

    55824
  • 机器学习
    +关注

    关注

    66

    文章

    8122

    浏览量

    130564
收藏 人收藏

    评论

    相关推荐

    HIP5061 HIGH EFFICIENCY, HIGH PERFORMANCE,HIGH POWER CONVERTER

    efficiency, high performance andhigh power converters continues to expand. Demand forsmaller, lighter
    发表于 05-12 11:13

    Synthesiable High Performance SDRAM Contoller

    Synthesiable High Performance SDRAM ContollerSynchronous DRAMs are available in speed grades above
    发表于 12-17 17:02

    Wallys launches high-performance Tri-Band solutions/ipq4019+qca9882.

    the overall network capacity and performance by distributing devices across multiple bands. This helps
    发表于 06-08 09:59

    high performance stereo routin

    high performance stereo routing switcher
    发表于 04-18 20:37 48次下载
    <b class='flag-5'>high</b> <b class='flag-5'>performance</b> stereo routin

    Designing a High Performance S

    Designing a High Performance SDRAM Controller Using ispMACH Devices Synchronous DRAMs have become
    发表于 05-14 11:03 28次下载

    Designing a High Performance S

    Designing a High Performance SDRAM Controller Using ispMACH Devices Synchronous DRAMs have become
    发表于 06-14 08:55 24次下载

    High-performance RF design for

    High-performance RF design for PXI:PXI presents a significant opportunity for RF instrumentation.
    发表于 07-23 22:50 11次下载

    GC5325 Envelope Tracking

    Solutiondevice operating in conjunction with a Nujira High Accuracy Tracking (HAT) Voltage Modulator in anEnvelope Tr
    发表于 07-08 17:40 13次下载

    Use high-performance simultane

    This application note will help the designer of high-performance multichannel data acquisition
    发表于 07-04 12:15 7269次阅读
    Use <b class='flag-5'>high-performance</b> simultane

    文本匹配任务中常用的孪生网络

    Siamese”中的“Siam”是古时泰国的称呼,中文译作暹罗,所以“Siamese”就是指“暹罗”人或“泰国”人。“Siamese”在英语中同时表示“孪生”,这又是为什么呢?
    的头像 发表于 03-05 15:47 3345次阅读
    文本匹配任务中常用的<b class='flag-5'>孪生</b><b class='flag-5'>网络</b>

    基于信息熵的级联Siamese网络目标跟踪方法

    目标跟踪是计算机视觉领域的一个重要研究方向,针对目前算法对于目标外观变化的鲁棒性较差等问题,提出了一种基于信息熵的级联 Siamese网络目标跟踪方法。首先利用孪生神经网络
    发表于 05-07 14:11 1次下载

    RPN:Region Proposal Networks (区域候选网络)

    图片在输入网络后,依次经过一系列卷积+ReLU得到的51×39×256维feature map,准备后续用来选取proposal
    的头像 发表于 01-11 16:55 910次阅读
    RPN:<b class='flag-5'>Region</b> <b class='flag-5'>Proposal</b> Networks (区域候选<b class='flag-5'>网络</b>)

    SiamRPN++: Evolution of Siamese Visual Tracking with Very Deep Networks 深层网络连体视觉跟踪的演变

    /SiamRPN_plus_plus_PyTorch 摘要 基于孪生网络的跟踪器将跟踪表述为目标模板和搜索区域之间的卷积特征互相关。然而孪生网络
    的头像 发表于 01-11 17:52 798次阅读
    <b class='flag-5'>SiamRPN</b>++: Evolution of <b class='flag-5'>Siamese</b> <b class='flag-5'>Visual</b> <b class='flag-5'>Tracking</b> with Very Deep Networks  深层<b class='flag-5'>网络</b>连体视觉跟踪的演变

    DW-Siam:Deeper and Wider Siamese Networks for Real-Time Visual Tracking 更宽更深的孪生网络

    原文链接 论文地址:https://arxiv.org/pdf/1901.01660.pdf 摘要 目前在孪生网络追踪器中使用的主干网络相对较浅,例AlexNet。本文研究如何利用更深和更广的卷积
    的头像 发表于 01-12 09:24 529次阅读
    DW-Siam:Deeper and Wider <b class='flag-5'>Siamese</b> Networks for Real-Time <b class='flag-5'>Visual</b> <b class='flag-5'>Tracking</b> 更宽更深的<b class='flag-5'>孪生</b><b class='flag-5'>网络</b>

    GA-RPN:Region Proposal by Guided Anchoring 引导锚点的建议区域网络

    Detection Toolbox and Benchmark 1.RPN RPN即Region Proposal Network,是用RON来选择感兴趣区域的,即proposal
    的头像 发表于 01-12 09:32 503次阅读
    GA-RPN:<b class='flag-5'>Region</b> <b class='flag-5'>Proposal</b> by Guided Anchoring 引导锚点的建议区域<b class='flag-5'>网络</b>