(57)【要約】      （修正有）【課題】撮像データから被写体の実距離を高精度に推定する。【解決手段】距離推定部200は、符号化開口を有する絞りを備えた撮像光学系を用いて撮像された撮像データを入力し、撮像データを撮像した前記撮像光学系の撮像パラメータを取得する。スペクトル計算部701は、撮像データのスペクトルを算出する。スペクトルモデル生成部702は、撮像パラメータおよび被写体距離に対応する光学特性情報、並びに、スペクトルモデルを用いて、撮像データに対応するスペクトルモデルである予測モデルを生成する。評価関数生成部707は、撮像データのスペクトルおよび予測モデルを使用して評価関数を生成する。距離推定部200は、評価関数から撮像データが表す画像に含まれる被写体の実距離を推定する。【選択図】図７
2012127700.tif 000002
【特許請求の範囲】
【請求項１】
符号化開口を有する絞りを備えた撮像光学系を用いて撮像された撮像データを入力する入力手段と、
前記撮像データを撮像した際の前記撮像光学系の撮像パラメータを取得する取得手段と、
前記入力した撮像データのスペクトルを算出する算出手段と、
前記撮像光学系の光学特性情報、および、撮像データのスペクトルモデルを記憶する記憶手段と、
前記撮像パラメータ、前記撮像パラメータおよび被写体距離に対応する光学特性情報、並びに、前記スペクトルモデルを用いて、前記入力した撮像データに対応するスペクトルモデルである予測モデルを生成するモデル生成手段と、
前記撮像データのスペクトルおよび前記予測モデルを使用して評価関数を生成する関数生成手段と、
前記評価関数から前記撮像データが表す画像に含まれる被写体の実距離を推定する推定手段とを有することを特徴とする画像処理装置。
【請求項２】
前記推定手段は、値が最小の評価関数を抽出し、前記抽出した評価関数の生成に使用した予測モデルを生成した際の被写体距離を前記被写体の実距離とすることを特徴とする請求項1に記載された画像処理装置。
【請求項３】
前記記憶手段は、さらに、撮像データのノイズ特性を記憶し、
前記モデル生成手段は、前記撮像パラメータに対応するノイズ特性が示すノイズを前記予測モデルに加算することを特徴とする請求項1または請求項2に記載された画像処理装置。
【請求項４】
入力手段、取得手段、算出手段、記憶手段、モデル生成手段、関数生成手段、推定手段を有する画像処理装置の画像処理方法であって、
前記入力手段が、符号化開口を有する絞りを備えた撮像光学系を用いて撮像された撮像データを入力し、
前記取得手段が、前記撮像データを撮像した際の前記撮像光学系の撮像パラメータを取得し、
前記算出手段が、前記入力した撮像データのスペクトルを算出し、
前記モデル生成手段が、前記撮像パラメータおよび被写体距離に対応する光学特性情報、並びに、スペクトルモデルを前記記憶手段から取得して、前記撮像パラメータ、前記光学特性情報、および、前記スペクトルモデルを用いて、前記入力した撮像データに対応するスペクトルモデルである予測モデルを生成し、
前記関数生成手段が、前記撮像データのスペクトルおよび前記予測モデルを使用して評価関数を生成し、
前記推定手段が、前記評価関数から前記撮像データが表す画像に含まれる被写体の実距離を推定することを特徴とする画像処理方法。
【請求項５】
画像処理装置を制御して、請求項1から請求項3の何れか一項に記載された画像処理装置の各手段として機能させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、撮像データが表す画像に含まれる被写体の実距離を推測する画像処理に関する。
【背景技術】
【０００２】
撮影画像におけるカメラ（またはレンズ）と被写体の間の距離（以下、被写体の実距離）と、被写体画像の二次元的な暈けの形状の間には密接な関係がある。撮影時のレンズとピントが合う位置の間の距離である被写体距離と、暈けの形状の関係に基づき、撮影画像中の各点の暈けの形状を解析することで、撮影画像における各点の距離を推定する技術がある。
【０００３】
距離と暈けの形状の関係は、光学系によって異なり、距離の推定が容易な光学系、あるいは、高精度な距離推定が可能な光学系が知られている。例えば、特許文献1は、距離の推定結果が高精度になるように構造化された符号化開口(coded aperture)を用い、さらに、光を分離して被写体距離が異なる複数の画像を取得して、被写体の実距離を推定する技術を開示する。
【０００４】
また、非特許文献1は、符号化開口を用いて撮影した一枚の画像から、距離を推定する技術を開示する。さらに、非特許文献1には、符号化開口の形状を対称なものとすることで距離推定精度が高まるとの知見を開示する。
【０００５】
特許文献1の技術は、光を分割して複数枚の画像を一度に撮影するため、個々の撮影画像が暗くなる上、複数の撮像デバイスが必要になる。一方、非特許文献1の技術は、撮影する画像は一枚のみであるから特許文献1の欠点は解消される。
【０００６】
しかし、非特許文献1の距離推定手法は、撮影画像に含まれる距離情報を充分に利用せず、被写体の実距離の推定精度が充分高いとは言えない。また、一枚の画像しか撮影しないこと、および、その処理手法に起因して、被写体距離の前後にある、暈けの形状がほぼ同じになる二つの距離の識別が難しい。言い換えれば、撮影画像に含まれる被写体が、被写体距離よりも後方または前方にある場合しか被写体の実距離を正確に推定することができない。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特許第2963990号公報
【非特許文献】
【０００８】
【非特許文献１】Anat Levin, Rob Fergus, Fred Durand, William T. Freeman「Image and Depth from a Conventional Camera with Coded Aperture」ACM Transactions on Graphics, Vol. 26, No. 3, Articles 70, 2007/07
【発明の概要】
【発明が解決しようとする課題】
【０００９】
本発明は、撮像データから被写体の実距離を高精度に推定することを目的とする。
【課題を解決するための手段】
【００１０】
本発明にかかる画像処理は、符号化開口を有する絞りを備えた撮像光学系を用いて撮像された撮像データを入力し、前記撮像データを撮像した際の前記撮像光学系の撮像パラメータを取得し、前記入力した撮像データのスペクトルを算出し、前記撮像パラメータおよび被写体距離に対応する光学特性情報、並びに、スペクトルモデルを記憶手段から取得して、前記撮像パラメータ、前記光学特性情報、および、前記スペクトルモデルを用いて、前記入力した撮像データに対応するスペクトルモデルである予測モデルを生成し、前記撮像データのスペクトルおよび前記予測モデルを使用して評価関数を生成し、前記評価関数から前記撮像データが表す画像に含まれる被写体の実距離を推定することを特徴とする。
【発明の効果】
【００１１】
本発明によれば、撮像データから被写体の実距離を高精度に推定することができる。
【図面の簡単な説明】
【００１２】
【図１】実施例の画像処理装置の構成例を説明するブロック図。
【図２】信号処理部の構成例を説明するブロック図。
【図３】点対称性をもたない開口例を説明する図。
【図４】点対称性をもたない開口とPSFの関係を説明する図。
【図５】MTFのパターンを説明する図。
【図６】撮影画像のスペクトルを説明する図。
【図７】距離推定部の構成例を説明するブロック図。
【図８】距離推定部の処理を説明するフローチャート。
【図９】領域分割を説明する図。
【図１０】被写界深度が非常に深い状態で撮影された複数の撮影画像の波数に対するスペクトルの絶対値の依存性を示す図。
【図１１】周波数ベクトルの大きさを説明する図。
【図１２】実施例2の距離推定処理を説明するフローチャートにより。
【発明を実施するための形態】
【００１３】
以下、本発明にかかる実施例の画像処理を図面を参照して詳細に説明する。
【実施例１】
【００１４】
［装置の構成］
図1のブロック図により実施例の画像処理装置の構成例を説明する。
【００１５】
撮像装置100は、実施例の画像処理装置であり、被写体を含むディジタル画像、および、ディジタル画像の各部における被写体の実距離を示す距離画像を生成する。
【００１６】
撮像光学系101において、フォーカスレンズ群102は、光軸上を前後に移動して撮像光学系101の焦点を調整する（ピントを合わせる）レンズ群である。ズームレンズ群103は、光軸上を前後に移動して撮像光学系101の焦点距離を変更するレンズ群である。絞り104は、撮像光学系101を通過する光の量を調整する機構である。なお、本実施例における絞りの詳細については後述する。固定レンズ群105は、テレセントリック性などのレンズ性能を向上させるためのレンズ群である。
【００１７】
シャッタ106は、露光中は光を通過させ、それ以外は光を遮る機構である。IRカットフィルタ107は、シャッタ106を通過した光に含まれる赤外線(IR)を吸収するフィルタである。光学ローパスフィルタ108は、撮影画像にモアレが生じることを防ぐフィルタである。カラーフィルタ109は、特定の波長域の光のみを透過させるフィルタで、例えばRGB各色のフィルタがベイヤ配置されたフィルタある。
【００１８】
撮像デバイス110は、CMOSセンサやCCDなどの光学センサであり、カラーフィルタ109を通過して撮像素子に入射した光の量を示すアナログ信号を出力する。アナログ-ディジタル(A/D)変換部111は、撮像デバイス110が出力するアナログ信号をディジタル信号に変換した撮像データ（以下、RAWデータ）を生成する。信号処理部112は、詳細は後述するが、A/D変換部111が出力するRAWデータにデモザイキング処理などを施してディジタル画像データを生成する。メディアインタフェイス(I/F)113は、信号処理部112が出力するディジタル画像データを、例えば撮像装置100に着脱自在に装着されたメモリカードなどの記録メディアに記録する。
【００１９】
光学系制御部114は、撮像光学系101を制御して、焦点（ピント）合わせ、ズーム設定、絞り設定、シャッタ開閉、センサ作動、といった動作を実現する。また、光学系制御部114は、撮像光学系101の制御に対応して、焦点距離、ズーム設定、絞り設定、シャッタ設定、センサ設定など、撮像光学系101の設定状態、動作状態を表す信号（以下、撮像パラメータ）を出力する。なお、光学系制御部114は、撮像光学系101内にあってもよい。
【００２０】
CPU115は、メモリ116のRAMをワークメモリとして、メモリ116のROMなどに格納されたプログラムを実行し、システムバス120を介して、各構成を制御して、各種制御および各種処理を実行する。なお、以下では、信号処理部112が距離推定処理を行う例を説明するが、CPU115が距離推定処理を行ってもよい。
【００２１】
メモリ116は、CPU115が実行するプログラム、光学系制御部114が出力した撮像パラメータ、距離推定処理に使用する光学特性情報、撮像装置100のノイズパラメータなどの情報を保持する。なお、光学特性情報は、色、撮像パラメータおよび被写体距離に依存する。ノイズパラメータは、撮像装置100のISO感度や画素値に依存する。
【００２２】
操作部117は、撮像装置100が有する図示しないレリーズボタン、各種設定ボタン、モードダイヤル、十字ボタンなどに相当する。ユーザは、操作部117のボタンやダイアルを操作して、指示をCPU115に入力する。表示部118は、グラフィカルユーザインタフェイス(GUI)や撮影画像に対応する表示画像などを表示するLCDなどである。通信部119は、例えばUSBなどのシリアルバスインタフェイスやネットワークインタフェイスで、例えばコンピュータ機器やプリンタなどの外部の装置と通信を行う。
【００２３】
●信号処理部
図2のブロック図により信号処理部112の構成例を説明する。
【００２４】
距離推定部200は、詳細は後述するが、A/D変換部111が出力するRAWデータを用いて距離推定処理を行う。現像処理部201は、デモザイキング、ホワイトバランス調整、ガンマ補正、シャープニングなど、現像処理および画像処理を行ってディジタル画像データを生成する。エンコーダ202は、現像処理部201が出力するディジタル画像データをJPEGなどのファイルフォーマットに変換し、撮像パラメータをExifデータなどとして画像データファイルに付加する。
【００２５】
●絞り
絞り104の開口は、被写体の実距離の推定を容易にするために構造化され、絞り104上のすべての点に対して非点対称な形状を有する。言い換えれば、点対称性を極力排除した形状の開口（点対称性をもたない開口）を有する。あるいは、絞りは一つである必要はなく、撮像光学系101内に、絞り104のほかに図示しない複数の絞りがあり、それらを総合して非点対称な開口としてもよい。なお、このような構造の開口を「符号化開口」と呼ぶ。また、絞りが複数ある場合も、絞りが一つの場合と全く同様の処理を行えばよく、以下では、絞りの数を区別せずに説明を行う。
【００２６】
図3により点対称性をもたない開口例を説明する。図3(a)、図3(b)は多角形の集合によって開口を構成する例を示す。図3(c)は不特定の形状の集合によって開口を構成する例を示す。図3(d)は透過率が異なる領域の集合によって開口を構成する例を示す。また、図3(e)は透明度にグラデーションがある薄いガラスによって開口を構成する例を示す。これら開口の構成は一例であり、本発明は、図3に示す開口の構成に限定されるわけではない。
【００２７】
［撮影処理］
ユーザが操作部117を操作すると、当該操作に対応する情報がCPU115に入力される。CPU115は、入力された情報を解釈し、その解釈に従い、上述した各部を制御する。例えば、ユーザがズームや焦点などを変更する操作を行うと、CPU115は、光学系制御部114に制御信号を送信し、光学系制御部114は制御信号に従い各レンズ群を動かすように撮像光学系101を制御する。そして、光学系制御部114は、各レンズ群を動かすことで変更された撮像パラメータをCPU115に返す。CPU115は、受信した撮像パラメータをメモリ116に記録する。
【００２８】
また、ユーザが操作部117のシャッタボタンを押すと、CPU115は、シャッタ106を所定時間、開く制御信号を光学系制御部114に送信し、光学系制御部114は制御信号に従いシャッタ106を所定時間、開くように撮像光学系101を制御する。制御信号を送信した後、CPU115は、A/D変換部111を制御してRAWデータを読み出し、読み出したRAWデータを信号処理部112に入力する。さらに、CPU115は、メモリ116から撮像パラメータ、ノイズパラメータ、光学特性情報を読み出して信号処理部112に入力する。信号処理部112は、入力されたRAWデータ、撮像パラメータ、ノイズパラメータ、光学特性情報を用いて、距離推定処理および現像処理、エンコードを行う。これら一連の処理によって得られたディジタル画像データは、メディアI/F113によって記録メディアに格納される。
【００２９】
［距離推定処理］
●距離推定処理の概要
本実施例における距離推定処理は、次の二段階に区分される。
【００３０】
まず、被写体距離の前後それぞれの区間において、写真画像のスペクトルの絶対値がもつ統計的性質を利用して被写体の実距離を推定し、距離候補を二つに絞る。この処理は、被写体の実距離の良好な推定結果を得るための処理である（第一の処理）。
【００３１】
次に、二つの距離候補それぞれについて、撮影画像スペクトルを距離候補に対応する光学伝達関数(OTF)で割り、撮像光学系101により変化した（暈けた）スペクトルを回復する。そして、回復したスペクトルの位相を考慮する統計量を利用して、二つの距離候補のうち、写真画像として統計的により相応しい距離候補を被写体の実距離として選択する（第二の処理）。
【００３２】
●第一の処理の原理
図4により点対称性をもたない開口とPSFの関係を説明する。絞り104が点対称性をもたない開口を有する場合、暈けの形状、つまり点像関数(PSF)は、開口の形状を反映する。例えば、図3(a)に示す開口を有する絞り104を用いた場合、図4(a)から図4(e)に示すPSFが得られる。図4(a)から図4(e)の違いは被写体の実距離の違いを示す。
【００３３】
図4に示すPSFをフーリエ変換したOTFの絶対値、つまり変調伝達関数(MTF)は、周波数に対して単調な関数ではなく特殊なパターンをもつ。図5によりMTFのパターンを説明する。図5(a)から図5(e)に示すMTFはそれぞれ図4(a)から図4(e)に示すPSFに対応し、MTFのパターンも被写体の実距離に依存する。
【００３４】
図6により撮影画像のスペクトルを説明する。図6に示すように、撮影画像のスペクトル600は、撮像光学系101を通る前の被写体のスペクトル601にOTF602を乗算し、乗算結果にノイズ603を加算したものである。言い換えれば、被写体の実距離に応じたOTF602のパターンが撮影画像のスペクトル600に埋め込まれている。つまり、上述した第一の処理（距離候補を二つに絞る処理）は、撮影画像のスペクトル600に埋め込まれたOTF602のパターンを検出して、検出したパターンに対応する被写体の実距離を決定する処理である。
【００３５】
非特許文献1の技術は、符号化開口によって埋め込まれたパターンを直接利用せずに被写体の実距離を推定する。まず、様々な被写体の実距離に対応するPSFを用いたMAP(maximum a posteriori)法に基づくデコンボリューションを撮影画像に施して撮影画像から暈けを除去した画像（以下、回復画像）を生成する。次に、回復画像と、デコンボリューションに用いたPSFをコンボリューションして暈け画像を生成する。そして、暈け画像と撮影画像を比較して、最も一致する距離を被写体の実距離にする。
【００３６】
暈け回復処理が純粋なデコンボリューションであれば、コンボリューションによって回復画像は撮影画像に戻るため、上記の比較を行っても距離による差は生じない。しかし、MAP法に基づく暈け回復処理は、純粋なデコンボリューションとは異なり、暈け回復後の画像にリンギングと呼ばれる縞模様を生じさせない処理を含む。そのため、回復画像はコンボリューションによって撮影画像には戻らない。
【００３７】
リンギングは、被写体の実距離と、デコンボリューションに用いるPSFに対応する距離が異なる場合に生じ易い。暈け回復処理は、周波数空間で考えると、撮影画像のスペクトルをOTFで除算する操作である。OTFには、その絶対値が極小になる「ゼロ落ち」と呼ばれる周波数が存在する。被写体の実距離と暈け回復に用いる距離が一致しないと、「ゼロ落ち」が生じる周波数が一致しない場合がほとんどである。「ゼロ落ち」が生じる周波数における暈け回復処理の除数は極小値であり、回復画像における、当該周波数の絶対値が異常に大きくなりリンギングが生じる。
【００３８】
このように、非特許文献1の技術は、距離の不一致によるリンギングを検出する処理である。言い換えれば、非特許文献1の技術は、撮影画像のスペクトルに埋め込まれたパターンの中で「ゼロ落ち」した部分のみに着目する。
【００３９】
しかし「ゼロ落ち」した部分は、パターン全体と比較すると極く一部に過ぎない。一方、距離情報は「ゼロ落ち」が生じる周波数だけではなく、全周波数域、つまりパターン全体に埋め込まれている。そこで、本実施例においては、利用可能な全周波数域、つまり撮影画像のスペクトルに埋め込まれたパターン全体を利用することで、より高精度に被写体の実距離を推定する。
【００４０】
本実施例は、撮影画像のスペクトルに埋め込まれたパターン全体を利用するために、写真画像のスペクトルの統計モデルを使用する。そして、統計モデルとともに、撮像光学系101の光学特性、撮像装置100のノイズ特性を考慮して、撮影画像のスペクトルの絶対値に対する予測モデルを立てる。前述したように、撮像光学系101の光学特性は少なくとも被写体距離に依存する。従って、予測モデルも被写体距離に依存する。そこで、予測モデルと、実際の撮影画像のスペクトルの絶対値を比較して、両者が最もよく一致する距離を被写体の実距離の候補とする。
【００４１】
本実施例の推定方法によれば、高精度に被写体の実距離を推定することができる。撮影画像に含まれるノイズが少なければ、第一の処理から導かれる被写体の実距離の候補を、最終的な推定結果とすることが可能である。しかし、撮影画像に含まれるノイズが多い場合、撮影画像のスペクトルの絶対値を用いて被写体の実距離を推定する第一の処理のみにより、被写体が被写体距離の前方にあるか後方にあるかを判定することは困難である。
【００４２】
撮影画像に含まれるノイズが多い場合にも信頼度が高い推定結果を得るために、第一の処理においては、被写体距離の前後それぞれにおいて被写体の実距離の候補を一つに決定し、第二の処理おいて、候補の一つを選択する。言い換えれば、第一の処理は、被写体距離の前後それぞれにおける被写体の実距離の候補を決定することができればよく、例えば、点対称性を有する符号化開口を含め非特許文献1の技術を利用することも可能である。
【００４３】
●第二の処理の原理
上述したが、非特許文献1の技術や第一の処理のように撮影画像のスペクトルの絶対値を用いる処理は、被写体が被写体距離の前方にあるのか後方にあるのかの判別が難しい。その理由は、被写体距離の後方の任意の点と組になる被写体距離の前方の点があり、それら点において、一方の点のPSFの形状は、他方の点のPSFをある点を中心に180度回転（反転）した形状とほぼ同一になることに由来する。
【００４４】
例えば、図4(a)と図4(e)の組、あるいは、図4(b)と図4(d)の組において、一方のPSFを反転するともう他方のPSFの形状とほぼ同一になる。もし、収差がまったくない理想的な光学系の場合、被写体距離の前後の何れかのPSFを、ある点を中心に反転すると、それらPSFの形状は完全に一致する。
【００４５】
このような点対称の関係を有する二つのPSFに対するOTFは、全周波数において、絶対値が同一で、位相の符号が反転した値をもつ。つまり、被写体距離の前後を示す情報は、位相にのみ存在する。従って、撮影画像のスペクトルの絶対値は、被写体距離の前後を示す情報を含まない。言い換えれば、被写体距離に対する前後の判別は、撮影画像のスペクトルの位相に基づき行う必要がある。このように、収差が無い理想的な光学系の場合、撮影画像のスペクトルの絶対値を用いた処理では、原理的に、被写体距離に対する前後の判別は不可能である。
【００４６】
実際の光学系（レンズ）には僅かな収差が存在し、被写体距離の前後でPSFが完全に一致することはない。従って、被写体距離に対する前後の判別の可能性は残る。しかし、通常、僅かな収差によるPSFの違いは僅かであるから、ノイズによりPSFの違いを区別することは困難であり、被写体距離に対する前後の判別も困難である。
【００４７】
非特許文献1は、対称性が高い開口を有する絞りの方が「ゼロ落ち」が多く被写体の実距離の推定精度が高い傾向があるとの知見が提示して、実際に点対称である開口を用いて被写体の実距離の推定を実施する。
【００４８】
点対称である開口において、対称点に対して反転した開口の形状は、反転前の開口の形状に一致する。このため、距離距離の前後において、区別すべきPSFは同一になり、OTFも同一になる。つまり、位相情報を用いたとしても被写体距離の前後の判別は不可能であり、たとえ収差があったとしても、位相情報を用いた被写体距離の前後の判別精度は低くなる。この点を考慮して、本実施例においては点対称性をもたない開口（符号化開口）を用いる。
【００４９】
非点対称である開口をもつ絞りを用いて撮影した画像のスペクトルの位相情報に注目すると、被写体距離の前後の判別が可能になる。被写体の実距離を正しく推定するには、距離による違いを見付けるだけではなく、何れが正しいかを判定する必要がある。そこで、写真画像のスペクトルの位相がもつ統計的な特徴を用いて当該判定を行う。
【００５０】
通常、写真画像には、細かいテクスチャを構成するものを含め、エッジが存在する。一般に、エッジ部には様々な周波数の信号が含まれるが、それらの位相はランダムに分布するのではなく、自己相関をもつ。そこで、この相関の強さに基づきに上記の判定を行う。
【００５１】
まず、撮影画像を、第一の処理で決定した二つの距離候補に対応するOTFそれぞれで除算して暈けの回復処理を行う。そして、二つの回復画像のスペクトルそれぞれについて、位相の二点自己相関関数をとり、二点自己相関関数の絶対値の全周波数における和を求める。この和がより大きい距離候補を被写体の実距離の推定結果とする。このようにすれば、被写体の実距離が被写体距離の前方か後方かを高精度に判別することができる。
【００５２】
なお、統計的手法として、位相の二点自己相関を評価する例を示したが、位相を考慮する統計量であれば、同様の判定が可能である。例えば、二点自己相関関数とフーリエ変換の関係にある位相のパワースペクトルを用いても被写体距離の前後の判別が可能である。その他、撮影画像の三点自己相関関数またはバイスペクトルといった高次の統計量を用いることも可能である。
【００５３】
［距離推定部］
図7のブロック図により距離推定部200の構成例を説明し、図8のフローチャートにより距離推定部200の処理を説明する。以下では、距離推定部200が、A/D変換部111が出力するRAWデータを入力して、距離推定処理を行う例を説明する。しかし、距離推定部200は、現像処理部201が出力するディジタル画像データを入力して距離推定処理を行うこともできる。
【００５４】
ブロック分割部700は、RAWデータが表す画像（以下、撮像画像）をN個のブロックに領域分割し(S801)、カウンタj=1を設定する(S802)。図9により領域分割を説明する。図9に示すように、撮影画像I(x, y)は、N個のブロックI1(x, y)、I2(x, y)、…、Ij(x,y)、…、IN(x, y)に分割される。なお、(x, y)は撮像画像の画素（撮像素子）のxy座標である。以降の処理は、ブロックごとに行われる。
【００５５】
スペクトル計算部701は、注目ブロックIj(x,y)の画像に窓関数W(x, y)を乗算してフーリエ変換を行い、撮像画像のスペクトルの絶対値（以下、撮像スペクトル絶対値ASj(u, v)）を算出する(S803)。なお、u、vはフーリエ変換後の周波数空間の座標で、それぞれx軸とy軸に対応する。
【００５６】
スペクトルモデル生成部702は、詳細は後述するが、撮像スペクトル絶対値ASj(u, v)に対する予測モデルSMj(u, v)を生成する(S804)。その際、写真画像のスペクトルの絶対値に対する統計モデル（以下、スペクトル統計モデル）、撮像光学系101の光学特性、距離、および、撮像装置100のノイズ特性などを用いる。
【００５７】
メモリ116は、スペクトルモデル生成部702が予測モデルを計算するために必要な情報を格納した領域を有する。スペクトル統計モデル記憶部703は、スペクトル統計モデルを格納する。ノイズ統計モデル記憶部704は、撮像装置100のノイズの統計モデルを格納する。撮像パラメータ記憶部705は、撮像画像の撮像パラメータを格納する。光学特性情報記憶部706は、撮像パラメータに対応する光学特性情報を格納する。なお、統計モデルなどの詳細は後述する。
【００５８】
評価関数生成部707は、詳細は後述するが、撮像スペクトル絶対値ASj(u, v)および予測モデルSMj(u, v)から評価関数を生成する(S805)。距離候補決定部708は、被写体の実距離を含む、被写体距離の前後それぞれについて値が最小の評価関数を抽出し、抽出した評価関数から距離dF、dBを決定する(S806)。距離dF、dBが被写体の実距離の二つの候補である。
【００５９】
距離候補決定部708は、二つの距離候補dF、dBが被写体距離dfと一致するか否かを判定する(S807)。一致する場合は、注目ブロックIj(x, y)の被写体の実距離の推定値Edとしてdf=dF=dBを推定距離決定部711に出力し(S808)、処理はステップ812に進む。なお、被写体距離dfと一致するか否かの判定は、厳密な判定ではなくてもよく、例えば次式によって行えばよい。
if ((df/β ＜ dF ≦ df) && (df ≦ dB ＜df・β))
一致；
else
不一致；                            …(1)
ここで、係数βは固定値（例えば1.1）、または、被写界深度の関数、
&&は論理積演算子。
【００６０】
二つの距離候補dF、dBが被写体距離dfと一致しない場合、スペクトル回復部709は、光学特性情報記憶部706から二つの距離候補dF、dBそれぞれに対応するOTFを取得する。そして、撮像スペクトル絶対値ASj(u, v)を、取得したOTFで除算して暈け回復処理を行う(S809)。
【００６１】
相関計算部710は、回復処理後の撮像スペクトル絶対値ASjF(u, v)、ASjB(u, v)それぞれについて位相の二点自己相関関数を計算する(S810)。推定距離決定部711は、二点自己相関関数それぞれの絶対値の和を計算し、撮像スペクトル絶対値ASjF(u, v)に対応する和と、撮像スペクトル絶対値ASjB(u, v)に対応する和を比較する。そして、和がより大きい撮像スペクトル絶対値ASjF(u, v)またはASjB(u, v)に対応する距離候補dFまたはdBを注目ブロックIj(x, y)の被写体の実距離の推定値Edに決定する(S811)。
【００６２】
推定距離決定部711は、決定した推定値Edを付加した注目ブロックIj(x, y)のデータを出力する(S812)。なお、二つの距離候補が被写体距離と一致した場合は推定値Ed=dF=dBである。そして、カウンタjをインクリメントし(S813)、カウンタjのカウント値を判定し(S814)、j≦Nならば処理をステップS803に戻し、j＞Nであれば処理を終了する。なお、被写体の実距離の推定値Edは距離画像に利用される。
【００６３】
●スペクトルモデル生成部および評価関数生成部の処理
スペクトルモデル生成部702と評価関数生成部707の処理(S804、S805)は、次の複数のパラメータに対して繰り返し行われる。
・予測モデルを生成する被写体の実距離の範囲、
・撮像装置100のノイズ量に対するノイズパラメータ、
・撮像光学系101によって暈ける前の撮像スペクトル絶対値に対応する
スペクトル統計モデルが使用するモデルパラメータのうちの変数。
【００６４】
●スペクトル統計モデル
撮像光学系101によって暈ける前の撮像スペクトル絶対値は概念的なものであるが、被写界深度が非常に深い状態で撮影された撮像スペクトル絶対値とほぼ同等であると考えられる。スペクトル統計モデルが使用するモデルパラメータは、一つの必要はなく、暈ける前の撮像スペクトル絶対値を効果的に表現することができれば複数あってもよい。
【００６５】
また、モデルパラメータは、連続値の必要はなく、まったく異なる形状の撮像スペクトル絶対値を区別するインデックスでもよい。ただし、この場合、撮像スペクトル絶対値の統計モデルをスペクトル統計モデル記憶部703に格納して、距離推定処理の開始時に距離推定部200に供給されるようにする。
【００６６】
スペクトル統計モデルは、多数の撮影画像のスペクトルの絶対値を求めて観察し、その統計的性質を調べることで構築する。図10により被写界深度が非常に深い状態で撮影された複数の撮影画像の波数kに対するスペクトルの絶対値の依存性を示す。図10の横軸は後述する式(1)によって計算される波数kで、縦軸はスペクトルの絶対値である。図10に示すように、被写界深度が深い場合、複数の撮影画像のスペクトルの絶対値は、両対数グラフで観察すると、どれもほぼ直線になることがわかる。このような統計的性質に基づき、本実施例においては、暈ける前の撮像スペクトル絶対値ASorg(u, v)に対するスペクトル統計モデルを、次のように定義する。
【００６７】
第一に、周波数(u, v)における期待値＜ASorg(u, v)＞は、周波数ベクトルの大きさを底とした、べき関数とする。ただし、この周波数ベクトルの大きさは、画像のアスペクト比を考慮して導出する。例えば、画像が正方画素からなり、画像のx方向の長さに対してy方向の長さがα倍の場合、周波数ベクトルの大きさkは、下式によって計算する。
k = 1 +√(u2 + (v/α)2)      …(2)
ここで、u、vはフーリエ変換後のスペクトル画像の画素位置。
【００６８】
図11により周波数ベクトルの大きさkを説明する。フーリエ変換後のスペクトル画像は符号1100で示され、スペクトルの直流成分の位置は符号1101で示される。符号1102は式(2)によって計算される周波数ベクトルの大きさkが一定になる位置の軌跡を示し、図11に示すように、軌跡1102は画像のアスペクト比と同じ比（長軸/短軸）をもつ楕円である。
【００６９】
第二に、べき関数の指数γ、および、べき関数全体にかかる比例係数k0をモデルパラメータとする。これらモデルパラメータは、画像ごとに異なる変数とする。
【００７０】
第三に、各周波数における値は対数正規分布に従い、その標準偏差σmをモデルパラメータとする。標準偏差σmは、周波数に依存せず、また、画像にも依存しない定数とする。従って、標準偏差σmは、スペクトルモデル生成部702および評価関数生成部707の処理(S804、S805)の繰り返しには関係しない。
【００７１】
以上の定義によるスペクトル統計モデルは一例である。例えば、上記のスペクトル統計モデルの拡張として、指数γに緩やかな周波数依存性をもたせてもよいし、標準偏差σmに画像依存性や周波数依存性をもたせてもよい。さらに、より多くのモデルパラメータを導入してもよいが、モデルパラメータの数はブロックを構成する画素数を超えてはならない。また、モデルパラメータの数が画素数を超えなくとも、モデルパラメータの数を必要以上に増やすと計算コストが上昇する上、距離候補の決定精度が低下する場合がある。
【００７２】
また、スペクトル統計モデルの別の拡張として、例えば、夜景、海、都心、屋内、自然、人物、水中などの撮影シーンそれぞれに対してスペクトル統計モデルを準備してもよい。撮影シーンは、別途、既知の方法で判別し得る。そして、判別した撮影シーンに基づき使用するスペクトル統計モデルを選択する。なお、モデルパラメータのうち、定数のものは、スペクトル統計モデル記憶部703に保持されている。
【００７３】
●ノイズ統計モデル
ノイズはホワイトノイズを仮定し、ノイズのスペクトルの絶対値は平均N、標準偏差σNの正規分布に従うとする。ノイズの平均値Nをノイズパラメータとし、ノイズの標準偏差σNは定数とする。これも一例であり、撮像装置100や画像に合わせて、より詳細なノイズモデルを利用してもよい。なお、ノイズパラメータのうち、定数のものは、ノイズ統計モデル記憶部704に保持されている。
【００７４】
●被写体の実距離の範囲
予測モデルを生成する被写体の実距離の範囲は、そのまま被写体の実距離の推定範囲にすればよい。モデルパラメータを変化させる範囲は、適用するスペクトル統計モデルに依存する。多数の撮影画像のスペクトルからスペクトル統計モデルを決定する際に、各モデルパラメータがどの程度変化するかを予め調べて得た範囲をモデルパラメータを変化させる範囲とする。例えば、上記のスペクトル統計モデルにおいて、指数γは0から2.5程度まで変化させれば充分である。また、比例係数k0は1から画素値の最大値（例えばRAWデータが10ビットであれば1024）まで変化させればよい。また、ノイズパラメータを変化させる範囲は、撮像装置100のノイズ特性から決定する。
【００７５】
●スペクトルモデル生成部
スペクトルモデル生成部702は、撮像スペクトル絶対値AS(u, v)に対する予測モデルSM(u, v)を生成する(S804)。この生成において、上記のようにして設定した被写体の実距離、モデルパラメータ、ノイズパラメータを用いる。また、スペクトルモデル生成部702は、撮像パラメータ記憶部705から撮像パラメータを取得し、取得した撮像パラメータと被写体の実距離に対応するOTFを光学特性情報記憶部706から取得する。
【００７６】
ある撮像パラメータと被写体の実距離dに対応する予測モデルSM(u, v)は、暈ける前の撮像スペクトル絶対値ASorg(u, v)に当該撮像パラメータと被写体の実距離dに対応するOTFの絶対値M(u, v)を乗算する。そして、例えば撮像パラメータのISO感度などに対応するノイズNをノイズ統計モデル記憶部704から取得して、乗算結果にノイズNを加えることで当該予測モデルSM(u, v)が得られる。また、ステップS803においてブロックIj(x, y)に窓関数W(x, y)を乗算したことによる、スペクトルの暈けが大きい場合がある。その場合は、上記の処理に加えて、窓関数W(x, y)のフーリエ変換F[W(x, y)]による畳み込み（コンボリューション）を行う。
【００７７】
●評価関数生成部
評価関数生成部707は、撮像スペクトル絶対値ASj(u, v)と、スペクトルモデル生成部702が生成した予測モデルSMj(u, v)を比較する。この比較には、近似的な評価関数に基づく比較を用いるが、撮像過程を忠実に考慮して、ベイズ統計に基づいて厳密な評価関数を構築し、それを利用してもよい。
【００７８】
シグナル項ASorg(u, v)M(u, v)がノイズNよりも大きい周波数域において、ASj(u, v)とSMj(u, v)それぞれの対数をとり、それらの差分の二乗を統計モデルの分散σm2で除算してD(u, v)にする。逆に、シグナル項ASorg(u, v)M(u, v)がノイズN以下の周波数域においては、ASj(u, v)とSMj(u, v)の差分の二乗をノイズモデルの分散σN2で除算してD(u, v)にする。そして、D(u, v)の全周波数域に亘る総和を評価関数Eとする。
if (ASorg(u, v)M(u, v) ＞ N)
D(u, v) = [{log ASj(u, v) - log SMj(u, v)}2/σm2]；
else
D(u, v) = [{ASj(u, v) - SMj(u, v)}2/σN2]；
E = ΣuΣvD(u, v)；              …(3)
【００７９】
評価関数Eは、ベイズ統計に基づく厳密な評価関数に対して、ノイズとシグナルが拮抗する周波数域が少ない、という近似を用いたものである。言い換えれば、殆どの周波数域は、シグナル優勢かノイズ優勢になると見做した近似である。この近似が破れる虞れがある場合は、仮定した統計モデルに対して厳密な評価関数を用いればよい。
【００８０】
評価関数Eは、撮像スペクトル絶対値ASj(u, v)と予測モデルSMj(u, v)の一致度を示し、その値が小さい程、一致度が高いことを示す。また、評価関数Eは、モデルパラメータγおよびk0、ノイズパラメータN、被写体の実距離dの関数である。
【００８１】
スペクトルモデル生成部702と評価関数生成部707は、上記の手順で、すべてのパラメータに対する評価関数Eを繰り返し生成する。そして、距離候補決定部708は、被写体距離dfの前後において値が最小（ASj(u, v)とSMj(u, v)の一致度が最大）の評価関数Eを抽出する。しかし、この処理は、所謂最適化問題であり、最急降下法など、既知の手法を用いて評価関数Eを抽出してもよい。そして、抽出した二つの評価関数Eに対応する予測モデルSMj(u, v)を生成した際にOTFの取得に使用した被写体の実距離dが距離候補dFおよびdBである。
【００８２】
なお、例えば撮像デバイス110がベイヤ配列を有し、デモザイキング前のRAWデータが表す撮像画像から被写体の実距離を推定する場合、撮像素子の数が多いG信号を利用して距離推定処理を行えばよい。あるいは、互いに隣接するR用の一撮像素子、B用の一撮像素子、G用の二撮像素子（これら四素子は例えば正方形に配置されている）のRGB信号を加算（または重み付け加算）し、加算値を一画素の信号値として距離推定処理を行ってもよい。
【００８３】
このように、被写体の実距離を被写体距離の前後の何れかに限定することなく、一枚の撮影画像から全被写体の被写体の実距離を高精度に推定することができる。
【実施例２】
【００８４】
以下、本発明にかかる実施例2の画像処理を説明する。なお、実施例2において、実施例1と略同様の構成については、同一符号を付して、その詳細説明を省略する。
【００８５】
上述したように、撮像光学系101には収差があり、被写体距離の前後の被写体の実距離におけるPSFが異なる。しかし、PSFの違いは僅かであり、撮像装置100のノイズによって、その違いを検出できない場合がある。つまり、第一の処理だけでは被写体距離に対する被写体の実距離の前後関係が判定不能である。この点を考慮して、実施例1では、被写体距離の前後の被写体の実距離におけるPSFの違いを強調するために点対称性をもたない開口を使用し、第二の処理によって被写体の実距離を推定する例を説明した。
【００８６】
しかし、ノイズが充分に小さい撮像装置100、あるいは、ノイズが充分に小さい撮影条件で撮影された撮像データは、撮像光学系101の収差に起因するPSFの違いを検出することができる場合がある。言い換えれば、第一の処理だけで、被写体距離に対する被写体の実距離の前後関係が判定になり、第二の処理は不要である。また、第一の処理だけで被写体の実距離が決定することができる場合は、被写体距離の前後の被写体の実距離におけるPSFの違いを強調するための点対称性をもたない開口は必要なく、点対称性をもつ符号化開口の利用も可能である。
【００８７】
図12のフローチャートにより実施例2の距離推定処理を説明する。ステップS801からS805、S812からS814の処理は実施例1と同様であるから、その詳細説明を省略する。
【００８８】
距離候補決定部708は、評価関数生成部707が生成した評価関数Eから、値が最小の評価関数を抽出する。そして、抽出した評価関数Eに対応する予測モデルSMj(u, v)を生成した際にOTFの取得に使用した被写体の実距離dを被写体距離の推定値Edとして推定距離決定部711に出力する(S901)。
【００８９】
［その他の実施例］
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア（プログラム）を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステムあるいは装置のコンピュータ（又はCPUやMPU等）がプログラムを読み出して実行する処理である。
【図１】
2012127700.tif 000003
【図２】
2012127700.tif 000004
【図７】
2012127700.tif 000005
【図８】
2012127700.tif 000006
【図９】
2012127700.tif 000007
【図１１】
2012127700.tif 000008
【図１２】
2012127700.tif 000009
【図３】
2012127700.tif 000010
【図４】
2012127700.tif 000011
【図５】
2012127700.tif 000012
【図６】
2012127700.tif 000013
【図１０】
2012127700.tif 000014