COCO-Poseデータセット

COCO-Poseデータセットは、ポーズ推定タスク用に設計されたCOCO (Common Objects in Context) データセットの特殊なバージョンです。COCO Keypoints 2017の画像とラベルを活用することで、ポーズ推定タスクに向けたYOLOなどのモデルのトレーニングを可能にします。

人体キーポイントを用いたCOCOポーズ推定

COCO-Pose学習済みモデル

モデルサイズ
(ピクセル)
mAPpose
50-95(e2e)
mAPpose
50(e2e)
速度
CPU ONNX
(ms)
速度
T4 TensorRT10
(ms)
パラメータ
(M)
FLOPs
(B)
YOLO26n-pose64057.283.340.3 ± 0.51.8 ± 0.02.97.5
YOLO26s-pose64063.086.685.3 ± 0.92.7 ± 0.010.423.9
YOLO26m-pose64068.889.6218.0 ± 1.55.0 ± 0.121.573.1
YOLO26l-pose64070.490.5275.4 ± 2.46.5 ± 0.125.991.3
YOLO26x-pose64071.691.6565.4 ± 3.012.2 ± 0.257.6201.7

主な特徴

  • COCO-Poseは、ポーズ推定タスク用にキーポイントがラベル付けされた20万枚の画像を含むCOCO Keypoints 2017データセットに基づいています。
  • このデータセットは人物の17個のキーポイントに対応しており、詳細なポーズ推定を容易にします。
  • COCOと同様に、ポーズ推定タスクのためのObject Keypoint Similarity (OKS)を含む標準化された評価指標を提供しており、モデル性能の比較に適しています。

データセットの構造

COCO-Poseデータセットは以下の3つのサブセットに分割されています:

  1. Train2017: このサブセットには、ポーズ推定モデルのトレーニング用にアノテーションされたCOCOデータセットの56599枚の画像が含まれています。
  2. Val2017: このサブセットには、モデルトレーニング中の検証に使用される2346枚の画像が含まれています。
  3. Test2017: このサブセットは、トレーニング済みモデルのテストとベンチマークに使用される画像で構成されています。このサブセットの正解ラベル(グラウンドトゥルース)は公開されておらず、結果をCOCO評価サーバーに提出して性能評価を行います。

アプリケーション

COCO-Poseデータセットは、OpenPoseなどのキーポイント検出およびポーズ推定タスクにおける深層学習モデルのトレーニングと評価に特化して使用されます。アノテーション済みの膨大な画像と標準化された評価指標により、ポーズ推定に焦点を当てたコンピュータビジョンの研究者や実務者にとって不可欠なリソースとなっています。

データセットYAML

YAML (Yet Another Markup Language) ファイルは、データセットの構成を定義するために使用されます。これにはデータセットのパス、クラス、およびその他の関連情報が含まれます。COCO-Poseデータセットの場合、coco-pose.yamlファイルが https://github.com/ultralytics/ultralytics/blob/main/ultralytics/cfg/datasets/coco-pose.yaml で管理されています。

ultralytics/cfg/datasets/coco-pose.yaml
# Ultralytics 🚀 AGPL-3.0 License - https://ultralytics.com/license

# COCO 2017 Keypoints dataset https://cocodataset.org by Microsoft
# Documentation: https://docs.ultralytics.com/datasets/pose/coco/
# Example usage: yolo train data=coco-pose.yaml
# parent
# ├── ultralytics
# └── datasets
#     └── coco-pose ← downloads here (20.1 GB)

# 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: coco-pose # dataset root dir
train: train2017.txt # train images (relative to 'path') 56599 images
val: val2017.txt # val images (relative to 'path') 2346 images
test: test-dev2017.txt # 20288 of 40670 images, submit to https://codalab.lisn.upsaclay.fr/competitions/7403

# 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

# Keypoint names per class
kpt_names:
  0:
    - nose
    - left_eye
    - right_eye
    - left_ear
    - right_ear
    - left_shoulder
    - right_shoulder
    - left_elbow
    - right_elbow
    - left_wrist
    - right_wrist
    - left_hip
    - right_hip
    - left_knee
    - right_knee
    - left_ankle
    - right_ankle

# Download script/URL (optional)
download: |
  from pathlib import Path

  from ultralytics.utils import ASSETS_URL
  from ultralytics.utils.downloads import download

  # Download labels
  dir = Path(yaml["path"])  # dataset root dir

  urls = [f"{ASSETS_URL}/coco2017labels-pose.zip"]
  download(urls, dir=dir.parent)
  # Download data
  urls = [
      "http://images.cocodataset.org/zips/train2017.zip",  # 19G, 118k images
      "http://images.cocodataset.org/zips/val2017.zip",  # 1G, 5k images
      "http://images.cocodataset.org/zips/test2017.zip",  # 7G, 41k images (optional)
  ]
  download(urls, dir=dir / "images", threads=3)

使用方法

YOLO26n-poseモデルをCOCO-Poseデータセットで100 エポック、画像サイズ640でトレーニングするには、以下のコードスニペットを使用できます。利用可能な引数の詳細なリストについては、モデルのトレーニングページを参照してください。

トレーニングの例
from ultralytics import YOLO

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

