Skip to content

이미지 어노테이션

Potato에서 바운딩 박스, 폴리곤, 자유 그리기, 랜드마크 포인트로 이미지에 어노테이션합니다. 확대/축소, 이동, 다중 레이블 분류, AI 사전 레이블링을 지원합니다.

Potato의 이미지 어노테이션 시스템은 객체 탐지, 분할, 키포인트 어노테이션을 포함한 컴퓨터 비전 작업을 위해 여러 어노테이션 방식을 지원합니다.

지원되는 도구

도구설명사용 사례
bbox직사각형 바운딩 박스객체 탐지
polygon다중 점 폴리곤인스턴스 분할
freeform자유 그리기불규칙한 형태
landmark점 마커키포인트 탐지
fill픽셀 단위 채우기 도구분할 마스크
eraser칠한 영역 지우기분할 마스크 수정
brush페인트 브러시 도구세밀한 분할

기본 설정

yaml
annotation_schemes:
  - name: "objects"
    description: "Draw boxes around all objects"
    annotation_type: "image_annotation"
    tools:
      - bbox
    labels:
      - person
      - car
      - bicycle

설정 옵션

필드유형기본값설명
namestring필수어노테이션의 고유 식별자
descriptionstring필수어노테이터에게 표시되는 안내문
annotation_typestring필수반드시 "image_annotation"
toolslist필수활성화된 어노테이션 도구 (bbox, polygon, freeform, landmark, fill, eraser, brush)
labelslist필수어노테이션의 카테고리 레이블
zoom_enabledbooleantrue확대/축소 컨트롤 활성화
pan_enabledbooleantrue드래그 탐색 활성화
min_annotationsinteger0필요한 최소 어노테이션 수
max_annotationsintegernull허용되는 최대 어노테이션 수 (null = 무제한)
freeform_brush_sizeinteger5자유 그리기의 브러시 크기
freeform_simplifyfloat2.0경로 단순화 계수

레이블 설정

레이블은 단순 문자열이거나 상세한 객체일 수 있습니다.

yaml
# Simple labels (auto-colored)
labels:
  - person
  - car
  - tree
 
# Detailed labels with custom colors and shortcuts
labels:
  - name: "person"
    color: "#FF6B6B"
    key_value: "1"
  - name: "car"
    color: "#4ECDC4"
    key_value: "2"
  - name: "bicycle"
    color: "#45B7D1"
    key_value: "3"

예시

객체 탐지 (바운딩 박스)

yaml
annotation_schemes:
  - name: "detection"
    description: "Draw bounding boxes around all vehicles"
    annotation_type: "image_annotation"
    tools:
      - bbox
    labels:
      - name: "car"
        color: "#3B82F6"
        key_value: "1"
      - name: "truck"
        color: "#10B981"
        key_value: "2"
      - name: "motorcycle"
        color: "#F59E0B"
        key_value: "3"
    min_annotations: 1
    zoom_enabled: true

인스턴스 분할 (폴리곤)

yaml
annotation_schemes:
  - name: "segmentation"
    description: "Draw polygons around each object"
    annotation_type: "image_annotation"
    tools:
      - polygon
    labels:
      - name: "building"
        color: "#8B5CF6"
      - name: "road"
        color: "#64748B"
      - name: "vegetation"
        color: "#22C55E"
    zoom_enabled: true
    pan_enabled: true

키포인트 어노테이션 (랜드마크)

yaml
annotation_schemes:
  - name: "facial_landmarks"
    description: "Mark facial keypoints"
    annotation_type: "image_annotation"
    tools:
      - landmark
    labels:
      - name: "left_eye"
        color: "#3B82F6"
      - name: "right_eye"
        color: "#3B82F6"
      - name: "nose"
        color: "#10B981"
      - name: "left_mouth"
        color: "#F59E0B"
      - name: "right_mouth"
        color: "#F59E0B"

여러 도구 사용

