detectron2——data

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

文章目录


detectron2——data

detectron2.data.DatasetCatalog(dict)

存储有关数据集以及如何获取数据集的信息的全局字典。
包含从字符串(识别数据集的名称,例如“coco_2014_train”)到解析数据集并以listdict]格式返回样本的函数的映射。
如果与data/build.py,data/detection_transform.py中的数据加载器功能一起使用,则返回的字典应为Detectron2数据集格式(详见DATASETS.md)。
拥有此目录的目的是通过使用配置中的字符串,轻松选择不同的数据集。

DatasetCatalog.register(name, func)

参数
  • name (str) – 标识数据集的名称,例如“coco_2014_train”。
  • func (callable) – 一个不带参数并返回dict列表的可调用函数。如果多次调用,它必须返回相同的结果。

DatasetCatalog.get(name)

参数
  • name (str) – 标识数据集的名称,例如“coco_2014_train”。
返回值
  • list[dict] –数据集注释。

detectron2.data.MetadataCatalog(dict)

MetadataCatalog是一个全局字典,提供对给定数据集元数据的访问。
与某个名称关联的元数据是一个单例:一旦创建,元数据将保持活动状态,并将在将来调用get(name)时返回。
它就像全局变量,所以不要滥用它。它用于存储在程序执行过程中不断共享的信息,例如:COCO中的类名。

MetadataCatalog.get(name)

参数
  • name (str) – 标识数据集的名称,例如“coco_2014_train”。
返回值
  • Metadata – 与此名称关联的元数据实例,如果没有可用的元数据实例则创建一个空实例。

detectron2.data.build_detection_test_loader(dataset: Union[List[Any], torch.utils.data.Dataset], *, mapper: Callable[[Dict[str, Any]], Any], sampler: Optional[torch.utils.data.Sampler] = None, batch_size: int = 1, num_workers: int = 0, collate_fn: Optional[Callable[[List[Any]], Any]] = None) → torch.utils.data.DataLoader

类似于build_detection_train_loader,默认批量大小为1,采样器为推断采样器。该采样器协调所有工人以产生所有样本的精确集合。

  • 参数

    • dataset –数据集DICT列表或pytorch数据集(映射样式或可迭代)。它们可以通过使用DatasetCatalo.get()或get_detection_dataset_dicts()获得。
    • mapper –一个可调用函数,从数据集中获取样本(dict),并返回模型要使用的格式。使用cfg时,默认选择是DatasetMapper(cfg,is_train=False)。
    • sampler –生成要应用于数据集的索引的采样器。默认为InferenceSampler,它将数据集拆分到所有工作器。如果数据集是可迭代的,则采样器必须为None。
    • batch_size –要创建的数据加载器的批大小。默认为每个工作者1张图像,因为这是在论文中报告推理时间的标准。
    • num_workers –并行数据加载器的数量
    • collate_fn –与torch.utils.data.DataLoader的参数相同。默认情况下不进行排序并返回数据列表。
  • 返回值

    • DataLoader-torch数据加载器,通过测试时转换和批处理加载给定的检测数据集。
示例
data_loader = build_detection_test_loader(
    DatasetRegistry.get("my_test"),
    mapper=DatasetMapper(...))

# or, instantiate with a CfgNode:
data_loader = build_detection_test_loader(cfg, "my_test")

detectron2.data.build_detection_train_loader(dataset, *, mapper, sampler=None, total_batch_size, aspect_ratio_grouping=True, num_workers=0, collate_fn=None)

使用一些默认功能构建用于目标检测的数据加载器。

