def cal_bbox_iou(boxA, boxB):
xA = max(boxA[0], boxB[0]) #xmin
yA = max(boxA[2], boxB[2]) #ymin
xB = min(boxA[1], boxB[1]) #xmax
yB = min(boxA[3], boxB[3]) #ymax
if xA < xB and yA < yB:
interArea = (xB - xA + 1) * (yB - yA + 1)
boxAArea = (boxA[1] - boxA[0] + 1) * (boxA[3] - boxA[2] + 1)
boxBArea = (boxB[1] - boxB[0] + 1) * (boxB[3] - boxB[2] + 1)
iou = interArea / float(boxAArea + boxBArea - interArea+0.00001)
else:
iou=0.0
return iou