(57)【要約】【課題】  ダイナミックレンジの広いシーンにおいて、精度の高い距離情報を得る。【解決手段】  画像処理装置が、第一の露出条件において同一の被写体を複数の異なる視点から撮像した第一の画像群と、前記第一の露出条件とは異なる第二の露出条件において前記被写体を複数の異なる視点から撮像した第二の画像群とを取得する取得手段と、前記第一および第二の画像群から第一および第二の距離マップを生成する第一の生成手段と、前記第一および第二の距離マップから第三の距離マップを生成する第二の生成手段とを備える。【選択図】  図４
2015073185.tif 000002
【特許請求の範囲】
【請求項１】
第一の露出条件において同一の被写体を複数の異なる視点から撮像した第一の画像群と、前記第一の露出条件とは異なる第二の露出条件において前記被写体を複数の異なる視点から撮像した第二の画像群とを取得する取得手段と、
前記第一および第二の画像群から第一および第二の距離マップを生成する第一の生成手段と、
前記第一および第二の距離マップから第三の距離マップを生成する第二の生成手段とを備えることを特徴とする画像処理装置。
【請求項２】
前記第一の画像群はそれぞれが同時に撮像された画像による画像群であり、前記第二の画像群もまた、それぞれが同時に撮像された画像による画像群であることを特徴とする請求項１に記載の画像処理装置。
【請求項３】
前記第一および第二の画像群は、同時に撮像されることを特徴とする請求項２に記載の画像処理装置。
【請求項４】
前記第二の生成手段は、前記第一の距離マップと前記第二の距離マップとを、前記第一および第二の画像群に基づいて重みづけ合成することで、前記第三の距離マップを生成することを特徴とする請求項１乃至３のいずれか一項に記載の画像処理装置。
【請求項５】
前記第二の生成手段は、前記第一および第二の画像群に含まれる画像の輝度値に基づいて前記重みづけ合成における重みを決定することを特徴とする請求項４に記載の画像処理装置。
【請求項６】
前記第二の生成手段は、前記第一および第二の画像群に含まれる画像のピント状態に基づいて前記重みづけ合成における重みを決定することを特徴とする請求項４又は５に記載の画像処理装置。
【請求項７】
前記ピント状態は、前記第一および第二の画像群に含まれる画像における、画像ブロックごとのコントラスト比によって示されることを特徴とする請求項６に記載の画像処理装置。
【請求項８】
前記重みづけ合成における重みは、前記第一および第二の距離マップにおける画素位置ごとに決定されることを特徴とする請求項４乃至７のいずれか一項に記載の画像処理装置。
【請求項９】
前記第一および第二の画像群を撮像によって取得する撮像手段を更に備えることを特徴とする請求項１乃至８のいずれか一項に記載の画像処理装置。
【請求項１０】
前記第一および第二の露出条件は、露出時間であることを特徴とする請求項２乃至９のいずれか一項に記載の画像処理装置。
【請求項１１】
第一の露出条件において同一の被写体を複数の異なる視点から撮像した第一の画像群と、前記第一の露出条件とは異なる第二の露出条件において前記被写体を複数の異なる視点から撮像した第二の画像群とを取得するステップと、
前記第一および第二の画像群から第一および第二の距離マップを生成するステップと、
前記第一および第二の距離マップから第三の距離マップを生成するステップとを備えることを特徴とする画像処理装置。
【請求項１２】
コンピュータを、請求項１乃至１０のいずれか一項に記載の画像処理装置の各手段として機能させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、被写体の距離情報を得る技術に関する。
【背景技術】
【０００２】
従来、複数の視点から撮影した画像（以下、多視点画像）を用いて、被写体までの距離を推定する技術が知られている。被写体までの距離を推定する方法としては、ブロックマッチング法を用いて多視点画像から同一の被写体に対応する対応点を探索し、三角測量によって被写体までの距離を求める方法がある。この方法を用いる場合に、ダイナミックレンジの広いシーンにおいて、白とびしたハイライト部や、黒くつぶれたシャドー部の距離情報が上手く求められないという課題があった。
【０００３】
特許文献１では、ステレオカメラにおいて、異なる露出時間で２回撮影を行い、２視点に対応する２枚のハイダイナミックレンジ合成画像生成し、そのハイダイナミックレンジ合成画像を用いて被写体までの距離を求める技術が記載されている。
【０００４】
また、特許文献２では、ステレオカメラにおいて、１回の撮像によって取得した、視点と露出時間の両方が異なる２枚の画像から距離を求める技術が記載されている。特許文献２に記載の技術では、撮像画像から、もう一方の撮像画像に明るさを合わせた仮想露出画像を２枚生成し、撮像画像と仮想露出画像でマッチングを行ったマッチング情報を統合し、統合したマッチング情報に基づいて被写体までの距離を求めている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００３−１８６１７号公報
【特許文献２】特開２０１１−２５４１７０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、特許文献１に記載の方法では、露出の異なる２回撮影の画像同士でマッチングを行う必要があるため、２回の撮影でカメラの位置が異なる場合は、露出の同じ画像だけで距離を出す場合に比べて距離情報の精度が低下してしまうという課題がある。
【０００７】
また、特許文献２に記載の方法では、異なる露出時間で撮影された画像の明るさを合わせてマッチングを行うために、どちらか一方で白とびもしくは黒つぶれしている領域については、十分なマッチング精度が得られないという課題がある。
【０００８】
上記課題に鑑み、本発明は、ダイナミックレンジの広いシーンにおいても、精度の高い距離情報を得ることを目的としている。
【課題を解決するための手段】
【０００９】
第一の露出条件において同一の被写体を複数の異なる視点から撮像した第一の画像群と、前記第一の露出条件とは異なる第二の露出条件において、前記同一の被写体を複数の異なる視点から撮像した第二の画像群とを取得する取得手段と、
前記第一の画像群から生成された第一の距離マップと、前記第二の画像群から生成された第二の距離マップとに基づいて、第三の距離マップを生成する生成手段とを備えることを特徴とする画像処理装置。
【発明の効果】
【００１０】
本発明により、ダイナミックレンジの広いシーンにおいても、被写体までの距離を高精度に得ることができる。
【図面の簡単な説明】
【００１１】
【図１】実施例１の多眼カメラの外観を示す図。
【図２】実施例１の多眼カメラの構成を示すブロック図。
【図３】実施例１の撮像部の内部構成を示す図。
【図４】実施例１の画像処理部の構成を示すブロック図。
【図５】実施例１の画像処理部における処理を示すフローチャート。
【図６】実施例１における距離マップ生成処理を示すフローチャート。
【図７】実施例１における距離算出の方法を示す図。
【図８】実施例１における距離マップ合成処理の概要を示す図。
【図９】実施例１における距離マップ合成処理を示すフローチャート。
【発明を実施するための形態】
【００１２】
［実施例１］
本実施例では、多視点画像を取得する撮像装置として、４個の撮像部を備えた多眼カメラが用いられる。この多眼カメラによって取得された画像から、被写体の距離情報を得る方法について説明する。
【００１３】
図１は、本実施例における多眼カメラ１００（以下、カメラ１００とする）を前面から見た図である。多眼カメラ１００は、カラー画像を撮像により取得する４個の撮像部１０１〜１０４及び撮影ボタン１０５を備えている。全ての撮像部は筺体の同一平面上に配置され、その光軸は全て平行であり、配置された平面に垂直である。ユーザが撮影ボタン１０５を押下すると、撮像部１０１〜１０４が被写体の光情報をセンサ（撮像素子）で受光し、受光した信号がＡ／Ｄ変換され、複数のカラー画像データ（デジタルデータ）が同時撮影される。
【００１４】
このような多眼方式の撮像装置により、同一の被写体を複数の視点位置から同時撮影したカラー画像群を得ることができる。なお、ここでは撮像部の数を４個としたが撮像部の数は４個に限定されず、撮像装置が複数の撮像部を有すればよい。
【００１５】
図２は、カメラ１００の内部構成を示すブロック図である。ＣＰＵ２０１は、以下に述べる各構成部を統括的に制御するプロセッサである。ＲＡＭ２０２は、ＣＰＵ２０１の主メモリ、ワークエリア等として機能する。ＲＯＭ２０３は、ＣＰＵ２０１で実行される制御プラグラム等を格納している。ＣＰＵ２０１は、ＲＡＭ２０２をワークメモリとしてＲＯＭ２０３に格納されたプログラムを実行し、バス２０４を介して多眼カメラ１００の各構成部を制御する。
【００１６】
バス２０４は、各種データの転送経路となる。例えば、撮像部１０１〜１０４によって取得された画像データは、このバス２０４を介して所定の構成部に送られる。
【００１７】
操作部２０５はボタンやモードダイヤルなどの操作ユニットであり、ユーザの指示を受取ってＣＰＵ２０１へと出力する。
【００１８】
表示部２０６は液晶ディスプレイであり、撮影画像や文字の表示を行う。表示部２０６はタッチスクリーン機能を有していても良く、その場合はタッチスクリーンを用いたユーザ指示を操作部２０５の入力として扱うこともできる。
【００１９】
表示制御部２０７は、表示部２０６に表示される撮影画像や文字の表示制御を行う制御回路である。
【００２０】
撮像制御部２０８は、フォーカスを合わせる、シャッターを開く・閉じる、絞りを調節するなど、ＣＰＵ２０１からの指示に基づいて撮像部の制御を行う制御回路である。本実施例において、撮像制御部２０８は、撮像部１０１〜１０４のうち、撮像部１０１および１０２は第一の露出時間で撮像を行い、撮像部１０３および１０４は第一の露出時間よりも長い第二の露出時間で撮像を行うように、撮像部１０１〜１０４を制御する。
【００２１】
デジタル信号処理部２０９は、バス２０４を介して受け取った画像データに対し、ホワイトバランス処理、ガンマ処理、ノイズ低減処理などの各種処理を行う処理回路である。
【００２２】
エンコード部２１０は、バス２０４を介して受取った画像データをＪＰＥＧやＭＰＥＧなどのファイルフォーマットに変換する処理を行う。
【００２３】
外部メモリ制御部２１１は、カメラ１００を、メディア２１３（例えば、ハードディスク、メモリカード、ＣＦカード、ＳＤカード、ＵＳＢメモリ）につなぐためのインタフェースである。
【００２４】
画像処理部２１２は、撮像部１０１〜１０４で取得された画像データ或いは、デジタル信号処理部２０９から出力される画像データに処理を行う処理回路である。本実施例では、複数の露出条件で撮影された画像データを用いて距離の算出を行うが、その詳細については後述する。
【００２５】
上記以外の構成要素については説明を省略するが、本発明の効果を奏する構成であれば、様々な構成を取ることができる。
【００２６】
図３は、撮像部１０１〜１０４の内部構成を示す図である。撮像部１０１〜１０４は、レンズ３０１〜３０３、絞り３０４、シャッター３０５、光学ローパスフィルタ３０６、ｉＲカットフィルタ３０７、カラーフィルタ３０８、センサ３０９及びＡ／Ｄ変換部３１０で構成される。レンズ３０１〜３０３はそれぞれ、ズームレンズ３０１、フォーカスレンズ３０２、ぶれ補正レンズ３０３である。センサ３０９は、例えばＣＭＯＳやＣＣＤなどのセンサであり、上記の各レンズでフォーカスされた被写体の光量を検知する。検知された光量はアナログ値としてセンサ３０９から出力され、Ａ／Ｄ変換部３１０によってデジタル値に変換されて、デジタル画像データとなってバス２０４に出力される。
【００２７】
（画像処理部）
図４は、画像処理部２１２の構成を示すブロック図である。以下、画像処理部２１２にて行われる処理を、図４に示すブロック図および図５に示すフローチャートを参照して説明する。画像処理部２１２においては、図５のフローチャートに示す手順を記述したコンピュータで実行可能なプログラムをＲＯＭ２０３からＲＡＭ２０２上に読み込んだ後に、ＣＰＵ２０１が該プログラムを実行することによって当該処理が実施される。なお、画像処理部２１２を処理回路としたが、画像処理部２１２の各機能ブロックの一部または全部を、プログラムを実行したＣＰＵ２０１による処理に置き換えた構成としても良い。
【００２８】
まず、ステップＳ５０１では、画像取得部４０１が、撮像部１０１〜１０４又はデジタル信号処理部２０９から入力された画像データをバス２０４を介して取得する。
【００２９】
次に、ステップＳ５０２では、画像取得部４０１が取得した画像データの中から、同じ露出条件で撮像された２枚の画像に対応する画像データを選択し、距離マップ生成部４１０に出力する。各画像データの露出条件は撮影時にＲＡＭ２０２に記録してもよいし、Ｅｘｉｆ形式等を用いて画像データに付与してもよい。本実施例では、撮像部１０１と１０２で撮像された画像群と、撮像部１０３と１０４で撮像された画像群がそれぞれ同じ露出条件で撮像された画像として選択されている。
【００３０】
次に、ステップＳ５０３では、距離マップ生成部４１０が、画像取得部４０１から入力された画像データを用いて、その画像データが示す画像群に対応する距離マップを生成し、距離マップ合成部４２０に出力する。距離マップ生成処理の詳細は後述する。ここで距離マップとは、画像中の各画素位置における撮像装置から被写体までの距離を２次元情報で示すデータである。本実施例において、距離マップは２５６階調のモノクロ画像であり、撮像装置からの距離が近い画素を白（２５５）、距離が遠い画素を黒（０）で表わしている。なお、距離マップの形式はこの形式に限られず、各画素位置における被写体距離を格納したテーブルなどであってもよい。
【００３１】
次に、ステップＳ５０４では、距離マップ合成部４２０が、入力された画像データが示す全ての画像群に対応する距離マップが生成されたかどうかを判定する。全ての距離マップが生成されていると判断された場合にはステップＳ５０５に進む。全ての距離マップが生成されていないと判断された場合は、ステップＳ５０２に戻り、別の露出条件に対応する画像群を選択する。
【００３２】
最後に、ステップＳ５０５では、距離マップ合成部４２０が、距離マップ生成部４１０から入力された複数の距離マップを合成して、最終的な距離マップを生成する。距離マップ合成処理の詳細は後述する。
【００３３】
（距離マップ生成処理）
次に、図５に示すフローチャートのステップＳ５０３で行う距離マップ生成処理の詳細について説明する。距離マップ生成処理では、複数の異なる視点から撮像して得られた画像を基に、撮像したシーンの各画素位置における被写体の距離情報を推定することにより距離マップを生成する。この距離情報算出には公知の手法を用いることができる。例えば、ステレオ法やマルチベースラインステレオ法などが適用可能である。本実施例では、ステレオ法を用いて被写体の距離情報を推定する。以下、図６に示すフローチャートを用いて、距離マップ生成処理の詳細を説明する。
【００３４】
まず、ステップＳ６０１では、対応点探索部４０２が、同じ露出条件で撮像された画像群を示す画像データを取得する。ここで取得される画像データが示す画像群は、同じ露出条件で撮像された、撮像部１０１および１０２に対応する画像群である。以下、前者に対応する画像を基準画像、後者に対応する画像を対象画像と呼ぶ。
【００３５】
ステップＳ６０２では、対応点探索部４０２が、基準画像において、距離情報を算出する注目画素とその周囲の画素からなる領域を選択し、選択領域であるブロックを用いて対象画像とパターンマッチングを行う。なお、ここで、注目画素の選択は、ＲＡＭ２０２に記憶された注目画素の座標を示す情報を読み出すことで行われる。このパターンマッチングにより、対応点探索部４０２は対象画像において、基準画像の注目画素に対応する画素（対応画素）を探索する。対応点探索部４０２は、得られた注目画素と対応画素の座標情報を距離算出部４０３に出力する。
【００３６】
ステップＳ６０３では、距離算出部４０３が、各撮像部の配置情報と、対応点探索部４０２から入力された、注目画素およびその対応画素の座標情報から、注目画素の画素位置における被写体の距離情報ｄを算出する。距離情報ｄは、三角法により、図７に示すパラメータα、β、ｓを用いて以下の式で表される。なお、各撮像部の配置情報はＲＯＭ２０３に予め格納されている。
【００３７】
【数１】
2015073185.tif 000003
【００３８】
ここで、αは撮像部１０２の水平画角と、撮像部１０２の位置、および対象画素の座標から算出される。βは撮像部１０１の水平画角と撮像部１０１の位置、および注目画素の座標から算出される。ｓは撮像部１０１および１０２の間の水平距離であり、撮像部１０１および１０２の配置情報から算出される。距離算出部４０３は、ＲＯＭ２０３に保存された各撮像部の配置情報および、対応点探索部４０２から入力された注目画素と対応画素の座標情報に基づいて上記式の各パラメータを算出し、算出された値を上記式に代入して、ｄを算出する。算出されたｄはＲＡＭ２０２に、注目画素の座標情報と共に保存される。
【００３９】
ステップＳ６０４では、距離算出部４０３が、全ての画素位置について距離情報の算出が行われたかどうかを判定する。全ての画素位置について距離情報の算出が行われたと判定された場合、ステップＳ６０６に進む。全ての画素位置について距離情報の算出が行われていないと判定された場合、ステップＳ６０５に進む。
【００４０】
ステップＳ６０５では、距離算出部４０３が、ＲＡＭ２０２に記憶された、注目画素の座標を示す情報を更新する。例えば、直前の処理で用いられた注目画素の隣の画素など、まだ距離の算出が行われていない画素の座標に書き換える。座標情報の更新が終了したら、ステップＳ６０２に戻り、対応点探索部４０２が、新たな注目画素についてパターンマッチングを行う。
【００４１】
ステップＳ６０６では、距離算出部４０３が、各画素位置におけるカメラ１００から被写体までの距離を二次元に並べた距離マップを生成し、距離マップ合成部４２０に出力する。
【００４２】
また、本実施例では、ステップＳ５０１において、同じ露出条件の撮像部として撮像部１０１と撮像部１０２を選択したが、これに限るものではない。すなわち、例えば撮像部１０１と１０４を同じ露出条件で撮像する撮像部として選択しても構わない。
【００４３】
（距離マップ合成処理）
ここでは、図５に示すフローチャートのステップＳ５０５で行う距離マップ合成処理の詳細について説明する。距離マップ合成処理では、各画素位置での輝度値に応じて、ステップＳ５０３で生成した複数の距離マップを合成し、新たな距離マップを生成する。図８に、その概要を示す。
【００４４】
図８の画像８０１〜８０４は、それぞれ撮像部１０１〜１０４により撮像された画像である。本実施例では、撮像部１０１と１０２がそれぞれ短い露出時間で撮像を行うため、画像８０１と８０２では背景部が黒くつぶれてしまっている。一方、撮像部１０３と１０４がそれぞれ長い露出時間で撮像を行うため、画像８０３と８０４では前景部に白とびが発生している。黒つぶれした領域や白とびした領域ではパターンマッチングが正しく行われないため、距離情報が正確に算出されない。
【００４５】
そのため、画像８０１および８０２から生成された距離マップ８０５と、画像８０３および８０４から生成された距離マップ８０６では、それぞれ黒つぶれした領域と白とびした領域では距離が上手く推定されていない。そこで、本実施例においては、距離マップ８０５と８０６を輝度値に応じて合成することで、全ての領域で距離が正確に算出された距離マップを生成する。以下、図９に示すフローチャートを参照して、処理の詳細について説明する。
【００４６】
まず、ステップＳ９０１では、シフト画像生成部４０４が、距離算出部４０３から出力された複数の距離マップおよび、画像取得部４０１から出力された、その距離マップに対応する画像データ（以下、対応画像データと呼ぶ）を取得する。なお、ここで取得される対応画像データは、各距離マップ生成時に基準画像として用いられた画像を示す画像データである。
【００４７】
次に、ステップＳ９０２では、距離マップ生成部４２０の各構成部が、ステップＳ５０３で生成された距離マップの中から１つを選択する。
【００４８】
次に、ステップＳ９０３では、シフト量算出部４０４が、ステップＳ９０２で選択された距離マップを、基準視点に位置合わせするためのシフト量を算出する。ここで基準視点とは、最終的に合成距離マップが生成される視点であり、本実施例においては、撮像部１０１に対応する視点である。なお、この視点は撮像部１０１に対応する視点に限られるものではなく、他の撮像部に対応する視点や、全ての撮像部の中心に位置する仮想的な視点であってもよい。ここで、シフトされる距離マップの各画素の垂直シフト量Δｘおよび水平シフト量Δｙは、以下の式で算出できる。
【００４９】
【数２】
2015073185.tif 000004
【００５０】
【数３】
2015073185.tif 000005
【００５１】
ここで、Ｗ、Ｈは対応画像データの水平方向、垂直方向の画像サイズである。また、θｘ、θｙは対応画像データを撮像した撮像部の水平視野角および垂直視野角であり、Ｓｘ、Ｓｙは選択された距離マップに対応する視点と基準視点の間の水平距離および垂直距離である。また、ｄはその画素におけるカメラ１００から被写体までの距離である。
【００５２】
シフト量算出部は、ここで算出されたシフト量をもとに、距離マップと対応画像データをシフトし、シフト距離マップおよびシフト画像データを生成する。なお、対応画像データの画素と対応付かないシフト画像データの画素には、異常値を示す値を設定する。例えば、異常値として画素の最小値であるゼロを設定すれば、後述する重み係数がゼロとなるようにできる。シフト量算出部４０４は、生成したシフト距離マップおよびシフト画像データを重み算出部４０５に出力する。また、シフト量算出部４０４は、生成したシフト距離マップをシフト距離マップ合成部４０６に出力する。
【００５３】
次に、ステップＳ９０４では、重み算出部４０５が、距離マップの合成で用いる重み係数を算出する。ここで、重み算出部４０５は、シフト量算出部４０４から入力されたシフト距離マップの各画素における重み係数を、シフト画像データの画素の輝度値に応じて算出しＲＡＭ２０２に記憶する。各画素における重み係数ｗｉ（ｘ，ｙ）は、シフト画像データの輝度値に応じて、例えば以下式に基づいて決定される。
【００５４】
【数４】
2015073185.tif 000006
【００５５】
ここで、Ｉｉ（ｘ，ｙ）は各画素におけるシフト画像データの輝度値であり、Ｉｍａｘはシフト画像データの最大輝度値である。また、αおよびβはシャドー部およびハイライト部を示す閾値である。輝度値がαより小さい画素はシャドー部として、輝度値がβよりも大きい画像はハイライト部として判定される。前述した通り、ハイライト部やシャドー部では、距離推定の精度が悪くなる。そのため、上記式において、ハイライト部やシャドー部の重み係数が小さくなるように設定されている。これにより、距離推定の精度が高い、適正露出の領域の重みを大きくして距離マップの合成を行うことができる。なお、αおよびβの値は撮像センサの特性に応じて予めＲＯＭ２０３に記憶されていてもよいし、ユーザが操作部２０５を通じて設定してもよい。また、本実施例ではシャドー部とハイライト部の重み係数を線形としたが、非線形やテーブル参照型で表現しても構わないのは。また、シャドー部とハイライト部の重み係数をゼロとしてもよい。
【００５６】
ステップＳ９０５では、重み算出部４０５が、全ての画素において重みの算出が行われたかどうかを判定する。全ての画素において重みの算出が行われたと判定された場合、ステップＳ９０７に進む。全ての画素において重みの算出が行われていないと判定された場合、ステップＳ９０６に進む。
【００５７】
ステップＳ９０６では、重み算出部４０５が、ＲＡＭ２０２に記憶された、注目画素の座標を示す情報を更新する。注目画素の座標を示す情報が更新されたら、ステップＳ９０４に戻る。
【００５８】
ステップＳ９０７では、シフト距離マップ合成部４０６が、全ての距離マップにおいてシフト量と重みの算出が行われているかを判定する。全ての距離マップにおいてシフト量と重みの算出が行われていると判定された場合は、ステップＳ９０８に進む。全ての距離マップにおいてシフト量と重みの算出が行われていないと判定された場合は、ステップＳ９０２に進む。
【００５９】
ステップＳ９０８では、シフト距離マップ合成部４０６が距離マップの合成を行う。本実施例では、合成距離マップの各画素における距離Ｄ（ｘ，ｙ）は、シフト距離マップの各画素における距離Ｄｉ（ｘ，ｙ）と重み係数ｗｉ（ｘ，ｙ）の積によって求めることができる。合成後の距離マップの各画素における距離Ｄ（ｘ，ｙ）は以下の式を用いて算出することができる。
【００６０】
【数５】
2015073185.tif 000007
【００６１】
ここで、ｎは合成する距離マップの枚数である。シフト距離マップ合成部４０６は、シフト量算出部４０４から出力されたシフト距離マップの各画素における距離と、ステップＳ９０４で算出された重み値を上記式に代入し、合成後の距離マップを得る。
【００６２】
以上の処理により、ダイナミックレンジの広いシーンでも、高精度な距離マップを得ることができる。
【００６３】
なお、本実施例における重みづけ合成は、複数の距離マップの距離値から、１つの距離マップの距離値を選択する処理なども含まれる。つまり、選択される距離値以外の重みが０となっている場合が含まれる。
【００６４】
また、本実施例では撮像部の配置を二次元に均等に配置されているものとしたが、その限りではないのは。前述した通り、視点の異なる画像データがあれば距離の推定が可能であるため、任意の位置に配置しても構わない。また、本実施例では撮像部で撮像される画像がすべてカラー画像であることを前提に各部の構成や処理を説明した。しかし、撮像部で撮像される画像の一部あるいは全部をモノクロ画像に変更しても構わない。その場合には、図３のカラーフィルタ３０８は省略される。
【００６５】
また、本実施例において、重み値は各画素ごとに求められたが、画素位置ごとに重み値が異なっていれば異なる単位で重み値を決定してもよい。つまり、複数の画素による画像ブロックごとに重み値を決定しても良い。その場合は、各画像ブロックの境界が不自然となることがあるので、スムージングフィルタなどを適用してもよい。
【００６６】
また、本実施例において、露出時間の異なる２種類の画像群に対応する２枚の距離マップを合成して新たな距離マップの生成を行ったが、露出条件が異なり、お互いの黒つぶれ・白とびした箇所が保証できるような画像群の組み合わせであればよい。なお、一般に露出条件はシャッタースピードやＦ値、ＩＳＯ感度を変更したり、ＮＤフィルタを切り替えたりすることにより変更できる。
【００６７】
なお、本実施例において、画像取得部４０１は、第一の画像群と、第二の画像群とを取得する取得手段として機能した。ここで、第一の画像群は、第一の露出条件において同一の被写体を複数の異なる視点から撮像した画像を含み、第二の画像群は、前記第一の露出条件とは異なる第二の露出条件において、前記同一の被写体を複数の異なる視点から撮像した画像を含む。
【００６８】
また、距離マップ生成部４１０は、前記第一および第二の画像群から第一および第二の距離マップを生成する第一の生成手段として機能した。
【００６９】
また、距離マップ合成部４２０は、前記第一および第二の距離マップから第三の距離マップを生成する第二の生成手段として機能した。
また、撮像部１０１〜１０４は、前記第一および第二の画像群を撮像によって取得する撮像手段として機能した。
【００７０】
［実施例２］
実施例１では、各画素の輝度値に基づいて重みづけ合成の重みを決定する方法について説明した。実施例２では、各被写体のピント状態に基づいて重みづけ合成を行う方法について説明する。
【００７１】
オートフォーカス機能を有するカメラで撮像を行った場合、適正露出の領域にピントが合うようにピント位置が制御される。つまり、各画素における輝度値を用いずとも、ピントが合っている領域の重みが大きくなるように合成を行えば、精度の高い距離マップの生成を行うことができる。また、この方法によれば、２つの露出条件における画像群の両方で適正露出となっていながらも、ピント位置の違いにより片方の画像群でぼけている被写体の重みを小さくすることができる。つまり、複数の異なる露出条件において適正露出となっていながらピント状態が異なる被写体が含まれていても、精度の高い距離マップの生成を行うことができる。
【００７２】
本実施例の構成および処理の内容は実施例１とほぼ同じである。本実施例においては、ステップＳ９０４における重みの算出処理の方法が異なる。
【００７３】
本実施例のステップＳ９０４における重み値の算出は、距離マップを数画素単位で分割した複数の画像ブロックごとに行われる。距離マップをＮ×Ｍのブロックに分割した場合、その中のブロック（ｓ，ｔ）（ｓ＝１，２，…Ｎ、ｔ＝１，２，…Ｍ）に対応する重み値をｗｂｉ（ｓ，ｔ）とする。その時、ブロック（ｓ，ｔ）に対応する撮像画像中の画像ブロックのコントラスト比をｃｉ（ｓ，ｔ）とすると、各ブロックの重み値は以下のように決定される。
Ｗｂｉ（ｓ，ｔ）＝ｃｉ（ｓ，ｔ）
これにより、各画像ブロックの重み値は、複数の露出条件におけるコントラスト比の比に応じて決定される。なお、重み値は、コントラスト比の比をそのまま用いるのではなく、コントラスト比の絶対値や相対値に応じて傾斜をつけるように設定されてもよい。
【００７４】
上記式によって設定された重み値ｗｂｉ（ｓ，ｔ）と、シフト距離マップの各画素における距離Ｄｉ（ｘ，ｙ）を用いて、合成後の距離マップの各画素における距離Ｄ（ｘ，ｙ）は以下の式により算出される。
【００７５】
【数６】
2015073185.tif 000008
【００７６】
ここで、ｎは合成する距離マップの枚数である。上記式においてそれぞれのＤｉ（ｘ，ｙ）には、画素の座標（ｘ，ｙ）に対応する画像ブロック（ｓ，ｔ）の重み値ｗｂｉ（ｓ，ｔ）が乗算される。
【００７７】
以上の計算方法により距離マップ、ダイナミックレンジの広いシーンでも、高精度な距離マップを得ることができる。また、複数の異なる露出条件において適正露出となっていながらピント状態が異なる被写体が含まれていても、精度の高い距離マップの生成を行うことができる。
【００７８】
なお、各被写体のピント状態の判断は各画像ブロックのコントラスト比に基づくもののみに限定されるものではない。例えば、各画像ブロックをフーリエ変換した場合の高周波成分の大きさなどに基づいて重み値を決定しても良い。
【００７９】
［その他の実施形態］
本発明の実施形態は、上記の実施例に限られるものではない。例えば、上記の実施例を組み合わせたものであってもよい。すなわち、各画素の輝度値と各画像ブロックのピント状態の両方を考慮して重み値を決定してもよい。
【００８０】
なお、上記の実施例では、複数の撮像部を備えた多眼カメラによって撮像された画像をもとに距離マップの合成を行ったが、別の形態で撮像された画像を用いてもよい。例えば、それぞれが独立した複数のカメラによって撮像された画像を用いてもよい。また、１枚のセンサの出力から複数視点の画像を抽出できる、Ｐｌｅｎｏｐｔｉｃ撮像系を備えた画像により撮像された画像を用いてもよい。その場合、Ｐｌｅｎｏｐｔｉｃ撮像系を２つ以上備えたカメラにより撮像すると、露出条件の異なる複数の画像群を同時撮像により取得することができる。
【００８１】
また、各画像は同時に撮像されたものである必要はなく、同一の被写体が収まるように撮影されたものであればよい。つまり、多眼カメラを用いずとも、既存の単眼カメラによって異なる時点で撮像された画像を用いる場合や、複数のカメラによって撮像された画像を用いる場合も含まれる。
【００８２】
また、上記の実施例では、異なる露出条件で撮像された画像群から生成された複数の距離マップを重みづけ合成することで最終的な距離マップを得たが、同様の結果が得られるのであれば他の方法を用いて最終的な距離マップを得ても良い。例えば、複数の距離マップと、その距離マップに対応する撮像画像の輝度値に基づいて、あらかじめテーブルなどの形式で保持しておいた値を読み出して並べることで距離マップを生成してもよい。
【００８３】
また、実施例は撮像部と処理部を備えたカメラのみに限定されるものではなく、上記の実施例で行われる処理の一部が別のコンピュータによって行われる情報処理システムであってもよい。例えば、カメラが取得した画像データをコンピュータに出力し、入力された画像に基づいてコンピュータが距離マップの合成を行う情報処理システムであってもよい。
【００８４】
なお、本発明は例えば、システム、装置、方法、プログラムもしくは記憶媒体等としての実施態様をとることが可能である。また、複数の機器から構成されるシステムに適用してもよいし、一つの機器からなる装置に適用してもよい。
【００８５】
また、本発明はソフトウェアのプログラムをシステム或いは装置に直接或いは遠隔から供給し、そのシステム或いは装置のコンピュータが該供給されたプログラムコードを読み出して実行することによって前述した実施形態の機能が達成される場合を含む。この場合、供給されるプログラムは実施形態で図に示したフローチャートに対応したコンピュータプログラムである。従って、本発明の機能処理をコンピュータで実現するために、該コンピュータにインストールされるプログラムコード自体も本発明を実現するものである。つまり、本発明は、本発明の機能処理を実現するためのコンピュータプログラム自体も含まれる。その場合、プログラムの機能を有していれば、オブジェクトコード、インタプリタにより実行されるプログラム、ＯＳに供給するスクリプトデータ等の形態であってもよい。
【００８６】
コンピュータプログラムを供給するためのコンピュータ読み取り可能な記憶媒体としては例えば、ハードディスク、光ディスク、光磁気ディスクが挙げられる。また、ＭＯ、ＣＤ−ＲＯＭ、ＣＤ−Ｒ、ＣＤ−ＲＷ、磁気テープ、不揮発性のメモリカード、ＲＯＭ、ＤＶＤ（ＤＶＤ−ＲＯＭ，ＤＶＤ−Ｒ）などであってもよい。
【００８７】
その他、プログラムの供給方法としては、クライアントコンピュータのブラウザを用いてインターネットのホームページに接続し、該ホームページから本発明のコンピュータプログラムをハードディスク等の記憶媒体にダウンロードすることが挙げられる。この場合、ダウンロードされるプログラムは、圧縮され自動インストール機能を含むファイルであってもよい。また、本発明の機能処理をコンピュータで実現するためのプログラムファイルを複数のユーザに対してダウンロードさせるＷＷＷサーバも、本発明に含まれるものである。
【符号の説明】
【００８８】
１００  多眼カメラ
１０１〜１０４  撮像部
２１２  画像処理部
４０１  画像取得部
４１０  距離マップ生成部
４２０  距離マップ合成部
【図１】
2015073185.tif 000009
【図２】
2015073185.tif 000010
【図３】
2015073185.tif 000011
【図４】
2015073185.tif 000012
【図５】
2015073185.tif 000013
【図６】
2015073185.tif 000014
【図７】
2015073185.tif 000015
【図９】
2015073185.tif 000016
【図８】
2015073185.tif 000017