INNER CODE UNIT · Python
compute_ioa
castorini/daam · daam/evaluate.py:26
def compute_ioa(a: torch.Tensor, b: torch.Tensor) -> float:
if a.shape[0] != b.shape[0]:
a = F.interpolate(a.unsqueeze(0).unsqueeze(0).float(), size=b.shape, mode='bicubic').squeeze()
a[a < 1] = 0
a[a >= 1] = 1
intersection = (a * b).sum()
area = a.sum()
return (intersection / (area + 1e-8)).item()
def load_mask(path: str) -> torch.Tensor:
mask = np.array(Image.open(path))
mask = torch.from_numpy(mask).float()[:, :, 3] # use alpha channel
mask = (mask > 0).float()
return mask