code: def normalize_points(
      points: Tensor, eps: float = 1e-8
  ) -> Tuple[Tensor, Tensor]:
      r"""Normalizes points (isotropic).
  
      Computes the transformation matrix such that the two principal moments of the set of points
      are equal to unity, forming an approximately symmetric circular cloud of points of radius 1
      about the origin. Reference: Hartley/Zisserman 4.4.4 pag.107
  
      This operation is an essential step before applying the DLT algorithm in order to consider
      the result as optimal.
  
      Args:
         points: Tensor containing the points to be normalized with shape :math:`(B, N, 2)`.
         eps: epsilon value to avoid numerical instabilities.
  
      Returns:
         tuple containing the normalized points in the shape :math:`(B, N, 2)` and the transformation matrix
         in the shape :math:`(B, 3, 3)`.
      """
      if len(points.shape) != 3:
          raise AssertionError(points.shape)
      if points.shape[-1] != 2:
          raise AssertionError(points.shape)
  
      x_mean = torch.mean(points, dim=1, keepdim=True)  # Bx1x2
  
      scale = (points - x_mean).norm(dim=-1, p=2).mean(dim=-1)  # B
      scale = torch.sqrt(torch.tensor(2.0)) / (scale + eps)  # B
  
      ones, zeros = ones_like(scale), torch.zeros_like(scale)
  
      transform = stack(
          [
              scale,
              zeros,
              -scale * x_mean[..., 0, 0],
              zeros,
              scale,
              -scale * x_mean[..., 0, 1],
              zeros,
              zeros,
              ones,
          ],
          dim=-1,
      )  # Bx9
  
      transform = transform.view(-1, 3, 3)  # Bx3x3
      points_norm = transform_points(transform, points)  # BxNx2
  
      return points_norm, transform
  
file_path: kornia/kornia/geometry/epipolar/fundamental.py
imports: from typing import Literal, Optional, Tuple
  import torch
  from kornia.core import Tensor, concatenate, ones_like, stack, where, zeros
  from kornia.core.check import KORNIA_CHECK_SHAPE
  from kornia.geometry.conversions import convert_points_from_homogeneous, convert_points_to_homogeneous
  from kornia.geometry.linalg import transform_points
  from kornia.geometry.solvers import solve_cubic
  from kornia.utils.helpers import _torch_svd_cast
label_desc: Use image node_id 1 for calling a global function with example usage: normalize_points(points, eps) and returns: points_norm,  transform