LabelMe 어노테이션을 Ultralytics Platform으로 가져오기#
LabelMe는 오프라인 이미지 어노테이션 도구이며 오픈 소스 Python 애플리케이션을 제공합니다. Ultralytics Platform에서 실시간 LabelMe 연결이나 API 키를 설정할 필요가 없으며, 변환 단계도 필요하지 않습니다. Platform은 LabelMe JSON 파일을 직접 읽습니다. LabelMe에서 어노테이션을 작성하고 폴더를 ZIP으로 압축한 다음 Platform 데이터셋으로 업로드하세요.
1. LabelMe에서 이미지 어노테이션 작성#
데스크톱 앱 또는 오픈 소스 Python 패키지를 사용해 LabelMe를 설치한 다음 이미지가 들어 있는 디렉터리를 여세요. LabelMe 시작 가이드에서 이미지 열기, 도형 그리기, 어노테이션 저장 방법을 확인할 수 있습니다.
객체 감지 데이터셋에는 사각형을 그리고, 세그멘테이션 데이터셋에는 다각형을 그리세요. LabelMe는 각 이미지의 어노테이션을 이미지와 같은 위치에 JSON 파일로 저장합니다.
your_dataset/
├── image_001.jpg
├── image_001.json
├── image_002.jpg
└── image_002.json2. ZIP 아카이브 만들기#
이미지와 JSON 파일이 들어 있는 폴더를 압축하세요. macOS 또는 Linux에서는 다음을 실행합니다.
zip -r your_dataset.zip your_datasetWindows PowerShell에서는 다음을 실행합니다.
Compress-Archive -Path .\your_dataset -DestinationPath .\your_dataset.zip외부 폴더, 중첩된 하위 폴더, 이미지와 어노테이션이 분리된 폴더를 모두 사용할 수 있습니다. 단, 각 JSON 파일의 imagePath이 ZIP 안의 이미지를 가리켜야 합니다. Platform은 LabelMe가 JSON에 삽입할 수 있는 이미지 사본을 imageData로 읽는 것이 아니라 해당 이미지 파일을 읽으므로, 이미지 파일을 아카이브에 포함하세요. 이름이 train, val 또는 test로 시작하는 폴더의 이미지는 해당 분할을 유지합니다. 아카이브에 data.yaml 파일이나 COCO JSON 파일이 없을 때만 LabelMe JSON을 읽으므로, LabelMe ZIP에는 해당 파일을 넣지 마세요.
3. Ultralytics Platform에 업로드#
- Settings > Integrations > LabelMe를 여세요.
- Upload export를 클릭하세요.
your_dataset.zip을 업로드하고 데이터셋 생성을 완료하세요.- 처리가 완료될 때까지 기다린 다음 이미지, 클래스, 어노테이션을 검토하세요.
- 같은 작업 공간에서 어노테이션 편집, 모델 학습, 배포를 진행하세요.

LabelMe는 완전히 오프라인으로 실행됩니다. 업로드 대화상자에서 선택한 ZIP 파일만 Platform으로 전송됩니다.
LabelMe 도형 가져오기 방식#
| LabelMe 도형 | 가져오기 결과 |
|---|---|
rectangle | 바운딩 박스 또는 세그멘테이션 데이터셋의 4개 꼭짓점 다각형 |
polygon | 다각형 |
oriented_rectangle | 4개 꼭짓점 다각형 |
circle | 32개 꼭짓점 다각형 |
mask | 마스크의 바깥 윤곽을 따라 그린 다각형으로, 내부 구멍을 채움 |
line, linestrip, point, points | 학습에 사용할 영역이 없으므로 건너뜀 |
- 작업: 사각형만 어노테이션된 데이터셋은 객체 감지 데이터셋으로 가져옵니다. 다각형, 방향 지정 사각형, 원 또는 마스크가 하나라도 있으면 세그멘테이션 데이터셋으로 가져오며, 어노테이션이 손실되지 않도록 사각형은 4개 꼭짓점 다각형으로 변환됩니다.
- 클래스: LabelMe 레이블 이름이 알파벳순으로 클래스 이름이 됩니다. 기존 데이터셋으로 가져올 경우 레이블을 이름으로 해당 클래스에 연결하고, 나머지 레이블은 추가합니다.
- 그룹화된 도형: 레이블과 그룹 ID가 같은 도형은 하나의 객체로 처리합니다. 각 도형의 일부를 하나의 다각형으로 병합하거나, 객체 감지 데이터셋에서는 하나의 박스로 병합합니다.
- 건너뜀: 레이블이 없는 도형,
__ignore__레이블이 지정된 도형, 이미지 수준 플래그는 가져오지 않습니다. 이미지 경계를 벗어난 도형은 경계 안으로 잘립니다.
문제 해결#
- 어노테이션 없이 가져온 이미지: ZIP에 JSON 파일이 포함되어 있고 각 파일의
imagePath이 아카이브에 있는 이미지를 지정하는지 확인하세요. Platform은 파일 이름으로도 일치 항목을 찾으므로, 이미지 파일 이름이 바뀌지 않았다면 오래된 절대 경로도 사용할 수 있습니다. - 다각형이 4개 꼭짓점 박스로 변환됨: 세그멘테이션 데이터셋에서는 사각형을 4개 꼭짓점 다각형으로 변환합니다. 정확한 윤곽이 필요한 객체에는 다각형을 그리세요.
- 선 또는 점이 누락됨: 이러한 도형은 영역이 없어 객체 감지나 세그멘테이션에 사용할 수 없으므로 건너뜁니다.
- 데이터셋에 이미지가 없음: LabelMe는 이미지를 JSON 파일에 삽입할 수 있지만 Platform은 이미지 파일을 읽습니다. ZIP에 이미지를 추가하세요.
자주 묻는 질문#
아니요. LabelMe는 로컬에서 실행되고 Platform은 JSON 파일을 직접 읽으며, 업로드한 ZIP만 Platform으로 전송됩니다. LabelMe Pro 멤버십이나 Toolkit 내보내기는 필요하지 않습니다.
예. 다각형, 방향 지정 사각형, 원, 마스크는 세그멘테이션 다각형으로 가져오며, 데이터셋은 세그멘테이션 데이터셋으로 설정됩니다.
클래스 이름은 LabelMe 레이블에서 가져와 알파벳순으로 정렬되므로, 같은 레이블은 항상 같은 클래스 ID에 매핑됩니다. 기존 데이터셋에 추가할 때는 레이블을 이름으로 해당 클래스에 연결합니다.
예.
labelmetk export-to-yolo내보내기 파일은 일반 YOLO 데이터셋으로 업로드됩니다. 클래스 이름을 유지하려면 내보내기 파일의classes.txt을 ZIP에 포함하세요(Platform은 가장 바깥쪽에 있는 파일을 읽습니다).