class_docstr: Appearance-Free Link method.
  
  This method is proposed in
  "StrongSORT: Make DeepSORT Great Again"
  `StrongSORT<https://arxiv.org/abs/2202.13514>`_.
  
  Args:
      checkpoint (str): Checkpoint path.
      temporal_threshold (tuple, optional): The temporal constraint
          for tracklets association. Defaults to (0, 30).
      spatial_threshold (int, optional): The spatial constraint for
          tracklets association. Defaults to 75.
      confidence_threshold (float, optional): The minimum confidence
          threshold for tracklets association. Defaults to 0.95.
class_docstr_tok: ["Appearance-Free","Link","method",".","This","method","is","proposed","in","''","StrongSORT",":","Make","DeepSORT","Great","Again","''","`","StrongSORT","<","https",":","\/\/arxiv.org\/abs\/2202.13514",">","`","_",".","Args",":","checkpoint","(","str",")",":","Checkpoint","path",".","temporal_threshold","(","tuple",",","optional",")",":","The","temporal","constraint","for","tracklets","association",".","Defaults","to","(","0",",","30",")",".","spatial_threshold","(","int",",","optional",")",":","The","spatial","constraint","for","tracklets","association",".","Defaults","to","75.","confidence_threshold","(","float",",","optional",")",":","The","minimum","confidence","threshold","for","tracklets","association",".","Defaults","to","0.95","."]
docstr: Data Transformation. This is used to standardize the length of
  tracks to a unified length. Then perform min-max normalization to the
  motion embeddings.
  
  Args:
      track1 (ndarray): the first track with shape (N,C).
      track2 (ndarray): the second track with shape (M,C).
      length (int): the unified length of tracks. Defaults to 30.
  
  Returns:
      Tuple[ndarray]: the transformed track1 and track2.
docstr_tok: ["Data","Transformation",".","This","is","used","to","standardize","the","length","of","tracks","to","a","unified","length",".","Then","perform","min-max","normalization","to","the","motion","embeddings",".","Args",":","track1","(","ndarray",")",":","the","first","track","with","shape","(","N",",","C",")",".","track2","(","ndarray",")",":","the","second","track","with","shape","(","M",",","C",")",".","length","(","int",")",":","the","unified","length","of","tracks",".","Defaults","to","30",".","Returns",":","Tuple","[","ndarray","]",":","the","transformed","track1","and","track2","."]
code: def data_transform(
      self, track1: np.ndarray, track2: np.ndarray, length: int = 30
  ) -> Tuple[np.ndarray]:
      """Data Transformation. This is used to standardize the length of
      tracks to a unified length. Then perform min-max normalization to the
      motion embeddings.
  
      Args:
          track1 (ndarray): the first track with shape (N,C).
          track2 (ndarray): the second track with shape (M,C).
          length (int): the unified length of tracks. Defaults to 30.
  
      Returns:
          Tuple[ndarray]: the transformed track1 and track2.
      """
      # fill or cut track1
      length_1 = track1.shape[0]
      track1 = (
          track1[-length:]
          if length_1 >= length
          else np.pad(track1, ((length - length_1, 0), (0, 0)))
      )
  
      # fill or cut track1
      length_2 = track2.shape[0]
      track2 = (
          track2[:length]
          if length_2 >= length
          else np.pad(track2, ((0, length - length_2), (0, 0)))
      )
  
      # min-max normalization
      min_ = np.concatenate((track1, track2), axis=0).min(axis=0)
      max_ = np.concatenate((track1, track2), axis=0).max(axis=0)
      subtractor = (max_ + min_) / 2
      divisor = (max_ - min_) / 2 + 1e-5
      track1 = (track1 - subtractor) / divisor
      track2 = (track2 - subtractor) / divisor
  
      return track1, track2
  
imports: from collections import defaultdict
  from typing import Tuple
  import numpy
  import torch
  from mmengine.model import BaseModule
  from mmengine.runner.checkpoint import load_checkpoint
  from scipy.optimize import linear_sum_assignment
  from torch import Tensor, nn
  from mmdet.registry import TASK_UTILS
label_desc: Use image node_id 2 for calling the AppearanceFreeLink obj's underlying member method code with example usage: obj.data_transform(track1, track2, length) and returns: track1,  track2