code: def unproject(self, image_points):
          
          Ki = self.inv_camera_matrix
          X = np.dot(Ki, to_homogeneous(image_points))
          X = X / X[2]
          XU = self.invert(X)
          return XU
docs: Find (up to scale) 3D coordinate of an image point
  
          This is the inverse of the `project` function.
          The resulting 3D points are only valid up to an unknown scale.
  
          Parameters
          ----------------------
          image_points : (2, N) ndarray
              Image points
  
          Returns
          ----------------------
          points : (3, N) ndarray
              3D coordinates (valid up to scale)