nvidia.dali.fn.readers.coco#

nvidia.dali.fn.readers.coco(*, annotations_file='', avoid_class_remapping=False, bytes_per_sample_hint=[0], dont_use_mmap=False, file_root=None, image_ids=False, images=None, include_iscrowd=True, initial_fill=1024, lazy_init=False, ltrb=False, num_shards=1, pad_last_batch=False, pixelwise_masks=False, polygon_masks=False, prefetch_queue_depth=1, preprocessed_annotations='', preserve=False, random_shuffle=False, ratio=False, read_ahead=False, save_preprocessed_annotations=False, save_preprocessed_annotations_dir='', seed=-1, shard_id=0, shuffle_after_epoch=False, size_threshold=0.1, skip_cached_images=False, skip_empty=False, stick_to_shard=False, tensor_init_bytes=1048576, device=None, name=None)#

从由包含图像和注释 JSON 文件的目录组成的 COCO 数据集中读取数据。

此读取器生成以下输出

images, bounding_boxes, labels, ((polygons, vertices) | (pixelwise_masks)),
(image_ids)
  • images 每个样本包含图像数据,布局为 HWC (高度、宽度、通道)。

  • bounding_boxes 每个样本可以有任意数量 M 的边界框,每个边界框由 4 个坐标描述

    [[x_0, y_0, w_0, h_0],
     [x_1, y_1, w_1, h_1]
     ...
     [x_M, y_M, w_M, h_M]]
    

    或者,如果需要,可以使用 [l, t, r, b] 格式(请参阅 ltrb 参数)。

  • labels 每个边界框都与一个表示类别标识符的整数标签相关联

    [label_0, label_1, ..., label_M]
    
  • polygonsvertices(可选,如果 polygon_masks 设置为 True 则存在)如果启用 polygon_masks,则会生成两个额外的输出,通过一组多边形描述掩码。每个掩码包含任意数量 P 的多边形,每个多边形都与范围为 [0, M) 的掩码索引相关联,并由一组 V 个顶点组成。输出 polygons 描述多边形如下

    [[mask_idx_0, start_vertex_idx_0, end_vertex_idx_0],
     [mask_idx_1, start_vertex_idx_1, end_vertex_idx_1],
     ...
     [mask_idx_P, start_vertex_idx_P, end_vertex_idx_P]]
    

    其中 mask_idx 是多边形所属掩码的索引,范围为 [0, M)start_vertex_idxend_vertex_idx 定义了顶点索引的范围,这些顶点索引出现在输出 vertices 中,属于此多边形。 vertices 中的每个样本都包含一个顶点列表,这些顶点组成了样本中不同的多边形,以 2D 坐标表示

    [[x_0, y_0],
     [x_1, y_1],
     ...
     [x_V, y_V]]
    
  • pixelwise_masks(可选,如果参数 pixelwise_masks 设置为 True 则存在)包含类似图像的数据,形状和布局与 images 相同,表示像素级分割掩码。

  • image_ids(可选,如果参数 image_ids 设置为 True 则存在)每个样本一个元素,表示图像标识符。

支持的后端
  • ‘cpu’

