IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ キヤノン株式会社の特許一覧

特許7191514画像処理装置、画像処理方法、およびプログラム
<>
  • 特許-画像処理装置、画像処理方法、およびプログラム 図1
  • 特許-画像処理装置、画像処理方法、およびプログラム 図2
  • 特許-画像処理装置、画像処理方法、およびプログラム 図3
  • 特許-画像処理装置、画像処理方法、およびプログラム 図4
  • 特許-画像処理装置、画像処理方法、およびプログラム 図5
  • 特許-画像処理装置、画像処理方法、およびプログラム 図6
  • 特許-画像処理装置、画像処理方法、およびプログラム 図7
  • 特許-画像処理装置、画像処理方法、およびプログラム 図8
  • 特許-画像処理装置、画像処理方法、およびプログラム 図9
  • 特許-画像処理装置、画像処理方法、およびプログラム 図10
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2022-12-09
(45)【発行日】2022-12-19
(54)【発明の名称】画像処理装置、画像処理方法、およびプログラム
(51)【国際特許分類】
   G06T 5/50 20060101AFI20221212BHJP
   G09G 5/36 20060101ALI20221212BHJP
   G09G 5/377 20060101ALI20221212BHJP
   G09G 5/00 20060101ALN20221212BHJP
【FI】
G06T5/50
G09G5/36 520P
G09G5/36 520N
G09G5/00 550D
【請求項の数】 11
(21)【出願番号】P 2018001184
(22)【出願日】2018-01-09
(65)【公開番号】P2019121216
(43)【公開日】2019-07-22
【審査請求日】2020-12-07
(73)【特許権者】
【識別番号】000001007
【氏名又は名称】キヤノン株式会社
(74)【代理人】
【識別番号】100090273
【弁理士】
【氏名又は名称】國分 孝悦
(72)【発明者】
【氏名】秋吉 秀信
【審査官】松浦 功
(56)【参考文献】
【文献】米国特許出願公開第2016/0180514(US,A1)
【文献】特開2008-217593(JP,A)
【文献】特開2003-219271(JP,A)
【文献】特開2012-105019(JP,A)
【文献】特開2013-157671(JP,A)
【文献】特開2013-118468(JP,A)
【文献】特許第5270052(JP,B1)
【文献】国際公開第2004/019621(WO,A1)
【文献】特開2010-224607(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06T 5/00 - 7/90
G09G 5/36 - 5/377
G09G 5/00
G06T 1/00
G06T 11/00 -19/20
(57)【特許請求の範囲】
【請求項1】
複数の画像からオブジェクトを抽出する抽出手段と、
前記画像に含まれる奥行距離の情報を基に、前記複数の画像から抽出されたオブジェクトごとに奥行距離を代表する代表距離値を決定する決定手段と、
前記抽出されたオブジェクトごとの前記代表距離値に基づいて、前記オブジェクトを合成して合成画像を生成する合成手段と
を有し、
前記決定手段は、前記オブジェクトが合成される際にオブジェクト同士が重なる場合には前記重なるオブジェクトについて前記代表距離値を決定し、前記オブジェクト同士が重ならないオブジェクトについては代表距離値として初期値を決定することを特徴とする画像処理装置。
【請求項2】
前記決定手段は、前記抽出されたオブジェクトのなかに特定のオブジェクトを含むオブジェクトがあり、前記特定のオブジェクトを含むオブジェクトと前記特定のオブジェクトを含まないオブジェクトとの前記代表距離値の差が一定範囲内である場合には、前記特定のオブジェクトを含むオブジェクトが、前記特定のオブジェクトを含まないオブジェクトよりも前記合成の際に手前になるように前記代表距離値を変更することを特徴とする請求項に記載の画像処理装置。
【請求項3】
前記決定手段は、前記抽出されたオブジェクトごとに、当該オブジェクトに含まれる全画素の奥行距離を表す値の平均を前記代表距離値に決定することを特徴とする請求項1または2に記載の画像処理装置。
【請求項4】
前記決定手段は、前記抽出されたオブジェクトごとに、当該オブジェクトに含まれる全画素のなかで最大の奥行距離を表す値を前記代表距離値に決定することを特徴とする請求項1または2に記載の画像処理装置。
【請求項5】
前記決定手段は、前記抽出したオブジェクトのなかの特定の部位に含まれる全画素の奥行距離の情報を基に前記代表距離値を決定することを特徴とする請求項1または2に記載の画像処理装置。
【請求項6】
前記決定手段は、前記特定の部位に含まれる全画素の奥行距離を表す値の平均を前記代表距離値に決定することを特徴とする請求項に記載の画像処理装置。
【請求項7】
前記決定手段は、前記抽出されたオブジェクトの奥行距離を表す値を変更する変更手段を有することを特徴とする請求項1からのいずれか1項に記載の画像処理装置。
【請求項8】
前記変更手段は、ユーザから指示されたオブジェクトの前記奥行距離の値を変更することを特徴とする請求項に記載の画像処理装置。
【請求項9】
前記変更手段は、前記オブジェクトの奥行距離の値に対して一律に距離値を加算して前記奥行距離を変更することを特徴とする請求項またはに記載の画像処理装置。
【請求項10】
画像処理装置が実行する画像処理方法であって、
複数の画像からオブジェクトを抽出する抽出工程と、
前記画像に含まれる奥行距離の情報を基に、前記複数の画像から抽出されたオブジェクトごとに奥行距離を代表する代表距離値を決定する決定工程と、
前記抽出されたオブジェクトごとの前記代表距離値に基づいて、前記オブジェクトを合成して合成画像を生成する合成工程と
を有し、
前記決定工程では、前記オブジェクトが合成される際にオブジェクト同士が重なる場合には前記重なるオブジェクトについて前記代表距離値を決定し、前記オブジェクト同士が重ならないオブジェクトについては代表距離値として初期値を決定することを特徴とする画像処理方法。
【請求項11】
コンピュータを、請求項1からのいずれか1項に記載の画像処理装置の各手段として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、画像を合成等する画像処理技術に関する。
【背景技術】
【0002】
3D対応のデジタルカメラなどにおいて、被写体とメニュー画面の奥行き関係を調整し、それぞれを合成する画像合成技術がある。例えば特許文献1には、撮影被写体画像の奥行きと画面に表示するメニュー画面との位置関係を調整し、画面表示時にメニュー画面が被写体の手前に来るように位置調整を行う技術が開示されている。
【0003】
また近年のカメラには、画像の撮影だけではなく、奥行き方向の距離(以下、奥行距離とする。)を計測し、その奥行距離情報を撮影画像と共に記録可能なものもある。このような撮影画像と共に奥行距離情報も合わせて記録できるカメラを用いて、複数枚の画像を撮影し、例えば1枚の背景に対して被写体となる人物だけを複数人分合成するようなことも可能となる。例えば人物だけを複数人分合成する場合には、奥行距離情報を利用することにより、撮影画像から人物のオブジェクトと背景とを切り分け、その切り分けた人物のオブジェクトの前後関係を奥行距離情報に基づいて決定した上で合成するようなことが行われる。
【先行技術文献】
【特許文献】
【0004】
【文献】特開2010-86228号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
ところで、複数枚の撮影画像に写った被写体のオブジェクトを切り出して合成する際、それぞれの撮影画像に写っている被写体の奥行距離の値が非常に近いような場合、合成結果が違和感のある画像になってしまうことがある。例えば奥行距離の近い被写体のオブジェクト同士が混ざり合って合成されてしまうことで、違和感のある合成画像が生成されることがある。
【0006】
そこで、本発明は、奥行距離の情報を用いて画像を合成する場合に、違和感の少ない合成結果を得られるようにすることを目的とする。
【課題を解決するための手段】
【0007】
本発明は、複数の画像からオブジェクトを抽出する抽出手段と、前記画像に含まれる奥行距離の情報を基に、前記複数の画像から抽出されたオブジェクトごとに奥行距離を代表する代表距離値を決定する決定手段と、前記抽出されたオブジェクトごとの前記代表距離値に基づいて、前記オブジェクトを合成して合成画像を生成する合成手段とを有し、前記決定手段は、前記オブジェクトが合成される際にオブジェクト同士が重なる場合には前記重なるオブジェクトについて前記代表距離値を決定し、前記オブジェクト同士が重ならないオブジェクトについては代表距離値として初期値を決定することを特徴とする。
【発明の効果】
【0008】
本発明によれば、奥行距離の情報を用いて画像を合成する場合に、複数の被写体を合成しても、違和感の少ない合成結果が得られるようになる。
【図面の簡単な説明】
【0009】
図1】実施形態の画像合成装置の概略構成を示す図である。
図2】奥行距離情報を持つ画像と3Dレンダリングの関係説明に用いる図である。
図3】合成処理のフローチャートである。
図4】重ならないオブジェクトが存在する場合の合成例を示す図である。
図5】重なり判定がある場合の合成処理のフローチャートである。
図6】顔認識を行う場合の合成成処理のフローチャートである。
図7】背景と合成対象を選択する際の画面遷移の説明に用いる図である。
図8】顔の有無と合成順番の説明に用いる図である。
図9】顔の一部の部位を比較する例の説明に用いる図である。
図10】オブジェクトの奥行距離を一括して変更する例の説明に用いる図である。
【発明を実施するための形態】
【0010】
以下、図面を参照して本発明の好ましい実施形態について説明する。
<第1実施形態>
図1は、本実施形態の画像処理装置の一例である画像合成装置の概略的な構成を示す図である。
制御部105は、この画像合成装置の全体制御を行う。また、画像合成装置の以下に述べる各構成要素は、メモリ106を使用して各処理を行う。
画像データ読み込み部100は、図示していない外部メディア等から画像データを取得する。本実施形態で説明する画像データは、画像と当該画像の画素ごとの奥行方向の距離(以下、奥行距離とする)の情報とを有するデータである。奥行距離とその情報(奥行距離情報とする)の詳細については後述する。
【0011】
デコード部101は、画像データ読み込み部100が取得した画像データをデコードし、画像として認識できる状態にする。さらにデコード部101は、画像に含まれている奥行距離情報を取得する機能を有し、デコードした画像の各画素と奥行距離との関係付けを行う。
【0012】
オブジェクト抽出部103は、前述のように画素ごとに奥行距離情報が付与されている画像から、被写体等のオブジェクトを抽出する。このオブジェクトの抽出は、画像から、奥行距離が所定の距離より短い(近い)各画素よりなるオブジェクトを抽出する処理となされている。画像からオブジェクトが分離された残りの画像領域は背景となる。このように、オブジェクト抽出部103は、所定の距離を閾値として用い、奥行距離情報が付与された入力画像の中から、奥行距離が閾値より短い(近い)オブジェクトを、それ以外の背景から分離する。なお、オブジェクトの抽出は、奥行距離情報を用いない、他の既存のオブジェクト抽出技術を用いて行われても良い。
【0013】
距離算出部107は、画素ごとの奥行距離情報から後述する奥行マップを生成し、また、オブジェクト抽出部103により抽出されたオブジェクトの各画素の奥行距離情報を基に、後述する代表距離値を算出する。奥行マップの生成と代表距離値の算出方法の詳細については後述する。
【0014】
合成部102は、オブジェクト抽出部103によって複数の入力画像からそれぞれ前述のように抽出された複数のオブジェクトと、背景として用いられる画像(以下、背景画像とする)とを合成する。詳細については後述するが、合成部102では、距離算出部107により算出された代表距離値を用いて、複数のオブジェクトと背景画像との合成を行う。
表示部104は、画像を表示する。表示部104には、合成部102での合成処理により生成された合成画像も表示される。なお、表示部104は、ユーザ等からの指示を受付可能なタッチパネルの機能を有していても良い。
【0015】
なお、図1の制御部105、画像データ読み込み部100、デコード部101、距離算出部107、合成部102、オブジェクト抽出部103等は、ハードウェア構成により実現されても良いし、ソフトウェア構成により実現されても良い。ソフトウェア構成により各部の処理が実行される場合、それら本実施形態にかかるプログラム(ソフトウェア)をCPU等が実行することにより実現される。本実施形態にかかるプログラムは、メモリ106(ROMや着脱可能な半導体メモリを含む)から読み出されても、或いは不図示のインターネット等のネットワークからダウンロードされても良い。
【0016】
次に、図2(a)~図2(c)を用いて、奥行距離情報を有する画像データついて説明する。
図2(a)に示す画像200は、画素ごとに奥行距離情報を有した画像である。なお、図2(a)に例示した画像200は、中央部に人物被写体の顔に相当するオブジェクト204が写っている画像であるとする。
【0017】
画像200には、当該画像を構成する画素ごとに奥行距離情報が保存されており、以下、各画素に保存されている奥行距離情報について説明する。
図2(a)の画素201は、画像200に含まれる各画素のうちの一つである。この画素201を構成するデータ202は、奥行距離情報Zと色情報RGBとを組み合わせた構成(ZRGB構成)となされている。奥行距離情報Zは、その値が大きいほど、この画像が撮影された際にカメラに近い状態(手前に飛び出ている状態)であったことを示している。色情報RGBは、赤(R)、緑(G)、青(B)の三原色の各色の情報である。奥行距離情報Zと色情報RGBはそれぞれが8ビット情報となされており、1画素あたりでは合計32ビットのデータとなされている。なお、ここでは一例として、1画素の奥行距離情報Zの8ビットをZRGB構成の32ビットの中に入れ込む例を挙げたが、この例には限定されず、奥行距離がわかる形式であればどのような形式であっても良い。
【0018】
図2(a)に示す平面の画像210は色情報RGBのみから作られる。また、画素ごとの奥行距離情報Zからは奥行マップ211が生成される。奥行マップ211は、画素ごとの奥行距離情報が、各画素の配列に対応して二次元配列されたマップである。なお、図2(a)の例では、図示を簡略にするため、画素の数を減らした粗いメッシュで奥行マップ211が表されている。図2(a)に例示した奥行マップ211において、斜線により表されたメッシュ部分205は、画像200の中で顔のオブジェクト204に相当する領域である。図2(a)の奥行マップ211では、オブジェクト204に相当するメッシュ部分205の奥行距離情報Zの数値が他の部分の数値より大きくなっているが、これは撮影時に顔(オブジェクト204)がカメラに近い位置に存在していたことを示している。
【0019】
そして、これら平面の画像210と奥行マップ211を基に、仮想3D空間内に画像を配置することが可能となる。図2(b)は、平面の画像210と奥行マップ211に基づいて、仮想3D空間内に画像200を配置した場合の配置結果を3Dワイヤーフレーム207の概略イメージで示した図である。図2(b)において、x方向は画像200の左右方向(画像の右側からx値が増える方向)、y方向は画像200の上下方向(画像の上側でy値が増える方向)を示し、z方向は奥行方向を表している。図2(b)の3Dワイヤーフレーム207においては、奥行方向の値(奥行距離)が大きいほど、z方向の高さが高くなり、画像撮影時にカメラから近いことを表している。図2(b)に示した配置結果の例の場合、z方向の高さが高くなっている領域206は、図2(a)の顔のオブジェクト204に相当する領域である。
【0020】
次に、入力画像からオブジェクトと背景を分離(オブジェクトを抽出)する分離方法について説明する。
これまで説明してきたように、入力画像は画素ごとに奥行距離情報を持つため、奥行距離情報Zに対する閾値として所定の距離を設定し、奥行距離が閾値以内かどうかによりオブジェクトを背景から分離することができる。
【0021】
次に、奥行距離情報を持つ画像から抽出されたオブジェクトごとの代表距離値を算出する方法について述べる。
先に説明したように分離された顔のオブジェクト204は、図2(b)の領域206に示すようにz方向(奥行距離)が背景よりも高く(カメラに近く)なっており、3Dワイヤーフレームでは半球形のように表される。
ここで、代表距離値を算出する方法としては複数の方法が考えられ、本実施形態では、以下の第1の算出方法と第2の算出方法の二つの例を挙げる。
第1の算出方法は、オブジェクトを構成する各画素の各奥行距離の値を加算し、その加算結果をオブジェクト内の全画素数で除算することにより、1画素あたりの平均距離値を算出して代表距離値とする方法である。
第2の算出方法は、オブジェクト内の全画素数の中で図2(b)に示す最大の奥行距離の値221を求め、その値を代表距離値とする方法である。
【0022】
本実施形態では、これら第1、第2の算出方法の何れかを用いて代表距離値を計算し、先に分離されたオブジェクトを構成する全ての画素の奥行距離に代表距離値を適用することで、図2(c)に示すような円柱型230で表される奥行距離情報を設定する。なお、図2(c)は図2(b)と同様に3Dワイヤーフレームの概略イメージを表している。
【0023】
次に、複数枚の画像を合成する際に、本実施形態の画像合成装置で行われる各処理について、図3図7を用いて説明する。
図3は本実施形態の画像合成装置において行われる処理の流れを示すフローチャートである。なお、以下のフローチャートの説明では、処理ステップS300~処理ステップS306をS300~S306と略記する。これらのことは後述する他のフローチャートにおいても同様とする。図3のフローチャートの処理は、一例として、本実施形態の画像合成装置の不図示のタッチパネル等の操作部から使用者が開始指示を入力したスタートするとする。なお、外部の装置やネットワーク等を介して開始指示が入力された場合、或いは予め設定された時間等のタイミングで図3のフローチャートの処理が開始されても良い。
【0024】
制御部105は、S300において、図3のフローチャートの処理を開始すると、先ずメモリ106のメモリ初期化を行った後、S301に処理を進める。
S301に進むと、制御部105は、画像データ読み込み部100に対して画像データを取得することを指示する。これにより、画像データ読み込み部100は、不図示の外部メディア等から画像データを読み込むことで取得する。そして、制御部105は、画像データ読み込み部100が取得した画像データをメモリ106に蓄積させる。
さらに、制御部105は、表示部104に対し、ユーザが背景画像の選択を行うためのUI(ユーザインターフェイス)画面を表示させる。このときの制御部105は、メモリ106に蓄積された画像データを読み出してデコード部101によりデコードさせ、撮影画像をサムネイル画像に変換した上で、表示部104の画面上に一覧形式により表示させる。
【0025】
図7(a)は、背景画像の選択の際に表示部104の画面に表示されるUI画面710の一例を示している。このUI画面710には、撮像画像のサムネイル画像の一覧と、背景画像の選択をユーザに促すメッセージとが表示される。図7(a)には、サムネイル画像として、人物(A)が写った画像A、人物(B)が写った画像B、人物(C)が写った画像Cと、人物が写っていない画像Dの4枚が一覧表示されている例を示している。これら各画像の中の所望の画像に対し、ユーザが選択指示を入力すると、その選択指示された画像には、チェックマーク713が表示される。チェックマーク713は、その画像が選択された状態であることをユーザに認識させるアイコンである。図7(a)では、人物が写っていない画像Dがユーザにより選択されたことでチェックマーク713が表示された例が示されている。また、図7(a)のUI画面710には、完了ボタン712も表示される。制御部105は、各画像の中で何れかの画像がユーザにより選択された上で、完了ボタン712への決定指示がなされた場合、その画像を合成の際に使用する背景画像として確定する。図7(a)の例では、画像Dにチェックマーク713が表示された状態で、完了ボタン712への決定指示がなされたことにより、人物が写っていない画像Dが背景画像として確定されたとする。
【0026】
そして、背景画像が確定すると、制御部105はS302に処理を進める。
S302に進むと、制御部105は、表示部104に対し、ユーザが合成対象の画像(以下、合成対象画像とする)の選択を行うためのUI画面を表示させる。
【0027】
図7(b)は、合成対象画像の選択の際に表示部104の画面に表示されるUI画面720の一例を示している。UI画面720には、UI画面710と同様に撮像画像のサムネイル画像の一覧として、画像A、画像B、画像C、画像Dの4枚が表示されている例を示している。また、このときのUI画面720には、合成対象画像の選択をユーザに促すメッセージが表示される。そして、UI画面720において、所望の画像に対してユーザが選択指示を入力すると、その選択指示された画像には前述同様のチェックマーク713が表示される。図7(b)には、人物(A)が写った画像Aと、人物(B)が写った画像Bと、人物(C)が写った画像Cとが、ユーザにより選択されたことでチェックマーク713が表示された例が示されている。また、図7(b)のUI画面720は、完了ボタン722も表示される。制御部105は、各画像の中で所望の画像がユーザにより選択された上で、完了ボタン722への決定指示がなされた場合、その画像を合成対象画像として確定する。図7(b)の例では、画像Aと画像Bと画像Cにチェックマーク713が表示された状態で、完了ボタン722への決定指示がなされたことにより、それら画像Aと画像Bと画像Cの三枚が合成対象画像として確定されたとする。そして、合成対象画像が確定すると、制御部105はS303に処理を進める。
【0028】
S303に進むと、制御部105は、S302で確定された全ての合成対象画像に対して、次のS304の代表距離値計算処理が終わったか否かを判定する。そして、制御部105は、代表距離値計算処理が行われていない未処理の合成対象画像がある場合には、その未処理の合成対象画像に対するS304の代表距離値計算処理を行わせる。
【0029】
S304において、制御部105は、オブジェクト抽出部103及び距離算出部107を制御して、S302で確定された合成対象画像に対する代表距離値計算処理を行わせる。S304の処理として、先ずオブジェクト抽出部103は、合成対象画像1枚について、その画像から被写体(例えば人物のオブジェクト)を抽出して背景から分離する。次に距離算出部107は、オブジェクト抽出部103により抽出されたオブジェクトを構成する各画素の奥行距離情報を基に、前述したように代表距離値を計算する。そして、制御部105は、距離算出部107にて計算された代表距離値を、抽出されたオブジェクトに関連付けてメモリ106に保存させる。その後、制御部105は、S303に処理を戻し、全ての合成対象画像に対する代表距離値計算処理が終わったか否かを再度判定する。このように、制御部105は、全ての合成対象画像の代表距離値計算処理が終わるまで、S303の判定処理とS304の代表距離値計算処理を繰り返す。そして、制御部105は、S303において、S302で確定された全ての合成対象画像に対する代表距離値計算処理が終わったと判定した場合、S305に処理を進める。
【0030】
S305に進むと、制御部105は、メモリ106内に各オブジェクト(人物オブジェクト)と関連付けられて格納されている代表距離値を基に、各オブジェクトの合成順番を決定する処理(代表距離値で合成順番をソートする処理)を行う。合成順番は、例えば代表距離値が小さい順(つまり撮影時にカメラから遠い順)となされる。その後、制御部105は、S306に処理を進める。
【0031】
S306に進むと、制御部105は、合成部102に対して、S305で決定された合成順番、つまり代表距離値が小さい順(カメラから遠い順)で、メモリ106からオブジェクトを順に読み出し、その読み出した順番で背景画像(D)に合成させる。そして、制御部105は、合成部102による合成処理がなされて得られた合成画像データをメモリ106に保存させる。
【0032】
ここで、前述した人物が写った3枚の画像A~画像Cのうち、画像Aのオブジェクトの代表距離値が「100」、画像Bのオブジェクトの代表距離値が「10」、画像Cのオブジェクトの代表距離値が「50」であり、値が大きいほどカメラから近いとする。この場合、合成順番は、画像Bのオブジェクト、画像Cのオブジェクト、画像Aのオブジェクトの順番になる。したがってこの場合、合成部102では、背景画像(D)に画像Bのオブジェクト、その後、画像Cのオブジェクト、最後に画像Aのオブジェクトの順番で、各オブジェクトの画像が重ねられるような合成処理が行われる。これにより、代表距離値が大きい(カメラに近い)被写体が最後に画像合成されることになる。
【0033】
本実施形態においては、オブジェクトごとに代表距離値を計算しており、各オブジェクト内で奥行距離が均一化されるため、他の画像のオブジェクトと合成する際に、オブジェクト同士が混ざり合って合成されてしまうことがない。したがって、本実施形態によれば、違和感の少ない合成画像を得ることが可能となる。
【0034】
<第2実施形態>
次に、第2実施形態として、オブジェクト同士の重なり判定を行い、合成時に重ならないオブジェクトについては代表距離値計算処理をスキップする例について説明する。なお、第2実施形態の画像合成装置の構成は図1と同様であるため図示と説明は省略する。
合成対象画像に含まれるオブジェクトが重ならない場合の例について、図4を用いながら説明する。
【0035】
図4の例において、画像400,401,402はそれぞれ合成対象画像であるとする。またオブジェクト404,405,406は、それぞれ対応した画像400,401,402において背景から分離されたオブジェクトであるとする。また、画像401のオブジェクト405と画像402のオブジェクト406は合成時に重なるオブジェクトであり、一方、画像400のオブジェクト404は他の画像のオブジェクトとは重ならないオブジェクトであるとする。
【0036】
そして、画像403は、各オブジェクト404,405,406が背景画像に合成された後の合成画像を表している。すなわち図4の例の場合、重ならないオブジェクト404はオブジェクト407として画像403に配置され、一方、オブジェクト405はオブジェクト408、オブジェクト406はオブジェクト409として画像403に配置される。
【0037】
第2実施形態の場合、制御部105は、オブジェクト抽出部103が複数の合成対象画像からそれぞれ抽出した複数のオブジェクト同士が重なるか否かを判定する重なり判定処理を行う。すなわち、代表距離値の計算が行われる前に、制御部105は、オブジェクト抽出部103にて抽出されたオブジェクト404,405,406のそれぞれ位置関係を認識し、それらオブジェクト同士が重なるか否かを判定する。そして、制御部105は、オブジェクト404のように、他のオブジェクトと重ならないオブジェクトを検出し、そのオブジェクト404については代表距離値計算処理をスキップさせる。
【0038】
図5は、第2実施形態における処理のフローチャートである。
図5のフローチャートにおいて、図3のフローチャートと同じ処理ステップには同一の参照符号を付してそれらの説明を省略し、ここでは異なる処理ステップ(S501、S502、S503)についてのみ説明する。
【0039】
図5のフローチャートの場合、S302の後、制御部105は、S503に処理を進める。
S503に進むと、制御部105は、S302で確定された全ての合成対象画像からオブジェクト抽出部103が抽出した全てのオブジェクトについて、それぞれ合成時に重なるか否かを判定する。例えば、図4の場合、制御部105は、オブジェクト405,406は重なると判定し、オブジェクト404は他のどのオブジェクトとも重ならないと判定する。このS503の後、制御部105は、S303に進み、全ての合成対象画像の処理が終わったと判定した場合にはS305に処理を進め、一方、未処理の合成対象画像がある場合にはS501に処理を進める。
【0040】
S501に進むと、制御部105は、S503で行った重なり判定の結果に基づき、合成時に重なると判定されたオブジェクトについては、S304において代表距離値の算出を行わせた後、S303に処理を戻す。一方、制御部105は、S501において合成時に重ならないと判定されたオブジェクトについてはS502の処理を行う。
【0041】
S502に進むと、制御部105は、そのオブジェクトは合成時に他のオブジェクトとは重ならず、代表距離値に基づく合成処理が不要となるため、距離算出部107に対し予め決められた初期値を設定させる。そして、制御部105は、その初期値の代表距離値をオブジェクトに関連付けてメモリ106に保存させる。S502の後、制御部105は、S305に処理を進める。S305以降の処理は前述同様であるため説明は省略する。
【0042】
第2実施形態によれば、合成時にオブジェクト同士が重ならないオブジェクトについては代表距離値計算処理をスキップすることにより、代表距離値計算による処理負担を軽減可能となる。また、合成時に重なるオブジェクト同士では、第1実施形態の場合と同様に、代表距離値に基づいた合成処理が行われるため、オブジェクト同士が混ざり合って合成されてしまうことがなく、違和感の少ない合成画像を得ることができる。
【0043】
<第3実施形態>
次に、第3実施形態では、合成時のオブジェクトが特定のオブジェクト、例えば人物の顔のオブジェクトである場合の画像合成方法について説明する。
ここで、第1実施形態では、抽出されて合成されるオブジェクトとして人物オブジェクトを例に挙げたが、第3実施形態では特に人物の顔のオブジェクトが合成対象画像に含まれる場合について説明する。第3実施形態の場合、オブジェクト抽出部103は、人物の顔のオブジェクトが合成対象画像に含まれるか否かを判定する顔判定機能をも有している。第3実施形態の場合、オブジェクト抽出部103は、前述したようにオブジェクトの奥行距離を測ると同時に、顔の有無をも判定する。そして、制御部105は、オブジェクト抽出部103が判定した顔の有無情報と代表距離値とをオブジェクトに関連付けてメモリ106に保存しておき、合成処理の際に使用する。
【0044】
図6は、第3実施形態における処理のフローチャートである。
図6のフローチャートにおいて、図3のフローチャートと同じ処理ステップには同一の参照符号を付して、それらの説明は省略し、ここでは異なる処理ステップ(S601、S602、S603、S604)についてのみ説明する。
【0045】
図6のフローチャートの場合、S302の後、制御部105は、S601に処理を進める。
S601に進むと、制御部105は、S302で確定された全ての合成対象画像の代表距離値計算処理と顔認識処理が終わったか否かを判定する。そして、制御部105は、代表距離値計算処理と顔認識処理が行われていない未処理の合成対象画像がある場合には、その未処理の合成対象画像に対するS602の代表距離値計算処理と顔認識処理を行わせる。
【0046】
S602に進むと、制御部105は、オブジェクト抽出部103及び距離算出部107を制御して、S302で確定された合成対象画像に対する代表距離値計算処理と顔認識処理を行わせる。S304の処理として、先ずオブジェクト抽出部103は、合成対象画像1枚について、その画像から人物のオブジェクトを抽出する。さらに、オブジェクト抽出部103は、その人物の顔のオブジェクトがあるか否か判定して、顔のオブジェクトがあると判定した場合には、メモリ106に画像と関連付けて顔の有無情報をも保存しておく。また、距離算出部107は、前述同様に、オブジェクト抽出部103により抽出されたオブジェクトを構成する各画素の奥行距離情報を基に代表距離値を計算する。そして、制御部105は、距離算出部107にて計算された代表距離値を、抽出されたオブジェクトに関連付けてメモリ106に保存させる。その後、制御部105は、S601に処理を戻し、全ての合成対象画像に対する代表距離値計算処理と顔認識処理が終わったか否かを再度判定する。このように、制御部105は、全ての合成対象画像の代表距離値計算処理と顔認識処理が終わるまで、S601の判定処理とS602の代表距離値計算処理及び顔認識処理を繰り返す。そして、制御部105は、S601において、全ての成対象画像に対する代表距離値計算処理と顔認識処理が終わったと判定した場合、S603に処理を進める。
【0047】
S603に進むと、制御部105は、メモリ106内に各オブジェクトと関連付けられて格納されている代表距離値と顔の有無情報とを基に、各オブジェクトの合成順番をソートする処理を行う。この場合、制御部105は、複数の合成対象画像から抽出された複数のオブジェクトの代表距離値をメモリ106から取得し、それら代表距離値の差分が一定範囲内となっている近い値であるかどうかを判定する。さらに、制御部105は、オブジェクトの代表距離値が近い場合において、何れかのオブジェクトに特定のオブジェクトが含まれているか否か判定する。この例の場合、制御部105は、顔の有無情報を用い、代表距離値が近いオブジェクトの中に顔オブジェクトを含むオブジェクトが存在するか否かを判定する。そして、制御部105は、代表距離値が近いオブジェクトの中に顔オブジェクトを含むオブジェクトが存在する場合、そのオブジェクトが合成時に手前側に合成(後から合成)されるように合成順番を決定する。この場合、制御部105は、代表距離値の差分が一定範囲内となっている各オブジェクトのうち、顔オブジェクトを含むオブジェクトが合成時に手前側に合成される合成順番になるように、当該顔オブジェクトを含むオブジェクトの代表距離値を変更する。このS603の後、制御部105は、S604に処理を進める。
【0048】
なお、制御部105は、顔オブジェクトを含んでいない方のオブジェクトが合成時において後ろ側に合成される合成順番になるように、当該顔オブジェクトを含んでいない方のオブジェクトの代表距離値を変更しても良い。
また、例えば共に顔を含むオブジェクト同士の代表距離値の差分が一定範囲内である場合には、それら顔を含む各オブジェクトでは代表距離値に応じた合成順番に決定される。このように共に顔を含むオブジェクト同士の代表距離値が近い場合には、さらに後述する第4実施形態のように顔の部位等の代表距離値を用いて合成を行うようにしても良い。
【0049】
S604に進むと、制御部105は、合成部102に対して、S603で決定された代表距離値による合成順番、つまり代表距離値が小さいオブジェクトの順(カメラから遠い順)で背景画像に合成させる。すなわちこの場合、画像合成では、代表距離値の差分が一定範囲内となっていた各オブジェクトのうち、顔を含まない方のオブジェクトから背景画像に合成され、その後、顔を含むオブジェクトが合成される。そして、制御部105は、合成部102による合成処理がなされて得られた合成画像データをメモリ106に保存させる。
【0050】
第3実施形態における画像合成について図8を用いて具体的に説明する。
図8は画像E,画像F,画像Gの3枚が合成対象画像となっている例を挙げる。画像Eのオブジェクトは代表距離値が1.0mで、かつ顔認識の結果、顔のオブジェクトは存在しないと判定されたものであるとする。画像Fと画像Gはそれぞれオブジェクトの代表距離値が同じ0.8mであるが、画像Fには顔のオブジェクトが存在すると判定されたのに対し、画像Gには顔のオブジェクトが存在しないと判定されたものであるとする。
【0051】
この場合、合成順番は以下のように決定される。
代表距離値がカメラから遠い画像Eのオブジェクトは、背景画像に最初に合成される合成順番として決定される。画像Fと画像Gのオブジェクトは代表距離値が同じであるため、顔の有無が判断される。画像Fには顔のオブジェクトが含まれ、画像Gは顔のオブジェクトが含まれないため、画像Gのオブジェクトの合成順番が先に決定され、画像Fのオブジェクトの合成順番は画像Gのオブジェクトの後に決定される。このようにすることで、画像Eのオブジェクトが最も奥側に配置され、次に、画像Gのオブジェクトが配置され、画像Fの顔のオブジェクトが最前面に配置された合成画像が得られることになる。
【0052】
第3実施形態では、代表距離値を使用しながら合成を行うが、代表距離値が近い値になっているオブジェクト同士については顔のオブジェクトを含むか否かを判定し、顔のオブジェクトを含むオブジェクトについては手前側に合成される合成順番を決定する。これにより、第3実施形態においても違和感のない合成画像が得られる。
【0053】
<第4実施形態>
第4実施形態では、第1実施形態で述べた代表距離値を算出する際の異なる算出方法について説明する。
第4実施形態における代表距離値の算出方法では、オブジェクトの重なりを比較する対象となる二つ以上のオブジェクトについてそれぞれ同じ部位の奥行距離情報を算出し、それを代表距離値とする。
【0054】
第4実施形態の代表距離値算出方法について、図9(a)と図9(b)を用いながら説明する。図9(a)において、画像900は、三人の人物が被写体として撮影された画像である。画像900は、人物(A)、人物(B)、人物(C)の三人の顔画像901,902,903が写っている例に挙げている。顔画像901は人物(A)の顔の画像であり、帽子904を着用している。顔画像902は人物(B)の顔の画像であり、顔を隠すものは存在していないとする。顔画像903は人物(C)の顔の画像であり、顔の前に手905があるとする。
【0055】
図9(b)は図9(a)の例における距離マップ910を前述同様に示した図である。図9(b)に示すように、距離マップ910は、図9(a)の各被写体(人物)と帽子や手の奥行距離を含んだ距離マップとなっている。この図9(b)の距離マップ910において、斜線により表されたメッシュ部分911は顔画像901及び帽子904に対応しており、メッシュ部分912は顔画像902に、メッシュ部分913は顔画像903及び手905に対応している。メッシュ部分912では、顔画像902の中央に相当する部分917の奥行距離の値が大きくなっている。一方、メッシュ部分911の場合、顔画像901の中央に相当する部分916の奥行距離の値よりも、帽子904に対応した部分914の奥行距離の値の方が大きくなっている。また、メッシュ部分913の場合、顔画像903の中央に相当する部分919よりも、手905に対応した部分915の奥行距離の値の方が大きくなっている。
【0056】
距離算出部107は、人物(A)の顔画像901及び帽子904、人物(B)の顔画像902、人物(C)の顔画像903及び手905を含む各オブジェクトの代表距離値を計算する。そして、距離算出部107は、それら各オブジェクトにそれぞれ対応したメッシュ部分911,912,913における各画素の奥行距離を合計して平均し、代表距離値を算出する。ただし、図9(a)の画像900の場合、代表距離値の計算結果は、帽子904や手905等の奥行距離の影響を受けることになる。
【0057】
そこで、第4実施形態では帽子904や手905などの要因を除くようにして、顔の位置のみを比較する。ここで、単純に顔だけの奥行距離を比較するために、制御部105は、オブジェクト抽出部103に対し、各顔画像901,902,903のそれぞれから、例えば鼻の部位(パーツ)だけを抽出するよう指示する。顔の鼻等の部位を認識する技術は既存の技術であるため、その説明は省略する。そして、距離算出部107では、オブジェクト抽出部103により抽出された鼻の位置に該当する各画素の奥行距離の値を加算平均して代表距離値として算出する。図9(b)の例の場合、鼻の部分に相当する奥行距離の値は、前述した顔の中央に相当する部分916の距離値「9」、部分917の距離値「10」、部分919の距離値「8」となる。
【0058】
このように第4実施形態では、顔の一部の部位(パーツ)から代表距離値を計算することで、計算面積を減らすことに加え、帽子や手などの要素を省いて顔のオブジェクトの代表距離値を計算することができる。ここでは、顔のパーツとして鼻を挙げたが、これには限定されず、例えば目や口等のように特徴があり認識し易く、奥行距離の比較が容易な部位であれば良い。また、人体でなくても、自動車同士の比較では自動車のタイヤ位置のようにオブジェクト抽出部103が抽出可能なものであればどのようなものであっても良い。
【0059】
<第5実施形態>
第5実施形態では、第1実施形態で説明したオブジェクトの奥行距離情報を編集して、他のオブジェクトと合成する方法について説明する。
この第5実施形態における合成方法について図10を用いて説明する。
図10において、画像1000は人物(A)、画像1010は人物(B)が写った合成対象画像であり、それぞれにオブジェクト1001、1011が写っている。また、マップ1002は、画像1000の奥行距離情報Zのマップである。同様のマップ1012は、画像1010の奥行距離情報Zのマップである。マップ1002には、オブジェクト1001に対応したメッシュ部分1003が含まれ、マップ1012にはオブジェクト1011に対応したメッシュ部分1013が含まれている。
【0060】
この図10の例において、奥行距離情報のマップ1002と1012のうち、オブジェクト1001のメッシュ部分1003と、オブジェクト1011のメッシュ部分1013とを比較すると、オブジェクト1011の方が手前にあることがわかる。ここで、合成部102がこれらのオブジェクトを合成すると、合成画像1020が得られる。この合成画像1020は、人物(B)のオブジェクト1011に対応したオブジェクト1021の方が手前になるように合成された画像となる。
【0061】
次に、ユーザが、人物(A)のオブジェクト1001を、人物(B)のオブジェクト1011の前方に配置して画像合成指示を行ったとする。この場合、ユーザの指示を受けて、制御部105は、オブジェクト1001の奥行距離情報Zを一括で変更する。すなわち、制御部105は、オブジェクト1001の奥行距離情報のマップ1002のうち各奥行距離の値Z(a,b)が0でない部分、つまりオブジェクト1001に対応したメッシュ部分1003について距離値Xを一律に加算する。距離値Xは、例えばユーザにより指定された値でも良いし、予め決められた値でも良いし、ユーザにより指示されたオブジェクトとそれ以外のオブジェクトの奥行距離情報を基に制御部105が適切な値として決定した値でも良い。これにより、新しい奥行距離情報NewZ(a,b)が算出される。
【0062】
このときの制御部105は、新しい奥行距離情報NewZ(a,b)を下記式のようにして算出する。
【0063】
NewZ(a,b)=0 //Z(a,b)==0
=Z(a,b)+X //Z(a,b)!==0
【0064】
第5実施形態の例において、マップ1004は、X=5とした場合に、制御部105で奥行距離情報Zが0でない場所に5が加算された例を示しており、メッシュ部分1005が加算後の奥行距離情報NewZの領域である。
【0065】
このような処理が行われることで、合成部102では、画像1022に示すような合成画像が生成される。この画像1022では、人物(A)のオブジェクトは画像としての見た目は変わらないものの、奥行方向では5の値に相当する距離分だけ手前の位置に再配置される。その結果としてメッシュ部分1005の値は14(9+5)となり、メッシュ部分1013の値は10となる。合成部102は、このマップ1004のメッシュ部分1003の奥行距離情報を基に、オブジェクト1001とオブジェクト1011を背景画像に合成して、画像1022を生成する。これらの結果として画像1022は、人物(A)のオブジェクトが人物(B)のオブジェクトの手前に配置された合成画像となる。
【0066】
第5実施形態によれば、オブジェクトの奥行距離情報を編集して各オブジェクトを合成することにより、各オブジェクトの配置を違和感無く入れ替えた合成画像を得ることができる。
【0067】
本発明は、上述の実施形態の1以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける1つ以上のプロセッサがプログラムを読出し実行する処理でも実現可能である。また、1以上の機能を実現する回路(例えば、ASIC)によっても実現可能である。
【0068】
上述の実施形態は、何れも本発明を実施するにあたっての具体化の例を示したものに過ぎず、これらによって本発明の技術的範囲が限定的に解釈されてはならないものである。即ち、本発明は、その技術思想、又はその主要な特徴から逸脱することなく、様々な形で実施することができる。
【符号の説明】
【0069】
100:画像データ読み込み部、101:デコード部、102:合成部、103:オブジェクト抽出部、104:表示部、105:制御部、106:メモリ、107:距離算出部
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10