第一个思路
One-shot learning
用第一帧给的label ,去训练一个分类器,
然后在后续frame ,利用这个分类器,在候选目标框中选出特征,送入分类器中判别是否是目标。 后续不断对分类器进行训练,更新,测试, 对分类器有一个分类过程。
第二个思路
1、 相似性度量的方式,判断第一帧目标, 解决了在线训练分类器的过程。 想要学到跟踪器,需要学到很多例子, 需要大量时间在特征计算上。
判断第一帧的目标是否是同一个目标,得到精确的目标估计,需要很多例子,每个例子需要进行特征计算吗,需要花费大量时间在特征计算上。
SiamFC , 实际上使用卷积网络简化计算, 是的算法得到了大量提升,是一种数据驱动的方式, 利用大量数据学习,
实际上只计算了相似性,与之前的相关滤波相似,本质是对候选区域进行一个得分估计,而没有得到更多信息。
这就是李波, 同时可以得到一个得分, 同时回归到一个目标的位置,这样更加高效,只是稀疏采样的点,通过回归的方式得到更精确的表述。
想得到更加精细的表述。
引入
对于跟踪而言,想要估计的是目标的一个框,而目标的估计框,是对真正想要的目标的近似。
视频分割: 区分了前景和背景, 在第一帧中,只用bounding-box 的label 。
在后续中不断得到物体的mask。
通过得到的mask , 自然能获得一个bounding-box 。
同时算法如果很快, 有一个应用的场景。
提供的输入会非常简洁。
视频跟踪领域的算法对比:
Online 学习,
ECO 到底对目标是否有
高精度算法, 需要得到一个旋转矩形的估计,本质是得到目标mask的估计。
SiamFC 的本质,是得到了一个滑窗的得分。
增加了RPN , 先用搜索图像和模板图像进行一个交叉相关,得到一个相关feature 的特征 tensor 。
这是一个256 256 的vector , 这个vector 是编码了目标图像和搜索区域中patch的相关信息。
然后通过一个1*1的卷积再hide , 然后就回归到你想要的一些输出。
在SiamRPN 中, 得到了一个anchor 的 score , 及bounding box 的回归。
进一步, 推广:
增加了一个分支: mask 。
与之前算法不同的点: 、
1、 如果把语义分割的方法套过来,想要得到一个高分辨率的输出63*63,需要维持一个非常大的空间尺度,一旦空间尺度很大,速度就掉下来了,为了保持高速估计, 在channel 上面对pathch的mask进行编码。
这是高效的方式: 使用vector 进行一个空间位置的编码。
tensormask ,正式预测很多mask , 是一个二分类的mask 。
tensor mask , 来自何开明
编码了bounding-box 的信息。
mask 的监督是一个二分类的监督。
Boundingbox 分支可以去掉,因为mask 包含了 bounding
多任务学习方式。
多任务学习, 促进对boundingbox 的认知会有提升。
可以直观看出哪里不好。
为了得到更精确的分割结果,借鉴了deepMask ,和ship Mask 的工作。
加了refine 的module ,计算量特别低, 卷积核的操作不超过64 。
在vot将mask 转换成外接矩形。
最大最小外接矩形、 旋转外接矩形。
同时使用蓝色VOT Boundingbox 优化的方式吗, 最大化前景,最小化背景的方式。
真正对于一个合适的目标的表述是非常重要的。
使用了oracle , 的相关滤波bounding box 。
使用了旋转矩形。
只需要一个bounding box 就可以完成初始化。
预测mask 进行预测
多任务学习, 对即使Siam Mask , 验证了mask 的有效性。
Failurecases
大量抖动的图像。
孪生网络研究:
在遮挡情况下的研究不是很好。。
基于表观的建模, 需要离线训练。
遮挡情况下不是很好。
Siam FC
CMU 使用运动轨迹预测平滑轨迹,是的抖动不太明显,预测平滑轨迹。
提出时间一致性上的程度, score ,减少跳动。
方向:
对于时间的建模, Siamese 没有做的很好。
总结
1、增加了一个mask 分支。
2、对遮挡的情况不会有。