class_docstr: Tracker for Quasi-Dense Tracking.
  
  Args:
      init_score_thr (float): The cls_score threshold to
          initialize a new tracklet. Defaults to 0.8.
      obj_score_thr (float): The cls_score threshold to
          update a tracked tracklet. Defaults to 0.5.
      match_score_thr (float): The match threshold. Defaults to 0.5.
      memo_tracklet_frames (int): The most frames in a tracklet memory.
          Defaults to 10.
      memo_backdrop_frames (int): The most frames in the backdrops.
          Defaults to 1.
      memo_momentum (float): The momentum value for embeds updating.
          Defaults to 0.8.
      nms_conf_thr (float): The nms threshold for confidence.
          Defaults to 0.5.
      nms_backdrop_iou_thr (float): The nms threshold for backdrop IoU.
          Defaults to 0.3.
      nms_class_iou_thr (float): The nms threshold for class IoU.
          Defaults to 0.7.
      with_cats (bool): Whether to track with the same category.
          Defaults to True.
      match_metric (str): The match metric. Defaults to 'bisoftmax'.
docstr: Get tracks memory.
docstr_tok: ["Get","tracks","memory","."]
code: def memo(self) -> Tuple[Tensor, ...]:
      """Get tracks memory."""
      memo_embeds = []
      memo_ids = []
      memo_bboxes = []
      memo_labels = []
      # velocity of tracks
      memo_vs = []
      # get tracks
      for k, v in self.tracks.items():
          memo_bboxes.append(v["bbox"][None, :])
          memo_embeds.append(v["embed"][None, :])
          memo_ids.append(k)
          memo_labels.append(v["label"].view(1, 1))
          memo_vs.append(v["velocity"][None, :])
      memo_ids = torch.tensor(memo_ids, dtype=torch.long).view(1, -1)
      # get backdrops
      for backdrop in self.backdrops:
          backdrop_ids = torch.full(
              (1, backdrop["embeds"].size(0)), -1, dtype=torch.long
          )
          backdrop_vs = torch.zeros_like(backdrop["bboxes"])
          memo_bboxes.append(backdrop["bboxes"])
          memo_embeds.append(backdrop["embeds"])
          memo_ids = torch.cat([memo_ids, backdrop_ids], dim=1)
          memo_labels.append(backdrop["labels"][:, None])
          memo_vs.append(backdrop_vs)
  
      memo_bboxes = torch.cat(memo_bboxes, dim=0)
      memo_embeds = torch.cat(memo_embeds, dim=0)
      memo_labels = torch.cat(memo_labels, dim=0).squeeze(1)
      memo_vs = torch.cat(memo_vs, dim=0)
      return (
          memo_bboxes,
          memo_labels,
          memo_embeds,
          memo_ids.squeeze(0),
          memo_vs,
      )
  
file_path: mmdetection/mmdet/models/trackers/quasi_dense_tracker.py
imports: from typing import List, Tuple
  import torch
  import torch.nn.functional
  from mmengine.structures import InstanceData
  from torch import Tensor
  from mmdet.registry import MODELS
  from mmdet.structures import TrackDataSample
  from mmdet.structures.bbox import bbox_overlaps
  from .base_tracker import BaseTracker
label_desc: Use image node_id 4 for calling the QuasiDenseTracker obj's underlying member method code with example usage: obj.memo() and returns: memo_bboxes,  memo_labels,  memo_embeds,  memo_ids,  memo_vs