| | |
| | import numpy as np |
| | from typing import List |
| |
|
| | from detectron2.structures import Instances |
| |
|
| |
|
| | def create_prediction_pairs( |
| | instances: Instances, |
| | prev_instances: Instances, |
| | iou_all: np.ndarray, |
| | threshold: float = 0.5, |
| | ) -> List: |
| | """ |
| | Args: |
| | instances: predictions from current frame |
| | prev_instances: predictions from previous frame |
| | iou_all: 2D numpy array containing iou for each bbox pair |
| | threshold: below the threshold, doesn't consider the pair of bbox is valid |
| | Return: |
| | List of bbox pairs |
| | """ |
| | bbox_pairs = [] |
| | for i in range(len(instances)): |
| | for j in range(len(prev_instances)): |
| | if iou_all[i, j] < threshold: |
| | continue |
| | bbox_pairs.append( |
| | { |
| | "idx": i, |
| | "prev_idx": j, |
| | "prev_id": prev_instances.ID[j], |
| | "IoU": iou_all[i, j], |
| | "prev_period": prev_instances.ID_period[j], |
| | } |
| | ) |
| | return bbox_pairs |
| |
|
| |
|
| | LARGE_COST_VALUE = 100000 |
| |
|