以下では、添付の図面を参照して本出願の技術的解決策を説明する。
フィットネス愛好家のグループは、徐々に増えており、フィットネスは、専門的なガイダンスを必要とする。専門的なガイダンスがなければ、トレーニング効果を達成することが困難であるだけでなく、深刻なスポーツ傷害が引き起こされる可能性がある。プロのプライベートなインストラクタは、数が少ないだけでなく、価格も高く、すべてのフィットネス愛好家のニーズを満たすことは困難である。
ユーザに科学的なガイダンスを行うために、ユーザのフィットネス動作の画像認識を介してユーザが動作を完了した回数が記録され得て、フィットネス動作の主要な指標に基づいてユーザの完成度が評価され、誤った動作が指摘され、改善方法が提供される。ユーザの身体の関節点情報は、収集されたユーザのフィットネス動作の画像を使用することによって収集され得て、ユーザの姿勢が、ユーザの関節点情報および標準動作の関節点情報に基づいて標準動作の姿勢と比較され、ユーザ動作と標準動作との差異を決定し、それにより、ユーザにフィードバックおよびガイダンスを行う。
フィットネスプロセスでは、ユーザは、いくつかのフィットネスに関係しない動作を行うことがあり、例えば、何かを取ること、電話に出ること、歩くことがある。ユーザがフィットネス動作を行っていない場合、これらの無関係な動作は、非標準フィットネス動作と見なされる。評価およびガイダンスが依然として提供され、これにより、ユーザ体験が悪くなる。
ユーザ動作と標準動作との間の類似度が予め設定された値よりも低い場合、ユーザ動作に関する評価およびガイダンスは提供されなくてもよい。
異なる動作については、異なる身体部位は、動作の完了度に対して異なる影響を与える。異なる重みが異なる身体部位に対して設定されてもよく、動作に関連する身体部位の姿勢のみが評価される。例えば、スクワット動作に対して3つの最も重要な評価指標があり、すなわち、脛の角度、太ももの角度、胴体の角度である。他の身体部位の角度は、スクワット動作の精度にほとんど影響しない。別の身体部位の姿勢が動作の完了度に与える影響の重みが0に設定され、脛、太もも、胴体の重みのみが0よりも大きい。別の身体部位の姿勢と標準動作との間の差異は、スクワット動作の評価に影響せず、別の身体部位の動作と標準動作との間の差異が大きいことによる過度に低い類似度が回避され得て、その結果、正しい評価およびガイダンスがトリガされ得る。
しかしながら、実際には、フィットネスの初心者の動作、特に異なる身体部位の協調を必要とする複雑な動作は、標準的でない場合があり、初心者によって行われる動作は、類似度要件を満たさない場合がある。その結果、その動作は、無関係な動作と判定され、効果的なガイダンスが提供され得ず、ユーザ体験が悪い。
依然としてスクワット動作の例では、ユーザ動作が標準的でない場合、例えば、胴体および脛が過度に前方に傾いている場合、全体的な類似度は依然として比較的低く、予め設定されたしきい値よりも低い可能性がある。したがって、ユーザ動作は、無関係な動作と判定され、評価およびガイダンスがトリガされない。
したがって、フィットネスシナリオでは、類似度は、ユーザ動作のジェスチャを標準動作のジェスチャと静的に比較することによって判定され、ユーザがフィットネス動作を行っているかどうかが正確に認識され得ない。
ユーザ動作は、ある期間内の連続的な動作である場合がある。ユーザ動作が標準動作と比較される場合、ある時点またはある期間におけるユーザ動作が静的な標準動作と比較される。ユーザ動作のジェスチャと標準動作のジェスチャとの間の類似度を決定するために、通常、動的時間調整(dynamic time warping、DTW)技術が用いられて時間ウィンドウを決定することができ、時間ウィンドウ内のユーザ動作が標準動作と比較される。理想的には、ユーザ動作の開始時間および終了時間が決定され、時間ウィンドウの開始点および終了点としてそれぞれ使用され、時間ウィンドウ内のユーザ動作が標準動作と比較される。実際には、異なるユーザの異なる動作の持続時間は異なり、ユーザ動作の開始時間および終了時間を正確に決定することは困難である。すなわち、時間ウィンドウを決定することは困難である。ウィンドウが大きすぎると、計算オーバーヘッドが相対的に大きくなり、計算によって得られる類似度が相対的に低くなる。ウィンドウが小さすぎると、ユーザがフィットネス動作を行っているかどうかを認識することが不可能な場合がある。加えて、この方法では、類似度は、ユーザ動作のジェスチャを標準動作のジェスチャと比較することによって決定され、ユーザがフィットネス動作を行っているかどうかが正確に認識され得ない。
前述の問題を解決するために、本出願は、ユーザがフィットネス動作を行っているかどうかを認識するフィットネスを支援するための方法を提供する。本方法は、電子機器で実行されてもよい。
例えば、図1は、電子機器100の概略構造図である。電子機器100は、プロセッサ110、外部メモリインターフェース120、内部メモリ121、ユニバーサルシリアルバス(universal serial bus、USB)インターフェース130、充電管理モジュール140、電源管理モジュール141、バッテリ142、アンテナ1、アンテナ2、モバイル通信モジュール150、無線通信モジュール160、オーディオモジュール170、スピーカ170A、受信機170B、マイクロフォン170C、ヘッドセットジャック170D、センサモジュール180、ボタン190、モータ191、インジケータ192、カメラ193、ディスプレイ194、加入者識別モジュール(subscriber identification module、SIM)カードインターフェース195などを含んでもよい。センサモジュール180は、圧力センサ180A、ジャイロスコープセンサ180B、気圧センサ180C、磁気センサ180D、加速度センサ180E、距離センサ180F、光学式近接センサ180G、指紋センサ180H、温度センサ180J、タッチセンサ180K、周囲光センサ180L、骨伝導センサ180Mなどを含んでもよい。
本出願の実施形態に示される構造は、電子機器100に対する特定の限定を構成しないことが理解され得る。本出願のいくつかの他の実施形態では、電子機器100は、図に示されている構成要素よりも多いかもしくは少ない構成要素を含んでいてもよく、またはいくつかの構成要素が組み合わされてもよく、またはいくつかの構成要素が分割されてもよく、または異なる構成要素レイアウトがあってもよい。図に示されている構成要素は、ハードウェア、ソフトウェア、またはソフトウェアとハードウェアの組合せによって実施されてもよい。
例えば、本出願の実施形態における電子機器は、プロセッサ110、オーディオモジュール170、スピーカ170A、無線通信モジュール160におけるブルートゥースモジュール、ディスプレイ194、カメラ193、内部メモリ121などを含むことができる。
プロセッサ110は、1つまたは複数の処理ユニットを含むことができる。例えば、プロセッサ110は、アプリケーションプロセッサ(application processor、AP)、モデムプロセッサ、グラフィックス処理ユニット(graphics processing unit、GPU)、画像信号プロセッサ(image signal processor、ISP)、コントローラ、メモリ、ビデオコーデック、デジタル信号プロセッサ(digital signal processor、DSP)、ベースバンドプロセッサ、およびニューラルネットワーク処理ユニット(neural-network processing unit、NPU)のうちの少なくとも1つを含むことができる。異なる処理ユニットは、独立した構成要素であってもよく、または1つもしくは複数のプロセッサに統合されてもよい。
コントローラは、電子機器100の神経中枢および指令センターであってもよい。コントローラは、命令演算コードおよび時系列信号に基づいて演算制御信号を生成して、命令を読み取り、命令を実行するように制御することができる。
メモリは、プロセッサ110内にさらに配置されてもよく、命令およびデータを記憶するように構成される。いくつかの実施形態では、プロセッサ110内のメモリは、キャッシュである。メモリは、プロセッサ110によって使用されたばかりの、または周期的に使用される命令またはデータを記憶することができる。プロセッサ110が命令またはデータを再び使用する必要がある場合、プロセッサ110は、繰り返しアクセスを回避するために、メモリから命令またはデータを直接呼び出すことができる。これは、プロセッサ110の待ち時間を短縮し、システム効率を改善する。
いくつかの実施形態では、プロセッサ110は、1つまたは複数のインターフェースを含んでもよい。インターフェースは、集積回路間(inter-integrated circuit、I2C)インターフェース、集積回路間サウンド(inter-integrated circuit sound、I2S)インターフェース、パルスコード変調(pulse code modulation、PCM)インターフェース、ユニバーサル非同期受信機/送信機(universal asynchronous receiver/transmitter、UART)インターフェース、モバイルインダストリプロセッサインターフェース(mobile industry processor interface、MIPI)、汎用入力/出力(general-purpose input/output、GPIO)インターフェース、加入者識別モジュール(subscriber identity module、SIM)インターフェース、ユニバーサルシリアルバス(universal serial bus、USB)インターフェースなどのうちの少なくとも1つを含むことができる。
I2Cインターフェースは、双方向同期シリアルバスであり、シリアルデータ線(serial data line、SDA)およびシリアルクロック線(serial clock line、SCL)を含む。いくつかの実施形態では、プロセッサ110は、複数のI2Cバスのグループを含む場合がある。プロセッサ110は、異なるI2Cバスインターフェースを介してタッチセンサ180K、充電器、フラッシュライト、カメラ193などに別個に結合されてもよい。例えば、プロセッサ110は、I2Cインターフェースを介してタッチセンサ180Kに結合されてもよく、それにより、プロセッサ110は、I2Cバスインターフェースを介してタッチセンサ180Kと通信して、電子機器100のタッチ機能を実施する。
I2Sインターフェースは、オーディオ通信を実行するように構成されてもよい。いくつかの実施形態では、プロセッサ110は、複数のI2Sバスのグループを含むことができる。プロセッサ110は、プロセッサ110とオーディオモジュール170との間の通信を実施するために、I2Sバスを介してオーディオモジュール170に結合されてもよい。いくつかの実施形態では、オーディオモジュール170は、ブルートゥースヘッドセットを使用することによって電話に応答する機能を実施するために、I2Sインターフェースを介して無線通信モジュール160にオーディオ信号を送信することができる。
PCMインターフェースも、オーディオ通信を行い、アナログ信号をサンプリング、量子化、符号化するように構成されてもよい。いくつかの実施形態では、オーディオモジュール170は、PCMバスインターフェースを介して無線通信モジュール160に結合されてもよい。いくつかの実施形態では、オーディオモジュール170も、ブルートゥースヘッドセットを使用することによって電話に応答する機能を実施するために、PCMインターフェースを介して無線通信モジュール160にオーディオ信号を送信することができる。I2SインターフェースおよびPCMインターフェースの両方は、オーディオ通信を実行するように構成されてもよい。
UARTインターフェースは、ユニバーサルシリアルデータバスであり、非同期通信を実行するように構成される。このバスは、双方向通信バスであってもよく、シリアル通信とパラレル通信との間で送信されるデータを変換する。いくつかの実施形態では、UARTインターフェースは通常、プロセッサ110を無線通信モジュール160に接続するように構成される。例えば、プロセッサ110は、ブルートゥース機能を実施するために、UARTインターフェースを介して無線通信モジュール160内のブルートゥースモジュールと通信する。いくつかの実施形態では、オーディオモジュール170は、ブルートゥースヘッドセットを使用することによって音楽を再生する機能を実施するために、UARTインターフェースを介して無線通信モジュール160にオーディオ信号を送信することができる。
MIPIインターフェースは、プロセッサ110をディスプレイ194またはカメラ193などの周辺構成要素に接続するように構成されてもよい。MIPIインターフェースは、カメラシリアルインターフェース(camera serial interface、CSI)、ディスプレイシリアルインターフェース(display serial interface、DSI)などを含む。いくつかの実施形態では、プロセッサ110は、電子機器100の撮影機能を実施するために、CSIインターフェースを介してカメラ193と通信する。プロセッサ110は、電子機器100の表示機能を実施するために、DSIインターフェースを介してディスプレイ194と通信する。
GPIOインターフェースは、ソフトウェアを使用することによって構成されてもよい。GPIOインターフェースは、制御信号またはデータ信号として構成されてもよい。いくつかの実施形態では、GPIOインターフェースは、カメラ193、ディスプレイ194、無線通信モジュール160、オーディオモジュール170、センサモジュール180などにプロセッサ110を接続するように構成されてもよい。GPIOインターフェースは、代替として、I2Cインターフェース、I2Sインターフェース、UARTインターフェース、MIPIインターフェースなどとして構成されてもよい。
USBインターフェース130は、USB標準仕様に準拠したインターフェースであり、具体的には、Mini USBインターフェース、Micro USBインターフェース、USB Type-Cインターフェースなどであってもよい。USBインターフェース130は、電子機器100を充電するために充電器に接続するように構成されてもよく、または電子機器100と周辺機器との間でデータを送信するように構成されてもよく、またはヘッドセットを使用することによってオーディオを再生するためのヘッドセットに接続するために使用されてもよい。代替として、インターフェースは、AR機器などの別の電子機器に接続するように構成されてもよい。
本出願の本実施形態において示されるモジュール間のインターフェース接続関係は、説明のための例に過ぎず、電子機器100の構造に対する限定を構成するものではないことが理解され得る。本出願のいくつかの他の実施形態では、電子機器100は、代替として、前述の実施形態におけるものとは異なるインターフェース接続モードを使用してもよく、または複数のインターフェース接続モードの組合せを使用してもよい。
充電管理モジュール140は、充電器から充電入力を受け取るように構成される。充電器は、無線充電器であっても有線充電器であってもよい。有線充電が使用されるいくつかの実施形態では、充電管理モジュール140は、USBインターフェース130を介して有線充電器から充電入力を受け取ることができる。無線充電が使用されるいくつかの実施形態では、充電管理モジュール140は、電子機器100の無線充電コイルを通して無線充電入力を受け取ることができる。充電管理モジュール140は、バッテリ142を充電している間に、電源管理モジュール141を使用することによって、電子機器に電力をさらに供給することができる。
電源管理モジュール141は、バッテリ142および充電管理モジュール140をプロセッサ110に接続するように構成される。電源管理モジュール141は、バッテリ142および/または充電管理モジュール140からの入力を受け取り、プロセッサ110、内部メモリ121、外部メモリ、ディスプレイ194、カメラ193、無線通信モジュール160などに電力を供給する。電源管理モジュール141は、バッテリ容量、バッテリサイクル数、およびバッテリ健康状態(漏電またはインピーダンス)などのパラメータを監視するようにさらに構成されてもよい。いくつかの他の実施形態では、電源管理モジュール141は、代替として、プロセッサ110内に配置されてもよい。いくつかの他の実施形態では、電源管理モジュール141および充電管理モジュール140は、代替として、同じ機器内に配置されてもよい。
電子機器100の無線通信機能は、アンテナ1、アンテナ2、モバイル通信モジュール150、無線通信モジュール160、モデムプロセッサ、ベースバンドプロセッサなどを介して実施されてもよい。
アンテナ1およびアンテナ2はそれぞれ、電磁波信号を送受信するように構成される。電子機器100内の各アンテナは、1つまたは複数の通信周波数帯域をカバーするように構成されてもよい。アンテナの利用率を改善するために、異なるアンテナがさらに多重化されてもよい。例えば、アンテナ1は、無線ローカルエリアネットワークにおけるダイバーシティアンテナとして多重化されてもよい。いくつかの他の実施形態では、アンテナがチューニングスイッチと組み合わせて用いられてもよい。
モバイル通信モジュール150は、電子機器100に適用される2G/3G/4G/5Gなどを含む無線通信のためのソリューションを提供することができる。モバイル通信モジュール150は、少なくとも1つのフィルタ、スイッチ、電力増幅器、低雑音増幅器(low noise amplifier、LNA)などを含んでもよい。モバイル通信モジュール150は、アンテナ1を介して電磁波を受信し、受信した電磁波に対してフィルタリングおよび増幅などの処理を行い、処理された電磁波を復調のためにモデムプロセッサに送信することができる。モバイル通信モジュール150は、モデムプロセッサによって変調された信号をさらに増幅し、その信号を、アンテナ1を通して放射するための電磁波に変換することができる。いくつかの実施形態では、モバイル通信モジュール150の少なくともいくつかの機能モジュールは、プロセッサ110内に配置されてもよい。いくつかの実施形態では、モバイル通信モジュール150内の少なくともいくつかの機能モジュールおよびプロセッサ110内の少なくともいくつかのモジュールは、同じ機器内に配置されてもよい。
モデムプロセッサは、変調器および復調器を含んでもよい。変調器は、送信されるべき低周波数ベースバンド信号を中-高周波数信号に変調するように構成される。復調器は、受信した電磁波信号を低周波数ベースバンド信号に復調するように構成される。その後、復調器は、復調によって得られた低周波ベースバンド信号を処理のためにベースバンドプロセッサに送信する。低周波ベースバンド信号は、ベースバンドプロセッサによって処理され、次いでアプリケーションプロセッサに送られる。アプリケーションプロセッサは、オーディオ機器(スピーカ170A、受信機170Bなどに限定されない)を通して音声信号を出力するか、またはディスプレイ194を使用することによって画像もしくはビデオを表示する。いくつかの実施形態では、モデムプロセッサは、独立した構成要素であってもよい。いくつかの他の実施形態では、モデムプロセッサは、プロセッサ110から独立していてもよく、モバイル通信モジュール150または別の機能モジュールと同じ機器内に配置される。
無線通信モジュール160は、無線ローカルエリアネットワーク(wireless local area network、WLAN)(例えば、無線フィデリティ(wireless fidelity、Wi-Fi)ネットワーク)、ブルートゥース(bluetooth、BT)、全地球航法衛星システム(global navigation satellite system、GNSS)、周波数変調(frequency modulation、FM)、近距離無線通信(near field communication、NFC)技術、赤外線(infrared、IR)技術などを含み、電子機器100に適用される無線通信ソリューションを提供することができる。無線通信モジュール160は、少なくとも1つの通信処理モジュールに統合された1つまたは複数の構成要素であってもよい。無線通信モジュール160は、アンテナ2を介して電磁波を受信し、電磁波信号に対して周波数変調およびフィルタリング処理を行い、処理された信号をプロセッサ110に送信する。無線通信モジュール160は、プロセッサ110から送信されるべき信号をさらに受信し、信号に対して周波数変調および増幅を実行し、その信号を、アンテナ2を介して放射するための電磁波に変換することができる。
いくつかの実施形態では、電子機器100において、アンテナ1は、モバイル通信モジュール150に結合され、アンテナ2は、無線通信モジュール160に結合され、それにより、電子機器100は、無線通信技術を使用することによってネットワークおよび別の機器と通信することができる。無線通信技術は、モバイル通信のためのグローバルシステム(global system for mobile communications、GSM)、汎用パケット無線サービス(general packet radio service、GPRS)、符号分割多元接続(code division multiple access、CDMA)、広帯域符号分割多元接続(wideband code division multiple access、WCDMA)、時分割符号分割多元接続(time division code division multiple access、TD-SCDMA)、ロングタームエボリューション(long term evolution、LTE)、BT、GNSS、WLAN、NFC、FM、IR技術などのうちの少なくとも1つを含むことができる。GNSSは、全地球測位システム(global positioning system、GPS)、全地球航法衛星システム(global navigation satellite system、GLONASS)、北斗航法衛星システム(beidou navigation satellite system、BDS)、準天頂衛星システム(quasi-zenith satellite system、QZSS)、および衛星ベースの増強システム(satellite based augmentation system、SBAS)を含むことができる。
電子機器100は、GPU、ディスプレイ194、アプリケーションプロセッサなどを使用することによって表示機能を実施する。GPUは、画像処理用のマイクロプロセッサであり、ディスプレイ194およびアプリケーションプロセッサに接続される。GPUは、数学的および幾何学的計算を行うように構成され、グラフィックスのレンダリングに使用される。プロセッサ110は、プログラム命令を実行して表示情報を生成または変更する1つまたは複数のGPUを含むことができる。
ディスプレイ194は、画像、ビデオなどを表示するように構成される。ディスプレイ194は、表示パネルを含む。表示パネルは、液晶ディスプレイ(liquid crystal display、LCD)、有機発光ダイオード(organic light-emitting diode、OLED)、アクティブマトリクス有機発光ダイオード(active-matrix organic light emitting diode、AMOLED)、フレキシブル発光ダイオード(flex light-emitting diode、FLED)、Miniled、MicroLed、Micro-oLed、量子ドット発光ダイオード(quantum dot light emitting diodes、QLED)などを使用することができる。いくつかの実施形態では、電子機器100は、1つまたはN個のディスプレイ194を含んでもよく、ここでNは1よりも大きい正の整数である。
電子機器100は、ISP、カメラ193、ビデオコーデック、GPU、ディスプレイ194、アプリケーションプロセッサなどを使用することによって撮影機能を実施することができる。
ISPは、カメラ193によってフィードバックされたデータを処理するように構成される。例えば、撮影中に、シャッタが押され、光がレンズを通ってカメラの感光素子へ伝達され、光信号が電気信号に変換され、電気信号を可視画像に変換する処理のために、カメラの感光素子が電気信号をISPへ送る。ISPは、画像のノイズ、輝度、および顔色に対してアルゴリズム最適化をさらに実行することができる。ISPは、撮影シナリオの露出および色温度などのパラメータをさらに最適化することができる。いくつかの実施形態では、ISPは、カメラ193内に配置されてもよい。
カメラ193は、静止画像またはビデオをキャプチャするように構成される。対象物の光学像が、レンズを使用することによって生成され、感光素子上に投影される。感光素子は、電荷結合素子(charge coupled device、CCD)または相補型金属酸化膜半導体(complementary metal-oxide-semiconductor、CMOS)光電トランジスタであってもよい。感光素子は、光信号を電気信号に変換し、その後、その電気信号をデジタル画像信号に変換するために電気信号をISPへ送る。ISPは、処理のためにデジタル画像信号をDSPへ出力する。DSPは、デジタル画像信号をRGB形式やYUV形式などの標準的なフォーマットの画像信号に変換する。いくつかの実施形態では、電子機器100は、1つまたはN個のカメラ193を含んでもよく、ここでNは1よりも大きい正の整数である。
例えば、本出願において提供されるフィットネスを支援するための方法では、カメラは、ユーザ動作のビデオを収集することができる。感光素子は、収集された光信号を電気信号に変換し、その後、その電気信号をデジタル画像信号に変換するために電気信号をISPに送る。ISPは、関連する画像処理のためにデジタル画像信号をDSPへ出力する。
デジタル信号プロセッサは、デジタル信号を処理するように構成され、デジタル画像信号に加えて別のデジタル信号を処理することができる。例えば、電子機器100が周波数を選択すると、デジタル信号プロセッサは、周波数エネルギーについてフーリエ変換などを行うように構成される。
ビデオコーデックは、デジタルビデオを圧縮または解凍するように構成される。電子機器100は、1つまたは複数のビデオコーデックをサポートすることができる。このようにして、電子機器100は、複数の符号化フォーマット、例えば、ムービングピクチャエキスパートグループ(moving picture experts group、MPEG)-1、MPEG-2、MPEG-3、およびMPEG-4でビデオを再生または録画することができる。
NPUは、ニューラルネットワーク(neural-network、NN)コンピューティングプロセッサであり、生物学的ニューラルネットワークの構造を参照することによって、例えば、人間の脳のニューロン間の伝達モードを参照することによって、入力情報を迅速に処理し、自己学習をさらに継続的に行うことができる。NPUは、画像認識、顔認識、音声認識、およびテキスト理解など、電子機器100のインテリジェントな認知などのアプリケーションを実施することができる。
外部メモリインターフェース120は、電子機器100のストレージ能力を拡張するために、外部ストレージカード、例えば、Micro SDカードに接続するように構成されてもよい。外部ストレージカードは、データストレージ機能を実施するために、外部メモリインターフェース120を介してプロセッサ110と通信する。例えば、外部ストレージカードには、音楽およびビデオなどのファイルが保存される。
内部メモリ121は、コンピュータ実行可能プログラムコードを記憶するように構成されてもよい。実行可能プログラムコードは、命令を含む。プロセッサ110は、内部メモリ121に記憶された命令を実行して、電子機器100の様々な機能アプリケーションおよびデータ処理を実行する。内部メモリ121は、プログラム記憶領域およびデータ記憶領域を含むことができる。プログラム記憶領域は、オペレーティングシステム、少なくとも1つの機能(例えば、音声再生機能または画像再生機能)によって必要とされるアプリケーションなどを記憶することができる。データ記憶領域は、電子機器100の使用中に作成されたデータ(例えば、オーディオデータおよび電話帳)などを記憶することができる。加えて、内部メモリ121は、高速ランダムアクセスメモリを含んでもよく、または不揮発性メモリ、例えば、少なくとも1つの磁気ディスク記憶デバイス、フラッシュメモリデバイス、またはユニバーサルフラッシュストレージ(universal flash storage、UFS)を含んでもよい。
電子機器100は、オーディオモジュール170、スピーカ170A、受信機170B、マイクロフォン170C、ヘッドセットジャック170D、アプリケーションプロセッサなどを介して、音楽再生および録音機能などのオーディオ機能を実施することができる。
オーディオモジュール170は、デジタルオーディオ情報を出力のためにアナログオーディオ信号に変換するように構成され、アナログオーディオ入力をデジタルオーディオ信号に変換するようにも構成される。オーディオモジュール170は、オーディオ信号を符号化および復号するようにさらに構成されてもよい。いくつかの実施形態では、オーディオモジュール170は、プロセッサ110内に配置されてもよく、またはオーディオモジュール170のいくつかの機能モジュールがプロセッサ110内に配置される。
「ホーン」とも呼ばれるスピーカ170Aは、電気オーディオ信号を音声信号に変換するように構成される。電子機器100は、スピーカ170Aを使用することによって音楽を聴いたり、ハンズフリー通話に応答したりすることができる。
「イヤピース」とも呼ばれる受信機170Bは、オーディオ電気信号を音声信号に変換するように構成される。電子機器100を使用することによって電話に応答し、または音声メッセージを聞く際には、音声を聞くために、受信機170Bが人間の耳に近づけられてもよい。
「マイク」または「マイクロフォン」とも呼ばれるマイクロフォン170Cは、音声信号を電気信号に変換するように構成される。電話をかけ、または音声メッセージを送信する際に、ユーザは、マイクロフォン170Cに音信号を入力するために、マイクロフォン170Cの近くで音声を発することができる。少なくとも1つのマイクロフォン170Cが電子機器100内に配置されてもよい。いくつかの他の実施形態では、2つのマイクロフォン170Cが、音声信号を収集し、ノイズ低減機能を実施するために、電子機器100内に配置されてもよい。いくつかの他の実施形態では、音声信号を収集し、ノイズ低減を実施し、音源を識別し、それにより、指向性録音機能などを実施するために、代替として、3つ、4つ、またはそれ以上のマイクロフォン170Cが電子機器100内に配置されてもよい。
ヘッドセットジャック170Dは、有線ヘッドセットに接続するように構成される。ヘッドセットジャック170Dは、USBインターフェース130であってもよく、または3.5 mmオープンモバイル電子機器プラットフォーム(open mobile terminal platform、OMTP)標準インターフェースもしくは米国のセルラー電気通信産業協会(cellular telecommunications industry association of the USA、CTIA)標準インターフェースであってもよい。
圧力センサ180Aは、圧力信号を感知するように構成され、圧力信号を電気信号に変換することができる。いくつかの実施形態では、圧力センサ180Aは、ディスプレイ194上に配置されてもよい。抵抗式圧力センサ、誘導式圧力センサ、静電容量式圧力センサなどの、多くのタイプの圧力センサ180Aがある。静電容量式圧力センサは、導電性材料で作られた少なくとも2つの平行なプレートを含むことができる。圧力センサ180Aに力が加えられると、電極間の静電容量が変化する。電子機器100は、静電容量の変化に基づいて圧力の強度を決定する。ディスプレイ194上でタッチ操作が行われると、電子機器100は、圧力センサ180Aに基づいてタッチ操作の強度を検出する。電子機器100はまた、圧力センサ180Aの検出信号に基づいてタッチ位置を計算することができる。いくつかの実施形態では、同じタッチ位置に適用されるが異なるタッチ操作強度を有するタッチ操作は、異なる操作命令に対応することができる。例えば、タッチ操作強度が第1の圧力しきい値未満であるタッチ操作がメッセージのアイコン上で行われると、SMSメッセージを見るための命令が実行される。タッチ操作強度が第1の圧力しきい値以上であるタッチ操作がメッセージのアイコン上で行われると、SMSメッセージを作成するための命令が実行される。
ジャイロスコープセンサ180Bは、電子機器100の移動姿勢を決定するように構成され得る。いくつかの実施形態では、ジャイロスコープセンサ180Bを使用することによって、3軸(すなわち、X、Y、およびZ軸)の周りの電子機器100の角速度が決定され得る。ジャイロスコープセンサ180Bは、撮影中に手振れ補正を実施するように構成されてもよい。例えば、シャッタが押されると、ジャイロスコープセンサ180Bは、電子機器100がジッターする角度を検出し、その角度に基づいて、レンズモジュールが補償する必要がある距離を計算し、手振れ補正を実施するために、レンズに逆方向移動によって電子機器100のジッターを解消させることができる。ジャイロスコープセンサ180Bは、ナビゲーションシナリオおよび体感ゲームシナリオにおいてさらに使用され得る。
気圧センサ180Cは、気圧を測定するように構成される。いくつかの実施形態では、電子機器100は、気圧センサ180Cによって測定された気圧値に基づいて高度を計算して、測位およびナビゲーションを支援する。
磁気センサ180Dは、ホールセンサを含む。電子機器100は、磁気センサ180Dを使用することによってフリップカバーの開閉を検出することができる。いくつかの実施形態では、電子機器100がクラムシェル型電話である場合、電子機器100は、磁気センサ180Dを使用することによってフリップカバーの開閉を検出し、検出されたフリップカバーの開閉状態に基づいて、フリップによる自動ロック解除などの機能を設定することができる。
加速度センサ180Eは、電子機器100の様々な方向(通常は3軸)の加速度の大きさを検出することができ、電子機器100が静止しているときの重力の大きさおよび方向を検出することができる。加速度センサ180Eは、電子機器の姿勢を識別するようにさらに構成されてもよく、横長モードと縦長モードとの間の切替えまたは歩数計などのアプリケーションに適用される。
距離センサ180Fは、距離を測定するように構成される。電子機器100は、赤外線またはレーザ方式で距離を測定することができる。いくつかの実施形態では、撮影シナリオにおいて、電子機器100は、素早い焦点合わせを実施するために、距離センサ180Fを使用することによって距離を測定することができる。
光学式近接センサ180Gは、例えば、発光ダイオード(LED)およびフォトダイオードなどの光検出器を含んでもよい。発光ダイオードは、赤外線発光ダイオードであってもよい。電子機器100は、発光ダイオードを使用することによって赤外光を放射する。電子機器100は、フォトダイオードを使用することによって近くの物体からの赤外線反射光を検出する。十分な反射光を検出した場合、電子機器100は、電子機器100の近くに物体が存在すると判定することができる。不十分な反射光を検出した場合、電子機器100は、電子機器100の近くに物体が存在しないと判定することができる。電子機器100は、光学式近接センサ180Gを使用することによって、ユーザが電話をかけるために電子機器100を耳の近くで保持していることを検出して、節電のために画面を自動的にオフにすることができる。光学式近接センサ180Gは、画面のロック解除またはロックを自動的に行うために、スマートカバーモードまたはポケットモードで使用されてもよい。
周囲光センサ180Lは、周囲光の輝度を感知するように構成される。電子機器100は、感知された周囲光の輝度に基づいてディスプレイ194の輝度を適応的に調整することができる。周囲光センサ180Lは、撮影中にホワイトバランスを自動的に調整するようにさらに構成されてもよい。周囲光センサ180Lはまた、偶発的なタッチを回避する目的で、電子機器100がポケット内にあるかどうかを検出するために光学式近接センサ180Gと協働することができる。
指紋センサ180Hは、指紋を収集するように構成される。電子機器100は、収集された指紋の特徴を使用して、指紋ベースのロック解除、アプリケーションロックアクセス、指紋ベースの撮影、指紋ベースの電話応答などを実施することができる。
温度センサ180Jは、温度を検出するように構成される。いくつかの実施形態では、電子機器100は、温度センサ180Jによって検出された温度に基づいて温度処理ポリシーを実行する。例えば、温度センサ180Jによって報告された温度がしきい値を超えると、電子機器100は、熱保護のために電力消費を低減するために、温度センサ180Jの近くのプロセッサの性能を低下させる。いくつかの他の実施形態では、温度が別のしきい値よりも低い場合、電子機器100は、低温によって引き起こされる電子機器100の異常なシャットダウンを回避するために、バッテリ142を加熱する。いくつかの他の実施形態では、温度がさらに別のしきい値よりも低い場合、電子機器100は、低温によって引き起こされる異常シャットダウンを回避するために、バッテリ142の出力電圧を上昇させる。
タッチセンサ180Kは、「タッチパネル」とも呼ばれる。タッチセンサ180Kは、ディスプレイ194上に配置されてもよく、タッチセンサ180Kおよびディスプレイ194は、「タッチスクリーン」とも呼ばれるタッチスクリーンを形成する。タッチセンサ180Kは、タッチセンサ180K上またはその近くでのタッチ操作を検出するように構成される。タッチセンサは、検出されたタッチ操作をアプリケーションプロセッサに転送して、タッチイベントのタイプを判定することができる。ディスプレイ194は、タッチ操作に関連する視覚的な出力を提供することができる。いくつかの他の実施形態では、タッチセンサ180Kは、代替として、ディスプレイ194の位置とは異なる位置で、電子機器100の表面上に配置されてもよい。
骨伝導センサ180Mは、振動信号を取得することができる。いくつかの実施形態では、骨伝導センサ180Mは、人間の発声部の振動骨の振動信号を取得することができる。また、骨伝導センサ180Mは、人の脈動に接触して、血圧拍動信号を受け取ることができる。いくつかの実施形態では、骨伝導センサ180Mは、代替として、骨伝導ヘッドセットを得るためにヘッドセット内に配置されてもよい。オーディオモジュール170は、音声機能を実現するために、骨伝導センサ180Mによって取得された、発声部の振動骨の振動信号に基づく解析によって音声信号を取得することができる。アプリケーションプロセッサは、心拍数検出機能を実施するために、骨伝導センサ180Mによって取得された血圧拍動信号に基づいて心拍数情報を解析することができる。
ボタン190は、電源ボタン、音量ボタンなどを含む。ボタン190は、機械式ボタンであってもよく、またはタッチ式ボタンであってもよい。電子機器100は、ボタン入力を受け取り、電子機器100のユーザ設定および機能制御に関連するボタン信号入力を生成することができる。
モータ191は、振動プロンプトを生成することができる。モータ191は、着信振動プロンプトまたはタッチ振動フィードバックを提供するように構成されてもよい。例えば、異なるアプリケーション(例えば、写真撮影およびオーディオ再生)で実行されるタッチ操作は、異なる振動フィードバック効果に対応することができる。モータ191は、ディスプレイ194の異なる領域上で行われるタッチ操作に対する異なる振動フィードバック効果に対応することもできる。異なるアプリケーションシナリオ(例えば、時間リマインダシナリオ、情報受信シナリオ、アラームクロックシナリオ、およびゲームシナリオ)も、異なる振動フィードバック効果に対応することができる。タッチ振動フィードバック効果は、あるいは、カスタマイズされてもよい。タッチ振動フィードバック効果は、あるいは、カスタマイズされてもよい。
インジケータ192は、インジケータライトであってもよく、充電状態および電源変化を示すように構成されてもよく、あるいは、メッセージ、不在着信、通知などを示すように構成されてもよい。
SIMカードインターフェース195は、SIMカードに接続するように構成される。SIMカードは、電子機器100との接触または分離を実施するために、SIMカードインターフェース195に挿入されてもよく、またはSIMカードインターフェース195から取り外されてもよい。電子機器100は、1つまたはN個のSIMカードインターフェースをサポートすることができ、ここでNは1よりも大きい正の整数である。SIMカードインターフェース195は、Nano SIMカード、Micro SIMカード、SIMカードなどをサポートすることができる。複数のカードが、1つのSIMカードインターフェース195に同時に挿入されてもよい。複数のカードは、同じタイプであってもよく、あるいは、異なるタイプであってもよい。SIMカードインターフェース195は、異なるタイプのSIMカードとさらに互換性があってもよい。SIMカードインターフェース195は、外部メモリカードとさらに互換性があってもよい。電子機器100は、通話およびデータ通信などの機能を実施するために、SIMカードを通してネットワークとやり取りする。いくつかの実施形態では、電子機器100は、eSIM、すなわち、組み込みSIMカードを使用する。eSIMカードは、電子機器100に組み込まれてもよく、電子機器100から分離され得ない。
電子機器100のソフトウェアシステムは、階層化アーキテクチャ、イベント駆動型アーキテクチャ、マイクロカーネルアーキテクチャ、マイクロサービスアーキテクチャ、またはクラウドアーキテクチャを使用することができる。本出願の実施形態では、電子機器100のソフトウェア構造を説明するための一例として、階層化アーキテクチャを伴うAndroidシステムが使用される。
図2は、本願の本実施形態による電子機器100のソフトウェア構造のブロック図である。階層化アーキテクチャでは、ソフトウェアはいくつかの層に分割され、各層は明確な役割およびタスクを有する。層は、ソフトウェアインターフェースを介して互いに通信する。いくつかの実施形態では、Androidシステムは、上から下に4つの層、すなわち、アプリケーション層、アプリケーションフレームワーク層、アンドロイドランタイム(Android runtime)およびシステムライブラリ、ならびにカーネル層に分割される。アプリケーション層は、一連のアプリケーションパッケージを含むことができる。
図2に示すように、アプリケーションパッケージは、カメラ、ギャラリ、カレンダ、電話、地図、ナビゲーション、WLAN、ブルートゥース、音楽、ビデオ、およびメッセージなどのアプリケーションを含むことができる。
アプリケーションフレームワーク層は、アプリケーション層のアプリケーションにアプリケーションプログラミングインターフェース(application programming interface、API)およびプログラミングフレームワークを提供する。アプリケーションフレームワーク層は、いくつかの所定の機能を含む。
例えば、本出願では、画像処理アルゴリズムなどは、アプリケーションフレームワーク層に含まれてもよい。
図2に示すように、アプリケーションフレームワーク層は、ウィンドウマネージャ、コンテンツプロバイダ、ビューシステム、電話マネージャ、リソースマネージャ、通知マネージャなどを含むことができる。
ウィンドウマネージャは、ウィンドウプログラムを管理するように構成される。ウィンドウマネージャは、ディスプレイのサイズを取得し、ステータスバーがあるかどうかを判定し、スクリーンロックを実行し、スクリーンショットを取得するなどを行うことができる。
コンテンツプロバイダは、データを記憶および取得し、アプリケーションによってデータにアクセスできるように構成される。データは、ビデオ、画像、音声、発着信される電話、閲覧履歴およびブックマーク、電話帳などを含むことができる。
例えば、本出願では、コンテンツコントローラは、プレビューインターフェースにおいて収集された画像をリアルタイムで取得し、処理された画像をプレビューインターフェースに表示することができる。
ビューシステムは、テキストを表示するための制御および画像を表示するための制御などの視覚的制御を含む。ビューシステムは、アプリケーションを構築するように構成されてもよい。表示インターフェースは、1つまたは複数のビューを含むことができる。例えば、メッセージの通知アイコンを含む表示インターフェースは、テキスト表示ビューおよびピクチャ表示ビューを含むことができる。
例えば、本出願では、ディスプレイのインターフェース上に表示される「ユーザ動作のビデオ」、「標準フィットネス動作」、および「ガイダンス情報」などのコンテンツは、ビューシステムがプロセッサの命令を受信した後にビューシステムによって表示されてもよい。
電話マネージャは、電子機器100の通信機能、例えば、通話状態(電話に応答することまたは電話を拒否することを含む)の管理を提供するように構成される。
リソースマネージャは、ローカライズされた文字列、アイコン、ピクチャ、レイアウトファイル、およびビデオファイルなどのアプリケーションのための様々なリソースを提供する。
通知マネージャは、アプリケーションがステータスバーに通知情報を表示することを可能にし、通知メッセージを伝達するように構成されてもよい。通知マネージャは、ユーザとのやり取りを必要とせずに、短い一時停止の後に自動的に消滅することができる。例えば、通知マネージャは、ダウンロード完了、メッセージプロンプトなどの通知を提供するように構成される。通知マネージャは、代替として、グラフまたはスクロールバーテキストの形式でシステムの上部ステータスバーに現れる通知、例えば、バックグラウンドで実行しているアプリケーションの通知またはダイアログウィンドウの形式で画面上に現れる通知であってもよい。例えば、テキスト情報がステータスバーに表示され、警告音が再生され、電子機器が振動し、またはインジケータライトが点滅する。
Android runtimeは、カーネルライブラリおよび仮想マシンを含む。Android runtimeは、アンドロイドシステムのスケジューリングおよび管理を担当する。
カーネルライブラリは、2つの部分、すなわち、Java言語において呼び出される必要がある関数、およびアンドロイドのカーネルライブラリを含む。
アプリケーション層およびアプリケーションフレームワーク層は、仮想マシン上で動作する。仮想マシンは、アプリケーション層およびアプリケーションフレームワーク層でJavaファイルをバイナリファイルとして実行する。仮想マシンは、オブジェクトのライフサイクル管理、スタック管理、スレッド管理、セキュリティおよび例外管理、ならびにガーベジコレクションなどの機能を実施するように構成される。
システムライブラリは、複数の機能モジュール、例えば、サーフェスマネージャ(surface manager)、メディアライブラリ(media libraries)、3次元グラフィックス処理ライブラリ(例えば、OpenGL ES)、および2Dグラフィックスエンジン(例えば、SGL)を含むことができる。
サーフェスマネージャは、ディスプレイサブシステムを管理し、複数のアプリケーションのための2Dレイヤと3Dレイヤの融合を提供するように構成される。
メディアライブラリは、複数の一般的に使用されるオーディオ、ビデオフォーマット、静止画像ファイルなどの再生および記録をサポートする。メディアライブラリは、MPEG4、H.264、MP3、AAC、AMR、JPG、およびPNGなどの複数のオーディオおよびビデオ符号化フォーマットをサポートすることができる。
3次元グラフィックス処理ライブラリは、3次元グラフィックス描画、画像レンダリング、合成、レイヤ処理などを実施するように構成される。
2Dグラフィックスエンジンは、2D描画用の描画エンジンである。
カーネル層は、ハードウェアとソフトウェアとの間の層である。カーネル層は、少なくともディスプレイドライバ、カメラドライバ、オーディオドライバ、およびセンサドライバを含む。
理解を容易にするために、本出願の以下の実施形態では、図1および図2に示される構造を有する電子機器が、添付の図面およびアプリケーションシナリオを参照して、本出願の実施形態において提供されるフィットネスを支援するための方法を詳細に説明するための例として使用される。
本出願の実施形態において提供されるフィットネスを支援するための方法は、テレビ、携帯電話、タブレットコンピュータ、ウェアラブル機器、車載機器、拡張現実(augmented reality、AR)/仮想現実(virtual reality、VR)機器、ノートブックコンピュータ、ウルトラモバイルパーソナルコンピュータ(ultra-mobile personal computer、UMPC)、ネットブック、または携帯情報端末(personal digital assistant、PDA)などの電子機器に適用され得る。本出願の実施形態では、電子機器の具体的なタイプは限定されない。
図3は、本出願の一実施形態によるフィットネスを支援するための方法の概略フローチャートである。
ステップS301:電子機器は、ユーザ動作を取得する。
ユーザ動作は、カメラによって収集されるリアルタイムビデオにおけるユーザ動作であってもよい。言い換えれば、電子機器は、カメラによって収集されるユーザ動作を取得することができる。電子機器によって取得されるユーザ動作を含むビデオは、ユーザ動作のビデオと呼ばれることがある。
ステップS302またはステップS303の前に、ユーザは、動作評価指標セットにおける少なくとも1つのフィットネス動作から特定のフィットネス動作を選択することができる。後続のステップにおいて、この特定のフィットネス動作に基づいてユーザ動作に対して処理が実行される。動作評価指標セットは、専門的な知識に基づいて決定されてもよい。すなわち、電子機器は、入力情報を取得することができる。入力情報は、フィットネス動作を示すために使用される。
ステップS302:電子機器は、ユーザ動作におけるユーザの骨格関節点を認識する。
電子機器は、ユーザ動作の各フレーム画像においてユーザの骨格関節点を認識することができ、またはユーザ動作における複数のフレーム画像の固定または非固定の区間でユーザの骨格関節点を認識することができる。ユーザの骨格関節点は、ユーザの身体部位を表すために使用され得る。
ユーザの骨格関節点は、画像内のユーザの身体上のすべての骨格関節点を含むことができる。代替として、ユーザの骨格関節点は、動作評価指標セットにおける特定のフィットネス動作の第1の標準関節点に対応する第1のキー関節点、第2の標準関節点に対応する第2のキー関節点、第3の標準関節点に対応する第3のキー関節点、および第4の標準関節点に対応する第4のキー関節点のうちの1つまたは複数を含むことができる。第1のキー関節点、第2のキー関節点、第3のキー関節点、および第4のキー関節点はすべて、画像内のユーザの身体上の骨格関節点である。
ステップS303:電子機器は、第1のキー関節点の軌跡に対してマッチングを行う。
電子機器は、動作評価指標セットに基づいて、ユーザの骨格関節点における第1のキー関節点の軌跡に対してマッチングを行う。
ステップS303の前に、電子機器は、ユーザ動作の水平方向および垂直方向のうちの少なくとも1つをさらに決定することができる。ユーザの身体部位の位置、位置の変化、身体部位の移動軌跡などの方向は、水平方向または垂直方向に基づいて決定されてもよい。電子機器内のジャイロスコープセンサなどの装置は、ユーザ動作を収集するプロセスにおいてユーザ動作の水平方向および垂直方向を決定するために使用されてもよい。テレビまたはデスクトップコンピュータなどの頻繁に移動しない電子機器のために、収集された画像にデフォルトの水平方向またはデフォルトの垂直方向が設定されてもよい。ユーザ動作の水平方向および垂直方向は、デフォルトの水平方向およびデフォルトの垂直方向のうちの少なくとも1つに基づいて決定されてもよい。
特定のフィットネス動作について、専門家は、専門的知識に基づいて、フィットネス動作における少なくとも1つの第1の標準関節点および少なくとも1つの第1の標準関節点のそれぞれの移動軌跡を決定し、第1の標準関節点の移動軌跡を動作評価指標セットに記憶することができる。動作評価指標セットは、少なくとも1つのフィットネス動作と少なくとも1つの第1の標準関節点の移動軌跡との対応関係を含む。第1の標準関節点の移動軌跡は、特定のフィットネス動作の標準動作における人体の骨格関節点の移動軌跡である。人体の骨格関節点は、第1の標準関節点を含む。第1の標準関節点は、ユーザの身体部位の関節点として理解されてもよい。
第1のキー関節点は、ユーザ動作における第1の標準関節点に対応する骨格関節点であり、あるいは、第1のキー関節点は、ユーザ動作における第1の標準関節点と同じ位置にある骨格関節点である。
いくつかの実施形態では、電子機器は、第1のキー関節点の移動軌跡を第1の標準関節点の移動軌跡と比較することができる。第1の標準関節点の移動軌跡と第1のキー関節点の移動軌跡との間の類似度が予め設定された類似度よりも大きい場合、マッチングは失敗し、ユーザはフィットネス動作を行っていないと考えられ、ユーザ動作を再取得するために、ステップS301が行われる。第1の標準関節点の移動軌跡と第1のキー関節点の移動軌跡との間の類似度が予め設定された類似度以下である場合、マッチングは成功する。
いくつかの他の実施形態では、電子機器は、第1のキー関節点の移動軌跡が予め設定された特徴を満たすかどうか、すなわち、第1のキー関節点の移動軌跡が予め設定された特徴を有するかどうかを判定することができる。予め設定された特徴は、予め設定された条件として理解されてもよい。電子機器は、ユーザ動作から、第1の標準関節点に対応する身体部位の移動軌跡の予め設定された特徴を満たす候補動作を決定することができる。
予め設定された特徴は、移動軌跡の形状、移動軌跡の周期性などであってもよい。例えば、予め設定された特徴は、周期的な位置変化規則であってもよい。第1の標準関節点の予め設定された周期的な位置変化規則は、第1の標準関節点の周期的な位置変化規則として理解されてもよい。
電子機器は、第1の標準関節点の位置変化の周期性に基づいて候補動作を決定することができる。異なるフィットネス動作は、同じ候補動作選択規則または異なる候補動作選択規則に対応することができる。候補動作選択規則に従って、電子機器は、候補動作として、第1のキー関節点の移動軌跡に対応する、第1のキー関節点の一周期のビデオ画像を使用することができ、すなわち、候補動作におけるユーザの候補動作を決定することができる。代替として、電子機器は、候補動作として、第1のキー関節点の移動軌跡の点または範囲に対応する、ユーザ動作のビデオ画像を使用してもよい。
動作評価指標セットは、予め設定された特徴を含むことができ、予め設定された特徴は、第1の標準関節点の位置変化モードを示すために使用される。第1の標準関節点の位置変化モードは、第1の標準関節点の移動方向であってもよく、例えば、上向きの移動または下向きの移動、あるいは、上下往復移動プロセスにおける全プロセスまたは上向きの移動であってもよい。第1の標準関節点の位置変化モードは、代替として、移動軌跡の形状であってもよい。例えば、移動軌跡は、三角形、円、円弧、折れ線などの形状である。第1の標準関節点の位置変化モードは、代替として、第1の標準関節点によって完成された完全な形状の一部であってもよい。例えば、第1の標準関節点の軌跡は三角形であり、位置変化モードは、第1の標準関節点によって辺上で行われる移動である。
決定された候補動作は、例えば、上下往復移動プロセスにおける第1のキー関節点の上向きの移動に対応するユーザ動作であってもよい。代替として、第1のキー関節点の移動軌跡が三角形である場合、決定された候補動作は、第1のキー関節点が三角形の辺上を移動するときの対応するユーザ動作である。
候補動作が決定された後、ステップS304が行われる。ステップS304~S307において、電子機器は、候補動作に対する処理を行う。
例えば、スクワット動作では、第1の標準関節点は股関節点であってもよい。電子機器は、ユーザ動作の各フレーム画像において、ユーザの股関節点を第1のキー関節点として認識することができる。スクワット動作中、股関節点の高さは周期的に変動する。電子機器は、第1のキー関節点の移動軌跡を第1の標準関節点の移動軌跡とマッチングし、股関節点の上下動の周期の開始点および終了点を決定し、周期の開始点と終了点との間のビデオを候補動作として使用することができる。代替として、電子機器は、股関節点の一周期の上向きの移動または下向きの移動のビデオを候補動作として使用する。すなわち、移動軌跡の予め設定された特徴は、股関節点の上下動の周期における移動であってもよく、または股関節点の上下動の周期における股関節点の上向きの移動であってもよい。
特定のフィットネス動作に対して、トリガ条件は、第1のキー関節点の移動軌跡と第1の標準関節点の移動軌跡とのマッチングが成功することである。トリガ条件が満たされると、ステップS304が行われる。
ステップS304:電子機器は、ユーザがフィットネス動作を行っていると判定する。
電子機器は、認識条件に基づいて、ユーザ動作におけるユーザ動作が特定のフィットネス動作であるかどうかを判定することができる。認識条件は、予め設定された条件である。
決定された候補動作は、候補動作におけるユーザの候補動作が動作評価指標セットにおける特定の動作の認識条件を満たすかどうかを判定するために処理される。候補動作が認識条件を満たす場合、候補動作はユーザによって行われた特定の動作であると判定される。候補動作が認識条件を満たさない場合、候補動作はユーザによって行われた特定の動作ではないと判定される。
認識条件は、第2の標準関節点に対応する第2のキー関節点が満たす条件を含む。少なくとも1つの第2の標準関節点は、少なくとも1つの第1の標準関節点のすべてまたは一部を含むことができ、少なくとも1つの第2の標準関節点は、別の骨格関節点も含むことができる。認識条件は、第2の標準関節点の位置変化情報を含むことができる。第2の標準関節点の位置変化情報は、ビデオにおける第2の標準関節点の位置変化範囲を含むことができる。第2の標準関節点の位置変化情報は、代替として、第2の標準関節点の相対位置の変化範囲であってもよい。
身体部位の動作変化範囲を示すために、第2の標準関節点の位置変化情報が使用されてもよい。身体部位の動作変化範囲は、身体部位の角度変化範囲を含んでもよく、または身体部位の相対位置の変化範囲を含んでもよい。身体部位の角度変化範囲は、ユーザ動作において、身体部位と水平方向または垂直方向との間の夾角の最大値と最小値との間の区間範囲として理解されてもよい。身体部位の相対位置の変化範囲は、身体部位間の距離の最大値と最小値との間の区間範囲として理解されてもよい。2つの身体部位間の距離は、身体部位の長さに基づいて決定されてもよい。例えば、2つの身体部位間の距離は、身体部位の一方の長さの倍数または割合である。
認識条件は、専門的な知識に基づいて決定されてもよい。第2のキー関節点は、ユーザ動作における第2の標準関節点に対応する骨格関節点であり、あるいは、第2のキー関節点は、ユーザ動作における第2の標準関節点と同じ位置にある骨格関節点である。
例えば、スクワット動作の場合、股関節点の高さが山から谷へと移動するにつれて、大腿部は垂直方向に平行な状態から水平方向に平行な状態へと徐々に変化する。スクワット動作の認識条件は、大腿部の角度の変化が第1の予め設定された範囲を満たすことを含むことができる。第2の標準関節点は、股関節点および大腿部の両端の関節点(すなわち、膝関節点および股関節点)を含むことができ、大腿部の角度は、候補動作における大腿部の両端の関節点に基づいて決定されてもよい。言い換えれば、候補動作における大腿部の角度の変化が第1の予め設定された範囲を満たす場合、ユーザがスクワット動作を行っていると考えられる。
図8(a)および図8(b)を参照されたい。ユーザがスクワット動作を行っていると判定される。図8(a)では、ユーザは立っており、図8(b)では、ユーザは一番下までしゃがんでいる。スクワット動作中、ユーザの股関節点Aが上下動し、大腿部と水平方向との夾角が変化する。すなわち、大腿部の角度が変化する。大腿部の動作変化は、大腿部の角度の変化によって反映される。
動作評価指標セットにおけるスクワット動作の予め設定された特徴は、股関節点Aの上下動における下向きの移動であってもよい。ユーザ動作における候補動作は、この予め設定された特徴に基づいて決定されてもよい。
動作評価指標セットにおけるスクワット動作の認識条件は、大腿部の角度の大きさの範囲を含んでいてもよい。
電子機器は、候補動作における大腿部の角度の大きさが認識条件を満たすかどうかを判定して、ガイダンス情報を出力するかどうかを判定することができる。
動作評価指標セットは、大腿部角度の最大値に対応する、移動軌跡の位置と、大腿部角度の最小値に対応する、移動軌跡の位置と、を含むことができる。代替として、動作評価指標セットは、大腿動作の動作開始位置に対応する、移動軌跡の股関節点の位置を含むことができ、あるいは、動作評価指標セットは、大腿動作の動作終了位置に対応する、移動軌跡の股関節点の位置を含むことができる。股関節点Aの移動軌跡に基づいて、候補動作の最初のフレーム画像における大腿部位置が大腿部の動作開始位置であり、候補動作の最後のフレーム画像における大腿部位置が大腿部の動作終了位置であると判定されてもよい。
電子機器は、股関節点Aおよび膝関節点Bに基づいて大腿部の角度を決定することができる。ユーザ動作中、電子機器は、大腿部の動作変化が予め設定された動作変化範囲の最大値要件および最小値要件を満たすかどうかを判定する。言い換えれば、電子機器は、範囲の最大値が予め設定された動作変化範囲の最大値要件を満たし、範囲の最小値が予め設定された動作変化範囲の最小値要件を満たす大腿部の動作変化範囲を決定する。
最大値要件は区間であってもよい。すなわち、電子機器によって決定される大腿部の動作変化範囲の最大値は、予め設定された動作変化範囲の最大値区間内にある。最小値要件は区間であってもよい。すなわち、電子機器によって決定される大腿部の動作変化範囲の最小値は、予め設定された動作変化範囲の最小値区間内にある。
図中、破線は、予め設定された動作変化範囲の最小値範囲に対応する大腿部の移動方向の範囲と、予め設定された動作変化範囲の最大値範囲に対応する大腿部の移動方向の範囲と、を示す。ユーザ動作において、大腿部と地面との間の角度が最小である場合、大腿部の方向は、最小値範囲に対応する大腿部の移動方向の範囲内にあり、大腿部と地面との間の角度が最大である場合、大腿部の方向は、最大値範囲に対応する大腿部の移動方向の範囲内にある。この場合、電子機器は、ユーザがスクワット動作を行っていると判定することができる。
図中のユーザについて、大腿部の動作変化の最大値は、予め設定された動作変化範囲の最大値範囲内にあり、大腿部の動作変化の最小値は、予め設定された動作変化範囲の最小値範囲内にある。すなわち、ユーザの大腿部の動作変化は、予め設定された動作変化範囲の最大値要件および最小値要件を満たす。他の認識条件がない場合は、図中のユーザがスクワット動作を行っていると判定されてもよい。
スクワット動作の認識条件は、足首関節点に対する股関節点の相対距離の変化範囲をさらに含むことができる。第2の標準関節点は、股関節点、膝関節点、および足首関節点を含むことができる。股関節点と膝関節点との相対距離の変化範囲は、股関節点と膝関節点との間の距離と、膝関節点と足首関節点との間の距離とに基づいて決定される。股関節点と足首関節点との相対距離は、股関節点と足首関節点との間の距離を、股関節点と膝関節点との間の距離と、膝関節点と足首関節点との間の距離との和で除算することによって取得されてもよい。すなわち、足首関節点に対する股関節点の相対距離は、足の長さに対する、股関節点と足首関節点との間の距離の比を用いることによって表されてもよい。ユーザ動作におけるこの比の最小値と最大値との間の区間範囲が、足首関節点に対する股関節点の相対距離の変化範囲である。
判定結果が、ユーザがフィットネス動作を行っているというものである場合、ステップS305が行われる。そうでない場合は、ユーザ動作を再取得するためにステップS301が行われる。
ユーザがフィットネス動作を行っていると判定された場合、フィットネス動作の標準レベルを評価するために、異なるフィットネス動作に対して異なるガイダンス体系が設計されてもよい。各動作に対するガイダンス体系は、コア指標および二次指標を含むことができる。コア指標は、ユーザ動作に対する基本スコアおよびガイダンスを決定するために使用され、二次指標は、スコアを修正し、包括的なガイダンスを行うために使用される。
ステップS305:電子機器は、コア指標に基づいて採点および評価を行う。
動作評価指標セットは、コア指標を含む。コア指標は、一部の身体部位の位置情報に対する評価基準を含むことができる。身体部位は骨格関節点によって表される。すなわち、コア指標は、第3の標準関節点の評価基準を含むことができる。コア指標に基づいて、ユーザ動作における第3の標準関節点に対応するスコアおよび評価が取得される。
身体部位の位置情報は、身体部位の動作変化範囲、身体部位の動作変化範囲の限界値、および身体部位の移動軌跡のうちの1つまたは複数を含むことができる。身体部位の動作変化範囲の限界値は、身体部位の動作変化範囲の最大値または最小値である。
コア指標は、身体部位の動作変化範囲と評価情報との対応関係を含んでもよく、または身体部位の動作変化範囲の限界値と評価情報との対応関係を含んでもよく、または身体部位の移動軌跡と評価情報との対応関係を含んでもよい。
コア指標に基づいて採点および評価を行うために、電子機器は、候補ビデオにおける、第3の標準関節点に対応する第3のキー関節点の相対位置、位置変化状態などを採点および評価することができる。第3のキー関節点は、ユーザ動作における第3の標準関節点に対応する骨格関節点であり、または第3のキー関節点は、ユーザ動作における第3の標準関節点と同じ位置にある骨格関節点である。
コア指標は、第3の標準関節点の複数のタイプの位置情報と、複数のスコアおよび/または評価との対応関係を含むことができる。コア指標はまた、第3の標準関節点の複数のタイプの位置情報と複数のスコア増減量との対応関係を含んでもよく、および/またはコア指標は、第3の標準関節点の複数のタイプの位置情報と複数の評価との対応関係を含んでもよい。スコアは、第3の標準関節点の位置情報に基づいて予め設定されたスコアを増減することによって決定されてもよい。評価は、ガイダンスおよび提案として理解されてもよい。
第3の標準関節点の位置情報は、第3の標準関節点の相対位置および/または各第3の標準関節点の位置変化状態を含むことができる。少なくとも1つの第3の標準関節点は、少なくとも1つの第1の標準関節点のすべてまたは一部を含むことができ、少なくとも1つの第3の標準関節点は、少なくとも1つの第2の標準関節点のすべてまたは一部を含むことができ、少なくとも1つの第3の標準関節点は、別の骨格関節点を含むこともできる。第3の標準関節点は、少なくとも1つの第1の標準関節点および少なくとも1つの第2の標準関節点の一部であってもよい。
電子機器は、第1のキー関節点の移動軌跡に基づいて、候補動作またはユーザ動作における1つまたは複数のフレーム画像を決定することができる。電子機器は、第3のキー関節点の移動軌跡に基づいて、候補動作またはユーザ動作における1つまたは複数のフレーム画像を決定することができる。電子機器は、1つまたは複数のフレーム画像内の第3のキー関節点の相対位置に基づいて、対応するスコアまたは評価を取得することができる。電子機器は、フィットネス動作に基づいて1つまたは複数のフレーム画像の選択方式を決定することができる。第3のキー関節点の相対位置は、ユーザの身体部位の位置、例えば、身体部位の角度または身体部位間の距離を反映することができる。
電子機器は、第3のキー関節点の移動軌跡に基づいて、第3のキー関節点の移動軌跡に対応するスコアおよび/または評価を取得することができる。
電子機器は、候補動作またはユーザ動作における第3のキー関節点の位置変化範囲を決定することができる。第3のキー関節点の位置変化範囲もしくは変化範囲の限界値に対応するスコアおよび/または評価が取得されてもよい。
例えば、スクワット動作に対して、コア指標は、大腿部角度範囲の最小値とスコアとの対応関係、および大腿部角度範囲と評価との対応関係を含むことができる。大腿部と地面との間の角度の最小値が75度未満である場合、ユーザはスクワット動作を完了したと考えられ、角度が0度である場合、最良の完了率が指標に対して達成されたと考えられる。大腿部と地面(すなわち、水平方向)との間の角度の最小値が75度未満である場合、いくつかの区間(例えば、0度未満、0度~25度(25度を含まない)、25度~50度(50度を含まない)、50度~75度(75度を含まない)の4つの区間)があってもよい。各区間は異なるスコアに対応し、各区間は同じ評価または異なる評価に対応する。第3のキー関節点に基づいて決定された大腿部と地面との間の角度がある値である場合、対応するガイダンスをユーザに提供するために、その値が属する範囲が決定され、対応するスコアおよび評価が決定される(例えば、第3のキー関節点に基づいて決定された大腿部と地面との間の角度の最小値が32度であり、25度~50度の区間に属するとき、その区間に対応するスコアは80であり、その区間に対応する評価は、より低くしゃがむことである)。
ステップS306:電子機器は、二次指標に基づいて採点および評価を行う。
動作評価指標セットは、二次指標を含む。二次指標は、第4の標準関節点の評価基準を含むことができる。二次指標に基づいて採点および評価を行うために、電子機器は、候補ビデオにおける第4のキー関節点の相対位置、位置変化状態などを採点および評価することができる。第4のキー関節点は、ユーザ動作における第4の標準関節点に対応する骨格関節点であり、または第4のキー関節点は、ユーザ動作における第4の標準関節点と同じ位置にある骨格関節点である。
二次指標は、第4の標準関節点の位置情報とスコア減少量および/または評価との対応関係を含むことができる。二次指標は、第4の標準関節点に対応する身体部位の位置情報と、スコア減少量および/または評価との対応関係を含むことも理解され得る。ユーザ動作が二次指標のしきい値を満たさない場合、コア指標に基づいて計算されたスコアが下げられてもよく、対応するガイダンスが決定されてもよい。
第4の標準関節点の位置情報は、第4の標準関節点の相対位置および/または各第4の標準関節点の位置変化状態を含むことができる。少なくとも1つの第4の標準関節点は、少なくとも1つの第3の標準関節点のすべてまたは一部を含むことができ、少なくとも1つの第4のキー関節点は、第3の標準関節点以外の骨格関節点も含むことができる。位置変化は、例えば、位置変化の大きさ、位置変化範囲、または移動軌跡であってもよい。
例えば、スクワット動作の場合、二次指標は、脛角度範囲とスコアとの対応関係、および脛角度範囲と評価との対応関係を含むことができる。第4の標準関節点は、膝関節点および足首関節点を含むことができる。電子機器は、膝関節点および足首関節点の相対位置に基づいて脛角度を決定することができる。二次指標は、代替として、胴体角度範囲とスコアとの対応関係、および胴体角度範囲と評価との対応関係を含むことができる。二次指標は、脛と地面との間の角度が50度よりも大きいことを含むことができる。候補動作が二次指標を満たさない場合、ユーザに、ガイダンスのための対応する評価が提供され得て、例えば、脛を過度に前傾しないようにユーザに促す。
異なるフィットネス動作に対して、評価指標は完全に異なっていてもよく、異なるフィットネス動作における各身体部位の動作の影響も異なる(例えば、スクワット動作時の腕の動作は通常無関係であるが、ダンベルカール動作では、腕の動作が核心であり、脚の動作は重要ではない)。各身体部位の動作に対して決定、評価、およびガイダンスが行われる場合、過度の無用な情報がユーザに送信され、ユーザ体験が影響を受ける。ステップS305およびS306の後、特定のフィットネス動作に対応する評価が決定され得て、効果的なガイダンスがユーザに提供され得る。
ステップS307:電子機器は、スコアおよび評価をフィードバックする。
電子機器は、スコアおよび評価をユーザにフィードバックするためにフィードバック情報を出力することができ、フィードバック情報は、ステップS306において決定されたスコアならびにステップS305およびS306において決定された評価を含む。例えば、スコアおよび評価は、画面上にテキストをポップアップし、またはプロンプトの音声を再生するなどのやり方でフィードバックされてもよい。
ユーザの使用シナリオが公開音声再生に適していない場合、電子機器は、ブルートゥースヘッドセットを使用することによって音声を介してスコアおよび/または評価を再生してもよく、またはスコアおよび/または評価を画面上に表示してもよい。公開音声再生とは、スピーカを使用することによって再生することを意味する。
例えば、画像認識により、複数の人物がユーザ動作において判定され、電子機器は、スコアおよび/または評価を画面上に表示することができる。
スコアおよび/または評価がスピーカを使用することによって再生されないと判定された場合、電子機器は、画像認識を行って、フィットネス動作を行っているユーザがブルートゥースヘッドセットを装着しているかどうかを判定することができる。ユーザがブルートゥースヘッドセットを装着しており、ブルートゥースヘッドセットがブルートゥースを介してフィットネスを支援するための装置に接続されていると判定された場合、スコアおよび/または評価は、ブルートゥースヘッドセットを使用することによって再生される。
代替として、電子機器は、フィードバック方式指示情報を取得することができ、フィードバック方式指示情報は、フィードバック方式、すなわち、スコアおよび/または評価を出力する方式を示すために使用される。
電子機器は、第1のキー関節点の移動軌跡に基づいてユーザのフィットネス動作をカウントし、ユーザがフィットネス動作を完了した量を記録することができる。電子機器は、第1の標準関節点の周期量とフィットネス動作量との対応関係を動作評価指標セットに記憶することができる。
例えば、第1のキー関節点の移動軌跡の1つの周期は、ユーザによって完了された1つのフィットネス動作に対応する。異なるフィットネス動作に対しては、第1のキー関節点の移動軌跡の複数の周期が、ユーザによって完了された1つのフィットネス動作に対応してもよく、または第1のキー関節点の移動軌跡の1つの周期が、ユーザによって完了された1つのフィットネス動作に対応してもよい。
代替として、電子機器は、第2のキー関節点または第3のキー関節点の移動軌跡に基づいてユーザのフィットネス動作をカウントすることができる。
電子機器は、ステップS301~S304に従って複数の候補動作を決定することができる。電子機器は、候補動作の量に基づいて、ユーザがフィットネス動作を完了した回数を決定することができる。フィットネス動作を完了した回数は、ユーザにフィードバックされてもよい。
ユーザが特定のフィットネス動作を行っていることは、最も核心的な動作の評価規則、すなわち認識条件に基づいて決定される。ユーザ動作が認識条件を満たす場合、別の身体部位の動作が標準的でなくても、ユーザはフィットネス動作を学習しようとしているが、その動作は標準的ではないと考えられる。しかしながら、ユーザ動作が認識条件を満たさない場合は、身体部位の動作がフィットネス動作の標準的な動作に非常に類似していても、ユーザ動作はフィットネス動作ではなく、フィットネス動作の誤認識を回避する。したがって、本出願の本実施形態では、ユーザ動作がフィットネス動作であるかどうかが正確に認識され得る。ユーザ動作が標準的でなくても、本出願の本実施形態において提供される方法を使用することによって、ユーザがフィットネス動作を行っていることが判定され得る。
第1のキー関節点の移動軌跡を第1の標準関節点の移動軌跡とマッチングすることによって、電子機器は、ユーザによって行われたフィットネス動作の開始時間および終了時間を決定して、開始時間と終了時間との間に行われたユーザ動作を決定することができる。電子機器は、ユーザがフィットネス動作を行っているかどうかを判定し、ユーザ動作を採点する。すなわち、電子機器は、特定のフィットネス動作の最小完了指標、すなわち、認識条件に基づいて、ユーザがフィットネス動作を行っているかどうかを判定する。認識条件を満たさない動作はフィルタリングされる。すなわち、フィットネス動作ではないユーザ動作に対しては採点および評価が行われず、認識条件を満たす動作に対してのみ採点および評価が行われ、ガイダンスがその動作に関してユーザに提供される。
環境的な制約のために、一部の身体部位が画面を超える場合があり、すなわち、ユーザの一部の骨格関節点がユーザ動作に含まれない場合がある。
ステップS303の前に、電子機器は、第1のキー関節点がすべての第1の標準関節点を含むかどうか、および第2のキー関節点がすべての第2の標準関節点を含むかどうかを判定することができる。
第1のキー関節点がすべての第1の標準関節点を含み、第2のキー関節点がすべての第2の標準関節点を含む場合、ステップS303が実行される。
第1のキー関節点が第1の標準関節点のいずれの関節点も含まない場合、または第2のキー関節点が第2の標準関節点のいずれの関節点も含まない場合、ユーザ動作を再取得するために、ステップS301が実行される。この場合、電子機器は、第1のプロンプト情報を出力することができ、第1のプロンプト情報は、ユーザ動作において収集されたユーザの身体の範囲を調整するようにユーザに促すために使用される。
第1のプロンプト情報は、カメラに対するユーザの位置を調整するようにユーザに促すために使用され得る。第1のプロンプト情報は、第1のキー関節点に含まれない第1の標準関節点、および/または第2のキー関節点に含まれない第2の標準関節点に関する情報をさらに含むことができ、あるいは、第1のプロンプト情報は、カメラに対するユーザの位置を調整するようにユーザに促すために、すべての第1の標準関節点およびすべての第2の標準関節点に関する情報をさらに含むことができる。このように、ユーザ動作は、第1の標準関節点および第2の標準関節点のすべてを含み、第1の標準関節点および第2の標準関節点は、ユーザ動作の収集範囲を超えない。
ステップS305の前に、電子機器は、候補動作に第3の標準関節点が存在するかどうか、すなわち、第3のキー関節点がすべての第3の標準関節点を含むかどうかを判定することができる。
いくつかの実施形態では、第3の標準関節点のいずれの関節点も候補動作に存在しない場合、ユーザ動作を再取得するために、ステップS301が行われてもよい。すべての第3の標準関節点が候補動作に存在する場合、ステップS305が行われる。少なくとも1つの第3の標準関節点が少なくとも1つの第1の標準関節点および少なくとも1つの第2の標準関節点のすべてまたは一部である場合に、第1のキー関節点がすべての第1の標準関節点を含み、第2のキー関節点がすべての第2の標準関節点を含むと判定されたとき、電子機器は、すべての第3の標準関節点が候補動作に存在すると判定することができる。
いくつかの他の実施形態では、第3の標準関節点にいずれの関節点も存在しない場合、電子機器は、候補動作のスコアが最低スコアであると判定することができる。少なくとも1つの第3の標準関節点のすべてまたは一部が存在する場合、ステップS305が行われてもよい。
候補動作に存在しない第3の標準関節点については、スコアが決定される際にその関節点の影響が考慮されてもよい。すなわち、その関節点に対応するスコアが差し引かれる。存在しない第3の標準関節点に対応する評価は、もはや決定されなくてもよい。
第3の標準関節点が存在しないか、または少なくとも1つの第3の標準関節点の一部が存在しない場合、第2のプロンプト情報が出力されてもよく、第2のプロンプト情報は、ユーザ動作において収集されたユーザの身体の範囲を調整するようにユーザに促すために使用される。言い換えれば、第2のプロンプト情報は、カメラに対するユーザの位置を調整するようにユーザに促すために使用される。第2のプロンプト情報は、第3のキー関節点に含まれない第3の標準関節点についての情報を含み、カメラに対するユーザの位置を調整するようにユーザに促すことができ、それにより、ユーザ動作は第3の標準関節点のすべてを含み、第3の標準関節点に対応する身体部位がユーザ動作の空間収集範囲を超えなくなる。第3のキー関節点は、第3の標準関節点と1対1で対応する。
ステップS306の前に、電子機器は、候補動作に第4の標準関節点が存在するかどうかを判定することができる。第4のキー関節点にいずれの関節点も存在しない場合、候補動作のスコアは最低スコアであると判定されてもよい。少なくとも1つの第4のキー関節点のすべてまたは一部が存在する場合、ステップS306が行われてもよい。一部の第4のキー関節点が存在しない場合、合計スコアが適切に下げられてもよい。電子機器は、存在しない一部の第4のキー関節点に対応する、動作評価指標セットにおけるスコアの減少に基づいて、コア指標に基づいて計算されたスコアを下げることができる。
第4の標準関節点が存在しないか、または少なくとも1つの第4の標準関節点の一部が存在しない場合、電子機器は、第3のプロンプト情報を出力することができる。第3のプロンプト情報は、ユーザ動作におけるユーザの身体の収集範囲を調整するようにユーザに促すために使用される。言い換えれば、第3のプロンプト情報は、カメラに対するユーザの位置を調整するようにユーザに促すために使用される。第3のプロンプト情報は、第4のキー関節点に含まれない第4の標準関節点に関する情報を含むことができ、ユーザ動作が第4の標準関節点のすべてを含み、第4の標準関節点がユーザ動作の収集範囲を超えないように、カメラに対するユーザの位置を調整するようにユーザに促す。
候補動作に存在しない第4の標準関節点、すなわち、第4のキー関節点に含まれない第4の標準関節点については、電子機器は、スコアを決定する際にその関節点の影響を考慮することができる。すなわち、その関節点に対応するスコアが差し引かれる。電子機器は、存在しない第4の標準関節点に対応する評価をもはや決定しなくてもよい。
電子機器は、第4のプロンプト情報を出力することができる。第4のプロンプト情報は、フィードバック情報が不完全であり、すべての標準関節点が評価されないことをユーザに通知するために使用される。評価されない標準関節点は、第3の標準関節点または第4の標準関節点であってもよい。言い換えれば、ユーザがフィットネス動作を行っていることが認識され得る場合に、電子機器は、第4のキー関節点に関する情報において一部の第4の標準関節点が欠落していると判定した場合、ユーザに通知することができる。
上述のように、ユーザの一部の身体部位がユーザ動作にない場合、フォールトトレランスメカニズムが提供される。画像ベースのフィットネス支援シナリオ、特に家庭での使用シナリオの場合、空間は限られており、画像取得機器の位置および角度は通常固定されている。その結果、ユーザがフィットネス動作を行うプロセスにおいて、一部の身体部位は、画面外にある場合があり、認識され得ない(例えば、足首が画面外にあり、ユーザと機器との間の距離が近いために見えない)。一部の身体部位が、環境的な制限のために、ユーザ動作範囲、すなわち、スクリーン範囲またはビデオ収集範囲を超える場合、本出願の本実施形態において提供される方法を使用することによって、依然として、ユーザによって行われるフィットネス動作がカウント、採点、および評価され、一部の骨格関節点が画像認識範囲内にないために引き起こされる認識および評価エラーを回避することができる。
各フィットネス動作について、その動作を認識することができる最小の関節点セット、すなわち第1のキー関節点および第2のキー関節点を含む関節点セットが作成される。最小関節点セット内のすべての関節点がユーザ動作に存在する場合、ユーザによって行われるフィットネス動作が認識され得て、ユーザによって完了されたフィットネス動作がカウントされ得る。
各フィットネス動作について、基本ガイダンス関節点セット、すなわち第3の標準関節点を含む関節点セットが作成される。基本ガイダンス関節点セット内のすべての関節点がユーザ動作に存在する場合、ユーザによって行われるフィットネス動作に対して基本的な採点および評価が行われ得る。基本ガイダンス関節点セットは、最小関節点セットと同じであっても異なっていてもよい。スクワット動作の場合、基本ガイダンス関節点セットおよび最小関節点セットはそれぞれ、股関節点および膝関節点を含むことができる。
ユーザ動作が基本ガイダンス関節点セット内のすべての関節点を含む場合、電子機器は、基本的な採点およびガイダンスをユーザに提供することができる。
ユーザ動作が基本ガイダンス関節点セットおよび/または最小関節点セット内のすべての関節点を含まない場合、電子機器は、プロンプト情報を出力して、収集されたユーザ動作が基本ガイダンス関節点セットおよび/または最小関節点セット内のすべての関節点を含むように、ユーザ動作の収集範囲を調整するようにユーザに促すことができる。
各フィットネス動作について、拡張ガイダンス関節点セット、すなわち第4の標準関節点を含む関節点セットが作成される。すべての第4の標準関節点がユーザ動作に存在しない場合、ユーザ動作が二次指標を満たすかどうかが判定され得ず、二次指標に対応する評価が出力されないことがあり、スコアが適切に下げられてもよい。
ステップS301~S307の後、ユーザがフィットネス動作を行ったかどうかが正確に判定され得て、ユーザが動作を完了した回数が記録され、ユーザが完了した動作の品質が評価され、誤った部分的な動作が認識され、フィードバックおよびガイダンスがユーザに提供される。
ユーザの身体部位の位置に関連する位置変化範囲および移動軌跡などの情報は、2次元空間における位置、すなわちユーザ動作における位置を示すために使用されてもよく、または3次元空間における位置、すなわちユーザ動作に基づいて決定された3次元空間における位置を示すために使用されてもよいことを理解されたい。これは、本出願の本実施形態において限定されない。
図4は、本出願の実施形態によるフィットネスを支援するための方法を示す。本方法は、フィットネスを支援するための装置によって実行されてもよく、フィットネスを支援するための装置は電子機器である。フィットネスを支援するための装置は、カメラ、プロセッサ、メモリ、ディスプレイ/スピーカ/ブルートゥース通信モジュールなどを含む。プロセッサは、CPUを含み、GPU、NPUなどをさらに含むことができる。
ステップS201:カメラは、ユーザ動作のビデオを取得する。
ステップS202:CPU/GPU/NPUは、ユーザ動作のビデオ内のユーザの骨格関節点を認識するために骨格関節点認識アルゴリズムを実行する。
ステップS203:メモリは、動作評価指標セットを記憶する。メモリは、例えばROMであってもよい。
ステップS204:CPUは、フィットネス動作を判定し、採点および評価を実行する。CPUは、メモリに記憶された動作評価指標セットと、認識された骨格関節点とに基づいて、ユーザがフィットネス動作を行っているかどうかを判定し、ユーザがフィットネス動作を行っていると判定した場合にユーザ動作を採点および評価する。
ステップS205:ディスプレイ/スピーカ/ブルートゥースヘッドセットは、フィードバック情報を出力する。ブルートゥース通信モジュールは、フィードバック情報をブルートゥースヘッドセットに送信することができ、ブルートゥースヘッドセットは、フィードバック情報を出力することができる。フィードバック情報は、ユーザ動作のスコアおよび評価を含むことができる。ディスプレイは、フィードバック情報を出力する。グラフィカルユーザインターフェースについては、図5(a)~図5(c)を参照されたい。
図5(a)~図5(c)は、本出願の一実施形態によるグラフィカルユーザインターフェース(graphical user interface、GUI)の概略図である。本出願では、フィットネスを支援するための装置が携帯電話である例が説明のために使用される。
図5(a)は、携帯電話のロック解除モードにおいて携帯電話の画面表示システムによって表示される現在出力されているインターフェースコンテンツ501を示す。インターフェースコンテンツ501は、携帯電話のホーム画面である。インターフェースコンテンツ501は、アリペイ、アプリストア、ギャラリ、ウェイボー、ウィーチャット、カード、設定、およびフィットネスなどの複数のサードパーティのアプリケーション(application、App)を表示する。インターフェースコンテンツ501は、より多くのアプリケーションをさらに含むことができることを理解されたい。これは、本出願において限定されない。
ユーザがホーム画面501上のフィットネスアプリケーションのアイコン502をタップしたことを検出した後、携帯電話は、フィットネスアプリケーションを開始し、図5(b)に示すフィットネスアプリケーションのインターフェース503を表示することができる。フィットネスアプリケーションのインターフェース503は、複数のフィットネス動作を含むことができる。
ユーザがフィットネスアプリケーションのインターフェース503においてフィットネス動作をタップしたことを検出した後、携帯電話は、図5(c)に示すフィットネス動作のガイダンスインターフェースを表示することができる。ガイダンスインターフェースは、標準フィットネス動作504、カメラがリアルタイムで収集したユーザ動作のビデオ505、評価、すなわち、ガイダンス情報506、ユーザ動作カウント507などを含むことができる。
図6は、本出願の一実施形態によるグラフィカルユーザインターフェースの概略図である。テレビは、図6に示されるフィットネス動作のガイダンスインターフェースを表示することができる。
図5(a)~図5(c)および図6は、説明のための単なる例であることを理解されたい。タブレットコンピュータまたはパーソナルコンピュータのディスプレイなどの表示機能を有する別の電子機器もまた、図5(c)および図6に示されるフィットネス動作のガイダンスインターフェースを表示することができる。
図7は、本出願の一実施形態によるフィットネスを支援するための方法の概略フローチャートである。
ステップS601:電子機器は、ユーザ動作を取得する。
電子機器は、ユーザ動作のリアルタイム画像を取得することができる。言い換えれば、電子機器は、ユーザ動作のビデオを取得することができる。ユーザ動作のビデオでは、ユーザがユーザ動作を行っている。ユーザ動作のビデオは、電子機器によってリアルタイムで収集された画像から形成されたビデオであってもよい。
電子機器は、ユーザ動作における関節点を認識して、ユーザ動作における第1の身体部位および第2の身体部位を決定することができる。
電子機器は、ユーザ動作におけるユーザの骨格関節点を認識することができる。骨格関節点は、関節点と呼ばれることもある。ユーザの骨格関節点は、ユーザの身体部位を表すことができる。電子機器は、ユーザの骨格関節点の位置変化に基づいてユーザの身体部位の位置および動作などを決定することができる。代替として、ユーザの身体部位は別の方法で認識されてもよい。身体部位は、身体部位として理解されてもよい。
電子機器は、関節点に基づいて第1の身体部位および第2の身体部位を認識することができる。
ステップS602:電子機器は、ユーザ動作における第1の身体部位の移動軌跡を決定する。
第1の身体部位は、身体の1つまたはいくつかの部位であってもよい。
第1の身体部位の移動軌跡は、第1の身体部位が開始位置から終了位置まで通過する経路を含む動作の空間的特徴を指すことができる。移動軌跡は、移動軌跡方向、移動軌跡形状などを含むことができる。第1の身体部位の移動軌跡方向は、第1の身体部位がユーザ動作を行うときに形成される移動方向であってもよい。移動軌跡形状は、直線、曲線、またはそれらの組合せであってもよい。
電子機器は、第1の身体部位の移動軌跡に基づいて、ユーザ動作から候補動作を決定することができる。電子機器は、第1の身体部位の移動軌跡が第1の予め設定された条件を満たすかどうかを判定し、第1の予め設定された条件を満たす移動軌跡に対応するユーザ動作を候補動作として使用する。候補動作は、第1の身体部位の移動軌跡が第1の予め設定された条件を満たすユーザ動作である。
第1の予め設定された条件はまた、第1の身体部位の予め設定された位置変化特徴として理解されてもよい。ユーザ動作において、電子機器は、ユーザの第1の身体部位の移動軌跡が予め設定された位置変化特徴を満たすユーザ動作を候補動作として決定することができる。すなわち、電子機器は、ユーザ動作から、第1の身体部位の移動軌跡の予め設定された特徴を満たす候補動作を決定することができる。電子機器は、第1の身体部位の移動軌跡の特徴に基づいて、ユーザ動作のビデオから候補動作を決定することができる。
予め設定された位置変化特徴は、移動軌跡の形状、移動軌跡の周期性などのうちの1つまたは複数を含むことができる。
電子機器は、第1の身体部位の移動軌跡が予め設定された特徴を満たすビデオを候補動作として選択することができる。すなわち、候補動作は、移動軌跡が特定の特徴を有するビデオである。
例えば、電子機器は、第1の身体部位の移動軌跡の周期性に基づいて、ユーザ動作から候補動作を決定することができる。代替として、電子機器は、第1の身体部位の移動軌跡と予め設定された軌跡との類似度が予め設定された値未満であるユーザ動作を候補動作として選択することができる。
候補動作は、第1の身体部位の移動軌跡の周期に対応するビデオであってもよく、または第1の身体部位の移動軌跡の周期内のセグメントに対応するビデオまたは画像、例えば、周期内の第1の身体部位の特定の位置範囲における軌跡に対応するビデオまたは画像であってもよい。候補動作の選択の仕方は、特定のフィットネス動作に基づいて決定されてもよい。
予め設定された特徴は、第1の身体部位に対応する骨格関節点の位置変化の仕方を示すために使用され得る。第1の身体部位の位置変化の仕方は、第1の身体部位の移動方向の変化であってもよい。
第1の身体部位の移動方向の変化は、例えば、上向き移動、下向き移動、または上下往復移動であってもよい。第1の身体部位の移動方向は、第1の身体部位上のすべてまたは一部の骨格関節点の移動方向として理解されてもよい。第1のキー関節点は、第1の身体部位上の骨格関節点である。第1のキー関節点の位置変化の仕方は、代替として、移動軌跡の形状であってもよい。例えば、移動軌跡は、三角形、円、円弧、折れ線などの形状である。
第1の身体部位の角度変化は、第1の身体部位の動作の角度変化、ならびに第1の身体部位上の関節点間の方向変化および相対位置変化である。
第1の身体部位の移動軌跡は、第1の身体部位上の第1のキー関節点の移動軌跡として理解されてもよい。決定された候補動作は、例えば、上下往復移動プロセスにおける第1のキー関節点の上向きの移動に対応するユーザ動作であってもよい。代替として、第1のキー関節点の移動軌跡が三角形である場合、決定された候補動作は、第1のキー関節点が三角形の辺上を移動するときの対応するユーザ動作である。
ステップS603:電子機器は、候補動作における第2の身体部位の動作変化の大きさを決定する。
電子機器は、候補動作における第2の身体部位の動作変化の大きさを決定することができる。
第2の身体部位の動作変化の大きさはまた、第2の身体部位の位置変化の大きさ、すなわち、第2の身体部位の最大位置変化範囲の2つの端点間の差として理解されてもよい。動作変化の大きさは、変化角度、変化距離などを含むことができる。言い換えれば、第2の身体部位の動作変化の大きさは、第2の身体部位と水平方向または垂直方向との間の夾角の最大値と最小値との差であってもよい。代替として、第2の身体部位の動作変化の大きさは、第2の身体部位の位置変化プロセスで第2の身体部位が通過する位置間の最長距離であってもよい。代替として、第2の身体部位の動作変化の大きさは、第2の身体部位間の距離変化量の最大値であってもよい。
電子機器は、ユーザ動作における第2の身体部位の動作変化が、予め設定された動作変化範囲の最大値要件および最小値要件を満たすと判定して、ユーザ動作がフィットネス動作であると判定することができる。
第2の身体部位は、1つまたは複数の身体部位を含むことができる。第2の身体部位は、第1の身体部位のすべてまたは一部を含むことができる。代替として、第2の身体部位は、ユーザの第1の身体部位以外の身体部位であってもよい。
電子機器は、ユーザ動作が第2の身体部位の予め設定された動作変化範囲を満たすとさらに判定して、ユーザ動作がフィットネス動作であると判定することができる。
候補動作における第2の身体部位の動作変化範囲は、候補動作における第2の身体部位の動作変化の大きさを含むことができる。候補動作における第2の身体部位の動作変化範囲は、候補動作における第2の身体部位の動作開始位置および候補動作における第2の身体部位の動作終了位置のうち少なくとも1つを含むことができる。
候補動作における第2の身体部位の動作開始位置および動作終了位置は、第1の身体部位の移動軌跡に基づいて決定されてもよい。例えば、候補動作における第2の身体部位の動作開始位置は、候補動作の第1のフレーム画像における第1の身体部位の位置であってもよい。候補動作における第2の身体部位の動作終了位置は、候補動作の第1のフレーム画像における第1の身体部位の位置である。代替として、第1の身体部位の移動軌跡上の点に対応する、候補動作における画像内の第2の身体部位の位置は、第2の身体部位の動作開始位置または動作終了位置であると判定されてもよい。
電子機器は、第1の身体部位の移動軌跡上の第1の身体部位の位置と第2の身体部位の動作開始位置または動作終了位置との対応関係を記憶することができる。
候補動作における第2の身体部位の位置変化範囲は、候補動作における第2の身体部位の位置変化の大きさに対応する範囲であってもよい。候補動作は、第2の身体部位の位置変化の大きさが、候補動作における第2の身体部位の動作開始位置と動作終了位置に対応する差となるように選択される。代替として、候補動作における第2の身体部位の位置変化範囲は、候補動作の第1のフレーム画像における第2の身体部位の位置に対する候補動作の最後のフレーム画像における第2の身体部位の位置の変化を示すために使用される。
予め設定された動作変化範囲の最大値要件は、予め設定された動作変化範囲の最大値の区間範囲であり、予め設定された動作変化範囲の最小値要件は、予め設定された動作変化範囲の最小値の区間範囲である。第2の身体部位の動作変化範囲の最大値が予め設定された動作変化範囲の最大値区間内にあり、第2の身体部位の動作変化範囲の最小値が予め設定された動作変化範囲の最小値区間内にある場合、ユーザ動作はフィットネス動作であると考えられてもよい。すなわち、ユーザは、フィットネス動作を行っている。
第2の身体部位は、1つまたは複数の身体部位を含むことができる。電子機器は、第2の身体部位の位置変化範囲に基づいてユーザがフィットネス動作を行っているかどうかを判定することができる。電子機器は、ユーザ動作に基づいて第2の身体部位の位置変化範囲を取得することができる。電子機器は、フィットネス動作に対応する記憶された認識条件に基づいて、ユーザがフィットネス動作を行っているかどうかを判定する。
認識条件は、第2の身体部位の位置変化範囲などであってもよい。
動作変化範囲は、位置変化の仕方を含むことができる。位置変化の仕方は、例えば、上下運動、水平運動、円運動、または角度変化であってもよい。第2の身体部位の動作変化範囲は、第2の身体部位の角度変化範囲を含んでもよく、または第2の身体部位の相対位置の変化範囲を含んでもよい。
電子機器は、ユーザ動作における骨格関節点を認識して、ユーザ動作における第2の身体部位を決定することができる。電子機器は、ユーザ動作における第2の身体部位が第2の身体部位の予め設定された動作変化範囲を満たすと判定することができる。
電子機器は、第2の身体部位の位置変化範囲に基づいて、ユーザによって行われたフィットネス動作のタイプを決定することができる。第2の身体部位の位置変化が満たす認識条件に基づいて、認識条件に対応するフィットネス動作のタイプが決定されてもよい。
電子機器は、ステップS601の前またはステップS602の前に入力情報を取得することができる。入力情報は、フィットネス動作を示すために使用される。電子機器は、入力情報に基づいて、第1の予め設定された条件、すなわち、第1の身体部位の移動軌跡が満たす予め設定された条件を決定する。
電子機器は、フィットネス動作に対応する第1の身体部位、第2の身体部位、第3の身体部位、第4の身体部位などのうちの少なくとも1つを決定することができる。
電子機器は、入力情報に基づいてフィットネス動作を決定することができる。言い換えれば、電子機器は、入力情報に基づいてフィットネス動作のタイプを決定することができる。異なるフィットネス動作については、第2の身体部位は、異なる身体部位であってもよい。認識条件は、第2の身体部位の位置変化範囲であってもよい。したがって、認識条件は、異なるフィットネス動作に対して異なってもよい。電子機器は、このタイプのフィットネス動作に対応する認識条件に基づいて、ユーザがフィットネス動作を行っているかどうかを判定することができる。
認識条件は、第2の身体部位の動作変化の大きさを含むことができ、または認識条件は、第2の身体部位の動作開始位置および第2の身体部位の動作終了位置のうち少なくとも1つを含むことができる。ユーザ動作における第2の身体部位が認識条件を満たす場合、ユーザ動作がフィットネス動作である、すなわち、ユーザがフィットネス動作を行っていると判定されてもよい。
入力情報は、フィットネス動作を示すため、電子機器は、フィットネス動作に対応する第2の身体部位の範囲のみに基づいて、ユーザがフィットネス動作を行っているかどうかを判定することができ、ユーザ動作がフィットネス動作の別の認識条件を満たすかどうかを判定する必要がなく、計算量が削減される。第2の身体部位の動作変化範囲は、第2の身体部位の動作変化の大きさを含むことができ、または第2の身体部位の動作開始位置および第2の身体部位の動作終了位置を含むことができる。
第2の身体部位の動作開始位置および第2の身体部位の動作終了位置は、第1の身体部位の移動軌跡に基づいて決定されてもよい。第2の身体部位の動作開始位置は、候補動作における第2の身体部位の動作開始位置、すなわち、候補動作に対応する第1のフレーム画像における第2の身体部位の位置であってもよい。代替として、第2の身体部位の動作開始位置は、第1の身体部位が移動軌跡上に位置する点に対応する、候補動作の画像における第2の身体部位の位置であってよい。
ユーザの第2の身体部位の位置変化範囲は、ユーザ動作全体における第2の身体部位の位置変化範囲であってもよく、すなわち、ユーザ動作における第2の身体部位の位置変化の大きさの最大値に対応する範囲であってもよい。電子機器は、ユーザ動作において毎回任意の2つのフレーム画像を選択し、第2の身体部位の位置を比較し、複数回にわたってフレーム画像を選択して、第2の身体部位の位置を比較することによって、第2の身体部位の位置変化の大きさの最大値を決定することができる。
代替として、ユーザの第2の身体部位の位置変化範囲は、ユーザ動作の候補動作における位置変化範囲であってもよい。候補動作は、ユーザ動作におけるビデオである。
ステップS602の前に、電子機器は、ユーザ動作がユーザの第1の身体部位を含むかどうかを判定することができる。
ユーザ動作がユーザの第1の身体部位を含む場合、ステップS602が行われる。
ユーザ動作が第1の身体部位を含まない場合、電子機器はプロンプト情報を出力することができる。プロンプト情報は、ユーザ動作の画像収集範囲を調整するようにユーザに促すために使用され得る。この場合、電子機器は後続のステップを実行することができない。
電子機器は、ユーザ動作がユーザの第2の身体部位を含むかどうかをさらに判定することができる。ユーザ動作が第2の身体部位を含まない場合、電子機器はプロンプト情報を出力することができる。プロンプト情報は、ユーザ動作の画像収集範囲を調整するようにユーザに促すために使用され得る。
ステップS602の前に、電子機器は、ユーザ動作の水平方向または垂直方向をさらに決定することができる。電子機器は、水平方向または垂直方向に基づいて、ユーザの身体部位の位置、位置の変化、身体部位の移動軌跡などを決定することができる。
ステップS604:電子機器は、動作変化の大きさに基づいて、ガイダンス情報を出力することを決定する。
ユーザがフィットネス動作を行う場合、電子機器は、ユーザ動作に対する評価およびガイダンスを提供することができる。
電子機器は、第2の身体部位の動作変化の大きさが第2の予め設定された条件を満たすかどうかに基づいて、ガイダンス情報を出力すべきかどうかを判定することができる。第2の予め設定された条件は、認識条件と呼ばれることもある。
動作変化の大きさが第2の予め設定された条件を満たすと判定した場合、電子機器は、ガイダンス情報を出力することを決定する。第2の身体部位の動作変化の大きさが第2の予め設定された条件を満たす場合、ユーザがフィットネス動作を行っていると考えられる。
いくつかの実施形態では、電子機器は、ユーザ動作とフィットネス動作の標準動作との間の類似度を判定し、ユーザ動作についての評価およびガイダンスを提供することができる。
いくつかの他の実施形態では、フィットネス動作について、電子機器は、ユーザ動作と評価情報との対応関係を記憶することができる。電子機器は、ユーザの身体部位の位置情報を使用してユーザ動作を示すことができる。電子機器は、ユーザの第1の身体部位の位置情報と評価情報との対応関係を記憶することができる。
第2の身体部位の位置情報は、第2の身体部位の位置を示すために使用されてもよく、第2の身体部位の位置は、位置変化範囲または特定の時点における位置であってもよい。
第2の身体部位の位置情報は、第2の身体部位の動作変化の大きさ、第2の身体部位の動作開始位置、第2の身体部位の動作終了位置、および第2の身体部位の移動軌跡のうち少なくとも1つを含む。
電子機器は、第1の身体部位の移動軌跡に基づいて、第2の身体部位がある位置に位置する時点を決定し、その時点におけるユーザ動作を決定し、その時点における第2の身体部位の位置情報を決定し、それにより第2の身体部位の位置情報と評価情報との対応関係に基づいて、対応する評価情報を決定することができる。
電子機器は、第1の身体部位の移動軌跡における第1の身体部位の位置と、第2の身体部位の動作開始位置および第2の身体部位の動作終了位置のそれぞれとの間の記憶された対応関係に基づいて、第2の身体部位の動作開始位置および第2の身体部位の動作終了位置を決定することができる。電子機器は、第2の身体部位の動作開始位置および第2の身体部位の動作終了位置が認識条件を満たすかどうかに基づいて、ガイダンス情報を出力するかどうかを判定する。
電子機器は、第1の身体部位の移動軌跡に基づいて、第1の身体部位がある範囲内に位置する期間を決定し、その期間内の第2の身体部位の位置情報を決定して、第2の身体部位の位置情報と評価情報との対応関係に基づいて、対応する評価情報を決定することができる。
電子機器は、第1の身体部位の位置変化の状態に基づいて、対応する評価情報を決定することができる。
例えば、第2の身体部位の位置情報は、ユーザ動作または候補動作における第2の身体部位と水平または垂直方向との間の夾角の最大値または最小値であってもよく、あるいは夾角の変化範囲、すなわち、最小値から最大値までの範囲または夾角の最小値から最大値までの範囲であってもよい。第2の身体部位の位置は、代替として、第2の身体部位の長さに対する第2の身体部位の移動距離の比であってもよい。第2の身体部位の位置は、代替として、第2の身体部位と別の身体部位との間の相対的な位置関係、第2の身体部位間の相対的な関係などであってもよい。
ユーザがフィットネス動作を行う場合、電子機器は、第1の位置情報に対応する第1の評価情報を決定する。第1の位置情報は、ユーザ動作における第2の身体部位の位置を示すために使用される。
第2の身体部位の位置情報は、評価情報と1対1に対応することができる。第2の身体部位の位置情報は、第2の身体部位の動作変化範囲、第2の身体部位の動作変化範囲の大きさ、第2の身体部位の動作変化範囲の限界値、および第2の身体部位の移動軌跡のうち少なくとも1つを含むことができる。
第2の身体部位の動作変化範囲の限界値は、第2の身体部位の動作変化範囲の最大値または最小値である。例えば、この値は、第2の身体部位の角度の最大値または最小値を含んでもよく、第2の身体部位間の距離の最大値または最小値、すなわち、身体部位と他の身体部位との間の距離の最大値または最小値を含んでもよい。
第2の身体部位の動作変化の大きさは、動作変化範囲の大きさ、すなわち、第2の身体部位の動作変化範囲の最大値と最小値との間の差と呼ばれることもある。
第2の身体部位の移動軌跡と評価情報との対応関係は、例えば、第2の身体部位の移動軌跡の形状や周期などと評価情報との対応関係であってもよい。
電子機器は、第1の評価情報に基づいてガイダンス情報を出力することができる。第1の評価情報は、スコアおよび/または評価を含むことができる。ガイダンス情報は、第1の評価情報と同じであっても、異なっていてもよい。電子機器は、ユーザの別の身体部位の動作完了状態に基づいて第1の評価情報を調整して、ガイダンス情報を取得してもよい。
電子機器は、ユーザの第2の位置情報に対応する第2の評価情報を決定することができる。第2の位置情報は、ユーザ動作における第3の身体部位の位置を示すために使用される。第2の評価情報は、例えば、スコアおよび/または評価であってもよい。第2の位置情報は、第3の身体部位の動作変化範囲、第3の身体部位の動作変化の大きさ、第3の身体部位の動作変化範囲の限界値、および第3の身体部位の移動軌跡のうち少なくとも1つを含むことができる。
電子機器は、第2の評価情報および第1の評価情報に基づいてガイダンス情報を出力することができる。
第2の身体部位の位置に対応するスコアが予め設定された値よりも大きい場合、ガイダンス情報は、第2の評価情報における評価を含むことができる。第2の身体部位の位置に対応する、第1の評価情報のスコアが予め設定された値以上である場合、電子機器は、第2の評価情報における評価を出力することができる。逆に、第2の身体部位の位置に対応する、第1の評価情報のスコアが予め設定された値未満である場合、ガイダンス情報は、第1の評価情報における評価のみを含んでもよい。
フィットネス動作について、ユーザの主な身体部位によって完了された動作が標準的でない場合は、身体部位の動作のみに関するガイダンスが提供されてもよく、ユーザの身体部位によって完了された動作が比較的標準的である場合は、他の身体部位の動作に関するガイダンスが提供されてもよい。スコアが予め設定された値未満である場合、電子機器は第2の評価情報を決定しなくてもよい。
電子機器は、第2の評価情報のスコアに基づいて第1の評価情報のスコアを調整して、ガイダンス情報のスコアを決定することができる。
第2の評価情報のスコアは、第1の評価情報のスコアが増やされまたは減らされるスコアであってもよく、第1の評価情報のスコアは、そのスコア分だけ増やされまたは減らされてもよい。代替として、第2の評価情報のスコアは、第3の身体部位の動作のスコアであってもよい。電子機器は、第3の身体部位の重みに基づいて、第2の評価情報のスコアにその重みを乗じることによって得られる値だけ第1の評価情報のスコアを増やし、または減らすことができる。
第3の身体部位は、1つまたは複数の身体部位を含むことができる。第3の身体部位は、ユーザの第2の身体部位以外の身体部位であってもよい。
電子機器は、ユーザ動作がユーザの第3の身体部位を含むかどうかを判定することができる。ユーザ動作が第3の身体部位を含まない場合、電子機器は、プロンプト情報を出力することができる。プロンプト情報は、ユーザ動作の画像収集範囲を調整するようにユーザに促すために使用され得る。
ステップS601およびS602の後、電子機器は、ユーザがフィットネス動作を行っているかどうかを正確に判定することができ、それにより、ユーザがフィットネス動作を行っているときにガイダンスが提供され、ユーザ体験を改善することができる。
図9は、本出願の一実施形態による電子装置の構造の概略図である。装置700は、取得モジュール701および決定モジュール702を含む。
取得モジュール701は、ユーザ動作を取得するように構成される。
決定モジュール702は、ユーザ動作から、ユーザ動作における第1の身体部位の移動軌跡が第1の予め設定された条件を満たす候補動作を決定するように構成される。
決定モジュール702は、候補動作における第2の身体部位の動作変化の大きさを決定するようにさらに構成される。
決定モジュール702は、動作変化の大きさに基づいて、ガイダンス情報を出力することを決定するようにさらに構成される。
任意選択で、装置700は、動作変化の大きさが第2の予め設定された条件を満たすと判定するように構成された判定モジュールをさらに含む。
決定モジュール702は、ガイダンス情報を出力することを決定するようにさらに構成される。
任意選択で、取得モジュール701は、入力情報を取得するようにさらに構成される。
決定モジュール702は、入力情報に対応する第1の予め設定された条件を決定するようにさらに構成される。
任意選択で、決定モジュール702は、第1の位置情報に対応する第1の評価情報を決定するようにさらに構成され、第1の位置情報は、第2の身体部位の動作変化の大きさ、第2の身体部位の動作開始位置、第2の身体部位の動作終了位置、および第2の身体部位の移動軌跡のうちの少なくとも1つを含み、第2の身体部位の動作開始位置および第2の身体部位の動作終了位置が、第1の身体部位の移動軌跡に基づいて決定される。
装置700は、第1の評価情報に基づいてガイダンス情報を出力するように構成された出力モジュールをさらに含む。
任意選択で、決定モジュール702は、ユーザの第2の位置情報に対応する第2の評価情報を決定するようにさらに構成され、第2の位置情報は、第3の身体部位の動作変化の大きさ、第3の身体部位の動作開始位置、第3の身体部位の動作終了位置、および第3の身体部位の移動軌跡のうちの少なくとも1つを含み、第3の身体部位の動作開始位置および第3の身体部位の動作終了位置が、第1の身体部位の移動軌跡に基づいて決定される。
出力モジュールは、第2の評価情報および第1の評価情報に基づいてガイダンス情報を出力するようにさらに構成される。
任意選択で、装置700は、ユーザ動作における第1の身体部位および第2の身体部位を決定するために、ユーザ動作における関節点を認識するように構成された認識モジュールをさらに含む。
任意選択で、決定モジュール702は、候補動作における第2の身体部位の動作変化の大きさおよび動作開始位置に基づいて、ガイダンス情報を出力することを決定するように、または候補動作における第2の身体部位の動作変化の大きさおよび動作終了位置に基づいて、ガイダンス情報を出力することを決定するように、または候補動作における第2の身体部位の動作変化の大きさと、動作開始位置および動作終了位置と、に基づいて、ガイダンス情報を出力することを決定するようにさらに構成され、第2の身体部位の動作開始位置および第2の身体部位の動作終了位置が、第1の身体部位の移動軌跡に基づいて決定される。
図10は、本出願の一実施形態による電子装置の構造の概略図である。装置800は、プロセッサ801および通信インターフェース802を含む。
通信インターフェース802は、ユーザ動作を取得するように構成される。
プロセッサ801は、ユーザ動作から、ユーザ動作における第1の身体部位の移動軌跡が第1の予め設定された条件を満たす候補動作を決定し、候補動作における第2の身体部位の動作変化の大きさを決定し、動作変化の大きさに基づいて、ガイダンス情報を出力することを決定するように構成される。
任意選択で、プロセッサ801は、動作変化の大きさが第2の予め設定された条件を満たすと判定し、ガイダンス情報を出力することを決定するように構成される。
任意選択で、通信インターフェース802は、入力情報を取得するようにさらに構成される。
プロセッサ801は、入力情報に対応する第1の予め設定された条件を決定するようにさらに構成される。
任意選択で、プロセッサ801は、第1の位置情報に対応する第1の評価情報を決定するように構成され、第1の位置情報は、第2の身体部位の動作変化の大きさ、第2の身体部位の動作開始位置、第2の身体部位の動作終了位置、および第2の身体部位の移動軌跡のうちの少なくとも1つを含み、第2の身体部位の動作開始位置および第2の身体部位の動作終了位置が、第1の身体部位の移動軌跡に基づいて決定され、第1の評価情報に基づいてガイダンス情報を決定する。
任意選択で、プロセッサ801は、ユーザの第2の位置情報に対応する第2の評価情報を決定するように構成され、第2の位置情報は、第3の身体部位の動作変化の大きさ、第3の身体部位の動作開始位置、第3の身体部位の動作終了位置、および第3の身体部位の移動軌跡のうちの少なくとも1つを含み、第3の身体部位の動作開始位置および第3の身体部位の動作終了位置が、第1の身体部位の移動軌跡に基づいて決定され、第2の評価情報および第1の評価情報に基づいてガイダンス情報を決定する。
任意選択で、プロセッサ801は、ユーザ動作における関節点を認識して、ユーザ動作における第1の身体部位および第2の身体部位を決定するようにさらに構成される。
任意選択で、プロセッサ801は、候補動作における第2の身体部位の動作変化の大きさおよび動作開始位置に基づいて、ガイダンス情報を出力することを決定するように、または候補動作における第2の身体部位の動作変化の大きさおよび動作終了位置に基づいて、ガイダンス情報を出力することを決定するように、または候補動作における第2の身体部位の動作変化の大きさと、動作開始位置および動作終了位置と、に基づいて、ガイダンス情報を出力することを決定するようにさらに構成され、第2の身体部位の動作開始位置および第2の身体部位の動作終了位置が、第1の身体部位の移動軌跡に基づいて決定される。
本出願の実施形態は、少なくとも1つのプロセッサおよび通信インターフェースを含む電子装置をさらに提供する。通信インターフェースは、別の電子装置と情報を交換するために電子装置によって使用され、プログラム命令が少なくとも1つのプロセッサによって実行されると、電子装置は、前述の方法を実行することが可能になる。
本出願の実施形態は、コンピュータプログラム記憶媒体をさらに提供する。コンピュータプログラム記憶媒体は、プログラム命令を含む。プログラム命令が直接的または間接的に実行されると、前述の説明における方法が実施される。
本出願の実施形態は、チップシステムをさらに提供する。チップシステムは、少なくとも1つのプロセッサを含み、プログラム命令が少なくとも1つのプロセッサによって実行されると、前述の説明における方法が実行される。
当業者であれば、本明細書で開示された実施形態に記載されている例と組み合わせて、ユニットおよびアルゴリズムのステップが、電子ハードウェア、または、コンピュータソフトウェアと電子ハードウェアとの組合せによって実施され得ることに気づくことができる。機能がハードウェアまたはソフトウェアによって実行されるかどうかは、技術的解決策の特定の用途および設計上の制約条件に依存する。当業者であれば、特定の用途ごとに異なる方法を用いて、説明されている機能を実施することができるが、その実施態様は、本出願の範囲を超えるものと考えられるべきではない。
当業者であれば、便宜的かつ簡潔な説明の目的で、前述のシステム、装置、およびユニットの詳細な動作プロセスについて、前述の方法の実施形態における対応するプロセスを参照していることを明確に理解することができる。本明細書では詳細は重ねて説明されない。
本出願の実施形態の説明において、「/」は、特に断らない限り「または」を意味する。例えば、A/Bは、AまたはBを表すことができる。本明細書において、「および/または」は、関連付けられた対象の関連付け関係を説明するに過ぎず、3つの関係が存在し得ることを表す。例えば、Aおよび/またはBは、以下の3つの場合を表すことができる。Aのみが存在する、AとBの両方が存在する、Bのみが存在する。加えて、本出願の実施形態の説明において、特に断らない限り、「複数」は、2以上を意味する。
「第1の」および「第2の」という用語は、説明のためにのみ使用され、相対的な重要性を示すまたは暗示するものとして、あるいは技術的特徴の量を暗示するものとして解釈されるべきではない。したがって、「第1の」または「第2の」によって限定される特徴は、1つまたは複数の特徴を明示的または暗示的に含むことができる。
本出願で提供されるいくつかの実施形態では、開示されたシステム、装置、および方法は、他の仕方で実装されてもよいことを理解されたい。例えば、説明された装置の実施形態は、単なる例である。例えば、ユニットへの分割は、論理的な機能分割に過ぎず、実際の実装では他の分割であってもよい。例えば、複数のユニットまたは構成要素は、別のシステムに組み合わされてもよく、もしくは統合されてもよく、または一部の特徴は無視されてもよく、もしくは実行されなくてもよい。加えて、表示または論述されている相互結合または直接結合または通信接続は、いくつかのインターフェースを通じて実装されてもよい。装置またはユニット間の間接結合または通信接続は、電子的、機械的、または他の形態で実装されてもよい。
別個の部分として記載されたユニットは、物理的に分かれている場合も、分かれていない場合もあり、ユニットとして表示された部分は、物理ユニットである場合も、そうでない場合もあり、1つの位置に配置される場合があるか、または複数のネットワークユニット上に分散される場合がある。ユニットの一部またはすべては、実施形態の解決策の目的を達成するために、実際の要件に基づいて選択されてもよい。
加えて、本出願の実施形態における機能ユニットは、1つの処理ユニットに統合されてもよく、またはユニットのそれぞれは、物理的に単独で存在してもよく、または2つ以上のユニットが1つのユニットに統合される。
機能がソフトウェア機能ユニットの形態で実装され、独立した製品として販売または使用される場合、機能はコンピュータ可読記憶媒体に記憶され得る。このような理解に基づいて、本出願の技術的解決策は本質的に、または従来技術に寄与する部分、もしくは技術的解決策の一部は、ソフトウェア製品の形態で実装されてもよい。コンピュータソフトウェア製品は、記憶媒体に記憶され、本出願の実施形態における方法のステップのすべてまたは一部を実行するようにコンピュータ機器(パーソナルコンピュータ、サーバ、ネットワーク機器などであってもよい)に指示するためのいくつかの命令を含む。前述の記憶媒体は、USBフラッシュドライブ、リムーバブルハードディスク、読み取り専用メモリ(read-only memory、ROM)、ランダムアクセスメモリ(random access memory、RAM)、磁気ディスク、または光ディスクなどの、プログラムコードを記憶することができる任意の媒体を含む。
前述の説明は、本出願の特定の実施態様に過ぎず、本出願の保護範囲を限定することは意図されていない。本出願において開示された技術的範囲内で当業者によって容易に想到されるいかなる変形または置換も、本出願の保護範囲内に入るものとする。それゆえ、本出願の保護範囲は、特許請求の範囲の保護範囲に従うものとする。
第4の標準関節点の位置情報は、第4の標準関節点の相対位置および/または各第4の標準関節点の位置変化状態を含むことができる。少なくとも1つの第4の標準関節点は、少なくとも1つの第3の標準関節点のすべてまたは一部を含むことができ、少なくとも1つの第4の標準関節点は、第3の標準関節点以外の骨格関節点も含むことができる。位置変化は、例えば、位置変化の大きさ、位置変化範囲、または移動軌跡であってもよい。
いくつかの他の実施形態では、フィットネス動作について、電子機器は、ユーザ動作と評価情報との対応関係を記憶することができる。電子機器は、ユーザの身体部位の位置情報を使用してユーザ動作を示すことができる。電子機器は、ユーザの第2の身体部位の位置情報と評価情報との対応関係を記憶することができる。