(57)【要約】本発明は、動作認識方法及び動作認識装置に関するものであって、ユーザーの動作情報を獲得し、前記動作情報と既設定された比較対象情報との間の動的タイムワーピングを実行することにより、ユーザーの実際動作を認識することができる方法を提供する。それにより、正確且つ迅速にユーザーの動作を認識することができる。【選択図】図１
2017531226.tif 000002
【特許請求の範囲】
【請求項１】
動作認識装置によって実行される、ＮＵＩ装置を介して受信されるユーザーの動作を認識するための方法において、
（ａ）ユーザーの動作情報を獲得するステップと、
（ｂ）前記動作情報と既設定された比較対象情報との間の動的タイムワーピング（ｄｙｎａｍｉｃ  ｔｉｍｅ  ｗａｒｐｉｎｇ）を実行するステップと、を含み、
前記（ａ）ステップは、
（ａ−１）前記ユーザーの動作を構成するが、前記ユーザー関節の３次元位置などから構成される１つ以上のポーズ情報に基づいて、前記ユーザーの動作をバイナリーベクトルに変換するステップと、
（ａ−２）前記変換されたバイナリーベクトルを前記ユーザーの動作情報として設定するステップと、を含む、動作認識方法。
【請求項２】
前記（ａ−１）ステップは、
メタ条件関数を設定するステップと、
前記メタ条件関数を構成する１つ以上の要素のうち、少なくとも１つを決定することによって条件式を生成するステップと、
前記条件式に基づいて、前記ユーザーの動作をバイナリーベクトルに変換するステップと、を含む、請求項１に記載の動作認識方法。
【請求項３】
前記条件式に基づいてバイナリーベクトルに変換するステップは、
前記ユーザーの動作を構成する１つ以上のポーズ情報のそれぞれを前記条件式に基づいてバイナリーベクトルに変換するが、前記変換されたバイナリーベクトルの集合を動作情報として設定するステップを含む、請求項２に記載の動作認識方法。
【請求項４】
前記メタ条件関数を設定するステップは、
前記メタ条件関数として平面条件関数を設定するステップを含み、
前記平面条件関数は、所定関節の位置を、２つ以上の関節に基づいて生成される平面を基準として判断する関数である、請求項２に記載の動作認識方法。
【請求項５】
前記メタ条件関数を設定するステップは、
前記メタ条件関数として角度条件関数を設定するステップを含み、
前記角度条件関数は、２つ以上の関節が連結されたベクトルが複数個存在すると、前記複数個のベクトルの角度が所定の範囲以内であるか否かを判断する関数である、請求項２に記載の動作認識方法。
【請求項６】
前記メタ条件関数を設定するステップは、
前記メタ条件関数として接近条件関数を設定するステップを含み、
前記接近条件関数は、２つ以上の関節間の距離が所定の範囲以内であるか否かを判断する関数である、請求項２に記載の動作認識方法。
【請求項７】
前記メタ条件関数を設定するステップは、
前記メタ条件関数として速度方向条件関数を設定するステップを含み、
前記の速度方向条件関数は、所定関節の速度及び２つ以上の関節が連結されたベクトルが所定の範囲以内であるか否かを判断する関数である、請求項２に記載の動作認識方法。
【請求項８】
前記メタ条件関数を設定するステップは、
前記メタ条件関数として速度大きさ条件関数を設定するステップを含み、
前記の速度大きさ条件関数は、２つ以上の関節が連結されたベクトルの速度と所定関節の速度との間の差が所定の範囲以内であるか否かを判断する関数である、請求項２に記載の動作認識方法。
【請求項９】
ＮＵＩ装置を介して受信されるユーザーの動作を認識するための動作認識装置であって、
ユーザーの動作情報を獲得するように構成される動作情報獲得部と、
前記動作情報と既設定された比較対象情報との間の動的タイムワーピング（ｄｙｎａｍｉｃ  ｔｉｍｅ  ｗａｒｐｉｎｇ）を実行するように構成される動作決定部と、を含み、
前記動作情報獲得部は、
前記ユーザーの動作を構成するが、前記ユーザー関節の３次元位置などから構成される１つ以上のポーズ情報に基づいて、前記ユーザーの動作をバイナリーベクトルに変換し、前記変換されたバイナリーベクトルを前記ユーザーの動作情報として設定するように構成されるベクトル変換部を含む、動作認識装置。
【請求項１０】
前記動作情報獲得部は、
メタ条件関数を設定し、前記メタ条件関数を構成する１つ以上の要素などのうち、少なくとも１つを決定することにより、条件式を生成するように構成される条件設定部を更に含み、
前記ベクトル変換部は、
前記条件設定部によって生成された条件式に基づいて、前記ユーザーの動作をバイナリーベクトルに変換する、請求項９に記載の動作認識装置。
【請求項１１】
前記ベクトル変換部は、更に、
前記ユーザーの動作を構成する１つ以上のポーズ情報のそれぞれを前記条件式に基づいてバイナリーベクトルに変換するが、前記変換されたバイナリーベクトルの集合を動作情報として設定するように構成される、請求項１０に記載の動作認識装置。
【請求項１２】
前記条件設定部は、更に、
前記メタ条件関数として平面条件関数を設定するように構成され、
前記平面条件関数は、所定関節の位置を、２つ以上の関節に基づいて生成される平面を基準として判断する関数である、請求項１０に記載の動作認識装置。
【請求項１３】
前記条件設定部は、更に、
前記メタ条件関数として角度条件関数を設定するように構成され、
前記角度条件関数は、２つ以上の関節が連結されたベクトルが複数個存在すると、前記複数個のベクトルの角度が所定の範囲以内であるか否かを判断する関数である、請求項１０に記載の動作認識装置。
【請求項１４】
前記条件設定部は、更に、
前記メタ条件関数として接近条件関数を設定するように構成され、
前記接近条件関数は、２つ以上の関節間の距離が所定の範囲以内であるか否かを判断する関数である、請求項１０に記載の動作認識装置。
【請求項１５】
前記条件設定部は、更に、
前記メタ条件関数として速度方向条件関数を設定するように構成され、
前記速度方向条件関数は、所定関節の速度及び２つ以上の関節が連結されたベクトルが所定の範囲以内であるか否かを判断する関数である、請求項１０に記載の動作認識装置。
【請求項１６】
前記条件設定部は、更に、
前記メタ条件関数として速度大きさ条件関数を設定するように構成され、
前記速度大きさ条件関数は、２つ以上の関節が連結されたベクトルの速度と任意の関節の速度との間の差が所定の範囲以内であるか否かを判断する関数である、請求項１０に記載の動作認識装置。
【請求項１７】
請求項１乃至請求項８のいずれか一項に記載の方法を実行するプログラムが記録されたコンピュータ読み取り可能な記録媒体。
【請求項１８】
コンピュータ装置と結合され、
請求項１乃至請求項８のいずれか一項に記載の方法を実行させるために、媒体に格納されたコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、動作認識方法及び動作認識装置に関し、より詳細には、ユーザーの動作と対応する比較対象情報を迅速に決定することにより、ユーザーの動作を正確且つ効率的に認識する方法及びその装置に関する。
【背景技術】
【０００２】
最近は、テキストなどの入力方式ではないユーザーの音声や動作などでコンピュータに命令を入力するＮＵＩ装置が開発され、普及している。
【０００３】
但し、現在普及しているＮＵＩ装置は、ユーザーの動作に応じる関節の位置を追跡することによってユーザーの動作を識別するのに止まるだけなので、更に、ＮＵＩ装置を介して入力されたユーザーの音声またはユーザーの動きを解釈しようとする努力がある。
【０００４】
このような努力の一環として、動的タイムワーピング（Ｄｙｎａｍｉｃ  Ｔｉｍｅ−Ｗａｒｐｉｎｇ）技法が提案されている。つまり、任意の動作がどのような命令を意味するのかを知るためには、該当命令のために予め定義されている動作と、ユーザーが取った現在動作とが一致するか否かを検証する技術が必要であるが、このための技術として、動的タイムワーピング技法が提案されている。
【０００５】
動的タイムワーピング技法によれば、２つのシーケンスがＭ及びＮとして与えられたとき、通常的にＯ（ＭＮ）だけの演算を実行するべきである。更に、Ｊが全関節の個数であるとすれば、Ｏ（ＭＮＪ）だけの演算を実行するべきであり、現在のユーザーが取った動作と比較するべきであると定義された動作がＫ個あると仮定すれば、Ｏ（ＭＮＪＫ）だけの演算を実行するべきであるが、このような高度な計算の複雑さは、多くのコンピューティング資源と時間を要求する問題点を有する。
【０００６】
また、動的タイムワーピング技法によれば、入力されたユーザーの動作を、予め定義された動作と比較するためにスケーリングをするべきであるのに、ユーザー別に身体の大きさが異なるか、動作の細かさの程度が異なるしかないので、ユーザーの動作が全く異なる動作として認識される問題点もある。
【０００７】
関連して、先行技術文献である特許文献１では、複数個のモーションを認識するモーション認識部、及び前記モーション認識部で認識されたモーションに応じて前記デジタルデバイスを制御する制御部を含み、前記制御部は、前記モーション認識部が前記複数個のモーションなどのうち、第１のモーションを認識する場合、前記モーション認識部で認識されたモーションに応じた前記デジタルデバイスの制御を停止し、以後前記複数個のモーションなどのうち、第２のモーションが認識された場合、前記モーション認識部で認識されたモーションに応じた前記デジタルデバイスの制御を実行することを特徴とする制御装置が記載されている。つまり、先行技術文献では、モーションを認識し、認識されたモーションに応じた制御を決定する内容に関して説明しているが、前記モーションを効果的に認識する方法に関しては言及していないところ、依然として前述された問題点を解決していない。
【０００８】
従って、前述された問題点を解決するための技術が必要になった。
【０００９】
一方、前述した背景技術は、発明者が本発明の導出のために保有していたとか、本発明の導出過程で習得した技術情報であって、必ず本発明の出願前に一般公衆に公開された公知技術とはいえない。
【先行技術文献】
【特許文献】
【００１０】
【特許文献１】韓国公開特許第１０−２０１２−００００８０７号公報
【発明の概要】
【発明が解決しようとする課題】
【００１１】
本発明の一実施例は、ユーザーの動作を正確に認識することに目的がある。
【００１２】
また、本発明の一実施例は、ＮＵＩ機器を介して入力されたユーザーの動作をバイナリーベクトルで表現することにより、ユーザー動作の意味を決定するための演算時間を最小化させることに目的がある。
【課題を解決するための手段】
【００１３】
前述した技術的課題を達成するための手段として、本発明の第１の側面によれば、ユーザーの動作を認識するための方法において、ユーザーの動作情報を獲得するステップと、前記動作情報と既設定された比較対象情報との間の動的タイムワーピング（ｄｙｎａｍｉｃ  ｔｉｍｅ  ｗａｒｐｉｎｇ）を実行するステップと、を含むことができる。
【００１４】
本発明の第２の側面によれば、ＮＵＩ装置を介して受信されるユーザーの動作を認識するための動作認識装置であって、ユーザーの動作情報を獲得するように構成される動作情報獲得部と、前記動作情報と既設定された比較対象情報との間の動的タイムワーピング（ｄｙｎａｍｉｃ  ｔｉｍｅ  ｗａｒｐｉｎｇ）を実行するように構成される動作決定部と、を含むことができる。
【００１５】
前述した技術的課題を達成するための技術的手段として、本発明の第３の側面によれば、ユーザーの動作情報を獲得するステップと、前記動作情報及び既設定された比較対象情報間の動的タイムワーピング（ｄｙｎａｍｉｃ  ｔｉｍｅ  ｗａｒｐｉｎｇ）を実行するステップと、を含む方法を実行するプログラムが記録されたコンピュータ読み取り可能な記録媒体が提供され得る。
【００１６】
前述した技術的課題を達成するための技術的手段として、本発明の第４の側面によれば、コンピュータにとって、ユーザーの動作情報を獲得するステップと、前記動作情報及び既設定された比較対象情報間の動的タイムワーピング（ｄｙｎａｍｉｃ  ｔｉｍｅ  ｗａｒｐｉｎｇ）を実行するステップと、を含む方法を実行させるコンピュータプログラムコードを含むコンピュータプログラムが提供され得る。
【発明の効果】
【００１７】
前述した本発明の課題解決手段のうち、いずれかによれば、本発明の一実施例は、ユーザーの動作を正確に認識することができる。特に、ユーザー別に異なる身体の大きさや動作の微細な差異点がユーザーが意図したところに応じた動作を正確に決定するのに障害にならない。
【００１８】
また、本発明の課題解決手段のうち、いずれかによれば、ＮＵＩ機器を介して入力されたユーザーの動作をバイナリーベクトルで表現することにより、ユーザー動作の意味を決定するための演算時間を最小化させることができる。併せて、ユーザーの動作をバイナリーベクトルで表現するようになれば、連続した２つのポーズに対して、バイナリーベクトルのシーケンスは、同じ値を有することができるので、同じ長さのアニメーションをより少ないポーズに変換することができる。
【００１９】
本発明において得られる効果は、以上で言及した効果などに制限されず、言及していないまた他の効果などは、以下の記載から本発明が属する技術分野で通常の知識を有する者に明確に理解され得るだろう。
【図面の簡単な説明】
【００２０】
【図１】本発明の一実施例によるＮＵＩ装置を介してユーザーの動作を認識するためのシステムの構成図である。
【図２】本発明の一実施例による動作認識装置を示したブロック図である。
【図３】本発明の一実施例による動作情報獲得部を示したブロック図である。
【図４】本発明の一実施例による動作認識方法を説明するためのフローチャートである。
【発明を実施するための形態】
【００２１】
以下では、添付した図面を参照して本発明が属する技術分野で通常の知識を有する者が容易に実施できるように、本発明の実施例を詳細に説明する。しかし、本発明は、様々な異なる形態で具現されることができ、ここで説明する実施例に限定されない。そして、図面において、本発明を明確に説明するために、説明と関係ない部分は省略しており、明細書の全体にわたって類似した部分に対しては、類似の図面符号を付けた。
【００２２】
明細書の全体において、ある部分が他の部分と“連結”されているというとき、これは“直接的に連結”されている場合だけではなく、その中間に他の要素を間に置いて“電気的に連結”されている場合も含む。また、ある部分がある構成要素を“含む”というとき、これは特に反対される記載がない限り、他の構成要素を除外するのではなく、他の構成要素を更に含むことができることを意味する。
【００２３】
以下、添付された図面を参考して本発明を詳細に説明することにする。図１を参照すると、本発明の一実施例によるシステム１０は、ＮＵＩ装置１００及び動作認識装置２００を含む。
【００２４】
本発明において、ＮＵＩ装置１００は、イメージセンサー、深さ感知センサー、動作認識センサー及び音声認識センサーのうち、少なくとも１つを利用して、ユーザーの動作または音声を認識できるソフトウェアプログラムやアプリケーションの命令に利用することができる全ての装置を意味する。ＮＵＩ装置１００は、例えば、タッチスクリーンが搭載されたタブレットＰＣ、スマートフォン、カラーカメラ（ＲＧＢ  ｃａｍｅｒａ）またはデプスカメラ（ｄｅｐｔｈ  ｃａｍｅｒａ）、キネクト（Ｋｉｎｅｃｔ）などから具現され得る。本発明によるＮＵＩ装置１００は、例えば、デプスカメラで具現されたら、ユーザーの動作を撮影し、撮影されたイメージフレームを送信するとか、撮影されたイメージフレームから前記ユーザーの関節の３次元位置などから構成されるポーズ情報を抽出し、抽出されたポーズ情報を送信することができる。
【００２５】
つまり、ＮＵＩ装置１００は、ユーザーの身体全体または一部分を撮影して、ユーザーの身体部位を判別するとか、関節の３次元位置、または前記関節の動きなどを追跡することにより、ユーザーの関節の３次元位置などから構成されるポーズ情報を含むフレームを獲得することができる。また、ＮＵＩ装置１００は、前記のように獲得されたポーズ情報、またはフレームを動作認識装置２００に有／無線通信手段を介して送信することができる。
【００２６】
一方、動作認識装置２００は、ＮＵＩ装置１００から受信したポーズ情報を分析（または受信したイメージフレームからポーズ情報を抽出し、前記抽出されたポーズ情報を分析）して、ユーザーの動作情報を獲得し、前記動作情報と既設定された比較対象情報とを比較して、現実世界におけるユーザーの動作を正確に認識し、ひいては、ユーザーの動作に対応する命令を決定することができる。
【００２７】
ここで、‘動作情報’とは、ユーザーのポーズを時間の順に並べたときのシーケンス情報を意味し、‘比較対象情報’は、ユーザーの動作の意味（または命令）を定義した情報として、動作認識装置２００に既格納され得る。
【００２８】
このような動作認識装置２００は、ＮＵＩ装置１００が実行する機能の一部を実行することができる。例えば、ＮＵＩ装置１００が動作認識装置２００に含まれるか、または動作認識装置２００にＮＵＩ装置１００が含まれることにより、動作認識装置２００がＮＵＩ装置１００の機能の少なくとも一部を実行することができる。以下では、説明の便宜のために、ＮＵＩ装置１００が実行する機能の少なくとも一部を動作認識装置２００が実行するものとして説明し、このような動作認識装置２００のより詳細な構成は、図２を参照して後述する。
【００２９】
一方、本発明の一実施例によるシステム１０は、命令処理装置３００を更に含むことができる。
【００３０】
従って、動作認識装置２００によって現実世界におけるユーザー動作の意味が決定され、前記意味に対応する命令が存在したら、前記命令は、有／無線通信手段を介して命令処理装置３００に送信され、前記命令に符合するプロセスを進行することができる。
【００３１】
従って、例えば、命令処理装置３００が電子機器の画面上のカーソルを表示してくれる装置であり、比較対象情報として、特定の関節の動作が前記カーソルの動きとして定義されたら、ユーザーが前記特定の関節を動かしたとき、前記動きをポーズ情報としてＮＵＩ装置１００が獲得することができ、動作認識装置２００が前記ポーズ情報に基づいて獲得した動作情報と比較対象情報との間の動的タイムワーピングを実行し、その結果、ユーザーの動作に対応する命令を決定することができ、命令処理装置３００が前記命令に対応するプロセス、つまり、画面上のカーソルを画面上で移動させることができる。
【００３２】
このような命令処理装置３００は、説明の便宜上、図１で動作認識装置２００とは別に存在するものとして示されたが、動作認識装置２００に含まれるか、または動作認識装置２００を含むことができる。
【００３３】
以下、図２を参照して、本発明の一実施例による動作認識装置２００の構成に対して具体的に説明する。
【００３４】
図２に示されたように、動作認識装置２００は、情報受信部２１０、動作情報獲得部２２０及び動作決定部２３０を含む。
【００３５】
情報受信部２１０は、ＮＵＩ装置１００によって撮影されたイメージフレームを受信するとか、またはイメージフレームから抽出されたポーズ情報を受信することができる。
【００３６】
関連して、ユーザーがＮＵＩ装置１００に対して現実世界における一連の動作を実行したとき、説明の便宜上、前記一連の動作をユーザーの‘実際動作’と定義する。ＮＵＩ装置１００は、ユーザーの実際動作を毎秒ごとに撮影し、実際動作を構成するポーズ情報を含むイメージフレームを獲得して動作認識装置２００に送信することができ、またはイメージフレームからポーズ情報を抽出して前記ポーズ情報を動作認識装置２００に送信することができる。
【００３７】
従って、情報受信部２１０は、イメージフレームまたはポーズ情報を受信することができ、情報受信部２１０がイメージフレームを受信すると、前記イメージフレームからポーズ情報を抽出することができる。前述されたところによるポーズ情報は、ユーザー関節の３次元位置などから構成されることができ、より詳細には、次のように定義することができる。
【００３８】
【数１】
2017531226.tif 000003
【００３９】
2017531226.tif 000004
【００４０】
一方、動作情報獲得部２２０は、ユーザーの動作情報を獲得する。
【００４１】
つまり、動作情報獲得部２２０は、前記ユーザーの実際動作に対応する一連のポーズ情報のそれぞれをバイナリーベクトルに変換し、前記変換されたバイナリーベクトルを前記ユーザーの動作情報として設定することができる。
【００４２】
このような動作情報獲得部２２０は、条件設定部２２１及びベクトル変換部２２２を含むことができる。
【００４３】
条件設定部２２１は、ユーザーの実際動作に対応する一連のポーズ情報のそれぞれを因子にする条件式を生成する。
【００４４】
このために、条件設定部２２１は、１つ以上のメタ条件関数を設定することができ、メタ条件関数を構成する要素などのうち、少なくとも１つを決定することに応じて条件式を生成することができる。つまり、前記メタ条件関数は、１つ以上の変数及び定数で構成されることができ、条件設定部２２１は、前記定数のうち、少なくとも１つの定数を決定することに応じて条件式を生成することができる。
【００４５】
関連して、条件設定部２２１は、所定関節の位置を、２つ以上の関節に基づいて生成される平面を基準として判断する関数である平面条件関数をメタ条件関数として設定することができ、平面条件関数は、次の数式２または数式３のように表現され得る。
【００４６】
【数２】
2017531226.tif 000005
【００４７】
【数３】
2017531226.tif 000006
【００４８】
2017531226.tif 000007
【００４９】
数式２及び数式３によれば、左手あるいは右手が右側肩、左側肩及び骨盤として表現される胴体平面の前にあるか否か、左手が右側肩から左側肩に出るベクトルを法線としながら、左側肩を通る平面を基準にして、身体の内側にあるか否か、あるいは外側にあるか否かなどが知ることができる条件式を生成することができる。
【００５０】
また、条件設定部２２１は、次の数式４のような関数、つまり、４つの関節の作り出す角度が特定の範囲にあるか否かを判断する条件式を生成することができる角度条件関数を、メタ条件関数として設定することができる。
【００５１】
【数４】
2017531226.tif 000008
【００５２】
2017531226.tif 000009
【００５３】
また、条件設定部２２１は、メタ条件関数として、数式５のような接近条件関数を設定することができ、接近条件関数は、２つの関節間の距離が特定の範囲にあるか否かを判断する条件式を生成することができる。つまり、条件設定部２２１は、条件の対象となる関節２つと共に条件の基準となる関節２つ、及び倍率定数値を入力とする条件式を生成することができ、接近条件関数は、次のように数式５で表現され得る。
【００５４】
【数５】
2017531226.tif 000010
【００５５】
2017531226.tif 000011
【００５６】
一方、条件設定部２２１は、速度条件に関する条件式を生成できるメタ条件関数を設定することができる。つまり、条件設定部２２１は、次の数式６のような速度方向条件関数、及び数式７のような速度大きさ条件関数のそれぞれをメタ条件関数として設定することができる。
【００５７】
数式６は、任意の関節の速度と、指定した２つの基準関節を連結したベクトルが作り出す角度が指定した範囲にあることを判断できる条件式を生成することができる速度方向条件関数を示す数式である。
【００５８】
【数６】
2017531226.tif 000012
【００５９】
2017531226.tif 000013
【００６０】
数式６の速度方向条件関数に応じて、条件設定部２２１は、右手が上下あるいは左右に動いているか否か、足が垂直あるいは方向に動いているか否がなど様々な条件式を生成することができる。
【００６１】
一方、数式７は、任意の関節の速度の大きさが指定した２つの基準関節を連結したベクトルの大きさと比較したとき、どれだけ大きいかを探り出す条件式を生成することができる速度大きさ条件関数である。
【００６２】
【数７】
2017531226.tif 000014
【００６３】
数式６による関数は、速度の大きさと関係なく作動するので、エラーを作り出す可能性があるが、数式７による速度大きさ条件関数と共に使用すると、基準値以上の速度に対してのみ条件式が意味を有するように設定することができる。
【００６４】
このように、メタ条件関数を利用することにより、条件設定部２２１は、様々な条件式を生成することができる。
【００６５】
ベクトル変換部２２２は、条件設定部２２１によって生成された条件式に基づいて、ユーザーの動作をバイナリーベクトルに変換することにより、動作情報を獲得することができる。
【００６６】
つまり、ベクトル変換部２２２は、前記ユーザーの動作情報に対応するポーズ集合に含まれるポーズ情報のそれぞれを前記条件式の因子として入力して、各ポーズ情報に対応するバイナリー値を獲得することができ、これに前記一連のポーズ情報で構成される動作に対するバイナリーベクトルを生成することができ、前記バイナリーベクトルを動作情報として獲得することができる。
【００６７】
一方、動作決定部２３０は、動作情報及び比較対象情報を比較することにより、ユーザーの実際動作とマッチングされる比較対象情報を決定することができる。
【００６８】
このような比較対象情報を格納するための格納部（図示せず）を動作決定部２３０は、含むことができ、または外部に位置する格納装置（図示せず）、例えば、データベースと通信することができる。
【００６９】
つまり、比較対象情報は、１つ以上存在し、前記比較対象情報のそれぞれと、動作情報間に動的タイムワーピング（ｄｙｎａｍｉｃ  ｔｉｍｅ  ｗａｒｐｉｎｇ）を実行することにより、前記１つ以上の比較対象情報のうち、ユーザーの実際動作と最も近い比較対象情報を決定することができる。
【００７０】
また、前記決定された比較対象情報に対応する命令が存在したら、動作決定部２３０は、ユーザーの実際動作に対応する命令が入力されたことを感知することができる。
【００７１】
一方、図４に示された実施例による動作認識方法は、図２及び図３に示された動作認識装置２００で時系列的に処理されるステップなどを含む。従って、以下で省略された内容であるといっても、図２及び図３のそれぞれで示された動作認識装置２００に関して以上で記述した内容は、図４に示された実施例による動作認識方法にも適用され得る。
【００７２】
先ず、動作認識装置２００は、ユーザーの実際動作を受信することができる（Ｓ４０００）。このとき、動作認識装置２００は、ＮＵＩ装置１００を介して、ユーザーの実際動作に対応する一連のイメージフレームを受信することができ、イメージフレームを受信したら、動作認識装置２００は、前記イメージフレームのそれぞれからポーズ情報を抽出することにより、動作認識装置２００は、ユーザーの動作を受信することもできる。また、前記のようなポーズ情報抽出プロセスがＮＵＩ装置１００によって実行され、動作認識装置２００は、前記ポーズ情報を受信することにより、ユーザーの動作を受信することもできる。
【００７３】
また、ユーザー関節の３次元位置などから構成されるポーズ情報に基づいて、動作認識装置２００は、ユーザーの動作をバイナリーベクトルに変換することにより、動作情報を獲得することができる（Ｓ４００１）。
【００７４】
このために、動作認識装置２００は、メタ条件関数を利用して、ユーザーの動作に対応するバイナリーベクトルを生成するための様々な条件式を生成することができる。
【００７５】
例えば、動作認識装置２００は、数式２に基づいて、“左手が身体の前にあるか否か”、または“右手が身体の前にあるか否か”を決定できる条件式を生成することができる。
【００７６】
また、例えば、動作認識装置２００は、数式３に基づいて“左手が身体の外側にあるか否か”、“右手が身体の外側にあるか否か”、“左手が身体の内側にあるか否か”、“右手が身体の内側にあるか否か”、“左手が胴体よりも高くあるか否か”、“右手が胴体よりも高くあるか否か”、“左手が頭よりも高くあるか否か”または“右手が頭よりも高くあるか否か”を決定できる条件式を生成することができる。
【００７７】
また、例えば、動作認識装置２００は、数式４に基づいて、“左腕の肘が作る角が（０゜、６０゜）の間にあるか否か”、“左腕の肘が作る角が（６０゜、１２０゜）の間にあるか否か”、“左腕の肘が作る角が（１２０゜、１８０゜）の間にあるか否か”、“右腕の肘が作る角が（０゜、６０゜）の間にあるか否か”、“右腕の肘が作る角が（６０゜、１２０゜）の間にあるか否か”、“右腕の肘が作る角が（１２０゜、１８０゜）の間にあるか否か”、“左膝が作る角が（０゜、６０゜）の間にあるか否か”、“左膝が作る角が（６０゜、１２０゜）の間にあるか否か”、“左膝が作る角が（１２０゜、１８０゜）の間にあるか否か”、“右膝が作る角が（０゜、６０゜）の間にあるか否か”、“右膝が作る角が（６０゜、１２０゜）の間にあるか否か”、“右膝が作る角が（１２０゜、１８０゜）の間にあるか否か”、“両腕が作る角が（０゜、６０゜）の間にあるか否か”、“両腕が作る角が（６０゜、１２０゜）の間にあるか否か”または“両腕が作る角が（１２０゜、１８０゜）の間にあるか否か”を決定できる条件式を生成することができる。
【００７８】
また、例えば、動作認識装置２００は、数式５に基づいて、“両手が互いに近くにあるか否か”、“左手が頭の近くにあるか否か”または“右手が頭の近くにあるか否か”を決定できる条件式を生成することができる。
【００７９】
また、例えば、動作認識装置２００は、数式６に基づいて、“左手の速度方向が垂直方向であるか否か”、“右手の速度方向が垂直方向であるか否か”、“左手の速度方向が水平方向であるか否か”または“右手の速度方向が水平方向であるか否か”を決定することができる条件式を生成することができる。
【００８０】
併せて、例えば、動作認識装置２００は、数式７に基づいて、“左手の速度が１秒ぶりに両肩を通る水準であるか否か”、または“右手の速度が１秒ぶりに両肩を通る水準であるか否か”を決定できる条件式を生成することができる。
【００８１】
前述されたところによる条件式は、図４の各ステップであるＳ４０００〜Ｓ４００２が実行される以前または以後に生成されることができ、または、前記各ステップが進行される途中にも生成され得る。
【００８２】
このように生成された様々な条件式にユーザーの動作に応じるポーズ情報を代入することができ、これにより、ユーザーの動作に対応するバイナリーベクトルを生成することができる。例えば、動作認識装置２００は、３０個以上の条件式を設定しておいて、ユーザー動作に対応する３０次元以上のバイナリーベクトルを生成することができる。
【００８３】
そし、前記のように生成されたバイナリーベクトルは、動作情報として設定されることができ、動作認識装置２００は、前記のような動作情報と比較対象情報との間の動作タイムワーピングを実行することができる（Ｓ４００２）。動的タイムワーピングを実行するとき、バイナリーベクトルに変換された動作情報と比較対象情報との間の差の計算は、両バイナリーベクトル間の論理演算で簡単に実行され得る。
【００８４】
動的タイムワーピングによって決定された動作に対応する命令が存在すると、動作認識装置２００は、命令処理装置３００に前記命令を処理するようにすることができる。
【００８５】
図４を介して説明された実施例による動作認識方法は、コンピュータによって実行されるプログラムモジュールのようなコンピュータによって実行可能な命令語を含む記録媒体の形態でも具現され得る。コンピュータ読み取り可能な媒体は、コンピュータによってアクセスされ得る任意の可用媒体であることができ、揮発性及び非揮発性媒体、分離型及び非分離型媒体をいずれも含む。また、コンピュータ読み取り可能な媒体は、コンピュータ格納媒体及び通信媒体をいずれも含むことができる。コンピュータ格納媒体は、コンピュータ読み取り可能な命令語、データ構造、プログラムモジュールまたはその他のデータのような情報の格納のための任意の方法または技術で具現された揮発性及び非揮発性、分離型及び非分離型媒体をいずれも含む。通信媒体は、典型的に、コンピュータ読み取り可能な命令語、データ構造、プログラムモジュール、または搬送波のような変調されたデータ信号のその他のデータ、またはその他の送信メカニズムを含み、任意の情報伝達媒体を含む。
【００８６】
また、本発明の一実施例による動作認識方法は、コンピュータによって実行可能な命令語を含むコンピュータプログラム（またはコンピュータプログラム製品）で具現されることもできる。コンピュータプログラムは、プロセッサによって処理されるプログラミング可能な機械命令語を含み、高レベルのプログラミング言語（Ｈｉｇｈ−ｌｅｖｅｌ  Ｐｒｏｇｒａｍｍｉｎｇ  Ｌａｎｇｕａｇｅ）、客体指向プログラミング言語（Ｏｂｊｅｃｔ−ｏｒｉｅｎｔｅｄ  Ｐｒｏｇｒａｍｍｉｎｇ  Ｌａｎｇｕａｇｅ）、アセンブリ言語または機械言語などから具現され得る。また、コンピュータプログラムは、類型のコンピュータ読み取り可能な記録媒体（例えば、メモリ、ハードディスク、磁気／光学媒体またはＳＳＤ（Ｓｏｌｉｄ−Ｓｔａｔｅ  Ｄｒｉｖｅ）など）に記録され得る。
【００８７】
従って、本発明の一実施例による動作認識方法は、前述したようなコンピュータプログラムがコンピューティング装置によって実行されることによって具現され得る。コンピューティング装置は、プロセッサと、メモリと、格納装置と、メモリ及び高速拡張ポートに接続している高速インタフェースと、低速バスと格納装置に接続している低速インタフェースのうち、少なくとも一部を含むことができる。このような成分などのそれぞれは、様々なバスを利用して互いに接続されており、共通マザーボードに搭載されるか、他の適切な方式で装着され得る。
【００８８】
ここで、プロセッサは、コンピューティング装置内で命令語を処理することができるが、このような命令語では、例えば、高速インタフェースに接続されたディスプレイのように外部入力、出力装置上にＧＵＩ（Ｇｒａｐｈｉｃ  Ｕｓｅｒ  Ｉｎｔｅｒｆａｃｅ）を提供するためのグラフィック情報を表示するために、メモリや格納装置に格納された命令語を挙げることができる。他の実施例として、多数のプロセッサ及び（または）多数のバスが適切に多数のメモリ及びメモリ形態と共に利用され得る。また、プロセッサは、独立的な多数のアナログ及び（または）デジタルプロセッサを含むチップなどがなすチップセットで具現され得る。
【００８９】
また、メモリは、コンピューティング装置内で情報を格納する。一例として、メモリは、揮発性メモリユニットまたはそれらの集合で構成され得る。他の例として、メモリは、非揮発性メモリユニットまたはそれらの集合で構成され得る。また、メモリは、例えば、磁気あるいは光ディスクのように他の形態のコンピュータ読み取り可能な媒体であることもできる。
【００９０】
そして、格納装置は、コンピューティング装置に大容量の格納空間を提供することができる。格納装置は、コンピュータ読み取り可能な媒体であるとか、このような媒体を含む構成であることができ、例えば、ＳＡＮ（Ｓｔｏｒａｇｅ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）内の装置などや他の構成も含むことができ、フロッピーディスク装置、ハードディスク装置、光ディスク装置、あるいはテープ装置、フラッシュメモリ、それと類似した他の半導体メモリ装置あるいは装置アレイであり得る。
【００９１】
前述した本発明の説明は、例示のためのものであり、本発明が属する技術分野の通常の知識を有する者は、本発明の技術的思想や必須の特徴を変更せずに、他の具体的な形態で容易に変形が可能であることを理解することができるだろう。従って、以上で記述した実施例などは、すべての面において例示的なものであり、限定的ではないものとして理解すべきである。例えば、単一型で説明されている各構成要素は、分散されて実施されることもでき、同様に分散されたものとして説明されている構成要素なども結合された形態で実施され得る。
【００９２】
本発明の範囲は、前記詳細な説明よりも後述する特許請求の範囲によって示され、特許請求の範囲の意味及び範囲、そして、その均等概念から導出されるすべての変更または変形された形態が本発明の範囲に含まれるものとして解釈されるべきである。
【図１】
2017531226.tif 000015
【図２】
2017531226.tif 000016
【図３】
2017531226.tif 000017
【図４】
2017531226.tif 000018
【国際調査報告】
2017531226.tif 000019
2017531226.tif 000020
2017531226.tif 000021
2017531226.tif 000022