(57)【要約】【課題】追跡結果の安定化を図ることのできる情報処理装置を提供する。【解決手段】情報処理装置10であって、第一フレームレートで撮像を行うことで得られる、第一フレームレートよりも低い第二フレームレートの単位間隔を満たして時間軸上に並ぶ複数のフレームに対して、当該フレーム間の全て又は一部よりフレーム内の対象の動きを探索する探索部6と、前記探索された動きを合成して第二フレームレートにおける動きを得る推定部7と、を備える。さらに、前記合成された動きに基づいた第二フレームレートでの表示を行う出力部8を備え、前記第二フレームレートでの表示を行うに際して、前記第一フレームレートで撮像を行うことで得られるフレームを当該第二フレームレートにおいて表示する。【選択図】図１
2019139310.tif 000002
【特許請求の範囲】
【請求項１】
第一フレームレートで撮像を行うことで得られる、第一フレームレートよりも低い第二フレームレートの単位間隔を満たして時間軸上に並ぶ複数のフレームに対して、当該フレーム間の全て又は一部よりフレーム内の対象の動きを探索する探索部と、
前記探索された動きを合成して第二フレームレートにおける動きを得る推定部と、を備えることを特徴とする情報処理装置。
【請求項２】
前記合成された動きに基づいた第二フレームレートでの出力を行う出力部をさらに備えることを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記出力部では、前記第二フレームレートでの出力を表示によって行うことを特徴とする請求項２に記載の情報処理装置。
【請求項４】
前記出力部はさらに、前記第二フレームレートでの表示を行うに際して、前記第一フレームレートで撮像を行うことで得られるフレームを当該第二フレームレートにおいて表示することを特徴とする請求項３に記載の情報処理装置。
【請求項５】
前記探索部では、前記フレーム間においてフレーム内の対象の動きを探索するに際して、当該フレーム間の間隔に応じた探索範囲において探索を行うことを特徴とする請求項１ないし４のいずれかに記載の情報処理装置。
【請求項６】
前記探索部では、領域追跡によって、前記フレーム間においてフレーム内の対象の動きを探索することを特徴とする請求項１ないし５のいずれかに記載の情報処理装置。
【請求項７】
前記探索部では、前記複数のフレームの両端にあるフレーム間で対象の動きを最初に探索し、
当該最初の探索に成功した場合には、前記推定部では当該探索に成功した動きを第二フレームレートにおける動きとして採用し、
当該最初の探索に失敗した場合には、前記探索部では前記複数のフレームの両端にあるフレームと、当該両端以外にあるフレームと、の間でフレーム内の対象の動きを探索し、前記推定部では当該探索された動きを合成して第二フレームレートにおける動きを得ることを特徴とする請求項１ないし６のいずれかに記載の情報処理装置。
【請求項８】
さらに、前記第一フレームレートで撮像を行うことにより得られるフレームより対象を特徴情報に基づいて検出する検出部を備え、
当該対象が前記検出されたフレームより後のフレームに対して、当該検出された結果に基づいて前記探索部は前記フレーム間においてフレーム内の対象の動きを探索することを特徴とする請求項１ないし７のいずれかに記載の情報処理装置。
【請求項９】
さらに、前記第一フレームレートで撮像を行うことにより得られるフレームより対象を特徴情報に基づいて検出する検出部を備え、
当該対象が前記検出されたフレームより後のフレームに対して、当該検出された結果に基づいて前記探索部は前記フレーム間においてフレーム内の対象の動きを探索し、
前記出力部では、前記検出された対象に応じた付随情報を、前記第二フレームレートで出力することを特徴とする請求項２ないし４のいずれかに記載の情報処理装置。
【請求項１０】
第一フレームレートで撮像を行うことで得られる、第一フレームレートよりも低い第二フレームレートの単位間隔を満たして時間軸上に並ぶ複数のフレームに対して、当該フレーム間の全て又は一部よりフレーム内の対象の動きを探索する探索段階と、
前記探索された動きを合成して第二フレームレートにおける動きを得る推定段階と、を備えることを特徴とする情報処理方法。
【請求項１１】
コンピュータを請求項１ないし９のいずれかに記載の情報処理装置として機能させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、追跡結果の安定化を図ることのできる情報処理装置、方法及びプログラムに関する。
【背景技術】
【０００２】
画像から対象を判定して認識する技術は、一つの応用例として配布や提示が容易な媒体に記載されたアナログ情報からデジタル情報に変換させることが可能であり、利用者の利便性を向上させることができる。当該技術としては、非特許文献１のものが公開されている。非特許文献１では、画像から特徴点を検出し、特徴点周辺から特徴量を算出した上で、事前に蓄積しておいた特徴量と比較することによって、対象の種類および相対的な位置関係を特定する。
【０００３】
一方、上記のような特徴点及び特徴量に基づく判定に関してさらに、精度を安定させる技術としては、例えば特許文献１のようなものが公開されている。特許文献１では、対象の追跡テンプレートを動的に更新する方法を開示している。非特許文献１等で対象を検出した後に入力画像を補正した画像を追跡テンプレートとし、追跡テンプレートで特徴点をテンプレートマッチングによる追跡で特徴点座標を求め、対象の姿勢を推定する。追跡テンプレートが後続の画像中で追跡されている対象の実際の画像から生成されるので、有効な安定した追跡を可能にし得る。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１６−２８３３１号公報
【非特許文献】
【０００５】
【非特許文献１】D. G. Lowe, ``Object recognition from local scale-invariant Features,'' Proc. of IEEE International Conference on Computer Vision (ICCV), pp.1150-1157, 1999.
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、以上のような非特許文献１や特許文献１といった従来技術には、認識結果ないし追跡結果が不安定となることがあるという課題があった。
【０００７】
具体的には、非特許文献１は、斜めから撮像した場合、射影歪みに依って特徴量が変化し、事前に登録している特徴量と一致できないと判定処理が全く機能しないという課題がある。また、撮像対象が遠くから撮像された場合でも、特徴量算出に用いられる領域が検出すべき対象の占める領域に対して相対的に広くなるため、特徴量が変化し、事前に登録している特徴量と一致できないと判定処理が全く機能しないという課題がある。
【０００８】
また、特許文献１では、一旦検出した対象を追跡するため、正面で検出できていれば斜めに移動した場合でも姿勢を推定できることから前記課題の一部を解決できる。しかし、補正に利用する姿勢情報に誤差が存在すると、テンプレートにも誤差が発生するだけでなく、当該テンプレートで追跡した誤差が蓄積することで精度が大幅に低下あるいは追跡に失敗するという課題がある。
【０００９】
上記従来技術の課題に鑑み、本発明は、追跡結果の安定化を図ることのできる情報処理装置、方法及びプログラムを提供することを目標とする。
【課題を解決するための手段】
【００１０】
上記目的を達成するため、本発明は情報処理装置であって、第一フレームレートで撮像を行うことで得られる、第一フレームレートよりも低い第二フレームレートの単位間隔を満たして時間軸上に並ぶ複数のフレームに対して、当該フレーム間の全て又は一部よりフレーム内の対象の動きを探索する探索部と、前記探索された動きを合成して第二フレームレートにおける動きを得る推定部と、を備えることを特徴とする。また当該装置に対応する方法及びプログラムであることを特徴とする。
【発明の効果】
【００１１】
本発明によれば、高い第一フレームレートを前提とした動き探索を行い、その結果を合成することによって低い第二フレームレートにおける動きを得ることで、追跡結果の安定化を図ることができる。
【図面の簡単な説明】
【００１２】
【図１】一実施形態に係る情報処理装置の機能ブロック図である。
【図２】一実施形態における探索部、推定部及び出力部の処理内容の相互の関係を模式的に示す図である。
【図３】逐次処理としての一実施形態に係る情報処理装置の動作のフローチャートである。
【図４】バッチ処理としての一実施形態に係る情報処理装置の動作のフローチャートである。
【図５】動きを求める際のフレーム間の間隔に応じた探索範囲の設定の模式例を示す図である。
【図６】隣接フレームよりも離れたフレームであっても探索対象とする利点を説明するための模式例を示す図である。
【発明を実施するための形態】
【００１３】
図１は、一実施形態に係る情報処理装置の機能ブロック図である。図示するように、情報処理装置10は、撮像部1、バッファ部2、スイッチ部3、検出部4、記憶部5、探索部6、推定部7及び出力部8を備える。ここで、情報処理装置10を実現するハードウェア構成としては撮像部1を備える任意の情報端末を利用することができ、携帯端末の他、タブレット型端末、デスクトップ型又はラップトップ型のコンピュータその他を利用することができる。また、撮像部1以外の機能部の一部又は全てをサーバーに設置し、図１にて示される機能部間での情報授受を、ネットワーク等を経由した通信で実現するようにしてもよい。逆に、撮像部1がネットワーク上に存在して、これから取得した撮像画像を情報処理装置10において処理するようにしてもよい。図１の各機能部の処理内容の概要は以下の通りである。
【００１４】
撮像部1は、ユーザによるカメラ撮像の操作を受けて対象の撮像を行い、得られた撮像画像をバッファ部2へと出力する。撮像部1による撮像は第一フレームレートにおいて行われ、映像すなわち時系列上の各時刻のフレームとしての撮像画像がバッファ部2へと出力される。なお、図１中では「フレームレート」を「レート」と略記している。撮像部1を実現するハードウェアとしては、近年では携帯端末には標準装備されることの多いデジタルカメラを利用することができる。
【００１５】
以下の説明における変数名の表記として、整数iでその順番を指定される時刻を「時刻ti」、当該時刻tiにおいて撮像部1による撮像により得られた撮像画像を「フレームFi」と表記することとする。すなわち、「フレームFi」は「撮像画像Fi」と同一であるが、以下の説明において時間軸上での処理に関して言及する際には、「フレームFi」等の表現を主に用いることとする。
【００１６】
バッファ部2は、撮像部1より得られる各時刻tiのフレームFiを一時的に保存することにより、（スイッチ部3を経由した）検出部4及び探索部6によるフレームFiの参照と、出力部8によるフレームFiの参照と、を可能とさせるものである。一実施形態においては、（スイッチ部3を経由した）検出部4及び探索部6からのフレームFiの当該参照は、撮像部1における撮像レートと同じ第一フレームレートにおいてなされ、出力部8からのフレームFiの当該参照は第一フレームレートより低い第二フレームレートにおいてなされる。
【００１７】
なお、バッファ部2において各時刻tiのフレームFiを一時的に保存する期間は、少なくとも、以下に説明する検出部4及び探索部6並びに出力部8の処理が可能となるような期間であればよい。バッファ部2では、当該期間が経過することにより参照対象としては不要となったフレームFiを破棄してよい。
【００１８】
スイッチ部3は、フレームFi内における所定の検出対象が検出部4によって未検出の間はバッファ部2の各フレームFiを検出部4へと供給し、検出部4により当該対象の検出がなされた後の時刻の各フレームFiは、当該対象をフレーム内において継続して追跡させるべく探索部6へと供給するようスイッチング処理を行う。なお、当該対象の探索部6による継続追跡が不可能となった際は、スイッチ部3は再度、各フレームFiを検出部4へと供給する状態へと戻る。
【００１９】
検出部4では、上記の通り所定対象が未検出の際にスイッチ部3から供給される各時刻tiのフレームFiから画像特徴量を抽出し、記憶部5に記憶された所定対象の画像特徴量と照合することにより、当該所定対象の検出を試みる。ここで、ある時刻t0において検出に成功したものとすると、検出部4は検出結果としての当該時刻t0におけるフレームF0内において所定対象が占める領域R0の情報を、探索部6へと出力する。
【００２０】
検出部4において当該検出するための画像特徴量としては、任意種類の既存のものを用いてよく、任意種類の特徴点（対象におけるコーナーなどの特徴的な点としてのキーポイント）検出及び当該特徴点から抽出される任意種類の局所特徴量に基づく画像特徴量を利用してよい。特徴点検出と局所特徴量抽出の手法に関してはそれぞれ、前掲の非特許文献1等に開示のSIFT (Scale-Invariant Feature Transform)やSURF (Speeded Up Robust Features)などの既存手法が利用できる。ここで、特徴点の座標情報（特に複数の特徴点の相対的配置の座標情報）を含めて画像特徴量を定義しておいてもよいし、座標情報は除外して局所特徴量のみで画像特徴量を定義しておいてもよい。例えば、対象の個別の局所特徴量（実数ベクトルとして構成されるもの）をさらにビジュアルワードに量子化したうえで、対象全体でのビジュアルワードをヒストグラム化したバグ・オブ・ビジュアルワードとして画像特徴量を定義しておいてもよい。
【００２１】
記憶部5では検出部4が抽出するのと同種類の画像特徴量を、１つ以上の所定の検出対象ごとにその画像から抽出されたものとして予め記憶しておき、検出部4では当該フレームFiより抽出された画像特徴量と記憶部5に予め記憶された画像特徴量とが閾値判定で類似すると判定された場合に、記憶された画像特徴量に対応する所定対象がフレームFiより検出されたと判定することができる。類似判定の際には、画像特徴量間の距離を計算して当該距離が小さいと判定されるものを類似していると判定すればよい。画像特徴量が特徴点の座標情報を含めて定義されている場合は、ホモグラフィ行列等の算出で評価される特徴点座標間の幾何整合の対応関係も考慮して特徴点間のマッチングを行い、当該幾何整合の度合いも反映されたものとして画像特徴量間の距離を計算するようにしてもよい。
【００２２】
検出部4ではまた、上記のように画像特徴量の抽出処理に基づいた検出ではなく、より一般に画像特徴を評価することによる検出を行うようにしてもよい。例えば、テンプレートマッチングでフレームFiから対象検出を行うようにしてもよい。この場合、記憶部5に予め１つ以上の検出対象ごとにテンプレート画像を記憶しておき、検出部4で当該テンプレート画像を用いたフレームFi内のサーチを行うようにすればよい。
【００２３】
探索部6では、検出部4が上記時刻t0において所定対象の検出に成功した後の時刻t1,t2,…のフレームF1,F2,…に関して、フレーム内で当該所定対象の占める領域の動きを別時刻のフレーム間において探索することにより、当該所定対象を追跡する。当該追跡結果としての動きの探索結果は推定部7へと出力される。
【００２４】
探索部6では、ある時刻tiにおいてフレームFi内に領域Riとして所定対象が既に検出済み又は探索済みとなっている場合に、当該領域Riの情報を利用して、別の時刻ti+k（kは正でも負でもよい。）のフレームFi+kにおいて当該所定対象の領域Ri+kを探索することで、フレームFiの領域RiからフレームFiの領域Ri+kへの動きM(i,i+k)の情報を得る。ここで、当該探索の際の探索元フレームFi及び探索先フレームFi+kをどのように設定し、どのような順番で当該探索を実施するかに関しては種々の実施形態が可能であり、後述する図３や図４において当該種々の実施形態を説明する。
【００２５】
一実施形態において探索部6における当該探索処理には、領域追跡法として既存手法であるテンプレートマッチングを用いてよい。当該用いるテンプレート画像としては、検出部4で検出に成功した際に、当該検出対象に関してあらかじめ記憶部5に記憶しておく所定のテンプレート画像を記憶部5から読み込んで用いてもよいし、探索元のフレームFiの領域Riそれ自体を、随時更新されるテンプレート画像として利用するようにしてもよい。この際、時刻t0での検出部4による検出領域R0のみを固定的にテンプレート画像として利用してもよい。また、別の一実施形態において探索部6における当該探索処理には、領域追跡法として既存手法であるパーティクルフィルタを用いることにより、領域Riから領域Ri+kを推定するようにしてもよい。
【００２６】
推定部7は、上記の探索部6から第一フレームレートにおいて得られる動きの探索結果を時間軸上において合成することにより、第二フレームレートにおける動きの推定結果を得て、当該第二フレームレートにおける動き推定結果を出力部8へと出力する。
【００２７】
ここで、動きM(i,i+k)の情報が領域Ri,Ri+k間の座標変換の行列M(i,i+k)として与えられている場合、第二フレームレートの動きDを以下の式(1)のように当該行列M(i,i+k)の積として合成することができる。
【００２８】
【数１】
2019139310.tif 000003
【００２９】
なお、動きM(i,i+k)の情報が領域Ri,Ri+k間の座標の並進ベクトルM(i,i+k)として与えられている場合には、以下の式(2)のように積ではなく当該ベクトルの和として簡略化された形で動きDを合成して得ることができる。
【００３０】
【数２】
2019139310.tif 000004
【００３１】
なお、以上の２つの式(1),(2)において積や和を取る対象は、第二フレームレートの動きDの期間内にあって、第一フレームレートを前提として探索部6により探索された全ての動きM(i,i+k)であり、以上の２つの式ではインデクスiで当該対象を表現している。当該インデクスiで表現される積や和を取る対象の種々の実施形態は、探索部6の具体的な探索に応じて定まるものであるので、同じく後述の図３や図４において当該種々の実施形態を説明する。なお、積を取る場合は、取得された動きの時刻の順番で積を取ればよい。
【００３２】
出力部8は、推定部7から得られる第二フレームレートでの対象の動き推定結果（当該推定結果はすなわち、検出部4で検出されて以降の時刻における対象のフレーム内位置の推定結果にも対応する内容である。）に基づく所定の加工処理を、バッファ部2から得られる第二フレームレートでの各フレームFiに対して施すことにより、第二フレームレートにおける出力情報を得て表示する。すなわち、出力部8により表示される出力情報の更新間隔は、第二フレームレートの逆数となる。
【００３３】
出力部8ではさらに、検出部4において所定対象が検出された際に特定される当該所定対象が何であるかの認識結果に応じた所定の情報（検出対象に応じた付随情報）を、当該情報を予め記憶している記憶部5から読み込んで、当該加工処理を行うことができる。一実施形態において出力部8では、当該加工処理を施した第二フレームレートでの出力情報として、撮像部1において第一フレームレートで得られる撮像画像Fiに対して第二フレームレートにおいて拡張現実表示を施した出力情報を得て、表示するようにすることができる。
【００３４】
出力部8においては、拡張現実表示の既存技術を用いることで、撮像画像Fiに対して、撮像されている実空間の３次元構造に整合させて、検出及び追跡された所定対象に対して拡張現実表示を行った出力情報を得るようにすることもできる。この場合、撮像部1を構成するハードウェアとしてのカメラと、撮像画像Fiにおいて検出及び追跡された所定対象と、の空間的な相対的位置関係の情報を用いるようにすればよい。
【００３５】
ここで、出力部8では、個々の出力動き情報（すなわち、第二フレームレートで得られている時系列上の個々の動きD）から求まる対応点群にDLTや8点アルゴリズム等の既存手法を適用することにより、カメラ-所定対象間やカメラ-カメラ間の相対的位置関係を推定することができる。すなわち、まず、検出部4において時刻t0に所定対象を検出する際に、画像特徴量として個別の特徴点の座標情報が含まれるものを利用することで、検出時刻t0におけるカメラ-所定対象間の相対的位置関係をホモグラフィ行列H0の形で求めることができる。検出後において第二フレームレートで動きD1,D2,D3,…が求まるものとすると、当該動きに対応する相対的位置関係を上記既存手法によりホモグラフィ行列H1,H2,H3…として求めることができる。したがって、出力部8ではこれらの積として、検出後の第二フレームレートでの相対的位置関係をH1・H0, H2・H1・H0, H3・H2・H1・H0,…として求めることができる。
【００３６】
なお、出力部8はハードウェアとしてはディスプレイで実現することができる。当該ディスプレイは通常の液晶モニタ等による非シースルー型のものとして構成されていてもよいし、液晶や有機ELモニタ等によるシースルー型のものとして構成されていてもよい。なお、シースルー型のものとして構成される場合に出力部8で拡張現実表示を実現する場合には、出力部8ではバッファ部2から撮像画像Fiを受け取って表示することを省略してもよい。また、シースルー型のものとして例えばヘッドマウントディスプレイ（HMD）の形態で構成される場合には、カメラとしての撮像部1による撮像画像Fiにおける対象の検出位置に対して、シースルー型HMDにおいて当該検出位置の対応位置において拡張現実の重畳表示を行った際に、ユーザ視界での実世界に実物としての検出対象が見えている位置と、撮像画像Fiにおける検出位置の対応位置としての重畳表示位置とが整合するように、カメラとシースルー型HMDとの間でキャリブレーションを行っておくことが望ましい。
【００３７】
なお、以上では情報処理装置10を適用するのに好適な一例として、出力部8で拡張現実表示等の視覚に関連した出力情報を得る例を説明したが、これに代えて又はこれに加えて、その他の任意の知覚に関連した出力情報を、動きDに基づいて加工されたものとして得るようにしてもよい。例えば、動きDに応じた音声出力を得るようにしてもよい。また、動きDをそのままテキスト情報等の形で出力するようにしてもよい。（この場合は、情報処理装置10において出力部8は省略され、推定部7からの出力を情報処理装置10からの出力とする構成に相当する。）また、動きDに応じてその他のアクチュエータや機器等を制御するための制御出力を得るようにしてもよい。この場合には、音声、テキスト情報、制御等の出力情報の出力間隔が第二フレームレートに相当する。
【００３８】
記憶部5では、上記の検出部4における検出を可能とするために、画像特徴量等として構成される検出対象の特徴情報を記憶しておくと共に、上記の出力部8における加工処理による出力情報の生成を可能とするために、当該検出対象の種類ごとにその付随情報を記憶しておき、検出部4及び出力部8に対して当該各情報を参照に供する。記憶部5における当該記憶しておく情報は管理者等が予め用意しておけばよい。
【００３９】
図２は、検出部4において時刻t0でフレームF0より対象が検出されてから後の各フレームFiに対する探索部6、推定部7及び出力部8による、一実施形態に係る処理内容の相互関係を模式的に示す図である。図２にて[1]は探索部6の探索処理を、[2]は当該探索処理に連携した推定部7及び出力部8における推定処理及び出力処理を模式的に示している。
【００４０】
すなわち、図２にて[1]に示すように、探索部6は撮像部1の撮像のフレームレートと同じ第一フレームレートにおいて、隣接時刻ti及びti+1(i=0,1,2,…6)にある隣接フレームFi及びFi+1(i=0,1,2,…6)の間での検出対象（図中、模式的にフレーム内に白丸（〇）で表現されている。）の動きM(i,i+1)(i=0,1,2,…6)（図中、模式的に湾曲した矢印で表現されている。）を探索する。そして、図２にて[2]に示すように、推定部7では探索部6により当該探索された7個の動きM(i,i+1)(i=0,1,2,…6)を前述の式(1)又は(2)により合成したものとして、フレームF0及びF7の間で定義された第二フレームレートの動きM(0,7)を得ると共に、当該得られた動きM(0,7)を用いて出力部8が第二フレームレートにおいて拡張現実表示等の出力（図中、模式的に星印（☆）で表現されている。）を行う。
【００４１】
なお、以上の図２の模式例は第一フレームレートが第二フレームレートの7倍である例となっている。例えば、第一フレームレートは210fps（フレーム毎秒）であり、第二フレームレートは30fpsであってよい。
【００４２】
図３は、一実施形態に係る情報処理装置10の動作のフローチャートである。図３の実施形態は、撮像部1において第一フレームレートで得られる撮像画像に対して逐次処理で探索部6が動き探索を行う実施形態に相当し、図２の模式例の動作を実現する一例に相当する。
【００４３】
なお、図３にてステップS1,S2,S20で構成されるループ内にある状態が図１の機能ブロック表現におけるスイッチ部3から検出部4へと撮像画像Fiが送られる状態に相当し、当該ループ外にある状態が図１の機能ブロック表現におけるスイッチ部3から探索部6へと撮像画像Fiが送られる状態に相当する。すなわち、当該図３にその一例が示されるような動作フロー構造を図１の機能ブロック構成において表現するものがスイッチ部3であるため、図３の各ステップの説明においてはこのようなスイッチ部3の動作について重複する説明は省略する。従って、当該ループ内にある際は検出部4が直接にバッファ部2を参照して撮像画像Fiを取得し、当該ループ外にある際は探索部6が直接にバッファ部2を参照して撮像画像Fiを取得するものとして、スイッチ部3には特に言及することなく図３の動作の説明を行う。（後述の図４でも同様とする。）以下、図３の各ステップを説明する。
【００４４】
図３のフローの開始時点は、撮像部1による撮像の開始直後等で対象が未検出の状態（例えば、撮像部1のカメラを起動した直後等の状態）であるものとし、当該開始するとステップS1へと進む。ステップS1では現時刻tiに対して撮像部1の取得した撮像画像Fiに対して検出部4が対象の検出を試みてから、ステップS2へと進む。ステップS2では、直近のステップS1における検出部4による検出が成功したか否かを判定し、成功していればステップS3へと進み、失敗していればステップS20へと進む。
【００４５】
ステップS20では、時刻tiを次の時刻ti+1へと更新し、当該更新された現時刻ti+1において撮像部1が撮像画像Fi+1を取得してからステップS1へと戻る。なお、ステップS20における時刻更新はこのように第一フレームレートの更新として時刻tiから時刻ti+1へと更新するものであってもよいし、第二フレームレート（Nを2以上の整数として第一フレームレートの1/Nの値であるものとする。）の更新として時刻tiから時刻ti+Nに更新するものであってもよい。すなわち、ステップS1での検出部4による検出は第一又は第二フレームレートのいずれでなされてもよい。
【００４６】
ステップS3では、検出部4が直近のステップS1で成功した検出結果に基づき、フレームFiから検出された対象の領域Riの情報を探索部6へと出力するとともに、記憶部5から当該検出された対象に応じた付随情報（前述した拡張現実表示等を可能とするための付随情報）を出力部8へと出力してから、ステップS4へと進む。
【００４７】
ステップS4では時刻tiを第一フレームレートでの次の時刻ti+1へと更新し、当該更新された現時刻ti+1において撮像部1が撮像画像Fi+1を取得してからステップS5へと進む。なお、時刻tiとはこのように、ステップS4やS20において次の時刻ti+1へと更新されることで常に最新時刻（現時刻）となることを前提として、図３の各ステップにおいては現時刻を時刻tiとして説明する。（後述する図４の各ステップの説明も同様の前提で、現時刻を時刻tiとして説明する。）
【００４８】
ステップS5では、探索部6がバッファ部2を参照することにより、直近の過去時刻ti-k(k≧1)のフレームFi-kであって検出部4により検出に成功した又は探索部6により探索により探索に成功した対象の領域Ri-kを用いて、現時刻tiのフレームFi内から対象の領域Riを探索することで、領域の追跡を試みてからステップS6へと進む。ステップS6では、直近のステップS5の追跡に成功したか否かを判定し、成功していればステップS7へ進み、失敗していればステップS70へと進む。
【００４９】
ステップS7では、探索部6が当該成功した現時刻tiのフレームFi内の領域Riの情報を次の時刻ti+1におけるステップS5での追跡に用いる情報として取得してから、ステップS8へと進む。ステップS70では、当該時刻tiに関しては追跡に失敗した旨を探索部6が記憶してからステップS9へと進む。なお、ステップS70において当該記憶することにより、ステップS5における直近の過去時刻ti-k(k≧1)を得ることが可能となる。また、ある時刻tiに関して追跡に失敗した場合はこのようにステップS7がスキップされることから、当該失敗した時刻tiに関してはステップS5での追跡・探索元としての領域Riは取得されないこととなる。
【００５０】
ステップS8では、探索部6が直近のステップS5において成功した追跡の結果としての動きM(i,i-k)を取得してから、ステップS9へと進む。ステップS9では、現時刻ti（ステップS4により第一フレームレートにて1ずつ増分され更新されている現時刻ti）が第二フレームレートの更新タイミングに到達したか否かを判定し、到達していればステップS10へと進み、到達していなければステップS4へと戻る。
【００５１】
ステップS10では、第二フレームレートの更新タイミングに該当する現時刻tiと、直近過去の第二フレームレートの更新タイミングに該当する時刻ti-N（すなわち、Nを2以上の整数として前述の通り、第一フレームレート間隔の更新のN回分が第二フレームレート間隔の更新の1回に相当するものとする。）と、の間の期間における一連のステップS8において取得された動きM(i-k)を合成して、第二フレームレートの動きDを得ること（及び動きDに基づく出力部8による出力情報の出力）を試みてからステップS11へと進む。
【００５２】
ステップS11では、ステップS10で試みた動きDを得ること（及びこれに基づく出力情報の出力）が可能であったか否かを判定し、可能であったならばステップS4に戻ることで、更新された最新時刻tiに対して探索部6による以上のような探索が継続される。ステップS11にて不可能と判定された場合にはステップS1へと戻ることで、更新された最新時刻tiに対して検出部4による検出が再開されることとなる。
【００５３】
なお、動きDを得るのが可能であったか否かの判定は、以下の条件の全て又は任意の一部分が成立する場合に、動きDを得るための個別の動きM(i,i-k)の取得が不十分であるものとして、動きDを得るのが不可能である旨を判定することにより実施すればよい。
（条件１）第二フレームレートの更新タイミングにおいて、すなわち、ステップS9で肯定判断を得た際に、直近のステップS6（すなわち、当該ステップS9における現時刻tiと同じ時刻tiでのステップS6）で否定判断が得られている。
（条件２）当該第二フレームレートを構成するN回分の第一フレームレートに関して、ステップS6で否定判断が得られた回数が所定閾値を超えている。
【００５４】
以上の図３のフローによる動きの取得及び合成の例を挙げる。ここで、N=4とし、第一フレームレートは第二フレームレートの4倍であるものとして、4+1=5枚の第一フレームレートのフレームF0,F1,F2,F3,F4において求まる動きで第二フレームレートの動きM(0,4)を合成する例を挙げる。
（例１）すべての動きM(0,1),M(1,2),M(2,3),M(3,4)の探索に成功した場合、これら4個の動きを合成して動きM(0,4)が得られる。
（例２）上記のうち動きM(1,2)の探索に失敗した後に動きM(1,3)の探索に成功し、結果として動きM(0,1),M(1,3),M(3,4)の探索に成功した場合、これら3個の動きを合成して動きM(0,4)が得られる。
（例３）上記のうちM(1,2)の探索に失敗した後にさらに動きM(1,3)の探索にも失敗し、その後に動きM(1,4)の探索に成功することで結果として動きM(0,1),M(1,4)の探索に成功した場合、これら2個の動きを合成して動きM(0,4)が得られる。
【００５５】
なお、第一フレームレートは第二フレームレートのN倍であるものとして説明しているが、いわゆる植木算の関係から、第一フレームレートの連続するN枚のフレームにさらにもう1枚を追加してN+1枚とすることで第二フレームレートの一周期分に相当し、且つ、その両端フレームをも含んだものが得られることとなる。
【００５６】
以上の図３のフローは撮像部1での第一フレームレートの撮像画像Fiに対して探索部6が逐次処理で動き探索を行う場合の一実施形態であった。図４は別の一実施形態に係る情報処理装置10の動作のフローチャートであり、探索部6は図３の場合と同じく第一フレームレートで与えらえた撮像画像Fiを前提とした探索を行うものの、逐次処理として探索するのではなく、当該第一フレームレートの撮像画像Fiが第二フレームレートの一周期（及び両端）分に相当するN+1枚だけバッファ部2に蓄積されてから、当該Ｎ+1枚又はその一部分を対象としてバッチ処理で探索を行う実施形態のフローである。以下、図４の各ステップを説明する。
【００５７】
図４のフローが開始されてからのステップS21,S22,S23及びS220はそれぞれ、図３のステップS1,S2,S3及びS20と同一であるので、その説明は省略する。こうして、図３のステップS2,S3と同様に図４のステップS22で検出部4による検出の成功判定を得てステップS23で当該検出結果に対応する出力等を得た後は、ステップS31へと進む。
【００５８】
ステップS31では第一フレームレートにおいて現時刻tiを次の時刻ti+1に更新し、当該最新時刻ti+1において撮像部1がフレームFi+1を取得してからステップS32へと進む。ステップS32では、現時刻tiが第二フレームレートの更新タイミングに到達したか否かを判断し、到達していればステップS33へ進み、到達していなければステップS31に戻る。
【００５９】
ステップS33では、上記のステップS31,S32のループを経て現時刻tiにおいて得られている第二フレームレートの一周期（及び両端）分のN+1枚のフレームFi-N,Fi-N+1,…,Fi-1,Fiのうち、両端フレームFi及びFi-Nの間で探索部6が動き探索を試みることにより対象の追跡を試みてから、ステップS34へと進む。ステップS33での動き探索に関しては、探索元のフレームFi-N（すなわち、直近のステップS21及びS22で検出成功したフレーム、または、直近のステップ「S33及びS34」又は「S35及びS36」で探索成功したフレーム）で検出又は探索済みとなっている領域Ri-Nを用いるようにすればよい。
【００６０】
ステップS34では、ステップS33での両端フレーム探索が成功したか否かを判定し、成功していればステップS37へと進み、失敗していればステップS35へと進む。ステップS35では、探索部6が、当該両端フレームFi及びFi-Nでの探索失敗を受け、当該N+1枚存在しているフレームのうち両端以外の内部のフレームも利用して所定規則に従って再帰的に複数の動き探索を行うことにより、当該両端の動き探索結果に該当するものを得ることを試みてから、ステップS36へと進む。ステップS35は各種の実施形態が可能であり、後述する。
【００６１】
ステップS36では、ステップS35の探索が成功したか否かを判定し、成功していればステップS37へと進み、失敗していればステップS21へと戻ることで、検出部4の処理が再開されることとなる。ステップS37では、推定部7が当該両端フレームFi及びFi-Nでの動き推定結果を得て出力部8に渡すことにより出力情報を得ると共に、以降も継続される動き推定のために探索部6が現時刻tiの領域Riの情報を取得・保持してからステップS31へと戻る。当該ステップS37にて推定部7は、ステップS33及びS34の両端フレームFi及びFi-Nの動き推定が成功している場合には、当該１つの動きをそのまま動き推定結果M(i,i-N)として採用し、ステップS35及びS36からステップS37へと至った場合には、ステップS35で再帰的に追跡された複数の動きを合成して動き推定結果M(i,i-N)を得る。
【００６２】
以下、ステップS35の各実施形態を説明する。一実施形態では、図３で説明した逐次処理（S4,S5,S6,S7,S70,S8,S9のループ処理）をそのままステップS35を実現する手順として採用することができる。この場合、ステップS4の時刻更新手順は、単に次の追跡対象の隣接フレームFiを設定する手順と読み替えればよく、ステップS9の判断はN+1枚のフレームの全てについて処理が終わったかの判断に読み替えればよい。
【００６３】
上記の図３の逐次処理をそのまま利用する実施形態では、（探索失敗がない限り）N+1枚のフレームの全てが動きの探索対象として利用されることとなるが、別の一実施形態として、所定手順に従うことで一部分のフレームのみを動きの探索対象とするようにしてもよい。第二フレームレートに相当するN+1枚のフレームF0,F1,…FNで動きM(0,N)を探索する場合に関して、当該別の一実施形態を実現する手順の一例は以下の通りである。
（手順１）変数iに初期値i=1を設定し、手順２へ進む。
（手順２）動きM(0,i)を探索し、成功すれば手順３へ、失敗すれば手順４へ進む。
（手順３）動きM(i,N)を探索し、成功すれば終了し、失敗すれば手順４へ進む。
（手順４）変数iの値を1だけ増分し、手順２に戻る。
【００６４】
なお、手順２では、既に探索成功している動きM(0,i-j)(j≧1)が１つ以上あれば、M(i-j,i)を探索するようにしてもよく、jの最小のものから探索を試みて成功するものがあった場合は、手順２が成功したものと判断してもよい。また、手順４でiの値がNに到達した場合、以上の手順による探索は失敗したものと判断する。
【００６５】
また、具体的な手順は上記に限らず、その他のものでもよく、結果的に（成功した場合には）複数の動きM(0,i1),M(i1,i2),M(i2,i3),…,M(im,N)（0<i1<i2<i3<…<im<N）が探索されうるような任意の手順を利用してよい。推定部7においてはこれらを合成することで動きM(0,N)を得ることが可能となる。
【００６６】
例えば、手順１の初期値をN-1とし、手順４では変数iの値を1だけ減算するようにしてもよい。そして、手順１の初期値や手順４の増分／減算の値をそれぞれ、1以外の所定値（Nに応じた所定値など）としてもよい。また、また、N+1枚のフレームを再帰的に半分に分割しながらその両端で動き探索の可能性を探るような手順を用いてもよいし、同様に、N+1枚のフレームを再帰的に比率「a：(1-a)」（ここで、0<a<1）の位置で分割しながらその両端で動き探索の可能性を探るような手順を用いてもよい。当該再帰的な探索を行う際は、探索に成功した区間は以降の探索から除外するようにすればよい。
【００６７】
以上、本発明によれば、撮像画像Fi間から算出した動きを複数組み合わせることで、出力部8の更新間隔において当該動きを高精度に推定することが可能となる。当該高精度に推定された動きを用いて例えば拡張現実表示等を実現する場合であれば、撮像部1のカメラと撮像されている対象との相対的な位置関係等も高精度に推定可能となり、高精度な拡張現実表示等を実現することが可能となる。なお、以下のような観点によって、本発明においては高精度な動き推定が可能となる。
【００６８】
（観点１）撮像間隔の短縮に伴う撮像画像Fi間の動き量減少による高速化。例えば、撮像間隔が1/240秒であれば1/30秒の撮像間隔と比較して撮像画像Fi間の動き量は1/8に低減するため、撮像間隔に応じて動き探索の範囲を制御することで高速化を実現する。一般に、撮像間隔が1/N倍になると、撮像情報の増加により撮像情報間の数がN倍に増加するが、動き量自体は1/Nになるので、動きの探索範囲を(1/N)*(1/N)に減少させる。よって、処理全体としては探索回数が最大1/Nになるため、撮像間隔の短縮は高速化につながる。
【００６９】
（観点２）撮像間隔の短縮に伴う撮像画像Fi間の動きの線形近似による高精度化。並進以外の動きや立体形状の見え方の変化が生じる場合、並進を前提としたテンプレートマッチング等は撮像間隔が短いほど並進で近似できる可能性が高まり動き探索の精度向上につながる。
【００７０】
（観点３）撮像間隔の短縮に伴う撮像画像Fi間の動き量減少による高精度化。大きな動きが存在する場合において、撮像間隔が短いほど動き量が小さいため探索を継続できる可能性が高まり動き探索の精度向上につながる。逆に、小さな動きが存在する場合においては、撮像画像Fi間の動きが抑制されるため、撮像間隔の短縮は安定化につながる。例えば、動き量が1/30秒に1画素の場合、1/240秒間隔での動き量は平均1/8画素となるが、各撮像情報間の動き量はそれぞれ0として推定されうる。結果、出力動き情報も0として推定されるが、拡張現実の用途において動き量が1画素程度の状況は静止状態時における手振れ等の外乱であることが多いため、撮像間隔の短縮は出力情報の安定化につながる。
【００７１】
（観点４）蛍光灯のちらつきやフラッシュ等の外乱に対し頑健。動き探索の結果は、推定部7において出力動き情報の推定に利用されるだけであるため、撮像動き情報の一部で探索に失敗したとしても出力動き情報が推定できるだけの動き情報が探索できれば良いことから、システム全体としての安定性向上に貢献する。
【００７２】
以下、本発明における変形例などの補足事項を説明する。
【００７３】
（１）上記の観点１に関連して、探索部6では動きM(i,i+k)を求める際に、当該動きを求める間隔k≧1が大きいほど、テンプレートマッチング等による探索範囲を広く設定するようにしてよい。図５に当該設定の模式例を示す。時刻t10のフレームF10の領域R10が探索元の領域であるとする場合、k=1となる時刻t11のフレームF11で動きM(10,11)を求める場合、領域R10（フレームF11内での同じ位置が領域T11）を例えば110%に拡張した領域SR11を探索範囲として設定し、k=2となるt12のフレームF12で動きM(10,12)を求める場合、領域R10（フレームF12内での同じ位置が領域T12）を例えば120%に拡張した領域SR12を探索範囲と設定してよい。
【００７４】
なお、図５の例では探索範囲となる領域T11やT12は探索元R10と同じ位置に中心を有しているが、当該中心位置をそれまでに推定されている動きから予測される移動された位置として設定するようにしてもよい。
【００７５】
（２）第二フレームレートでの表示等の出力を行うためには、本発明による動き推定等の処理を完了する必要があるが、第二フレームレートでの時刻t0,tN,t2N,…にフレームF0,FN,F2N,…が得られるものとし、所定時間Δ以内に当該動き推定等を完了することを前提として、実際に第二フレームレートに即した時刻「t0」+Δ,「tN」+Δ,「t2N」+Δ,…に表示等の出力が可能となる。以上の図３や図４の説明では時刻ti等で各フレームFi等が得られると瞬時に計算等も完了するものとして、特に計算等の所要時間について言及することなく説明したが、このように、当該一連の計算等が所定時間Δ以内に完了することを前提に、第二フレームレートを保った表示等の出力が実際に可能である。
【００７６】
（３）上記の観点４に関連して、本発明において必ずしも（最も）隣接するフレームFi,Fi+1間での動きM(i,i+1)に限定されず、敢えてさらに離れたフレームFi,Fi+k(k≧2)間での動きM(i,i+k)であっても探索対象とする利点を、図６を用いて説明する。ここでは、隣接する3つの時刻t20,t21,t22において画像座標(u,v)のu,v=0,1の微小範囲（2×2画素範囲）で、斜線付与で示すような当該1画素とほぼ同じ大きさの模様が(u,v)=(+1,+1)方向に移動している例が示されている。この場合、時刻t20では位置(0,0)のみを当該模様が占拠し、時刻t21では位置(1,1)のみを当該模様が占拠しているが、その中間時刻t21では当該2×2画素範囲に当該模様が分散して配置されてしまっている。このような状況下（画素境界でのエッジ境界等の分布の現れ方が変化する状況下）では、当該模様に関する動きM(20,21)や動きM(21,22)は原理的に検出精度が落ちざるを得ないため探索対象として必ずしも好ましくないが、動きM(20,22)は高精度に検出可能となる。当該高精度な検出の可能性が離れたフレームFi,Fi+k(k≧2)間での動きM(i,i+k)探索によって確保されることとなる。
【００７７】
（４）検出部4では2つ以上の対象を検出してもよい。例えば２つの対象A,Bが検出された場合であれば、以上説明した本発明による動き推定は対象A,Bそれぞれについて独立に（同時並行で）実施することが可能であり、この場合、どのようなフレーム間の動きM(i,i+k)がどのような順番で探索されるかに関しても対象A,Bで独立となる。ここで、探索の前処理としての対象A,Bが検出される時刻が異なっていてもよい。また、検出部4では個別の対象の全体を矩形領域等として検出したうえで、探索部6では当該検出された対象の部分ごとに探索を行うようにしてもよく、当該部分ごとに動きM(i,i+k)の探索の順番等は独立なものとなる。当該対象の部分は、検出部4で画像特徴に基づいて検出した際の１つ又は複数の特徴点の所定近傍範囲（例えば所定サイズの矩形範囲など）として構成されていてもよい。
【００７８】
（５）第二フレームレートはユーザからのマニュアル指定等を受け付けて、あるいは第一フレームレートでの撮像画像Fiの性質（明暗や全体的な動き量等）などの解析結果に応じて、手動又は自動で変更可能な可変のものとして設定されていてもよい。
【００７９】
（６）情報処理装置10は一般的な構成のコンピュータとして実現可能である。すなわち、CPU（中央演算装置）、当該CPUにワークエリアを提供する主記憶装置、ハードディスクやSSDその他で構成可能な補助記憶装置、キーボード、マウス、タッチパネルその他といったユーザからの入力を受け取る入力インタフェース、ネットワークに接続して通信を行うための通信インタフェース、表示を行うディスプレイ、カメラ及びこれらを接続するバスを備えるような、一般的なコンピュータによって情報処理装置10を構成することができる。さらに、図１に示す情報処理装置10の各部の処理はそれぞれ、当該処理を実行させるプログラムを読み込んで実行するCPUによって実現することができるが、任意の一部の処理を別途の専用回路等において実現するようにしてもよい。撮像部1は、当該ハードウェアとしてのカメラによって実現できる。
【符号の説明】
【００８０】
10…情報処理装置、1…撮像部、2…バッファ部、3…スイッチ部、4…検出部、5…記憶部、6…探索部、7…推定部、8…出力部
【図１】
2019139310.tif 000005
【図２】
2019139310.tif 000006
【図３】
2019139310.tif 000007
【図４】
2019139310.tif 000008
【図５】
2019139310.tif 000009
【図６】
2019139310.tif 000010