(57)【要約】【課題】  ユーザの動作の分散が大きい場合においても、ロバスト性の低下を抑制させることが可能となる画像処理装置を提供する。【解決手段】  画像処理装置は、ユーザに拘持され、ユーザの視野方向の画像データを取得する取得部と、画像データに含まれる認識対象物体を認識する認識部を備える。更に画像処理装置は、認識部が認識した認識対象物体に対応する特徴点の位置変動量を、取得時間が異なる複数の画像データから算出し、位置変動量から認識部が認識した認識対象物体の動きベクトルを算出する第１算出部を備える。更に画像処理装置は、動きベクトルに基づいてユーザの動作方向を判定する判定部と、判定部が判定したユーザの動作方向毎の動きベクトルの分散を算出する第２算出部を備える。更に画像処理装置は、ユーザの動作方向により選択される複数の選択情報を、分散に基づいて所定の位置に表示する表示部を備える。【選択図】図１
2014044476.tif 000002
【特許請求の範囲】
【請求項１】
ユーザに拘持され、前記ユーザの視野方向の画像データを取得する取得部と、
前記画像データに含まれる認識対象物体を認識する認識部と、
前記認識部が認識した前記認識対象物体に対応する特徴点の位置変動量を、取得時間が異なる複数の前記画像データから算出し、前記位置変動量から前記認識部が認識した前記認識対象物体の動きベクトルを算出する第１算出部と、
前記動きベクトルに基づいて前記ユーザの動作方向を判定する判定部と、
前記判定部が判定した前記ユーザの動作方向毎の前記動きベクトルの分散を算出する第２算出部と、
前記ユーザの動作方向により選択される複数の選択情報を、前記分散に基づいて所定の位置に表示する表示部と、
を備えることを特徴とする画像処理装置。
【請求項２】
前記判定部は、前記ユーザの動作と前記動きベクトルを予め対応付けた第１の動きベクトルの時間変化パターンと、
前記第１算出部が算出する動きベクトルを所定時間に渡って算出することで生成される第２の動きベクトルの時間変化パターンとの類似度を比較することにより、前記ユーザの動作方向を判定することを特徴とする請求項１記載の画像処理装置。
【請求項３】
前記第２の動きベクトルの時間変化パターンは、前記動きベクトルの往復動によって規定され、
前記第２算出部は、前記第２の動きベクトルの時間変化パターンの往路の始点と終点により規定される第１の動作時間と、
前記第２の動きベクトルの時間変化パターンの復路の始点と終点により規定される第２の動作時間との比率に基づいて前記分散を算出し、
前記表示部は、前記選択部によって選択された回数と前記分散に基づいて、前記複数の選択情報を表示させる位置を変更することを特徴とする請求項２記載の画像処理装置。
【請求項４】
前記表示部は、前記認識部が所定の時間以内に前記認識対象物体を認識しない場合に、前記複数の選択情報を表示させる位置を変更することを特徴とする請求項３に記載の画像処理装置。
【請求項５】
前記表示部は、前記認識部が認識した第１の認識対象物体と異なる第２の認識対象物体を認識した場合に、前記複数の選択情報を表示させる位置を変更することを特徴とする請求項３に記載の画像処理装置。
【請求項６】
ユーザに拘持される取得部から、前記ユーザの視野方向の画像データを取得し、
前記画像データに含まれる認識対象物体を認識し、
前記認識対象物体に対応する特徴点の位置変動量を、取得時間が異なる複数の前記画像データから算出し、
前記位置変動量から前記認識対象物体の動きベクトルを算出し、
前記動きベクトルに基づいて前記ユーザの動作方向を判定し、
判定した前記ユーザの動作方向毎の前記動きベクトルの分散を算出し、
前記ユーザの動作方向により選択される複数の選択情報を、前記分散に基づいて所定の位置に表示する
ことを含むことを特徴とする画像処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、例えば、ユーザの動作の判定に用いる画像処理装置、画像処理方法に関する。
【背景技術】
【０００２】
近年、情報通信技術の発展に伴い、現実環境（外界）を撮像した画像にコンピュータを用いて視覚情報を付加して表示する、拡張現実に関する技術の開発が行われている。視覚情報の表示には、主に、外界の画像を取得するカメラを装着したＨＭＤ（Ｈｅａｄ Ｍｏｕｎｔｅｄ Ｄｉｓｐｌａｙ）等のウェアラブル装置が利用されており、ユーザの視野方向に存在する物体に関する詳細な情報（以下、付帯情報と称する）を、外界の画像に重畳して表示することが行われている。付帯情報には、物体の外観から得られる情報の他に、物体の外観からは現れない情報、例えば物体の製造された環境、物体に対する他のユーザの評判などの情報が含まれる。
【０００３】
ここで、複数の付帯情報の中からユーザが任意の一つの付帯情報を選択的に取得する場合においては、ユーザからの入力手段への操作が必要となる。入力手段の一例としては、マウスやキーボード等の従来型の入力手段を使用することが可能であるが、簡便かつ効率的な入力方法としてユーザの動作（ジェスチャ）を入力手段とする方法が注目されている。ユーザの動作を入力手段とする例としては、加速度センサを用いて手指の動作を判定するものや、ウェアラブル装置に搭載された視線検出装置により視線の動きを判定するものが存在する。
【０００４】
また、ハンズフリーやアイズフリーによるユーザの動作の認識が可能となる、頸部（頭部を含む）の動作を用いる方法も注目されている。頸部の動作による認識方法においては、頷きや拒否といった、実際の人間の日常動作における意思を反映させたユーザの動作を用いることが可能である。
【０００５】
頸部の動作を用いる方法においては、外部に設置されたセンサから頸部の位置を発見し、頸部の動作を判定する方法が開示されている。また、ユーザの頸部に加速度センサを取り付けて、加速度センサから得られる値を解析することによって頸部の動作を判定する方法も開示されている。 
【０００６】
上述のユーザの動作を検知する技術においては、外界の画像を取得するカメラの他に、外部センサや加速度センサ等の更にもう一つのセンサが必要となり、利便性の低下やコストが高くなる為、外界の画像を取得するカメラの画像のみで、ユーザの動作を認識する方法も開示されている。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開平１０−２１４３４６号公報
【特許文献２】特開２０１１−１４０８２号公報
【特許文献３】特開２００６−２４３７８４号公報
【非特許文献】
【０００８】
【非特許文献１】呉海元ら、「色彩動画像からの頭部ジェスチャ認識システム」、情報処理学会論文誌、Ｖｏｌ．４０、Ｎｏ．２、ｐｐ．５７７−５８４、１９９９
【非特許文献２】Ｍｏｔｅｋｉ, Ａ. ｅｔ ａｌ, "Ｐｏｓｔｅｒ： Ｈｅａｄ Ｇｅｓｔｕｒｅ ３Ｄ Ｉｎｔｅｒｆａｃｅ Ｕｓｉｎｇ ａ Ｈｅａｄ Ｍｏｕｎｔｅｄ Ｃａｍｅｒａ” Ｉｎ ｐｒｏｃｅｅｄｉｎｇｓ ｏｆ ｔｈｅ ７ｔｈ ＩＥＥＥ Ｓｙｍｐｏｓｉｕｍ ｏｎ ３Ｄ Ｕｓｅｒ Ｉｎｔｅｒｆａｃｅｓ （３ＤＵＩ）, ｐｐ.１５１−１５２, Ｍａｒｃｈ ２０１２.
【発明の概要】
【発明が解決しようとする課題】
【０００９】
上述のユーザの外界の画像を取得するカメラの画像のみで、ユーザの動作を認識する方法は、取得した画像から得られる動きベクトルの時間変化パターン（実測パターン）と、予め規定されるユーザの動きに対する動きベクトルの時間変化パターン（モデルパターン）を比較してユーザの動作を判定している。
【００１０】
本発明者らの検証によって、実測パターンとモデルパターンの比較において、実測パターンとモデルパターンの差異が拡大し誤判定が発生し、ロバスト性が低下する場合が存在することが新たに判明した。
【００１１】
その一つは実測パターンを生成する時のユーザの動作の分散（ばらつき）が大きい場合である。分散が大きくなる場合の例示の一つとして、疲労等により身体状態が正常でない場合が挙げられる。他には、カメラがユーザの頭部に装着されて画像を取得する時に、認識対象物体がユーザの頭上や足下に存在し、頭部の向きが身体の向きと異なる状態の場合である。この場合は、ジェスチャを意識した動作であっても、ジャスチャと判定されない誤判定（判定漏れ）が生じることになりユーザの利便性が低下する。この様な、誤判定を抑止する方法としては、実測パターンとモデルパターンの比較に用いる類似度判定の閾値を広げることも対応策として考えられるが、意識しない動作まで首振りジェスチャと誤判定（過剰判定）する場合が増加する為、必ずしも適切な対応策とはならない。その他の対応策として、モデルパターンの自動更新や追加も考えられるが、分散が大きい場合は、適切なモデルパターンの生成自体が困難である。
【００１２】
本発明は、ユーザの動作の分散が大きい場合においても、ロバスト性の低下を抑制させることが可能となる画像処理装置を提供することを目的とする。
【課題を解決するための手段】
【００１３】
本発明が開示する画像処理装置は、ユーザに拘持され、ユーザの視野方向の画像データを取得する取得部と、画像データに含まれる認識対象物体を認識する認識部を備える。更に当該画像処理装置は、認識部が認識した認識対象物体に対応する特徴点の位置変動量を、取得時間が異なる複数の画像データから算出し、位置変動量から認識部が認識した認識対象物体の動きベクトルを算出する第１算出部を備える。更に当該画像処理装置は、動きベクトルに基づいてユーザの動作方向を判定する判定部と、判定部が判定したユーザの動作方向毎の動きベクトルの分散を算出する第２算出部を備える。更に当該画像処理装置は、ユーザの動作方向により選択される複数の選択情報を、分散に基づいて所定の位置に表示する表示部を備える。
【００１４】
なお、本発明の目的及び利点は、請求項において特に指摘されたエレメント及び組み合わせにより実現され、かつ達成されるものである。また、上記の一般的な記述及び下記の詳細な記述の何れも、例示的かつ説明的なものであり、請求項のように、本発明を制限するものではないことを理解されたい。
【発明の効果】
【００１５】
本明細書に開示される画像処理装置では、ユーザの動作の分散が大きい場合においても、ロバスト性の低下を抑制させることが可能となる。
【図面の簡単な説明】
【００１６】
【図１】一つの実施形態による画像処理装置の機能ブロック図である。
【図２】認識部の物体認識処理のフローチャートである。
【図３】認識部が対応付けた特徴点のデータ構造の一例を示す図である。
【図４】（ａ）は、取得部が取得した画像データと認識部が対応付けた特徴点群と、認識部が対応付けた記憶部に記憶されている認識対象物体の特徴点群の概念図である。（ｂ）は、ロバスト性を向上させた特徴点のデータ構造の一例を示す図である。
【図５】第１算出部の認識対象物体の特徴点の位置変動量と動きベクトル算出処理のフローチャートである。
【図６】（ａ）は、判定部の認識対象物体の動きベクトルに基づく、ユーザの動作判定のフローチャートである。（ｂ）は、認識対象物体の動きベクトルとユーザの動作を対応付けたユーザ動作対応テーブルである。
【図７】認識対象物体とユーザ動作と選択情報を対応付けたテーブルである。
【図８】認識部の注視物体の選定処理のフローチャートである。
【図９】（ａ）は、認識部が認識した認識対象物体の特徴点と、ホモグラフィ行列による射影変換後の認識対象物体を内包する四端点と、記憶部に予め記憶されている認識対象物体の四端点の対応関係を示す図である。（ｂ）は、ホモグラフィ行列による射影変換後の認識対象物体を内包する四端点の位置と、記憶部に予め記憶されている認識対象物体四端点の位置のデータ構造の一例を示す図である。
【図１０】判定部による動きベクトルの時間変化パターン生成処理のフローチャートを示した図である。
【図１１】（ａ）は、判定部が生成した動きベクトルの時間変化パターンの一例である。（ｂ）は、判定部が予め有している動きベクトルの時間変化パターンの一例を示す図である。
【図１２】（ａ）は、第２の動きベクトルの時間変化パターンのフレーム番号と動きベクトルのデータ構造の一例を示す図である。（ｂ）は、第１の動きベクトルの時間変化パターンのフレーム番号と動きベクトルのデータ構造の一例である。
【図１３】ユーザが携帯端末を注視しながら、頸部を横に振る動作を行った場合のユーザの一連の動作と、取得部が取得する画像データを示す図である。
【図１４】（ａ）は、図１３のユーザ動作の往路と復路を加味して判定部が生成した第２の動きベクトルの時間変化パターンの例である。（ｂ）は、ユーザ動作の往路と復路を加味した第１の動きベクトルの時間変化パターンである。
【図１５】（ａ）は、認識対象物体とユーザ動作と選択情報、選択情報が選択された選択回数・割合、分散、判定成功・失敗回数、総合判定成功率を対応付けたテーブルである。（ｂ）は、（ａ）に示すテーブルを選択回数と分散に基づいて、選択情報の並び変えを実施したテーブルを示す。
【図１６】（ａ）は、表示部に表示する選択情報の初期位置を示す。（ｂ）は、選択回数と分散に基づいて表示位置を変更した選択情報の表示位置を示す。
【図１７】選択情報の表示位置変更処理のフローチャートである。
【図１８】一つの実施形態による画像処理装置の第１のハードウェア構成図である。
【図１９】一つの実施形態による画像処理装置の第２のハードウェア構成図である。
【発明を実施するための形態】
【００１７】
以下に、一つの実施形態による画像処理装置、画像処理装置及び画像処理プログラムの実施例を図面に基づいて詳細に説明する。なお、この実施例は開示の技術を限定するものではない。
【００１８】
図１は、一つの実施形態による画像処理処置装置１の機能ブロックを示す図である。画像処理装置１は、記憶部２、取得部３、認識部４、第１算出部５、判定部６、第２算出部７、表示部８ならびに制御部９を有する。
【００１９】
記憶部２は、例えば、フラッシュメモリ（ｆｌａｓｈ  ｍｅｍｏｒｙ）などの半導体メモリ素子、または、ハードディスク、光ディスクなどの記憶装置である。なお、記憶部２は、上記の種類の記憶装置に限定されるものではなく、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）であってもよい。記憶部２には、外界に存在し、認識処理の対象となる複数の認識対象物体（看板、商品、樹木等）の特徴点が、予め認識対象物体を撮像した画像から抽出されて記憶されている。更に、認識対象物体に関する付帯情報と、該付帯情報に対応付けられる選択情報、該選択情報に対応するユーザの動作方向も予め記憶されている。なお、特徴点には後述する特徴点位置、方向、特徴量ベクトル等の情報が含まれる。
【００２０】
なお、記憶部２は、説明の便宜上、画像処理装置１の内部に配置しているが、ネットワークを介してアクセス可能となる様に、画像処理装置１の外部に配置することも可能である。また、記憶部２には、後述する制御部９で実行される各種プログラム、例えばＯＳ（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）などの基本ソフトや画像処理の動作が規定されたプログラムが記憶される。さらに、記憶部２は、先に述べたプログラムの実行に必要なデータなども記憶される。
【００２１】
取得部３は、例えば、ＣＣＤ（Ｃｈａｒｇｅ  Ｃｏｕｐｌｅｄ  Ｄｅｖｉｃｅ）やＣＭＯＳ（Ｃｏｍｐｌｅｍｅｎｔａｒｙ  Ｍｅｔａｌ  Ｏｘｉｄｅ  Ｓｅｍｉｃｏｎｄｕｃｔｏｒ）カメラなどの撮像デバイスである。取得部３は、例えば、ユーザの頸部に拘持または、装着されてユーザの視野方向の画像データを取得する。
【００２２】
認識部４は、例えば、ワイヤードロジックによるハードウェア回路である。また、認識部４は、制御部９で実行されるコンピュータプログラムにより実現される機能モジュールであっても良い。認識部４は、取得部３が取得する複数の画像データから特徴点を抽出して、抽出した特徴点と記憶部２に記憶されている認識対象物体の特徴点を対応付けることにより、取得部３が取得する複数の画像データに含まれている少なくとも一つの認識対象物体を認識する。なお、認識部４が実行する認識対象物体の認識処理の詳細フローについては後述する。
【００２３】
第１算出部５は、例えば、ワイヤードロジックによるハードウェア回路である。また、第１算出部５は、制御部９で実行されるコンピュータプログラムにより実現される機能モジュールであっても良い。第１算出部５は、認識部４が認識した認識対象物体における特徴点の位置変動量を、取得部３が取得する取得時間が異なる複数の画像データから算出する。そして、第１算出部５は、該位置変化量から、認識部４が認識した認識対象物体の動きベクトルを算出する。
【００２４】
ここで、特徴点の位置変動量の定義について説明する。先ず、複数の画像データのそれぞれ（個々の画像データ）を、フレームとして定義する。特徴点の位置変動量は、ある時刻フレームｔに存在する少なくとも一つの任意の特徴点の位置を基点とし、前時刻フレームｔ−１または、後時刻フレームｔ＋１における当該任意の特徴点の位置を終点とした場合における基点から終点までの変動量を位置変動量と定義する。なお、第１算出部５が実行する特徴点の位置変動量と認識対象物体の動きベクトル算出処理の詳細フローについては後述する。
【００２５】
判定部６は、例えば、ワイヤードロジックによるハードウェア回路である。判定部６は、制御部９で実行されるコンピュータプログラムにより実現される機能モジュールであっても良い。判定部６は、第１算出部５が算出した認識対象物体の動きベクトルに基づいてユーザの動作方向を判定する。具体的には、判定部６は、図示しない判定部のキャッシュまたはメモリ等に、認識対象物体の動きベクトルとユーザの動作方向を対応付けたユーザ動作対応テーブルを保持しており、該テーブルに基づいてユーザの動作方向を判定する。例えば、認識対象物体の動きベクトルが右方向に所定の画像データ数の区間で移動している場合は、ユーザは左方向に頸部を振ったと判定する。なお、判定部６の認識対象物体の動きベクトルに基づく、ユーザの動作判定の詳細フローについては後述する。
【００２６】
なお、一般的に、人間の頷き等の頸部の動作は、個人差はあるものの概ね１秒程度であることから、判定部６によるユーザの動作の判定処理は例えば１秒に一回行えば良い。また、ユーザの動作の時間を予め観測して、観測された時間を判定処理に用いることも可能である。
【００２７】
表示部８は、例えば、ディスプレイなどの表示デバイスである。表示部８は、判定部６が判定したユーザの動作方向に対応した複数の選択情報と、当該複数の選択情報に対応付けられた認識対象物体の付帯情報を記憶部２から受信し、認識部４が認識した認識対象物体に重畳して表示する。
【００２８】
第２算出部７は、例えば、ワイヤードロジックによるハードウェア回路である。また、第２算出部７は、制御部９で実行されるコンピュータプログラムにより実現される機能モジュールであっても良い。第２算出部７は、判定部６が判定したユーザの動作方向の分散を、第１算出部が算出する認識対象物体の動きベクトルに基づいて算出する。なお、分散の算出方法の詳細は後述する。また、第１算出部５と第２算出部７は、図１に示す通り、各々独立した機能として構成させても良いし、機能を統合させて一つの算出部として構成させても良い。
【００２９】
制御部９は、例えば、ＡＳＩＣ（Ａｐｐｌｉｃａｔｉｏｎ  Ｓｐｅｃｉｆｉｃ Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ）やＦＰＧＡ（Ｆｉｅｌｄ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｇａｔｅ  Ａｒｒａｙ）などの集積回路、または、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）やＭＰＵ（Ｍｉｃｒｏ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）などの電子回路である。制御部９は、各種の処理手順を規定したプログラムや制御データを格納するための内部メモリを有し、これらによって種々の処理を実行する。制御部９は、図１に示すように、認識部４と、第１算出部５と、判定部６と、第２算出部７とを有する。
【００３０】
図２は、認識部４の物体認識処理のフローチャートである。先ず、認識部４は、取得部３から取得時間が異なる複数の画像データを受信し、複数の画像データのそれぞれ（フレーム毎）から特徴点を抽出する（ステップＳ１０１）。なお、抽出される特徴点は通常複数である為、複数の特徴点の集合を特徴点群と定義する。
【００３１】
ステップＳ１０１において抽出する特徴点は、記述子（ｄｅｓｃｒｉｐｔｏｒ）と呼ばれる特徴点ごとの特徴量ベクトルが計算される特徴点であれば良い。例えば、ＳＩＦＴ（Ｓｃａｌｅ  Ｉｎｖａｒｉａｎｔ  Ｆｅａｔｕｒｅ  Ｔｒａｎｓｆｏｒｍ）特徴点や、ＳＵＲＦ（Ｓｐｅｅｄｅｄ  Ｕｐ  Ｒｏｂｕｓｔ  Ｆｅａｔｕｒｅｓ）特徴点を使用することが可能である。なお、ＳＩＦＴ特徴点の抽出方法については、例えば、米国特許第６、７１１、２９３号に開示されている。ＳＵＲＦの抽出方法については、例えば、Ｈ．Ｂａｙ、ｅｔ．ａｌ．「ＳＵＲＦ：Ｓｐｅｅｄｅｄ  Ｕｐ  Ｒｏｂｕｓｔ  Ｆｅａｔｕｒｅｓ」、Ｃｏｍｐｕｔｅｒ  Ｖｉｓｉｏｎ  ａｎｄ  Ｉｍａｇｅ  Ｕｎｄｅｒｓｔａｎｄｉｎｇ、 Ｖｏｌ．１１０、 Ｎｏ．３、 ｐｐ．３４６−３５９、２００８に開示されている。
【００３２】
次に認識部４は、ステップＳ１０１で認識部４が抽出した特徴点群と、記憶部２に記憶されている全て認識対象物体の特徴点群との照合が完了しているか否かを判断する（ステップＳ１０２）。なお、記憶部２に記憶されている認識対象物体の特徴点群は、予め上述のＳＩＦＴ特徴点やＳＵＲＦ特徴点が記憶されているものとする。認識部４は、ステップＳ１０２において、照合が完了していない場合は、記憶部２に予め記憶されている任意の一つの認識対象物体を選択する（ステップＳ１０３）。次に、認識部４は、ステップＳ１０３おいて選択した認識対象物体の特徴点群を記憶部２から読み出す（ステップＳ１０４）。認識部４は、ステップＳ１０４で抽出した特徴点群から、任意の一つの特徴点を選択する（ステップＳ１０５）。
【００３３】
認識部４は、ステップＳ１０５で選択した一つの特徴点と、ステップＳ１０４で読み出して選択した認識対象物体の特徴点の対応付けを探索する。探索方法としては、一般的な対応点探索によるマッチング処理を用いれば良い。具体的には、認識部４は、ステップＳ１０５で選択した一つの特徴点と、ステップＳ１０４で読み出した選択した認識対象物体の特徴点群それぞれの距離ｄを計算する（ステップＳ１０６）。
【００３４】
次に、認識部４は、特徴点の対応付けの妥当性の判定を行う為に閾値判定を行う。具体的には、ステップＳ１０６において、算出した距離ｄの最小値ｄ１と、２番目に最小となる値ｄ２を算出する。そして、認識部４は、閾値判定となるｄ１とｄ２の距離が所定の距離以上（例えばｄ１がｄ２に０．６を乗算した値よりも小さい値）かつｄ１が所定の値以下（例えば０．３以下）の条件を満たしているか否かを判定する（ステップＳ１０７）。認識部４は、ステップＳ１０７で閾値判定の条件を満たしている場合は、特徴点の対応付けを行う（ステップＳ１０８）。条件を満たしていない場合は、特徴点の対応付けを行わず、ステップＳ１０９に処理を進める。
【００３５】
認識部４は、ステップＳ１０４で読み出した特徴点群と、ステップＳ１０１で抽出した特徴点群を全て照合したかを判定する（ステップＳ１０９）。照合処理が完了した場合（ステップＳ１０９−ＹＥＳ）、認識部４は、ステップＳ１０２において、全ての照合が終了した場合は、ステップＳ１１０に処理を進める。照合処理が完了していない場合（ステップＳ１０９−ＮＯ）、認識部４は、ステップＳ１０５に処理を進める。そして、認識部４は、ステップＳ１０８で対応付けた特徴点の個数に基づいて取得部３が取得した画像に含まれる少なくとも一つの認識対象物体を認識する（ステップＳ１１０）。
【００３６】
この様にして、認識部４は取得部３が取得した画像データから、該画像データに含まれる少なくとも一つの認識対象物体を認識する。
【００３７】
更に、認識部４は、取得部が取得する複数の画像データのすべてにおいて上述の認識処理を行わずに、所定時間毎に認識処理を行うキーフレームを定めることで処理コストを削減させることが可能となる。
【００３８】
図３は、認識部４が対応付けた特徴点のデータ構造の一例を示す図である。図３において、特徴点位置は画像のある基準位置（例えば画像の左上）を原点とした場合における基準位置からの距離（ｘ、ｙ）で定義される。方向は、基準位置に対する特徴点の方向で定義される。特徴量ベクトルは、色や形状などの複数の特徴量（例えば１２８次元）の集合で定義される。認識部４は、図２のステップＳ１０８において、図３に示す様に、取得部３が取得した画像から抽出した特徴点群と、記憶部２から選択した一つの認識対象物体の特徴点群とを対応ＩＤを用いて対応付けを行う。 
【００３９】
図４（ａ）は、取得部３が取得した画像データと認識部４が対応付けた特徴点群（左）と、認識部４が対応付けた記憶部２に記憶されている認識対象物体の特徴点群（右）の概念図である。図４（ａ）において、対応付けた特徴点を●（黒丸）または○（白丸）で示している。●は、記憶部２に記憶されている正規の特徴点と正しく一致できた特徴点、○は誤った対応付け（誤一致）した特徴点を表している。この様に、物体認識においては、稀に背景の特徴点と認識対象物体の特徴点を対応付ける誤一致が発生することが想定され得る。
【００４０】
そこで、認識部４は、ロバスト性を更に向上させる為、すべての特徴点集合（Ｕ０）のうち、特徴点位置（ｘ、ｙ）の両方の座標値が、集合Ｕ０の平均値±Ｎσ内に収まっている特徴点集合Ｕ１を認識処理に用いても良い。具体的には、特徴点集合（Ｕ０）から、座標平均（ｘａｖｅ、 ｙａｖｅ）および偏差σｘ、σｙを算出する。その後、物体領域として採用する特徴点範囲をｘａｖｅ±Ｎσｘ、ｙａｖｅ±Ｎσｙに限定することで、極端に平均座標から遠い（誤一致と推定される）特徴点を除外することが可能となる。ここで、Ｎは例えば２．５とする。図４（ｂ）は、ロバスト性を向上させた特徴点のデータ構造の一例を示す図である。ＩＤ５のデータは、図４（ａ）の○（白丸）の特徴点に対応する。ＩＤ５のデータが削除されることにより、認識部４の認識処理のロバスト性が更に向上する。
【００４１】
図５は、第１算出部５の認識対象物体の特徴点の位置変動量と、動きベクトル算出処理のフローチャートである。先ず、第１算出部５は、認識部４が認識した認識対象物体の特徴点群の中から、認識対象物体の特徴点の位置変動量を算出する特徴点を選出する（ステップＳ２０１）。認識部４が認識した認識対象物体の特徴点のすべてを用いることも可能であるし、処理コストを考慮した任意の数の特徴点を選定することも可能である。
【００４２】
次に第１算出部５は、ステップＳ２０１で選定した各特徴点の位置変動量（ｘ’、ｙ’）を、例えばオプティカルフローを用いて算出する（ステップＳ２０２）。オプティカルフローとは、異なる時間に撮像された連続した画像データのフレーム間で同じ特徴点の対応付けを行い、その移動量をベクトルデータとして示したものを指す。オプティカルフローには、ブロックマッチング法や勾配法等の公知の技術を用いることが可能である。なお、第１算出部５は、ステップＳ２０２における、認識対象物体の特徴点の位置変動量の算出のロバスト性を向上させる為に、必要に応じて移動量の上限を設定して、移動量の妥当性を判断しても良い。
【００４３】
次に第１算出部５は、ステップＳ２０２で算出した各特徴点の位置変動量を平均化して、その値から認識対象物体の動きベクトル（ｘ’’、ｙ’’）を算出する（ステップＳ２０３）。動きベクトルのデータ構造は、例えば、現時刻のフレームｔの動きベクトルは（９．３、−３．９）、過去時刻のフレームｔ−１の動きベクトルは（９．９、−２．８）、過去時刻のフレームｔ−２の動きベクトル（８．１、−１．３）の様なデータ構造となる。この場合、３フレーム連続して動きベクトルは、ｘ方向は斜め下方向、ｙ方向は斜め上方向となっている。第１算出部５は、ｘ方向とｙ方向の動きベクトルを合成したものを認識対象物体の動きベクトルとしても良いし、ある方向のみに着目した動きベクトルを認識対象物体の動きベクトルとしても良い。この様にして、第１算出部５は、認識対象物体における特徴点の位置変動量を複数の画像データから算出し、該位置変化量から動きベクトルを算出する。
【００４４】
図６（ａ）は、判定部６の認識対象物体の動きベクトルに基づく、ユーザの動作方向判定のフローチャートである。判定部６は、第１算出部５が算出した認識対象物体の動きベクトル（ｘ’’ 、ｙ’’）を、図示しない判定部のキャッシュまたはメモリに格納する（ステップＳ３０１）。次に、判定部６は、所定のフレーム数の動きベクトルを格納したか否かを判定する（ステップＳ３０２）。所定のフレーム数は、例えば３０フレームである。判定部６は、ステップＳ３０２において、所定のフレーム数の動きベクトルを格納していると判定した場合、格納した動きベクトルを平均化する（ステップＳ３０３）。判定部６は、後述するユーザ動作対応テーブルを参照し、ユーザの動作方向を判定し（ステップＳ３０４）、後述する第２算出部７が分散を算出した後に、格納した動きベクトルを削除する（ステップＳ３０５）。
【００４５】
図６（ｂ）は、認識対象物体の動きベクトルとユーザの動作を対応付けたユーザ動作対応テーブルである。例えば、ステップＳ３０４において、平均化して算出した動きベクトル（ｘ’’ 、ｙ’’）が（９．１、−２．６）だった場合について説明する。判定部６は、基準ベクトル（１０、０）に最もベクトル量が近く、更に予め許容量として定めた公差範囲内（±３、±３）以内である為、ユーザは頸部を左に振ったと判定する。
【００４６】
図７は、認識対象物体とユーザ動作と選択情報を対応付けたテーブルである。ユーザの動作方向に対応した複数の選択情報と、当該複数の選択情報に対応付けられた認識対象物体の付帯情報は、例えば、記憶部２に記憶されているが、ネットワークを介して定期的に選択情報や付帯情報を更新しても良い。なお、付帯情報は、図示しないが、例えば、キャンペーン情報の付帯情報の場合は、実施場所、時間等の情報等を含む。また、カロリー表示の場合は、製品のカロリー量の情報等を含む。
【００４７】
なお、選択情報は、認識部４が認識対象物体を認識した時点で、表示部８に表示される。表示される形態は、対応付けられたユーザの動作方向に応じて表示される。例えば、図７において、認識対象物体が缶コーヒーの場合は、キャンペーン情報は、表示部８の中心から左側に表示される。また、カロリー表示は、表示部８の中心から右側に表示される。また、価格は、表示部８の中心から上側に表示され、キャンセルは表示部８の中心から下側に表示される。
【００４８】
付帯情報は、判定部６がユーザの動作方向を判定し、複数の選択情報から一つの選択情報が選択されたときに、当該選択された選択情報に対応付けられた認識対象物体の付帯情報を記憶部２から受信し、例えば、認識部４が認識した認識対象物体に重畳して表示される。
【００４９】
なお、図１の認識部４は、ユーザビリティ、処理コストならびにロバスト性向上の観点からユーザが注視していると想定される物体を一つに特定した上で、該物体の動きベクトルを算出しても良い。これにより、ユーザは、ユーザが注視する物体のみの選択情報ならびに付帯情報を、表示部８を介して確認することが可能となる為、ユーザビリティが向上する。また、画像処理の対象となる物体が一つに限定される為、認識部４の処理コストを大幅に削減することが可能となる。また、背景の物体の特徴点の位置変動量を動きベクトルとして算出することも無くなる為、ロバスト性が向上する。
【００５０】
図８は、認識部４の注視物体の選定処理のフローチャートである。先ず、認識部４は、認識した複数の認識対象物体の中から任意の一つの認識対象物体を選定する（ステップＳ４０１）。次に、認識部４は、取得部３が過去に取得した過去の画像データ（過去フレーム）に選択した認識対象物体が含まれているかを判定する（ステップＳ４０２）。判定方法としては、例えば、上述のＳＩＦＴ特徴点やＳＵＲＦ特徴点を用いて、現フレームと過去フレームを用いて認識対象物体の特徴点の対応付けを行い、一定フレーム以上にわたり選択した認識対象物体の特徴点が存在しているか否かを判定すれば良い。ステップＳ４０２の処理により、例えば、ユーザが電車に乗っているとき、電車中の広告の商品を実際に注視している場合に、取得部３が取得した画像データに該商品と窓越しに背景となる樹木が含まれていた場合において、背景の樹木は注視物体候補から除外させること（ステップＳ４０６）が可能となる。
【００５１】
認識部４は、過去の画像データに選択した認識対象物体が含まれていると判定した場合、ステップＳ４０５に処理を進めることも可能であるが、本実施例においては、ロバスト性を更に堅牢にする為に、ステップＳ４０３とステップＳ４０４の判定処理を行う。認識部４は、ステップＳ４０１で選択した認識対象物体の位置の変動量が一定範囲内か否かを判定する（ステップＳ４０３）。また、ステップＳ４０３においては、処理コストの観点から画像データの任意の基準位置に対する認識対象物体の中心位置の変動量が一定範囲内か否かを判定しても良い。認識対象物体の中心位置は、例えば、予め記憶部２に記憶しておくことも可能であるし、画像データから得られた認識対象物体の特徴点群を矩形の外枠で囲い、その中心位置を認識対象物体の中心位置とすることも可能である。認識対象物体の位置の変動量が一定範囲内であるということは、認識対象物体が静止しており、ユーザがその認識対象物体を注視していることと等価である。
【００５２】
次に、認識部４は、ステップＳ４０３において、認識対象物体の位置の変動量が一定範囲外であった場合、選択した認識対象物体の面積の変動量が一定範囲内か否かを判定する（ステップＳ４０４）。認識対象物体の面積は、例えば、予め記憶部２に記憶しておくことも可能であるし、画像データから得られた認識対象物体の特徴点群を矩形の外枠で囲い、その概枠で囲われた面積を認識対象物体の面積とすることも可能である。認識対象物体の位置の変動量が一定範囲外であり、かつ、認識対象物体面積変動量が一定範囲内であるということは、ユーザまたは認識対象物体のいずれか、または双方が相対的に移動しているが、ユーザがその認識対象物体を注視していることと等価である。
【００５３】
認識部４は、ステップＳ４０２〜ステップＳ４０４の条件を満たす認識対象物体を注視物体候補として選定する（ステップＳ４０５）。次に、認識部４は、認識した複数の認識対象物体の全ての照合を完了したか否かを判定する（ステップＳ４０７）。認識部４は、ステップＳ４０８において、注視物体候補として選定した物体が一つだった場合は、その物体を注視物体として選定する。注視物体候補として選定した物体が複数だった場合は、例えば、画像データの中心位置に最も近い物体をその物体を注視物体として選定する。上述に開示する方法によって、ユーザビリティ、処理コストならびにロバスト性を更に向上させることが可能となる。
【００５４】
図１の第１算出部５は、ホモグラフィを用いた認識対象物体を内包する四端点を用いて位置変動量を算出することが可能である。なお、ホモグラフィとは３次元空間中のある平面からある平面への射影変換を表す行列である。本実施例に開示されるホモグラフィを用いる方法により、取得部３が取得する画像データに含まれる物体の大きさの影響や、斜め方向から物体を撮像した場合に生じる射影歪みの影響を低減させることが可能となる為、ロバスト性が向上する。 
【００５５】
図９（ａ）には、認識部４が認識した認識対象物体の特徴点（○）と、ホモグラフィ行列による射影変換後の認識対象物体を内包する四端点（△）（左）と、記憶部２に予め記憶されている認識対象物体の四端点（△）（右）の対応関係を示す。
【００５６】
先ず、図３または、図４（ｂ）に開示されている、取得部３が取得した画像から抽出した特徴点群と、記憶部２から選択した一つの認識対象物体の特徴点群を用いて、選択した一つの認識対象物体の特徴点群に対する取得した画像から抽出した特徴点群のホモグラフィを算出する。ホモグラフィの推定には、対応付けされた特徴点が最低４点必要であるが、特徴点が４点以上得られた場合には、ＲＡＮＳＡＣ（ＲＡＮｄｏｍ  ＳＡｍｐｌｅ  Ｃｏｎｓｅｎｓｕｓ）やＬＭｅｄＳ（Ｌｅａｓｔ  Ｍｅｄｉａｎ  ｏｆ  Ｓｑｕａｒｅｓ）による外れ値除去アルゴリズムを用いて最適な値を推定しても良い。次に、予め記憶部２には、その認識対象物体を内包する矩形の四端点の座標を与えておく。そして、その四端点に対し、上記で算出したホモグラフィを用いて射影変換を施す。すると、取得部３が取得した画像データに含まれる認識対象物体において、認識対象物体を内包する四端点の変換後の座標が推定できる。
【００５７】
図９（ｂ）には、ホモグラフィ行列による射影変換後の認識対象物体を内包する四端点の位置と、記憶部２に予め記憶されている認識対象物体の四端点の位置のデータ形式の一例を示す。この四端点を用いて位置変動量を算出することで、取得部３が取得する画像データに含まれる物体の大きさの影響や、斜め方法から物体を撮像した場合に生じる射影歪みの影響を低減させることが可能となる為、ロバスト性が向上する。
【００５８】
図１の判定部６は、動きベクトルの時間変化パターンを用いてユーザの動作の判定することも可能である。動きベクトルの時間変化パターンを用いることで、ユーザの動作の判定に対するロバスト性を更に堅牢にすることが可能となる。図１０は、第１算出部５による動きベクトルの時間変化パターン生成処理のフローチャートを示した図である。なお、判定部６は、図示しないメモリまたはキャッシュを有しており、第１算出部５が生成した動きベクトルの時間変化パターン（第２の動きベクトルの時間変化パターン）や後述するモデル時間変化パターン（第１の動きベクトルの時間変化パターン）を格納するものとする。なお、該メモリまたはキャッシュの機能を記憶部２に実行させても良い。
【００５９】
先ず、第１算出部５は、動きベクトルの時間変化パターンに、すでに動きベクトルが格納されているかを判定する（ステップＳ５０１）。ここで、格納されている動きベクトルは、ｘ方向とｙ方向の動きベクトルを合成したスカラー量をピクセル単位として格納しても良いし、ある方向のみに着目した動きベクトルのスカラー量をピクセル単位として格納しても良い。第１算出部５は、動きベクトルが一つでも動きベクトルの時間変化パターンに格納されている場合、動きベクトルの時間変化パターンに格納されている動きベクトルの数が、規定する画像データの数（フレーム数）の最大数を満たしているかを判定する（ステップＳ５０２）。フレーム数の最大数は例えば５０とする。
【００６０】
第１算出部５は、ステップＳ５０２で最大数を満たしていると判定した場合は、動きベクトルの時間変化パターンのフレーム数の最大数に格納されている動きベクトルを削除する（ステップＳ５０３）。次に、第１算出部５は、動きベクトルの時間変化パターンのフレーム数を一つインクリメントする。このとき、各フレームに格納している動きベクトル量もシフトさせる（ステップＳ５０４）。換言すると、動きベクトルの時間変化パターンはＦＩＦＯ型のデータ構造体であり、要素数は、フレーム数の最大数となる５０である。
【００６１】
第１算出部５は、取得部３が画像データを取得し続ける間、ステップＳ５０１〜ステップＳ５０５の処理を繰り返し実行することで、動きベクトルの時間変化パターンを作成することが可能なる。ここで、本実施例においては、第１算出部５は、ロバスト性を更に向上させる為に、ステップＳ５０４以降に以下の処理を実行する。
【００６２】
第１算出部は、動きベクトルが正しく算出出来たか否かを判定する（ステップＳ５０５）。詳細は後述するが、取得部が取得する画像データは、ボケなどのノイズを含む場合があり、動きベクトルを、全てのフレームにおいて算出出来ない場合も想定される。第１算出部５は、ステップＳ５０５において、第１算出部５が動きベクトルを算出できた場合は、動きベクトルの時間変化パターンの最小のフレーム番号に、第１算出部５が算出した動きベクトルを格納する（ステップＳ５０６）。また、第１算出部５は、ステップＳ５０５において、第１算出部５が動きベクトルを算出できなかった場合は、動きベクトルの時間変化パターンの最小のフレーム番号に、動きベクトル量として０を格納する（ステップＳ５０７）。
【００６３】
図１１（ａ）は、判定部が生成した動きベクトルの時間変化パターンの一例であり、図１１（ｂ）は、判定部が予め有している動きベクトルの時間変化パターンの一例を示す図である。図１１（ａ）は、具体的には、ユーザが頸部を横方向に向けた場合の動きベクトルの時間変化パターンを示している。ユーザは静止している状態から加速度をつけて頸部を横方向に捻ることで、次第に動きベクトル量が大きくなり、頸部を横方向に捻り終わる付近で、動きベクトル量が小さくなっている。
【００６４】
図１１（ｂ）のモデル時間変化パターンは、上記の様なユーザの頸部の動きと動きベクトルを対応付けた時間変化パターンである。モデル時間変化パターンには、予め動きベクトルを規格化して作成した時間変化パターンを用いても良いし、ユーザによる事前学習により得られた時間変化パターンを用いても良い。ユーザによる事前学習とは、例えば、予めユーザに頸部を横に振る動作を、任意の認識対象物体を注視しながら実施して貰い、その時に得られた動きベクトルの時間変化パターンをモデル時間変化パターンとすることを指す。なお、時間変化パターンの横軸の長さ（フレーム数）は、あらかじめユーザによる事前学習の段階で最適な数値を算出しておくことも可能である。なお、ユーザによる事前学習は、表示部８を用いたＧＵＩ等で実施しても良い。なお、以降の説明においては、モデル時間変化パターンを、第１の動きベクトルの時間変化パターンと称し、第１算出部５が算出する動きベクトルの時間変化パターンを、第２の動きベクトルの時間変化パターンと称することとする。
【００６５】
ここで、判定部６は、第１の動きベクトルの時間変化パターンと、第２の動きベクトルの時間変化パターンを比較することでユーザの動作を判定する。第１と第２の動きベクトルの時間変化パターンとの比較には、双方の動きベクトルの時間変化パターンの類似度計算を用いる。判定部６は、ユーザの様々な動作方向に対応付けた複数のモデル時間変化パターン（第１の動きベクトルの時間変化パターン）を記憶しているが、複数の第１の動きベクトルの時間変化パターンのそれぞれと、第１算出部５が算出する第２の動きベクトルの時間変化パターンとの類似度を算出して、最も類似度が大きいモデル時間変化パターンを用いてユーザの動作方向を判定することが出来る。
【００６６】
類似度計算には様々な方法を用いることが可能であるが、例えば、Ｂｈａｔｔａｃｈａｒｙｙａ距離を用いることが出来る。Ｂｈａｔｔａｃｈａｒｙｙａ距離を用いた類似度計算については、例えば、Ｋａｉｌａｔｈ Ｔ. "Ｔｈｅ Ｄｉｖｅｒｇｅｎｃｅ ａｎｄ Ｂｈａｔｔａｃｈａｒｙｙａ Ｄｉｓｔａｎｃｅ Ｍｅａｓｕｒｅｓ ｉｎ Ｓｉｇｎａｌ Ｓｅｌｅｃｔｉｏｎ". ＩＥＥＥ Ｔｒａｎｓａｃｔｉｏｎｓ ｏｎ Ｃｏｍｍｕｎｉｃａｔｉｏｎ Ｔｅｃｈｎｏｌｏｇｙ １５ (１) ｐｐ．５２-６０, １９６７に開示されている。
【００６７】
図１２（ａ）は、第２の動きベクトルの時間変化パターンのフレーム番号と動きベクトルのデータ構造の一例を示す図である。図１２（ｂ）は、第１の動きベクトルの時間変化パターンのフレーム番号と動きベクトルのデータ構造の一例である。図１２（ｂ）は、第１の動きベクトルの時間変化パターンのフレーム番号と動きベクトルのデータ構造の一例である。上述のＢｈａｔｔａｃｈａｒｙｙａ距離を用いた場合、類似度Ｄは、図１２（ａ）（ｂ）にそれぞれ示されるフレーム番号ならびに動きベクトルを用いて次式で表現することが出来る。
（数１）      
2014044476.tif 000003
但し、HM(f)は、第１の動きベクトルの時間変化パターンのｆフレームにおける動きベクトル量、HT(f)は、第２の動きベクトルの時間変化パターンのｆフレームにおける動きベクトル量、ΣfH(f)は、所定のフレーム数での動きベクトル量の総和を示す。
【００６８】
ここで、第１と第２の動きベクトルの時間変化パターンが完全に一致すれば、Ｄ＝０となり、一致しない場合は、Ｄ＞０（但し、最大値は１．０）となる。通常、第１と第２の動きベクトルの時間変化パターンが完全に一致する場合は稀である為、判定部６は、予備実験等に基づいて設定した所定の閾値（例えばＤ＝０．２）を用いて類似度を判定しても良い。
【００６９】
図１３は、ユーザが携帯端末を注視しながら、頸部を横に振る動作を行った場合のユーザの一連の動作と、取得部３が取得する画像データを示す図である。なお、図１３はある特定のユーザのものではなく、複数のユーザの統計的な傾向を示したものである。
【００７０】
図１３の初期位置（１）において、ユーザは携帯端末について注視しているものとする。ユーザは携帯端末を注視しながら頸部を横に振る（２）〜（６）。（２）〜（６）の区間中（３）、（４）では加速度が大き過ぎて取得部３が取得する画像データにボケが生じている。この様な画像データを用いた場合、動きベクトルを算出することは困難である。ユーザは頸部を横に振ったあとは、通常頸部を正面方向となる初期位置（１）に戻す。区間（７）〜（１０）においては、比較的ボケが生じていない。この為、区間（７）〜（１０）の動きベクトルを用いた方が、ユーザの動作を認識するロバスト性が向上させることが可能となる。
【００７１】
判定部６は、ユーザ動作の往路と復路を加味したモデルを第１の動きベクトルの時間変化パターンとして予め学習し、当該第１の動きベクトルの時間変化パターンと、ユーザ動作の往路と復路を加味した第１算出部５が算出する第２の動きベクトルの時間変化パターンを比較してユーザの動作を判定することも可能である。
【００７２】
図１４（ａ）は、図１３のユーザ動作の往路と復路を加味して判定部が生成した第２の動きベクトルの時間変化パターンの例である。フレーム番号５〜１５の付近の区間においてボケが発生いることに起因して動きベクトルを時間変化パターンに０として格納されていることが確認できる。なお、動きベクトルを時間変化パターンに０として格納する処理は、図１０のステップＳ５０７に対応する。図１４（ｂ）は、ユーザ動作の往路と復路を加味した第１の動きベクトルの時間変化パターンである。判定部６は、時間変化パターン全体の類似度を判定しても良い。また、ユーザの動作を往路と復路に切り分けて個別に類似度を判定しても良い。往路と復路の切り分けは、動きベクトルがプラスの方向からマイナスの方向に切り変わる地点を基点として切り分けることが可能である。
【００７３】
なお、第１の動きベクトルの時間変化パターンと第２の動きベクトルの時間変化パターンの照合処理は、往路と復路を踏まえたユーザの動作時間は６０フレーム程度であることから、判定部６は２秒に１回照合処理を行えば良い。
【００７４】
ここで、上述の通り、本発明者らの検証によって、第１の動きベクトルの時間変化パターンと、第２の動きベクトルの時間変化パターンの比較において、第１と第２の時間変化パターンの差異が拡大することで誤判定が発生し、ロバスト性が低下する場合が存在することが新たに判明した。
【００７５】
その一つは、上述の通り、第２の動きベクトルの時間変化パターンを生成する時のユーザの動作の分散（ばらつき）が大きい場合である。分散が大きくなる場合の例示の一つとして、疲労等により身体状態が正常でない場合が挙げられる。他には、カメラがユーザの頭部に装着されて画像を取得する時に、認識対象物体がユーザの頭上や足下に存在し、頭部が身体の向きと異なる状態の場合である。この様な、誤判定を抑止する比較例としては、第１の動きベクトルの時間変化パターンと、第２の動きベクトルの時間変化パターンの比較に用いる閾値を広げることも比較例として考えられるが、意識しない動作まで首振りジェスチャと誤判定（過剰判定）する場合が増加する為、必ずしも適切な対応策とはならない。その他の比較例として、第１の動きベクトルの時間変化パターンの自動更新や追加処理も考えられるが、分散が大きい場合は、適切なモデルパターンとなる第１の動きベクトルの時間変化パターンの生成自体が困難である。
【００７６】
図１５（ａ）は、認識対象物体とユーザ動作と選択情報、選択情報が選択された選択回数・割合、分散、判定成功・失敗回数、総合判定成功率を対応付けたテーブルである。図１５（ａ）において、認識対象物体、ユーザ動作、選択情報は図７と同様である為、詳細な説明は省略する。選択回数は、判定部６がユーザ動作方向を判定することにより選択情報が選択された回数である。選択割合は、すべての選択情報の選択回数と、各選択情報の選択回数の割合である。分散はユーザが同一方向への動作を複数回行ったときの動作のばらつき度合いを示す。なお、当該分散は、図１の第２算出部７によって算出される。第２算出部７は、例えば、第２の動きベクトルの時間変化パターンの復路の始点と終点により規定される第２の動作時間との比率に基づいて分散を算出する。この場合は、分散σは、次式によって表現される。
（数２）    
2014044476.tif 000004
但し、Tiは、ユーザ動作i（i=1〜n）回目の第２の動きベクトルの時間変化パターンの始点と終点により規定される動作時間を示し、Taveは、ユーザ動作をｎ回実施した時の第２の動きベクトルの時間変化パターンの始点と終点により規定される動作時間の平均時間を示す。なお、上述の（数２）で算出される分散σを評価値２とする。
【００７７】
更に、第２算出部７は、図１４に示される様な動きベクトルの往復動を利用して分散を算出することも出来る。具体的には、第２算出部７は、第２の動きベクトルの時間変化パターンの往路の始点と終点により規定される第１の動作時間と、第２の動きベクトルの時間変化パターンの復路の始点と終点により規定される第２の動作時間との比率に基づいて分散を算出しても良い。なお、フレーム数が６０フレームと仮定した場合、往路の始点は、１フレーム目となり、終点は動きベクトルの符号が反転したフレームの一つ前のフレームが終点となる。また復路の始点は、往路において動きベクトルの符号が反転したフレームとなり、終点は６０フレーム目または動きベクトルが所定フレーム（例えば５フレーム）にわたって０（または閾値以下の動きベクトル量）になったフレームを終点とする。
この場合は、分散σは、次式によって表現される。
（数３）      
2014044476.tif 000005
但し、Tfiは、ユーザ動作の往路におけるi（i=1〜n）回目の第２の動きベクトルの時間変化パターンの往路の始点と終点により規定される第１の動作時間を示す。Triは、ユーザ動作の復路におけるi回目の第２の動きベクトルの時間変化パターンの始点と終点により規定される動作時間を示す。Tfi-aveは、ユーザ動作をｎ回実施した時のTfiの平均時間を示し、Tri-aveは、Triの平均時間を示す。なお、上述の（数２）で算出される分散σを評価値３とする。
【００７８】
第２算出部７は、上述の評価値２、または評価値３の他、（数１）から算出される類似度Dから分散を算出することも可能である。但し、類似度Dの分散の計算は（数１）から明らかな通り、比較的計算の処理の負荷が大きいが、上述の評価値２または評価値３は、動作時間から分散を算出している為、小さい負荷で処理することが可能となる。また、評価値３を適用する場合、図１４の往路と復路の動作時間に着目すると、動作が安定したばらつきの少ない方向（復路）での動作は、動作時間がほぼ一定の値をとるため、動作時間を動作のばらつきの評価に用いることができる。ここで、動作時間として往路と復路、合計（往復路）の３つが選択できるが、本発明者が測定評価したところ、それぞれの動作時間を所定の実行回数の平均で正規化すると、３つの動作時間の中で復路の分散が最も小さく、往路の分散が最も大きい傾向が見られるため、復路に対する往路の動作時間の比率を用いることで、ユーザ動作のばらつきを精度良く捉えることができる。
【００７９】
図１５（ａ）に示された通り、本発明者らの検証により、ユーザの動作方向の分散は、ユーザ動作方向毎に異なっていることが新たに明らかとなった。この事象を利用して、分散が小さいユーザの動作方向を選択回数が多い選択情報に対応付け、分散が大きいユーザの動作方向を選択回数が少ない選択情報に対応付けることでロバスト性を向上させることが出来る。なお、図１５（ａ）の判定成功回数と判定失敗回数は、実際のユーザの動作方向に応じて、正しい選択情報が選択されたか否かを第３者が観測して判定するという客観的評価に基づく結果である。更に、判定成功率は、全ての選択情報の選択回数の総和と、判定成功回数の総和の割合から算出される百分率である。
【００８０】
図１５（ｂ）は、（ａ）に示すテーブルを選択回数と分散に基づいて、選択情報の並び変えを実施したテーブルを示す。図１５（ｂ）において、分散が小さいユーザの動作方向を選択回数が多い選択情報に対応付け、分散が大きいユーザの動作方向を選択回数が少ない選択情報に対応付けることで、総合判定成功率が大幅に向上していることが確認された。なお、分散は、判定部６がユーザ動作方向を判定する度に第２算出部７が算出して、随時更新すれば良い。また、表示部８は分散が所定の閾値以上（例えば０．５）以上になった場合に、複数の選択項目の表示位置を変更すれば良い。なお、図１５（ａ）、（ｂ）に示されるテーブルは、例えば表示部８の図示しないキャッシュまたはメモリに格納されるが、第２算出部７の図示しないキャッシュまたはメモリに格納させることも可能である。
【００８１】
なお、表示部８は、認識部４が所定の時間以内に認識対象物体を認識しない場合に、複数の選択情報を表示させる位置を変更することで、ユーザの物体注視状況や、作業状態を反映した上で選択情報の表示位置が変更されることになりユーザビリティが向上する。また、表示部８は、認識部４が認識した第１の認識対象物体と異なる第２の認識対象物体を認識した場合に複数の選択情報を表示させる位置を変更することでも、ユーザの物体注視状況や、作業状態を反映した上で選択情報の表示位置が変更されることになりユーザビリティが向上する。
【００８２】
図１６（ａ）は、表示部８に表示する選択情報の初期位置を示す。図１６（ａ）に示される通り、複数の選択情報は、ユーザの動作方向に対応付けられる形式で表示部８に表示される。また、複数の選択情報は認識部４が認識対象物体を認識した時点で、表示部８に表示される。図１６（ｂ）は、選択回数と分散に基づいて表示位置を変更した選択情報の表示位置を示す。分散が小さいユーザの動作方向を選択回数が多い選択情報に対応付け、分散が大きいユーザの動作方向を選択回数が少ない選択情報に対応付けることで、総合判定成功率が大幅に向上させることが可能となる。
【００８３】
図１７は、選択情報の表示位置変更処理のフローチャートである。判定部６は、第１の動きベクトルの時間変化パターンと、複数の第２の動きベクトルの時間変化パターンを比較することにより、類似度を算出する（ステップＳ６０１）。類似度の算出は、上述の（数１）を用いることで算出出来る。判定部６は、類似度が所定の閾値（例えば０．２）以内の場合（ステップＳ６０２−Ｙｅｓ）、ユーザの動作方向を判定する（ステップＳ６０３）。なお、類似度が閾値以上の場合（ステップＳ６０２−Ｎｏ）、判定部６は、図示しない判定部６のキャッシュまたはメモリに格納した動きベクトルを削除した上で処理を一旦終了する。
【００８４】
表示部８は、ユーザ動作方向に基づいて複数の選択情報の中から一つの選択情報を選択し、当該選択情報が選択された回数を蓄積する（ステップＳ６０４）。第２算出部７は、分散を算出し、過去に算出した分散を更新する（ステップＳ６０５）。表示部８は、分散が所定の閾値（例えば０．５）以上の場合は（ステップＳ６０６−Ｙｅｓ）は、表示部８の選択情報の表示位置を更新する。具体的には、分散が小さいユーザの動作方向を選択回数が多い選択情報に対応付け、分散が大きいユーザの動作方向を選択回数が少ない選択情報に対応付ければ良い。なお、表示部８の選択情報の表示位置を更新のタイミングは、認識部４が所定の時間以内に認識対象物体を認識しない場合に選択情報の表示位置を変更しても良い。また、認識部４が認識した第１の認識対象物体と異なる第２の認識対象物体を認識した場合に記複数の選択情報を表示させる位置を変更しても良い。
【００８５】
図１８は、一つの実施形態による画像処理装置の第１のハードウェア構成図である。ユーザが外界において注視している認識対象物体を特定し易い様に、眼鏡型の筐体を用いて取得部３を両目の中心に位置する様に配設しても良い。また、図示はしないが、取得部３を２つ以上配設してステレオ画像を用いても良い。表示部８は、外界を認識できる様に、シースルー型ディスプレイを用いても良い。
【００８６】
図１９は、一つの実施形態による画像処理装置の第２のハードウェア構成図である。図１９に示すように、画像処理装置１は、制御部９、記憶部２、補助記憶部１０、ドライブ装置１１、ネットワークＩ／Ｆ部１３、入力部１４、表示部８を含む。これら各構成は、バスを介して相互にデータ送受信可能に接続されている。
【００８７】
制御部９は、コンピュータの中で、各装置の制御やデータの演算、加工を行うＣＰＵである。また、制御部９は、記憶部２や補助記憶部１０に記憶されたプログラムを実行する演算装置であり、入力部１４や記憶装置からデータを受け取り、演算、加工した上で、表示部８や記憶装置などに出力する。
【００８８】
記憶部２は、ＲＯＭ(Ｒｅａｄ Ｏｎｌｙ Ｍｅｍｏｒｙ)やＲＡＭ(Ｒａｎｄｏｍ Ａｃｃｅｓｓ Ｍｅｍｏｒｙ)などであり、制御部１２０１が実行する基本ソフトウェアであるＯＳやアプリケーションソフトウェアなどのプログラムやデータを記憶または一時保存する記憶装置である。
【００８９】
補助記憶部１０は、ＨＤＤ(Ｈａｒｄ Ｄｉｓｋ Ｄｒｉｖｅ)などであり、アプリケーションソフトウェアなどに関連するデータを記憶する記憶装置である。
【００９０】
ドライブ装置１１は、記録媒体１２、例えばフレキシブルディスクからプログラムを読み出し、補助記憶部１０にインストールする。
【００９１】
また、記録媒体１２に、所定のプログラムを格納し、この記録媒体１２に格納されたプログラムはドライブ装置１１を介して画像処理装置１にインストールされる。インストールされた所定のプログラムは、画像処理装置１により実行可能となる。
【００９２】
ネットワークＩ／Ｆ部１３は、有線及び/又は無線回線などのデータ伝送路により構築されたＬＡＮ(Ｌｏｃａｌ Ａｒｅａ Ｎｅｔｗｏｒｋ)、ＷＡＮ(Ｗｉｄｅ Ａｒｅａ Ｎｅｔｗｏｒｋ)などのネットワークを介して接続された通信機能を有する周辺機器とオーディオ復号装置２とのインターフェースである。
【００９３】
入力部１４は、カーソルキー、数字入力及び各種機能キー等を備えたキーボード、表示部８の表示画面上でキーの選択等を行うためのマウスやスライスパット等を有する。また、入力部１４は、ユーザが制御部９に操作指示を与えたり、データを入力したりするためのユーザインターフェースである。
【００９４】
表示部８は、ＣＲＴ(ＣａｔｈｏｄｅＲａｙ Ｔｕｂｅ)やＬＣＤ(Ｌｉｑｕｉｄ Ｃｒｙｓｔａｌ Ｄｉｓｐｌａｙ)等により構成され、制御部９から入力される表示データに応じた表示が行われる。
【００９５】
なお、上述した画像処理は、コンピュータに実行させるためのプログラムとして実現されてもよい。このプログラムをサーバ等からインストールしてコンピュータに実行させることで、上述した画像処理を実現することができる。
【００９６】
また、このプログラムを記録媒体１２に記録し、このプログラムが記録された記録媒体１２をコンピュータや携帯端末に読み取らせて、前述した画像処理を実現させることも可能である。なお、記録媒体１２は、ＣＤ−ＲＯＭ、フレキシブルディスク、光磁気ディスク等の様に情報を光学的、電気的或いは磁気的に記録する記録媒体、ＲＯＭ、フラッシュメモリ等の様に情報を電気的に記録する半導体メモリ等、様々なタイプの記録媒体を用いることができる。
【００９７】
また、図示した各装置の各構成要素は、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各装置の分散・統合の具体的形態は図示のものに限られず、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。また、上記の実施例で説明した各種の処理は、予め用意されたプログラムをパーソナルコンピュータやワークステーションなどのコンピュータで実行することによって実現することができる。
【００９８】
以上、説明した実施形態に関し、更に以下の付記を開示する。
（付記１）
ユーザに拘持され、前記ユーザの視野方向の画像データを取得する取得部と、
前記画像データに含まれる認識対象物体を認識する認識部と、
前記認識部が認識した前記認識対象物体に対応する特徴点の位置変動量を、取得時間が異なる複数の前記画像データから算出し、前記位置変動量から前記認識部が認識した前記認識対象物体の動きベクトルを算出する第１算出部と、
前記動きベクトルに基づいて前記ユーザの動作方向を判定する判定部と、
前記判定部が判定した前記ユーザの動作方向毎の前記動きベクトルの分散を算出する第２算出部と、
前記ユーザの動作方向により選択される複数の選択情報を、前記分散に基づいて所定の位置に表示する表示部と、
を備えることを特徴とする画像処理装置。
（付記２）
前記画像処理装置は、認識対象物体の特徴点を記憶する記憶部にアクセス可能であり、
前記認識部は、前記画像データから特徴点を抽出し、抽出した特徴点と前記認識対象物体の特徴点を対応付けることによって、前記画像データに含まれる前記認識対象物体を認識することを特徴とする付記１記載の画像処理装置。
（付記３）
前記記憶部は、前記複数の選択情報にそれぞれ対応付けられた前記認識対象物体に関する付帯情報を更に記憶しており、
前記表示部は、前記選択部が選択した前記一つの選択情報に基づいて、前記付帯情報を表示することを特徴とする付記１記載の画像処理装置。
（付記４）
前記判定部は、前記ユーザの動作と前記動きベクトルを予め対応付けた第１の動きベクトルの時間変化パターンと、
前記第１算出部が算出する動きベクトルを所定時間に渡って算出することで生成される第２の動きベクトルの時間変化パターンとの類似度を比較することにより、前記ユーザの動作方向を判定することを特徴とする付記１記載の画像処理装置。
（付記５）
前記第２の動きベクトルの時間変化パターンは、前記動きベクトルの往復動によって規定され、
前記第２算出部は、前記第２の動きベクトルの時間変化パターンの往路の始点と終点により規定される第１の動作時間と、
前記第２の動きベクトルの時間変化パターンの復路の始点と終点により規定される第２の動作時間との比率に基づいて前記分散を算出し、
前記表示部は、前記選択部によって選択された回数と前記分散に基づいて、前記複数の選択情報を表示させる位置を変更することを特徴とする付記３記載の画像処理装置。
（付記６）
前記第２算出部は、前記第２の動きベクトルの時間変化パターンの始点と終点により規定される第３の動作時間に基づいて前記分散を算出し、
前記表示部は、前記選択部によって選択された回数と前記分散に基づいて、前記複数の選択情報を表示させる位置を変更することを特徴とする付記４記載の画像処理装置。
（付記７）
前記第２算出部は、前記類似度に基づいて前記分散を算出し、
前記表示部は、前記選択部によって選択された回数と前記分散に基づいて、前記複数の選択情報を表示させる位置を変更することを特徴とする付記４記載の画像処理装置。
（付記８）
前記表示部は、前記認識部が所定の時間以内に前記認識対象物体を認識しない場合に、前記複数の選択情報を表示させる位置を変更することを特徴とする付記５ないし付記７にいずれか一つに記載の画像処理装置。
（付記９）
前記表示部は、前記認識部が認識した第１の認識対象物体と異なる第２の認識対象物体を認識した場合に、前記複数の選択情報を表示させる位置を変更することを特徴とする付記５ないし付記７にいずれか一つに記載の画像処理装置。
（付記１０）
前記認識部は、前記認識対象物体の位置変動量または、前記認識対象物体の面積変動量を前記複数の画像データからそれぞれ算出し、前記位置変動量または前記面積変動量に基づいて前記ユーザが注視する物体を認識することを特徴とする付記１記載の画像処理装置。
（付記１１）
前記算出部は、前記画像データに含まれる前記認識対象物体の位置を、前記認識対象物体の特徴点から特定し、位置を特定した前記認識対象物体を包含する少なくとも４つの端点の位置変動量を、前記特徴点の位置変動量として算出することを特徴とする付記１に記載の画像処理装置。
（付記１２）
ユーザに拘持される取得部から、前記ユーザの視野方向の画像データを取得し、
前記画像データに含まれる認識対象物体を認識し、
前記認識対象物体に対応する特徴点の位置変動量を、取得時間が異なる複数の前記画像データから算出し、
前記位置変動量から前記認識対象物体の動きベクトルを算出し、
前記動きベクトルに基づいて前記ユーザの動作方向を判定し、
判定した前記ユーザの動作方向毎の前記動きベクトルの分散を算出し、
前記ユーザの動作方向により選択される複数の選択情報を、前記分散に基づいて所定の位置に表示する
ことを含むことを特徴とする画像処理方法。
（付記１３）
コンピュータに、
ユーザに拘持される取得部から、前記ユーザの視野方向の画像データを取得し、
前記画像データに含まれる認識対象物体を認識し、
前記認識対象物体に対応する特徴点の位置変動量を、取得時間が異なる複数の前記画像データから算出し、
前記位置変動量から前記認識対象物体の動きベクトルを算出し、
前記動きベクトルに基づいて前記ユーザの動作方向を判定し、
判定した前記ユーザの動作方向毎の前記動きベクトルの分散を算出し、
前記ユーザの動作方向により選択される複数の選択情報を、前記分散に基づいて所定の位置に表示する
ことを実行させることを特徴とする画像処理プログラム。
【符号の説明】
【００９９】
１  画像処理装置
２  記憶部
３  取得部
４  認識部
５  第１算出部
６  判定部
７  第２算出部
８  表示部
９  制御部
【図１】
2014044476.tif 000006
【図２】
2014044476.tif 000007
【図３】
2014044476.tif 000008
【図４】
2014044476.tif 000009
【図５】
2014044476.tif 000010
【図６】
2014044476.tif 000011
【図７】
2014044476.tif 000012
【図８】
2014044476.tif 000013
【図９】
2014044476.tif 000014
【図１０】
2014044476.tif 000015
【図１１】
2014044476.tif 000016
【図１２】
2014044476.tif 000017
【図１３】
2014044476.tif 000018
【図１４】
2014044476.tif 000019
【図１５】
2014044476.tif 000020
【図１６】
2014044476.tif 000021
【図１７】
2014044476.tif 000022
【図１８】
2014044476.tif 000023
【図１９】
2014044476.tif 000024