Closed Angel-Jia closed 6 years ago
hi,
感谢你的回复!
tf.image.resize_images(inputs, [272, 272],
method=tf.image.ResizeMethod.BICUBIC,
align_corners=True)
https://github.com/huanglianghua/siamfc-pytorch
这个链接是一个pytorch版本的siamfc,数据预处理和目标追踪的办法用的是原作者的代码,仅仅修改了网络,可以直接加载 baseline-conv5_e55.mat
来对目标进行追踪。我用它测试过VOT数据集,没有问题。
我把该网络按照上面的方法嵌入到你的代码中,运行出来的效果同样非常差。
刚刚我又看了几遍视频,感觉像是坐标没有同步跟新,检测出的方框位置几乎没有变过。
那可以把每一帧的 search images 保存下来,看 search image 是否更新了?
我发现问题在哪了。在目标偏离search image的中心位置后,你的网络中的response的最大值会跟着一起偏离中心。而在我的网络中,repsonse的最大值始终处于中心的位置。 之后我让exemplar_images始终设置为第一张图片的exemplar_images,一切就都正常了。所以是在更新exemplar_images的步骤上有什么问题?但为什么你的网络就能正常运行呢?
SiamFC 就是让 exemplar image 始终是第一张图片,不会更改的。如果每次让新的一帧的中心作为 exemplar image,那么exemplar image 和 search image 的中心差异会非常微小,search image中心的响应自然很大。
太感谢了!那是我没完全搞懂你的代码,我还以为你代码中的exemplar image是一直更新的。
不客气 : )
你好,我根据cfnet的baseline(输入变了,网络步长减小)修改,直接只将configuration中的输入exemplar image大小改变成2552553,但好像不太对,能给点建议吗?还有我觉得是不是这个exemplar image每次都更新的话,遮挡问题就会跟踪的好很多。
你好,我现在正在复现siamfc网络,但在你的框架下始终无法复现结果。 我先自己训练了一个用pytorch写的siamfc,替换了原作者放出的tensorflow版本的siamfc中的网络,可以复现结果。代码可见:https://github.com/huanglianghua/siamfc-pytorch
主要网络部分如下:
然后我修改了你的框架,替换了inference.tracker中的网络。具体方法如下:
修改了
inference_wrapper.inference_step(self, sess, input_feed)
函数,使其返回self.search_images
和self.exemplar_images
(我查看过返回的图像,没有问题)在
inference_wrapper.tracker
中利用代码:从outputs中拿到
search_images
和exemplar_images
,利用我自己的网络得到response,再用tf.image.resize_images
放大8倍得到最后的输出response,替换原来的response训练用的是
datasets
部分生成的数据,label的标签是0, 1分类,使用binary_cross_entropy_with_logits得到最后的loss然而运行run_tracking.py后得到的效果很差,几乎追踪不到目标,我在想是不是因为response的范围不同造成的?希望能指点一下,谢谢!