class_docstr: Module, which combines local feature detector and descriptor.
  
  Args:
      detector: the detection module.
      descriptor: the descriptor module.
      scaling_coef: multiplier for change default detector scale (e.g. it is too small for KeyNet by default)
class_docstr_tok: ["Module",",","which","combines","local","feature","detector","and","descriptor",".","Args",":","detector",":","the","detection","module",".","descriptor",":","the","descriptor","module",".","scaling_coef",":","multiplier","for","change","default","detector","scale","(","e.g",".","it","is","too","small","for","KeyNet","by","default",")"]
code: def __init__(
      self,
      detector: Module,
      descriptor: LAFDescriptor,
      scaling_coef: float = 1.0,
  ) -> None:
      super().__init__()
      self.detector = detector
      self.descriptor = descriptor
      if scaling_coef <= 0:
          raise ValueError(
              f"Scaling coef should be >= 0, got {scaling_coef}"
          )
      self.scaling_coef = scaling_coef
  
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 1 to create a new LocalFeature object from inherited base classes: Module with example: obj = LocalFeature(detector, descriptor, scaling_coef)