class_docstr: Assign a corresponding gt bbox or background to each bbox.
  
  Each proposals will be assigned with `-1`, `0`, or a positive integer
  indicating the ground truth index.
  
  - -1: don't care
  - 0: negative sample, no assigned gt
  - positive integer: positive sample, index (1-based) of assigned gt
  
  Args:
      pos_iou_thr (float): IoU threshold for positive bboxes.
      neg_iou_thr (float or tuple): IoU threshold for negative bboxes.
      min_pos_iou (float): Minimum iou for a bbox to be considered as a
          positive bbox. Positive samples can have smaller IoU than
          pos_iou_thr due to the 4th step (assign max IoU sample to each gt).
      gt_max_assign_all (bool): Whether to assign all bboxes with the same
          highest overlap with some gt to that gt.
code: def __init__(
      self,
      pos_iou_thr,
      neg_iou_thr,
      min_pos_iou=0.0,
      gt_max_assign_all=True,
      iou_calculator=dict(type="BboxOverlaps2D"),
  ):
      self.pos_iou_thr = pos_iou_thr
      self.neg_iou_thr = neg_iou_thr
      self.min_pos_iou = min_pos_iou
      self.gt_max_assign_all = gt_max_assign_all
      self.iou_calculator = build_iou_calculator(iou_calculator)
  
file_path: insightface/detection/scrfd/mmdet/core/bbox/assigners/grid_assigner.py
imports: import torch
  from ..builder import BBOX_ASSIGNERS
  from ..iou_calculators import build_iou_calculator
  from .assign_result import AssignResult
  from .base_assigner import BaseAssigner
label_desc: Use image node_id 1 to create a new GridAssigner object from inherited base classes: BaseAssigner with example: obj = GridAssigner(pos_iou_thr, neg_iou_thr, min_pos_iou, gt_max_assign_all, iou_calculator)