class_docstr: The class for implementing single stage text detector.
  
  Single-stage text detectors directly and densely predict bounding boxes or
  polygons on the output features of the backbone + neck (optional).
  
  Args:
      backbone (dict): Backbone config.
      neck (dict, optional): Neck config. If None, the output from backbone
          will be directly fed into ``det_head``.
      det_head (dict): Head config.
      data_preprocessor (dict, optional): Model preprocessing config
          for processing the input image data. Keys allowed are
          ``to_rgb``(bool), ``pad_size_divisor``(int), ``pad_value``(int or
          float), ``mean``(int or float) and ``std``(int or float).
          Preprcessing order: 1. to rgb; 2. normalization 3. pad.
          Defaults to None.
      init_cfg (dict or list[dict], optional): Initialization configs.
          Defaults to None.
docstr: Extract features.
  
  Args:
      inputs (Tensor): Image tensor with shape (N, C, H ,W).
  
  Returns:
      Tensor or tuple[Tensor]: Multi-level features that may have
      different resolutions.
code: def extract_feat(self, inputs: torch.Tensor) -> torch.Tensor:
      """Extract features.
  
      Args:
          inputs (Tensor): Image tensor with shape (N, C, H ,W).
  
      Returns:
          Tensor or tuple[Tensor]: Multi-level features that may have
          different resolutions.
      """
      inputs = self.backbone(inputs)
      if self.with_neck:
          inputs = self.neck(inputs)
      return inputs
  
file_path: mmocr/mmocr/models/textdet/detectors/single_stage_text_detector.py
imports: from typing import Dict, Optional, Sequence
  import torch
  from mmocr.registry import MODELS
  from mmocr.structures import TextDetDataSample
  from .base import BaseTextDetector
label_desc: Use image node_id 2 for calling the SingleStageTextDetector obj's underlying member method code with example usage: obj.extract_feat(inputs) and returns: inputs