参数

  • dataset (list or torch.utils.data.Dataset) -数据集DICT列表或pytorch数据集(映射样式或可迭代)。它们可以通过使用DatasetCatalo.get()或get_detection_dataset_dicts()获得。
  • mapper –一个可调用函数,从数据集中获取样本(dict),并返回模型要使用的格式。使用cfg时,默认选择是DatasetMapper(cfg,is_train=False)。
  • sampler (torch.utils.data.sampler.Sampler or None) –生成要应用于数据集的索引的采样器。如果dataset是map样式,则默认采样器是TrainingSampler,它协调所有工作人员的无限随机洗牌序列。如果数据集是可迭代的,则采样器必须为None。
  • total_batch_size (int) – 所有工作器的总批量大小。
  • aspect_ratio_grouping (bool) – 是否将具有相似纵横比的图像分组以提高效率。启用时,它要求数据集中的每个元素都是具有键“width”和“height”的dict。
  • num_workers –并行数据加载器的数量
  • collate_fn –与torch.utils.data.DataLoader的参数相同。默认情况下不进行排序并返回数据列表。

返回值

  • torch.utils.data.DataLoader –它的每个输出是一个长度为total_batch_size/num_workers的列表[mapped_element],其中mapper生成mapper_element。

detectron2.data.get_detection_dataset_dicts(names, filter_empty=True, min_keypoints=0, proposal_files=None, check_consistency=True)

加载并准备用于实例检测/分割和语义分割的数据集DICT。

detectron2.data.load_proposals_into_dataset(dataset_dicts, proposal_file)

将预计算的对象建议加载到数据集中。

detectron2.data.print_instances_class_histogram(dataset_dicts, class_names)[source]

classdetectron2.data.Metadata

基类:types.SimpleNamespace
支持简单属性setter/getter的类。它用于存储数据集的元数据,并使其可全局访问。
示例:

# somewhere when you load the data:
MetadataCatalog.get("mydataset").thing_classes = ["person", "dog"]

# somewhere when you print statistics or visualize:
classes = MetadataCatalog.get("mydataset").thing_classes
  • name: str= ‘N/A’

  • as_dict()
    将所有元数据作为dict返回。请注意,对返回的dict的修改不会反映在元数据对象上。

  • set(**kwargs)
    使用kwargs设置多个元数据。

  • get(key, default=None)
    访问属性并返回其值(如果存在)。否则返回默认值。

classdetectron2.data.DatasetFromList(*args, **kwds)

基类:torch.utils.data.Dataset
将列表包装到torch数据集。它生成列表中的元素作为数据。

classdetectron2.data.MapDataset(dataset, map_func)

基类:torch.utils.data.Dataset
将函数映射到数据集中的元素上。

classdetectron2.data.ToIterableDataset(*args, **kwds)

基类:torch.utils.data.IterableDataset
将旧的基于索引(也称为映射样式)的数据集转换为可迭代样式的数据集。

init(dataset: torch.utils.data.Dataset, sampler: torch.utils.data.Sampler, shard_sampler: bool = True)

参数
  • dataset – 带有__getitem__的旧式数据集
  • sampler –一个廉价的可迭代程序,生成要应用于数据集的索引。
  • shard_sampler –是否根据当前pytorch数据加载器工作器id对采样器进行分片。当Pytorch的数据加载者将IterableDataset分配为多个工作器时,它负责根据工作器d分片其数据,以便工作器不会产生相同的数据。
    大多数采样器(如我们的TrainingSampler)不会基于数据加载器工作者id进行切分,此参数应设置为True。但某些采样器可能已经被切分,在这种情况下,此参数应设置为False。

classdetectron2.data.DatasetMapper(*args, **kwargs)

基类:object
一个可调用函数,它获取Detectron2数据集格式的数据集dict,并将其映射到模型使用的格式。
这是用于将数据集dict映射到训练数据的默认可调用函数。您可能需要遵循它来实现自己的自定义逻辑,例如以不同的方式读取或转换图像。有关详细信息,请参见Dataloader。
callable当前执行以下操作:
1.从“file_name”读取图像
2.对图像和注释应用裁剪/几何变换
3.为张量和实例准备数据和注释

classmethodfrom_config(cfg, is_train: bool = True)

