(57)【特許請求の範囲】
【請求項１】
合成すべき複数の入力画像のそれぞれについて、入力画像とその縮小画像から構成される、入力画像を最高階層とする２階層以上のピラミッド型データ構造を構築する縮小処理ステップと、
前記縮小処理ステップにより構築された前記複数の入力画像に対応する各ピラミッド型データ構造の各階層の画像間の平行移動量を推定する処理を最低階層から最高階層へ向かって順に画像をブロック分割してブロック単位に行い、各階層の画像間の平行移動量の推定処理の結果を該階層より１つ上の階層の画像間の平行移動量の推定処理に利用し、最高階層の入力画像間の平行移動量の推定処理の結果から透視変換に対応する変形パラメータを推定する推定ステップと、
前記推定ステップにより推定された変形パラメータを用い透視変換に基づく変形を入力画像に施して合成する合成ステップとを有することを特徴とする画像合成処理方法。
【請求項２】
前記推定ステップにおいて、ピラミッド型データ構造の各階層の画像間の推定した平行移動量を、高い階層ほど自由度の高い変形モデルによる近似式で近似し、最低階層以外の各階層の画像間の平行移動量の推定を、その１つ下の階層の画像間の平行移動量の近似式で計算される位置を中心とした所定の範囲に関して行うことを特徴とする請求項１に記載の画像合成処理方法。
【請求項３】
前記推定ステップにおいて、変形パラメータの推定に線形最小２乗法を利用することを特徴とする請求項１又は２に記載の画像合成処理方法。
【請求項４】
前記推定ステップにおいて、平行移動量の推定に画像間の相関係数を利用することを特徴とする請求項１，２又は３に記載の画像合成処理方法。
【請求項５】
前記縮小処理ステップにおいて、縮小画像の各画素の画素値として、該各画素に対応する元画像の小領域内の画素値の最小値又は最大値を用いる縮小方法を選択できることを特徴とする請求項１乃至４のいずれか１項に記載の画像合成処理方法。
【請求項６】
前記縮小処理ステップにおいて、入力画像の画素値分布に基づいて画像の種類を推定し、推定した画像の種類が「白地に黒線が描かれた画像」又は「黒地に白線が描かれた画像」の場合に、縮小画像の各画素の画素値として、該各画素に対応する元画像の小領域内の画素値の最小値又は最大値を用いる縮小方法をそれぞれ選択することを特徴とする請求項１乃至４のいずれか１項に記載の画像合成処理方法。
【請求項７】
合成すべき複数の入力画像のそれぞれについて、入力画像とその縮小画像から構成される、入力画像を最高階層とする２階層以上のピラミッド型データ構造を構築する縮小処理手段と、
前記縮小処理手段により構築された前記複数の入力画像に対応する各ピラミッド型データ構造の各階層の画像間の平行移動量を推定する処理を最低階層から最高階層へ向かって順に画像をブロック分割してブロック単位に行い、各階層の画像間の平行移動量の推定処理の結果を該階層より１つ上の階層の画像間の平行移動量の推定処理に利用し、最高階層の入力画像間の平行移動量の推定処理の結果から透視変換に対応する変形パラメータを推定する推定手段と、
前記推定手段により推定された変形パラメータを用い透視変換に基づく変形を入力画像に施して合成する合成手段とを有することを特徴とする画像合成処理装置。
【請求項８】
前記推定手段は、ピラミッド型データ構造の各階層の画像間の推定した平行移動量を、高い階層ほど自由度の高い変形モデルによる近似式で近似し、最低階層以外の各階層の画像間の平行移動量の推定を、その１つ下の階層の画像間の平行移動量の近似式で計算される位置を中心とした所定の範囲に関して行うことを特徴とする請求項７に記載の画像合成処理装置。
【請求項９】
前記推定手段は、変形パラメータの推定に線形最小２乗法を利用することを特徴とする請求項７又は８に記載の画像合成処理装置。
【請求項１０】
前記推定手段は、平行移動量の推定に画像間の相関係数を利用することを特徴とする請求項７，８又は９に記載の画像合成処理装置。
【請求項１１】
前記縮小処理手段は、縮小画像の各画素の画素値として、該各画素に対応する元画像の小領域内の画素値の最小値又は最大値を用いる縮小方法を選択できることを特徴とする請求項７乃至１０のいずれか１項に記載の画像合成処理装置。
【請求項１２】
前記縮小処理手段は、入力画像の画素値分布に基づいて画像の種類を推定し、推定した画像の種類が「白地に黒線が描かれた画像」又は「黒地に白線が描かれた画像」の場合に、縮小画像の各画素の画素値として、該各画素に対応する元画像の小領域内の画素値の最小値又は最大値を用いる縮小方法をそれぞれ選択することを特徴とする請求項７乃至１０のいずれか１項に記載の画像合成処理装置。
【請求項１３】
請求項１乃至６のいずれか１項に記載の画像合成処理方法の各ステップをコンピュータに実行させるためのプログラムが記録されたコンピュータ読み取り可能記録媒体。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、画像処理の分野に係り、特に、カメラを用いて一つの対象を分割撮影したような複数の画像を貼り合わせ合成する技術に関する。
【０００２】
【従来の技術】
２枚の画像を貼り合わせ合成するためには、両画像の内容が一致するように、片方の画像を移動、変形する必要がある。このような画像合成に関しては多くの従来技術が知られている。例えば、特開平８−１１６４９４号公報には、一つの対象を分割撮影した複数の画像に対して歪曲収差及び／又は視差の補正を施し、補正後の画像を、平行移動及び回転の変形を行って合成する技術が述べられている。
【０００３】
しかし、一般的なカメラによって分割撮影したような場合、各画像の撮影時の撮像面の方向が異なるため、平行移動と回転の変形だけでは、たとえ平面対象物であっても、複数の画像を、ずれなく合成することは不可能である。そのような複数の画像をずれなく合成するためには、画像に対し透視変換に基づく変形を施す必要がある。
【０００４】
１枚の平面を２つの異なる条件（位置、方向など）で透視変換した２枚の画像上の位置（ｘ０，ｙ０），（ｘ１，ｙ１）は
【数１】
0003867883.tif 000002
なる関係にある。論文「Richard  Szeliski；Video  Mosaics  for  Virtual  Environments；IEEE  Computer  Graphics  and  Applications,  March  1996,pp.22−30」には、一方の画像を変形して求めた画素値と他方の画像の画素値とを比較し、その差が小さくなるように変形パラメータを逐次変更しながら繰り返し処理を行うことで、（１）式の変形パラメータｃ０〜ｃ７を求める方法が述べられている。しかし、輝度勾配に基づいて、いわゆる「山登り法」によってパラメータの変更量を決定するため、真の値に近いパラメータを初期値とすれば正解が求まるが、初期値のとり方によっては誤った極小値が得られる可能性があり、安定性が悪い。また、カメラで被写体を撮影したような場合に、画像の周辺部ほど中心部に比べ光量が減衰したり、被写体に対する照明角度に関連して撮影位置や撮影角度の違いで画像の輝度が変化したり、カメラの自動露出機能により画像毎に輝度が変化したりするが、画素値の差分を最小化する方法では、そのような周辺光量減衰や、照明角度、自動露光による輝度変化などに対応できない。さらに、解を得るための非線形最適化演算には繰り返し処理が必要であり、適当なダンピング係数の設定などが難しく、処理に非常に時間がかかる。
【０００５】
【発明が解決しようとする課題】
本発明の目的は、一般的なカメラで撮影した、カメラ位置や撮影方向などの撮影条件が不明な画像に対しても、ずれのない高精度な画像合成を可能にすることにある。本発明の他の目的は、そのような画像合成のための処理の高速化と安定化を図ることにある。本発明のもう一つの目的は、デジタルカメラなどの撮像装置において、撮像画像の高精度な合成を可能にすることにある。
【０００６】
【課題を解決するための手段】
請求項１記載の発明は、合成すべき複数の入力画像のそれぞれについて、入力画像とその縮小画像から構成される、入力画像を最高階層とする２階層以上のピラミッド型データ構造を構築する縮小処理ステップと、前記縮小処理ステップにより構築された前記複数の入力画像に対応する各ピラミッド型データ構造の各階層の画像間の平行移動量を推定する処理を最低階層から最高階層へ向かって順に画像をブロック分割してブロック単位に行い、各階層の画像間の平行移動量の推定処理の結果を該階層より１つ上の階層の画像間の平行移動量の推定処理に利用し、最高階層の入力画像間の平行移動量の推定処理の結果から透視変換に対応する変形パラメータを推定する推定ステップと、前記推定ステップにより推定された変形パラメータを用い透視変換に基づく変形を入力画像に施して合成する合成ステップとを有することを特徴とする画像合成処理方法である。
【０００７】
請求項２記載の発明は、請求項１記載の発明に係る画像合成処理方法であって、前記推定ステップにおいて、ピラミッド型データ構造の各階層の画像間の推定した平行移動量を、高い階層ほど自由度の高い変形モデルによる近似式で近似し、最低階層以外の各階層の画像間の平行移動量の推定を、その１つ下の階層の画像間の平行移動量の近似式で計算される位置を中心とした所定の範囲に関して行うことを特徴とする画像合成処理方法である。
【０００８】
請求項３記載の発明は、請求項１又は２記載の発明に係る画像合成処理方法であって、前記推定ステップにおいて、変形パラメータの推定に線形最小２乗法を利用することを特徴とする画像合成処理方法である。
【０００９】
請求項４記載の発明は、請求項１，２又は３記載の発明に係る画像合成処理方法であって、前記推定ステップにおいて、平行移動量の推定に画像間の相関係数を利用することを特徴とする画像合成処理方法である。
【００１０】
請求項５記載の発明は、請求項１乃至４のいずれか１項記載の発明に係る画像合成処理方法であって、前記縮小処理ステップにおいて、縮小画像の各画素の画素値として、該各画素に対応する元画像の小領域内の画素値の最小値又は最大値を用いる縮小方法を選択できることを特徴とする画像合成処理方法である。
【００１１】
請求項６記載の発明は、請求項１乃至４のいずれか１項記載の発明に係る画像合成処理方法であって、前記縮小処理ステップにおいて、入力画像の画素値分布に基づいて画像の種類を推定し、推定した画像の種類が「白地に黒線が描かれた画像」又は「黒地に白線が描かれた画像」の場合に、縮小画像の各画素の画素値として、該各画素に対応する元画像の小領域内の画素値の最小値又は最大値を用いる縮小方法をそれぞれ選択することを特徴とする画像合成処理方法である。
【００１２】
請求項７記載の発明は、合成すべき複数の入力画像のそれぞれについて、入力画像とその縮小画像から構成される、入力画像を最高階層とする２階層以上のピラミッド型データ構造を構築する縮小処理手段と、前記縮小処理手段により構築された前記複数の入力画像に対応する各ピラミッド型データ構造の各階層の画像間の平行移動量を推定する処理を最低階層から最高階層へ向かって順に画像をブロック分割してブロック単位に行い、各階層の画像間の平行移動量の推定処理の結果を該階層より１つ上の階層の画像間の平行移動量の推定処理に利用し、最高階層の入力画像間の平行移動量の推定処理の結果から透視変換に対応する変形パラメータを推定する推定手段と、前記推定手段により推定された変形パラメータを用い透視変換に基づく変形を入力画像に施して合成する合成手段とを有することを特徴とする画像合成処理装置である。
【００１３】
請求項８記載の発明は、請求項７記載の発明に係る画像合成処理装置であって、前記推定手段は、ピラミッド型データ構造の各階層の画像間の推定した平行移動量を、高い階層ほど自由度の高い変形モデルによる近似式で近似し、最低階層以外の各階層の画像間の平行移動量の推定を、その１つ下の階層の画像間の平行移動量の近似式で計算される位置を中心とした所定の範囲に関して行うことを特徴とする画像合成処理装置である。
【００１４】
請求項９記載の発明は、請求項７又は８記載の発明に係る画像合成処理装置であって、前記推定手段は、変形パラメータの推定に線形最小２乗法を利用することを特徴とする画像合成処理装置である。
【００１５】
請求項１０記載の発明は、請求項７，８又は９記載の発明に係る画像合成処理装置であって、前記推定手段は、平行移動量の推定に画像間の相関係数を利用することを特徴とする画像合成処理装置である。
【００１６】
請求項１１記載の発明は、請求項７乃至１０のいずれか１項記載の発明に係る画像合成処理装置であって、前記縮小処理手段は、縮小画像の各画素の画素値として、該各画素に対応する元画像の小領域内の画素値の最小値又は最大値を用いる縮小方法を選択できることを特徴とする画像合成処理装置である。
【００１７】
請求項１２記載の発明は、請求項７乃至１０のいずれか１項記載の発明に係る画像合成処理装置であって、前記縮小処理手段は、入力画像の画素値分布に基づいて画像の種類を推定し、推定した画像の種類が「白地に黒線が描かれた画像」又は「黒地に白線が描かれた画像」の場合に、縮小画像の各画素の画素値として、該各画素に対応する元画像の小領域内の画素値の最小値又は最大値を用いる縮小方法をそれぞれ選択することを特徴とする画像合成処理装置である。
【００１８】
請求項１３記載の発明は、請求項１乃至６のいずれか１項記載の発明に係る画像合成処理方法の各ステップをコンピュータに実行させるためのプログラムが記録されたコンピュータ読み取り可能記録媒体である。
【００１９】
【発明の実施の形態】
図１は、本発明による画像合成処理のフローチャートである。ここでは、この画像合成処理が、例えば図２に簡略化して示すような構成のコンピュータ上でソフトウェアにより実現されるものとして説明する。図２において、１００はＣＰＵ、１０１はメモリ、１０２はディスプレイ、１０３はマウス等のポインティングデバイス、１０４はフロッピーディスクやＣＤ−ＲＯＭ等の記録媒体１０５の読み書きのためのドライブ、１０６はハードディスク等の補助記憶装置、１０７は外部インターフェース、１０９はシステムバスである。図１に示す画像合成処理の各処理ステップを実行させるためのプログラム１１０は、例えば、それらが記録されたフロッピーディスクやＣＤ−ＲＯＭ等の記録媒体１０５よりドライブ１０４を介してメモリ１０１に読み込まれて実行され、あるいは、プログラム１１０は補助記憶装置１０６に保存され、処理実行時に補助記憶装置１０６からメモリ１０１に読み込まれる。
【００２０】
以下、図１に示す各処理ステップについて順に説明する。まずステップＳ１において、一つの対象物をフォーカス位置を変えて撮影した複数枚の画像データを入力する。具体的には、例えば、外部インターフェース１０７に接続されたデジタルカメラやイメージスキャナ等の画像入力装置１０８から、あるいは、フロッピーディスクなどの記録媒体１０５から、合成処理の対象となるデジタル画像データが入力される。ここでは、説明を簡単にするため、２枚のグレースケール画像データが入力されるものとして説明する。ただし、カラー画像に対しても、各コンポーネントのプレーンまたは輝度データに対して、同様の処理をすることができる。
【００２１】
ラスター画像データを扱う画像処理では、処理時間の短縮等を目的として、元の画像データから複数段階の縮小画像データを作り、図３に模式的に示すような、いわゆるピラミッド型データ構造を利用する方法がよく利用される。本発明においても、画像間の平行移動量の推定を効率的に行うために、ピラミッド型データ構造を利用する。図３において、第１層の画像２００は入力画像、第２層の画像２０１は入力画像を例えば縦横１／２に縮小した画像、第３層の画像２０２は第２層の画像２０１を例えば縦横１／２に縮小した画像である。
【００２２】
このような画像の縮小処理の方法としては、縮小画像の各画素の画素値として、その画素に対応した元画像の２×２画素領域の画素値の平均値を用い、縦横１／２に縮小した画像を生成する方法が知られている。しかし、紙やホワイトボードなどの平面的な撮影対象では、通常、白い背景に黒い線で文字や図形が描かれており、暗い部分は面積としてごく小さい。そのような対象の画像を２×２画素の平均値をとる方法で縮小すると、面積の小さい暗い部分がぼけてしまい、縮小画像上では位置合わせの手がかりとなる濃淡変化が失われてしまう。このような撮影対象の画像に対しては、２×２画素領域中の最も暗い画素値を１／２縮小画像の画素値として用いるほうが、縮小によるぼけが低減し好ましい。他方、黒を背景にして白い線が描かれたような画像の場合、例えば撮影対象が黒板のような場合には、２×２画素領域中の最も明るい画素値を１／２縮小画像の画素値として用いるほうが、白い線のつぶれが起きにくく好ましい。このような画像（撮影対象）の種類に応じた縮小方法の選択は、人の判断によって行うことも可能であるが、画像データから自動的に画像（撮影対象）の種類を判別して縮小方法を決定するほうが一般に望ましい。
【００２３】
白地に黒線が描かれた画像、黒地に白線が描かれた画像、その他の画像の典型的な画素値ヒストグラムを図４に示す。ホワイトボードを撮影した画像のような白地に黒線が描かれた画像では、図４の（ａ）に示すように、白地に対応した画素値の大きい（明るい）領域にピークを持ち、黒線に対応した画素値の小さい（暗い）領域の頻度は低い。黒板を撮影した画像のような黒地に白線が描かれた画像では、図４の（ｂ）に示すように、白地に黒線が描かれた画像とちょうど逆の分布となる。その他の一般的な画像では、図４の（ｃ）に示すように、頻度のピークは中央付近になることが多い。
【００２４】
ステップＳ２においては、そのような画素値分布の違いから、入力画像が、白地に黒線が描かれた画像、黒地に白線が描かれた画像、その他の一般画像のいずれであるか推定し、推定した画像の種類に応じて縮小方法を決定する。具体的には、例えば図５のフローチャートに示すように、入力画像の画素値の平均値、最大値及び最小値を測定し（ステップＳ１０）、［（最大値−平均値）−（平均値−最小値）］を計算する（ステップＳ１１）。そして、この計算値と、第１の閾値Ｔｈ１（画素値が０〜２５５の２５６階調の場合、例えばＴｈ１＝１２８）及び第２の閾値Ｔｈ２（画素値が０〜２５５の２５６階調の場合、例えばＴｈ２＝−１２８）との比較判定により画像の種類を推定する（ステップＳ１２）。計算値が閾値Ｔｈ１より大きいときには「黒地に白線が描かれた画像」と推定し、２×２画素領域内の最大の画素値（最も明るい画素値）を縮小画像の画素値とする縮小方法を選択し（ステップＳ１３）、計算値が閾値Ｔｈ２より小さいときには「白地に黒線が描かれた画像」であると推定し、２×２画素領域内の最小の画素値（最も暗い画素値）を縮小画像の画素値とする縮小方法を選択し（ステップＳ１４）、計算値が上記条件のいずれにも該当しないときには「その他の一般画像」と推定し、２×２画素領域内の平均画素値を縮小画像の画素値とする縮小方法を選択する（ステップＳ１５）。
【００２５】
図１に戻って説明を続ける。ステップＳ３において、前ステップＳ２で決定された縮小方法によって入力画像の縮小画像を生成し、ピラミッド型データ構造を構築する。上に述べたような画像の種類に応じた縮小方法が用いられるため、ホワイトボードや黒板を撮影した画像が入力された場合でも、位置合わせの手がかりとなる濃淡変化が保存されたピラミッド型データ構造を得られる。
【００２６】
ここでは、入力画像データを第１階層、入力画像データを縦横１／２に縮小した画像を第２階層とする、２階層のデータ構造を作成して利用するものとして説明する。しかし、例えば、１／２画像を同じ縮小方法で縦横１／２に縮小した画像も含む３階層データ構造、同様の４階層以上のデータ構造を作成してもよい。また、ここでは縮小率を縦横１／２としたが、これに限るものではない。例えば、入力画像の種類に応じて、元の画像のｎ×ｎ画素領域内の最大画素値、最小画素値又は平均画素値を、縮小画像の対応した１画素の画素値とした、縦横１／ｎ縮小画像を生成するようにしてもよい（ただし、ｎは３以上の自然数）。縦方向と横方向の圧縮率を異ならせることも可能である。
【００２７】
次のステップＳ４において、ピラミッド型データ構造の第２階層の画像データ、すなわち２枚の入力画像の１／２縮小画像データを使い、２枚の入力画像の相対的な平行移動量を粗く推定する。具体的には、２枚の縮小画像を全体として相対的に平行移動させながら、画素値の正規化相関係数を求める。１枚目の縮小画像の位置（ｉ，ｊ）の画素値をＩ０１（ｉ，ｊ）、２枚目の縮小画像の位置（ｉ，ｊ）の画素値をＩ０２（ｉ，ｊ）とすると、２枚の縮小画像を（ｘ，ｙ）だけずらした時の相関係数は次式で求められる。
【００２８】
【数２】
0003867883.tif 000003
ただし、総和（ｋ，ｌ）は、Ｉ0１（ｋ，ｌ）とＩ0２（ｋ−ｘ，ｌ−ｙ）が共に画像範囲内にある部分をとる。
【００２９】
この相関係数Ｃ（ｘ，ｙ）が最大値をとる位置（ｘ，ｙ）を求め、これを（ｘ０，ｙ０）とする。１枚目の画像の位置を基準として、２枚目の画像を変形するものとすると、１枚目の画像上の画素位置（ｉ，ｊ）に映っている対象物が２枚目の画像上では位置（ｆ（ｉ，ｊ），ｇ（ｉ，ｊ））に存在するような位置変換関数（ｆ，ｇ）を考えると、この位置変換関数（ｆ，ｇ）の近似として、
【数３】
0003867883.tif 000004
が得られた。すなわち、ここでは平行移動のみの変形モデルにより平行移動量を近似したわけである。
【００３０】
このようにして推定された位置変換関数に基づいて、１つ上の階層の画像データを用いて、より詳細な位置変換関数を推定する。すなわち、次のステップＳ５において、第１階層画像データ、すなわち入力画像データをブロック分割し、ブロック毎に、前記（３）式で計算される平行移動位置を中心とした所定の探索範囲について、画像間の平行移動量の推定を行い、さらに、推定した各ブロックの平行移動量を透視変換による移動とみなして多項式近似することにより、一方の画像を基準とした他方の画像の変形パラメータを推定する。
【００３１】
具体的に説明する。まず、２枚の入力画像データを例えば１６×１６画素のブロックに分割する。そして、輝度変化のある各ブロック毎に、２枚の入力画像を相対的に移動させながら前記（２）式と同様の計算によって画素値の相関係数を求める。この際、総和（ｋ，ｌ）はブロック内でとり、また相関係数が最大化する位置を探索する範囲は、前記（３）式で計算される画像全体の相関係数が最大化する位置を中心とした、±８画素の範囲とする。ただし、前ステップで求めた（ｘ０，ｙ０）は１／２縮小画像上での位置であるので、それを２倍した（２ｘ０，２ｙ０）を代わりに用いる。そして、各ブロックについて、相関係数を最大化する位置（ｘ，ｙ）を求め記憶する。ここでは、第Ｎブロックについて相関係数を最大化する位置を（ｘｓｈｉｆｔＮ，ｙｓｈｉｆｔＮ）と表す。
【００３２】
次に、ブロック毎の平行移動量を、全体として多項式近似する。すなわち、１枚目の入力画像上の第Ｎブロックの中心位置を（ｐＮ，ｑＮ）とすると、推定された各ブロックのマッチング位置は、透視変換の前記（１）式より、
【数４】
0003867883.tif 000005
と近似できる。しかし、（４）式は、パラメータｃ０〜ｃ７について非線形な近似式であるため、最小２乗近似のためには複雑な反復演算が必要になる。
【００３３】
本発明においては、推定の高速化を図るため線形最小２乗法を利用する。すなわち、上記（４）式の左右両辺を等しいと考え、分母（ｃ６ｐＮ＋ｃ７ｑＮ＋１）を移項し整理した次の近似式を用い、パラメータｃ０〜ｃ７の最小２乗解を求める。
【００３４】
【数５】
0003867883.tif 000006
この（５）式は、ｐＮｘｓｈｉｆｔＮ，ｑＮｘｓｈｉｆｔＮ，ｐＮｙｓｈｉｆｔＮ，及びｑＮｙｓｈｉｆｔＮを測定値と考えれば、パラメータｃ０〜ｃ７に関して線形な近似式であるから、一般的な行列演算によって最小２乗解を簡単に求めることができる。この最小２乗解は、次のステップＳ６において、１枚目の入力画像を基準とした２枚目の入力画像の変形パラメータとして利用される。
【００３５】
ここでは、２階層のピラミッド型データ構造、すなわち入力画像データと、その１／２縮小画像データを利用したが、より多階層のデータ構造を利用することも可能である。例えば、入力画像データ（第１階層）、入力画像データの１／２縮小画像データ（第２階層）、その１／２縮小画像データ（第３階層）からなる３階層のピラミッド型データ構造を利用する場合を考える。この場合、最も低いピラミッド階層である第３階層の縮小画像データを利用し、ステップＳ４の処理と同様に画像全体の平行移動量を求め、それを最も自由度の小さい平行移動モデルによる近似式を用いて近似する。次に、ステップＳ５と同様にして、１つ上の階層である第２階層の縮小画像データを利用しブロック毎の平行移動量を推定するが、この推定は、第３階層の平行移動量の近似式で計算される位置を中心とした所定の探索範囲に関して行う。そして、第２階層で推定したブロック毎の平行移動量を全体として近似するが、この近似には、より自由度の高い変形モデルによる近似式、例えば回転及び拡縮を含む剛体変換による下記（６）式や、アフィン変換による下記（７）式を用いる。両式の変形パラメータは、（５）式の場合と同様に求めることができる。そして最も高い階層の入力画像データについて、ステップＳ５と同様のブロック毎の平行移動量の推定を行うが、この推定は、（６）式又は（７）式により計算される位置を中心とした所定の探索範囲について行う。そして、ブロック毎の移動量を全体として（５）式により近似し、透視変換に対応した変形パラメータを推定する。
【００３６】
【数６】
0003867883.tif 000007
【数７】
0003867883.tif 000008
【００３７】
さらに、４階層のデータ構造を利用し、第３階層で前記（６）式を用い、第２階層で前記（７）式を用いるようにしてもよい。
【００３８】
以上に述べたように、ピラミッド型データ構造を利用し、高いピラミッド階層ほど自由度の高い変形モデルによる近似式を用いて平行移動量を近似する方法によれば、高速かつ安定な、変形パラメータの推定が可能である。
【００３９】
ステップＳ６において、以上のようにして推定された変形パラメータを使って、一方の入力画像に透視変換に基づく変形を施すことにより、２つの入力画像の貼り合わせ合成を行う。合成画像上の、複数の入力画像が対応する画素位置の画素値としては、いずれか一方の入力画像の画素値を採用するか、あるいは、画像の縁に近づくほど小さくなる重みを用いて両方の入力画像の画素値の加重和を採用すればよい。後者の加重和を採用する方法によれば、画像のつなぎ合わせ部分がより滑らかになる。このようにして得られた合成画像データは、次のステップＳ７において、例えば、補助記憶装置１０６やフロッピーディスク等の記録媒体１０５、あるいは、ディスプレイ１０２や外部インターフェース１０７により接続された他の出力装置へ出力される。
【００４０】
本発明の別の実施の形態によれば、図１に関連して説明した画像合成処理のための機能が、撮像素子によって被写体のデジタル画像データを得る撮像装置、例えばデジタルカメラやイメージスキャナに実装される。
【００４１】
図６は、そのようなデジタルカメラの一例の概略ブロック図である。図６において、３００は不図示の光学系を介して光像が結像される、撮像素子としてのＣＣＤイメージセンサ、３０１はＣＣＤイメージセンサ３００から出力されるアナログ画像信号の増幅やデジタル信号への変換等を行う信号回路部、３０２は画像データ等の記憶のためのデータメモリ、３０３はデジタル画像データの圧縮／伸長やビデオ信号への変換等を行うデジタル信号プロセッサ、３０４は液晶ディスプレイパネル等を用いたモニタディスプレイである。３０６はマイクロコンピュータであり、ＣＰＵ３１０やＲＯＭ３１１、ＲＡＭ３１２等からなる。３０７はユーザがマイクロコンピュータ３０６へ各種指示を入力するための操作部である。
【００４２】
操作部３０７の撮影ボタンが押されない状態では、デジタル信号プロセッサ３０３は、信号回路部３０１から連続的に入力するデジタル画像データをビデオ信号に変換してモニタディスプレイ３０４に出力するため、ユーザはカメラ視野内のシーンをモニタディスプレイ３０４で監視することができる。ユーザが操作部３０７上の撮影ボタンを押すと、マイクロコンピュータ３０６の制御により、信号回路部３０１より出力される画像１枚分のデジタル画像データがデータメモリ３０２に一時的に保存される。次に、この画像データがデジタル信号プロセッサ３０３へ転送され、必要な階調補正等が施された後に圧縮される。得られた圧縮画像データはデータメモリ３０２へ転送され保存される。外部のパソコン等への画像データ出力が操作部３０７より指示されると、マイクロコンピュータ３０６の制御により、データメモリ３０２内の圧縮画像データがデジタル信号プロセッサ３０３へ転送されて伸長される。伸長された画像データは再びデータメモリ３０２に書き込まれる。そして、この画像データがマイクロプロセッサ３０６の制御により外部のパソコン等へ転送される。このようなデジタルカメラ内部の一般的な制御は、ＲＯＭ３１１に格納されたプログラムに従って遂行される。
【００４３】
ここに示すデジタルカメラにおいては、図１に関連して説明した画像合成処理のための各ステップのための手段がソフトウェアにより実装される。すなわち、図１に関連して説明した各処理ステップをマイクロコンピュータ３０６に実行させるためのプログラム３２０がＲＯＭ５１１に格納されている。
【００４４】
ユーザは、予め分割撮影した画像の合成処理を操作部５０７の操作により指示することができる。ここでは、説明を簡単にするため、２枚のグレースケール画像を合成するものとして説明する。この画像合成処理の指示が入力されると、マイクロコンピュータ３０６は、プログラム３２０に従って図１に示した画像合成処理の各ステップを順次実行する。
【００４５】
マイクロコンピュータ３０６は、まずステップＳ１を実行する。具体的には、データメモリ３０２上の合成すべき１枚目の画像の圧縮画像データをデジタル信号プロセッサ３０３へ転送して伸長させ、伸長された画像データをデータメモリ３０２に格納させ、続いて、２枚目の画像の圧縮画像データをデジタル信号プロセッサ３０３へ転送して伸長させ、伸長された画像データをデータメモリ３０２に格納させる。なお、分割撮影の場合に、非圧縮の画像データをデータメモリ３０２上に保存させるようにしてもよい。この場合は、分割撮影の段階で、実質的に合成すべき画像データの入力が完了することになる。
【００４６】
次に、マイクロコンピュータ５０６はステップＳ２を実行する。すなわち、データメモリ３０２上の１枚目又は２枚目の画像データを参照し、前述のように画像上の画素値の最大値、最小値及び平均値を求め、それらの値を用いて画像の種類を判別し、画像種類に対応した縮小方法を決定する。ステップＳ３に進み、前ステップで決定した縮小方法に従って、１枚目の画像データ及び２枚目の画像データの縮小処理を行う。生成された縮小画像データは、例えば内部ＲＡＭ３１１に一時的に保存される。次にマイクロコンピュータ３０６は、縮小画像データを用いた画像間の平行移動量の推定処理、すなわちステップＳ４を実行する。ステップＳ５に進み、前ステップで推定された平行移動量を利用し、データメモリ３０２上の画像データのブロック毎の平行移動量を推定し、前述の線形最小２乗近似により、１枚目の画像を基準とした、２枚目の画像の透視変換に対応する変形パラメータを推定する。そしてステップＳ６に進み、推定された透視変換パラメータを利用して２枚目の画像データを変形して２枚の画像データを合成する。次にステップＳ７へ進み、データメモリ３０２に得られた合成画像データをデジタル信号プロセッサ３０３へ転送させて圧縮を行わせ、合成画像の圧縮データをデータメモリ３０２に保存させる。この際、デジタル信号プロセッサ３０３より合成画像の映像信号がモニタディスプレイ３０４へ送られ、ユーザは合成画像を確認することができる。合成画像を外部のパソコン等へ出力させたい場合には、ユーザはその旨の指示を操作部３０７より入力する。この指示が入力された場合、マイクロコンピュータ３０６はデータメモリ３０２内の合成画像の圧縮データをデジタル信号プロセッサ３０３へ転送して伸長させ、伸長された合成画像データを再びデータメモリ３０２に格納させ、次にその合成画像データを外部のパソコン等へ転送する。
【００４７】
なお、画像合成処理のためのステップＳ２〜Ｓ６をすべてマイクロコンピュータ３０６上で実行するものとして説明したが、それに限られるものではない。例えば、ステップＳ２の処理に関しては、デジタル信号プロセッサ３０３において、圧縮画像データの伸長処理の際に各画像の画素値の最大値、最小値及び平均値の測定を実行させ、それらの値に基づいた画像の種類の判別と縮小方法の決定だけをマイクロコンピュータ３０６で行う構成も可能である。また、ステップＳ３の縮小処理も、デジタル信号プロセッサ３０３で実行させることも可能である。また、個々の撮影画像や合成画像のデータが圧縮データとしてデータメモリ３０２に保存されるものとして説明したが、データメモリメモリ３０２の記憶容量に余裕がある場合には、それらの画像を非圧縮画像データとしてデータメモリ３０２に保存させることも可能である。この場合、画像合成処理過程における圧縮画像データの伸長のための処理は不要となる。また、合成画像等は伸長された画像データとして外部のパソコン等に出力されるものとして説明したが、圧縮データとして外部に出力させることも当然に可能である。さらに、デジタルカメラの内部の全体的構成も、図５に示した構成に限定されるものではない。
【００４８】
【発明の効果】
以上に詳述した如く、請求項１乃至１２の各項記載の発明によれば、一般的なカメラによって任意のカメラ位置、方向で撮影した画像なども、ずれのない高精度な画像合成が可能になる。請求項３，９記載の発明によれば、透視変換に対応した変形パラメータの推定のたの処理時間を短縮できる。請求項４，１０記載の発明によれば、画像撮影時の露出条件の違いや周辺光量低下などの影響を回避できる。請求項１，７記載の発明によれば、平行移動量の推定を効率的に行うことができる。請求項２，８記載の発明によれば、高速かつ安定な変形パラメータの推定が可能になる。請求項５，６，１１，１２記載の発明によれば、ホワイトボードの画像や黒板などの画像が入力された場合に、適切な縮小方法を選択することにより、位置合わせの手がかりとなる濃淡変換を保存したピラミッド型データ構造を構築することができ、請求項６，１２記載の発明によれば、そのような適切な縮小方法の選択を自動的に行うことが可能である。また、請求項１３記載の発明によれば、請求項１乃至６の各項記載の発明を利用して容易に実施することができる、等々の効果を得られる。
【図面の簡単な説明】
【図１】  本発明による画像合成処理のフローチャートである。
【図２】  本発明をソフトウェアにより実施するためのコンピュータの一例を示すブロック図である。
【図３】  ピラミッド型データ構造の説明図である。
【図４】  白地に黒線が描かれた画像、黒地に白線が描かれた画像、その他の一般的な画像の典型的な画素値ヒストグラムを示す図である。
【図５】  図１のステップＳ２における処理の具体例を示すフローチャートである。
【図６】  本発明によるデジタルカメラの一例を示すブロック図である。
【符号の説明】
１００  ＣＰＵ
１０１  メモリ
１０２  ディスプレイ
１０４  ドライブ
１０５  記録媒体
１０６  補助記憶装置
１０７  外部インターフェース
１０８  画像入力装置
１１０  画像合成処理のためのプログラム
３００  ＣＣＤイメージセンサ
３０１  信号回路部
３０２  データメモリ
３０３  デジタル信号プロセッサ
３０４  モニタディスプレイ
３０６  マイクロコンピュータ
３０７  操作部
３１０  ＣＰＵ
３１１  ＲＯＭ
３１２  ＲＡＭ
３２０  画像合成処理のためのプログラム
【図１】
0003867883.tif 000009
【図２】
0003867883.tif 000010
【図３】
0003867883.tif 000011
【図４】
0003867883.tif 000012
【図５】
0003867883.tif 000013
【図６】
0003867883.tif 000014