> 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/create-and-upload/adding-data.md).

# 이미지, 비디오 및 주석 업로드

Roboflow에서 모델을 학습하고 배포하는 첫 단계는 프로젝트에 데이터를 업로드하는 것입니다.

먼저, 다음을 해야 합니다. [프로젝트를 생성합니다](/datasets/ko/create-and-upload/create-a-project.md).

그러면 데이터를 업로드할 수 있는 웹 페이지로 이동합니다. 이 페이지는 프로젝트 사이드바에 있는 "데이터 업로드" 버튼에서도 접근할 수 있습니다.

## 데이터 추가 방법

Roboflow 계정에 데이터를 추가하는 방법은 다음과 같습니다:

* 웹 애플리케이션 사용: 이미지가 1,000장 미만인 데이터셋에 권장됩니다.
* 명령줄 사용: 이미지가 1,000장 초과인 데이터셋에 권장됩니다.
* 이미 프로덕션에서 사용 중인 모델이 있는 Workflows에서 데이터를 수집할 때는 Dataset Upload Workflow Block 사용: 권장됩니다.

{% hint style="info" %}
이미지가 AWS S3, Google Cloud Storage, Azure Blob Storage와 같은 클라우드 스토리지에 이미 저장되어 있다면, 다음을 사용하세요 [Datasources](/datasets/ko/create-and-upload/adding-data/datasources.md) 및 Bucket Mirror를 업로드 스크립트 대신 기본 경로로 사용하세요. Datasource는 이미지와 메타데이터를 워크스페이스로 자동으로 가져오고, 수집하고, 동기화합니다. 서명된 URL 업로드 또는 로컬 다운로드는 일회성 또는 임시 가져오기에만 사용하세요.
{% endhint %}

웹 애플리케이션과 명령줄에서 다음을 업로드할 수 있습니다:

