(57)【要約】【課題】  ジェスチャによるユーザとコンピュータとの対話を、効果的かつ効率的に処理する。【解決手段】  二次元または三次元空間内でジェスチャを実行する身体またはその一部の形状または動きは、これらの形状の輪郭に沿った経路、または動きに沿った経路により把握可能である。開示される方法は、かかる経路を表現するデータの入力を受け、経路の意味、すなわちジェスチャの意味が、あらかじめ準備された複数の意味のうちのいずれであるかを、人工知能を使って認識する。開示される方法は、経路に沿った点群の位置データを、人工知能に入力する前処理として、点群全体の位置、大きさ、及び方向のうちの少なくとも１つの属性を抽出し、点群の位置データを、抽出した属性に相対的であり、抽出した属性に依存しない属性不変位置データに変換する。そして、属性不変位置データと抽出した属性とを含むデータを、入力データとして人工知能に入力する。【選択図】  図７
2020160815.tif 000002
【特許請求の範囲】
【請求項１】
２次元または３次元空間において各々が個別に連続した１以上の経路からなる経路集合の意味を、人工知能を用いるコンピュータにより認識する経路認識方法であって、
前記経路集合を表現する経路集合データを含むデータの入力を受け入れることと、
入力を受け入れた前記経路集合データに基づく、前記経路集合を構成する各経路に沿った点群の位置データのうち、前記経路集合を構成する前記１以上の経路のうちの少なくとも一部の経路の各々に沿った点群の位置データから、対応する点群全体の位置、大きさ、及び方向のうちの少なくとも１つの属性を抽出することと、
前記少なくとも一部の経路の各々に沿った前記点群の位置データを、対応する前記少なくとも１つの属性に相対的な位置データに変換することにより、前記対応する少なくとも１つの属性に依存しない属性不変位置データを得ることと、
前記経路集合を構成する各経路に沿った前記点群の位置データを含むデータを、入力データとして前記人工知能に入力することと、
前記人工知能の出力データとして、入力を受け入れた前記経路集合データが表現する前記経路集合の意味が、あらかじめ準備された複数の意味の各々である確率の推定値を、前記人工知能に計算させることと、を含み、
前記データを前記入力データとして前記人工知能に入力することは、
前記少なくとも一部の経路の各々に沿った前記点群の位置データとして、対応する前記属性不変位置データを、前記入力データに含めて入力することと、
前記少なくとも一部の経路の各々について抽出された前記少なくとも１つの属性のうち、少なくとも一部の属性を、前記入力データに含めて前記人工知能に入力することと、を含む、経路認識方法。
【請求項２】
学習モードと認識モードとのいずれかを、動作モードとして選択する動作モード選択データの入力を受け入れることと、
前記動作モードとして前記学習モードが選択されているときには、前記人工知能の前記出力データとして正しいデータの入力を、教師データとして受け入れ、受け入れた前記教師データを前記人工知能に与えることにより、前記人工知能を学習させることと、
前記動作モードとして前記認識モードが選択されているときには、前記複数の意味のうち、前記人工知能の出力データが最高の確率の推定値を示す意味を含むデータを、認識結果データとして出力することと、を更に含む、請求項１に記載の経路認識方法。
【請求項３】
前記認識結果データは、前記少なくとも一部の経路の各々について抽出された前記少なくとも１つの属性のうち、少なくとも一部の属性を含む、請求項２に記載の経路認識方法。
【請求項４】
前記少なくとも１つの属性を抽出することは、前記少なくとも一部の経路のうちの少なくとも１つの経路の各々について、対応する点群全体の平均位置を、前記対応する点群全体の位置として抽出することを含む、請求項１から３のいずれかに記載の経路認識方法。
【請求項５】
前記少なくとも１つの属性を抽出することは、前記少なくとも一部の経路のうちの少なくとも１つの経路の各々について、対応する点群全体の標準偏差又は一組の標準偏差を、前記対応する点群全体の大きさとして抽出することを含む、請求項１から４のいずれかに記載の経路認識方法。
【請求項６】
前記少なくとも１つの属性を抽出することは、前記少なくとも一部の経路のうちの少なくとも１つの経路の各々について、主成分分析に基づいて、対応する点群全体の一組の主軸の方向を、前記対応する点群全体の方向として抽出することを含む、請求項１から５のいずれかに記載の経路認識方法。
【請求項７】
前記少なくとも１つの属性を抽出することは、前記少なくとも一部の経路の各々について、対応する点群全体の位置、大きさ、及び方向を抽出することを含む、請求項１から６のいずれかに記載の経路認識方法。
【請求項８】
前記経路集合を構成する前記１以上の経路のうちの前記少なくとも一部の経路は、前記経路集合を構成する前記１以上の経路の全てである、請求項１から７のいずれかに記載の経路認識方法。
【請求項９】
前記少なくとも一部の属性を、前記入力データに含めて前記人工知能に入力することは、前記少なくとも一部の経路の各々について抽出された前記少なくとも１つの属性を、前記入力データに含めて前記人工知能に入力することを含む、請求項１から８のいずれかに記載の経路認識方法。
【請求項１０】
入力を受け入れた前記経路集合データから、前記経路集合を構成する各経路に沿った前記点群として、経路毎に定められた数の点群を選択することを、さらに含み、
当該経路毎に定められた数の点群を選択することは、経路毎に、前記経路毎に定められた数の点群を連結する一連の線分と、入力を受け入れた前記経路集合データが表現する前記経路集合のうちの対応する経路との間の差分を最小にする方向に、前記経路毎に定められた数の点群を探索することを含む、請求項１から９のいずれかに記載の経路認識方法。
【請求項１１】
前記経路毎に定められた数の点群を探索することは、疑似アニーリングによって行われる、請求項１０に記載の経路認識方法。
【請求項１２】
前記人工知能は、ニューラルネットワークである、請求項１から１１のいずれかに記載の経路認識方法。
【請求項１３】
前記経路集合データを含むデータの入力を受け入れることは、付加的データを受け入れることを含み、
前記人工知能に入力される前記入力データは、受け入れられた前記付加的データを含む、請求項１から１２のいずれかに記載の経路認識方法。
【請求項１４】
入力を受け入れる前記経路集合データが表現する前記経路集合を構成する各経路が、ジェスチャの形状輪郭に沿った経路とジェスチャの動きに沿った経路とのいずれかである、請求項１から１３のいずれかに記載の経路認識方法。
【請求項１５】
前記データの入力を受け入れることから、前記確率の推定値を前記人工知能に計算させることまでを、繰り返し行い、
前記データを前記入力データとして前記人工知能に入力することは、入力を受け入れた前記経路集合データが表現する前記経路集合を構成する前記１以上の経路の種別に応じて、前記人工知能として異なる人工知能を選択して、前記入力データを入力することを含む、請求項１から１４のいずれかに記載の経路認識方法。
【請求項１６】
前記種別が、前記経路集合を構成する前記１以上の経路の数を含む、請求項１５に記載の経路認識方法。
【請求項１７】
コンピュータを備え、請求項１から１６のいずれかに記載の経路認識方法を実行する、経路認識装置。
【請求項１８】
コンピュータに読み取られることにより、前記コンピュータに請求項１から１６のいずれかに記載の経路認識方法を実行させる、経路認識プログラム。
【請求項１９】
コンピュータに読み取られることにより、前記コンピュータに請求項１から１６のいずれかに記載の経路認識方法を実行させるプログラムが記録された、非一過性のコンピュータ読み取り可能な記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、２次元または３次元空間において各々が連続した１以上の経路からなる経路集合の意味を認識する経路認識技術に関する。
【背景技術】
【０００２】
コンピュータシステムは、現代社会の基礎をなしており、 通信、金融取引、技術的活動、娯楽等、社会の全ての活動はコンピュータに基づいている。 コンピュータはますます能力を高めており、日々の業務のほとんどの課題において、計算能力はもはや制限要因ではなくなっている。例えば、あらゆる卓上型ＰＣ（コンピュータ）は、知識労働者に十分な処理能力を提供しており、人間であるユーザはコンピュータの操作の完了を、もはや待つ必要がないほどである。ユーザとコンピュータとの間の対話の結果は、コンピュータによってほぼ即座に生成される。
【０００３】
代わりに、人間であるユーザが高速な出力を取得するのを制限する要因が、ユーザインタフェースとなっている。ユーザがコンピュータに自身の意図するところを表現することを可能にする方法は、1980年代からほとんど変化しておらず、タイプライターのようなキーボード、マウス、あるいはスタイラスのような同様の入力装置が、入力（コンピュータの制御）のために使用され、平坦な二次元コンピュータ画面が、出力（対話の結果を視認すること）のために使用されている。ほとんどの作業においては、このようなユーザインターフェイスは十分である。
【０００４】
しかし、設計又は技術の分野において仮想的な３次元モデルを操作する場合には、対話の効率が厳しく制限されることになる。 マウス又はスタイラスは、コンピュータ内に表現された仮想的なオブジェクト（操作対象）を、２次元的に操作することしかできず、コンピュータ画面は２次元的表現を映し出すのみであり、仮想的なオブジェクトの３次元形状については、曖昧なままである。さらに、視野はスクリーンの開口に限定されており、没入型環境の印象をうまくは伝えない。 
【０００５】
仮想現実（バーチャルリアリティ；Virtual Reality；VR）技術は、３次元モデル又は３次元的な仮想世界の作成に、より適した新しい３次元的なユーザインターフェイスを可能にする。ユーザは仮想モデルを直接的かつ空間的に見ることができるだけでなく、３次元的に操作し、しかも同時に思いのままに回転させることもできる。これらの新しいユーザインターフェイスの１つの重要な部分は、自由な空間でジェスチャを実行することによってソフトウェアに命令を伝えることである。本開示において「ジェスチャ」とは、命令、意思又は感動のような特定の情報を他者に伝えるための、二次元または三次元空間内における身体またはその一部の形状及び／または動きによる表現を意味する。
【０００６】
人間は自然にジェスチャを使って、他者と意思を伝え合っており、このため、身振りや手振りによって意思を表現することに非常に熟達している。したがって、この意思伝達の方法を、コンピュータシステムを、従来よりも直感的かつ要領よく制御するのに使用することは、最も適した方法である。英数字を入力したり、メニューから選択肢を選択したりすることを要せずに、例えば自身の手又は入力装置を振ることによって、コンピューターシステムに特定の作業（タスク）を実行するよう命令することが可能となる。
【０００７】
しかし、ジェスチャによる人間の意思伝達は非常に複雑である。人間は多数のジェスチャを識別することができるだけでなく、それぞれのジェスチャの特定の側面が、ジェスチャ自身を他と区別する特徴をなすのか、情報を追加するものであるのか、あるいは意思伝達に無関係であるのか、を判断することができる。例えば、「こちらに来て」という手ぶりは、その動きの大きさは、緊急性があるのか、又は静かに行動すべきなのか否かを伝える。
【０００８】
ジェスチャの動きの大きさは、ジェスチャの意味（「こちらに来て」）を変えず、追加の情報（いかに行動すべきか）を与える。対照的に、手を小さく左右に振る動きは、「いいえ」という意味を伝えるのに、よく用いられるが、腕全体を大きく振る動きは、挨拶として使用されている。他方、「親指を上に立てる」または「親指を下に向ける」のようなジェスチャは、行動の大きさには大きな意味がなく、その姿勢又は方向によってジェスチャの意味が認識される。「親指を上に立てる」と「親指を下に向ける」は、方向の異なる同じ動きであるが、意図するところは全く異なる。
【０００９】
対照的に、人差し指により、ある方向へ指すというジェスチャは、意思伝達の相手をその方向に向けさせるのに用いられる。どの方向であっても、ジェスチャの意味に変わりはないが、方向は、意思伝達の相手に伝えられる追加の情報となる。尚、ジェスチャによっては、実行される位置によって、意味が変わる場合がある。例えば、手を平らにして側頭へ挙げる手振りは敬礼を意味し、平らにした手を首へ挙げると、「殺す」、あるいは「殺される」という意味を伝える。
【００１０】
したがって、ジェスチャの位置、大きさ、又は方向が、ジェスチャの意味を定義する特徴であるか、定義的ではなく追加の情報を伝えるものなのか、あるいは全く無関係であって無視できるのか、を理解できるコンピュータシステムがあれば、システムの使い易さ（usability；ユーザビリティ）が大きく改善されることになろう。それによって、コンピューターシステムは、人間のジェスチャを、より高い信頼性をもって、かつ、ジェスチャの実行される方法によって追加される追加情報をもって、理解しかつ解釈することが可能となる。このことは、人間には既に一般的となっているジェスチャの場合だけでなく、コンピューター・ユーザ・インターフェイスで使用するために特別に創出された新しいジェスチャの場合にも当てはまる。
【００１１】
なお、特許文献１には、テレビカメラによってユーザを撮像し、その撮像出力に基づいて画像処理装置がユーザの位置を検出するとともに、ユーザのジェスチ ャを認識する、ジェスチャインタフェース装置が開示されている。また、特許文献２には、ユーザの頭部に装着されるヘッドマウントディスプレイに表示される仮想空間内のキャラクタを動作させる方法に関し、ユーザのジェスチャに応じて、ユーザと視線の合っている第１キャラクタに第１動作を行わせ、視線の合っていない第２キャラクタに第２動作を行わせる方法が、開示されている。
【先行技術文献】
【特許文献】
【００１２】
【特許文献１】特開平１０−２５５０５２号公報
【特許文献２】特許第6209252号公報
【発明の概要】
【発明が解決しようとする課題】
【００１３】
本発明は上記の問題点に鑑みてなされたもので、ジェスチャによるユーザとコンピュータとの対話を、効果的かつ効率的に処理することを可能にする経路認識技術を提供することを目的とする。
【課題を解決するための手段】
【００１４】
上記目的を達成するために、本発明の第１の態様によるものは、２次元または３次元空間において各々が個別に連続した１以上の経路からなる経路集合の意味を、人工知能を用いるコンピュータにより認識する経路認識方法であって、前記コンピュータによってなされる以下の処理（ａ）〜（ｅ）を含んでいる。（ａ）前記経路集合を表現する経路集合データを含むデータの入力を受け入れること。（ｂ）入力を受け入れた前記経路集合データに基づく、前記経路集合を構成する各経路に沿った点群の位置データのうち、前記経路集合を構成する前記１以上の経路のうちの少なくとも一部の経路の各々に沿った点群の位置データから、対応する点群全体の位置、大きさ、及び方向のうちの少なくとも１つの属性を抽出すること。（ｃ）前記少なくとも一部の経路の各々に沿った前記点群の位置データを、対応する前記少なくとも１つの属性に相対的な位置データに変換することにより、前記対応する少なくとも１つの属性に依存しない属性不変位置データを得ること。（ｄ）前記経路集合を構成する各経路に沿った前記点群の位置データを含むデータを、入力データとして前記人工知能に入力すること。（ｅ）前記人工知能の出力データとして、入力を受け入れた前記経路集合データが表現する前記経路集合の意味が、あらかじめ準備された複数の意味の各々である確率の推定値を、前記人工知能に計算させること。更に、前記データを前記入力データとして前記人工知能に入力すること（ｄ）は、（ｄ−１）前記少なくとも一部の経路の各々に沿った前記点群の位置データとして、対応する前記属性不変位置データを、前記入力データに含めて入力することと、（ｄ−２）前記少なくとも一部の経路の各々について抽出された前記少なくとも１つの属性のうち、少なくとも一部の属性を、前記入力データに含めて前記人工知能に入力することと、を含んでいる。
【００１５】
本構成による方法は、以下のように機能する。二次元または三次元空間内でジェスチャを実行する身体またはその一部の形状または動きは、これらの形状の輪郭に沿った経路、または動きに沿った経路により把握可能である。本構成による方法は、かかる経路を表現するデータの入力を受け、経路の意味、すなわちジェスチャの意味が、あらかじめ準備された複数の意味のうちのいずれであるかを、人工知能を使って認識する。本構成による方法は、経路に沿った点群の位置データを人工知能に入力する前処理として、点群の位置データから、点群全体の（１）位置、（２）大きさ、及び（３）方向のうちの少なくとも１つの属性を抽出し、点群の位置データを、抽出した属性に相対的な位置データ、すなわち抽出した属性に依存しない属性不変位置データに変換する。そして、属性不変位置データを含むデータを、入力データとして人工知能に入力する。抽出した属性に依存しない属性不変位置データが入力されることにより、人工知能は経路の意味、すなわちジェスチャの意味が認識し易くなる。
本構成による方法では、更に、抽出されたうちの少なくとも一部の属性が、入力データに含めて人工知能に入力される。すなわち、抽出されたうちの少なくとも一部の属性が、それに対応する属性不変位置データから分離されて人工知能に入力される。このため、人工知能は、抽出されたうちの少なくとも一部の属性について、ジェスチャの意味を規定する特徴であるのか、規定的ではなく追加の情報を伝えるのか、あるいは全く無関係であって無視できるのか、という判断を容易に行うことができる。このように、本構成によれば、ジェスチャによるユーザとコンピュータとの対話を、効果的かつ効率的に処理することが可能となる。
【００１６】
本構成による方法は、上記のように連続した１つの経路によって把握されるジェスチャの意味を認識する方法であり得るが、各々が個別に連続した複数の経路によって把握されるジェスチャの意味を認識する方法でもあり得る。後者のジェスチャは、例えば、手を開いたポーズ、続いて手または指で矢印を描く動き、続いて手を結ぶポーズという、３段階のジェスチャ要素からなる。この場合、ジェスチャから把握される経路は、開いた手の形状輪郭に沿った第１番目の経路、手または指の動きに沿った矢印状の第２番目の経路、及び結んだ手の形状輪郭に沿った第３番目の経路からなる経路集合となる。第１〜第３の経路の各々は、個別に連続している。第１〜第３の経路は、互いに分離されていてもよく、逆に、互いに接したり、交差したり、互いに連続したりしていてもよいが、互いに別の経路として入力される。
本構成による方法は、かかる経路集合を表現するデータの入力を受け、経路集合の意味、すなわち３つのジェスチャ要素からなるジェスチャ全体の意味が、あらかじめ準備された複数の意味のうちのいずれであるかを、人工知能を使って認識する。本構成による方法は、経路集合を構成する各経路に沿った点群の位置データを人工知能に入力する前処理として、少なくとも一部の経路の各々については、上記の場合と同様に、点群の位置データから、点群全体の（１）位置、（２）大きさ、及び（３）方向のうちの少なくとも１つの属性を抽出し、点群の位置データを属性不変位置データに変換する。そして、経路集合を構成する各経路に沿った点群の位置データを含むデータを、入力データとして人工知能に入力する。属性抽出がなされた経路については、点群の位置データとして属性不変位置データが、入力データに含めて人工知能に入力される。従って、上記の場合と同様に、人工知能は属性抽出がなされた各経路の意味、すなわち各ジェスチャ要素の意味が認識し易くなる。このことは、複数のジェスチャ要素からなるジェスチャ全体の意味を認識し易くする。
また、抽出されたうちの少なくとも一部の属性が、入力データに含めて人工知能に入力される。すなわち、抽出されたうちの少なくとも一部の属性が、それに対応する属性不変位置データから分離されて人工知能に入力される。このため、人工知能は、抽出されたうちの少なくとも一部の属性について、ジェスチャの意味を規定する特徴であるのか、規定的ではなく追加の情報を伝えるのか、あるいは全く無関係であって無視できるのか、という判断を容易に行うことができる。このように、本構成によれば、ジェスチャが複数の経路からなる経路集合によって把握される場合であっても、ジェスチャによるユーザとコンピュータとの対話を、効果的かつ効率的に処理することが可能となる。なお、人工知能に入力される「少なくとも一部の属性」は、抽出された属性のうちの少なくとも一部であれば足り、例えば、属性が抽出される少なくとも一部の経路の各々から、１つずつ属性を選び出してもよく、属性が抽出される少なくとも一部の経路のうちの１つの経路から、１つの属性を選び出してもよい。
【００１７】
本構成による方法は、以上のようなジェスチャ認識だけでなく、２次元または３次元空間における経路または経路集合として把握できる様々な形状または動きを認識する目的にも使用可能である。例えば、任意の認識対象物の形状輪郭から当該対象物を認識したり、航空機の移動経路のデータに基づいて、航空機の種類を認識したりする目的に使用することも可能である。また、本構成による方法を実行するコンピュータが使用する人工知能は、当該コンピュータが読み込んで動作するプログラムの中に構築されていてもよく、あるいは当該プログラムとは別個に、当該コンピュータが備えるメモリの中、例えば前記プログラムが記録されているメモリ以外のメモリの中に、構築されていてもよく、当該コンピュータの外部の装置、例えばクラウドサーバに置かれる人工知能を使用するものであってもよい。本構成はいずれかに限定するものではない。また、本構成による方法は、単一の経路からなる経路集合のみを処理する方法、及びある複数個（例えば３つ）の経路からなる経路集合のみを処理する方法の、いずれをも包含するものであり、いずれの経路集合の入力をも受け付けて、経路の個数に応じて処理を仕分ける方法に限定されるものではない。さらに、本開示において、「経路集合の意味」とは、あらかじめ定められた経路集合の類型（カテゴリー）を意味し、「経路集合の意味を認識する」とは、経路集合が１以上の類型のうちどの類型に該当するか、あるいはそれに加えていずれの類型にも該当しないか、を認識することを意味する。経路集合を構成する各経路が、ジェスチャの形状輪郭又は動きに沿った経路である場合には、「経路集合の意味」とは、「ジェスチャーの意味」となり、あらかじめ定められたジェスチャーの類型（カテゴリー）を意味することとなる。
【００１８】
本発明のうち第２の態様によるものは、第１の態様による経路認識方法であって、前記コンピュータによってなされる以下の処理（ｆ）〜（ｈ）を更に含んでいる。（ｆ）学習モードと認識モードとのいずれかを、動作モードとして選択する動作モード選択データの入力を受け入れること。（ｇ）前記動作モードとして前記学習モードが選択されているときには、前記人工知能の前記出力データとして正しいデータの入力を、教師データとして受け入れ、受け入れた前記教師データを前記人工知能に与えることにより、前記人工知能を学習させること。（ｈ）前記動作モードとして前記認識モードが選択されているときには、前記複数の意味のうち、前記人工知能の出力データが最高の確率の推定値を示す意味を含むデータを、認識結果データとして出力すること。
本構成によれば、動作モードとして学習モードが選択されているときには、教師データに基づく学習が人工知能に施され、認識モードが選択されているときには、それまでになされた学習の成果を反映した認識結果が出力される。すなわち、人工知能に学習を施すことにより、精度の高い認識結果を得ることができる。
【００１９】
本発明のうち第３の態様によるものは、第２の態様による経路認識方法であって、前記認識結果データは、前記少なくとも一部の経路の各々について抽出された前記少なくとも１つの属性のうち、少なくとも一部の属性を含んでいる。
本構成によれば、認識結果データに、抽出された少なくとも一部の属性が含まれるので、本構成による方法のユーザ（利用者）あるいは利用装置は、経路集合の意味だけでなく、意味に追加される情報を取得することができる。例えば、ジェスチャーの意味が、あるオブジェクトを移動させることである場合に、意図された移動の方向あるいは距離についての情報を取得することができる。なお、本構成における「少なくとも一部の属性」は、第１の態様において人工知能に入力される「少なくとも一部の属性」と同一であっても、異なっていてもよい。
【００２０】
本発明のうち第４の態様によるものは、第１から第３のいずれかの態様による経路認識方法であって、前記少なくとも１つの属性を抽出すること（ｂ）は、前記少なくとも一部の経路のうちの少なくとも１つの経路の各々について、対応する点群全体の平均位置を、前記対応する点群全体の位置として抽出することを含んでいる。
本構成によれば、点群全体の位置を適切に表現する物理量が、平均計算という比較的簡単な計算により得られる。
本発明のうち第５の態様によるものは、第１から第４のいずれかの態様による経路認識方法であって、前記少なくとも１つの属性を抽出すること（ｂ）は、前記少なくとも一部の経路のうちの少なくとも１つの経路の各々について、対応する点群全体の標準偏差又は一組の標準偏差を、前記対応する点群全体の大きさとして抽出することを含んでいる。
本構成によれば、点群全体の大きさを適切に表現する物理量が、標準偏差の計算という比較的簡単な計算により得られる。
本発明のうち第６の態様によるものは、第１から第５のいずれかの態様による経路認識方法であって、前記少なくとも１つの属性を抽出すること（ｂ）は、前記少なくとも一部の経路のうちの少なくとも１つの経路の各々について、主成分分析に基づいて、対応する点群全体の一組の主軸の方向を、前記対応する点群全体の方向として抽出することを含んでいる。
本構成によれば、点群全体の方向を適切に表現する物理量が、主成分分析の計算という比較的簡単な計算により得られる。
【００２１】
本発明のうち第７の態様によるものは、第１から第６のいずれかの態様による経路認識方法であって、前記少なくとも１つの属性を抽出すること（ｂ）は、前記少なくとも一部の経路の各々について、対応する点群全体の位置、大きさ、及び方向を抽出することを含んでいる。
本構成によれば、属性抽出がなされる各経路について、点群全体の位置、大きさ、及び方向のすべてが、属性として抽出されることにより、属性不変位置データが得られるので、人工知能は、属性抽出がなされた各経路の意味を一層認識し易くなる。
本発明のうち第８の態様によるものは、第１から第７のいずれかの態様による経路認識方法であって、前記経路集合を構成する前記１以上の経路のうちの前記少なくとも一部の経路は、前記経路集合を構成する前記１以上の経路の全てである。
本構成によれば、経路集合を構成する経路の全てについて、属性抽出がなされるので、経路集合の意味を一層容易に認識することができる。
本発明のうち第９の態様によるものは、第１から第８のいずれかの態様による経路認識方法であって、前記少なくとも一部の属性を、前記入力データに含めて前記人工知能に入力すること（ｄ−２）は、（ｄ−２−１）前記少なくとも一部の経路の各々について抽出された前記少なくとも１つの属性を、前記入力データに含めて前記人工知能に入力すること、を含んでいる。
本構成によれば、抽出された属性のすべてが、入力データに含めて人工知能に入力される。抽出されたすべての属性が、それに対応する属性不変位置データから分離されて人工知能に入力されるので、ジェスチャの例で言えば、人工知能は、抽出されたすべての属性について、ジェスチャの意味を規定する特徴であるのか、規定的ではなく追加の情報を伝えるのか、あるいは全く無関係であって無視できるのか、という判断を容易に行うことができる。
【００２２】
本発明のうち第１０の態様によるものは、第１から第９のいずれかの態様による経路認識方法であって、コンピュータによってなされる次の処理（ｉ）を、更に含んでいる。（ｉ）入力を受け入れた前記経路集合データから、前記経路集合を構成する各経路に沿った前記点群として、経路毎に定められた数の点群を選択すること。そして、当該経路毎に定められた数の点群を選択すること（ｉ）は、経路毎に、前記経路毎に定められた数の点群を連結する一連の線分と、入力を受け入れた前記経路集合データが表現する前記経路集合のうちの対応する経路との間の差分を最小にする方向に、前記経路毎に定められた数の点群を探索することを含んでいる。
本構成によれば、経路毎に定められた数の点群が、入力を受け付けた経路集合データが表現する経路集合の各経路を近似するものとして選択され、その位置データ又はその位置データから得られた属性不変位置データが、人工知能に入力されるので、人工知能による演算の負担を軽くしつつ、経路認識の精度を向上させることが容易である。
【００２３】
本発明のうち第１１の態様によるものは、第１０の態様による経路認識方法であって、前記経路毎に定められた数の点群を探索することは、疑似アニーリングによって行われる。
本構成によれば、疑似アニーリングによって、経路毎に定められた数の点群の探索が行われるので、探索の過程で、真の最小値ではない局所的な最小値から抜け出せなくなることを回避することができる。
本発明のうち第１２の態様によるものは、第１から第１１のいずれかの態様による経路認識方法であって、前記人工知能は、ニューラルネットワークである。
本構成によれば、ニューラルネットワークという比較的簡素に構成される人工知能を用いて、比較的簡単な学習により、推定の確度を高めることができる。
【００２４】
本発明のうち第１３の態様によるものは、第１から第１２のいずれかの態様による経路認識方法であって、前記経路集合データを含むデータの入力を受け入れること（ａ）は、付加的データを受け入れることを含んでいる。そして、前記人工知能に入力される前記入力データは、受け入れられた前記付加的データを含んでいる。
本構成によれば、人工知能に入力する入力データに、付加データが含められるので、付加データを考慮した経路認識の結果を得ることができる。例えば、経路集合を構成する各経路が、ジェスチャの形状輪郭又は動きに沿った経路であって、「オブジェクトを投げる」というジェスチャが、オブジェクトを選択している時にのみ意味を成す場合に、オブジェクトが選択されているか否かについての情報を、追加データに含めることができる。この追加データが、人工知能への入力データに加えられることにより、誤認識のリスクが回避される。それにより、ジェスチャー認識の信頼性が向上する。
【００２５】
本発明のうち第１４の態様によるものは、第１から第１３のいずれかの態様による経路認識方法であって、入力を受け入れる前記経路集合データが表現する前記経路集合を構成する各経路が、ジェスチャの形状輪郭に沿った経路とジェスチャの動きに沿った経路とのいずれかである。
本構成によれば、ジェスチャを認識することができる。
本発明のうち第１５の態様によるものは、第１から第１４のいずれかの態様による経路認識方法であって、前記データの入力を受け入れること（ａ）から、前記確率の推定値を前記人工知能に計算させること（ｅ）までを、繰り返し行う。そして、前記データを前記入力データとして前記人工知能に入力すること（ｄ）は、（ｄ−３）入力を受け入れた前記経路集合データが表現する前記経路集合を構成する前記１以上の経路の種別に応じて、前記人工知能として異なる人工知能を選択して、前記入力データを入力することを含んでいる。
本構成によれば、経路集合を構成する経路の種別に応じて、人工知能が使い分けられるので、学習が効率よく行い得る。
本発明のうち第１６の態様によるものは、第１５の態様による経路認識方法であって、前記種別が、前記経路集合を構成する前記１以上の経路の数を含んでいる。
本構成によれば、経路集合を構成する経路の数に応じて、人工知能が使い分けられるので、学習が効率よく行い得る。
【００２６】
本発明のうち第１７の態様によるものは経路認識装置であって、コンピュータを備え、第１から第１６のいずれかの態様による経路認識方法を実行する。
本構成によれば、本発明の各態様による経路認識方法を実行する経路認識装置が実現する。
本発明のうち第１８の態様によるものは経路認識プログラムであって、コンピュータに読み取られることにより、前記コンピュータに第１から第１６のいずれかの態様による経路認識方法を実行させる。
本構成によれば、コンピュータに本発明の各態様による経路認識方法を実行させる経路認識プログラムが実現する。
本発明のうち第１９の態様によるものは、非一過性のコンピュータ読み取り可能な記録媒体であって、コンピュータに読み取られることにより、前記コンピュータに第１から第１６のいずれかの態様による経路認識方法を実行させるプログラムが記録されている。
本構成によれば、コンピュータに本発明の各態様による経路認識方法を実行させる非一過性のコンピュータ読み取り可能な記録媒体が実現する。  
【発明の効果】
【００２７】
以上のように本発明によれば、ジェスチャによるユーザとコンピュータとの対話を、効果的かつ効率的に処理することを可能にする経路認識技術が実現する。
【図面の簡単な説明】
【００２８】
【図１Ａ】ジェスチャを使用するユーザインタフェースの想定可能な実装例を示す説明図である。
【図１Ｂ】ジェスチャを使用するユーザインタフェースの想定可能な実装例を示す説明図である。
【図１Ｃ】ジェスチャを使用するユーザインタフェースの使用例を示す説明図である。
【図１Ｄ】ジェスチャに基づく想定可能なユーザ入力の事例を示す説明図である。
【図１Ｅ】ジェスチャに基づく想定可能なユーザ入力の事例を示す説明図である。
【図１Ｆ】ジェスチャに基づく想定可能なユーザ入力の事例を示す説明図である。
【図１Ｇ】ジェスチャに基づく想定可能なユーザ入力の事例を示す説明図である。
【図１Ｈ】２つのストロークの組み合わせによって構成されるジェスチャの一例を示す説明図である。
【図１Ｉ】手の形状が認識される例を示す説明図である。
【図１Ｊ】手の形を変える手のジェスチャを認識する例を示す説明図である。
【図１Ｋ】本発明の一実施の形態による経路認識装置を含むシステムのハードウェア構成の概略を例示するブロック図である。
【図１Ｌ】本発明の一実施の形態による経路認識装置を含むシステムの機能構成の概略を例示するブロック図である。
【図２Ａ】本発明の一実施形態による経路認識装置の動作を、生成されるデータの流れに沿って示すフロー図である。
【図２Ｂ】本発明の一実施形態による経路認識装置の動作を、生成されるデータの流れに沿って示すフロー図である。
【図３】図３Ａ〜図３Ｇは、入力された経路データから経路上の所定数の最適な点群を探索する手順を例示する工程図である。
【図４】経路上の所定数の点群の位置データを変換する処理の過程を例示する説明図である。
【図５Ａ】本発明の実施の形態においてニューラルネットワークがどのように使用されるかを例示する説明図である。
【図５Ｂ】本発明の実施の形態においてニューラルネットワークがどのように使用されるかを例示する説明図である。
【図５Ｃ】本発明の実施の形態においてニューラルネットワークがどのように使用されるかを例示する説明図である。
【図５Ｄ】３ストロークのジェスチャを処理するニューラルネットワークの構成例を例示する説明図である。
【図６Ａ】２つのジェスチャ例に対する処理により実行される数値計算の例を示す説明図である。
【図６Ｂ】２つのジェスチャ例に対する処理により実行される数値計算の例を示す説明図である。
【図６Ｃ】２つのジェスチャ例に対する処理により実行される数値計算の例を示す説明図である。
【図６Ｄ】２つのジェスチャ例に対する処理により実行される数値計算の例を示す説明図である。
【図６Ｅ】２つのジェスチャ例に対する処理により実行される数値計算の例を示す説明図である。
【図７】本発明の実施の形態による経路認識装置を含むシステム全体の処理を例示するフロー図である。
【図８】図１Ｋに例示するシステム全体のプラグラム構成を例示するブロック図である。
【図９】本発明の別の実施の形態による経路認識装置を含むシステムの処理を例示するフロー図である。
【発明を実施するための形態】
【００２９】
［発明の実施形態の概略］
はじめに、本発明の実施形態の概略について説明する。図１Ａ及び図１Ｂは、ジェスチャを使用するユーザインタフェースの想定可能な実装例を示す。これらの図は、本発明の想定可能な適用例として意図したものでものであり、本発明を網羅して示すものではない。
【００３０】
図１Ａは、バーチャルリアリティー（仮想現実；ＶＲ）システムを使ってユーザがジェスチャの入力を行う一例を示す。ユーザは、ＶＲ入力装置（制御装置）を手に持って自由空間内で動かすことにより、ジェスチャ動作を実行する。ユーザはＶＲゴーグル（ヘッドマウントディスプレイ；ＨＭＤ）をかけて、ジェスチャの影響を受けるバーチャルリアリティ（仮想現実）を見ることができる。
【００３１】
図１Ｂは、ハンドトラッキング装置（hand-tracking device；手追跡装置）を使って、ジェスチャの入力を行う一例を示す。ユーザが、素手でジェスチャ動作（すなわち、動きのあるジェスチャ）を実行すると、トラッキングシステムはその手の位置を検出する。ユーザが見るコンピュータ画面には、ジェスチャによって影響を受けるプログラムの処理結果が表示されている。
【００３２】
図１Ｃは、ジェスチャを使用するユーザインタフェースの一使用例を示す。ユーザは、仮想現実の中で３次元モデルを設計する。ユーザは、ジェスチャを使用することにより、３Ｄモデルを直感的かつ効率的に編集することができる。
【００３３】
図１Ｄ〜図１Ｇは、ジェスチャに基づく想定可能なユーザ入力の事例を示す。図１Ｄは、「右へスワイプ」を使用して、コンピュータシステムに、ユーザの最新の動作を「元に戻す」ことを命令し（図１Ｄの左部分）、「左へスワイプ」を使用して、最新に元に戻した動作を「やり直す」ことを命令することが可能であることを示している（図１Ｄの右部分）。この場合には、動きの方向は、「元に戻す」と「やり直す」という２つのジェスチャを区別するために使用される。ジェスチャの位置又は大きさは無関係であり、無視することができる。
【００３４】
図１Ｅは、「矢印を書く」というジェスチャを用いて、オブジェクト（ここでは操作対象の意）を動かすように、コンピュータに命令する事例を示す。図１Ｅの左部分は、ユーザが右に向く矢印を描くジェスチャを表しており、右部分は左に向く矢印を描くジェスチャを表している。矢印の形の動きは命令「オブジェクトを移動」を表し、矢印の位置は移動させるべきオブジェクトを特定し、矢印の方向は移動の方向を表し、矢印の長さは、移動の距離を指示する。この事例では、ジェスチャ自体の意味（「オブジェクトを移動」）は、ジェスチャが行われる方向、大きさ、および位置とは無関係に、同一である。しかし、方向、大きさ、および位置は、操作の実行方法に関する追加情報を伝えている。
【００３５】
図１Ｆは、「十字を描く」というジェスチャが、実行される方向に基づいて、「追加する」（図１Ｆの左部分）又は「消去する」（図１Ｆの右部分）という何れかの意味を持つ可能性を示す。描かれる「＋」と「ｘ」の符号は、形状において同一であるが、２つの異なるジェスチャ（「複製する」又は「消去する」）である。ジェスチャの位置は、複製又は消去すべきオブジェクトを特定するのに使用される。実行されるジェスチャの大きさは、何らの関連情報も伝えないので、無視することができる。
【００３６】
図１Ｇは、ゲームの場面で、円形の動きをどのように使用できるかを例示する。円が小さく頭の上にある場合（図１Ｇの左部分）は、「神話上の生き物を召喚する」を意味するように、プログラミングすることができる。円が大きく、肩の高さにある場合（図１Ｇの右部分）は、「魔法の盾を召喚する」を意味するようにプログラミングすることができる。どちらの場合も、円の形は同じである。 両方のジェスチャの意味の違いは、ジェスチャが実行される位置と大きさとにある。さらに、「盾」のジェスチャの場合には、その位置および向きは、盾の位置及び方向を指示する追加のパラメータとして使用することも可能である。
【００３７】
以上の着想は、複数のストロークにより構成されるジェスチャにも適用可能である。本開示において、ストロークとは、連続した１つのジェスチャー動作の単位である。図１Ｈは、２つのストロークの組み合わせによって構成されるジェスチャの一例を示す。この例は、小さな手の振りによりオブジェクト（操作対象）を選択して（図１Ｈの左部分）、それに続いて投げるという動き（図１Ｈの右部分）を表している。この場合では、各ストロークの位置、方向又は寸法（大きさ）が重要となる可能がある。図１Ｈの例では、左部分に例示する最初のストローク（「選択」）は、寸法と方向によって認識される（下方向への小さな手の振り）。これに対し、ストロークの位置は、ジェスチャを認識するためではなく、オブジェクトを選択するために利用される。図１Ｈの右部分に例示する２番目のストローク（「投げ」）は、その位置（ユーザの頭の上）によって認識され、ストロークの方向と寸法は、ジェスチャの認識には利用されず、投げの操作の向きと距離を制御するのに利用される。
【００３８】
このように、複数のストロークからなるジェスチャの場合には、システムは、各ストロークを、単一ストロークのジェスチャと同様に、個別的に分析する必要がある一方、ジェスチャ全体が、これらのストロークから構成されることを認識することも重要である。
【００３９】
上記の動きの分析と同等な分析方法として、オブジェクト（ここでは認識対象の意）の形状輪郭によって、オブジェクトを認識する方法を挙げることができる。すなわち、オブジェクトの形状の輪郭を、上述した動きの経路と同じく、空間内の経路に見立てることができ、空間内の経路に対する上述の方法と同様の方法によって処理することが可能である。
【００４０】
図１Ｉは、手の視覚的輪郭を空間内の経路として扱うことによって、手の形状が認識される例を示す。図１Ｉの左部分は、ジェスチャを意図した手の形状を例示しており、右部分は、認識された手の形状輪郭を例示している。
【００４１】
オブジェクト（認識対象）が形状を経時的に変化させることができる場合には、複数のストロークを処理する既述の方法と同じ方法により、形状の変化を解釈することが可能である。図１Ｊは、動きの前後の手の輪郭を空間内の経路として扱うことによって、手の形を変える手のジェスチャを認識する例を示す。図１Ｊの左部分は、第１のストロークに対応する第１の形状を例示しており、右部分は、第２のストロークに対応する第２の形状を例示している。また、図１Ｊの上部分は、手の形状そのものを例示しており、下部分は、上部分に例示する手の形状に対応する形状輪郭を例示している。オブジェクトの形状輪郭が入力データとして使用される場合であっても、異なる時点におけるオブジェクトの形状輪郭の位置、方向、および／または寸法というオブジェクトの形状輪郭の属性は、これらの属性を捨象したオブジェクトの形状輪郭の形状そのものと同様に、ジェスチャの意味を規定する特徴の一部として扱うことが可能であり、ジェスチャの意味に追加の情報を付与するパラメータとして扱うことも可能である。
【００４２】
このように、図１Ａ〜図１Ｊの全ての事例は、ジェスチャの位置、方向、および大きさに、異なる意味を与えている。 これらのジェスチャを確実に認識するためには、コンピュータシステムは、これらの異なる場合に、効率的に適応できる特定の方法を要する。すなわち、コンピュータシステムは、ジェスチャのストロークの位置、方向、及び大きさが、どのような場合にジェスチャの意味に影響を及ぼし、どのような場合に影響が無いのかを、判断できることを要する。本発明は、以下に具体例をもって詳述するように、かかる要求に応えるものである。
【００４３】
図１Ａ〜図１Ｊは、本発明において使用可能なジェスチャ言語システムのいくつかの事例を示しているに過ぎない。それらの事例は、動作の位置、方向、または大きさが、ジェスチャの特徴である（すなわち、ジェスチャの意味を変える）か、あるいはそうでないか（この場合、それらは追加の情報として用いられるか、又は無視される）、をコンピュータシステムが理解できることの重要性を、単に例示するために用いられるに過ぎない。このようなジェスチャによる対話の形態を、効果的かつ効率的に処理することのできるコンピュータシステムを構築することは、人間とコンピューターとの対話においては、非常に価値のあるものである。
【００４４】
［発明の実施形態の詳細］
以下において、ジェスチャによるユーザとコンピュータとの対話を、効果的かつ効率的に処理することを可能にする経路認識技術について、詳細に説明する。図１Ｋは、本発明の経路認識装置を含むシステム全体の一実施形態に関し、特にそのハードウェア構成を例示する。また、図１Ｌは、このシステム全体の一実施形態に関し、特にその機能構成を例示する。
ユーザは入力装置１０１を操作することができ、かつ空間内で動かすことができる。入力装置１０１の代わりにユーザの身体自身の一部を使用する実施の形態を、採用することも可能である。入力装置１０１の動きは、カメラ又は動き検出器などの記録装置１０２によって検出される。
トラッキング（追跡）システム１０３は、入力装置１０１の動きの数値表現を計算する。別の入力装置１０９は、例えばキーボード、マウスなどである。入力装置１０９は、コンピュータシステム１００に、構成要素の１つとして含まれていてもよい。インターフェイス１０４は、コンピュータシステム１００の他の構成要素と、トラッキングシステム１０３及び入力装置１０９との間のデータ転送を管理する。インターフェイス１０４は、更に、インターネットなどのネットワーク１３０に、コンピュータシステム１００の他の構成要素を接続する機能を果たしてもよい。それにより、コンピュータシステム１００は、ネットワーク１３０に接続されるクラウドサーバなどのサーバ１３１と、接続することも可能となる。
プロセッサー装置１０５は、ユーザのジェスチャを認識するために必要な演算を実行するとともに、ユーザがジェスチャによって意図する操作を行う。任意選択的な表示装置１０６は、ユーザのジェスチャによってなされた操作の結果を、ユーザに表示する。コンピュータメモリー１０７は、例えば半導体メモリであり、例えばシステムの動作中に一時的にデータを格納するのに用いられる。記憶媒体１０８は、例えばハードディスクであり、例えばコンピュータプログラムなどを記憶するのに使用される。本発明の一実施の形態としての経路認識プログラムは、コンピュータプログラムの形態で記憶媒体１０８に記憶することができ、ジェスチャ認識が必要とされる時に、読み出すことができる。
従って、コンピュータシステム１００は、本発明の一実施の形態としての経路認識プログラム、経路認識プログラム記録媒体、及び経路認識装置１１０を、構成要素として含んでおり、さらに、本発明の一実施の形態としての経路認識方法を、処理の構成要素として実行する。また、コンピュータシステム１００は、ユーザがジェスチャーによって指示する操作を実現する操作対象装置１２０を、構成要素として含んでいる。上記の表示装置１０６は、例えば操作対象装置１２０の一要素である。操作対象装置１２０は、例えば、３次元の設計図面を作成するＣＡＤ装置である。経路認識装置１１０は、入力されたユーザのジェスチャ動作を認識し、その結果を操作対象装置１２０に伝える。それにより、操作対象装置１２０は、ユーザがジェスチャーによって指示する操作を実現すること、例えば作図すること、が可能となる。
【００４５】
図１Ｋ及び図１Ｌの例では、ユーザはワンド（棒状の器具）またはＶＲコントローラ等の入力装置１０１を、３次元空間において動かし、コンピュータシステム１００は、X、Y、Z座標における入力装置１０１の位置を表す追跡データのストリームを受信する。この追跡データのストリームは、人工知能ニューラルネットワークが、学習段階では一群のジェスチャを学習することができ、認識段階では、意図したジェスチャを認識することができるように、格納され、かつ処理される。その際に、ジェスチャ動作の位置、方向又は大きさが、ジェスチャを認識する特徴であるか否か、追加の情報を与えるのか否か、あるいはそれらが無視されてもよいのか否かを、判定することが可能である。このコンピュータシステム１００は、既知のジェスチャ動作の一群のサンプルに基づいたベクトル値を分類することを学習することが可能な人工知能の一例としてニューラルネットワークを含んでいる。ニューラルネットワークは、一例として、記憶媒体１０８に格納される。別の例として、コンピュータシステム１００は、サーバ１３１に置かれているニューラルネットワークを用いるものであってもよい。ジェスチャの動作経路（すなわちジェスチャ動作の動きの経路）の数値的な表現が、ニューラルネットワークに入力される。ニューラルネットワークが、ジェスチャの位置、方向又は寸法によって、ジェスチャが認識されるかどうかを効率よく判定し、かつジェスチャを効率的に分類することを可能にするために、読み込まれる動作データは、以下のステップによって処理される。ステップ（Ｂ）〜（Ｄ）の順序は任意である。
【００４６】
（A）ユーザによるジェスチャ動作に最も良く近似する固定数の点が計算される。本発明の一実施形態では、この処理は、元の動作経路から固定数の点を、これらの点間の線形補間によって近似された経路から、元の動作経路上のすべての点への距離が、最小となるように選択することによって行われる。 これらの点を効率的に検出するために、まず、動作経路に沿って等間隔の点を選び、その後に、疑似アニーリング法を用いて、一度に１点ずつ動かすことにより、反復的に近似の度合いを改善することができる。 
【００４７】
（B）これらの点が、位置に対して不変な表現に変換される。本発明の一実施形態は、これら全ての点の平均位置を計算し、これら全ての点をその平均位置からの相対的なオフセット（ずれ）として符号化する。 
【００４８】
（C）これらの点が、寸法に対して不変な表現に変換される。本発明の一実施形態は、これら全ての点の標準偏差を計算し、これら全ての点の位置を、標準偏差を基準として表す。この場合、これら全ての点の標準偏差は、１となる。
【００４９】
（D）これらの点が、方向に対して不変な表現に変換される。本発明の一実施形態は、これら全ての点の主成分分析を実行し、３次元空間内の分布の第１主軸、第２主軸及び第３主軸を特定する。そして、各点は、これらの座標軸を基準として、再符号化される。すなわち、各点は、３次元空間の中で、これら３主軸の各々の方向に、どれだけ遠い位置にあるか、が表現される。
【００５０】
次に、変換された全ての点は、ベクトルに連結され、さらに、ステップ（B）、（C）、（D）で生成されたメタデータ、すなわち平均位置、大きさ（例えば標準偏差）、及び方向の軸（例えば３主軸）の一部または全部と連結される。そのベクトルは、ニューラルネットワークに入力される。 
【００５１】
したがって、ニューラルネットワークは、特定のジェスチャが、前述の特徴のいずれかによって認識されるかどうか、例えば、大きさ又は方向の違いが、意味の全く異なる別のジェスチャを意味するのか、あるいは、同じジェスチャを意味するのか、などを、実例に基づいて効率的に学習することができる。
【００５２】
図２Ａ及び図２Ｂは、コンピュータシステム１００に要素として含まれる本発明の一実施形態による経路認識装置１１０の動作を、生成されるデータの流れに沿って示す。処理２０１において、ある形態のトラッキングシステム（追跡システム）１０３（図１Ｋ参照）は、コンピュータシステム１００へ入力データを付与する。トラッキングシステム１０３は、ＨＭＤ、制御装置、モーショントラッカ（動き追跡装置）、または動き検出カメラなどの様々なＶＲ装置を有していてもよく、事前記録された動作データの記憶装置を有していてもよい。
【００５３】
入力装置１０１の動きのトラッキングデータ（追跡データ）２０２は、コンピュータシステム１００に含まれる経路認識装置１１０への入力データとなる。追跡データ２０２の位置の基準となる座標系は、一例として記録装置１０２（図１Ｋ参照）の位置を基準に、トラッキングシステム１０３により設定される。別の例として、ジェスチャ実行時にユーザの視点を記述する追加的な基準点が、トラッキングシステム１０３に付与される。その場合には、追跡される入力装置１０１の動きを、基準点に対する相対的な動きとして記述するように、追跡データ２０２の座標値が変換される。すなわち、追跡データ２０２の座標系が、ユーザの視点に追随する座標系に変換される。この処理は、トラッキングシステム１０３によって行われる。基準点は、例えばユーザが頭に装着するヘッドセットがユーザの視点を検知することにより得られる。このような座標系の変換は、従来周知であるので、詳細な説明は略する。追跡データ２０２は、一例として不定数の追跡データ点の形式を採る。一例として、追跡データ２０２は、入力装置１０１の検出時刻に沿って順序づけられた位置の座標値の集合の形式、あるいは、位置を記述する変換行列またはユークリッドベクトルと、回転を記述する四元数とからなる形式を採る。また、追跡データ２０２は、例えば、上記の通りユーザの視点などの特定の基準点に相対的な値として表現しても良く、あるいは、特定の座標系へ変換しても良い。他の例として、追跡データ２０２は、追跡された動き経路を近似的に表現する関数、例えば多項式の形式を採ることも可能である。
【００５４】
追加データとして、コンテキスト情報（状況情報）２０３が、追跡システム１０３によって付与されてもよい。コンテキスト情報２０３は、実行されたジェスチャ自体の情報の一部ではなく、実行されたジェスチャの意味に関連するメタデータである。例えば、コンテキスト情報２０３は、ジェスチャが行われるときに、入力装置１０１のどのボタンが押されているか、現在のジェスチャ動作の前に、どのジェスチャが実行されたか、などを表現する。コンテキスト情報２０３は、オプション（任意）であり、本発明のすべての実施形態に、必ずしも存在する訳ではない。経路認識装置１１０の動作モードが学習モードと認識モードのいずれであるべきか、を指示する動作モード選択データは、例えば、ユーザが入力装置１０１又は入力装置１０９を操作することにより、経路認識装置１１０に入力される。
【００５５】
ジェスチャストロークを機械学習によって、より容易に比較できるようにするために、簡略化された表現が処理２０４により計算される。その表現は、あらかじめ定められた数のデータ点群２０５によって構成される。 本発明のある実施形態では、この処理は、初期の推測ステップと、それに続く疑似アニーリングのステップとによって達成される。これについては、後述する。
【００５６】
続いて処理２０６では、データ点は、位置（すなわち場所）、方向（すなわち回転又は姿勢）および寸法（すなわち大きさ）に関する情報を抽出するために、さらに処理される。最終的に得られるデータ集合２０７は、ジェスチャの動きの形状自体を記述するものであり、固定の大きさであり、ジェスチャストロークがどこでなされたか、どの方向になされたか、どのような大きさでなされたか、にかかわらず、類似の形状を有するジェスチャストロークの間では、非常に類似したものとなる。ジェスチャ位置、方向、および/または寸法という、計算されかつ抽出された基準は、ジェスチャに関するメタデータ２０８として、別々に格納される。
【００５７】
処理２０９では、データ点の最終的な集合が、連結されることにより、データベクトル２１０に組み込まれる。このベクトル２１０には、それまでに計算されたメタ情報データの一部またはすべてが含められる。それにより、ジェスチャストロークの形状自体の情報であるデータ集合２０７と、ジェスチャストロークが実行される位置、方向、および/または寸法を表現するメタデータ２０８との、双方からなる新しい入力データベクトル２１０が生成される。必要に応じて、トラッキングシステム１０３によって処理２０１において付与されるコンテキスト情報２０３を、入力データベクトル２１０に含めることも可能である。
【００５８】
次に、処理２１１において、入力データベクトル２１０が、人工ニューラルネットワーク（artificial neural network ；ＡＮＮ）へ入力され、ニューラルネットワークは、所定の演算を実行する。入力データベクトル２１０は、学習段階では、そのジェスチャの類型すなわち意味が既知なのであれば、特定のジェスチャのサンプルとして使用され、認識段階では、新たな未知のジェスチャを認識するのに使用される。 ニューラルネットワークは、演算を実行するためにパラメータ集合２１２を使用する。後に詳述するように、このパラメータ集合２１２は、学習の結果によるものであり、学習によって改善することが可能である。
【００５９】
経路認識装置１１０が、新規な未知のジェスチャ動作を認識するために使用される場合、すなわち動作モードが認識モードであるときには、処理２１１によって、ニューラルネットワークは、実行されたジェスチャストロークが、学習段階中に教示された様々なジェスチャのカテゴリー（あらかじめ定められたジェスチャの類型であり、本開示ではジェスチャの意味と同義；以下「ジェスチャカテゴリー」と適宜表記する）に属する確率の推定値を表示する値の集合２１３を、出力ニューロン（出力層のノード）の値として生成する。 
【００６０】
次いで、経路認識装置１１０は、処理２１４において、ユーザによって意図されたジェスチャである可能性の最も高いジェスチャカテゴリーとして、最も高い確率の推定値を有するジェスチャカテゴリーを選択することができる。尚、既知のジェスチャカテゴリーの中で、確率の推定値の高いカテゴリーが無い場合には、エラーメッセージを生成することも可能である。最も可能性の高いジェスチャカテゴリーが選択されている場合には、そのジェスチャカテゴリーの識別子（ＩＤ）２１５が、経路認識装置１１０の処理における出力値となる。
【００６１】
次に、経路認識装置１１０は、処理２１６において、出力データの完全な集合を構成する。この出力データ集合は、ジェスチャの種類の識別子２１５、ジェスチャストロークのメタデータ２０８、およびトラッキングシステムによって先に付与されたコンテキスト情報２０３からなる。
【００６２】
図２Ｂは、動作モードが学習モードであるときの経路認識装置１１０の動作を例示する。経路認識装置１１０は、既に述べた動作モード選択データに基づいて、動作モードを認識モードと学習モードのいずれかに設定する。学習モードにおいては、ニューラルネットワークを学習させるために、例えば、ユーザは学習用サンプルとしてジェスチャストロークを実行する。入力データ２０２，２０３の処理と入力データベクトル２１０の構成は、認識モードにおけるものと同じである。また、処理２１１によって、ニューラルネットワークは、学習用サンプルとして入力されるジェスチャストロークについて、認識モードにおける処理２１１と同様に、ニューラルネットワークの出力ニューロン（出力層のノード）の値を計算する。
さらに、正しい（すなわち、意図された）ジェスチャカテゴリーの識別子２１７が、教師データとしてユーザによって付与される。教師データとしての識別子２１７は、例えば、ユーザが入力装置１０１又は入力装置１０９を操作することにより、経路認識装置１１０に入力される。この入力情報は、ニューラルネットワークの出力ニューロン（出力層のノード）のうち、正しいジェスチャカテゴリーに対応する出力ニューロンを「１」に設定し、その他の全ての出力ニューロンを「０」に設定するのに用いられる。ニューラルネットワークは、処理２１１において更に、計算した出力ニューロンの値と、正しい値である出力ニューロン値２１８との間の不一致に基づいて、ニューラルネットワークパラメータ２１２のうち、各ニューロンの重み及びバイアス値を更新し、認識モード中にユーザが意図するジェスチャの類型を正しく予測する確率を向上させる。
なお、学習モードにおいては、処理２１１において、ニューラルネットワークパラメータ２１２のうち、ノード層（レイヤ）の数及び各層のニューロン数を、最適値に調整することも可能である。その処理手順は、当分野において周知であるので、その詳細な説明は略する。
【００６３】
図３Ａ〜図３Ｇは、ステップ２０４の処理を例示しており、ニューラルネットワークによりジェスチャストロークを認識するために、ジェスチャストロークを最適に表現する一群の点を見いだす方法の一実施形態を例示している。図３Ａは、入力データとしての追跡データ２０２を示している。図示の例では、入力データは、実行されたジェスチャストロークの経路に沿った一連の点である。点の数は任意であり、ユーザが実行するジェスチャ動作の長さ及び速度によって変わってもよい。経路の曲線を、可能な限り詳細に維持することにより最適に表現する固定数の点が、以下に例示するアルゴリズムにより見いだされる。
【００６４】
図３Ｂに示す最初のステップでは、経路に沿った間隔が等しくなるように、望ましい固定数の点群が選択される。そして、この最初の推定結果は、疑似アニーリングによって反復的に改善される。すなわち、代表点がランダムに選択され、経路に沿ったランダムな移動が、疑似シミュレーションによって提案される（図３Ｃ参照）。 図３Ｄ及び図３Ｅに示すステップでは、経路認識装置１１０は、選択された代表点の移動前及び移動後について、移動による影響のある線分の経路からの誤差を計算する。ここで、「誤差」とは、選択された代表点それのみによって決まる簡略化された経路（線分）から、図３Ａに示したジェスチャストロークの経路上の点群が、どれほど離れているか、によって定義される。疑似シミュレーションによって新たに提案される点の位置による誤差が、先に用いられた点の位置による誤差よりも小さいならば、提案された位置の変更は受け入れられ、簡略化された経路は更新される（図３Ｆ参照）。逆に、新たに提案される点の位置による誤差が、先に用いられた点の位置による誤差よりも大きいならば、疑似シミュレーションにより、乱数が生成される。この乱数が、更新すべきか否かの判断の基準とされる閾値よりも大きいならば、更新はなされず、先の点の位置が維持される。乱数が閾値よりも小さいならば、誤差が増加することになるとしても、ともあれ更新がなされる（すなわち、ジェスチャストロークの表現という点において、より悪くなる）。これは、システムが、局所的な最小値から抜け出せなくなることを避けるためになされる。
【００６５】
いずれの場合であっても、システムは、新たなランダムな点を選択し、ジェスチャストロークの経路に沿ったその点の新たなランダムな移動を提案することにより、次のステップとして、図３Ｃに示したステップを繰り返す。このサイクルは、ジェスチャストロークの経路の有用な表現を見いだすために、任意の回数繰り返される。閾値は、繰り返しのサイクル毎に減少させられ、それにより、誤差を増加させる更新は、受け入れられ難くなる。図３Ｇに例示する一群のデータは、最終的に得られる結果である。これらの点群は、異なるジェスチャストロークを比較することを容易にする有意義な方法で、ジェスチャストロークの経路を記述している可能性が高い。
【００６６】
図４は、ジェスチャストロークを表現する様々なデータ点群が、どのようにして、先にステップ２０５〜２０９として説明したように、さらに処理されるのかを、目に見える形態で例示している。この図は、本発明の一実施形態による、いくつかのジェスチャストロークの処理を、例示するものであって、本発明がこれに限定される訳ではなく、また数値的に正確である訳でもない。説明のために、ジェスチャストロークは、２次元平面上の動きとして表されているが、本発明は、次元の数とは無関係であり、平面上だけでなく自由空間内で実行されるジェスチャ動作にも、適用することができる。さらに、処理ステップ４０２，４０４，４０６の実行順序は任意であり、図に表示される順序は、本発明を限定するものではない。
すでに述べたステップ２０４（図２Ａ参照）により、ジェスチャストロークの経路を表現する、限られた数の点群４０１（図２Ａのデータ２０５に相当）が得られる。入力されるジェスチャストロークを表現するデータ点群４０１は、位置・方向・寸法について、入力されるジェスチャストロークの間で異なったものとなることが予想される。図において左端の欄には、６つのジェスチャストロークのデータ点群４０１の例が表示される。矢印は、使用されている座標系の座標軸を表す。
【００６７】
人間である観察者には、ジェスチャストローク間の類似性は明白であるが、データ点群４０１の座標から数値的に判断する場合には、位置、方向、及び寸法の違いのために、その類似性を検出することは困難である。ステップ４０２では、すべてのデータ点群４０１の平均点または重心等の基準４１１が計算され、データ点群４０１とは別個に保存され、かつすべてのデータ点４０１から減算される。ステップ４０２において得られたデータ点群４０３は、座標系の原点を中心にした値に変換されているが、様々なジェスチャストロークは、まだ方向（回転）と寸法（大きさ）において大きく異なっている。
【００６８】
ステップ４０４では、方向（回転）の基準４１２が計算される。いくつかの実施形態では、この基準４１２は、主成分分析によって計算された最大および最小分散のベクトルの組として与えられる。方向の基準４１２はデータ点群４０３とは別個に保存され、すべてのデータ点４０３が基準４１２とは逆方向に変換される。言い換えると、全てのデータ点の座標値が、方向の基準４１２を新たな座標軸とした座標値に変換される。ステップ４０４において得られたデータ点群４０５は、座標系の原点を中心にして方向が整っているが、様々なジェスチャストロークは、まだ寸法において異なっている。
【００６９】
ステップ４０６では、寸法（スケール、大きさ）の基準４１３が計算され、データ点群４０５とは別個に格納される。いくつかの実施形態では、この基準は、すべてのデータ点４０５の標準偏差または標準分散である。この基準４１３は、単一の値であってもよく、次元ごとに１つの値を有するように一組の値によって構成されてもよい。基準４１３が単一の値である場合とは、例えば、データ点群４０５の重心からの、方向を問わない距離について標準偏差を算出し、この標準偏差を基準４１３とする場合が該当する。この寸法の基準４１３の逆数が、ジェスチャストロークの一組のデータのすべてに掛け合わされ、それにより均一な寸法が達成される。
ステップ４０６において得られたジェスチャストロークのデータ点群４０７は、座標系の原点を中心に、配向方向（回転方向）に相対的な位置に配置されており、かつ一様な（単一の）大きさとなるように配置されている。これにより、データ点群４０７の座標値は、様々なジェスチャストロークの間で、数値的に互いに比較し易くなっている。このテータ点群４０７は、ユーザがどこで、どの方向に、かつどの大きさでジェスチャ動作を行うか、には依存せず、ジェスチャ動作の動き経路の形状そのものを表している。
【００７０】
ステップ２０９（図２Ａ参照）において得られるニューラルネットワークの入力データのベクトル４０８（図２Ａのベクトル２１０に相当）は、ステップ４０６において得られたジェスチャ動作の動き経路の形状データであるデータ点群４０７と、先に計算された位置、方向、寸法の基準４１１，４１２，４１３とから、各数値を連結することによって構成される。ジェスチャ動作の動き経路の形状を表現するデータ点群４０７は、ジェスチャが行われるｎ次元空間における、まばらな点集合であって、ジェスチャ動作の画像ではない点に、注意されたい。そのため、データは３次元の形状を表すこともできるとともに、明確に定められた開始点（第１の点）および終了点（最終点）を有しており、かつジェスチャ動作を表現するために必要な数値の数が、比較的小さいことが特徴的である。
以上のように、データ点群４０１の位置の基準４１１として平均値を例示し、方向の基準４１２として、主成分分析に基づく最大および最小分散のベクトルの組を例示し、大きさの基準４１３として標準偏差を例示した。平均値は、データ点群４０１全体の位置を適切に表現する物理量であり、しかも平均計算という比較的簡単な計算により得られるという利点がある。最大および最小分散のベクトルの組は、データ点群４０１全体の方向を適切に表現する物理量であり、しかも比較的簡単な計算により得られるという利点がある。標準偏差は、データ点群４０１全体の大きさを適切に表現する物理量であり、しかも比較的簡単な計算により得られるという利点がある。特に、位置の基準４１１として平均値を採用し、大きさの基準４１３として標準偏差を採用した場合には、ニューラルネットワークに入力されるベクトル４０８を構成するデータ点群４０７の座標の原点からの平均距離は、１となる。ニューラルネットワークに用いられるロジスティック関数は、入力される数値が−１〜＋１の範囲から大きくはみ出さないことが望ましい。このため、基準４１１として平均値を採用し、基準４１２として標準偏差を採用することは、ロジスティック関数を用いたニューラルネットワークに入力されるデータ点群４０７を算出する上では、特に好ましい。ただし本発明において、基準４１１，４１２、４１３は、これらの例に限定されない。例えば、位置の基準４１１として、データ点群４０１の平均値に代えて、データ点群４０１のうちの始点あるいは終点を採用することも可能である。
【００７１】
図５Ａ〜図５Ｃは、本発明の実施の形態においてニューラルネットワークがどのように使用されるかを例示する。図５Ａに例示するように、１ストロークからなるジェスチャ動作５０１が処理されることにより、ジェスチャ動作５０１の位置、方向、大きさ、及び形状（動き経路の形状）の数値データ５０２が生成される。これらの数値５０２からベクトルが構成される。このベクトルは、ニューラルネットワークの入力ノード５０３の数値を構成する。さらに、コンテキスト情報５０８（図２Ａのコンテキスト情報２０３に相当）をベクトルに追加することも可能である。図示の例では、位置の数値３つ（重心のx、y、z座標）、方向の数値４つ（回転の四元数x、y、z、w）、寸法の数値１つ（標準偏差）、及び ジェスチャ形状（ここでは、ジェスチャ動作の動き経路の形状）の数値９つ（３つの制御点；それぞれがx、y、z座標からなる）である。図２Ａのステップ２０４において得られる、あらかじめ定められた個数のデータ点を、「制御点」と適宜称する。但し、この例は、ニューラルネットワークに基づいてジェスチャカテゴリを認識する動作を例示するために使用される、可能な一例に過ぎない。 
【００７２】
ベクトルを構成する他の方法も採用可能であり、以下の例を、それに限定することなく含めることができる。例えば、データの一部を省略したり、姿勢（方向）を方向のベクトルの形式で符号化したり、寸法の基準を各次元に沿った値に分離したりすることができる。さらには、制御点の数を増やしたり減らしたり、各制御点をジェスチャの重心に相対的な値として符号化したり、ひとつ前の制御点に相対的な値として符号化したり、することができる。また、ベクトルには、タイムスタンプ、制御装置１０１のボタン操作のデータ、ローラー回転操作のデータ等の追加データを、コンテキスト情報５０８として、含めたり、あるいは除去したりすることも可能である。
【００７３】
図示の例では、ニューラルネットワーク内の中間層５０４のノード（隠れたニューロン）には、各々が９つのニューロンを有する２つの層が使用されているが、層やニューロンの最適な数を決定することは、特定のジェスチャ集合についてのニューラルネットワークの最適化の一形態であり、本発明の概念を限定するものではない。隠れた層（中間層）５０４のニューロンは、前の層のニューロンに接続されており、各ニューロンは、接続された入力の値がニューロン自身の出力値にどれほど影響を与えるかに関する重み値を割り当てている。出力値は、入力値とバイアス値の加重和をとり、周知のシグモイド関数や双曲線正接関数などの活性化関数を適用することによって計算される。 
【００７４】
ニューラルネットワークの出力層５０５では、各ニューロンがジェスチャカテゴリの一つに関連づけられている。図示の例では、５つのジェスチャカテゴリ（Ｇ１からＧ５まで）が、ニューラルネットワークには既知となっている。すべての層の出力値の計算が実行された後には、出力層５０５のニューロンの値は、入力されたジェスチャ動作５０１が、対応するジェスチャカテゴリに属する確率の推定値（p(G1)からp(G5)まで）として使用することができる。
【００７５】
この計算に基づいて、学習プロセスを開始することができる。学習プロセスでは、ニューラルネットワーク内のノードの重み係数は、ニューラルネットワークが正しいジェスチャカテゴリを特定する確率を最大にするように設定される。図５Ｂに例示するように、正しいジェスチャカテゴリー５１０は、ユーザによって教示される。教示されたジェスチャカテゴリー５１０は、このジェスチャカテゴリー５１０に関連付けられた出力ノード５０５が「１」であるべきである一方、他の出力ノード５０５の値は「０」でなければならないことを意味する、とニューラルネットワークによって解釈される。 これらの正しい値５１１とニューラルネットワークが出力層ニューロン５０５に実際に生成した値との間の不一致に基づいて、誤差逆伝播法（バックプロパゲーション）を介して、ニューロン接続（ノード）の重みが更新される。それにより、いくつかの接続（ノード）の重みが減ぜられ、他の接続（ノード）の重みが強化または増加させられる。この学習プロセスは出力ニューロン（出力ノード）の中で最も高い値が、ユーザが教示したジェスチャカテゴリーと相関する確率が、実際に最大となるように、接続（ノード）の重みが設定されるまで、ジェスチャカテゴリー毎に、記録された十分な数のジェスチャ動作例を用いて、多数回繰り返される。
【００７６】
図５Ｃに例示するジェスチャ動作５２１は、図５Ａ及び図５Ｂに例示したジェスチャ動作５０１とは異なっている。このため、ジェスチャ動作の数値データ５２２は、数値データ５０２とは異なり、入力ノード５０３に入力されるベクトルも、図５Ａ、図５Ｂの入力ノード５０３に入力されたベクトルとは異なる。中間ノード５０４を含めたすべてのニューロンの値が計算された後に、出力層ニューロン５０５には、ユーザが各ジェスチャカテゴリーに属するジェスチャを意図した確率の推定値として使用できる様々な値が出力される。経路認識装置１１０は、最高値を示すジェスチャカテゴリーを選択し、認識結果データ５２６として出力する。
【００７７】
図５Ｄは、図１Ｈに例示したように、複数（図示の例では３つ）の動作（すなわち３ストローク）の組み合わせであるジェスチャを処理できるニューラルネットワークの一例を示す。例示する処理対象であるジェスチャ５２７は、３つのジェスチャストロークの組み合わせからなる。３つのストローク５２８は、個別に処理される。各動作の位置、方向、および寸法を計算し、それぞれのストロークのデータから除去することにより、動きそれ自体の位置、方向、及び寸法に不変な表現が生成される。これらの数値データ５２９、すなわち各動き経路の動きデータ（制御点）および動きのメタデータ（位置、方向、および寸法）を組み合わせることにより、１つの入力データベクトルが形成され、入力ノード５３０に入力される。ニューラルネットワークは、中間層の一連のノード５３１を通じて、この入力データベクトルを処理する。ニューラルネットワークの出力は、出力層５３２を構成する複数（図示の例では５個）の出力ノードの値であり、実行された動作が、複数ストロークからなるジェスチャの既知のカテゴリーのうちの１つである可能性の推定値を表す。これらの値から、最も確率の推定値の高いジェスチャカテゴリーを選択することができる。
【００７８】
図６Ａ〜６Ｅは、２つのジェスチャ例である「例１」および「例２」に対する処理により実行される数値計算の例を示す。図示の例では、ジェスチャは、「１」から「４」までの符号が付された４つのデータ点（制御点）のみにより表現され、２次元的で１ストロークのジェスチャである。この非常に単純な例は、説明をできるだけ簡単にするために選択されたものであり、データ点群の次元数または個数に関して、本発明を限定するものではない。尚、すべての数値は、例示を目的とした近似値であり、数学的に正確である訳ではない。
【００７９】
図６Ａに示す「例１」及び「例２」は、図２Ａに例示したステップ２０４で得られるデータ点群に対応する。「例１」及び「例２」のいずれも、「１」から「４」までの４個のデータ点で定義されている。「１」はジェスチャ動作の開始点、「４」はジェスチャ動作の終了点である。人間であるユーザまたは観察者には、２つのジェスチャの類似性は明らかである。２つのジェスチャ動作は、異なる位置、寸法、および方向をもって実行されているが、同じジェスチャ動作を意図していることは明らかである。 しかし、２つのジェスチャ動作を数値的に比較すると、「例１（x、y）」のデータベクトルで定義される例１のジェスチャは、「例２（x、y）」のデータベクトルで定義される例２のジェスチャとは大きく異なっている。例１は、ベクトル［2, 9, 3.5, 4,  4, 5.5,   2 , 5］で表され、例２は、ベクトル［25, 8,  22, 1, 24,   2, 21.5, 3.5］で表される。ここで、2個の数値からなる各対は、１つのデータ点の座標を符号化しており、合計４対の数値は、ジェスチャ動作を記録する順序で連結されている。
【００８０】
一般のコンピュータシステムには、これら２群の数値データが、同じジェスチャの種類に属するものと、正しく分類することは、困難である。本実施の形態による経路認識装置１１０では、入力データである「例１ (x, y)」と「例２ (x, y)」を、図６Ｂ〜図６Ｄに例示する３つのステップにより処理し、最終的にニューラルネットワークへの入力データとして使用されるベクトル（図６Ｅ参照）を構成する。
【００８１】
図６Ｂは、第１の処理ステップを示す。ここでは、ジェスチャ動作の中心（重心）が、ジェスチャ動作内の全ての点の平均を見いだすことによって計算される。この平均値は、図６Ａに示したデータ行列の各点から除算され、結果として図６Ｂに示すデータ行列「例１Ａ」及び「例２Ａ」 が得られる。これらのデータ行列はいずれも、位置不変であり、言い換えると、空間におけるジェスチャ動作全体の位置に対して位置合わせされている。
【００８２】
図６Ｃに示す処理ステップでは、ジェスチャ動作の方向すなわち姿勢（配向、回転）が計算される。図示の例は２次元であるため、方向は、最大分散のベクトルで表示され、そのベクトルは主成分分析により計算することができる。このベクトルは、矢印yとして図６Ｃに示されている。直交ベクトルxとともに、データ点群を表現できる新たな座標系が生成される。この新しい座標系への変換によって生成されるデータ集合「例１Ｂ」および「例２Ｂ」は、回転不変であり、言い換えると、回転（方向）に関して位置合わせされている。 
【００８３】
図６Ｄに示す処理ステップでは、例示されるデータ点群の大きさ又は寸法が計算される。図示の例では、それぞれx軸およびy軸に沿った標準偏差を表す2つの値が使用されている。これらの大きさの因子の逆数は、例示されるすべてのデータ点に適用され、ジェスチャデータを、単位の大きさに変換する。この処理により、ジェスチャ例のデータ集合「例１Ｃ」および「例２Ｃ」が生成される。これらのデータ集合は、大きさに対して不変であり、言い換えると単位長の大きさを有する。図示の例では、「例１」について、ベクトル ［0,  -6 , 0,  4 ,-0.9,  1 , 1.1, 1］が生成され、「例２」については、ベクトル［0, -5.5, 0, 2.8, -1 , 1.1,  1 , 1］が生成される。これらの数値は非常に似ており、コンピュータシステムが、「例１」と「例２」の関係を理解し易くなっている。
【００８４】
図６Ｅに示すように、最後に、ジェスチャ動作の動きの形状自体のデータ「例１Ｃ」及び「例２Ｃ」の各々は、先に抽出された位置（重心）、方向および寸法の情報と組み合わされ、新たなベクトル「例１Ｄ」及び「例２Ｄ」が構成される。図示の例では、データベクトル「例１Ｄ」及び「例２Ｄ」は、例示された順序でデータが連結されることにより構成される。ただし、本発明では、様々な形式によるデータの結合もあり得る。
【００８５】
図示の例では、「例１」のベクトル「例１Ｄ」は、［3, 6, 0.29,-0.95, 1.1, 0.5, 0,-6,  0  ,  4  ,-0.9,  1 , 1.1, 1］であり、「例２」のベクトル「例２Ｄ」は、［23, 3.5,-0.3,-0.9, 1.5, 0.9,  0,-5.5,  0 , 2.8, -1 , 1.1,  1 , 1］である。これらのベクトルの最後の８つの値から、「例１」と「例２」の２つのジェスチャ例が、実際に同一のジェスチャを意図したものであると判断するのは、かなり簡単なことである。これは、両方のジェスチャ動作が同じ意味を持つことをユーザが意図している場合（例えば、「この方向にオブジェクトを移動する」など）に有用である。しかし、設定に応じて、コンピュータシステムは、最初の６つの値のいずれかに基づいて、双方のジェスチャ動作が２つの異なるジェスチャとして、区別するように学習することもできる。例えば、ユーザは、「例１」のジェスチャが「オブジェクトを左側のゴミ箱に入れる」ことを意味し、「例２」のジェスチャが「オブジェクトを右側のゴミ箱に入れる」ことを意味することを、意図することも可能である。この場合、ベクトルの３番目の数値が、区別の因子となる。この因子は、ジェスチャが左方向に実行されている場合は負となり、ジェスチャが右方向に実行された場合は正となる。ニューラルネットワークは、関連性のある因子に大きな重みを与え、関連性の無い因子にはゼロの重みを与えることによって、これらの数値的な差異に効率的に反応することができる。例えば、ユーザは、「左から右へと実行されるジェスチャ」は、「右から左に実行されるジェスチャ」とは異なる意味を有すること、または「小さく実行されるジェスチャ」は、「大きく実行されるジェスチャ」とは異なる意味を有することを、コンピュータシステムに教示することができる。  
【００８６】
図７は、本発明の実施の形態による経路認識装置１１０を含むシステム全体（図１Ｌ参照）に関し、特にその処理を例示する。ユーザは入力装置７０１を空間内で動かすことができる。ビデオカメラまたは動き検出器等の記録装置７０２は、入力装置７０１の空間内の位置および動きを検出することができる。トラッキング装置（追跡装置）７０３は、入力装置７０１の動きの数値表現であるトラッキングデータ７０４を、追加のコンテキストデータ２０３と共に計算することができる。トラッキング装置７０３は、動きデータであるトラッキングデータ７０４を出力するとともに、ユーザが押したボタン等のメタ情報、またはシステム内の情報を、コンテキストデータ２０３として出力する。その後、これらのデータは既に述べた方法により処理される。
一例として、入力装置１０９をユーザが操作することにより、動作モードを認識モードと学習モードのいずれかに設定する動作モード選択データ７１０が、経路認識装置１１０に入力される。経路認識装置１１０は、動作モード選択データ７１０に基づいて、ニューラルネットワークに認識モード又は学習モードの動作を実行させる。学習モードが選択されているときには、例えば入力装置１０９をユーザが操作することにより、教師データである正しいジェスチャカテゴリーの識別子２１７が、ニューラルネットワークに入力される。認識モードが選択されているときには、経路認識装置１１０は、処理２１６において、出力データを構成し、操作対象装置１２０（図１Ｌ参照）に伝える。出力データは、認識されたジェスチャカテゴリーに関連づけられることをユーザが意図する行為を、操作対象装置１２０に行わせるように、操作対象装置１２０内に特定の事象を生じさせる（処理７０５）のに、使用することができる。
一例として、動作モード選択データ７１０は、動作モードを変更するときに入力され、次の入力があるまで、選択された動作モードが維持される。教師データである識別子２１７も同様に、一例として、識別子２１７を変更するときに入力される。また、動作モード選択データ７１０は、入力装置１０９以外に、例えば入力装置７０１を通じて入力されても良い。教師データである識別子２１７も同様である。
【００８７】
図８は、図１Ｋに例示したシステム全体のプログラム構成を例示するブロック図である。図８は、コンピュータプログラムまたはコンピュータプログラムの一部として構成された、本発明の実施の形態をも例示する。メインプログラム８０１は、図１Ｌに例示する操作対象装置１２０の機能を実現するプログラムであり、例えば描画などのユーザの操作を実現する。トラッキング（追跡）システムプログラム８０２またはトラッキングシステムライブラリは、ユーザの動きを検出するトラッキングシステム１０３の機能を実現するプログラムである。経路認識プログラム８０３は、本発明の実施の形態による処理を実行し、ユーザによって行われたジェスチャを認識する。ユーザインタラクションシステム８０４は、入力装置１０９、インターフェイス１０４（図１Ｋ参照）の機能を実現するプログラムである。
【００８８】
以上の説明は、ＶＲ制御装置（入力装置１０１）を空間内で振るといった、空間における物体の動きの経路によって規定されるジェスチャを認識することに関する。しかしながら、本発明は、入力装置１０１による連続した単一の動き（すなわち１ストロークの動作）の動きデータの処理に限定されない。本発明による処理は、空間内の経路又は一連の経路として表現できるあらゆるデータに適用することができる。以下は、可能な他の適用例を、網羅的にではなく列挙したものである。
【００８９】
[マルチ・ストローク・ジェスチャの扱い]
図５Ｄを参照しつつ既に例示したように、複数のストロークからなるジェスチャ（「マルチ・ストローク・ジェスチャ」と称する）を認識するために、本発明の経路認識装置１１０を使用することも可能である。例えば、ユーザが線を描き、（例えば、入力装置１０１のボタンを放すことにより）ジェスチャ動作を一時的に中断したままで入力装置１０１の位置を変え、その後に、（例えば、入力装置１０１のボタンを再び押しつつ）最初の線と平行ではあるが接続されていない第２の線を描くことも可能である。図５Ｄの例示では、複数のストロークの各々について、位置、方向及び寸法が抽出され、抽出された属性に不変な位置データが計算された。それにより、マルチ・ストローク・ジェスチャの認識を、容易かつ精度良く行うことができる。これに対し、一部のストローク、例えば１つのストロークについてのみ、属性の抽出がなされてもよい。また、属性の抽出は、位置、方向及び寸法の一部、例えば位置についてのみ行われても良い。これらの場合においても、マルチ・ストローク・ジェスチャの認識を、相応に、容易かつ精度良く行うことができる。
【００９０】
図９は、複数のストロークから構成されるジェスチャを認識する本発明の一実施の形態による経路認識装置を含むシステムの処理を例示する。ユーザ１００１は、ジェスチャ動作を実行し、この動作がトラッキングシステム１００２によってトラッキング（追跡）される。トラッキングシステム１００２は、経路認識装置１０００に動作データを付与する。経路認識装置１０００は、処理１００３において、動作データを受信し、複数のストロークとして保存する。この処理１００３では、動き経路の単純化又はメタデータの抽出などの前処理操作を実行することができる。ストロークの切れ目は、例えば入力装置１０１のボタンが放されたことを示すデータが、コンテキスト情報２０３（図２Ａ参照）として入力されることにより、認識可能である。
経路認識装置１０００は、処理１００４において、これまでに受信したストロークがジェスチャの全てかどうかを判断する。判断するには、いくつかの方法があり得る。1つの方法は、最後の動作が実行された後に経過した時間を測定し、新しい動作の入力が一定時間の間に発生しなかった場合には、ジェスチャが完了した、とみなす方法である。別の方法は、ジェスチャが完了したことを知らせる、ユーザ１００１による手動入力を確認することである。経路認識装置１０００は、ジェスチャが完了したかどうかを決定する方法とは無関係に、ジェスチャがまだ完了していないと判断した場合には、追加のジェスチャ動作を受信し格納する処理に戻る。経路認識装置１０００は、ジェスチャが完了したと判断した場合には、次の処理に進む。
【００９１】
ジェスチャを構成するストロークの数に基づいて、経路認識装置１０００は処理１００５において、様々な数のストロークからなるジェスチャのために準備された複数の人工知能１００６のうちから、対応する人工知能を選択する。経路認識装置１０００は、このようにして、図５Ｄに記載したマルチストローク用ニューラルネットワークを適切に使用することができる。それにより、ある数のストロークのジェスチャが、異なる数のストロークのジェスチャとして誤認されることを、回避することができる。また、図９に例示するように、ストロークの数の相違だけではなく、受信したデータが、ジェスチャの形状輪郭と動きのいずれを表しているか、によってもニューラルネットワークを使い分けることができる。図９には、複数の人工知能１００６として、１ストロークのジェスチャ動作からなるジェスチャを認識するためのニューラルネットワーク、２ストロークのジェスチャ動作からなるジェスチャを認識するためのニューラルネットワーク、３ストロークのジェスチャ動作からなるジェスチャを認識するためのニューラルネットワーク、１つのジェスチャー形状輪郭からなるジェスチャを認識するためのニューラルネットワーク、及び１つのジェスチャ形状輪郭と、１ストロークのジェスチャ動作からなるジェスチャを認識するためのニューラルネットワーク、の５種のニューラルネットワークが例示されている。
ストロークの数は、例えば、ストローク毎にトラッキングシステム１００２から経路認識装置１０００に入力されるコンテキスト情報（図５Ｄ参照）の入力回数によって、把握することができる。受信したデータが、ジェスチャの形状輪郭と動きとのいずれを表しているかは、例えば、コンテキスト情報に含めることができる。トラッキングシステム１００２は、例えば、ユーザによる入力装置１０１（図１Ｋ参照）の操作に基づいて、コンテキスト情報を生成し、経路認識装置１０００に入力する。
【００９２】
[身体部分によるジェスチャの扱い]
入力装置を使用する代わりに、人体または動物の身体の様々な部分の動きを、入力データとして使用することができる。例えば、ユーザが人差し指で見えない線を空中に描くこと、または犬の尾の先端の動きも、ジェスチャ動作の一形式として使用することができる。
【００９３】
[人間又は乗り物の移動経路の扱い] 
人間または乗り物の大きな移動も、経路認識装置１１０，１０００によって処理可能な動き経路を構成する。このようにして、本発明は、一般に移動パターンを認識するために使用することも可能である。例えば、移動経路にのみ基づいて、様々な型の航空機を認識することもできる。
【００９４】
［形状輪郭の経路の扱い] 
時間の経過に伴う動きの経路をデータの基礎として使用する代わりに、オブジェクト（ここでは認識対象物）の視覚的輪郭に沿った経路を、経路認識装置１１０，１０００の入力データとして使用することも可能である。このようにして、経路認識装置１１０，１０００は、静的な手のサイン（合図）または物体を認識するために使用することができる。
【００９５】
［複数種類の入力データの組み合わせの扱い］
マルチ・ストローク・ジェスチャとして既に説明したように、同じ種類の複数の経路を組み合わせることができるのと同様に、上記した様々な種類の入力データを組み合わせることができ、さらには空間内の経路として表すことができる限り、未だ言及していない種類の入力データを組み合わせることも可能である。例えば、経路認識装置１１０，１０００は、特定の手の形状および特定の手の動きからなるジェスチャを認識することができ、「人差し指で振る」、「人差し指で指す」、「親指で振る」、および「親指で指す」というジェスチャは、異なるジェスチャとして認識することができる。それには、例えば、トラッキングシステム１０３（図１Ｌ、図９参照）が、手の形状輪郭と手の動きとを、それぞれ検出して、それぞれの経路データを生成し、これらの経路データを２つの経路からなる経路集合のデータとして、経路認識装置１１０，１０００に入力するとよい。既に述べたマルチストロークジェスチャの例のように、経路認識装置１１０，１０００はデータの種類について手動で指示を受けるか、または自動識別を試みることができ、異なるデータの種類の間の誤認識を回避しながら、入力されたデータの種類に適したニューラルネットワークを選択することができる。この形態についても、図９を参照することができる。
【符号の説明】
【００９６】
１００  コンピュータシステム、  １０１  入力装置、  １０２  記録装置、  １０３  トラッキングシステム、  １０４  インターフェイス、  １０５  プロセッサ、  １０６  表示装置、  １０７  メモリ、  １０８  記憶媒体（記録媒体）、  １０９  入力装置、  １１０  経路認識装置、  １２０  操作対象装置、  １３０  ネットワーク、  １３１  サーバ、  ２０２  トラッキングデータ（追跡データ、経路集合データ）、  ２０３  コンテキスト情報（付加的データ）、  ２０５  データ点群（点群の位置データ）、  ２０７  データ集合（属性不変位置データ）、  ２０８  メタデータ（属性）、  ２１０  データベクトル（入力データ）、  ２１３  集合（確率の推定値）、  ２１７  識別子（教師データ）、  ４０１  点群（点群の位置データ）、  ４０３，４０５，４０７  データ点群（属性不変位置データ）、  ４０８  ベクトル（入力データ）、  ４１１，４１２，４１３  基準（属性）、  ５０２，５２２，５２９  数値データ（入力データ）、  ５０８  コンテキスト情報（付加的データ、入力データ）、  ５１０  ジェスチャカテゴリー（教師データ）、  ５２６  認識結果データ、  ７０４  トラッキングデータ（追跡データ、経路集合データ）、  ７１０  動作モード選択データ、  ８０１  メインプログラム、  ８０２  トラッキンスシステム、  ８０３  ジェスチャ認識プログラム（経路認識プログラム）、  ８０４  ユーザインタラクションシステム、  １０００  経路認識装置、  １００１  ユーザ、  １００２  トラッキングシステム、  １００６  ニューラルネットワーク（人工知能）。
【図１Ａ】
2020160815.tif 000003
【図１Ｂ】
2020160815.tif 000004
【図１Ｃ】
2020160815.tif 000005
【図１Ｄ】
2020160815.tif 000006
【図１Ｅ】
2020160815.tif 000007
【図１Ｆ】
2020160815.tif 000008
【図１Ｇ】
2020160815.tif 000009
【図１Ｈ】
2020160815.tif 000010
【図１Ｉ】
2020160815.tif 000011
【図１Ｊ】
2020160815.tif 000012
【図１Ｋ】
2020160815.tif 000013
【図１Ｌ】
2020160815.tif 000014
【図２Ａ】
2020160815.tif 000015
【図２Ｂ】
2020160815.tif 000016
【図３】
2020160815.tif 000017
【図４】
2020160815.tif 000018
【図５Ａ】
2020160815.tif 000019
【図５Ｂ】
2020160815.tif 000020
【図５Ｃ】
2020160815.tif 000021
【図５Ｄ】
2020160815.tif 000022
【図６Ａ】
2020160815.tif 000023
【図６Ｂ】
2020160815.tif 000024
【図６Ｃ】
2020160815.tif 000025
【図６Ｄ】
2020160815.tif 000026
【図６Ｅ】
2020160815.tif 000027
【図７】
2020160815.tif 000028
【図８】
2020160815.tif 000029
【図９】
2020160815.tif 000030