目录
pytorch版:
def compute_iou(box1, box2):
"""计算两个盒子的IoU."""
x1 = max(box1[0], box2[0])
y1 = max(box1[1], box2[1])
x2 = min(box1[2], box2[2])
y2 = min(box1[3], box2[3])
intersection = max(0, x2 - x1) * max(0, y2 - y1)
box1_area = (box1[2] - box1[0]) * (box1[3] - box1[1])
box2_area = (box2[2] - box2[0]) * (box2[3] - box2[1])
return intersection / (box1_area + box2_area - intersection)
def merge_boxes(boxes, iou_threshold):
"""合并IoU大于阈值的盒子。"""
merged_boxes = []
while len(boxes) > 0:
box = boxes.pop(0)
to_merge = [box]
for other_box in boxes[