Link to this sectionLabelMe 어노테이션을 YOLO 및 Ultralytics Platform으로 내보내기#
LabelMe는 오픈소스 Python 애플리케이션을 제공하는 오프라인 이미지 어노테이션 도구입니다. Ultralytics Platform에서 설정해야 하는 실시간 LabelMe 연결이나 API 키는 없습니다. 전체 통합 과정은 로컬 워크플로우로 이루어집니다. LabelMe에서 어노테이션을 작성하고, LabelMe 툴킷을 사용하여 LabelMe JSON 어노테이션을 YOLO 형식으로 변환한 다음, 결과 ZIP 파일을 Platform 데이터셋으로 업로드합니다.
Link to this section1. LabelMe에서 이미지 어노테이션 작업하기#
데스크톱 앱 또는 오픈소스 Python 패키지를 사용하여 LabelMe를 설치한 후, 이미지가 포함된 디렉터리를 엽니다. LabelMe는 각 이미지의 어노테이션을 일치하는 JSON 파일로 저장합니다.
이 가이드의 YOLO 감지 워크플로우를 위해 각 객체 주변에 사각형을 그리고 클래스 이름을 할당합니다. LabelMe 시작 가이드에서는 이미지 열기, 도형 그리기, 어노테이션 저장을 다루며, LabelMe 데이터셋 가이드에서는 완전한 어노테이션 데이터셋 검토 및 준비를 다룹니다.
소스 디렉터리에는 이미지와 LabelMe JSON 파일이 포함되어 있어야 합니다:
your_dataset/
├── image_001.jpg
├── image_001.json
├── image_002.jpg
└── image_002.jsonLink to this section2. LabelMe 툴킷 설치하기#
LabelMe의 툴킷 설치 가이드에 따라 LabelMe 툴킷을 설치합니다. 툴킷과 내보내기 기능은 로컬에서 실행됩니다.
export-to-yolo는 LabelMe Pro 툴킷의 일부이며, 설치 프로그램을 다운로드하려면 LabelMe 로그인이 필요합니다. 이는 LabelMe 제품 요구사항이며, 생성된 ZIP 파일은 모든 Platform 플랜에서 업로드할 수 있습니다.
설치를 확인한 후 소스 데이터셋에서 발견된 모든 레이블을 나열합니다:
labelmetk --version
labelmetk list-labels your_dataset/내보내기 전에 출력을 검토하세요. --class-names에서 누락된 레이블은 건너뛰며, 입력한 순서가 YOLO 클래스 ID 순서가 됩니다.
Link to this section3. YOLO 형식으로 내보내기#
소스 디렉터리와 쉼표로 구분된 클래스 이름 목록과 함께 export-to-yolo를 실행합니다:
labelmetk export-to-yolo your_dataset/ --class-names crack,normalcrack,normal을 list-labels가 반환한 레이블로 바꿉니다. LabelMe는 결과를 your_dataset.export/에 기록합니다:
your_dataset.export/
├── classes.txt
├── images/
│ ├── image_001.jpg
│ └── image_002.jpg
└── labels/
├── image_001.txt
└── image_002.txtclasses.txt는 YOLO 레이블 파일에서 사용된 것과 동일한 순서로 클래스 이름을 유지합니다. 이를 내보내기 루트에 유지하세요.
LabelMe 툴킷은 사각형을 YOLO 바운딩 박스로 내보냅니다. 또한 다각형과 마스크를 축 정렬 바운딩 박스로 축소하므로 export-to-yolo는 분할 지오메트리를 유지하지 않습니다. 이 워크플로우로 감지 데이터셋을 준비할 때는 사각형을 그리세요.
Link to this section4. ZIP 아카이브 생성하기#
주변 디렉터리가 아닌 your_dataset.export/의 내부 콘텐츠를 압축합니다. macOS 또는 Linux의 경우:
cd your_dataset.export
zip -r ../your_dataset.zip classes.txt images labelsWindows PowerShell의 경우:
Compress-Archive -Path .\your_dataset.export\* -DestinationPath .\your_dataset.zip업로드하기 전에 ZIP을 열어 classes.txt, images/, labels/가 루트에 있는지 확인합니다. 추가적인 your_dataset.export/ 래퍼가 있으면 Platform이 루트 클래스 목록을 찾지 못하게 됩니다.
Link to this section5. Ultralytics Platform에 업로드하기#
- 설정 > 통합 > LabelMe를 엽니다.
- 업로드 내보내기를 클릭합니다.
your_dataset.zip을 업로드하고 데이터셋 생성을 완료합니다.- 처리가 완료될 때까지 기다린 후 이미지, 클래스, 어노테이션을 검토합니다.
- 동일한 작업 공간에서 어노테이션 편집, 모델 학습, 및 배포를 수행할 수 있습니다.
LabelMe와 YOLO 내보내기는 완전히 오프라인 상태로 유지됩니다. 업로드 대화상자에서 선택한 ZIP 파일만 Platform으로 전송됩니다.
Link to this section문제 해결#
- 클래스 이름이
class0,class1등으로 지정되는 경우: ZIP의 루트에classes.txt가 있는지 확인합니다. - 일부 어노테이션이 누락된 경우:
labelmetk list-labels your_dataset/을 다시 실행하고--class-names에 필요한 모든 레이블을 포함합니다. - 다각형이 상자로 변경된 경우: 이는 문서화된 LabelMe의
export-to-yolo동작이며, 직사각형이 아닌 도형을 바운딩 박스로 변환합니다. - 데이터셋에 이미지가 없는 경우: 내보낸
images/디렉터리가 ZIP에 포함되어 있는지 확인합니다. - Platform이 클래스를 찾지 못하는 경우: 아카이브에서 바깥쪽 디렉터리를 제거하여
classes.txt,images/,labels/가 최상위 항목이 되도록 합니다.
전체 로컬 워크플로우에 대해서는 LabelMe의 YOLO 학습 가이드 및 export-to-yolo 레퍼런스를 참조하세요.