关于label生成的疑问
Opened this issue · 6 comments
您好,对于label生成部分的代码,存在一些疑问,询问一下。
对于siamfc.py
中的函数_create_labels(self, size)
部分,存在如下代码:
r_pos = self.cfg.r_pos / self.cfg.total_stride
r_neg = self.cfg.r_neg / self.cfg.total_stride
labels = logistic_labels(x, y, r_pos, r_neg)
其中,在该代码的默认配置中:cfg.r_pos = 16
,cfg.r_neg = 0
,cfg.total_stride = 8
。
我的疑问:
cfg.total_stride
代表什么含义?(依据原文中所表述的输入图片尺寸和输出特征图尺寸,找不到结果为8的比例关系)cfg.r_pos
和cfg.r_neg
代表什么含义?这两个变量的数值定义有什么依据么,可以自行定义得更大么?- 经计算后的
r_pos
和r_neg
代表什么含义? - 注:我可以理解
logistic_labels()
函数的意思
您好,对于label生成部分的代码,存在一些疑问,询问一下。
对于siamfc.py
中的函数_create_labels(self, size)
部分,存在如下代码:r_pos = self.cfg.r_pos / self.cfg.total_stride r_neg = self.cfg.r_neg / self.cfg.total_stride labels = logistic_labels(x, y, r_pos, r_neg)其中,在该代码的默认配置中:
cfg.r_pos = 16
,cfg.r_neg = 0
,cfg.total_stride = 8
。我的疑问:
cfg.total_stride
代表什么含义?(依据原文中所表述的输入图片尺寸和输出特征图尺寸,找不到结果为8的比例关系)cfg.r_pos
和cfg.r_neg
代表什么含义?这两个变量的数值定义有什么依据么,可以自行定义得更大么?- 经计算后的
r_pos
和r_neg
代表什么含义?- 注:我可以理解
logistic_labels()
函数的意思
可以加个联系方式交流下吗,对代码不是很明白......
* `r_neg`
您好,这是我对您问题的理解,如有问题,敬请指正,一起探讨:
(1)cfg.total_stride=8,这是原文网络结构决定的:SiamFC只有Conv1,Pool1以及pool2层的stride为2,其余层为1,stride乘积为8代表这response上每两点的距离插值回原图大小相应的距离放大8倍。
(2)从代码来看cfg.r_pos=16,cfg.r_neg=0。我对前者的理解就是与中心点距离小于16的区域为正样本(这个距离在response距离即为cfg.r_pos/cfg.total_stride=2)。而后者代表了负样本的划分,即距离大于cfg.r_neg的区域为负样本,而大于cfg.r_pos并小于cfg.r_neg的区域分配了与距离相关的标签。这两个距离都是可以自定义的。
(3)r_pos=2即response上正样本距离;r_neg=0代表负样本距离(这里实际上没有起作用)
您好,对于label生成部分的代码,存在一些疑问,询问一下。
对于siamfc.py
中的函数_create_labels(self, size)
部分,存在如下代码:r_pos = self.cfg.r_pos / self.cfg.total_stride r_neg = self.cfg.r_neg / self.cfg.total_stride labels = logistic_labels(x, y, r_pos, r_neg)其中,在该代码的默认配置中:
cfg.r_pos = 16
,cfg.r_neg = 0
,cfg.total_stride = 8
。
我的疑问:
cfg.total_stride
代表什么含义?(依据原文中所表述的输入图片尺寸和输出特征图尺寸,找不到结果为8的比例关系)cfg.r_pos
和cfg.r_neg
代表什么含义?这两个变量的数值定义有什么依据么,可以自行定义得更大么?- 经计算后的
r_pos
和r_neg
代表什么含义?- 注:我可以理解
logistic_labels()
函数的意思可以加个联系方式交流下吗,对代码不是很明白......
请问你现在看懂了吗,可不可以交流一下 :)
您好,对于label生成部分的代码,存在一些疑问,询问一下。
对于siamfc.py
中的函数_create_labels(self, size)
部分,存在如下代码:r_pos = self.cfg.r_pos / self.cfg.total_stride r_neg = self.cfg.r_neg / self.cfg.total_stride labels = logistic_labels(x, y, r_pos, r_neg)其中,在该代码的默认配置中:
cfg.r_pos = 16
,cfg.r_neg = 0
,cfg.total_stride = 8
。
我的疑问:
cfg.total_stride
代表什么含义?(依据原文中所表述的输入图片尺寸和输出特征图尺寸,找不到结果为8的比例关系)cfg.r_pos
和cfg.r_neg
代表什么含义?这两个变量的数值定义有什么依据么,可以自行定义得更大么?- 经计算后的
r_pos
和r_neg
代表什么含义?- 注:我可以理解
logistic_labels()
函数的意思可以加个联系方式交流下吗,对代码不是很明白......
请问你现在看懂了吗,可不可以交流一下 :)
我对第一个问题的理解是,你可以用128/16,表示中间每一次卷积过程的stride, 127的kernel在255的的矩阵上跑。
@huanglianghua @skyisnotwarm
#13
还是没有理解,siamfc.py中的函数_create_labels(self, size)生成label的方法,label不是应该根据搜索图像X的目标位置来生成么,为什么这里看起来_create_labels生成的label都是这样的图片,
@huanglianghua @skyisnotwarm #13 还是没有理解,siamfc.py中的函数_create_labels(self, size)生成label的方法,label不是应该根据搜索图像X的目标位置来生成么,为什么这里看起来_create_labels生成的label都是这样的图片,
好像是因为训练的时候,模板图像和搜索图像的中心就是bbox的中心