> 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/exporting-data.md).

# 데이터세트 버전 내보내기

## 소개

내보내기를 수행하면 선택한 주석 형식으로 데이터셋 버전의 다운로드 가능한 스냅샷이 생성됩니다 - YOLO, COCO, Pascal VOC, CreateML 등 여러 형식이 포함되며(전체 목록은 [형식 디렉터리](https://roboflow.com/formats)"). Roboflow 웹 앱, Python SDK, REST API, 또는 CLI를 통해 내보낼 수 있습니다. 데이터셋 버전은 학습용으로 만들어지므로 내보낸 이미지는 압축되고 클래스 이름은 정리됩니다. 자세한 내용과 원본 품질 이미지를 가져오는 방법은 [내보내기 동작](#export-behavior) 자세한 내용과 원본 품질 이미지를 가져오는 방법은

## 웹 앱

웹 인터페이스에서 언제든지 Roboflow의 데이터를 내보낼 수 있습니다.

데이터를 내보내려면 먼저 Roboflow 대시보드에서 데이터셋 버전을 생성하세요. 프로젝트와 연결된 "Versions" 페이지에서 수행할 수 있습니다.

데이터셋을 생성한 후 데이터셋 버전 옆의 "Export"를 클릭하세요:

<figure><img src="/files/ea7f1333e37569e7214e9d7cded2dfcf1efa154e" alt="" width="563"><figcaption></figcaption></figure>

다양한 형식으로 데이터를 다운로드할 수 있습니다. 지원되는 내보내기 형식의 전체 목록은 우리의 "Export" 탭에서 [형식 디렉터리](https://roboflow.com/formats).

내보내기 형식을 선택한 후 데이터를 다음 중 하나로 다운로드할 수 있습니다. `.zip` 파일 또는 다음 형식으로 `curl` 명령줄에서 다운로드할 수 있는 링크입니다.

![기기의 .zip 폴더로 내보내는 중입니다.](/files/0eb88fc273a4015df33c28c83e462017d21ed27f)

{% hint style="warning" %}
*해당 `curl` 및 Python 코드는 계정에 고유한 개인 키를 포함합니다. 이 키를 공유하지 마세요!*
{% endhint %}

!["Continue"를 선택한 후 표시되는 "show download code" 창입니다.](/files/78a5136f64fa0d8a7dccdd32dafaf925d8c9a8d3)

## HTTP API

`/:workspace/:project/:version/:format` 특정 형식으로 내보낸 데이터셋의 다운로드 링크를 가져오는 데 사용해야 하는 경로입니다. 다음의 Jupyter 노트북에서 이를 사용할 수 있습니다 [우리 모델 라이브러리](https://models.roboflow.com) 또는 직접 작성한 사용자 지정 학습 스크립트에서.

다음 엔드포인트는 하나의 `내보내기` 값을 포함하는 `링크` 키에 데이터셋을 다운로드할 수 있는 URL이 포함됩니다:

<pre class="language-bash"><code class="lang-bash"><strong>curl "https://api.roboflow.com/roboflow/chess-sample-4ckfl/1/yolov5pytorch?api_key=$ROBOFLOW_API_KEY"
</strong></code></pre>

다음은 엔드포인트가 반환하는 예시 페이로드입니다:

```bash
{
    "workspace": {
        "name": "Roboflow",
        "url": "roboflow",
        "members": 7
    },
    "project": {
        "id": "roboflow/chess-sample-4ckfl",
        "type": "object-detection",
        "name": "Chess Sample",
        "created": 1630335544.592,
        "updated": 1630335741.988,
        "images": 12,
        "unannotated": 3,
        "annotation": "pieces",
        "public": false,
        "splits": {
            "test": 1,
            "train": 9,
            "valid": 2
        },
        "classes": {
            "white-bishop": 11,
            "black-king": 8,
            "black-knight": 11,
            "white-queen": 7,
            "black-bishop": 8,
            "white-rook": 10,
            "black-rook": 10,
            "white-king": 8,
            "black-queen": 4,
            "black-pawn": 37,
            "white-pawn": 34,
            "white-knight": 10
        }
    },
    "version": {
        "id": "roboflow/chess-sample-4ckfl/1",
        "name": "augmented",
        "created": 1630335698.746,
        "images": 30,
        "splits": {
            "train": 27,
            "test": 1,
            "valid": 2
        },
        "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": {
            "grayscale": {
                "enabled": true
            },
            "resize": {
                "width": 416,
                "height": 416,
                "enabled": true,
                "format": "Stretch to"
            },
            "auto-orient": {
                "enabled": true
            }
        },
        "augmentation": {
            "rotate": {
                "enabled": true,
                "degrees": "5"
            },
            "exposure": {
                "enabled": true,
                "percent": "25"
            },
            "noise": {
                "enabled": true,
                "percent": "2"
            },
            "image": {
                "versions": "3",
                "enabled": true
            },
            "flip": {
                "horizontal": true,
                "enabled": true,
                "vertical": false
            },
            "brightness": {
                "enabled": true,
                "brighten": true,
                "percent": "25",
                "darken": true
            },
            "crop": {
                "percent": 30,
                "enabled": true,
                "min": 0
            }
        },
        "exports": [
            "yolov5pytorch"
        ]
    },
    "export": {
        "format": "yolov5pytorch",
        "link": "https://app.roboflow.com/ds/XXXXXXXXXX?key=XXXXXXXXXX"
    }
}
```

### 내보내기 형식 옵션

데이터셋 내보내기에 사용할 수 있는 설정 옵션은 다음과 같습니다:

| 객체 탐지         | 단일 레이블 분류 | 다중 레이블 분류  | 인스턴스 분할           | 의미 분할             | 키포인트 탐지       |
| ------------- | --------- | ---------- | ----------------- | ----------------- | ------------- |
| clip          | folder    | multiclass | coco-segmentation | coco-segmentation | coco          |
| coco          | clip      | folder     | clip              | png-mask-semantic | yolov5pytorch |
| createml      |           | clip       | coco              |                   |               |
| darknet       |           |            | createml          |                   |               |
| multiclass    |           |            | darknet           |                   |               |
| tensorflow    |           |            | multiclass        |                   |               |
| tfrecord      |           |            | tensorflow        |                   |               |
| voc           |           |            | tfrecord          |                   |               |
| yolokeras     |           |            | voc               |                   |               |
| yolov5pytorch |           |            | yolokeras         |                   |               |
| yolov7pytorch |           |            | yolov4pytorch     |                   |               |
| mt-yolov6     |           |            | yolov4scaled      |                   |               |
| retinanet     |           |            | yolov5-obb        |                   |               |
| benchmarker   |           |            | yolov5pytorch     |                   |               |
|               |           |            | yolov7pytorch     |                   |               |
|               |           |            | mt-yolov6         |                   |               |
|               |           |            | retinanet         |                   |               |
|               |           |            | benchmarker       |                   |               |

## Python SDK

Python 패키지로 버전을 생성하고 데이터셋을 내보낼 수 있습니다.

내보내기를 위한 데이터셋 ZIP 파일을 만들려면 먼저 프로젝트에서 특정 [버전을 가져오세요](https://docs.roboflow.com/platform/workspaces/list-workspaces-and-projects#list-projects-and-versions):

```
version = project.version(version_number)
```

그런 다음 데이터셋을 직접 다운로드하세요:

```python
version.download(model_format="yolov5", location="./downloads")
```

download 메서드는 필요하면 내보내기 생성을 자동으로 처리하고, ZIP 파일을 지정한 위치로 추출한 뒤, 데이터셋을 설명하는 객체를 반환합니다.

내보내기 전에 버전을 생성하는 방법은 [데이터셋 버전 생성](/datasets/ko/versions/dataset-versions/create-a-dataset-version.md#python-sdk).

### 원본 품질 이미지 다운로드

내보낸 이미지는 학습을 위해 압축됩니다( [내보내기 동작](#export-behavior)). 전체 데이터셋의 원본 전체 해상도 이미지를 다운로드하려면 다음을 사용하세요. [이미지 검색 API](/datasets/ko/manage/manage-images.md#get-details-about-an-image):

```python
import os
import requests
from roboflow import Roboflow

rf = Roboflow(api_key="YOUR_API_KEY")

project = rf.project("my-dataset-id")

records = []

for page in project.search_all(
    offset = 0,
    limit = 100,
    in_dataset = True,
    batch = False,
    fields = ["id", "name", "owner"],
):
    records.extend(page)

print(f"{len(records)} images found")

for record in records:
        base_url = "https://source.roboflow.com"
        url = f"{base_url}/{record['owner']}/{record['id']}/original.jpg"

        try:
            response = requests.get(url)
            response.raise_for_status()

            # 임시 디렉터리에 저장
            save_path = os.path.join('temp_images', record['name'])
            with open(save_path, 'wb') as f:
                f.write(response.content)

            print(f"Downloaded: {record['name']}")

        except requests.exceptions.RequestException as e:
            print(f"Error downloading image: {e}")

```

## CLI

다음 명령을 사용해 Roboflow CLI를 통해 데이터를 내보낼 수 있습니다:

```
roboflow download <datasetUrl>
```

[이 CLI 명령에 대한 자세한 내용은 문서를 참조하세요.](/datasets/ko/create-and-upload/download-a-dataset.md#cli)

## 내보내기 동작

데이터셋 버전은 컴퓨터 비전 모델의 학습 데이터로 사용되도록 설계되었습니다. 따라서 모델의 학습 경험과 성능을 개선하기 위해 몇 가지 최적화를 적용합니다.

### 이미지 압축

학습 속도 저하를 방지하기 위해, 우리는 학습 속도와 충분한 모델 성능에 필요한 해상도 사이의 균형을 유지하는 수준으로 이미지를 압축합니다.

원본 품질 이미지를 다운로드하려면 데이터셋의 이미지를 클릭한 다음 "Download Image"를 선택하면 됩니다.

<figure><img src="/files/2be26922f2e931e50cc27ac7fcbadded0c059a84" alt="" width="375"><figcaption></figcaption></figure>

{% hint style="info" %}
이미지에 프로그래밍 방식으로도 다음을 통해 접근할 수 있습니다 [이미지 세부 정보 API](/datasets/ko/manage/manage-images.md#get-details-about-an-image). 다음 `image.urls.original` 속성은 원본 품질 이미지에 대한 링크를 나타냅니다.
{% endhint %}

데이터셋의 모든 원본 품질 이미지를 프로그래밍 방식으로 다운로드하려면 다음을 참조하세요 [원본 품질 이미지 다운로드](#download-original-quality-images) Python SDK 섹션에서.

### 허용되는 문자

학습 중 문제가 발생하지 않도록 업로드/가져오기와 내보내기 시 모두 클래스 이름을 정리합니다. 내보낼 때는 다음을 수행합니다:

* 클래스 이름은 ASCII로 변환됩니다
  * 가능한 경우 문자들은 영어식으로 변환됩니다(예: `ü` 로 `u`)
  * 그렇지 않으면 대시(`-`)

{% hint style="info" %}
[클래스 이름 정리는 업로드 중에도 수행됩니다](/datasets/ko/create-and-upload/adding-data.md)
{% endhint %}
