(self, dboxes: np.ndarray, gboxes: np.ndarray, if_iou)
| 341 | return scorelist |
| 342 | |
| 343 | def box_overlap_opr(self, dboxes: np.ndarray, gboxes: np.ndarray, if_iou) -> np.ndarray: |
| 344 | eps = 1e-6 |
| 345 | assert dboxes.shape[-1] >= 4 and gboxes.shape[-1] >= 4 |
| 346 | N, K = dboxes.shape[0], gboxes.shape[0] |
| 347 | dtboxes = np.tile(np.expand_dims(dboxes, axis=1), (1, K, 1)) |
| 348 | gtboxes = np.tile(np.expand_dims(gboxes, axis=0), (N, 1, 1)) |
| 349 | |
| 350 | iw = (np.minimum(dtboxes[:, :, 2], gtboxes[:, :, 2]) |
| 351 | - np.maximum(dtboxes[:, :, 0], gtboxes[:, :, 0])) |
| 352 | ih = (np.minimum(dtboxes[:, :, 3], gtboxes[:, :, 3]) |
| 353 | - np.maximum(dtboxes[:, :, 1], gtboxes[:, :, 1])) |
| 354 | inter = np.maximum(0, iw) * np.maximum(0, ih) |
| 355 | |
| 356 | dtarea = (dtboxes[:, :, 2] - dtboxes[:, :, 0]) * (dtboxes[:, :, 3] - dtboxes[:, :, 1]) |
| 357 | if if_iou: |
| 358 | gtarea = (gtboxes[:, :, 2] - gtboxes[:, :, 0]) * (gtboxes[:, :, 3] - gtboxes[:, :, 1]) |
| 359 | ious = inter / (dtarea + gtarea - inter + eps) |
| 360 | else: |
| 361 | ious = inter / (dtarea + eps) |
| 362 | return ious |
| 363 | |
| 364 | def clip_all_boader(self): |
| 365 |
no outgoing calls
no test coverage detected