detectron2.data.detection_utils module

在典型对象检测数据管道中使用的通用数据处理实用程序。

exceptiondetectron2.data.detection_utils.SizeMismatchError

基类:ValueError
加载时,图像与注释相比具有不同的宽度/高度。

detectron2.data.detection_utils.convert_image_to_rgb(image, format)

将图像从给定格式转换为RGB。

参数
  • image (np.ndarray or Tensor) –HWC图像
  • format (str) –输入图像的格式,也可参见read_image
返回值

(np.ndarray) – (H,W,3) 0-255范围内的RGB图像,可以是浮点或uint8

detectron2.data.detection_utils.check_image_size(dataset_dict, image)

如果图像与dict中指定的大小不匹配,则引发错误。

detectron2.data.detection_utils.transform_proposals(dataset_dict, image_shape, transforms, *, proposal_topk, min_box_size=0)

将转换应用于dataset_dict中的建议(如果有)。
输入dict被修改到位,上述键被移除。将添加新的关键“建议”。其值是一个实例对象,在其字段“proposal_Box”和“objectness_logits”中包含转换后的建议。

detectron2.data.detection_utils.transform_instance_annotations(annotation, transforms, image_size, *, keypoint_hflip_indices=None)

将变换应用于单个实例的框、分割和关键点注释。
它将使用变换。框的apply_box和变换。apply_coords用于分割多边形和关键点。如果您需要为每个数据结构专门设计的任何东西,则需要实现此函数或转换的您自己的版本。

detectron2.data.detection_utils.annotations_to_instances(annos, image_size, mask_format=‘polygon’)

从dataset dict中的实例注释创建模型使用的实例对象。

detectron2.data.detection_utils.annotations_to_instances_rotated(annos, image_size)

从dataset dict中的实例注释创建模型使用的实例对象。与annotations_to_Instances相比,此函数仅适用于旋转框

detectron2.data.detection_utils.build_augmentation(cfg, is_train)

从配置创建默认增强的列表。现在它包括调整大小和翻转。

detectron2.data.detection_utils.create_keypoint_hflip_indices(dataset_names: Union[str, List[str]]) → List[int]

detectron2.data.detection_utils.filter_empty_instances(instances, by_box=True, by_mask=True, box_threshold=1e-05, return_mask=False)

筛选出实例对象中的空实例。

detectron2.data.detection_utils.read_image(file_name, format=None)

将图像读入给定格式。如果图像具有这样的exif信息,将应用旋转和翻转。

detectron2.data.datasets module

detectron2.data.datasets.load_coco_json(json_file, image_root, dataset_name=None, extra_annotation_keys=None)

加载具有COCO实例注释格式的json文件。当前支持实例检测、实例分割和人物关键点注释。

detectron2.data.datasets.load_sem_seg(gt_root, image_root, gt_ext=‘png’, image_ext=‘jpg’)

加载语义分割数据集。扩展名为“gt_ext”的“gt_ root”下的所有文件均被视为地面实况注释,扩展名为”image_ext”的“image_root”下所有文件均作为输入图像。使用分别相对于“gt_root”和“image_root”的文件路径匹配地面实况和输入图像,而不考虑文件扩展名。这适用于COCO以及其他一些数据集。

detectron2.data.datasets.register_coco_instances(name, metadata, json_file, image_root)

