MCPcopy Create free account
hub / github.com/FoundationVision/ByteTrack / bbox_overlaps_py

Method bbox_overlaps_py

tutorials/trades/tracker.py:266–286  ·  view source on GitHub ↗

determine overlaps between boxes and query_boxes :param boxes: n * 4 bounding boxes :param query_boxes: k * 4 bounding boxes :return: overlaps: n * k overlaps

(self, boxes, query_boxes)

Source from the content-addressed store, hash-verified

264 return max_id, max_cos
265
266 def bbox_overlaps_py(self, boxes, query_boxes):
267 """
268 determine overlaps between boxes and query_boxes
269 :param boxes: n * 4 bounding boxes
270 :param query_boxes: k * 4 bounding boxes
271 :return: overlaps: n * k overlaps
272 """
273 n_ = boxes.shape[0]
274 k_ = query_boxes.shape[0]
275 overlaps = np.zeros((n_, k_), dtype=np.float)
276 for k in range(k_):
277 query_box_area = (query_boxes[k, 2] - query_boxes[k, 0] + 1) * (query_boxes[k, 3] - query_boxes[k, 1] + 1)
278 for n in range(n_):
279 iw = min(boxes[n, 2], query_boxes[k, 2]) - max(boxes[n, 0], query_boxes[k, 0]) + 1
280 if iw > 0:
281 ih = min(boxes[n, 3], query_boxes[k, 3]) - max(boxes[n, 1], query_boxes[k, 1]) + 1
282 if ih > 0:
283 box_area = (boxes[n, 2] - boxes[n, 0] + 1) * (boxes[n, 3] - boxes[n, 1] + 1)
284 all_area = float(box_area + query_box_area - iw * ih)
285 overlaps[n, k] = iw * ih / all_area
286 return overlaps
287
288
289

Callers 1

stepMethod · 0.95

Calls

no outgoing calls

Tested by

no test coverage detected