> 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/annotate/annotate/team-collaboration.md).

# 라벨링 협업

팀 전체가 데이터세트 라벨링을 도와줍니다.

## 소개

작은 팀이 수백 장의 이미지를 레이블링하든, 큰 팀이 수백만 장을 작업하든, 데이터셋을 만드는 일은 박스를 그리는 것만이 아닙니다. 레이블링의 큰 부분은 실제 세계의 이미지를 학습된 모델의 저장된 지식으로 옮기는 과정에 있으며, 여기에는 이미지 수집, 저장, 정리, 선택, 할당, 레이블링, 검토가 포함됩니다.

Roboflow는 다음과 같은 협업 기능을 제공합니다:

* 팀의 누구에게든 레이블링 작업을 할당하여 여러 팀원 사이에 작업을 분담하기
* 업로드하는 동안 이미지를 배치로 정리하기
* 작업을 안내하고 일관성을 보장하는 데 도움이 되도록 이미지 레이블링 지침을 제공하기
* 진행 중인 레이블링 작업을 한눈에 보기
* 모든 레이블링 작업의 기록 타임라인을 보기
* 변경 사항 되돌리기
* 이미지에 댓글을 추가하고 이미지 댓글 기록을 보기
* 레이블링 문제가 있는 이미지를 변경을 위해 팀원에게 다시 보내기
* 레이블을 데이터셋에 포함하기 전에 승인하거나 거부하기

### 레이블링 작업 할당

레이블링 작업을 팀원들 사이에 분담하거나 레이블링을 담당하는 특정 사람에게 할당할 수 있습니다. 개별 팀원에게 작업을 할당하면, 같은 시간에 온라인 상태일 때 서로의 작업을 방해할 걱정이 없습니다.

<figure><img src="https://3735512388-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FNVfRxNsvCh4GOyqrjmzX%2Fuploads%2Fgit-blob-3d03f750bc80afa125f9c70dfdfe5c2ede3f0e88%2FScreenshot%202025-06-27%20at%2015.58.55.png?alt=media" alt=""><figcaption></figcaption></figure>

