> 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장 초과인 데이터세트에 권장됩니다.
* Dataset Upload Workflow Block 사용: 이미 프로덕션에 배포된 모델이 있는 Workflow에서 데이터를 수집할 때 권장됩니다.

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

* 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+Left` 및 `Shift+Right`.

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

#### 자르기

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

"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 %}

## 업로드한 데이터 보기

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의 명시적 지정과 협의가 없는 한 공개 요금제를 사용하는 경우, 귀하의 데이터세트는 Roboflow Universe에 공개됩니다.

**유료 요금제(엔터프라이즈 포함):** 달리 명시되지 않는 한, 귀하의 데이터는 귀하의 계정에 대해 비공개입니다.
