ObjectDetection-OneStageDet
ObjectDetection-OneStageDet copied to clipboard
iou about gt and anchors
为什么在计算gt和anchors的iou时,要将两者的中心点坐标都置为0??
anchors = torch.cat([torch.zeros_like(self.anchors), self.anchors], 1)
.........................
gt_wh = gt.clone()
gt_wh[:, :2] = 0
iou_gt_anchors = bbox_ious(gt_wh, anchors)
麻烦了!!!
yolo3通过聚类求anchor时候,,x,y同样置为0,相当于中心对齐了,求出最合理的w,h大小。这里也是对齐之后,就可以求出gt的最佳尺度在不在当前的feature map上,不在就contiues(其它层feature map负责);在的话索引其位置,用当前的wh去回归 代码我看的不是很仔细,这是我的理解
@liangzz1991 问题是,为什么要中心对齐?1个grid对应5个anchors,如果说这5个anchors的中心点和多个gt的中心点一致,那么对齐没问题.那如果中心点不一致呢? 当然了,在code中,只给出了anchors的w和h,并没有给出中心点.
@foralliance 这gt的中心,除以比例直接映射到featuremap的某个grid中,由这个grid负责回归(类似x,y=320,320,除以32,在 gird就是(10,10)这个负责),再通过中心对齐的方式找到一个最合理的wh的anchor这个感觉没问题啊。。你说的可能多个gt同时映射到某一个gird或者不同的grid,这也没问题啊,各自选择最合理的anchor就行了啊。。欢迎讨论,发现问题,我看的有段时间了,也不是特别仔细