Skip to content

Instantly share code, notes, and snippets.

@weiaicunzai
Created July 24, 2018 11:56
Show Gist options
  • Save weiaicunzai/b33e4a3a0056a992f0781edde1899978 to your computer and use it in GitHub Desktop.
Save weiaicunzai/b33e4a3a0056a992f0781edde1899978 to your computer and use it in GitHub Desktop.
def bb_intersection_over_union(boxA, boxB):
# determine the (x, y)-coordinates of the intersection rectangle
xA = max(boxA[0], boxB[0])
yA = max(boxA[1], boxB[1])
xB = min(boxA[2], boxB[2])
yB = min(boxA[3], boxB[3])
# compute the area of intersection rectangle
interArea = max(0, xB - xA + 1) * max(0, yB - yA + 1)
# compute the area of both the prediction and ground-truth
# rectangles
boxAArea = (boxA[2] - boxA[0] + 1) * (boxA[3] - boxA[1] + 1)
boxBArea = (boxB[2] - boxB[0] + 1) * (boxB[3] - boxB[1] + 1)
# compute the intersection over union by taking the intersection
# area and dividing it by the sum of prediction + ground-truth
# areas - the interesection area
iou = interArea / float(boxAArea + boxBArea - interArea)
# return the intersection over union value
return iou
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment