# 数据准备

## 概述

LuxonisTrain支持多种数据加载方法，从而能够灵活使用不同的数据集格式。以下是支持的选项：

 1. 数据目录：使用采用支持的目录结构之一格式化的数据目录。更多详情，请参阅
    [LuxonisParser](https://docs.luxonis.com/software-v3/ai-inference/model-source/training/luxonis-ml/luxonis-parser.md)。
 2. LuxonisDataset 格式：使用现有自定义 LuxonisDataset 格式的数据集。进一步指导，请参阅
    [LuxonisDataset](https://docs.luxonis.com/software-v3/ai-inference/model-source/training/luxonis-ml/luxonis-dataset.md) 文档。
 3. 自定义加载器：实现自定义加载器以满足特定的数据处理需求。要了解如何创建和使用自定义加载器，请访问
    [自定义化](https://docs.luxonis.com/software-v3/ai-inference/model-source/training/luxonis-train/concepts.md) 部分。

## 数据目录

### 准备数据

要使用 [LuxonisParser](https://docs.luxonis.com/software-v3/ai-inference/model-source/training/luxonis-ml/luxonis-parser.md)
工具，您需要将数据集准备成支持的源结构之一。

 1. 将数据集组织为支持的格式之一。
 2. 将数据集放置在训练脚本可访问的目录中。
 3. 更新配置文件中的 dataset_dir 参数，使其指向数据集目录。

dataset_dir 可以是以下之一：

 * 数据集目录的本地路径。
 * 远程数据集的 URL：数据集将被下载到当前工作目录的 "data" 目录中。

支持的 URL 协议：

 * s3://bucket/path/to/directory 用于 AWS S3
 * gs://bucket/path/to/directory 用于 Google Cloud Storage
 * roboflow://workspace/project/version/format 用于 Roboflow
   * workspace：数据集所属的工作区名称。
   * project：数据集所属的项目名称。
   * version：数据集的版本。
   * format：coco、darknet、voc、yolov4pytorch、mt-yolov6、createml、tensorflow、folder 或 png-mask-semantic 之一。

示例：

```yaml
loader:
  params:
    dataset_name: "coco_test"
    dataset_dir: "roboflow://team-roboflow/coco-128/2/coco"
```

## LuxonisDataset

要使用 [LuxonisDataset](https://docs.luxonis.com/software-v3/ai-inference/model-source/training/luxonis-ml/luxonis-dataset.md)
作为数据源，请在配置文件中指定以下内容：

```yaml
loader:
  params:
    # 数据集名称
    dataset_name: "dataset_name"

    # 存储类型：'local'（默认）、's3' 或 'gcs' 之一
    bucket_storage: "local"
```

要检查加载器的输出，您可以使用 inspect 命令。inspect 命令显示数据集中的图像及其对应的标注。

```bash
luxonis_train inspect --config configs/detection_light_model.yaml
```

inspect 目前仅在 CLI 中可用。
