콘텐츠로 건너뛰기

포즈 추정 데이터 세트 개요

지원되는 데이터 세트 형식

Ultralytics YOLO 형식

YOLO 포즈 모델 훈련에 사용되는 데이터 세트 레이블 형식은 다음과 같습니다.

  1. 이미지당 하나의 텍스트 파일: 데이터 세트의 각 이미지에는 이미지 파일과 이름이 같고 확장자가 ".txt"인 해당 텍스트 파일이 있습니다.
  2. 객체당 하나의 행: 텍스트 파일의 각 행은 이미지의 객체 인스턴스 하나에 해당합니다.
  3. 행당 객체 정보: 각 행에는 객체 인스턴스에 대한 다음 정보가 포함되어 있습니다.
    • 객체 클래스 인덱스: 객체의 클래스를 나타내는 정수입니다 (예: 0은 사람, 1은 자동차 등).
    • 객체 중심 좌표: 객체 중심의 x 및 y 좌표이며, 0과 1 사이로 정규화됩니다.
    • 객체 너비 및 높이: 객체의 너비와 높이는 0과 1 사이로 정규화됩니다.
    • 객체 키포인트 좌표: 객체의 키포인트는 0과 1 사이로 정규화됩니다.

다음은 포즈 추정 작업을 위한 레이블 형식의 예입니다.

Dim = 2로 포맷

<class-index> <x> <y> <width> <height> <px1> <py1> <px2> <py2> ... <pxn> <pyn>

Dim = 3으로 포맷

<class-index> <x> <y> <width> <height> <px1> <py1> <p1-visibility> <px2> <py2> <p2-visibility> <pxn> <pyn> <pn-visibility>

이 형식에서는 <class-index> 객체의 클래스 인덱스입니다.<x> <y> <width> <height> 다음의 좌표입니다. 경계 상자<px1> <py1> <px2> <py2> ... <pxn> <pyn> 키포인트의 픽셀 좌표입니다. 좌표는 공백으로 구분됩니다.

데이터 세트 YAML 형식

Ultralytics 프레임워크는 YAML 파일 형식을 사용하여 포즈 추정 모델 학습을 위한 데이터 세트 및 모델 구성을 정의합니다. 다음은 포즈 데이터 세트 정의에 사용되는 YAML 형식의 예입니다.

ultralytics/cfg/datasets/coco8-pose.yaml

# Ultralytics 🚀 AGPL-3.0 License - https://ultralytics.com/license

# COCO8-pose dataset (first 8 images from COCO train2017) by Ultralytics
# Documentation: https://docs.ultralytics.com/datasets/pose/coco8-pose/
# Example usage: yolo train data=coco8-pose.yaml
# parent
# ├── ultralytics
# └── datasets
#     └── coco8-pose ← downloads here (1 MB)

# Train/val/test sets as 1) dir: path/to/imgs, 2) file: path/to/imgs.txt, or 3) list: [path/to/imgs1, path/to/imgs2, ..]
path: coco8-pose # dataset root dir
train: images/train # train images (relative to 'path') 4 images
val: images/val # val images (relative to 'path') 4 images
test: # test images (optional)

# Keypoints
kpt_shape: [17, 3] # number of keypoints, number of dims (2 for x,y or 3 for x,y,visible)
flip_idx: [0, 2, 1, 4, 3, 6, 5, 8, 7, 10, 9, 12, 11, 14, 13, 16, 15]

# Classes
names:
  0: person

# Download script/URL (optional)
download: https://github.com/ultralytics/assets/releases/download/v0.0.0/coco8-pose.zip

에 지정되어 있습니다. trainval 필드는 각각 학습 및 검증 이미지들이 포함된 디렉터리의 경로를 지정합니다.

names 클래스 이름의 사전입니다. 이름 순서는 YOLO 데이터 세트 파일의 객체 클래스 인덱스 순서와 일치해야 합니다.

