mrlooi / rotated_maskrcnn

Rotated Mask R-CNN: From Bounding Boxes to Rotated Bounding Boxes
MIT License
347 stars 62 forks source link

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

Open p890040 opened 2 years ago

p890040 commented 2 years ago

🐛 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

mrlooi commented 2 years ago

hmm you're right, that is a bug I'm no longer maintaining this repo at the moment unfortunately, but feel free to submit a PR!