Compute the jaccard overlap of two sets of boxes. The jaccard overlap is simply the intersection over union of two boxes. E.g.: A ∩ B / A ∪ B = A ∩ B / (area(A) + area(B) - A ∩ B) Args: box_a: Multiple bounding boxes, Shape: [num_boxes,4] box_b: Single bounding b
(box_a, box_b)
| 96 | |
| 97 | |
| 98 | def jaccard_numpy(box_a, box_b): |
| 99 | """Compute the jaccard overlap of two sets of boxes. The jaccard overlap |
| 100 | is simply the intersection over union of two boxes. |
| 101 | E.g.: |
| 102 | A ∩ B / A ∪ B = A ∩ B / (area(A) + area(B) - A ∩ B) |
| 103 | Args: |
| 104 | box_a: Multiple bounding boxes, Shape: [num_boxes,4] |
| 105 | box_b: Single bounding box, Shape: [4] |
| 106 | Return: |
| 107 | jaccard overlap: Shape: [box_a.shape[0], box_a.shape[1]] |
| 108 | """ |
| 109 | inter = intersect(box_a, box_b) |
| 110 | area_a = ((box_a[:, 2]-box_a[:, 0]) * |
| 111 | (box_a[:, 3]-box_a[:, 1])) # [A,B] |
| 112 | area_b = ((box_b[2]-box_b[0]) * |
| 113 | (box_b[3]-box_b[1])) # [A,B] |
| 114 | union = area_a + area_b - inter |
| 115 | return inter / union # [A,B] |
| 116 | |
| 117 | |
| 118 | def random_sample_crop(height, width, boxes=None): |
no test coverage detected