北海道地区

教育システム情報学会 2020年度学生研究発表会

OpenPose を用いた姿勢差分の算出によるパーソナルバーチャルトレーニングシステム

Personal Virtual Training System by calculating postural differencesusing OpenPose
鎌田 夏輝*1, 柴原 匠棋*2, 林 康弘*3
Natsuki KAMADA, Shogo SHIBAHARA, Yasuhiro HAYASHI
武蔵野大学データサイエンス学部
Faculty of Data Science, Musashino University
Email: *1 s1922058@stu.musashino-u.ac.jp *2 s1922062@stu.musashino-u.ac.jp,*3yhayashi@musashio-u.ac.jp
あらまし：本研究では、ビデオカメラの前に立つユーザの全身が写り込む動画像から OpenPose を用いて抽出されるユーザの関節部位を特徴点とする座標情報に基づき、理想的な姿勢を示す姿勢モデルとユーザの特定の関節との角度の差分計算・可視化により、モニタを通してユーザに正しい姿勢を促すバーチャルトレーニングシステムを構築する。本システムは自宅でのパーソナルトレーニングを想定しており、近年のプライバシーを尊重する社会的な風潮や生活様式の在宅化などに対応できるものと考える。
キーワード：OpenPose, 姿勢推定, VR, トレーニング, 介護, プライバシー, 在宅

1.

はじめにAI・VR 技術の進展によりリアルタイムにユーザにフィードバックを与えて人間の知的活動を支援したり機能を拡張したりする、複合現実技術の活用が健康・医療・介護からエンターテインメントまであらゆる分野で進んでいる。さらに、第五世代高速通信を用いてユーザに与えられるフィードバックをリモート化させることにより、遠隔地にいる人同士がより密接に知的な共同作業を行うことも可能になりつつある。
昨今の新型コロナウイルスにより、在宅で仕事をする人々の運動量低下が指摘されている中(図 1)、書籍やネット上のサイトや動画を参考にして、ストレッチなどのセルフトレーニングを行う人々が増加しつつある(図 2)。その際、自分自身の姿勢を確認することは難しく、不適切な運動により怪我に繋がりやすくなることが予測される。また、トレーナーが動画共有でユーザに口頭で指摘するだけでなく、トレーニング内容を可視化できればより的確な指摘、改善が可能となる。

図 2 自宅でのトレーニング頻度関連した研究の中には、VR を用いたスポーツパフォーマンスを支える脳機能の向上に特化したものが挙げられる。実装方法としては、利用者の動きに対してリアルタイムでスポーツの部分的なプレーを体験する VR システムになっている。これにより、利用者の認知運動機能、特に次の行動を予測する機能の向上させることを目的としている。
そこで本研究では、ビデオカメラの前に立つユーザの全身が写り込む動画像から OpenPose を用いて抽出されるユーザの関節部位を特徴点とする座標情報に基づき、理想的な姿勢を示す姿勢モデルとユーザの特定の関節との角度の差分計算・可視化により、モニタを通してユーザに正しい姿勢を促すバーチャルトレーニングシステムを構築する。

2.

本システムの特徴と関節角度の計算方式

図 3 システム構成図

図 1 運動定価を示唆するグラフ

15

北海道地区

教育システム情報学会 2020年度学生研究発表会

