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