class_docstr: Uniformly sample reference frames.
  
  Args:
      num_ref_imgs (int): Number of reference frames to be sampled.
      frame_range (int | list[int]): Range of frames to be sampled around
          key frame. If int, the range is [-frame_range, frame_range].
          Defaults to 10.
      filter_key_img (bool): Whether to filter the key frame when
          sampling reference frames. Defaults to True.
      collect_video_keys (list[str]): The keys of video info to be
          collected.
class_docstr_tok: ["Uniformly","sample","reference","frames",".","Args",":","num_ref_imgs","(","int",")",":","Number","of","reference","frames","to","be","sampled",".","frame_range","(","int","|","list","[","int","]",")",":","Range","of","frames","to","be","sampled","around","key","frame",".","If","int",",","the","range","is","[","-frame_range",",","frame_range","]",".","Defaults","to","10.","filter_key_img","(","bool",")",":","Whether","to","filter","the","key","frame","when","sampling","reference","frames",".","Defaults","to","True",".","collect_video_keys","(","list","[","str","]",")",":","The","keys","of","video","info","to","be","collected","."]
code: def __repr__(self) -> str:
      repr_str = self.__class__.__name__
      repr_str += f"(num_ref_imgs={self.num_ref_imgs}, "
      repr_str += f"frame_range={self.frame_range}, "
      repr_str += f"filter_key_img={self.filter_key_img}, "
      repr_str += f"collect_video_keys={self.collect_video_keys})"
      return repr_str
  
file_path: mmdetection/mmdet/datasets/transforms/frame_sampling.py
imports: import random
  from collections import defaultdict
  from typing import Dict, List, Optional, Union
  from mmcv.transforms import BaseTransform
  from mmdet.registry import TRANSFORMS
label_desc: Use image node_id 4 for calling the UniformRefFrameSample obj's underlying member method code with example usage: obj.__repr__() and returns: repr_str