(57)【要約】【課題】複数のイメージのつなぎ合わせの問題を緩和する方法を提供する。【解決手段】複数のイメージをつなぎ合わせて１つのパノラマを合成する際に隣接の２つのイメージの重複部分中で高コストのオブジェクトを検出し、オブジェクトを分割しないようにカットエッジを自動決定する。【選択図】　　　　図８
2004054928.tif 000002
【特許請求の範囲】
【請求項１】
イメージをパノラマへステッチングするシステムであって、
汎用計算デバイスと、
前記計算デバイスによって実行可能なプログラムモジュールを備えるコンピュータプログラムであって、前記コンピュータプログラムの前記プログラムモジュールによって前記計算デバイスに、
同じ場面の異なる部分を表す一連のイメージを入力し、
イメージの重複部分の区域を決定し、
前記重複部分の区域において高コストのオブジェクトを決定し、
高コストのオブジェクトに関連する画素に高コストを割り当て、
最も小さなコスト経路となる前記重複部分の領域中のカット経路を決定し、
前記カット経路を使用して前記イメージの重複部分の区域中で各イメージのどの区域をレンダリングするか決定するように命じるプログラムと、
を備えたことを特徴とするシステム。
【請求項２】
前記重複部分の区域中の、高コストのオブジェクトを決定するプログラムモジュールは、さらに、前記イメージの重複部分の区域中で顔を検知し、および高コストのオブジェクトとして検知されたいずれかの顔を指定するサブモジュールを備えたことを特徴とする請求項１記載のシステム。
【請求項３】
イメージをモザイクへステッチングするためのコンピュータ実行可能な命令を有するコンピュータ可読媒体であって、前記命令は、
同じ場面の異なる部分を表す一連のイメージを入力するモジュールと、
放射状のゆがみに対して前記イメージを修正するモジュールと、
前記イメージの各々を円筒座標系へマッピングするモジュールと、
隣接のイメージに対して各イメージを配列するモジュールと、
コンテキスト・特有・ステッチングを使用して前記イメージを前記モザイクへステッチングするモジュールと、
を備えたことを特徴とするコンピュータ可読媒体。
【請求項４】
前記イメージの各々をマッピングするためのモジュールは、
発光ダイオードを使用して前記イメージの各々において点をマークし、
取り込まれた前記イメージの中の対応を示す点を判定して前記イメージの中の対応画素を決定し、
前記対応を示す点を使用して前記イメージを前記円筒座標系にマッピングする、
サブモジュールを備えたことを特徴とする請求項３記載のコンピュータ可読媒体。
【請求項５】
前記隣接のイメージに対して各イメージを配列するためのモジュールは、
移動を使用して前記イメージを配列し、
スケーリングを使用して前記イメージを配列し、
回転を使用して前記イメージを配列する、
サブモジュールを備えたことを特徴とする請求項３記載のコンピュータ可読媒体。
【請求項６】
前記コンテキスト・特有・ステッチングモジュールは、
イメージの重複部分の区域を決定し、
前記重複部分の区域中での高コストのオブジェクトを決定し、
前記重複部分の区域中での高コストオブジェクトと関連する画素へ高コストを割り当て、
最も小さいコスト経路である、前記重複部分の領域中でのカット経路を決定し、
前記カット経路を使用して前記イメージの重複部分の区域中で各イメージのどの区域をレンダリングするか決定する、
サブモジュールを備えたことを特徴とする請求項３記載のコンピュータ可読媒体。
【請求項７】
前記カット経路を決定するサブモジュールは、Ｄｉｊｋｓｔｒａのアルゴリズムを使用して最も小さいコスト経路を決定し、および前記カット経路として前記最も小さいコスト経路を指定することを特徴とする請求項６記載のコンピュータ可読媒体。
【請求項８】
前記カット経路を一時的にフィルタリングし、その結果、前記カット経路は時間の関数と円滑に変更するサブモジュールをさらに備えたことを特徴とする請求項６記載のコンピュータ可読媒体。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、全方位カメラで使用するためのステッチング技術に関する。より詳細には、本発明が、同じ場面のうちの、異なっているが重複する部分を表す一連のイメージから生成される合成イメージの色均一性を改良するためのシステムおよび方法に関する。その上、それは、コンテキストに特有なイメージステッチングシステムおよび方法を含み、それらシステムおよび方法は、分野の知識（ｄｏｍａｉｎ　ｋｎｏｗｌｅｄｇｅ）を使用してイメージステッチングの質を改良する。
【０００２】
【従来技術】
イメージモザイクまたはパノラマを、単一のカメラから得られる入力イメージを並べることおよび“つなぎ合わせること”ステッチング（ｓｔｉｔｃｈｉｎｇ）により生成することができる。最適なパノラマのつなぎ合わせられたイメージを作成するために、幾つかのタイプのカラーキャリブレーションを考慮に入れる必要がある。露光、輝度、コントラストおよびホワイトバランスにおける違いにより、イメージ間で重大な不連続が生じる。単一のカメラからパノラマに対する入力イメージを得るとき、そのカメラを、全ての得られたイメージに対して、カラー設定を含むその同じ設定とできるだけ近くなるように調節する。それにも関わらず、イメージ間のカラーにおいてまだ時々違いがある。なぜならば、照明および他のコンディションは時間の経過によって変化するかも知れないし、および異なった角度または視点からのイメージを写真にするとき、設定の調整が必要であるかも知れないからである。その上、他の全てのコンディションを一定に保つときでさえ、設定を、偶然に、写真間で変えることができる。結果として、その入力イメージをお互いにつなぎ合わせるとき、そのイメージは、カラーレベルにおいて違いを示す。この違いは、合成イメージの中で、見る人に明瞭なステッチングのエッジまたは境界を作るからである。
【０００３】
複数のカメラを使用して入力イメージを得るとき、合成、モザイクイメージでの入力イメージ間の色の相違の問題はさらに増す。たとえば、複数のカメラを用い、パノラマビデオを生成する場合である。本質的に、パノラマビデオの作成は、場面を囲んでいる３６０度全体の視界を表す複数のビデオを得ることを意味する。続けて接するように配置した複数のカメラから成るカメラ装置を、これらビデオを取り込む目的で時々使用する。その同じ色設定を正確に有するために、この構成で使用される複数カメラの設定を調節することにおいては大きな困難がある。パラメータを同様に設定しても良いが、電荷結合素子（ＣＣＤ）、アナログデジタル（Ａ／Ｄ）変換器、および他のアナログコンポーネントにおける変化により、依然として、カメラ間で重大なイメージ変化を引き起こす。結果として、そのステッチングされた、またはモザイクの合成イメージは、しばしば、明瞭な“エッジ”を示すであろうし、そのエッジで、異なった入力イメージは、これらイメージの異なった色により重なり合う。
【０００４】
その上、コンピュータビジョンコミュニティ（ｃｏｍｐｕｔｅｒ　ｖｉｓｉｏｎ　ｃｏｍｍｕｎｉｔｙ）は、以前から、幾何学的なゆがみの説明において幾何学的なキャリブレーションの重要性を認識していた一方で、複数のカメラの放射計のキャリブレーション（ｒａｄｉｏｍｅｔｒｉｃ　ｃａｌｉｂｒａｔｉｏｎ）についての作業を制限してきた。最近、多くの研究が、幾何学的な登録（非特許文献３を参照）を志向して行われ、個々のイメージをステッチングすることによって生成されるパノラマをシームレスに見えるようにしている。幾つかの場合では、色の均一性を、上述したように、必ずしも正確とは限らないものとして許容する。その他は、急というよりはむしろゆっくりとした変化をさせるための技術を用いてきており、その技術はフェザリングまたは合成（非特許文献３を参照）として知られている。その上、ある調査を、題名が付けられたプロジェクタ（非特許文献２を参照）の中のおよび横切った光度測定の不均一性を分析、分類、修正するために行ってきている。放射計のキャリブレーションの分野で行われている研究は、主に、ノイズの推定およびモデリング（非特許文献５，４を参照）、または単一のカメラの自己キャリブレーションを扱ってきている。放射計のゆがみ、レンズの口径食の影響を、パノラマイメージに亘って一定強度を保証するために、考慮する必要がある。
【０００５】
前節の中で、本明細書の残りの部分と同様に、本記述は、１組の括弧内にある番号により示す種々の個々の出版物を参照していることに留意されたい。文献は、例えば、“文献１”または単に〔１〕、と引用することにより示す。各々の番号に対応する出版物のリストを、以下で見ることができる。
【０００６】
【非特許文献１】
Ｓ．Ｂ．Ｋａｎｇ，　Ｒ．Ｗｅｉｓｓ，　”Ｃａｎ　Ｗｅ　Ｃａｌｉｂｒａｔｅ　ａ　Ｃａｍｅｒａ　ｕｓｉｎｇ　ａｎ　Ｉｍａｇｅ　ｏｆ　ａ　Ｆｌａｔ，Ｔｅｘｔｕｒｅｌｅｓｓ　Ｌａｍｂｅｒｔｉａｎ　Ｓｕｒｆａｃｅ”，　ＥＣＣＶ，２０００．
【非特許文献２】
Ａ．Ｍａｊｕｍｄｅｒ，　Ｚ．Ｈｅ，　Ｈ．Ｔｏｗｌｅｓ，　Ｇ．Ｗｅｌｃｈ，　”Ａｃｈｉｅｖｉｎｇ　Ｃｏｌｏｒ　Ｕｎｉｆｏｒｍｉｔｙ　Ａｃｒｏｓｓ　Ｍｕｌｔｉ−Ｐｒｏｊｅｃｔｏｒ　Ｄｉｓｐｌａｙｓ”，　ＩＥＥＥ　Ｖｉｓｕａｌｉｚａｔｉｏｎ　２０００．
【非特許文献３】
Ｒ．Ｓｚｅｌｉｓｋｉ　ａｎｄ　Ｈ．Ｓｈｕｍ，　”Ｃｒｅａｔｉｎｇ　Ｆｕｌｌ　Ｖｉｅｗ　Ｐａｎｏｒａｍｉｃ　Ｉｍａｇｅ　Ｍｏｓａｉｃｓ　ａｎｄ　Ｅｎｖｉｒｏｎｍｅｎｔ　Ｍａｐｓ”，　Ｃｏｍｐｕｔｅｒ　Ｇｒａｐｈｉｃｓ（ＳＩＧＧＲＡＰＨ’９７），　ｐｐ．２５１−２５８，　１９９７．
【非特許文献４】
Ｇ．Ｋｅｍｂｅｒｏｖａ，　Ｒ．Ｂａｊｃｓｙ，　”Ｔｈｅ　Ｅｆｆｅｃｔ　ｏｆ　Ｒａｄｉｏｍｅｔｒｉｃ　Ｃｏｒｒｅｃｔｉｏｎ　ｏｎ　Ｍｕｌｔｉｃａｍｅｒａ　Ａｌｇｏｒｉｔｈｍｓ”　Ｔｅｃｈｎｉｃａｌ　Ｒｅｐｏｒｔ　ＭＳ−ＣＩＳ−９７−１７，１９９７．
【非特許文献５】
Ｅｄｉｔｅｄ　ｂｙ　Ｈ．Ｊｏｈｎ　Ｄｕｒｒｅｔｔ，　Ｉｎｔｅｒａｃｔｉｖｅ　Ｓｙｓｔｅｍｓ　Ｌａｂｏｒａｔｏｒｙ，　Ｓａｎ　Ｍａｒｃｏｓ，　Ｔｅｘａｓ，　Ｃｏｌｏｒ　ａｎｄ　Ｃｏｍｐｕｔｅｒ，　Ａｃａｄｅｍｉｃ　Ｐｒｅｓｓ，　ＩＮＣ，　１９８６．
【非特許文献６】
Ｒ．Ｓｚｅｌｉｓｋｉ．　Ｖｉｄｅｏ　Ｍｏｓａｉｃｓ　ｆｏｒ　Ｖｉｒｔｕａｌ　Ｅｎｖｉｒｏｎｍｅｎｔｓ，　ＩＥＥＥ　Ｇｒａｐｈｉｃｓ　ａｎｄ　Ａｐｐｌｉｃａｔｉｏｎｓ，　１６（２）：２２−３０，　Ｍａｒｃｈ　１９９６．
【非特許文献７】
Ｌｉ，　Ｚｈａｎｇ，Ｚｈａｎｇ．　”Ｒｅａｌ−Ｔｉｍｅ　Ｍｕｌｔｉ−ｖｉｅｗ　Ｆａｃｅ　Ｄｅｔｅｃｔｉｏｎ”，　Ｆａｃｅ　ａｎｄ　Ｇｅｓｔｕｒｅ　Ｒｅｃｏｇｎｉｔｉｏｎ，　２００２，　Ｗａｓｈｉｎｇｔｏｎ　Ｄ．Ｃ．
【０００７】
【発明が解決しようとする課題】
色の相違の問題に加えて、他の因子が、モザイクイメージの所望のシームレスさに影響する。例えば、カメラを上述したようにおよび図２に示すように続けて円形に並べるとき、各カメラの投影の中心部は、ＣＣＤと外のレンズとの間の点であり、この点の周りの回転により、結果的に、取り込んだイメージ上で純粋な回転変形が生じる（すなわち、運動視差を引き起こさない）。これら投影の中心部の間の距離をＤとする。Ｄがゼロの場合は、そのとき、イメージを一緒にステッチングすることは、比較的容易である。しかしながら、幾つかの最適なカメラ配置においては、Ｄはゼロよりも大きく、この結果により、取り込まれたイメージで運動視差が生じる。結果として、イメージをシームレスに一緒にステッチングするためには、カメラからステッチングされるオブジェクトまでの深さを知る必要がある。ステレオイメージ対を備えたオブジェクトの信頼できる深さを計算することは、非常に難しい問題であり、および、一般的に、（任意のオブジェクト、テクスチャ、照明等に関して）解決されていない。
【０００８】
【課題を解決するための手段】
本発明は、イメージのカラーキャリブレーションおよびイメージステッチングのためのシステムにおいて、前述の制限を克服するシステムおよび方法（プロセス）を志向する。
【０００９】
本発明によればカラーキャリブレーションの技術において、デジタルカメラの制御を使用して、開始のために色が類似する複数のイメージを取得する。オプション的に、標準の合成技術を適用して、シームレスなパノラマのイメージを共につなぎ合わせることができる。
【００１０】
一連のカメラのカラーキャリブレーションのこの一般的なプロセスを、以下に説明することができる。参照カメラを、一連のカメラから選択する。参照カメラの輝度、コントラストおよびホワイトバランスを最適条件に設定する。
【００１１】
これを行うために、その参照カメラに対する最適な輝度を計算する必要がある。たいていのデジタルカメラで使用されるセンサは、電荷結合素子（ＣＣＤ）または相補型金属酸化膜半導体（ＣＭＯＳ）である。一般的なＣＣＤ／ＣＭＯＳセンサは、黒の画素の領域を有する。センサのこの黒の領域を使用し、リアルタイムでカメラの輝度をキャリブレーションする。理想的な場合、カメラに絶対的な黒の場面を示し、および、ついで、輝度パラメータを調節し、そのイメージの平均の強度を“黒値（ｂｌａｃｋ　ｖａｌｕｅ）”（黒である基準）と呼ばれる値に達するようにする。その“黒値”を、経験的に、全ての輝度値を用いることによって決定することができ、そのイメージが最適になるまで続ける。しかしながら、黒値決定のより体系的な方法は、ＣＣＤまたはＣＭＯＳでの黒の参照領域画素の標準偏差の２倍に等しい輝度を選択すること、およびこの値にカメラの輝度を調節することである。輝度を調節するより好ましくない方法は、カメラのシャッタを閉じること（露光をゼロに設定すること）、および輝度を調節し、この状態で観測されたあらゆるイメージの平均を黒と規定された値に達するようにすることである。
【００１２】
一度、最適な輝度が調節されると、参照カメラのコントラストは調節される。これは、カメラのコントラストレジスタを（例えば、一般的に、飽和すること無しで、可能な限り明るい）ユーザが指定した値（ｕｓｅｒ−ｓｐｅｃｉｆｉｅｄ
ｖａｌｕｅ）へ設定することを含む。
【００１３】
ついで、ホワイトバランスを、また、最適条件に設定する。ホワイトバランスを、白色の物体の色が異なる照明条件の下でも、白色に見えることを保証するために実行する。参照カメラで最適なホワイトバランスを設定するために、赤および青のチャネル利得（ｃｈａｎｎｅｌ　ｇａｉｎ）を調節し、（灰色の世界の想定（ｇｒａｙ　ｗｏｒｌｄ　ａｓｓｕｍｐｔｉｏｎ）を用いて）場面の中で赤、緑および青の量を等しくなるようにする。ホワイトバランス調節の代替え方法は、ユーザが白色である区域を入力可能にすること、または白色の領域（例えば、白色の板）を自動的に検知可能にすることであり、および、ついで、赤および青のチャネル利得を調節することによって、赤、緑および青のイメージの内容を等しくすることである。
【００１４】
上記したように、コントラスト、輝度およびホワイトバランスをいずれの順でも実行することができることに留意されたい。
【００１５】
使用される一連のカメラの各カメラは、他の隣接のカメラに取り込まれたイメージの中において、ある重複する部分を有する。一度、前述のキャリブレーション動作を参照カメラに対して達成すると、これら最適な設定を、イメージの重複する部分領域に対して、参照カメラから他のカメラへ伝達する。つまり、それら最適な設定を、参照カメラ（例えば、第１カメラ）から隣接の第２カメラへ、第２カメラから隣接の第３カメラへ、第３カメラから隣接の第４カメラへなど、伝達し、それら設定を、それらカメラの全てを通して伝達するまで続ける。その基本的な考えは、重複する部分が同じホワイトバランス、輝度およびコントラスト特性を有するようにすることである。参照カメラのパラメータは、時間的に変化し、一連のカメラの中の別のカメラが参照カメラとして使用されるので、その伝達プロセスを連続的に繰り返す。
【００１６】
上述したカラーキャリブレーションの技術は、イメージをデジタル化する前に、リアルタイムで、イメージの色を修正するという点で有利である。つまり、アナログイメージは、デジタル化される前の、カメラのアナログフロントエンドによって修正された色である。さらに、その技術は、非常に小さな処理を必要とするので、イメージの色をキャリブレーションするには、コンピュータ処理ユニット（ＣＰＵ）（ｃｏｍｐｕｔｅｒ　ｐｒｏｃｅｓｓｉｎｇ　ｕｎｉｔ）を非常に小さくしなければならないという犠牲（ｃｏｓｔ）が必要である。ＣＰＵ処理を省くことの他に、より優れたイメージの質を達成することができる。なぜならば、信号を量子化する前に、イメージの色を修正するからである（すなわち、それらが合成および拡大する前に、誤差をそのプロセスの初期で修正する）。
【００１７】
口径食は、強度の放射状の低下であり、その強度の低下は、イメージの中心から離れるようである。上記で概説されたキャリブレーション技術を、また、選択的に使用し、この口径食効果に対して修正する。これを、修正マトリクスを決定することによって行い、その修正マトリクスを、そのとき、口径食に対して補償するために用いる。新しいイメージを、そのマトリクスの対応する修正要素で各画素を単に掛け合わせることによって修正する。つまり、全ての入ってくるイメージをこの修正マトリクスによって掛け合わせ、それによって、口径食効果を除去する。
【００１８】
ついで、コンテキスト・特有・ステッチングを、それらイメージを共につなぎ合わせるために用いる。このステッチングの方法は、シームレスに、特定の深さでイメージを共につなぎ合わせる。例えば、コンテキスト・検知・ステッチングのシステムおよびプロセスの、テストされた実施形態においては、会議テーブルのエッジによって規定された表面を使用した。キャリブレーションパターン（ＬＥＤの小さな配列）を、そのステッチング表面を規定するために用いる。より詳細には、それらＬＥＤを使用して、計算することが容易である、隣接のカメラによって取り込まれたイメージ間の対応を示す点を供給することによって、カメラ間のスケールおよび移動（ｔｒａｎｓｌａｔｉｏｎ）を決定する。ついで、これらのパラメータを使用して、マッピングテーブルを生成する。マッピングテーブルは、重複する領域において、あるカメラおよび隣接のカメラで取り込まれたイメージの間の対応画素をマッピングする。すなわち、そのテーブルは、あるカメラの画素およびその他のカメラの対応画素をリストアップしたテーブルである。対応の画素については毎回再計算する必要がないので、そのマッピングテーブルは、処理のスピードを上げる。キャリブレーションの結果は、イメージの再マッピングの機能であり、その機能は、カメラのイメージをパノラマへ再マッピングする。
【００１９】
コンテキスト・特有・ステッチングにおいて、一連のイメージを入力する。ついで、これらのイメージを、放射状のゆがみについて修正する。ついで、各イメージを、円筒座標系へマッピングする。ついで、各イメージの移動、回転およびスケーリングを使用して、各イメージをその隣接イメージに配列する。
【００２０】
イメージ・ステッチャは、２つの方法でカメラ間の重複部分を扱う。第１のおよび最も簡単な方法は、イメージを共に合成すること（クロスフェード（ｃｒｏｓｓ−ｆａｄｅ））であり、その結果、シャープな境界が明瞭でなくなる。この方法の主な問題点は、キャリブレーション面の近くになくおよびそれゆえに、正しくつなぎ合わされていないオブジェクトを合成すると、そのオブジェクトの“ゴースト”イメージを作成するということである。
【００２１】
第２の方法を、カメラ間に十分な重複部分が適切にあり、重要なオブジェクト（例えば、顔）が、完全に、双方のカメラの交わっているイメージの中にある場合、適用することができる。この場合、重複する部分を共に合成するよりむしろ、最小の誤差経路（ｅｒｒｏｒ　ｐａｔｈ）を使用して、（この経路に沿って、ほとんどまたはまったく合成しないで）それらイメージを共にはり合わせる。カット経路は、イメージ間の差を最小化する経路であり、および、ダイナミックプログラム（グラフで最小のコスト経路を探索するためのＤｉｊｋｓｔｒａのアルゴリズム）を用いることにより実行される。顔の検知情報が利用可能である場合、そのとき、顔の領域に、特別なコストを与え、２つのカメラ間で顔を分割する経路を阻止する。
【００２２】
【発明の実施の形態】
本発明の特定の特徴、態様、利点は、以下の説明、特許請求の範囲、および添付している図面に関してより良く理解されるであろう。
【００２３】
以下の本発明の好適な実施形態の説明において、添付している図面を参照する。および、本発明を、本発明を実施しても良い特定の実施形態を図示することによって示す。他の実施形態を利用しても良く、および構造的な変形を本発明の範囲から逸脱すること無しに行っても良い、ということは理解されよう。
【００２４】
例示的な動作環境
図１は、適切なコンピューティングシステム環境１００の一例を図示し、そのコンピューティングシステム環境１００上で、本発明を実施することができる。コンピュータシステム環境１００は、適切なコンピューティング環境のただの一例であり、本発明の使用または機能性の範囲についてあらゆる制限を示唆する意図はない。コンピュータ環境１００を、あらゆる依存、または例示的な動作環境１００に図示されたコンポーネントのあらゆる１つまたは組み合わせに関係している要求を有していると解釈するべきではない。
【００２５】
本発明は、多くの他の汎用、または特別な目的のコンピューティングシステム環境または構成で動作できる。本発明で使用するのに適切でありうる良く知られたコンピューティングシステム、環境、および／または配置の例は、パーソナルコンピュータ、サーバコンピュータ、ハンドヘルドまたはラップトップデバイス、マルチプロセッサシステム、マイクロプロセッサに基づいたシステム、セットトップボックス、プログラム可能な家電製品、ネットワークＰＣ、ミニコンピュータ、メインフレームコンピュータ、あらゆる上述したシステムまたはデバイスを含む分散コンピューティング環境、およびその同種、を含むが、それらに制限されない。
【００２６】
本発明を、コンピュータによって実行されるプログラムモジュールのような、一般的なコンピュータ実行可能な命令のコンテキストで記述しても良い。一般的に、プログラムモジュールは、ルーチン、プログラム、オブジェクト、コンポーネント、データ構造等を含み、特定のタスクを実行し、または特定の抽象データタイプを実装する。本発明を、また、分散コンピューティング環境で実施しても良く、その分散コンピューティング環境で、タスクを、通信ネットワークを通してリンクされるリモートプロセシングデバイスにより実行する。分散コンピューティング環境において、プログラムモジュールを、メモリストレージデバイスを含むローカル、およびリモートのコンピュータストレージ媒体双方に設置しても良い。
【００２７】
図１に関して、本発明の実施のための例示的なシステムは、コンピュータ１１０の形態での汎用コンピューティングデバイスを含む。コンピュータ１１０のコンポーネントは、処理ユニット１２０、システムメモリ１３０、処理ユニット１２０に対するシステムメモリを含む種々のシステムコンポーネントを結合するシステムバス１２１を含むが、それらに制限されない。システムバス１２１はあらゆるタイプのバス構造であっても良く、メモリバスまたはメモリコントローラ、周辺機器のバス、およびあらゆる種々のバスアーキテクチャを使用するローカルバスを含む。例示すると、およびそれに制限されないが、このようなアーキテクチャは、Ｉｎｄｕｓｔｒｙ　Ｓｔａｎｄａｒｄ　Ａｒｃｈｉｔｅｃｔｕｒｅ（ＩＳＡ）バス、Ｍｉｃｒｏ　Ｃｈａｎｎｅｌ　Ａｒｃｈｉｔｅｃｔｕｒｅ（ＭＣＡ）バス、Ｅｎｈａｎｃｅｄ　ＩＳＡ（ＥＩＳＡ）バス、Ｖｉｄｅｏ　Ｅｌｅｃｔｒｏｎｉｃｓ　Ｓｔａｎｄａｒｄｓ　Ａｓｓｏｃｉａｔｉｏｎ（ＶＥＳＡ）ローカルバス、およびまたメザニーンバスとしてよく知られたＰｅｒｉｐｈｅｒａｌ
Ｃｏｍｐｏｎｅｎｔ　Ｉｎｔｅｒｃｏｎｎｅｃｔ（ＰＣＩ）バスを含む。
【００２８】
コンピュータ１１０は、一般的に、種々のコンピュータ可読媒体を含む。コンピュータ可読媒体は、あらゆる利用可能な媒体にすることができ、その利用可能な媒体は、コンピュータ１１０によってアクセスされることができ、および揮発性および不揮発性媒体の双方、着脱可能および非着脱可能な媒体を含む。例示すると、およびそれに制限されないが、コンピュータ可読媒体は、コンピュータストレージ媒体および通信媒体を備えても良い。コンピュータストレージ媒体は、揮発性および不揮発性の双方、コンピュータ可読な命令、データ構造、プログラムモジュールまたは他のデータのような情報の記憶に対するあらゆる方法または技術で実装される着脱可能および非着脱可能な媒体を含む。コンピュータストレージ媒体は、ＲＡＭ、ＲＯＭ、ＥＥＰＲＯＭ、フラッシュメモリまたは他のメモリ科学技術、ＣＤ−ＲＯＭ，デジタル多用途ディスク（ＤＶＤ）または他の光ディスクストレージ、磁気カセット、磁気テープ、磁気ディスクストレージまたは他の磁気ストレージ、または所望の情報を記憶することに用いられることができ、およびコンピュータ１１０によってアクセスされることができるあらゆる他の媒体を含むが、それらに制限されない。通信媒体は、一般的に、コンピュータ可読な命令、データ構造、プログラムモジュールまたはキャリア波または他の輸送メカニズムのような調整されたデータ信号における他のデータ、を具体化し、およびあらゆる情報配信媒体を含む。“調整されたデータ信号”という用語は、その信号で情報を符号化するような方法で設定されまたは変更されたそれら特性のうちの１つまたは２つ以上を有する信号を意味する。例示すると、およびそれに制限されないが、通信媒体は、配線式ネットワークまたは直接の配線式接続のような配線式媒体、および音波、ラジオ周波数（ＲＦ）、赤外および他の無線媒体のような無線媒体を含む。上記のあらゆる組み合わせを、また、コンピュータ可読媒体の範囲内に含むべきである。
【００２９】
システムメモリ１３０は、読み取り専用メモリ（ＲＯＭ）１３１、およびランダムアクセスメモリ（ＲＡＭ）１３２のような揮発性および／または不揮発性メモリの形式のコンピュータストレージ媒体を含む。基本入力／出力システム１３３（ＢＩＯＳ）は、起動中のようなコンピュータ１１０内の要素間の情報を転送するのに役立つ基本ルーチンを含んでおり、一般的にＲＯＭ１３１内に格納されている。ＲＡＭ１３２は、一般的に、処理ユニット１２０によって、現在、作動されているデータおよび／またはプログラムモジュールおよび／またはやがてアクセス可能なデータおよび／またはプログラムモジュールを含む。図１は、オペレーティングシステム１３４、アプリケーションプログラム１３５、他のプログラムモジュール１３６、およびプログラムデータ１３７を図示する。
【００３０】
コンピュータ１１０は、また、他の着脱可能／非着脱可能、揮発性／不揮発性なコンピュータストレージ媒体を含む。例示のみすると、図１は、非着脱可能で、不揮発性な磁気媒体から読み取り、またはそこへ書き出すハードディスクドライブ１４１、着脱可能で、不揮発性な磁気ディスク１５２から読み取り、またはそこへ書き出す磁気ディスクドライブ１５１、およびＣＤ　ＲＯＭまたは他の光媒体のような着脱可能で、不揮発性な光ディスク１５６から読み出し、またはそこへ書き出す光ディスクドライブ１５５、を図示する。他の着脱可能／非着脱可能、揮発性／不揮発性なコンピュータストレージ媒体を例示的な動作環境において用いることができ、その他の着脱可能／非着脱可能、揮発性／不揮発性なコンピュータストレージ媒体は、磁気テープカセット、フラッシュメモリカード、デジタル多用途ディスク、デジタルビデオテープ、固体状態ＲＡＭ、固体状態ＲＯＭ、およびその同種を含むが、それらに制限されない。ハードディスクドライブ１４１を、一般的に、インターフェイス１４０のような非着脱可能なメモリインターフェイスを通してシステムバス１２１に接続し、および磁気ディスクドライブ１５１および光ディスクドライブ１５５を、一般に、インターフェイス１５０のような着脱可能なメモリインターフェイスによってシステムバス１２１に接続する。
【００３１】
それらドライブならびに上述されおよび図１に図示されたそれらの関係するコンピュータストレージ媒体は、コンピュータ可読な命令、データ構造、プログラムモジュールおよびコンピュータ１１０に対する他のデータのストレージを提供する。例えば、図１に、ハードディスクドライブ１４１を、オペレーティングシステム１４４、アプリケーションプログラム１４５、他のプログラムモジュール１４６、およびプログラムデータ１４７を格納するように図示する。これらコンポーネントは、オペレーティングシステム１３４、アプリケーションプログラム１３５、他のプログラムモジュール１３６、およびプログラムデータ１３７と同じか、または異なるか、のどちらかにすることができることに留意されたい。オペレーティングシステム１４４、アプリケーションプログラム１４５、他のプログラムモジュール１４６、およびプログラムデータ１４７に、ここで異なる数を与え、それらが異なった写しであることを、最小限で図示する。ユーザは、キーボード１６２、および一般にマウス、トラックボールまたはタッチパッドとして参照されるポインティングデバイス１６１のような入力デバイスを通して、コマンドおよび情報をコンピュータ１１０に入力しても良い。他の入力デバイス（図示しない）は、マイクロフォン、ジョイスティック、ゲームパッド、衛星放送アンテナ、スキャナ、あるいはその同種、を含んでも良い。これらおよび他の入力デバイスを、しばしば、システムバス１２１に結合されているユーザ入力インターフェイス１６０を通して処理ユニット１２０に接続しているが、パラレルポート、ゲームポートまたはユニバーサルシリアルバス（ＵＳＢ）のような他のインターフェイスおよびバス構造によって接続しても良い。モニタ１９１または他のタイプのディスプレイデバイスを、また、ビデオインターフェイスのようなインターフェイスによってシステムバス１２１に接続する。モニタに加えて、コンピュータは、スピーカ１９７およびプリンタ１９６のような他の周辺機器出力装置を含んでも良く、それらスピーカ１９７およびプリンタ１９６を、出力周辺機器インターフェイスを通して接続しても良い。本発明に対する特定の意義に関するもので、イメージ１９３のシーケンスを取り込むことができる（デジタル／電子スチルまたはビデオカメラ、またはフィルム／写真のスキャナのような）カメラ１９２を、また、パーソナルコンピュータ１１０に対する入力デバイスとして含むことができる。さらに、ちょうど１個のカメラを示す一方、複数のカメラを、パーソナルコンピュータ１１０に対する入力デバイスとして含むことができる。１つまたは２つ以上のカメラからイメージ１９３を、適切なカメラインターフェイス１９４によってコンピュータ１１０へ入力する。このインターフェイス１９４をシステムバス１２１に接続し、それによって、そのイメージをＲＡＭ１３２、またはコンピュータ１１０と関係を持った他のデータストレージデバイスのうちの１つへ転送し、および格納することを可能とする。しかしながら、イメージデータを、あらゆる前述のコンピュータ可読媒体からコンピュータ１１０へ入力することができ、なおその上にカメラ１９２の使用を必要としない、ということに留意されたい。
【００３２】
コンピュータ１１０は、リモートコンピュータ１８０のような１つまたは２つ以上のリモートコンピュータへの論理接続を用いるネットワーク環境で動作することができる。リモートコンピュータ１８０は、パーソナルコンピュータ、サーバ、ルータ、ネットワークＰＣ、ピアデバイスまたは他の一般のネットワークノードであっても良く、コンピュータ１１０に関して上述した要素のうちの多く、または全てを含んでもよいが、メモリストレージデバイス１８１のみを図１に図示している。図１に示された論理接続は、ローカルエリアネットワーク（ＬＡＮ）１７１、およびワイドエリアネットワーク（ＷＡＮ）１７３を含んでいるが、また、他のネットワークを含んでいても良い。このようなネットワークの環境は、オフィス、企業の広いコンピュータネットワーク、イントラネットおよびインターネットにおいてごく一般である。
【００３３】
ＬＡＮネットワークの環境で用いられるとき、コンピュータ１１０を、ネットワークインターフェイスまたはアダプタ１７０を通して、ＬＡＮ１７１へ接続する。ＷＡＮネットワークの環境で用いられるとき、コンピュータ１１０は、一般的に、モデム１７２またはインターネットのような、ＷＡＮに対して通信を確立するための他の手段を含む。内部または外部にあっても良いモデム１７２を、ユーザ入力インターフェイス１６０、または適切なメカニズムによってシステムバス１２１へ接続しても良い。ネットワーク化された環境において、コンピュータ１１０に関連して示されたプログラムモジュール、またはその部分を、リモートメモリストレージデバイスに格納しても良い。例示すると、およびそれに制限されないが、図１は、メモリデバイス１８１に存在するようなリモートアプリケーションプログラム１８５を示している。示されたネットワーク接続は例示的であり、およびコンピュータ間で通信リンクを確立する他の手段を用いても良い、ということを認識されたい。
【００３４】
次に、例示的な動作環境を説明しているが、この記述部の残りの部分で、本発明を具体化するプログラムモジュールを説明する。過去のイメージステッチングの方法の前述した問題点無しにモザイクイメージを作成するための全体的な技術を説明する。この技術は、カラーキャリブレーション、口径食除去およびコンテキスト・検知・ステッチングを使用して、シームレスなモザイクイメージを提供する。
【００３５】
カラーキャリブレーションシステムおよび方法
このセクションでは、本技術によるカラーキャリブレーションのシステムおよび方法を説明する。
【００３６】
カラーキャリブレーションのシステムおよび方法の背景および概要
背景
デジタルカメラは、光を電荷に変換するセンサ有する。たいていのデジタルカメラにより使用されるイメージセンサは、電荷結合素子（ＣＣＤ）である。ＣＣＤはごく小さい光検知ダイオードの集合体であり、そのダイオードは、フォトサイト（ｐｈｏｔｏｓｉｔｅ）と呼ばれ、フォトン（光）をエレクトロン（電荷）に変換する。各フォトサイトは、光を検知し、１つのフォトサイトに当たった光が明るいほど、その位置に蓄積する電荷は多くなる。イメージの中の各セルの蓄積された電荷をＣＣＤによって読み出し、それによって高品質、低ノイズのイメージを作成する。不運にも、各フォトサイトは、色の識別ができず、それは、その表面を直撃する光の全強度の足跡をたどり続けるからである。フルカラーのイメージを得るために、たいていのセンサは、光の３原色である、赤、緑および青の光を見出すためにフィルタリングを用いる。複数のカラーフィルタの出力が、現実的なカラーイメージを作成するために結合される。デジタルカメラによって得られるイメージで色を調節することは、一般に、輝度、コントラストおよびホワイトバランス設定を調節することによって行われる。
【００３７】
概要
図３に示すように、本技術による一連のカメラにおける色のキャリブレーションの一般的なプロセスを、次に示すように記述することができる。プロセスアクション３０２に示すように、参照カメラを一連のカメラから選ぶ。参照カメラを、輝度、コントラストおよびホワイトバランスを最適条件へと設定するために調節する。これを行うために、最適な輝度が計算され、および参照カメラに対して設定される（プロセスアクション３０４）。これを、一般的なデジタルカメラのＣＣＤ／ＣＭＯＳで規定される黒の参照画素を用いることによって行う。参照カメラに対する黒値を、黒の画素領域の２倍の標準偏差と等しい輝度を選択することによって決定する。その輝度を、その黒値と等しい黒の領域の平均を作るように調節する。輝度を調節するための代替え方法は、カメラのシャッタを閉じることであり（露光をゼロに設定すること）、ついで、あらゆる観測されたイメージの平均の輝度を作るために輝度を調節することにより、輝度は黒として規定された規定値になる。プロセスアクション３０６に示されるように、参照カメラの最適のコントラストもまた計算し、および設定する。これは、一般的に、平均輝度（例えば、飽和無しでできるだけ明るい）のユーザが指定した値へのカメラにおけるコントラストレジスタの設定を含む。ついで、参照カメラのホワイトバランスも、また、最適条件に設定する。ホワイトバランスを、白色の物体が異なった照明状態において白色を維持するために実行する。これを行うために、赤および青のチャネル利得を、（灰色の世界の想定を用いて）場面（シーン）の中で、赤、緑および青の構成要素の平均が等しくなるように調節する（プロセスアクション３０８）。参照カメラにおいてホワイトバランスを調節する代替え方法は、ユーザが白色である区域を入力可能にすること、または、自動的に、白色の物体または区域を検知することであり、および、ついで、赤および青のチャネル利得を調節することによって、赤、緑および青の内容を等しくさせることである。上述のようなコントラスト、輝度およびホワイトバランスを調節することを、いずれの順でも実行することができることに留意されたい。
【００３８】
使用される一連のカメラにおける各カメラは、他の隣接のカメラとのあるイメージの重複部分を有している。一度、参照カメラに対する最適な設定を得るために上述のキャリブレーション動作を達成すると、これら最適な設定を、プロセスアクション３１０に示すように、参照カメラからその他のカメラへ、重複部分の領域に対して、伝達する。すなわち、最適な設定を、参照カメラ（例えば、第１カメラ）から隣接の第２カメラへ、第２カメラから隣接の第３カメラへ、第３カメラから隣接の第４カメラ等へ伝達し、その設定を、それらカメラの全てを通して伝達するまで続ける。その基本的な考えは、同じホワイトバランス、輝度およびコントラスト特性を有する重複部分の領域を作ることである。参照カメラのパラメータは変化するにつれて、または他のカメラを参照カメラとすべきと決定される毎に、その伝達プロセスを連続的に繰り返す。
【００３９】
口径食は、強度の放射状の低下であり、その強度の低下は、イメージの中心から離れるようである。間もなく説明するように、上記で概説したカラーキャリブレーション技術は、また、任意に、この口径食効果に対して修正することができる。これを、口径食に対して補正するために用いられる総括的な修正マトリクスを定義することによって、行う。新しいイメージは、各画素を単に修正マトリクスの対応要素と掛けることによって、修正される。すなわち、全ての入ってくるイメージをこの修正マトリクスと掛け合わせ、それによって、口径食効果を除去する。
【００４０】
全体のキャリブレーションシステムおよび方法を、おおまかに記述してきたが、次節で詳細を提供する。
【００４１】
焦点の決定
複数のカメラはオートフォーカス機能を有するので、最適な焦点を決定する必要が無いと仮定する。しかしながら、テストされたバージョンでのように、それらカメラがオートフォーカス機能を有していない場合、以下の焦点機能を用いることができる。
【００４２】
焦点を合わせるための一般的なアプローチを用いる。そのアプローチで、イメージが最適な焦点であるとき最大値を示す大きさを規定する。本明細書で考慮されている焦点の大きさの幾つかの例は、１）画素値の相違、２）イメージ分布のエネルギーおよび３）フーリエ変換のフェーズの自己エントロピーである。本カラーキャリブレーション技術において、コントラストを、焦点の大きさとして選択してきた。焦点が合わされたカメラは、シャープなイメージを与え、したがって、その出力イメージは高いコントラストを有する。検査を、可能な焦点長の範囲を通して行い、および最も高いコントラストを作成する最適な位置を発見するとき、その焦点をこの焦点長に設定する。
【００４３】
用いられたイメージのコントラストの大きさは、画素の８つの隣接点との絶対的な差であり、その差を、そのイメージのうちの全てのサブイメージに渡って合計する。この焦点の大きさの明確な特徴は、それがシャープな、および最適の焦点の位置での良く規定されたピークを示し、ピンボケが増加するにつれてそれは単調に減少し、およびそれはイメージの中でノイズに強く、および、したがって、場面の中で小さな変化にはあまり敏感ではない。その大きさは単調に減少する事実により、最適な焦点を発見するための高機能な検査の手順の簡単な実施を可能にする。
【００４４】
その技術は、瞬間のコントラスト値、および焦点調節が進行している（焦点が合うまたは焦点がずれる）方向の双方を提供する。したがって、コントラストが最大になる点を捜すことができ、またはシステムを焦点が合っているモードから焦点がずれるモードへ移行する他の点を捜すことができ、その他の点は、最適の焦点に達した後のそのシステムが、ちょうどピンボケを始めているということを示している。これは、人間の裸眼を用いて焦点の状態を知ろうとするときに得られる主観的な大きさより、むしろ、客観的な焦点の大きさを提供する。焦点合わせを異なるカメラに対して実行する必要があるとき、焦点の主観的な大きさは、カメラと共に用いるには十分ではない。その有益を増すために、その技術は、利用者が焦点合わせのために用いられる関心ある領域を選択することを可能にする。
【００４５】
最適な輝度設定の決定
あらゆる与えられた点で観測された画素値Ｉ（ｘ、ｙ）と、輝度ｂと、コントラストｃと、およびＣＣＤ上の蓄積された電荷ｉ（ｘ、ｙ）との間の関係を次のように表現する。
Ｉ（ｘ、ｙ）＝ｂ＋ｃｉ（ｘ、ｙ）　　　　　　（１）
【００４６】
輝度パラメータｂは、各画素でその強度へ与えられたオフセットである。言い換えれば、カメラは“絶対的に黒い”物体と判断する場合、それはまだ絶対的なゼロ画素値を有さず、輝度の設定と等しいゼロではない値を有するであろう。したがって、輝度を調節することによって、黒い物体がイメージの中で現われるものを実際に調節している。理想的な場合に、カメラに絶対的な黒い場面を示すであろうし、および、ついで、平均強度を“黒値”（黒である基準）と呼ばれる値に達するように輝度パラメータを調節する。その“黒値”を、経験的に、イメージが最高な状態に見えるまで、全ての輝度値を用いることによって決定することができる。しかしながら、黒値を決定することのより体系的な方法は、ＣＣＤまたはＣＭＯＳで、黒の参照領域の画素の標準偏差の２倍に等しい輝度を選択することである。より非実用的であるにも関わらず、この作業（ｔａｓｋ）を達成する他の方法は、黒の場面をシミュレーションすることであり、そのシミュレーションによって、カメラの露光をゼロに設定し、および、ついで、イメージの平均が“黒値”へ達するようにするために輝度を調節する。
【００４７】
最適なコントラスト設定の決定
式（１）に示すようなコントラストパラメータｃは、入力画素値に提供される利得（ｇａｉｎ）を制御する。言い換えれば、それはその入力に適用されるスケール要素であり、輝度によるオフセットである前のものである。したがって、効果の中で、コントラストはそのイメージの平均強度を決定し、および、したがって、動的な範囲を決定する。本発明のカラーキャリブレーション技術は、ユーザが指定した値の“平均輝度”に近い平均を作るようにコントラストを調節する。本発明をテストした実施形態において、平均輝度に対するデフォルト値は１２７であった。そのデフォルト値は、画素値に最大の動的な範囲を与える。このパラメータは、あらゆる特別の応用の必要性に対処させるべく、利用者によって変更することができる。
【００４８】
最適なホワイトバランス設定の決定
ホワイトバランスを、異なる光源（例えば、太陽光、または白熱光）のもとで、白い１枚の紙、または他の白い物体と同種のものの色を維持するために行う。
【００４９】
ＲＢＧカメラの場合、そのカメラは、ホワイトバランスを実行するために赤および青の利得の制御を可能にし、その赤および青の利得は、赤および青のチャネルに適用される利得値である。したがって、これらの値を調節することによって、試行により、カメラの出力において、白い物体が白く見えるようにする。ユーザからのあらゆる入力無しで、ホワイトバランスを動的に実行することを可能にするために、灰色の世界の想定を用いる。その灰色の世界の想定状態は、色の変化が十分有する場面が与えられると、そのイメージの赤、緑、および青の構成要素の平均値を、共通のグレイ値（ｇｒａｙ　ｖａｌｕｅ）（すなわち、平均の（赤）構成要素＝平均の（青）構成要素＝平均の（緑）構成要素）にする。その灰色の世界の想定は、たいていの実際の生活場面に適用できる。したがって、ホワイトバランスを調節するために、灰色の世界の想定を用い、その場面での、緑の構成要素の平均値、青の構成要素の平均値、および赤の構成要素の平均値を、二つのパラメータを調節することによって、赤の利得および青の利得と等しくする。ホワイトバランスを実行することができる他の方法は、自動的に白色である区域を選択すること、またはユーザに選択させることである。パッチが２つのホワイトバランスパラメータ（赤の利得および青の利得）を調節することによって等しくなる赤、青および緑のコンテンツを作ることを試行する。ＲＧＢカメラについて説明したのと同様の手順を、ＵおよびＶパラメータを変更することによってＹＵＶカメラに対して用いることができる。
【００５０】
本発明の作動している実施形態においては、赤のおよび青の利得を、１３９４バスおよび１３９４カメラ規格を通じて利用できるカメラの制御コマンドを使用して調節する。場面において、青の平均がその場面の緑の平均よりも小さい場合、青の利得を増加させる。青の平均が緑の平均よりも大きい場合、そのとき、青の利得を減少させる。そのプロセスは、赤の利得に対しても同様である。ここで記述した手順は、検査のスピードを上げるために、ここで記述した線形検査（ｌｉｎｅａｒ　ｓｅａｒｃｈ）よりむしろ、２進法の検査（ｂｉｎａｒｙ　ｓｅａｒｃｈ）を用いることができる。
【００５１】
口径食
口径食は、強度の放射状の低下であり、その強度の低下は、イメージの中心から離れるようである。オブジェクトが光軸に対して正確に垂直で一様な輝度の平面である場合、そのイメージの照度を、そのイメージの中心から離れた距離で減少するように観測することができる。たいていの合成レンズにおいて、口径食は、また、アパチャサイズで増加する（非特許文献１を参照）。また、図４から、高い視界を備えたレンズはより強い口径食効果を示すことを見ることができる。
【００５２】
幾つかのカメラにおいて、口径食効果は、あらゆる軸周りで対称ではなく、およびその減少に合うパラメータの機能を発見することはできない。これを、ときどき、適切に中心にないレンズマウント、または他の製造のエラーに原因があると考えることができる。このような場合では、総括的な修正マトリクス（ｇｅｎｅｒｉｃ　ｃｏｒｒｅｃｔｉｏｎ　ｍａｔｒｉｘ）を、口径食に対する補正に用いることができる。このマトリクスを決定するために、一様に照らされた白色の表面Ｐの幾つかのイメージを獲得し、および平均する。その修正マトリクスの要素は、Ｃｉ、ｊ＝Ｐｃｘ、ｘｙ／Ｐｉ、ｊであり、ここで、Ｐｃｘ、ｘｙは、Ｐの中心での値である。新しいイメージを、Ｃに関する要素で単に掛け合わせることによって修正する。全ての入ってくるイメージをこの修正マトリクスで掛け合わせるフィルタを用い、それによって、口径食効果を除去する。
【００５３】
より詳細には、口径食除去のために用いられるプロセスを図５に示す。一様に照らされた白色の表面のうちの１つまたは２つ以上のイメージを入力する（プロセスアクション５０２）。これらのイメージは、好ましくは、予想された入力イメージと同じサイズである。ついで、その入力イメージの各画素の位置（ｕ、ｖ）について平均の画素輝度を決定することにより、その入力イメージの各画素に対してテーブルを作成する（プロセスアクション５０４）。ついで、修正マトリクスを、各画素の位置に対する平均の輝度の逆数を取ることによって作成する（プロセスアクション５０６）。ついで、各画素値を、対応する修正マトリクス要素によって掛け合わせ、後に入力される各イメージに対する口径食効果を除去させる（プロセスアクション５０８）。その修正マトリクスが、基本的に、利得値を、口径食を修正するべき各画素に提供するので、一様に照らされた表面はその結果である。
【００５４】
口径食に対して各入力イメージを修正することが可能であると同時に、それをあらゆるパノラマまたはモザイクへステッチングすることに留意されたい。これは確かであり、なぜならば、その入力イメージの座標を、グローバル座標に関して知っているからであり、および、したがって、各座標に適用した対応する利得値を適用し、入力イメージをパノラマへつなぎ合わせるとき、口径食に対して修正することができる。
【００５５】
パラメータの伝達
パノラマを、異なったカメラから得られたイメージから作る。したがって、それらカメラは、独立にカラーキャリブレーションをするばかりでなく、相互にもカラーキャリブレーションをするべきである。これは、それらの出力が似ており、およびそれらカメラに渡って放射計の均一性がある、ということを保証することである。あらゆるカメラを参照カメラとして選択し、その参照カメラを、動的に変更することができる。この参照カメラを、上記で触れた方法を用いてカラーキャリブレーションする。各カメラは、その隣接のカメラとのある重複部分を有する。その基本的な考えは、同じホワイトバランス、輝度およびコントラスト特性を有する、重複している領域を作ることである。したがって、ちょうどその重複している領域を用いることで、そのカメラの設定を隣接のカメラのために調節し、および、この変更を、その参照カメラの各面上の最後のカメラへのチェーン（ｃｈａｉｎ）に下って伝達する。その参照カメラが（たとえば、照明の変更、または物体の移動のために）それらのパラメータを変更し、または、その参照カメラ自身を変更しても良いので、これらプロセスを絶え間なく繰り返す。
【００５６】
ホワイトバランスの伝達
ホワイトバランスの伝達のために、現在キャリブレーションしているカメラのパラメータを、赤および緑の比率、および青および緑の比率を作るように調節し、それら比率を、その現在（ｃｕｒｒｅｎｔ）のカメラと参照カメラとの間の重複部分の領域に対して同じにする。その参照カメラにおいて、その現在のカメラ（すなわち、ホワイトバランスパラメータを設定しなければならないカメラ）と重複しているストリップに対して、赤、青および緑の構成部分の平均を計算する。調節されていないカメラに対して、赤および青の利得を調節する。場面で青の平均がその場面での緑の平均よりも小さい場合、その青の利得を増加させる。青の平均が緑の平均よりも大きい場合、その青の利得を減少させる。このプロセスを、青の平均と緑の平均との間の差の絶対値が規定された閾値よりも小さくなるまで繰り返す。そのプロセスは、赤の利得に対して同様である。ここで記述された手順は、検査のスピードを上げるために、ここで記述された線形検査よりむしろ、２進法の検査を用いることができる。緑の利得を、また、そのカメラのコントラストの設定を変更することによって調節することがきる、ということに留意されたい。しかしながら、これは、また、赤および青の利得を変更するであろうし、したがって、そのバランスをとるプロセスを困難にする。赤の緑への、および青の緑への比率を用いるホワイトバランスを伝達することは、コントラストが修正されてない場合でさえもホワイトバランスを調節することができるということにおいて有利である、ということに、さらに、留意されたい。
【００５７】
コントラストの伝達
コントラストの伝達のための基本的な考えは、ホワイトバランスの伝達に対するものと同じである。すなわち、現在のカメラに対してコントラストパラメータを調節することであり、現在のカメラおよび参照カメラの重複しているストリップでのコントラストを同じにする。コントラストに対して、その大きさは、その重複しているストリップの平均の強度である。参照カメラのストリップの平均の強度を計算し、ついで、次のカメラに対してコントラストを調節することによって、その対応しているストリップの平均強度を、参照カメラのそれと等しくなるようにする。
【００５８】
輝度の伝達
コントラスト、およびホワイトバランスに対する説明と同様に、輝度も、また、重複している領域に対する輝度を変更することによって修正することができる。すなわち、輝度パラメータを適切に変更し、イメージの平均がカメラ間での重複された領域で同じにするようにする。最適な輝度の設定を、参照カメラ（例えば、第１カメラ）から隣接の第２カメラへ、第２カメラから隣接の第３カメラへ、第３カメラから隣接の第４カメラへなど伝達し、それは、それら設定がそれらカメラの全てを通して伝達するまでつづく。しかしながら、全体のカメラ配列に対してこれらの設定のうちの１つでも伝達しないと決定する場合、各カメラがそれ自身のホワイトバランス、コントラストおよび輝度の設定をすることができる、ということに留意されたい。
【００５９】
カラーキャリブレーションの結果
図４は、各カメラをリング状に続けて配置した場所でのカラーキャリブレーションを実行する前のパノラマを示す。このイメージで、各カメラは、独立に、ホワイトバランス、コントラストおよび輝度の調節を実行する。図６は、口径食除去を含むここで議論したカラーキャリブレーション技術の使用後の同じカメラ装置のパノラマを示す。図６に示されたパノラマは、図４に対して大いに改善されている。
【００６０】
イメージのステッチングシステムおよび方法
概要
本発明による、コンテキスト・特有・イメージのステッチングシステムおよび方法は、特定の深さでシームレスに共にイメージをつなぎ合わせる。キャリブレーションパターン（ＬＥＤの小さな配列）を、ステッチングの表面を規定するために用いる。そのキャリブレーションの結果は、イメージの再配置機能であり、その機能は、カメラのイメージをパノラマへ再配置する。その再配置機能を最適化し、従来のＳＩＭＤ動作、および画素補間技術（ｐｉｘｅｌ　ｉｎｔｅｒｐｏｌａｔｉｏｎ　ｔｅｃｈｎｉｑｕｅｓ）（例えば、ニアレストネイバ（ｎｅａｒｅｓｔ　ｎｅｉｇｈｂｏｒ）、バイリニア（ｂｉｌｉｎｅａｒ）またはバイキュービック（ｂｉｃｕｂｉｃ））を用いる。
【００６１】
イメージ・ステッチャは、２つの方法でカメラ間の重複部分を扱うことができる。第１のおよび最も簡単な方法は、共にイメージを合成すること（クロスフェード）であり、その結果、シャープな境界線が明瞭でなくなる。この方法の主な問題点は、キャリブレーション面の近くになくおよびそれゆえに正しくつなぎ合わせていないオブジェクトを共に合成し、そのオブジェクトの“ゴースト”イメージを作成することである。
【００６２】
第２の方法を、カメラ間に十分な重複部分が適切にあり、重要なオブジェクト（例えば、顔）が、完全に、双方のカメラの交わっているイメージの中にある場合、適用することができる。この場合、重複している領域を共に合成することよりむしろ、最小の誤差経路を、（この経路に沿ってほとんど、またはまったく合成しないことで）共にそれらイメージを張り合わせるために用いる。カット経路は、それらイメージ間の差を最小化する経路であり、および動的なプログラム（グラフで最小のコスト経路を探索するためのＤｉｊｋｓｔｒａのアルゴリズム）用いることで実施される。顔の検知情報が利用可能である場合、そのとき、顔の領域に、特別なコストを与え、２つのカメラ間で顔を分割する経路を阻止する。
【００６３】
より詳細には、そのステッチングプロセスを図７に示す。同じ場面の異なる部分を表している一連のイメージを、入力する（プロセスアクション７０２）。ついで、これらのイメージを、放射状のゆがみに対して修正する（プロセスアクション７０４）。ついで、各イメージを、円筒座標系へマッピングする（プロセスアクション７０６）。ついで、各イメージの移動、回転およびスケーリングを、各イメージをその隣接イメージに対して配列するために用いる（プロセスアクション７０８）。この点で、重複している領域を、全てのイメージに対して合成し、またはフェザリングする（プロセスアクション７１０）。あるいは、コンテキスト・特有・ステッチングを、共にイメージをつなぎ合わせるために使用する（プロセスアクション７１２）。
【００６４】
放射状のゆがみに対する修正
幾何学的なゆがみは、光学部品に関する大きな問題である。画素を、厳しく、イメージのエッジに沿ってゆがめ、およびステッチングを実行するとき、これらは最も重要な画素である。そのゆがみの問題への一般的なアプローチは、レンズ系でゆがみをモデル化することであり、および得られたイメージにおいてそれらに対して修正することである。本ステッチングシステムおよび方法では、あらゆる従来の方法を、放射状のゆがみを修正するために用いることができる。
【００６５】
円筒座標系へのマッピング
一度、入力イメージを放射状のゆがみに対して修正する場合、そのイメージを、従来の方法によって、グローバル円筒座標系へマッピングする。つなぎ合わされた合成イメージを、一般的に、与えられた入力イメージの集合（ｓｅｔ）および関連した変形（ｔｒａｎｓｆｏｒｍａｔｉｏｎ）の集合によって表す。各変形は、入力イメージシーケンスの中の１つのイメージに対応し、各イメージの中のイメージ画素およびグローバル円筒座標系との間のマッピングを表す。非特許文献３を参照されたい。あらゆるグローバル座標系を、個々のイメージをパノラマへマッピングするために用いることができることに留意されたい。
【００６６】
パノラマまたはモザイクへのステッチングに対する配列のための各イメージの移動、回転およびスケーリング
ついで、それらイメージを、ある方向でそれらの隣接のイメージと共に配列する。これが、一般的に、問題を起こさないのは、各入力イメージでの全ての画素の座標を、その同じグローバル座標系と関係があると理解しているからである。ついで、グローバル座標系においてそれら画素の位置を使用しながら、重複部分の領域を各イメージに対して発見する。ついで、重複している領域のイメージ間の差を最小化しながら、中心のイメージの左および右のイメージをその中心のイメージの座標フレームに曲げる。これにより、左および中心のイメージでの対応する画素の位置、ならびに右および中心のイメージでの対応する画素の位置を、重複している区域に対して決定することが可能となる。この点で、入力イメージを、グローバル座標系を使用することによって、パノラマへつなぎ合わせるための準備ができる。
【００６７】
入力イメージのパノラマまたはモザイクへのステッチング
重複および非重複イメージ領域との間での推移の合成を用いるステッチング
イメージをパノラマへつなぎ合わせるとき、重複および非重複入力イメージ領域との間の推移を合成することによりモザイクされたイメージの均一性を改良することが可能であり、構成要素であるイメージのエッジを隠す。好適には、この合成を、非特許文献６に記述されるようなあらゆる従来のフェザリングアルゴリズムを用いることで達成することができる。このフェザリングアルゴリズムを用いると、各イメージの画素の輝度値に、重複している領域のエッジまでのそれらの距離に比例して、重みを付ける。これを、最終合成により貢献している各イメージの中心に近い画素との重みを付けられた平均を用いることによって行う。その重み付け関数は、イメージの双方のエッジでゼロになる簡単なバイリニア関数である。
【００６８】
コンテキスト・特有・ステッチング
カメラ間に十分な重複部分が適切にあり、重要なオブジェクト（例えば、顔）が、完全に、双方のカメラの交わっているイメージの中にある場合、共に重複している領域を合成するよりむしろ、Ｄｉｊｋｓｔｒａのアルゴリズムをカット経路の発見のために用いる。
【００６９】
Ｄｉｊｋｓｔｒａのアルゴリズム
Ｄｉｊｋｓｔｒａのアルゴリズムは、与えられた頂点（グラフの点またはノード）とグラフ中の他の全ての頂点（頂点の集合またはエッジの集合）との間の距離（コスト）を決定する。そのアルゴリズムは、特定の頂点で開始し、およびグラフ内で外側に向かって拡大し、全ての頂点に達するまで続く。Ｄｉｊｋｓｔｒａのアルゴリズムは、元の頂点から現在の頂点までの総コストを格納する。より簡単には、Ｄｉｊｋｓｔｒａのアルゴリズムは、最小のコストのエッジの合計を格納する。
【００７０】
カットのエッジ（辺）の決定
Ｄｉｊｋｓｔｒａのアルゴリズムを、コストを２つの隣接のイメージの重複している領域での各画素に割り当てるために用いる。ついで、その２つのイメージ間のカットエッジを、つなぎ合わせる区域の高さに関して全体のコストを最小化するような画素を通る経路を描くことにより決定する。最小のコストの線のような、それら２つのイメージ間のカットするエッジを設定することによって、例である顔のような高価値のオブジェクトは半分にカットされない。これはカットするエッジが顔の周りを回り、一方のイメージ中で顔に関連する全ての画素を維持させるからである。合成またはフェザリングはほとんどまたはまったく高コスト区域の周りで実行されない。例えば、高コストである区域で、カットする辺の周りの単に２つまたは３つの画素の幅でフェザリングがあっても良い。
【００７１】
より詳細には、図８に示されるように、一連のイメージを入力する（プロセスアクション８０２）。ついで、イメージの重複部分の領域を決定する（プロセスアクション８０４）。ついで、顔のような高コストオブジェクトを、間もなく説明されるように、決定し、および高コストを、これら高コストオブジェクトと関連した画素に割り当てる（プロセスアクション８０６）。ついで、垂直のカット経路を、Ｄｉｊｋｓｔｒａのアルゴリズムを用いる重複部分の領域で決定し、最も小さいコスト経路を決定する（プロセスアクション８０８）。そのカット経路を使用して、重複している区域中の各イメージのどの区域をレンダリングすべきかを決定する（プロセスアクション８１０）。オプションで、そのカット経路を、一時的にフィルタリングすることもでき、その結果、それ（カット経路）は、時間の関数として円滑に変化する（プロセスアクション８１２）。２つの似たカットがある場合、これにより、“フリッカ”を最小化することに役立つ。
【００７２】
イメージの重複部分の領域で顔を確認するための顔検知器（ｆａｃｅ　ｄｅｔｅｃｔｏｒ）の使用
顔の検知情報が利用可能である場合、そのとき、顔の領域に、特別なコストを与え、２つのカメラ間で顔を分割する経路を阻止する。多数の顔検知器のうちの任意の１つを使用して（指定して）、入力イメージの重複部分の領域中の顔を確認しても良い。好適な実施形態おいては、非特許文献７に記述された顔検知器を、顔を検知するために用いる。一度、それら顔を発見し、およびそれらの対応している画素を前に説明したグローバル円筒座標系で確認すると、高コストを、発見された各顔に関連したそれら画素の各々に割り当てる。高コストは各画素と関連しているので、隣接のイメージの重複している領域の間にカット線が配置され、したがって、それはあらゆる顔の画素の周辺回りとなる。
【００７３】
ステッチングの結果
テストされたカメラ装置の実施形態において、カメラの投影の中心の間の距離（Ｄ）を４５ｍｍと等しくしながら、もしも、ステッチング表面の２ｃｍ以内である場合、オブジェクトは、完全に、（カメラの分解能の限界内で）つなぎ合わせられる。他の実施形態では、Ｄ＝２３ｍｍで、もしも、ステッチング表面の５０ｃｍ以内である場合、オブジェクトを、完全に、つなぎ合わせられる。
【００７４】
本発明の上述の記述は、図示および説明の目的で与えられている。本発明を網羅的にすること、または本発明を開示された正確な形式に制限することは意図していない。前記の教示の下に多くの修正または変形が可能である。本発明の範囲を、この詳細な説明により制限せず、むしろ特許請求の範囲により制限することを意図している。
【図面の簡単な説明】
【図１】本発明の実施に対する例示的なシステムを構成する汎用コンピューティングデバイスを示す図である。
【図２】互いにリング状の形態で配置された複数のカメラ間の投影の中心部間の距離を示す図である。
【図３】本発明に従うシステムおよび方法による一連のカメラのカラーキャリブレーションの全体のプロセスを示すフローチャートである。
【図４】口径食効果を示すイメージを示す図である。
【図５】本発明に従うシステムおよび方法によるイメージの口径食除去のプロセスを示すフローチャートである。
【図６】口径食除去を含む本発明に従うシステムおよび方法のカラーキャリブレーションを適用した後の図４で示したパノラマを示す図である。
【図７】本発明に従うシステムおよび方法のステッチングプロセスを示すフローチャートである。
【図８】コンテキスト・検知・ステッチングの詳細を示すフローチャートである。
【符号の説明】
１２０　処理ユニット
１２１　システムバス
１３０　システムメモリ
１３１　ＲＯＭ
１３２　ＲＡＭ
１３３　ＢＩＯＳ
１３４、１４４　オペレーティングシステム
１３５、１４５　アプリケーションプログラム
１３６、１４６　他のプログラムモジュール
１３７、１４７　プログラムデータ
１４０　非着脱可能、不揮発性メモリインターフェイス
１５０　着脱可能、不揮発性メモリインターフェイス
１６０　ユーザ入力インターフェイス
１６１　マウス
１６２　キーボード
１７０　ネットワークインターフェイス
１７１　ローカルエリアネットワーク
１７２　モデム
１７３　ワイドエリアネットワーク
１８０　リモートコンピュータ
１８５　リモートアプリケーションプログラム
１９０　ビデオインターフェイス
１９１　モニタ
１９２　カメラ
１９４　カメラインターフェイス
１９５　出力周辺機器インターフェイス
１９６　プリンタ
１９７　スピーカ
【図１】
2004054928.tif 000003
【図２】
2004054928.tif 000004
【図３】
2004054928.tif 000005
【図４】
2004054928.tif 000006
【図５】
2004054928.tif 000007
【図６】
2004054928.tif 000008
【図７】
2004054928.tif 000009
【図８】
2004054928.tif 000010