점들이 대칭인 경우 (선택 사항) flip_idx가 필요합니다. 예를 들어 사람이나 얼굴의 좌우 측면과 같습니다. 예를 들어 얼굴 랜드마크의 5개 키포인트 [왼쪽 눈, 오른쪽 눈, 코, 왼쪽 입, 오른쪽 입]이 있고 원래 인덱스가 [0, 1, 2, 3, 4]인 경우 flip_idx는 [1, 0, 2, 4, 3]입니다(왼쪽-오른쪽 인덱스, 즉 0-1 및 3-4만 교환하고 이 예에서 코와 같이 다른 것은 수정하지 않음).

사용법

예시

from ultralytics import YOLO

# Load a model
model = YOLO("yolo11n-pose.pt")  # load a pretrained model (recommended for training)

# Train the model
results = model.train(data="coco8-pose.yaml", epochs=100, imgsz=640)
# Start training from a pretrained *.pt model
yolo pose train data=coco8-pose.yaml model=yolo11n-pose.pt epochs=100 imgsz=640

지원되는 데이터 세트

이 섹션에서는 Ultralytics YOLO 형식과 호환되며 포즈 추정 모델을 훈련하는 데 사용할 수 있는 데이터 세트를 간략하게 설명합니다.

COCO-Pose

  • 설명: COCO-Pose는 대규모 객체 감지, 분할 및 포즈 추정 데이터 세트입니다. 인기 있는 COCO 데이터 세트의 하위 세트이며 사람 포즈 추정에 중점을 둡니다. COCO-Pose에는 각 사람 인스턴스에 대한 여러 키포인트가 포함되어 있습니다.
  • 레이블 형식: 위에 설명된 Ultralytics YOLO 형식과 동일하며, 사람 자세에 대한 키포인트를 포함합니다.
  • 클래스 수: 1 (사람).
  • 키포인트: 코, 눈, 귀, 어깨, 팔꿈치, 손목, 엉덩이, 무릎 및 발목을 포함한 17개의 키포인트.
  • 사용법: 사람 자세 추정 모델을 훈련하는 데 적합합니다.
  • 추가 참고 사항: 이 데이터 세트는 20만 개 이상의 레이블이 지정된 이미지를 포함하여 풍부하고 다양합니다.
  • COCO-Pose에 대해 자세히 알아보십시오.

COCO8-Pose

  • 설명: Ultralytics COCO8-Pose는 COCO train 2017 세트의 처음 8개 이미지(훈련용 4개, 유효성 검사용 4개)로 구성된 작지만 다재다능한 포즈 감지 데이터 세트입니다.
  • 레이블 형식: 위에 설명된 Ultralytics YOLO 형식과 동일하며, 사람 자세에 대한 키포인트를 포함합니다.
  • 클래스 수: 1 (사람).
  • 키포인트: 코, 눈, 귀, 어깨, 팔꿈치, 손목, 엉덩이, 무릎 및 발목을 포함한 17개의 키포인트.
  • 사용법: 객체 감지 모델을 테스트하고 디버깅하거나 새로운 감지 접근 방식을 실험하는 데 적합합니다.
  • 추가 참고 사항: COCO8-Pose는 건전성 검사 및 CI 검사에 이상적입니다.
  • COCO8-Pose에 대해 자세히 알아보세요.

Tiger-Pose

  • 설명: Ultralytics Tiger Pose 데이터 세트는 YouTube 비디오에서 가져온 263개의 이미지로 구성되어 있으며, 210개의 이미지는 훈련용으로, 53개는 유효성 검사용으로 할당됩니다.
  • 레이블 형식: 위에 설명된 Ultralytics YOLO 형식과 동일하며, 동물 자세에 대한 12개의 키포인트를 포함하고 보이는 차원은 없습니다.
  • 클래스 수: 1개 (호랑이).
  • 키포인트: 12개의 키포인트.
  • 사용법: 동물 자세 또는 인간 기반이 아닌 다른 자세에 적합합니다.
  • Tiger-Pose에 대해 자세히 알아보세요.

