code: def essential_from_fundamental(
      F_mat: torch.Tensor, K1: torch.Tensor, K2: torch.Tensor
  ) -> torch.Tensor:
      r"""Get Essential matrix from Fundamental and Camera matrices.
  
      Uses the method from Hartley/Zisserman 9.6 pag 257 (formula 9.12).
  
      Args:
          F_mat: The fundamental matrix with shape of :math:`(*, 3, 3)`.
          K1: The camera matrix from first camera with shape :math:`(*, 3, 3)`.
          K2: The camera matrix from second camera with shape :math:`(*, 3, 3)`.
  
      Returns:
          The essential matrix with shape :math:`(*, 3, 3)`.
      """
      if not (len(F_mat.shape) >= 2 and F_mat.shape[-2:] == (3, 3)):
          raise AssertionError(F_mat.shape)
      if not (len(K1.shape) >= 2 and K1.shape[-2:] == (3, 3)):
          raise AssertionError(K1.shape)
      if not (len(K2.shape) >= 2 and K2.shape[-2:] == (3, 3)):
          raise AssertionError(K2.shape)
      if (
          not len(F_mat.shape[:-2])
          == len(K1.shape[:-2])
          == len(K2.shape[:-2])
      ):
          raise AssertionError
  
      return K2.transpose(-2, -1) @ F_mat @ K1
  
file_path: kornia/kornia/geometry/epipolar/essential.py
imports: from typing import Optional, Tuple
  import torch
  import kornia.geometry.epipolar
  from kornia.core import eye, ones_like, stack, where, zeros
  from kornia.core.check import KORNIA_CHECK, KORNIA_CHECK_SAME_SHAPE, KORNIA_CHECK_SHAPE
  from kornia.geometry import solvers
  from kornia.utils import eye_like, vec_like
  from kornia.utils.helpers import _torch_svd_cast
  from .numeric import cross_product_matrix
  from .projection import depth_from_point, projection_from_KRt
  from .triangulation import triangulate_points
label_desc: Use image node_id 2 for calling a global function with example usage: essential_from_fundamental(F_mat, K1, K2) and returns: unknown