本研究は現実空間の動きをサイバー空間で分析し、結果を現実空間に返すことを目標にしており図 1 に示すシステム構成図を考えている。本システムの構成図は図 3 に示される。
本研究においてユーザーとモデル(手本)の姿勢差分は関節角度の類似度から判定する。姿勢差分を関節の座標から判定する場合、体格の個人差により関節の座標が一致しなくなると考察し、体格の個人差が影響せず誰でも同じように姿勢差分を計算できる基準として本研究では関節角度を用いた類似度を採用する。
また、本研究ではスクワットに限定し考察した。
OpenPose は 18 箇所の座標を取得できるが、今回はスクワットの姿勢において重要と考える右膝、右腰、左膝、左腰の 4 箇所の関節角度を抽出するため肩、腰、膝、足首の座標を取得し関節角度を計算した。
以下は、右膝裏の角度抽出の計算である。同様の計算で右足首、左膝裏、左足首の関節角度を抽出した。
算出方法として逆三角定理を使用した。
a = (r_knee[x]-r_hip[x])2 + (r_knee[y]-r_hip[y])2b = (r_knee[x]-r_ankle[x])2+(r_knee[y]-r_ankle[y])2c = (r_ankle[x]-r_hip[x])2 + (r_ankle[y]-r_hip[y])2
angle = cos-1((a + b - c) / √(4ab))×180 / 3.14＊
r_hip;右腰の座標, r_knee;右膝の座標,r_ankle;右足首の座標

3.

実装

本システムは座標取得に OpenPose, データの格納
及 び 分 析 と し て PostgreSQL, シ ス テ ム の 実 装 にPython を用いて行う。OpenPose は米国カーネギーメ
ロン大学の Zhe Cao 氏らが提案した人間の骨格を深層学習モデルで推定する方式である。オープンソースとして提供されており、体や手などの人物の骨格を動画や画像だけでなく、カメラを用いたリアルタイム検出可能である。
本システムは Python 言語にて実装されている。カメラを用いたリアルタイムまたは動画を 1 フレーム毎に OpenPose により分析をかけ、ユーザの骨格の特徴点座標を取得する。取得した座標は PostgreSQLを用いてデータベースに格納される。データベースのスキーマは図 4 に示される。なお、PostgreSQL に接続するために Python ライブラリ psycopg2 を用いる。
OpenPose が推定するユーザの現在の姿勢と理想的な姿勢との差分計算は提案方式により関節角度は算出される。今後、本システムは OpenPose が推定した現在姿勢と理想的な姿勢を図 5 と図 6 のように左右に並べて表示する。図 6 において OpenPose が姿勢推定された関節の座標および角度は線画として同画像上に描画されている。

図 5 モデル動画

4.

図 6 出力結果

今後の展望

今後、同じ動きをした二つ(ユーザーとモデル)の動画において上記と同様の手順を踏み、関節角度の数値が一定の範囲内に属した時にシステムからユーザへ判定結果を返す。現在、筋肉トレーニングを想定したシステムとなっているが、特定のスポーツの分野の動きに対応するシステムに改善する。
（例：野球のバッティングフォーム、水泳のフォーム等、アスリート）
また、二点間でのシステムの共有及び VR 空間におけるフィードバックの実装を行うために以下のことに取り組む。
・ ディスプレイに UI を表示
・ 関節角度の数値が一定の範囲内に属した時のフィードバックの実装
・ Unity を用いた VR の実装
・ VR 環境内での二点間の接続
・ リアルタイムでの実装

5.

まとめ

本稿では、OpenPose を用いたバーチャルトレーニングシステムの構築において姿勢が正しいかどうかを判断するための姿勢差分に用いる関節角度の抽出方法と本研究の実装について述べた。
参考文献
(1)
(2)
(3)
(4)
(5)

tf-openpose:https://github.com/ildoonet/tf-pose-estimation
PostgreSQL :http://www.postgresql.org/
Psycopg2 : https://pypi.org/project/psycopg2
Python : https://www.python.org/
Python で三角関数を計算(sin, cos, tan, arcsin, arccos,arctan): https://note.nkmk.me/python-math-sin-cos-tan/(6) 株式会社オークローンマーケティング「新型コロナウ
イルス感染症流行前後での運動・筋トレ実査レポート
https://prtimes.jp/main/html/rd/p/000000373.000001915.html(7) 株式会社日本電信電話 バーチャルリアリティでスポー ツ 脳 を 理 解 し 鍛 え る
https://www.ipsj.or.jp/dp/contents/publication/44/S1104S03.html

図 4 データベース構造

16