JP6623366B1 - 経路認識方法、経路認識装置、経路認識プログラム、及び経路認識プログラム記録媒体 - Google Patents

経路認識方法、経路認識装置、経路認識プログラム、及び経路認識プログラム記録媒体 Download PDF

Info

Publication number
JP6623366B1
JP6623366B1 JP2019059644A JP2019059644A JP6623366B1 JP 6623366 B1 JP6623366 B1 JP 6623366B1 JP 2019059644 A JP2019059644 A JP 2019059644A JP 2019059644 A JP2019059644 A JP 2019059644A JP 6623366 B1 JP6623366 B1 JP 6623366B1
Authority
JP
Japan
Prior art keywords
data
route
gesture
input
artificial intelligence
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2019059644A
Other languages
English (en)
Other versions
JP2020160815A (ja
Inventor
マクシミリアン ミハエル クリヘンバウア
マクシミリアン ミハエル クリヘンバウア
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Marui Plugin
Original Assignee
Marui Plugin
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Marui Plugin filed Critical Marui Plugin
Priority to JP2019059644A priority Critical patent/JP6623366B1/ja
Application granted granted Critical
Publication of JP6623366B1 publication Critical patent/JP6623366B1/ja
Priority to PCT/JP2020/000774 priority patent/WO2020195017A1/ja
Publication of JP2020160815A publication Critical patent/JP2020160815A/ja
Priority to US17/286,403 priority patent/US11513607B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0481Interaction techniques based on graphical user interfaces [GUI] based on specific properties of the displayed interaction object or a metaphor-based environment, e.g. interaction with desktop elements like windows or icons, or assisted by a cursor's changing behaviour or appearance
    • G06F3/04815Interaction with a metaphor-based environment or interaction object displayed as three-dimensional, e.g. changing the user viewpoint with respect to the environment or object
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/017Gesture based interaction, e.g. based on a set of recognized hand gestures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/70Arrangements for image or video recognition or understanding using pattern recognition or machine learning
    • G06V10/82Arrangements for image or video recognition or understanding using pattern recognition or machine learning using neural networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V40/00Recognition of biometric, human-related or animal-related patterns in image or video data
    • G06V40/20Movements or behaviour, e.g. gesture recognition
    • G06V40/28Recognition of hand or arm movements, e.g. recognition of deaf sign language
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V2201/00Indexing scheme relating to image or video recognition or understanding
    • G06V2201/10Recognition assisted with metadata

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Software Systems (AREA)
  • Evolutionary Computation (AREA)
  • Artificial Intelligence (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • General Health & Medical Sciences (AREA)
  • Computing Systems (AREA)
  • Health & Medical Sciences (AREA)
  • Multimedia (AREA)
  • Mathematical Physics (AREA)
  • Medical Informatics (AREA)
  • Data Mining & Analysis (AREA)
  • Social Psychology (AREA)
  • Psychiatry (AREA)
  • Databases & Information Systems (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Biomedical Technology (AREA)
  • Biophysics (AREA)
  • Computational Linguistics (AREA)
  • Molecular Biology (AREA)
  • User Interface Of Digital Computer (AREA)

Abstract

【課題】 ジェスチャによるユーザとコンピュータとの対話を、効果的かつ効率的に処理する。【解決手段】 二次元または三次元空間内でジェスチャを実行する身体またはその一部の形状または動きは、これらの形状の輪郭に沿った経路、または動きに沿った経路により把握可能である。開示される方法は、かかる経路を表現するデータの入力を受け、経路の意味、すなわちジェスチャの意味が、あらかじめ準備された複数の意味のうちのいずれであるかを、人工知能を使って認識する。開示される方法は、経路に沿った点群の位置データを、人工知能に入力する前処理として、点群全体の位置、大きさ、及び方向のうちの少なくとも1つの属性を抽出し、点群の位置データを、抽出した属性に相対的であり、抽出した属性に依存しない属性不変位置データに変換する。そして、属性不変位置データと抽出した属性とを含むデータを、入力データとして人工知能に入力する。【選択図】 図7

Description

本発明は、2次元または3次元空間において各々が連続した1以上の経路からなる経路集合の意味を認識する経路認識技術に関する。
コンピュータシステムは、現代社会の基礎をなしており、 通信、金融取引、技術的活動、娯楽等、社会の全ての活動はコンピュータに基づいている。 コンピュータはますます能力を高めており、日々の業務のほとんどの課題において、計算能力はもはや制限要因ではなくなっている。例えば、あらゆる卓上型PC(コンピュータ)は、知識労働者に十分な処理能力を提供しており、人間であるユーザはコンピュータの操作の完了を、もはや待つ必要がないほどである。ユーザとコンピュータとの間の対話の結果は、コンピュータによってほぼ即座に生成される。
代わりに、人間であるユーザが高速な出力を取得するのを制限する要因が、ユーザインタフェースとなっている。ユーザがコンピュータに自身の意図するところを表現することを可能にする方法は、1980年代からほとんど変化しておらず、タイプライターのようなキーボード、マウス、あるいはスタイラスのような同様の入力装置が、入力(コンピュータの制御)のために使用され、平坦な二次元コンピュータ画面が、出力(対話の結果を視認すること)のために使用されている。ほとんどの作業においては、このようなユーザインターフェイスは十分である。
しかし、設計又は技術の分野において仮想的な3次元モデルを操作する場合には、対話の効率が厳しく制限されることになる。 マウス又はスタイラスは、コンピュータ内に表現された仮想的なオブジェクト(操作対象)を、2次元的に操作することしかできず、コンピュータ画面は2次元的表現を映し出すのみであり、仮想的なオブジェクトの3次元形状については、曖昧なままである。さらに、視野はスクリーンの開口に限定されており、没入型環境の印象をうまくは伝えない。
仮想現実(バーチャルリアリティ;Virtual Reality;VR)技術は、3次元モデル又は3次元的な仮想世界の作成に、より適した新しい3次元的なユーザインターフェイスを可能にする。ユーザは仮想モデルを直接的かつ空間的に見ることができるだけでなく、3次元的に操作し、しかも同時に思いのままに回転させることもできる。これらの新しいユーザインターフェイスの1つの重要な部分は、自由な空間でジェスチャを実行することによってソフトウェアに命令を伝えることである。本開示において「ジェスチャ」とは、命令、意思又は感動のような特定の情報を他者に伝えるための、二次元または三次元空間内における身体またはその一部の形状及び/または動きによる表現を意味する。
人間は自然にジェスチャを使って、他者と意思を伝え合っており、このため、身振りや手振りによって意思を表現することに非常に熟達している。したがって、この意思伝達の方法を、コンピュータシステムを、従来よりも直感的かつ要領よく制御するのに使用することは、最も適した方法である。英数字を入力したり、メニューから選択肢を選択したりすることを要せずに、例えば自身の手又は入力装置を振ることによって、コンピューターシステムに特定の作業(タスク)を実行するよう命令することが可能となる。
しかし、ジェスチャによる人間の意思伝達は非常に複雑である。人間は多数のジェスチャを識別することができるだけでなく、それぞれのジェスチャの特定の側面が、ジェスチャ自身を他と区別する特徴をなすのか、情報を追加するものであるのか、あるいは意思伝達に無関係であるのか、を判断することができる。例えば、「こちらに来て」という手ぶりは、その動きの大きさは、緊急性があるのか、又は静かに行動すべきなのか否かを伝える。
ジェスチャの動きの大きさは、ジェスチャの意味(「こちらに来て」)を変えず、追加の情報(いかに行動すべきか)を与える。対照的に、手を小さく左右に振る動きは、「いいえ」という意味を伝えるのに、よく用いられるが、腕全体を大きく振る動きは、挨拶として使用されている。他方、「親指を上に立てる」または「親指を下に向ける」のようなジェスチャは、行動の大きさには大きな意味がなく、その姿勢又は方向によってジェスチャの意味が認識される。「親指を上に立てる」と「親指を下に向ける」は、方向の異なる同じ動きであるが、意図するところは全く異なる。
対照的に、人差し指により、ある方向へ指すというジェスチャは、意思伝達の相手をその方向に向けさせるのに用いられる。どの方向であっても、ジェスチャの意味に変わりはないが、方向は、意思伝達の相手に伝えられる追加の情報となる。尚、ジェスチャによっては、実行される位置によって、意味が変わる場合がある。例えば、手を平らにして側頭へ挙げる手振りは敬礼を意味し、平らにした手を首へ挙げると、「殺す」、あるいは「殺される」という意味を伝える。
したがって、ジェスチャの位置、大きさ、又は方向が、ジェスチャの意味を定義する特徴であるか、定義的ではなく追加の情報を伝えるものなのか、あるいは全く無関係であって無視できるのか、を理解できるコンピュータシステムがあれば、システムの使い易さ(usability;ユーザビリティ)が大きく改善されることになろう。それによって、コンピューターシステムは、人間のジェスチャを、より高い信頼性をもって、かつ、ジェスチャの実行される方法によって追加される追加情報をもって、理解しかつ解釈することが可能となる。このことは、人間には既に一般的となっているジェスチャの場合だけでなく、コンピューター・ユーザ・インターフェイスで使用するために特別に創出された新しいジェスチャの場合にも当てはまる。
なお、特許文献1には、テレビカメラによってユーザを撮像し、その撮像出力に基づいて画像処理装置がユーザの位置を検出するとともに、ユーザのジェスチ ャを認識する、ジェスチャインタフェース装置が開示されている。また、特許文献2には、ユーザの頭部に装着されるヘッドマウントディスプレイに表示される仮想空間内のキャラクタを動作させる方法に関し、ユーザのジェスチャに応じて、ユーザと視線の合っている第1キャラクタに第1動作を行わせ、視線の合っていない第2キャラクタに第2動作を行わせる方法が、開示されている。
特開平10−255052号公報 特許第6209252号公報
本発明は上記の問題点に鑑みてなされたもので、ジェスチャによるユーザとコンピュータとの対話を、効果的かつ効率的に処理することを可能にする経路認識技術を提供することを目的とする。
上記目的を達成するために、本発明の第1の態様によるものは、2次元または3次元空間において各々が個別に連続した1以上の経路からなる経路集合の意味を、人工知能を用いるコンピュータにより認識する経路認識方法であって、前記コンピュータによってなされる以下の処理(a)〜(e)を含んでいる。(a)前記経路集合を表現する経路集合データを含むデータの入力を受け入れること。(b)入力を受け入れた前記経路集合データに基づく、前記経路集合を構成する各経路に沿った点群の位置データのうち、前記経路集合を構成する前記1以上の経路のうちの少なくとも一部の経路の各々に沿った点群の位置データから、対応する点群全体の位置、大きさ、及び方向のうちの少なくとも1つの属性を抽出すること。(c)前記少なくとも一部の経路の各々に沿った前記点群の位置データを、対応する前記少なくとも1つの属性に相対的な位置データに変換することにより、前記対応する少なくとも1つの属性に依存しない属性不変位置データを得ること。(d)前記経路集合を構成する各経路に沿った前記点群の位置データを含むデータを、入力データとして前記人工知能に入力すること。(e)前記人工知能の出力データとして、入力を受け入れた前記経路集合データが表現する前記経路集合の意味が、あらかじめ準備された複数の意味の各々である確率の推定値を、前記人工知能に計算させること。更に、前記データを前記入力データとして前記人工知能に入力すること(d)は、(d−1)前記少なくとも一部の経路の各々に沿った前記点群の位置データとして、対応する前記属性不変位置データを、前記入力データに含めて入力することと、(d−2)前記少なくとも一部の経路の各々について抽出された前記少なくとも1つの属性のうち、少なくとも一部の属性を、前記入力データに含めて前記人工知能に入力することと、を含んでいる。
本構成による方法は、以下のように機能する。二次元または三次元空間内でジェスチャを実行する身体またはその一部の形状または動きは、これらの形状の輪郭に沿った経路、または動きに沿った経路により把握可能である。本構成による方法は、かかる経路を表現するデータの入力を受け、経路の意味、すなわちジェスチャの意味が、あらかじめ準備された複数の意味のうちのいずれであるかを、人工知能を使って認識する。本構成による方法は、経路に沿った点群の位置データを人工知能に入力する前処理として、点群の位置データから、点群全体の(1)位置、(2)大きさ、及び(3)方向のうちの少なくとも1つの属性を抽出し、点群の位置データを、抽出した属性に相対的な位置データ、すなわち抽出した属性に依存しない属性不変位置データに変換する。そして、属性不変位置データを含むデータを、入力データとして人工知能に入力する。抽出した属性に依存しない属性不変位置データが入力されることにより、人工知能は経路の意味、すなわちジェスチャの意味が認識し易くなる。
本構成による方法では、更に、抽出されたうちの少なくとも一部の属性が、入力データに含めて人工知能に入力される。すなわち、抽出されたうちの少なくとも一部の属性が、それに対応する属性不変位置データから分離されて人工知能に入力される。このため、人工知能は、抽出されたうちの少なくとも一部の属性について、ジェスチャの意味を規定する特徴であるのか、規定的ではなく追加の情報を伝えるのか、あるいは全く無関係であって無視できるのか、という判断を容易に行うことができる。このように、本構成によれば、ジェスチャによるユーザとコンピュータとの対話を、効果的かつ効率的に処理することが可能となる。
本構成による方法は、上記のように連続した1つの経路によって把握されるジェスチャの意味を認識する方法であり得るが、各々が個別に連続した複数の経路によって把握されるジェスチャの意味を認識する方法でもあり得る。後者のジェスチャは、例えば、手を開いたポーズ、続いて手または指で矢印を描く動き、続いて手を結ぶポーズという、3段階のジェスチャ要素からなる。この場合、ジェスチャから把握される経路は、開いた手の形状輪郭に沿った第1番目の経路、手または指の動きに沿った矢印状の第2番目の経路、及び結んだ手の形状輪郭に沿った第3番目の経路からなる経路集合となる。第1〜第3の経路の各々は、個別に連続している。第1〜第3の経路は、互いに分離されていてもよく、逆に、互いに接したり、交差したり、互いに連続したりしていてもよいが、互いに別の経路として入力される。
本構成による方法は、かかる経路集合を表現するデータの入力を受け、経路集合の意味、すなわち3つのジェスチャ要素からなるジェスチャ全体の意味が、あらかじめ準備された複数の意味のうちのいずれであるかを、人工知能を使って認識する。本構成による方法は、経路集合を構成する各経路に沿った点群の位置データを人工知能に入力する前処理として、少なくとも一部の経路の各々については、上記の場合と同様に、点群の位置データから、点群全体の(1)位置、(2)大きさ、及び(3)方向のうちの少なくとも1つの属性を抽出し、点群の位置データを属性不変位置データに変換する。そして、経路集合を構成する各経路に沿った点群の位置データを含むデータを、入力データとして人工知能に入力する。属性抽出がなされた経路については、点群の位置データとして属性不変位置データが、入力データに含めて人工知能に入力される。従って、上記の場合と同様に、人工知能は属性抽出がなされた各経路の意味、すなわち各ジェスチャ要素の意味が認識し易くなる。このことは、複数のジェスチャ要素からなるジェスチャ全体の意味を認識し易くする。
また、抽出されたうちの少なくとも一部の属性が、入力データに含めて人工知能に入力される。すなわち、抽出されたうちの少なくとも一部の属性が、それに対応する属性不変位置データから分離されて人工知能に入力される。このため、人工知能は、抽出されたうちの少なくとも一部の属性について、ジェスチャの意味を規定する特徴であるのか、規定的ではなく追加の情報を伝えるのか、あるいは全く無関係であって無視できるのか、という判断を容易に行うことができる。このように、本構成によれば、ジェスチャが複数の経路からなる経路集合によって把握される場合であっても、ジェスチャによるユーザとコンピュータとの対話を、効果的かつ効率的に処理することが可能となる。なお、人工知能に入力される「少なくとも一部の属性」は、抽出された属性のうちの少なくとも一部であれば足り、例えば、属性が抽出される少なくとも一部の経路の各々から、1つずつ属性を選び出してもよく、属性が抽出される少なくとも一部の経路のうちの1つの経路から、1つの属性を選び出してもよい。
本構成による方法は、以上のようなジェスチャ認識だけでなく、2次元または3次元空間における経路または経路集合として把握できる様々な形状または動きを認識する目的にも使用可能である。例えば、任意の認識対象物の形状輪郭から当該対象物を認識したり、航空機の移動経路のデータに基づいて、航空機の種類を認識したりする目的に使用することも可能である。また、本構成による方法を実行するコンピュータが使用する人工知能は、当該コンピュータが読み込んで動作するプログラムの中に構築されていてもよく、あるいは当該プログラムとは別個に、当該コンピュータが備えるメモリの中、例えば前記プログラムが記録されているメモリ以外のメモリの中に、構築されていてもよく、当該コンピュータの外部の装置、例えばクラウドサーバに置かれる人工知能を使用するものであってもよい。本構成はいずれかに限定するものではない。また、本構成による方法は、単一の経路からなる経路集合のみを処理する方法、及びある複数個(例えば3つ)の経路からなる経路集合のみを処理する方法の、いずれをも包含するものであり、いずれの経路集合の入力をも受け付けて、経路の個数に応じて処理を仕分ける方法に限定されるものではない。さらに、本開示において、「経路集合の意味」とは、あらかじめ定められた経路集合の類型(カテゴリー)を意味し、「経路集合の意味を認識する」とは、経路集合が1以上の類型のうちどの類型に該当するか、あるいはそれに加えていずれの類型にも該当しないか、を認識することを意味する。経路集合を構成する各経路が、ジェスチャの形状輪郭又は動きに沿った経路である場合には、「経路集合の意味」とは、「ジェスチャーの意味」となり、あらかじめ定められたジェスチャーの類型(カテゴリー)を意味することとなる。
本発明のうち第2の態様によるものは、第1の態様による経路認識方法であって、前記コンピュータによってなされる以下の処理(f)〜(h)を更に含んでいる。(f)学習モードと認識モードとのいずれかを、動作モードとして選択する動作モード選択データの入力を受け入れること。(g)前記動作モードとして前記学習モードが選択されているときには、前記人工知能の前記出力データとして正しいデータの入力を、教師データとして受け入れ、受け入れた前記教師データを前記人工知能に与えることにより、前記人工知能を学習させること。(h)前記動作モードとして前記認識モードが選択されているときには、前記複数の意味のうち、前記人工知能の出力データが最高の確率の推定値を示す意味を含むデータを、認識結果データとして出力すること。
本構成によれば、動作モードとして学習モードが選択されているときには、教師データに基づく学習が人工知能に施され、認識モードが選択されているときには、それまでになされた学習の成果を反映した認識結果が出力される。すなわち、人工知能に学習を施すことにより、精度の高い認識結果を得ることができる。
本発明のうち第3の態様によるものは、第2の態様による経路認識方法であって、前記認識結果データは、前記少なくとも一部の経路の各々について抽出された前記少なくとも1つの属性のうち、少なくとも一部の属性を含んでいる。
本構成によれば、認識結果データに、抽出された少なくとも一部の属性が含まれるので、本構成による方法のユーザ(利用者)あるいは利用装置は、経路集合の意味だけでなく、意味に追加される情報を取得することができる。例えば、ジェスチャーの意味が、あるオブジェクトを移動させることである場合に、意図された移動の方向あるいは距離についての情報を取得することができる。なお、本構成における「少なくとも一部の属性」は、第1の態様において人工知能に入力される「少なくとも一部の属性」と同一であっても、異なっていてもよい。
本発明のうち第4の態様によるものは、第1から第3のいずれかの態様による経路認識方法であって、前記少なくとも1つの属性を抽出すること(b)は、前記少なくとも一部の経路のうちの少なくとも1つの経路の各々について、対応する点群全体の平均位置を、前記対応する点群全体の位置として抽出することを含んでいる。
本構成によれば、点群全体の位置を適切に表現する物理量が、平均計算という比較的簡単な計算により得られる。
本発明のうち第5の態様によるものは、第1から第4のいずれかの態様による経路認識方法であって、前記少なくとも1つの属性を抽出すること(b)は、前記少なくとも一部の経路のうちの少なくとも1つの経路の各々について、対応する点群全体の標準偏差又は一組の標準偏差を、前記対応する点群全体の大きさとして抽出することを含んでいる。
本構成によれば、点群全体の大きさを適切に表現する物理量が、標準偏差の計算という比較的簡単な計算により得られる。
本発明のうち第6の態様によるものは、第1から第5のいずれかの態様による経路認識方法であって、前記少なくとも1つの属性を抽出すること(b)は、前記少なくとも一部の経路のうちの少なくとも1つの経路の各々について、主成分分析に基づいて、対応する点群全体の一組の主軸の方向を、前記対応する点群全体の方向として抽出することを含んでいる。
本構成によれば、点群全体の方向を適切に表現する物理量が、主成分分析の計算という比較的簡単な計算により得られる。
本発明のうち第7の態様によるものは、第1から第6のいずれかの態様による経路認識方法であって、前記少なくとも1つの属性を抽出すること(b)は、前記少なくとも一部の経路の各々について、対応する点群全体の位置、大きさ、及び方向を抽出することを含んでいる。
本構成によれば、属性抽出がなされる各経路について、点群全体の位置、大きさ、及び方向のすべてが、属性として抽出されることにより、属性不変位置データが得られるので、人工知能は、属性抽出がなされた各経路の意味を一層認識し易くなる。
本発明のうち第8の態様によるものは、第1から第7のいずれかの態様による経路認識方法であって、前記経路集合を構成する前記1以上の経路のうちの前記少なくとも一部の経路は、前記経路集合を構成する前記1以上の経路の全てである。
本構成によれば、経路集合を構成する経路の全てについて、属性抽出がなされるので、経路集合の意味を一層容易に認識することができる。
本発明のうち第9の態様によるものは、第1から第8のいずれかの態様による経路認識方法であって、前記少なくとも一部の属性を、前記入力データに含めて前記人工知能に入力すること(d−2)は、(d−2−1)前記少なくとも一部の経路の各々について抽出された前記少なくとも1つの属性を、前記入力データに含めて前記人工知能に入力すること、を含んでいる。
本構成によれば、抽出された属性のすべてが、入力データに含めて人工知能に入力される。抽出されたすべての属性が、それに対応する属性不変位置データから分離されて人工知能に入力されるので、ジェスチャの例で言えば、人工知能は、抽出されたすべての属性について、ジェスチャの意味を規定する特徴であるのか、規定的ではなく追加の情報を伝えるのか、あるいは全く無関係であって無視できるのか、という判断を容易に行うことができる。
本発明のうち第10の態様によるものは、第1から第9のいずれかの態様による経路認識方法であって、コンピュータによってなされる次の処理(i)を、更に含んでいる。(i)入力を受け入れた前記経路集合データから、前記経路集合を構成する各経路に沿った前記点群として、経路毎に定められた数の点群を選択すること。そして、当該経路毎に定められた数の点群を選択すること(i)は、経路毎に、前記経路毎に定められた数の点群を連結する一連の線分と、入力を受け入れた前記経路集合データが表現する前記経路集合のうちの対応する経路との間の差分を最小にする方向に、前記経路毎に定められた数の点群を探索することを含んでいる。
本構成によれば、経路毎に定められた数の点群が、入力を受け付けた経路集合データが表現する経路集合の各経路を近似するものとして選択され、その位置データ又はその位置データから得られた属性不変位置データが、人工知能に入力されるので、人工知能による演算の負担を軽くしつつ、経路認識の精度を向上させることが容易である。
本発明のうち第11の態様によるものは、第10の態様による経路認識方法であって、前記経路毎に定められた数の点群を探索することは、疑似アニーリングによって行われる。
本構成によれば、疑似アニーリングによって、経路毎に定められた数の点群の探索が行われるので、探索の過程で、真の最小値ではない局所的な最小値から抜け出せなくなることを回避することができる。
本発明のうち第12の態様によるものは、第1から第11のいずれかの態様による経路認識方法であって、前記人工知能は、ニューラルネットワークである。
本構成によれば、ニューラルネットワークという比較的簡素に構成される人工知能を用いて、比較的簡単な学習により、推定の確度を高めることができる。
本発明のうち第13の態様によるものは、第1から第12のいずれかの態様による経路認識方法であって、前記経路集合データを含むデータの入力を受け入れること(a)は、付加的データを受け入れることを含んでいる。そして、前記人工知能に入力される前記入力データは、受け入れられた前記付加的データを含んでいる。
本構成によれば、人工知能に入力する入力データに、付加データが含められるので、付加データを考慮した経路認識の結果を得ることができる。例えば、経路集合を構成する各経路が、ジェスチャの形状輪郭又は動きに沿った経路であって、「オブジェクトを投げる」というジェスチャが、オブジェクトを選択している時にのみ意味を成す場合に、オブジェクトが選択されているか否かについての情報を、追加データに含めることができる。この追加データが、人工知能への入力データに加えられることにより、誤認識のリスクが回避される。それにより、ジェスチャー認識の信頼性が向上する。
本発明のうち第14の態様によるものは、第1から第13のいずれかの態様による経路認識方法であって、入力を受け入れる前記経路集合データが表現する前記経路集合を構成する各経路が、ジェスチャの形状輪郭に沿った経路とジェスチャの動きに沿った経路とのいずれかである。
本構成によれば、ジェスチャを認識することができる。
本発明のうち第15の態様によるものは、第1から第14のいずれかの態様による経路認識方法であって、前記データの入力を受け入れること(a)から、前記確率の推定値を前記人工知能に計算させること(e)までを、繰り返し行う。そして、前記データを前記入力データとして前記人工知能に入力すること(d)は、(d−3)入力を受け入れた前記経路集合データが表現する前記経路集合を構成する前記1以上の経路の種別に応じて、前記人工知能として異なる人工知能を選択して、前記入力データを入力することを含んでいる。
本構成によれば、経路集合を構成する経路の種別に応じて、人工知能が使い分けられるので、学習が効率よく行い得る。
本発明のうち第16の態様によるものは、第15の態様による経路認識方法であって、前記種別が、前記経路集合を構成する前記1以上の経路の数を含んでいる。
本構成によれば、経路集合を構成する経路の数に応じて、人工知能が使い分けられるので、学習が効率よく行い得る。
本発明のうち第17の態様によるものは経路認識装置であって、コンピュータを備え、第1から第16のいずれかの態様による経路認識方法を実行する。
本構成によれば、本発明の各態様による経路認識方法を実行する経路認識装置が実現する。
本発明のうち第18の態様によるものは経路認識プログラムであって、コンピュータに読み取られることにより、前記コンピュータに第1から第16のいずれかの態様による経路認識方法を実行させる。
本構成によれば、コンピュータに本発明の各態様による経路認識方法を実行させる経路認識プログラムが実現する。
本発明のうち第19の態様によるものは、非一過性のコンピュータ読み取り可能な記録媒体であって、コンピュータに読み取られることにより、前記コンピュータに第1から第16のいずれかの態様による経路認識方法を実行させるプログラムが記録されている。
本構成によれば、コンピュータに本発明の各態様による経路認識方法を実行させる非一過性のコンピュータ読み取り可能な記録媒体が実現する。
以上のように本発明によれば、ジェスチャによるユーザとコンピュータとの対話を、効果的かつ効率的に処理することを可能にする経路認識技術が実現する。
ジェスチャを使用するユーザインタフェースの想定可能な実装例を示す説明図である。 ジェスチャを使用するユーザインタフェースの想定可能な実装例を示す説明図である。 ジェスチャを使用するユーザインタフェースの使用例を示す説明図である。 ジェスチャに基づく想定可能なユーザ入力の事例を示す説明図である。 ジェスチャに基づく想定可能なユーザ入力の事例を示す説明図である。 ジェスチャに基づく想定可能なユーザ入力の事例を示す説明図である。 ジェスチャに基づく想定可能なユーザ入力の事例を示す説明図である。 2つのストロークの組み合わせによって構成されるジェスチャの一例を示す説明図である。 手の形状が認識される例を示す説明図である。 手の形を変える手のジェスチャを認識する例を示す説明図である。 本発明の一実施の形態による経路認識装置を含むシステムのハードウェア構成の概略を例示するブロック図である。 本発明の一実施の形態による経路認識装置を含むシステムの機能構成の概略を例示するブロック図である。 本発明の一実施形態による経路認識装置の動作を、生成されるデータの流れに沿って示すフロー図である。 本発明の一実施形態による経路認識装置の動作を、生成されるデータの流れに沿って示すフロー図である。 図3A〜図3Gは、入力された経路データから経路上の所定数の最適な点群を探索する手順を例示する工程図である。 経路上の所定数の点群の位置データを変換する処理の過程を例示する説明図である。 本発明の実施の形態においてニューラルネットワークがどのように使用されるかを例示する説明図である。 本発明の実施の形態においてニューラルネットワークがどのように使用されるかを例示する説明図である。 本発明の実施の形態においてニューラルネットワークがどのように使用されるかを例示する説明図である。 3ストロークのジェスチャを処理するニューラルネットワークの構成例を例示する説明図である。 2つのジェスチャ例に対する処理により実行される数値計算の例を示す説明図である。 2つのジェスチャ例に対する処理により実行される数値計算の例を示す説明図である。 2つのジェスチャ例に対する処理により実行される数値計算の例を示す説明図である。 2つのジェスチャ例に対する処理により実行される数値計算の例を示す説明図である。 2つのジェスチャ例に対する処理により実行される数値計算の例を示す説明図である。 本発明の実施の形態による経路認識装置を含むシステム全体の処理を例示するフロー図である。 図1Kに例示するシステム全体のプラグラム構成を例示するブロック図である。 本発明の別の実施の形態による経路認識装置を含むシステムの処理を例示するフロー図である。
[発明の実施形態の概略]
はじめに、本発明の実施形態の概略について説明する。図1A及び図1Bは、ジェスチャを使用するユーザインタフェースの想定可能な実装例を示す。これらの図は、本発明の想定可能な適用例として意図したものでものであり、本発明を網羅して示すものではない。
図1Aは、バーチャルリアリティー(仮想現実;VR)システムを使ってユーザがジェスチャの入力を行う一例を示す。ユーザは、VR入力装置(制御装置)を手に持って自由空間内で動かすことにより、ジェスチャ動作を実行する。ユーザはVRゴーグル(ヘッドマウントディスプレイ;HMD)をかけて、ジェスチャの影響を受けるバーチャルリアリティ(仮想現実)を見ることができる。
図1Bは、ハンドトラッキング装置(hand-tracking device;手追跡装置)を使って、ジェスチャの入力を行う一例を示す。ユーザが、素手でジェスチャ動作(すなわち、動きのあるジェスチャ)を実行すると、トラッキングシステムはその手の位置を検出する。ユーザが見るコンピュータ画面には、ジェスチャによって影響を受けるプログラムの処理結果が表示されている。
図1Cは、ジェスチャを使用するユーザインタフェースの一使用例を示す。ユーザは、仮想現実の中で3次元モデルを設計する。ユーザは、ジェスチャを使用することにより、3Dモデルを直感的かつ効率的に編集することができる。
図1D〜図1Gは、ジェスチャに基づく想定可能なユーザ入力の事例を示す。図1Dは、「右へスワイプ」を使用して、コンピュータシステムに、ユーザの最新の動作を「元に戻す」ことを命令し(図1Dの左部分)、「左へスワイプ」を使用して、最新に元に戻した動作を「やり直す」ことを命令することが可能であることを示している(図1Dの右部分)。この場合には、動きの方向は、「元に戻す」と「やり直す」という2つのジェスチャを区別するために使用される。ジェスチャの位置又は大きさは無関係であり、無視することができる。
図1Eは、「矢印を書く」というジェスチャを用いて、オブジェクト(ここでは操作対象の意)を動かすように、コンピュータに命令する事例を示す。図1Eの左部分は、ユーザが右に向く矢印を描くジェスチャを表しており、右部分は左に向く矢印を描くジェスチャを表している。矢印の形の動きは命令「オブジェクトを移動」を表し、矢印の位置は移動させるべきオブジェクトを特定し、矢印の方向は移動の方向を表し、矢印の長さは、移動の距離を指示する。この事例では、ジェスチャ自体の意味(「オブジェクトを移動」)は、ジェスチャが行われる方向、大きさ、および位置とは無関係に、同一である。しかし、方向、大きさ、および位置は、操作の実行方法に関する追加情報を伝えている。
図1Fは、「十字を描く」というジェスチャが、実行される方向に基づいて、「追加する」(図1Fの左部分)又は「消去する」(図1Fの右部分)という何れかの意味を持つ可能性を示す。描かれる「+」と「x」の符号は、形状において同一であるが、2つの異なるジェスチャ(「複製する」又は「消去する」)である。ジェスチャの位置は、複製又は消去すべきオブジェクトを特定するのに使用される。実行されるジェスチャの大きさは、何らの関連情報も伝えないので、無視することができる。
図1Gは、ゲームの場面で、円形の動きをどのように使用できるかを例示する。円が小さく頭の上にある場合(図1Gの左部分)は、「神話上の生き物を召喚する」を意味するように、プログラミングすることができる。円が大きく、肩の高さにある場合(図1Gの右部分)は、「魔法の盾を召喚する」を意味するようにプログラミングすることができる。どちらの場合も、円の形は同じである。 両方のジェスチャの意味の違いは、ジェスチャが実行される位置と大きさとにある。さらに、「盾」のジェスチャの場合には、その位置および向きは、盾の位置及び方向を指示する追加のパラメータとして使用することも可能である。
以上の着想は、複数のストロークにより構成されるジェスチャにも適用可能である。本開示において、ストロークとは、連続した1つのジェスチャー動作の単位である。図1Hは、2つのストロークの組み合わせによって構成されるジェスチャの一例を示す。この例は、小さな手の振りによりオブジェクト(操作対象)を選択して(図1Hの左部分)、それに続いて投げるという動き(図1Hの右部分)を表している。この場合では、各ストロークの位置、方向又は寸法(大きさ)が重要となる可能がある。図1Hの例では、左部分に例示する最初のストローク(「選択」)は、寸法と方向によって認識される(下方向への小さな手の振り)。これに対し、ストロークの位置は、ジェスチャを認識するためではなく、オブジェクトを選択するために利用される。図1Hの右部分に例示する2番目のストローク(「投げ」)は、その位置(ユーザの頭の上)によって認識され、ストロークの方向と寸法は、ジェスチャの認識には利用されず、投げの操作の向きと距離を制御するのに利用される。
このように、複数のストロークからなるジェスチャの場合には、システムは、各ストロークを、単一ストロークのジェスチャと同様に、個別的に分析する必要がある一方、ジェスチャ全体が、これらのストロークから構成されることを認識することも重要である。
上記の動きの分析と同等な分析方法として、オブジェクト(ここでは認識対象の意)の形状輪郭によって、オブジェクトを認識する方法を挙げることができる。すなわち、オブジェクトの形状の輪郭を、上述した動きの経路と同じく、空間内の経路に見立てることができ、空間内の経路に対する上述の方法と同様の方法によって処理することが可能である。
図1Iは、手の視覚的輪郭を空間内の経路として扱うことによって、手の形状が認識される例を示す。図1Iの左部分は、ジェスチャを意図した手の形状を例示しており、右部分は、認識された手の形状輪郭を例示している。
オブジェクト(認識対象)が形状を経時的に変化させることができる場合には、複数のストロークを処理する既述の方法と同じ方法により、形状の変化を解釈することが可能である。図1Jは、動きの前後の手の輪郭を空間内の経路として扱うことによって、手の形を変える手のジェスチャを認識する例を示す。図1Jの左部分は、第1のストロークに対応する第1の形状を例示しており、右部分は、第2のストロークに対応する第2の形状を例示している。また、図1Jの上部分は、手の形状そのものを例示しており、下部分は、上部分に例示する手の形状に対応する形状輪郭を例示している。オブジェクトの形状輪郭が入力データとして使用される場合であっても、異なる時点におけるオブジェクトの形状輪郭の位置、方向、および/または寸法というオブジェクトの形状輪郭の属性は、これらの属性を捨象したオブジェクトの形状輪郭の形状そのものと同様に、ジェスチャの意味を規定する特徴の一部として扱うことが可能であり、ジェスチャの意味に追加の情報を付与するパラメータとして扱うことも可能である。
このように、図1A〜図1Jの全ての事例は、ジェスチャの位置、方向、および大きさに、異なる意味を与えている。 これらのジェスチャを確実に認識するためには、コンピュータシステムは、これらの異なる場合に、効率的に適応できる特定の方法を要する。すなわち、コンピュータシステムは、ジェスチャのストロークの位置、方向、及び大きさが、どのような場合にジェスチャの意味に影響を及ぼし、どのような場合に影響が無いのかを、判断できることを要する。本発明は、以下に具体例をもって詳述するように、かかる要求に応えるものである。
図1A〜図1Jは、本発明において使用可能なジェスチャ言語システムのいくつかの事例を示しているに過ぎない。それらの事例は、動作の位置、方向、または大きさが、ジェスチャの特徴である(すなわち、ジェスチャの意味を変える)か、あるいはそうでないか(この場合、それらは追加の情報として用いられるか、又は無視される)、をコンピュータシステムが理解できることの重要性を、単に例示するために用いられるに過ぎない。このようなジェスチャによる対話の形態を、効果的かつ効率的に処理することのできるコンピュータシステムを構築することは、人間とコンピューターとの対話においては、非常に価値のあるものである。
[発明の実施形態の詳細]
以下において、ジェスチャによるユーザとコンピュータとの対話を、効果的かつ効率的に処理することを可能にする経路認識技術について、詳細に説明する。図1Kは、本発明の経路認識装置を含むシステム全体の一実施形態に関し、特にそのハードウェア構成を例示する。また、図1Lは、このシステム全体の一実施形態に関し、特にその機能構成を例示する。
ユーザは入力装置101を操作することができ、かつ空間内で動かすことができる。入力装置101の代わりにユーザの身体自身の一部を使用する実施の形態を、採用することも可能である。入力装置101の動きは、カメラ又は動き検出器などの記録装置102によって検出される。
トラッキング(追跡)システム103は、入力装置101の動きの数値表現を計算する。別の入力装置109は、例えばキーボード、マウスなどである。入力装置109は、コンピュータシステム100に、構成要素の1つとして含まれていてもよい。インターフェイス104は、コンピュータシステム100の他の構成要素と、トラッキングシステム103及び入力装置109との間のデータ転送を管理する。インターフェイス104は、更に、インターネットなどのネットワーク130に、コンピュータシステム100の他の構成要素を接続する機能を果たしてもよい。それにより、コンピュータシステム100は、ネットワーク130に接続されるクラウドサーバなどのサーバ131と、接続することも可能となる。
プロセッサー装置105は、ユーザのジェスチャを認識するために必要な演算を実行するとともに、ユーザがジェスチャによって意図する操作を行う。任意選択的な表示装置106は、ユーザのジェスチャによってなされた操作の結果を、ユーザに表示する。コンピュータメモリー107は、例えば半導体メモリであり、例えばシステムの動作中に一時的にデータを格納するのに用いられる。記憶媒体108は、例えばハードディスクであり、例えばコンピュータプログラムなどを記憶するのに使用される。本発明の一実施の形態としての経路認識プログラムは、コンピュータプログラムの形態で記憶媒体108に記憶することができ、ジェスチャ認識が必要とされる時に、読み出すことができる。
従って、コンピュータシステム100は、本発明の一実施の形態としての経路認識プログラム、経路認識プログラム記録媒体、及び経路認識装置110を、構成要素として含んでおり、さらに、本発明の一実施の形態としての経路認識方法を、処理の構成要素として実行する。また、コンピュータシステム100は、ユーザがジェスチャーによって指示する操作を実現する操作対象装置120を、構成要素として含んでいる。上記の表示装置106は、例えば操作対象装置120の一要素である。操作対象装置120は、例えば、3次元の設計図面を作成するCAD装置である。経路認識装置110は、入力されたユーザのジェスチャ動作を認識し、その結果を操作対象装置120に伝える。それにより、操作対象装置120は、ユーザがジェスチャーによって指示する操作を実現すること、例えば作図すること、が可能となる。
図1K及び図1Lの例では、ユーザはワンド(棒状の器具)またはVRコントローラ等の入力装置101を、3次元空間において動かし、コンピュータシステム100は、X、Y、Z座標における入力装置101の位置を表す追跡データのストリームを受信する。この追跡データのストリームは、人工知能ニューラルネットワークが、学習段階では一群のジェスチャを学習することができ、認識段階では、意図したジェスチャを認識することができるように、格納され、かつ処理される。その際に、ジェスチャ動作の位置、方向又は大きさが、ジェスチャを認識する特徴であるか否か、追加の情報を与えるのか否か、あるいはそれらが無視されてもよいのか否かを、判定することが可能である。このコンピュータシステム100は、既知のジェスチャ動作の一群のサンプルに基づいたベクトル値を分類することを学習することが可能な人工知能の一例としてニューラルネットワークを含んでいる。ニューラルネットワークは、一例として、記憶媒体108に格納される。別の例として、コンピュータシステム100は、サーバ131に置かれているニューラルネットワークを用いるものであってもよい。ジェスチャの動作経路(すなわちジェスチャ動作の動きの経路)の数値的な表現が、ニューラルネットワークに入力される。ニューラルネットワークが、ジェスチャの位置、方向又は寸法によって、ジェスチャが認識されるかどうかを効率よく判定し、かつジェスチャを効率的に分類することを可能にするために、読み込まれる動作データは、以下のステップによって処理される。ステップ(B)〜(D)の順序は任意である。
(A)ユーザによるジェスチャ動作に最も良く近似する固定数の点が計算される。本発明の一実施形態では、この処理は、元の動作経路から固定数の点を、これらの点間の線形補間によって近似された経路から、元の動作経路上のすべての点への距離が、最小となるように選択することによって行われる。 これらの点を効率的に検出するために、まず、動作経路に沿って等間隔の点を選び、その後に、疑似アニーリング法を用いて、一度に1点ずつ動かすことにより、反復的に近似の度合いを改善することができる。
(B)これらの点が、位置に対して不変な表現に変換される。本発明の一実施形態は、これら全ての点の平均位置を計算し、これら全ての点をその平均位置からの相対的なオフセット(ずれ)として符号化する。
(C)これらの点が、寸法に対して不変な表現に変換される。本発明の一実施形態は、これら全ての点の標準偏差を計算し、これら全ての点の位置を、標準偏差を基準として表す。この場合、これら全ての点の標準偏差は、1となる。
(D)これらの点が、方向に対して不変な表現に変換される。本発明の一実施形態は、これら全ての点の主成分分析を実行し、3次元空間内の分布の第1主軸、第2主軸及び第3主軸を特定する。そして、各点は、これらの座標軸を基準として、再符号化される。すなわち、各点は、3次元空間の中で、これら3主軸の各々の方向に、どれだけ遠い位置にあるか、が表現される。
次に、変換された全ての点は、ベクトルに連結され、さらに、ステップ(B)、(C)、(D)で生成されたメタデータ、すなわち平均位置、大きさ(例えば標準偏差)、及び方向の軸(例えば3主軸)の一部または全部と連結される。そのベクトルは、ニューラルネットワークに入力される。
したがって、ニューラルネットワークは、特定のジェスチャが、前述の特徴のいずれかによって認識されるかどうか、例えば、大きさ又は方向の違いが、意味の全く異なる別のジェスチャを意味するのか、あるいは、同じジェスチャを意味するのか、などを、実例に基づいて効率的に学習することができる。
図2A及び図2Bは、コンピュータシステム100に要素として含まれる本発明の一実施形態による経路認識装置110の動作を、生成されるデータの流れに沿って示す。処理201において、ある形態のトラッキングシステム(追跡システム)103(図1K参照)は、コンピュータシステム100へ入力データを付与する。トラッキングシステム103は、HMD、制御装置、モーショントラッカ(動き追跡装置)、または動き検出カメラなどの様々なVR装置を有していてもよく、事前記録された動作データの記憶装置を有していてもよい。
入力装置101の動きのトラッキングデータ(追跡データ)202は、コンピュータシステム100に含まれる経路認識装置110への入力データとなる。追跡データ202の位置の基準となる座標系は、一例として記録装置102(図1K参照)の位置を基準に、トラッキングシステム103により設定される。別の例として、ジェスチャ実行時にユーザの視点を記述する追加的な基準点が、トラッキングシステム103に付与される。その場合には、追跡される入力装置101の動きを、基準点に対する相対的な動きとして記述するように、追跡データ202の座標値が変換される。すなわち、追跡データ202の座標系が、ユーザの視点に追随する座標系に変換される。この処理は、トラッキングシステム103によって行われる。基準点は、例えばユーザが頭に装着するヘッドセットがユーザの視点を検知することにより得られる。このような座標系の変換は、従来周知であるので、詳細な説明は略する。追跡データ202は、一例として不定数の追跡データ点の形式を採る。一例として、追跡データ202は、入力装置101の検出時刻に沿って順序づけられた位置の座標値の集合の形式、あるいは、位置を記述する変換行列またはユークリッドベクトルと、回転を記述する四元数とからなる形式を採る。また、追跡データ202は、例えば、上記の通りユーザの視点などの特定の基準点に相対的な値として表現しても良く、あるいは、特定の座標系へ変換しても良い。他の例として、追跡データ202は、追跡された動き経路を近似的に表現する関数、例えば多項式の形式を採ることも可能である。
追加データとして、コンテキスト情報(状況情報)203が、追跡システム103によって付与されてもよい。コンテキスト情報203は、実行されたジェスチャ自体の情報の一部ではなく、実行されたジェスチャの意味に関連するメタデータである。例えば、コンテキスト情報203は、ジェスチャが行われるときに、入力装置101のどのボタンが押されているか、現在のジェスチャ動作の前に、どのジェスチャが実行されたか、などを表現する。コンテキスト情報203は、オプション(任意)であり、本発明のすべての実施形態に、必ずしも存在する訳ではない。経路認識装置110の動作モードが学習モードと認識モードのいずれであるべきか、を指示する動作モード選択データは、例えば、ユーザが入力装置101又は入力装置109を操作することにより、経路認識装置110に入力される。
ジェスチャストロークを機械学習によって、より容易に比較できるようにするために、簡略化された表現が処理204により計算される。その表現は、あらかじめ定められた数のデータ点群205によって構成される。 本発明のある実施形態では、この処理は、初期の推測ステップと、それに続く疑似アニーリングのステップとによって達成される。これについては、後述する。
続いて処理206では、データ点は、位置(すなわち場所)、方向(すなわち回転又は姿勢)および寸法(すなわち大きさ)に関する情報を抽出するために、さらに処理される。最終的に得られるデータ集合207は、ジェスチャの動きの形状自体を記述するものであり、固定の大きさであり、ジェスチャストロークがどこでなされたか、どの方向になされたか、どのような大きさでなされたか、にかかわらず、類似の形状を有するジェスチャストロークの間では、非常に類似したものとなる。ジェスチャ位置、方向、および/または寸法という、計算されかつ抽出された基準は、ジェスチャに関するメタデータ208として、別々に格納される。
処理209では、データ点の最終的な集合が、連結されることにより、データベクトル210に組み込まれる。このベクトル210には、それまでに計算されたメタ情報データの一部またはすべてが含められる。それにより、ジェスチャストロークの形状自体の情報であるデータ集合207と、ジェスチャストロークが実行される位置、方向、および/または寸法を表現するメタデータ208との、双方からなる新しい入力データベクトル210が生成される。必要に応じて、トラッキングシステム103によって処理201において付与されるコンテキスト情報203を、入力データベクトル210に含めることも可能である。
次に、処理211において、入力データベクトル210が、人工ニューラルネットワーク(artificial neural network ;ANN)へ入力され、ニューラルネットワークは、所定の演算を実行する。入力データベクトル210は、学習段階では、そのジェスチャの類型すなわち意味が既知なのであれば、特定のジェスチャのサンプルとして使用され、認識段階では、新たな未知のジェスチャを認識するのに使用される。 ニューラルネットワークは、演算を実行するためにパラメータ集合212を使用する。後に詳述するように、このパラメータ集合212は、学習の結果によるものであり、学習によって改善することが可能である。
経路認識装置110が、新規な未知のジェスチャ動作を認識するために使用される場合、すなわち動作モードが認識モードであるときには、処理211によって、ニューラルネットワークは、実行されたジェスチャストロークが、学習段階中に教示された様々なジェスチャのカテゴリー(あらかじめ定められたジェスチャの類型であり、本開示ではジェスチャの意味と同義;以下「ジェスチャカテゴリー」と適宜表記する)に属する確率の推定値を表示する値の集合213を、出力ニューロン(出力層のノード)の値として生成する。
次いで、経路認識装置110は、処理214において、ユーザによって意図されたジェスチャである可能性の最も高いジェスチャカテゴリーとして、最も高い確率の推定値を有するジェスチャカテゴリーを選択することができる。尚、既知のジェスチャカテゴリーの中で、確率の推定値の高いカテゴリーが無い場合には、エラーメッセージを生成することも可能である。最も可能性の高いジェスチャカテゴリーが選択されている場合には、そのジェスチャカテゴリーの識別子(ID)215が、経路認識装置110の処理における出力値となる。
次に、経路認識装置110は、処理216において、出力データの完全な集合を構成する。この出力データ集合は、ジェスチャの種類の識別子215、ジェスチャストロークのメタデータ208、およびトラッキングシステムによって先に付与されたコンテキスト情報203からなる。
図2Bは、動作モードが学習モードであるときの経路認識装置110の動作を例示する。経路認識装置110は、既に述べた動作モード選択データに基づいて、動作モードを認識モードと学習モードのいずれかに設定する。学習モードにおいては、ニューラルネットワークを学習させるために、例えば、ユーザは学習用サンプルとしてジェスチャストロークを実行する。入力データ202,203の処理と入力データベクトル210の構成は、認識モードにおけるものと同じである。また、処理211によって、ニューラルネットワークは、学習用サンプルとして入力されるジェスチャストロークについて、認識モードにおける処理211と同様に、ニューラルネットワークの出力ニューロン(出力層のノード)の値を計算する。
さらに、正しい(すなわち、意図された)ジェスチャカテゴリーの識別子217が、教師データとしてユーザによって付与される。教師データとしての識別子217は、例えば、ユーザが入力装置101又は入力装置109を操作することにより、経路認識装置110に入力される。この入力情報は、ニューラルネットワークの出力ニューロン(出力層のノード)のうち、正しいジェスチャカテゴリーに対応する出力ニューロンを「1」に設定し、その他の全ての出力ニューロンを「0」に設定するのに用いられる。ニューラルネットワークは、処理211において更に、計算した出力ニューロンの値と、正しい値である出力ニューロン値218との間の不一致に基づいて、ニューラルネットワークパラメータ212のうち、各ニューロンの重み及びバイアス値を更新し、認識モード中にユーザが意図するジェスチャの類型を正しく予測する確率を向上させる。
なお、学習モードにおいては、処理211において、ニューラルネットワークパラメータ212のうち、ノード層(レイヤ)の数及び各層のニューロン数を、最適値に調整することも可能である。その処理手順は、当分野において周知であるので、その詳細な説明は略する。
図3A〜図3Gは、ステップ204の処理を例示しており、ニューラルネットワークによりジェスチャストロークを認識するために、ジェスチャストロークを最適に表現する一群の点を見いだす方法の一実施形態を例示している。図3Aは、入力データとしての追跡データ202を示している。図示の例では、入力データは、実行されたジェスチャストロークの経路に沿った一連の点である。点の数は任意であり、ユーザが実行するジェスチャ動作の長さ及び速度によって変わってもよい。経路の曲線を、可能な限り詳細に維持することにより最適に表現する固定数の点が、以下に例示するアルゴリズムにより見いだされる。
図3Bに示す最初のステップでは、経路に沿った間隔が等しくなるように、望ましい固定数の点群が選択される。そして、この最初の推定結果は、疑似アニーリングによって反復的に改善される。すなわち、代表点がランダムに選択され、経路に沿ったランダムな移動が、疑似シミュレーションによって提案される(図3C参照)。 図3D及び図3Eに示すステップでは、経路認識装置110は、選択された代表点の移動前及び移動後について、移動による影響のある線分の経路からの誤差を計算する。ここで、「誤差」とは、選択された代表点それのみによって決まる簡略化された経路(線分)から、図3Aに示したジェスチャストロークの経路上の点群が、どれほど離れているか、によって定義される。疑似シミュレーションによって新たに提案される点の位置による誤差が、先に用いられた点の位置による誤差よりも小さいならば、提案された位置の変更は受け入れられ、簡略化された経路は更新される(図3F参照)。逆に、新たに提案される点の位置による誤差が、先に用いられた点の位置による誤差よりも大きいならば、疑似シミュレーションにより、乱数が生成される。この乱数が、更新すべきか否かの判断の基準とされる閾値よりも大きいならば、更新はなされず、先の点の位置が維持される。乱数が閾値よりも小さいならば、誤差が増加することになるとしても、ともあれ更新がなされる(すなわち、ジェスチャストロークの表現という点において、より悪くなる)。これは、システムが、局所的な最小値から抜け出せなくなることを避けるためになされる。
いずれの場合であっても、システムは、新たなランダムな点を選択し、ジェスチャストロークの経路に沿ったその点の新たなランダムな移動を提案することにより、次のステップとして、図3Cに示したステップを繰り返す。このサイクルは、ジェスチャストロークの経路の有用な表現を見いだすために、任意の回数繰り返される。閾値は、繰り返しのサイクル毎に減少させられ、それにより、誤差を増加させる更新は、受け入れられ難くなる。図3Gに例示する一群のデータは、最終的に得られる結果である。これらの点群は、異なるジェスチャストロークを比較することを容易にする有意義な方法で、ジェスチャストロークの経路を記述している可能性が高い。
図4は、ジェスチャストロークを表現する様々なデータ点群が、どのようにして、先にステップ205〜209として説明したように、さらに処理されるのかを、目に見える形態で例示している。この図は、本発明の一実施形態による、いくつかのジェスチャストロークの処理を、例示するものであって、本発明がこれに限定される訳ではなく、また数値的に正確である訳でもない。説明のために、ジェスチャストロークは、2次元平面上の動きとして表されているが、本発明は、次元の数とは無関係であり、平面上だけでなく自由空間内で実行されるジェスチャ動作にも、適用することができる。さらに、処理ステップ402,404,406の実行順序は任意であり、図に表示される順序は、本発明を限定するものではない。
すでに述べたステップ204(図2A参照)により、ジェスチャストロークの経路を表現する、限られた数の点群401(図2Aのデータ205に相当)が得られる。入力されるジェスチャストロークを表現するデータ点群401は、位置・方向・寸法について、入力されるジェスチャストロークの間で異なったものとなることが予想される。図において左端の欄には、6つのジェスチャストロークのデータ点群401の例が表示される。矢印は、使用されている座標系の座標軸を表す。
人間である観察者には、ジェスチャストローク間の類似性は明白であるが、データ点群401の座標から数値的に判断する場合には、位置、方向、及び寸法の違いのために、その類似性を検出することは困難である。ステップ402では、すべてのデータ点群401の平均点または重心等の基準411が計算され、データ点群401とは別個に保存され、かつすべてのデータ点401から減算される。ステップ402において得られたデータ点群403は、座標系の原点を中心にした値に変換されているが、様々なジェスチャストロークは、まだ方向(回転)と寸法(大きさ)において大きく異なっている。
ステップ404では、方向(回転)の基準412が計算される。いくつかの実施形態では、この基準412は、主成分分析によって計算された最大および最小分散のベクトルの組として与えられる。方向の基準412はデータ点群403とは別個に保存され、すべてのデータ点403が基準412とは逆方向に変換される。言い換えると、全てのデータ点の座標値が、方向の基準412を新たな座標軸とした座標値に変換される。ステップ404において得られたデータ点群405は、座標系の原点を中心にして方向が整っているが、様々なジェスチャストロークは、まだ寸法において異なっている。
ステップ406では、寸法(スケール、大きさ)の基準413が計算され、データ点群405とは別個に格納される。いくつかの実施形態では、この基準は、すべてのデータ点405の標準偏差または標準分散である。この基準413は、単一の値であってもよく、次元ごとに1つの値を有するように一組の値によって構成されてもよい。基準413が単一の値である場合とは、例えば、データ点群405の重心からの、方向を問わない距離について標準偏差を算出し、この標準偏差を基準413とする場合が該当する。この寸法の基準413の逆数が、ジェスチャストロークの一組のデータのすべてに掛け合わされ、それにより均一な寸法が達成される。
ステップ406において得られたジェスチャストロークのデータ点群407は、座標系の原点を中心に、配向方向(回転方向)に相対的な位置に配置されており、かつ一様な(単一の)大きさとなるように配置されている。これにより、データ点群407の座標値は、様々なジェスチャストロークの間で、数値的に互いに比較し易くなっている。このテータ点群407は、ユーザがどこで、どの方向に、かつどの大きさでジェスチャ動作を行うか、には依存せず、ジェスチャ動作の動き経路の形状そのものを表している。
ステップ209(図2A参照)において得られるニューラルネットワークの入力データのベクトル408(図2Aのベクトル210に相当)は、ステップ406において得られたジェスチャ動作の動き経路の形状データであるデータ点群407と、先に計算された位置、方向、寸法の基準411,412,413とから、各数値を連結することによって構成される。ジェスチャ動作の動き経路の形状を表現するデータ点群407は、ジェスチャが行われるn次元空間における、まばらな点集合であって、ジェスチャ動作の画像ではない点に、注意されたい。そのため、データは3次元の形状を表すこともできるとともに、明確に定められた開始点(第1の点)および終了点(最終点)を有しており、かつジェスチャ動作を表現するために必要な数値の数が、比較的小さいことが特徴的である。
以上のように、データ点群401の位置の基準411として平均値を例示し、方向の基準412として、主成分分析に基づく最大および最小分散のベクトルの組を例示し、大きさの基準413として標準偏差を例示した。平均値は、データ点群401全体の位置を適切に表現する物理量であり、しかも平均計算という比較的簡単な計算により得られるという利点がある。最大および最小分散のベクトルの組は、データ点群401全体の方向を適切に表現する物理量であり、しかも比較的簡単な計算により得られるという利点がある。標準偏差は、データ点群401全体の大きさを適切に表現する物理量であり、しかも比較的簡単な計算により得られるという利点がある。特に、位置の基準411として平均値を採用し、大きさの基準413として標準偏差を採用した場合には、ニューラルネットワークに入力されるベクトル408を構成するデータ点群407の座標の原点からの平均距離は、1となる。ニューラルネットワークに用いられるロジスティック関数は、入力される数値が−1〜+1の範囲から大きくはみ出さないことが望ましい。このため、基準411として平均値を採用し、基準412として標準偏差を採用することは、ロジスティック関数を用いたニューラルネットワークに入力されるデータ点群407を算出する上では、特に好ましい。ただし本発明において、基準411,412、413は、これらの例に限定されない。例えば、位置の基準411として、データ点群401の平均値に代えて、データ点群401のうちの始点あるいは終点を採用することも可能である。
図5A〜図5Cは、本発明の実施の形態においてニューラルネットワークがどのように使用されるかを例示する。図5Aに例示するように、1ストロークからなるジェスチャ動作501が処理されることにより、ジェスチャ動作501の位置、方向、大きさ、及び形状(動き経路の形状)の数値データ502が生成される。これらの数値502からベクトルが構成される。このベクトルは、ニューラルネットワークの入力ノード503の数値を構成する。さらに、コンテキスト情報508(図2Aのコンテキスト情報203に相当)をベクトルに追加することも可能である。図示の例では、位置の数値3つ(重心のx、y、z座標)、方向の数値4つ(回転の四元数x、y、z、w)、寸法の数値1つ(標準偏差)、及び ジェスチャ形状(ここでは、ジェスチャ動作の動き経路の形状)の数値9つ(3つの制御点;それぞれがx、y、z座標からなる)である。図2Aのステップ204において得られる、あらかじめ定められた個数のデータ点を、「制御点」と適宜称する。但し、この例は、ニューラルネットワークに基づいてジェスチャカテゴリを認識する動作を例示するために使用される、可能な一例に過ぎない。
ベクトルを構成する他の方法も採用可能であり、以下の例を、それに限定することなく含めることができる。例えば、データの一部を省略したり、姿勢(方向)を方向のベクトルの形式で符号化したり、寸法の基準を各次元に沿った値に分離したりすることができる。さらには、制御点の数を増やしたり減らしたり、各制御点をジェスチャの重心に相対的な値として符号化したり、ひとつ前の制御点に相対的な値として符号化したり、することができる。また、ベクトルには、タイムスタンプ、制御装置101のボタン操作のデータ、ローラー回転操作のデータ等の追加データを、コンテキスト情報508として、含めたり、あるいは除去したりすることも可能である。
図示の例では、ニューラルネットワーク内の中間層504のノード(隠れたニューロン)には、各々が9つのニューロンを有する2つの層が使用されているが、層やニューロンの最適な数を決定することは、特定のジェスチャ集合についてのニューラルネットワークの最適化の一形態であり、本発明の概念を限定するものではない。隠れた層(中間層)504のニューロンは、前の層のニューロンに接続されており、各ニューロンは、接続された入力の値がニューロン自身の出力値にどれほど影響を与えるかに関する重み値を割り当てている。出力値は、入力値とバイアス値の加重和をとり、周知のシグモイド関数や双曲線正接関数などの活性化関数を適用することによって計算される。
ニューラルネットワークの出力層505では、各ニューロンがジェスチャカテゴリの一つに関連づけられている。図示の例では、5つのジェスチャカテゴリ(G1からG5まで)が、ニューラルネットワークには既知となっている。すべての層の出力値の計算が実行された後には、出力層505のニューロンの値は、入力されたジェスチャ動作501が、対応するジェスチャカテゴリに属する確率の推定値(p(G1)からp(G5)まで)として使用することができる。
この計算に基づいて、学習プロセスを開始することができる。学習プロセスでは、ニューラルネットワーク内のノードの重み係数は、ニューラルネットワークが正しいジェスチャカテゴリを特定する確率を最大にするように設定される。図5Bに例示するように、正しいジェスチャカテゴリー510は、ユーザによって教示される。教示されたジェスチャカテゴリー510は、このジェスチャカテゴリー510に関連付けられた出力ノード505が「1」であるべきである一方、他の出力ノード505の値は「0」でなければならないことを意味する、とニューラルネットワークによって解釈される。 これらの正しい値511とニューラルネットワークが出力層ニューロン505に実際に生成した値との間の不一致に基づいて、誤差逆伝播法(バックプロパゲーション)を介して、ニューロン接続(ノード)の重みが更新される。それにより、いくつかの接続(ノード)の重みが減ぜられ、他の接続(ノード)の重みが強化または増加させられる。この学習プロセスは出力ニューロン(出力ノード)の中で最も高い値が、ユーザが教示したジェスチャカテゴリーと相関する確率が、実際に最大となるように、接続(ノード)の重みが設定されるまで、ジェスチャカテゴリー毎に、記録された十分な数のジェスチャ動作例を用いて、多数回繰り返される。
図5Cに例示するジェスチャ動作521は、図5A及び図5Bに例示したジェスチャ動作501とは異なっている。このため、ジェスチャ動作の数値データ522は、数値データ502とは異なり、入力ノード503に入力されるベクトルも、図5A、図5Bの入力ノード503に入力されたベクトルとは異なる。中間ノード504を含めたすべてのニューロンの値が計算された後に、出力層ニューロン505には、ユーザが各ジェスチャカテゴリーに属するジェスチャを意図した確率の推定値として使用できる様々な値が出力される。経路認識装置110は、最高値を示すジェスチャカテゴリーを選択し、認識結果データ526として出力する。
図5Dは、図1Hに例示したように、複数(図示の例では3つ)の動作(すなわち3ストローク)の組み合わせであるジェスチャを処理できるニューラルネットワークの一例を示す。例示する処理対象であるジェスチャ527は、3つのジェスチャストロークの組み合わせからなる。3つのストローク528は、個別に処理される。各動作の位置、方向、および寸法を計算し、それぞれのストロークのデータから除去することにより、動きそれ自体の位置、方向、及び寸法に不変な表現が生成される。これらの数値データ529、すなわち各動き経路の動きデータ(制御点)および動きのメタデータ(位置、方向、および寸法)を組み合わせることにより、1つの入力データベクトルが形成され、入力ノード530に入力される。ニューラルネットワークは、中間層の一連のノード531を通じて、この入力データベクトルを処理する。ニューラルネットワークの出力は、出力層532を構成する複数(図示の例では5個)の出力ノードの値であり、実行された動作が、複数ストロークからなるジェスチャの既知のカテゴリーのうちの1つである可能性の推定値を表す。これらの値から、最も確率の推定値の高いジェスチャカテゴリーを選択することができる。
図6A〜6Eは、2つのジェスチャ例である「例1」および「例2」に対する処理により実行される数値計算の例を示す。図示の例では、ジェスチャは、「1」から「4」までの符号が付された4つのデータ点(制御点)のみにより表現され、2次元的で1ストロークのジェスチャである。この非常に単純な例は、説明をできるだけ簡単にするために選択されたものであり、データ点群の次元数または個数に関して、本発明を限定するものではない。尚、すべての数値は、例示を目的とした近似値であり、数学的に正確である訳ではない。
図6Aに示す「例1」及び「例2」は、図2Aに例示したステップ204で得られるデータ点群に対応する。「例1」及び「例2」のいずれも、「1」から「4」までの4個のデータ点で定義されている。「1」はジェスチャ動作の開始点、「4」はジェスチャ動作の終了点である。人間であるユーザまたは観察者には、2つのジェスチャの類似性は明らかである。2つのジェスチャ動作は、異なる位置、寸法、および方向をもって実行されているが、同じジェスチャ動作を意図していることは明らかである。 しかし、2つのジェスチャ動作を数値的に比較すると、「例1(x、y)」のデータベクトルで定義される例1のジェスチャは、「例2(x、y)」のデータベクトルで定義される例2のジェスチャとは大きく異なっている。例1は、ベクトル[2, 9, 3.5, 4, 4, 5.5, 2 , 5]で表され、例2は、ベクトル[25, 8, 22, 1, 24, 2, 21.5, 3.5]で表される。ここで、2個の数値からなる各対は、1つのデータ点の座標を符号化しており、合計4対の数値は、ジェスチャ動作を記録する順序で連結されている。
一般のコンピュータシステムには、これら2群の数値データが、同じジェスチャの種類に属するものと、正しく分類することは、困難である。本実施の形態による経路認識装置110では、入力データである「例1 (x, y)」と「例2 (x, y)」を、図6B〜図6Dに例示する3つのステップにより処理し、最終的にニューラルネットワークへの入力データとして使用されるベクトル(図6E参照)を構成する。
図6Bは、第1の処理ステップを示す。ここでは、ジェスチャ動作の中心(重心)が、ジェスチャ動作内の全ての点の平均を見いだすことによって計算される。この平均値は、図6Aに示したデータ行列の各点から除算され、結果として図6Bに示すデータ行列「例1A」及び「例2A」 が得られる。これらのデータ行列はいずれも、位置不変であり、言い換えると、空間におけるジェスチャ動作全体の位置に対して位置合わせされている。
図6Cに示す処理ステップでは、ジェスチャ動作の方向すなわち姿勢(配向、回転)が計算される。図示の例は2次元であるため、方向は、最大分散のベクトルで表示され、そのベクトルは主成分分析により計算することができる。このベクトルは、矢印yとして図6Cに示されている。直交ベクトルxとともに、データ点群を表現できる新たな座標系が生成される。この新しい座標系への変換によって生成されるデータ集合「例1B」および「例2B」は、回転不変であり、言い換えると、回転(方向)に関して位置合わせされている。
図6Dに示す処理ステップでは、例示されるデータ点群の大きさ又は寸法が計算される。図示の例では、それぞれx軸およびy軸に沿った標準偏差を表す2つの値が使用されている。これらの大きさの因子の逆数は、例示されるすべてのデータ点に適用され、ジェスチャデータを、単位の大きさに変換する。この処理により、ジェスチャ例のデータ集合「例1C」および「例2C」が生成される。これらのデータ集合は、大きさに対して不変であり、言い換えると単位長の大きさを有する。図示の例では、「例1」について、ベクトル [0, -6 , 0, 4 ,-0.9, 1 , 1.1, 1]が生成され、「例2」については、ベクトル[0, -5.5, 0, 2.8, -1 , 1.1, 1 , 1]が生成される。これらの数値は非常に似ており、コンピュータシステムが、「例1」と「例2」の関係を理解し易くなっている。
図6Eに示すように、最後に、ジェスチャ動作の動きの形状自体のデータ「例1C」及び「例2C」の各々は、先に抽出された位置(重心)、方向および寸法の情報と組み合わされ、新たなベクトル「例1D」及び「例2D」が構成される。図示の例では、データベクトル「例1D」及び「例2D」は、例示された順序でデータが連結されることにより構成される。ただし、本発明では、様々な形式によるデータの結合もあり得る。
図示の例では、「例1」のベクトル「例1D」は、[3, 6, 0.29,-0.95, 1.1, 0.5, 0,-6, 0 , 4 ,-0.9, 1 , 1.1, 1]であり、「例2」のベクトル「例2D」は、[23, 3.5,-0.3,-0.9, 1.5, 0.9, 0,-5.5, 0 , 2.8, -1 , 1.1, 1 , 1]である。これらのベクトルの最後の8つの値から、「例1」と「例2」の2つのジェスチャ例が、実際に同一のジェスチャを意図したものであると判断するのは、かなり簡単なことである。これは、両方のジェスチャ動作が同じ意味を持つことをユーザが意図している場合(例えば、「この方向にオブジェクトを移動する」など)に有用である。しかし、設定に応じて、コンピュータシステムは、最初の6つの値のいずれかに基づいて、双方のジェスチャ動作が2つの異なるジェスチャとして、区別するように学習することもできる。例えば、ユーザは、「例1」のジェスチャが「オブジェクトを左側のゴミ箱に入れる」ことを意味し、「例2」のジェスチャが「オブジェクトを右側のゴミ箱に入れる」ことを意味することを、意図することも可能である。この場合、ベクトルの3番目の数値が、区別の因子となる。この因子は、ジェスチャが左方向に実行されている場合は負となり、ジェスチャが右方向に実行された場合は正となる。ニューラルネットワークは、関連性のある因子に大きな重みを与え、関連性の無い因子にはゼロの重みを与えることによって、これらの数値的な差異に効率的に反応することができる。例えば、ユーザは、「左から右へと実行されるジェスチャ」は、「右から左に実行されるジェスチャ」とは異なる意味を有すること、または「小さく実行されるジェスチャ」は、「大きく実行されるジェスチャ」とは異なる意味を有することを、コンピュータシステムに教示することができる。
図7は、本発明の実施の形態による経路認識装置110を含むシステム全体(図1L参照)に関し、特にその処理を例示する。ユーザは入力装置701を空間内で動かすことができる。ビデオカメラまたは動き検出器等の記録装置702は、入力装置701の空間内の位置および動きを検出することができる。トラッキング装置(追跡装置)703は、入力装置701の動きの数値表現であるトラッキングデータ704を、追加のコンテキストデータ203と共に計算することができる。トラッキング装置703は、動きデータであるトラッキングデータ704を出力するとともに、ユーザが押したボタン等のメタ情報、またはシステム内の情報を、コンテキストデータ203として出力する。その後、これらのデータは既に述べた方法により処理される。
一例として、入力装置109をユーザが操作することにより、動作モードを認識モードと学習モードのいずれかに設定する動作モード選択データ710が、経路認識装置110に入力される。経路認識装置110は、動作モード選択データ710に基づいて、ニューラルネットワークに認識モード又は学習モードの動作を実行させる。学習モードが選択されているときには、例えば入力装置109をユーザが操作することにより、教師データである正しいジェスチャカテゴリーの識別子217が、ニューラルネットワークに入力される。認識モードが選択されているときには、経路認識装置110は、処理216において、出力データを構成し、操作対象装置120(図1L参照)に伝える。出力データは、認識されたジェスチャカテゴリーに関連づけられることをユーザが意図する行為を、操作対象装置120に行わせるように、操作対象装置120内に特定の事象を生じさせる(処理705)のに、使用することができる。
一例として、動作モード選択データ710は、動作モードを変更するときに入力され、次の入力があるまで、選択された動作モードが維持される。教師データである識別子217も同様に、一例として、識別子217を変更するときに入力される。また、動作モード選択データ710は、入力装置109以外に、例えば入力装置701を通じて入力されても良い。教師データである識別子217も同様である。
図8は、図1Kに例示したシステム全体のプログラム構成を例示するブロック図である。図8は、コンピュータプログラムまたはコンピュータプログラムの一部として構成された、本発明の実施の形態をも例示する。メインプログラム801は、図1Lに例示する操作対象装置120の機能を実現するプログラムであり、例えば描画などのユーザの操作を実現する。トラッキング(追跡)システムプログラム802またはトラッキングシステムライブラリは、ユーザの動きを検出するトラッキングシステム103の機能を実現するプログラムである。経路認識プログラム803は、本発明の実施の形態による処理を実行し、ユーザによって行われたジェスチャを認識する。ユーザインタラクションシステム804は、入力装置109、インターフェイス104(図1K参照)の機能を実現するプログラムである。
以上の説明は、VR制御装置(入力装置101)を空間内で振るといった、空間における物体の動きの経路によって規定されるジェスチャを認識することに関する。しかしながら、本発明は、入力装置101による連続した単一の動き(すなわち1ストロークの動作)の動きデータの処理に限定されない。本発明による処理は、空間内の経路又は一連の経路として表現できるあらゆるデータに適用することができる。以下は、可能な他の適用例を、網羅的にではなく列挙したものである。
[マルチ・ストローク・ジェスチャの扱い]
図5Dを参照しつつ既に例示したように、複数のストロークからなるジェスチャ(「マルチ・ストローク・ジェスチャ」と称する)を認識するために、本発明の経路認識装置110を使用することも可能である。例えば、ユーザが線を描き、(例えば、入力装置101のボタンを放すことにより)ジェスチャ動作を一時的に中断したままで入力装置101の位置を変え、その後に、(例えば、入力装置101のボタンを再び押しつつ)最初の線と平行ではあるが接続されていない第2の線を描くことも可能である。図5Dの例示では、複数のストロークの各々について、位置、方向及び寸法が抽出され、抽出された属性に不変な位置データが計算された。それにより、マルチ・ストローク・ジェスチャの認識を、容易かつ精度良く行うことができる。これに対し、一部のストローク、例えば1つのストロークについてのみ、属性の抽出がなされてもよい。また、属性の抽出は、位置、方向及び寸法の一部、例えば位置についてのみ行われても良い。これらの場合においても、マルチ・ストローク・ジェスチャの認識を、相応に、容易かつ精度良く行うことができる。
図9は、複数のストロークから構成されるジェスチャを認識する本発明の一実施の形態による経路認識装置を含むシステムの処理を例示する。ユーザ1001は、ジェスチャ動作を実行し、この動作がトラッキングシステム1002によってトラッキング(追跡)される。トラッキングシステム1002は、経路認識装置1000に動作データを付与する。経路認識装置1000は、処理1003において、動作データを受信し、複数のストロークとして保存する。この処理1003では、動き経路の単純化又はメタデータの抽出などの前処理操作を実行することができる。ストロークの切れ目は、例えば入力装置101のボタンが放されたことを示すデータが、コンテキスト情報203(図2A参照)として入力されることにより、認識可能である。
経路認識装置1000は、処理1004において、これまでに受信したストロークがジェスチャの全てかどうかを判断する。判断するには、いくつかの方法があり得る。1つの方法は、最後の動作が実行された後に経過した時間を測定し、新しい動作の入力が一定時間の間に発生しなかった場合には、ジェスチャが完了した、とみなす方法である。別の方法は、ジェスチャが完了したことを知らせる、ユーザ1001による手動入力を確認することである。経路認識装置1000は、ジェスチャが完了したかどうかを決定する方法とは無関係に、ジェスチャがまだ完了していないと判断した場合には、追加のジェスチャ動作を受信し格納する処理に戻る。経路認識装置1000は、ジェスチャが完了したと判断した場合には、次の処理に進む。
ジェスチャを構成するストロークの数に基づいて、経路認識装置1000は処理1005において、様々な数のストロークからなるジェスチャのために準備された複数の人工知能1006のうちから、対応する人工知能を選択する。経路認識装置1000は、このようにして、図5Dに記載したマルチストローク用ニューラルネットワークを適切に使用することができる。それにより、ある数のストロークのジェスチャが、異なる数のストロークのジェスチャとして誤認されることを、回避することができる。また、図9に例示するように、ストロークの数の相違だけではなく、受信したデータが、ジェスチャの形状輪郭と動きのいずれを表しているか、によってもニューラルネットワークを使い分けることができる。図9には、複数の人工知能1006として、1ストロークのジェスチャ動作からなるジェスチャを認識するためのニューラルネットワーク、2ストロークのジェスチャ動作からなるジェスチャを認識するためのニューラルネットワーク、3ストロークのジェスチャ動作からなるジェスチャを認識するためのニューラルネットワーク、1つのジェスチャー形状輪郭からなるジェスチャを認識するためのニューラルネットワーク、及び1つのジェスチャ形状輪郭と、1ストロークのジェスチャ動作からなるジェスチャを認識するためのニューラルネットワーク、の5種のニューラルネットワークが例示されている。
ストロークの数は、例えば、ストローク毎にトラッキングシステム1002から経路認識装置1000に入力されるコンテキスト情報(図5D参照)の入力回数によって、把握することができる。受信したデータが、ジェスチャの形状輪郭と動きとのいずれを表しているかは、例えば、コンテキスト情報に含めることができる。トラッキングシステム1002は、例えば、ユーザによる入力装置101(図1K参照)の操作に基づいて、コンテキスト情報を生成し、経路認識装置1000に入力する。
[身体部分によるジェスチャの扱い]
入力装置を使用する代わりに、人体または動物の身体の様々な部分の動きを、入力データとして使用することができる。例えば、ユーザが人差し指で見えない線を空中に描くこと、または犬の尾の先端の動きも、ジェスチャ動作の一形式として使用することができる。
[人間又は乗り物の移動経路の扱い]
人間または乗り物の大きな移動も、経路認識装置110,1000によって処理可能な動き経路を構成する。このようにして、本発明は、一般に移動パターンを認識するために使用することも可能である。例えば、移動経路にのみ基づいて、様々な型の航空機を認識することもできる。
[形状輪郭の経路の扱い]
時間の経過に伴う動きの経路をデータの基礎として使用する代わりに、オブジェクト(ここでは認識対象物)の視覚的輪郭に沿った経路を、経路認識装置110,1000の入力データとして使用することも可能である。このようにして、経路認識装置110,1000は、静的な手のサイン(合図)または物体を認識するために使用することができる。
[複数種類の入力データの組み合わせの扱い]
マルチ・ストローク・ジェスチャとして既に説明したように、同じ種類の複数の経路を組み合わせることができるのと同様に、上記した様々な種類の入力データを組み合わせることができ、さらには空間内の経路として表すことができる限り、未だ言及していない種類の入力データを組み合わせることも可能である。例えば、経路認識装置110,1000は、特定の手の形状および特定の手の動きからなるジェスチャを認識することができ、「人差し指で振る」、「人差し指で指す」、「親指で振る」、および「親指で指す」というジェスチャは、異なるジェスチャとして認識することができる。それには、例えば、トラッキングシステム103(図1L、図9参照)が、手の形状輪郭と手の動きとを、それぞれ検出して、それぞれの経路データを生成し、これらの経路データを2つの経路からなる経路集合のデータとして、経路認識装置110,1000に入力するとよい。既に述べたマルチストロークジェスチャの例のように、経路認識装置110,1000はデータの種類について手動で指示を受けるか、または自動識別を試みることができ、異なるデータの種類の間の誤認識を回避しながら、入力されたデータの種類に適したニューラルネットワークを選択することができる。この形態についても、図9を参照することができる。
100 コンピュータシステム、 101 入力装置、 102 記録装置、 103 トラッキングシステム、 104 インターフェイス、 105 プロセッサ、 106 表示装置、 107 メモリ、 108 記憶媒体(記録媒体)、 109 入力装置、 110 経路認識装置、 120 操作対象装置、 130 ネットワーク、 131 サーバ、 202 トラッキングデータ(追跡データ、経路集合データ)、 203 コンテキスト情報(付加的データ)、 205 データ点群(点群の位置データ)、 207 データ集合(属性不変位置データ)、 208 メタデータ(属性)、 210 データベクトル(入力データ)、 213 集合(確率の推定値)、 217 識別子(教師データ)、 401 点群(点群の位置データ)、 403,405,407 データ点群(属性不変位置データ)、 408 ベクトル(入力データ)、 411,412,413 基準(属性)、 502,522,529 数値データ(入力データ)、 508 コンテキスト情報(付加的データ、入力データ)、 510 ジェスチャカテゴリー(教師データ)、 526 認識結果データ、 704 トラッキングデータ(追跡データ、経路集合データ)、 710 動作モード選択データ、 801 メインプログラム、 802 トラッキンスシステム、 803 ジェスチャ認識プログラム(経路認識プログラム)、 804 ユーザインタラクションシステム、 1000 経路認識装置、 1001 ユーザ、 1002 トラッキングシステム、 1006 ニューラルネットワーク(人工知能)。

Claims (19)

  1. 2次元または3次元空間において各々が個別に連続した1以上の経路からなる経路集合の意味を、人工知能を用いるコンピュータにより認識する経路認識方法であって、
    前記経路集合を表現する経路集合データを含むデータの入力を受け入れることと、
    入力を受け入れた前記経路集合データに基づく、前記経路集合を構成する各経路に沿った点群の位置データのうち、前記経路集合を構成する前記1以上の経路のうちの少なくとも一部の経路の各々に沿った点群の位置データから、対応する点群全体の位置、大きさ、及び方向のうちの少なくとも1つの属性を抽出することと、
    前記少なくとも一部の経路の各々に沿った前記点群の位置データを、対応する前記少なくとも1つの属性に相対的な位置データに変換することにより、前記対応する少なくとも1つの属性に依存しない属性不変位置データを得ることと、
    前記経路集合を構成する各経路に沿った前記点群の位置データを含むデータを、入力データとして前記人工知能に入力することと、
    前記人工知能の出力データとして、入力を受け入れた前記経路集合データが表現する前記経路集合の意味が、あらかじめ準備された複数の意味の各々である確率の推定値を、前記人工知能に計算させることと、を含み、
    前記データを前記入力データとして前記人工知能に入力することは、
    前記少なくとも一部の経路の各々に沿った前記点群の位置データとして、対応する前記属性不変位置データを、前記入力データに含めて入力することと、
    前記少なくとも一部の経路の各々について抽出された前記少なくとも1つの属性のうち、少なくとも一部の属性を、前記入力データに含めて前記人工知能に入力することと、を含む、経路認識方法。
  2. 学習モードと認識モードとのいずれかを、動作モードとして選択する動作モード選択データの入力を受け入れることと、
    前記動作モードとして前記学習モードが選択されているときには、前記人工知能の前記出力データとして正しいデータの入力を、教師データとして受け入れ、受け入れた前記教師データを前記人工知能に与えることにより、前記人工知能を学習させることと、
    前記動作モードとして前記認識モードが選択されているときには、前記複数の意味のうち、前記人工知能の出力データが最高の確率の推定値を示す意味を含むデータを、認識結果データとして出力することと、を更に含む、請求項1に記載の経路認識方法。
  3. 前記認識結果データは、前記少なくとも一部の経路の各々について抽出された前記少なくとも1つの属性のうち、少なくとも一部の属性を含む、請求項2に記載の経路認識方法。
  4. 前記少なくとも1つの属性を抽出することは、前記少なくとも一部の経路のうちの少なくとも1つの経路の各々について、対応する点群全体の平均位置を、前記対応する点群全体の位置として抽出することを含む、請求項1から3のいずれかに記載の経路認識方法。
  5. 前記少なくとも1つの属性を抽出することは、前記少なくとも一部の経路のうちの少なくとも1つの経路の各々について、対応する点群全体の標準偏差又は一組の標準偏差を、前記対応する点群全体の大きさとして抽出することを含む、請求項1から4のいずれかに記載の経路認識方法。
  6. 前記少なくとも1つの属性を抽出することは、前記少なくとも一部の経路のうちの少なくとも1つの経路の各々について、主成分分析に基づいて、対応する点群全体の一組の主軸の方向を、前記対応する点群全体の方向として抽出することを含む、請求項1から5のいずれかに記載の経路認識方法。
  7. 前記少なくとも1つの属性を抽出することは、前記少なくとも一部の経路の各々について、対応する点群全体の位置、大きさ、及び方向を抽出することを含む、請求項1から6のいずれかに記載の経路認識方法。
  8. 前記経路集合を構成する前記1以上の経路のうちの前記少なくとも一部の経路は、前記経路集合を構成する前記1以上の経路の全てである、請求項1から7のいずれかに記載の経路認識方法。
  9. 前記少なくとも一部の属性を、前記入力データに含めて前記人工知能に入力することは、前記少なくとも一部の経路の各々について抽出された前記少なくとも1つの属性を、前記入力データに含めて前記人工知能に入力することを含む、請求項1から8のいずれかに記載の経路認識方法。
  10. 入力を受け入れた前記経路集合データから、前記経路集合を構成する各経路に沿った前記点群として、経路毎に定められた数の点群を選択することを、さらに含み、
    当該経路毎に定められた数の点群を選択することは、経路毎に、前記経路毎に定められた数の点群を連結する一連の線分と、入力を受け入れた前記経路集合データが表現する前記経路集合のうちの対応する経路との間の差分を最小にする方向に、前記経路毎に定められた数の点群を探索することを含む、請求項1から9のいずれかに記載の経路認識方法。
  11. 前記経路毎に定められた数の点群を探索することは、疑似アニーリングによって行われる、請求項10に記載の経路認識方法。
  12. 前記人工知能は、ニューラルネットワークである、請求項1から11のいずれかに記載の経路認識方法。
  13. 前記経路集合データを含むデータの入力を受け入れることは、付加的データを受け入れることを含み、
    前記人工知能に入力される前記入力データは、受け入れられた前記付加的データを含む、請求項1から12のいずれかに記載の経路認識方法。
  14. 入力を受け入れる前記経路集合データが表現する前記経路集合を構成する各経路が、ジェスチャの形状輪郭に沿った経路とジェスチャの動きに沿った経路とのいずれかである、請求項1から13のいずれかに記載の経路認識方法。
  15. 前記データの入力を受け入れることから、前記確率の推定値を前記人工知能に計算させることまでを、繰り返し行い、
    前記データを前記入力データとして前記人工知能に入力することは、入力を受け入れた前記経路集合データが表現する前記経路集合を構成する前記1以上の経路の種別に応じて、前記人工知能として異なる人工知能を選択して、前記入力データを入力することを含む、請求項1から14のいずれかに記載の経路認識方法。
  16. 前記種別が、前記経路集合を構成する前記1以上の経路の数を含む、請求項15に記載の経路認識方法。
  17. コンピュータを備え、請求項1から16のいずれかに記載の経路認識方法を実行する、経路認識装置。
  18. コンピュータに読み取られることにより、前記コンピュータに請求項1から16のいずれかに記載の経路認識方法を実行させる、経路認識プログラム。
  19. コンピュータに読み取られることにより、前記コンピュータに請求項1から16のいずれかに記載の経路認識方法を実行させるプログラムが記録された、非一過性のコンピュータ読み取り可能な記録媒体。
JP2019059644A 2019-03-27 2019-03-27 経路認識方法、経路認識装置、経路認識プログラム、及び経路認識プログラム記録媒体 Active JP6623366B1 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2019059644A JP6623366B1 (ja) 2019-03-27 2019-03-27 経路認識方法、経路認識装置、経路認識プログラム、及び経路認識プログラム記録媒体
PCT/JP2020/000774 WO2020195017A1 (ja) 2019-03-27 2020-01-11 経路認識方法、経路認識装置、経路認識プログラム、及び経路認識プログラム記録媒体
US17/286,403 US11513607B2 (en) 2019-03-27 2020-11-01 Path recognition method using a combination of invariant positional data and attributes of variation, path recognition device, path recognition program, and path recognition program recording medium

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2019059644A JP6623366B1 (ja) 2019-03-27 2019-03-27 経路認識方法、経路認識装置、経路認識プログラム、及び経路認識プログラム記録媒体

Publications (2)

Publication Number Publication Date
JP6623366B1 true JP6623366B1 (ja) 2019-12-25
JP2020160815A JP2020160815A (ja) 2020-10-01

Family

ID=69100896

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2019059644A Active JP6623366B1 (ja) 2019-03-27 2019-03-27 経路認識方法、経路認識装置、経路認識プログラム、及び経路認識プログラム記録媒体

Country Status (3)

Country Link
US (1) US11513607B2 (ja)
JP (1) JP6623366B1 (ja)
WO (1) WO2020195017A1 (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11986570B2 (en) 2020-07-23 2024-05-21 The Boeing Company Portable wand systems and methods of using the same to indicate and verify surface treatment applications
EP4000647B8 (en) * 2020-11-17 2023-04-19 The Boeing Company Portable wand systems and methods of using the same to indicate and verify surface treatment applications

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH10255052A (ja) 1997-03-14 1998-09-25 Atr Chinou Eizo Tsushin Kenkyusho:Kk ジェスチャインタフェース装置
US7454717B2 (en) * 2004-10-20 2008-11-18 Microsoft Corporation Delimiters for selection-action pen gesture phrases
US20100027845A1 (en) * 2008-07-31 2010-02-04 Samsung Electronics Co., Ltd. System and method for motion detection based on object trajectory
US9134798B2 (en) * 2008-12-15 2015-09-15 Microsoft Technology Licensing, Llc Gestures, interactions, and common ground in a surface computing environment
US8600166B2 (en) * 2009-11-06 2013-12-03 Sony Corporation Real time hand tracking, pose classification and interface control
JP5604279B2 (ja) * 2010-12-08 2014-10-08 日本システムウエア株式会社 ジェスチャー認識装置、方法、プログラム、および該プログラムを格納したコンピュータ可読媒体
US8488888B2 (en) * 2010-12-28 2013-07-16 Microsoft Corporation Classification of posture states
JP5641970B2 (ja) * 2011-02-18 2014-12-17 シャープ株式会社 操作装置、再生装置及びテレビ受信装置
US9052896B2 (en) * 2012-07-20 2015-06-09 Facebook, Inc. Adjusting mobile device state based on user intentions and/or identity
US9829984B2 (en) * 2013-05-23 2017-11-28 Fastvdo Llc Motion-assisted visual language for human computer interfaces
JP6225612B2 (ja) * 2013-09-30 2017-11-08 富士通株式会社 プログラム、情報処理装置、および方法
US20160091965A1 (en) * 2014-09-30 2016-03-31 Microsoft Corporation Natural motion-based control via wearable and mobile devices
US9501716B2 (en) * 2014-12-11 2016-11-22 Intel Corporation Labeling component parts of objects and detecting component properties in imaging data
JP6209252B1 (ja) 2016-07-11 2017-10-04 株式会社コロプラ 仮想空間内のキャラクタを動作させる方法、当該方法をコンピュータに実行させるためのプログラム及びコンピュータ装置
US20170161555A1 (en) * 2015-12-04 2017-06-08 Pilot Ai Labs, Inc. System and method for improved virtual reality user interaction utilizing deep-learning

Also Published As

Publication number Publication date
JP2020160815A (ja) 2020-10-01
US20220004263A1 (en) 2022-01-06
US11513607B2 (en) 2022-11-29
WO2020195017A1 (ja) 2020-10-01

Similar Documents

Publication Publication Date Title
Raheja et al. Robust gesture recognition using Kinect: A comparison between DTW and HMM
Yao et al. Contour model-based hand-gesture recognition using the Kinect sensor
US9690982B2 (en) Identifying gestures or movements using a feature matrix that was compressed/collapsed using principal joint variable analysis and thresholds
Kılıboz et al. A hand gesture recognition technique for human–computer interaction
Qi et al. Computer vision-based hand gesture recognition for human-robot interaction: a review
Kaur et al. A review: Study of various techniques of Hand gesture recognition
D’Orazio et al. Recent trends in gesture recognition: how depth data has improved classical approaches
Ibraheem et al. Vision based gesture recognition using neural networks approaches: a review
Sun et al. Magichand: Interact with iot devices in augmented reality environment
US20130335318A1 (en) Method and apparatus for doing hand and face gesture recognition using 3d sensors and hardware non-linear classifiers
CN108475113B (zh) 用于检测用户的手部姿态的方法、系统和介质
CN108182728A (zh) 一种基于Leap Motion的在线体感三维建模方法及系统
LaViola Jr Context aware 3D gesture recognition for games and virtual reality
Jang et al. Metaphoric hand gestures for orientation-aware VR object manipulation with an egocentric viewpoint
CN111444488A (zh) 一种基于动态手势的身份认证方法
Nooruddin et al. HGR: Hand-gesture-recognition based text input method for AR/VR wearable devices
JP6353660B2 (ja) 手話単語分類情報生成装置およびそのプログラム
JP6623366B1 (ja) 経路認識方法、経路認識装置、経路認識プログラム、及び経路認識プログラム記録媒体
Devi et al. Dance gesture recognition: a survey
Nandwana et al. A survey paper on hand gesture recognition
Trigueiros et al. Generic system for human-computer gesture interaction
Dhore et al. Human Pose Estimation And Classification: A Review
Trigueiros et al. Generic system for human-computer gesture interaction: Applications on sign language recognition and robotic soccer refereeing
El Magrouni et al. Approach for the construction of gestural interfaces to control graphical interfaces based on artificial intelligence
Dhamanskar et al. Human computer interaction using hand gestures and voice

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20190327

A871 Explanation of circumstances concerning accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A871

Effective date: 20190327

A975 Report on accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A971005

Effective date: 20190603

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20190719

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20191017

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20191021

R150 Certificate of patent or registration of utility model

Ref document number: 6623366

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250