SA-Siam:用于实时目标跟踪的孪生网络 A Twofold Siamese Network for Real-Time Object Tracking
论文地址:https://openaccess.thecvf.com/content_cvpr_2018/papers/He_A_Twofold_Siamese_CVPR_2018_paper.pdf
摘要
1.本文核心一:将图像分类任务中的语义特征(Semantic features)与相似度匹配任务中的外观特征(Appearance features)互补结合,非常适合与目标跟踪任务,因此本文方法可以简单概括为:SA-Siam=语义分支+外观分支;
2.Motivation:目标跟踪的特点是,我们想从众多背景中区分出变化的目标物体,其中难点为:背景和变化。本文的思想是用一个语义分支过滤掉背景,同时用一个外观特征分支来泛化目标的变化,如果一个物体被语义分支判定为不是背景,并且被外观特征分支判断为该物体由目标物体变化而来,那么我们认为这个物体即需要被跟踪的物体;
3.本文的目的是提升 SiamFC 在目标跟踪任务中的判别力。在深度 CNN 训练目标分类的任务中,网络中深层的特征具有强的语义信息并且对目标的外观变化拥有不变性。这些语义特征是可以用于互补 SiamFC 在目标跟踪任务中使用的外观特征。基于此发现,我们提出了 SA-Siam,这是一个双重孪生网络,由语义分支和外观分支组成。每一个分支都使用孪生网络结构计算候选图片和目标图片的相似度。为了保持两个分支的独立性,两个孪生网络在训练过程中没有任何关系,仅仅在测试过程中才会结合。
4.本文核心二:对于新引入的语义分支,本文进一步提出了通道注意力机制。在使用网络提取目标物体的特征时,不同的目标激活不同的特征通道,我们应该对被激活的通道赋予高的权值,本文通过目标物体在网络特定层中的响应计算这些不同层的权值。实验证实,通过此方法,可以进一步提升语义孪生网络的判别力。
其仍然沿用 SiamFC 在跟踪过程中所有帧都和第一帧对比,是该类方法的主要缺陷。
相关工作
RPN 详细介绍:https://mp.weixin.qq.com/s/VXgbJPVoZKjcaZjuNwgh-A
SiamFC 详细介绍:https://mp.weixin.qq.com/s/kS9osb2JBXbgb_WGU_3mcQ
SiamRPN 详细介绍:https://mp.weixin.qq.com/s/pmnip3LQtQIIm_9Po2SndA
1.SiamFC:对于 A,B,C 三个图片,假设 C 图片和 A 图片是一个物体,但是外观发生了一些变化,B 和 A 没有任何关系。SiamFC 网络输入两张图片,那么经过 SiamFC 后会得到 A 和 C 相似度高,A 和 B 相似度低。通过上述 SiamFC 的功能,自然地其可以用于目标跟踪算法中。SiamFC 网络突出优点:无需在线 fine-tune 和 end-to-end 跟踪模式,使得其可以做到保证跟踪效果的前提下进行实时跟踪。
2.集成跟踪器:大多数跟踪是一个模型 A,利用模型 A 对当前数据进行计算得到跟踪结果,集成跟踪器就是它有多个模型 A,B,C,分别对当前数据进行分析,然后对结果融合得到最终的跟踪结果。本文的语义特征+外观特征正是借鉴了集成跟踪器的思路。在集成跟踪器,模型 A,B,C 相关度越低,跟踪效果越好,这个很好理解,如果他们三非常相关,那么用三个和用一个没啥区别,因为这个原因,本文的语义特征和外观特征网络在训练过程中是完全不相关的。
框架
提议的双重 SA-Siam 网络的体系结构。A-Net 表示外观网络。用虚线连接的网络和数据结构与 SiamFC 完全相同。S-Net 表示语义网络。提取最后两个卷积层的特征。信道关注模块基于目标和上下文信息确定每个特征信道的权重。外观分支和语义分支是单独训练的,直到测试时间才结合。
1.外观分支(蓝色部分)
一个目标 A 送到网络 P 里,一个比目标大的搜索域 S 送到网络 P 里,A 出来的特征图与 S 出来的特征图进行卷积操作得到相关系数图,相关系数越大,越可能是同一个目标,网络则采用和 SiamFC 中一样的网络。
外观分支以(z,X)为输入。它克隆了 SiamFC 网络。用于提取外观特征的卷积网络称为 A-Net。来自外观分支的响应映射可以写为:
在相似性学习问题中,A-Net 中的所有参数都是从头开始训练的。
通过最小化逻辑损失函数 L(·)来优化 A-Net,如下:
其中θa 表示 A-Net 中的参数,N 是训练样本的数量,Yi 是 ground truth 的响应。
2.语义分支(橙色部分)
这篇文章的重点便是此。橙色的表示语义网络,用的是预训练好的 AlexNet,在训练和测试时固定所有参数,只提取最后 conv4 和 conv5 的特征,目标模板变为 zs,zs 和 X 一样大,和 z 有一样的中心,但包含了上下文信息,因为支路上加了通道注意力模型,通过目标和周围的信息来决定权重,选择对特定跟踪目标影响更大的通道。另外,为了更好的进行后续的相关操作,作者将上下两支路加入融合模型,加入了 1×1 的卷积层,对提取的两层每层进行卷积操作,使目标模板支路和检测支路的特征通道相同,而且通道总数和外观网络的通道一样。
语义分支网络训练时只训练通道注意力模块和融合模块。
来自语义分支的响应映射可以写为:
ξ是通道权重,g()是对特征进行融合,便于相关操作。
损失函数 L(·)如下:
其中θs 表示可训练参数,N 是训练样本的数量。
3.结合
外观网络和语义网络分开训练,语义网络只训练通道注意力模块和融合模块。在测试时间内,最终的响应图计算为来自两个分支的图的加权平均值:
其中 λ 是加权参数,以平衡两个分支的重要性。在实践中,λ可以从验证集估计。作者通过实验得出 λ=0.3 最好。
4.语义分支中的 Channel Attention 机制
为什么要这么做:高维语义特征对目标的外观(图片的形变、旋转等)变化是鲁棒的,导致判别力低。为了提升语义分支的判别力,我们设计了一个 Channel Attention 模块。直觉上,在跟踪不同的物体时,不同的通道扮演着不同的角色,某些通道对于一些物体来说是极其重要的,但是对于其他物体而言则可以被忽略,甚至可能引入噪声。如果我们能自适应的调整通道的重要性,那么我们将获得目标跟可靠地特征表达。为了达到这个目的,不仅目标对于我们来说是重要的,其周围一定范围内的背景对于我们来说同样重要,因此这里输入网络的模板要比外观分支大一圈。
下面讲具体怎么实现这个功能的。
通道注意力通过最大池化层和多层感知器(MLP)生成通道 i 的加权系数ξi。
上述图中,假设是 conv5 层的第 i 个通道特征图,维度为 22×22,将该图分割成 3×3 份(其中中间的那份为 6×6,是准确的目标),经过 max-pooling 操作后变成 3×3 的图,经过一个两层的 MLP 网络(Multi-Layer Perceptron 多层感知机,含有 9 个神经元和一个隐层,隐层采用 ReLU 函数)后得到分数,在 sigmoid 一下(为了让得分系数在 0~1 之间)得到最终的得分系数。值得注意的是:这里的得分系数计算操作仅仅在第一帧进行计算,后续帧沿用第一帧的结果,所以其计算时间是可以忽略不计的。
实验
数据维度:在我们的实现中,目标图像块 z 的尺寸为 127×127×3,并且 zs 和 X 都具有 255×255×3 的尺寸。对于 z 和 X,A-Net 的输出特征具有尺寸分别为 6×6×256 和 22×22×256。来自 S-Net 的 conv4 和 conv5 功能具有尺寸为 24×24×384 和 22×22×256 通道的 zs 和 X。这两组功能的 1×1 ConvNet 每个输出 128 个通道(最多可达 256 个通道) ),空间分辨率不变。响应图具有相同的 17×17 维度。
学习更多编程知识,请关注我的公众号:
版权声明: 本文为 InfoQ 作者【代码的路】的原创文章。
原文链接:【http://xie.infoq.cn/article/e1367adfbc3880141106bd0a5】。文章转载请联系作者。
评论