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)#

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

此读取器生成以下输出

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,则直接返回清单文件中定义的类别 ID 值。

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

  • bytes_per_sample_hint (int 或 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 (strstr 列表, 可选) –

    图像路径列表。

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

    如果未指定或设置为 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, 可选, 默认 = False) – 即使操作符的输出未使用,也阻止将其从图中删除。

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

    确定是否随机洗牌数据。

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

  • ratio (bool, 可选, 默认 = False) – 如果设置为 True,则返回的 bbox 和掩码多边形坐标相对于图像尺寸。

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

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

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

  • save_img_ids (bool) –

    警告

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

  • save_preprocessed_annotations (bool, 可选, 默认值 = False) – 如果设置为 True,则操作符会保存一组文件,其中包含预处理 COCO 注释的二进制表示。

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

  • seed (int, 可选, 默认值 = -1) – 随机种子;如果未设置,则会自动分配一个。

  • shard_id (int, 可选, 默认值 = 0) – 要读取的分片索引。

  • shuffle_after_epoch (bool, 可选, 默认值 = False) – 如果设置为 True,则读取器会在每个 epoch 后对整个数据集进行洗牌。

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

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

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

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

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

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

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

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

  • tensor_init_bytes (int, 可选, 默认值 = 1048576) – 关于每个图像要分配多少内存的提示。