关键字参数:
  • annotations_file (str, 可选, 默认值 = ‘’) – JSON 注释文件路径列表。

  • avoid_class_remapping (bool, 可选, 默认值 = False) –

    如果设置为 True,则直接返回 manifest 文件中定义的类别 ID 值。

    否则,类别 ID 值将被映射到连续值,范围为 1 到类别数量,忽略 manifest 中的确切值(0 保留给特殊的背景类别)。

  • bytes_per_sample_hint (int 或 list of int, 可选, 默认值 = [0]) –

    每个样本的输出大小提示(以字节为单位)。

    如果指定,则位于 GPU 或页锁定主机内存中的操作符输出将被预分配,以容纳一批此大小的样本。

  • dont_use_mmap (bool, 可选, 默认值 = False) –

    如果设置为 True,Loader 将使用普通文件 I/O,而不是尝试在内存中映射文件。

    当访问本地文件系统时,映射提供了一点性能优势,但大多数网络文件系统没有提供最佳性能。

  • dump_meta_files (bool) –

    警告

    参数 dump_meta_filessave_preprocessed_annotations 的已弃用别名。请改用 save_preprocessed_annotations

  • dump_meta_files_path (str) –

    警告

    参数 dump_meta_files_pathsave_preprocessed_annotations_dir 的已弃用别名。请改用 save_preprocessed_annotations_dir

  • file_root (str, 可选) –

    包含数据文件的目录的路径。

    如果未提供文件列表,则此参数为必需。

  • image_ids (bool, 可选, 默认值 = False) – 如果设置为 True,则图像 ID 将在额外的输出中生成。

  • images (strlist of str, 可选) –

    图像路径列表。

    如果提供,则指定将要读取的图像。图像将按照它们在列表中出现的顺序读取,如果存在重复项,则将生成相关样本的多个副本。

    如果未指定或设置为 None,则注释文件中列出的所有图像将只读取一次,并按其图像 ID 排序。

    要保留的路径应与注释文件中的路径完全匹配。

    注意:此参数与 preprocessed_annotations 互斥。

  • include_iscrowd (bool, 可选, 默认值 = True) – 如果设置为 True,则标记为 iscrowd=1 的注释也将包含在内。

  • initial_fill (int, 可选, 默认值 = 1024) –

    用于洗牌的缓冲区大小。

    如果 random_shuffle 为 False,则忽略此参数。

  • lazy_init (bool, 可选, 默认值 = False) – 仅在首次运行时(而不是在构造函数中)解析和准备数据集元数据。

  • ltrb (bool, 可选, 默认值 = False) –

    如果设置为 True,则 bbox 将作为 [左, 上, 右, 下] 返回。

    如果设置为 False,则 bbox 将作为 [x, y, 宽度, 高度] 返回。

  • masks (bool, 可选, 默认值 = False) –

    启用多边形掩码。

    警告

    请改用 polygon_masks。请注意,多边形格式已从 mask_id, start_coord, end_coord 更改为 mask_id, start_vertex, end_vertex,其中 start_coord 和 end_coord 是坐标总数,实际上 start_coord = 2 * start_vertexend_coord = 2 * end_vertex。示例:顶点为 [[x0, y0], [x1, y1], [x2, y2]] 的多边形在使用已弃用的参数 masks 时将表示为 [mask_id, 0, 6],但在使用新参数 polygon_masks 时将表示为 [mask_id, 0, 3]

  • meta_files_path (str) –

    警告

    参数 meta_files_pathpreprocessed_annotations 的已弃用别名。请改用 preprocessed_annotations

  • num_shards (int, 可选, 默认值 = 1) –

    将数据划分为指定数量的部分(分片)。

    这通常用于多 GPU 或多节点训练。

  • pad_last_batch (bool, 可选, 默认值 = False) –

    如果设置为 True,则通过重复最后一个样本来填充分片。

    注意

    如果分片之间的批次数量不同,则此选项可能会导致将整个批次的重复样本添加到数据集。

  • pixelwise_masks (bool, 可选, 默认值 = False) – 如果为 true,则读取分割掩码并将其作为像素级掩码返回。此参数与 polygon_masks 互斥。

  • polygon_masks (bool, 可选, 默认值 = False) – 如果设置为 True,则以两种输出形式读取分割掩码多边形:polygonsvertices。此参数与 pixelwise_masks 互斥。

  • prefetch_queue_depth (int, 可选, 默认值 = 1) –

    指定内部 Loader 要预取的批次数量。

    当 Pipeline 受 CPU 阶段限制时,应增加此值,以内存消耗为代价来更好地与 Loader 线程交错。

  • preprocessed_annotations (str, 可选, 默认值 = ‘’) – 包含预处理 COCO 注释的元文件的目录路径。

  • preserve (bool, optional, default = False) – 防止即使运算符的输出未被使用,也从图中移除该运算符。

  • random_shuffle (bool, optional, default = False) –

    确定是否随机打乱数据。

    大小等于 initial_fill 的预取缓冲区用于顺序读取数据,然后随机选择样本以形成批次。

  • ratio (bool, optional, default = False) – 如果设置为 True,则返回的 bbox 和 mask polygon 坐标将相对于图像尺寸。

  • read_ahead (bool, optional, default = False) –

    确定是否应预读访问的数据。

    对于诸如 LMDB、RecordIO 或 TFRecord 等大型文件,此参数会减慢首次访问速度,但会缩短所有后续访问的时间。

  • save_img_ids (bool) –

    警告

    参数 save_img_idsimage_ids 的已弃用别名。请改用 image_ids

  • save_preprocessed_annotations (bool, optional, default = False) – 如果设置为 True,则运算符会保存一组文件,其中包含预处理 COCO 注释的二进制表示。

  • save_preprocessed_annotations_dir (str, optional, default = ‘’) – 用于保存预处理 COCO 注释文件的目录路径。

  • seed (int, optional, default = -1) – 随机种子;如果未设置,将自动分配一个种子。

  • shard_id (int, optional, default = 0) – 要读取的分片索引。

  • shuffle_after_epoch (bool, optional, default = False) – 如果设置为 True,则读取器在每个 epoch 后打乱整个数据集。

  • size_threshold (float, optional, default = 0.1) – 如果表示对象实例的边界框的宽度或高度(以像素为单位)低于此值,则该对象将被忽略。

  • skip_cached_images (bool, optional, default = False) –

    如果设置为 True,则当样本在解码器缓存中时,将跳过加载数据。

    在这种情况下,加载器的输出将为空。

  • skip_empty (bool, optional, default = False) – 如果为 true,则读取器将跳过其中没有对象实例的样本

  • stick_to_shard (bool, optional, default = False) –

    确定读取器是否应坚持数据分片,而不是遍历整个数据集。

    如果使用解码器缓存,它可以显著减少要缓存的数据量,但可能会影响训练的准确性。

  • tensor_init_bytes (int, optional, default = 1048576) – 每个图像要分配多少内存的提示。