NT金沢 2023
https://www.youtube.com/watch?v=cbC4p5IDUsY
- 運動不足解消法
実際にジャンプを検知してDinoゲームを遊ぶことで運動不足解消を狙います。 人が大勢いるイベント会場でBluetoothは電波の影響を受けたので、今回はデバイス不要で、PCのカメラでジャンプしたことを検知します。
- MediaPipe Poseを使用
PCのカメラの映像から身体の姿勢を推論し、全身の33個のランドマーク位置または上半身の25個のランドマーク位置を予測できます。 ジャンプの検知には身体の胴体(ランドマーク位置の11, 12, 23, 24)を使用しています。
- 構成
大きく2つのパートから構成されます。 ①ローカル環境にHTTPSサーバを起動します。 ②ブラウザを起動し、起動したHTTPSサーバへアクセスします。GitHubページへアクセスしても問題ありません。 カメラアクセスの許可を求められるので許可します。MediaPipe Poseのライブラリを読み込み、ジャンプを検知するJavascriptが実行されます。
③キー入力を行うためのPythonプログラムを起動します。 ④ジャンプを検知すると、キー入力を行うためのPythonプログラムへ通知(HTTP POSTリクエスト)を送信します。 ⑤通知を受信するとキー入力を行います。(スペースキーを入力します。) ジャンプを検知するブラウザ画面はバックグラウンドに移し、キー入力を行うブラウザ画面(Dinoゲーム)を選択します。(フォアグラウンドに移します。)
- 手順
プログラムをGitHubからダウンロードして、①HTTPSサーバと③キー入力用サーバを起動します。 pythonプログラムからキー入力を可能にするため、事前にpyautoguiモジュールをインストールします。
$ git clone https://github.com/kitazaki/mediapipe_pose_dino_game
$ cd mediapipe_pose_dino_game
$ python scripts/run_https.py
(別のターミナルを開く)
$ pip install pyautogui
$ python scripts/logger.py
macOSの場合、ターミナルからキー入力を検知すると警告が表示されます。 キー入力を許可するため、システム環境設定→セキュリティとプライバシー設定→アクセシビリティ→ターミナル.appを許可します。
- 実際にDinoゲームを遊んでみよう!(結構、疲れます、、)
3D ポリゴン風 http://priler.github.io/dino3d
リアルT-REX https://rossning92.github.io/t-rex