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]
polygons 和 vertices(可选,如果
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_idx
和end_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_files 是
save_preprocessed_annotations
的已弃用别名。请改用save_preprocessed_annotations
。dump_meta_files_path¶ (str) –
警告
参数 dump_meta_files_path 是
save_preprocessed_annotations_dir
的已弃用别名。请改用save_preprocessed_annotations_dir
。file_root¶ (str, 可选) –
包含数据文件的目录的路径。
如果未提供文件列表,则此参数为必需。
image_ids¶ (bool, 可选, 默认值 = False) – 如果设置为 True,则图像 ID 将在额外的输出中生成。
images¶ (str 或 list 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_vertex
和end_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_path 是
preprocessed_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,则以两种输出形式读取分割掩码多边形:
polygons
和vertices
。此参数与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_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) – 每个图像要分配多少内存的提示。