Skip to content

[_Custom.cp38.pyd=>rotate_iou_matrix] calculate wrong value when boxes are exactly same. #46

@p890040

Description

@p890040

🐛 Bug

To Reproduce

testing code:

from maskrcnn_benchmark import _Custom as _C
from apex import amp
rotate_iou_matrix = amp.float_function(_C.rotate_iou_matrix)

boxes1
tensor([[672.4067, 290.7776, 791.0275,  38.9333,  34.1454]]
boxes2
tensor([[672.4067, 290.7776, 791.0275,  38.9333,  34.1454]
rotate_iou_matrix(boxes1, boxes2)
tensor([[0.3333]], device='cuda:0') # Should be 1.0!

#If I shift boxes1 a little bit.
boxes2[0][0] = 672.3
boxes2
tensor([[672.3000, 290.7776, 791.0275,  38.9333,  34.1454]], device='cuda:0')
rotate_iou_matrix(boxes1, boxes2)
tensor([[0.9967]], device='cuda:0' # Seems correct

Expected behavior

  • When boxes1 is exactly same as boxes2, IOU value should be 1.0 but it return 0.333.
  • But if I shift boxes1 a little bit, it return 0.9967 and it seems correct.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions