LuxonisLoader
LuxonisLoader
概述
LuxonisLoader 提供了一种简单高效的方式来加载和迭代以Luxonis 数据格式 (LDF) 存储的数据,并支持即时数据增强。 由于它还与 LuxonisTrain 原生集成,因此可以实现平滑无缝的训练工作流程。数据集加载
LuxonisLoader 加载数据集,我们首先需要一个 LuxonisDataset 实例。 加载器使用要加载的数据集和数据集视图(即拆分)进行初始化。Python
1from luxonis_ml.data.datasets import LuxonisDataset
2from luxonis_ml.data.loaders import LuxonisLoader
3
4dataset_name: str = ... # 现有 LDF 数据集的名称,例如 "parking_lot"
5dataset = LuxonisDataset(dataset_name)
6loader = LuxonisLoader(dataset, view="train")view 可以是单个拆分,也可以是拆分列表。for 循环迭代数据:Python
1for images, labels in loader:
2 ...images 通常是单个图像数组。对于多源数据集,它也可以是按源或组件名称键控的字典。labels 输出按任务名称分组。增强
LuxonisLoader 构造函数的 augmentation_config 参数来定义它们,每个字典代表一个单独的增强:Python
1{
2 "name": str, # 增强的名称
3 "params": dict # 增强的参数
4}albumentations 库中的大多数增强。 您可以在 Albumentations 文档 中找到增强及其参数的完整列表。 此外,我们还提供了一些自定义的批量增强:Mosaic4- 具有 4 张图像的 Mosaic 增强。将 4 张图像的裁剪图以马赛克图案组合成一张图像。MixUp- MixUp 增强。以随机权重叠加两张图像。
use_for_resizing: true,当您希望该变换显式处理重定时使用。示例
Python
1[
2 {
3 'name': 'HueSaturationValue',
4 'params': {
5 'p': 0.5,
6 'hue_shift_limit': 3,
7 'sat_shift_limit': 70,
8 'val_shift_limit': 40,
9 }
10 },
11 {
12 'name': 'Rotate',
13 'params': {
14 'p': 0.6,
15 'limit': 30,
16 'border_mode': 0,
17 'value': [0, 0, 0]
18 }
19 },
20 {
21 'name': 'Perspective',
22 'params': {
23 'p': 0.5,
24 'scale': [0.04, 0.08],
25 'keep_size': True,
26 'pad_mode': 0,
27 'pad_val': 0,
28 'mask_pad_val': 0,
29 'fit_output': False,
30 'interpolation': 1,
31 'always_apply': False,
32 }
33 },
34 {
35 'name': 'Affine',
36 'params': {
37 'p': 0.4,
38 'scale': None,
39 'translate_percent': None,
40 'translate_px': None,
41 'rotate': None,
42 'shear': 10,
43 'interpolation': 1,
44 'mask_interpolation': 0,
45 'cval': 0,
46 'cval_mask': 0,
47 'mode': 0,
48 'fit_output': False,
49 'keep_ratio': False,
50 'rotate_method': 'largest_box',
51 'always_apply': False,
52 }
53 },
54]augmentations.yaml 的 YAML 文件中。 然后,我们可以使用它来创建一个加载器:Python
1from luxonis_ml.data.datasets import LuxonisDataset
2from luxonis_ml.data.loaders import LuxonisLoader
3
4dataset_name: str = ...
5dataset = LuxonisDataset(dataset_name)
6loader = LuxonisLoader(
7 dataset,
8 view="train",
9 augmentation_config="augmentations.yaml",
10 augmentation_engine="albumentations", # 默认
11 height=256,
12 width=320,
13 keep_aspect_ratio=True, # 默认
14 color_space="RGB", # 默认,也可以是 BGR
15)
16for img, labels in loader:
17 ...增强不一定按照列表中定义的顺序应用。相反,将根据增强的类型确定最佳顺序,以最大限度地降低计算成本。
其他加载器选项
exclude_empty_annotations=True以从最终标签字典中删除空的标签条目filter_task_names=[...]以仅从多任务数据集中加载选定的任务组keep_categorical_as_strings=True以将分类元数据值保留为字符串而不是编码的整数color_space={...}以在处理多源数据集时为每个源设置颜色空间update_mode="all"或"missing"以控制远程数据集的本地同步行为