yolov2-yolov3_PyTorch icon indicating copy to clipboard operation
yolov2-yolov3_PyTorch copied to clipboard

Why does box_w only divide by strides [-1]

Open fengxiaoming520 opened this issue 5 years ago • 6 comments

Hello, I would like to ask you a question: In the multi_gt_creator function of the tools.py file, why does box_w only divide by strides [-1] before calculating iou, does this not always cause iou to be calculated on the minimum or maximum downsampling multiple? Instead of calculating at all downsampling multiples.

box_ws = box_w / strides[-1] box_hs = box_h / strides[-1]

fengxiaoming520 avatar Mar 21 '20 14:03 fengxiaoming520

It is because that my all anchor boxes have been divided by 32(the largest stride). Therefore, before computing IoU, I have to divide the groundtruth box by 32. Even though some anchor boxes correspond to stride =8 or 16, see the formulations:                 tw = np.log(box_ws / p_w)                 th = np.log(box_hs / p_h)

It eliminates the effects of factor stride meaning that we actually needn't to divide the anchor boxes and groundtruth bxoes by stride and just omit strides. If I didn't divide my all anchor boxes by 32, I didn't need to divide the box_w and box_h by 32, either.

------------------ 原始邮件 ------------------ 发件人: "fengxiaoming520"<[email protected]>; 发送时间: 2020年3月21日(星期六) 晚上10:45 收件人: "yjh0410/pytorch-yolo-v2-v3"<[email protected]>; 抄送: "Subscribed"<[email protected]>; 主题: [yjh0410/pytorch-yolo-v2-v3] Why does box_w only divide by strides [-1] (#25)

Hello, I would like to ask you a question: In the multi_gt_creator function of the tools.py file, why does box_w only divide by strides [-1] before calculating iou, does this not always cause iou to be calculated on the minimum or maximum downsampling multiple? Instead of calculating at all downsampling multiples.

box_ws = box_w / strides[-1]
box_hs = box_h / strides[-1]

— You are receiving this because you are subscribed to this thread. Reply to this email directly, view it on GitHub, or unsubscribe.

yjh0410 avatar Mar 21 '20 14:03 yjh0410

Let ground truth find the anchor box that suits it, and then use the anchor box to decide which downsampling multiple it belongs to. Do you mean that?

fengxiaoming520 avatar Mar 21 '20 15:03 fengxiaoming520

Yes. In my configuration, there are 9 anchor boxes where the first three anchor boxes correspond to stride=8, the middle three ones correspond to stride=16, and the last three ones correspond to stride=32. If the one of first three anchor boxes is chosen,then the groundtruth is allocated to stride=8 feature map.

------------------ 原始邮件 ------------------ 发件人: "fengxiaoming520"<[email protected]>; 发送时间: 2020年3月21日(星期六) 晚上11:11 收件人: "yjh0410/pytorch-yolo-v2-v3"<[email protected]>; 抄送: "ら .Secret"<[email protected]>;"Comment"<[email protected]>; 主题: Re: [yjh0410/pytorch-yolo-v2-v3] Why does box_w only divide by strides [-1] (#25)

Let ground truth find the anchor box that suits it, and then use the anchor box to decide which downsampling multiple it belongs to. Do you mean that?

— You are receiving this because you commented. Reply to this email directly, view it on GitHub, or unsubscribe.

yjh0410 avatar Mar 21 '20 15:03 yjh0410

I see, thank you for the explanation.^v^

fengxiaoming520 avatar Mar 21 '20 15:03 fengxiaoming520

You are welcome !!

------------------ 原始邮件 ------------------ 发件人: "fengxiaoming520"<[email protected]>; 发送时间: 2020年3月21日(星期六) 晚上11:23 收件人: "yjh0410/pytorch-yolo-v2-v3"<[email protected]>; 抄送: "ら .Secret"<[email protected]>;"Comment"<[email protected]>; 主题: Re: [yjh0410/pytorch-yolo-v2-v3] Why does box_w only divide by strides [-1] (#25)

I see, thank you for the explanation.^v^

— You are receiving this because you commented. Reply to this email directly, view it on GitHub, or unsubscribe.

yjh0410 avatar Mar 21 '20 15:03 yjh0410

image 您好,请问我在运行demo的时候出现这个问题怎么解决呢

Haoyue-code avatar Jun 03 '24 12:06 Haoyue-code