SiamFC个人学习笔记

SiamFC

1、模型架构

  • SiamFC有两个分支对应两个输入为z(模板图像)和x(搜索区域),将他们同时输入进行特征提取,分别生成6×6×128和22×22×128的feature map。

  • 用于特征提取的 φ \varphi φ​代表backbone,用的是AlexNet,并且在SiamFC中,有个很大的特点:即没有在AlexNet中引入padding,这点很重要,因为这保证了网络的全卷积性,也即平移不变性,保证了计算的准确性。我们知道AlexNet是属于相对比较简单的网络,其它复杂的网络包括VGGNet,ResNet等却包含了padding,这也导致许多其它学者尝试使用更复杂的Backbone来试图提升跟踪性能都失败了,直到后来对相应的网络进行改进,保证平移不变性,才使得跟踪性能得到了进一步的提升,这方面的工作包括SiamDW,SiamRPN++等。

  • 之后会将生成的feature map输入互相关层生成score map。进行如下所示的计算:
    x f ( z , x ) = φ ( z ) ∗ φ ( x ) + b 1 xf(z,x)=\varphi(z)*\varphi(x)+b1 xf(z,x)=φ(z)∗φ(x)+b1

    其中,*是卷积操作,即,将模板图像的特征和搜索区域的特征进行卷积,从而获得17×17大小的score map,其中的每一个点都代表搜索区域中该位置是否存在目标的概率。 b 1 b1 b1是bias,在score map的每个位置都加上它。

  • 网络生成的是17×17 的heatmap,而输入x是255×255的搜索图像,怎样将两者的位置进行映射呢。这里,作者将17×17的heatmap进行双三次插值生成272×272的图像,来确定物体的位置。但是为什么不生成255×255的图像呢,作者在论文中说,这样做是由于原始图像相对比较粗糙,为了使定位更加准确。

2、模型输入

siameseFC每次需要两张图片作为输入,一张是所谓的模板图像z ,另一张是搜索图像x。模板图像需要缩放到127×127大小,搜素图像需要缩放到255×255大小。

上方三张图为模板图像z ,下面三张图为搜索图像x 。这里的模板图像z 好像和想象中有点不一样,本以为截取bounding box内的图像内容作为模板图像z的,但是这里看来,好像还包含了bounding box周围的一些环境信息和padding。

论文中是这么解释的:

意思就是在bounding box加上了周围的一些边界信息 ,即,上下左右各加上p个像素信息 。其中:
P = ( w + h ) / 4 P=(w+h)/4 P=(w+h)/4

之后,还需要对加上边界后的结果乘以一个缩放系数s,使得模板区域的面积为127×127,即如下公式所示:
s ( w + 2 p ) × s ( h + 2 p ) = 12 7 2 s(w+2p)\times s(h+2p)=127^2 s(w+2p)×s(h+2p)=1272

除此之外,原文中还提到:

When a sub-window extends beyond the extent of the image, the missing portions are filled with the mean RGB value.

如果需要添加边界的部分 超出了原图的大小(一般出现在bounding box靠近图像边界的情况),则使用像素的均值代替。

3、模型训练

采用logistic loss来训练模型:

在训练时使用的图像对是由一个模板图像和一个尺寸更大的搜索图像组成。这将会得到一个score map。定义损失为所有在score map的点上损失的均值。从上面训练样本对以及标签可以看到,搜索图像中仅有少部分正样本,而大部分为负样本,这就存在一个样本不均衡的问题。所以最终SiamFC中采用的损失函数为score map上每个点损失的加权平均,从而解决不均衡问题。

4、跟踪策略

  1. 目标模板固定 :样本图像特征φ(z)只在初始帧计算一次,即整个跟踪过程中不更新模板图像

    参照每日一文:目标跟踪(SiamFC),SiamFC的特征来自AlexNet的conv5,属于高层语义特征,也就是说,这一层特征已经知道它要跟踪的是什么了,不会像HOG那样苛求纹理相似度。举个例子,如果跟踪目标是人,不论躺着或站着,conv5都能"认出来"这是人,而纹理特征如HOG或conv1可能完全无法匹配。

    • 在线更新:优点->随时适应目标的变化,和背景信息的变化,对特征的要求较低,低层特征计算速度快分辨率高;缺点->模型更新会累计误差,遮挡或失败时会学到背景,丢失后再也找不回来。
    • 在线不更新:优点->不更新速度更快,跟踪目标永远不会被污染,long-term特性非常优秀;缺点->对特征的要求非常高,必须是表达能力足够强足够鲁棒的特征,通常高层特征计算速度慢、分辨率低。
  2. 多尺度跟踪 :即在裁剪出模版和搜索区域前,对其进行尺度缩放,一般有5个尺度,为 1.02 5 − 2 , − 1 , 0 , 1 , 2 1.025^{-2,-1,0,1,2} 1.025−2,−1,0,1,2。参照每日一文:目标跟踪(SiamFC),是对搜索区域进行尺度缩放,其中,255×255的大小对应于尺度为 1.02 5 0 = 1 1.025^0=1 1.0250=1。

5、资源参考

视觉目标跟踪SiamFC

【SOT】siameseFC论文和代码解析

每日一文:目标跟踪(SiamFC)

SiamFC:利用全卷积孪生网络进行视频跟踪

相关推荐
懒惰的bit2 小时前
基础网络安全知识
学习·web安全·1024程序员节
2401_858286113 小时前
L7.【LeetCode笔记】相交链表
笔记·leetcode·链表
埃菲尔铁塔_CV算法4 小时前
图像算法之 OCR 识别算法:原理与应用场景
图像处理·python·计算机视觉
Natural_yz5 小时前
大数据学习09之Hive基础
大数据·hive·学习
龙中舞王5 小时前
Unity学习笔记(2):场景绘制
笔记·学习·unity
Natural_yz5 小时前
大数据学习10之Hive高级
大数据·hive·学习
love_and_hope5 小时前
Pytorch学习--神经网络--完整的模型训练套路
人工智能·pytorch·python·深度学习·神经网络·学习
思通数据6 小时前
AI与OCR:数字档案馆图像扫描与文字识别技术实现与项目案例
大数据·人工智能·目标检测·计算机视觉·自然语言处理·数据挖掘·ocr
青椒大仙KI116 小时前
24/11/7 算法笔记 PCA主成分分析
笔记·算法·信息可视化
夜雨星辰4876 小时前
Android Studio 学习——整体框架和概念
android·学习·android studio