def METHOD_NAME(self, input: Dict[str, Any]) -> Dict[str, Any]:
    rgb = input['rgb'].unsqueeze(0)
    msk = input['gt']
    info = input['info']
    k = len(info['labels'])
    size = info['size']
    is_cuda = rgb.is_cuda
    processor = InferenceCore(
        self.model.model, is_cuda, rgb, k, top_k=20, mem_every=4)
    processor.interact(msk[:, 0], 0, rgb.shape[1])
    # Do unpad -> upsample to original size
    out_masks = torch.zeros((processor.t, 1, *size),
                            dtype=torch.uint8,
                            device='cuda' if is_cuda else 'cpu')
    for ti in range(processor.t):
        prob = unpad(processor.prob[:, ti], processor.pad)
        prob = F.interpolate(
            prob, tuple(size), mode='bilinear', align_corners=False)
        out_masks[ti] = torch.argmax(prob, dim=0)
    if is_cuda:
        out_masks = (out_masks.detach().cpu().numpy()[:,
                                                      0]).astype(np.uint8)
    else:
        out_masks = (out_masks.detach().numpy()[:, 0]).astype(np.uint8)
    return {OutputKeys.MASKS: out_masks}