# Train the model
results = model.train(data="coco-pose.yaml", epochs=100, imgsz=640)

サンプル画像とアノテーション

COCO-Poseデータセットには、キーポイントがアノテーションされた人物画像が多様に含まれています。以下はデータセット内の画像例と、それに対応するアノテーションです:

COCOポーズ推定データセットのモザイクトレーニングバッチ

  • モザイク画像: この画像は、モザイク処理されたデータセット画像で構成される学習バッチを示しています。モザイク処理は、学習中に複数の画像を1枚の画像に結合し、各学習バッチ内の物体やシーンの多様性を高めるために使用される手法です。これは、異なる物体のサイズ、アスペクト比、コンテキストに対してモデルが汎化する能力を向上させるのに役立ちます。

この例は、COCO-Poseデータセットに含まれる画像の多様性と複雑さ、およびトレーニングプロセス中にモザイク処理を使用する利点を示しています。

引用と謝辞

研究や開発作業でCOCO-Poseデータセットを使用する場合は、以下の論文を引用してください:

引用
@misc{lin2015microsoft,
      title={Microsoft COCO: Common Objects in Context},
      author={Tsung-Yi Lin and Michael Maire and Serge Belongie and Lubomir Bourdev and Ross Girshick and James Hays and Pietro Perona and Deva Ramanan and C. Lawrence Zitnick and Piotr Dollár},
      year={2015},
      eprint={1405.0312},
      archivePrefix={arXiv},
      primaryClass={cs.CV}
}

コンピュータビジョンコミュニティのためにこの貴重なリソースを作成・維持しているCOCOコンソーシアムに感謝いたします。COCO-Poseデータセットとその作成者に関する詳細は、COCOデータセットのウェブサイトをご覧ください。

FAQ

COCO-Poseデータセットとは何か、またポーズ推定のためにUltralytics YOLOとどのように使用されますか?

COCO-Poseデータセットは、ポーズ推定タスク用に設計されたCOCO (Common Objects in Context) データセットの特殊なバージョンです。COCO Keypoints 2017の画像とアノテーションに基づいており、詳細なポーズ推定のためにUltralytics YOLOのようなモデルをトレーニングすることができます。例えば、事前学習済みモデルを読み込み、YAML設定を使用してトレーニングすることで、COCO-Poseデータセットを用いてYOLO26n-poseモデルをトレーニングできます。トレーニング例については、トレーニングのドキュメントを参照してください。

COCO-PoseデータセットでYOLO26モデルをトレーニングするにはどうすればよいですか?

COCO-PoseデータセットでのYOLO26モデルのトレーニングは、PythonまたはCLIコマンドを使用して実行できます。例えば、YOLO26n-poseモデルを100エポック、画像サイズ640でトレーニングするには、以下の手順に従ってください:

トレーニングの例
from ultralytics import YOLO

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

# Train the model
results = model.train(data="coco-pose.yaml", epochs=100, imgsz=640)

トレーニングプロセスと利用可能な引数の詳細については、トレーニングページを確認してください。

モデルの性能評価のためにCOCO-Poseデータセットによって提供される評価指標にはどのようなものがありますか?

COCO-Poseデータセットは、元のCOCOデータセットと同様に、ポーズ推定タスクのためのいくつかの標準化された評価指標を提供します。主要な指標には、予測されたキーポイントとグラウンドトゥルースのアノテーションとの精度を評価するObject Keypoint Similarity (OKS) があります。これらの指標により、異なるモデル間での徹底的な性能比較が可能になります。例えば、YOLO26n-poseやYOLO26s-poseなどのCOCO-Pose事前学習済みモデルには、ドキュメントにmAPpose50-95やmAPpose50といった特定の性能指標が記載されています。

COCO-Poseデータセットはどのように構成され、分割されていますか?

COCO-Poseデータセットは以下の3つのサブセットに分割されています:

  1. Train2017: ポーズ推定モデルをトレーニングするためにアノテーションされた56599枚のCOCO画像が含まれています。
  2. Val2017: モデルトレーニング中の検証目的で使用される2346枚の画像。
  3. Test2017: トレーニング済みモデルのテストとベンチマークに使用される画像。このサブセットのグラウンドトゥルースアノテーションは公開されておらず、結果をCOCO評価サーバーに提出して性能評価を行います。

These subsets help organize the training, validation, and testing phases effectively. For configuration details, explore the coco-pose.yaml file available on GitHub.

COCO-Poseデータセットの主な特徴と用途は何ですか?

COCO-Poseデータセットは、COCO Keypoints 2017のアノテーションを拡張し、人物の17個のキーポイントを含めることで詳細なポーズ推定を可能にします。標準化された評価指標(OKSなど)により、異なるモデル間での比較が容易になります。COCO-Poseデータセットの用途は、スポーツ分析、ヘルスケア、ヒューマンコンピュータインタラクションなど、人物の詳細なポーズ推定が必要な様々な領域に及びます。実用面では、ドキュメントで提供されている事前学習済みモデル(YOLO26n-poseなど)を活用することで、プロセスを大幅に効率化できます(主な特徴)。

研究や開発作業でCOCO-Poseデータセットを使用する場合は、以下のBibTeXエントリを引用してください。

コメント