tensorflow版的code地址
https://github.com/www0wwwjs1/tensorflow-siamese-fc/blob/master/siamese_net.py
由于讨论班的需要
重新分析一下这个tracking模型
整个结构如下图
其实可以看到这个模型是很简单的
X是搜索区域,Z是目标图像
其中$\varphi$是DCNN,在代码中是四个简单的conv+batchnorm+relu
其中*操作是相关运算(卷积运算)
即用(6x6x128)作为卷积权重与(22x22x128)的特征图做卷积运算得到得分图
实现了相关滤波的end2end
下图便是源码的实现方式
scores = [groupConv(i, k) for i, k in zip(scores, aFeats)]
k代表Z
i代表X
他这种实现方式存疑
相关运算与卷积计算位置相反
或许这在end2end的DL中影响不大?
score = 0.001*score + b
不采用tanh/sigmoid或许是因为避免梯度消失
它采用的loss见下图
避免数值溢出的实现方案