* JPG, PNG, WEBP, AVIF, BMP, HEIC/HEIF 이미지.\*
* MOV 및 MP4 동영상.
* PDF 파일.
* [지원되는 모든 형식의 주석.](https://roboflow.com/formats)

\**최대 크기 20MB 및 16,400 x 10,900 픽셀.*

주석은 연결된 이미지와 함께만 업로드할 수 있습니다. 이미 데이터셋으로 가져온 이미지에 대한 주석은 업로드할 수 없습니다.

## 웹 앱

프로젝트를 생성할 때 또는 데이터 업로드 페이지에서 이미지, 동영상, 주석을 끌어다 놓을 수 있는 상자가 표시됩니다:

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

[40개 이상의 주석 형식이 지원됩니다.](https://roboflow.com/formats) 지원되는 형식은 프로젝트 유형에 따라 다릅니다.

<details>

<summary>파일 이름이 처리되는 방식</summary>

이미지 파일 이름을 표준화할 수 있도록 업로드/가져오기와 내보내기에서 클래스 이름을 모두 정리합니다. 업로드 및 데이터셋 내보내기 시 다음을 수행합니다:

* 앞뒤 공백 제거
* 모든 공백(줄바꿈 및 탭 포함)은 공백 하나로 변환됩니다
* 연속된 두 개의 공백은 제거됩니다
* `/.[]#~*` 문자는 대시(로 대체됩니다`-`)
* `|'"` 문자는 제거됩니다

</details>

### Zip 파일 업로드

다음을 끌어다 놓거나 선택할 수 있습니다 `.zip` 이미지와 주석이 들어 있는 아카이브. 더 작은 아카이브(최대 300개 파일)는 브라우저에서 압축 해제되며, 폴더를 드롭했을 때와 동일한 업로드 흐름을 거치므로 미리보기 썸네일, 주석 매칭, 배치 이름 지정이 모두 같은 방식으로 작동합니다. 아카이브 안에 중첩된 폴더는 그대로 유지됩니다.

더 큰 아카이브(300개 파일 초과, 최대 8GB)는 대신 원본 zip이 Roboflow 서버에 업로드됩니다. 확인하면 진행 표시줄이 업로드를 추적하고, 이후 브라우저가 넘겨주면 서버 측에서 처리가 계속됩니다. Activity Center에서 진행 상황을 확인할 수 있으므로, 작업을 계속하다가 원할 때 돌아와 확인하면 됩니다. 압축 해제된 이미지는 Annotate 페이지의 배치로 표시됩니다.

아카이브에 주석이 포함되어 있으면, 해당 이미지는 하나의 주석 작업에 들어가며 작업은 사용자에게 귀속됩니다. 업로드할 때마다 고유한 작업이 생성되므로 같은 zip을 다시 업로드해도 이전 작업을 재사용하지 않습니다. 다음을 사용하면 [검토 모드](/datasets/ko/annotate/annotate/team-collaboration.md#review-mode) 가 켜져 있으면, 이미지들은 검토 상태에 대기하다가 검토자가 승인하면 데이터셋에 합쳐집니다. 검토 모드가 꺼져 있으면 즉시 데이터셋에 합쳐집니다.

8GB를 초과하는 아카이브의 경우, zip을 업로드하세요 [명령줄로](#upload-datasets-with-the-command-line) 대신.

### 동영상 업로드

업로드된 동영상은 주석을 달 수 있는 개별 프레임으로 분할됩니다. 동영상을 업로드하면 내장 동영상 플레이어, 샘플링 슬라이더, 선택적 수동 프레임 선택 기능이 있는 추출 대화상자가 열립니다.

#### 샘플링 간격

슬라이더를 사용해 프레임을 얼마나 자주 샘플링할지 설정하세요. 또한 슬라이더 아래 입력란에 간격(초) 또는 원하는 프레임 수를 직접 입력할 수도 있습니다. 샘플링 범위는 초당 60프레임부터 60초마다 1프레임까지입니다.

#### 수동 프레임 선택

"수동 선택"을 클릭해 프레임 선택 패널을 확장합니다. "현재 프레임 추가"를 사용하거나 `M` 을 눌러 현재 재생 위치의 프레임을 선택하세요. 다음으로 개별 프레임을 이동하려면 `,` 와 `.`을 사용하고, 선택된 프레임 사이를 이동하려면 `Shift+왼쪽` 와 `Shift+오른쪽`.

샘플링된 프레임과 수동으로 선택된 프레임은 병합되고 중복이 제거되며, 대화상자에는 추출할 총 프레임 수의 실시간 집계가 표시됩니다.

#### 자르기

필름스트립의 자르기 핸들을 드래그하여 시작점과 끝점을 설정하세요. 잘린 범위 밖의 프레임은 제외됩니다.

"N개 프레임 추출"을 클릭하여 동영상을 프레임으로 분할하고 데이터셋에 업로드하세요.

여러 동영상이 대기 중인 경우, 동일한 간격 설정을 모두에 적용할 수 있습니다. 선택된 프레임은 동영상별로 적용되므로, 선택된 프레임이 있으면 각 동영상이 자체 대화상자를 엽니다.

<details>

<summary>지원되는 동영상 파일 형식</summary>

Roboflow는 브라우저에 기본 제공되는 동영상 파일 지원을 사용하여, 모델 학습에 사용할 수 있는 프레임 이미지로 동영상을 파싱합니다. 즉, 사용 중인 브라우저에 따라 MOV 및 MP4 파일을 포함한 다양한 동영상 형식을 사용할 수 있습니다.

다음을 할 수 있습니다 [브라우저에서 지원되는 동영상 형식을 확인하세요](https://caniuse.com/?search=video%20format).

동영상이 브라우저에서 디코딩할 수 없는 형식을 사용하면, Roboflow는 "파일 스캔 중"에서 멈추는 대신 "지원되지 않는 동영상" 오류를 표시하고 파일 변환을 안내합니다. HEVC/H.265는 흔한 원인입니다(예: DJI 드론, GoPro, 최신 휴대폰의 영상)이며 Safari에서만 디코딩할 수 있습니다. 동영상을 더 널리 지원되는 MP4(H.264)로 다시 내보내거나 변환한 뒤 다시 업로드하세요.

동영상 파일을 Roboflow에 불러오는 데 문제가 있다면, 다음에 게시할 수 있습니다 [포럼](https://discuss.roboflow.com/) 또는 계정 담당자에게 문의하세요.

</details>

## CLI

Roboflow Python 명령줄 인터페이스를 사용하여 더 큰 데이터셋을 업로드할 수 있습니다.

명령줄 인터페이스로는 이미지만 업로드할 수 있습니다. 동영상이 있다면 다음 작업이 필요합니다 [파일로 저장된 프레임으로 분할하세요](https://superuser.com/questions/1044444/how-do-i-use-ffmpeg-to-split-a-video-into-images-and-then-reassemble-exactly-the). 그런 다음 이 파일들을 Roboflow에 업로드할 수 있습니다.

시작하려면 먼저 다음을 설치하세요 `roboflow-python`:

```
pip install roboflow
```

다음으로, [워크스페이스 ID를 가져오세요](https://docs.roboflow.com/reference/authentication/authentication/workspace-and-project-ids).

마지막으로, 다음 형식의 명령을 준비하세요:

```
roboflow import -w testupload -p project-1-8zgld /path/to/dataset/folder
```

지정해야 하는 인수는 다음과 같습니다:

* `-w testupload`: 워크스페이스 이름입니다.
* `-p <project-id>`: 프로젝트 ID입니다.

명령을 실행하면 업로드 프로세스가 시작되었다는 메시지가 표시됩니다. 이후 이미지가 업로드되는 동안 로그가 표시됩니다:

<figure><img src="/files/aa2a68a7f07fe0e23e539d0f79c51313d9133ce9" alt=""><figcaption><p>명령줄로 데이터셋 업로드하기</p></figcaption></figure>

명령줄에서 데이터를 업로드하는 방법을 보여주는 동영상 안내가 있습니다:

{% embed url="<https://www.loom.com/share/19637984033a466b831af56f9404fa89>" %}

### Zip 파일 업로드

대규모 데이터셋의 경우, 개별 파일 대신 이미지와 주석이 들어 있는 단일 `.zip` 아카이브를 업로드할 수 있습니다. 아카이브는 한 번 업로드된 뒤 Roboflow 서버에서 비동기적으로 처리되므로, 파일별로 업로드하는 것보다 더 빠르고 안정적입니다.

다음 항목을 업로드하세요 `.zip` 직접:

```bash
roboflow image upload dataset.zip --workspace <workspace> -p <project>
```

또는 업로드 전에 CLI가 폴더를 zip으로 압축하도록 할 수도 있습니다:

```bash
roboflow image upload ./dataset/folder --zip-upload --workspace <workspace> -p <project>
```

기본적으로 이 명령은 처리가 끝날 때까지 기다린 뒤 요약을 출력합니다. 다음 옵션을 전달하세요 `--no-wait` 즉시 반환하려면, CLI가 업로드 상태를 조회하는 데 사용할 수 있는 작업 ID를 출력합니다.

## Python SDK

사용 `Workspace.upload_dataset()` 를 사용하여 다음을 업로드할 수 있습니다 `.zip` 업로드 전에 아카이브하거나 폴더를 zip으로 압축하세요:

```python
import roboflow

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

# .zip 경로는 자동으로 감지되어 아카이브로 업로드됩니다
workspace.upload_dataset("dataset.zip", project_name="your-project")

# 폴더의 경우 use_zip_upload를 사용해 zip으로 압축한 뒤 하나의 아카이브로 업로드합니다
workspace.upload_dataset("./dataset/folder", project_name="your-project", use_zip_upload=True)
```

{% hint style="info" %}
Zip 업로드는 최대 8GB 및 100,000개 파일의 아카이브를 지원합니다. 예측(`is_prediction=True`)은 zip 경로에서 지원되지 않습니다. 이 경우 개별 이미지 업로드를 사용하세요.
{% endhint %}

## 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>image_upload</code></td><td>zip을 통해 로컬 이미지 파일을 프로젝트에 업로드합니다.</td></tr><tr><td><code>image_upload_status</code></td><td>이미지 zip 업로드 작업의 상태를 확인합니다.</td></tr><tr><td><code>images_update_metadata</code></td><td>업로드된 이미지의 메타데이터와 태그를 업데이트합니다.</td></tr></tbody></table>

## 업로드한 데이터 보기

Roboflow에 업로드된 모든 데이터는 "배치"로 업로드됩니다. 이 배치는 프로젝트의 Annotate 페이지에서 확인할 수 있습니다:

<figure><img src="/files/c55820f97529ac740238ebc750a16a28b32f2547" alt=""><figcaption></figcaption></figure>

## 이미지 크기 제한

이미지의 최대 크기는 20MB입니다

최대 픽셀 크기는 16,400 × 10,900 픽셀입니다.

## 중복 이미지

이미 이미 프로젝트에 있는 이미지를 업로드하려고 하면 해당 이미지의 업로드는 건너뜁니다.

{% hint style="info" %}
만약 [두 데이터셋을 병합하면](/datasets/ko/manage/merge-datasets.md), 병합된 데이터셋과 원본 두 데이터셋이 모두 계정에 남습니다. 따라서 이미지는 중복이므로 병합에 대한 요금은 부과되지 않습니다.
{% endhint %}

## 데이터 소유권

Roboflow에 업로드한 모든 이미지와 동영상의 소유권은 귀하에게 있습니다. 이는 다음에 정의되어 있습니다 [서비스 약관의 23B항](https://roboflow.com/terms):

> 귀하가 게시, 제출, 공개, 표시 또는 전송하는 콘텐츠, 정보, 자료에 대한 모든 소유권은 귀하에게 유지됩니다

## 데이터 개인정보 보호

**공개 플랜:** Roboflow의 명시적 지정 및 합의가 없는 한, Public 플랜을 사용하는 경우 데이터셋은 Roboflow Universe에서 공개됩니다.

**유료 플랜(Enterprise 포함):** 달리 명시되지 않는 한, 귀하의 데이터는 계정 내에서 비공개로 유지됩니다.
