mirror of
https://github.com/ultralytics/yolov5.git
synced 2025-06-03 14:49:29 +08:00
bbox_iou() stability and speed improvements (#2385)
This commit is contained in:
parent
7a0a81fd1d
commit
ba18528b47
@ -312,7 +312,7 @@ def clip_coords(boxes, img_shape):
|
|||||||
boxes[:, 3].clamp_(0, img_shape[0]) # y2
|
boxes[:, 3].clamp_(0, img_shape[0]) # y2
|
||||||
|
|
||||||
|
|
||||||
def bbox_iou(box1, box2, x1y1x2y2=True, GIoU=False, DIoU=False, CIoU=False, eps=1e-9):
|
def bbox_iou(box1, box2, x1y1x2y2=True, GIoU=False, DIoU=False, CIoU=False, eps=1e-7):
|
||||||
# Returns the IoU of box1 to box2. box1 is 4, box2 is nx4
|
# Returns the IoU of box1 to box2. box1 is 4, box2 is nx4
|
||||||
box2 = box2.T
|
box2 = box2.T
|
||||||
|
|
||||||
@ -348,7 +348,7 @@ def bbox_iou(box1, box2, x1y1x2y2=True, GIoU=False, DIoU=False, CIoU=False, eps=
|
|||||||
elif CIoU: # https://github.com/Zzh-tju/DIoU-SSD-pytorch/blob/master/utils/box/box_utils.py#L47
|
elif CIoU: # https://github.com/Zzh-tju/DIoU-SSD-pytorch/blob/master/utils/box/box_utils.py#L47
|
||||||
v = (4 / math.pi ** 2) * torch.pow(torch.atan(w2 / h2) - torch.atan(w1 / h1), 2)
|
v = (4 / math.pi ** 2) * torch.pow(torch.atan(w2 / h2) - torch.atan(w1 / h1), 2)
|
||||||
with torch.no_grad():
|
with torch.no_grad():
|
||||||
alpha = v / ((1 + eps) - iou + v)
|
alpha = v / (v - iou + (1 + eps))
|
||||||
return iou - (rho2 / c2 + v * alpha) # CIoU
|
return iou - (rho2 / c2 + v * alpha) # CIoU
|
||||||
else: # GIoU https://arxiv.org/pdf/1902.09630.pdf
|
else: # GIoU https://arxiv.org/pdf/1902.09630.pdf
|
||||||
c_area = cw * ch + eps # convex area
|
c_area = cw * ch + eps # convex area
|
||||||
|
Loading…
x
Reference in New Issue
Block a user