以下、図面を用いて本発明の実施例について詳細に説明する。
図1は、本発明による実施例1の画像処理装置のハードウェア構成の一例を示すブロック図である。以下、図1について詳細に説明する。多眼カメラ撮像部101は、相互に独立した光学系と撮像素子とを持つ相互に独立した複数のカメラの集合体である。多眼カメラ撮像部101は、撮像素子の制御部等を含み、複数の撮像素子からの出力データの集合を多視点画像データとして出力する。
RAM102は、多眼カメラ撮像部101で撮像した多視点画像データの一時記憶や生成したリフォーカス画像データの一時記憶、およびその他演算途中のデータなどの一時記憶に使用する為のメモリである。FlashROM107は、不揮発メモリであり、過去にユーザーが選択した画像(種別と位置)や操作に関する操作履歴を累積、記憶する履歴情報記憶部として機能する。外部メモリ109は、SDカードなどの外部メモリである。また、外部メモリ109は不揮発メモリであり、電源を切っても画像データは保存される。外部メモリ109には、多眼カメラ撮像部101で撮像した多視点画像データが、例えば図8に示される画像データフォーマットに従って画像ファイルとして保存される。画像データフォーマットの詳細は後述する。また外部メモリ109は、処理中の画像データを一時画像ファイルとして一時的に保存する領域としても利用される。
メモリ制御部110は、いわゆるバスシステムと、バスシステムに接続されるメモリやデバイスの制御部から構成され、例えば、RAM102、FlashROM107、外部メモリ109の各メモリに対するデータの読み書きを制御する。
ユーザーI/F(インターフェース)106は、機器の操作や、ユーザーがリフォーカス表示を希望する画像又は領域を選択したり、又は撮像済み画像の表示に係わるモード選択を行う為のI/F(インターフェース)である。具体的には、ディスプレイ105上に設置されるタッチパネルや、シャッターボタン、操作ダイヤルなどユーザーI/Fに対応する。
全体制御部(CPU)108は、機器全体の制御や、FlashROM107に記憶されている履歴情報から最も頻度の高い領域を選択し、リフォーカス演算部103へ指示するなどの演算制御を行う。
リフォーカス演算部103は、全体制御部108の指示に従って、多視点画像データからリフォーカス画像データを生成する。ここで、多視点画像データからリフォーカス画像データを生成する概要を説明する。ライトフィールドフォトグラフィでは、多視点画像データから、空間中の複数の位置について、それぞれの位置を通過する光線の方向と強度(ライトフィールド、以下、「LF」という。)を計算する。そして、得られたLFの情報を用いて、仮想の光学系を通過して仮想のセンサに結像した場合の画像を計算する。このような仮想の光学系やセンサを適宜設定する事で、所定の対象に焦点を合わせた合成画像データであるリフォーカス画像データを生成することが可能となる。なお、リフォーカス処理は本実施例の主眼ではなく、上述した手法以外の手法を用いても良い。生成されたリフォーカス画像データは、RAM102や、外部メモリ109などへ格納される。詳細は後述する。
グラフィックプロセッサ104は、リフォーカス演算部103で生成されたリフォーカス画像データをディスプレイ105に表示する機能を具備している。ネットワークI/F1110は、機器外とネットワーク接続を行い、ネットワーク上の外部機器との間でデータ転送を行う。
画像解析部112は、画像データ中の被写体の領域を検出し、領域毎に識別コードを割り当てる。画像解析部112は、検出した被写体の領域情報と識別コードとをRAM102に記憶する。本実施例の被写体とは、前景にあたる人や動物だけでなく、背景に含まれる風景部分も含む物体であるとする。被写体の検出は、例えば、いくつかの顕著な特徴(2つの目、口、鼻など)とその特徴間の固有の幾何学的位置関係とを利用することで実施できる。あるいは、被写体の検出は、顔の対称的特徴、顔色の特徴、テンプレート・マッチング、ニューラル・ネットワークなどを利用することによっても実施できる。背景の検出は、例えば前述の方法で画像内の人物や動物の顔を検出し、その位置やサイズを算出する。この算出結果に基づいて画像中の人物を含む被写体領域と、それ以外の背景領域とに画像を区分することができる。例えば、被写体領域を矩形と仮定すると、領域情報の形式は、左上と右下の座標で示される。また、被写体の識別対象は、人(又は顔)、動物、風景の三種類としているが、これに限定されず、さらに細かい分類をすることも可能である。なお、被写体の検出および識別方法は、本実施例の主眼ではなく、上述した手法以外の手法を用いても良い。画像解析部112での被写体検出および認識機能は、画像撮像後、直ちに実施され、その結果は例えば、FlashROM107や外部メモリ109のような不揮発メモリに記憶される。したがって、本実施例の説明に於いては、これら被写体の領域情報と識別コードとが既に記憶されていることを前提とする。
多眼カメラ撮像部101が撮像した多視点画像データは、図8の画像データフォーマットに従って、画像ファイルとして、外部メモリ109に記録される。
図8は、本実施例に於ける多視点画像データを画像ファイルとして保存する際に用いる画像データフォーマットを説明する図である。図8に示す画像ファイルは、画像幅を示す情報801、画像高さを示す情報802、リフォーカス位置情報803、多視点画像ヘッダ情報810、多視点画像データ804を含む。
リフォーカス位置情報803は、位置情報存在フラグ805を含む。位置情報存在フラグ805は、リフォーカス位置情報が存在するか否かを示す情報である。この位置情報存在フラグは、例えば初期状態(履歴が無い状態)では0(偽)である。1(真)である場合に後続の位置情報806〜809の値を有効とすることができる。すなわち、位置情報存在フラグが真である場合、リフォーカスされた位置を示す情報が含まれていることになる。Top_left_x806は、リフォーカス領域の左上のX座標を示す情報である。Top_left_y807は、リフォーカス領域の左上のY座標を示す情報である。Bottom_right_x808は、リフォーカス領域の右下のX座標を示す情報である。Bottom_right_y809は、リフォーカス領域の右下のY座標を示す情報である。
なお、位置情報存在フラグ805は、画像ファイルの付加の真偽を示す一ビットの情報で十分であるが、かならずしも、1ビットに限定されない。リフォーカス位置情報フォーマットの形式を示す多値をとってもよい。例えば、次のような構成をとることも可能である。位置情報存在フラグ805が0の場合は、位置情報が存在しない。位置情報存在フラグ805が1の場合は、位置情報は、上述のように矩形情報として表現される。位置情報存在フラグ805が2の場合は、位置情報は、フォーカス対象を示す円の中心座標と半径を位置情報として表現される。
多視点画像ヘッダ情報810には、リフォーカス処理を行うために必要な情報や補助的な撮像情報が含まれる。例えば、カメラ機種名、レンズ構成、撮像日、シャッタースピード、および、露出プログラムなどである。また、多視点画像ヘッダ情報810には、リフォーカス処理に用いられる多視点画像データの中の各画像データの位置情報が含まれる。つまり、各撮像部の位置を示す情報が含まれる。本実施例では、位置情報存在フラグの真偽に関わらず、位置情報806〜809が存在する構成例を示している。しかしこの例に限定されず、位置情報存在フラグが偽の場合は、位置情報806〜809エントリーそのものを画像データに含めない構成とすることも可能である。また、リフォーカス位置情報は、任意の形状を示すように構成することも可能であり、本実施例で説明する矩形領域に限定するものではない。
なお、多視点画像データ804は、撮像素子から得られたRAW画像データであってもよいし、デモザイキング処理、ホワイトバランス処理、ガンマ処理、及びノイズ低減処理などの現像処理が施された現像後画像データであってもよい。また、本実施例では多眼カメラ撮像部101を用いる例を説明したが、多視点画像データは複数の視点位置からのデータであればよく、例えばマイクロレンズアレイを用いて得られる撮像データを用いてもよい。
図2は、再生モードに移行してから、1枚目のリフォーカス画像を表示するまでのフローチャートである。再生モードは、外部メモリ109に保存された画像ファイルをディスプレイ105で表示する制御を行う動作モードである。図2のフローは、全体制御部(CPU)108が、リフォーカス演算部103およびグラフィックプロセッサ104等を制御することにより実行される。
全体制御部108が、図2に示す制御を実行する為のプログラムは、例えば、FlashROM107等に記憶されている。また、上述したリフォーカスのためのプログラムも同様に記憶されている。図2に示すフローに於ける画像ファイルは、多眼カメラ撮像部101により撮像された多視点画像データが、図8で示すようにヘッダ情報と共に外部メモリ109に既に記録されていることを前提としている。
ステップS201では、全体制御部108は、動作モードを再生モードに移行する。ステップS201の処理に移る場合として、以下の3パターンが考えられる。
1.再生モード以外で起動中であり、その後再生モードに切り換え
2.起動時に既に再生モード
3.再生モードで別の画像を指定された時
ステップS202では、全体制御部108が画像ファイルを外部メモリ109から取得する。ステップS203では、全体制御部108が再生リフォーカスモードと履歴情報とを取得して、処理をS204へ移行する。再生リフォーカスモードとは、リフォーカス演算済みの画像データ(以下、リフォーカス画像データと称する)を表示する際に、例えば、人モード、風景モード、動物モードなどを選択するモードである。履歴情報とは、過去にユーザーが選択した画像データの種別及び位置や、操作に関する履歴を累積した情報である。履歴情報の詳細については後述する。ステップS204では、全体制御部108が読み込んだ画像ファイルのヘッダ情報を解析する。ヘッダ情報は、図8の801から803に該当する。本実施例では、リフォーカス位置情報803を特に解析する。
ステップS205では、全体制御部108が、ステップS204で解析したヘッダ情報に推奨パラメータが存在するか否かを判定する。推奨パラメータとは、画像ファイルをリフォーカスする際に推奨される画像や表示方法などを示すパラメータである。推奨パラメータが存在する場合には処理がステップS206に移行し、存在しない場合にはステップS207に移行する。本実施例では、図8に示される位置情報存在フラグ805を1ビットのフラグとして扱い、フラグの値が1の場合には、全体制御部108は、推奨パラメータが存在すると判定してステップS206に遷移する。フラグの値が0の場合は、全体制御部108は推奨パラメータが存在しないと判定してステップS207に移行する。
ステップS206では、全体制御部108は、ステップS202で読み込んだ画像ファイルのリフォーカス位置情報803を解析して得られた推奨パラメータを利用してリフォーカス演算部103を制御し、リフォーカス画像データを生成する。
具体的には、リフォーカス演算部103は、再生ファイルに含まれる多視点画像データ804から、位置情報806と808との平均をX座標、位置情報807と809との平均をY座標とする位置にフォーカスが合った画像データを生成する。リフォーカス演算部103で生成されたリフォーカス画像データは、グラフィックプロセッサ104を介して、ディスプレイ105に表示される。また生成されたリフォーカス画像データは、図7に示される一時画像ファイルフォーマットに従って一時画像ファイルとして、外部メモリ109又はRAM102に保存される。図7は、リフォーカス演算部103で生成されたリフォーカス画像データを含む画像ファイルの一時画像ファイルフォーマットの一例を示す図である。一時画像ファイルフォーマットに従う画像ファイルは、リフォーカス位置情報702と、リフォーカス画像データ705とを含む。リフォーカス位置情報702には、リフォーカス画像データ705のリフォーカス処理を行った際にフォーカスを合わせた位置を示す情報が含まれる。位置情報706〜709は、図8の位置情報806〜809と同じ情報とすることができる。なお、図7に示す一時画像ファイルは、例えばリフォーカスの画像データ毎に生成される。
ステップS206に処理が進んでいるということは、推奨パラメータが存在していることになる。従って、その推奨パラメータに含まれる情報を図7の702で示すリフォーカス位置情報に含めた一時画像ファイルを記憶する。なお、一時画像ファイルの記憶場所は、外部メモリ109、RAM102に限定されるものではなく、ネットワークI/F111を介して、クラウド上に存在する任意の記憶装置に記憶しても良い。
次に、ステップS205にて、ヘッダ情報に推奨パラメータが存在しない場合の処理を説明する。ステップS207の処理は、ステップS202でメモリから読み出した画像ファイルに推奨パラメータが無い場合、即ち再生モードでの表示が初めての画像ファイルである場合の処理である。本実施例では、履歴情報に基づいてリフォーカス画像データを生成し、一時画像ファイルとして記憶する。また、履歴情報の更新を実施する。履歴情報に基づいてリフォーカス画像データを生成する処理、および履歴情報を更新する処理については、図3に関連して説明するため、ここで説明を省略する。
ステップS208は、グラフィックプロセッサ104がステップS207で生成したリフォーカス済み画像をディスプレイ105に表示する。図6は、ステップS206又はステップS207で生成されたリフォーカス画像データを表示した際の一例を示す図である。図6の(a)は、風景(樹木)にフォーカスの合った画像の例を示してある。
ステップS209では、グラフィックプロセッサ104がパラメータ選択UI画面を追加でディスプレイ105に表示する。パラメータ選択UI画面を追加した例を図6(b)に示す。図6(b)の例に於いては、タッチパネルでユーザーがフォーカスを合わせたいポイントを指定することを想定している。すなわち、グラフィックプロセッサ104は、フォーカスを合わる位置(パラメータ)をユーザーに入力させるためのUI画面を表示する。なお、パラメータは、画像中の2次元の位置情報を表してもよいし、多視点画像の中の空間的な距離(奥行き)を表してもよい。
ステップS210では、全体制御部108は、ステップS202で読み取った画像ファイルのリフォーカス位置情報803の更新を実施する。すなわち、ヘッダ情報に推奨パラメータが存在していない場合、ステップS207でリフォーカス位置が決定された領域の位置情報でリフォーカス位置情報803を更新する。なお、ヘッダ情報に推奨パラメータが存在している場合、ステップS202で読み取った画像ファイルのリフォーカス位置情報803の更新は行わなくてよい。以上が、再生モードを起動した場合の動作、すなわち、ある画像ファイルを読み取った場合の最初に表示されるリフォーカス画像に関する処理である。
続いて、1枚目のリフォーカス画像データを表示した後の動作(2枚目以降のリフォーカス画像データの表示、動作の終了等)について、図3を用いて説明する。すなわち、図2のフローで説明した画像ファイルを読み取った場合に最初に表示されるリフォーカス画像を表示した後の処理を図3を用いて説明する。図3に示すフロー全体が、図2のフローと同様に、全体制御部108により制御されている。
図2のステップS209で、図6(b)に示すパラメータ選択UIが表示されると、ユーザーは、表示されたUIを利用して、パラメータの選択を行う事が可能になる。ステップS301では、全体制御部108は、UIを使用して、ユーザーがパラメータを選択した時は、処理をステップS304へ移行する。本実施例では、ユーザーが画面上の1点を指定することによって、パラメータを選択することとする。次に、ステップS304では、ステップS301でユーザーによって選択されたパラメータを取得する。ステップS304では、全体制御部108は、図7の形式で記憶されている一時画像ファイル群の中から、ステップS301にてユーザーが指定(選択)したパラメータを含むリフォーカス画像データが存在するか否かを判定する。すなわち、ユーザーが指定したパラメータを含むリフォーカス位置情報702を含む一時画像ファイルが存在するか否かを判定する。ステップS304でユーザーが指定したパラメータに適合するリフォーカス画像データを含む一時画像ファイルが存在する場合、全体制御部108は、処理をステップS309へ移行する。ステップS309では、前記リフォーカス画像を含む一時画像の情報(位置、表示履歴情報)を更新し、処理をステップS306へ移行する。詳細は後述する。
ステップS306では、グラフィックプロセッサ104が、ユーザーが指定したパラメータに適合するリフォーカス画像データを含む一時画像を所定のディスプレイ105に表示する。
一方、ステップS304で、ユーザーが指定したパラメータに適合するリフォーカス画像データを含む一時画像ファイルが存在しなかった場合は、全体制御部108は、処理をステップS305へ移行する。ステップS305では、ステップS301でユーザーが指定したパラメータに基づいて、リフォーカス演算部103が、当該パラメータが示す領域にフォーカスが合ったリフォーカス画像データを生成する。ステップS305では、生成したリフォーカス画像データを例えば、RAM102等に図7に示す一時画像ファイルとして記憶する。
ステップS305の処理が完了したら、全体制御部108は、処理をステップS309へ移行する。
ステップS309では、ステップS305にて、ユーザーが、ステップS301で指定したパラメータに従って生成したリフォーカス画像に関する情報(位置および表示履歴情報)の更新を実施し、処理をステップS306へ移行する。詳細は後述する。
ステップS306では、例えば、RAM102等から、ステップS301で指定されたパラメータに従って生成または選択されたリフォーカス画像データを読み出して、ディスプレイ105へ表示する。
ここで、ステップS309に於ける情報更新について、詳しく説明する。先に説明したように、画像解析部112によって、撮像後の多視点画像データ内の被写体の領域が検出され、領域毎に識別コードを割り当てられ、領域情報と識別コードとがFlashROM107や、外部メモリ109のような不揮発メモリに記憶されている。ここでは、記憶されている領域情報と指定されたパラメータとを比較して、領域情報の中に指定されたパラメータが含まれている場合、その領域情報を位置情報として更新する。すなわち、被写体として分類され、その被写体の位置が特定されている領域情報を、一時画像ファイルのリフォーカス位置情報702として更新する。一方、記憶されている領域情報と指定されたパラメータとを比較して、領域情報の中に指定されたパラメータが含まれていない場合、指定パラメータを一時画像ファイルのリフォーカス位置情報702として更新する。
次に、履歴情報について、図5を用いて説明する。図5に於いて、識別コードは、画像解析部112で識別された識別コードである。頻度は、再生モードに於いて、識別コード(人、風景等)で示される各領域に対して、ユーザーがフォーカスを合わせた画像の表示を指示した頻度のことである。この頻度は、ある画像ファイルごとの頻度であってもよいし、画像ファイルを問わずに、画像処理装置におけてあるユーザーが指示した頻度であってもよい。図5(a)は、501が識別コード=風景、502が識別コード=人、503が識別コード=動物の例を示している。ここで、識別コード毎の頻度順位は、以下の通りである。
1位:風景(501)
2位:人(502)
3位:動物(503)
図5(b)は、識別コード=人に関して、識別コードを更に細分化した例を示したものである。なお、娘、息子、父の区別は、例えばそれぞれの顔画像の特徴ベクトルを算出しておき、人物と判定された領域の特徴ベクトルと比較することによって判定することができる。ここで、識別コード毎の頻度順位は、以下の通りである。
1位:ユーザーの娘(505)
2位:ユーザーの息子(506)
3位:ユーザーの父(507)
4位:登録外の人物(508)
本実施例に於いて、履歴情報は、各識別コードの頻度情報のことを指す。
次に履歴情報の更新について述べる。先に説明したように、領域情報の中に指定されたパラメータが含まれていた場合、その領域に関連付けられた識別コードの頻度情報をインクリメントする。一方、領域情報の中に指定されたパラメータが含まれていない場合、有用な情報は、座標情報のみなので、履歴情報は更新しない。
次にステップS301で、ユーザーが、パラメータを選択しなかった場合の処理について説明する。すでに表示されている画像を継続して表示した状態で、処理をステップS302へ移行する。
ステップS302では、画像解析部112で抽出した全ての領域情報に対して、全体制御部108は、各領域情報にフォーカスを合わせたリフォーカス画像データを生成したか否かを判定する。具体的には、全ての領域情報に対して、各領域情報を含むリフォーカス位置情報702を有する一時画像ファイルが存在するか否かを判定する。
ステップS302で、全ての領域情報に対して、リフォーカス画像を生成していないと判定された場合、処理をS303へ移行する。一方、ステップS302で、全ての領域情報に対して、リフォーカス画像の生成が完了していると判定された場合は、処理をS307へ移行する。
全ての領域情報に対して、リフォーカス画像を生成していないと判定された場合、ステップS303で、履歴情報に基づいて、リフォーカス画像データを生成する。詳細は後述する。次に生成したリフォーカス画像をS306で表示した後、ステップS307へ移行する。
S307では、全体制御部108は、再生モードを終了するか、継続するかを判定する。S307に於ける再生モードの終了条件は、例えば以下の3つである。
1.再生モードを除くモードに切り換えた時
2.電源をOFFした時
3.再生モードで別の画像を指定された時
S307で再生モード終了と判定された場合は、処理をS308へ移行し、再生モードの終了に必要な各種処理が実行され、再生モードを終了する。一方、ステップS307で再生モード継続と判定された場合は、処理をステップS301へ戻し、ステップS301からの操作を繰り返す。
なお、パラメータ選択は、ユーザーが画面上の1点を指すことで行うこととしたが、閉領域として指定することも可能である。例えば、ユーザーが指定した点を含む画像および指定された閉領域に含まれる画像をFlashROM(履歴記憶部)107の履歴と比較することにより、履歴情報の有無を判定することができる。
次に、図2のS207と図3のS303に於ける処理詳細について、図4のフローチャートを用いて説明する。図4のフローチャートに示す処理は、全体制御部(CPU)108が、リフォーカス演算部103およびグラフィックプロセッサ104等を制御することにより、実行される。
先に説明したように、画像解析部112によって、撮像後の多視点画像データ内の被写体の領域が検出され、かつ領域毎に識別コードを割り当てられ、領域情報と識別コードとがRAM102や、外部メモリ109のような不揮発メモリに記憶されている。また、履歴情報は、図5に示す頻度情報のこととする。即ち、過去の履歴(頻度)は、風景画像が頻度1位、人の画像が2位、動物の画像が3位であると仮定する。更に、人の画像は、頻度1位が娘、2位が息子、3位が父、4位が登録外人物と仮定する。
ステップS401では、全体制御部108は、リフォーカス画像データを未生成の領域を特定する。まず、全体制御部108は、対象画像データ(すなわち、S202で読み込んだ画像ファイルの多視点画像データが示す画像データ)に関する画像解析結果の識別コード及び領域情報のペアの全てを取得する。また、全ての一時画像ファイルに含まれるリフォーカス画像データの位置情報を取得する。次に、取得した情報の中から、一時画像ファイルに含まれるリフォーカス位置情報702と、領域情報とを比較する。そして、位置情報が領域情報に含まれるものは省いて、対応する位置情報が存在しない領域情報を抽出する。この領域情報は、即ち、リフォーカス画像データを生成していない領域に対応する。
次に、全体制御部108は、ステップS402で、ステップS401で抽出した領域情報に関連付けられた識別コードの中で、履歴情報の頻度が最も高い識別コードに一致するものを選択する。選択の結果、風景に該当する識別コードの頻度が、最上位であった場合、ステップS403へ移行する。ステップS403では、風景画像に対応する領域が、S401で抽出した領域情報にあるか否かを判定する。風景画像がある場合、ステップS404へ移行する。
ステップS404では、識別コードが風景である領域情報を抽出して、それが1つである場合は、その領域を次にリフォーカス画像データを生成する領域として決定する。また風景に該当する識別コードを持つ領域が複数存在する場合、例えば、領域情報の左上のX座標とY座標をもって、順位を決定することができる。具体的には、X座標の値が小さい順にリフォーカス演算順位を決定することができる。また、同一のX座標が複数存在する場合は、Y座標の小さい順でリフォーカス演算順位を決定することができる。ここでは、最も順位の高い領域情報を次にリフォーカス画像を生成する領域として決定する。
次に処理をステップS405へ移行する。ステップS405では、リフォーカス演算部103が、ステップS404で決定された順位に基づいて当該順位の領域情報にフォーカスを合わせたリフォーカス画像データを生成する。具体的には、多視点画像データから、左上と右下の座標の平均を取った結果をX座標、Y座標とする位置にフォーカスが合った画像データを生成する。
次に、処理をステップS406へ移行する。ステップS406では、ステップS405で生成したリフォーカス画像データと共に、そのフォーカスを合わせた領域情報をリフォーカス位置情報とした一時画像ファイルを図7に示す一時画像ファイルフォーマットで記憶する。
次に処理をステップS407へ移行する。ステップS407では、履歴情報を更新する。具体的には、選択された識別コードに該当する頻度をインクリメントする。そして処理を終了する。
次に、ステップS402に戻って、選択の結果、人に該当する識別コードの頻度が、最上位であった場合、ステップS409へ移行する。ステップS409では、人の画像があるか否かを判定する。人の画像がない場合、ステップS402に戻る。人の画像がある場合、ステップS410に移行する。ステップS410では、図5(b)で示すような登録者の識別コードがあるか否かを判定する。登録者の識別コードがあった場合、処理をステップS411へ移行する。ステップS411では、履歴情報の中に、ステップS410で存在が確認された登録者がいるか否かを判定する。履歴情報の中に登録者がいた場合、処理をステップS412へ移行する。ステップS412では、履歴情報の頻度に従って、リフォーカス画像生成の順位を決定する。図5(b)では、順位1位が娘、2位が息子、3位が父というようになっているので、例えば、識別コードの中に娘が存在すれば、娘を最上位とする。
ステップS411で、履歴情報の中に登録者がいない場合、処理をステップS413へ移行する。また、ステップS410で、登録者の識別コードが無かった場合、処理をステップS414へ移行する。なお、ステップS413及びS414は、S404と同様の処理を行う。
次に、ステップS402に戻って、選択の結果、動物に該当する識別コードの頻度が、最上位であった場合、ステップS415へ移行する。ステップS415で動物の画像があると判定した場合、ステップS416へ移行する。なお、ステップS416の処理については、S404と同様の処理を行うことができる。
以上、説明したように構成することによって、過去の履歴を利用することで、リフォーカス画像データの生成をユーザーに指示される前に、実施することが可能となる。すなわち、多視点画像データを含む画像ファイルを最初に読み出した際に、そのファイルのヘッダ情報に推奨パラメータが含まれていない場合、履歴情報を用いてリフォーカス画像データをユーザーの指示なしに生成することができる。また、履歴情報を用いることで、そのユーザーが過去にフォーカスを合わせた被写体の頻度に応じてリフォーカス画像データを生成することができる。ユーザーの指示なしに予めリフォーカス画像データを生成しておくことによって、ユーザーが希望するフォーカス領域を指定した時、リフォーカス演算時間を待つことなく、ユーザーが希望するリフォーカス画像を表示することが可能となる効果がある。
また、リフォーカス画像を表示中に次のリフォーカス画像を予測し、リフォーカス演算を実施することが可能となったことにより、演算リソースの利用効率が向上し、ハードウェア的なグレードアップ無しで処理速度が向上することと同様の効果を期待できる。
更に、リフォーカス演算回数を重ねる度に、ユーザーの趣向をより明確に判定することができるので、使い込む毎にリフォーカス領域の予測精度が向上し、リフォーカス画像の切り換えの高速化が期待できる。
また、本実施例では、多視点画像データが含まれる画像ファイルに、ユーザーが最後に指定したフォーカス位置を特定するパラメータ情報を埋め込んでいる。これにより、次回、画像ファイルを読み込んで、表示する際、ユーザーが最後に表示していた画像を、パラメータの再設定なしに表示することができる。これにより、ユーザーによるパラメータ設定の手間を省くことができ、本技術を組み込んだ装置の操作性が向上することにつながる。
なお、本実施例では、説明を簡単にする為、図4の例では3種類(人、風景、動物)の選択肢を例に挙げて説明したが、識別可能なものは選択肢に加えて構わない。更に、人の画像に関しても本実施例では、娘、息子、父、登録外人物というように、3人の登録者と登録外人物として説明したが、登録者を例えば、4人以上としても構わない。また、登録人物についても家族としたが、それに限定されるものではない。
また、本実施例では画像ファイルのヘッダ情報に推奨パラメータが存在していない場合に、履歴情報に基づいてリフォーカス画像データを順次生成する例を説明した。しかしながら、画像ファイルのヘッダ情報に推奨パラメータが存在している場合においても、図2のステップS209の処理(すなわち図3で示す処理)のように、履歴情報に基づいてリフォーカス画像データを生成できる点に留意されたい。
実施例2は、現在の再生リフォーカスモード及び再生リフォーカスモードの履歴情報を予測要因に加えた例について説明する。
図2(実施例1)のステップS207の説明では、メモリに格納されている画像ファイルに推奨パラメータが存在しない場合、即ち再生モードでの表示が初めてである場合の処理について説明した。また実施例1のステップS207に関する説明で、リフォーカス画像の再生に関する過去の履歴情報に基づいてリフォーカス領域を予測し、リフォーカス演算が可能であることを説明した。
実施例1との差異は、図2のステップS207、図3のステップS303で示すリフォーカス領域の予測要因(すなわち、過去の履歴情報)に現在の再生リフォーカスモードの情報および現在の再生リフォーカスモードの履歴情報を予測要因に加えた点にある。再生リフォーカスモードとは、ピントを合わせたい対象に応じてリフォーカス対象を切り替えることが可能な機能で、例えば、人、風景、動物モードが選択可能で、それぞれの被写体に適合したリフォーカス演算が可能な設定である。
実施例1で説明した履歴情報は、過去の履歴全般の情報である。本実施例の現在の再生リフォーカスモードの履歴情報は、再生リフォーカスモードにおける履歴の情報である。ここでは、実施例1で説明した履歴情報を第1の履歴情報とし、現在の再生リフォーカスモードの履歴情報を第2の履歴情報と称する場合がある。
実施例1では、過去のリフォーカス演算又は表示についての履歴情報のみを用いる例を説明した。本実施例では、この履歴情報に再生リフォーカスモードの情報を予測要因に加えたことで、リフォーカス領域と演算順位の予測精度向上を意図したものである。
初めに、メモリに格納されているリフォーカス画像ファイルに推奨パラメータが存在しない場合、即ち本実施例に於ける1枚目のリフォーカス画像の表示までの処理について説明する。なお、次に図9を参照して説明する例では1枚目のリフォーカス画像の表示に際しては、前述の再生リフォーカスモードの履歴情報(第2の履歴情報)は使用しないが、後述する図10の処理のように第2の履歴情報も使用してもよい。
図9のステップS901からステップS906は図2の処理と同様であるのでここでの説明は省略する。図9のステップS910にて、全体制御部108が第1の履歴情報を参照して、過去のリフォーカス演算処理の頻度情報を読み出し、頻度の大きい順でリフォーカス演算順位を仮決定し、処理をステップS911へ移行する。この仮決定する処理は、例えば図4に示すフローで示す処理と同等の処理とすることができる。
ステップS911では、カメラ等に於ける設定が、現在の再生リフォーカスモードを優先する優先設定であるか、過去の履歴情報(例えば、図5)優先する設定であるかを全体制御部108が判定する。ステップS910にて、現在の再生リフォーカスモード優先と判定された場合は、処理をステップS913へ移行する。過去の履歴優先と判定された場合は、処理をステップS912へ移行する。
現在の再生リフォーカスモードの設定および過去の履歴情報のどちらを優先するかの設定は、ユーザーが、カメラ本体やPC等のビューア等に表示されるメニュー等で選択するのが一般的である。また、初期値としてどちらを優先するかを予め設定しておいてもよい。
ステップS911で再生リフォーカスモード優先であると判定された場合、ステップS913では、全体制御部108が、次の処理をする。すなわち、画像解析部112で検出された被写体の全リフォーカス対象領域に対して、現在の再生リフォーカスモードに適合する画像を含むリフォーカス対象領域があるか否かを判定する。再生リフォーカスモードに適合する画像が含まれていると判定された場合は、処理をステップS914へ移行する。一方、ステップS913で、リフォーカス対象領域に、現在の再生リフォーカスモードに適合する画像が含まれていないと判定された場合、処理をステップS912へ移行する。以後の処理は、ステップS911で現在の再生リフォーカスモードを優先しないと判定された場合と同様となる。
ステップS914では、全体制御部108が、ステップS913で、現在の再生リフォーカスモード設定に適合する画像が含まれていると判定された領域に対するリフォーカス演算順位(ステップS910で仮決定)を1順位あげる。なお、この1順位あげることは例示に過ぎず、順位の変動幅に制約は設けない。ステップS913の処理により、ステップS910で仮決定されたリフォーカス演算順位を変更する。そして、全リフォーカス対象領域のリフォーカス演算順位を確定し、確定したリフォーカス演算順位に従って、各リフォーカス演算対象領域のリフォーカス演算を実施し、リフォーカス画像データを生成する。
ステップS914で、リフォーカス演算が完了したら、生成したリフォーカス画像データを一時記憶ファイルとして外部メモリ109などのメモリに記憶する。ステップS908では、メモリに記憶したリフォーカス画像データを読み出して、所定のディスプレイに表示して、処理をステップS909へ移行する。ステップS909、S920の処理は、図2の実施例1のステップS209,ステップS210と同様なので、説明を割愛する。
次に、本実施例に於ける2枚目以降のリフォーカス処理について、主として、図10を用いて説明する。すなわち、図9のステップS909に引き続く処理を図10において説明する。図10では、第2の履歴情報を用いる場合がある。
図10で示すケースは、2枚目以降のリフォーカス演算を実施する場合のケースを想定している。すなわち、少なくとも過去に1回以上のリフォーカス演算を行い生成したリフォーカス画像データの表示履歴があり、リフォーカス演算又は表示に関するリフォーカス位置情報の履歴が残っている状態を想定している。なお、画像ファイルのヘッダ情報に推奨パラメータが含まれている場合には、その推奨パラメータをリフォーカス位置情報の履歴として扱うこともできる。本動作は、図1における全体制御部108がRAM102、FlashROM107、外部メモリ109などに記憶されているプログラムを読み出して実行することで行われる。
ステップS1010で、全体制御部108はユーザーによるパラメータ選択の有無を判定し、パラメータ選択があったと判定された場合は、処理をステップS1050へ移行する。
ステップS1050では、全体制御部108は所定のメモリに記憶されている一時画像ファイルから、指定されたパラメータに適合するリフォーカス画像データを探索する。すなわち、指定されたパラメータを含むリフォーカス位置情報に関連付けられたリフォーカス画像データの検出を試みる。適合するリフォーカス画像データが検出された場合(すなわち、既に当該リフォーカス画像データを生成済みの場合)は、ステップS1052へ、検出されなかった場合は、ステップS1051へ処理を移行する。
ステップS1051では、全体制御部108はユーザーにより指定されたパラメータに基づいて、当該パラメータに対応する領域にフォーカスを合わせたリフォーカス演算を行いリフォーカス画像データを生成する。また、リフォーカス対象に関する位置情報、被写体の指定頻度等の履歴情報を更新して、処理をステップS1052へ移行する。
ステップS1052では、全体制御部108はステップS1050で検出された画像データ、又はステップS1051でリフォーカス演算して生成されたリフォーカス画像データを所定のメモリから読み出す。そして、所定のディスプレイへ表示した後、処理をステップS1060へ移行する。
ステップS1060では、カメラ、PC等のリフォーカス画像再生装置に関して、再生モードの終了操作、再生モードを除く他のモードへの移行操作、全リフォーカス候補のリフォーカス演算および表示の完了の3つの要因(再生モード終了要因)を判定する。
ステップS1060の3つの判定要因に該当する操作が無かった場合は、全体制御部108は再生モード継続と判定し、処理をステップS1010へ移行して、前述の処理を繰り返す。ステップS1060の3つの判定要因に該当する操作があったと判定された場合は、全体制御部108は処理をステップS1070へ移し、再生モードの終了処理を実施する。
ステップS1010で、前述のようにユーザーによるパラメータ選択が無かったと判定された場合は、全体制御部108は処理をステップS1011へ移行する。ステップS1011では、パラメータの選択が無い期間が、所定の時間を超過したか否かを判定し、超過と判定された場合は、本フローの処理を終了する。なおステップS1011で、一定時間内にパラメータ指定が無いと判定された場合、省電力等の観点からシステムの全機能を終了してもよいし、スリープモード等に入るように構成しても良い。
ステップS1011の判定で、パラメータ選択の無い期間が、所定の時間内であると判定された場合は、全体制御部108は処理をステップS1020へ移行する。なお、所定の時間とは、ユーザーによるパラメータの選択を待つ時間であると共に、ユーザーが次にリフォーカス表示を希望する領域の画像を予測し、予測された画像に対するリフォーカス演算し、生成された画像データをメモリに記憶する期間である。
ステップS1020では、全体制御部108はリフォーカス対象画像の中に、予測に基づくリフォーカス画像生成候補(画像又は領域)が存在するか否かを判定する。すなわち、第1の履歴情報に基づいてフォーカス位置を合わせる領域が特定される被写体の候補が存在するか否かを判定する。候補が存在すると判定された場合は、全体制御部108は処理をステップS1030へ移行する。一方、ステップS1020に於いて、候補が無いと判定された場合は、全体制御部108は処理をステップS1021へ移行する。
ステップS1021では、現在カメラ、PC等のリフォーカス画像再生装置に設定に於ける現在のリフォーカス再生モードに適合するリフォーカスを合わせる被写体の候補を選択し、リフォーカス演算を実施して、処理をステップS1053へ移行する。
ステップS1030では、全体制御部108は図9のステップS910での説明と同様に、過去のリフォーカス演算に用いた第1の履歴情報を読み出す。そして、その頻度順に従って、リフォーカス演算対象となる被写体の順位を仮決定し、処理をステップS1031へ移行する。この仮決定する処理は、例えば図4に示すフローで示す処理と同等の処理とすることができる。
ステップS1031では、全体制御部108はリフォーカス画像再生装置の現在の設定が、再生リフォーカスモード優先か否かを判定する。使用するモードとして、再生リフォーカスモードを優先するモードと、過去の第1の履歴情報を優先するモードとが存在する。これらの設定は、ユーザーがユーザーI/F106を介して設定してもよいし、デフォルト設定に従ってもよい。ステップS1031では、この設定されているモードがどちらを優先するモードとなっているかを判定する。
ステップS1031で再生リフォーカスモード優先と判定された場合は、全体制御部108は処理をステップS1033へ移行し、再生リフォーカスモードを優先しないと判定された場合は、処理をステップS1032へ移行する。図10における再生リフォーカスモード優先とは、現在の再生リフォーカスモード又は再生リフォーカスモードの履歴情報(第2の履歴情報)に基づいて、リフォーカス領域とその演算順位を予測するモードのことである。
ステップS1032では、ステップS1030で第1の履歴情報に基づいて決定した仮のリフォーカス演算順位に従って、リフォーカス対象の被写体の領域にフォーカスを合わせたリフォーカス演算を実施し、リフォーカス画像データを生成する。すなわち、仮のリフォーカス演算順位を、実際のリフォーカス演算順位として使用する。そして、処理をステップS1053へ移行する。
ステップS1033では、リフォーカス演算対象領域に於いて、現在の再生リフォーカスモードに適合する画像が候補の中にあるか否か、又は、再生リフォーカスモードの履歴情報(第2の履歴情報)に適合する画像が候補の中にあるか否かを判定する。いずれかが存在する場合は、処理をステップS1034へ移行し、いずれも存在しない場合は、処理をステップS1032へ移行する。すなわち、ステップS1033では、再生リフォーカスモードに適合する被写体を含むリフォーカス対象領域が、読み込んだ画像ファイルの多視点画像データに含まれているか否かを判定する。
ステップS1033に於いて、再生リフォーカスモードの履歴情報(第2の履歴情報)が存在するかを判定する。第2の履歴情報がある場合、全体制御部108はその頻度1位の再生リフォーカスモードから順番に、その再生リフォーカスモードに適合する被写体を含む領域を探索する。ステップS1033では、ステップS1030で仮決定した演算順位の高い領域から順番に頻度第1位である現在の再生リフォーカスモードに適合する領域を探索し、適合する領域が検出された場合は、処理をステップS1034へ移行する。
当然頻度1位の再生リフォーカスモードに適合する領域の探索を終えたら、頻度2位の再生リフォーカスモードに適合する領域を探索するように、頻度順に探索が実施されるのは、言うまでもない。
探索の結果、適合する画像が未検であった場合は、処理をステップS1032へ移行する。そして、既に説明したように、過去の第1の履歴情報から決定した仮のリフォーカス演算順位に従って、リフォーカス演算を実施し、全体制御部108は処理をステップS1053へ移行する。
なお、再生リフォーカスモードには、前述したように、ユーザーの設定による現在の再生リフォーカスモードの場合と、再生リフォーカスモードの第2の履歴情報を用いる場合とがある。後者の場合は、複数種類の再生リフォーカスモードに対して、その頻度に応じた順位が付与されている。従って、ステップS1033では、この第2の履歴情報で決定された順位に従って、第1の履歴情報で仮決定された順位の領域に探索を実施する処理ということもできる。
一方、ステップS1033で現在の再生リフォーカス画像に適合する領域が検出された場合は、ステップS1034にてその検出された再生リフォーカスモードに適合する画像を含む領域のリフォーカス演算順位を変更(上げる)する処理を実施する。
ステップS1034では、全体制御部108は、ステップS1033で検出された再生リフォーカスモードに適合する領域の演算順位をステップS1030で仮決定した演算順位に対して、n位上げる(nは任意の整数)。再生リフォーカスモードによって、nの値を変えても良い。具体的には、再生リフォーカスモードが、人(家族)、人(知人)、人(その他)、風景、動物とあった場合、家族を最優先として、自動的に演算順位を1位に順位アップ、友人は2ランクアップする等の処理が考えられるが、特に限定しない。
ステップS1034における再生リフォーカスモードに適合する画像を含む領域のリフォーカス演算順位の変更と、変更された順位に応じたリフォーカス演算が完了したら、全体制御部108は処理をステップS1053へ移行する。
ステップS1053では、実施例1でも説明したように、ステップS1034で実施したリフォーカス画像に関するパラメータ(リフォーカス画像の位置情報等)と、リフォーカス画像ファイルを外部メモリ109などに記憶する。そして、処理を再びステップS1010へ移行する。
ステップS1053では、前述のステップS1021、ステップS1032で生成されたリフォーカス画像データについても同様の処理を実施し、処理をステップS1010へ移行する。
再生リフォーカスモードを含む各種設定は、カメラ本体、PC上のソフトウェア等で設定(選択)することが可能である。例えば、カメラのダイヤルのようなメカニカルな選択方法、カメラ、PCのタッチパネル上の表示メニューから選択する等の方法が考えられる。
再生リフォーカスモードの第2の履歴情報(例えば、人モード、風景モードの頻度情報)は、実施例1で述べた第1の履歴情報(過去の頻度情報)と同様に、モード毎に履歴が更新(累積)され、履歴情報記憶部107の記憶内容も更新される。
以上、説明したように構成することによって、ユーザーが指定するリフォーカス画像の生成順序を予測し、ユーザーがリフォーカス領域を指定する以前に、リフォーカス演算を開始することが可能となる。
本実施例は、実施例1の第1の履歴情報に、現在の再生リフォーカスモード又はその第2の履歴情報を加えたことにより、ユーザーの趣向、領域選択の予測精度の更なる向上を意図したものである。また、ユーザーがパラメータ選択を行っていない期間を利用して、予測された領域のリフォーカス演算を実施して、外部メモリ109などに格納することにより、パラメータ指定からリフォーカス画像表示までの時間短縮も期待したものである。
前述のように予測され、リフォーカス演算されて生成されたリフォーカス画像データは、画像の位置情報をヘッダとして付加した形式(例えば図7参照)で、外部メモリ109やネットワーク上の記憶装置に記憶される。
図10のフローチャートでは、表現を省略したが、実際のリフォーカス再生装置では、パラメータが指定されたら、その時点での処理を中断して、処理をステップS1051へ強制移行するのが理想的である。
実施例1、2では、リフォーカス画像を生成する際に、焦点を合わせる(以下合焦)対象に着目した場合の例を示した。しかし、リフォーカス画像を生成する際には、焦点を合わせない(以下非合焦)対象に着目した場合の方がユーザーの意図をよく表現できる場合も考えられる。
現行の画像処理装置では、画像表示時にリフォーカス画像データを生成する場合、非合焦状態にさせたい場所を簡便に指定する方法はない。例えば、前述の特許文献2の技術は、被写体が複数の場合はパンフォーカスによって複数の被写体にフォーカスを合わせるものである。しかし合焦した複数の被写体から特定の被写体のみ合焦状態から外したい場合に、的確に指示して一部の被写体を非合焦状態にすることはできなかった。したがって、特定の被写体を合焦状態から外した画像を簡単に生成・表示することもできないという問題も存在する。
本実施例では、非合焦状態にさせたい場所の指定に基づき特定の被写体を合焦から外した画像を生成する例、及び非合焦状態にさせたい場所を簡便に指定する方法に関する例を示す。
[画像処理装置のハードウェア構成の概観]
実施例3の画像処理装置のハードウェア構成を図1、及び図11、図12、図13などを用いながら詳細に説明する。なお、図1に関しては、第1の実施例と共通であるので、その詳細な説明は省略する。
図11は多眼カメラ撮像部101の外観を示す図である。
図11に示すように、多眼カメラ撮像部101の正面には複数の撮像部1101−1109が配置されている。ここでは、撮像部1101−1109は、正方格子状に均等に配置され、それら撮像部の上下軸、左右軸、光軸はすべて同じ方向である。
ユーザーの撮像指示により、撮像部1101−1109はそれぞれ、撮像レンズや絞りなどを介して撮像デバイス上に結像された被写体の光情報に相当するアナログ信号を撮像素子から取り出す。そして、アナログ信号をアナログ-ディジタル変換し、さらにデモザイキングなどの画像処理を施した画像データの集合を多視点画像データとして出力する。
このような多眼カメラ撮像部101により、同一の被写体を複数の視点位置から撮像した画像データ群を得ることができる。ここでは撮像部の数が9個の例を示すが、複数の撮像部があれば本実施例を適用することが可能であり、撮像部の数は任意である。また、撮像部の配置は、正方格子状に均等な配置である必要はなく、撮像部の配置も任意である。例えば、放射状や直線状に配置してもよいし、全くランダムな配置でもよい。
[多視点画像データの画像データフォーマット]
実施例1の図8に示した例では、位置情報存在フラグ805は、画像ファイルにリフォーカス位置情報が存在するか否かを示す1ビットの情報である例を主として説明した。本実施例では、位置情報存在フラグ805は、リフォーカス位置情報によって特定される位置の領域が合焦対象か非合焦対象かを示す多値をとってもよい。例えば、図12(a)に示すような構成をとることも可能である。図12(a)において、リフォーカス位置情報1203は、図8のリフォーカス位置情報803に対応する。図12(a)においては、位置情報存在フラグ1205はチェイン情報1210と属性情報1220との2つのフィールドのフラグによって構成される。チェイン情報1210は、チェイン情報1210のフラグの後に続くリフォーカス位置情報が有効であるか否かを示すと共に、図12(a)で示す1210から1209までの一連のリフォーカス位置情報のまとまりが繰り返し続くかどうかを示している。例えば、チェイン情報1210が1である場合、それに続く一連の属性情報1220、位置情報1206〜1209までの情報は有効な情報である。そして、当該一連のリフォーカス位置情報のまとまりの更に後ろに別のリフォーカス位置情報のまとまりが存在することを示している。属性情報1220は、その属性情報1220に続く位置情報1206から1209のフィールド情報で示している位置情報の属性を示す。例えば、属性情報1220が0である場合、その属性情報1220に続く位置情報1206から1209のフィールド情報は、焦点を合わせるべき位置(合焦点位置)を示す情報として扱われる。一方、属性情報1220が1である場合、その属性情報1220に続く位置情報1206から1209のフィールド情報は、焦点を外して、ぼかすべき対象が存在する位置(非合焦点位置)を示す情報として扱われる。つまり、属性情報1220は、合焦の状態を示す合焦状態データともいえる。
図12(b)に位置情報存在フラグ1205に多値フラグを使用した場合の具体例を示す。図12(b)は図8のリフォーカス位置情報1203の位置に図12(a)で示すリフォーカス位置情報のフィールドが4つ存在する場合に、当該フィールドを抜き出したものである。チェイン情報1210a〜cは1であるので、それぞれ1203a、1203b、1203cのリフォーカス位置情報は有効な情報である。一方、チェイン情報1210dは0であるので、1203dのリフォーカス位置情報は無効の情報であり、この1203dをもってリフォーカス位置情報のフィールドは終了し、次に図8に示す多視点画像ヘッダ情報810が続くことを示している。また、属性情報1220aおよび1220bは0であるので、1203a、1203bは合焦点についての位置情報を持っていることを示している。この場合、焦点を合わせるべき対象が2か所に分かれて存在していることを示している。一方、属性情報1220cは1であるので、1203cではぼかすべき対象の位置である非合焦点について位置情報を示している。つまり、図12(b)に示す多値フラグを有する例では、2つの合焦点と1つの非合焦とを示す3つの有効な位置情報を有する例を示している。
[リフォーカス演算部103の構成例と処理の流れ]
図13のブロック図を用いてリフォーカス演算部103の機能構成例と処理の流れを説明する。なお、図13においては、長方形の枠が処理モジュールを表し、角丸長方形が内蔵SRAMなどによって構成されるデータバッファを表している。
本実施例では、データバッファはリフォーカス演算部内部に置かれることを想定しているが、場合によっては、データ入力部/出力部を介してRAM102などを用いることも可能である。また、本実施例では、リフォーカス演算部103内部の処理モジュールが、リフォーカス演算部コントローラ1301の指示に基づき各処理を実行していくことを前提としている。なお、リフォーカス演算部コントローラ1301からの指示を示す制御信号は図示していない。しかしながら、以下に示す処理全体を一つもしくは複数のCPUを用いて画像処理プログラムを実行することによっても実現は可能である。
リフォーカス演算部コントローラ1301の指示を受け、データ入力部1302は、RAM102または外部メモリ109などから撮像データおよび撮像データを撮像した装置(例えば多眼カメラ撮像部101)の情報や撮像情報を示す撮像付随情報を入力する。ここで、例えば図8における多視点画像ヘッダ情報810が撮像情報に相当する。また図8の多視点画像データ804が撮像データに対応する。入力されたデータの内、撮像付随情報はバッファ1311に、撮像データはバッファ1312に格納される。この場合の、撮像データは、複数の撮像部(例えば多眼カメラ撮像部101の撮像部1101〜1109)によって撮像された複数の画像データを含む。
また、バッファ1311に格納される撮像付随情報には、前述したように個々の撮像部の撮像情報以外に、各撮像部の撮像位置(相対的な位置関係)などが含まれる。
更に、必要に応じて、ユーザー指示情報が同じくデータ入力部1302から入力される。このユーザー指示情報は、ユーザーがリフォーカス画像を生成するにあたって特に指示したい内容、例えば、焦点を合わせたい合焦対象や、合わせたくない非合焦対象等の情報が含まれる。例えば、図12におけるリフォーカス位置情報1203などがユーザー指示情報に該当する。
処理に必要なデータの取り込みが終了すると、リフォーカス演算部コントローラ1301の制御に従い、フォーカス座標取得部1304は、基準の画像データをバッファ1312から入力する。フォーカス座標取得部1304は、バッファ1313に格納されたユーザー指示情報に従い表示画面上でフォーカスを合わせる位置等を示すフォーカス座標情報を出力する。フォーカス座標情報はバッファ1315に保存される。
なお、基準の画像データはバッファ1312に格納された撮像データである複数の画像データのうちの一つであり、複数の画像データのどれでもよい。本実施例では、多眼カメラ撮像部101の撮像部1101〜1109のうち、中央に位置する撮像部1105によって撮像された画像データを基準の画像データとする。
次いでリフォーカス演算部コントローラ1301の制御により、距離推定部1303は、バッファ1312から複数の画像データを入力する。また距離推定部1303は、バッファ1311から撮像付随情報を入力する。そして、距離推定部1303は、複数の画像データと撮像付随情報とに基づいてステレオマッチングにより撮像シーンのデプス値を推定して距離画像データを生成する。生成された距離画像データはバッファ1314に格納される。
フォーカス座標情報と距離画像との生成が完了すると、リフォーカス演算部コントローラ1301の制御により、仮想ピント面生成部1305は、フォーカス座標情報と、距離画像データと、ユーザー指示情報とを入力して、ピント面情報を生成する。
ピント面情報とは、撮像時のカメラと焦点を合わすべき被写体との位置等を3次元空間的にとらえるための情報であり、カメラとピント面との距離、ピント面の形状、被写界深度情報などによって構成される。ピント面情報はバッファ1316に保存される。
最後に、リフォーカス演算部コントローラ1301の制御により、画像合成部1306は、複数の画像データと、撮像付随情報と、距離画像データと、ピント面情報とをそれぞれバッファ1312、1311、1314、1316から読み出す。そして画像合成部1306はリフォーカス画像データを生成する。
リフォーカス画像データはバッファ1317に一旦保存された後、データ出力部を介してリフォーカス演算部103から出力され、RAM102や外部メモリ109に格納される。また、場合によってはグラフィックプロセッサ104を介してディスプレイ105に対して表示されたりする。
[非合焦対象を指示した場合の処理の流れ]
図1、図12、図13と図14のフローチャート、及び図15、16を用いて、非合焦対象を指示した場合の処理の流れを説明する。図14のフローチャートは、全体制御部108がユーザー指示情報の入力を受けてどのような処理の指示をリフォーカス演算部103をはじめとする各モジュールに対して行うかを示したものである。
図15、16は画像処理を行う対象を撮像した際の撮像装置と撮像被写体との位置関係を説明する図である。また、撮像画像がディスプレイ105でどのように表示されているか、及びディスプレイ105上に設置されるタッチパネル上でどのような指示がなされたかを説明するものである。
図15(a)は図15(b)に示される画像を撮像した時の多眼カメラ撮像部101と撮像被写体との位置関係を上空から見下ろした様子を示している。多眼カメラ撮像部101の画角は、多眼カメラ撮像部101から斜めに伸びる1510、1511の2本の線によって示され、その範囲内の被写体である、人物A、B、C、Dが山や木と一緒に撮像されている。また、図15(b)は、ディスプレイ105に表示されたこの画像の撮像時の初期画像である。
ここで、まず図14のステップS1401からS1403までとステップS1414、S1415を用いて、図15(b)の画像が表示されるまでの処理を説明する。
図14のステップS1401において、画像の表示が指示されると、全体制御部108は、保存されている多視点画像データのリフォーカス位置情報1203が有効か否かを判定する。全体制御部108は、リフォーカス位置情報が有効と判定した場合は、ステップS1402に処理を進める。ステップS1402において、全体制御部108は、そのリフォーカス位置情報に適合する一時画像ファイルが存在するかを判定する。全体制御部108は、一時画像ファイルが存在すると判定した場合、ステップS1403に処理を進める。ステップS1403において、全体制御部108は、その一時画像ファイルの画像を外部メモリ109などから読み出し、グラフィックプロセッサ104に送り込み、ディスプレイ105のGUI画面上に表示する。
ステップS1402において、全体制御部108は、一時画像ファイルが存在しないと判定した場合、ステップS1415に処理を進める。ステップS1415において、全体制御部108の制御により、リフォーカス演算部103は、リフォーカス位置情報に基づき仮想ピント面や被写界深度を設定した上で画像データを生成する。次に、ステップS1403において、全体制御部108は、ステップS1415によって生成された画像データによって表される画像を表示する。
一方、ステップS1401において、全体制御部108は、リフォーカス位置情報が有効ではないと判定した場合には、ステップS1414に処理を進める。ステップS1414において、全体制御部108は、実施例1の図4で示したようにしてまずリフォーカスすべき対象を検出し、その対象を含む位置をリフォーカス位置情報に追加する。次に、全体制御部108は、ステップS1415において画像を生成し、ステップS1403において、画像を表示する。
なお、ステップS1401においてリフォーカス位置情報が無効であると判定した場合には、全体制御部108は、実施例1の図4で示す処理を行わずに、単に基準となる画像データによって表される画像を表示する処理を行っても良い。この場合、以下で説明する例では、基準となる画像データによって表される画像が、図15(b)であるものとする。
ステップS1403で表示されたGUI上の画像は図15(b)である場合について以下で説明を続ける。ここで、図15(b)中に太線で示された物体は合焦対象となっていることを示している。この場合、人物A、B、C、DとCの後ろの木が合焦対象となって表示されている。これは、多視点画像データのリフォーカス位置情報において、人物A,B,C,Dが合焦対象であると指定されたことによる。本実施例では、図15(a)に示されるように、仮想ピント面が人物A及びBを通る線分1501の位置に設定される。更に人物C及びDが合焦範囲内に入るように、被写界深度が矢印1502で示される範囲となるように設定が行われる。そして仮想ピント面と被写界深度に基づき表示画像が生成されている。よって、結果的に多眼カメラ撮像部101から遠い側の線分1503と近い側の線分1504との間の物体に焦点の合った画像がディスプレイ105に表示されることになる。この時Cの後ろの木も被写界深度1502の範囲内に入っているので、これにも焦点が合っている画像が表示されることになる。ここで線分1501、1503,1504は直線で表わされているが、実際には多眼カメラ撮像部101からの距離に応じた緩い弧を描いている。本実施例では簡易に表現するためにこの表現形式を用いる。
次いで、非合焦状態にさせたい場所の指定に基づき特定の被写体を合焦から外した画像データを生成する方法、及び非合焦状態にさせたい場所を簡便に指定する方法に関して図14のステップS1404以降を用いて説明する。
ステップS1403によってディスプレイ105に画像が表示されると、ステップS1404において、全体制御部108は、ユーザーによるパラメータ選択待ちになる。本実施例では、ユーザーI/F106として、ディスプレイ105上に設置されるタッチパネルを利用するとする。次いでステップS1405において、全体制御部108は、ユーザーが画面上の点を指で触ってパラメータ(この場合は合焦・非合焦の変更を意図する位置)を選択したか否かを判定する。ステップS1405において、全体制御部108は、ユーザーがパラメータを選択したと判定した場合には、ステップS1406に処理を進める。ステップS1406において、全体制御部108は、ステップS1405の選択行為として、パラメータを選択するために画面上の特定の点を押している時間が一定以上連続したか(長押しされたか)を判定する。すなわち、ユーザーが画像上の領域を一定時間以上指示したかを判定する。本実施例では長押しするという行為は選択した点を非合焦にするという指示であるとする。例えば、本実施例では3秒以上押し続けられた場合、長押しされたと判定するとする。なおこの時間の基準は一例であり、必要に応じて時間は変更されてもよい。ステップS1406において、全体制御部108は、長押しされたと判定するとステップS1407に処理を進める。ステップS1407において、全体制御部108は、長押しによって指定された位置が、表示している多視点画像データのリフォーカス位置情報1203に含まれるか否かを判定する。ここで、長押しによって指定された位置が含まれるかどうかの判定は、指定された位置が有効なリフォーカス位置情報の位置情報1206〜1209で表現される矩形内部にあるか否かで判定される。
ステップS1407において、全体制御部108は、長押しによって指定された位置がリフォーカス位置情報に含まれていないと判定した場合、ステップS1408に処理を進める。ステップS1408において、全体制御部108は、ステップS1405においてユーザーの選択した位置を中心とする領域を新たに表現するためのリフォーカス位置情報のエントリーを作成する。この時、新たに作られる属性情報1220のフィールドは、非合焦指示を意味する1に設定される。
次いでS1409において、全体制御部108は、ユーザーが指定した位置を内部に含んだ非合焦の範囲を決定するための領域認識を行う。この領域認識は実施例1で説明したように画像解析部112で行われる。その領域認識の結果に基づき、非合焦とするべき範囲が新規に作成されたリフォーカス位置情報の位置情報1206〜1209に設定される。
ステップS1407において、全体制御部108は、長押しによって指定された位置が有効なリフォーカス位置情報の位置情報1206〜1209で表現される矩形内部に含まれていると判定した場合、ステップS1418に処理を進める。ステップS1418において、全体制御部108は、必要に応じてリフォーカス位置情報の属性情報1220のフィールドを、非合焦指示を意味する1に設定する。
ここでは、合焦、非合焦の情報とそのリフォーカス位置の情報とを、多視点画像を保存する画像データフォーマットの一部として保存する例を示した。一方、同じタイミングで合焦、非合焦の情報と、リフォーカス位置を示す情報に基づいて画像中から切り出した画像情報などとを組み合わせて、個別の多視点画像データとは独立したリストとして保存し、利用することも可能である。例えば、図18に示す形式のリストを作成し保存することが考えられる。このリストの詳細と利用に関しては、後述の実施例4にて説明する。
次に、ステップS1410において、全体制御部108は、長押しされていた時間の長さに応じて、非合焦強度を指定する情報を、表示している多視点画像データの多視点画像ヘッダ情報810に追加する。多視点画像ヘッダ情報810の詳細なフィールドの中身は記述していないが、この非合焦強度を指定する情報は、リフォーカス位置情報における非合焦を示すフィールドの位置と、ボケさせる強度とを組みにして保存される。ボケさせる強度は長押しされていた時間が長いほど強く設定されるが、ボケの強度の最大値まで指定されると、それ以上長く押されても強度は最大値から更新されない。
次いで、ステップS1411において、リフォーカス演算部103は、更新後のリフォーカス位置情報に基づき、仮想ピント面の変更及び被写界深度の変更などを行う。そして変更後の仮想ピント面と被写界深度などに基づき画像データを生成する。ステップS1412において、全体制御部108は、ステップS1411で生成された画像を表示する。この非合焦をするための仮想ピント面の変更および被写界深度の変更がどのように行われるかの例を図15及び図16、図17を用いて示す。
図15(b)において、人物Cが非合焦の対象として選択され、ディスプレイ105上でCの文字が描かれている位置をユーザーが指で3秒以上継続して長押ししたとする。全体制御部108はその状況を監視し、新たなリフォーカス位置情報を含んだデータをリフォーカス演算部103に渡す。リフォーカス演算部103では、先に示した図14のフローに基づいて仮想ピント面と被写界深度とを決定する。同様にして人物Dを非合焦の対象として指示することもできる。
例えば、人物C及び人物Dが合焦対象から外され、人物A、Bのみに焦点が合った絵を作ることが要求された場合を考える。本実施例においては、人物A,Bは図15(b)表示時の仮想ピント面1501上にあり、人物C及びDは仮想ピント面から少し離れたところに位置している。このような場合、仮想ピント面は変えずに、被写界深度を狭く調整することにより、人物C及び人物Dが合焦対象から外すことが可能である。その場合、本実施例では、図16(a)に示されるように、仮想ピント面は人物A及びBを通る線分1501の位置から動かさず、人物C、Dが被写界深度の範囲から外れるように被写界深度が矢印1602で示される範囲となるように設定が行われる。そして、このような仮想ピント面と被写界深度とに基づき表示画像が生成される。すなわち、点線1603と点線1604との間の物体にピントの合った画像(図16(b))が生成され、ステップS1412においてディスプレイ105に表示されることになる。図16(b)では、人物C及びDが非合焦状態になったことを太い点線で示している。
また、人物C、Dの両方ではなく、人物Cのみが合焦対象から外され、人物A、B、Dに焦点が合った絵を作ることが要求されることも考えられる。その場合、人物Cは他にピントを合わすべき人物A,B,Dに比べて多眼カメラ撮像部101に近いところにあるため、ピント面を後方にずらすことによって対応が可能である。そのような場合を図17を用いて説明する。この例では、図17(a)に示されるように、仮想ピント面が人物A及びBを通る線分1501の位置からそれより後方の点線1701の位置に設定される。更に人物Cが被写界深度の範囲から外れるように被写界深度が矢印1702で示される範囲となるように設定が行われる。このような仮想ピント面と被写界深度とに基づき表示画像が生成される。すなわち、点線1703と点線1704の間の物体にピントの合った画像図17(b)が生成され、ステップS1412においてディスプレイ105に表示されることになる。
図17(b)では、人物Cが非合焦状態になったことを太い点線で示している。なお、この例の場合人物Dの後ろの木が新たに合焦対象に入っているが、本実施例では人物以外の物体に関しては合焦状態に関して特に制限を行っていないため、問題となるものではない。
次に、図14に戻りフローチャートの説明を続ける。
ステップS1412においてディスプレイ105上の画像が更新されると、ステップS1413において、全体制御部108は、ユーザーの指定が更に継続しているかを判定する。ユーザーの指定が更に継続しているとは、長押しがまだ継続していることを意味する。ステップS1413において、全体制御部108は、長押しがまだ継続していると判定した場合には、ステップS1410に戻り、その指定行為の継続時間に応じて非合焦強度を変更し、必要に応じて画像を作り直す。ステップS1413において、全体制御部108は、長押しが継続していないと判定した場合には、ステップS1404に戻り、ユーザーのパラメータ選択待ちとなる。続くステップS1405において、全体制御部108は、ユーザーがパラメータを選択しないと判定した場合、ステップS1420に処理を進める。ステップS1420において、全体制御部108は、リフォーカスの表示処理の終了指示があるかを判定する。ステップS1420において、全体制御部108は、リフォーカスの表示処理の終了指示がないと判定した場合は、ステップS1404に戻り更にユーザーによるパラメータ選択待ちを継続する。
ステップS1420において全体制御部108は、リフォーカス表示の終了指示があると判定した場合、この表示動作を終了して一連の動作を終了する。なお、このリフォーカス表示の終了指示は、ユーザーが明示的にボタンなどのユーザーIF等を選択することや、一定の時間以上ユーザーからの指示がなかった場合のタイムアウトに基づく指示などによって行うことが可能である。
ステップS1406において、ユーザーからの指示がタッチパネル上であったが長押しでなかった場合には、全体制御部108は、ステップS1416に処理を進める。ステップS1416において、全体制御部108は、ユーザーの近傍箇所の選択が一定時間内に複数回あるか否かを判定する。本実施例では、一定の時間内(例えば2秒以内)に一定の距離内(例えばタッチパネル上の距離5mm以内)にある箇所が複数回選択された場合には、その位置を合焦させる対象に加える指示であると解釈することにする。ステップS1416において一定時間内に複数回の選択があったと判定した場合、全体制御部108は、S1417において、ユーザーの選択した位置をリフォーカス位置情報に合焦対象として追加する。ステップS1417における内容はほぼステップS1407からS1409までの工程と同一であり、属性情報1220のフィールドに設定される値が合焦指示を意味する0に設定されるのが主に異なる点である。なお、ステップS1416において一定時間内に複数回の選択があったと判定しなかった場合には、ステップS1419に示すように、パラメータや画像の変更が行われることはなく、全体制御部108は、ステップS1404に処理を進める。
なお、本実施例では、ユーザーの焦点を合わせない対象を指定する方法として、タッチパネルを用いた表示画像上の長押しという手法を用いたが、それ以外の手法によって指定することも可能である。例えば、タッチパネル画面上に予め非合焦に設定するというボタンを設け、そのボタンに触った後に画面上で指示した箇所を非合焦設定箇所と認識してもよい。また、タッチパネル画面上でオブジェクトを指定するとメニューが出て合焦/非合焦の指示をするようにしてもよい。
また、タッチパネルを用いない場合、マウス等で指示を出すことも考えられる。例えば、アプリケーションで右クリックを非合焦指示と結びつけることによって、指示を出すことも考えられる。その場合、右クリックの長押し指示や、右クリックの複数回指示などによって意味を持たせることも可能である。
上記のようにすることによって、撮像後にユーザーの好みに応じて焦点を合わせる位置を変えた画像を表示することが可能であるシステムに置いて、焦点を合わせない対象を簡便に指定することが可能となる。また、焦点を合わせない指定に基づき、特定の被写体を合焦から外した画像を作成することが可能となる。
従って、ユーザーが意図しない合焦状態を解消し、特定の被写体だけを選んで非合焦状態にすることが可能になる。結果として、ユーザーの望む対象にのみ合焦させた画像を簡便に生成、表示することが可能になる。
実施例3では焦点を合わせる対象、焦点を合わせない対象を指定し、指定に基づいたリフォーカス画像を生成する方法を示した。実施例3における焦点を合わせる対象、焦点を合わせない対象を個々の画像データと別に記憶、管理することで、例えば特定の人物に焦点を合わせたリフォーカス画像を一括で生成できればユーザーの操作の負荷を軽減することが可能である。なぜならば、現行の画像処理装置では複数の視点から撮影した画像を合成する際のピント面を生成する際に、画像毎にユーザーの操作に応じて操作を行う必要があるため、ユーザーにとって煩わしい場合があるからである。本実施例では焦点を合わせる対象、焦点を合わせない対象を記憶、管理する手法の例を示す。以降では、焦点を合わせる対象を合焦対象、焦点を合わせない対象を非合焦対象と記述する。
実施例4のハードウェア構成の例を図1、図11、及び図13に示す。図1、図11、及び図13については実施例1、実施例3と共通であるため詳細な説明は省略する。
[データフォーマットとデータ構造]
合焦対象、非合焦対象を記憶、管理するためのデータフォーマットについて図18を用いて詳細に説明する。実施例3で少し説明したとおり、図18は、個別の多視点画像データとは独立したリスト形式のデータフォーマットである。合焦対象または非合焦対象のデータについては、1801から1803に示すように対象物ごとのデータがリスト形式で保存される。このリストは以降で合焦・非合焦対象リスト又は単にリストと記述する。なお、データフォーマットは保存済みの任意の対象物にアクセス可能であればリスト形式に限定されるものではない。
リスト内の各対象物のデータは識別コード1804、属性情報1805、認識情報1806により構成されている。識別コード1804は対象物を識別するための情報であり、例えば人物、動物、樹木などを示す多値情報である。さらに例えば人物を本人、妻、長女、長男などのように、より詳細に分類した識別の情報であってもよい。識別コードは対象物を識別するための識別用データともいえる。属性情報1805は対象物が合焦対象か非合焦対象かを示す1ビットの情報である。合焦・非合焦を示すには1ビットで十分であるが、属性情報のビット数を限定するものではない。認識情報1806は合焦・非合焦対象の特徴を示す情報である。例えば、人物の場合には眉や目などの特徴点の距離、特徴点で囲まれる領域の面積や領域内の画素の輝度などである。認識情報1806は、画像解析部112による解析によって得られる。認識情報1806を基に画像中の被写体に対して合焦対象物か、非合焦対象物が識別される。認識情報もまた、対象物を識別するための識別用データともいえる。
次に本実施例の画像のデータフォーマットに含まれるリフォーカス位置情報1203フィールドついて図19を用いて詳細に説明する。実施例3では位置情報存在フラグ1205はチェイン情報1210、属性情報1220から構成される情報の例を説明した。本実施例においてはさらに識別コード1901を加えた構成とする。ここで識別コード1901は図18の識別コード1804と同じである。他の構成要素は実施例1と共通であるため説明を省略する。図19に示すリフォーカス位置情報1203のフィールドは、実施例3で説明したように多値情報を有することができる。すなわち、複数の合焦対象または非合焦対象の位置情報をリフォーカス位置情報1203のフィールドに追加・または削除可能な形態になっている。
図20を用いて合焦・非合焦対象リストと保存画像とを管理するためのデータ構造の一例を詳細に説明する。保存画像とは、外部メモリ109などに保存されている画像データのことであり、図19で示すリフォーカス位置情報を含む図8の画像データフォーマットにて規定される画像データのことである。図18、図19で示した合焦・非合焦対象リストと画像データとは、図20に示すように階層化されたグループ毎に分類されて管理される。合焦・非合焦対象リストは、対象物定義情報と称しても良い。後述する合焦・非合焦対象リストに基づく各画像データへのリフォーカス位置情報付加処理は、合焦・非合焦対象リストが存在するグループとそのグループに包含されるグループ内の画像データに対して適用される。リフォーカス位置情報付加処理の詳細については後述する。
図20においてグループ1(家族)2005は、グループ1.1(旅行)2006とグループ1.2(運動会)2007を包含するグループである。グループ1(家族)2005内の合焦・非合焦対象リスト2002に基づくリフォーカス位置情報付加処理は、次の保存画像に対して適用する。すなわち、グループ1.1(旅行)内の保存画像2004と、グループ1.2(運動会)2007内とその包含するグループ内に存在する図示しない保存画像に対して適用される。一方、グループ1.1(旅行)内の合焦・非合焦対象リスト2003に基づくリフォーカス位置情報付加処理は、グループ1.1(旅行)内の保存画像2004にのみ適用される。なお、グローバル合焦・非合焦対象リスト2001は、グループに依存せず全ての保存画像にリフォーカス位置情報を付加する合焦・非合焦対象リストである。このような階層構造のグループ内にそれぞれ合焦・非合焦対象リストと保存画像とを含めることにより、ユーザーの利便性が向上する。例えば、グループ1(家族)2005の合焦・非合焦対象リストでは、家族の人物を合焦する対象物として設定する。一方で、グループ1.1(旅行)2005の合焦・非合焦対象リストでは、例えばツアー旅行に行った場合における、同行者の人物を非合焦する対象物として設定する。このように設定することにより、グループ1.1内の保存画像については、家族の人物に合焦し、かつツアーの同行者の人物には合焦しない画像データが生成されることになる。
本実施例においては前述のデータ構造を採用しているが、このデータ構造に限定せずとも実施可能である。
[合焦・非合焦対象リスト更新とリフォーカス位置情報更新の処理フロー]
図18、図19及び図21から図25を用いて合焦・非合焦対象リスト更新とリフォーカス位置情報付加の処理フローの詳細な説明を行う。以降の説明は、合焦・非合焦対象リストの更新を行った際の処理、新規に画像を撮像した際の処理、任意のタイミングで合焦・非合焦対象リストに基づくリフォーカス位置情報更新を行う際の処理の3つに分けて行う。
まず、合焦・非合焦対象リストの更新を行った際の処理について説明を行う。図21から図23は、いずれか又は複数の合焦・非合焦対象リストに対して新しい対象物の追加、既存の対象物の削除などのリスト更新を行う際の処理フローを示している。図21のステップS2101において、全体制御部108は、ユーザーが保存画像中の対象を指定し合焦・非合焦対象リストに追加指示したか否かの判定を行う。例えばディスプレイ105上に任意の保存画像を表示し、ユーザーI/Fを介してユーザーからの合焦・非合焦対象リストに追加指示があるか否かを判定する。例えば、ユーザーがディスプレイ105上に表示中の保存画像中の任意の位置を指定し、その位置の対象物の合焦・非合焦対象リストに追加する旨の項目を選択した場合に、全体制御部108は、追加指示があったと判定する。なお、ステップS2101における合焦・非合焦対象リストは、図20で説明したように、保存画像と同一グループに属するリストとすることができる。あるいは、ユーザーにどのグループを対象とするリストに追加するかを選択させてもよい。ステップS2101において、全体制御部108は、リストへの対象の追加指示がないと判定した場合、処理をステップS2107に進める。ステップS2101において、全体制御部108は、リストへの対象の追加指示があると判定した場合、ステップS2102へ処理を進める。
ステップS2102では全体制御部108は、ステップS2101で指示された対象物へ識別コード1804を割り当て、その対象物の認識情報1806と共にFlashROM107や外部メモリ109に保存する。
ここではユーザーが保存画像中から対象を指定して、その対象物の認識情報を画像解析部112が算出し、保存する場合を想定している。しかし、特定の個人でない人物全般などの認識情報は、予めFlashROM107などに保存されていてもよい。この場合、ステップS2102において保存する認識情報1806は、認識情報が保存されているFlashROM107上のアドレスを示すポインタなどであってもよい。
次にステップS2103では全体制御部108は、ステップS2101で指示された合焦・非合焦対象リストへの追加対象物が合焦対象か、非合焦対象かを判定する。合焦対象か非合焦対象かはユーザーが実施例3に示すような方法で指示することができる。リストへの追加対象物が合焦対象である場合、全体制御部108はステップS2104に処理を進め、属性情報1805のビットを0に設定する。リストへの追加対象物が非合焦対象である場合、全体制御部108はステップS2105処理を進め属性情報1805のビットを1に設定する。ステップS2106では全体制御部108は、ステップS2101で指示された全ての追加対象物が処理されたか判定する。全体制御部108は、全て処理されるまでステップS2102からステップS2105の処理を繰り返す。
リストへの全ての追加対象が処理されると、ステップS2107にて全体制御部108は、合焦・非合焦対象リストからの対象物の削除指示があるか否かを判定する。削除指示についても、追加指示と同様に、例えばディスプレイ105上に任意の保存画像を表示し、ユーザーI/Fを介してユーザーからの合焦・非合焦対象リストからの削除指示があるか否かを判定する。例えば、ユーザーがディスプレイ105上に表示中の保存画像中の任意の位置を指定し、その位置の対象物の合焦・非合焦対象リストから削除する旨の項目を選択した場合に、全体制御部108は、削除指示があったと判定する。
ステップS2107においてリストからの対象物削除指示がないと判定した場合、全体制御部108は、ステップS2110へ処理を進める。ステップS2107においてリストからの対象物削除指示があると判定した場合、全体制御部108は、ステップS2108へ処理を進める。ステップS2108において、全体制御部108は、ステップS2107で指示された対象物をリストから削除する。このとき対象物を削除するリストは、保存画像と同一グループに属するリストであってもよい。あるいは、ユーザーにどのグループに属するリストから対象物を削除するかを選択させてもよい。あるいは全てのグループに属するリストから対象物を削除してもよい。ステップS2109では、全体制御部108は、ステップS2107にて指示された対象物を全てリストから削除したかを判定し、全ての削除対象物が処理されるまでステップS2108の処理を繰り返す。リストからの全削除対象物に対する処理を終えると、全体制御部108は、ステップS2110へ処理を進める。
ステップS2110では全体制御部108は、合焦・非合焦対象リストが更新された際の保存画像に対するリフォーカス位置情報更新の指示があるか否かを判定する。ここで、保存画像は、更新された合焦・非合焦対象リストが属するグループとそのグループが包含するグループとに含まれる全ての保存画像とすることができる。また、リフォーカス位置情報更新とは、図8のフォーマットにおけるリフォーカス位置情報803のフィールドに対して、図19に示すような位置情報のフィールドを追加したり、削除したりする処理である。なお、上述したように図19に示すリフォーカス位置情報1203は、複数の項目に対する値を含めることができる。なお、リフォーカス位置情報更新指示はステップS2110のリスト更新時に指示するか否かをユーザーインターフェイス(以下UI)によりユーザーに選択させるようにすることができる。あるいは、ステップS2101におけるリストへの対象物の追加指示の際にユーザーから指示されてもよい。あるいは、事前にユーザー、又は機器によって自動で設定されている指示であってもよい。ステップS2110において、全体制御部108は、リフォーカス位置情報更新指示がないと判定した場合、そのまま処理を終了する。ステップS2110において、全体制御部108は、リフォーカス位置情報更新指示があると判定した場合、ステップS2111のリスト追加反映処理に進む。
図22はリストへの追加対象物を保存画像のリフォーカス位置情報に反映するリスト追加反映処理ステップS2111の詳細を示しており、これについて説明を行う。まず、ステップS2201では全体制御部108は、合焦・非合焦対象リストへの対象物の追加処理があるか否かの判定を行う。ステップS2201においてリストへの対象物の追加がないと判定した場合、全体制御部108は、リスト追加反映処理を終了し、ステップS2112へ処理を進める。ステップS2201において、全体制御部108は、合焦・非合焦対象リストへの対象物の追加処理が行われたと判定した場合、ステップS2202へ処理を進める。
ステップS2202において、全体制御部108は、保存画像内に追加対象物が存在するか否かを判定する。例えば、全体制御部108は、対象物が追加された合焦・非合焦対象リストが適用される全ての保存画像の中から1つの保存画像を抽出する。そして、全体制御部108は、保存画像内に追加の対象物が存在するかを判定する。この判定は画像解析部112による保存画像内の領域の認識情報とリスト内の対象物の認識情報との比較により、その値の差が所定の範囲内に収まっているか否かで行うことができる。ステップS2202において、全体制御部108は、保存画像内に追加対象物が存在しないと判定した場合、ステップS2205へ処理を進める。ステップS2202において、全体制御部108は、保存画像内に追加対象物が存在すると判定した場合、ステップS2203へと処理を進める。ステップS2203では全体制御部108は、保存画像のデータのうち、図19のリフォーカス位置情報1203内の位置情報1206から1209と、チェイン情報1210と、属性情報1220と、識別コード1901とを更新する。すなわち、追加された対象物についての項目がそれぞれ追加されたリフォーカス位置情報1203を有する保存画像に更新する。追加された対象物が合焦対象の場合も非合焦対象の場合も、本ステップにおいてリフォーカス位置情報1203が更新される。位置情報1206から1209とチェイン情報1210、属性情報1220については実施例1及び実施例3と共通であるため説明を省略する。識別コード1901の更新についてはリスト合焦・非合焦対象リストにおける追加対象物の識別コード1804をコピーして保存する。
次に、ステップS2204では全体制御部108は、リストへの1つの追加対象物に関して、適用範囲グループ内の保存画像すべてについてリフォーカス位置情報付加処理を行ったか否かを判定する。ステップS2204において未処理の処理すべき保存画像が存在すると判定した場合、全体制御部108は、次の保存画像に関するリフォーカス位置情報付加処理を行うためステップS2202に処理を戻す。ステップS2204において未処理の処理すべき保存画像がないと判定した場合、全体制御部108は、ステップS2205へ処理を進める。ステップS2205では全体制御部108は、リストへのすべて追加対象物に関して、リフォーカス位置情報付加処理を行ったか否かを判定する。未処理の追加対象物が存在する場合、全体制御部108は、ステップS2202へ処理を戻し、次の追加対象物に関する処理を行う。ステップS2205において、未処理の追加対象物が存在しないと判定した場合全体制御部108は、リスト追加反映処理を終了し、ステップS2112へ処理を進める。
図23はリストからの削除対象物を保存画像データ内のリフォーカス位置情報に反映するリスト削除反映処理ステップS2112の詳細を示す図である。まず、ステップS2301では全体制御部108は、合焦・非合焦対象リストから対象物の削除を行ったか否かの判定を行う。リストからの削除対象物がないと判定した場合全体制御部108は、リスト削除反映処理を終了しリスト更新処理は完了となる。リストからの削除対象物が存在すると判定した場合全体制御部108は、ステップS2302へ処理を進める。ステップS2302において全体制御部108は、削除対象物に関して保存画像データ内に削除対象物に対するリフォーカス位置情報が存在するか否かを判定する。判定は削除対象物の識別コード1804と保存画像データに付加されているリフォーカス位置情報中の識別コード1901との照合により行うことができる。識別コードが合致するものが存在しないと判定した場合全体制御部108は、ステップS2304へ処理を進める。識別コードが合致するものが存在すると判定した場合全体制御部108は、ステップS2303に処理を進める。ステップS2303において、全体制御部108は、ステップS2302において合致すると判定した識別コードを持つリフォーカス位置情報の削除を行う。すなわち、全体制御部108は、図19に示す識別コード1901と、その識別コード1901に関連付けられたチェイン情報1210、属性情報1220、位置情報1206−1209を削除する。なお、リフォーカス位置情報は前述の通り多値を有することができる。したがって、リフォーカス位置情報に複数のフィールド(すなわち、複数の対象物に関する情報)が含まれている場合には、ステップS2302において合致すると判定された識別コードに関連する情報のみを削除する。
ステップS2304では全体制御部108は、リストからの削除対象物の適用範囲グループ内の保存画像を全て処理したか否かを判定する。未処理の処理すべき保存画像が存在すると判定した場合、全体制御部108は、次の保存画像を処理するためステップS2302へ処理を戻す。未処理の処理すべき保存画像が存在しないと判定した場合全体制御部108は、ステップS2305へ処理を進める。ステップS2305では全体制御部108は、リストから削除が行われた対象物すべてに関して、リフォーカス位置情報削除処理が行われたか否かを判定する。未処理のリストからの削除対象物が存在すると判定した場合、全体制御部108は、次の削除対象物に関する処理を行うためステップS2302に処理を戻す。未処理のリストからの削除対象物が存在しないと判定した場合全体制御部108は、リスト削除反映処理を終了しリスト更新処理は完了となる。
次に、画像撮像時に撮像画像に合焦・非合焦対象リストに基づいたリフォーカス位置情報を付加する際の処理フローを、図24を用いて詳細に説明する。まず、ステップS2401で全体制御部108は、ユーザーの指示により撮像画像が所属するグループを決定する。例えば、全体制御部108は、例えばディスプレイ105上に撮像画像が所属するグループを選択させる設定画面を表示し、ユーザーI/Fを介してユーザーから指示により撮像画像が所属するグループを決定する。あるいは、事前にユーザー、又は機器によって自動で設定されている指示であってもよい。
次に、ステップS2402では全体制御部108は、撮像画像に対するリフォーカス位置情報付加指示があるか否かを判定する。ステップS2401と同様に、全体制御部108は、例えばディスプレイ105上に撮像画像に対してリフォーカス位置情報を付加するか否かを選択させる設定画面を表示する。そして、ユーザーI/Fを介してユーザーから指示によりリフォーカス位置情報付加指示があるか否かを判定する。あるいは、事前にユーザー、又は機器によって自動で設定されている指示であってもよい。リフォーカス位置情報付加指示がないと判定した場合、全体制御部108は処理を終了する。ステップS2402においてリフォーカス位置情報付加指示があると判定した場合、全体制御部108は、ステップS2403へ処理を進める。リフォーカス位置情報付加指示は、リスト更新時に指示するか否かをUIによりユーザーに選択させるようにすることもできる。
ステップS2403では全体制御部108は、撮像画像の所属グループに基づいて適用する合焦・非合焦対象リストを決定する。ステップS2404において全体制御部108は、撮像画像に対して一般オブジェクト認識を行いオブジェクトを抽出する。ステップS2405において全体制御部108は、ステップS2404において抽出されたオブジェクトのうち所定個を抽出する。一例として、全体制御部108は、ステップS2404の一般オブジェクト認識として、顔認識処理を行い、検出された複数の顔領域のうちS2405において顔領域の面積の大きい順に所定個抽出するように処理することができる。ステップS2404におけるオブジェクトは顔に限定されてはおらず、動物や樹木、それら複数の組み合わせであってもよい。また、ステップS2405における所定個のオブジェクト抽出の方法はオブジェクトの領域面積の大きい順に限定されない。例えば、合焦対象に対しては画像の中央から距離が近いものから順に適用し、非合焦対象に対しては画像の中央から遠い順に順位付けするなど、その他の方法による順位付けを用いてもよい。ステップS2404、ステップS2405のように処理することで後述するステップS2406からステップS2408の処理負荷を軽減することができる。しかしながら、ステップS2404、ステップS2405は必須の処理ではなく、含まずとも本実施例の実施は可能である。
ステップS2406では全体制御部108は、ステップS2405で抽出したオブジェクトが合焦・非合焦対象リスト内の対象物であるか否かの判定を行う。この判定は、ステップS2405で抽出したオブジェクトと合焦・非合焦対象リスト内の認識情報とを比較することによって行われる。抽出オブジェクトがリスト内の対象物でないと判定した場合全体制御部108は、ステップS2408へ処理を進める。抽出オブジェクトがリスト内の対象物であると判定した場合、全体制御部108は、ステップS2407に処理を進める。ステップS2407では撮像画像へのリフォーカス位置情報付加処理を行う。ステップS2407はステップS2203と同じ処理であり、詳細な説明は省略する。
ステップS2408では全体制御部108は、適用する合焦・非合焦対象リスト内の対象物と抽出オブジェクトの全ての組み合わせでステップS2406、ステップS2407の処理を行ったか否かを判定する。全ての組み合わせで完了していない場合、全体制御部108は、次の組み合わせの処理を行うためステップS2406に処理を戻す。全ての組み合わせで完了している場合、全体制御部108は、撮像時の全体の処理を終了する。
次に、任意のタイミングでその時点の合焦・非合焦対象リストに基づき保存画像のリフォーカス位置情報を更新する際の処理フローについて、図25などを用いて説明を行う。
まず、ステップS2501において、全体制御部108は、リフォーカス位置情報の更新を行う画像の選択を受け付ける。選択はユーザーがUIにより行っても良いし、機器の設定により自動で選択されても良い。ステップS2502では全体制御部108は、リフォーカス位置情報を更新する画像の所属グループに基づき適用する合焦・非合焦対象リストを適用リストとして決定する。
ステップS2503では全体制御部108は、ステップS2502で決定された適用リスト内の対象物に関するリフォーカス位置情報がステップS2501で選択された保存画像に既に存在しているか否かを判定する。この判定は適用リスト内の対象物の識別コードと同じ識別コードを持つリフォーカス位置情報が保存画像データに含まれるかどうかを調べることにより行うことができる。ステップS2503において適用リスト内の対象物に関するリフォーカス位置情報が既に存在していると判定した場合全体制御部108は、処理をステップS2510に進める。ステップS2503において適用リスト内の対象物に関するリフォーカス位置情報が存在しないと判定した場合全体制御部108は、処理をステップS2504へ進める。
ステップS2504では全体制御部108は、リスト内の対象物がステップS2501で選択された画像内に存在するか否かを判定する。ステップS2504の処理は、画像解析部112による保存画像内の領域の認識情報とリスト内の対象物の認識情報との比較により、その値の差が所定の範囲内に収まっているか否かで行うことができる。すなわち、ステップS2503では識別コードの有無によって判定を行い、ステップS2504では認識情報の比較により判定を行う。ステップS2504においてリスト内の対象物がステップS2501で選択された保存画像内に存在しない場合、全体制御部108は、ステップS2506へ処理を進める。ステップS2504においてリスト内の対象物がステップS2501で選択された保存画像内に存在する場合全体制御部108は、ステップS2505に処理を進める。ステップS2505では全体制御部108は、リフォーカス位置情報の付加を保存画像に対して行う。ステップS2505の処理はステップS2203と同じであるので詳細な説明は省略する。
一方、ステップS2510では全体制御部108は、ステップS2502で決定した適用リスト内の対象物の属性情報と、ステップS2503で同一の識別コードを有すると判定されたリフォーカス位置情報に含まれる属性情報とを比較する。属性情報が一致している場合全体制御部108は、属性情報の変更なしと判定しステップS2506に処理を進める。属性情報が一致しない場合全体制御部108は、属性情報の変更ありと判定し、ステップS2511に処理を進める。ステップS2511において、全体制御部108は、リフォーカス位置情報に含まれる属性情報をステップS2502で決定された適用リスト内の対象物の属性情報で上書きする。これは、いままで合焦対象であったものが、非合焦とされた場合などにおいて適用される。
ステップS2506では全体制御部108は、適用する合焦・非合焦対象物リスト内の対象物すべてについて保存画像に対するリフォーカス位置情報付加処理が終了したか否かを判定する。リスト内の対象物に未処理のものが存在する場合、全体制御部108は、次の対象物の処理のためステップS2503に処理を戻す。リスト内の対象物に未処理のものが存在しない場合全体制御部108は、処理をステップS2507に進める。
ステップS2507では全体制御部108は、ステップS2501で選択された保存画像に付加されているリフォーカス位置情報のうち、ステップS2502で決定された適用のリスト内に存在しない対象物に関するものが存在するか否かを判定する。この判定は適用リスト内の対象物の識別コードのいずれにも該当しない識別コードを持つリフォーカス位置情報があるかどうかを調べることにより行うことができる。適用リスト内に存在しない対象物に関するリフォーカス情報がある場合、全体制御部108は、ステップS2508に処理を進め、保存画像に付加されている当該リフォーカス情報を削除する。適用リスト内に存在しない対象物に関するリフォーカス位置情報がない場合、全体制御部108は、ステップS2509に処理を進める。
ステップS2509では全体制御部108は、ステップS2501で選択された保存画像すべてに対してリフォーカス位置情報更新処理が行われたか否かを判定する。未処理の保存画像が存在する場合全体制御部108は、次の画像の処理のためステップS2502へ処理を戻す。未処理の保存画像が存在しない場合全体制御部108は、処理を終了する。
図25のように処理することで、合焦・非合焦対象リストの更新を任意のタイミングで任意の保存画像に対して適用することができる。
なお、図21、図24、図25の各処理では、リストの更新や保存画像のリフォーカス位置情報の更新をする処理について説明した。その後の処理として、リフォーカス位置情報の追加または削除がされた保存画像に対して、実施例3で説明したピント面を新たに形成した画像データを生成する処理を行う。この保存画像の更新処理は、図21、図24、図25の各処理のあとに行っても良いし、ユーザーからの指示に応じて行っても良い。
以上のように焦点を合わせる対象、焦点を合わせない対象を個々の画像データと別に記憶、管理することによって、複数の視点から撮像した画像を合成する際にユーザーの意図を反映した画像を迅速に作成して表示することが可能になる。
また、特定の対象に焦点を合わせるように、あるグループに属するリフォーカス画像に対して一括して指示することが可能になり、ユーザーの操作の負荷を軽減することが可能となる。
本実施例を図1、図11、図12、及び図18から図27を用いて詳細に説明する。図1、図11、図12、図18から図25については実施例1、3、4と共通のため説明を省略する。
実施例4においては合焦・非合焦対象リストを記憶・管理し、このリストに基づいて画像データにリフォーカス位置情報を一括で更新する例を示した。本実施例ではユーザーが保存画像中から対象物を指定することによって特定された合焦・非合焦対象の認識情報1806をより識別性の高いものに簡便に更新するための方法の例を示す。また、合焦・非合焦対象リストに基づき生成されたリフォーカス位置情報のうち、ユーザーの意図と異なるものをユーザーが判断し、簡便に訂正を行う手法の例を示す。
本実施例においては実施例4における合焦・非合焦対象リストのデータフォーマットは図26となる。図26では図18のデータフォーマットに加えて、対象物ごとにその対象物の領域を切出した対象物切出し画像2601を付加する。対象物切出し画像(以下、切出し画像という)2601は、ユーザーが合焦・非合焦対象リストへの追加対象物を画像中から指定する際に、認識した対象物の領域を切出すことで得られる。
図27はユーザーにより合焦・非合焦対象リスト内の対象物の認識情報の更新と、ユーザーの意図と異なるリフォーカス位置情報の訂正とを行うためのUIの例を示している。
図27(a)において2701から2703は合焦・非合焦対象リスト内における、それぞれの合焦対象物の切出し画像2601に対応する画像を表示している。同様に2704、2705は非合焦対象物の切出し画像を表示している。以降UIによる選択操作はタッチパネル上の操作として説明を行うが、マウスでカーソルを移動して選択する方法や、ボタン操作により選択する方法であっても良く、操作方法を限定するものではない。また、以降で記述するタップという操作はタッチパネル上の一定範囲内を一定時間以上押下してその後離す一連の動作のことを指す。
ここでは、ユーザーがリスト内の対象物である人物Aについて認識情報、リフォーカス位置情報を操作する場合を考える。まず、ユーザーは図27(a)上で画像2701をタップし選択を行う。2701を囲んでいる太枠は選択したことを表すものである。次に、認識データ更新ボタン2719をタップすることで、表示が図27(a)から図27(b)に切替わる。
2706、2707は人物Aを示す識別コードが割当てられた合焦・非合焦対象リスト内の対象物切出し画像2601を表示しているものである。なお、図27の例において2706、2707の対象物データには人物Aを示す同一の識別コード1804が割当てられている。なお、このように同じ識別コードを持つ複数の対象物データをリスト内に持ってもよい。同じ識別コードを持つ複数のデータがある場合、前述の図27(a)で表示する切出し画像は同じ識別コードを持つ対象物については、それらの切出し画像のうちいずれか1枚を表示すればよい。また、同じ識別コードを持つ複数のデータがある場合、先の実施例で説明した認識情報の比較は、複数の識別コードを用いて各保存画像について行うことができる。
図27(b)中の2708から2714は、合焦・非合焦対象リスト内の対象物2706、又は2707と同じ識別コードが割当てられたリフォーカス位置情報を含む画像データから得た切出し画像である。この切出し画像は各画像データに含まれるリフォーカス位置情報1203中の位置情報1206から1209の座標が示す矩形領域を切出すことにより得ることができる。
ここで、2708から2714はすべて人物Aであることが望ましいが、図27(b)の例では誤認識により人物F2709、人物G2714が表示されている。このとき、ユーザーは2709、2714をタップして選択し、適用解除ボタン2718をタップすることで2709と2714に関するリフォーカス位置情報を対応する画像データ中から削除することができる。すなわち、人物Aを示す識別コードを含むリフォーカス位置情報のフィールドを画像2709と2714の切出し元である画像データから削除する。これにより、次に認識データ更新を行う場合には、人物Aを示す識別コードが含まれていないため、図27(b)の適用対象として抽出されなくなる。
また、人物Aに合焦するためのリフォーカス位置情報は適用対象の保存画像中の全ての人物Aについて生成されることが望ましい。しかしながら、合焦・非合焦対象リストに含まれる人物Aの認識情報によっては、必ずしもすべての人物Aに対してリフォーカス位置情報が生成されないことが考えられる。
これを改善するために、ユーザーはまず、2708から2714の中で、より識別に適すると判断した画像をタップして選択する。次に、リストに追加ボタン2717をタップすることで当該画像を人物Aの識別コードを持つ合焦対象物として合焦・非合焦対象リストに追加することができる。
さらに、2706、2707に示すリスト内の対象物は、これらをタップして選択し、削除ボタン2715をタップすることで削除することもできる。
一連のリスト更新処理の後、リスト再適用ボタン2716をタップすると保存画像の画像データから人物Aの識別コードが割当てられたリフォーカス位置情報をすべて削除する。その後、リスト更新後の人物Aの認識情報を用いて再度、実施例4の方法によって適用保存画像にリフォーカス位置情報を付加する。その結果を図27(b)のUI上に反映する。なお、ここで、リスト更新の追加対象物の認識情報は追加対象物の切出し画像、又は切出し元画像に対して画像解析部112が処理することにより得られる。
図27(c)は図27(b)において対象物2711をリストに追加し、リスト再適用を行った結果の画面を示している。追加された画像はリスト内対象物として2720に示されている。2701から2714と2721がリスト内対象物2706、2707、2720に基づいてリフォーカス位置情報が付加された保存画像からの切出し画像である。対象物2720をリストに追加したことにより、適用対象として図27(b)の7件に加えて、切出し画像2721が表示されている。これは、切出し元画像2721に人物Aを示す識別コードが関連付けられたリフォーカス位置情報が付加されたことを示している。
以上のように処理することで、ユーザーが合焦・非合焦の対象となっている切出し画像を確認しながらリストの認識情報をより識別性の高いものに更新することができる。また、生成されるリフォーカス位置情報のうち不要なものを簡便に削除することも可能である。その上で、リストの更新に基づき、あるグループに属するリフォーカス画像に対して一括して合焦・非合焦を指示することが可能になり、ユーザーの操作の負荷を軽減することが可能となる。
本実施例を図28を用いて詳細に説明する。前述した実施例と共通の内容については説明を省略する。
本実施例におけるシステム構成を図28に示す。本実施例におけるシステムは、図1に示すような構成を持つデジタルカメラ2801、PC、携帯電話、タブレットなどの画像表示端末2802、サーバー2804を含む。これらはネットワークに接続するための通信機能を備えている。ネットワーク2803にはデジタルカメラ2801、PC、携帯電話、タブレットなどの画像表示端末2802、サーバー2804などが接続されている。
実施例4、5で示した合焦・非合焦対象リストの運用は図28に示すような機器同士のネットワークを介した連携により、より効率的な運用が可能となる。
サーバー2804は人物、動物、電柱、樹木などユーザーが個別に合焦・非合焦対象リストに登録しない、一般的な対象物を識別するための識別情報を所持している。また、認識情報と合焦状態の情報に基づいてリフォーカス位置情報を生成する機能を持っている。さらに、サーバー2804はリフォーカス位置情報を基にリフォーカス画像を生成する機能を持っていてもよい。
サーバー2804上でリフォーカス画像を生成した場合には、PC、携帯電話、タブレットなどの画像表示端末2802にネットワークを介してリフォーカス画像を転送することで、画像表示端末2802上でリフォーカス画像を閲覧することもできる。
また、画像表示端末2802はその表示画面を用いて、実施例5に示したような合焦・非合焦対象リストの更新作業が可能であるとする。その場合、合焦・非合焦対象リストはサーバー2804上から画像表示端末2802にダウンロードされるのでもよいし、サーバー2804上のデータを直接変更できる仕組みがあってもよい。画像表示端末2802にダウンロードされる場合は、合焦・非合焦対象リストの更新処理後サーバーに対してリストがアップロードされる。その後、必要に応じて更新された合焦・非合焦対象リストに応じて、サーバー側でリフォーカス位置情報を生成するようにすることも可能である。
デジタルカメラ2801はサーバー2804との通信により、サーバーが処理することのできる合焦・非合焦対象物の情報を得る。この情報入手は、サーバー上の合焦・非合焦対象リストの更新が行われた後にサーバー2804とデジタルカメラ2801の通信が行われた場合に、自動で行われるようにすることも可能である。また、その更新の内容を、UIを通しユーザーに通知することも可能である。更新した場合にユーザーに通知するような設定にした場合には、ユーザーはその中から合焦・非合焦対象物を選択し、デジタルカメラ2801内に保存する。このようにすることにより、デジタルカメラ2801では、更新した合焦・非合焦対象リストに基づいて、その後に撮像した画像の表示を最適化することが可能になる。
デジタルカメラ2801において撮像、保存された画像データとユーザーが選択、保存したサーバーに処理させる合焦・非合焦対象物情報はネットワーク2803を介してサーバー2804に転送される。サーバー2804へ転送される画像データにはその時点で付加されているリフォーカス位置情報も含む。サーバー2804はユーザーが設定した合焦・非合焦対象物情報に基づき、各画像データに対するリフォーカス位置情報生成処理を行う。生成されたリフォーカス位置情報は再びネットワーク2803を介してデジタルカメラ2801に転送され、デジタルカメラ2801内の対応する画像のリフォーカス位置情報が更新される。その際、リフォーカス位置情報を基にサーバー2804により生成されたリフォーカス画像データが、同時にデジタルカメラ2801へ転送されてもよい。
このように構成することでデジタルカメラ2801上のリフォーカス位置情報生成・リフォーカス画像生成の処理負荷を軽減することができ、また、デジタルカメラ2801上に保持しておく認識情報のデータ量を低減することが可能になる。
実施例4においては、合焦・非合焦の指示に対応した基本的な仮想ピント面や被写界深度の変更の仕方について示した。本実施例においては、さらに複雑な要求に対応して仮想ピント面を変更する方法について説明する。図15、図29〜図33を用いて説明する。
図15(b)において、人物Cが画面上で長押しされ、非合焦対象にする指示が出されたとする。このとき、仮想ピント面を変更する方針として「指定された対象以外のものはなるべく見え方を変更しない」という方針がユーザーにより設定されていたとする。この場合、仮想ピント面は変えずに、画角上の人物Cに関連する部分だけ被写界深度を浅くすることによって、人物Cをぼかすようにすることが可能である。図29(a)にそのような場合の例を示す。仮想ピント面1501は変更されていないが、人物Cの画角に関連する部分のみ被写界深度が矢印2902に示すように浅く設定される。そのため、合焦する範囲が点線2903と点線2904の間となり、人物Cが合焦範囲から外れることとなる。図29(b)にその時の表示画像を示す。
図30、31を用いて、同一仮想ピント面上にある人物のうち、一人を外して合焦させたい場合のピント面の変更方法に関して示す。図30(a)において、人物A,B,Eは同一仮想ピント面3001上に存在するものとして、合焦状態にある。人物Dはこの時合焦対象ではないので、人物Dを合焦範囲から外すように被写界深度3002が決められたとする。よって、図30においては、合焦範囲は直線3003と直線3004の間となっている。その時のディスプレイ105上の表示画像を図30(b)に示す。
この図30(b)の画面において、人物Eが画面上で長押しされ、非合焦対象にする指示が出されたとする。このとき、人物A,B,Eは同一仮想ピント面上に存在するため、被写界深度の調節だけでは、人物Eを非合焦状態にすることはできない。そのような場合には、仮想ピント面の一部をずらすことによって対応が可能である。そのような場合を図31に示す。図31(a)においては、仮想ピント面3101は人物Eの近辺で多眼カメラ撮像部101から遠い側に曲げられている。被写界深度の変更は行われていないため、仮想ピント面の変更に伴い、被写界深度範囲を示す線も点線3103及び3104のように曲げられる。この操作により、図31(b)に示すように、人物A,Bにのみ合焦した画像がディスプレイ105に表示されることになる。
図32、33を用いて、仮想ピント面を曲面で定義した場合の例を示す。図32(a)は、人物A,B,C,Dに合焦した画像を合成する場合を示したものである。この場合、仮想ピント面3201は人物A,B,C,Dを通った曲面として定義される。そのため、図32(b)に示すように、人物A,B,C,Dに対して、それぞれ合焦し、なおかつ被写界深度の浅い(ピントが合っているところ以外はぼけ具合が大きい)画像をディスプレイ105に表示することが可能になる。
ここで、ディスプレイ105上のCの画像を長押しし、人物Cを非合焦対象として指定したとする。その結果作成された画像と仮想ピント面の状況を図33に示す。図33(a)では、仮想ピント面3301が人物Cではなく、人物Cの後ろの木の場所を通るように変更された様子を示している。先に述べたように、この画像の被写界深度は浅いため、図33(b)に示したように人物Cはボケた画像となる。
仮想ピント面を曲面として定義して画像を合成する処理の流れは、先に実施例3の図13を用いて説明した。ここでは、曲面として定義する上での特徴的な事象について図13を再度用いて説明する。
仮想ピント面生成部1305は、指示された合焦すべき対象の数と位置に応じてピント面の形状を生成する。例えば、図32の場合、人物A,B,C,Dに合焦するように指示が出されている。この時、仮想ピント面生成部1305は、バッファ1315のフォーカス座標情報から、人物A,B,C,Dの表示画面(ここでは、図33(b)の画像)に対応する2次元座標(XA,YA)(XB,YB)(XC,YC)(XD,YD)を入手する。また、バッファ1314の距離画像から、前記2次元座標を用いて人物A,B,C,Dの撮像時の3次元空間位置(xA,yA,zA), (xB,yB,zB), (xC,yC,zC), (xD,yD,zD)を把握する。その上で、仮想ピント面生成部は合焦すべき対象の数に基づき、ピント面を生成するベースになる曲線の次数を定義する。本実施例では、“合焦すべき対象の数−1”を次数とする。この例では合焦すべき対象は人物A,B,C,Dの4人であることから、合焦すべき対象の数は4となり、曲線の次数は3と定義される。なお、この次数の決め方はこの方式に一意に決まるものではなく、合焦すべき対象が多い場合には、上限を設けるなどすることも考えられる。また、実際の合焦すべき対象の位置関係においては、曲線の次数が先に示した次数より低い次数となる場合もある。
次に仮想ピント面生成部1305は、実際の曲面を定義する。図32(a)は、そのまま被写体が存在する3次元空間をy軸方向から観察した様子となっている。すなわち、図32(a)の奥行き方向がz軸になり、撮像部と各被写体との距離となる。いま、曲線の次数が3と定義されたので、曲線に対応する多項式は以下のようになる。
z = ax^3 + bx^2 + cx +d
この式に先に求めた人物A,B,C,Dの撮像時の3次元空間位置(xA,yA,zA), (xB,yB,zB), (xC,yC,zC), (xD,yD,zD)のxとzに対応する値を入れた連立方程式を解く。これによって、xz平面上の曲線を求めることができる。求め方としては行列演算によるものや最小二乗法による近似曲線を求めるなど様々な方法があるが、ここでは割愛する。ここで求めた多項式の次数と係数がバッファ1316に格納されるピント面の形状を表現するピント面情報となる。
ピント面情報が求まると、画像合成部1306は求めた多項式が示す曲線をy軸方向に拡張し、仮想ピント面を生成する。そして、バッファ1312の撮像データの各個眼毎に重み付けをして足し合わせ、画像を合成する。その際、仮想ピント面上の人物A,B,C,Dに相当する位置に対しては仮想ピント面上に焦点の合った画像を合成する。また、人物A,B,C,D以外に対しては、実際にその撮像対象が存在した3次元空間位置と仮想ピント面の存在する位置との距離から、ぼかし具合を計算し、その距離に応じたぼかし効果を持つ画像を合成する。ぼかし具合の計算には設定される被写界深度を考慮して行う。このように曲面のピント面を利用することによって、図31や図33に示したように指定された対象のみを選択的に非合焦にすることが可能になる。
以上のようにすることで、多眼カメラ撮像部101から同じ距離にあるような2つの物体に対しても選択的に片方だけぼかした画像を作ることが可能になる。よって、ユーザーは画面上に表示された物体に対して、特に距離や被写界深度を意識することなく、簡単に非合焦対象を選択して指示を行い、意図した画像を作成することが可能になる。
ここまでの実施例では多眼カメラ撮像部101を用いて複数の画像として異なる視点から同時に撮像された画像を用いていたが、例えば、連続した時刻において撮像した画像を用いることも可能である。例えば、連続する2つ以上の時刻において、カメラの位置を微小に変化させて撮像した場合や、カメラのレンズの焦点位置を微小に変化させて撮像した場合が考えられる。どちらの場合も被写体に動きがなく、カメラの位置変化もしくはレンズの焦点位置の変化が既知であれば、複数画像を用いて距離推定を行って距離画像を作ることが可能である。
図34にカメラのレンズの焦点位置を微小に変化させて連続撮像した場合の例を示す。図34において、3401は連写の可能なカメラ撮像部である。カメラ撮像部3401の画角は3401から斜めに伸びる3410、3411の2本の線によって示され、その範囲内の被写体である、人物A、B、C、Dが山や木と一緒に撮像されている。
ここで、時刻t1に人物Cに焦点が合うように仮想ピント面3402を設定した画像が撮像されたとする。その直後の時刻t2に人物A及びBに焦点が合うように仮想ピント面3403を設定した画像が撮像されたとする。更に時刻t3に人物Dに焦点が合うように仮想ピント面3404を設定した画像が撮像されたとする。
ここで、時刻t1、t2、t3の間隔が十分に短く被写体の動きが無視できるとする。その場合、3つの仮想ピント面で撮像した画像と、その時の焦点距離情報、及び撮像した画像情報から距離推定を行い、距離画像を作ることが可能である。距離画像ができれば、あとは第3の実施例において図13を用いて説明した処理の流れに沿って焦点位置を変えた画像を作成することが可能になる。よって、ユーザーが表示画像上で焦点を合わせたくない領域を指示し、その指示領域を非合焦領域になるようにピント面を生成し、画像を合成・表示することが可能になる。
<その他の実施例>
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア(プログラム)を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ(またはCPUやMPU等)がプログラムを読み出して実行する処理である。