YOLO26-pose による人体の姿勢推定(Ultralytics,PyTorch を使用)(Ubuntu 上)
【概要】
YOLO26-pose は,Ultralytics が公開している YOLO26 の姿勢推定(pose estimation)モデルである.画像中の人物ごとに,鼻,目,耳,肩,肘,手首,腰,膝,足首など,COCO 形式の17個のキーポイントを検出する.NMS(Non-Maximum Suppression)フリーのエンドツーエンド構成により,後処理を必要とせず高速に推論できる.【目次】
【関連する外部ページ】
Ultralytics の公式ドキュメント: https://docs.ultralytics.com/tasks/pose
Ultralytics の GitHub のページ: https://github.com/ultralytics/ultralytics
【サイト内の関連情報】
OpenPose(人体,手,足,表情の姿勢推定)のビルドとインストール: 別ページ »で説明
第1章 前準備
Ubuntu のシステム更新
Ubuntu で OS のシステム更新を行うときは, 端末で,次のコマンドを実行する.これは,パッケージ情報を最新の状態に保ち,インストール済みのパッケージをセキュリティアップデートやバグ修正を含めて更新するためである.
# パッケージリストの情報を更新
sudo apt update
# インストール済みのパッケージを包括的に更新(依存関係も考慮)
sudo apt full-upgrade
# カーネル更新等で再起動が必要な場合のみ実行する
# sudo shutdown -r now
NVIDIA ドライバ,NVIDIA CUDA ツールキット 12.8,NVIDIA cuDNN のインストール(Ubuntu 上)
Ubuntu での NVIDIA ドライバ,NVIDIA CUDA ツールキット 12.8,NVIDIA cuDNN のインストール: 別ページ »で説明
Python3 開発用ファイル,pip, setuptools, venv のインストール(Ubuntu 上)
Python のインストールは行わない(Ubuntu のシステム Python(Python 3.12)を用いる.)
Ubuntu のシステム Python を用いるとき, python, pip は,次のコマンドで起動できる.
- python3 (Ubuntu のシステム Python)
- sudo pip3 (pip 3)
Python3 開発用ファイル,pip, setuptools, venv のインストール
端末で,次のコマンドを実行する.
# パッケージリストの情報を更新
sudo apt update
sudo apt -y install python-is-python3 python3-dev python-dev-is-python3 python3-pip python3-setuptools python3-venv build-essential
PyTorch のインストール(Ubuntu 上)
Ubuntu での PyTorch のインストール: 別ページ »で説明
第2章 Ultralytics のインストール(Ubuntu 上)
Ultralytics パッケージには,YOLO26 の学習・推論・エクスポートに必要な機能がまとめられている.インストールするには,端末で,次のコマンドを実行する.
sudo pip3 install -U --no-user ultralytics
第3章 YOLO26-pose による姿勢推定(Ubuntu 上)
- 画像に対する姿勢推定の実行
公式ページ (https://docs.ultralytics.com/tasks/pose) に記載の,姿勢推定のプログラムを実行する.
このプログラムは yolo26n-pose(YOLO26-pose の中で最も軽量なモデル)の学習済みモデルを使用している.モデルファイルは初回実行時に自動的にダウンロードされる.- 検出するキーポイント: 鼻,左右の目,左右の耳,左右の肩,左右の肘,左右の手首,左右の腰,左右の膝,左右の足首(合計17点,COCO 形式)
from ultralytics import YOLO model = YOLO("yolo26n-pose.pt") results = model("https://ultralytics.com/images/bus.jpg") for result in results: # 各キーポイントの x, y 座標 print(result.keypoints.xy) result.show() result.save(filename="result.jpg") - パソコンに接続されたビデオカメラで動作してみる
OpenCV による動画表示を行う.
import cv2 from ultralytics import YOLO model = YOLO("yolo26n-pose.pt") v = cv2.VideoCapture(0) while(v.isOpened()): r, f = v.read() if ( r == False ): break results = model(f, verbose=False) rimg = results[0].plot() cv2.imshow("", rimg) # Press Q to exit if cv2.waitKey(1) & 0xFF == ord('q'): break v.release() cv2.destroyAllWindows()