작업을 팀의 한 명 또는 여러 명에게 할당하도록 선택할 수 있으며, 아직 작업공간에 팀원을 추가하지 않았다면 또한 [초대할 수 있습니다](https://docs.roboflow.com/platform/workspaces/team-members/invite-a-team-member) 그리고 동시에 완료될 레이블링 작업을 할당할 수 있습니다.

### **제공** 레이블링 지침

Assign Images 탭에서 라벨러에게 지침을 제공할 수 있습니다. 배치를 라벨러에게 할당하기 전에 배치에 지침을 추가하려면 "Add Instructions"를 클릭하세요. 지침을 설정한 뒤에는 "Assign Images"를 클릭하세요.

<figure><img src="https://3735512388-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FNVfRxNsvCh4GOyqrjmzX%2Fuploads%2Fgit-blob-9425465335ac442051fe5f8b66d8a2b95069e1a1%2FScreenshot%202025-06-27%20at%2016.00.33.png?alt=media" alt=""><figcaption></figcaption></figure>

지침을 할당하려면 "Edit"를 클릭하세요:

<figure><img src="https://3735512388-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FNVfRxNsvCh4GOyqrjmzX%2Fuploads%2Fgit-blob-208d4f5de293fdaece24a1e0439b313660ab9b1d%2FScreenshot%202025-06-27%20at%2016.09.22.png?alt=media" alt=""><figcaption></figcaption></figure>

레이블링 지침을 저장하려면 "Save Instructions"를 클릭하세요.

### 작업 알림

레이블링 작업이 할당되면, 자신에게 할당된 작업이 있을 때 알림이 팀원들에게 전송됩니다.

### 레이블링 작업 보드

레이블링 작업 보드는 개별적으로 할당된 작업이 레이블링 과정을 거치는 동안 현재 상태를 한눈에 보여줍니다.

<figure><img src="https://3735512388-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FNVfRxNsvCh4GOyqrjmzX%2Fuploads%2Fgit-blob-763594df65168569a56cfe229cd094d0f4cf9b2a%2FScreenshot%202025-06-27%20at%2016.04.23.png?alt=media" alt=""><figcaption></figcaption></figure>

특정 라벨러의 통계를 보려면 다음에서 값을 지정하세요. `라벨러` 드롭다운.

### 작업 세부정보

레이블링 작업 보드에서 개별 작업을 클릭하면 개별 작업과 진행 상황을 더 자세히 볼 수 있습니다. 아직 레이블링이 필요한 이미지를 빠르게 확인하고 필요에 따라 작업을 다른 팀원에게 다시 할당할 수 있습니다.

<figure><img src="https://3735512388-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FNVfRxNsvCh4GOyqrjmzX%2Fuploads%2Fgit-blob-6ed68f7f7521a5de9a7e9e63bcb97dd3e3ca8342%2FScreenshot%202025-06-27%20at%2016.05.41.png?alt=media" alt=""><figcaption></figcaption></figure>

#### 개별 이미지 관리

작업의 Annotated 탭에서 체크박스, 드래그 선택, 또는 헤더의 "Select all" 체크박스를 사용해 개별 이미지를 선택할 수 있습니다. 선택을 완료하면:

* "Send N Images to Unannotated"를 클릭하여 선택한 이미지를 다시 Unannotated 탭으로 이동시켜 재레이블링할 수 있습니다.
* "Add N Images to Dataset"를 클릭하여 선택된 이미지만 데이터셋에 추가합니다. 선택되지 않은 주석 이미지들은 작업에 남아 있습니다.

부분 선택을 데이터셋에 추가하면, 작업은 현재 상태를 유지하면서 개수가 업데이트되어 라벨러가 나머지 이미지 작업을 계속할 수 있습니다.

이 컨트롤은 주석 편집기에서도 사용할 수 있습니다. 할당된 작업에서 주석이 달린 이미지를 볼 때:

* 체크마크 버튼을 사용하여 현재 이미지를 데이터셋에 추가하세요.
* 이미지 전환기 옆의 "Send to Unannotated" 버튼(화살표 아이콘)을 사용하여 현재 이미지를 다시 보내 재레이블링하세요.

어느 작업을 하든, 편집기는 다음 이미지로 자동으로 이동합니다.

### 검토 모드

레이블된 이미지를 개별적으로 승인하거나 거부하고 필요할 경우 수정 작업을 위해 라벨러에게 다시 보낼 수 있습니다. 그렇게 하려면 이미지 배치를 클릭하세요. 그런 다음 Approved, Rejected, To Do 탭 사이를 이동하여 작업 내 이미지 상태를 확인하세요.

<figure><img src="https://3735512388-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FNVfRxNsvCh4GOyqrjmzX%2Fuploads%2Fgit-blob-dc9c04eb0d0d59159e8281aec2a6c94477c755ea%2FScreenshot%202025-06-27%20at%2016.06.07.png?alt=media" alt=""><figcaption></figcaption></figure>

요금제에 포함되어 있으면 검토 모드가 켜지며, 작업공간의 모든 프로젝트에 적용됩니다. 끄려면 Settings로 가서 "Project Settings"를 열고 "Review Mode"를 끄세요. 이렇게 하면 Review 열이 제거되어 완료된 작업이 바로 데이터셋으로 이동합니다. 꺼두더라도 요금제에서 검토 모드가 삭제되는 것은 아니므로 언제든 다시 켤 수 있습니다.

이를 변경하려면 Edit Workspace Settings 권한이 필요합니다. 끌 때 배치가 아직 검토 중이면, Roboflow가 확인을 요청한 뒤 해당 배치를 Annotating으로 되돌립니다.

### Agent에서 레이블링 작업 찾아보기

프로젝트 탭을 여세요 [Roboflow Agent](https://docs.roboflow.com/agents/roboflow-agent) 그리고 "Dataset"을 선택하여 레이블링 단계별로 프로젝트의 이미지를 찾아보세요. 각 단계("Unassigned", "Annotating", "Review", "Dataset")별 칩에는 이미지 수가 표시됩니다. 칩을 하나 고른 다음 배치 또는 작업 카드 하나를 선택하여 아래 그리드를 더 좁혀보세요.

이미지를 클릭하면 주석 편집기에서 열립니다. 이미지는 "Unassigned" 상태이거나, 작업이 주석 보드를 떠났거나 더 이상 자신에게 할당되지 않은 경우 읽기 전용으로 열립니다. 레이블을 편집하려면 Search Workspace Images 권한과 Update Annotation 권한이 필요합니다.

#### 작업을 단계별로 이동시키기

Agent에서 작업을 열면 탭 바에 작업의 위치가 표시됩니다: "Unassigned", "Annotating", "Review", 또는 "Dataset". 각 단계에서 어떤 일이 일어나는지 보려면 단계 위에 마우스를 올려보세요. 만약 [검토 모드](#review-mode) 가 작업공간에서 꺼져 있으면, "Review" 단계가 회색으로 표시됩니다. 요금제에 포함되어 있지 않다면, 해당 단계는 업그레이드 방법을 제공합니다.

스테퍼 옆의 버튼으로 작업을 앞으로 또는 뒤로 이동할 수 있습니다. 표시되는 버튼은 단계와 권한에 따라 다릅니다:

* "Move N to Annotating"는 미할당 이미지로부터 레이블링 작업을 만들고 자신에게 할당합니다.
* "Submit for Review"는 주석 중인 작업을 검토 단계로 보냅니다.
* "Move Back to Annotating"는 검토 중인 작업의 모든 이미지를 추가 레이블링을 위해 다시 보냅니다.
* "Add N to Dataset"는 작업의 준비된 이미지를 데이터셋에 추가합니다. 일부만 추가하면 나머지는 작업에 남습니다.

각 버튼은 쓰기 전에 작업의 단계를 다시 확인합니다. 그동안 다른 사람이 작업을 이동시켰다면 아무것도 변경되지 않으며, Agent가 그 이유를 알려줍니다.

#### 이미지를 추가하고 주석 시작

Agent에게 작업공간의 이미지를 모델에 추가하고 레이블링을 시작하도록 요청하세요. 그러면 이미지를 추가하고, 당신을 라벨러로 하는 레이블링 작업에 할당한 뒤, 해당 작업의 주석 편집기를 엽니다.

이 모드는 요청당 최대 500장의 이미지를 처리하며 이미지에만 적용됩니다. 이미 레이블링하지 않은 이미지를 추가하는 데에는 그런 제한이 없습니다. Action Recognition과 Multimodal 프로젝트는 지원되지 않습니다.

작업은 백그라운드에서 실행됩니다. 작업을 생성할 수 없더라도(예: 일부 이미지가 이미 다른 작업에 있는 경우), 이미지는 여전히 모델에 추가되며 작업은 생성되지 않고, Agent가 할당을 막은 이유를 알려줍니다.

#### 이미지 승인 및 거부

열어 둔 작업이 "Review" 단계에 있으면, 편집기에는 주석 보드와 동일한 승인 및 거부 컨트롤이 표시됩니다. 현재 이미지에서 "Approve" 또는 "Reject"를 클릭하거나 A를 눌러 승인, R을 눌러 거부, U를 눌러 마지막 결정을 되돌릴 수 있습니다. 이를 위해서는 Review Image 권한이 필요합니다.

## HTTP API

jobs 엔드포인트를 사용하여 주석 작업에 대한 정보, 현재 상태를 가져오거나, 배치 중 하나의 이미지를 사용해 새 Annotation Job을 만들어 레이블링용 이미지를 할당할 수 있습니다.

### 새 Annotation Job 만들기

{% hint style="warning" %}
**reviewer와 labeler 모두 작업공간의 사용자에 속한 이메일로 설정해야 합니다.**

작업공간에서 Role Based Access Control이 활성화되어 있지 않으면 앱 인터페이스에서 reviewer가 보이지 않으며, reviewer를 labeler와 같은 사용자로 설정해야 합니다.
{% endhint %}

프로젝트의 /jobs 엔드포인트에 POST 요청을 보내 프로젝트에 새 Annotation Job을 만들 수 있습니다. 새 작업을 만들려면 POST 요청 본문에 JSON으로 인코딩된 데이터를 제공해야 합니다.

프로젝트의 배치 중 하나에서 10개의 이미지를 <lenny@roboflow.com>이 주석 달도록 할당하는 새 Annotation Job을 만들려면 다음과 같이 POST 요청을 보낼 수 있습니다:

```bash
curl --location --request POST 'https://api.roboflow.com/${WORKSPACE}/${PROJECT}/jobs?api_key=${ROBOFLOW_API_KEY}' \\
--header 'Content-Type: application/json' \\
--data-raw '{
    "name": "API로 생성된 작업",
    "batch": "<BATCH_ID>",
    "num_images": 10,
    "labelerEmail": "lenny@roboflow.com",
    "reviewerEmail": "lenny@roboflow.com"
}'
```

이 요청은 다음 데이터를 반환합니다:

```json
{
    "created": {
        "_seconds": 1669234345,
        "_nanoseconds": 61000000
    },
    "rejected": 0,
    "annotated": 0,
    "numImages": 2,
    "createdBy": "API",
    "owner": "holeSv3hwbzrOv37vH5b",
    "instructionsText": "지침이 제공되지 않음",
    "unannotated": 2,
    "reviewer": "thomas@roboflow.com",
    "labeler": "korryn@roboflow.com",
    "name": "API 작업 1",
    "project": "PBDhem3YRI1rKtQZSqRK",
    "approved": 0,
    "status": "assigned",
    "sourceBatch": "PBDhem3YRI1rKtQZSqRK/6VN0fFQIWU1E24bDjGsN",
    "id": "0IzntY4ms4ogwHwJNkIB"
}
```

### API에서 Annotation Job 데이터 가져오기

REST API에서 주석 작업 데이터를 가져오려면 다음 엔드포인트로 요청하세요:

```bash
curl https://api.roboflow.com/${WORKSPACE}/${PROJECT}/jobs?api_key=${ROBOFLOW_API_KEY}
```

그러면 다음 형식의 데이터가 반환됩니다:

```json
{
    "jobs": [
        {
            "owner": "holeSv3hwbzrOv37vH5b",
            "approved": 0,
            "createdBy": "g12lCVib0pgurZ6EqWLnApJJ4gr1",
            "sourceBatch": "PBDhem3YRI1rKtQZSqRK/6VN0fFQIWU1E24bDjGsN",
            "annotated": 3,
            "rejected": 0,
            "labeler": "thomas@roboflow.com",
            "numImages": 26,
            "status": "assigned",
            "instructionsText": "",
            "name": "11/22/22 오후 1:39에 업로드됨: 작업 9",
            "reviewer": "thomas@roboflow.com",
            "created": {
                "_seconds": 1669148088,
                "_nanoseconds": 297000000
            },
            "project": "PBDhem3YRI1rKtQZSqRK",
            "unannotated": 23,
            "id": "5LfYNJg10Z9Kvx5Tt5Uq"
        },

        {
            "approved": 0,
            "unannotated": 2,
            "instructionsText": "이미지의 모든 너구리를 다각형을 사용해 표시하세요",
            "annotated": 12,
            "sourceBatch": "PBDhem3YRI1rKtQZSqRK/6VN0fFQIWU1E24bDjGsN",
            "project": "PBDhem3YRI1rKtQZSqRK",
            "rejected": 0,
            "owner": "holeSv3hwbzrOv37vH5b",
            "createdBy": "API",
            "status": "assigned",
            "created": {
                "_seconds": 1669148192,
                "_nanoseconds": 651000000
            },
            "labeler": "korryn@roboflow.com",
            "name": "테스트 작업",
            "numImages": 25,
            "reviewer": "thomas@roboflow.com",
            "id": "h2E42jt686yLyMIxxqOQ"
        }
    ]
}
```

특정 작업에 대한 정보를 가져오려면 작업 ID를 지정하세요:

```bash
curl https://api.roboflow.com/${WORKSPACE}/${PROJECT}/jobs/${JOB_ID}?api_key=${ROBOFLOW_API_KEY}
```

이 요청의 응답 형식은 다음과 같습니다:

```json
{
    "approved": 0,
    "unannotated": 2,
    "instructionsText": "이미지의 모든 너구리를 다각형을 사용해 표시하세요",
    "annotated": 12,
    "sourceBatch": "PBDhem3YRI1rKtQZSqRK/6VN0fFQIWU1E24bDjGsN",
    "project": "PBDhem3YRI1rKtQZSqRK",
    "rejected": 0,
    "owner": "holeSv3hwbzrOv37vH5b",
    "createdBy": "API",
    "status": "assigned",
    "created": {
        "_seconds": 1669148192,
        "_nanoseconds": 651000000
    },
    "labeler": "korryn@roboflow.com",
    "name": "테스트 작업",
    "numImages": 25,
    "reviewer": "thomas@roboflow.com",
    "id": "<JOB_ID>"
}
```

## Python SDK

### 새 Annotation Job 만들기

주석 작업을 만들려면, 라벨러와 리뷰어에게 할당하고 싶은 업로드 배치가 필요합니다:

```python
import roboflow

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

project = rf.workspace().project("PROJECT_ID")

job = project.create_annotation_job(
    name="Test Annotation Job",
    batch_id=UPLOAD_BATCH_ID,
    num_images=UPLOAD_BATCH_SIZE,
    labeler_email="test@example.com",
    reviewer_email="test@example.com",
)
```

## 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>annotation_jobs_list</code></td><td>프로젝트의 주석 작업을 나열합니다.</td></tr><tr><td><code>annotation_jobs_get</code></td><td>주석 작업 하나의 세부정보를 가져옵니다.</td></tr><tr><td><code>annotation_jobs_create</code></td><td>작업을 만들고 이미지를 라벨러와 리뷰어에게 할당합니다.</td></tr><tr><td><code>annotation_jobs_update</code></td><td>작업의 라벨러, 리뷰어 또는 지침을 업데이트합니다.</td></tr><tr><td><code>annotation_jobs_images_reassign</code></td><td>선택한 이미지로 작업을 만들고 이전 할당을 지웁니다.</td></tr></tbody></table>
