(57)【要約】      （修正有）【課題】画像データおよび奥行データを用いて対象の位置姿勢を検出において、画像内に動体領域と静止領域が存在する場合に、動体領域の動きによる影響を抑えて位置姿勢の推定精度を高める画像処理装置を提供する。【解決手段】第１処理部２００は、画像データと対をなす奥行データを取得して奥行ごとに分割し、分割された奥行ごとに位置姿勢変化を推定する。第２処理部３００は、画像データから画像の動きを検出し、モーションごとの領域の位置姿勢変化を推定する。画像処理部１００には、第１処理部２００による第１演算結果が入力部１０３から入力され、第２処理部３００による第２演算結果が入力部１０４から入力される。静止領域決定部１０５は、第１及び第２演算結果を用いて画像内の静止領域を決定し、推定決定部１０７は、決定された静止領域に基づいて第１及び第２演算結果から画像全体の位置姿勢変化を決定するとともに、保存部１０８に出力する。【選択図】図１
2015121524.tif 000002
【特許請求の範囲】
【請求項１】
画像データおよび奥行データを取得して、処理対象の位置姿勢変化を算出する画像処理装置であって、
前記奥行データを取得して奥行ごとに分割し、分割された奥行データから奥行ごとの位置姿勢変化を算出し、第１の位置姿勢変化のデータを算出する第１処理手段と、
複数のフレームの前記画像データから画像の動きを検出してモーションごとの領域の位置姿勢変化を算出し、前記モーションごとの領域の位置姿勢変化から第２の位置姿勢変化のデータを算出する第２処理手段と、
前記第１の位置姿勢変化のデータおよび前記第２の位置姿勢変化のデータを取得して画像の静止領域を決定する第１決定手段と、
前記第１決定手段により決定された静止領域と、前記第１の位置姿勢変化のデータおよび前記第２の位置姿勢変化のデータから画像全体の位置姿勢変化を決定する第２決定手段と、を有することを特徴とする画像処理装置。
【請求項２】
前記第１処理手段は、前記分割された奥行データをグループにまとめるグループ化処理手段を備えることを特徴とする請求項１に記載の画像処理装置。
【請求項３】
被写体像の占める領域が最大である領域を、前記第１決定手段が前記静止領域として決定した場合、前記第２決定手段は前記第２の位置姿勢変化のデータにより画像全体の位置姿勢変化を決定することを特徴とする請求項１または２に記載の画像処理装置。
【請求項４】
奥行の占める割合が最大である領域を、前記第１決定手段が前記静止領域として決定した場合、前記第２決定手段は第１の位置姿勢変化のデータにより画像全体の位置姿勢変化を決定することを特徴とする請求項１ないし３のいずれか１項に記載の画像処理装置。
【請求項５】
前記静止領域の判断基準を操作にしたがって選択する選択手段を備え、
前記第１決定手段は、前記選択手段により選択された前記判断基準に従って前記静止領域を決定することを特徴とする請求項１ないし４のいずれか１項に記載の画像処理装置。
【請求項６】
前記第１処理手段は、前記奥行ごとのグループのうちで画像全体に占める割合が最大のグループに対応する位置姿勢変化を選択することを特徴とする請求項２に記載の画像処理装置。
【請求項７】
前記第２処理手段は、前記モーションごとの領域のうちで画像全体に占める割合が最大の領域に対応する位置姿勢変化を選択することを特徴とする請求項１ないし６のいずれか１項に記載の画像処理装置。
【請求項８】
前記第２決定手段は、前記第１の位置姿勢変化のデータと前記第２の位置姿勢変化のデータとの差が閾値以下である場合、重み付け演算を行って画像全体の位置姿勢変化を決定することを特徴とする請求項１ないし６のいずれか１項に記載の画像処理装置。
【請求項９】
前記第２決定手段により決定された画像全体の位置姿勢変化のデータを記憶する記憶手段を備え、
前記第２決定手段は、前記第１の位置姿勢変化のデータと前記第２の位置姿勢変化のデータとの差が閾値を超える場合、前記記憶手段に記憶されたデータを読み出して、前記第１の位置姿勢変化のデータと前記第２の位置姿勢変化のデータのうち、読み出した前記データの示す位置姿勢変化との差が小さい方の位置姿勢変化のデータを、画像全体の位置姿勢変化のデータとして決定することを特徴とする請求項１ないし８のいずれか１項に記載の画像処理装置。
【請求項１０】
前記第２決定手段は、前記第１の位置姿勢変化のデータと前記第２の位置姿勢変化のデータとが異なり、かつ前記記憶手段に前記位置姿勢変化のデータが記憶されていない場合、前記第１の位置姿勢変化のデータおよび前記第２の位置姿勢変化のデータを、画像全体の位置姿勢変化のデータとして使用しないことを特徴とする請求項９の画像処理装置。
【請求項１１】
前記第１処理手段は、
前記奥行データを取得して奥行ごとに分割する奥行分割手段と、
前記奥行分割手段により分割された奥行データから少なくとも最奥の奥行を含む同一の位置姿勢変化の奥行データを算出する算出手段と、
前記最奥の奥行を含む同一の位置姿勢変化の奥行データから第１の背景領域候補を推定する第１の推定手段と、を備えることを特徴とする請求項１に記載の画像処理装置。
【請求項１２】
前記画像の動きとは、動きベクトルまたは対応点または注目点の軌跡であることを特徴とする請求項１ないし１１のいずれか１項に記載の画像処理装置。
【請求項１３】
前記第２処理手段は、前記モーションごとの領域について第２の背景領域候補を推定する第２の推定手段を備えることを特徴とする請求項１１または１２に記載の画像処理装置。
【請求項１４】
前記第２の推定手段は、
前記画像データから局所特徴量を抽出する第１の抽出手段と、
事前に学習した画像の画像データから局所特徴量を抽出する第２の抽出手段と、
前記第２の抽出手段が抽出した前記局所特徴量からデータベースを作成するデータベース作成手段と、
前記第１の抽出手段が抽出した前記局所特徴量を前記データベースのデータと照合する照合手段と、を備え、
前記照合手段が前記第２の背景領域候補を推定することを特徴とする請求項１３に記載の画像処理装置。
【請求項１５】
前記第１決定手段は、前記第１の背景領域候補および前記第１の位置姿勢変化のデータと、前記第２の背景領域候補および前記第２の位置姿勢変化のデータによって背景領域を決定し、前記背景領域から前記静止領域を決定することを特徴とする請求項１３または１４に記載の画像処理装置。
【請求項１６】
前記第２決定手段は、前記第１決定手段により前記背景領域から決定された前記静止領域と、前記第１の位置姿勢変化のデータと、前記第２の位置姿勢変化のデータによって画像全体の位置姿勢変化を決定することを特徴とする請求項１５に記載の画像処理装置。
【請求項１７】
撮影光学系および撮像素子により撮像された画像の画像データを入力する第１入力手段と、
前記画像データと対をなす奥行データを入力する第２入力手段と、
請求項１ないし１６のいずれか１項に記載の画像処理装置を備えることを特徴とする撮像装置。
【請求項１８】
前記画像データに係る像振れ補正を行う補正手段と、
前記第２決定手段によって決定された画像全体の位置姿勢変化のデータを取得して像振れ補正量を算出し、前記補正手段を制御する制御手段と、を備えることを特徴とする請求項１７に記載の撮像装置。
【請求項１９】
画像データおよび奥行データから処理対象の位置姿勢変化を算出する画像処理装置にて実行される制御方法であって、
前記画像処理装置により、
前記画像データおよび奥行データを取得するステップと、
前記奥行データを奥行ごとに分割し、分割された奥行データから奥行ごとの位置姿勢変化を算出し、第１の位置姿勢変化のデータを算出する第１処理ステップと、
複数のフレームの前記画像データから画像の動きを検出してモーションごとの領域の位置姿勢変化を算出し、前記モーションごとの領域の位置姿勢変化から第２の位置姿勢変化のデータを算出する第２処理ステップと、
前記第１の位置姿勢変化のデータおよび前記第２の位置姿勢変化のデータを取得して画像の静止領域を決定する第１決定ステップと、
前記第１決定ステップで決定された静止領域と、前記第１の位置姿勢変化のデータおよび前記第２の位置姿勢変化のデータから画像全体の位置姿勢変化を決定する第２決定ステップと、を有することを特徴とする画像処理装置の制御方法。
【請求項２０】
前記第２決定ステップで決定された画像全体の位置姿勢変化のデータを用いて像振れ補正を行う補正ステップを有することを特徴とする請求項１９に記載の画像処理装置の制御方法。
【請求項２１】
請求項１９または２０に記載した画像処理装置の制御方法の各ステップをコンピュータに実行させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、撮影画像および該撮影画像と同期して撮影した奥行画像を利用して、撮像装置と撮影対象との位置および姿勢関係の変化を推定する画像処理技術に関する。
【背景技術】
【０００２】
撮像装置を用いて撮像した画像から撮影対象の位置姿勢、または撮像装置と撮影対象との相対的な位置や姿勢やその時間的変化を推定する技術がある。実現方法としては、動きベクトルや対応点画像の動き情報を使った推定方法が一般的である。近年、奥行データ取得技術の進歩により、奥行データから撮影物体の３次元モデルを構築し、事前に用意した３次元モデルとの照合により位置関係を推定する方法が提案されている。また、画像から求められる情報および前記奥行データを併用する方法も提案されている。
【０００３】
特許文献１および特許文献２には、奥行データと画像の特徴を併用した方法が提案されている。特許文献１に記載の方法では、予め用意した３次元形状モデルと奥行データでの位置合わせと、画像から抽出した２次元的特徴と前記３次元形状モデルをある位置姿勢で２次元画像に投影したときの投影特徴との位置合わせを併用する。これにより、被写体の位置姿勢の推定を行うことができる。また、特許文献２に記載の方法では、画像から検出した特徴点位置の奥行データを、予め用意した３次元形状モデルと対応させることで奥行データのノイズによる誤対応に対処し、被写体の位置姿勢の推定が行われる。
位置姿勢変化の算出に使用する注目領域を算出する方法として、背景領域の算出を行うことが多い。従来の背景領域抽出では、連続するフレーム間の差分を用いることで背景および動く被写体の特定を行う方法が一般的である。特許文献３には、動画像から１シーンを構成する画像の差分を比較することで、前景と背景の領域を特定して分離し、画像処理に使用している。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１１−２７６２３号公報
【特許文献２】特開２０１２−１２３７８１号公報
【特許文献３】特開平１１−１１２８７１号公報
【非特許文献】
【０００５】
【非特許文献１】D.Titterton,“Strapdown Inertial Navigation Technology”,p.p.17-55,309-332
【非特許文献２】B.Triggs,”Auto calibration from Planar Scene”, European Conference on Computer Vision (ECCV '98)
【非特許文献３】R.Hartley,A.Zisserman,” Multiple View Geometry in Computer Vision”, Cambridge Univ. Press （2000）
【非特許文献４】Bill Triggs,"Routines for Relative Pose of Two Calibrated Cameras from 5 Points",Documentation, INRIA. juillet 2000.
【発明の概要】
【発明が解決しようとする課題】
【０００６】
撮像装置で撮像した画像から、撮像装置のカメラワークを推定する場合、動きベクトルから推定する方法と、奥行データから推定する方法がある。これら個別の方法では、撮影画像内に動体領域と静止領域が混在していると、位置姿勢の時間的変化およびその積分である位置姿勢により表されるカメラワークの推定が困難になる場合がある。
例えば静止領域を領域の大小で判断して、位置姿勢の変化または位置姿勢の推定を行うと、動体領域が静止領域よりも大きい場合、動体領域の動きによる影響を被り易くなる。このため、静止シーンを基準とした撮像装置の位置姿勢の変化や、位置姿勢の軌跡であるカメラワークの推定が困難になる可能性がある。
本発明の目的は、画像データおよび奥行データを用いて対象の位置姿勢を検出する画像処理装置において、画像内に動体領域と静止領域が存在する場合に、動体領域の動きによる影響を抑えて位置姿勢の推定精度を高めることである。
【課題を解決するための手段】
【０００７】
上記課題を解決するために、本発明に係る装置は、画像データおよび奥行データを取得して、処理対象の位置姿勢変化を算出する画像処理装置であって、前記奥行データを取得して奥行ごとに分割し、分割された奥行データから奥行ごとの位置姿勢変化を算出し、第１の位置姿勢変化のデータを算出する第１処理手段と、複数のフレームの前記画像データから画像の動きを検出してモーションごとの領域の位置姿勢変化を算出し、前記モーションごとの領域の位置姿勢変化から第２の位置姿勢変化のデータを算出する第２処理手段と、前記第１の位置姿勢変化のデータおよび前記第２の位置姿勢変化のデータを取得して画像の静止領域を決定する第１決定手段と、前記第１決定手段により決定された静止領域と、前記第１の位置姿勢変化のデータおよび前記第２の位置姿勢変化のデータから画像全体の位置姿勢変化を決定する第２決定手段と、を有する。
【発明の効果】
【０００８】
本発明によれば、画像内に動体領域と静止領域が存在する場合に、動体領域の動きによる影響を抑えて位置姿勢の推定精度を高めることができる。
【図面の簡単な説明】
【０００９】
【図１】図２から図１３と併せて本発明の第１実施形態を説明するために、装置全体の構成を示すブロック図である。
【図２】奥行データの処理部の構成を示すブロック図である。
【図３】動きベクトルの処理部の構成を示すブロック図である。
【図４】全体の動作を示すフローチャートである。
【図５】奥行データの処理部の動作を示すフローチャートである。
【図６】奥行分割工程の流れを示すフローチャートである。
【図７】動きベクトルの処理部の動作を示すフローチャートである。
【図８】奥行分割工程を例示する図である。
【図９】画像内の最大領域に基づく位置姿勢変化の推定、および奥行を占める最大領域に基づく位置姿勢変化の推定を説明する図である。
【図１０】分割された奥行ごとの位置姿勢変化の推定例、およびグループ化の例を示す図である。
【図１１】ＩＣＰアルゴリズムによって点群間の位置姿勢変化を推定する様子を示す模式図である。
【図１２】分割された奥行ごとの位置姿勢変化の推定結果と、これに対応する奥行が占める割合を例示する度数分布図である。
【図１３】モーションごとの領域の位置姿勢変化の推定結果と、これに対応する被写体領域が占める割合を例示する度数分布図である。
【図１４】図１５から図２２と併せて本発明の第２実施形態を説明するために、装置全体の構成を示すブロック図である。
【図１５】奥行データの処理部の構成を示すブロック図である。
【図１６】動きベクトルの処理部の構成を示すブロック図である。
【図１７】全体の動作を示すフローチャートである。
【図１８】奥行データの処理部の動作を示すフローチャートである。
【図１９】動きベクトルの処理部の動作を示すフローチャートである。
【図２０】画像を使用した背景領域候補の推定処理を説明する図である。
【図２１】静止領域決定部の動作を示すフローチャートである。
【図２２】静止領域を基準とした位置姿勢変化の推定、および動体領域を基準とした位置姿勢変化の推定を説明する図である。
【発明を実施するための形態】
【００１０】
本発明の各実施形態に係る画像処理装置を備える撮像装置について、添付図面を参照して説明する。尚、撮像装置は既知の像振れ補正制御により、撮影者の手振れや体の揺れ等に起因する像振れを抑制する機能を有するものとする。
［第１実施形態］
図１は、本発明の第１実施形態に係る撮像装置の構成例を示すブロック図である。撮像装置１は、画像取得装置１０１と、奥行画像取得装置１０２と、第１処理部２００および第２処理部３００と、画像処理部１００と、位置姿勢推定結果保存部（以下、単に保存部という）１０８と、制御部１１０を備える。
画像取得装置１０１は、被写体を撮影して２次元画像のデータを取得するユニットである。画像取得装置１０１の画像データは、第１処理部２００と第２処理部３００に出力される。本実施形態では、奥行データを使用した第１処理部２００と、動きベクトルを使用した第２処理部３００を用いる。
【００１１】
奥行画像取得装置１０２は、奥行データを検出する装置であり、第１処理部２００に接続されている。本実施形態では、奥行データとして、例えば画素ごとに奥行のデータを持った奥行画像として説明する。奥行画像取得装置１０２は、例えば、赤外線照射部と赤外線読み取り部を有する。赤外線照射部は所定パターンの赤外線を対象物に照射し、反射した赤外線を赤外線読み取り部が読み取る。これによりパターンの歪みを読み取り、奥行画像の撮影が行われる。尚、奥行画像の生成の方式については、他の方式でもよい。例えば、赤外線を照射してから、読み取りにかかる時間を計測して奥行画像の撮影をするＴｉｍｅ  ｏｆ  ｆｌｉｇｈｔ方式や、多眼レンズで撮影した複数枚の画像の視差を求めて奥行画像の生成を行う方式でもよい。奥行画像の生成が可能であれば、方式の如何は問わない。
【００１２】
第１処理部２００は、画像取得装置１０１からの画像データ、および奥行画像取得装置１０２からの奥行画像データを取得し、位置姿勢変化を推定する。このとき、第１処理部２００は、保存部１０８から過去における位置姿勢変化の推定結果を取得して、位置姿勢変化の推定に利用することもある。第１処理部２００は、奥行データを使用した位置姿勢変化の推定結果を画像処理部１００に出力する。
第２処理部３００は、画像取得装置１０１によって撮影された画像データを使用して動きベクトルを検出して位置姿勢変化を推定する。このとき、第２処理部３００は、保存部１０８から過去における位置姿勢変化の推定結果を取得して、姿勢変化推定に利用することもある。第２処理部３００は、動きベクトルを使用した位置姿勢変化の推定結果を画像処理部１００に出力する。
【００１３】
画像処理部１００は、位置姿勢変化の推定結果が入力される第１入力部１０３および第２入力部１０４と、静止領域決定部１０５と、過去の位置姿勢変化の推定結果に係る第３入力部１０６と、全体の位置姿勢変化の推定決定部１０７を備える。
奥行データを使用した位置姿勢変化の推定結果が入力される第１入力部１０３は、第１処理部２００に接続されている。第１処理部２００により奥行データを使用して推定された、第１の位置姿勢変化の演算結果（以下、第１演算結果という）は、第１入力部１０３から静止領域決定部１０５および推定決定部１０７に出力される。
動きベクトルを使用した位置姿勢変化の推定結果が入力される第２入力部１０４は、第２処理部３００に接続されている。第２処理部３００により動きベクトルを使用して推定された、第２の位置姿勢変化の演算結果（以下、第２演算結果という）は、第２入力部１０４から静止領域決定部１０５および推定決定部１０７に出力される。
【００１４】
静止領域決定部１０５は、第１演算結果および第２演算結果を取得し、これらの情報に基づいて画像内の静止領域を決定する第１決定処理を実行する。このとき、静止領域決定部１０５は第３入力部１０６を介して、保存部１０８から過去の位置姿勢変化の演算結果（以下、過去演算結果という）を取得し、静止領域の決定に利用する場合もある。第１決定処理にて決定された静止領域の情報は推定決定部１０７に出力される。また静止領域決定部１０５は、選択部１０９により選択された判断基準に従って静止領域を決定することもできる。選択部１０９は、静止領域の判断基準をユーザ操作に応じて選択するための操作部や設定画面等の表示部を備える。
推定決定部１０７は、第１演算結果および第２演算結果と、静止領域決定部１０５によって決定された静止領域の情報を用いて画像全体の位置姿勢変化を決定する第２決定処理を実行する。第２決定処理にて決定された位置姿勢変化の演算結果は保存部１０８に送られて保存される。保存部１０８には、位置姿勢変化の推定結果が過去演算結果として記憶されている。保存部１０８は、第１処理部２００と、第２処理部３００と、第３入力部１０６に接続されており、過去演算結果を必要に応じて各部に出力する。
【００１５】
次に、第１処理部２００の構成について、図２のブロック図を参照して説明する。
画像入力部２０１には、画像取得装置１０１からの画像データが入力され、奥行画像入力部２０２には、奥行画像取得装置１０２からの奥行画像データが入力される。３次元点群生成部２０３は、画像データおよび奥行画像データを、画像入力部２０１および奥行画像入力部２０２からそれぞれ取得して、後述する３次元点群を生成する。３次元点群のデータは、奥行分割部２０４と第１推定部２０５に出力される。
奥行分割部２０４は、奥行画像入力部２０２から入力された奥行画像を使用して、３次元点群生成部２０３が生成した３次元点群を奥行ごとに分割処理する。処理結果は第１推定部２０５に出力される。第１推定部２０５は、奥行ごとの位置姿勢変化を推定する処理を実行する。その際、第１推定部２０５は、３次元点群生成部２０３により生成された３次元点群を非基準フレームとし、奥行分割部２０４によって分割された奥行データをもつ３次元点群を基準フレームとする。第１推定部２０５は、分割された奥行ごとに非基準フレームに対して位置姿勢変化を推定し、推定結果をグループ化処理部２０６に出力する。
【００１６】
グループ化処理部２０６は、第１推定部２０５によって推定された奥行ごとの位置姿勢変化の推定結果をグループにまとめる処理を実行する。第２推定部２０７は、全体の位置姿勢変化を推定する処理を実行する。第２推定部２０７は、グループ化処理部２０６がグループ化した、各グループの位置姿勢変化の推定結果から１つを選び出し、これを第１演算結果とする。つまり、第２推定部２０７は画像処理部１００に接続されており、第１演算結果は、第１入力部１０３（図１参照）に送信される。過去演算結果が入力される入力部２０８は、保存部１０８に接続されており、過去演算結果は入力部２０８を介して第２推定部２０７に出力される。
【００１７】
次に、図３を参照して、動きベクトルを使用した第２処理部３００の構成について説明する。
画像入力部３０１は画像取得装置１０１に接続され、画像取得装置１０１が撮影する画像データが入力される。動きベクトル算出部３０２は、画像入力部３０１から入力される、基準フレームの画像と非基準フレームの画像の各データを比較して画像間の動きベクトルを算出して領域算出部３０３に出力する。ロバスト推定によるモーションごとの領域算出部３０３は、動きベクトル算出部３０２が算出した動きベクトルの情報を用いてモーションごとの領域の動きベクトルを算出する。位置姿勢変化の推定部３０４は、領域算出部３０３によって算出された領域ごとの動きベクトルを取得して位置姿勢変化を推定し、推定結果を、領域内特徴点の削除部３０５に出力する。削除部３０５は、領域算出部３０３によって算出された領域内の特徴点を削除して処理結果を、全体の位置姿勢変化を推定する推定部３０６に出力する。推定部３０６は、位置姿勢変化の推定部３０４によって推定されたモーションごとの領域の位置姿勢変化から、１つを選び出して第２演算結果とする。例えば、モーションごとの領域のうちで画像内に占める割合が最大である領域の位置姿勢変化が選択される。推定部３０６の出力は、第２入力部１０４を介して画像処理部１００に入力される。過去演算結果が入力される入力部３０７は保存部１０８に接続されている。過去演算結果は入力部３０７を介して推定部３０６に入力される。
【００１８】
次に、図４に示すフローチャートを参照して、撮像装置１の動作について詳細に説明する。尚、動画像の場合、本実施形態では時間軸方向に沿って連続するフレーム間で位置姿勢変化の推定処理が行われるものとする。基準フレームと非基準フレームについては時間軸方向に関連しているフレームとするが、必ずしも隣接するフレームでなくてもよい。各フレームについては基準フレームとして処理が終了するまで、以下の処理が繰り返される。あるいはユーザ操作に従って基準フレームとして処理するフレームを設定してもよい。
Ｓ４０１では、画像取得装置１０１による画像データと、奥行画像取得装置１０２による奥行画像データが、第１処理部２００へ入力される。第１処理部２００は第１演算結果を算出し、第１入力部１０３へ出力する。第１処理部２００が行う処理の詳細については、図５に示すフローチャートを用いて後述する。
【００１９】
Ｓ４０２では、画像取得装置１０１による画像データが、第２処理部３００へ入力される。第２処理部３００は第２演算結果を算出し、第２入力部１０４へ出力する。第２処理部３００が行う処理の詳細については、図７に示すフローチャートを用いて後述する。Ｓ４０３では、保存部１０８に記憶されている過去演算結果が、第３入力部４０６を介し画像処理部１００へ入力される。Ｓ４０４で静止領域決定部１０５は、Ｓ４０１で入力された第１演算結果と、Ｓ４０２で入力された第２演算結果と、Ｓ４０３で入力された過去演算結果に基づいて静止領域決定の判断基準を設定する。
【００２０】
本実施形態では、奥行データを使用した第１演算結果と、動きベクトルを使用した第２演算結果が類似である場合、第１演算結果と第２演算結果のどちらについても、静止領域で位置姿勢変化の推定を行っていることが判断される。「推定結果が類似する」とは、位置姿勢変化の平行ベクトルの向き（符号）が同一であり、かつ大きさの差が閾値以下であり、回転移動の回転角度の大きさが閾値以下の場合であると定義する。Ｓ４０４の処理では、予め定めた一方の推定結果が算出され、例えば、より高精度な位置姿勢値が求まる第１演算結果を採用する場合を想定するが、第２演算結果の方が安定度の高い状況では、第２演算結果を採用してもよい。あるいは第２演算結果と静止領域での位置姿勢変化の推定結果との平均演算により、位置姿勢変化の推定結果を算出してもよい。
【００２１】
第１演算結果と第２演算結果が異なる場合には、例えば、過去演算結果と比較され、これに近い方、つまり過去演算結果との差が小さい方の推定結果に係る領域を静止領域として設定する処理が行われる。例えば、フレームレート６０ｆｐｓ（frames per second）で動画撮影を行う場合を想定する。現在の位置姿勢変化の推定結果と過去演算結果とで時間間隔は、１／６０秒という短い時間である。このため、静止領域の位置姿勢変化は、像振れがあった場合でも現在の位置姿勢変化と過去の位置姿勢変化とで非常に近い値になる可能性が高い。従って過去演算結果に近い推定結果に係る領域が静止領域として設定される。また、位置姿勢の誤判定を極力回避するためには、過去演算結果が保存部１０８に存在しない場合、静止領域の判断不可として設定すればよい。本実施形態では、第１演算結果と第２演算結果が異なり、かつ過去演算結果がない場合、静止領域の判断不可と設定される。この他、ユーザが意図する結果と合致する静止領域の選択指針を予め手動操作で設定しておいて、適時に切り替え処理が行われるように構成してもよい。または、直前のフレーム間での位置姿勢変化の推定結果、または該推定結果から算定される予測値を利用してもよい。
【００２２】
Ｓ４０５で静止領域決定部１０５は、Ｓ４０４で設定された静止領域の判断基準に基づき、被写体領域が最大の領域または奥行領域が最大の領域から、静止領域の位置姿勢変化を算出する。「被写体領域が最大の領域」とは、画像内で被写体像が占める割合が最大の領域である。また「奥行領域が最大の領域」とは、画像内にて分割された奥行の占める割合が最大の領域である。静止領域決定部１０５は被写体領域が最大の領域を静止領域と判断した場合、Ｓ４０６へ処理を進め、奥行領域が最大の領域を静止領域と判断した場合、Ｓ４０７へ処理を進める。静止領域の判断不可となった場合、Ｓ４０８へ移行する。
【００２３】
Ｓ４０６で推定決定部１０７は、Ｓ４０３で入力された第２演算結果を、全体の位置姿勢変化の推定結果として決定する。Ｓ４０７で推定決定部１０７は、Ｓ４０２で入力された第１演算結果を、全体の位置姿勢変化の推定結果として決定する。また、Ｓ４０８で推定決定部１０７は、現フレームでの位置姿勢変化の推定を不可と判断し、現フレームでの位置姿勢変化の推定処理をスキップし、今回の処理を終了する。尚、本実施形態ではＳ４０８で現フレームの位置姿勢変化の推定処理を行わない判断が下されるが、位置姿勢変化の推定不可と判断された場合、位置姿勢変化の推定処理自体を終了してもよい。また、第１演算結果のデータと第２演算結果のデータとの差が閾値以下である場合、推定決定部１０７は、両者の重み付け演算処理を行った結果を、画像全体の位置姿勢変化として決定してもよい。
【００２４】
Ｓ４０６またはＳ４０７の後、Ｓ４０９へ処理を進める。Ｓ４０９では、Ｓ４０６とＳ４０７で選択した推定結果、つまり第１演算結果または第２演算結果のデータを保存部１０８に保存する処理が実行される。また位置姿勢変化に対する積分処理が実行され、ある基準フレームからの位置姿勢状態の変化を計算することにより、１フレーム分の位置姿勢変化の推定処理が行われる。ある基準フレームとは、例えば画像データの撮影開始タイミングとするフレームである。位置姿勢変化の積分処理において、例えば平行移動成分の積分は各要素の積分として行い、姿勢成分の積分はクォータニオン乗算により行うものとする。また、慣性航法装置（Inertial Navigation System）における軌跡演算で行われるように、統一した座標系である基準フレームからの撮像装置と撮影対象（処理対象）との相対的な位置姿勢の変化を計測できるように工夫してもよい。具体的には、姿勢変化の影響を平行移動成分の積分座標系に反映することで統一座標系における位置姿勢変化を厳密に演算することができる。統一座標系における位置姿勢の積分技術は、非特許文献１に記載されている。
【００２５】
また、保存部１０８に保存された、ある基準フレームからの位置姿勢変化の積分結果は、像振れ補正等に使用される。図１の撮像装置１は、例えば画像取得装置１０１内に撮影光学系および撮像素子と、撮像素子による画像データに係る像振れ補正を行う補正レンズ等の手段を有する。撮像装置１の制御部１１０はＣＰＵ（中央演算処理装置）を備え、推定決定部１０７が決定した画像全体の位置姿勢変化のデータを取得して像振れ補正量を算出する。制御部１１０は、補正レンズ等を駆動することで、手振れ等に応じた像振れ補正を行う。または入力画像に対し、積分した位置姿勢変化を打ち消す逆変換の画像変形を実施することにより、画像処理で像振れ補正を行うことができる。例えば、撮像装置の回転ブレに伴う像振れに対しては射影変換を実行することで像振れ補正を行える。また、撮像装置の光軸に垂直な方向の並進ブレにより生じる像振れに対しては被写体までの距離に反比例した並進補正を実行することで像振れ補正を行える。撮像装置の光軸に垂直な方向の並進ブレに対しては、拡大縮小の画像処理により補正できる。
【００２６】
次に、図５を参照して、図４のＳ４０１の処理を説明する。
Ｓ５０１において、位置姿勢変化の推定処理に用いるデータが入力される。具体的には、画像取得装置１０１による画像の撮影と、奥行画像取得装置１０２による奥行画像の撮影が同時に行われる。画像データは画像入力部２０１を介して第１処理部２００へ入力され、奥行画像データは奥行画像入力部２０２を介して第１処理部２００へ入力される。
【００２７】
Ｓ５０２で３次元点群生成部２０３は、Ｓ５０１で入力された画像データおよび奥行画像データを取得して３次元点群を生成する。本実施形態の３次元点群とは、３次元座標上に少なくとも画素（色・諧調）情報と位置情報を持った点の集合のことである。奥行画像を利用して、画像の各画素を３次元座標上にマッピングすることで３次元点群を生成することができる。各点の情報については法線の情報等を含んでもよい。３次元点群を生成する理由は、２次元の画像と２次元の奥行画像の各データに基づき、撮影対象と撮像装置１についての、３次元空間での位置および姿勢の関係を求めるためである。Ｓ５０３で奥行分割部２０４は、Ｓ５０１で入力された奥行画像データに基づいて、Ｓ５０２で生成された３次元点群を奥行ごとに分割する。奥行分割処理については、図６に示すフローチャートを用いて後述する。
【００２８】
Ｓ５０４で第１推定部２０５は、Ｓ５０３で分割した奥行ごとに位置姿勢変化を推定する。Ｓ５０３で奥行ごとに分割した３次元点群を基準フレームとし、該基準フレームと非基準フレームから、分割した奥行ごとの位置姿勢変化が推定される。例えば、Ｓ５０２で生成され、３次元点群生成部２０３から第１推定部２０５に直接入力された、次のサンプリングタイミングの３次元点群を非基準フレームとする。位置姿勢変化の推定には、ＩＣＰ（Ｉｔｅｒａｔｉｖｅ  Ｃｌｏｓｅｓｔ  Ｐｏｉｎｔ）アルゴリズム等を使用する。その詳細については後述する。
【００２９】
Ｓ５０５でグループ化処理部２０６は、Ｓ５０４で推定した位置姿勢変化が類似の推定結果ごとに、分割した奥行をグループ化する処理を実行する。
図１２（Ａ）はグループ化処理を簡略化して説明するための図である。ある一つの並進成分の位置姿勢変化を横軸とし、奥行クラスタの度数を縦軸としている。奥行が占める割合（以下、占有率という）を表す度数分布に対して、極値を探索する処理が実行され、各ローカルの極値の近傍ごとにセグメントをまとめてグループ化が行われる。グループ間の距離が近い場合、同一のグループとみなされる。ここで、グループ間の距離が近いとは、例えば下記条件を満たす場合とする。
・第１条件：位置姿勢変化の平行ベクトルの向きを示す符号が同一であり、かつ平行ベクトルの大きさの差が閾値以内であること。
・第２条件：回転移動の回転角度の大きさが閾値以内、つまりクォータニオンのノルムの差が一定値以内であること。
図１２（Ａ）ではローカルの極値が４箇所に現れており、それぞれグループ１、グループ２、グループ３、グループ４である。この場合、グループ３とグループ４とは、極値間の距離が近いため、上記条件を満たしている。このようにグループ間の距離が近い場合、グループ４とグループ３の各推定結果については類似の位置姿勢変化の推定結果とみなされる。つまりグループ４をグループ３に含めることができる。この場合、グループ４がグループ３に統合されるので、度数の一番多いグループは、グループ３となる。
【００３０】
図５のＳ５０６では、Ｓ５０５でグループ化処理を行った、位置姿勢変化の推定結果の中から、占有率に対応する度数が一番多いグループを選択する処理が実行される。具体的には、図１２（Ａ）に示す度数分布の場合、最大の度数を持つグループ３が選択される。すなわち、グループ４を含めたグループ３の度数が最大である。
Ｓ５０７では、Ｓ５０６で選択されたグループが複数存在しているか否かについて識別処理が実行される。図１２（Ａ）の例では、生成された３つのグループのうち、グループ３の奥行クラスタの度数が最大であるので、奥行領域が最大であると判断される。２番目に奥行クラスタの度数が多いグループ１、および３番目に奥行クラスタの度数が多いグループ２と、グループ３の奥行クラスタの度数の差をそれぞれ計算し、予め設定された閾値と比較する処理が行われる。計算結果が閾値以上であれば、単数のグループが存在すると判断され、奥行データを使用した位置姿勢変化の推定処理を終了する。また、１つでも閾値以下の計算結果が得られた場合、複数のグループが算出されたことが判断され、Ｓ５０８へ進む。図１２（Ａ）の例では、グループ３に対して、グループ１、グループ２ともに奥行クラスタの度数の差が閾値以上である。よって、奥行領域が最大のグループは単数（グループ３のみ）であると判断される。また、図１２（Ｂ）の例では、グループ３とグループ１とで、奥行クラスタの度数の差が閾値以下である。よって、奥行領域が最大のグループが複数であると判断され、Ｓ５０８へ進む。
【００３１】
図１２（Ａ）のように、奥行を占める割合が一番多いグループが単数の場合には、Ｓ５０６の結果が、画像全体の位置姿勢変化として選択され、奥行データを使用した位置姿勢変化の推定処理が終了する。即ち、画像内に占める割合が最大である領域に係る位置姿勢変化の推定結果を全体の位置姿勢変化とするのではなく、奥行を占める割合が最大である領域に係る位置姿勢変化の推定結果が、全体の位置姿勢変化推定の結果として採用される。Ｓ５０８では、保存部１０８に過去演算結果が保存されているか否かについて判定が行われる。過去演算結果が保存されている場合、Ｓ５０９へ進み、保存されていない場合にはＳ５１１へ進む。
Ｓ５０９では、保存部１０８に保存されている過去演算結果が、入力部２０８を介して第２推定部２０７に入力される。Ｓ５１０で第２推定部２０７は、Ｓ５０９で入力された過去演算結果を利用して、動体領域を識別する。第２推定部２０７は、Ｓ５０５にてグループ化された位置姿勢変化推定の結果から、静止領域の位置姿勢変化を選択することにより、全体の位置姿勢変化を推定する。
【００３２】
Ｓ５１１では、Ｓ５０５にてグループ化された奥行のうち、いずれか一つを選択する処理が実行される。例えば、選択方法として、ユーザ操作により任意のグループから一つが選択されて、全体の位置姿勢変化の推定結果が確定する。Ｓ５１０、Ｓ５１１の後、奥行データを使用した位置姿勢変化の推定処理が終了する。
【００３３】
本実施形態では、占有率が一番高いグループが複数存在する場合（Ｓ５０７でＮＯ）、Ｓ５１０で過去演算結果に一番近いグループを選択するか、Ｓ５１１でユーザが任意のグループを選択することにより、位置姿勢変化の推定結果が確定する。これに限らず、奥行の占有率が一番高いグループが複数存在した時点、または過去演算結果が存在しなかった時点で、位置姿勢変化が推定不可能であると判断してもよい。この場合、位置姿勢変化を推定せずに、現フレームの奥行データを使用した位置姿勢変化の推定が見送られ、または奥行データを使用した位置姿勢変化の推定処理自体が終了する。
【００３４】
次に、図６を参照して、図５のＳ５０３の奥行分割処理を説明する。図８は本実施形態における奥行分割例の説明図である。
Ｓ６０１で奥行分割部２０４は、奥行を分割するための基準として閾値を設定する。この設定は、奥行を分割する際、連続的な奥行の長さが閾値を超えないようにするために行われる。Ｓ６０２では、撮影物体の３次元座標上での奥行について、手前側から奥側へと順に点群が存在しているかどうかが判断される。連続的な奥行の長さが、Ｓ６０１で設定した閾値を超えているか否が判定される。図８（Ａ）は撮像装置から見た場合に手前から順に配置された立方体、第１の円柱、第２の円柱を撮影対象とする例を示す。図８（Ｂ）に示すように、連続的な奥行の長さが閾値を超えない場合、Ｓ６０３へ処理を進める。図８（Ｄ）は立方体、第１の円柱、第２の円柱に加えて、直方体がさらに配置された例を示す。図８（Ｅ）に示すように直方体の画像は、手前側から奥側へ連続して３次元点群が存在しているので、Ｓ６０２では連続的な奥行の長さが閾値を超えたと判断され、Ｓ６０４へ進む。
【００３５】
Ｓ６０３では、図８（Ｃ）で示すように、点群の存在しない奥行方向の領域が不連続な領域と判断され、不連続な領域を分割面として奥行の分割処理が実行される。図８（Ｃ）では、３つの領域（奥行１ないし３参照）の分割が行われる。一方、Ｓ６０４では、図８（Ｆ）に示すように、連続的な奥行の長さが閾値を超えてしまっているので、奥行の長さが閾値を超えないよう、閾値での奥行の分割処理が実行される。図４（Ｆ）では、「奥行１」と「奥行２」の各領域の間と、「奥行２」と「奥行３」の各領域の間において、閾値に応じた分割面が設定される。
【００３６】
Ｓ６０５では、分割面よりもさらに奥側の領域に撮影対象があるか否かの判定処理である。判定の結果、分割面よりも撮影対象が存在しない場合に奥行分割処理を終了し、分割面よりも奥側に撮影対象が存在する場合にはＳ６０２に処理を戻す。Ｓ６０１からＳ６０５の処理が終了すると、図５のＳ５０２で生成された３次元点群は、連続的な奥行の長さが閾値以下の３次元点群に分割されることになる。尚、本実施形態では、手前側から奥側へと順に奥行分割処理を行ったが、これとは逆に、奥側から手前側へと順に奥行分割処理を行ってもよい。また、奥行分割方法については、異なる撮影物体の領域の奥行を分割可能であればどのような方法でも構わない。例えば、点群の点の数が分割領域ごとに同一数になるように奥行を分割してもよいし、撮影物体に関係なく奥行を均等に分割してもよい。
【００３７】
次に、図５のＳ５０４に示す、奥行ごとの位置姿勢変化の推定処理について、図１０を参照して説明する。以下では、図１０（Ｂ）に示した、奥行ごとに分割した３次元点群を基準フレームとし、図１０（Ａ）に示した、次のサンプリングタイミングでの３次元点群を非基準フレームとする。図１０では、分割した奥行ごとに位置姿勢変化を推定する場合を例示する。図１０（Ｂ）の画像を基準フレームとして行う奥行分割処理では、図８（Ｃ）の例と同様に、３つの奥行１ないし３に分割されるものとする。
図１０（Ｃ）は、第１奥行「奥行１」での位置姿勢変化の推定結果を示し、立方体の位置変化を例示する。図１０（Ｄ）は、第２奥行「奥行２」での位置姿勢変化の推定結果を示し、立方体の奥に配置された第１の円柱の位置変化を例示する。図１０（Ｅ）は、第３奥行「奥行３」での位置姿勢変化の推定結果を示し、最も奥に配置された第２の円柱の位置変化を例示する。図１０（Ｃ），（Ｄ），（Ｅ）では、それぞれに分割された奥行ごとに、図１０（Ａ）と（Ｂ）の各フレームの画像を比較することで、３次元点群の位置姿勢変化が推定される。
【００３８】
図１０（Ｆ）はグループ化の一例を示す。図１０（Ｆ）では、奥行２と奥行３が類似する位置姿勢変化の推定結果をもち、同一のグループに統合される。また、奥行１の位置姿勢変化の推定結果は、奥行２および奥行３の位置姿勢変化の推定結果とは非類似であるため、単独のグループとしている。奥行２と奥行３を１つにまとめたグループの方が、全体の奥行を占める割合が高い。この場合、前述したように、奥行２と奥行３を１つにまとめたグループに対応する位置姿勢変化の推定結果が選択される。
本実施形態では、時間軸方向に連なる複数のフレーム間で位置姿勢変化の推定を行うものとし、基準フレームと非基準フレームは時間軸方向にて互いに関連しているフレームとする。両フレーム同士は必ずしも隣接していなくてもよい。３次元点群間の位置姿勢変化の推定には、例えば、ＩＣＰアルゴリズムを使用する。
【００３９】
図１１の模式図を用いてＩＣＰアルゴリズムの具体的な方法を説明する。図１１（Ｂ）は基準フレームの点群（白丸印参照）を示し、図１１（Ａ）は非基準フレームでの点群（黒丸印参照）を示す。図１１（Ｃ）は、図１１（Ｂ）に示す基準フレームの点群の各点を、図１１（Ａ）に示す非基準フレームの点群の中で最も近い点に対応させる処理を示す。楕円枠で囲んで示すように、枠内の点同士が対応した関係にあることを表している。図１１（Ｄ）は、対応する点間の距離について、最小二乗法により、基準フレームの点群（白丸印参照）を平行移動または回転移動させ、非基準フレームの点群（黒丸印参照）に重なるよう移動させた場合の様子を示している。並進または回転の後、一定の処理回数を超えるか、または対応点間の距離の二乗和が閾値以下になるまでの間、フレーム間での前記処理が繰り返し実行される。その結果、図１１（Ｅ）のようにフレーム間の距離の差を少なくして、位置姿勢変化が推定される。例えば、平行移動を奥、縦、横の各方向の成分を含む３次元のベクトルで表し、回転移動を４次元のクォータニオンで表す。これによって、点の平行移動と回転移動を組み合わせた７次元の空間で表わされる、位置姿勢とその変化を数値的に記述できる。
【００４０】
本実施形態ではＩＣＰアルゴリズムの一例を示したが、画像フレーム間での位置姿勢変化を推定できる方法であれば、如何なる方法を用いてもよい。例えば、本実施形態ではフレーム内の全ての点を用いて推定処理を行っているが、ランダムサンプリングや、一定間隔ごとのサンプリングによって使用する点数を減らしても構わない。また、本実施形態ではフレーム間において最も近い点を対応点とする例を説明したが、さらに点の色や法線等の情報を使用し、より良い対応点を探索する方法等がある。
【００４１】
次に、第２処理部３００について、図７のフローチャートを参照して詳細に説明する。
Ｓ７０１では、位置姿勢変化の推定に用いる画像データが入力される。具体的には、画像取得装置１０１により画像が撮影され、撮影後の画像データは、画像入力部３０１を介して動きベクトル算出部３０２に入力される。Ｓ７０２で動きベクトル算出部３０２は、Ｓ７０１で入力された画像の動きベクトルを算出する。本実施形態では、基準フレームの画像から特徴点が検出される。次に、非基準フレームの画像から特徴点が検出され、基準フレームの画像の特徴点と非基準フレームの画像の特徴点とを対応付ける処理が行われる。２枚の画像間にて対応する特徴点の移動量から、動きベクトルが算出される。例えば、特徴点の検出と対応付けには、ＳＩＦＴ（Scale-invariant feature transform） を利用する。ＳＩＦＴでは、まずＤｉｆｆｅｒｅｎｃｅ−ｏｆ−Ｇａｕｓｓｉａｎ（ＤｏＧ）フィルタによるフィルタリング処理を行い、生成されたＤｏＧ画像内の極値を特徴点の候補とする。次に、特徴点の候補のうちで、主曲率がある一定以上の点と、コントラストがある一定以下の点が除去され、残った点が特徴点として決定される。これらの特徴点の周囲（例えば１６×１６画素）の各画素の輝度勾配を計算することで、特徴点の特徴量が算出される。最後に特徴点の特徴量を画像間で比較し、類似度の高い組み合わせを求めることで、画像間の対応付けが行われる。尚、特徴点の検出および対応付けの方式についてはＳＩＦＴに限らず、ＳＵＲＦ（Speeded Up Robust Feature）等を使ってもよく、画像間での対応付けが可能な方式に制限はない。例えば、ＳＳＤ（Sum of Squared Difference）やＮＣＣ（Normalized Cross Correlation）等での微小領域の相関探索により動きベクトルを求める方法がある。勾配法によるオプティカルフロー探索手法、符号化で用いられるブロックマッチング等を用いてもよい。
【００４２】
Ｓ７０３で領域算出部３０３は、Ｓ７０２で算出した動きベクトルに対してロバスト推定を行う。例えば、ＲＡＮＳＡＣ（Random Sample Consensus）を用い、最大の割合の動きベクトルに対応するモーションのパラメータが算出される。ＲＡＮＳＡＣでは、ｎ個の動きベクトルデータを無作為に抽出して、最小二乗法によりモーションパラメータを求め、該モーションパラメータと、総データからｎ個のデータを除いたものの誤差が計算される。誤差が許容範囲内であれば、抽出したｎ個のデータから求めたパラメータに投票を行う。この処理を繰り返し行い、投票数の多かったパラメータが、最大の割合の動きベクトルに対応するモーションとして算出される。パタメータのモデルとして、例えば射影変換モデルやアフィン変換モデルを用いる。
【００４３】
Ｓ７０４では、領域算出部３０３によって同一のモーションの動きベクトル算出領域が推定される。同一のモーション領域の算出方法では、注目画素の類似度と局所的な位置ずれが計算される。非基準フレームに対してモーションのパラメータに基づいて位置合わせが行われる。基準フレームを変換した画像ya(X+I)、非基準フレームの画像yb(X)、類似度R(X,I) 、注目座標X=[x,y]、平行移動ベクトルI=[i,v]、Xの近傍領域C(X)とする。類似度R(X,I)は（式１）で表すことができる。
【数１】
2015121524.tif 000003
【００４４】
次に、領域算出部３０３は類似度を使用して、局所的な位置ずれ量を算出する。i=-1,0,1とj=-1,0,1におけるR(X,I)を使用して、（式２）の二次曲面z(i,j)の最小二乗解が算出される。
【数２】
2015121524.tif 000004
領域算出部３０３は、（式１）で計算した類似度が高く、かつ（式２）で計算した位置ずれ量の小さい画素の集合を、同一の動きベクトル算出領域とする。
【００４５】
Ｓ７０５で位置姿勢変化の推定部３０４は、Ｓ７０４で推定された動きベクトル算出領域ごとに、動きベクトルを用いて位置姿勢変化を推定する。推定部３０４は、まず動きベクトルを、基準フレームのピクセル座標系の動きベクトル値から正規化画像座標系における動きベクトル値に変換する。以下の座標を使用する。
(x,y)：基準フレーム上のピクセル座標。
(ud,vd)：歪みを含む正規化画像座標。
(u,v)：歪みを除去した正規化画像座標。
【００４６】
推定部３０４は、内部パラメータおよび歪み係数を用いてピクセル座標の正規化座標への変換を行う。まず、カメラ内部パラメータを、正規化座標のピクセル座標へ変換するときの拡大縮小係数を、
【数３】
2015121524.tif 000005
で表し、ピクセル座標の中心を(u0,v0)で表す。推定部３０４は、ピクセル座標を、カメラの内部パラメータを使用して正規化画像座標に変換する。inv(Ｘ)は行列Ｘの逆行列を表す。
【数４】
2015121524.tif 000006
【００４７】
カメラの内部行列Kは（式４）で表される。
【数５】
2015121524.tif 000007
さらに推定部３０４は、（式５）、（式６）により歪み除去を行う。
【数６】
2015121524.tif 000008
【数７】
2015121524.tif 000009
【００４８】
（式５）中のknは（nは自然数の変数）、ｎ次の放射方向の歪み係数を表す。これらは光学系の収差より生じる歪みである。歪みは光学系の焦点距離や被写体距離等の撮影条件ごとに変化するため、焦点距離等との関係については設計値から算出される。
【００４９】
次に、推定部３０４は射影ホモグラフィに基づいて姿勢推定を行う。非基準フレーム正規化座標を（ui,vi）とし、基準フレームの正規化座標を（u’i,v’i）とする。i=1,2,・・・,m (ｍは対応点数)とすると、射影ホモグラフィについての以下の線形式が得られる。
【数８】
2015121524.tif 000010
この式は対応点数ｍが８以上ならば、過決定となる。（式７）を線形最小二乗式として解くことにより、
【数９】
2015121524.tif 000011
が求められる。これを３行３列の行列に整形することにより、
【数１０】
2015121524.tif 000012
が得られ、射影ホモグラフィ、つまりフレーム間の画像の変化量が求められる。
【００５０】
次に、推定部３０４は、射影ホモグラフィをカメラワーク回転Ｒ、シーンの被写体を近似した面の方向ベクトル
【数１１】
2015121524.tif 000013
と、そして並進方向ベクトル
【数１２】
2015121524.tif 000014
と深度ｄとの積、
【数１３】
2015121524.tif 000015
に分解する。以下の手順により可能な２つの解が算出される。射影ホモグラフィの２つの解への分解については、固有値分解、特異値分解を利用し、不変量を見出すことで行われる。様々な解法が可能であるが、非特許文献２で用いられたアプローチを参考にして説明する。
【００５１】
射影ホモグラフィＨと、カメラワークおよびシーン配置の関係は次式で表される。
【数１４】
2015121524.tif 000016
（式９）中の、
【数１５】
2015121524.tif 000017
はカメラの回転および並進をそれぞれ表す。ｄは基準面までの距離を表す。
【数１６】
2015121524.tif 000018
は基準面のカメラから離れる向きの法線であり、λは任意の定数である。ここで、２画像間からの算出では、空間平面の距離ｄと、カメラワーク並進のノルム、
【数１７】
2015121524.tif 000019
の積を分けることはできない。ノルムとはベクトルの大きさを表す量である。つまり、
【数１８】
2015121524.tif 000020
は並進方向を表す単位方向ベクトルであり、
【数１９】
2015121524.tif 000021
であり、ｄは空間平面までの距離と並進量の大きさの積として扱われる。
射影ホモグラフィＨの符号は、平面上の全ての対応点をベクトル、
【数２０】
2015121524.tif 000022
として、
【数２１】
2015121524.tif 000023
を満たすように選択されるものとする。
【００５２】
Ｈの特異値分解は、
【数２２】
2015121524.tif 000024
となる。ここでＵおよびＶは３行３列の回転行列である。
【数２３】
2015121524.tif 000025
は正の降順対角要素、
【数２４】
2015121524.tif 000026
であり、Ｈの特異値とする。関連する直交行列ＵおよびＶの列要素を、
【数２５】
2015121524.tif 000027
および
【数２６】
2015121524.tif 000028
で表す。
例えば、複数のカメラを使用する場合、第１カメラの参照系を採用し、３次元平面を、
【数２７】
2015121524.tif 000029
とする。ここで、
【数２８】
2015121524.tif 000030
は外向き(カメラから離れる方向)の法線とする。
ζ＝１/ｄ（≧０）は、平面に対する距離の逆数である。参照系において、第１カメラは３行４列の射影行列、
【数２９】
2015121524.tif 000031
を持つ。そして第２カメラは、
【数３０】
2015121524.tif 000032
を持つ。ここで、
【数３１】
2015121524.tif 000033
である。ｔ、ｔ’はカメラ間の並進、つまり第１カメラの光軸中心から第２カメラの光軸中心への並進を表す。Ｒはカメラ間の回転を表す。
【００５３】
基準フレームの画像から非基準フレームの画像へのホモグラフィは、
【数３２】
2015121524.tif 000034
である。ここで、
【数３３】
2015121524.tif 000035
である。平面上の３次元点、
【数３４】
2015121524.tif 000036
に対して、
【数３５】
2015121524.tif 000037
これは、
【数３６】
2015121524.tif 000038
による。平面上の３次元点、
【数３７】
2015121524.tif 000039
を基準フレームの画像内の任意点と扱うと、違いは全体のスケール因子のみである。
３つの積、
【数３８】
2015121524.tif 000040
のみが復元可能である。それゆえ、
【数３９】
2015121524.tif 000041
で正規化する。つまり平面距離、１／ζは、単位基線長、
【数４０】
2015121524.tif 000042
において測定される。可能な符号を決めるために、後述するデプス正制約テストが行われる。
【００５４】
特異値分解の、
【数４１】
2015121524.tif 000043
と、
【数４２】
2015121524.tif 000044
はＲの要素まで同じである。すなわち、
【数４３】
2015121524.tif 000045
である。
Ｈ1において、ベクトル積、
【数４４】
2015121524.tif 000046
は不変である。特異値が明確ならば、
【数４５】
2015121524.tif 000047
は特異ベクトルに対応しなければならない。よって、これは２番目の特異ベクトルν2であると分かる。それゆえＨの補正正規化は、
【数４６】
2015121524.tif 000048
つまり、
【数４７】
2015121524.tif 000049
である。以下、σ2による正規化が済まされているものとする。
【００５５】
基準フレームにおいて、
【数４８】
2015121524.tif 000050
がν2に対応することが与えられると、
【数４９】
2015121524.tif 000051
部分空間は、
【数５０】
2015121524.tif 000052
により占められなければならない。つまり任意のパラメータ、
【数５１】
2015121524.tif 000053
に対して、
【数５２】
2015121524.tif 000054
である。
【数５３】
2015121524.tif 000055
に直交する任意方向、
【数５４】
2015121524.tif 000056
は、ＨまたはＨ1によって変化しないノルムを持つ。
ここで、
【数５５】
2015121524.tif 000057
あるいは、
【数５６】
2015121524.tif 000058
である。
【数５７】
2015121524.tif 000059
を上記のν1、または ν3に対応させると、解がなくなってしまう。それゆえ、ν2のみが可能となる。
【００５６】
厳密には、左辺の同じ引数が、
【数５８】
2015121524.tif 000060
を示す。
【数５９】
2015121524.tif 000061
がＨ1の固有値、
【数６０】
2015121524.tif 000062
の固有ベクトルを満たすならば、
【数６１】
2015121524.tif 000063
を得る。故に、
【数６２】
2015121524.tif 000064
である。および（単純化後には）、
【数６３】
2015121524.tif 000065
である。
【００５７】
Ｈ1の特異値分解の左辺、つまりＵ1の列、
【数６４】
2015121524.tif 000066
は表記、
【数６５】
2015121524.tif 000067
により復元可能であり、
【数６６】
2015121524.tif 000068
がＨ1の固有ベクトルであることが必要である。そこでは、
【数６７】
2015121524.tif 000069
である。ここで（単純化後に）、
【数６８】
2015121524.tif 000070
であり、故に、
【数６９】
2015121524.tif 000071
として、最後に回転行列Ｒが得られる。
【００５８】
以下、画像変化量を、回転と並進からなるカメラワークＲと、方向ベクトル
【数７０】
2015121524.tif 000072
と、空間の基準面の深さ位置ｄと、
方向ベクトル
【数７１】
2015121524.tif 000073
からなるシーン配置との可能な２つの解を算出するための、一連の具体的な処理を、以下の数式で、まとめて示す。
【００５９】
【数７２】
2015121524.tif 000074
【数７３】
2015121524.tif 000075
ただし、
【数７４】
2015121524.tif 000076
【数７５】
2015121524.tif 000077
【数７６】
2015121524.tif 000078
【数７７】
2015121524.tif 000079
【数７８】
2015121524.tif 000080
【数７９】
2015121524.tif 000081
【数８０】
2015121524.tif 000082
【００６０】
これらを用いて可能な２つの解、
【数８１】
2015121524.tif 000083
【数８２】
2015121524.tif 000084
が求まる。
【数８３】
2015121524.tif 000085
【数８４】
2015121524.tif 000086
【数８５】
2015121524.tif 000087
【００６１】
これらの解の組に対し、方位ベクトル、
【数８６】
2015121524.tif 000088
が外向きの約束（デプス正制約）を導入する。
【数８７】
2015121524.tif 000089
【数８８】
2015121524.tif 000090
と符号の整合性を取ることにより、可能な２つの解が算出される。その後、エピポーラ誤差チェックが行われて、誤差の少ない１つの解が抽出される。
【００６２】
エピポーラ誤差チェックは、以下のように実行される。
対応点、
【数８９】
2015121524.tif 000091
より求められたホモグラフィを分解して得られる姿勢変化とシーン情報の可能な２つの解のセット、
【数９０】
2015121524.tif 000092
および
【数９１】
2015121524.tif 000093
について、対応点を用いてエピポーラ誤差が算出される。エピポーラ誤差は、
【数９２】
2015121524.tif 000094
で表される。ｎは対応点数である。誤差の小さな解が真の解として選択される。これにより、入力されたフレーム間のカメラワークを表す、
【数９３】
2015121524.tif 000095
の唯一の解が求まる。こうして、動きベクトルを使用した位置姿勢変化が推定される。
尚、説明は省略するが、ピンホールカメラモデルを想定した、非平面シーンに対するカメラの姿勢推定方法である基本行列に基づく姿勢推定（非特許文献３）および５点法（非特許文献４）については、公知技術をベースにして実現可能である。
【００６３】
図７のＳ７０６で領域内特徴点の削除部３０５は、Ｓ７０４で算出されたモーションごとの領域内の動きベクトルの算出点、つまり特徴点を削除する。Ｓ７０７で削除部３０５は、Ｓ７０４にて算出されたモーション領域外に特徴点が残っているか否かを判定する。モーション領域外に特徴点が残っている場合、Ｓ７０２に処理を戻す。Ｓ７０６で削除されなかった特徴点で再度対応付けが行われ、動きベクトルの算出と残りの領域でモーションごとの領域が算出される。このように段階的にモーションごとの領域の算出を行うことにより、複数のモーションの算出が可能となる。Ｓ７０７でモーション領域外に特徴点が残っていなかった場合、Ｓ７０８に進む。Ｓ７０８で推定部３０６は、Ｓ７０４で算出したモーションごとの領域が単数か複数かを判定する。例えば、閾値を設定して比較することで、領域内の画素数が多いモーションが単数か、または複数かが判定される。領域数が単数の場合、推定部３０６は、Ｓ７０５で推定した位置姿勢変化を、全体の位置姿勢変化とし、処理を終了する。領域数が複数の場合、Ｓ７０９へ進む。
【００６４】
図１３を参照して、Ｓ７０８の判定処理について説明する。図１３では、ある一つの並進成分の位置姿勢変化を横軸とし、被写体クラスタの度数を縦軸とする。縦軸は画像内で被写体領域の占める割合に相当する。図１３（Ａ）の例では、３つのモーションが検出される。これらのうちでモーション３の度数が最大であるので、その被写体領域が最大であると判断できる。２番目に被写体クラスタの度数が多いモーション１、および３番目に被写体クラスタの度数が多いモーション２に対して、モーション３の被写体クラスタの度数との差が計算される。予め設定された閾値と計算結果が比較される。計算結果が閾値以上であれば、単数のモーションであると判断され、動きベクトルを使用した位置姿勢変化の推定を終了する。また、計算結果により閾値以下のモーションが存在する場合には、複数のモーションが算出されたと判断され、図７のＳ７０９へ進む。
図１３（Ａ）では、モーション３に対し、モーション１、モーション２ともに被写体クラスタの度数の差が閾値以上である。よって、最大領域のモーション３は単数である。一方、図１３（Ｂ）では、モーション３とモーション１との間で被写体クラスタの度数の差が閾値以下である。よって、最大領域のモーションは複数である。
【００６５】
図７のＳ７０９では、保存部１０８に過去演算結果が保存されているか否かについて判定される。過去演算結果が保存されていた場合、Ｓ７１０へ進むが、保存されていなかった場合にはＳ７１２へ移行する。Ｓ７１０では、保存部１０８に保存されている過去演算結果が、入力部３０７を介して推定部３０６に入力される。
次のＳ７１１で推定部３０６は、Ｓ７１０で入力された過去演算結果を利用して動体領域を識別する。推定部３０６は、Ｓ７０５で推定された位置姿勢変化の結果から、静止領域の位置姿勢変化の推定結果を選択することで、全体の位置姿勢変化を決定する。過去演算結果を利用した動体領域の識別処理では、過去演算結果に一番近い位置姿勢変化の推定結果が選択される。例えば、フレームレート６０ｆｐｓで動画撮影を行う場合、現在の位置姿勢変化の推定結果と、過去演算結果との間隔は１／６０秒である。この短い間隔のため、静止領域の位置姿勢変化は、像振れがあった場合でも現在の位置姿勢変化と過去の位置姿勢変化とで非常に近い値になる可能性が高い。従って、推定部３０６は、過去演算結果に近い位置姿勢変化を静止領域の位置姿勢変化とし、全体の位置姿勢変化の推定結果と決定する。これにより、画角内に瞬間的に侵入する移動体への対策を講じることができるので、安定した推定結果が得られる。つまり、画角内に一瞬の間のみ侵入する移動体によって、推定結果への影響を被ることがない。
【００６６】
Ｓ７１２では、Ｓ７０５で得られた位置姿勢変化の推定結果の中から、ユーザ操作によって任意の位置姿勢変化が選択され、推定部３０６は、選択された位置姿勢変化により全体の位置姿勢変化を決定する。Ｓ７１１、Ｓ７１２の後、動きベクトルを使用した位置姿勢変化の推定処理を終了する。
【００６７】
次に、図９を参照して本実施形態の効果を説明する。
図９（Ａ）は非基準フレームの画像内の領域の割合を示し、図９（Ｂ）は基準フレームの画像内の領域の割合を示す。また、図９（Ｃ）は、非基準フレームにおいて動体領域および静止領域に係る奥行の割合を示す。図９（Ｄ）は、基準フレームにおいて動体領域および静止領域に係る奥行の割合を示す。図９（Ｅ）は本実施形態による位置姿勢変化の推定結果を説明する図である。図９（Ｆ）は従来法による位置姿勢変化の推定結果を説明する図である。
【００６８】
図９（Ａ）および（Ｂ）ともに、画像内にて静止領域よりも動体領域が多くの面積を占めている。一方、図９（Ｃ）、図９（Ｄ）で示すように、奥行を占める割合については、静止領域の方が動体領域よりも多く占めている。図９（Ａ）、図９（Ｂ）の画像において従来法で位置姿勢変化を推定すると、静止領域に比べて動体領域内において計算に使用する動きベクトルや対応点が多く表われる。このため、図９（Ｆ）に示すように動体領域の位置が変わらないという結果になる可能性が高くなる結果、動体領域に引きずられた推定結果になりやすい。
これに対して、図９（Ｃ）、図９（Ｄ）の画像において本実施形態で位置姿勢変化を推定すると、奥行を占める割合の多い静止領域で位置姿勢変化が推定される。図９（Ｅ）に示すように静止領域の位置が不変であり、すなわち動体領域を計算結果から除外し、動体領域に引きずられにくい位置姿勢変化推定が可能となる。
但し、この処理方法だけでは、動体領域が奥行を占める割合において最大となった場合、間違った推定結果となる可能性がある。そこで、動きベクトルを使用した位置姿勢変化の推定と、奥行を使用した位置姿勢変化の推定とが並行して行われ、画像内の領域を多く占める領域での位置姿勢変化が推定されることになる。このように２つの処理方法による位置姿勢変化の推定の整合性をとることで、推定精度をより高めることが可能となる。例えば、撮像装置の像振れ補正（防振制御）において、従来の補正では動体領域に引きずられた不自然な補正になる可能性がある。これに対して、本実施形態では、動体領域に引きずられにくい像振れ補正を実現できる。
【００６９】
［変形例］
次に、第１実施形態の変形例を説明する。
変形例では、以下の点が前記実施形態と相違する。
（Ａ）奥行データを使用した第１処理部２００と、動きベクトルを使用した第２処理部３００において、それぞれの過去の推定結果を利用し、最大領域以外の位置姿勢変化の推定結果が選択されること。
前記実施形態では第１処理部２００および第２処理部３００で、それぞれ割合が最大である、一つの領域に係る位置姿勢変化の推定結果が選択される。画像処理部１００はそれぞれの位置姿勢変化の推定結果の類似や、過去演算結果との比較によって全体の位置姿勢変化推定結果を算出する。これに対して、変形例では最大領域に係る位置姿勢変化の推定結果が選択されるとは限らず、過去の推定結果との比較結果に依存する。
【００７０】
（Ｂ）奥行データを使用した第１処理部２００と、動きベクトルを使用した第２処理部３００において、全ての領域に係る位置姿勢変化の推定結果が画像処理部１００へ入力されること。
この場合、静止領域の判断基準の設定処理は、奥行データを使用した位置姿勢変化の全ての推定結果と、動きベクトルを使用した位置姿勢変化の全ての推定結果と、過去の位置姿勢変化の推定結果を比較して実行される。さらには、ユーザが意図する結果と合致する判断基準を手動選択する処理を組み合わせることにより、ユーザが期待する、動体領域に引きずられにくい位置姿勢変化の推定結果を得ることができる。
【００７１】
［第２実施形態］
次に、本発明の第２実施形態を説明する。なお、第１実施形態の場合と同様の構成部については既に使用した符号を用いることにより、それらの詳細な説明を省略する。
図１４は、第２の実施形態である撮像装置の構成例を示すブロック図である。撮像装置１０は、画像取得装置１０１と奥行画像取得装置１０２を備える。
画像取得装置１０１は、被写体を撮影して２次元画像のデータを取得するユニットである。画像取得装置１０１の画像データは、第１処理部２０００と第２処理部３０００にそれぞれ出力される。本実施形態では、奥行データを使用する第１処理部２０００と、画像の動きを示すデータを使用する第２処理部３０００を用いる。画像の動きとは、動きベクトルまたは対応点または注目点の軌跡であり、本実施形態では動きベクトルを例示する。
【００７２】
奥行画像取得装置１０２は、奥行データを検出する装置であり、第１処理部２０００に接続されている。本実施形態では、奥行データとして、例えば画素ごとに奥行のデータを持った奥行画像として説明する。奥行画像取得装置１０２は、例えば、赤外線照射部と赤外線読み取り部を有する。赤外線照射部は所定パターンの赤外線を対象物に照射し、反射した赤外線を赤外線読み取り部が読み取る。これによりパターンの歪みを読み取り、奥行画像の撮影が行われる。尚、奥行画像の生成の方式については、他の方式でもよい。例えば、赤外線を照射してから、読み取りにかかる時間を計測して奥行画像の撮影をするＴｉｍｅ  ｏｆ  ｆｌｉｇｈｔ方式や、多眼レンズで撮影した複数枚の画像の視差を求めて奥行画像の生成を行う方式でもよい。奥行画像の生成が可能であれば、方式の如何は問わない。
【００７３】
第１処理部２０００は、画像取得装置１０１からの画像データ、および奥行画像取得装置１０２からの奥行画像データを取得し、背景領域候補と位置姿勢変化を推定する。第１処理部２０００は、奥行データを使用した背景領域候補の推定結果と位置姿勢変化の推定結果を位置姿勢推定部１０００に出力する。
第２処理部３０００は、画像取得装置１０１によって撮影された画像データを使用して動きベクトルを検出して、背景領域候補と位置姿勢変化を推定する。第２処理部３０００は、動きベクトルを使用した背景領域候補の推定結果と位置姿勢変化の推定結果を位置姿勢推定部１０００に出力する。
【００７４】
位置姿勢推定部１０００は、第１入力部１００３、第２入力部１００４と、静止領域決定部１００５と、全体の位置姿勢変化の推定決定部１００６と、選択部１００９を備える。
奥行データを使用した背景領域候補と位置姿勢変化の各推定結果が入力される第１入力部１００３は、第１処理部２０００に接続されている。第１処理部２０００により奥行データを使用して推定された、第１の背景領域候補と位置姿勢変化の演算結果（以下、第１の演算結果という）は、第１入力部１００３から静止領域決定部１００５および推定決定部１００６に出力される。また、動きベクトルを使用した背景領域候補と位置姿勢変化の各推定結果が入力される第２入力部１００４は、第２処理部３０００に接続されている。第２処理部３０００により動きベクトルを使用して推定された、第２の背景領域候補と位置姿勢変化の演算結果（以下、第２の演算結果という）は、第２入力部１００４から静止領域決定部１００５および推定決定部１００６に出力される。
【００７５】
静止領域決定部１００５は、第１および第２の演算結果を取得し、これらの情報に基づいて画像内の静止領域を決定する。決定された静止領域の情報は推定決定部１００６に出力される。推定決定部１００６は、第１の演算結果および第２の演算結果と、静止領域決定部１００５によって決定された静止領域の情報を用いて画像全体の位置姿勢変化を決定する。位置姿勢推定結果保存部１００８（以下、単に保存部という）は、位置姿勢変化の推定結果を保存する。保存部１００８は推定決定部１００６に接続され、推定決定部１００６が決定した位置姿勢変化の推定結果を過去演算結果として記憶する。過去演算結果は静止領域の決定の際に利用してもよい。また静止領域決定部１００５に接続された選択部１００９により、ユーザ操作で選択された判断基準に従って静止領域を決定することもできる。選択部１００９は、静止領域の判断基準をユーザ操作に応じて選択するための操作部や設定画面等を表示する表示部を備える。
撮像装置１０の制御部１００７はＣＰＵ（中央演算処理装置）を備え、推定決定部１００６が決定した画像全体の位置姿勢変化のデータを取得して像振れ補正量を算出する。制御部１００７の基本的機能は、図１に示す制御部１１０と同様である。
【００７６】
次に、第１処理部２０００の構成について、図１５のブロック図を参照して説明する。
画像入力部２００１には、画像取得装置１０１からの画像データが入力され、奥行画像入力部２００２には、奥行画像取得装置１０２からの奥行画像データが入力される。３次元点群生成部２００３は、画像データおよび奥行画像データを、画像入力部２００１および奥行画像入力部２００２からそれぞれ取得して、後述する３次元点群を生成する。３次元点群のデータは、ＩＣＰによる最多適合領域算出部２００４に出力される。最多適合領域算出部２００４は、３次元点群生成部２００３が生成した３次元点群に対し、ＩＣＰアルゴリズムを使用して領域ごとに分割処理する。処理結果は第１の位置姿勢変化推定部２００５に出力される。
【００７７】
第１の位置姿勢変化推定部２００５は、最多適合領域算出部２００４が算出した領域に対応する位置姿勢変化を算出し、該位置姿勢変化を当該領域の位置姿勢変化と推定する。推定結果は、３次元点群の削除部２００６に出力される。削除部２００６は、最多適合領域算出部２００４が算出した領域内の３次元点群を削除して、処理結果を第１の背景領域候補推定部２００７に出力する。第１の背景領域候補推定部２００７は、第１の位置姿勢変化推定部２００５によって推定された奥行ごとの位置姿勢変化の推定結果に基づき、少なくとも最奥の奥行を含む同一の位置姿勢変化の推定結果の領域を背景領域候補として選び出す。第１の推定処理結果として選出された背景領域候補は、第１の演算結果として位置姿勢推定部１０００に出力される。つまり第１の背景領域候補推定部２００７は位置姿勢推定部１０００に接続されており、第１の演算結果は第１入力部１００３に送信される。
【００７８】
次に、図１６を参照して、動きベクトルを使用した第２処理部３０００の構成について説明する。
画像入力部３００１は画像取得装置１０１に接続され、画像取得装置１０１が撮影する画像データが入力される。動きベクトル算出部３００２は、画像入力部３００１から入力される、基準フレームの画像と非基準フレームの画像の各データを比較して画像間の動きベクトルを算出して領域算出部３００３に出力する。ロバスト推定によるモーションごとの領域算出部３００３は、動きベクトル算出部３００２が算出した動きベクトルの情報を用いてモーションごとの領域の動きベクトルを算出する。
【００７９】
第２の位置姿勢変化推定部３００４は、領域算出部３００３が算出した領域ごとの動きベクトルを取得して位置姿勢変化を推定し、推定結果を、領域内特徴点の削除部３００５に出力する。削除部３００５は、領域算出部３００３が算出した領域内の特徴点を削除した処理結果を、第２の背景領域候補推定部３００６に出力する。第２の背景領域候補推定部３００６は、第２の位置姿勢変化推定部３００４によって推定されたモーションごとの領域の位置姿勢変化のうち、テクスチャなどから背景と推定される領域を背景領域候補として選択する。第２の推定処理結果として選択された背景領域候補は、第２の演算結果となる。第２の背景領域候補推定部３００６の出力は、第２入力部１００４を介して位置姿勢推定部１０００に入力される。
【００８０】
次に、図１７に示すフローチャートを参照して、撮像装置１０の動作について詳細に説明する。尚、動画像の場合、本実施形態では時間軸方向に沿って連続するフレーム間で位置姿勢変化の推定処理が行われるものとする。基準フレームと非基準フレームについては時間軸方向に関連しているフレームとするが、必ずしも隣接するフレームでなくてもよい。各フレームについては基準フレームとして処理が終了するまで、以下の処理が繰り返される。あるいはユーザ操作に従って基準フレームとして処理するフレームを設定してもよい。
【００８１】
Ｓ１７０１では、画像取得装置１０１による画像データと、奥行画像取得装置１０２による奥行画像データが、第１処理部２０００へ入力される。第１処理部２０００は第１の演算結果を算出し、第１入力部１００３へ出力する。第１処理部２０００が行う処理の詳細については、図１８に示すフローチャートを用いて後述する。
Ｓ１７０２では、画像取得装置１０１による画像データが、第２処理部３０００へ入力される。第２処理部３０００は第２の演算結果を算出し、第２入力部１００４へ出力する。第２処理部３０００が行う処理の詳細については、図１９に示すフローチャートを用いて後述する。
【００８２】
Ｓ１７０３で静止領域決定部１００５は、Ｓ１７０１で入力された第１の演算結果と、Ｓ１７０２で入力された第２の演算結果に基づいて静止領域決定の判断基準を設定する。Ｓ１７０４で静止領域決定部１００５は、Ｓ１７０３で設定された静止領域の判断基準に基づき、Ｓ１７０１で入力された第１の演算結果と、Ｓ１７０２で入力された第２の演算結果から静止領域を決定する。静止領域決定部１００５が行う処理の詳細については、図２１に示すフローチャートを用いて後述する。
【００８３】
Ｓ１７０５で全体位置姿勢変化の推定決定部１００６は、Ｓ１７０４で決定された静止領域に基づき、Ｓ１７０１で入力された第１の演算結果と、Ｓ１７０２で入力された第２の演算結果から全体の位置姿勢変化を推定する。Ｓ１７０６では、Ｓ１７０５で推定された推定結果、つまり第１の演算結果または第２の演算結果のデータを保存部１００８に保存する処理が実行される。保存部１００８に保存されたデータについては第１実施形態の場合と同様に積分処理が行われ、積分されたデータは像振れ補正等に使用される。
【００８４】
次に、図１８を参照して、図１７のＳ１７０１の処理を説明する。
Ｓ１８０１において、位置姿勢変化の推定処理に用いるデータが入力される。具体的には、画像取得装置１０１による画像の撮影と、奥行画像取得装置１０２による奥行画像の撮影が同時に行われる。画像データは画像入力部２００１を介して第１処理部２０００へ入力され、奥行画像データは奥行画像入力部２００２を介して第１処理部２０００へ入力される。Ｓ１８０２で３次元点群生成部２００３は、Ｓ１８０１で入力された画像データおよび奥行画像データを取得して３次元点群を生成する。本実施形態の３次元点群とは、３次元座標上に少なくとも画素（色・諧調）情報と位置情報を持った点の集合のことである。奥行画像を利用して、画像の各画素を３次元座標上にマッピングすることで３次元点群を生成することができる。各点の情報については法線の情報等を含んでもよい。３次元点群を生成する理由は、２次元の画像と２次元の奥行画像の各データに基づき、撮影対象と撮像装置１０についての、３次元空間での位置および姿勢の関係を求めるためである。
【００８５】
Ｓ１８０３でＩＣＰによる最多適合領域算出部２００４は、Ｓ１８０２で生成された３次元点群に対し、ＩＣＰを使用して領域分割を行う。領域分割処理では、基準フレームの３次元点群データに対する非基準フレームの３次元点群について、ＩＣＰによりレジストレーション、最多適合３次元点群を算出する処理が行われる。
Ｓ１８０４で第１の位置姿勢変化推定部２００５は、Ｓ１８０３で分割した領域に対応した位置姿勢変化推定結果を、該変化が適合する当該３次元点群の位置姿勢変化とする。Ｓ１８０５で削除部２００６は、Ｓ１８０３で算出された領域内の３次元点群を削除する。Ｓ１８０６で削除部２００６は、Ｓ１８０３にて算出された領域外に３次元点群点が残っているか否かを判定する。領域外に３次元点群点が残っている場合、Ｓ１８０３に処理を戻す。Ｓ１８０５で削除されなかった３次元点群点で対応付けが再度行われ、残りの３次元点群で領域が算出される。このように段階的に領域の算出を行うことにより、複数の位置姿勢変化の異なる領域の算出が可能となる。Ｓ１８０６で領域外に３次元点群点が残っていなかった場合、Ｓ１８０７に進む。
【００８６】
Ｓ１８０７で第１の背景領域候補推定部２００７は、Ｓ１８０３で分割した領域のうちで、少なくとも最奥の奥行を含む領域を背景領域候補として選択し、奥行データを使用した第１処理を終了する。なお、領域分割方法については、異なる撮影物体の領域の奥行を分割可能であればどのような方法でも構わない。例えば、点群の点の数が分割領域ごとに同一数になるように分割してもよいし、撮影物体に関係なく奥行を均等に分割してもよい。本実施形態ではＩＣＰアルゴリズムの一例を示したが、画像フレーム間での位置姿勢変化を推定できる方法であれば、如何なる方法を用いてもよい。例えば、本実施形態ではフレーム内の全ての点を用いて推定処理を行っているが、ランダムサンプリングや、一定間隔ごとのサンプリングによって使用する点数を減らしても構わない。また、本実施形態ではフレーム間において最も近い点を対応点とする例を説明したが、さらに点の色や法線等の情報を使用し、より良い対応点を探索する方法等がある。
【００８７】
次に、第２処理部３０００について、図１９のフローチャートを参照して詳細に説明する。なお、Ｓ１９０１ないしＳ１９０６のステップについては、第１実施形態にて説明した図７のＳ７０１ないしＳ７０６と同様の処理であるため、それらの詳細な説明は割愛する。それぞれ対応するブロック図の構成要素同士の符号は３００と３０００、３０１と３００１、３０２と３００２、３０３と３００３、３０４と３００４、３０５と３００５である。
Ｓ１９０７で削除部３００５は、Ｓ１９０４にて算出されたモーション領域外に特徴点が残っているか否かを判定する。モーション領域外に特徴点が残っている場合、Ｓ１９０２に処理を戻す。Ｓ１９０６で削除されなかった特徴点で対応付けが再度行われ、動きベクトルの算出と残りの領域でモーションごとの領域が算出される。このように段階的にモーションごとの領域の算出を行うことにより、複数のモーションの算出が可能となる。Ｓ１９０７でモーション領域外に特徴点が残っていなかった場合、Ｓ１９０８に進む。Ｓ１９０８で第２の背景領域候補推定部３００６は、Ｓ１９０４で算出したモーションごとの領域のうちから、画像を使用した背景領域候補推定法により背景領域候補を推定し、動きベクトルを使用した第２処理を終了する。
【００８８】
以下、画像を使用した背景領域候補推定法について具体的に説明する。本実施形態では背景領域候補の推定に、特定物体認識技術の利用による一般物体認識を使用する。具体的にはテクスチャ認識を利用した背景領域候補推定が行われる。最初に事前準備について説明する。
【００８９】
まず背景のテクスチャを学習する処理が実行される。背景のテクスチャとして、ビルディングや道路などの人工物や、海、山、空、森などのテクスチャが事前学習される。次に学習したテクスチャを局所特徴量抽出子、例えばＳＩＦＴ（Ｓｃａｌｅ  Ｉｎｖａｒｉａｎｔ  Ｆｅａｔｕｒｅ  Ｔｒａｎｓｆｏｒｍ）を使用して画像から局所特徴量を抽出する処理が実行される。最後に、抽出した局所特徴量により、テクスチャのモデルデータベースが構成される。
図２０（Ａ）を参照して、第２の背景領域候補推定部３００６の構成を説明する。本例では、局所特徴量を画像から抽出する第１の抽出処理と第２の抽出処理が行われる。第１の局所特徴量抽出部３００６ａは、入力画像データから局所特徴量を抽出して、照合部３００６ｄに出力する。第２の局所特徴量抽出部３００６ｂは、事前に学習した画像の画像データから局所特徴量を抽出してデータベース作成部３００６ｃに出力する。データベース作成部３００６ｃは、第２の局所特徴量抽出部３００６ｂが抽出した局所特徴量からデータベースを作成する。照合部３００６ｄは、第１の局所特徴量抽出部３００６ａが抽出した局所特徴量を取得して、データベース作成部３００６ｃが作成したデータベースと照合する。これにより、テクスチャ認識を利用した背景領域候補の推定処理が行われる。処理例について図２０（Ｂ）のフローチャートを参照して説明する。
【００９０】
Ｓ２００１で第１の局所特徴量抽出部３００６ａは、図１９のＳ１９０４で算出したモーションごとの領域からテクスチャを抽出する。Ｓ２００２では、Ｓ２００１により抽出したテクスチャから事前学習の場合と同様に局所特徴量を抽出する処理が実行される。Ｓ２００３では、事前準備で構成したデータベースと、Ｓ２００２で抽出した局所特徴量との間で最近傍探索処理が実行される。この処理は、照合部３００６ｄが行い、閾値以上の一致度をもつ候補が存在する場合、探索結果が背景領域候補として推定される。
【００９１】
上記説明では局所特徴量の抽出にＳＩＦＴを例に用いたが、この方法に限らず、Ｂａｇ−Ｏｆ−Ｗｏｒｄｓ（ＢＯＷ）やＨｉｓｔｏｇｒａｍｓ  ｏｆ  Ｏｒｉｅｎｔｅｄ  Ｇｒａｄｉｅｎｔｓ（ＨＯＧ）などを使用してもよい。また、最近傍探索の高速化のために、ｋｄ−ｔｒｅｅやＬｏｃａｌｉｔｙ  Ｓｅｎｓｉｔｉｖｅ  Ｈａｓｈｉｎｇ（ＬＳＨ）でインデキシング処理を行ってもよい。照合の高速化のために、枝刈りにより類似特徴を削減し、特異値分解による特徴次元の最適化により、データベースのコンパクト化を図ってもよい。本実施形態では、特定物体認識技術の一例を示したが、画像から背景領域または静止領域を推定できる方法であれば、如何なる方法を用いても構わない。
【００９２】
次に、静止領域決定部１００５が実行する処理について、図２１のフローチャートを参照して詳細に説明する。
Ｓ２１０１で静止領域決定部１００５は、第１の背景領域候補および第１の位置姿勢変化推定の各データと、第２の背景領域候補および第２の位置姿勢変化推定の各データについてそれぞれ整合が取れているか否かについて比較する。具体的には、背景領域候補の比較では、領域の重心座標のズレが閾値以下であるか、または領域サイズの差が閾値以下である場合、２つの背景領域候補は整合していると判断される。また、位置姿勢変化推定のデータの比較では、位置姿勢変化の平行ベクトルの向き（符号）が同一であり、かつ大きさの差が閾値以下であり、回転角度の大きさが閾値以下である場合、２つの位置姿勢変化推定のデータは整合していると判断される。比較の結果、２つの背景領域候補（第１および第２の背景領域候補）、および位置姿勢変化推定の間で整合が取れていると判断された場合、Ｓ２１０２に処理を進め、整合が取れていないと判断された場合、Ｓ２１０３に移行する。
Ｓ２１０２では、第１の背景領域候補または第２の背景領域候補が背景領域として決定される。そして、Ｓ２１０７に処理を進める。
【００９３】
Ｓ２１０３は、背景領域候補が動体であった場合の処理モードの判別処理であり、以下に示す処理モードのいずれかが判断され、所定の判断基準に基づく処理モードに従って背景領域が決定される。
・第１処理モードＡ（Ｓ２１０４参照）の場合、静止領域決定部１００５は、任意の領域を背景領域と判断する。例えば第１入力部１００３によって入力された第１の背景領域候補の次に最奥である領域を第１の背景領域候補として更新することにより、第２入力部１００４で入力された第２の背景領域候補との整合をとることができる。さらには、両背景領域候補の間で整合が取れるまで第１の背景領域候補の更新処理を続行してもよい。この他には、選択部１００９を用いた操作により、画像内の任意の領域を背景領域としてユーザが自由に指定してもよい。
・第２処理モードＢ（Ｓ２１０５参照）の場合、静止領域決定部１００５は、保存部１００８に保存されている過去のデータ（静止領域および位置姿勢変化のデータ）を使用し、第１の背景領域候補と第２の背景領域候補から静止領域を決定する。具体的には、過去演算結果との差が小さい方の推定結果に係る領域を静止領域として設定する処理が行われる。例えば、フレームレート６０ｆｐｓ（frames per second）で動画撮影を行う場合を想定する。現在の位置姿勢変化の推定結果と過去演算結果とで時間間隔は、１／６０秒という短い時間である。このため、静止領域の位置姿勢変化や領域の重心座標や領域サイズは、像振れがあった場合でも現在の演算結果と過去の演算結果とで非常に近い値になる可能性が高い。従って過去演算結果に近い推定結果に係る領域が背景領域として決定される。
・第３処理モードＣ（Ｓ２１０６参照）の場合、静止領域決定部１００５は、背景領域の選択を不可として全体の処理を終了する。
【００９４】
Ｓ２１０２、Ｓ２１０４、またはＳ２１０５の後、Ｓ２１０７に処理を進める。Ｓ２１０７では、Ｓ２１０２、Ｓ２１０４、またはＳ２１０５の処理によって決定された背景領域に基づき静止領域が決定される。静止領域決定部１００５は、決定した静止領域を推定決定部１００６に出力する。なお、直前のフレーム間での位置姿勢変化の推定結果、または該推定結果から算定される予測値を利用して背景領域の決定を行ってもよい。
【００９５】
次に、図２２を参照して本実施形態の効果を説明する。
図２２（Ａ）は、被写界の奥にある静止領域に対し、手前に動体領域のあるシーンをカメラで撮影する状況を例示する。ここでは分かり易いようにカメラを固定して撮影を行うものとする。図２２（Ｂ）は非基準フレームの画像例を示し、図２２（Ｃ）は基準フレームの画像例を示す。図２２（Ｂ）と図２２（Ｃ）に示す２枚のフレームは時間的に連続しており、図２２（Ｂ）は図２２（Ｃ）に比べて過去のフレームとなっている。
【００９６】
図２２（Ｂ）、図２２（Ｃ）に示す各画像において、動体に注目して位置姿勢変化を推定すると、図２２（Ｄ）のように動体領域に引きずられた推定結果になりやすい。例として図２２（Ｆ）のように、動体が静止し、静止領域や、カメラの動きが疑似的に本来の動きとは逆方向へ移動したり、位置姿勢が変化したりする現象が起こり得る。これに対し、図２２（Ｅ）には、静止領域を基準として位置姿勢劣化を推定した場合の画像例を示す。予め推定した静止領域を基準にして位置姿勢変化の推定を行うことにより、動体領域に引きずられにくい位置姿勢変化推定を行うことが可能となる。静止領域は、ビルディングなどの人工物、海、山、森、空などであることが多く、これらは画像内の最奥に背景として位置する場合が多い。本実施形態では奥行情報を使用し、奥行が最奥の領域を背景領域として判断して静止領域と推定する。しかしこの方法では最奥行の領域が動体である場合を除外することができない。そこで画像情報を使用した背景領域推定方法を併用し、２つの処理方法の間で整合をとることによって、推定精度をより高めることができる。また、撮像装置の像振れ補正（防振制御）において、従来の補正では動体領域に引きずられた不自然な補正になる可能性がある。これに対して、本実施形態では、動体領域に引きずられにくい像振れ補正を実現できる。
【００９７】
［その他の実施形態］
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア（プログラム）を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ（またはＣＰＵやＭＰＵ等）がプログラムを読み出して実行する処理である。
【符号の説明】
【００９８】
１，１０  撮像装置
１００  画像処理部
１０１  画像取得装置
１０２  奥行画像取得装置
１０５，１００５  静止領域決定部
１０７，１００６  推定決定部
１０８，１００８  保存部
２００，２０００  第１処理部
２０４  奥行分割部
２０６  グループ化処理部
３００，３０００  第２処理部
３０２，３００２  動きベクトル算出部
【図１】
2015121524.tif 000096
【図２】
2015121524.tif 000097
【図３】
2015121524.tif 000098
【図４】
2015121524.tif 000099
【図５】
2015121524.tif 000100
【図６】
2015121524.tif 000101
【図７】
2015121524.tif 000102
【図８】
2015121524.tif 000103
【図９】
2015121524.tif 000104
【図１０】
2015121524.tif 000105
【図１１】
2015121524.tif 000106
【図１２】
2015121524.tif 000107
【図１３】
2015121524.tif 000108
【図１４】
2015121524.tif 000109
【図１５】
2015121524.tif 000110
【図１６】
2015121524.tif 000111
【図１７】
2015121524.tif 000112
【図１８】
2015121524.tif 000113
【図１９】
2015121524.tif 000114
【図２０】
2015121524.tif 000115
【図２１】
2015121524.tif 000116
【図２２】
2015121524.tif 000117