(57)【要約】【課題】奥行距離の情報を用いて画像を合成する場合に、違和感の少ない合成結果を得られるようにすることを課題とする。【解決手段】複数の画像からオブジェクトを抽出する抽出手段（１０３）と、画像に含まれる奥行距離の情報を基に、複数の画像から抽出されたオブジェクトごとに奥行距離を代表する代表距離値を決定する決定手段（１０７）と、抽出されたオブジェクトごとの代表距離値に基づいてそれらオブジェクトを合成して合成画像を生成する合成手段（１０２）とを有する。【選択図】図１
2019121216.tif 000002
【特許請求の範囲】
【請求項１】
複数の画像からオブジェクトを抽出する抽出手段と、
前記画像に含まれる奥行距離の情報を基に、前記複数の画像から抽出されたオブジェクトごとに奥行距離を代表する代表距離値を決定する決定手段と、
前記抽出されたオブジェクトごとの前記代表距離値に基づいて、前記オブジェクトを合成して合成画像を生成する合成手段と
を有することを特徴とする画像処理装置。
【請求項２】
前記決定手段は、前記オブジェクトが合成される際にオブジェクト同士が重なる場合、前記重なるオブジェクトについてのみ前記代表距離値を決定することを特徴とする請求項１に記載の画像処理装置。
【請求項３】
前記決定手段は、前記オブジェクト同士が重ならないオブジェクトについては代表距離値として初期値を決定することを特徴とする請求項２に記載の画像処理装置。
【請求項４】
前記決定手段は、前記抽出されたオブジェクトのなかに特定のオブジェクトを含むオブジェクトがあり、前記特定のオブジェクトを含むオブジェクトと前記特定のオブジェクトを含まないオブジェクトとの前記代表距離値の差が一定範囲内である場合には、前記特定のオブジェクトを含むオブジェクトが、前記特定のオブジェクトを含まないオブジェクトよりも前記合成の際に手前になるように前記代表距離値を変更することを特徴とする請求項１から３のいずれか１項に記載の画像処理装置。
【請求項５】
前記決定手段は、前記抽出されオブジェクトごとに、当該オブジェクトに含まれる全画素の奥行距離を表す値の平均を前記代表距離値に決定することを特徴とする請求項１から４のいずれか１項に記載の画像処理装置。
【請求項６】
前記決定手段は、前記抽出されたオブジェクトごとに、当該オブジェクトに含まれる全画素のなかで最大の奥行距離を表す値を前記代表距離値に決定することを特徴とする請求項１から４のいずれか１項に記載の画像処理装置。
【請求項７】
前記抽出手段は、前記抽出したオブジェクトのなかの特定の部位に含まれる全画素の奥行距離の情報を基に前記代表距離値を決定することを特徴とする請求項１から４のいずれか１項に記載の画像処理装置。
【請求項８】
前記抽出手段は、前記特定の部位に含まれる全画素の奥行距離を表す値の平均を前記代表距離値に決定することを特徴とする請求項７に記載の画像処理装置。
【請求項９】
前記決定手段は、前記抽出されたオブジェクトの奥行距離を表す値を変更する変更手段を有することを特徴とする請求項１から８のいずれか１項に記載の画像処理装置。
【請求項１０】
前記変更手段は、ユーザから指示されたオブジェクトの前記奥行距離の値を変更することを特徴とする請求項９に記載の画像処理装置。
【請求項１１】
前記変更手段は、前記オブジェクトの奥行距離の値に対して一律に距離値を加算して前記奥行距離を変更することを特徴とする請求項９または１０に記載の画像処理装置。
【請求項１２】
画像処理装置が実行する画像処理方法であって、
複数の画像からオブジェクトを抽出する抽出工程と、
前記画像に含まれる奥行距離の情報を基に、前記複数の画像から抽出されたオブジェクトごとに奥行距離を代表する代表距離値を決定する決定工程と、
前記抽出されたオブジェクトごとの前記代表距離値に基づいて、前記オブジェクトを合成して合成画像を生成する合成工程と
を有することを特徴とする画像処理方法。
【請求項１３】
コンピュータを、請求項１から１１のいずれか１項に記載の画像処理装置の各手段として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像を合成等する画像処理技術に関する。
【背景技術】
【０００２】
３Ｄ対応のデジタルカメラなどにおいて、被写体とメニュー画面の奥行き関係を調整し、それぞれを合成する画像合成技術がある。例えば特許文献１には、撮影被写体画像の奥行きと画面に表示するメニュー画面との位置関係を調整し、画面表示時にメニュー画面が被写体の手前に来るように位置調整を行う技術が開示されている。
【０００３】
また近年のカメラには、画像の撮影だけではなく、奥行き方向の距離（以下、奥行距離とする。）を計測し、その奥行距離情報を撮影画像と共に記録可能なものもある。このような撮影画像と共に奥行距離情報も合わせて記録できるカメラを用いて、複数枚の画像を撮影し、例えば１枚の背景に対して被写体となる人物だけを複数人分合成するようなことも可能となる。例えば人物だけを複数人分合成する場合には、奥行距離情報を利用することにより、撮影画像から人物のオブジェクトと背景とを切り分け、その切り分けた人物のオブジェクトの前後関係を奥行距離情報に基づいて決定した上で合成するようなことが行われる。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１０−８６２２８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
ところで、複数枚の撮影画像に写った被写体のオブジェクトを切り出して合成する際、それぞれの撮影画像に写っている被写体の奥行距離の値が非常に近いような場合、合成結果が違和感のある画像になってしまうことがある。例えば奥行距離の近い被写体のオブジェクト同士が混ざり合って合成されてしまうことで、違和感のある合成画像が生成されることがある。
【０００６】
そこで、本発明は、奥行距離の情報を用いて画像を合成する場合に、違和感の少ない合成結果を得られるようにすることを目的とする。
【課題を解決するための手段】
【０００７】
本発明は、複数の画像からオブジェクトを抽出する抽出手段と、前記画像に含まれる奥行距離の情報を基に、前記複数の画像から抽出されたオブジェクトごとに奥行距離を代表する代表距離値を決定する決定手段と、前記抽出されたオブジェクトごとの前記代表距離値に基づいて、前記オブジェクトを合成して合成画像を生成する合成手段とを有することを特徴とする。
【発明の効果】
【０００８】
本発明によれば、奥行距離の情報を用いて画像を合成する場合に、複数の被写体を合成しても、違和感の少ない合成結果が得られるようになる。
【図面の簡単な説明】
【０００９】
【図１】実施形態の画像合成装置の概略構成を示す図である。
【図２】奥行距離情報を持つ画像と３Ｄレンダリングの関係説明に用いる図である。
【図３】合成処理のフローチャートである。
【図４】重ならないオブジェクトが存在する場合の合成例を示す図である。
【図５】重なり判定がある場合の合成処理のフローチャートである。
【図６】顔認識を行う場合の合成成処理のフローチャートである。
【図７】背景と合成対象を選択する際の画面遷移の説明に用いる図である。
【図８】顔の有無と合成順番の説明に用いる図である。
【図９】顔の一部の部位を比較する例の説明に用いる図である。
【図１０】オブジェクトの奥行距離を一括して変更する例の説明に用いる図である。
【発明を実施するための形態】
【００１０】
以下、図面を参照して本発明の好ましい実施形態について説明する。
＜第１実施形態＞
図１は、本実施形態の画像処理装置の一例である画像合成装置の概略的な構成を示す図である。
制御部１０５は、この画像合成装置の全体制御を行う。また、画像合成装置の以下に述べる各構成要素は、メモリ１０６を使用して各処理を行う。
画像データ読み込み部１００は、図示していない外部メディア等から画像データを取得する。本実施形態で説明する画像データは、画像と当該画像の画素ごとの奥行方向の距離（以下、奥行距離とする）の情報とを有するデータである。奥行距離とその情報（奥行距離情報とする）の詳細については後述する。
【００１１】
デコード部１０１は、画像データ読み込み部１００が取得した画像データをデコードし、画像として認識できる状態にする。さらにデコード部１０１は、画像に含まれている奥行距離情報を取得する機能を有し、デコードした画像の各画素と奥行距離との関係付けを行う。
【００１２】
オブジェクト抽出部１０３は、前述のように画素ごとに奥行距離情報が付与されている画像から、被写体等のオブジェクトを抽出する。このオブジェクトの抽出は、画像から、奥行距離が所定の距離より短い（近い）各画素よりなるオブジェクトを抽出する処理となされている。画像からオブジェクトが分離された残りの画像領域は背景となる。このように、オブジェクト抽出部１０３は、所定の距離を閾値として用い、奥行距離情報が付与された入力画像の中から、奥行距離が閾値より短い（近い）オブジェクトを、それ以外の背景から分離する。なお、オブジェクトの抽出は、奥行距離情報を用いない、他の既存のオブジェクト抽出技術を用いて行われても良い。
【００１３】
距離算出部１０７は、画素ごとの奥行距離情報から後述する奥行マップを生成し、また、オブジェクト抽出部１０３により抽出されたオブジェクトの各画素の奥行距離情報を基に、後述する代表距離値を算出する。奥行マップの生成と代表距離値の算出方法の詳細については後述する。
【００１４】
合成部１０２は、オブジェクト抽出部１０３によって複数の入力画像からそれぞれ前述のように抽出された複数のオブジェクトと、背景として用いられる画像（以下、背景画像とする）とを合成する。詳細については後述するが、合成部１０２では、距離算出部１０７により算出された代表距離値を用いて、複数のオブジェクトと背景画像との合成を行う。
表示部１０４は、画像を表示する。表示部１０４には、合成部１０２での合成処理により生成された合成画像も表示される。なお、表示部１０４は、ユーザ等からの指示を受付可能なタッチパネルの機能を有していても良い。
【００１５】
なお、図１の制御部１０５、画像データ読み込み部１００、デコード部１０１、距離算出部１０７、合成部１０２、オブジェクト抽出部１０３等は、ハードウェア構成により実現されても良いし、ソフトウェア構成により実現されても良い。ソフトウェア構成により各部の処理が実行される場合、それら本実施形態にかかるプログラム（ソフトウェア）をＣＰＵ等が実行することにより実現される。本実施形態にかかるプログラムは、メモリ１０６（ＲＯＭや着脱可能な半導体メモリを含む）から読み出されても、或いは不図示のインターネット等のネットワークからダウンロードされても良い。
【００１６】
次に、図２（ａ）〜図２（ｃ）を用いて、奥行距離情報を有する画像データついて説明する。
図２（ａ）に示す画像２００は、画素ごとに奥行距離情報を有した画像である。なお、図２（ａ）に例示した画像２００は、中央部に人物被写体の顔に相当するオブジェクト２０４が写っている画像であるとする。
【００１７】
画像２００には、当該画像を構成する画素ごとに奥行距離情報が保存されており、以下、各画素に保存されている奥行距離情報について説明する。
図２（ａ）の画素２０１は、画像２００に含まれる各画素のうちの一つである。この画素２０１を構成するデータ２０２は、奥行距離情報Ｚと色情報ＲＧＢとを組み合わせた構成（ＺＲＧＢ構成）となされている。奥行距離情報Ｚは、その値が大きいほど、この画像が撮影された際にカメラに近い状態（手前に飛び出ている状態）であったことを示している。色情報ＲＧＢは、赤（Ｒ）、緑（Ｇ）、青（Ｂ）の三原色の各色の情報である。奥行距離情報Ｚと色情報ＲＧＢはそれぞれが８ビット情報となされており、１画素あたりでは合計３２ビットのデータとなされている。なお、ここでは一例として、１画素の奥行距離情報Ｚの８ビットをＺＲＧＢ構成の３２ビットの中に入れ込む例を挙げたが、この例には限定されず、奥行距離がわかる形式であればどのような形式であっても良い。
【００１８】
図２（ａ）に示す平面の画像２１０は色情報ＲＧＢのみから作られる。また、画素ごとの奥行距離情報Ｚからは奥行マップ２１１が生成される。奥行マップ２１１は、画素ごとの奥行距離情報が、各画素の配列に対応して二次元配列されたマップである。なお、図２（ａ）の例では、図示を簡略にするため、画素の数を減らした粗いメッシュで奥行マップ２１１が表されている。図２（ａ）に例示した奥行マップ２１１において、斜線により表されたメッシュ部分２０５は、画像２００の中で顔のオブジェクト２０４に相当する領域である。図２（ａ）の奥行マップ２１１では、オブジェクト２０４に相当するメッシュ部分２０５の奥行距離情報Ｚの数値が他の部分の数値より大きくなっているが、これは撮影時に顔（オブジェクト２０４）がカメラに近い位置に存在していたことを示している。
【００１９】
そして、これら平面の画像２１０と奥行マップ２１１を基に、仮想３Ｄ空間内に画像を配置することが可能となる。図２（ｂ）は、平面の画像２１０と奥行マップ２１１に基づいて、仮想３Ｄ空間内に画像２００を配置した場合の配置結果を３Ｄワイヤーフレーム２０７の概略イメージで示した図である。図２（ｂ）において、ｘ方向は画像２００の左右方向（画像の右側からｘ値が増える方向）、ｙ方向は画像２００の上下方向（画像の上側でｙ値が増える方向）を示し、ｚ方向は奥行方向を表している。図２（ｂ）の３Ｄワイヤーフレーム２０７においては、奥行方向の値（奥行距離）が大きいほど、ｚ方向の高さが高くなり、画像撮影時にカメラから近いことを表している。図２（ｂ）に示した配置結果の例の場合、ｚ方向の高さが高くなっている領域２０６は、図２（ａ）の顔のオブジェクト２０４に相当する領域である。
【００２０】
次に、入力画像からオブジェクトと背景を分離（オブジェクトを抽出）する分離方法について説明する。
これまで説明してきたように、入力画像は画素ごとに奥行距離情報を持つため、奥行距離情報Ｚに対する閾値として所定の距離を設定し、奥行距離が閾値以内かどうかによりオブジェクトを背景から分離することができる。
【００２１】
次に、奥行距離情報を持つ画像から抽出されたオブジェクトごとの代表距離値を算出する方法について述べる。
先に説明したように分離された顔のオブジェクト２０４は、図２（ｂ）の領域２０６に示すようにｚ方向（奥行距離）が背景よりも高く（カメラに近く）なっており、３Ｄワイヤーフレームでは半球形のように表される。
ここで、代表距離値を算出する方法としては複数の方法が考えられ、本実施形態では、以下の第１の算出方法と第２の算出方法の二つの例を挙げる。
第１の算出方法は、オブジェクトを構成する各画素の各奥行距離の値を加算し、その加算結果をオブジェクト内の全画素数で除算することにより、１画素あたりの平均距離値を算出して代表距離値とする方法である。
第２の算出方法は、オブジェクト内の全画素数の中で図２（ｂ）に示す最大の奥行距離の値２２１を求め、その値を代表距離値とする方法である。
【００２２】
本実施形態では、これら第１、第２の算出方法の何れかを用いて代表距離値を計算し、先に分離されたオブジェクトを構成する全ての画素の奥行距離に代表距離値を適用することで、図２（ｃ）に示すような円柱型２３０で表される奥行距離情報を設定する。なお、図２（ｃ）は図２（ｂ）と同様に３Ｄワイヤーフレームの概略イメージを表している。
【００２３】
次に、複数枚の画像を合成する際に、本実施形態の画像合成装置で行われる各処理について、図３と図７を用いて説明する。
図３は本実施形態の画像合成装置において行われる処理の流れを示すフローチャートである。なお、以下のフローチャートの説明では、処理ステップＳ３００〜処理ステップＳ３０６をＳ３００〜Ｓ３０６と略記する。これらのことは後述する他のフローチャートにおいても同様とする。図３のフローチャートの処理は、一例として、本実施形態の画像合成装置の不図示のタッチパネル等の操作部から使用者が開始指示を入力したスタートするとする。なお、外部の装置やネットワーク等を介して開始指示が入力された場合、或いは予め設定された時間等のタイミングで図３のフローチャートの処理が開始されても良い。
【００２４】
制御部１０５は、Ｓ３００において、図３のフローチャートの処理を開始すると、先ずメモリ１０６のメモリ初期化を行った後、Ｓ３０１に処理を進める。
Ｓ３０１に進むと、制御部１０５は、画像データ読み込み部１００に対して画像データを取得することを指示する。これにより、画像データ読み込み部１００は、不図示の外部メディア等から画像データを読み込むことで取得する。そして、制御部１０５は、画像データ読み込み部１００が取得した画像データをメモリ１０６に蓄積させる。
さらに、制御部１０５は、表示部１０４に対し、ユーザが背景画像の選択を行うためのＵＩ（ユーザインターフェイス）画面を表示させる。このときの制御部１０５は、メモリ１０６に蓄積された画像データを読み出してデコード部１０１によりデコードさせ、撮影画像をサムネイル画像に変換した上で、表示部１０４の画面上に一覧形式により表示させる。
【００２５】
図７（ａ）は、背景画像の選択の際に表示部１０４の画面に表示されるＵＩ画面７１０の一例を示している。このＵＩ画面７１０には、撮像画像のサムネイル画像の一覧と、背景画像の選択をユーザに促すメッセージとが表示される。図７（ａ）には、サムネイル画像として、人物（Ａ）が写った画像Ａ、人物（Ｂ）が写った画像Ｂ、人物（Ｃ）が写った画像Ｃと、人物が写っていない画像Ｄの４枚が一覧表示されている例を示している。これら各画像の中の所望の画像に対し、ユーザが選択指示を入力すると、その選択指示された画像には、チェックマーク７１３が表示される。チェックマーク７１３は、その画像が選択された状態であることをユーザに認識させるアイコンである。図７（ａ）では、人物が写っていない画像Ｄがユーザにより選択されたことでチェックマーク７１３が表示された例が示されている。また、図７（ａ）のＵＩ画面７１０には、完了ボタン７１２も表示される。制御部１０５は、各画像の中で何れかの画像がユーザにより選択された上で、完了ボタン７１２への決定指示がなされた場合、その画像を合成の際に使用する背景画像として確定する。図７（ａ）の例では、画像Ｄにチェックマーク７１３が表示された状態で、完了ボタン７１２への決定指示がなされたことにより、人物が写っていない画像Ｄが背景画像として確定されたとする。
【００２６】
そして、背景画像が確定すると、制御部１０５はＳ３０２に処理を進める。
Ｓ３０２に進むと、制御部１０５は、表示部１０４に対し、ユーザが合成対象の画像（以下、合成対象画像とする）の選択を行うためのＵＩ画面を表示させる。
【００２７】
図７（ｂ）は、合成対象画像の選択の際に表示部１０４の画面に表示されるＵＩ画面７２０の一例を示している。ＵＩ画面７２０には、ＵＩ画面７１０と同様に撮像画像のサムネイル画像の一覧として、画像Ａ、画像Ｂ、画像Ｃ、画像Ｄの４枚が表示されている例を示している。また、このときのＵＩ画面７２０には、合成対象画像の選択をユーザに促すメッセージが表示される。そして、ＵＩ画面７２０において、所望の画像に対してユーザが選択指示を入力すると、その選択指示された画像には前述同様のチェックマーク７１３が表示される。図７（ｂ）には、人物（Ａ）が写った画像Ａと、人物（Ｂ）が写った画像Ｂと、人物（Ｃ）が写った画像Ｃとが、ユーザにより選択されたことでチェックマーク７１３が表示された例が示されている。また、図７（ｂ）のＵＩ画面７２０は、完了ボタン７２２も表示される。制御部１０５は、各画像の中で所望の画像がユーザにより選択された上で、完了ボタン７２２への決定指示がなされた場合、その画像を合成対象画像として確定する。図７（ｂ）の例では、画像Ａと画像Ｂと画像Ｃにチェックマーク７１３が表示された状態で、完了ボタン７２２への決定指示がなされたことにより、それら画像Ａと画像Ｂと画像Ｃの三枚が合成対象画像として確定されたとする。そして、合成対象画像が確定すると、制御部１０５はＳ３０３に処理を進める。
【００２８】
Ｓ３０３に進むと、制御部１０５は、Ｓ３０２で確定された全ての合成対象画像に対して、次のＳ３０４の代表距離値計算処理が終わったか否かを判定する。そして、制御部１０５は、代表距離値計算処理が行われていない未処理の合成対象画像がある場合には、その未処理の合成対象画像に対するＳ３０４の代表距離値計算処理を行わせる。
【００２９】
Ｓ３０４において、制御部１０５は、オブジェクト抽出部１０３及び距離算出部１０７を制御して、Ｓ３０２で確定された合成対象画像に対する代表距離値計算処理を行わせる。Ｓ３０４の処理として、先ずオブジェクト抽出部１０３は、合成対象画像１枚について、その画像から被写体（例えば人物のオブジェクト）を抽出して背景から分離する。次に距離算出部１０７は、オブジェクト抽出部１０３により抽出されたオブジェクトを構成する各画素の奥行距離情報を基に、前述したように代表距離値を計算する。そして、制御部１０５は、距離算出部１０７にて計算された代表距離値を、抽出されたオブジェクトに関連付けてメモリ１０６に保存させる。その後、制御部１０５は、Ｓ３０３に処理を戻し、全ての合成対象画像に対する代表距離値計算処理が終わったか否かを再度判定する。このように、制御部１０５は、全ての合成対象画像の代表距離値計算処理が終わるまで、Ｓ３０３の判定処理とＳ３０４の代表距離値計算処理を繰り返す。そして、制御部１０５は、Ｓ３０３において、Ｓ３０２で確定された全ての合成対象画像に対する代表距離値計算処理が終わったと判定した場合、Ｓ３０５に処理を進める。
【００３０】
Ｓ３０５に進むと、制御部１０５は、メモリ１０６内に各オブジェクト（人物オブジェクト）と関連付けられて格納されている代表距離値を基に、各オブジェクトの合成順番を決定する処理（代表距離値で合成順番をソートする処理）を行う。合成順番は、例えば代表距離値が小さい順（つまり撮影時にカメラから遠い順）となされる。その後、制御部１０５は、Ｓ３０６に処理を進める。
【００３１】
Ｓ３０６に進むと、制御部１０５は、合成部１０２に対して、Ｓ３０５で決定された合成順番、つまり代表距離値が小さい順（カメラから遠い順）で、メモリ１０６からオブジェクトを順に読み出し、その読み出した順番で背景画像（Ｄ）に合成させる。そして、制御部１０５は、合成部１０２による合成処理がなされて得られた合成画像データをメモリ１０６に保存させる。
【００３２】
ここで、前述した人物が写った３枚の画像Ａ〜画像Ｃのうち、画像Ａのオブジェクトの代表距離値が「１００」、画像Ｂのオブジェクトの代表距離値が「１０」、画像Ｃのオブジェクトの代表距離値が「５０」であり、値が大きいほどカメラから近いとする。この場合、合成順番は、画像Ｂのオブジェクト、画像Ｃのオブジェクト、画像Ａのオブジェクトの順番になる。したがってこの場合、合成部１０２では、背景画像（Ｄ）に画像Ｂのオブジェクト、その後、画像Ｃのオブジェクト、最後に画像Ａのオブジェクトの順番で、各オブジェクトの画像が重ねられるような合成処理が行われる。これにより、代表距離値が大きい（カメラに近い）被写体が最後に画像合成されることになる。
【００３３】
本実施形態においては、オブジェクトごとに代表距離値を計算しており、各オブジェクト内で奥行距離が均一化されるため、他の画像のオブジェクトと合成する際に、オブジェクト同士が混ざり合って合成されてしまうことがない。したがって、本実施形態によれば、違和感の少ない合成画像を得ることが可能となる。
【００３４】
＜第２実施形態＞
次に、第２実施形態として、オブジェクト同士の重なり判定を行い、合成時に重ならないオブジェクトについては代表距離値計算処理をスキップする例について説明する。なお、第２実施形態の画像合成装置の構成は図１と同様であるため図示と説明は省略する。
合成対象画像に含まれるオブジェクトが重ならない場合の例について、図４を用いながら説明する。
【００３５】
図４の例において、画像４００，４０１，４０２はそれぞれ合成対象画像であるとする。またオブジェクト４０４，４０５，４０６は、それぞれ対応した画像４００，４０１，４０２において背景から分離されたオブジェクトであるとする。また、画像４０１のオブジェクト４０５と画像４０２のオブジェクト４０６は合成時に重なるオブジェクトであり、一方、画像４００のオブジェクト４０４は他の画像のオブジェクトとは重ならないオブジェクトであるとする。
【００３６】
そして、画像４０３は、各オブジェクト４０４，４０５，４０６が背景画像に合成された後の合成画像を表している。すなわち図４の例の場合、重ならないオブジェクト４０４はオブジェクト４０７として画像４０３に配置され、一方、オブジェクト４０５はオブジェクト４０８、オブジェクト４０６はオブジェクト４０９として画像４０３に配置される。
【００３７】
第２実施形態の場合、制御部１０５は、オブジェクト抽出部１０３が複数の合成対象画像からそれぞれ抽出した複数のオブジェクト同士が重なるか否かを判定する重なり判定処理を行う。すなわち、代表距離値の計算が行われる前に、制御部１０５は、オブジェクト抽出部１０３にて抽出されたオブジェクト４０４，４０５，４０６のそれぞれ位置関係を認識し、それらオブジェクト同士が重なるか否かを判定する。そして、制御部１０５は、オブジェクト４０４のように、他のオブジェクトと重ならないオブジェクトを検出し、そのオブジェクト４０４については代表距離値計算処理をスキップさせる。
【００３８】
図５は、第２実施形態における処理のフローチャートである。
図５のフローチャートにおいて、図３のフローチャートと同じ処理ステップには同一の参照符号を付してそれらの説明を省略し、ここでは異なる処理ステップ（Ｓ５０１、Ｓ５０２、Ｓ５０３）についてのみ説明する。
【００３９】
図５のフローチャートの場合、Ｓ３０２の後、制御部１０５は、Ｓ５０３に処理を進める。
Ｓ５０３に進むと、制御部１０５は、Ｓ３０２で確定された全ての合成対象画像からオブジェクト抽出部１０３が抽出した全てのオブジェクトについて、それぞれ合成時に重なるか否かを判定する。例えば、図４の場合、制御部１０５は、オブジェクト４０５，４０６は重なると判定し、オブジェクト４０４は他のどのオブジェクトとも重ならないと判定する。このＳ５０３の後、制御部１０５は、Ｓ３０３に進み、全ての合成対象画像の処理が終わったと判定した場合にはＳ３０５に処理を進め、一方、未処理の合成対象画像がある場合にはＳ５０１に処理を進める。
【００４０】
Ｓ５０１に進むと、制御部１０５は、Ｓ５０３で行った重なり判定の結果に基づき、合成時に重なると判定されたオブジェクトについては、Ｓ３０４において代表距離値の算出を行わせた後、Ｓ３０３に処理を戻す。一方、制御部１０５は、Ｓ５０１において合成時に重ならないと判定されたオブジェクトについてはＳ５０２の処理を行う。
【００４１】
Ｓ５０２に進むと、制御部１０５は、そのオブジェクトは合成時に他のオブジェクトとは重ならず、代表距離値に基づく合成処理が不要となるため、距離算出部１０７に対し予め決められた初期値を設定させる。そして、制御部１０５は、その初期値の代表距離値をオブジェクトに関連付けてメモリ１０６に保存させる。Ｓ５０２の後、制御部１０５は、Ｓ３０５に処理を進める。Ｓ３０５以降の処理は前述同様であるため説明は省略する。
【００４２】
第２実施形態によれば、合成時にオブジェクト同士が重ならないオブジェクトについては代表距離値計算処理をスキップすることにより、代表距離値計算による処理負担を軽減可能となる。また、合成時に重なるオブジェクト同士では、第１実施形態の場合と同様に、代表距離値に基づいた合成処理が行われるため、オブジェクト同士が混ざり合って合成されてしまうことがなく、違和感の少ない合成画像を得ることができる。
【００４３】
＜第３実施形態＞
次に、第３実施形態では、合成時のオブジェクトが特定のオブジェクト、例えば人物の顔のオブジェクトである場合の画像合成方法について説明する。
ここで、第１実施形態では、抽出されて合成されるオブジェクトとして人物オブジェクトを例に挙げたが、第３実施形態では特に人物の顔のオブジェクトが合成対象画像に含まれる場合について説明する。第３実施形態の場合、オブジェクト抽出部１０３は、人物の顔のオブジェクトが合成対象画像に含まれるか否かを判定する顔判定機能をも有している。第３実施形態の場合、オブジェクト抽出部１０３は、前述したようにオブジェクトの奥行距離を測ると同時に、顔の有無をも判定する。そして、制御部１０５は、オブジェクト抽出部１０３が判定した顔の有無情報と代表距離値とをオブジェクトに関連付けてメモリ１０６に保存しておき、合成処理の際に使用する。
【００４４】
図６は、第３実施形態における処理のフローチャートである。
図６のフローチャートにおいて、図３のフローチャートと同じ処理ステップには同一の参照符号を付して、それらの説明は省略し、ここでは異なる処理ステップ（Ｓ６０１、Ｓ６０２、Ｓ６０３、Ｓ６０４）についてのみ説明する。
【００４５】
図６のフローチャートの場合、Ｓ３０２の後、制御部１０５は、Ｓ６０１に処理を進める。
Ｓ６０１に進むと、制御部１０５は、Ｓ３０２で確定された全ての合成対象画像の代表距離値計算処理と顔認識処理が終わったか否かを判定する。そして、制御部１０５は、代表距離値計算処理と顔認識処理が行われていない未処理の合成対象画像がある場合には、その未処理の合成対象画像に対するＳ６０２の代表距離値計算処理と顔認識処理を行わせる。
【００４６】
Ｓ６０２に進むと、制御部１０５は、オブジェクト抽出部１０３及び距離算出部１０７を制御して、Ｓ３０２で確定された合成対象画像に対する代表距離値計算処理と顔認識処理を行わせる。Ｓ３０４の処理として、先ずオブジェクト抽出部１０３は、合成対象画像１枚について、その画像から人物のオブジェクトを抽出する。さらに、オブジェクト抽出部１０３は、その人物の顔のオブジェクトがあるか否か判定して、顔のオブジェクトがあると判定した場合には、メモリ１０６に画像と関連付けて顔の有無情報をも保存しておく。また、距離算出部１０７は、前述同様に、オブジェクト抽出部１０３により抽出されたオブジェクトを構成する各画素の奥行距離情報を基に代表距離値を計算する。そして、制御部１０５は、距離算出部１０７にて計算された代表距離値を、抽出されたオブジェクトに関連付けてメモリ１０６に保存させる。その後、制御部１０５は、Ｓ６０１に処理を戻し、全ての合成対象画像に対する代表距離値計算処理と顔認識処理が終わったか否かを再度判定する。このように、制御部１０５は、全ての合成対象画像の代表距離値計算処理と顔認識処理が終わるまで、Ｓ６０１の判定処理とＳ６０２の代表距離値計算処理及び顔認識処理を繰り返す。そして、制御部１０５は、Ｓ６０１において、全ての成対象画像に対する代表距離値計算処理と顔認識処理が終わったと判定した場合、Ｓ６０３に処理を進める。
【００４７】
Ｓ６０３に進むと、制御部１０５は、メモリ１０６内に各オブジェクトと関連付けられて格納されている代表距離値と顔の有無情報とを基に、各オブジェクトの合成順番をソートする処理を行う。この場合、制御部１０５は、複数の合成対象画像から抽出された複数のオブジェクトの代表距離値をメモリ１０６から取得し、それら代表距離値の差分が一定範囲内となっている近い値であるかどうかを判定する。さらに、制御部１０５は、オブジェクトの代表距離値が近い場合において、何れかのオブジェクトに特定のオブジェクトが含まれているか否か判定する。この例の場合、制御部１０５は、顔の有無情報を用い、代表距離値が近いオブジェクトの中に顔オブジェクトを含むオブジェクトが存在するか否かを判定する。そして、制御部１０５は、代表距離値が近いオブジェクトの中に顔オブジェクトを含むオブジェクトが存在する場合、そのオブジェクトが合成時に手前側に合成（後から合成）されるように合成順番を決定する。この場合、制御部１０５は、代表距離値の差分が一定範囲内となっている各オブジェクトのうち、顔オブジェクトを含むオブジェクトが合成時に手前側に合成される合成順番になるように、当該顔オブジェクトを含むオブジェクトの代表距離値を変更する。このＳ６０３の後、制御部１０５は、Ｓ６０４に処理を進める。
【００４８】
なお、制御部１０５は、顔オブジェクトを含んでいない方のオブジェクトが合成時において後ろ側に合成される合成順番になるように、当該顔オブジェクトを含んでいない方のオブジェクトの代表距離値を変更しても良い。
また、例えば共に顔を含むオブジェクト同士の代表距離値の差分が一定範囲内である場合には、それら顔を含む各オブジェクトでは代表距離値に応じた合成順番に決定される。このように共に顔を含むオブジェクト同士の代表距離値が近い場合には、さらに後述する第４実施形態のように顔の部位等の代表距離値を用いて合成を行うようにしても良い。
【００４９】
Ｓ６０４に進むと、制御部１０５は、合成部１０２に対して、Ｓ６０３で決定された代表距離値による合成順番、つまり代表距離値が小さいオブジェクトの順（カメラから遠い順）で背景画像に合成させる。すなわちこの場合、画像合成では、代表距離値の差分が一定範囲内となっていた各オブジェクトのうち、顔を含まない方のオブジェクトから背景画像に合成され、その後、顔を含むオブジェクトが合成される。そして、制御部１０５は、合成部１０２による合成処理がなされて得られた合成画像データをメモリ１０６に保存させる。
【００５０】
第３実施形態における画像合成について図８を用いて具体的に説明する。
図８は画像Ｅ，画像Ｆ，画像Ｇの３枚が合成対象画像となっている例を挙げる。画像Ｅのオブジェクトは代表距離値が１．０ｍで、かつ顔認識の結果、顔のオブジェクトは存在しないと判定されたものであるとする。画像Ｆと画像Ｇはそれぞれオブジェクトの代表距離値が同じ０．８ｍであるが、画像Ｆには顔のオブジェクトが存在すると判定されたのに対し、画像Ｇには顔のオブジェクトが存在しないと判定されたものであるとする。
【００５１】
この場合、合成順番は以下のように決定される。
代表距離値がカメラから遠い画像Ｅのオブジェクトは、背景画像に最初に合成される合成順番として決定される。画像Ｆと画像Ｇのオブジェクトは代表距離値が同じであるため、顔の有無が判断される。画像Ｆには顔のオブジェクトが含まれ、画像Ｇは顔のオブジェクトが含まれないため、画像Ｇのオブジェクトの合成順番が先に決定され、画像Ｆのオブジェクトの合成順番は画像Ｇのオブジェクトの後に決定される。このようにすることで、画像Ｅのオブジェクトが最も奥側に配置され、次に、画像Ｇのオブジェクトが配置され、画像Ｆの顔のオブジェクトが最前面に配置された合成画像が得られることになる。
【００５２】
第３実施形態では、代表距離値を使用しながら合成を行うが、代表距離値が近い値になっているオブジェクト同士については顔のオブジェクトを含むか否かを判定し、顔のオブジェクトを含むオブジェクトについては手前側に合成される合成順番を決定する。これにより、第３実施形態においても違和感のない合成画像が得られる。
【００５３】
＜第４実施形態＞
第４実施形態では、第１実施形態で述べた代表距離値を算出する際の異なる算出方法について説明する。
第４実施形態における代表距離値の算出方法では、オブジェクトの重なりを比較する対象となる二つ以上のオブジェクトについてそれぞれ同じ部位の奥行距離情報を算出し、それを代表距離値とする。
【００５４】
第４実施形態の代表距離値算出方法について、図９（ａ）と図９（ｂ）を用いながら説明する。図９（ａ）において、画像９００は、三人の人物が被写体として撮影された画像である。画像９００は、人物（Ａ）、人物（Ｂ）、人物（Ｃ）の三人の顔画像９０１，９０２，９０３が写っている例に挙げている。顔画像９０１は人物（Ａ）の顔の画像であり、帽子９０４を着用している。顔画像９０２は人物（Ｂ）の顔の画像であり、顔を隠すものは存在していないとする。顔画像９０３は人物（Ｃ）の顔の画像であり、顔の前に手９０５があるとする。
【００５５】
図９（ｂ）は図９（ａ）の例における距離マップ９１０を前述同様に示した図である。図９（ｂ）に示すように、距離マップ９１０は、図９（ａ）の各被写体（人物）と帽子や手の奥行距離を含んだ距離マップとなっている。この図９（ｂ）の距離マップ９１０において、斜線により表されたメッシュ部分９１１は顔画像９０１及び帽子９０４に対応しており、メッシュ部分９１２は顔画像９０２に、メッシュ部分９１３は顔画像９０３及び手９０５に対応している。メッシュ部分９１２では、顔画像９０２の中央に相当する部分９１７の奥行距離の値が大きくなっている。一方、メッシュ部分９１１の場合、顔画像９０１の中央に相当する部分９１６の奥行距離の値よりも、帽子９０４に対応した部分９１４の奥行距離の値の方が大きくなっている。また、メッシュ部分９１３の場合、顔画像９０３の中央に相当する部分９１９よりも、手９０５に対応した部分９１５の奥行距離の値の方が大きくなっている。
【００５６】
距離算出部１０７は、人物（Ａ）の顔画像９０１及び帽子９０４、人物（Ｂ）の顔画像９０２、人物（Ｃ）の顔画像９０３及び手９０５を含む各オブジェクトの代表距離値を計算する。そして、距離算出部１０７は、それら各オブジェクトにそれぞれ対応したメッシュ部分９１１，９１２，９１３における各画素の奥行距離を合計して平均し、代表距離値を算出する。ただし、図９（ａ）の画像９００の場合、代表距離値の計算結果は、帽子９０４や手９０５等の奥行距離の影響を受けることになる。
【００５７】
そこで、第４実施形態では帽子９０４や手９０５などの要因を除くようにして、顔の位置のみを比較する。ここで、単純に顔だけの奥行距離を比較するために、制御部１０５は、オブジェクト抽出部１０３に対し、各顔画像９０１，９０２，９０３のそれぞれから、例えば鼻の部位（パーツ）だけを抽出するよう指示する。顔の鼻等の部位を認識する技術は既存の技術であるため、その説明は省略する。そして、距離算出部１０７では、オブジェクト抽出部１０３により抽出された鼻の位置に該当する各画素の奥行距離の値を加算平均して代表距離値として算出する。図９（ｂ）の例の場合、鼻の部分に相当する奥行距離の値は、前述した顔の中央に相当する部分９１６の距離値「９」、部分９１７の距離値「１０」、部分９１９の距離値「８」となる。
【００５８】
このように第４実施形態では、顔の一部の部位（パーツ）から代表距離値を計算することで、計算面積を減らすことに加え、帽子や手などの要素を省いて顔のオブジェクトの代表距離値を計算することができる。ここでは、顔のパーツとして鼻を挙げたが、これには限定されず、例えば目や口等のように特徴があり認識し易く、奥行距離の比較が容易な部位であれば良い。また、人体でなくても、自動車同士の比較では自動車のタイヤ位置のようにオブジェクト抽出部１０３が抽出可能なものであればどのようなものであっても良い。
【００５９】
＜第５実施形態＞
第５実施形態では、第１実施形態で説明したオブジェクトの奥行距離情報を編集して、他のオブジェクトと合成する方法について説明する。
この第５実施形態における合成方法について図１０を用いて説明する。
図１０において、画像１０００は人物（Ａ）、画像１０１０は人物（Ｂ）が写った合成対象画像であり、それぞれにオブジェクト１００１、１０１１が写っている。また、マップ１００２は、画像１０００の奥行距離情報Ｚのマップである。同様のマップ１０１２は、画像１０１０の奥行距離情報Ｚのマップである。マップ１００２には、オブジェクト１００１に対応したメッシュ部分１００３が含まれ、マップ１０１２にはオブジェクト１０１１に対応したメッシュ部分１０１３が含まれている。
【００６０】
この図１０の例において、奥行距離情報のマップ１００２と１０１２のうち、オブジェクト１００１のメッシュ部分１００３と、オブジェクト１０１１のメッシュ部分１０１３とを比較すると、オブジェクト１０１１の方が手前にあることがわかる。ここで、合成部１０２がこれらのオブジェクトを合成すると、合成画像１０２０が得られる。この合成画像１０２０は、人物（Ｂ）のオブジェクト１０１１に対応したオブジェクト１０２１の方が手前になるように合成された画像となる。
【００６１】
次に、ユーザが、人物（Ａ）のオブジェクト１００１を、人物（Ｂ）のオブジェクト１０１１の前方に配置して画像合成指示を行ったとする。この場合、ユーザの指示を受けて、制御部１０５は、オブジェクト１００１の奥行距離情報Ｚを一括で変更する。すなわち、制御部１０５は、オブジェクト１００１の奥行距離情報のマップ１００２のうち各奥行距離の値Ｚ（ａ，ｂ）が０でない部分、つまりオブジェクト１００１に対応したメッシュ部分１００３について距離値Ｘを一律に加算する。距離値Ｘは、例えばユーザにより指定された値でも良いし、予め決められた値でも良いし、ユーザにより指示されたオブジェクトとそれ以外のオブジェクトの奥行距離情報を基に制御部１０５が適切な値として決定した値でも良い。これにより、新しい奥行距離情報ＮｅｗＺ（ａ，ｂ）が算出される。
【００６２】
このときの制御部１０５は、新しい奥行距離情報ＮｅｗＺ（ａ，ｂ）を下記式のようにして算出する。
【００６３】
ＮｅｗＺ（ａ，ｂ）＝０                ／／Ｚ（ａ，ｂ）＝＝０
＝Ｚ（ａ，ｂ）＋Ｘ  ／／Ｚ（ａ，ｂ）！＝＝０
【００６４】
第５実施形態の例において、マップ１００４は、Ｘ＝５とした場合に、制御部１０５で奥行距離情報Ｚが０でない場所に５が加算された例を示しており、メッシュ部分１００５が加算後の奥行距離情報ＮｅｗＺの領域である。
【００６５】
このような処理が行われることで、合成部１０２では、画像１０２２に示すような合成画像が生成される。この画像１０２２では、人物（Ａ）のオブジェクトは画像としての見た目は変わらないものの、奥行方向では５の値に相当する距離分だけ手前の位置に再配置される。その結果としてメッシュ部分１００５の値は１４（９＋５）となり、メッシュ部分１０１３の値は１０となる。合成部１０２は、このマップ１００４のメッシュ部分１００３の奥行距離情報を基に、オブジェクト１００１とオブジェクト１０１１を背景画像に合成して、画像１０２２を生成する。これらの結果として画像１０２２は、人物（Ａ）のオブジェクトが人物（Ｂ）のオブジェクトの手前に配置された合成画像となる。
【００６６】
第５実施形態によれば、オブジェクトの奥行距離情報を編集して各オブジェクトを合成することにより、各オブジェクトの配置を違和感無く入れ替えた合成画像を得ることができる。
【００６７】
本発明は、上述の実施形態の１以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける１つ以上のプロセッサがプログラムを読出し実行する処理でも実現可能である。また、１以上の機能を実現する回路（例えば、ＡＳＩＣ）によっても実現可能である。
【００６８】
上述の実施形態は、何れも本発明を実施するにあたっての具体化の例を示したものに過ぎず、これらによって本発明の技術的範囲が限定的に解釈されてはならないものである。即ち、本発明は、その技術思想、又はその主要な特徴から逸脱することなく、様々な形で実施することができる。
【符号の説明】
【００６９】
１００：画像データ読み込み部、１０１：デコード部、１０２：合成部、１０３：オブジェクト抽出部、１０４：表示部、１０５：制御部、１０６：メモリ、１０７：距離算出部
【図１】
2019121216.tif 000003
【図２】
2019121216.tif 000004
【図３】
2019121216.tif 000005
【図４】
2019121216.tif 000006
【図５】
2019121216.tif 000007
【図６】
2019121216.tif 000008
【図７】
2019121216.tif 000009
【図８】
2019121216.tif 000010
【図９】
2019121216.tif 000011
【図１０】
2019121216.tif 000012