> For the complete documentation index, see [llms.txt](https://docs.roboflow.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.roboflow.com/datasets/ko/versions/dataset-versions.md).

# 데이터셋 버전

## 정보

버전은 데이터셋의 이미지와 레이블을 특정 시점에 스냅샷으로 저장한 것입니다. 버전을 생성할 때 데이터셋에 전처리 단계와 증강을 적용할 수 있습니다.

Roboflow에서 모델을 학습하려면 데이터셋 버전을 만들어야 합니다.

이 문서 섹션에서는 모델 학습을 준비하는 방법을 안내합니다. 다음이 필요합니다:

{% stepper %}
{% step %}
**Versions 페이지를 열고 새 버전을 생성하세요**

안내를 따라 [데이터셋 버전을 생성할 수 있는 페이지로 이동하세요](/datasets/ko/versions/dataset-versions/create-a-dataset-version.md).
{% endstep %}

{% step %}
**전처리 단계 선택**

다음을 선택하세요: [전처리 단계](/datasets/ko/versions/dataset-versions/image-preprocessing.md) 모델 학습에 필요한
{% endstep %}

{% step %}
**증강 적용**

[데이터셋에 필요한 증강을 적용하세요](/datasets/ko/versions/dataset-versions/image-augmentation.md). 서로 다른 사용 사례에 어떤 증강이 적절한지 안내하는 가이드가 있습니다.
{% endstep %}

{% step %}
**버전을 확인하세요**

버전이 생성되며 이제 모델 학습에 사용할 수 있습니다.
{% endstep %}

{% step %}
**모델 학습**

다음을 따르세요: [모델 학습 문서](https://docs.roboflow.com/models) 를 참고하여 학습 작업을 구성하세요.

또한 다음도 할 수 있습니다: [데이터셋 버전을 내보내기](/datasets/ko/versions/dataset-versions/exporting-data.md).
{% endstep %}
{% endstepper %}

## HTTP API

### 버전 보기

Python SDK, REST API, CLI를 사용해 Roboflow 버전에 대한 정보를 가져올 수 있습니다.

#### 버전 ID

Roboflow에서 생성된 각 버전에는 순차적인 숫자 ID가 연결되어 있습니다. 버전 페이지의 앱에서 확인하거나 API에서 프로젝트 버전을 나열해 볼 수 있습니다.

이미 정보를 가져오려는 프로젝트와 버전을 알고 있다면 다음을 사용할 수 있습니다: `/:workspace/:project/:version` 엔드포인트입니다. 프로젝트 엔드포인트와 유사한 정보를 반환하지만 해당 프로젝트의 다른 모든 버전은 나열하지 않습니다.

프로젝트 정보를 가져오려면 다음 엔드포인트로 GET 요청을 보내세요:

```url
https://api.roboflow.com/roboflow/chess-sample-4ckfl/1?api_key=$ROBOFLOW_API_KEY
```

이 엔드포인트는 다음 응답을 반환합니다:

```bash
{
    "workspace": {
        "name": "Roboflow",
        "url": "roboflow",
        "members": 7
    },
    "project": {
        "id": "roboflow/chess-sample-4ckfl",
        "type": "object-detection",
        "name": "체스 샘플",
        "created": 1630335544.592,
        "updated": 1630335741.988,
        "images": 12,
        "unannotated": 3,
        "annotation": "기물",
        "public": false,
        "splits": {
            "test": 1,
            "valid": 2,
            "train": 9
        },
        "classes": {
            "black-knight": 11,
            "black-queen": 4,
            "black-king": 8,
            "white-king": 8,
            "white-pawn": 34,
            "black-bishop": 8,
            "white-rook": 10,
            "black-pawn": 37,
            "white-knight": 10,
            "white-bishop": 11,
            "black-rook": 10,
            "white-queen": 7
        }
    },
    "version": {
        "id": "roboflow/chess-sample-4ckfl/1",
        "name": "증강됨",
        "created": 1630335698.746,
        "images": 30,
        "splits": {
            "valid": 2,
            "test": 1,
            "train": 27
        },
        "model": {
            "id": "chess-sample-4ckfl/1",
            "endpoint": "https://serverless.roboflow.com/infer/chess-sample-4ckfl/1",
            "start": 1630335799.682,
            "end": 1630337523.889,
            "fromScratch": false,
            "tfjs": true,
            "oak": true,
            "map": "62.87",
            "recall": "85.29",
            "precision": "23.44"
        },
        "preprocessing": {
            "resize": {
                "height": 416,
                "width": 416,
                "format": "늘려 맞춤",
                "enabled": true
            },
            "auto-orient": {
                "enabled": true
            },
            "grayscale": {
                "enabled": true
            }
        },
        "augmentation": {
            "rotate": {
                "degrees": "5",
                "enabled": true
            },
            "brightness": {
                "darken": true,
                "enabled": true,
                "brighten": true,
                "percent": "25"
            },
            "noise": {
                "percent": "2",
                "enabled": true
            },
            "crop": {
                "enabled": true,
                "min": 0,
                "percent": 30
            },
            "flip": {
                "horizontal": true,
                "vertical": false,
                "enabled": true
            },
            "image": {
                "versions": "3",
                "enabled": true
            },
            "exposure": {
                "enabled": true,
                "percent": "25"
            }
        },
        "exports": [
            "yolov5pytorch"
        ],
        "train": {
            "status": "finished",
            "results": {
                "class_map": {
                    "valid": [
                        {
                            "images": "20",
                            "map95": "0.29",
                            "precision": "0.795",
                            "recall": "0.48",
                            "map50": "0.547",
                            "class": "all",
                            "targets": "82"
                        },
                        ...
                    ],
                    "test": [
                        {
                            "images": "10",
                            "map95": "0.478",
                            "precision": "0.846",
                            "recall": "0.759",
                            "map50": "0.844",
                            "class": "all",
                            "targets": "29"
                        },
                        ...
                    ]
                }
            }
        },
        "models": {
            "roboflow-train": {
                "epochs": [
                    {
                        "mAP": "0.5624740875589795",
                        "epoch": "0",
                        "precision": "0.848007354583702",
                        "recall": "0.4796292117720689",
                        "box_loss": "0.04430354",
                        "obj_loss": "0.023823218",
                        "class_loss": "0.012277425",
                        "mAP_50_95": "0.3004394102727502"
                    },
                    {
                        "mAP": "0.5576528999996365",
                        "epoch": "1",
                        "precision": "0.8477760345230224",
                        "recall": "0.47967238365789094",
                        "box_loss": "0.041422606",
                        "obj_loss": "0.020020777",
                        "class_loss": "0.010422977",
                        "mAP_50_95": "0.2943194093111112"
                    },
                    ...
                ]
            }
        },
        "classes": [
            "black-knight",
            "black-queen",
            "black-king",
            "white-king",
            "white-pawn",
            "black-bishop",
            "white-rook",
            "black-pawn",
            "white-knight",
            "white-bishop",
            "black-rook",
            "white-queen"
        ]
    }
}
```

#### 키포인트 검출 스켈레톤

키포인트 검출 프로젝트 버전에는 각 클래스별 버전 스켈레톤을 담는 `스켈레톤` 필드가 포함됩니다. 예를 들어, 클래스가 `사람` 인 프로젝트에는 다음과 같은 스켈레톤이 있을 수 있습니다:

```json
{
...
"skeletons": {
    "person": {
        "vertices": [
            {
                "color": "#FF8000",
                "id": 0,
                "name": "코",
                "x": 0.4546,
                "y": 0.18859999999999996
            },
            {
                "color": "#FF00FF",
                "id": 1,
                "name": "왼쪽 눈"
                "x": 0.478,
                "y": 0.1606
            },
            ...
        ],
        "edges": [
            {
                "color": "#00FFCE",
                "from": 13,
                "to": 15
            },
            ...
        ],
        "symmetries": [
            {
                "direction": "가로",
                "points": [1, 2]
            },
            ...
        ]
    }
}
```

참고: 추론 예측에서는 정점에 인덱스로 접근해야 합니다 `class_id`. 그런 다음, 정점 `id` 를 사용해 간선(from/to)과 대칭(points)을 참조할 수 있습니다.

## Python SDK

### 버전 보기

버전에 대한 정보를 가져오려면 프로젝트를 불러온 다음 원하는 버전을 요청하세요:

```python
import roboflow

rf = roboflow.Roboflow(api_key="YOUR_API_KEY")

# 프로젝트 불러오기
project = rf.workspace().project("PROJECT_ID")

model = project.version("1").model
```

다음 `model` 변수에는 다음 JSON 값이 들어 있습니다:

```json
{
  "id": "mug-detector-eocwp/12",
  "name": "머그컵 감지기",
  "version": "12",
  "classes": null,
  "overlap": 30,
  "confidence": 40,
  "stroke": 1,
  "labels": false,
  "format": "json",
  "base_url": "https://serverless.roboflow.com/infer/"
}
```

버전 목록을 나열하고 순회하는 방법은 [워크스페이스 및 프로젝트 나열](https://docs.roboflow.com/platform/workspaces/list-workspaces-and-projects#list-projects-and-versions). 버전을 내보내는 방법은 [데이터셋 버전 내보내기](/datasets/ko/versions/dataset-versions/exporting-data.md#python-sdk).

## CLI

명령줄에서 데이터셋 버전을 나열, 검사, 내보내기 할 수 있습니다.

### 버전 나열

```bash
roboflow version list -p <project>
```

예시:

```bash
roboflow version list -p my-detector
```

```
ID                              이름              이미지  생성일
my-workspace/my-detector/1      raw               100     2024-01-15
my-workspace/my-detector/2      augmented-640     300     2024-01-20
my-workspace/my-detector/3      augmented-416     250     2024-02-01
```

### 버전 세부 정보 가져오기

```bash
roboflow version get -p <project> <version-number>
```

또는 리소스 축약 표기를 사용하세요:

```bash
roboflow version get my-detector/3
roboflow version get my-workspace/my-detector/3
```

### 버전 내보내기

특정 형식으로 버전의 비동기 내보내기를 트리거하세요:

```bash
roboflow version export -p <project> <version-number> -f <format>
```

예시:

```bash
roboflow version export -p my-detector 3 -f yolov8
```

### JSON 출력

모든 버전 명령은 `--json`:

```bash
roboflow version list -p my-detector --json
```

```json
[
  {
    "id": "my-workspace/my-detector/1",
    "name": "raw",
    "images": 100,
    "created": "2024-01-15T00:00:00"
  }
]
```

## MCP 서버

AI 에이전트를 [MCP 서버](https://docs.roboflow.com/agents/mcp-server) 에 연결하면 다음 도구로 데이터셋 버전을 관리할 수 있습니다:

<table data-search="false"><thead><tr><th width="290">도구</th><th>설명</th></tr></thead><tbody><tr><td><code>versions_generate</code></td><td>선택적 전처리와 증강을 적용해 버전을 생성합니다.</td></tr><tr><td><code>versions_get</code></td><td>분할과 학습 내역을 포함한 버전 정보를 가져옵니다.</td></tr><tr><td><code>versions_export</code></td><td>버전에 대한 데이터셋 내보내기를 확인하거나 트리거합니다.</td></tr><tr><td><code>versions_delete</code></td><td>버전을 삭제하여 워크스페이스 휴지통으로 이동합니다.</td></tr></tbody></table>

## 다음 단계

* 이 버전으로 모델을 학습하세요. 다음을 참조하세요: [모델 학습](https://docs.roboflow.com/models).
* 학습에 바로 사용할 수 있는 형식으로 버전을 내보내세요. 다음을 참조하세요: [데이터셋 버전 내보내기](/datasets/ko/versions/dataset-versions/exporting-data.md).
