(57)【要約】【課題】  複数の視点から撮像した画像に基づいて、より広範囲における任意の被写体の位置情報を取得する。【解決手段】  上記課題を解決するために、本発明の画像処理装置は、第一の画像と、前記第一の画像とは異なる視点から撮像した第二の画像とを取得する取得手段と、前記第一の画像および前記第二の画像それぞれにおける被写体の特徴点を検出する検出手段と、前記第一の画像および前記第二の画像に基づいて、前記被写体の位置情報を算出する算出手段とを有し、  前記算出手段は、前記第一の画像および前記第二の画像の両方において前記特徴点が検出された場合、前記特徴点それぞれに基づいて、前記位置情報および前記被写体に対応する被写体モデルを算出し、前記第一の画像および前記第二の画像のいずれかのみにおいて前記特徴点が検出された場合は、前記被写体モデルを参照して、前記情報を算出することを特徴とする。【選択図】  図３
2013050877.tif 000002
【特許請求の範囲】
【請求項１】
第一の画像と、前記第一の画像とは異なる視点から撮像した第二の画像とを取得する取得手段と、
前記第一の画像および前記第二の画像それぞれにおける被写体の特徴点を検出する検出手段と、
前記第一の画像および前記第二の画像に基づいて、前記被写体の位置情報を算出する算出手段とを有し、
前記算出手段は、前記第一の画像および前記第二の画像の両方において前記特徴点が検出された場合、前記特徴点それぞれに基づいて、前記位置情報および前記被写体に対応する被写体モデルを算出し、前記第一の画像および前記第二の画像のいずれかのみにおいて前記特徴点が検出された場合は、前記被写体モデルを参照して、前記情報を算出することを特徴とする画像処理装置。
【請求項２】
前記算出手段は、前記被写体の向き情報も算出することを特徴とする請求項１に記載の画像処理装置。
【請求項３】
前記検出手段は、前記第一の画像および前記第二の画像のそれぞれにおける、前記特徴点の二次元座標を算出することを特徴とする請求項１または２に記載の画像処理装置。
【請求項４】
前記位置情報は、前記被写体の３次元座標を算出することを特徴とする請求項１乃至３の何れか一項に記載の画像処理装置。
【請求項５】
さらに、前記第一の画像および前記第二の画像のそれぞれに対して、前記特徴点が含まれているかどうかを判定する判定手段を有し、
前記算出手段は、前記判定結果に応じて、前記被写体モデルを参照するか否かを決定することを特徴とする請求項１乃至４の何れか一項に記載の画像処理装置。
【請求項６】
さらに、前記検出手段によって得られる前記特徴点の検出の精度を算出する精度算出手段と、
前記精度に応じて、前記算出手段が算出した被写体モデルを記憶する記憶手段とを備えることを特徴とする請求項１乃至５の何れか一項に記載の画像処理装置。
【請求項７】
前記記憶手段は、前記算出手段が算出した被写体モデルが記憶されていない時は、前記被写体の一般モデルを前記被写体モデルとして記憶しておくことを特徴とする請求項１乃至６の何れか一項に記載の画像処理装置。
【請求項８】
さらに、少なくとも前記位置情報に応じた画像を生成する生成手段と、
前記生成手段により生成された画像を表示する表示手段とを備えることを特徴とする請求項１乃至７の何れか一項に記載の画像処理装置。
【請求項９】
コンピュータ装置を制御して、請求項１から請求項８の何れか一項に記載された画像処理装置の各手段として機能させることを特徴とするコンピュータプログラム。
【請求項１０】
取得手段、検出手段、算出手段を有する画像処理装置の制御方法であって、
前記取得手段は、第一の画像と、前記第一の画像とは異なる視点から撮像した第二の画像とを取得し、
前記検出手段は、前記第一の画像および前記第二の画像それぞれにおける被写体の特徴点を検出し、
前記算出手段は、前記第一の画像および前記第二の画像に基づいて、前記被写体の位置情報を算出し、
前記算出手段は、前記第一の画像および前記第二の画像両方において前記特徴点が検出された場合、前記特徴点それぞれに基づいて、前記位置情報および前記被写体に対応する被写体モデルを算出し、前記第一の画像および前記第二の画像いずれかのみにおいて前記特徴点が検出された場合は、前記被写体モデルを参照して、前記情報を算出することを特徴とする制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数視点から撮像した画像を用いて、被写体の位置情報を算出する技術に関する。
【背景技術】
【０００２】
従来、撮像した画像から被写体の位置情報を取得し、被写体の位置情報に基づいてレンダリング処理した画像を表示する様々な手法が知られている。被写体の位置情報の取得方法について、特許文献１によればステレオ視手法と被写体記憶手法の２種類の手法が提案されている。ステレオ視手法は、複数の視点から撮像した複数の画像から被写体の位置情報を算出する手法である。また、被写体記憶手法は、予めデータベース上に用意した被写体のサイズを用いることにより、１台の撮像装置が被写体を撮像した画像から被写体の位置情報を算出する手法である。
ステレオ視手法は、異なる位置にある複数台の撮像装置が被写体を捉えた状態でないと被写体の位置情報の取得が困難である。そのため、被写体の位置情報を取得可能な範囲が制限されてしまうという問題がある。そこで、ステレオ視手法に被写体記憶手法を組み合わせることにより、被写体の位置情報を取得可能な範囲を拡大する方法が提案されている。例えば、特許文献２では視点の数が１つの場合には被写体記憶手法を、複数の視点から撮像された画像がある場合にはステレオ視手法を用いて被写体の位置情報を取得している。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０００−１３２６９３号公報
【特許文献２】特開２００４−０４５３２１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、被写体記憶手法では画像上の被写体のサイズと被写体‐撮像装置間の距離とを１対１対応で保持している。つまり予めその大きさが既知の被写体を用いるため、任意の大きさの被写体を区別することができない。従って、正しい被写体の位置情報を得ることができない場合がある。
そこで本発明の目的は、複数の視点から撮像した画像に基づいて、より広範囲における任意の被写体の位置情報を取得することにある。
【課題を解決するための手段】
【０００５】
上記課題を解決するために、本発明の画像処理装置は、第一の画像と、前記第一の画像とは異なる視点から撮像した第二の画像とを取得する取得手段と、前記第一の画像および前記第二の画像それぞれにおける被写体の特徴点を検出する検出手段と、前記第一の画像および前記第二の画像に基づいて、前記被写体の位置情報を算出する算出手段とを有し、前記算出手段は、前記第一の画像および前記第二の画像の両方において前記特徴点が検出された場合、前記特徴点それぞれに基づいて、前記位置情報および前記被写体に対応する被写体モデルを算出し、前記第一の画像および前記第二の画像のいずれかのみにおいて前記特徴点が検出された場合は、前記被写体モデルを参照して、前記情報を算出することを特徴とする。
【発明の効果】
【０００６】
本発明により、複数の視点から撮像した画像に基づいて、より広範囲における任意の被写体の位置情報を取得することができる。
【図面の簡単な説明】
【０００７】
【図１】画像処理装置の構成図
【図２】被写体位置情報算出処理の概要図
【図３】被写体位置情報算出処理のフローチャートを示す図
【図４】被写体位置情報算出処理の概要図
【図５】特徴点の３次元座標算出処理のフローチャート
【図６】被写体モデル座標系の概要図
【図７】被写体モデル算出方法の説明図
【図８】特徴点の３次元座標推定処理のフローチャート
【図９】特徴点の３次元座標算出処理のフローチャート
【図１０】被写体モデル精度算出方法の説明図
【図１１】特徴点の３次元座標推定処理のフローチャート
【発明を実施するための形態】
【０００８】
以下、添付図面を参照して、本発明を好適な実施例に従って詳細に説明する。なお、以下の実施例において示す構成は一例にすぎず、本発明は図示された構成に限定されるものではない。
【０００９】
＜実施例１＞
本実施例では、被写体が撮像された画像の視点数が２以上の場合、複数に画像に基づき被写体の位置情報を算出するとともに、被写体モデルを生成する。一方、被写体が撮像された画像の視点数が１つの場合は、記憶された被写体モデルを用いて被写体の位置情報を推定する。
【００１０】
図１は、本実施例に適用可能な画像処理装置の構成を示す図である。
図１において、ＣＰＵ１０１は、ＲＡＭ１０２をワークメモリとして、ＲＯＭ１０３及びハードディスクドライブ（ＨＤＤ）１０５に格納されたプログラムを実行し、システムバス１１０を介して後述する各構成を制御する。これにより、後述する様々な処理が実行される。
【００１１】
ＨＤＤインタフェイス（Ｉ／Ｆ）１０４は、ＨＤＤ１０５や光ディスクドライブなどの二次記憶領域を接続する。例えばシリアルＡＴＡ（ＳＡＴＡ）等のインタフェイスである。ＣＰＵ１０１は、ＨＤＤＩ／Ｆ１０４を介して、ＨＤＤ１０５からのデータ読み出し、およびＨＤＤ１０５へのデータ書き込みが可能である。
【００１２】
さらにＣＰＵ１０１は、ＨＤＤ１０５に格納されたデータをＲＡＭ１０２に展開し、同様に、ＲＡＭ１０２に展開されたデータをＨＤＤ１０５に保存することが可能である。そしてＣＰＵ１０１は、ＲＡＭ１０２に展開したデータをプログラムとみなし、実行することができる。
【００１３】
入力インタフェイス（Ｉ／Ｆ）１０６は、キーボードやマウス、デジタルカメラなどの２つの入力デバイス１０７＿１、１０７＿２を接続する。例えばＵＳＢやＩＥＥＥ１３９４等のシリアルバスインタフェイスである。ＣＰＵ１０１は、入力Ｉ／Ｆ１０６を介して入力デバイス１０７＿１、１０７＿２からデータを読み込むことができる。
【００１４】
出力インタフェイス（Ｉ／Ｆ）１０８は、画像表示装置などの出力デバイス１０９を接続する。例えばＤＶＩやＨＤＭＩ等の映像出力インタフェイスである。ＣＰＵ１０１は、出力Ｉ／Ｆ１０８を介して出力デバイス１０９にデータを送り、表示を実行させることができる。本実施例では、出力デバイス１０９として３Ｄ映像を表示するディスプレイを例に説明する。この出力デバイスは、被写体がどの位置から視聴しているかに応じて適切な３Ｄ映像を提供する。
【００１５】
図２は、２つの撮像装置および被写体の概要図を示す。図２（ａ）におけるデジタルカメラ１０７＿１、１０７＿２は入力デバイスの一例（以下、それぞれカメラ１、カメラ２と記す）である。被写体３は人を例として説明する。図２（ｂ）が示す画像１、図２（ｃ）が示す画像２はそれぞれカメラ１、カメラ２が撮像した画像である。コンピュータ６はこれらの画像から被写体３の位置情報を算出する。ディスプレイ１０９は出力デバイスの一例である。尚、本実施例においてカメラ１とカメラ２は、２台同時に被写体を撮像するものとし、得られる２つの画像のうち少なくとも１枚に被写体３の両目と両鼻孔が写っているものとする。
【００１６】
図２において３次元座標系７は、基準点Ｏを原点、水平方向右向きをｘ軸、鉛直方向上向きをｙ軸、奥行き方向をｚ軸とする。基準点Ｏは、カメラ１のカメラ位置とカメラ２のカメラ位置の中点である。以下、この座標系を基準座標系と呼ぶ。
【００１７】
また、３次元座標系８は、被写体３の両目の中点ＦＯを原点とし、直線Ｍｘ，Ｍｙ，Ｍｚを座標軸とする。以下、この座標系を被写体モデル座標系と呼ぶ。
【００１８】
図３は、本実施例に適用可能な処理のフローチャートである。詳細には、図３のフローチャートに示す手順を記述したコンピュータ実行可能なプログラムをＲＯＭ１０３あるいはＨＤＤ１０５からＲＡＭ１０２上に読み込んだ後に、ＣＰＵ１０１によって該プログラムを実行することによって当該処理が実施される。
【００１９】
以下、図３に示す各処理について説明する。
【００２０】
まずステップＳ３０１において、カメラ１とカメラ２から被写体を同時に撮像した画像をそれぞれ取得する。取得した画像はＲＡＭ１０２や容量が大きい場合にはＨＤＤ１０５などに記憶される。
【００２１】
ステップＳ３０２において、ステップＳ３０１において取得した画像１と画像２とから被写体の特徴点の２次元座標をそれぞれ取得する。ここでは特徴点とは、顔の４つの器官、右目、左目、右鼻孔、左鼻孔それぞれの中心点である。以下これらの特徴点をＦＡ，ＦＢ，ＦＣ，ＦＤと表す。図２に特徴点ＦＡ〜ＦＤの例を示す。この図では特徴点ＦＡ，ＦＢ，ＦＣ，ＦＤが各々右目、左目、右鼻孔、左鼻孔の中心に相当する。
【００２２】
以下では、これらの各特徴点の２次元座標の取得方法について説明する。ここでは図２が示すように、被写体３が２台のカメラ１、カメラ２の共通視野範囲に存在する場合の例を説明する。
【００２３】
まず、既存の顔認識技術を画像１及び画像２に適用することにより、各画像における前述した４つの顔器官を含む領域（ＲｋＡ，ＲｋＢ，ＲｋＣ，ＲｋＤ）（ｋ＝１，２）を抽出する。次に、抽出したそれぞれの領域において、中心となる２次元座標（ＰｋＡ，ＰｋＢ，ＰｋＣ，ＰｋＤ）（ｋ＝１，２）を取得する。そして、これらの２次元座標をそれぞれ特徴点ＦＡ，ＦＢ，ＦＣ，ＦＤの２次元座標として、ＲＡＭ１０２などに記憶する。
【００２４】
ところで、被写体３は常に２台のカメラの共通視野範囲に存在するとは限らない。図４は被写体３がカメラ２の視野範囲から外れた場合を示している。図５（ｂ）が示す画像１’はカメラ１が撮像した画像であり、図５（ｃ）が示す画像２’はカメラ２が撮像した画像である。画像１’は、前述した処理により２次元座標（Ｐ１Ａ，Ｐ１Ｂ，Ｐ１Ｃ，Ｐ１Ｄ）が取得可能であり、得られた２次元座標はＲＡＭ１０２などに記憶される。一方画像２’は、被写体３の右目が画像上に写っていないため、領域Ｒ２Ａの抽出及びその中心の２次元座標Ｐ２Ａの取得ができない。この場合、画像２’に関する特徴点ＦＡ〜ＦＤの２次元座標を記憶せずに、ステップＳ３０３へ進む。
【００２５】
ステップＳ３０３において、画像１及び画像２の両方に被写体の全ての特徴点が写っているか否かを判定する。画像１及び画像２それぞれにおける全ての特徴点の２次元座標がＲＡＭ１０２に記憶されていれば、両方の画像に各特徴点が写っていると判定し、ステップＳ３０４へ進む。画像１又は画像２のどちらか一方における特徴点の２次元座標しかＲＡＭ１０２に記憶されていない場合は、どちらから一方の画像にのみ被写体の全ての特徴点が写っていると判定し、ステップＳ３０５へ進む。
【００２６】
ステップＳ３０４において、画像１および画像２それぞれにおける各特徴点の２次元座標（ＰｋＡ，ＰｋＢ，ＰｋＣ，ＰｋＤ）（ｋ＝１，２）から、特徴点ＦＡ〜ＦＤの３次元座標（ＰＡ〜ＰＤ）を算出する。更に、算出した特徴点の３次元座標（ＰＡ〜ＰＤ）を用いて被写体モデルを生成し、これを記憶領域に記憶してステップＳ３０６へ進む。詳細は後述する。
【００２７】
一方、ステップＳ３０５においては、まず所定の記憶領域から被写体モデルを読み込む。そして、取得した被写体モデルと、ステップＳ３０２において取得した全ての特徴点が撮像された一方の画像における特徴点の２次元座標（ＰｋＡ，ＰｋＢ，ＰｋＣ，ＰｋＤ）（ｋ＝１又は２）とから、特徴点の３次元座標（ＰＡ〜ＰＤ）を推定し、ステップＳ３０６へ進む。詳細は後述する。
【００２８】
ステップＳ３０６において、ステップＳ３０４又はステップＳ３０５で求めた各特徴点の３次元座標から、被写体情報を算出する。ここでは図２で示すように、特徴点ＦＡおよびＦＢの中点ＦＯの３次元座標を、被写体の位置情報とする。基準座標系７の原点である基準点Ｏに対する中点ＦＯの３次元座標ＰＯは、被写体３の特徴点の３次元座標ＰＡ，ＰＢから算出する。また被写体の向きは、被写体モデル座標系８のＭｚ軸の向きで、大きさを１に規格化したベクトル（ｚＭ０）の向きを被写体の向き情報とする。このベクトルｚＭ０は、基準座標系７のｚ軸の向きで大きさが１に規格化されたベクトルｚ０と、３×３回転行列Ｒとを用いて算出する。被写体モデル座標系８と、回転行列Ｒについての詳細は後述する。
【００２９】
ここで、ｚＭ０とｚ０との間に下記の式（１）の関係が成り立つ。
【００３０】
【数１】
2013050877.tif 000003
【００３１】
したがって、ベクトルｚＭ０はベクトルｚ０と回転行列Ｒとの積を求めることにより、算出することができる。算出した被写体の向き情報は、例えば基準点Ｏに対する３×１平行移動ベクトル及び３×１ｚＭ０ベクトルとしてＲＡＭ１０２などに記憶される。
【００３２】
ステップＳ３０７において、予め記憶領域に記憶しておいた表示コンテンツを読み込む。表示コンテンツとは基準座標系における３次元画像データと、ディスプレイの表示領域サイズからなるデータである。但し記憶領域に表示コンテンツが無い場合は、被写体視点画像表示処理を終了する。
【００３３】
ステップＳ３０８において、ステップＳ３０６で算出した被写体情報（ここでは、位置情報と向き情報）とステップＳ３０７で取得した表示コンテンツから、特開２００１−２１６５３２号記載の方式を用いて被写体の位置に合わせた表示画像を生成する。生成した表示画像は、ＲＡＭ１０２や容量が大きい場合にはＨＤＤ１０５などに記憶される。
【００３４】
最後に、ステップＳ３０９において、生成した表示画像をディスプレイに表示し、処理を終了する。
【００３５】
◆２つの画像に基づく特徴点の３次元座標算出処理
ステップＳ３０４における特徴点の３次元座標算出処理、及び被写体モデルの生成処理の詳細について説明する。図５は、ステップＳ３０４における３次元座標算出処理のフローチャートを用いて説明する。
【００３６】
まずステップＳ５０１において、ステップＳ３０２で取得した２つの画像から取得した特徴点の各２次元座標から、特徴点の３次元座標を算出する。本実施例では、特徴点の各２次元座標と、２台のカメラそれぞれに関する内部行列及び外部パラメータを用いて、三角測量の原理により、４つの特徴点の３次元座標をそれぞれ算出する。内部行列とは、レンズの焦点距離や光軸ずれからなる３×３行列である。また、外部パラメータとは、カメラの３次元座標を表す３×１平行移動ベクトル及びカメラの向きを表す３×３回転行列である。これらの行列は、予め画像撮像時に記憶領域に記憶しておいたものを読み込むことにより取得する。
【００３７】
以下、特徴点ＦＡを例に、三角測量の原理に基づいた３次元座標の算出方法を説明する。
【００３８】
基準座標系７の原点である基準点Ｏに対する特徴点ＦＡの３次元座標をＰＡ＝（ｘ，ｙ，ｚ）Ｔ、画像１、画像２における特徴点ＦＡの２次元座標をそれぞれＰ１Ａ＝（ｕ１Ａ，ｖ１Ａ  ）Ｔ，Ｐ２Ａ＝（ｕ２Ａ，ｖ２Ａ  ）Ｔとすると、一般的に下記の式（２）の関係が成り立つ。
【００３９】
【数２】
2013050877.tif 000004
ここでＭｋ，Ｒｋ，ｔｋ（ｋ＝１，２）は、それぞれ画像ｋを撮像した際のカメラの内部行列、回転行列、平行移動ベクトルである。上記の式（２）は、３次元座標ＰＡについての連立方程式と見なすことができる。したがって、この連立方程式を解くことにより、特徴点ＦＡの３次元座標ＰＡを得ることができる。
【００４０】
他の特徴点ＦＢ〜ＦＤについても特徴点ＦＡと同様に基準点に対する３次元座標ＰＢ，ＰＣ，ＰＤを算出することができる。算出した各特徴点の３次元座標ＰＡ，ＰＢ，ＰＣ，ＰＤは、ＲＡＭ１０２に記憶される。
【００４１】
ステップＳ５０２において、３次元座標ＰＡ，ＰＢ，ＰＣ，ＰＤから被写体モデルを生成し、これを記憶領域に上書き記憶する。ここで被写体モデルとは、被写体モデル座標系で表された特徴点ＦＡ，ＦＢ，ＦＣ，ＦＤの３次元座標の組（ＰＭＡ，ＰＭＢ，ＰＭＣ，ＰＭＤ）である。被写体モデル座標系の例を図６に示す。被写体モデル座標系は、前述したように２点ＦＡ，ＦＢの中点ＦＯを原点とし、直線Ｍｘ，Ｍｙ，Ｍｚを座標軸とする３次元座標系である。軸Ｍｘは、２点ＦＡ，ＦＢを通る直線である。軸Ｍｙは、２点ＦＣ，ＦＤの中点をＱとしたときの３点ＦＡ，ＦＢ，Ｑを含む平面π上にあり、直線Ｍｘと原点ＦＯで直交する直線である。Ｍｚは、Ｍｘ及びＭｙと直交する直線である。
【００４２】
３次元座標ＰＭＡは、基準座標系７で表された特徴点ＦＡの３次元座標ＰＡを用いて、次式（３）に従い算出する。
【００４３】
【数３】
2013050877.tif 000005
ここで、Ｔは基準座標系７の原点Ｏを始点とした、被写体モデル座標系の原点ＦＯへ向かう３×１平行移動ベクトルであり、基準座標系７で表された３次元座標ＰＡ及びＰＢから、式（４）に従い算出される。
【００４４】
【数４】
2013050877.tif 000006
【００４５】
回転行列Ｒは、基準座標系’のｘ’，ｙ’，ｚ’軸を、被写体モデル座標系Ｍｘ，Ｍｙ，Ｍｚ軸と一致させる３×３回転行列である。但し基準座標系’とは、基準座標系をＴだけ平行移動させることにより、その原点を被写体モデル座標系の原点ＦＯと一致させた座標系である。以降、基準座標系’の各座標軸をそれぞれｘ’，ｙ’，ｚ’で表す。
回転行列Ｒは、基準座標系’における各座標軸周りの回転角度φ，ψ，θを用いて、一般に式（５）で表せる。
【００４６】
【数５】
2013050877.tif 000007
ここでＲ’ｘ（φ），Ｒ’ｙ（ψ），Ｒ’ｚ（θ）は、それぞれ各座標軸周りの３×３回転行列である。したがって、基準座標系’を被写体モデル座標系と一致させる回転行列Ｒ’ｘ（φ０）〜Ｒ’ｚ（θ０）を求めることにより、回転行列Ｒを算出できる。
【００４７】
以下、回転角φ０，ψ０，θ０の求め方について述べる。図７は、基本座標系’の回転を示す図である。
【００４８】
・回転角θ０（図７（ａ））
基準座標系’において、点ＦＡをｚ’軸周りに角度θだけ回転させた点の３次元座標をＰ’Ａ＝（ｘ’，ｙ’，ｚ’）Ｔで表す。ｙ’＝０かつｘ’＞０となるときのθを求め、これをθ０とする。
【００４９】
・回転角ψ０（図７（ｂ））
基準座標系’において、点ＦＡをｚ’軸周りに角度θ０、ｙ’軸周りに角度ψ回転させた点の３次元座標をＰ’’Ａ＝（ｘ’’，ｙ’’，ｚ’’）Ｔで表す。ｚ’’＝０かつｘ’’＞０となるときのψを求め、これをψ０とする。
【００５０】
・回転角φ０（図７（ｃ））
基準座標系’において、点Ｑをｚ’軸周りに角度θ０、ｙ’軸周りに角度ψ０、ｘ’軸周りに角度φ回転させた点の３次元座標をＰ’’’Ｑ＝（ｘ’’’，ｙ’’’，ｚ’’’）Ｔで表す。ｚ’’’＝０かつｙ’’’＜０となるときのφを求め、これをφ０とする。
【００５１】
平行移動ベクトルＴとＲ’ｘ，Ｒ’ｙ，Ｒ’ｚから算出した回転行列Ｒは、ＲＡＭ１０２などに記憶される。また、算出した平行移動ベクトルＴと回転行列Ｒから、式（３）により被写体モデル座標系における点ＦＡの３次元座標ＰＭＡを求めることができる。他の特徴点ＦＢ〜ＦＤについても、特徴点ＦＡと同様に、被写体モデル座標系における３次元座標ＰＭＢ，ＰＭＣ，ＰＭＤを算出する。算出した（ＰＭＡ，ＰＭＢ，ＰＭＣ，ＰＭＤ）の組を被写体モデルとして、ＨＤＤ１０５に上書き記憶する。
【００５２】
◆被写体モデルと１枚の画像を用いた特徴点の３次元座標推定処理
ステップＳ３０５における被写体モデルの取得、及び各特徴点の３次元座標推定処理の詳細について説明する。図８は、ステップＳ３０５における３次元座標推定処理のフローチャートを示す。
【００５３】
まず、ステップＳ８０１において、所定の記憶領域に記憶された被写体モデルを記憶領域から読み込む。但し、被写体モデルが記憶領域に無い場合は、被写体視点画像表示処理を終了する。
【００５４】
ステップＳ８０２において、ステップＳ８０１で取得した被写体モデルとステップＳ３０２で算出した特徴点の２次元座標から、各特徴点の３次元座標を推定する。ここで本実施例では、例えば特開２００８−２３２９５０号記載の方式を用いて特徴点の３次元座標ＰＡ，ＰＢ，ＰＣ，ＰＤを推定する。推定した各特徴点の３次元座標ＰＡ，ＰＢ，ＰＣ，ＰＤは、ＲＡＭ１０２などに記憶される。
【００５５】
このように、各特徴点が撮像された画像が複数ある場合は、それぞれの画像から得られる二次元座標から、各特徴点の３次元座標を算出する。それと同時に、被写体の特徴に基づく被写体モデルを生成しておく。被写体モデルは、各特徴点の全てが撮像された画像が１つしかない場合に用いられるものである。被写体モデルを参照して各特徴点の３次元座標を推定することにより、被写体が１台の撮像装置でしか検出されなかった場合でも、任意の被写体情報を算出することが可能となる。
【００５６】
本実施例では、人を被写体とした例について説明したが、特徴点が検出されるものであれば良い。例えば正方形の板を被写体とし、板の４つの角にそれぞれ異なる色のマーカーをつけて、そのマーカーを特徴点としても良い。
【００５７】
また、特徴点ＦＡおよびＦＢの中点ＦＯの３次元座標を被写体の位置情報として用いたが、これに限らない。４つの特徴点の各３次元座標をそのまま被写体の位置情報としてもよい。さらに、本実施例では、被写体の位置を示す位置情報と、被写体である人の向きを示す向き情報とを被写体情報として算出しているが、被写体情報とは、少なくとも被写体の位置がわかる情報であればよい。ただし、被写体の向き情報を必要とする場合は、被写体における特徴点は４つ以上検出する。
【００５８】
また本実施例では、２台のカメラで被写体を撮像する例について説明したが、撮像装置の台数は２台以上であれば良い。例えば、３台の撮像装置で５つの特徴点を検出する場合、ある２台の撮像装置で撮像した画像から共通する所定の特徴点が検出されているかどうかを判定すれば良い。または、停止した被写体であれば、１つの撮像装置が複数の視点から撮像した画像を用いてもよい。
【００５９】
尚、撮像した画像から算出する特徴点の２次元座標の精度を向上させる為に、画像１及び画像２に対して光軸ずれの補正処理や歪曲補正処理を行った補正画像から、各特徴点の２次元座標を算出しても良い。
【００６０】
更に、被写体モデル生成に用いる座標系は、ある点に対する４つの特徴点の相対的な３次元座標が算出できれば良く、他の点を原点としても良いし、極座標や斜交座標などの他の座標系を用いても良い。
【００６１】
本実施例では、特徴点の推定をフレーム毎に完結した処理で実行しているが、直前フレームの情報を用いてトラッキング処理しても良いことは言うまでも無い。
【００６２】
＜実施例２＞
実施例１では撮像した画像を取得し、視点数が２つ以上の時には常に被写体モデルを生成する方法について説明した。
【００６３】
実施例２では、生成した被写体モデルを記憶する際に、被写体モデルの精度を評価した結果に応じて、記憶する被写体モデルを取捨選択する方法について説明する。記憶する被写体モデル取捨選択することにより、被写体モデルを用いた被写体情報をより精度良く推測することが可能となる。
【００６４】
なお、本実施例における処理の流れは、ステップＳ３０４以外は実施例１で図４を用いて説明した内容と同じである。前述の実施例と同様の処理については、説明を省略する。本実施例ではステップＳ３０４において、実施例１の処理に加え、ステップＳ３０２において画像から検出した各特徴点の２次元座標の精度を評価する。以下、図９を用いて本実施例におけるステップＳ３０４の３次元座標算出処理を説明する。
【００６５】
まず、ステップＳ５０１において特徴点の３次元座標を算出する。
【００６６】
ステップＳ９０１において、ステップＳ３０２で取得した特徴点の２次元座標の精度を算出する。図１０は、特徴点の精度を説明する図である。画像１の各特徴点（ＦＡ〜ＦＤ）が、エピポーラ線（ＬＡ〜ＬＤ）上にあるかどうかを評価することにより、取得した特徴点の２次元座標の精度を算出する。例えばエピポーラ線ＬＡの方程式は、以下の式（６）から求めることができる。
【００６７】
【数６】
2013050877.tif 000008
ＨｍＡは、エピポーラ線ＬＡ上の点ｍＡ（図１０）の２次元座標ＰｍＡに対応する２次元斉次座標ＨｍＡ＝（ｘ，ｙ，１）である。Ｈ２Ａは、画像２から取得した特徴点ＦＡの２次元座標Ｐ２Ａ＝（ｕ２Ａ，ｖ２Ａ）に対応する２次元斉次座標Ｈ２Ａ＝（ｕ２Ａ，ｖ２Ａ，１）である。Ｆはカメラ１、カメラ２の内部行列と外部パラメータから求まる３×３基礎行列である。本実施例では、基礎行列を予め記憶領域に記憶しておくことで、エピポーラ線ＬＡの方程式を算出する。そして、算出したエピポーラ線ＬＡと、画像１から取得した２次元座標Ｐ１Ａとの距離ｄＡを求める。
【００６８】
特徴点ＦＢ〜ＦＤについても特徴点ＦＡと同様に、エピポーラ線ＬＢ〜ＬＤの方程式と、エピポーラ線と特徴点の２次元座標との距離ｄＢ〜ｄＤを算出する。２次元座標の算出の精度ρは、例えば以下の式（７）を用いる。この場合、精度ρは値が大きいほど精度が良いと判断できる。
【００６９】
【数７】
2013050877.tif 000009
算出した特徴点の２次元座標の精度ρは、ＲＡＭ１０２などに記憶される。
【００７０】
ステップＳ９０２において、ステップＳ９０１で算出した特徴点の２次元座標の精度ρが十分であるかどうかを判定する。精度ρが閾値ρ０より大きければ、ステップＳ５０２へ進む。ρがρ０以下であれば、３次元座標算出処理を終了し、ステップＳ３０６へ進む。本実施例ではρ０＝０．２５（ｐｉｘｅｌ）−１とする。
【００７１】
以上説明したように、被写体モデル生成に用いる特徴点の２次元座標を評価することにより、被写体モデルを用いて被写体情報をより精度良く算出することが可能となる。
【００７２】
＜実施例３＞
前述の実施例では、被写体モデルが記憶領域に無い場合には、被写体視点画像表示処理を終了していた。実施例３では、視点数が１つで、かつ被写体モデルが記憶領域に無い場合でも、一般的な被写体モデルを取得することで、被写体位置情報を推定する方法について説明する。
【００７３】
被写体は前述の実施例と同様、人を例に挙げる。一般的な人の被写体モデルを予め記憶領域に記憶しておくことにより、システム起動直後など、被写体が１度も複数台の撮像装置で撮像されたことが無い場合でも、被写体情報を算出することが可能となる。
【００７４】
本実施例における処理の流れは、ステップＳ３０５以外は実施例１で図４を用いて説明した内容と同じである。前述の実施例と同様の処理については、説明を省略する。本実施例ではステップＳ３０５において、実施例１の処理に加え、被写体モデルが記憶領域に無い場合に、一般的な人の被写体モデルを読み込む処理を行う。図１１は実施例３に適用可能な３次元座標推定処理のフローを示す図である。
【００７５】
まずステップＳ１１０１において、被写体モデルが有るかどうかを判定する。ＨＤＤ１０５などの記憶領域に被写体モデルが記憶されていれば、ステップＳ８０１へ進む。被写体モデルが記憶されていない場合は、ステップＳ１１０２へ進む。
【００７６】
ステップＳ１１０２において、予め記憶領域に記憶しておいた一般的な人の被写体モデルを読み込む。本実施例では、例えばＰＡ＝（３２．５，０，０）Ｔ，ＰＢ＝（−３２．５，０，０）Ｔ，ＰＣ＝（８，−７０，０）Ｔ，ＰＤ＝（−８，−７０，０）Ｔ（ｍｍ）を一般的な人の被写体モデルとする。読み込んだ被写体モデルは、ＲＡＭ１０２などに記憶し、ステップＳ８０２へ進む。ステップＳ８０２については実施例１と同じである為、説明を省略する。
【００７７】
以上で説明した処理を行うことにより、システム起動直後など、まだ被写体が１度も複数台の撮像装置で撮像した画像で検出されたことが無い場合でも、任意の被写体情報を算出することが可能となる。
【００７８】
なお、上述した各実施例は、以下の処理を実行することによっても実現される。即ち、上記実施形態の各工程や機能を実現するソフトウェア（コンピュータプログラム）を、ネットワークや記憶媒体を介してシステムに供給し、そのシステムのコンピュータ（またはＣＰＵ等）が上記プログラムを読み込んで実行する処理である。上記コンピュータプログラムや、それを記憶したコンピュータ可読記憶媒体も本発明の範疇に含まれる。
【図１】
2013050877.tif 000010
【図２】
2013050877.tif 000011
【図３】
2013050877.tif 000012
【図４】
2013050877.tif 000013
【図５】
2013050877.tif 000014
【図６】
2013050877.tif 000015
【図７】
2013050877.tif 000016
【図８】
2013050877.tif 000017
【図９】
2013050877.tif 000018
【図１０】
2013050877.tif 000019
【図１１】
2013050877.tif 000020