姿勢推定

姿勢推定とは、画像内の特定点の位置を特定するタスクであり、通常はキーポイントと呼ばれます。キーポイントは、関節、ランドマーク、その他の特徴的な特徴など、オブジェクトのさまざまな部分を表すことができます。キーポイントの位置は通常、2Dのセットとして表されます。 [x, y] または3D [x, y, visible] 座標。
ポーズ推定モデルの出力は、画像内のオブジェクトのキーポイントを表す一連の点であり、通常は各点の信頼度スコアとともに提供されます。ポーズ推定は、シーン内のオブジェクトの特定の部分と、それらの相互の位置関係を特定する必要がある場合に適しています。
見る: Ultralytics YOLO26 姿勢推定チュートリアル | リアルタイム物体追跡と人物姿勢検出
ヒント
YOLO26 ポーズ モデルは、 -pose 接尾辞、すなわち、 yolo26n-pose.pt。これらのモデルは、以下でトレーニングされています: COCOキーポイント データセットであり、さまざまな姿勢推定タスクに適しています。
デフォルトのYOLO26姿勢モデルには17個のキーポイントがあり、それぞれが人体の異なる部位を表しています。以下に、各インデックスと対応する身体関節のマッピングを示します。
- 鼻
- 左目
- 右目
- 左耳
- 右耳
- 左肩
- 右肩
- 左肘
- 右肘
- 左手首
- 右手首
- 左腰
- 右腰
- 左膝
- 右膝
- 左足首
- 右足首
モデル
Ultralytics YOLO26の事前学習済み姿勢モデルをここに示します。detect、segment、poseモデルはCOCOデータセットで事前学習されており、classifyモデルはImageNetデータセットで事前学習されています。
モデルは、最初の使用時に最新のUltralytics リリースから自動的にダウンロードされます。
| モデル | サイズ (ピクセル) | mAPpose 50-95(e2e) | mAPpose 50(e2e) | 速度 CPU ONNX (ms) | 速度 T4 TensorRT10 (ms) | params (M) | FLOPs (B) |
|---|---|---|---|---|---|---|---|
| YOLO26n-pose | 640 | 57.2 | 83.3 | 40.3 ± 0.5 | 1.8 ± 0.0 | 2.9 | 7.5 |
| YOLO26s-pose | 640 | 63.0 | 86.6 | 85.3 ± 0.9 | 2.7 ± 0.0 | 10.4 | 23.9 |
| YOLO26m-pose | 640 | 68.8 | 89.6 | 218.0 ± 1.5 | 5.0 ± 0.1 | 21.5 | 73.1 |
| YOLO26l-pose | 640 | 70.4 | 90.5 | 275.4 ± 2.4 | 6.5 ± 0.1 | 25.9 | 91.3 |
| YOLO26x-pose | 640 | 71.6 | 91.6 | 565.4 ± 3.0 | 12.2 ± 0.2 | 57.6 | 201.7 |
- mAPval 値は、シングルモデルのシングルスケールにおける COCOキーポイント val2017 データセット。
再現方法yolo val pose data=coco-pose.yaml device=0 - 速度 COCO val画像を用いて平均化された Amazon EC2 P4d インスタンス。
再現方法yolo val pose data=coco-pose.yaml batch=1 device=0|cpu
トレーニング
COCO8-poseデータセットでYOLO26-poseモデルをトレーニングします。COCO8-poseデータセットは、姿勢推定モデルのテストとデバッグに最適な小規模なサンプルデータセットです。
例
from ultralytics import YOLO
# Load a model
model = YOLO("yolo26n-pose.yaml") # build a new model from YAML
model = YOLO("yolo26n-pose.pt") # load a pretrained model (recommended for training)
model = YOLO("yolo26n-pose.yaml").load("yolo26n-pose.pt") # build from YAML and transfer weights
# Train the model
results = model.train(data="coco8-pose.yaml", epochs=100, imgsz=640)
# Build a new model from YAML and start training from scratch
yolo pose train data=coco8-pose.yaml model=yolo26n-pose.yaml epochs=100 imgsz=640
# Start training from a pretrained *.pt model
yolo pose train data=coco8-pose.yaml model=yolo26n-pose.pt epochs=100 imgsz=640
# Build a new model from YAML, transfer pretrained weights to it and start training
yolo pose train data=coco8-pose.yaml model=yolo26n-pose.yaml pretrained=yolo26n-pose.pt epochs=100 imgsz=640
データセット形式
YOLO姿勢データセット形式の詳細は、データセットガイドで確認できます。既存のデータセットを他の形式(COCOなど)からYOLO形式に変換するには、UltralyticsのJSON2YOLOツールを使用してください。
カスタム姿勢推定タスクでは、動物の姿勢推定用のTiger-Pose、ハンドトラッキング用のHand Keypoints、または犬の姿勢分析用のDog-Poseなどの特殊なデータセットを調べることもできます。
Val
トレーニング済みYOLO26n-poseモデルを検証する 精度 COCO8-poseデータセットで。引数は必要ありません。 model 学習内容を保持 data および引数をモデル属性として。
例
from ultralytics import YOLO
# Load a model
model = YOLO("yolo26n-pose.pt") # load an official model
model = YOLO("path/to/best.pt") # load a custom model
# Validate the model
metrics = model.val() # no arguments needed, dataset and settings remembered
metrics.box.map # map50-95
metrics.box.map50 # map50
metrics.box.map75 # map75
metrics.box.maps # a list containing mAP50-95 for each category
metrics.pose.map # map50-95(P)
metrics.pose.map50 # map50(P)
metrics.pose.map75 # map75(P)
metrics.pose.maps # a list containing mAP50-95(P) for each category
yolo pose val model=yolo26n-pose.pt # val official model
yolo pose val model=path/to/best.pt # val custom model
予測
トレーニング済みYOLO26n-poseモデルを使用して画像で予測を実行します。predictモードでは、画像、ビデオ、またはリアルタイムストリームで推論を実行できます。
例
from ultralytics import YOLO
# Load a model
model = YOLO("yolo26n-pose.pt") # load an official model
model = YOLO("path/to/best.pt") # load a custom model
# Predict with the model
results = model("https://ultralytics.com/images/bus.jpg") # predict on an image
# Access the results
for result in results:
xy = result.keypoints.xy # x and y coordinates
xyn = result.keypoints.xyn # normalized
kpts = result.keypoints.data # x, y, visibility (if available)
yolo pose predict model=yolo26n-pose.pt source='https://ultralytics.com/images/bus.jpg' # predict with official model
yolo pose predict model=path/to/best.pt source='https://ultralytics.com/images/bus.jpg' # predict with custom model
詳細な predict モードの詳細については、 予測 ページ。
エクスポート
YOLO26n姿勢モデルをONNX、CoreMLなどの異なる形式にエクスポートします。これにより、リアルタイム推論のために、様々なプラットフォームやデバイスにモデルをデプロイできます。
例
from ultralytics import YOLO
# Load a model
model = YOLO("yolo26n-pose.pt") # load an official model
model = YOLO("path/to/best.pt") # load a custom-trained model
# Export the model
model.export(format="onnx")
yolo export model=yolo26n-pose.pt format=onnx # export official model
yolo export model=path/to/best.pt format=onnx # export custom-trained model
利用可能なYOLO26-poseエクスポート形式は以下の表に示されています。これを使用して任意の形式にエクスポートできます。 format 引数、すなわち、 format='onnx' または format='engine'。エクスポートされたモデルで直接予測または検証できます。つまり、 yolo predict model=yolo26n-pose.onnxエクスポート完了後、モデルの使用例が表示されます。
| 形式 | format 引数 | モデル | メタデータ | 引数 |
|---|---|---|---|---|
| PyTorch | - | yolo26n-pose.pt | ✅ | - |
| TorchScript | torchscript | yolo26n-pose.torchscript | ✅ | imgsz, half, dynamic, optimize, nms, batch, device |
| ONNX | onnx | yolo26n-pose.onnx | ✅ | imgsz, half, dynamic, simplify, opset, nms, batch, device |
| OpenVINO | openvino | yolo26n-pose_openvino_model/ | ✅ | imgsz, half, dynamic, int8, nms, batch, data, fraction, device |
| TensorRT | engine | yolo26n-pose.engine | ✅ | imgsz, half, dynamic, simplify, workspace, int8, nms, batch, data, fraction, device |
| CoreML | coreml | yolo26n-pose.mlpackage | ✅ | imgsz, dynamic, half, int8, nms, batch, device |
| TF SavedModel | saved_model | yolo26n-pose_saved_model/ | ✅ | imgsz, keras, int8, nms, batch, device |
| TF GraphDef | pb | yolo26n-pose.pb | ❌ | imgsz, batch, device |
| TF Lite | tflite | yolo26n-pose.tflite | ✅ | imgsz, half, int8, nms, batch, data, fraction, device |
| TF Edge TPU | edgetpu | yolo26n-pose_edgetpu.tflite | ✅ | imgsz, device |
| TF.js | tfjs | yolo26n-pose_web_model/ | ✅ | imgsz, half, int8, nms, batch, device |
| PaddlePaddle | paddle | yolo26n-pose_paddle_model/ | ✅ | imgsz, batch, device |
| MNN | mnn | yolo26n-pose.mnn | ✅ | imgsz, batch, int8, half, device |
| NCNN | ncnn | yolo26n-pose_ncnn_model/ | ✅ | imgsz, half, batch, device |
| IMX500 | imx | yolo26n-pose_imx_model/ | ✅ | imgsz, int8, data, fraction, device |
| RKNN | rknn | yolo26n-pose_rknn_model/ | ✅ | imgsz, batch, name, device |
| ExecuTorch | executorch | yolo26n-pose_executorch_model/ | ✅ | imgsz, device |
| Axelera | axelera | yolo26n-pose_axelera_model/ | ✅ | imgsz, int8, data, fraction, device |
詳細な export 詳細は エクスポート ページ。
よくある質問
Ultralytics YOLO26による姿勢推定とは何ですか?また、どのように機能しますか?
Ultralytics YOLO26による姿勢推定は、画像内のキーポイントとして知られる特定の点を識別することを含みます。これらのキーポイントは通常、オブジェクトの関節やその他の重要な特徴を表します。出力には、 [x, y] 各点の座標と信頼度スコアが含まれます。YOLO26-poseモデルはこのタスクのために特別に設計されており、 -pose サフィックス(例:) yolo26n-pose.pt。これらのモデルは、次のようなデータセットで事前学習されています。 COCOキーポイント は、さまざまなポーズ推定タスクに使用できます。詳細については、 姿勢推定のページ.
カスタムデータセットでYOLO26-poseモデルをトレーニングするにはどうすればよいですか?
カスタムデータセットでYOLO26-poseモデルをトレーニングするには、yamlファイルで定義された新しいモデルか、事前学習済みモデルのいずれかをロードする必要があります。その後、指定したデータセットとパラメータを使用してトレーニングプロセスを開始できます。
from ultralytics import YOLO
# Load a model
model = YOLO("yolo26n-pose.yaml") # build a new model from YAML
model = YOLO("yolo26n-pose.pt") # load a pretrained model (recommended for training)
# Train the model
results = model.train(data="your-dataset.yaml", epochs=100, imgsz=640)
トレーニングに関する詳細については、トレーニングセクションを参照してください。また、Ultralytics Platformを利用して、カスタム姿勢推定モデルをノーコードでトレーニングすることもできます。
トレーニング済みYOLO26-poseモデルを検証するにはどうすればよいですか?
YOLO26-poseモデルの検証には、トレーニング中に保持された同じデータセットパラメータを使用してその精度を評価することが含まれます。以下に例を示します。
from ultralytics import YOLO
# Load a model
model = YOLO("yolo26n-pose.pt") # load an official model
model = YOLO("path/to/best.pt") # load a custom model
# Validate the model
metrics = model.val() # no arguments needed, dataset and settings remembered
詳細については、Valセクションをご覧ください。
YOLO26-poseモデルを他の形式にエクスポートできますか?また、その方法は?
はい、YOLO26-poseモデルをONNX、CoreML、TensorRTなど、様々な形式にエクスポートできます。これはpythonまたはコマンドラインインターフェース(CLI)のいずれかを使用して実行できます。
from ultralytics import YOLO
# Load a model
model = YOLO("yolo26n-pose.pt") # load an official model
model = YOLO("path/to/best.pt") # load a custom-trained model
# Export the model
model.export(format="onnx")
詳細については、エクスポートセクションを参照してください。エクスポートされたモデルは、フィットネストラッキング、スポーツ分析、ロボティクスなどのリアルタイムアプリケーション向けにエッジデバイスにデプロイできます。
利用可能なUltralytics YOLO26-poseモデルとその性能指標は何ですか?
Ultralytics YOLO26は、YOLO26n-pose、YOLO26s-pose、YOLO26m-poseなど、様々な事前学習済み姿勢モデルを提供しています。これらのモデルは、サイズ、精度(mAP)、速度が異なります。例えば、YOLO26n-poseモデルはmAPpose50-95で50.0、mAPpose50で81.0を達成します。完全なリストと性能の詳細については、モデルセクションをご覧ください。