(57)【要約】【課題】ウェアラブルディスプレイに装着されたカメラの画像のみで、動いている物体に対するユーザの動作を認識することが可能な画像認識装置を提供する。【解決手段】本発明にかかる画像認識装置は、ユーザの視野方向の画像データを取得し、画像データ中の第一の領域から特徴点を抽出し、抽出した特徴点と記憶部に記憶されている物体の特徴点とを対応付けることによって第一の物体を認識し、第一の物体に対応する特徴点のうち第一の物体に対応する特徴点が画像中心方向に移動しているときの位置変動量を複数の画像データから算出し、算出した位置変動量から第一の物体の移動速度を算出し、第一の物体が画像中心部に達すると、第一の物体に対応する特徴点の位置変動量を取得時間が異なる複数の画像データから算出し、第一の物体の移動速度と位置変動量とに基づいてユーザの動作に要する時間を推定し、推定された時間に基づいてユーザの動作を判定する。【選択図】図１
2014048882.tif 000002
【特許請求の範囲】
【請求項１】
ユーザの視野方向の画像データを取得する取得部と、
前記画像データ中の第一の領域から特徴点を抽出し、抽出した特徴点と前記記憶部に記憶されている物体の特徴点を対応付けることによって、前記画像データに含まれる第一の物体を認識する物体認識部と、
前記第一の物体に対応する特徴点のうち、前記第一の物体に対応する特徴点が画像中心方向に移動しているときの位置変動量を、取得時間が異なる複数の前記画像データから算出し、該位置変動量から、前記第一の物体の移動速度を算出する移動推定部と、
取得時間が異なる複数の前記画像データ間における前記第一の物体の位置変動量から求められた該第一の物体の挙動と、前記第一の領域の内側に位置し、前記画像データの中心点を含む第二の領域に前記物体が所定の時間継続して存在するか否か、とに応じて、前記第一の物体がユーザの注視対象物体か否か判定する注視判定部と、
前記第一の物体がユーザの注視対象物体であると判定されたとき、前記第一の物体に対応する特徴点の位置変動量を、取得時間が異なる複数の前記画像データから算出する動作量算出部と、
前記第一の物体の移動速度と前記位置変動量とに基づいて、前記ユーザの動作に要する時間を推定し、推定された時間に基づいて前記ユーザの動作を判定する動作判定部と、
を含むことを特徴とする画像処理装置。
【請求項２】
前記移動推定部は、前記第一の物体に対応する特徴点のうち、前記第一の物体に対応する特徴点が前記画像データ中の中心点を含む第二の領域の外側を画像中心方向に移動しているときの該特徴点の位置変動量と移動方向とに基づいて前記第一の物体の移動速度を推定することを特徴とする、請求項１に記載の画像処理装置。
【請求項３】
前記注視対象物体の移動速度に対応付けられたユーザ動作対応テーブルと記憶した記憶部を備え、
前記動作判定部は、前記第一の物体の移動速度と移動方向とに基づいて前記ユーザ動作対応テーブルを選択し、選択された前記ユーザ動作対応テーブルを参照して前記第一の物体の移動速度と移動方向と前記動きベクトルの時間平均とに基づいて前記ユーザの動作を判定することを特徴とする、請求項１または２のいずれか１項に記載の画像処理装置。
【請求項４】
前記動作量算出部は、取得時間が異なるフレーム間の前記動きベクトルを所定量蓄積することで動きベクトルの時間変化パターンを生成し、
前記記憶部には、前記ユーザの動作と動きベクトルとを対応付けたモデル時間変化パターンが、物体の移動方向及び物体の移動速度ごとに予め格納されており、
前記動作判定部は、前記第一の物体の移動速度と移動方向とに基づいて前記モデル時間変化パターンを選択し、前記動きベクトルの時間変化パターンとの類似度を比較することにより、前記ユーザの動作を判定する
ことを特徴とする、請求項１乃至３のいずれか１項に記載の画像処理装置。
【請求項５】
ユーザの視野方向の画像データを取得し、
前記画像データ中の第一の領域から特徴点を抽出し、抽出した特徴点と前記記憶部に記憶されている物体の特徴点を対応付けることによって、前記画像データに含まれる第一の物体を認識し、
前記第一の物体に対応する特徴点のうち、前記第一の物体に対応する特徴点が画像中心方向に移動しているときの位置変動量を、取得時間が異なる複数の前記画像データから算出し、該位置変動量から、前記第一の物体の移動速度を算出し、
取得時間が異なる複数の前記画像データ間における前記第一の物体の位置変動量から求められた該第一の物体の挙動と、前記第一の領域の内側に位置し、前記画像データの中心点を含む第二の領域に前記物体が所定の時間継続して存在するか否かとに応じて、前記第一の物体がユーザの注視対象物体か否か判定し、
前記第一の物体がユーザの注視対象物体であると判定されたとき、前記第一の物体に対応する特徴点の位置変動量を、取得時間が異なる複数の前記画像データから算出し、
前記第一の物体の移動速度と前記位置変動量とに基づいて、前記ユーザの動作に要する時間を推定し、推定された時間に基づいて前記ユーザの動作を判定する
ことを特徴とする画像処理方法。
【請求項６】
ユーザの視野方向の画像データを取得し、
前記画像データ中の第一の領域から特徴点を抽出し、抽出した特徴点と前記記憶部に記憶されている物体の特徴点を対応付けることによって、前記画像データに含まれる第一の物体を認識し、
前記第一の物体に対応する特徴点のうち、前記第一の物体に対応する特徴点が画像中心方向に移動しているときの特徴点の位置変動量を、取得時間が異なる複数の前記画像データから算出し、該位置変動量から、前記第一の物体の移動速度を算出し、
取得時間が異なる複数の前記画像データ間における前記第一の物体の位置変動量から求められた該第一の物体の挙動と、前記第一の領域の内側に位置し、前記画像データの中心点を含む所定の領域に前記物体が所定の時間継続して存在するか否かとに応じて、前記第一の物体がユーザの注視対象物体か否か判定し、
前記第一の物体がユーザの注視対象物体であると判定されたとき、前記第一の物体に対応する特徴点の位置変動量を、取得時間が異なる複数の前記画像データから算出し、
前記第一の物体の移動速度と前記位置変動量とに基づいて、前記ユーザの動作に要する時間を推定し、推定された時間に基づいて前記ユーザの動作を判定する
処理をコンピュータに実行させることを特徴とする画像処理プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像処理装置、画像処理方法及び画像処理プログラムに関する。
【背景技術】
【０００２】
近年、情報通信技術の発展に伴い、外界の情報を取得するカメラが搭載されたＨＭＤ（Ｈｅａｄ  Ｍｏｕｎｔ  Ｄｉｓｐｌａｙ）等のウェアラブルディスプレイをユーザが装着した状況で、ユーザの周囲に存在する物体の詳細な情報（以下、付帯情報と称する）を取得する技術の開発が行われている。付帯情報には、物体の外観から得られる情報の他に、物体には一見現れない情報、例えば物体固有の名前や、物体が製造された環境、物体に対する他のユーザの評判等の情報が含まれる。
【０００３】
ここで、複数の付帯情報の中から、ユーザが取得したい情報を選択して取得する場合等には、ユーザからの情報入力手段が必要である。その際、マウスやキーボード等の従来のインタフェースを使用することも可能であるが、簡便かつ効率的な入力方法として、ユーザの動作（ジェスチャ）を入力手段とする方法が注目されている。
【０００４】
ユーザのジェスチャを入力手段とする方法として、加速度センサを用いて手指の動作を測定するものや、ウェアラブル装置に搭載された視線検出装置により視線の動きを判定するものが開示されている（例えば、特許文献１参照）。
【０００５】
また、ハンズフリーやアイズフリーを目指したジェスチャによるユーザインタフェースを実現するために、頭部（顎部頭部を含む）の動きをジェスチャとして認識する方法も注目されている。頭部の動作による認識方法においては、頷きや首ふりといった、実際の人間の日常動作と関連付いた、自然なジェスチャ入力が実現できる。
【０００６】
頭部の動作を入力手段とする方法としては、外部に設置されたセンサから頭部の位置を推定して頭部の動作を判定する方法が開示されている。また、ユーザの頭部に加速度センサを取り付けて、加速度センサから得られる値を解析することによって頭部の動作を判定する方法も開示されている（例えば、特許文献２参照）。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開平１０−２１４３０６号公報
【特許文献２】特開２０１１−１４０８２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００８】
上述のユーザの動作を検知する従来技術においては、外界の画像を取得するカメラの他に、ユーザの動きを判断するための外部センサや加速度センサ等のセンサが必要となり、利便性の低下やコストの増加という課題が存在する。
【０００９】
そこで、本発明は、外界の画像を取得する、ウェアラブルディスプレイに装着されたカメラの画像のみで、物体に対するユーザの動作を認識することが可能な画像処理装置を提供することを目的の一側面とする。
【課題を解決するための手段】
【００１０】
上記の目的を達成するために、本発明にかかる画像処理装置は、ユーザの視野方向の画像データを取得する取得部と、前記画像データ中の第一の領域から特徴点を抽出し、抽出した特徴点と前記記憶部に記憶されている物体の特徴点を対応付けることによって、前記画像データに含まれる第一の物体を認識する物体認識部と、前記第一の物体に対応する特徴点のうち、前記第一の物体に対応する特徴点が画像中心方向に移動しているときの位置変動量を、取得時間が異なる複数の前記画像データから算出し、該位置変動量から、前記第一の物体の移動速度を算出する移動推定部と、取得時間が異なる複数の前記画像データ間における前記第一の物体の位置変動量から求められた該第一の物体の挙動と、前記第一の領域の内側に位置し、前記画像データの中心点を含む第二の領域に前記物体が所定の時間継続して存在するか否か、とに応じて、前記第一の物体がユーザの注視対象物体か否か判定する注視判定部と、前記第一の物体がユーザの注視対象物体であると判定されたとき、前記第一の物体に対応する特徴点の位置変動量を、取得時間が異なる複数の前記画像データから算出する動作量算出部と、前記第一の物体の移動速度と前記位置変動量とに基づいて、前記ユーザの動作に要する時間を推定し、推定された時間に基づいて前記ユーザの動作を判定する動作判定部と、を含む。
【発明の効果】
【００１１】
本発明の構成によれば、外界の画像を取得する、ウェアラブルディスプレイに装着されたカメラの画像のみで、物体に対するユーザの動作を認識することが可能となる。
【図面の簡単な説明】
【００１２】
【図１】実施例１にかかる画像処理装置１の機能構成例を表す機能ブロック図。
【図２】実施例１にかかる画像処理装置１のハードウェア構成例を示すブロック図。
【図３】物体認識部４の物体認識処理のフローチャート。
【図４】画像データの周辺部の例。
【図５】移動推定部５による物体の移動速度及び方向の推定処理のフローチャート。
【図６】注視判定部６による注視対象の判定処理のフローチャート。
【図７】動作量算出部７による物体の動作量算出処理のフローチャート。
【図８】動作判定部８によるユーザの動作判定処理のフローチャート。
【図９】ユーザ動作対応テーブルの例。
【図１０】動作判定部８による第二のユーザ動作判定処理のフローチャート。
【図１１】異なる物体の移動速度におけるユーザの動きベクトルの時間変化パターンの例。
【図１２】一つの実施形態による画像処理装置１を含むＨＭＤ３００の構成図。
【発明を実施するための形態】
【００１３】
以下に添付図面を参照して、本発明にかかる画像処理装置、画像処理方法及び画像処理プログラムの実施例について詳細に説明する。なお、この実施例は開示の技術を限定するものではない。
【００１４】
ところで、物体に対してユーザが動作を行う場合、静止している物体（看板等）に対して動作を行う場合と、移動している物体（走行中のトラックに描かれた広告等）に対して動作を行う場合の両方が考えられる。このうち、静止している物体に対するユーザの動作を認識する画像処理装置および画像処理方法については、本願発明者による先願（特願２０１１−２６８３７８）にて提案している。
【００１５】
先願（特願２０１１−２６８３７８）では、ユーザが静止している物体を注視している場合に、ユーザが注視している物体の動きベクトルをユーザの視線方向を撮像した画像から取得してユーザの動作を検知するものであった。しかしながら、ユーザが情報を取得したい対象物は必ずしも静止している物体であるとは限らない。例えばユーザが走行中のトラックに描かれた製品広告に関する情報を取得したいと考える場合も想到される。そこで、本願明細書では、ユーザが動いている物体を注視している場合におけるユーザの動作を検知する場合について説明する。
【００１６】
発明者の検証によれば、ユーザは移動する物体を認識する際、まず該物体が存在する方向に頭部を回転させてユーザの視界内に物体を収め、その後頭部を固定し眼球のみを回転させて対象物体を追跡し、該物体が視界の中央付近に位置するようになるまで追跡を継続する動作を行う。そして、物体が視野の中央付近に到着した後に、ユーザは眼球の回転を止めて首の回転によって物体を追跡する傾向があることが判明した。
【００１７】
また、発明者の検証によれば、ユーザと対象物との間の位置関係が変化する場合、首を回転させて移動する対象物を追跡する際は、各フレームの画像データ内における物体の位置はほぼ一定となる。しかし、この状態でユーザが頭部を対象物の移動方向と平行に動作させる場合、頭部の動作時間は追跡している対象物の移動速度に応じて変化し、追跡している対象物の移動速度が速いほど頭部の動作時間が短くなる傾向があることが判明した。
【００１８】
ここで、物体の移動速度に応じて頭部の動作時間が短くなる（動作速度が速くなる）理由について、以下具体例を交えて説明する。ユーザから見て左方向に向かって水平に等速で移動する物体をユーザが頭部を左方向に回転させて追跡中の場合に、頭部を左方向に振るジェスチャを行う場合について考える。ここで、ここで、頭部の動作を開始して一度止める（振り切る）までの動作を「往路」、止めてから動作開始時の首の位置へ戻すまでの動作を「復路」と呼称するものとする。
【００１９】
まず、往路については、ユーザはジェスチャの開始前から往路方向と同方向に頭部を回転させているため、頭部の回転速度は物体の移動速度が速いほど、物体の移動速度に合わせた頭部の回転速度が往路動作の速度に加わる形で速くなる。したがって、往路の動作時間は物体の移動速度が速いほど短く（動作速度が速く）なる。次に、復路については物体の移動方向と頭部の回転方向が逆であるため、復路方向の回転速度と認識対象物体の移動方向の速度が加算される形となり、復路の動作時間が短くなる。
【００２０】
次に、前述の例と同じくユーザから見て左方向に向かって水平に等速で移動する物体をユーザが頭部を左方向に回転させて追跡中の場合に、頭部を右方向に振るジェスチャを行う場合について考える。
【００２１】
まず、往路における頭部の回転方向は追跡動作時の回転方向と逆となり、ユーザは物体が視野の中心から離れていく方向に頭部を回転させるため、頭部の回転速度は、物体の移動速度と頭部の回転速度とが加算される形となる、よって、ユーザの感覚として実際よりも大きく回転していると感じられる。また、ユーザの頭部の回転方向と物体の移動方向とが異なる場合、頭部の回転角は小さくなり、結果として動作時間は短くなる。次に、復路においては物体の移動方向と頭部の回転方向は同一であるが、往路の動作では物体は視野の中心から左方向に離れる方向にあったため、左方向に移動する物体に追いつくためには、物体の移動速度が頭部の復路方向の回転速度に加わる形となり、急いで頭部を回転させる必要がある。したがって、結果として頭部の回転速度が上がる（復路の動作時間も短くなる）。
【００２２】
なお、以降の説明では特に注釈がない場合、ユーザの頭部の移動方向は対象物の移動方向と平行であるものとする。ユーザの頭部の移動方向が対象物の移動方向と垂直である場合は、先に述べた先願（特願２０１１−２６８３７８）に記載された手法をそのまま適用することが可能である。
【実施例１】
【００２３】
図１は、実施例１にかかる画像処理装置１の機能構成例を表す機能ブロック図である。図１において、画像処理装置１は、記憶部２と、取得部３と、物体認識部４と、移動推定部５と、注視判定部６と、動作量算出部７と、動作判定部８と、表示部９とを有する。
【００２４】
記憶部２は、画像処理装置１による認識処理の対象となる物体（看板、商品、樹木等）を撮像した画像から抽出された、物体の特徴点を記憶する機能を有する。また、記憶部２は、物体に関する付帯情報と、該付帯情報に対応するユーザの動作とを記憶する機能を有する。さらに、記憶部２は、ユーザの認識対象物体の動きベクトルとユーザの動作とを対応付けたユーザ動作対応テーブルを、物体の移動方向及び速度と対応付けて保持する機能を有する。
【００２５】
取得部３は、撮像装置１００（図１２に記載）によって撮像された画像データを取得する機能を有する。具体的には、取得部３は、例えばＨＭＤに備え付けられた撮像装置１００によって撮像されたユーザの視野方向の画像データを取得する。
【００２６】
物体認識部４は、取得部３が取得した画像データの周辺部から特徴点を抽出して、抽出した特徴点と記憶部２に記憶されている物体の特徴点を対応付けることにより、取得部３が取得した画像データに含まれている１以上の物体を認識する機能を有する。なお、物体認識部４が実行する物体の認識処理の詳細フローについては後述する。
【００２７】
移動推定部５は、物体認識部１４が認識した１以上の認識対象物体の特徴点の動きベクトルを複数の前記画像データから算出し、前記物体のユーザに対する移動速度および移動方向を推定する機能を有する。前述のように、ユーザは移動する物体を認識する際、まず該物体が存在する方向に頭部を回転させてユーザの視界内に物体を収め、その後頭部を固定し眼球のみを回転させて対象物体を追跡し、該物体が視界の中央付近に位置するようになるまで追跡を継続する動作を行う傾向がある。したがって、ユーザの頭部が固定されているときの認識対象物体の視界内での位置変化を算出することで、認識対象物体のユーザに対する移動速度を推定することができる。なお、移動推定部１５が実行する物体の移動速度及び方向の推定処理の詳細フローについては後述する。
【００２８】
注視判定部６は、前記物体の動きベクトルの方向及び大きさ、該物体が一定時間所定の範囲に位置しているか否か等の性質から、該物体がユーザによる注視の対象であるか否かを判定する機能を有する。なお、注視判定部６による注視対象の判定処理の詳細フローについては後述する。
【００２９】
動作量算出部７は、物体認識部４が認識し、注視判定部６によってユーザの注視対象であると判定された物体の特徴点の動きベクトルを算出する機能を有する。なお、動作量算出部７による物体の動作量算出処理の詳細フローについては後述する。
【００３０】
動作判定部８は、移動推定部５が算出した物体の動きベクトル（第一ベクトル）と、動作量算出部７が算出した物体の動きベクトル（第二ベクトル）に基づいてユーザの動作を判定する機能を有する。具体的には、動作判定部８は、移動推定部５が算出した物体の動きベクトルに基づいて、記憶部２に格納されたユーザ動作対応テーブルを選択し、該テーブルに基づいてユーザの動作を判定する。なお、動作判定部８によるユーザの動作判定の詳細フローについては後述する。
【００３１】
表示部９は、動作判定部８が判定したユーザの動作に対応した認識対象物体の付帯情報を記憶部２から取得し、該付帯情報を表示装置２００（図１２に記載）に出力する機能を有する。表示装置２００では、認識対象物体の付帯情報が該認識対象物体に重畳して表示される。
【００３２】
図２は、実施例１にかかる画像処理装置１のハードウェア構成例を表すブロック図である。図２において、画像処理装置１は、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）１０と、不揮発メモリ１１と、入力インタフェース１２と、出力インタフェース１３と、メモリ１４と、を有する。また、各構成部はバス１５によってそれぞれ電気的に接続されている。
【００３３】
ここで、ＣＰＵ１０は、画像処理装置１全体の制御をつかさどる演算部である。不揮発メモリ１１は、フラッシュメモリ等の半導体メモリ素子、または、ＨＤＤ（Ｈａｒｄ  Ｄｉｓｃ  Ｄｒｉｖｅ）、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）、光ディスク等の記憶装置である。不揮発メモリ１１には、画像処理装置１を動作させるためのプログラムと、該プログラムを動作させるために必要なデータと、複数の認識対象物体の特徴点と、該認識対象物体に関する付帯情報と、該付帯情報に対応するユーザの動作とが記憶されている。入力インタフェース１２は、撮像装置１００とバス１５とを接続するインタフェースであり、出力インタフェース１３は、表示装置２００とバス１５とを接続するインタフェースである。メモリ１４は、レジスタやＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）等の記憶装置であり、ＣＰＵ１０のワークエリアとして使用される。
【００３４】
画像処理装置１は、具体的には、例えば入力インタフェース１２によって取得部３の機能を、出力インタフェース１３によって表示部９の機能を実現する。さらに、画像処理装置１は、例えば不揮発メモリ１１によって記憶部２の機能を実現する。そして、画像処理装置１は、例えば不揮発メモリ１１に格納されたプログラムをＣＰＵ１０が実行することにより、物体認識部４、移動推定部５、注視判定部６、動作量算出部７および動作判定部８の機能を実現する。
【００３５】
［物体認識部４の処理フロー］
図３は、実施例１にかかる物体認識部４の物体認識処理のフローチャートである。まず、物体認識部４は、取得部３から画像データ（フレーム）を取得して該画像データ（フレーム）から特徴点を抽出する（ステップＳ１０１）。なお、本発明において画像データ（フレーム）から抽出される特徴点は通常複数であることに留意されたい。
【００３６】
次に、物体認識部４は、ステップＳ１０１において物体認識部４が抽出した複数の特徴点が、取得した画像データ内の所定の周辺領域内に位置しているか判定する（ステップＳ１０２）。具体的には、物体認識部４は、該複数の特徴点を代表する座標値（例えば、前記複数の特徴点の重心など）が前記所定の周辺領域内に位置しているか判定する。ここで、本願明細書では画像データの周辺領域を、画像の両端からそれぞれ５分の１の領域とした場合について説明する。
【００３７】
図４は本実施例における画像データの周辺部の例である。図４のように、物体が上下に移動している場合は画像の上下端から５分の１ずつを周辺部として設定し、物体が左右に移動している場合は画像の左右端から５分の１ずつを周辺部として設定する。なお、周辺部の設定方法は上記手法に限定されるものではなく、例えば物体の移動方向に関わらず画像の淵から５分の１の領域を周辺部として設定するなど、管理者等が適宜設定することができる。
【００３８】
前記複数の特徴点が画像周辺部の所定の領域内に位置していない場合（ステップＳ１０２：Ｎｏ）、物体認識部４はステップＳ１０１の処理に戻り、該座標値が画像周辺部の所定の領域内に収まっている場合（ステップＳ１０２：Ｙｅｓ）、次の処理に進む。
【００３９】
次に、物体認識部４は、ステップＳ１０１において物体認識部４が抽出した複数の特徴点の各特徴点と、記憶部２が記憶しているすべての物体の複数の特徴点の各特徴点との照合が完了しているか否か判定する（ステップＳ１０３）。照合が完了していない場合（ステップＳ１０３：Ｎｏ）、物体認識部４は、記憶部２に記憶されている任意の一つの物体を選択する（ステップＳ１０４）。
【００４０】
次に、物体認識部４は、ステップＳ１０４において物体認識部４が選択した物体の複数の特徴点を記憶部２から読み出す（ステップＳ１０５）。さらに、物体認識部４は、ステップＳ１０１において物体認識部４が抽出した複数の特徴点から、任意の一つの特徴点を選択する（ステップＳ１０６）。
【００４１】
物体認識部４は、ステップＳ１０６において物体認識部４が選択した一つの特徴点と、ステップＳ１０５において物体認識部４が読み出した物体の特徴点との対応付けを探索する（ステップＳ１０７）。具体的には、物体認識部４は、ステップＳ１０６において物体認識部４が選択した一つの特徴点とステップＳ１０５において物体認識部４が読み出した物体の各特徴点との間の類似度として距離ｄを算出する。
【００４２】
次に、物体認識部４は、特徴点の対応付けの妥当性を判定するために閾値判定を行う（ステップＳ１０８）。具体的には、ステップＳ１０７において物体認識部４が算出した距離ｄの最小値ｄ１と、２番目に最小となる値ｄ２を算出する。そして、物体認識部４は、閾値判定として、ｄ１とｄ２との距離が所定の距離以上（例えばｄ１がｄ２に０．６を乗算した値よりも小さい値）かつｄ１が所定の値以下（例えば０．３以下）であるか否かを判定する。なお、閾値は上記したものに限らず、システム管理者等が適宜設定することができる。
【００４３】
閾値判定の条件を満たしている場合（ステップＳ１０８：Ｙｅｓ）、物体認識部４は、特徴点の対応付けを行う（ステップＳ１０９）。条件を満たしていない場合（ステップＳ１０８：Ｎｏ）、物体認識部４は、特徴点の対応付けを行わず、次の処理に進む。
【００４４】
次に、物体認識部４は、ステップＳ１０５において物体認識部４が読み出した複数の特徴点と、ステップＳ１０１において取得部３が取得した複数の特徴点とをすべて照合したかを判定する（ステップＳ１１０）。照合処理が完了している場合（ステップ１１０：Ｙｅｓ）、物体認識部４は、ステップＳ１０３に処理を進める。照合処理が完了していない場合（ステップＳ１１０：Ｎｏ）、物体認識部４は、ステップＳ１０６に処理を進める。
【００４５】
そして、ステップＳ１０３において、全ての照合が完了していると判定された場合（ステップＳ１０３：Ｙｅｓ）、物体認識部４は、ステップＳ１０９において物体認識部４が対応付けた特徴点の個数に基づいて、取得部３が取得した画像に含まれる１以上の物体を認識する（ステップＳ１１１）。
【００４６】
このようにして、物体認識部４は、取得部３が取得した画像データから、該画像データに含まれる１以上の認識対象物体を認識する。また、物体認識部４は、取得部３が取得する複数の画像データのすべてにおいて上述の認識処理を行ってもよく、所定時間ごとにキーフレームを定め、該キーフレームにおいてのみ認識処理を行ってもよい。
【００４７】
［移動推定部５の処理フロー］
図５は、移動推定部５による物体の移動速度及び方向の推定処理のフローチャートである。まず、移動推定部５は、物体認識部４が認識した物体の特徴点のうち、推定処理に用いるものを複数選出する（ステップＳ２０１）。なお、推定処理に用いる特徴点の数は複数（例えば、４点）であればよく、特徴点の選択基準及び数はシステム管理者等が推定処理の精度や処理の重さ等を勘案して適宜設定することができる。
【００４８】
次に、移動推定部５は、ステップＳ２０１で移動推定部５が選出した各特徴点の位置変動量（ｕ´、ｖ´）を、例えばオプティカルフローを用いて時系列に算出する（ステップＳ２０２）。なお、移動推定部５は、ステップＳ２０２における処理のロバスト性を向上させるために、必要に応じて位置変動量の上限を設定して位置変動量の妥当性を判断してもよい。例えば、前述のように人間の頭部の動作はおおよそ１秒程度であるので、利用者の視界に１秒以上存在する物体であれば追尾可能であると仮定し、フレームあたり位置変動量が「物体の移動方向の総画素数／１秒当たりフレーム数」以下であれば妥当であると判断してもよい。ただし、これはあくまで一例にすぎず、本発明の形態を限定するものではない。
【００４９】
次に、移動推定部５は、ステップＳ２０２で移動推定部５が算出した各特徴点のうち、移動推定に用いる複数の特徴点の位置変動量を平均化して、その値から物体の動きベクトル（ｕ´´、ｖ´´）を算出する（ステップＳ２０３）。ここで、動きベクトルのデータ構造について具体的に説明する。例えば、現時刻ｔに取得されたフレームをフレームｔと定義し、時刻ｔ−１との間の特徴点の移動量を動きベクトルとすると、フレームｔの動きベクトルは、例えば（ｘ，ｙ）を（９．３、−３．４）、過去時刻のフレームｔ−１の動きベクトルは（９．９、−２．８）、過去時刻のフレームｔ−２の動きベクトルは（８．１、−１．３）のように表せる。
【００５０】
次に、移動推定部５は、物体が画像データ内の周辺領域内を画像データの中心に向かって移動している間の各フレームの動きベクトルをフレーム数で平均化して、物体の平均速度Ｐを算出する（ステップＳ２０４）。具体的には、移動推定部５は、物体が画像データ内の周辺領域内を画像データの中心に向かって移動しているときの各フレームの動きベクトルの総和をフレーム数で除算して得られたベクトルの大きさを、物体の平均速度Ｐ（画素／フレーム）として算出する。このようにして、移動推定部５は、物体の特徴点の位置変動量を複数の画像データから算出し、該位置変化量から物体の平均速度を算出する。なお、移動推定部５は各フレームの動きベクトルの総和をフレーム数で除算して得られたベクトルの長さを平均速度Ｐとしてもよく、該ベクトルのｘ要素、もしくはｙ要素のみを平均速度Ｐとしてもよい。
【００５１】
［注視判定部６の処理フロー］
図６は、注視判定部６による注視対象の判定処理のフローチャートである。まず、注視判定部６は、移動推定部５が算出した、物体が画像データ内の周辺領域内及び中間領域内を移動しているときの該物体の動きベクトルの方向が画像中心方向を向いているか判定する（ステップＳ３０１）。具体例としては、注視判定部６は、フレームｔにおいて、フレームｔにおける物体の位置がフレームｔ−１における該物体の位置よりも画像の中心に近い場合、該動きベクトルの方向が画像中心方向に向かっていると判定する。ここで、本実施例では画像データの中間領域を、画像の両端から５分の１〜５分の２の領域とした場合について説明する。
【００５２】
図４は本実施例における画像データの中間部の例も示している。図４のように、物体が上下に移動している場合は画像の上下端から５分の１〜５分の２の領域を中間部として設定し、物体が左右に移動している場合は画像の左右端から５分の１〜５分の２の領域を中間部として設定する。なお、中間部の設定方法は上記手法に限定されるものではなく、例えば物体の移動方向に関わらず画像の淵から５分の１〜５分の２の領域を中間部として設定するなど、管理者等が適宜設定することができる。
【００５３】
移動推定部５が算出した物体の動きベクトルの方向が画像中心方向を向いていない場合（ステップＳ３０１：Ｎｏ）、注視判定部６は、該物体はユーザの注視対象ではないと判定し（ステップＳ３０６）、物体認識部４による物体認識処理に戻る。ただし、この判定方法はあくまで一例であり、本発明の形態を限定するものではない。
【００５４】
移動推定部５が算出した物体の動きベクトルの方向が画像中心方向を向いている場合（ステップＳ３０１：Ｙｅｓ）、注視判定部６は、物体が画像データ内の周辺領域内及び中間領域内を移動しているときの該物体の動きベクトルの大きさ（すなわち、該物体の速度）が一定であるか判定する（ステップＳ３０２）。具体例としては、注視判定部６は、物体が画像データ内の周辺領域内及び中間領域内を移動しているとき、所定のフレーム数（例えば、１０フレーム）において該物体の動きベクトルの大きさの変化が所定の割合（例えば、±５％）に収まっていれば、該物体の速度が一定であると判定する。ただし、この判定方法および具体値はあくまで一例であり、本発明の形態を限定するものではない。該物体の動きベクトルの大きさの変化が一定でない場合（ステップＳ３０２：Ｎｏ）、注視判定部６は、該物体はユーザの注視対象ではないと判定し（ステップＳ３０６）、物体認識部４による物体認識処理に戻る。
【００５５】
物体が画像データ内の周辺領域内及び中間領域内を移動しているときの該物体の動きベクトルの大きさが所定の範囲内に収まっている場合（ステップＳ３０２：Ｙｅｓ）、注視判定部６は、該物体の動きベクトルの向きが一定であるか判定する（ステップＳ３０３）。具体的には、注視判定部６は、所定のフレーム数（例えば、１０フレーム）において、物体が画像データ内の周辺領域内及び中間領域内を移動しているときの該物体の動きベクトルの角度が所定の範囲（例えば、±１６°）を超えて変化しなかったとき、該物体の動きベクトルの向きが一定であると判定する。ただし、この判定方法および具体値はあくまで一例であり、本発明の形態を限定するものではない。該物体の動きベクトルの向きが一定でない場合（ステップＳ３０３：Ｎｏ）、注視判定部６は、該物体はユーザの注視対象ではないと判定し（ステップＳ３０６）、物体認識部４による物体認識処理に戻る。
【００５６】
物体が画像データ内の周辺領域内及び中間領域内を移動しているときの該物体の動きベクトルの向きが所定の範囲内に収まっている場合（ステップＳ３０３：Ｙｅｓ）、注視判定部６は、該物体が画像の中心領域に到達した後にその位置に留まり続けているか判定する（ステップＳ３０４）。具体的には、注視判定部６は、該物体の座標が画像の中心領域に入った後、該物体の座標が所定のフレーム数（例えば、１０フレーム）の間継続して該領域内に収まり続けているとき、該物体が中心部に到達後その位置に留まっていると判定する。該物体の座標が継続して該領域内に収まらなかった場合（ステップＳ３０４：Ｎｏ）、注視判定部６は、該物体はユーザの注視対象ではないと判定し（ステップＳ３０６）、物体認識部４による物体認識処理に戻る。
【００５７】
該物体の座標が継続して該領域内に収まっている場合（ステップＳ３０４：Ｙｅｓ）、注視判定部６は、該物体はユーザの注視対象であると判定する（ステップＳ３０５）。なお、上記処理により複数の物体が注視対象として判定された場合、注視判定部６は座標値が最も画像の中心に近い物体を注視対象として選択してもよいし、ユーザによる選択に従って注視対象とする物体を選択してもよい。このようにして、注視判定部６は、物体の動きベクトルの向き及び大きさを用いてユーザの注視対象である物体を判定する。なお、注視判定部６による注視対象の判定処理は、移動推定部５による物体の移動速度及び方向の推定処理と並行して行われてもよく、該推定処理の後に行われてもよい。
【００５８】
［動作量算出部７の処理フロー］
図７は、動作量算出部７による物体の動作量算出処理のフローチャートである。まず、動作量算出部７は、注視判定部６がユーザの注視対象として判定した物体（以下、注視対象物体と呼称する）の各特徴点のうち、動作量算出に用いるものを複数選出する（ステップＳ４０１）。なお、動作量算出処理に用いる特徴点は複数であればよく、特徴点の選択基準及び数はシステム管理者等が適宜設定することができる。
【００５９】
次に、動作量算出部７は、ステップＳ４０１で動作量算出部７が選出した各特徴点の動きベクトルの変化量（ｘ´、ｙ´）を、例えばオプティカルフローを用いて時系列に算出する（ステップＳ４０２）。なお、動作量算出部７は、ステップＳ４０２における処理のロバスト性を向上させるために、必要に応じて位置変動量の上限を設定して位置変動量の妥当性を判断してもよい。前記位置変動量の妥当性を判断する方法としては、例えば、上記の理由に基づき、フレームあたり位置変動量が「物体の移動方向の総画素数／１秒当たりフレーム数」以下であれば妥当と判断するものが考えられる。ただし、これはあくまで一例にすぎず、本発明の形態を限定するものではない。
【００６０】
次に、動作量算出部７は、ステップＳ４０２で動作量算出部７が算出した各特徴点の位置変動量を平均化して、その値から注視対象物体の動きベクトル（ｘ´´、ｙ´´）を算出する（ステップＳ４０３）。動作量算出部７は、ｘ方向とｙ方向の動きベクトルを合成したものを注視対象物体の動きベクトルとしてもよいし、ｘ方向のみ、もしくはｙ方向のみに着目した動きベクトルを注視対象物体の動きベクトルとしてもよい。このようにして、動作量算出部７は、注視対象物体の特徴点の位置変動量を複数の画像データから算出し、該位置変化量から注視対象物体の動きベクトルを算出する。
【００６１】
［動作判定部８の処理フロー］
図８は、動作判定部８によるユーザの動作判定処理のフローチャートである。まず、動作判定部８は、動作量算出部７が算出した注視対象物体の動きベクトル（ｘ´´、ｙ´´）を、メモリ１４に格納する（ステップＳ５０１）。次に、動作判定部８は、移動推定部５が算出した注視対象物体の平均速度Ｐと、利用者と注視対象物体との位置関係が不変な状態における所定のフレーム数（例えば、３０フレーム）Ｆｓを用いて、判定に必要なフレーム数Ｆを求める（ステップＳ５０２）。
【００６２】
前述のように、ユーザが動いている物体を注視しているときの頭部動作時間は、ユーザが停止している物体を注視しているときの頭部動作時間よりも短く、また、ユーザが注視している物体が高速で移動しているほど、頭部動作時間は短くなる傾向がある。したがって、ユーザが動いている物体を注視している場合、物体の移動速度によらず一定のフレーム数で動きベクトルを平均化すると、実際の頭部動作の速度とのずれが生じ、正確にユーザの動作を判定できない可能性がある。
【００６３】
そこで、本発明では、判定に必要なフレーム数Ｆを、以下の式を用いて求める。なお、ｋは定数であり、本実施例ではｋ＝１．０である場合について説明する。
【数１】
2014048882.tif 000003
例えば、Ｆｓが３０フレーム、ｋ（定数）を１．０、平均速度Ｐを１．０（画素／フレーム）とすると、必要なフレーム数Ｆは２５フレームとなる。
【００６４】
次に、動作判定部８は、所定のフレーム数の動きベクトルを算出したか否かを判定する（ステップＳ５０３）。所定のフレーム数とは、ステップＳ５０２において動作判定部が求めたフレーム数Ｆのことであり、上述の例であれば２５フレームである。
【００６５】
所定のフレーム数の動きベクトルを格納していると判定された場合（ステップＳ５０３：Ｙｅｓ）、動作判定部８は、格納した動きベクトルを所定のフレーム数で平均化することで、平均動きベクトル（Ｘ、Ｙ）を求める（ステップＳ５０４）。所定のフレーム数の動きベクトルを格納していないと判定された場合（ステップＳ５０３：Ｎｏ）、動作判定部８は、ステップＳ５０１に処理を戻す。
【００６６】
次に、動作判定部８は、注視対象物体の移動方向及び平均速度Ｐに応じたユーザ動作対応テーブルを選択する（ステップＳ５０５）。先述のように、ユーザが注視物体の移動方向と平行に頭部を動作させる場合、注視物体の移動速度が大きいほど動作速度も大きくなる（動作時間が短くなる）。また、注視対象物体の移動方向と同じ方向に頭部を動作させる場合と、注視対象物体の移動方向と逆方向に頭部を動作させる場合では動作速度が異なることも予想される。したがって、本発明では、物体の移動方向及び速度ごとに異なるユーザ動作対応テーブルを用意し、その中から注視対象物体の移動方向及び平均速度Ｐに対応するものを選択する。
【００６７】
図９は本発明におけるユーザ動作対応テーブルの例である。図９において、物体の移動方向及び物体の移動速度ごとに異なるユーザ動作対応テーブルが記憶部２に格納されている。各ユーザ動作対応テーブルには、物体の移動方向ごとに、ユーザ動作と、基準動きベクトル（Ｘ´、Ｙ´）と、公差範囲とが対応付けられて格納されている。例えば、Ｐ＝１５（画素／フレーム）、注視対象物体の移動方向が左向きであった場合、動作判定部８は、上から１行目（物体の移動方向左）左から２列目（移動速度１０以上２０未満）の表をユーザ動作の判定処理に用いるユーザ動作対応テーブルとして選択する。
【００６８】
次に、動作判定部８は、ステップＳ５０５において動作判定部８が選択したユーザ動作対応テーブルにおいて、該テーブル内の基準動きベクトル（Ｘ´、Ｙ´）と平均動きベクトル（Ｘ、Ｙ）とを比較してユーザの動作を判定する（ステップＳ５０６）。
【００６９】
例えば、ステップＳ５０５において上述の表が選択されたとき、ステップＳ５０４において求められた平均動きベクトルが（−１３．１、２．６）であった場合について説明する。このとき、基準ベクトル（−１５，０）に最もベクトル量が近く、さらに予め許容量として定めた公差範囲（±５，±５）以内であるため、動作判定部８は、ユーザは頭部を右に振ったと判定する。なお、ユーザ動作、基準動きベクトル、公差範囲は、上記した値に限らずシステム管理者等が任意に設定できる。また、本実施例では物体の移動速度を１０画素／フレームごとに区切ってユーザ動作対応テーブルを作成したが、実際には本発明の趣旨を逸脱しない範囲で種々の方法を用いることができる。
【００７０】
このように、動作判定部８はユーザの動きベクトルを物体の移動速度に応じたフレーム数で平均することで平均動きベクトルを算出し、該平均動きベクトルと物体の移動方向及び速度に応じたユーザ動作対応テーブルとを用いてユーザの動作を判定する。
【００７１】
［動作判定部８の第二の処理フロー］
図１０は、動作判定部８による第二のユーザの動作判定処理のフローチャートである。動作判定部８は、物体の移動速度に応じた所定のフレーム数を算出することなく、ユーザ動作の往路の開始および終了を検出し、その間の動きベクトルの累積値または平均を用いてユーザの動作を判定することもできる。なお、以降の説明では動きベクトルの累積値を用いた場合について説明する。
【００７２】
まず、動作判定部８は、動作量算出部７が算出した注視対象物体の動きベクトル（ｘ´´、ｙ´´）を、メモリ１４に格納する（ステップＳ６０１）。次に、動作判定部８は、動きベクトルが往路の開始条件及び終了条件の両方を満たしているか否か判定する（ステップＳ６０２）。前述のように、動作判定部８は、往路の開始および終了を予め定められた周知のアルゴリズムによって認識することができる。動きベクトルが往路の開始条件及び終了条件を満たしていないと判定された場合（ステップＳ６０２：Ｎｏ）、動作判定部８は、ステップＳ６０１に処理を戻す。
【００７３】
動きベクトルが往路の開始条件及び終了条件を満たしていると判定された場合（ステップＳ６０２：Ｙｅｓ）、動作判定部８は、往路の開始フレームから終了フレームまでの動きベクトルの累積値を算出する（ステップＳ６０３）。
【００７４】
次に、動作判定部８は、注視対象物体の移動方向及び平均速度Ｐに応じたユーザ動作対応テーブルを選択する（ステップＳ６０４）。なお、本処理フローを適用する場合、各ユーザ動作対応テーブルには、ユーザ動作と、動きベクトルのモデル累積値と、公差範囲とが対応付けられて格納されているものとする。
【００７５】
動作判定部８は、ステップＳ６０４において動作判定部８が選択したユーザ動作対応テーブルにおいて、該テーブル内の動きベクトルのモデル累積値とステップＳ６０３において算出された動きベクトルの累積値とを比較してユーザの動作を判定する（ステップＳ６０５）。
【００７６】
このように、ユーザの頭部動作の往路の開始および終了を検出し、往路にかかったフレーム数の動きベクトルの累積値または平均値を用いてユーザの動作を判定することにより、ユーザの動作をより正確に判定することができる。なお、判定には往路の動きベクトル累積値または平均値だけでなく、復路の動きベクトル累積値または平均値、あるいは往路と復路両方の動きベクトル累積値または平均値を用いてもよい。ただし、往路と復路両方の動きベクトル累積値または平均値を用いる場合は、動きベクトルの絶対値を用いて累積値または平均値を得るものとする。
【実施例２】
【００７７】
また、動作量算出部７は動きベクトルを所定のフレーム数蓄積することでユーザの動きベクトルの時間変化パターンを生成し、動作判定部８は該時間変化パターンをユーザの動作をモデル化したモデル時間変化パターンのうちのいずれかと対応付けることでユーザの動作を判定することも可能である。図１１は異なる物体の移動速度におけるユーザの動きベクトルのモデル時間変化パターンの例である。図１１において、（ａ）は物体が静止している場合におけるユーザの頭部動作時の動きベクトルのモデル時間変化パターン、（ｂ）は物体が低速で移動している場合におけるユーザの頭部動作時の動きベクトルのモデル時間変化パターン、（ｃ）は物体が高速で移動している場合におけるユーザの頭部動作時の動きベクトルのモデル時間変化パターンを表している。
【００７８】
図１１（ａ）において、フレーム番号９〜１５（合計７フレーム）が往路に、フレーム番号１６〜２８（合計１３フレーム）が復路に相当する。また、図１１（ｂ）においては、フレーム番号１１〜１５（合計５フレーム）が往路に、フレーム番号１６〜２３（合計８フレーム）が復路に相当する。同様に、図１１（ｃ）においてはフレーム番号１１〜１４（合計４フレーム）が往路に、フレーム番号１５〜２１（合計７フレーム）が復路に相当する。このように、モデル時間変化パターンは、ユーザが高速で移動する物体を注視しているときの頭部動作ほど、動作時間が短く、かつ動きベクトルが大きくなるように設定されている。
【００７９】
本実施例では、モデル時間変化パターンは物体の移動方向及び移動速度ごとにあらかじめ作成され記憶部２に格納されている。動作判定部８は、物体の移動方向及び移動速度に応じたモデル時間変化パターンを選択し、先願（特願２０１１−２６８３７８）と同様の方法でユーザの動作を判定する。また、動作判定部８は、実際のユーザの動作に応じて、前記モデル時間変化パターンを修正してもよい。具体的には、モデル時間変化パターンとユーザの動きベクトルの時間変化パターンとを対応付けたとき、該モデル時間変化パターンを該ユーザの動きベクトルの時間変化パターンに更新することで、よりユーザの動作に近いモデル時間変化パターンを動作判定に用いることができる。
【００８０】
また、物体の移動速度に応じたユーザの動きベクトルの時間変化パターンの変化が予想可能である場合は、ある物体の移動速度（例えば、物体が静止しているとき）におけるモデル時間変化パターンを移動速度に応じて変形させることで移動速度ごとのモデル時間変化パターンを作成してもよい。また、モデル時間変化パターンとユーザの動きベクトルの時間変化パターンとを照合する際は、例えば、往路のみ照合、往路及び復路を照合など、照合に用いる箇所を限定してもよい。
【００８１】
なお、モデル時間変化パターンと動きベクトルの時間変化パターンとの比較には、先願（特願２０１１−２６８３７８）に開示された類似度計算のほか、双方の時間変化パターンの特徴量を抽出して比較する方法や、双方の時間変化パターンをハッシュ関数等で数値化し、双方の数値のマッチングをとる方法等を用いることができる。
【００８２】
ここまで、物体の移動方向は水平もしくは垂直方向であるものとして説明を行ってきたが、本実施例は物体が斜め方向に移動している場合にも適用可能である。この場合は、移動推定部５にて取得した物体の動きベクトルを、首の回転方向に対して平行な成分と、首の回転方向に対して垂直な成分とで表すことで、以降は物体が水平または垂直に動く場合と同様に扱うことができる。
【００８３】
以上説明したように、本実施例によれば、ユーザが動いている物体を注視している場合におけるユーザの動作を検知することができる。
【００８４】
図１２は、一つの実施形態による画像処理装置１を含むＨＭＤ３００の構成図である。ＨＭＤ３００には、ユーザが注視対象物体を特定しやすいように、眼鏡型の筐体を用いて撮像装置１００を両目の中心に位置するように配置してもよい。また、図示しないが撮像装置１００を複数配置してステレオ映像を用いてもよい。表示装置２００には、ユーザが外界を認識できるようにシースルー型ディスプレイを用いてもよい。
【００８５】
また、図示した各装置の各構成要素は、必ずしも物理的に図示のごとく構成されていることを要しない。すなわち、各装置の分散・統合の具体的形態は図示のものに限られず、その全部または一部を、各部の負荷や使用状況などに応じて任意の単位で機能的または物理的に分散・統合して構成することができる。また、上記の実施例で説明した各種の処理は、あらかじめ用意されたプログラムをパーソナルコンピュータやワークステーションなどのコンピュータで実行することによって実現することができる。
【符号の説明】
【００８６】
１      画像処理装置
２      記憶部
３      取得部
４      物体認識部
５      移動推定部
６      注視判定部
７      動作量算出部
８      動作判定部
９      表示部
１０    ＣＰＵ
１１    不揮発メモリ
１２    入力インタフェース
１３    出力インタフェース
１４    メモリ
１５    バス
１００  撮像装置
２００  表示装置
３００  ＨＭＤ
【図１】
2014048882.tif 000004
【図２】
2014048882.tif 000005
【図３】
2014048882.tif 000006
【図４】
2014048882.tif 000007
【図５】
2014048882.tif 000008
【図６】
2014048882.tif 000009
【図７】
2014048882.tif 000010
【図８】
2014048882.tif 000011
【図９】
2014048882.tif 000012
【図１０】
2014048882.tif 000013
【図１１】
2014048882.tif 000014
【図１２】
2014048882.tif 000015