<第一の実施例>
本発明の第一の実施例は、複数の撮像部を備え、不要物の形状に応じて画像取得に使用す る撮像部を選択する多眼カメラに適用される。本実施例の多眼カメラは、画像合成による不要物除去に適当な視点を効率よく選択して画像の取得および処理を行うため、情報処理量と消費電力量の削減を行うことができる。
図1は、本実施例における多眼カメラ100(以下カメラ100とする)を示す図である。カメラ100は、カラー画像を取得する25個の撮像部101〜125及び撮影ボタン126を備えている。図1に示すように、25個の撮像部は、二次元の格子状に均等に配置されている。
図2は、撮像部101〜125の内部構成を示す図である。撮像部101〜125は、同様の構造を有しているため、ここでは撮像部101の構成についてのみ述べる。撮像部101は、レンズ201〜203、絞り204、シャッター205、光学ローパスフィルタ206、iRカットフィルタ207、カラーフィルタ208、センサ209及びA/D変換部210を有している。レンズ201〜203はそれぞれ、ズームレンズ201、フォーカスレンズ202、ぶれ補正レンズ203である。センサ209は、例えばCMOSやCCDなどの撮像センサであり、上記の各レンズでフォーカスされた光を検出し、電気信号に変換する。検出された光はアナログ値としてセンサ209から出力され、A/D変換部210によってデジタル値に変換されて、デジタルのカラー画像データとして出力される。
このような多眼カメラにより、同一の被写体を複数の視点位置から見たカラー画像群を得ることができる。なお、ここでは撮像部の数を25個としたが撮像部の数は25個に限定されず、撮像装置が複数の撮像部を有していればよい。
図3は、カメラ100の構成を示すブロック図である。
カメラ100は、撮像部101〜125に加え、操作部301、表示部309、外部メモリ制御部310、情報処理部320を備えている。また、情報処理部320は、不要物形状取得部302、視点選択部303、撮像制御部304、デジタル信号処理部305、不要物除去部306、符号化部307、表示制御部308としての機能を有している。
操作部301はカメラ本体に備えられたボタンやダイヤル、タッチパネルなどの入力装置であり、ユーザが操作して、撮影の開始、停止および撮影条件の設定などの命令を行うことができる。本実施例においてこの操作部にはタッチパネルが含まれ、ユーザはタッチパネル上でのスライド操作によって除去すべき不要物の形状を指定することができる。
表示部309は撮像部101〜125によって取得された画像や、文字を表示するディスプレイである。また、本実施例では表示部309は撮像部113の撮影範囲をリアルタイムに表示するライブビュー表示を行う。表示部309で表示される映像は、表示制御部308によって生成および出力される。このライブビュー表示に用いる撮像部などは、表示制御部308の処理により自由に変更可能である。なお、本実施例において、表示部309と操作部301に含まれるタッチパネルは一体に構成されており、ユーザは、表示部309に表示された画像をなぞるようにしてよるタッチ操作を行うことができる。
外部メモリI/F310は、PCやその他のメディア(ハードディスク、メモリカード、CFカード、SDカード、USBメモリなど)とカメラ100とを接続するインターフェースである。本実施例において、この外部メモリI/F310はSDカードスロットであり、画像データを記憶するためのSDカードが挿入されている。
情報処理部320は、カメラ100内で行われるさまざまな処理を制御する。図4に情報処理部320のハードウェア構成を示す。情報処理部320は、CPU401、RAM402、ROM403を有し、各構成部はシステムバス404により相互に接続されている。
CPU401はカメラ100内の各部を統括的に制御するプロセッサである。RAM402は、CPU401の主メモリ、ワークエリア等として機能する。ROM403は、CPU401によって実行されるプログラム群を格納している。情報処理部320は、ROM403に格納されたプログラムを、CPU401がプログラムコードとして読み込み実行することで、情報処理部320が有する各機能ブロックとしての役割を実現する。なお、情報処理部320の構成は、上記に示すもの以外に、図3に示す各構成部の一部または全部の役割を果たす専用の処理回路などを備えたものであっても良い。
以上が本実施例におけるカメラ100の構成である。
次に、カメラ100内で行われる不要物除去処理の概要について述べる。図5は、カメラ100内で行われる不要物除去処理を示すフローチャートである。
まず、不要物形状取得部302は、操作部301の操作に基づいて、不要物の形状を取得し、取得した不要物の形状を示す情報を視点選択部303に出力する(ステップS501)。本実施例において不要物の形状は、ユーザによるタッチパネル上でのスライド操作の軌跡に基づいて取得される。
図6は、スライド操作による不要物形状取得の方法を説明する図である。画像601および604は、表示部309に表示されているライブビュー画像である。また、直線602、605および606は、画像601および604中に含まれる不要物の像である。画像601および604に表示されているアルファベットABCDEは目的の被写体であり、直線602、605および606に示される不要物は、目的の被写体とカメラ100との間に存在する。また、603、607はタッチ操作を行うユーザの手である。
図6(a)に示すように、手603は、表示部309に表示された不要物の像である直線609を指でなぞるようにしてタッチ操作を行い、この時に検出されたタッチ位置の情報が不要物形状取得部302に入力される。タッチ点の座標は20msごとに検出されており、連続して検出されたタッチ点群はそれぞれ1つのタッチ点群として認識される。つまり、図6(b)のように手607が直線605と直線606をそれぞれなぞるように異なる時点でタッチ操作を行ったとき、一方の直線をなぞって取得されたタッチ点群と、もう一方の直線をなぞって取得されたタッチ点群はそれぞれ区別される。
タッチ点の情報が入力されたら、不要物形状取得部302は、そのタッチ点の情報に基づいて、タッチ点群ごとに不要物の形状を取得する。ここで、あるタッチ点群でタッチ点が20個検出されたとし、検出された点を、検出された順に点P1〜P20とする。この時、不要物形状取得部302は、検出されたタッチ点の座標に基づいて、P1−P2間の傾き、P2−P3間の傾きのように時間的に隣接する全てのタッチ点の組の間でその2点を通る直線の傾きを計算する。この時、この傾きは、図6(a)に示すように、不要物の直線と画面水平方向の軸がなす角θ(−180°≦θ<180°)として求められる。ここで、150°と−30°などの、同一の直線を示す角については、時間を考慮した2点のタッチ点の間の位置関係に基づいて一方が選択される。例えば、P1−P2間でタッチ点が画面中の右下方向に移動する場合、θ=−30°となる。
次に、不要物形状取得部302はタッチ点P1〜P20を5つの点ごとに4つのブロックに分割し、ブロックごとに、含まれるタッチ点の組に対応する傾きの平均値を算出する。これを、各ブロックの傾きとする。そして、不要物形状取得部302は、全ブロックの傾きの平均値を算出し、その平均値と各ブロックの傾きを比較する。各ブロックに対応する傾きを持つ直線と、ブロックの傾きの平均値に対応する傾きを持つ直線とがなす角をそれぞれ計算し、その角の大きさが30°以上となるブロックが存在する場合、不要物は曲線形状とみなされる。上記以外の場合、不要物は直線形状とみなされ、各ブロックの傾きの平均値が、その直線の傾きとして出力される。ここで、θが負の値となっている場合、θは同一の直線を示す0°≦θ<180°の値に変換されて出力される。つまり、ここでは不要物の長手方向が検出される。
なお、不要物形状の取得で用いられる手法は、上記に示したものに限られない。例えば、タッチ点に対して最小二乗法を用いた直線近似を行い、相関係数をもとに形状を判断しても良い。
また、タッチ点のブロック分割の単位は上記に示したものに限られず、曲線形状と直線形状の判断の閾値も上記に示した値に限られない。
次に、視点選択部303は、ステップS501で取得された不要物の形状を示す情報に基づいて、撮像を行う視点を選択し、選択した視点を示す情報を撮像制御部303に出力する(ステップS502)。ここで行われる処理の詳細については後述する。
次に、撮像制御部304は、ステップS502で選択された視点に対応する撮像部に対し、撮像を行うための命令信号を出力し、命令信号を受けた撮像部が撮像による画像データの取得を行う(ステップS503)。
次に、デジタル信号処理部305は、撮像を行った撮像部から出力された画像データを受け取り、その画像データに対してホワイトバランス処理、ガンマ処理、ノイズ低減処理などの処理を行う(ステップS504)。処理を行った画像データを、不要物除去部306に出力する。
次に、不要物除去部306は、デジタル信号処理部305から取得した画像データを用いて、不要物が除去された画像データを生成し、符号化部307に出力する(ステップS505)。この処理の詳細は後述する。
次に、符号化部307は、不要物除去部306から取得した画像データに符号化処理を行う(ステップS506)。ここで行われる符号化処理としては、JPEGやPNGなど、一般的に用いられる符号化処理が利用可能である。
最後に、外部メモリI/F310は、外部メモリに不要物が除去された画像データを出力する(ステップS507)。本実施例においては、画像データはSDカードに出力され、記憶される。
以上がカメラ100内で行われる処理である。次に、使用視点選択処理(ステップS502)および不要物除去処理(ステップS505)の詳細について述べる。
本実施例において、不要物除去のための画像取得に使用する視点の選択は、取得された不要物の形状に基づいて行われる。不要物の中に曲線形状のものが含まれる場合、もしくは、直線形状のものしか含まれないが、その数が3本以上である場合には、効率よい視点選択が難しくなるため、視点選択部303は全視点を選択して撮像部による画像の取得を行う。
不要物が直線形状のもの1本だけであった場合、視点選択部303は、ライブビュー表示に使われている視点に加えて、2点の視点を選択する。また、不要物が直線形状のもの2本であった場合、視点選択部303は、ライブビュー表示に使われている視点に加えて4点の視点を選択する。図7を用いてその処理を説明する。
図7は、カメラ背面から見た撮像部101〜125と不要物701、703、704の位置関係を示した図である。基本的に使用視点は、視差が大きく、不要物によって隠れた背景のオクルージョン領域を互いに補間し合えるような視点が選択される。つまり、それぞれの視点に対応する画像中で不要物が占める画素領域が異なり、お互いのオクルージョン領域の画素値を補い合えるような視点が選択される。
図7(a)のように、不要物が直線形状のもの1本だけであった場合、2つの視点の中心点がなす線分(例えば線分702)と、不要物の直線(例えば直線701)とがなす角が最大となる組み合わせが選択される。候補が複数存在する場合、その中から2つの視点の中心点がなす線分の長さが最大になる組み合わせが選択される。
一方、図7(b)のように不要物が直線形状のもの2本であった場合には、まず、4つの視点の各中心点によってなされる6本の線分(例えば線分705〜710)、2本の不要物の直線(例えば直線703と704)によってなされる角の角度が計算される。次に、それによって得られた12の角度のなかから最小の値を抜き出し、その値がもっとも大きくなる組み合わせが選択される。これは、各視点の組み合わせの中に、不要物の直線と略並行となる組み合わせが存在しないほうが、オクルージョン領域の補間が効率よく行えるためである。
図8は、視点選択部303の構成を示すブロック図である。こちらの各ブロックの機能もCPU401によって達成されるが、その一部を専用の処理回路などに置き換えてもよい。
以下、視点選択部303によって行われる処理(ステップS502)について述べる。図9は、視点選択部303によって行われる処理を示すフローチャートである。
まず、処理判断部801は、不要物形状取得部から出力された、不要物の形状に関する情報を取得する(ステップS901)。
次に、処理判断部801は、不要物に曲線形状のものが含まれているかどうかを判断する(ステップS902)。不要物に曲線形状のものが含まれている場合、ステップS904に進む。不要物に曲線形状のものが含まれておらず、直線形状のものだけで構成されている場合、ステップS903に進む。
次に、処理判断部801は、不要物に直線形状のものが1本しか含まれないかどうかを判断する(ステップS903)。不要物に含まれる直線形状のものが1本だけである場合、処理判断部801は、取得した不要物の形状に関する情報を視点比較部802に出力し、ステップS904に進む。不要物に含まれる直線形状のものが1本だけではない場合、ステップS908に進む。
不要物に曲線形状のものが含まれず、直線形状のものが2本以上含まれている場合、処理判断部801は、不要物に含まれる直線形状のものが2本だけかどうかを判断する(ステップS907)。不要物に含まれる直線形状のものが2本だけである場合、処理判断部801は、取得した不要物の形状に関する情報を視点比較部802に出力し、ステップS909に進む。不要物に含まれる直線形状のものが3本以上である場合、ステップS914に進む。
以下、各条件での処理について述べる。
まず、不要物に曲線形状のものが含まれず、直線形状のものが1本だけ含まれていた場合、視点比較部802は、図10(a)に示されるような1本処理用ルックアップテーブルを取得する(ステップS904)。1本処理用ルックアップテーブルには、ライブビュー表示に用いられている視点を除く24視点から2つの視点を抜き出した場合の全ての組み合わせについて、2視点間の線分と画面水平方向の軸とがなす角θと、その線分の長さlが格納されている。
次に、視点比較部802は、ステップS904で取得したルックアップテーブルに示されるθを比較し、不要物の直線となす角が最大となる視点の組を選別する(ステップS905)。
次に、視点比較部802は、ステップS905で選別された視点の組の中から、lの値が最大になる組み合わせを更に選別する(ステップS906)。ステップS905で1組まで絞られている場合には、この処理を行う必要はない。また、θの値が同じとなる視点の組み合わせに関しては、lが最大となるもの以外ははじめからルックアップテーブルに格納しないようにしてもよい。
最後に、使用視点決定部803は、視点比較部802で選別された2視点と、ライブビュー表示で使用されている1視点をあわせた3視点を画像取得に用いる視点として決定し、撮像制御部304に命令信号を出力して終了する(ステップS907)。このとき、視点の組が1組まで絞り込まれていない場合は、使用視点決定部803は、乱数を使ってその中から1組をランダムに選択する。なお、それまでの撮像部の使用履歴などを保存しておき、使用回数の少ない組み合わせが優先的に選択されるようにしても良い。
以上が、不要物が直線形状のもの1本だけであった場合の処理である。
一方、不要物が直線形状のもの2本だけであった場合、視点比較部802は、図10(b)に示されるような2本処理用ルックアップテーブルを取得する(ステップS909)。2本処理用ルックアップテーブルには、ライブビュー表示に用いられている視点を除く24視点から4つの視点を抜き出した場合の全ての組み合わせが格納されている。また、その組み合わせごとに、その4視点から任意に抜き出した2視点によってなされる6本の線分と画面水平方向の軸がなす角θ1〜θ6およびその線分の長さの平均値lavgが格納されている。
次に、視点比較部802は、ステップS909で取得されたルックアップテーブルに基づいて、各視点の組に対応するθ’の値を計算する(ステップS910)。θ’は、上記のθ1〜θ6に対応する各線分と、2本の不要物の直線とがなす12の角のうち、最も小さい角の角度を示す。
次に、視点比較部802は、ステップS910で算出されたθ’を、各視点の組の間で比較し、θ’が最大となる組み合わせを選別する(ステップS911)。
次に、視点比較部802は、ステップS911で選別された組の中から、lavgの値が最大となる組み合わせを選別する(ステップS912)。
最後に、使用視点決定部803は、視点比較部802で選別された4視点と、ライブビュー表示で使用されている1視点をあわせた5視点を画像取得に用いる視点として決定し、撮像制御部304に命令信号を出力して終了する(ステップS913)。このとき、視点の組が1組まで絞り込まれていない場合は、ステップS907で説明した処理と同様の処理を行って1組を選択する。
以上が、不要物が直線形状のもの2本だけであった場合の処理である。
なお、不要物に曲線形状のものが含まれていたり、直線形状のものが3本以上含まれている場合には、使用視点決定部803は全視点を画像取得に用いる視点として決定し、撮像制御部304に命令信号を出力して終了する(ステップS914)。
次に、不要物除去処理(ステップS505)の詳細について述べる。
図11は、不要物除去部306の構成を示すブロック図である。こちらの各ブロックの機能もCPU401によって達成されるが、その一部を専用の処理回路などに置き換えてもよい。
本実施例における不要物除去処理では、異なる視点から撮影された複数の画像に合成処理を施すことで、不要物が除去された画像が生成される。合成画像を生成するにあたり、まず基準となる1枚の画像(基準画像)が選択され、他の視点の画像中の各点の座標が、基準画像上の対応する点の座標に変換される。次に、基準画像中の、被写体が不要物によって遮られている部分(オクルージョン領域)を別の視点から撮影された被写体の像で置き換えることで不要物が除去された画像が生成される。なお、ここで不要物が完全に除去されなくてもよい。撮影の条件や不要物の大きさによっては、不要物が完全に除去されない場合がある。
以下、本実施例において不要物除去部306で実際に行われている処理について説明する。図12は、不要物除去部306で行われる処理を示すフローチャートである。
まず、特徴点抽出部1101は、入力された複数の画像中の特徴点を抽出し、各特徴点に対応する特徴量の算出を行う(ステップS1201)特徴点とは、暗い背景の中にある明るい四角形の角など、点として位置が特定可能な画像の構造のことである。また、特徴量とは、特徴点の近傍の画像の構造を用いて記述される、その特徴点を他の特徴点と識別するためのデータである。各特徴点は一般に広く用いられているSIFT(Scale Invariant Feature Transform)法により抽出され、対応する特徴量の算出がなされる。SIFT特徴量は、特徴点の位置だけでなく向きやスケールの情報も含んだ多次元のベクトルとして表現される。
次に、対応点探索部1102は、各画像の特徴点群のマッチングを行い、各画像間の対応点を探索する(ステップS1202)。マッチング処理は、ステップS1201で算出された特徴量を用いて行われる。ここではライブビュー表示に用いられている視点で得られた画像を基準とし、基準となる画像の特徴点それぞれに対して、特徴量の差分二乗和が最小となる特徴点が、対応点としてその他の画像から抽出される。
次に、変換行列生成部1103は、対応点探索部1102で求めた対応点の組に基づいて、各画像上の座標を基準画像の座標系へと変換する変換行列を算出する(ステップS1203)。この時、実際の画像データから得た対応点には誤対応が含まれるので、RANSAC(Random Sample Consensus)のようなロバスト性を高める手段を用いる。
次に、座標変換部1104は、ステップS1203で算出された変換行列を用いて、各画像の点を基準画像の座標系へと変換する(ステップS1204)。
次に、画像合成部1105は、座標系の変換がなされた各画像に対して合成処理を行い、不要物が除去された画像を生成する(ステップS1205)。不要物の直線の傾きと、各視点を結ぶ線分の傾きが一致しないような撮像部の組み合わせで画像データの取得を行った場合、1枚の画像上で不要物が写っている箇所は、異なる視点から撮影した残りの2枚の画像上では被写体が写っている点である可能性が高い。このように、被写体が写っている画像の枚数は不要物が写っている画像の枚数より多い傾向にあるので、本実施例ではベクトルメディアンフィルタを用いて不要物の除去を行う。ベクトルメディアンフィルタは1次元のメディアンフィルタの多次元への拡張であり、他のベクトルとの距離の和が最小となるベクトルを選択するフィルタである。ベクトルメディアンフィルタの式を以下に示す。
ここで、mはベクトルメディアン、vは各画素の画素値を表わす入力ベクトル、Nは入力ベクトルの数である。画素値はRGB値を3次元のベクトルvとして扱う。
最後に、画像合成部1105は、符号化部307に生成した画像データを出力し、処理を終了する(ステップS1206)。
以上の構成によると、画像合成による不要物除去を行う場合に、適当な視点を効率よく選択して画像の取得および処理が行われるため、情報処理量と消費電力量の削減を行うことができる。
なお、本実施例では、SIFTを用いて対応点の探索が行われたが、SURF(Speeded Up Robust Features)などの別の手法を用いて対応点探索が行われても良い。
また、本実施例では、ベクトルメディアンフィルタを用いて画像の合成を行ったが、各点の画素値の差に基づいて画素値の加重平均を取るなど、他の方法を用いて合成処理を行っても良い。また、本実施例では不要物の形状に関わらずライブビュー表示に用いられている視点が使用視点として選択されていたが、ライブビュー表示に用いられている視点が選択されなくても良い。また、選択される使用視点の数は上記に示された数に限定されるものではなく、例えば不要部が直線形状のもの1本だけであった場合に、ライブビュー視点を覗いた2点だけが使用視点として選択されても良い。また、例えば不要物に直線形状のものが3本含まれる場合に7視点が使用視点として選択されても良い。
また、不要物除去処理の基準画像にライブビューに用いられている視点の画像を選択する必要もなく、基準画像は任意に設定して良い。
また、本実施例ではタッチパネルのタッチ点の軌跡に基づいて不要物の形状が取得されたが、例えばボタンやダイヤルの操作により、ユーザが不要物の数や形状を複数の候補の中から選択することで取得されても良い。
また、本実施例では、不要物除去処理に用いる視点のみで画像の取得が行われたが、全ての視点で画像の取得が行われてから、その中の選択された視点に対応する画像のみを用いて不要物除去処理が行われてもよい。
また、不要物の形状に関する情報は、撮像により画像データが取得されてから、ユーザにより入力されるようにしてもよい。
また、本実施例では、図10に示すテーブルに基づいて使用視点の選択が行われたが、図10に示すテーブルが使用されなくてもよく、別のテーブルや関数を用いた処理により使用視点の選択が行われてもよい。例えば、複数の不要物形状とそれに対応する最適な使用視点の組を予め求めてその対応関係を示すテーブルを作成しておき、そのテーブルを用いて使用視点の選択が行われてもよい。
なお、本実施例において、不要物形状取得部302は、被写体に含まれる不要物の形状に関する情報を取得する取得手段として機能した。
また、本実施例において、視点選択部303は、不要物の形状に関する情報に基づいて、前記撮像によって画像を取得可能な視点位置の中から、複数の視点位置を選択する選択手段として機能した。
また、不要物除去部306は、前記選択された複数の視点位置に対応する複数の画像を用いて、前記不要物の像の少なくとも一部が含まれない画像データを生成する生成手段として機能した。
また、本実施例において、視点選択部303は、複数の撮像部のうちの、前記選択手段によって選択された視点位置に対応する撮像部を、前記撮像装置による画像の取得に用いる撮像部として指定する指定手段として機能した。
また、操作部301は、操作を入力する操作手段として機能した。
また、表示部309は、不要物の像を含む画像を表示する表示手段として機能した。
<第二の実施例>
第一の実施例は、ユーザの操作により不要物の形状が取得されたが、第二の実施例では、ユーザの操作ではなく画像認識によって不要物の形状が取得される。
図13は、第二の実施例におけるカメラ1300の構成を示すブロック図である。基本的な構成は第一の実施例におけるカメラ100と同様であるが、本実施例では、不要物形状の取得と使用視点選択に関わる処理が異なっている。本実施例では、まず全ての撮像部で撮像により画像を取得してから、不要物の形状が画像認識によって取得され、その結果に基づいて、不要物除去処理に用いる画像が選択される。
以下、本実施例のカメラ1300内で行われる処理について説明する。図14は、カメラ1300で行われる処理を示すフローチャートである。
まず、撮像部101〜125は、全ての撮像部で撮像を行い、取得した画像データを不要物形状取得部1301に出力する(ステップS1401)。
次に、不要物形状取得部1301は、取得された画像データに含まれる、ライブビュー表示に用いられる視点に対応する画像に画像認識処理を施すことにより、不要物の形状を取得する(ステップS1402)。ここではどのような画像認識処理を用いても良いが、本実施例においては、一例として、ハフ変換による直線検出を用いる。通常、ユーザからの情報なしに被写体中のどのオブジェクトが不要物であるかを判断することは難しい。しかし、視差の限られた多視点画像の合成により除去可能な不要物は、細長い直線状のものであることが多く、画像中の広い範囲にわたって一様な傾きを持つ場合が多いので、この処理によって効率的に不要物の抽出を行うことができる。
ハフ変換による直線検出において、まず、不要物形状取得部1301は、不要物形状の取得の対象とする画像に、ソーベルフィルタやCannyのエッジ検出法などのエッジ検出オペレータを適用して、画像データ中に存在するエッジを検出する。その強度を2値化し、エッジかエッジでないかを判定した結果を画素値として持つエッジ画像データを生成する。そして、不要物形状取得部1301は、生成されたエッジ画像データにハフ変換を行う。ここでは、エッジ画像データ中のエッジである点(x,y)の座標が、原点から直線への垂角θと原点から直線までの距離ρによる極座標二次元空間に変換され、角度θと距離ρごとに、その個数がρ−θパラメータ空間を分割したセルに投票される。ここで、個数が閾値以上になった角度θと距離ρの組み合わせが、検出された直線のパラメータになる。閾値は最大投票数に対する割合で決定される。最大投票数は画像サイズによって決定されてもよいし、エッジの検出された画素数によって決定されてもよい。この場合、画像サイズとしては、たとえば、画像の短辺、長辺や対角線の画素数を使用する。
検出したθをもとに、画像中の直線パターンの傾きが決定される。そして、検出された直線の傾きに関する投票を行い、最も投票数の多い傾きが不要物の傾きとして決定される。投票数の多い傾きがいくつか存在する場合には、その数だけ不要物が存在するとし、その傾きを取得する。ユーザにより不要物の数が指定され、その数だけ不要物の傾きを取得するようにしても良い。
次に、視点選択部1302は、ステップS1402で得られた不要物形状に基づいて、ステップ1401で取得された画像の中から、不要物除去処理に用いる画像を選択し、選択した画像をデジタル信号処理部305に出力する(ステップS1403)。
以下、ステップS504〜ステップS507の処理は、第一の実施例と同じであるので、説明を省略する。
この実施例によれば、不要物の形状を示すためのユーザ操作が必要ないため、不要物除去処理の利便性を向上することができる。
なお、本実施例において、不要物形状取得部1301は、被写体に含まれる不要物の形状に関する情報を取得する取得手段として機能した。
また、本実施例において、視点選択部1302は、不要物の形状に関する情報に基づいて、前記撮像によって画像を取得可能な視点位置の中から、複数の視点位置を選択する選択手段として機能した。
また、不要物除去部306は、前記選択された複数の視点位置に対応する複数の画像を用いて、前記不要物の像の少なくとも一部が含まれない画像データを生成する生成手段として機能した。
また、本実施例において、視点選択部1302は、複数の撮像部のうちの、前記選択手段によって選択された視点位置に対応する撮像部を、前記撮像装置による画像の取得に用いる撮像部として指定する指定手段として機能した。
また、操作部301は、操作を入力する操作手段として機能した。
また、表示部309は、不要物の像を含む画像を表示する表示手段として機能した。
<第三の実施例>
第一の実施例においては、不要物に曲線状のものが含まれたり、直線状のものが3本以上含まれている場合、全視点の画像を用いて不要物除去処理を行うとした。しかし、座標変換処理には多大な処理が必要となるため、上記の場合においても、全視点の画像を使用せずに不要物除去処理を行えることが望ましい。そこで、本実施におけるカメラでは、画像を複数の小領域のパッチに分割し、不要物除去に用いる視点をパッチごとに選択することで、不要物に曲線状のものが含まれている場合であっても使用視点数が効率よく選択できるようにした。
図15は、本実施例におけるカメラ1500のブロック図である。本実施例のカメラは、基本的な構成は第一の実施例のカメラ100と同じであるが、不要物形状取得部および視点選択部1502、不要物除去部1503で行われる処理が異なる。
以下、カメラ1500で行われる処理について説明する。図16は、カメラ1500で行われる処理を示すフローチャートである。
まず、ステップS501〜ステップS502については、第一の実施例と同様に行われる。本実施例ではこれ以降の処理が異なる。
視点選択部1502による視点選択処理が行われたら、視点選択部1502は、選択された使用視点が全視点であるかどうかを判断する(ステップS1601)。全視点が選択されたということは、不要物に直線状のものが3本以上含まれるか、又は不要物に曲線状のものが含まれることを意味する。全視点が選択されていない場合、選択された視点を用いて画像データの取得を行い、第一の実施例と同様にステップS503以降の処理を行って終了する。
選択された使用視点が全視点であった場合、使用視点の再選択を行う。まず、デジタル信号処理部305は、当初の命令通り全視点の撮像部によって取得された画像データを取得する(ステップS503)。
次に、表示部309は、取得された複数視点の画像中の、ライブビュー表示に用いられていた視点で撮像して取得された画像を表示する(ステップS1602)。撮像前と撮像後でカメラ1500の位置が移動している可能性があるので、ユーザはここで表示された画像をなぞるようにタッチ操作を行い、再び不要物の形状および位置を指定する。なお、画像取得前後のカメラ1500の位置変化が無視できるほど小さいと考え、このステップを省いて、S501で取得されたタッチ点の座標を用いてこれ以降の処理を行うようにしても良い。
次に、不要物形状取得部302は、図17に示すように、表示部09に表示された画像領域を、複数の小領域のパッチに分割する(ステップS1603)。画像1701は表示部309に表示された画像であり、曲線1702は画像1701中の不要物を示す曲線である。また、領域1703は、画像1701を分割して得られたパッチのうちの1つである。ここで、パッチは複数の画素を含む小領域であり、それぞれのパッチはオーバーラップして配置される。分割された領域は表示部309に表示されても表示されなくても良い。本実施において、画像領域は8×8の64のパッチに分割される。なお、分割数はこれに限られず、直線近似を行うのに十分な数であればいくつでも良い。また、パッチの形状も長方形に限られず、三角形などを用いても良い。また、ステップS502で検出された形状の複雑さに応じてパッチの数を変更するようにしても良い。
次に、不要物形状取得部1501は、ユーザの操作によって新たに取得されたタッチ点情報を用いて、不要物の形状および位置を取得する(ステップS1604)。ここでは、ステップS1603で分割されたそれぞれの領域ごとに、直線近似による傾きの取得が行われる。これにより取得された傾きと、その傾きに対応する領域を示す情報を視点選択部1502に出力する。
次に、視点選択部1502は、ステップS1604で取得された領域ごとの不要物形状を示す情報に基づいて、ステップS502と同様の方法で領域ごとに使用視点の選択を行う(ステップS1605)。ここで取得された領域ごとの使用視点情報は、それぞれデジタル信号処理部305と、不要物除去部306に出力される。
次に、デジタル信号処理部305は、ステップS503で取得した画像データの中から、ステップS1605で選択された使用視点に含まれる視点に対応する画像データのみにデジタル信号処理を行う(ステップS1606)。処理済みの画像データは、不要物除去部1503に出力される。
次に、不要物除去部1503は、デジタル信号処理部305から入力された画像データを用いて、不要物除去処理を行い、生成された画像データを符号化部307に出力する(ステップS1607)。ここでは、パッチごとにベクトルメディアンフィルタによる不要物の除去が行われ、不要物の除去が行われた各パッチを結合することで、最終的な画像データが得られる。結合の際にパッチがオーバーラップしている領域は、画素値の平均を計算してその画素の画素値としても良いし、ベクトルメディアンフィルタを用いて計算されたメディアンを画素値としても良い。
以下、ステップS506〜ステップS507の処理が行われ、処理は終了となる。
本実施例によれば、被写体中に曲線などの複雑な形状の不要物が含まれていても、不要物除去処理に用いる視点を効率よく選択することができ、不要物除去処理の処理量を削減することができる。
なお、本実施例において、不要物形状取得部1501は、被写体に含まれる不要物の形状に関する情報を取得する取得手段として機能した。
また、本実施例において、視点選択部1502は、不要物の形状に関する情報に基づいて、前記撮像によって画像を取得可能な視点位置の中から、複数の視点位置を選択する選択手段として機能した。
また、不要物除去部1503は、前記選択された複数の視点位置に対応する複数の画像を用いて、前記不要物の像の少なくとも一部が含まれない画像データを生成する生成手段として機能した。
また、本実施例において、視点選択部1502は、複数の撮像部のうちの、前記選択手段によって選択された視点位置に対応する撮像部を、前記撮像装置による画像の取得に用いる撮像部として指定する指定手段として機能した。
また、操作部301は、操作を入力する操作手段として機能した。
また、表示部309は、不要物の像を含む画像を表示する表示手段として機能した。
<第四の実施例>
第一の実施例をそのまま用いて不要物除去を行った時、全視点の画像を用いて不要物除去処理を行っても、不要物の像が完全に除去できない場合がある。これは例えば、画像中に格子状の不要物が含まれ、その格子を形成する各直線の角度と、多眼カメラに含まれる各視点の配置の対象軸の角度が一致しており、かつ多眼カメラに含まれる視点数が少ない場合などに発生する。これは、上述の条件においては全視点を用いた場合であっても過半数の視点で不要物に隠れてしまう点が存在することに起因する。図18(a)にその例を示す。図18(a)は、水平方向と垂直方向に延びる格子状の不要物が存在するシーンを、水平方向と垂直方向に均等な間隔で配置された3×3の視点から撮像した画像を示す図である。画像1801〜画像1809は、それぞれ順番に左上視点、中央上視点、右上視点、中央左視点、中央視点、中央右視点、左下視点、中央下視点、右下視点から撮像された画像である。画像中の文字ABCDEは目的の被写体を示し、交差する直線は目的の被写体の前に存在する格子状の不要物を示している。画像1801〜1809はそれぞれ異なる視点から撮像されているため、互いに視差を有している。不要物は目的の被写体に比べて、画像を撮影したカメラの近くに存在するため、目的の被写体を基準に各画像の位置合わせを行うと、不要物の像が互いにずれた画像群を得ることができる。多視点画像を用いた不要物除去では、この不要物の像のずれを利用して不要物の像の除去を行うが、図18(a)の場合のように、不要物の像の方向と視点の配置の対象軸が一致している場合、各画像間の不要物の像のずれが打ち消されてしまう。そのため、このような画像群に対してベクトルメディアンフィルタを施しても、画像1810のように不要物の像が除去できない点が残ってしまう。
そこで、本実施例では、そのような場合でも不要物の除去を行うことができる方法について説明する。具体的には、ベクトルメディアンフィルタによる不要物除去を行って不要物の像の一部が除去された複数の画像に対して更にベクトルメディアンフィルタによる処理を行うことで、不要物の像を除去する。図18(b)を用いてその概要を説明する。図18(a)に示すような画像が得られた場合、まず、得られた画像群の一部を用いて、不要物の像の一部が除去された画像を得る。図18(b)の例では、水平方向に並んだ画像1801〜1803にベクトルメディアンフィルタ処理を行って、垂直方向の不要物の像を除去した画像1811を得る。同様にして、画像1804〜1806を用いて画像1812を、画像1807〜1809を用いて画像1813を得る。画像1811〜1813はそれぞれ1本の不要物の像しか含まず、かつ不要物の像が互いにずれた画像であるため、画像1811〜1813を用いて再度ベクトルメディアンフィルタ処理を行うことで、不要物の像が除去された画像1814を得ることができる。以上が本実施例で行われる処理の概要である。以下、本実施例の具体的な構成について説明する。
図19は、本実施例における多眼カメラ1900(以下カメラ1900とする)を示す図である。カメラ1900は、カラー画像を取得する9個の撮像部1901〜1909及び撮影ボタン1910を備えており、撮像部1901〜1909は3×3の格子状に配置されている。なお、撮像部の数と配置はこれに限定されず、複数の撮像部を有する撮像装置であればよい。図20は、本実施例におけるカメラ1900の構成を示すブロック図である。カメラ1900の基本的な構成は第一の実施例のカメラ100と同様であるが、視点選択部303が視点選択部2001に、不要物除去部306が第一除去部2002と第二除去部2003に置き換えられている。
以下、カメラ1900で行われる処理について説明する。図21は本実施例のカメラ1900で行われる処理の流れを示すフローチャートである。第一の実施例と同様の処理については図5と同様の符号を付して説明を省略する。ステップS2101では、視点選択部2001が、ステップS501で取得された不要物除去に用いる視点の選択を行う。ここでは、第一の不要物除去処理(以下、第一の除去とする)に用いる視点グループ(視点位置グループ)の選択を行い、その結果を第一除去部2002に出力するが、この処理の詳細については後述する。
ステップS2102では、第一除去部2002が、視点選択部2001から出力された、第一の除去に用いる視点グループを示す情報に基づいて、第一の除去を行う。図18(b)の例を用いて説明すると、視点選択部2001からは、画像1801〜1803に対応する視点グループA、画像1804〜1806に対応する視点グループB、画像1807〜1809に対応する視点グループCを示す情報が入力される。そして、第一除去部2002は、デジタル信号処理部305から入力された画像データのうち、各視点グループに属する画像データ群を抽出し、同じ視点グループに属する画像データ同士でベクトルメディアンフィルタによる不要物除去処理を行う。図18(b)の例では、この不要物除去処理により、視点グループAに対応する画像データ1811と、視点グループBに対応する画像データ1812と、視点グループCに対応する画像データ1813が生成される。第一除去部2002は、ここで生成された画像データ(第一画像データ)を第二除去部2003に出力し、ステップS2103に進む。
ステップS2103では、第二除去部2003が、第一除去部2002から出力された、第一除去処理後の画像データ群を用いて、ベクトルメディアンフィルタによる不要物除去処理を再度行う。これを第二の不要物除去処理(第二の除去)と呼ぶ。第二除去部2003は、第二の除去の結果生成された画像データ(第二画像データ)を符号化部307に出力し、ステップS506〜S507の処理が行われる。なお、視点選択部2001により1つの視点グループしか選択されず、第一除去部2002から出力された画像データが1枚だけの場合は、第二の除去を行わずに符号化部307に出力する。
以上が本実施例のカメラ1900で行われる処理の概要である。次に、本実施例の視点選択部2001で行われる処理(ステップS2101)の詳細について、図22に示す視点選択部2001のブロック図と、図23のフローチャートに基づいて説明する。実施例1で行われているものと同じ処理については、図9のフローチャートと同じ符号を付して説明を省略する。なお、ステップS2301とステップS2303はそれぞれ実施例1におけるステップS904〜S907と、ステップS909〜ステップS913に相当する処理である。ここで行われる処理は実施例1と基本的に同様であるが、ステップS907に対応する処理とステップS913に対応する処理では、視点組決定部2204が、選択した3視点又は5視点を、1組の視点グループとして第一除去部2002に出力する。
ステップS908で除去対象の不要物の像が直線形状のもの2本であると判定された場合、処理判断部2201は、不要物の像が、全視点の画像を用いた1回のベクトルメディアンフィルタ処理で除去可能かどうかを判定する(ステップS2302)。この判定は、以下の方法によって行われる。まず、カメラ1900が有する各視点の相対的な座標に基づいて、カメラ1900が有する各視点に対応する点を2次元の平面上にプロットする。そして、その平面に不要物の像と同じ傾きの直線をプロットした時、各視点に対応する点のうち、プロットした直線と重なる点の数が最も多くなる位置に、不要物の像と同じ傾きの各直線を配置する。その時、直線と重なっている視点の数が、カメラ1900が有する視点の数の過半数以上である場合には、全視点の画像を用いたベクトルメディアンフィルタ処理を行っても、不要物の像が残ってしまう点が発生する。つまり、1回のメディアンフィルタ処理で不要物の像が除去できないと判定される。なお、この時、不要物の太さも考慮して、2次元平面上にプロットする直線にある程度の幅を持たせたり、各視点に対応する点を、ある範囲を占める要域とするようにしてもよい。不要物の像が1回のベクトルメディアンフィルタ処理で除去可能だと判定された場合、ステップS2303に進む。不要物の像が1回のメディアンフィルタ処理で除去できないと判定された場合、処理判断部2201は、不要物形状情報を視点組検出部2202に出力し、ステップS2304に進む。
不要物の像が1回のメディアンフィルタ処理で除去できないと判定された場合、視点組検出部2202は処理判断部2201から入力された不要物形状情報に基づいて、視点グループ検出の基準となる基準直線を選択する(ステップS2304)。基準直線としては不要物に対応する2本の直線のうちどちらを選択してもよいが、カメラ1900において一列に並んでいる視点の数が最も多い軸に対する角度が大きい方の直線を選択した方が、不要物除去の成功率は高くなる。なお、選択した基準直線を用いて後述の処理を行い、不要物除去処理に失敗した場合は、基準直線を選択し直して以降の処理をもう一度行うようにしてもよい。
次に、視点組検出部2202は、ステップS2302で設定した2次元平面において、基準直線の位置を変化させながら、基準直線に重なる視点を探索する(ステップS2305)。そして、ある直線位置において基準直線に重なる視点が3視点以上ある場合には、そのうちの3視点を選択して、その直線位置に対応する一組の視点グループとして検出する。なお、ここで検出する各視点グループはそれぞれ互いに異なる直線位置に対応する組となるように選択する。次に、視点組検出部2202は、ステップS2306で検出した、互いに異なる直線位置に対応する視点グループが3組以上存在するかどうかを判定する(ステップS2306)。検出された視点グループが3組以上であると判定された場合は、ステップS2310に進む。検出された視点グループが3組に満たない場合は、ステップS2307に進む。
次に、視点組検出部2202は、ステップS2305と同じ2次元平面において、基準直線の位置を変化させながら、ある直線位置において基準直線に重なる2視点と、その他の1視点との組を検出する(ステップS2307)。ここで検出された視点グループは、その視点組が検出された際の基準直線の位置に対応する視点グループとして検出される。なお、ここで検出されるその他1視点は、同時に検出される2視点のどちらとも、基準直線ではない方の不要物の直線上に重なる位置関係に無い視点である必要がある。この理由を、除去対象の不要物が、カメラ1900の前を水平方向に走る直線と垂直方向に走る直線の2種類の傾きの直線で構成される格子であった場合を例にして説明する。この時、不要物除去に用いる視点として、水平方向の直線状に存在する視点1807と視点1808に加え、視点1804を追加の1視点として選択すると、水平方向の不要物の像は視点1807と1808の画像において同じ位置に存在するため除去できない。更に、垂直方向の不要物の像は、視点1804と1807の画像において同じ位置に存在するため、こちらも同様に除去することができない。つまり、上記のような視点の組み合わせでは不要物の像は全く除去されないため、ここではそのような視点の組は選択しないようにする。
次に、視点組検出部2202は、ステップS2305とステップS2307で検出した、異なる直線位置に対応する視点グループの数が3組以上になったかどうかを判定する(ステップS2308)。異なる直線位置に対応する視点グループの数が3組以上になったと判定された場合、視点組検出部2202は検出された視点グループを示す情報を残存点算出部2203に出力し、ステップS2309に進む。ステップS2307を終えても異なる直線位置に対応する視点グループの数が3組に満たない場合は、2段階のベクトルメディアンフィルタ処理による不要物の像の完全な除去が難しいとして、ステップS914に進む。ステップS914では、視点組決定部2204が、撮像可能な全視点を不要物除去に用いる1つの視点グループとして決定し、第一除去部2002に出力する。
次に、残存点算出部2203は、視点組検出部2202から出力された各視点グループを用いて第一の不要物除去処理を行った際に、不要物の像が除去されずに残る点(残存点)を算出する(ステップS2309)。不要物の像が除去されずに残る点について、図24を用いて説明する。ここでは、不要物として、水平方向に対してそれぞれ45度傾いた、互いに直交する直線で構成される格子が存在し、撮影者から見て垂直方向から右側に45度傾いた直線を基準直線とした場合を想定する。図24(a)は、基準直線に重なる3視点の組を用いてベクトルメディアンフィルタ処理を行った例である。第一の除去に用いる視点として、カメラ1900の撮像部1903、1905、1907が選択されている。画像2401は撮像部1907により撮像された画像、画像2402は撮像部1905により撮像された画像、画像2403は撮像部1903により撮像された画像である。画像2401〜2403では、基準直線はどの画像においても同じ位置に存在しているが、もう一方の直線は各画像間で視差が生じているため、第一の除去後の画像2404は、不要物として基準直線の像のみが残った画像となる。図24(b)は、基準直線に重なる2視点と、その他の視点1視点からなる視点グループを用いてベクトルメディアンフィルタ処理を行った例である。第一の除去に用いる視点として、カメラ1900の撮像部1901、1906、1908が選択されている。画像2411は撮像部1901により撮像された画像、画像2412は撮像部1906により撮像された画像、画像2413は撮像部1908により撮像された画像である。画像2412と2413において基準直線は同じ位置に存在しているが、画像2411では違う位置に存在している。基準直線ではない方の直線は、3枚の画像全ての間で視差が付いている。このような視点の組み合わせでは、画像2412および2413における基準直線の像の他に、画像2411での基準直線の像と、画像2412および2413における基準直線ではない方の直線の像との交点が除去されずに残った画像が得られる。
次に、不要物が残る点の計算方法について説明する。簡単の為に、不要物が残る点の計算は、実際の画像上の位置とは縮尺が異なる、各視点の位置関係と不要物の直線の位置関係を示す座標系で行う。例えば、ステップS2302で用いた座標系などを用いればよい。この座標系であっても、不要物が残る点の位置関係を判定できる。基準直線の傾きをa、基準直線ではない方の不要物の直線の傾きをa’とし、各視点グループに含まれる視点の座標を(xA,yA)、(xB,yB)、(xC,yC)とする。この時、3視点が共に基準直線に重なる視点グループでは、残る不要物の像の直線が以下の式で表わされる。y=ax+yA−axA
また、基準直線に重なる2視点とその他1視点からなる視点グループを用いてベクトルメディアンフィルタ処理を行うと、不要物の像として直線と点が残る。この時、基準直線に重ならない1視点の座標を(xc,yc)、第一の処理後に残る直線と点は以下の式で表わされる。
このステップでは、残存点算出部2203が、視点グループに含まれる各視点の座標と、不要物に対応する直線の傾きとを上記の式に代入し、得られた直線の式および点の座標を視点組決定部2204に出力する。
次に、視点組決定部2204では、第一の除去に用いる3つの視点グループの決定を行う(ステップS2310)。第一の除去に用いる視点グループの候補として、3視点共に同じ直線位置で基準直線に重なる視点の組のみが検出されている場合には、その中から3組をランダムに選択し、第一の除去に用いる視点グループとする。なお、対応する直線位置が互いに離れている組を選択するようにしてもよい。第一の除去に用いる視点グループの候補として、3視点共に同じ直線位置で基準直線に重なる視点の組と、同じ直線位置で基準直線に重なる2視点に加えてその他の1視点を検出している場合は、残存点の重なりの判定を行う。視点組決定部2204はステップS2309で算出された直線の式と点の座標を各グループの間で比較することで、互いに残存点が重ならない3つの視点グループの組み合わせを探索する。残存点が全く重ならない視点グループの組み合わせが2組以上存在する場合には、その中の1組をランダムで選択し、第一の除去に用いる3つの視点グループとする。残存点が全く重ならない視点グループの組み合わせが存在しない場合は、残存点の重なりが最も少ない視点グループの組み合わせを、第一の除去に用いる3つの視点グループとして選択する。なお、この残存点の重なりの判定においては、不要物の太さを考慮して、残存する直線と点にある程度の幅を持たせるようにしてもよい。視点組決定部2204は、ここで決定した視点グループを示す情報を第一除去部2002に出力して処理を終了する。
以上の構成によると、画像合成による不要物除去を行う場合に、不要物が格子状であって、撮像する視点の数と配置の関係によって1回のベクトルメディアンフィルタ処理で不要物が除去できない場合であっても、不要物の除去を行うことができる。なお、不要物の像を完全に除去するためには、少なくとも9つの異なる視点で撮影された画像が必要であるが、それ以下の視点数の画像に対して本発明を適用した場合であっても、残存する不要物の像を低減するという効果がある。また、本実施例では、それぞれが3視点から成る異なる3つの視点グループを用いてベクトルメディアンフィルタ処理を行ったが、視点グループの数や視点グループに含まれる視点の数はこれに限定されない。例えば、視点グループに含まれる視点の数を5視点にしたり、視点グループの数を5組にしてもよい。
<その他の実施例>
実施例は上記の構成に限定されるものではなく、上記の複数の実施例を組み合わせた構成であってもよい。例えば、第三の実施例において、各パッチ内の不要物の直線近似が画像認識処理により行われてもよい。
また、上記の実施例では、多眼カメラにより取得された画像を用いて不要物除去処理が行われたが、複数の視点に対応する画像を取得可能な撮像装置どのような撮像装置に取得された画像を用いて不要物除去処理が行われてもよい。例えば、撮像素子の前にマイクロレンズアレイを備えたPlenopticカメラにより取得された画像を用いて不要物除去処理が行われてもよい。また、上記の実施例では、複数の撮像部が格子状に配置された多眼カメラを用いて取得された画像に対して不要物除去処理を行う例について述べたが、多眼カメラの撮像部の配置の形態はこれに限られない。例えば、図25(a)に示すような、撮像部が放射状に配置された多眼カメラについても本発明は適用可能である。また、図25(b)に示すような、撮像部が円状に配置された多眼カメラでも、図25(c)に示すような撮像部がランダムに配置された多眼カメラに本発明を適用してもよい。
また、実施例は撮像部と処理部を備えたカメラのみに限定されるものではなく、上記の実施例で行われる処理の一部が別のコンピュータによって行われる情報処理システムであってもよい。例えば、不要物の形状に基づいて、カメラが取得した画像から特定の視点の画像を抜き出してコンピュータに出力し、コンピュータによって不要物除去処理が行われる情報処理システムであってもよい。
なお、本発明は例えば、システム、装置、方法、プログラムもしくは記憶媒体等としての実施態様をとることが可能である。また、複数の機器から構成されるシステムに適用しても良いし、一つの機器からなる装置に適用しても良い。
また、本発明はソフトウェアのプログラムをシステム或いは装置に直接或いは遠隔から供給し、そのシステム或いは装置のコンピュータが該供給されたプログラムコードを読み出して実行することによって前述した実施形態の機能が達成される場合を含む。この場合、供給されるプログラムは実施形態で図に示したフローチャートに対応したコンピュータプログラムである。従って、本発明の機能処理をコンピュータで実現するために、該コンピュータにインストールされるプログラムコード自体も本発明を実現するものである。つまり、本発明は、本発明の機能処理を実現するためのコンピュータプログラム自体も含まれる。その場合、プログラムの機能を有していれば、オブジェクトコード、インタプリタにより実行されるプログラム、OSに供給するスクリプトデータ等の形態であっても良い。
コンピュータプログラムを供給するためのコンピュータ読み取り可能な記憶媒体としては例えば、ハードディスク、光ディスク、光磁気ディスク、MO、CD−ROM、CD−R、CD−RW、などがある。また、磁気テープ、不揮発性のメモリカード、ROM、DVD(DVD−ROM,DVD−R)などでも良い。
その他、プログラムの供給方法としては、クライアントコンピュータのブラウザを用いてインターネットのホームページに接続し、該ホームページから本発明のコンピュータプログラムをハードディスク等の記憶媒体にダウンロードすることが挙げられる。この場合、ダウンロードされるプログラムは、圧縮され自動インストール機能を含むファイルであっても良い。また、本発明の機能処理をコンピュータで実現するためのプログラムファイルを複数のユーザに対してダウンロードさせるWWWサーバも、本発明に含まれるものである。