本発明は、複数の撮影装置を使用して広視野角または高解像度の映像を得る撮像システム、及び、そのような撮像システムで使用する画像合成装置に関する。
複数の撮影装置を使って広視野角または高解像度の映像を得る撮影システムとして、ビデオモザイキング技術として知られる技術や、特許文献1に記載の技術がある。特許文献1に記載の技術は、1つの広画角撮影装置と複数の通常画角撮影装置を備え、1つの広画角撮影装置を基準として各々の通常画角撮影装置の映像を合成した映像を生成するものである。これらの技術は、いずれも、複数の撮影装置の内部パラメタ(焦点距離など)及び外部パラメタ(位置や姿勢など)を推定し、各々の撮影映像に該パラメタに基づいた変換を施した上で合成処理を行うことで、一見なめらかにつながった広視野角または高解像度の映像の生成を行うものである。
従来の技術においては、複数の撮影装置の投影中心位置が異なることに起因する見え隠れの矛盾が原理的に生じるため、それによる画質の劣化が避けられなかった。同様に、鏡面反射の状態など、指向性を持つ光学特性に関する矛盾も原理的に発生するため、それによる画質の劣化も避けられなかった。
本発明では、前記の課題を解決するため、基準となる画像データを撮影する1つの全体撮影装置と、該全体撮影装置の撮影範囲の一部分を含むような範囲を撮影する詳細撮影装置を備え、さらに、前記全体撮影装置の撮影した画像データに幾何学的な変換を施して全体画像データを生成する手段と、前記詳細撮影装置が撮影した画像データに幾何学的な変換を施して詳細画像データを生成する手段と、前記全体画像データと前記詳細画像データを比較することで画素毎の整合性の有無を判定する手段と、出力する画像データの画素値を前記判定結果が「整合性なし」となった画素については前記全体画像データを使って決定し前期判定結果が「整合性あり」となった画素については前記詳細画像データを使って決定する手段と、を備えるようにした。また、前記整合性の有無については、前記全体画像データの画素値と前記詳細画像データの画素値との差異が所定の許容範囲内に収まっている場合に「整合性あり」、そうでない場合に「整合性なし」と判定するようにした。
なお、上記所定の許容範囲は、例えば、以下に例示するように、画素値の差異の種々の評価方法に応じて決めた適当な値を使用すればよい。
例えば、モノクロ画像であれば、各画素を8ビットの値で扱っている場合に、各々の画素値(0〜255)の差の絶対値を差異として評価する場合には、例えば「5以下」等を所定の許容範囲として使用してもよい。
また、カラー画像であれば、各々の画像を所定の変換式に基づいてモノクロ画像に変換した上で各々の画素値の差の絶対値を差異として評価する場合には、ある閾値Tを用いて「T以下」等を所定の許容範囲として使用してもよいし、UCS表色系に変換した場合の色度点間の距離とXYZ表色系に変換した場合のY値の差の絶対値とに基づいて差異を評価する場合には、ある閾値T1と別の閾値T2とを用いて「色度点間の距離がT1以下かつY値の差の絶対値がT2以下」等を所定の許容範囲として使用してもよい。
本発明によれば、1つの撮影装置で撮影した画像データと整合性のある画像データが撮像されることを保証しつつ、複数の撮影装置を使って高解像度の画像データを生成することが可能となる。
以下、本発明の実施の形態について、実施例を用いて説明する。
以下、図1〜図22及び図60を用いて、第1の実施の形態について説明する。
図1は、効果を説明するための概念図である。
図1において、画像データ110は全体撮影装置201で撮影した画像データであり、画像データ120は左面撮影装置202で撮影した画像データであり、画像データ130は右面撮影装置203で撮影した画像データであり、画像データ111は、本実施例の画像合成装置200に画像データ110と画像データ120と画像データ130を入力した場合に出力される画像データである。全体撮影装置201と左面撮影装置202と右面撮影装置203と画像合成装置200に関しては、図2において説明する。
画像合成装置は、基本的に画像データ110から画像データ111を生成するが、その際、画像データ110と整合し得る範囲において、画像データ120に基づいて生成した画像データ121を画像データ111に合成し、画像データ130に基づいて生成した画像データ131を画像データ111に合成することで、画像データ111の一部分または全体の解像度を上げることを実現するものである。
ここで「画像データ110と整合し得る範囲において」と限定しているのは、例えば、画像データ110と画像データ130において、人物140と人物141の重なり具合が互いに異なって見えているが、そのような不整合がある場合には、画像データ110における見え方を優先して画像データ111を生成する、ということである。なお、画像データ111の具体的な生成方法については、図2以降にて説明する。
なお、図1は、効果を説明するための概念図であり、高精細領域121及び高精細領域131の実際の形状は、図1で示した形とは大きく異なる場合もある。
図2は、本実施例のシステムのシステム構成図である。
図2において、全体撮影装置201の撮影した画像データは、映像入力部210を介して画像合成装置200に入力され、入力データ記憶部220に格納される。同様に、左面撮影装置202及び右面撮影装置203の撮影した画像データは、映像入力部210を介して画像合成装置200に入力され、入力データ記憶部220に格納される。全体撮影装置201の撮影画角は左面撮影装置202の撮影画角及び右面撮影装置203の撮影画角よりも広くなるように構成し、左面撮影装置202及び右面撮影装置203は全体撮影装置201の撮影している範囲内を撮影する。また、全体撮影装置201の撮像素子密度と、左面撮影装置202の撮像素子密度と、右面撮影装置203の撮像素子密度は、同程度となるように構成する。このように構成することにより、左面撮影装置202の撮影した画像データや右面撮影装置203の撮影した画像データは、全体撮影装置201の撮影した画像データの一部分をより詳細に撮影したものに近い画像データとなる。
画像合成装置200は、全体撮影装置201及び左面撮影装置202及び右面撮影装置203の撮影した画像データを取得する映像入力部210と、該取得した画像データを格納する入力データ記憶部220と、入力データ記憶部220及び中間データ記憶部260に格納されたデータに対してパラメタ記憶部240に格納されたパラメタを必要に応じて読み込みながら画像処理を行う画像処理部230と、パラメタ記憶部240に格納するパラメタを取得するパラメタ設定部250と、画像処理部230の処理によって出力される中間データを格納する中間データ記憶部260と、生成した画像データまたはデフォルトの画像データを出力する映像出力部270と、映像入力部210及び画像処理部230及び映像出力部270の各々の処理のタイミング制御を行う全体制御部280とを備えるように構成する。
なお、入力データ記憶部220に格納するデータに関しては図3を用いて、全体制御部280に格納するデータに関しては図4を用いて、パラメタ記憶部240に格納するデータに関しては図5を用いて、中間データ記憶部260に格納するデータに関しては図6を用いて、それぞれ説明する。
図3は、本実施例のシステムにおいて入力データ記憶部220に格納するデータの説明図である。
入力データ記憶部220は、全体制御部280からの制御信号にしたがって、全体撮影装置201の撮影した画像データを全体入力画像データ221に、左面撮影装置202の撮影した画像データを左面入力画像データ222に、右面撮影装置203の撮影した画像データを右面入力画像データ223に、それぞれ格納するように構成する。時系列画像データが入力される場合には、例えば、フレームバッファを2画面分用意して、一方が画像処理部230が処理するための処理用のフレームバッファ、他方が映像入力部210が画像データを書き込むための入力用フレームバッファとなるように、1フレーム毎に切り替えながら使用できるように構成すればよい。
図4は、本実施例のシステムにおいて全体制御部280に格納するデータの説明図である。
全体制御部280は、全体入力状態フラグ281と、左面入力状態フラグ282と、右面入力状態フラグ283と、状態モードフラグ284と、デフォルト画像データ285とを格納できるように構成する。
全体入力状態フラグ281は、全体撮影装置201から画像データが入力されているか否かの状態を保持するフラグであり、全体撮影装置201からの画像データの入力の有無を映像入力部210を介して検出し、逐次更新するものである。同様に、左面入力状態フラグ282は左面撮影装置202から画像データが入力されているか否かの状態を保持するフラグであり、左面撮影装置202からの画像データの入力の有無を映像入力部210を介して検出し、逐次更新するものである。同様に、右面入力状態フラグ283は右面撮影装置203から画像データが入力されているか否かの状態を保持するフラグであり、右面撮影装置203からの画像データの入力の有無を映像入力部210を介して検出し、逐次更新するものである。また、状態モードフラグ284は画像合成装置200の初期化を完了したか否かの状態を保持するフラグであり、初期値は「初期化未済」である。
デフォルト画像データ285は、全体撮影装置201から画像データが入力されていない場合に画像合成装置200の出力する画像データである。本実施例においてはデフォルト画像データ285を全体制御部280に格納するものとしたが、中間データ記憶部260または映像出力部270に格納するように構成してもよい。
図5は、本実施例のシステムにおいてパラメタ記憶部240に格納するデータの説明図である。
パラメタ記憶部240は、内部パラメタデータ241と、外部パラメタデータ242と、色調補正用データ243と、出力パラメタデータ244とを格納するように構成する。
内部パラメタデータ241は、全体撮影装置201と左面撮影装置202と右面撮影装置203のそれぞれの内部パラメタを保持するデータである。具体的には、投影方法や、焦点距離、レンズ歪みのパラメタ、軸の非直交性歪み、撮像面と光軸の交点の画像上での座標値、撮像素子の配置、などの撮影装置単体に関するパラメタのうち、必要なものを格納する。ここで、投影方法とは、等距離魚眼レンズ等を用いているのか、一般の透視投影で表されるレンズを用いているのか、といった情報のことである。
外部パラメタデータ242は、全体撮影装置201と左面撮影装置202との相対関係及び、全体撮影装置201と右面撮影装置203との相対関係を表すパラメタである。具体的には、例えば、全体撮影装置201の投影中心位置を座標原点にとった場合の左面撮影装置202の投影中心位置の3次元位置座標及び右面撮影装置203の投影中心位置の3次元位置座標と、全体撮影装置201の撮影姿勢を基準とした場合の左面撮影装置202の撮影姿勢を表す3次の回転行列及び全体撮影装置201の撮影姿勢を基準とした場合の右面撮影装置203の撮影姿勢を表す3次の回転行列と、を格納する。
色調補正用データ243は、全体撮影装置201と左面撮影装置202と右面撮影装置203の色調を合わせるためのデータである。周辺輝度の低下を補正するためのデータや色空間の違いを補正するためのデータ、異なる露出で撮影した画像データを基準露出で撮影した場合の画像データに変換するためのデータ、などのうち必要なものを格納する。
出力パラメタデータ244は、画像合成装置200の出力画像データの生成方法を定義するデータである。投影中心位置を全体撮影装置201の投影中心位置に等しくとり、座標系に関しても全体撮影装置201の座標系と等しくとった場合の、投影方法や画角などのパラメタを格納する。
図6は、本実施例のシステムにおいて中間データ記憶部260に格納するデータの説明図である。
中間データ記憶部260は、マップ画像データ610と、変換画像データ620と、参照画像データ630と、変化画像データ640と、出力画像データ650と、を格納するように構成する。
マップ画像データ610は、入力画像データをサンプリング処理して新たな画像データを生成するための情報を備えた画像データであり、全体マップ画像データ611と、左面マップ画像データ612と、右面マップ画像データ613と、左面マップ修正画像データ614と、右面マップ修正画像データ615と、合成マップ画像データ616とで構成する。ここで、全体マップ画像データ611と左面マップ画像データ612と右面マップ画像データ613と左面マップ修正画像データ614と右面マップ修正画像データ615と合成マップ画像データ616の解像度は、出力画像データ650の解像度と等しくなるように構成する。マップ画像データ610に含まれる各種マップ画像データの画素値のデータ形式に関しては、図7を用いて説明する。
変換画像データ620は、全体入力画像データ221を全体マップ画像データ611に基づいて変換したデータである全体変換画像データ621と、左面入力画像データ222を左面マップ画像データ612に基づいて変換したデータである左面変換画像データ622と、右面入力画像データ213を右面マップ画像データ613に基づいて変換したデータである右面変換画像データ623とで構成する。ここで、全体変換画像データ621と左面変換画像データ622と右面変換画像データ623の解像度は、出力画像データ650の解像度と等しくなるように構成する。
参照画像データ630は、時刻Tにおける処理を行う際に、時刻(T−1)における状態から変化した部分を検出するために、時刻(T−1)の処理の終了時の状態を表現したデータであり、全体参照画像データ631と、左面参照画像データ632と、右面参照画像データ633とで構成する。ここで、全体参照画像データ631と左面参照画像データ632と右面参照画像データ633の解像度は、出力画像データ650の解像度と等しくなるように構成する。
変化画像データ640は、時刻Tにおける処理において、時刻(T−1)における状態から変化した部分を表現した2値の画像データであり、全体変化画像データ641と、左面変化画像データ642と、右面変化画像データ643とで構成する。ここで、全体変化画像データ641と左面変化画像データ642と右面変化画像データ643の解像度は、出力画像データ650の解像度と等しくなるように構成する。
図7は、本実施例のシステムにおける各種マップ画像データの画素値のデータ形式を説明する図である。
データ形式710は、全体マップ画像データ611と左面マップ画像データ612と右面マップ画像データ613と左面マップ修正画像データ614と右面マップ修正画像データ615とで使用する画素値のデータ形式である。サンプリング処理を行うための、参照元X座標値711と参照元Y座標値712とを備えるように構成する。
データ形式720は、合成マップ画像データ616で使用する画素値のデータ形式である。参照元の画像として全体入力画像データ221と左面入力画像データ222と右面入力画像データ223のどの画像データを使用するかを定める入力データ識別子721と、サンプリング処理を行うための、参照元X座標値722と参照元Y座標値723とを備えるように構成する。
なお、データ形式710及びデータ形式720のいずれの形式においても、適切な参照元座標値が存在しない場合には、参照元座標値として例外値を格納しておく。また、例外値である参照元座標値に基づいてサンプリングされた画素の画素値に関しては、やはり例外値であるとして処理を行い、2つの画素値の差が許容範囲内にあるか否かの判定においては、常に「許容範囲外」であるものとして扱う。
図8は、本実施例のシステムにおける画像合成処理の動作を説明するための状況説明図である。
全体撮影装置201が会議室810の全体を撮影し、左面撮影装置202と右面撮影装置203が各々その一部分を撮影するように構成されている場合に、時刻(T−1)において右面撮影装置203の撮影範囲内の位置820にいた人物が、時刻Tにおいて右面撮影装置203の撮影範囲外の位置821へ移動した場合の動作について、図9を用いて説明する。
図9は、本実施例のシステムにおける画像合成処理の動作を説明するための概念図である。図9の概念図は、図8の状況における処理を表したものである。
画像データ910は時刻(T−1)における全体入力画像データ221であり、画像データ920は時刻(T−1)における右面入力画像データ223である。また、画像データ911は時刻Tにおける全体入力画像データ221であり、画像データ921は時刻Tにおける右面入力画像データ223である。時刻(T−1)に位置820にいた人物が、時刻Tにおいて位置821へ移動した様子がわかる。
画像データ912は更新前の全体参照画像データ631であり、画像データ922は更新前の右面参照画像データ633である。
画像データ913は全体変換画像データ621であり、画像データ923は右面変換画像データ623である。位置820にいた人物がいなくなってしまったにもかかわらず、時刻(T−1)における状態に基づいたサンプリングを行っているため、画像データ923の該当部分が白く抜けてしまっているのがわかる。
画像データ914は全体変化画像データ641であり、画像データ924は右面変化画像データ643である。画像データ914は画像データ912と画像データ913とで差がある部分を検出して生成したものであり、画像データ924は画像データ922と画像データ923とで差がある部分を検出して生成したものである。
画像データ915は更新後の全体参照画像データ631であり、画像データ925は更新後の右面参照画像データ633である。状態が変化した部分のサンプリング用のデータを時刻Tにおける状態に基づいて更新することにより、期待する画像データが生成されていることがわかる。
図10は、本実施例のシステムにおける画像合成処理のフローチャートである。図10の画像合成処理は、全体制御部280において所定の時間間隔毎に実施する処理である。
ステップ1000において画像合成処理が開始されると、まず、ステップ1001において全体映像入力の有無を判定する。この判定は全体入力状態フラグ281を参照することによって行う。ステップ1001における判定で全体映像入力がないと判定された場合には、ステップ1002に進んで状態モードフラグ284を「初期化未済」に設定し、続いてステップ1003に進んで映像出力部270からデフォルト画像データ285を出力した上で、ステップ1004に進んで画像合成処理を終了する。
ステップ1001における判定で全体映像入力があると判定された場合には、ステップ1005において入力画像データ更新処理を行う。ステップ1005の入力画像データ更新処理は、入力データ記憶部220を制御して、全体撮影装置201の撮影した画像データを全体入力画像データ221に、左面撮影装置202の撮影した画像データを左面入力画像データ222に、右面撮影装置203の撮影した画像データを右面入力画像データ223に、それぞれ格納する処理である。
左面撮影装置202からの入力がないことは左面入力状態フラグ282を参照することによって、右面撮影装置203からの入力がないことは右面入力状態フラグ283によって、それぞれ検出できるため、実際に図11以降の処理を実施する場合においては、左面入力状態フラグ282あるいは右面入力状態フラグ283に基づいて、適宜、左面入力画像データ222あるいは右面入力画像データ223に関する処理をスキップするように構成すればよいが、フローチャートが煩雑になるのを避けるため、本明細書中においては、便宜上、映像入力がない場合にはすべての画素値が「黒」であるような画像データを格納することとする。
次に、ステップ1006において、初期化完了モードか否かを判定する。この判定は状態モードフラグ284を参照することによって行う。状態モードフラグ284が「初期化完了」である場合にはステップ1007の中間データ更新処理に進み、状態モードフラグ284が「初期化未済」である場合にはステップ1008の中間データ生成処理に進む。ステップ1008の中間データ生成処理に進んだ場合には、続いてステップ1009で状態モードフラグ284を「初期化完了」に設定する。なお、ステップ1007の中間データ更新処理に関しては図20を用いて、ステップ1008の中間データ生成処理に関しては図11を用いて、それぞれ説明する。
ステップ1007またはステップ1009の終了後、ステップ1010において合成画像データ出力処理を行う。これは、中間データ記憶部260に格納されている出力画像データ650を映像出力部270から出力する処理である。
ステップ1010の合成画像データ出力処理の終了後、ステップ1004に進んで画像合成処理を終了する。
図11は、本実施例のシステムにおける中間データ生成処理のフローチャートである。
ステップ1100で中間データ生成処理が開始されると、まず、ステップ1101においてマップ画像データ初期化処理を行う。マップ画像データ初期化処理の詳細は、図12を用いて説明する。
次に、ステップ1102において、色調補正処理を行う。色調補正処理は、色調補正用データ243に基づいて、全体入力画像データ221と左面入力画像データ222と右面入力画像データ223のそれぞれに画像補正を施した上で、あらためて、全体入力画像データ221、左面入力画像データ222、右面入力画像データ223として格納しなおす処理である。
次に、ステップ1103において、変換画像データ生成処理を行う。変換画像データ生成処理は、全体変換画像データ生成処理と、左面変換画像データ生成処理と、右面変換画像データ生成処理とで構成する。このうち、全体変換画像データ生成処理の詳細を図13を用いて説明する。左面変換画像データ生成処理は、全体変換画像データ生成処理において使用される全体マップ画像データ611の代わりに左面マップ画像データ612を、全体入力画像データ221の代わりに左面入力画像データ222を、全体変換画像データ621の代わりに左面変換画像データ622を、それぞれ使用すればよい。右面変換画像データ生成処理に関しても、同様である。
次に、ステップ1104において、各面マップ画像データ生成処理を行う。各面マップ画像データ生成処理は、左面マップ画像データ生成処理と、右面マップ画像データ生成処理とで構成する。このうち、左面マップ画像データ生成処理の詳細を図14を用いて説明する。右面マップ画像データ生成処理に関しても、同様の処理で実施することができる。
次に、ステップ1105において、参照画像データ生成処理を行う。参照画像データ生成処理は、全体参照画像データ生成処理と、左面参照画像データ生成処理と、右面参照画像データ生成処理とで構成する。このうち、全体参照画像データ生成処理の詳細を図16を用いて説明する。左面参照画像データ生成処理は、全体参照画像データ生成処理において使用される全体入力画像データ221の代わりに左面入力画像データ222を、全体マップ画像データ611の代わりに左面マップ画像データ612を、全体参照画像データ631の代わりに左面参照画像データ632を、それぞれ使用すればよい。右面参照画像データ生成処理に関しても、同様である。
次に、ステップ1106において、合成マップ画像データ生成処理を行う。合成マップ画像データ生成処理の詳細は、図17及び図18を用いて説明する。
次に、ステップ1107において、出力画像データ生成処理を行う。出力画像データ生成処理の詳細は、図19を用いて説明する。
上記の処理を終了後、ステップ1108において中間データ生成処理を終了する。
図12は、本実施例のシステムにおけるマップ画像データ初期化処理のフローチャートである。
ステップ1200でマップ画像データ初期化処理が開始されると、まず、ステップ1201において内部パラメタデータ241を読み込み、続いてステップ1202において出力パラメタデータ244を読み込む。
次に、ステップ1203において、全体用初期値生成処理を行う。全体用初期値生成処理は、出力画像データ650を生成するためには、出力画像データ650の各画素は、全体入力画像データ221のどの座標の画素値をサンプリングしてくればよいかを算出し、該参照元の座標値を全体マップ画像データ611に格納する処理である。参照元座標値の算出処理は、内部パラメタデータ241と出力パラメタデータ244とを用いて、公知の技術により容易に実施することができる。
次に、ステップ1204において、外部パラメタデータ242を読み込む。
次に、ステップ1205において、左面用初期値生成処理を行う。左面用初期値生成処理は、出力画像データ650を生成するためには、出力画像データ650の各画素は、左面入力画像データ222のどの座標の画素値をサンプリングしてくればよいかを算出し、該参照元の座標値を左面マップ画像データ612に格納する処理である。ただしその際、被写体の立体形状等は分かっていないため、所定の曲面上にすべての被写体があるものと仮定して、参照元座標値の算出を行う。この参照元座標値の算出は、所定の曲面が与えられている場合に、内部パラメタデータ241と外部パラメタデータ242と出力パラメタデータ244とから容易に実施することができる。
次に、ステップ1206において右面用初期値生成処理を行う。右面用初期値生成処理は、左面用初期値生成処理と同様の処理によって実施することができる。
上記の処理を終了した後、ステップ1207においてマップ画像データ初期化処理を終了する。
図13は、本実施例のシステムにおける全体変換画像データ生成処理のフローチャートである。
ステップ1300で全体変換画像データ生成処理が開始されると、まず、ステップ1301において、処理すべき画素のシリアル番号であるnを0に初期化する。
次に、ステップ1302において、全体マップ画像データ611のn番目の画素の画素値を読み込む。
次に、ステップ1303において、全体入力画像データ221上の、ステップ1302で読み込んだ参照元座標値に対応する位置の画素値を算出し、全体変換画像データ621のn番目の画素の画素値として設定する。ここで、参照元座標値は一般には整数値ではないが、画素値の算出は双線形補間などの公知の方法によって実施すればよい。
次に、ステップ1304において処理すべき画素のシリアル番号であるnを1増やし、続いてステップ1305において、全体変換画像データ621中のすべての画素について処理が終了したか否かを判定する。全体変換画像データ621中のすべての画素について処理が終了している場合にはステップ1306に進んで全体変換画像データ生成処理を終了し、未だ処理が終了していない画素が存在する場合にはステップ1302に進んで処理を続ける。
図14は、本実施例のシステムにおける左面マップ画像データ生成処理のフローチャートである。
ステップ1400で左面マップ画像データ生成処理が開始されると、まず、ステップ1401において全体変換画像データ621を読み込み、続いてステップ1402において左面変換画像データ622を読み込む。
次に、ステップ1403において、左面マップ修正画像データ生成処理を行う。左面マップ修正画像データ生成処理は、全体変換画像データ621と左面変換画像データ622とに基づいて、左面マップ画像データ612の誤差分を修正するための左面マップ修正画像データ614を生成する処理である。全体変換画像データ621の各画素位置について、左面変換画像データ622のどの座標位置からサンプリングしてくればよいかを算出すればよく、パターンマッチング等の公知の技術を用いて実施することができる。なお、対応が求まらない画素に関しては、例外値を格納し、以降の処理を適宜スキップできるようにしておけばよい。
次に、ステップ1404において、左面マップ画像データ合成処理を行う。左面マップ画像データ合成処理の詳細は、図15を用いて説明する。
上記処理を終了した後、ステップ1405において左面マップ画像データ生成処理を終了する。
図15は、本実施例のシステムにおけるマップ画像データの合成方法の説明図である。
左面マップ修正画像データ1510上の画素1511の参照元座標値が、左面マップ画像データ1520上の座標値1521であり、座標値1521の参照元座標値が、左面入力データ1530の座標値1531であるとき、左面マップ修正画像データ1510上の画素1511の参照元座標値を、座標値1531に更新する。この更新を左面マップ修正画像データ1510のすべての画素に対して実施した後、左面マップ修正画像データ1510を、あらためて、左面マップ画像データ1520として保存する。
ここで、座標値1521は一般に画素中心の位置に一致しないため、双線形補間などによって座標値1531を算出する必要がある。すなわち、図15において、座標値1521の参照元座標値を求める代わりに、画素中心の位置にある座標値1522及び座標値1523及び座標値1524及び座標値1525のそれぞれに対して左面マップ画像データ1520の画素値を参照して参照元座標値を求め、それらの双線形補間を行うことで座標値1521に対応する座標値1531を算出する。
図16は、本実施例のシステムにおける全体参照画像データ生成処理のフローチャートである。
ステップ1600で全体参照画像データ生成処理が開始されると、まず、ステップ1601において、処理すべき画素のシリアル番号であるnを0に初期化する。
次に、ステップ1602において、全体マップ画像データ611のn番目の画素の画素値を読み込む。
次に、ステップ1603において、全体入力画像データ221上の、ステップ1602で読み込んだ参照元座標値に対応する位置の画素値を算出し、全体参照画像データ631のn番目の画素の画素値として設定する。ここで、参照元座標値は一般には整数値ではないが、画素値の算出は双線形補間などの公知の方法によって実施すればよい。
次に、ステップ1604において処理すべき画素のシリアル番号であるnを1増やし、続いてステップ1605において、全体参照画像データ631中のすべての画素について処理が終了したか否かを判定する。全体参照画像データ631中のすべての画素について処理が終了している場合にはステップ1606に進んで全体参照画像データ生成処理を終了し、未だ処理が終了していない画素が存在する場合にはステップ1602に進んで処理を続ける。
図17は、本実施例のシステムにおける合成マップ画像データ生成処理のフローチャートである。
ステップ1700において合成マップ画像データ生成処理が開始されると、まず、ステップ1701において、処理すべき画素のシリアル番号であるnを0に初期化する。
次に、ステップ1702において、全体参照画像データ631のn番目の画素の画素値VTと、左面参照画像データ632のn番目の画素の画素値VLと、右面参照画像データ633のn番目の画素の画素値VRとを読み込む。
次に、ステップ1703において、採用画素決定処理を行う。採用画素決定処理の詳細については、図18を用いて説明する。
次に、ステップ1704において処理すべき画素のシリアル番号であるnを1増やし、続いてステップ1705において、合成マップ画像データ616中のすべての画素について処理が終了したか否かを判定する。合成マップ画像データ616中のすべての画素について処理が終了している場合にはステップ1706に進んで合成マップ画像データ生成処理を終了し、未だ処理が終了していない画素が存在する場合にはステップ1702に進んで処理を続ける。
図18は、本実施例のシステムにおける採用画素決定処理のフローチャートである。
ステップ1800において採用画素決定処理が開始されると、まず、ステップ1801において所定の閾値に基づいてVTとVLの差が許容範囲内にあるか否かを判定する。ステップ1801において許容範囲内であると判定された場合には、ステップ1802に進み、合成マップ画像データ616のn番目の画素の画素値として、入力データ識別子721には「左面入力画像データ」を設定し、参照元X座標値722には左面マップ画像データ612のn番目の画素の画素値である参照元X座標値711を設定し、参照元Y座標値723には左面マップ画像データ612のn番目の画素の画素値である参照元Y座標値712を設定する。
ステップ1801において許容範囲外であると判定された場合には、ステップ1803の処理に進む。ステップ1803では、所定の閾値に基づいてVTとVRの差が許容範囲内にあるか否かを判定する。ステップ1803において許容範囲内であると判定された場合には、ステップ1804に進み、合成マップ画像データのn番目の画素の画素値として、入力データ識別子721には「右面入力画像データ」を設定し、参照元X座標値722には右面マップ画像データ613のn番目の画素の画素値である参照元X座標値711を設定し、参照元Y座標値723には右面マップ画像データ613のn番目の画素の画素値である参照元Y座標値712を設定する。
ステップ1803において許容範囲外であると判定された場合には、ステップ1805に進み、合成マップ画像データのn番目の画素の画素値として、入力データ識別子721には「全体入力画像データ」を設定し、参照元X座標値722には全体マップ画像データ611のn番目の画素の画素値である参照元X座標値711を設定し、参照元Y座標値723には全体マップ画像データ611のn番目の画素の画素値である参照元Y座標値712を設定する。
以上、ステップ1802、ステップ1804、ステップ1805、のいずれかの処理の終了後、ステップ1806において採用画素決定処理を終了する。
図19は、本実施例のシステムにおける出力画像データ生成処理のフローチャートである。
ステップ1900において出力画像データ生成処理が開始されると、まず、ステップ1901において、処理すべき画素のシリアル番号であるnを0に初期化し、続いてステップ1902において、合成マップ画像データ616のn番目の画素の画素値を読み込む。
次に、ステップ1903において、ステップ1902で読み込んだ画素値の入力データ識別子721で表される入力データ上で、参照元X座標値722と参照元Y座標値723で表される座標の画素値を算出し、出力画像データ650のn番目の画素の画素値として設定する。ここで、参照元X座標値722及び参照元Y座標値723は一般には整数値ではないが、画素値の算出は双線形補間などの公知の方法により実施すればよい。
次に、ステップ1904において処理すべき画素のシリアル番号であるnを1増やし、続いてステップ1905において、出力画像データ650中のすべての画素について処理が終了したか否かを判定する。出力画像データ650中のすべての画素について処理が終了している場合にはステップ1906に進んで出力画像データ生成処理を終了し、未だ処理が終了していない画素が存在する場合にはステップ1902に進んで処理を続ける。
図20は、本実施例のシステムにおける中間データ更新処理のフローチャートである。
ステップ2000において中間データ更新処理が開始されると、まず、ステップ2001において色調補正処理を行う。ステップ2001における色調補正処理は、ステップ1102における色調補正処理と同一の処理である。
次に、ステップ2002において、変換画像データ生成処理を行う。ステップ2002における変換画像データ生成処理は、ステップ1103における変換画像データ生成処理と同一の処理である。
次に、ステップ2003において、変化画像データ生成処理を行う。変化画像データ生成処理は、全体変化画像データ生成処理と、左面変化画像データ生成処理と、右面変化画像データ生成処理とで構成する。このうち、全体変化画像データ生成処理の詳細を図21を用いて説明する。左面変化画像データ生成処理は、全体変化画像データ生成処理において使用される全体参照画像データ631の代わりに左面参照画像データ632を、全体変換画像データ621の代わりに左面変換画像データ622を、全体変化画像データ641の代わりに左面変化画像データ642を、それぞれ使用すればよい。右面変化画像データ生成処理に関しても、同様である。
次に、ステップ2004において、各面マップ画像データ更新処理を行う。各面マップ画像データ更新処理は、左面マップ画像データ更新処理と、右面マップ画像データ更新処理とで構成する。このうち、左面マップ画像データ更新処理の詳細を図22を用いて説明する。右面マップ画像データ更新処理に関しても、同様の処理で実施することができる。
次に、ステップ2005において、参照画像データ生成処理を行う。ステップ2005における参照画像データ生成処理は、ステップ1105における参照画像データ生成処理と同一の処理である。
次に、ステップ2006において、合成マップ画像データ生成処理を行う。ステップ2006における合成マップ画像データ生成処理は、ステップ1106における合成マップ画像データ生成処理と同一の処理である。
次に、ステップ2007において、出力画像データ生成処理を行う。ステップ2007における出力画像データ生成処理は、ステップ1107における出力画像データ生成処理と同一の処理である。
以上の処理を終了後、ステップ2008において中間データ更新処理を終了する。
図21は、本実施例のシステムにおける全体変化画像データ生成処理のフローチャートである。
ステップ2100において全体変化画像データ生成処理が開始されると、まず、ステップ2101において、処理すべき画素のシリアル番号であるnを0に初期化する。
次に、ステップ2102において、全体参照画像データ631のn番目の画素の画素値V0を読み込み、続いてステップ2103において、全体変換画像データ621のn番目の画素の画素値V1を読み込む。
次に、ステップ2104において、所定の閾値に基づいてV0とV1の差が許容範囲内であるか否かを判定する。ステップ2104で許容範囲内であると判定された場合には、ステップ2105に進んで全体変化画像データ641のn番目の画素の画素値を0にする。ステップ2104で許容範囲外であると判定された場合には、ステップ2106に進んで全体変化画像データ641のn番目の画素の画素値を1にする。
ステップ2105またはステップ2106の終了後、ステップ2107において処理すべき画素のシリアル番号であるnを1増やし、続いてステップ2108において、全体変化画像データ641中のすべての画素について処理が終了したか否かを判定する。全体変化画像データ641中のすべての画素について処理が終了している場合にはステップ2109に進んで全体変化画像データ生成処理を終了し、未だ処理が終了していない画素が存在する場合にはステップ2102に進んで処理を続ける。
図22は、本実施例のシステムにおける左面マップ画像データ更新処理のフローチャートである。
ステップ2200において左面マップ画像データ更新処理が開始されると、まず、ステップ2201において全体変換画像データ621と左面変換画像データ622とを読み込み、続いてステップ2202において、全体変化画像データ641及び左面変化画像データ642を読み込む。
次に、ステップ2203において左面マップ修正画像データ更新処理を行う。左面マップ修正画像データ更新処理は、全体変化画像データ641または左面変化画像データ642のいずれかにおいて画素値が1であるような画素に関しては、図14のステップ1403で説明した左面マップ修正画像データ生成処理と同様にして左面マップ修正画像データ614の画素値を決定し、全体変化画像データ641及び左面変化画像データ642の両方で画素値が0であるような画素に関しては、該画素の座標値をそのまま該画素の参照元座標値として設定する処理である。変化画像データを使用することで、状態が変化した領域があらかじめ分かるため、パターンマッチング等の処理の高速化・頑健化が期待できる。また、状態の変化がない部分に関する計算量の削減が図れるため、処理の高速化が期待できる。
次に、ステップ2204において左面マップ画像データ合成処理を行う。ステップ2204における左面マップ画像データ合成処理は、図14のステップ1404で説明した左面マップ画像データ合成処理と同じ処理である。
以上の処理を終了後、ステップ2205において左面マップ画像データ更新処理を終了する。
図60は、ハードウェア構成図である。
画像合成装置6000は、USBインターフェース6011と、USBインターフェース6012と、USBインターフェース6013と、CPU6020と、メモリ6021と、ハードディスク6022と、画像ボード6023と、ネットワークカード6024とで構成する。
ハードディスク6022には、これまでに説明した各種処理に対応する各種プログラムと、全体制御部280に格納されるべき各種データ、及び、パラメタ記憶部240に格納されるべき各種データ、を格納しておく。
本実施例のシステムは、図60に示すハードウェア構成で、ハードディスク6022からメモリ6021にロードされた各種プログラムが、CPU6020によって実行されることにより実現される。
入力データ記憶部220と中間データ記憶部260の機能は、メモリ6021によって実現され、映像入力部210の機能は、USBインターフェース6011と、USBインターフェース6012と、USBインターフェース6013によって実現され、映像出力部270の機能は画像ボード6023によって実現され、パラメタ設定部250の機能はネットワークカード6024によって実現される。
また、全体撮影装置201、左面撮影装置202、右面撮影装置203の機能は、それぞれ、USBカメラ6001、USBカメラ6002、USBカメラ6003によって実現される。
なお、ハードディスク6022が備えるべき機能としては、記憶した情報が電源断などによって失われないものであればよく、不揮発性のメモリでも代用可能であるし、CD−ROMやフロッピー(登録商標)ディスクのようなメディアと該メディアを読み込むためのインターフェースとの組で代用することもできる。
また、USBインターフェース6011と、USBインターフェース6012と、USBインターフェース6013が備えるべき機能は、画像合成装置200への入力信号をデジタル画像データとしてメモリ6021に書き込むことであり、入力信号に応じてUSBインターフェースの代わりに適切なものを使用すればよい。例えば、入力信号がアナログ信号である場合にはA/D変換機能を有するキャプチャカードを使用すればよいし、入力信号がネットワークを介して送られてくるデジタルデータである場合にはネットワークカードを使用すればよい。
また、画像ボード6023が備えるべき機能は、合成した画像データを外部に出力することであり、D/A変換機能の有無は、出力先に応じて変更すればよい。さらに、合成したデータをハードディスク等の記憶媒体に記憶する場合には該媒体に対応するインターフェースを使用すればよいし、ネットワークを介して伝送する場合にはネットワークカードを使用すればよい。さらに、該ネットワークカードとしてMPEG2エンコード機能などのデータ圧縮機能を有するものを使用するようにしてもよい。
また、ネットワークカード6024が備えるべき機能は、パラメタ記憶部240に格納されるべき各種データをハードディスク6022に書き込めることであり、CD−ROMやフロッピー(登録商標)ディスクのようなメディアと該メディアを読み込むためのインターフェースとの組で代用してもよいし、キーボードなどの外部入力インターフェースで代用するようにしてもよい。 なお、本ハードウェア構成は、他の実施例にも適用可能である。
以上、本実施例によれば、1つの撮影装置で撮影した画像データと整合性のある画像データが撮像されることを保証しつつ、複数の撮影装置を使って高解像度の画像データを生成することが可能となる。
なお、本実施例においては、処理速度及び頑健性の観点から変化画像データを使用するように構成したが、本発明の実施の形態はこれに限るものではなく、常にすべての画素に対して処理を行うようにしてもよいことは明らかである。
以下、図23〜図33を用いて、第2の実施の形態について説明する。
本実施例は、実施例1に記載の例に対して、より単純な処理の組み合わせによって中間データを更新できるようにした例である。
図23は、本実施例のシステムのシステム構成図である。図23において、図2と同じ符号は、図2と同じものを表す。また、図6と同じ符号は、図6と同じものを表す。
本実施例の画像合成装置2300は、画像合成装置200に対して、中間データ記憶部2360を、デプス画像データ2360と探索用デプス集合データ2370とを格納できるように構成し、さらに、画像処理部2330で実施する中間データ生成処理及び中間データ更新処理に変更を加えたものである。
ここで、デプス画像データ2360は、全体デプス画像データ2361と背景デプス画像データ2362とで構成する。ここで、全体デプス画像データ2361と背景デプス画像データ2362の解像度は、出力画像データ650の解像度と等しくなるように構成する。
また、探索用デプス集合データ2370は、所定のデプス値の集合である規定探索デプス集合データ2371と、臨時探索距離集合データ2372と、最大探索距離集合データ2373とで構成する。規定探索デプス集合データ2371の構成方法については図26を用いて、臨時探索距離集合データ2372と最大探索距離集合データ2373の構成方法については図31を用いて、それぞれ説明する。
図24は、本実施例のシステムにおける中間データ生成処理のフローチャートである。図24において、図11と同じ符号は、図11と同じ処理を表す。
ステップ2401のデプス画像データ生成処理の詳細については、図25を用いて説明する。
ステップ2402の各面マップ画像データ生成処理は、左面マップ画像データ生成処理と、右面マップ画像データ生成処理とで構成する。このうち、左面マップ画像データ生成処理の詳細を図27を用いて説明する。右面マップ画像データ生成処理に関しても、同様の処理で実施することができる。
図25は、本実施例のシステムにおけるデプス画像データ生成処理のフローチャートである。
ステップ2500においてデプス画像データ生成処理が開始されると、まず、ステップ2501において、処理すべき画素のシリアル番号であるnを0に初期化する。
次に、ステップ2502において、出力パラメタデータ244と出力画像データ650のn番目の画素位置とで規定される、投影中心位置を基点として画素位置方向を向くような3次元方向に関して、所定の適合率評価関数に基づいて、各々の規定デプス集合データに含まれるデプス値ごとに、デプス値が当該デプス値の場合の適合率を算出する。
次に、ステップ2503において、ステップ2502で算出した適合率が最も高いデプス値を選択し、全体デプス画像データ2361のn番目の画素値として設定する。
次に、ステップ2504において処理すべき画素のシリアル番号であるnを1増やし、続いてステップ2505において、全体デプス画像データ2361中のすべての画素について処理が終了したか否かを判定する。全体デプス画像データ2361中のすべての画素について処理が終了している場合にはステップ2506に進み、未だ処理が終了していない画素が存在する場合にはステップ2502に進んで処理を続ける。
ステップ2506において背景デプス画像データ2362の各画素の画素値を全体デプス画像データ2361の同位置の画素の画素値と同じ値に設定した後、ステップ2507においてデプス画像データ生成処理を終了する。
図26は、本実施例のシステムにおける規定探索デプス集合データ2371の構成方法を説明するための図である。
図26において、白丸が、各々1つのデプス値を表す。本実施例においては、所定の最小デプス値2610及び最大デプス値2611に対して、デプス集合データ2620のようにデプス値を等間隔に配置してもよいし、「画像データ上でのずれの量が概ね等しくなるように」という観点から、デプス集合データ2621のようにデプス値が小さい領域ほど密に配置してもよい。
図27は、本実施例のシステムにおける左面マップ画像データ生成処理のフローチャートである。
ステップ2700において左面マップ画像データ生成処理が開始されると、まず、ステップ2701において、処理すべき画素のシリアル番号であるnを0に初期化する。
次に、ステップ2702において、出力パラメタデータ244と出力画像データ650のn番目の画素位置とで規定される、投影中心位置を基点として画素位置方向を向くような3次元方向に関して、全体デプス画像データ2361上のデプス値から三次元空間上での位置Pを決定する。
次に、ステップ2703において、ステップ2702で決定した位置Pと内部パラメタデータ241と外部パラメタデータ242に基づいて、左面入力画像データ222上の対応する位置を決定し、左面マップ画像データ612のn番目の画素の画素値として設定する。
次に、ステップ2704において処理すべき画素のシリアル番号であるnを1増やし、続いてステップ2705において、左面マップ画像データ612中のすべての画素について処理が終了したか否かを判定する。左面マップ画像データ612中のすべての画素について処理が終了している場合にはステップ2706に進んで左面マップ画像データ生成処理を終了し、未だ処理が終了していない画素が存在する場合にはステップ2702に進んで処理を続ける。
図28は、本実施例のシステムにおける中間データ更新処理のフローチャートである。図28において、図20と同じ符号は、図20と同じ処理を表す。
ステップ2801の全体デプス画像データ更新処理の詳細に関しては、図29を用いて説明する。
ステップ2802の背景デプス画像データ更新処理の詳細に関しては、図32を用いて説明する。
ステップ2803の各面マップ画像データ更新処理は、左面マップ画像データ更新処理と、右面マップ画像データ更新処理とで構成する。このうち、左面マップ画像データ更新処理の詳細を図33を用いて説明する。右面マップ画像データ更新処理に関しても、同様の処理で実施することができる。
図29は、本実施例のシステムにおける全体デプス画像データ更新処理のフローチャートである。
ステップ2900において全体デプス画像データ更新処理が開始されると、まず、ステップ2901において、処理すべき画素のシリアル番号であるnを0に初期化する。
次に、ステップ2902において、全体デプス画像データ2361のn番目の画素について、画素値優先デプス決定処理を行う。画素値優先デプス決定処理の詳細については、図30及び図31を用いて説明する。
次に、ステップ2903において処理すべき画素のシリアル番号であるnを1増やし、続いてステップ2904において、全体デプス画像データ2361中のすべての画素について処理が終了したか否かを判定する。全体デプス画像データ2361中のすべての画素について処理が終了している場合にはステップ2905に進んで全体デプス画像データ更新処理を終了し、未だ処理が終了していない画素が存在する場合にはステップ2902に進んで処理を続ける。
図30は、本実施例のシステムにおける画素値優先デプス決定処理のフローチャートであり、図31は、本実施例のシステムにおける臨時探索距離集合データ2372及び最大探索距離集合データ2373の構成方法を説明するための図である。図31において、図26と同じ符号は、図26と同じものを表す。
ステップ3000において画素値優先デプス決定処理が開始されると、まず、ステップ3001において全体デプス値近傍探索処理を行う。これは、全体デプス画像データ2361のn番目の画素の画素値である全体デプス値を読み込み、所定の間隔と所定の適合率評価関数に基づいて、全体デプス値の近傍のデプス値と、該デプス値における適合率と、の組を算出する処理である。例えば、図31において、全体デプス値3101とその近傍のデプス値3102及びデプス値3103に対して、各々の適合率の算出をステップ3001において行う。
次に、ステップ3002において、背景デプス値近傍探索処理を行う。これは、背景デプス画像データ2362のn番目の画素の画素値である背景デプス値を読み込み、所定の間隔と所定の適合率評価関数に基づいて、背景デプス値の近傍のデプス値と、該デプス値における適合率と、の組を算出する処理である。例えば、図31において、背景デプス値3111とその近傍のデプス値3112及びデプス値3113に対して、各々の適合率の算出をステップ3002において行う。
次に、ステップ3003において、規定デプス値探索処理を行う。これは、規定探索デプス集合データ2371に含まれるデプス値に対して、所定の適合率評価関数に基づいて適合率を求める処理である。
次に、ステップ3004において、最適デプス値選択処理を行う。これは、ステップ3001及びステップ3002及びステップ3003において処理を行ったデプス値のうち、適合率が最も高いデプス値を選択し、全体デプス画像データ2361のn番目の画素の画素値として設定する処理である。結果として、デプス集合データ3121に含まれるデプス値のそれぞれに対して、所定の適合率評価関数に基づいて適合率を求めた上で、適合率が最も高いデプス値を選択したことと等価な処理となる。
ステップ3004の処理が終了した後、ステップ3005において画素値優先デプス決定処理を終了する。
図32は、本実施例のシステムにおける背景デプス画像データ更新処理のフローチャートである。
ステップ3200において背景デプス画像データ更新処理が開始されると、まず、ステップ3201において、処理すべき画素のシリアル番号であるnを0に初期化する。
次に、ステップ3202において、全体デプス画像データ2361のn番目の画素の画素値V0を読み込み、続いてステップ3203において背景デプス画像データ2362のn番目の画素の画素値V1を読み込む。
次に、ステップ3204において、V0とV1の値の比較を行い、V0の方が大きいと判定された場合には、ステップ3205に進んで背景デプス画像データ2362のn番目の画素の画素値をV0に設定する。
以上の処理が終了した後、ステップ3206において処理すべき画素のシリアル番号であるnを1増やし、続いてステップ3207において、背景デプス画像データ2362中のすべての画素について処理が終了したか否かを判定する。背景デプス画像データ2362中のすべての画素について処理が終了している場合にはステップ3208に進んで背景デプス画像データ更新処理を終了し、未だ処理が終了していない画素が存在する場合にはステップ3202に進んで処理を続ける。
背景デプス画像データ2362をこのように更新することによって、背景デプス画像データ2362の各画素は、該画素に関して過去に選択されたデプス値のうちでもっとも値の大きなものを保持することができる。
図33は、本実施例のシステムにおける左面マップ画像データ更新処理のフローチャートである。
ステップ3300において左面マップ画像データ更新処理が開始されると、まず、ステップ3301において、処理すべき画素のシリアル番号であるnを0に初期化する。
次に、ステップ3302において、被写体が変わったと判定される画素か否かを判定する。これは、全体変化画像データ641及び左面変化画像データ642を参照することによって実施すればよい。ステップ3302の判定において「変化なし」と判定された場合には、ステップ3305に進む。
ステップ3302の判定において「変化あり」と判定された場合には、ステップ3303において、出力パラメタデータ244と出力画像データ650のn番目の画素位置とで規定される、投影中心位置を基点として画素位置方向を向くような3次元方向に関して、全体デプス画像データ2361上のデプス値から三次元空間上での位置Pを決定する。
次に、ステップ3304において、ステップ3303で決定した位置Pと内部パラメタデータ241と外部パラメタ242とから、左面入力画像データ222上の対応する座標値を決定して、左面マップ画像データ612のn番目の画素の画素値として設定する。
以上の処理を終了した後、ステップ3305において処理すべき画素のシリアル番号であるnを1増やし、続いてステップ3306において、左面マップ画像データ612中のすべての画素について処理が終了したか否かを判定する。左面マップ画像データ612中のすべての画素について処理が終了している場合にはステップ3307に進んで左面マップ画像データ更新処理を終了し、未だ処理が終了していない画素が存在する場合にはステップ3302に進んで処理を続ける。
以上、本実施例によれば、実施例1のシステムに対して、より単純な処理の組み合わせによって中間データを更新することが可能である。
以下、図34と図35を用いて、第3の実施の形態について説明する。
本実施例は、実施例2に記載の例に対して、移動体の検出を行うことでデプス値の探索を効率的かつ頑健に行えるようにした例である。
なお本実施例におけるシステムでは、実施例2のシステム構成において、中間データ記憶部2360の代わりに、図34及び図35で説明するデータをさらに格納できるようにした中間データ記憶部3460を備えるように構成する。
図34は、本実施例のシステムにおける全体デプス画像データ更新処理のフローチャートである。図34において、図29と同じ符号は、図29と同じ処理を表す。
図34の全体デプス画像データ更新処理と、図29の全体デプス画像データ更新処理との違いは、ステップ3401、ステップ3402、ステップ3403、ステップ3404である。
ステップ3401の全体デプス画像データ複製処理は、全体デプス画像データ2361を複製して、複製全体デプス画像データ3410を生成する処理である。生成した複製全体デプス画像データ3410は、中間データ記憶部3460に格納する。全体デプス画像データ複製処理は、図35で説明するフロー優先デプス決定処理において、処理している画素位置以外の位置における全体デプス画像データ中の画素値が必要となるため、全体デプス画像データ2361が画素毎の処理によって更新されてしまう前に、あらかじめ前の時刻におけるデータを保存しておくための処理である。
ステップ3402のオプティカルフロー推定処理は、時刻(T−1)に撮影した画像データと、時刻Tに撮影した画像データとから、どの画素に写っていた被写体がどの画素に写るようになったかを推定する処理であり、公知の技術を用いて実施することが可能である。本実施例に適用する場合の具体的な入力データとしては、時刻(T−1)に撮影した画像データとして全体参照画像データ631を、時刻Tに撮影した画像データとして全体変換画像データ621を用いる。該オプティカルフロー推定処理の結果は、フローの信頼度と移動元の座標値との組を画素値として持つ、オプティカルフロー画像データ3420として、中間データ記憶部3460に記憶しておく。
ステップ3403では、オプティカルフロー画像データ3420の該当画素の画素値を読み込み、所定の閾値に基づいて、該画素のフローが信頼できるか否かを判定する。信頼できると判定した場合には、ステップ3404でフロー優先デプス決定処理を行い、信頼できないと判定した場合には、実施例2の場合と同様にステップ2902に進んで画素値優先デプス決定処理を行う。フロー優先デプス決定処理の詳細については、図35を用いて説明する。
図35は、本実施例のシステムにおけるフロー優先デプス決定処理のフローチャートである。
ステップ3500でフロー優先デプス決定処理が開始されると、まず、ステップ3501において移動元デプス値近傍探索処理を行う。移動元デプス値近傍探索処理とは、次のような処理である。
まず、オプティカルフロー画像データ3420から現在処理を行っている画素の移動元座標値を読み込む。次に、複製全体デプス画像データ3410の該移動元座標値に対応する画素値を読み込んで、移動元デプス値とする。その上で、所定の間隔と所定の適合率評価関数に基づいて、移動元デプス値とその前後のデプス値に対して適合率を算出し、デプス値と適合率の組を中間データ記憶部3460に格納する。
続いてステップ3502において、最適デプス値選択処理を行う。これは、ステップ3501において格納されたデプス値と適合率の組から、適合率がもっとも高い組を選択する処理である。このとき選択された組のデプス値をフロー最適デプス値3510、このとき選択された組の適合率をフロー最適適合率3511とする。
ステップ3503において、フロー最適適合率3511が適合率として十分か否かを、所定の閾値に基づいて判定する。
ステップ3503において適合率が十分であると判定された場合には、ステップ3504において、フロー最適デプス値3510を全体デプス画像データ2361の現在処理を行っている画素の画素値として書き込む。
ステップ3503において適合率が十分でないと判定された場合には、ステップ3505において候補付き画素値優先デプス決定処理を行う。候補付き画素値優先デプス決定処理とは、図30で説明した画素値優先デプス決定処理のステップ3004において、最適デプス値の選択肢として前記フロー最適デプス値3510を加え、選択の際の基準となる適合率としては前記フロー最適適合率3511を用いたものである。
以上の処理を終了した後、ステップ3506においてフロー優先デプス決定処理を終了する。
以上、本実施例によれば、実施例2に記載の例に対して、デプス値の探索を、より効率的かつ頑健に行うことができる。
以下、図36〜図39を用いて、第4の実施の形態について説明する。
本実施例は、実施例2に記載の例に対して、さらに、ユーザが指定した投影中心から撮影した画像データに擬似的に近くなるような出力画像データを生成するようにしたものである。これは例えば、遠隔会議システムなどにおいて、表示装置の画角に合わせて撮影した画像データを歪ませて表示するような場合に好適な例である。
図36は、本実施例のシステムのシステム構成図である。図36において、図23と同じ符号は、図23と同じものを表す。
本実施例の画像合成装置3600は、画像合成装置2300に対して、パラメタ記憶部3640を、所定の映像生成視点データ3645を格納できるように構成し、中間データ記憶部3660を、環境再構築データ3680を格納できるように構成した上で、画像合成処理の処理内容を変更した画像処理部3630を備えるように構成した。
映像生成視点データは、画像合成装置3600の出力画像データの生成方法を定義するデータである。投影中心位置を全体撮影装置201の投影中心位置に等しくとり、座標系に関しても全体撮影装置201の座標系と等しくとった場合の、投影方法や画角などのパラメタを格納する。
また、環境再構築データ3680は、本システムで撮影している空間領域の、どこにどのような色のものがあるかを表現したデータであり、具体的には、各頂点が3次元座標を有するような三角形メッシュデータと、各頂点の色情報とで構成したデータである。
環境再構築データ3680の生成方法に関しては図39を用いて、また、変更後の画像合成処理の処理内容に関しては、図37と図38を用いて説明する。
図37は、本実施例のシステムにおける画像合成処理のフローチャートである。図37において、図10と同じ符号は、図10と同じ処理を表す。
本実施例の画像合成処理は、図10で説明した画像合成処理に対して、合成画像データ出力処理1010の前に出力画像データ更新処理3701を加えただけのものである。出力画像データ更新処理3701の詳細は、図38を用いて説明する。
図38は、本実施例のシステムにおける出力画像データ更新処理のフローチャートである。
ステップ3800で出力画像データ更新処理が開始されると、ステップ3801において全体デプス画像データ2361を読み込み、続いてステップ3802において出力画像データ650を読み込む。
次に、ステップ3803において、全体デプス画像データ2361と出力画像データ650とに基づいて、環境再構築データ3680を生成する。環境再構築データ3680を生成するための具体的な処理については、図39を用いて説明する。
次に、ステップ3804において、映像生成視点データ3645を読み込む。
次に、ステップ3805において、出力画像データ650の再描画を行う。映像生成視点データ3645と環境再構築データ3680とから透視変換の原理によって出力画像データ650を生成しなおせばよく、公知の技術によって実施することができる。
以上の処理を終了した後、ステップ3806において、出力画像データ更新処理を終了する。
図39は、本実施例のシステムにおける環境再構築データの生成方法を説明するための図である。
環境再構築データ3680の各頂点には、出力画像データ650の各画素を割り当てる。各頂点の3次元座標値に関しては、出力パラメタデータ244と出力画像データ650の各々の画素位置とで規定される、投影中心位置を基点として画素位置方向を向くような3次元方向に関して、全体デプス画像データ2361上の対応する画素に格納されているデプス値に基づいて決定すればよい。また、三角形メッシュデータとするための頂点同士の繋ぎ方に関しては、図39に表されるように、各画素によって作られる単位格子に対して、対角線を挿入する向きをあらかじめ決めておき、その向きにしたがって規則的に繋いでいくことで実施すればよい。
具体的には、頂点間を正方格子状に繋いだ上で、頂点3900、頂点3901、頂点3902、頂点3903に対して、頂点3900と頂点3903、あるいは、頂点3901と頂点3902、のいずれを繋ぐかの規則を決めておき、該規則にしたがって規則的に繋いでいく。図39は頂点3900と頂点3903とを対角線3910によって繋いだ例である。なお、各頂点の色情報に関しては、出力画像データ650の該当画素の画素値をそのまま使用すればよい。
以上、本実施例によれば、見え隠れの違いや指向性を持つ光学特性に関する違いはあるものの、実施例2に記載の例に対して、さらに、ユーザが指定した投影中心から撮影した画像データに擬似的に近くなるような出力画像データを生成することができる。
なお、本実施例と公知技術との違いは、複数の撮影装置の投影中心が異なることによる画質の劣化は発生していない点である。
以下、図40〜図44を用いて、第5の実施の形態について説明する。
本実施例は、実施例1に記載の例に対して、さらに、左面撮影装置と右面撮影装置の撮影範囲が重複することができるようにした例であり、出力画像データ中の広い領域を高精細な画像データを接続して表現する場合に適した例である。
図40は、本実施例のシステムにおける各撮影装置の撮影範囲と出力画像の生成範囲との関係を表す図である。
図40において、撮影範囲4000は全体撮影装置201の撮影範囲であり、撮影範囲4010は左面撮影装置202の撮影範囲であり、撮影範囲4011は右面撮影装置203の撮影範囲である。また、出力画像生成範囲4020は出力画像の生成範囲である。図40は、本実施の形態を適用する場合の条件について説明するためのものであり、各々の範囲の実際の形状は図40に記載のものと大きく異なっていてもよい。
本実施例は、撮影範囲4000が出力画像生成範囲4020を含んでいる場合について適用するに好適な例である。撮影範囲4010と撮影範囲4011とに共通して含まれる範囲がある場合でも対応が可能であるようにした例ではあるが、撮影範囲4010と撮影範囲4011とに共通して含まれる範囲が存在することは、必ずしも本実施の形態に必要な条件ではない。
図41は、本実施例のシステムにおける合成マップ画像データ616の画素値のデータ形式を説明する図である。
本実施例においては、データ形式720の代わりに、データ形式4120を用いる。データ形式4120は、全体サンプリング用データ4100と、左面サンプリング用データ4101と、右面サンプリング用データ4012とで構成したものである。
全体サンプリング用データ4100は、重み値WTと、参照元X座標地XTと、参照元Y座標値YTとで構成する。重み値WTと参照元X座標値XTと参照元Y座標値YTはいずれも実数値であり、参照元X座標地XTと参照元Y座標値YTは全体入力画像データ221上の座標値を表す。
同様に、左面サンプリング用データ4101は、重み値WLと、参照元X座標値XLと、参照元Y座標値YLとで構成する。重み値WLと参照元X座標値XLと参照元Y座標値YLはいずれも実数値であり、参照元X座標値XLと参照元Y座標値YLは左面入力画像データ222上の座標値を表す。
同様に、右面サンプリング用データ4102は、重み値WRと、参照元X座標値XRと、参照元Y座標値YRとで構成する。重み値WRと参照元X座標値XRと参照元Y座標値YRはいずれも実数値であり、参照元X座標値XRと参照元Y座標値YRは右面入力画像データ223上の座標値を表す。
図42は、本実施例のシステムにおける重み値の算出方法を説明するための図である。
図42を用いて、参照元座標値が入力画像データ4210の座標値4220である場合の重みの算出方法を説明する。まず、X方向の算出基準距離DXを算出する。これは、図42のX方向距離DX1とX方向距離DX2のうち小さい方の値である。次に、同様に、Y方向の算出基準距離DYを算出する。すなわち、図42のY方向距離DY1とY方向距離DY2のうち小さい方の値とする。X方向の算出基準距離DX及びY方向の算出基準距離DYを算出した上で、重み値WをDXとDYの積として決定する。
図43は、本実施例のシステムにおける採用画素決定処理のフローチャートである。
ステップ4300で採用画素決定処理が開始されると、まず、ステップ4301においてWTとWLとWRの値を初期化する。具体的には、「WT=1」とし、WLとWRの値に関しては、合成マップ画像データ616に格納されている参照元X座標値と参照元Y座標値とに基づいて、図42で説明した方法によって初期化する。
次に、ステップ4302において、所定の閾値に基づいて、VTとVLの差が許容範囲内か否かを判定し、許容範囲外と判定された場合には、ステップ4303においてWLの値を0とする。
次に、ステップ4304において、所定の閾値に基づいて、VTとVRの差が許容範囲内か否かを判定し、許容範囲外と判定された場合には、ステップ4305においてWRの値を0とする。
次に、ステップ4306において、「WL+WR>0」、すなわち、WLとWRの値の少なくとも一方は0でないか否かを判定する。WLとWRの値の少なくとも一方が0でない場合には、ステップ4307でWTの値を0とする。
続いて、ステップ4308でWTとWLとWRの値を正規化する処理を行う。具体的には、WTとWLとWRのそれぞれを、それらの値の総和(WT+WL+WR)で割ることにより、WTとWLとWRの値の和が1となるようにする。
以上の処理が終了した後、ステップ4309において採用画素決定処理を終了する。
図44は、本実施例のシステムにおける出力画像データ生成処理のフローチャートである。
ステップ4400で出力画像データ生成処理が開始されると、まず、ステップ4401において、処理すべき画素のシリアル番号であるnを0に初期化する。
次に、ステップ4402において、合成マップ画像データ616からn番目の画素の画素値を読み込む。
次に、ステップ4403において、ステップ4402で読み込んだデータに基づいて、各入力画像データの画素値の重み付きの和を取ることにより、出力画像データ650のn番目の画素の画素値を決定する。
次に、ステップ4404において処理すべき画素のシリアル番号であるnを1増やし、続いてステップ4405において、出力画像データ650中のすべての画素について処理が終了したか否かを判定する。出力画像データ650中のすべての画素について処理が終了している場合にはステップ4406に進んで出力画像データ生成処理を終了し、未だ処理が終了していない画素が存在する場合にはステップ4402に進んで処理を続ける。
以上、本実施例によれば、実施例1に記載の例に対して、さらに、左面撮影装置と右面撮影装置の撮影範囲が重複する場合にも、適用することができる。
以下、図45〜図49を用いて、第6の実施の形態について説明する。
本実施例は、実施例5に記載の例に対して、さらに、全体撮影装置の撮影範囲に課する条件を、左面撮影装置と右面撮影装置が重複して撮影している領域だけを含んでいればよい、という条件に緩めた例であり、遠隔会議システムなどで広視野角の映像を得たい場合に好適な例である。
図45は本実施例のシステムにおける各撮影装置の撮影範囲を説明するための状況説明図である。図45において、図8と同じ符号は、図8と同じものを表す。
本実施例は、図8の場合と異なり、図45にあるように、全体撮影装置201の画角が十分に広角ではなく、表示したい領域全体を表示するためには、左面撮影装置202が単独で撮影している領域、または、右面撮影装置203が単独で撮影している領域、が必要となる例である。
図46は本実施例のシステムにおける各撮影装置の撮影範囲と出力画像の生成範囲との関係を表す図である。
図46において、撮影範囲4600は全体撮影装置201の撮影範囲であり、撮影範囲4610は左面撮影装置202の撮影範囲であり、撮影範囲4611は右面撮影装置203の撮影範囲である。また、出力画像生成範囲4620は出力画像の生成範囲である。図46は、本実施の形態を適用する場合の条件について説明するためのものであり、各々の範囲の実際の形状は図46に記載のものと大きく異なっていてもよい。
本実施例は、出力画像生成範囲4620の一部が撮影範囲4600の外側にはみ出している場合について適用するに好適な例である。撮影範囲4610と撮影範囲4611とに共通して含まれる範囲がある場合でも対応が可能であるようにした例ではあるが、撮影範囲4610と撮影範囲4611とに共通して含まれる範囲が存在することは、必ずしも本実施の形態に必要な条件ではない。
本実施例の適用に関しては、出力画像生成範囲4620の全体が撮影範囲4600と撮影範囲4610と撮影範囲4611の和集合に含まれることが必要条件となる。また、撮影範囲4610と撮影範囲4611と出力画像生成範囲4620とに共通して含まれる範囲が存在する場合には、該範囲を撮影範囲4600が含んでいることが望ましい。
図47は本実施例のシステムにおいて被写体位置による不整合の発生の仕方の違いを説明するための図である。
図47において、視点位置4700は全体撮影装置201が画像データを生成する際の投影中心となる位置、すなわち、出力画像データ生成時の投影中心となる位置であり、視点位置4710は左面撮影装置202が画像データを生成する際の投影中心となる位置であり、視点位置4711は右面撮影装置203が画像データを生成する際の投影中心となる位置である。
被写体4730と被写体4731は、視点位置4700を中心とする円4720上に乗っている被写体、すなわち、視点位置4700に関して等距離にある被写体である。この2つの被写体に対して、視点位置4710から見た場合と視点位置4711から見た場合の見える方向の差は、被写体4730に関しては角度4740となり、被写体4731に関しては角度4741となる。ここで、角度4740の方が角度4741よりも大きいことは明らかである。
この例から、本撮影システムの撮影領域の中央部に比べ、周辺部の方が不整合が目立ちにくいということが言える。本実施例は、この性質を利用し、中央部に関しては1つの撮影装置で撮影した画像データと整合性のある画像データを生成し、周辺部に関しては、中央部と滑らかに繋がるように別の撮影装置で撮影した画像データを接続しようというものである。本実施例においては、本質的に、1つの撮影装置で撮影した画像データと整合する画像データを撮像することは不可能であるが、そのような画像データに比べて見た目では遜色のない出力画像データを生成する。
図48は本実施例のシステムにおける採用画素決定処理のフローチャートである。図48において、図43と同じ符号は、図43と同じものを表す。
図48の採用画素決定処理において、図43の採用画素決定処理と異なるのは、ステップ4801と、ステップ4802と、ステップ4803と、ステップ4804である。以下、これらのステップの詳細について説明する。
ステップ4801における初期化処理の違いは、WTの初期化処理である。図43のステップ4301で説明した初期化処理においては、「WT=1」となるように初期化を行ったが、本実施例のステップ4801においては、図49で説明するように参照元座標値に依存した初期化を行う。なお、WLとWRの初期化については、図43のステップ4301と同じ処理を行う。
ステップ4802は、図43のステップ4303に対応する処理である。図43のステップ4303においては、WLの値を0としていたが、本実施例のステップ4802においてはWLの値をW0とする。ここでW0は、WTが1である場合には結果に影響しないような非常に小さな数である。具体的には、出力画像データ650の画素値の取り得る範囲が0から255である場合には、例えばW0の値として1/512を採用すればよい。
これは、出力画像データ650の画素値が離散値であることを利用したものであり、このような処理とするのは、全体サンプリング用データ4100中の参照元座標値が全体入力画像データ221の端に近づくにしたがって、不整合が発生した場合においても、左面入力画像データ222または右面入力画像データ223の画素値を優先して出力画像データ650を生成するようにするためである。これにより、全体入力画像データ221に写っている領域から、全体入力画像データ221に写っておらず、したがって左面入力画像データ222または右面入力画像データ223の画素値のみから出力画像データ650の画素値を決定しなければならない領域に、滑らかに接続ができるようにする。
同様に、ステップ4803は、図43のステップ4305に対応する処理である。図43のステップ4305においては、WRの値を0としていたが、本実施例のステップ4803においてはWRの値をW0とする。
ステップ4804は、図43のステップ4306に対応する処理である。図43のステップ4306においては「WL+WR>0」か否かの判定を行っていたが、本実施例のステップ4804では「WL+WR≧1」か否かの判定を行う。これは、全体参照画像データ631の画素値と左面参照画像データ632の画素値、あるいは、全体参照画像データ631の画素値と右面参照画像データ633の画素値との間で、整合性がある場合にのみWT=0とし、その他の場合には、全体入力画像データ221の画素値と左面入力画像データ222の画素値と右面入力画像データ223の画素値とを重みを考慮してブレンドすることによって出力画像データ650の画素値を決定するようにするためである。
図49は本実施例のシステムにおける全体サンプリング用データ4100の重み値の決定方法を説明するための図である。図49において、図46と同じ符号は、図46と同じものを表す。
WTの初期値は、少なくとも撮影範囲4610と撮影範囲4611と出力画像生成範囲4620とに共通して含まれる範囲においては「WT=1」とし、そこから撮影範囲4600の境界に近づくにしたがって「WT=0」となるように連続に変化させる。
具体的には、図49の断面4900におけるWTの初期値を決定するための関数として、関数4910を用いる。関数4910は、撮影範囲4610と撮影範囲4611と出力画像生成範囲4620とに共通して含まれる範囲を包含する領域4921では「WT=1」であり、それ以外の領域となる領域4920及び領域4022では撮影範囲4600の境界に近づくにしたがって「WT=0」となるような連続関数である。
以上、本実施例によれば、実施例5に記載の例に対して、さらに、全体撮影装置の撮影範囲に課する条件を、左面撮影装置と右面撮影装置が重複して撮影している領域だけを含んでいればよい、という条件に緩めた場合にも、適用することができる。
以下、図50〜図55を用いて、第7の実施の形態について説明する。
本実施例は、実施例2に記載の例に対して、さらに、全体撮影装置以外の撮影装置の焦点距離や姿勢の変更ができるようにした例である。これは例えば、遠隔会議システムにおいて、音声認識等によって発言者の位置が特定できる場合に、該発言者が中央に写るように姿勢を制御した上で、該発言者をズームアップして撮影し、該発言者の表情までを細やかに表現する、といったアプリケーションに適用するのに好適な例である。
図50は本実施例のシステムのシステム構成図である。図50において、図23と同じ符号は、図23と同じものを表す。
本実施例においては、左面撮影装置5020は、姿勢制御部5021と画角制御部5022とを備え、左面撮影装置202の機能に加え、撮影装置制御装置5010からの制御信号によって撮影姿勢及び撮影画角(あるいは焦点距離)を変更する機能を備える。同様に、右面撮影装置5030は、姿勢制御部5031と画角制御部5032とを備え、左面撮影装置203の機能に加え、撮影装置制御装置5010からの制御信号によって撮影姿勢及び撮影画角を変更する機能を備える。
撮影装置制御装置5010は、外部からの制御信号によって左面撮影装置5020及び右面撮影装置5030の撮影姿勢や撮影画角を制御し、変更後の左面撮影装置5020及び右面撮影装置5030の撮影姿勢や撮影画角の情報を、画像合成装置5000に送信する機能を持つ。
本実施例における画像合成装置5000は、全体制御部5080を、全体入力状態フラグ281、左面入力状態フラグ282、右面入力状態フラグ283、状態モードフラグ284、デフォルト画像データ285、に加え、動的内部パラメタデータ5081及び動的外部パラメタデータ5082を格納できるように構成し、撮影装置制御装置501より送信された、左面撮影装置5020及び右面撮影装置5030の撮影画角の情報を動的内部パラメタデータ5081に、撮影姿勢の情報を動的外部パラメタデータ5082に、それぞれ格納するように構成する。
また、画像処理部5040は、画像処理部2330に対して、図53を用いて説明する左面中間データ更新処理と、それに対応する右面中間データ更新処理とをさらに処理できるように構成し、また、中間データ更新処理5101の処理内容の一部を変更したものである。具体的には、採用画素決定処理を図54を用いて説明するものに変更し、また、出力画像データ生成処理2007の終了後に、図55を用いて説明する出力画像データ更新処理を実行するようにした。
図51は、本実施例のシステムにおける画像合成処理のフローチャートである。図51において、図10と同じ符号は、図10と同じ処理を表す。
ステップ5101の中間データ更新処理は、図28で説明した中間データ更新処理に対して、採用画素決定処理を図54を用いて説明するものに変更し、また、出力画像データ生成処理2007の終了後に、図55を用いて説明する出力画像データ更新処理を実行するようにしたものである。
また、ステップ5102の撮影パラメタ変更関連処理の詳細については、図52を用いて説明する。
図52は、本実施例のシステムにおける撮影パラメタ変更関連処理のフローチャートである。
ステップ5200で撮影パラメタ変更関連処理が開始されると、まず、ステップ5201において、左面撮影装置5020の撮影パラメタの変更が完了したか否かを判定する。このとき、左面撮影装置5020の撮影パラメタが変化していない場合には「否」であると判定する。
ステップ5201において左面撮影装置5020の撮影パラメタの変更が完了したと判定された場合には、ステップ5202において左面中間データ更新処理を行う。左面中間データ更新処理の詳細については、図53を用いて説明する。
続いて、ステップ5203において、右面撮影装置5030の撮影パラメタの変更が完了したか否かを判定する。このとき、右面撮影装置5030の撮影パラメタが変化していない場合には「否」であると判定する。
ステップ5203において右面撮影装置5030の撮影パラメタの変更が完了したと判定された場合には、ステップ5204において右面中間データ更新処理を行う。右面中間データ更新処理は、ステップ5202における左面中間データ更新処理と同様の処理によって実施することができる。
以上の処理を終了後、ステップ5205において、撮影パラメタ変更関連処理を終了する。
図53は、本実施例のシステムにおける左面中間データ更新処理のフローチャートである。
ステップ5300で左面中間データ更新処理が開始されると、まず、ステップ5301において内部パラメタデータ241と外部パラメタデータ242を読み込む。
次に、ステップ5302において、動的内部パラメタデータ5081及び動的外部パラメタデータ5082を読み込む。
次に、ステップ5303において、再マップ可能領域抽出処理を行う。これは、撮影パラメタの変更の前後で共通に撮影されている領域を出力画像データ650の座標上で抽出する処理であり、内部パラメタデータ241と外部パラメタデータ242と出力パラメタデータ244と動的内部パラメタデータ5081と動的外部パラメタデータ5082に基づいて算出されるものである。
次に、ステップ5304において、再マップ可能領域中の画素に関して、中間データ再マップ処理を行う。これは、内部パラメタデータ241と外部パラメタデータ242と出力パラメタデータ244と動的内部パラメタデータ5081と動的外部パラメタデータ5082とを使い、撮影パラメタの変更前の値に基づいてデプス画像データ2360とマップ画像データ610と参照画像データ630を更新する処理である。
次に、ステップ5305において、動的内部パラメタデータ5081で内部パラメタデータ241を更新し、続いてステップ5306において、動的外部パラメタデータ5082で外部パラメタデータ242を更新する。
次に、ステップ5307において、再マップ可能領域以外の領域に存在する画素に関して、中間データ生成処理を行う。これは、処理すべき画素が限定されていることを除いては、図24で説明した中間データ生成処理と同一の処理である。
以上の処理を終了後、ステップ5308において左面中間データ更新処理を終了する。
図54は、本実施例のシステムにおける採用画素決定処理のフローチャートである。
ステップ5400において採用画素決定処理が開始されると、まず、ステップ5401において左面撮影装置5020の撮影パラメタが変更中であるか否かを判定する。左面撮影装置5020の撮影パラメタが変更中でないと判定された場合には、ステップ5402においてVTとVLの差が許容範囲内にあるか否かを判定し、許容範囲内であると判定された場合には、ステップ5403に進み、合成マップ画像データ616のn番目の画素の画素値として、入力データ識別子721には「左面入力画像データ」を設定し、参照元X座標値722には左面マップ画像データ612のn番目の画素の画素値である参照元X座標値711を設定し、参照元Y座標値723には左面マップ画像データ612のn番目の画素の画素値である参照元Y座標値712を設定した後、ステップ5404に進んで採用画素決定処理を終了する。
ステップ5401において左面撮影装置5020の撮影パラメタが変更中であると判定された場合、あるいは、ステップ5402においてVTとVLの差が許容範囲内にないと判定された場合には、ステップ5405に進む。
ステップ5405では、右面撮影装置5030の撮影パラメタが変更中であるか否かを判定する。右面撮影装置5030の撮影パラメタが変更中でないと判定された場合には、ステップ5406においてVTとVRの差が許容範囲内にあるか否かを判定し、許容範囲内であると判定された場合には、ステップ5407に進み、合成マップ画像データ616のn番目の画素の画素値として、入力データ識別子721には「右面入力画像データ」を設定し、参照元X座標値722には右面マップ画像データ613のn番目の画素の画素値である参照元X座標値711を設定し、参照元Y座標値723には右面マップ画像データ613のn番目の画素の画素値である参照元Y座標値712を設定した後、ステップ5404に進んで採用画素決定処理を終了する。
ステップ5405において右面撮影装置5030の撮影パラメタが変更中であると判定された場合、あるいは、ステップ5406においてVTとVRの差が許容範囲内にないと判定された場合には、ステップ5408に進み、合成マップ画像データ616のn番目の画素の画素値として、入力データ識別子721には「全体入力画像データ」を設定し、参照元X座標値722には全体マップ画像データ611のn番目の画素の画素値である参照元X座標値711を設定し、参照元Y座標値723には全体マップ画像データ611のn番目の画素の画素値である参照元Y座標値712を設定した後、ステップ5404に進んで採用画素決定処理を終了する。
図55は、本実施例のシステムにおける出力画像データ更新処理のフローチャートである。出力画像データ更新処理は、左面撮影装置202や右面撮影装置203の撮影パラメタが変化している場合に、例えば、出力画像データ650中のどの部分をどの程度ズームアップしているのか、が分かるようにするための処理である。
ステップ5500で出力画像データ更新処理が開始されると、まず、ステップ5501において状態変化中撮影領域抽出用データを読み込む。状態変化中撮影領域抽出用データとは、具体的には、全体デプス画像データ2361と内部パラメタデータ241と外部パラメタデータ242と出力パラメタデータ244と動的内部パラメタデータ5081と動的外部パラメタデータ5082である。
次に、ステップ5502で、出力画像データ650を読み込む。
次に、ステップ5503で、出力画像データ650に、状態変化中撮影領域の境界線を描き込み、あらためて出力画像データ650として格納する。
以上の処理を終了後、ステップ5504において、出力画像データ更新処理を終了する。
以上、本実施例によれば、全体撮影装置以外の撮影装置の焦点距離や姿勢を変更し得る場合にも、適用することができる。
以下、図56〜図59を用いて、第8の実施の形態について説明する。
本実施例は、実施例5に記載の例に対して、さらに、映像中の背景領域に相当する部分のうち、動きの少ない領域を高精細に表示できるようにした例である。
図56は、本実施例のシステムのシステム構成図である。図56において、図2と同じ符号は、図2と同じものを表す。また、図56において、図6と同じ符号は、図6と同じものを表す。
本実施例の画像合成装置5600では、まず、実施例5の画像合成装置に対して採用画素決定処理と出力画像データ生成処理の処理内容を変更した画像処理部5630を備えるようにした。変更後の採用画素決定処理の処理内容に関しては図58を用いて、変更後の出力画像データ生成処理の処理内容に関しては図59を用いて、それぞれ説明する。
本実施例の画像合成装置5600では、さらに、中間データ記憶部5660を、変換画像データ620と参照画像データ630と変化画像データ640と出力画像データ650とに加えて、合成マップ画像データの画素値のデータ形式を図41において説明した形式からさらに変更したマップ画像データ5610と、高精細背景画像データ5690とを格納できるように構成した。新たに変更した合成マップ画像データの画素値の形式については、図57を用いて説明する。
高精細背景画像データ5690は、全体入力画像データ221より高品質な画像データとなるように、全体撮影装置201を用いて撮影したものである。
全体撮影装置201が特別な機能を備えていない場合には、例えば、撮影を複数回実施して、その平均を取った画像データを生成し、高精細背景画像データ5690として格納すればよい。この場合、時間平均の効果により、全体入力画像データ221に比べてノイズの少ない高品質な画像を得ることができる。
また、全体入力画像データ221が動画モードと静止画モードとの切替機能を備えている場合、一般には、静止画モードで撮影した方が高品質な画像データが撮影できるような仕組みとなっているため、該静止画モードで撮影した画像データを、そのまま高精細背景画像データ5690として格納してもよい。
また、全体撮影装置201に対して焦点距離の制御や撮影姿勢の制御などが可能である場合には、超解像と呼ばれる技術を用いた画像処理により高精細背景画像データ5690を生成して格納してもよい。
図57は、本実施例のシステムにおける合成マップ画像データ616の画素値のデータ形式を説明する図である。図57において、図41と同じ符号は、図41と同じものを表す。
本実施例においては、データ形式4120の代わりに、データ形式4120に高精細背景サンプリング用データ5700を加えた形式であるデータ形式5720を用いる。高精細背景サンプリング用データ5700は、重み値WHと、高精細背景画像データのX座標値XHと、高精細背景画像データのY座標値YHとで構成する。重み値WHとX座標値XHとY座標値YHは、いずれも実数値である。
ここで、X座標値XHとY座標値YHは、本実施例の撮像システムの撮影領域全体に渡って被写体が静止していると仮定した場合に、合成マップ画像データのすべての画素の画素値において「WT=1,WL=WR=WH=0」として図59で説明する出力画像データ生成処理を実行した場合と、合成マップ画像データのすべての画素の画素値において「WH=1,WT=WL=WR=0」として図59で説明する出力画像データ生成処理を実行した場合とで、出力される画像データが略一致するように、高精細背景画像データ5690の生成方法と出力パラメタデータ244とに基づいて、あらかじめ計算され格納される値である。
図58は、本実施例のシステムにおける採用画素決定処理のフローチャートである。
ステップ5800で採用画素決定処理が開始されると、まず、ステップ5801においてWTとWLとWRとWHの値を初期化する。具体的には、WTとWLとWRに関しては図43のステップ4301と同じ値で初期化を行い、WHに関しては1とする。
次にステップ5802のVL判定処理において、所定の閾値に基づいて、VTとVLの値の差が許容範囲内か否かを判定し、許容範囲外の場合にはWLの値を0とする処理を行う。
続いてステップ5803のVR判定処理において、所定の閾値に基づいて、VTとVRの値の差が許容範囲内か否かを判定し、許容範囲外の場合にはWRの値を0とする処理を行う。
続いて、ステップ5804において、「WL+WR>0」、すなわち、WLとWRの値の少なくとも一方は0でないか否かを判定する。WLとWRの値の少なくとも一方が0でない場合には、ステップ5805でWTとWHの値を0とした上でステップ5809へ進み、WLとWRの値の両方が0である場合には、そのままステップ5806へ進む。
ステップ5806では、所定の閾値に基づいて、VTとVHの値の差が許容範囲内か否かを判定する。ここで、VHは、合成マップ画像データ616のn番目の画素の画素値における高精細背景サンプリング用データ5700と高精細背景画像データ5690とから算出される値である。該判定結果が許容範囲内である場合にはステップ5807に進んでWTの値を0とし、許容範囲外である場合にはステップ5808に進んでWHの値を0とする。
続いて、ステップ5809でWTとWLとWRとWHの値を正規化する処理を行う。具体的には、WTとWLとWRとWHのそれぞれを、それらの値の総和(WT+WL+WR+WH)で割ることにより、WTとWLとWRとWHの値の和が1となるようにする。
以上の処理が終了した後、ステップ5810において採用画素決定処理を終了する。
図59は、本実施例のシステムにおける出力画像データ生成処理のフローチャートである。
ステップ5900で出力画像データ生成処理が開始されると、まず、ステップ5901において、処理すべき画素のシリアル番号であるnを0に初期化する。
次に、ステップ5902において、合成マップ画像データ616からn番目の画素の画素値を読み込む。
次に、ステップ5903において、ステップ5902で読み込んだデータに基づいて、高精細背景画像データ5690の画素値を含めた各入力画像データの画素値の重み付きの和を取ることにより、出力画像データ650のn番目の画素の画素値を決定する。
次に、ステップ5904において処理すべき画素のシリアル番号であるnを1増やし、続いてステップ5905において、出力画像データ650中のすべての画素について処理が終了したか否かを判定する。出力画像データ650中のすべての画素について処理が終了している場合にはステップ5906に進んで出力画像データ生成処理を終了し、未だ処理が終了していない画素が存在する場合にはステップ5902に進んで処理を続ける。
以上、本実施例によれば、実施例5に記載の例に対して、さらに、映像中の背景領域に相当する部分のうち、動きの少ない領域を高精細に表示することができる。また、高精細背景画像データ5690はあらかじめ生成しておくことの可能なデータであるため、遠隔会議システムなどのアプリケーションにおいて、ネットワークの負荷を増やすことなく、出力画像データの品質をよくすることができる。
なお、上記実施例においては、高精細背景画像データ5690は全体撮影装置201を用いて撮影するものとしたが、高精細背景画像データ5690の画素に対しても全体参照画像データ631との整合性判定を行っているため、実施の形態はこれに限るものではない。左面撮影装置202や右面撮影装置203を用いて撮影した画像データに対して内部パラメタデータや外部パラメタデータを考慮した幾何変換処理を施して生成してもよいし、新たに備えた別の撮影装置を用いて撮影した画像データに対して同様の幾何変換処理を施して生成してもよい。
なお、上記、実施例1から実施例8までの例においては、全体撮影装置1つとその他の撮影装置2つを備えた場合を例として実施の形態を説明してきたが、実施の形態はこれに限るものではなく、全体撮影装置1つに加えてその他の撮影装置を複数備えるような一般の構成に対して適用可能であることは明らかである。
効果を説明するための概念図である。
実施例1のシステムのシステム構成図である。
実施例1のシステムにおいて入力データ記憶部に格納するデータの説明図である。
実施例1のシステムにおいて全体制御部に格納するデータの説明図である。
実施例1のシステムにおいてパラメタ記憶部に格納するデータの説明図である。
実施例1のシステムにおいて中間データ記憶部に格納するデータの説明図である。
実施例1のシステムにおける各種マップ画像データの画素値のデータ形式を説明する図である。
実施例1のシステムにおける画像合成処理の動作を説明するための状況説明図である。
実施例1のシステムにおける画像合成処理の動作を説明するための概念図である。
実施例1のシステムにおける画像合成処理のフローチャートである。
実施例1のシステムにおける中間データ生成処理のフローチャートである。
実施例1のシステムにおけるマップ画像データ初期化処理のフローチャートである。
実施例1のシステムにおける全体変換画像データ生成処理のフローチャートである。
実施例1のシステムにおける左面マップ画像データ生成処理のフローチャートである。
実施例1のシステムにおけるマップ画像データの合成方法の説明図である。
実施例1のシステムにおける全体参照画像データ生成処理のフローチャートである。
実施例1のシステムにおける合成マップ画像データ生成処理のフローチャートである。
実施例1のシステムにおける採用画素決定処理のフローチャートである。
実施例1のシステムにおける出力画像データ生成処理のフローチャートである。
実施例1のシステムにおける中間データ更新処理のフローチャートである。
実施例1のシステムにおける全体変化画像データ生成処理のフローチャートである。
実施例1のシステムにおける左面マップ画像データ更新処理のフローチャートである。
実施例2のシステムのシステム構成図である。
実施例2のシステムにおける中間データ生成処理のフローチャートである。
実施例2のシステムにおけるデプス画像データ生成処理のフローチャートである。
実施例2のシステムにおける規定探索デプス集合データの構成方法を説明するための図である。
実施例2のシステムにおける左面マップ画像データ生成処理のフローチャートである。
実施例2のシステムにおける中間データ更新処理のフローチャートである。
実施例2のシステムにおける全体デプス画像データ更新処理のフローチャートである。
実施例2のシステムにおける画素値優先デプス決定処理のフローチャートである。
実施例2のシステムにおける臨時探索距離集合データ及び最大探索距離集合データの構成方法を説明するための図である。
実施例2のシステムにおける背景デプス画像データ更新処理のフローチャートである。
実施例2のシステムにおける左面マップ画像データ更新処理のフローチャートである。
実施例3のシステムにおける全体デプス画像データ更新処理のフローチャートである。
実施例3のシステムにおけるフロー優先デプス決定処理のフローチャートである。
実施例4のシステムのシステム構成図である。
実施例4のシステムにおける画像合成処理のフローチャートである。
実施例4のシステムにおける出力画像データ更新処理のフローチャートである。
実施例4のシステムにおける環境再構築データの生成方法を説明するための図である。
実施例5のシステムにおける各撮影装置の撮影範囲と出力画像の生成範囲との関係を表す図である。
実施例5のシステムにおける合成マップ画像データの画素値のデータ形式を説明する図である。
実施例5のシステムにおける重み値の算出方法を説明するための図である。
実施例5のシステムにおける採用画素決定処理のフローチャートである。
実施例5のシステムにおける出力画像データ生成処理のフローチャートである。
実施例6のシステムにおける各撮影装置の撮影範囲を説明するための状況説明図である。
実施例6のシステムにおける各撮影装置の撮影範囲と出力画像の生成範囲との関係を表す図である。
実施例6のシステムにおいて被写体位置による不整合の発生の仕方の違いを説明するための図である。
実施例6のシステムにおける採用画素決定処理のフローチャートである。
実施例6のシステムにおける全体サンプリング用データの重み値の決定方法を説明するための図である。
実施例7のシステムのシステム構成図である。
実施例7のシステムにおける画像合成処理のフローチャートである。
実施例7のシステムにおける撮影パラメタ変更関連処理のフローチャートである。
実施例7のシステムにおける左面中間データ更新処理のフローチャートである。
実施例7のシステムにおける採用画素決定処理のフローチャートである。
実施例7のシステムにおける出力画像データ更新処理のフローチャートである。
実施例8のシステムのシステム構成図である。
実施例8のシステムにおける合成マップ画像データの画素値のデータ形式を説明する図である。
実施例8のシステムにおける採用画素決定処理のフローチャートである。
実施例8のシステムにおける出力画像データ生成処理のフローチャートである。
ハードウェア構成図である。
符号の説明
110、120、130・・・入力画像データ、111・・・出力画像データ、910・・・時刻(T−1)における全体入力画像データ、920・・・時刻(T−1)における右面入力画像データ、911・・・時刻Tにおける全体入力画像データ、912・・・更新前の全体参照画像データ、913・・・全体変換画像データ、914・・・全体変化画像データ、915・・・更新後の全体参照画像データ、921・・・時刻Tにおける右面入力画像データ、922・・・更新前の右面参照画像データ、923・・・右面変換画像データ、924・・・右面変化画像データ、925・・・更新後の右面参照画像データ、2620、2621、3121・・・デプス集合データ、4000、4010、4011・・・撮影範囲、4020・・・出力範囲、4600、4610、4611・・・撮影範囲、4612・・・重複撮影範囲、4620・・・出力範囲、4700、4710、4711・・・投影中心位置、4730、4731・・・被写体位置、4910・・・WTの初期値を決定するための関数