class_docstr: Quasi-Dense Similarity Learning for Multiple Object Tracking.
  
  This multi object tracker is the implementation of `QDTrack
  <https://arxiv.org/abs/2006.06664>`_.
  
  Args:
      detector (dict): Configuration of detector. Defaults to None.
      track_head (dict): Configuration of track head. Defaults to None.
      tracker (dict): Configuration of tracker. Defaults to None.
      freeze_detector (bool): If True, freeze the detector weights.
          Defaults to False.
      data_preprocessor (dict or ConfigDict, optional): The pre-process
         config of :class:`TrackDataPreprocessor`.  it usually includes,
          ``pad_size_divisor``, ``pad_value``, ``mean`` and ``std``.
      init_cfg (dict or list[dict]): Configuration of initialization.
          Defaults to None.
class_docstr_tok: ["Quasi-Dense","Similarity","Learning","for","Multiple","Object","Tracking",".","This","multi","object","tracker","is","the","implementation","of","`","QDTrack","<","https",":","\/\/arxiv.org\/abs\/2006.06664",">","`","_",".","Args",":","detector","(","dict",")",":","Configuration","of","detector",".","Defaults","to","None",".","track_head","(","dict",")",":","Configuration","of","track","head",".","Defaults","to","None",".","tracker","(","dict",")",":","Configuration","of","tracker",".","Defaults","to","None",".","freeze_detector","(","bool",")",":","If","True",",","freeze","the","detector","weights",".","Defaults","to","False",".","data_preprocessor","(","dict","or","ConfigDict",",","optional",")",":","The","pre-process","config","of",":","class",":","`","TrackDataPreprocessor","`",".","it","usually","includes",",","``","pad_size_divisor","``",",","``","pad_value","``",",","``","mean","``","and","``","std","``",".","init_cfg","(","dict","or","list","[","dict","]",")",":","Configuration","of","initialization",".","Defaults","to","None","."]
code: def __init__(
      self,
      detector: Optional[dict] = None,
      track_head: Optional[dict] = None,
      tracker: Optional[dict] = None,
      freeze_detector: bool = False,
      data_preprocessor: OptConfigType = None,
      init_cfg: OptMultiConfig = None,
  ):
      super().__init__(data_preprocessor, init_cfg)
      if detector is not None:
          self.detector = MODELS.build(detector)
  
      if track_head is not None:
          self.track_head = MODELS.build(track_head)
  
      if tracker is not None:
          self.tracker = MODELS.build(tracker)
  
      self.freeze_detector = freeze_detector
      if self.freeze_detector:
          self.freeze_module("detector")
  
file_path: mmdetection/mmdet/models/mot/qdtrack.py
imports: from typing import Optional, Union
  import torch
  from torch import Tensor
  from mmdet.registry import MODELS
  from mmdet.structures import TrackSampleList
  from mmdet.utils import OptConfigType, OptMultiConfig
  from .base import BaseMOTModel
label_desc: Use image node_id 1 to create a new QDTrack object from inherited base classes: BaseMOTModel with example: obj = QDTrack(detector, track_head, tracker, freeze_detector, data_preprocessor, init_cfg)