class_docstr: Module, which finds correspondences between two images based on local features.
  
  Args:
      local_feature: Local feature detector. See :class:`~kornia.feature.GFTTAffNetHardNet`.
      matcher: Descriptor matcher, see :class:`~kornia.feature.DescriptorMatcher`.
  
  Returns:
      Dict[str, Tensor]: Dictionary with image correspondences and confidence scores.
  
  Example:
      >>> img1 = torch.rand(1, 1, 320, 200)
      >>> img2 = torch.rand(1, 1, 128, 128)
      >>> input = {"image0": img1, "image1": img2}
      >>> gftt_hardnet_matcher = LocalFeatureMatcher(
      ...     GFTTAffNetHardNet(10), kornia.feature.DescriptorMatcher('snn', 0.8)
      ... )
      >>> out = gftt_hardnet_matcher(input)
class_docstr_tok: ["Module",",","which","finds","correspondences","between","two","images","based","on","local","features",".","Args",":","local_feature",":","Local","feature","detector",".","See",":","class",":","`","~kornia.feature.GFTTAffNetHardNet","`",".","matcher",":","Descriptor","matcher",",","see",":","class",":","`","~kornia.feature.DescriptorMatcher","`",".","Returns",":","Dict","[","str",",","Tensor","]",":","Dictionary","with","image","correspondences","and","confidence","scores",".","Example",":",">",">",">","img1","=","torch.rand","(","1",",","1",",","320",",","200",")",">",">",">","img2","=","torch.rand","(","1",",","1",",","128",",","128",")",">",">",">","input","=","{","``","image0","''",":","img1",",","``","image1","''",":","img2","}",">",">",">","gftt_hardnet_matcher","=","LocalFeatureMatcher","(","...","GFTTAffNetHardNet","(","10",")",",","kornia.feature.DescriptorMatcher","(","'snn","'",",","0.8",")","...",")",">",">",">","out","=","gftt_hardnet_matcher","(","input",")"]
docstr: Function for feature extraction from simple image.
docstr_tok: ["Function","for","feature","extraction","from","simple","image","."]
code: def extract_features(
      self, image: Tensor, mask: Optional[Tensor] = None
  ) -> Dict[str, Tensor]:
      """Function for feature extraction from simple image."""
      lafs0, resps0, descs0 = self.local_feature(image, mask)
      return {"lafs": lafs0, "responses": resps0, "descriptors": descs0}
  
imports: import warnings
  from typing import ClassVar, Dict, List, Optional, Tuple
  import torch
  from kornia.color import rgb_to_grayscale
  from kornia.constants import pi
  from kornia.core import Device, Module, Tensor, concatenate, deg2rad
  from kornia.core.check import KORNIA_CHECK_LAF
  from kornia.geometry.subpix import ConvQuadInterp3d
  from kornia.geometry.transform import ScalePyramid
  from .affine_shape import LAFAffNetShapeEstimator
  from .hardnet import HardNet
  from .keynet import KeyNetDetector
  from .laf import extract_patches_from_pyramid, get_laf_center, get_laf_orientation, get_laf_scale, scale_laf
  from .lightglue import LightGlue
  from .matching import GeometryAwareDescriptorMatcher, _no_match
  from .orientation import LAFOrienter, OriNet, PassLAF
  from .responses import BlobDoG, BlobDoGSingle, BlobHessian, CornerGFTT
  from .scale_space_detector import Detector_config, MultiResolutionDetector, ScaleSpaceDetector, get_default_detector_config
  from .siftdesc import SIFTDescriptor
label_desc: Use image node_id 2 for calling the LocalFeatureMatcher obj's underlying member method code with example usage: obj.extract_features(image, mask) and returns: dict