コンテンツへスキップ

姿勢推定データセットの概要

サポートされるデータセット形式

Ultralytics YOLO フォーマット

YOLO ポーズモデルの学習に使用されるデータセットのラベル形式は以下の通り:

  1. 画像1枚につきテキストファイル1つ:データセットの各画像には、画像ファイルと同じ名前で拡張子が".txt "の対応するテキストファイルがある。
  2. 1オブジェクトにつき1行:テキストファイルの各行は、画像内の1つのオブジェクトインスタンスに対応します。
  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> <p2-visibility>

このフォーマットでは <class-index> はオブジェクトのクラスのインデックスです、<x> <y> <width> <height> の座標である。 バウンディングボックスそして <px1> <py1> <px2> <py2> ... <pxn> <pyn> はキーポイントのピクセル座標である。座標はスペースで区切られる。

データセット YAML 形式

Ultralytics フレームワークは、検出モデルをトレーニングするためのデータセットとモデル構成を定義するために、YAML ファイル形式を使用します。以下は検出データセットを定義するために使用されるYAMLフォーマットの例です:

# 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: ../datasets/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 dictionary
names:
    0: person

について train そして val フィールドは、それぞれトレーニング画像と検証画像を含むディレクトリへのパスを指定します。

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-ポーズ

  • 説明COCO-Poseは、大規模なオブジェクト検出、セグメンテーション、およびポーズ推定データセットです。人気の高いCOCOデータセットのサブセットで、人間のポーズ推定に特化している。COCO-Poseには、各人物のインスタンスに対して複数のキーポイントが含まれています。
  • ラベルフォーマット:Ultralytics YOLO 上記のフォーマットと同じで、人物のポーズをキーポイントとする。
  • クラスの数:1(人間)。
  • キーポイント鼻、目、耳、肩、肘、手首、腰、膝、足首を含む17のキーポイント。
  • 使用方法人間のポーズ推定モデルのトレーニングに適しています。
  • 追記データセットは豊富で多様であり、200k以上のラベル付き画像を含む。
  • COCO-Poseについてもっと読む

COCO8-ポーズ

  • 説明UltralyticsCOCO8-Poseは、COCO train 2017セットの最初の8枚(トレーニング用4枚、検証用4枚)で構成される、小さいが多用途なポーズ検出データセットである。
  • ラベルフォーマット:Ultralytics YOLO 上記のフォーマットと同じで、人物のポーズをキーポイントとする。
  • クラスの数:1(人間)。
  • キーポイント鼻、目、耳、肩、肘、手首、腰、膝、足首を含む17のキーポイント。
  • 使い方物体検出モデルのテストやデバッグ、または新しい検出アプローチの実験に適しています。
  • その他の注意事項COCO8-Poseはサニティ・チェックやCIチェックに最適。
  • COCO8-ポーズについてもっと読む

タイガー・ポーズ

  • 説明Ultralyticsこの動物ポーズデータセットは、YouTube動画から取得した263枚の画像から構成され、210枚の画像がトレーニング用に、53枚の画像が検証用に割り当てられている。
  • ラベルフォーマット:Ultralytics YOLO 上記のフォーマットと同じ。動物のポーズを表す12個のキーポイントがあり、寸法は見えない。
  • クラス数:1(タイガー)。
  • キーポイント12のキーポイント
  • 使い方動物のポーズや、人間以外のポーズに最適。
  • タイガー・ポーズについてもっと読む

ハンドのキーポイント

  • 説明ハンドキーポイントポーズデータセットは約26K枚の画像から構成され、18776枚の画像がトレーニング用に、7992枚の画像が検証用に割り当てられている。
  • ラベルフォーマット:Ultralytics YOLO 上記のフォーマットと同じだが、人の手と見える寸法に21のキーポイントがある。
  • クラス数1(ハンド)。
  • キーポイント21のキーポイント
  • 使用方法人間の手のポーズ推定に最適。
  • ハンドのキーポイント についてもっと読む

犬のポーズ

  • 説明Dog Poseデータセットには約6,000枚の画像が収録されており、犬のポーズ推定モデルのトレーニングや検証のための多様で広範なリソースを提供する。
  • ラベルフォーマット:Ultralytics YOLO フォーマットに従い、犬の解剖学に特化した複数のキーポイントに注釈が付されている。
  • クラス数1(犬)。
  • キーポイント手足、関節、頭の位置など、犬のポーズに合わせた24のキーポイントを収録。
  • 用途研究から実世界での応用まで、様々な場面で犬のポーズを推定するモデルのトレーニングに最適。
  • 犬のポーズ についてもっと読む

独自のデータセットを追加する

独自のデータセットをお持ちで、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 パラメータは、変換後のラベルに(ポーズ推定のための)キーポイントを含めるかどうかを指定します。

よくあるご質問

Ultralytics YOLO フォーマットは何ですか?

Ultralytics YOLO 形式による姿勢推定データセットでは、各画像に対応するテキストファイルのラベル付けを行います。テキストファイルの各行には、オブジェクトのインスタンスに関する情報が格納されています:

  • オブジェクト・クラス・インデックス
  • オブジェクトの中心座標(正規化されたxとy)
  • オブジェクトの幅と高さ(正規化)
  • オブジェクトのキーポイント座標(正規化されたpxnとpyn)

2Dポーズの場合、キーポイントにはピクセル座標が含まれる。3Dの場合、各キーポイントは可視フラグも持つ。詳しくは、Ultralytics YOLO フォーマットをご覧ください。

COCO-Pose データセットをUltralytics YOLO で使用するには?

COCO-Pose データセットをUltralytics YOLO で使用する:

  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-Poseと 列車のセクションをご覧ください。

Ultralytics YOLO で、ポーズ推定のために独自のデータセットを追加するにはどうすればよいですか?

データセットを追加する

  1. 注釈をUltralytics YOLO フォーマットに変換します。
  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フォーマットの例です:

path: ../datasets/coco8-pose
train: images/train
val: images/val
names:
    0: person

データセット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年前 ✏️更新 4日前

コメント