손 키포인트

  • 설명: 핸드 키포인트 포즈 데이터 세트는 약 26,000개의 이미지로 구성되어 있으며, 18776개의 이미지는 훈련용으로, 7992개는 유효성 검사용으로 할당됩니다.
  • 레이블 형식: 위에 설명된 Ultralytics YOLO 형식과 동일하지만, 사람 손에 대한 21개의 키포인트와 보이는 차원을 포함합니다.
  • 클래스 수: 1 (손).
  • 키포인트: 21개의 키포인트.
  • 사용 사례: 사람 손 자세 추정 및 제스처 인식에 적합합니다.
  • Hand Keypoints에 대해 자세히 알아보세요.

Dog-Pose

  • 설명: Dog Pose 데이터 세트는 약 6,000개의 이미지를 포함하며, 개 포즈 추정 모델의 훈련 및 유효성 검사를 위한 다양하고 광범위한 리소스를 제공합니다.
  • 레이블 형식: Ultralytics YOLO 형식을 따르며, 개의 해부학적 구조에 특화된 여러 키포인트에 대한 어노테이션을 포함합니다.
  • 클래스 수: 1 (개).
  • 키포인트: 사지, 관절 및 머리 위치와 같이 개 포즈에 맞게 조정된 24개의 키포인트를 포함합니다.
  • 사용 사례: 연구에서 실제 응용 프로그램에 이르기까지 다양한 시나리오에서 개 자세를 추정하는 모델을 훈련하는 데 이상적입니다.
  • Dog-Pose에 대해 자세히 알아보세요.

자체 데이터 세트 추가

자체 데이터 세트가 있고 Ultralytics YOLO 형식으로 포즈 추정 모델을 학습하는 데 사용하려면 위에 명시된 "Ultralytics YOLO 형식"에 따라야 합니다. 어노테이션을 필요한 형식으로 변환하고 YAML 구성 파일에서 경로, 클래스 수 및 클래스 이름을 지정하십시오.

변환 도구

Ultralytics는 널리 사용되는 COCO 데이터 세트 형식에서 YOLO 형식으로 레이블을 변환하는 편리한 변환 도구를 제공합니다.

예시

from ultralytics.data.converter import convert_coco

convert_coco(labels_dir="path/to/coco/annotations/", use_keypoints=True)

이 변환 도구를 사용하여 COCO 데이터 세트 또는 COCO 형식의 모든 데이터 세트를 Ultralytics YOLO 형식으로 변환할 수 있습니다. use_keypoints parameter는 변환된 레이블에 키포인트(포즈 추정용)를 포함할지 여부를 지정합니다.

FAQ

포즈 추정을 위한 Ultralytics YOLO 형식은 무엇입니까?

포즈 추정 데이터 세트에 대한 Ultralytics YOLO 형식은 각 이미지를 해당 텍스트 파일로 레이블링하는 것을 포함합니다. 텍스트 파일의 각 행은 객체 인스턴스에 대한 정보를 저장합니다.

  • 객체 클래스 인덱스
  • 객체 중심 좌표 (정규화된 x 및 y)
  • 객체 너비 및 높이 (정규화됨)
  • 객체 키포인트 좌표 (정규화된 pxn 및 pyn)

2D 포즈의 경우 키포인트에는 픽셀 좌표가 포함됩니다. 3D의 경우 각 키포인트에는 가시성 플래그도 있습니다. 자세한 내용은 Ultralytics YOLO 형식을 참조하세요.

Ultralytics YOLO에서 COCO-Pose 데이터 세트를 어떻게 사용하나요?

