LuxonisParser
LuxonisParser
概述
LuxonisParser 提供了一个简单的 API,可用于从几种常见的数据集格式创建数据集。这包括流行的 Roboflow 导出的布局、Ultralytics 风格的数据集、Luxonis 原生的 LDF 数据集以及一些专用格式,例如 SOLO:注意:在解析 ZIP 文件时,请勿在存档中包含顶级的
dataset_dir 文件夹。训练、验证和测试目录(根据所选格式)应直接放置在 ZIP 存档的根目录中。- COCO
Plain Text
1dataset_dir/
2 ├── train/
3 │ ├── data/
4 │ │ ├── img1.jpg
5 │ │ ├── img2.jpg
6 │ │ └── ...
7 │ └── labels.json
8 ├── validation/
9 │ ├── data/
10 │ └── labels.json
11 └── test/
12 ├── data/
13 └── labels.jsonPlain Text
1dataset_dir/
2 ├── train/
3 │ ├── img1.jpg
4 │ ├── img2.jpg
5 │ └── ...
6 │ └── _annotations.coco.json
7 ├── valid/
8 └── test/- Roboflow 格式(支持 YOLOv8-v12)
Plain Text
1dataset_dir/
2 ├── train/
3 │ ├── images/
4 │ │ ├── img1.jpg
5 │ │ ├── img2.jpg
6 │ │ └── ...
7 │ ├── labels/
8 │ │ ├── img1.txt
9 │ │ ├── img2.txt
10 │ │ └── ...
11 ├── valid/
12 ├── test/
13 └── *.yaml- Ultralytics 格式
Plain Text
1dataset_dir/
2 ├── images/
3 │ ├── train/
4 │ │ ├── img1.jpg
5 │ │ ├── img2.jpg
6 │ │ └── ...
7 │ ├── val/
8 │ └── test/
9 ├── labels/
10 │ ├── train/
11 │ │ ├── img1.txt
12 │ │ ├── img2.txt
13 │ │ └── ...
14 │ ├── val/
15 │ └── test/
16 └── *.yamlPlain Text
1dataset_dir/
2 ├── train/
3 │ ├── img1.jpg
4 │ ├── img1.xml
5 │ └── ...
6 ├── valid/
7 └── test/Plain Text
1dataset_dir/
2 ├── train/
3 │ ├── img1.jpg
4 │ ├── img1.txt
5 │ ├── ...
6 │ └── _darknet.labels
7 ├── valid/
8 └── test/Plain Text
1dataset_dir/
2 ├── train/
3 │ ├── img1.jpg
4 │ ├── img2.jpg
5 │ ├── ...
6 │ ├── _annotations.txt
7 │ └── _classes.txt
8 ├── valid/
9 └── test/Plain Text
1dataset_dir/
2 ├── images/
3 │ ├── train/
4 │ │ ├── img1.jpg
5 │ │ ├── img2.jpg
6 │ │ └── ...
7 │ ├── valid/
8 │ └── test/
9 ├── labels/
10 │ ├── train/
11 │ │ ├── img1.txt
12 │ │ ├── img2.txt
13 │ │ └── ...
14 │ ├── valid/
15 │ └── test/
16 └── data.yamlPlain Text
1dataset_dir/
2 ├── train/
3 │ ├── img1.jpg
4 │ ├── img2.jpg
5 │ └── ...
6 │ └── _annotations.createml.json
7 ├── valid/
8 └── test/Plain Text
1dataset_dir/
2 ├── train/
3 │ ├── img1.jpg
4 │ ├── img2.jpg
5 │ ├── ...
6 │ └── _annotations.csv
7 ├── valid/
8 └── test/- SOLO
Plain Text
1dataset_dir/
2 ├── train/
3 │ ├── metadata.json
4 │ ├── sensor_definitions.json
5 │ ├── annotation_definitions.json
6 │ ├── metric_definitions.json
7 │ └── sequence.<SequenceNUM>/
8 │ ├── step<StepNUM>.camera.jpg
9 │ ├── step<StepNUM>.frame_data.json
10 │ └── (OPTIONAL: step<StepNUM>.camera.semantic segmentation.jpg)
11 ├── valid/
12 └── test/- 分类目录
- 带有 train/valid/test 子目录的拆分结构:
Plain Text
1dataset_dir/
2 ├── train/
3 │ ├── class1/
4 │ │ ├── img1.jpg
5 │ │ ├── img2.jpg
6 │ │ └── ...
7 │ ├── class2/
8 │ └── ...
9 ├── valid/
10 └── test/- 扁平结构(类别子目录直接放在根目录,在解析时应用随机拆分):
Plain Text
1dataset_dir/
2 ├── class1/
3 │ ├── img1.jpg
4 │ └── ...
5 ├── class2/
6 │ └── ...
7 └── info.json (可选元数据文件)data/ 文件夹中,标签位于 labels.json 中。支持两种结构:- 带有 train/validation/test 子目录的拆分结构:
Plain Text
1dataset_dir/
2 ├── train/
3 │ ├── data/
4 │ │ ├── img1.jpg
5 │ │ └── ...
6 │ └── labels.json
7 ├── validation/
8 │ ├── data/
9 │ └── labels.json
10 └── test/
11 ├── data/
12 └── labels.json- 扁平结构(在解析时应用随机拆分):
Plain Text
1dataset_dir/
2 ├── data/
3 │ ├── img1.jpg
4 │ └── ...
5 └── labels.jsonlabels.json 格式:JSON
1{
2 "classes": ["class1", "class2", ...],
3 "labels": {
4 "image_stem": class_index,
5 ...
6 }
7}- Native LDF
annotations.json 文件。Plain Text
1dataset_dir/
2 ├── train/
3 │ └── annotations.json
4 ├── valid/
5 └── test/- Segmentation Mask Directory
Plain Text
1dataset_dir/
2 ├── train/
3 │ ├── img1.jpg
4 │ ├── img1_mask.png
5 │ ├── ...
6 │ └── _classes.csv
7 ├── valid/
8 └── test/_classes.csv 文件中。Csv
1Pixel Value, Class
20, background
31, class1
42, class2
53, class3数据集解析
LuxonisParser 对象开始。 可选地,您可以指定数据集的名称、任务名称和类型(即格式)(默认情况下,名称设置为所提供数据集目录的名称,类型根据数据集目录结构推断)。 数据集目录可以是本地目录的路径,也可以是远程数据集标识符。该解析器目前接受本地路径、.zip 存档、gcs://...、s3://... 和 roboflow://workspace/project/version/format 数据集标识符。 您也可以将数据集目录提供为 .zip 文件。Python
1from luxonis_ml.data.parsers import LuxonisParser
2from luxonis_ml.enums import DatasetType
3
4dataset_dir = "roboflow://workspace/project/version/coco"
5
6parser = LuxonisParser(
7 dataset_dir=dataset_dir,
8 dataset_name="my_dataset",
9 dataset_type=DatasetType.COCO,
10 task_name="detection",
11)LuxonisParser 对象后,可以通过调用其 .parse() 方法来运行解析:Python
1dataset = parser.parse()LuxonisDataset 实例,并在源格式定义它们时保留原始拆分。如果数据集已以 Luxonis 格式存在,则会跳过解析并返回现有数据集。CLI 参考
luxonis_ml data parse 命令调用解析功能。Command Line
1luxonis_ml data parse path/to/dataset --name my_dataset --type cocoluxonis_ml data parse --help。