yaml
annotation_schemes:
  - name: "mixed_annotation"
    description: "Use boxes for objects and polygons for regions"
    annotation_type: "image_annotation"
    tools:
      - bbox
      - polygon
    labels:
      - name: "object"
        color: "#3B82F6"
      - name: "region"
        color: "#10B981"

키보드 단축키

동작
b바운딩 박스 도구 활성화
p폴리곤 도구 활성화
f자유 그리기 도구 활성화
l랜드마크 도구 활성화
1-9레이블 선택
Delete선택한 어노테이션 삭제
Ctrl+Z실행 취소
Ctrl+Y다시 실행
+ / -확대/축소

데이터 형식

입력 데이터

데이터 파일에는 이미지 경로 또는 URL이 포함되어야 합니다.

json
[
  {
    "id": "img_001",
    "image_url": "https://example.com/images/photo1.jpg"
  },
  {
    "id": "img_002",
    "image_url": "/data/images/photo2.png"
  }
]

설정에서 이미지 필드를 지정합니다.

yaml
item_properties:
  id_key: id
  text_key: image_url

출력 형식

어노테이션에는 각 어노테이션의 기하 데이터가 포함됩니다.

json
{
  "id": "img_001",
  "annotations": {
    "objects": [
      {
        "id": "ann_1",
        "type": "bbox",
        "label": "car",
        "geometry": {
          "x": 100,
          "y": 150,
          "width": 200,
          "height": 100
        }
      },
      {
        "id": "ann_2",
        "type": "polygon",
        "label": "building",
        "geometry": {
          "points": [
            [50, 50],
            [150, 50],
            [150, 200],
            [50, 200]
          ]
        }
      }
    ]
  }
}

지원되는 이미지 형식

  • JPEG / JPG
  • PNG
  • GIF
  • WebP

분할 마스크

v2.2.0에서 신규 추가

fill, eraser, brush 도구를 사용하면 픽셀 단위의 분할 마스크 어노테이션이 가능합니다. 이 도구들은 정밀한 영역 경계가 필요한 시맨틱 분할 작업에 적합합니다.

yaml
annotation_schemes:
  - name: "segmentation"
    description: "Paint segmentation masks"
    annotation_type: "image_annotation"
    tools:
      - fill
      - eraser
      - brush
    labels:
      - name: "foreground"
        color: "#3B82F6"
      - name: "background"
        color: "#6B7280"
    freeform_brush_size: 10
동작
i채우기 도구 활성화
e지우개 도구 활성화
r브러시 도구 활성화

PDF/문서 바운딩 박스

v2.2.0에서 신규 추가

PDF 페이지와 문서 이미지에 바운딩 박스를 그립니다. instance_displaypdf 표시 유형과 함께 사용하면 어노테이터가 PDF 문서의 개별 페이지에 박스를 그릴 수 있습니다.

yaml
instance_display:
  fields:
    - key: pdf_url
      type: pdf
 
annotation_schemes:
  - name: "document_regions"
    description: "Draw boxes around figures and tables"
    annotation_type: "image_annotation"
    tools:
      - bbox
    labels:
      - name: "figure"
        color: "#3B82F6"
      - name: "table"
        color: "#10B981"
      - name: "equation"
        color: "#F59E0B"

모범 사례

  1. 적절한 도구를 사용하세요 - 빠른 탐지에는 바운딩 박스, 정밀한 경계에는 폴리곤, 분할에는 채우기/브러시를 사용합니다
  2. 명확한 레이블을 정의하세요 - 서로 구분되고 겹치지 않는 카테고리를 사용합니다
  3. 어노테이션 한도를 설정하세요 - min_annotations로 완전성을 보장합니다
  4. 확대/축소를 활성화하세요 - 고해상도 이미지의 세밀한 어노테이션에 필수적입니다
  5. 키보드 단축키를 사용하세요 - 어노테이션 속도를 크게 높입니다
  6. 레이블 색상을 지정하세요 - 어노테이션을 시각적으로 구분하기 쉬워집니다