以COCO的json注释格式注册数据集,用于实例检测、实例分割和关键点检测。(即,1型和2型http://cocodataset.org/#format-数据。实例*。json和person_keypoints*。数据集中的json)。
这是一个如何注册新数据集的示例。您可以执行类似于此函数的操作,以注册新数据集。

detectron2.data.datasets.convert_to_coco_json(dataset_name, output_file, allow_cached=True)

将数据集转换为COCO格式,并将其保存为json文件。dataset_name必须以DatasetCatalog和detectron2的标准格式注册。

detectron2.data.datasets.register_coco_panoptic(name, metadata, image_root, panoptic_root, panoptic_json, instances_json=None)

注册名为name的COCO全景分割数据集的“标准”版本。此注册数据集中的字典遵循detectron2的标准格式。因此,它被称为“标准”。

detectron2.data.datasets.register_coco_panoptic_separated(name, metadata, image_root, panoptic_root, panoptic_json, sem_seg_root, instances_json)

注册名为name的COCO全景分割数据集的“分离”版本。此注册数据集中的注释将包含实例注释和语义注释,每个注释都有自己的连续ID。因此,它被称为“分离”。

detectron2.data.datasets.load_lvis_json(json_file, image_root, dataset_name=None, extra_annotation_keys=None)

加载LVIS注释格式的json文件。

detectron2.data.datasets.register_lvis_instances(name, metadata, json_file, image_root)

以LVIS的json注释格式注册数据集,用于实例检测和分割。

detectron2.data.datasets.get_lvis_instances_meta(dataset_name)

加载LVIS元数据。

detectron2.data.datasets.load_voc_instances(dirname: str, split: str, class_names: Union[List[str], Tuple[str, …]])

将Pascal VOC检测注释加载到Detectron2格式。

detectron2.data.datasets.register_pascal_voc(name, dirname, split, year, class_names=‘aeroplane’, ‘bicycle’, ‘bird’, ‘boat’, ‘bottle’, ‘bus’, ‘car’, ‘cat’, ‘chair’, ‘cow’, ‘diningtable’, ‘dog’, ‘horse’, ‘motorbike’, ‘person’, ‘pottedplant’, ‘sheep’, ‘sofa’, ‘train’, ‘tvmonitor’)[source]

detectron2.data.samplers module

classdetectron2.data.samplers.TrainingSampler(*args, **kwds)

基类:torch.utils.data.Sampler
在训练中,我们只关心训练数据的“无限流”。因此,这个采样器产生了一个无限的索引流,所有的工作器都合作正确地洗牌索引并对不同的索引进行采样。
每个worker中的采样器有效地生成索引[worker_id::num_workers],其中索引是一个无限的索引流,由混洗(范围(大小))+混洗(区域(大小))+…(如果混洗为真)或范围(大小)+范围(大小)+…(若混洗为假)组成
请注意,此采样器不会基于pytorch DataLoader工作人员id进行切分。传递给Pytork DataLoader的采样器仅用于map样式的数据集,不会在工作人员内部执行。但是,如果使用此采样器的方式是在数据加载器工作器内部执行,则需要进行额外的工作,以便根据工作器id对其输出进行切分。这是必需的,以便工作器不会产生相同的数据。ToInterableDataSet实现了此逻辑。此注释适用于detectron2中的所有采样器。

classdetectron2.data.samplers.RandomSubsetTrainingSampler(*args, **kwds)

基类:detectron2.data.samplers.distributed_sampler.TrainingSampler
与TrainingSampler类似,但仅对索引的随机子集进行采样。当您希望通过以下方式估计精度与数据数曲线时,这非常有用:
训练具有不同子集比率的模型。

classdetectron2.data.samplers.InferenceSampler(*args, **kwds)

基类:torch.utils.data.Sampler
为所有工作器的推理生成索引。推理需要在__exact__样本集上运行,因此,当样本总数不能除以工作器数量时,该采样器在不同工作器上产生不同数量的样本。

classdetectron2.data.samplers.RepeatFactorTrainingSampler(*args, **kwds)

基类:torch.utils.data.Sampler
与TrainingSampler类似,但基于其“重复因子”,一个样本可能比其他样本出现更多次。这适用于对类不平衡数据集(如LVI)进行训练。

staticrepeat_factors_from_category_frequency(dataset_dicts, repeat_thresh)

staticrepeat_factors_from_category_frequency(dataset_dicts, repeat_thresh)

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值