kornia.geometry.homography

Module with useful functionalities for homographies manipulation.

find_homography_dlt(points1: torch.Tensor, points2: torch.Tensor, weights: Optional[torch.Tensor] = None) → torch.Tensor[source]

Computes the homography matrix using the DLT formulation.

The linear system is solved by using the Weighted Least Squares Solution for the 4 Points algorithm.

Parameters
  • points1 (torch.Tensor) – A set of points in the first image with a tensor shape \((B, N, 2)\).

  • points2 (torch.Tensor) – A set of points in the second image with a tensor shape \((B, N, 2)\).

  • weights (torch.Tensor, optional) – Tensor containing the weights per point correspondence with a shape of \((B, N)\). Defaults to all ones.

Returns

the computed homography matrix with shape \((B, 3, 3)\).

Return type

torch.Tensor

find_homography_dlt_iterated(points1: torch.Tensor, points2: torch.Tensor, weights: torch.Tensor, soft_inl_th: float = 3.0, n_iter: int = 5) → torch.Tensor[source]

Computes the homography matrix using the iteratively-reweighted least squares (IRWLS).

The linear system is solved by using the Reweighted Least Squares Solution for the 4 Points algorithm.

Parameters
  • points1 (torch.Tensor) – A set of points in the first image with a tensor shape \((B, N, 2)\).

  • points2 (torch.Tensor) – A set of points in the second image with a tensor shape \((B, N, 2)\).

  • weights (torch.Tensor) – Tensor containing the weights per point correspondence with a shape of \((B, N)\). Used for the first iteration of the IRWLS.

  • soft_inl_th (float) – Soft inlier threshold used for weight calculation.

  • n_iter (int) – number of iterations. Default is 5.

Returns

the computed homography matrix with shape \((B, 3, 3)\).

Return type

torch.Tensor