(57)【要約】【課題】  物体に対する奥行き情報を適切に設定した深度マップを生成する。【解決手段】  二次元画像を受け付ける画像入力部と、二次元画像に含まれる物体を検出する検出部と、二次元画像において焦点が合う位置を示す位置情報、及び撮影位置から焦点が合う位置までの距離を示す第１の距離情報に基づいて、検出部により検出される物体のうち、撮影位置からの距離が得られない物体に対して設定された、二次元画像から得られる深度マップの深度を修正する修正部と、を備えたことを特徴とする。【選択図】    図３
2013118472.tif 000002
【特許請求の範囲】
【請求項１】
二次元画像を受け付ける画像入力部と、
前記二次元画像に含まれる物体を検出する検出部と、
前記二次元画像において焦点が合う位置を示す位置情報、及び撮影位置から前記焦点が合う位置までの距離を示す第１の距離情報に基づいて、前記検出部により検出される物体のうち、前記撮影位置からの距離が得られない物体に対して設定された、前記二次元画像から得られる深度マップの深度を修正する修正部と、
を備えたことを特徴とする画像処理装置。
【請求項２】
請求項１に記載の画像処理装置において、
前記検出部による検出結果及び前記位置情報を用いて、前記焦点が合う物体を特定する特定部を備え、
前記修正部は、前記特定部により特定された前記焦点が合う物体を基準にして、前記撮影位置からの距離が得られない物体に対する深度を修正することを特徴とする画像処理装置。
【請求項３】
請求項２に記載の画像処理装置において、
前記検出部による検出結果、前記特定部による特定結果及び前記第１の距離情報を用いて、前記撮影位置からの距離が得られない物体までの距離を示す第２の距離情報を求める算出部を備えていることを特徴とする画像処理装置。
【請求項４】
請求項３に記載の画像処理装置において、
前記算出部は、前記特定部により特定される物体の大きさと前記撮影位置からの距離が得られない物体の大きさとの比率及び前記第１の距離情報から、前記第２の距離情報を求めることを特徴とする画像処理装置。
【請求項５】
請求項４に記載の画像処理装置において、
前記算出部は、前記特定部により特定される物体の種類と、前記撮影位置からの距離が得られない物体の種類とが異なる場合に、これら物体の大きさを、基準となる物体の大きさに換算した上で、前記第２の距離情報を求めることを特徴とする画像処理装置。
【請求項６】
請求項５に記載の画像処理装置において、
前記基準となる物体は、前記特定部により特定される物体であることを特徴とする画像処理装置。
【請求項７】
請求項３から請求項６のいずれか１項に記載の画像処理装置において、
前記修正部は、前記深度マップにおいて前記焦点が合う物体に対して設定される深度、前記第１の距離情報及び前記第２の距離情報に基づいて、前記撮影位置からの距離が得られない物体に対して設定される前記深度を修正することを特徴とする画像処理装置。
【請求項８】
請求項１から請求項７のいずれか１項に記載の画像処理装置において、
前記修正された深度マップを用いて、前記二次元画像から三次元画像を生成する画像変換部を、さらに備えていることを特徴とする画像処理装置。
【請求項９】
請求項１から請求項８のいずれか１項に記載の画像処理装置を備えたことを特徴とする撮像装置。
【請求項１０】
二次元画像を受け付ける画像入力工程と、
前記二次元画像に含まれる物体を検出する検出工程と、
前記二次元画像において焦点が合う位置を示す位置情報、及び撮影位置から前記焦点が合う位置までの距離を示す第１の距離情報に基づいて、前記検出工程により検出される物体のうち、前記撮影位置からの距離が得られない物体に対して設定された、前記二次元画像から得られる深度マップの深度を修正する修正工程と、
を、コンピュータに実行させることが可能な画像処理プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像処理装置、撮像装置及び画像処理プログラムに関する。
【背景技術】
【０００２】
近年、異なる複数の位置から取得された二次元画像を用いて三次元画像を生成する他に、二次元画像及び該二次元画像を取得したときのカメラの位置（撮影位置）から物体までの距離（深度）を示す深度マップを用いて三次元画像を生成する技術が提案されている（特許文献１参照）。この特許文献１では、例えば樹木など、深度の変化が大きい複雑な物体の場合に、物体の輝度、色差、彩度等の特性から得られる質感バンプマップを用いて、深度の変化が大きい複雑な物体に対する深度を決定している。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特許４６９８８３１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、二次元画像に含まれる物体のうち、撮影位置から物体までの距離が検出されない物体が含まれる場合には、該物体に対しては深度が最小値である０に設定された深度マップが生成されてしまう。このような深度マップを用いて三次元画像を生成すると、物体を適切に立体視表示することができないという問題がある。
【０００５】
本発明は、物体に対する深度を適切に設定した深度マップを生成することができるようにした画像処理装置、撮像装置及び画像処理プログラムを提供することを目的とする。
【課題を解決するための手段】
【０００６】
上述した課題を解決するために、本発明の画像処理装置は、二次元画像を受け付ける画像入力部と、前記二次元画像に含まれる物体を検出する検出部と、前記二次元画像において焦点が合う位置を示す位置情報、及び撮影位置から前記焦点が合う位置までの距離を示す第１の距離情報に基づいて、前記検出部により検出される物体のうち、前記撮影位置からの距離が得られない物体に対して設定された、前記二次元画像から得られる深度マップの深度を修正する修正部と、を備えたことを特徴とする。
【０００７】
また、前記検出部による検出結果及び前記位置情報を用いて、前記焦点が合う物体を特定する特定部を備え、前記修正部は、前記特定部により特定された前記焦点が合う物体を基準にして、前記撮影位置からの距離が得られない物体に対する深度を修正するものである。
【０００８】
また、前記検出部による検出結果、前記特定部による特定結果及び前記第１の距離情報を用いて、前記撮影位置からの距離が得られない物体までの距離を示す第２の距離情報を求める算出部を備えるものである。
【０００９】
この場合、前記算出部は、前記特定部により特定される物体の大きさと前記撮影位置からの距離が得られない物体の大きさとの比率及び前記第１の距離情報から、前記第２の距離情報を求めることが好ましい。
【００１０】
また、前記算出部は、前記特定部により特定される物体の種類と、前記撮影位置からの距離が得られない物体の種類とが異なる場合に、これら物体の大きさを、基準となる物体の大きさに換算した上で、前記第２の距離情報を求めるものである。
【００１１】
この場合、前記基準となる物体は、前記特定部により特定される物体であることが好ましい。
【００１２】
また、前記修正部は、前記深度マップにおいて前記焦点が合う物体に対して設定される深度、前記第１の距離情報及び前記第２の距離情報に基づいて、前記撮影位置からの距離が得られない物体に対して設定される前記深度を修正するものである。
【００１３】
また、前記修正された深度マップを用いて、前記二次元画像から三次元画像を生成する画像変換部を、さらに備えるものである。
【００１４】
また、本発明の撮像装置は、上述した画像処理装置を備えることを特徴とする。
【００１５】
また、本発明の画像処理プログラムは、二次元画像を受け付ける画像入力工程と、前記二次元画像に含まれる物体を検出する検出工程と、前記二次元画像において焦点が合う位置を示す位置情報、及び撮影位置から前記焦点が合う位置までの距離を示す第１の距離情報に基づいて、前記検出工程により検出される物体のうち、前記撮影位置からの距離が得られない物体に対して設定された、前記二次元画像から得られる深度マップの深度を修正する修正工程と、をコンピュータに実行させることが可能なものである。
【発明の効果】
【００１６】
本発明によれば、物体に対する深度を適切に設定した深度マップを生成することができる。
【図面の簡単な説明】
【００１７】
【図１】本発明のデジタルカメラの構成の一例を示す機能ブロック図である。
【図２】マップ生成部の構成を示す機能ブロック図である。
【図３】深度マップを生成する処理の流れを示すフローチャートである。
【図４】深度マップを生成する処理の流れを模式的に示す図である。
【図５】人物の顔を基準とした場合の、他の物体の相関値とをまとめた図である。
【図６】深度マップを生成する処理の流れを示すフローチャートである。
【図７】人物に焦点が合う二次元画像の一例を示す図である。
【図８】ＰＣに焦点が合う二次元画像の一例を示す図である。
【図９】ＰＣに焦点が合う二次元画像の一例を示す図である。
【発明を実施するための形態】
【００１８】
以下、本発明の撮像装置の一例を示すデジタルカメラについて説明する。
【００１９】
図１に示すように、デジタルカメラ１０は、撮像光学系１５、絞り１６、撮像素子１７、Ａ／Ｄ変換器１８、レンズ駆動部１９、絞り駆動部２０、タイミングジェネレータ（ＴＧ）２１、バッファメモリ２５、画像処理回路２６、接続用Ｉ／Ｆ２７、表示制御回路２８、表示装置２９、レリーズボタン３１、操作部３２、ＣＰＵ３５及び内蔵メモリ３６を備えている。なお、Ａ／Ｄ変換器１８、バッファメモリ２５、画像処理回路２６、接続用Ｉ／Ｆ２７、表示制御回路２８、ＣＰＵ３５及び内蔵メモリ３６は、バス３７を介して電気的に接続される。
【００２０】
撮像光学系１５は、ズームレンズ、フォーカスレンズなどの複数のレンズから構成される。これらレンズのうち、ズームレンズは、撮影倍率の変更時に光軸（Ｌ）方向に移動する。また、フォーカスレンズは、焦点を調節するときに光軸（Ｌ）方向に微小移動する。撮像光学系１５を構成する各レンズの移動は、レンズ駆動部１９によって実行される。なお、図示は省略するが、撮像光学系１５を構成する各レンズの位置を示す情報は、ＣＰＵ３５に入力される。
【００２１】
絞り１６は、絞り径を調整することで、撮像光学系１５により取り込まれる被写体光の光束を調整する。この絞り１６における絞り径は、絞り駆動部２０によって調整される。この絞り１６の絞り径は、ＣＰＵ３５によって設定される絞り値に基づいている。
【００２２】
撮像素子１７は、例えばＣＣＤイメージセンサや、ＣＭＯＳイメージセンサが用いられる。撮像素子１７は、複数の画素を備えている。この撮像素子１７は、撮像光学系１５により取り込まれた被写体光（入射光）をそれぞれの画素にて受光し、信号電荷に変換する。この信号電荷に基づく電圧信号が、それぞれの画素の画素信号として出力される。ここで、複数の画素の画素信号を１つにまとめた信号が画像信号となる。この画像信号は、クランプ処理、相関二重サンプリング（ＣＤＳ）処理などの処理が施された後、Ａ／Ｄ変換器１８に入力される。なお、撮像素子１７の駆動は、タイミングジェネレータ２１によって制御される。
【００２３】
Ａ／Ｄ変換器１８は、撮像素子１７から出力された画像信号をアナログ信号からデジタル信号に変換する。このデジタル化された画像信号はバッファメモリ２５に書き込まれる。
【００２４】
画像処理回路２６は、バッファメモリ２５に書き込まれた画像信号に対して、ホワイトバランス処理、色補間処理、輪郭補償処理、ガンマ処理などの画像処理を施す。これにより、二次元画像データが生成される。生成された二次元画像データは、バッファメモリ２５に一時記憶される。この画像処理回路２６は、マップ生成部４１及び画像変換部４２を備えている。マップ生成部４１は、取得される二次元画像データを用いて、三次元画像データを取得する際に用いる深度マップを生成する。画像変換部４２は、マップ生成部４１により生成された深度マップに基づいて、二次元画像データを三次元画像データに変換する。
【００２５】
ここで、画像変換部４２は、二次元画像データから左眼用の画像データ及び右眼用の画像データの双方の画像データを生成し、これら画像データを合成してもよいし、入力される二次元画像データを左眼用の画像データ又は右眼用の画像データとし、他方の眼の画像データを生成した後、これら画像データを合成したものであってもよい。
【００２６】
この画像変換部４２において生成された三次元画像データは、表示制御回路２８に出力され、三次元画像データに基づく三次元画像が表示装置２９に表示される。また、必要に応じて、撮影条件や画像処理の内容を示す情報の他に、深度マップの情報が付帯された後、記憶媒体３８に記憶される。
【００２７】
接続用Ｉ／Ｆ２７は、デジタルカメラ１０に装着される記憶媒体３８と電気的に接続される。この接続用Ｉ／Ｆ２７と記憶媒体３８との電気的な接続により、記憶媒体３８へのデータの書き込みや、記憶媒体３８に記憶されたデータの読み出しを行うことが可能となる。なお、記憶媒体３８としては、例えばフラッシュメモリからなるメモリカード、光学ディスクの他、デジタルカメラ１０と接続用Ｉ／Ｆ２７を介して外部接続されるハードディスクドライブなどが挙げられる。
【００２８】
表示装置２９は、例えばＬＣＤパネルやＥＬディスプレイパネルなどから構成される。この表示装置２９は、スルー画像や、撮影により得られた画像の他に、設定を行う際の設定用の画像を表示する。なお、この表示装置２９における画像表示は、表示制御回路２８により制御される。
【００２９】
レリーズボタン３１は、静止画撮影や動画撮影を行う際に操作される部材である。操作部３２は、図示を省略したズームボタン、十字キー、実行ボタンなどから構成される。この操作部３２は、デジタルカメラ１０の初期設定や、撮影条件の設定などを行う際に操作される。また、この操作部３２により、デジタルカメラ１０の動作状態（動作モード）を設定することが可能となる。
【００３０】
ＣＰＵ３５は、内蔵メモリ３６に記憶される制御プログラムを実行することにより、デジタルカメラ１０の各部を制御する。このデジタルカメラ１０の各部を制御する際に、レリーズボタン３１や操作部３２の操作に基づく信号や、デジタルカメラ１０の各部からの信号を受けて、ＣＰＵ３５は入力される信号に基づいた処理を実行する。具体的には、ＡＥ処理、ＡＦ処理、撮像処理などが挙げられる。
【００３１】
ＣＰＵ３５は、撮像範囲において焦点が合う位置を特定する。なお、この特定は、ＡＦ処理時に使用したＡＦエリアの情報から特定してもよいし、得られた二次元画像内で焦点が合う位置と特定してもよい。また、ＣＰＵ３５は、撮影時における撮像光学系１５を構成する各レンズの位置を示す情報から、焦点距離を算出する。そして、ＣＰＵ３５は、算出された焦点距離を求めた後、撮影時のデジタルカメラ１０から特定された二次元画像内で焦点が合う位置までの距離を算出する。ＣＰＵ３５は、求めた距離の情報と、焦点が合う位置を示す位置情報とを、画像処理回路２６に出力する。
【００３２】
次に、マップ生成部４１の構成について説明する。図２に示すように、マップ生成部４１は、マップ算出部４５、物体検出部４６、物体特定部４７、距離算出部４８、マップ修正部４９から構成される。
【００３３】
マップ算出部４５は、入力される二次元の画像データ（以下、二次元画像データ）を参照して、深度マップを算出する。この深度マップは、例えば輝度や彩度等の色情報の他、撮影時の焦点に関わる情報（焦点情報）などに基づいて生成される。深度マップを生成する具体的な処理内容については、ここでは省略するが、例えば特許４６９８８３１号に記載された手法を用いてもよいし、他の周知の方法を用いてもよい。
【００３４】
マップ算出部４５にて算出される深度マップは、撮影時のデジタルカメラ１０の位置から物体までの距離を２５６段階（例えば０〜２５５）の値からなる深度で表したグレイスケールの画像として表すことができる。深度マップにおいて示される深度は、撮影した位置から物体までの距離が近いほど大きく、撮影した位置から物体までの距離が遠いほど小さく設定される。なお、物体までの距離が検出できない場合には、深度は最小値（例えば０）に設定される。
【００３５】
物体検出部４６は、入力される二次元画像データを用いて物体検出処理を実行する。なお、この物体検出処理は、周知の被写体検出の手法でもよいし、グラフカット法を用いた領域分割により物体を検出する手法でもよい。
【００３６】
物体特定部４７は、物体検出部４６によって検出された物体のうち、焦点が合う位置に存在する物体を特定する。物体特定部４７は、入力される位置情報及び二次元画像データを参照して、物体検出部４６にて検出された物体のうち、焦点が合う位置に存在する物体を特定する。以下、焦点が合う位置に存在する物体を、焦点が合う物体と称する。
【００３７】
また、物体特定部４７は、マップ算出部４５により生成された深度マップを参照して、物体検出部４６により検出された物体のうち、深度が０に設定される物体を特定する。なお、深度が０に設定される物体として、デジタルカメラ１０（撮影位置）からの距離が認識できない（距離が得られない）物体が挙げられる。
【００３８】
距離算出部４８は、深度マップにおいて深度が０に設定された物体の距離情報を求める。上述したように、物体特定部４７において、焦点が合う物体、及び深度マップにおいて深度が０に設定された物体がそれぞれ特定される。まず、距離算出部４８は、これら物体の大きさ（二次元画像における画素数など）の比率を求める。距離算出部４８は、入力される距離情報と、求めた比率とに基づいて、深度マップにおいて深度が０に設定された物体の距離情報を求める。
【００３９】
マップ修正部４９は、距離算出部４８により求めた距離情報を用いて、深度マップのうち、深度が０に設定された物体に対して設定される深度を修正する。詳細には、マップ修正部４９は、焦点が合う物体の深度と、焦点が合う位置までの距離、及び距離算出部４８にて求めた距離とから、深度マップにおいて深度が０に設定された物体の深度を算出する。最後に、マップ修正部４９は、対称となる物体の深度を、算出した深度に修正する。
【００４０】
次に、深度マップの算出から深度マップを修正する処理の手順について、図３のフローチャートに基づいて説明する。
【００４１】
ステップＳ１０１は、深度マップを算出する処理である。画像処理回路２６は、入力される二次元画像データを用いて、深度マップを求める。
【００４２】
ステップＳ１０２は、物体を検出する処理である。画像処理回路２６は、入力される二次元画像データを用いて、二次元画像に含まれる物体を検出する。これにより、二次元画像に含まれる物体の位置及び物体の領域が検出される。
【００４３】
ステップＳ１０３は、焦点が合う物体を特定する処理である。画像処理回路２６は、入力される焦点情報と、ステップＳ１０２にて検出された物体の位置及び物体の領域の情報とに基づいて、焦点が合う物体を特定する。
【００４４】
ステップＳ１０４は、距離情報を読み出す処理である。画像処理回路２６は、入力される距離情報を読み出す。
【００４５】
ステップＳ１０５は、深度が０に設定された物体があるか否かを判定する処理である。画像処理回路２６は、ステップＳ１０１にて算出された深度マップを参照し、ステップＳ１０２にて検出された物体のうち、深度マップにおいて深度が０に設定された物体があるか否かを判定する。なお、ステップＳ１０２を行うことで、物体の位置や領域が求められている。画像処理回路２６は、物体の位置や領域と、深度マップとを比較することで、検出された物体のうち、深度が０に設定された物体があるか否かを判定する。深度が０に設定された物体がある場合には、画像処理回路２６は、ステップＳ１０５の判定をＹｅｓとする。この場合、ステップＳ１０６に進む。一方、深度が０に設定された物体がない場合には、画像処理回路２６は、ステップＳ１０５の判定処理をＮｏとする。この場合には、図３のフローチャートの処理が終了される。つまり、ステップＳ１０５の判定処理がＮｏとなる場合には、ステップＳ１０１にて生成された深度マップに対して修正処理が行われない。
【００４６】
ステップＳ１０６は、深度が０に設定された物体を特定する処理である。このステップＳ１０６の処理は、ステップＳ１０５の判定処理でＹｅｓとなる場合に実行される。画像処理回路２６は、深度マップを参照して、深度が０に設定される物体を特定する。
【００４７】
ステップＳ１０７は、深度が０に設定された物体の距離情報を算出する処理である。画像処理回路２６は、ステップＳ１０３にて特定された物体及びステップＳ１０６にて特定された物体の大きさの比率を算出する。画像処理回路２６は、ステップＳ１０４にて読み出した距離情報及び算出した比率を用いて、深度が０に設定された物体に対する距離情報を求める。
【００４８】
ステップＳ１０８は、深度マップを修正する処理である。画像処理回路２６は、焦点が合う物体に設定された深度、焦点が合う物体に対する距離情報、及び、深度が０に設定された物体の距離情報とから、深度が０に設定された物体に対する深度を算出する。画像処理回路２６は、ステップＳ１０１にて求めた深度マップにおいて深度が０に設定された物体に対する深度を、算出した深度に差し替える。これにより、ステップＳ１０１にて求めた深度マップが修正される。
【００４９】
ステップＳ１０９は、深度が０に設定された物体がないか否かを判定する処理である。深度が０に設定された物体がない場合、画像処理回路２６は、ステップＳ１０９の判定をＹｅｓとする。この場合、図３のフローチャートの処理が終了する。一方、深度が０に設定された物体がある場合、画像処理回路２６は、ステップＳ１０９の判定処理をＮｏとする。この場合、ステップＳ１０６に戻り、ステップＳ１０６からステップＳ１０８の処理が再度実行される。つまり、深度マップ上で、深度が０に設定された物体の領域がなくなるまで、ステップＳ１０６からステップＳ１０８の処理が繰り返し実行され、ステップＳ１０１にて算出された深度マップが修正される。これにより、最終的な深度マップが生成される。深度マップを生成した後、画像処理回路２６は、生成された深度マップ及び二次元画像データを用いて、三次元画像データを生成する。なお、生成された深度マップは、生成された三次元画像データの付帯情報として記憶する、又は三次元画像データを記憶しない場合には、元の二次元画像データの付帯情報として記憶してもよい。
【００５０】
以下、３人の人物Ａ，Ｂ，Ｃを撮影したときに得られる二次元画像Ｉ１について説明する。図４（ａ）に示すように、二次元画像Ｉ１は、マーク「×」の位置に焦点が合っている画像とする。この二次元画像Ｉ１に対して物体の検出を行うと、３人の人物Ａ，Ｂ，Ｃの顔が物体として検出される。図４（ｂ）においては、検出された顔の領域のそれぞれを仮想的に矩形枠で囲んで示している。
【００５１】
３人の人物Ａ，Ｂ、Ｃの顔が物体として検出された後、焦点が合う物体が特定される。図４（ｂ）においては、人物Ａの顔が占める領域内に焦点が合う位置が含まれているので、焦点が合う物体として人物Ａの顔が特定される。この特定の後、焦点が合う位置までの距離を読み出す。
【００５２】
次に、二次元画像Ｉ１から求められる深度マップＤＭを用いて、深度が０に設定される物体を特定する。図４（ｃ）は、図４（ａ）の二次元画像Ｉ１から得られる深度マップＤＭの一例である。この深度マップＤＭにおいては、人物Ａに対する深度がＤＡ、人物Ｂの深度がＤＢ（ＤＡ＞ＤＢ）となり、その他の領域の深度が０に設定される。つまり、人物Ｃに対する深度Ｄｃが０となる。このような深度マップＤＭに対しては、人物Ａ及び人物Ｂに対しては、撮影位置からの距離を認識することができ、人物Ｃに対しては撮影位置からの距離を認識することができないと判断される。この場合には、深度マップＤＭにおける深度のうち、人物Ｃに対する深度Ｄｃを変更する。
【００５３】
まず、人物Ｃの顔が占める領域の大きさと、人物Ａの顔が占める領域の大きさとの比率を求める。例えば人物Ａの顔の領域の大きさが２０、人物Ｃの顔の大きさが１０となる場合には、人物Ｃの顔の深度は、人物Ａの顔の深度の２倍の距離であると想定される。これにより、人物Ａの顔の深度がＤＡであることから、算出される人物Ｃの顔の深度Ｄｃ’は、ＤＡ／２となる。これにより、深度が修正された深度マップＤＭ’が生成される。
【００５４】
なお、図４においては、人物Ｃが占める領域に対して深度が０となっているが、人物Ｃが占める領域の他に、人物Ｂが占める領域に対しても深度が０となる場合には、人物Ｃが占める領域の他に、人物Ｂが占める領域に対しても深度が上述した方法で変更される。
【００５５】
これにより、距離が認識できない領域に物体がある場合であっても、該物体に対する距離情報を適切に推定し、推定される距離情報から深度マップにおける深度を修正することができる。また、修正された深度マップを用いた三次元画像データを生成することができ、その結果、生成された三次元データを用いた立体視表示を適切に実行することができる。
【００５６】
上述した実施形態では、二次元画像から検出される物体が人物の顔である場合について説明しているが、二次元画像から検出される物体が大人と子供である場合など、顔の大きさの比率が異なる場合がある。このような場合には、大人の顔の大きさと、子供の顔の大きさとの比率を予め内蔵メモリ３６などに記憶させておく。画像処理回路２６は、焦点が合う物体の大きさと深度が０に設定された物体の大きさとの比率と、焦点が合う位置までの距離の他に、大人の顔の大きさと子供の顔の大きさとの比率を加味して、深度が０に設定された物体の距離情報を求めればよい。
【００５７】
上述した実施形態では、二次元画像から検出される物体が人物の顔である場合について説明しているが、二次元画像から検出される物体が人物の顔であるとは限らない。このような場合に対処するために、例えばデジタルカメラ１０から同一距離にある顔の大きさと、他の物体の大きさとの相関を示す値（相関値）をまとめた相関データを予め内蔵メモリ３６などに記憶させておく。画像処理回路２６は、深度マップにおいて深度が０に設定された物体を特定した場合に、特定された物体に対応する相関値を用いて、デジタルカメラ１０からの距離情報を算出する。そして、画像処理回路２６は、深度マップにおいて深度が０に設定された物体に対する深度を、求めた距離情報、焦点が合う物体までの距離情報、焦点が合う物体に設定された深度を用いて算出する。
【００５８】
図５は、物体の大きさと、その相関値との対応関係を示す。上述したように、人物の顔の大きさを基準とする（相関値を１に設定する）。物体が本となる場合には、人物の顔の大きさに対する本の大きさの相関値は１．５に設定される。また、物体がＰＣとなる場合には、人物の顔の大きさに対するＰＣの大きさの相関値は２に設定される。さらに、物体が車の場合には、人物の顔の大きさに対する車の大きさの相関値が８に設定される。さらに、物体が木、家の場合には、人間の顔の大きさに対する木や家の大きさの相関値が２０にそれぞれ設定される。なお、相関値は一例を示したものに過ぎず、これら相関値は実験、統計などから、算出される値が用いられる。
【００５９】
以下、図６のフローチャートを用いて、深度マップの算出から、相関変換を用いて深度マップを修正する処理の流れを説明する。
【００６０】
ステップＳ２０１は、深度マップを算出する処理である。このステップＳ２０１の処理は、ステップＳ１０１と同一の処理である。
【００６１】
ステップＳ２０２は、物体を検出する処理である。このステップＳ２０２の処理は、ステップＳ１０２と同一の処理である。
【００６２】
ステップＳ２０３は、焦点が合う位置が含まれる物体を特定する処理である。このステップＳ２０３の処理は、ステップＳ１０３と同一の処理である。
【００６３】
ステップＳ２０４は、特定された物体が人物の顔以外であるか否かを判定する処理である。ステップＳ２０３の処理により、焦点が合う位置が含まれる物体が特定されている。画像処理回路２６は、二次元画像データを用いて、ステップＳ２０３にて特定される物体が占める領域の特徴量を求め、求めた特徴量が人物の顔の特徴量に一致、又は近似するか否かを判定する。求めた特徴量が人物の顔の特徴量に一致、又は近似しない場合には、特定された物体は人物の顔以外であると判定される。この場合、ステップＳ２０４の判定処理がＹｅｓとなり、ステップＳ２０５に進む。一方、求めた特徴量が人物の顔の特徴量に一致、又は近似しない場合には、特定された物体は人物の顔であると判定される。この場合、ステップＳ２０４の判定処理はＮｏとなり、ステップＳ２０６に進む。
【００６４】
ステップＳ２０５は、相関変換を行う処理である。このステップＳ２０５の処理は、ステップＳ２０４の判定処理がＹｅｓとなる場合、つまり、焦点が合う物体が人間の顔以外となる場合に実行される。この相関変換では、図５に示す相関値を用いて、焦点が合う物体の大きさを人物の大きさに換算する。検出された物体が、例えば車であれば相関値が８．０である。画像処理回路２６は、車に設定された相関値の逆数（１／８）を、二次元画像における物体の大きさに乗算することで、検出された物体の大きさを、人間の大きさに換算する。
【００６５】
ステップＳ２０６は、距離情報を読み取る処理である。ステップＳ２０６の処理は、ステップＳ１０４の処理と同一の処理である。
【００６６】
ステップＳ２０７は、深度が０に設定された物体があるか否かを判定する処理である。このステップＳ２０７の判定処理は、ステップＳ１０５と同一の処理である。画像処理回路２６は、ステップＳ２０１にて生成された深度マップを参照し、ステップＳ２０２にて検出された物体のうち、深度マップにおける深度が０に設定された物体があるか否かを判定する。検出される物体に対して、深度マップにおいて深度が０に設定された場合には、画像処理回路２６は、ステップＳ２０７の判定をＹｅｓとする。この場合、ステップＳ２０８に進む。一方、検出される物体に対して、深度マップにおいて深度が０に設定されていない場合には、画像処理回路２６は、ステップＳ２０７の判定処理をＮｏとする。この場合には、図６のフローチャートの処理が終了される。つまり、ステップＳ２０７の判定処理がＮｏとなる場合には、ステップＳ２０１にて生成された深度マップに対して修正処理が行われない。
【００６７】
ステップＳ２０８は、深度が０に設定された物体を特定する処理である。このステップＳ２０８の処理は、ステップＳ１０６の処理と同一の処理である。
【００６８】
ステップＳ２０９は、焦点が合う物体は人物の顔以外であるか否かを判定する処理である。このステップＳ２０９の判定処理は、ステップＳ２０４の判定処理と同一の処理である。このステップＳ２０９においては、画像処理回路２６は、二次元画像データを用いて、ステップＳ２０８にて特定される物体が占める領域の特徴量を求め、求めた特徴量が人物の顔の特徴量に一致、又は近似するか否かを判定する。求めた特徴量が人物の顔の特徴量に一致、又は近似しない場合には、特定された物体は人物の顔以外であると判定される。この場合、ステップＳ２０９の判定処理がＹｅｓとなり、ステップＳ２１０に進む。一方、求めた特徴量が人物の顔の特徴量に一致、又は近似しない場合には、特定された物体は人物の顔であると判定される。この場合、ステップＳ２０９の判定処理はＮｏとなり、ステップＳ２１１に進む。
【００６９】
ステップＳ２１０は、相関変換を行う処理である。ステップＳ２１０の処理は、ステップＳ２０５の処理と同一の処理である。
【００７０】
ステップＳ２１１は、距離情報を算出する処理である。このステップＳ２１１の処理はステップＳ１０７と同一の処理である。なお、このステップＳ２０５、ステップＳ２１０のいずれかの処理を行っている場合には、相関変換された値を用いて、焦点が合う物体の大きさと、深度が０に設定された物体の大きさの比率を求め、深度が０に設定された物体までの距離情報を求めればよい。
【００７１】
ステップＳ２１２は、深度マップを修正する処理である。ステップＳ２１２の処理は、Ｓ１０８の処理と同一の処理である。
【００７２】
ステップＳ２１３は、深度が０に設定された物体がないか否かを判定する処理である。このステップＳ２１３の判定処理は、ステップＳ１０９と同一の処理である。つまり、深度が０に設定された物体がないと判定されれば、画像処理回路２６は、ステップＳ２１３の判定処理をＹｅｓとし、このフローチャートの処理を終了する。一方、深度が０に設定された物体があると判定されれば、画像処理回路２６はステップＳ２１３の判定処理をＮｏとする。この場合には、ステップＳ２０８から、ステップＳ２１２の処理が再度実行される。つまり、深度マップ上で、深度が０に設定された物体の領域がなくなるまで、ステップＳ２０８からステップＳ２１２の処理が繰り返し実行され、ステップＳ２０１にて算出された深度マップが修正される。これにより、最終的な深度マップが生成される。深度マップが生成された後、画像処理回路２６は、生成された深度マップ及び二次元画像データを用いて、三次元画像データを生成する。なお、生成された深度マップは、生成された三次元画像データの付帯情報として記憶する、又は三次元画像データを記憶しない場合には、元の二次元画像データの付帯情報として記憶してもよい。
【００７３】
図７に示すように、２人の人物Ｅ，Ｆを撮影したときに、背景として木５１が写っている二次元画像Ｉ２が得られた場合について説明する。ここで、図７中、マーク「×」が示す位置が、焦点が合う位置である。
【００７４】
上述したように、画像処理回路２６は、入力された二次元画像Ｉ２を用いて深度マップを生成する。そして、画像処理回路２６は、二次元画像Ｉ２を用いて物体を検出する。この場合、画像処理回路２６は、物体として人物Ｅ，Ｆの顔の他に、木５１を検出する。これら物体の検出の後、画像処理回路２６は、焦点が合う物体を特定する。人物Ｅの顔に焦点が合うように撮影が行われている場合には、焦点が合う物体として人物Ｅが特定される。また、画像処理回路２６は、求めた深度マップを参照して、深度が０に設定された物体を特定する。以下、深度が０に設定された物体が木５１となる場合について説明する。
【００７５】
画像処理回路２６は、上述した相関データから、人物の顔の大きさに対する木の大きさの相関値を読み出す。画像処理回路２６は、木５１の大きさと、読み出した相関値とを用いて、木５１の大きさを人間の大きさに相関変換する。図５に示すように、人物の顔の大きさに対する木の大きさの相関値は２０である。例えば二次元画像Ｉ２における木５１の大きさが４０となる場合には、木５１の大きさを人間の顔の大きさに換算すると、４０×１／２０＝２となる。この換算値を用いて、画像処理回路２６は、人物Ｅの顔の大きさと、木５１の大きさとの比率を求める。つまり、二次元画像Ｉ２における人物Ｅの顔の大きさが２０となる場合には、人物Ｅの顔の大きさと、人物の顔の大きさに換算した木５１の大きさとの比率は、２０／２＝１０となり、デジタルカメラ１０から木５１までの距離は、デジタルカメラ１０から人物Ｅの顔までの距離の１０倍であると推定される。
【００７６】
画像処理回路２６は、深度マップにおける人物の顔に対する深度と、算出した比率とを用いて、木５１に対する深度を求める。例えば人物Ｅの顔に対する深度が２０であれば、木５１に対する深度は、２０／１０＝２となる。画像処理回路２６は、深度マップにおける深度のうち、木の深度を、求めた深度に修正する。これにより、深度が修正された深度マップが得られる。
【００７７】
また、焦点が合う物体が人物の顔以外の物体となる場合もある。図８に示すように、人物ＧとＰＣ５２とを撮影したときに、背景部分に人物Ｈが写っている二次元画像Ｉ３が得られた場合について説明する。この場合も、図８中、マーク「×」が示す位置が、焦点が合う位置である。画像処理回路２６は、二次元画像Ｉ３から、人物Ｇの顔、ＰＣ５２の他に、人物Ｈの顔を検出する。この場合も同様にして、画像処理回路２６は、焦点が合う物体を特定する。図８においては、焦点が合う物体としてＰＣ５２が特定される。また、画像処理回路２６は、生成した深度マップを参照して、深度が０に設定された物体を特定する。以下、深度が０に設定された物体が人物Ｈの顔となる場合について説明する。
【００７８】
この場合、深度が０になる物体として人物Ｈの顔が特定される。一方、焦点が合う物体としてＰＣ５２が特定される。このような場合には、画像処理回路２６は、焦点が合う物体として特定されたＰＣ５２の大きさを人物の顔の大きさに換算する。上述したように、人物の顔の大きさに対するＰＣの大きさの相関値は２である。二次元画像Ｉ３におけるＰＣ５２の大きさが３０の場合、ＰＣ５２の大きさを人物の顔の大きさに換算すると、３０×１／２＝１５となる。
【００７９】
一方、人物Ｈの大きさを５とすると、人物の顔の大きさに換算したＰＣ５２の大きさと、人物Ｈの顔の大きさとの比率は、１５／５＝３となり、デジタルカメラ１０から人物Ｈの顔までの距離は、デジタルカメラ１０からＰＣ５２までの距離に対して３倍の距離であると推定される。
【００８０】
画像処理回路２６は、ＰＣ５２に設定される深度と、算出した比率とを用いて、人物Ｈの顔の深度を求める。例えばＰＣに設定される深度が３０であれば、人物Ｈの顔の深度は、３０／３＝１０となる。画像処理回路２６は、深度マップにおける深度のうち、人物Ｈの深度を、求めた深度に修正する。これにより、深度が修正された深度マップが得られる。
【００８１】
上記実施形態では、焦点が合う物体、又は深度マップにおける深度が０となる物体のいずれか一方が人物の顔となる場合について述べているが、これに限定される必要はなく、焦点が合う物体、及び深度マップにおいて深度が０に設定された物体がそれぞれ人物の顔ではない場合であってもよい。
【００８２】
図９に示すように、人物ＯとＰＣ５３とを撮影した場合に、本５４が写り込んでいる二次元画像Ｉ４が得られた場合について説明する。ここで、図９中、マーク「×」が示す位置が、焦点が合う位置である。画像処理回路２６は、二次元画像Ｉ４から、人物Ｏ、ＰＣ５３の他に、本５４を検出する。画像処理回路２６は、焦点が合う物体を特定する。図９においては、焦点が合う物体としてＰＣ５３が特定される。また、画像処理回路２６は、生成した深度マップを参照して、深度が０になる物体を特定する。
【００８３】
以下、深度が０に設定される物体が、本５４となる場合について説明する。ここで、焦点が合う物体としてＰＣ５３が特定されている。画像処理回路２６は、焦点が合う物体として特定されたＰＣ５３の大きさを人物の顔の大きさに換算する。上述したように、人物の顔の大きさに対するＰＣの大きさの相関値は２である。二次元画像Ｉ４におけるＰＣ５３の大きさが３０の場合、ＰＣ５３の大きさを人物の顔の大きさに換算すると、３０×１／２＝１５となる。
【００８４】
また、画像処理回路２６は、特定された本５４の大きさを人物の顔の大きさに換算する。上述したように、人物の顔の大きさに対する本の大きさの相関値は１．５である。二次元画像Ｉ４における本５４の大きさが９の場合、本５４の大きさを人物の顔の大きさに換算すると、９×１／１．５＝６となる。
【００８５】
画像処理回路２６は、換算したＰＣ５３の大きさと、換算した本５４の大きさとの比率を求める。人物の顔の大きさに換算したＰＣ５３の大きさは１５、人物の顔の大きさに換算した本の大きさは６であることから、上述した比率は、１５／６＝２．５となる。つまり、撮影時のデジタルカメラ１０から本５４までの距離は、デジタルカメラ１０からＰＣ５３までの距離に対して、２．５倍の距離であると推定される。
【００８６】
画像処理回路２６は、深度マップにおけるＰＣ５３に設定される深度と、算出した比率とを用いて、本５４に対する深度を求める。例えばＰＣ５３に対する深度の値が３０であれば、本５４に対する深度は、３０／２．５＝１２となる。画像処理回路２６は、深度マップにおける深度のうち、本５４の深度を、求めた深度に修正する。これにより、深度が修正された深度マップが得られる。
【００８７】
上述した相関値は、人物の顔の大きさを基準にした場合に、他の物体の大きさを人物の顔の大きさに換算することを目的として設定される値であるが、基準となる物体は、人物の顔に限定されるものではなく、他の物体としてもよい。
【００８８】
上述した実施形態においては、デジタルカメラ１０による撮像により得られた二次元画像データを用いて深度マップを生成しているが、これに限定されるものではなく、記憶媒体３８に記憶される二次元画像データに対しても、本発明を適用することは可能である。この場合、記憶媒体３８に記憶される二次元画像データが、上述した焦点情報、距離情報、位置情報が付帯される画像データであればよい。
【００８９】
本実施形態では、デジタルカメラ１０を例に取り上げているが、図２に示すマップ生成部４１の構成を備えた画像処理装置であってもよい。また、この他に、図２に示すマップ生成部４１の各部の機能や、図３及び図６のフローチャートの処理をコンピュータに実行させるための画像処理プログラムであってもよい。この場合、画像処理プログラムは、メモリカード、光学ディスク、磁気ディスクなど、コンピュータが読み取ることが可能な記憶媒体に記憶されていることが好ましい。
【符号の説明】
【００９０】
１０…デジタルカメラ、１５…撮像光学系、１７…撮像素子、１９…レンズ駆動部、２６…画像処理回路、３５…ＣＰＵ、４１…マップ生成部、４２…画像変換部、４５…マップ算出部、４６…物体検出部、４７…物体特定部、４８…距離算出部、４９…マップ修正部
【図１】
2013118472.tif 000003
【図２】
2013118472.tif 000004
【図３】
2013118472.tif 000005
【図５】
2013118472.tif 000006
【図６】
2013118472.tif 000007
【図７】
2013118472.tif 000008
【図８】
2013118472.tif 000009
【図９】
2013118472.tif 000010
【図４】
2013118472.tif 000011