Ultralytics YOLO와 함께 COCO-Pose 데이터 세트를 사용하려면:

  1. 데이터 세트를 다운로드하고 YOLO 형식으로 레이블 파일을 준비합니다.
  2. 학습 및 검증 이미지, 키포인트 모양, 클래스 이름을 지정하는 YAML 구성 파일을 만드십시오.
  3. 학습을 위해 구성 파일을 사용하세요:

    from ultralytics import YOLO
    
    model = YOLO("yolo11n-pose.pt")  # load pretrained model
    results = model.train(data="coco-pose.yaml", epochs=100, imgsz=640)
    

    자세한 내용은 COCO-Posetrain 섹션을 참조하십시오.

Ultralytics YOLO에서 포즈 추정을 위해 내 데이터세트를 어떻게 추가할 수 있습니까?

데이터 세트를 추가하려면:

  1. Ultralytics YOLO 형식으로 annotation을 변환합니다.
  2. 데이터 세트 경로, 클래스 수 및 클래스 이름을 지정하는 YAML 구성 파일을 만드십시오.
  3. 모델 학습을 위해 구성 파일을 사용하세요:

    from ultralytics import YOLO
    
    model = YOLO("yolo11n-pose.pt")
    results = model.train(data="your-dataset.yaml", epochs=100, imgsz=640)
    

    전체 단계는 자체 데이터세트 추가 섹션을 확인하십시오.

Ultralytics YOLO에서 데이터 세트 YAML 파일의 목적은 무엇입니까?

Ultralytics YOLO의 데이터 세트 YAML 파일은 학습을 위한 데이터 세트 및 모델 구성을 정의합니다. 학습, 유효성 검사 및 테스트 이미지, 키포인트 모양, 클래스 이름 및 기타 구성 옵션에 대한 경로를 지정합니다. 이 구조화된 형식은 데이터 세트 관리 및 모델 학습을 간소화하는 데 도움이 됩니다. 다음은 YAML 형식의 예입니다:

# Ultralytics 🚀 AGPL-3.0 License - https://ultralytics.com/license

# COCO8-pose dataset (first 8 images from COCO train2017) by Ultralytics
# Documentation: https://docs.ultralytics.com/datasets/pose/coco8-pose/
# Example usage: yolo train data=coco8-pose.yaml
# parent
# ├── ultralytics
# └── datasets
#     └── coco8-pose ← downloads here (1 MB)

# Train/val/test sets as 1) dir: path/to/imgs, 2) file: path/to/imgs.txt, or 3) list: [path/to/imgs1, path/to/imgs2, ..]
path: coco8-pose # dataset root dir
train: images/train # train images (relative to 'path') 4 images
val: images/val # val images (relative to 'path') 4 images
test: # test images (optional)

# Keypoints
kpt_shape: [17, 3] # number of keypoints, number of dims (2 for x,y or 3 for x,y,visible)
flip_idx: [0, 2, 1, 4, 3, 6, 5, 8, 7, 10, 9, 12, 11, 14, 13, 16, 15]

# Classes
names:
  0: person

# Download script/URL (optional)
download: https://github.com/ultralytics/assets/releases/download/v0.0.0/coco8-pose.zip

데이터 세트 YAML 형식에서 YAML 구성 파일 생성에 대해 자세히 알아보세요.

포즈 추정을 위해 COCO 데이터세트 레이블을 Ultralytics YOLO 형식으로 어떻게 변환할 수 있습니까?

Ultralytics는 키포인트 정보를 포함하여 COCO 데이터 세트 레이블을 YOLO 형식으로 변환하는 변환 도구를 제공합니다.

from ultralytics.data.converter import convert_coco

convert_coco(labels_dir="path/to/coco/annotations/", use_keypoints=True)

이 도구는 COCO 데이터 세트를 YOLO 프로젝트에 원활하게 통합하는 데 도움이 됩니다. 자세한 내용은 변환 도구 섹션과 데이터 전처리 가이드를 참조하십시오.



📅 1년 전에 생성됨 ✏️ 10일 전에 업데이트됨

댓글