Refactor/reduce G/C/D/IoU `if: else` statements (#6087)
Browse files* Refactor the code to reduece else
* Update metrics.py
* Cleanup
Co-authored-by: Cmos <[email protected]>
Co-authored-by: Glenn Jocher <[email protected]>
- utils/metrics.py +4 -8
utils/metrics.py
CHANGED
@@ -234,14 +234,10 @@ def bbox_iou(box1, box2, x1y1x2y2=True, GIoU=False, DIoU=False, CIoU=False, eps=
|
|
234 |
with torch.no_grad():
|
235 |
alpha = v / (v - iou + (1 + eps))
|
236 |
return iou - (rho2 / c2 + v * alpha) # CIoU
|
237 |
-
|
238 |
-
|
239 |
-
|
240 |
-
|
241 |
-
return iou - (c_area - union) / c_area # GIoU
|
242 |
-
else:
|
243 |
-
return iou # IoU
|
244 |
-
|
245 |
|
246 |
def box_iou(box1, box2):
|
247 |
# https://github.com/pytorch/vision/blob/master/torchvision/ops/boxes.py
|
|
|
234 |
with torch.no_grad():
|
235 |
alpha = v / (v - iou + (1 + eps))
|
236 |
return iou - (rho2 / c2 + v * alpha) # CIoU
|
237 |
+
return iou - rho2 / c2 # DIoU
|
238 |
+
c_area = cw * ch + eps # convex area
|
239 |
+
return iou - (c_area - union) / c_area # GIoU https://arxiv.org/pdf/1902.09630.pdf
|
240 |
+
return iou # IoU
|
|
|
|
|
|
|
|
|
241 |
|
242 |
def box_iou(box1, box2):
|
243 |
# https://github.com/pytorch/vision/blob/master/torchvision/ops/boxes.py
|