図2は、本発明の実施の形態1に係る画像編集システム500の構成を示す図である。実施の形態1に係る画像編集システム500は、画像処理装置100及びコンソール端末装置200を備える。
コンソール端末装置200は画像製作者(以下、ユーザという)が画像を製作、編集するために使用する端末装置である。コンソール端末装置200は操作部60および表示部70を備える。操作部60はキーボード、マウス等の入力デバイスであり、表示部70はディスプレイ等の出力デバイスである。なお入出力が一体となったデバイスであるタッチパネルディスプレイが用いられてもよい。またコンソール端末装置200はプリンタ、スキャナ等の印刷物を媒体として用いるユーザインタフェースを含んでよい。操作部60はユーザ操作を受け付け、そのユーザ操作に起因した信号を生成し、画像処理装置100に出力する。表示部70は画像処理装置100により生成された画像を表示する。
画像処理装置100はデプスマップ生成部10、デプスマップ加工部20、3D画像生成部30、操作受付部40、表示制御部50を含む。これらの構成はハードウエア的には、任意のプロセッサ、メモリ、その他のLSIで実現でき、ソフトウエア的にはメモリにロードされたプログラムなどによって実現されるが、ここではそれらの連携によって実現される機能ブロックを描いている。したがって、これらの機能ブロックがハードウエアのみ、ソフトウエアのみ、またはそれらの組合せによっていろいろな形で実現できることは、当業者には理解されるところである。例えばデプスマップ生成部10、デプスマップ加工部20、3D画像生成部30について、その機能を全てソフトウェアで実現してもよいし、デプスマップ生成部10および3D画像生成部30の機能を専用のロジック回路で構成しデプスマップ加工部20をソフトウェアで実現してもよい。
デプスマップ生成部10は、入力される2D画像とデプスモデルをもとに当該2D画像のデプスマップを生成する。デプスマップは、デプス値(奥行き値ともいう)を輝度値で表したグレースケール画像である。デプスマップ生成部10はシーン構造を推定して、そのシーン構造に適合的なデプスモデルを使用してデプスマップを生成する。本実施の形態ではデプスマップ生成部10は複数の基本デプスモデルを合成してデプスマップ生成に使用する。その際、当該2D画像のシーン構造に応じて複数の基本デプスモデルの合成比率を変化させる。
図3は、本発明の実施の形態1に係るデプスマップ生成部10の構成例を示す図である。デプスマップ生成部10は、画面上部高域成分評価部11、画面下部高域成分評価部12、合成比率決定部13、第1基本デプスモデル用フレームメモリ14、第2基本デプスモデル用フレームメモリ15、第3基本デプスモデル用フレームメモリ16、合成部17、加算部18を含む。
画面上部高域成分評価部11は、処理すべき2D画像の画面上部において高域成分を有する画素の割合を算出する。その割合を画面上部の高域成分評価値とする。なお画面全体に対する画面上部の割合は略20%に設定するとよい。画面下部高域成分評価部12は当該2D画像の画面下部において高域成分を有する画素の割合を算出する。その割合を画面下部の高域成分評価値とする。なお画面全体に対する画面下部の割合は略20%に設定するとよい。
第1基本デプスモデル用フレームメモリ14は第1基本デプスモデルを保持し、第2基本デプスモデル用フレームメモリ15は第2基本デプスモデルを保持し、第3基本デプスモデル用フレームメモリ16は第3デプスモデルを保持する。第1基本デプスモデルは画面上部及び画面下部をそれぞれ凹状の球面とするモデルである。第2基本デプスモデルは画面上部を縦方向に軸線を有する円筒面、画面下部を凹状の球面とするモデルである。第3基本デプスモデルは画面上部を平面、画面下部を横方向に軸線を有する円筒面とするモデルである。
合成比率決定部13は、画面上部高域成分評価部11および画面下部高域成分評価部12によりそれぞれ算出された、画面上部および画面下部の高域成分評価値をもとに第1基本デプスモデル、第2基本デプスモデル、第3基本デプスモデルの合成比率k1,k2,k3(ただし、k1+k2+k3=1)を決定する。合成部17はこれらの合成比率k1,k2,k3と、第1基本デプスモデル、第2基本デプスモデル、第3基本デプスモデルをそれぞれ乗算し、それぞれの乗算結果を加算する。この演算結果が合成基本デプスモデルとなる。
例えば合成比率決定部13は、画面上部の高域成分評価値が小さい場合は画面上部に空もしくは平坦な壁が存在するシーンと認識して、画面上部の奥行きを深くした第2基本デプスモデルの比率を増加させる。また画面下部の高域成分評価値が小さい場合は画面下部に平坦な地面もしくは水面が手前に連続的に広がるシーンと認識して、第3基本デプスモデルの比率を増加させる。第3基本デプスモデルでは、画面上部は遠景として平面近似し、画面下部は下に行くほど奥行きを小さくしている。
加算部18は、合成部17により生成された合成基本デプスモデルに上記2D画像の赤成分(R)信号を重畳してデプスマップを生成する。R信号を使用する理由は、R信号の大きさが順光に近い環境で、かつテクスチャの明度が大きく異ならないような条件において、被写体の凹凸と一致する確率が高いという経験則によるものである。また赤色および暖色は色彩学における前進色であり、寒色系よりも奥行きが手前に認識され、立体感が強調されるためである。
図2に戻る。デプスマップ加工部20は、デプスマップ生成部10により生成されたデプスマップを加工する。本実施の形態ではデプスマップ加工部20は、外部設定される複数のマスクパターン(以下、単にマスクという)により指定される画面内の複数の領域ごとに、デプスマップ生成部10により生成されたデプスマップを個別または独立に加工する。例えばゲイン調整、オフセット調整、グラデーション処理などの加工を行う。デプスマップ加工部20による処理の詳細は後述する。
3D画像生成部30は、上述の2D画像およびデプスマップ加工部20により加工されたデプスマップをもとに別視点の2D画像を生成する。3D画像生成部30は、オリジナル視点の2D画像と別視点の2D画像を右眼画像と左眼画像として出力する。
以下、オリジナル視点の2D画像とデプスマップを用いて当該2D画像と視差を持つ別視点の2D画像を生成する具体例を説明する。この具体例ではオリジナル視点の2D画像を画面表示させた場合の視点を基準にして、左に視点移動した別視点の2D画像を生成する。その場合、観察者に対してテクスチャを近景として表示させるときは画面に向かって左側へオリジナル視点の2D画像のテクスチャを所定量移動させ、テクスチャを観察者に遠景として表示させるときは画面に向かって右側へテクスチャを所定量移動させる。
デプスマップの各画素の輝度値をYd、飛び出し感を表す輻輳値をm、立体感を表す奥行き値をnとする。3D画像生成部30は輝度値Ydの小さい値から順に、その輝度値Ydに対応するオリジナル視点の2D画像のテクスチャを画素ごとに(Yd−m)/n画素分左にシフトする。(Yd−m)/nの値が負の場合、(m−Yd)/n画素分右にシフトする。なお観察者には、デプスマップの輝度値Ydの小さいテクスチャは画面奥側に見え、輝度値Ydの大きいテクスチャは画面手前に見える。輝度値Yd、輻輳値m、奥行き値nは0〜255の範囲の値であり、例えば、輻輳値m=200、奥行き値n=20に設定される。
なお、デプスマップ生成部10によるデプスマップ生成、および3D画像生成部30による3D画像生成のより詳細な説明は、本出願人が先に出願した特開2005−151534号公報、特開2009−44722号公報に開示されている。
操作受付部40は、コンソール端末装置200の操作部60から入力される信号を受け付ける。操作受付部40は、受け付けた信号に応じてデプスマップ生成部10、デプスマップ加工部20、3D画像生成部30または表示制御部50に制御信号を供給する。表示制御部50はコンソール端末装置200の表示部70を制御する。表示制御部50は表示部70に、2D入力画像、デプスマップ生成部10により生成されたデプスマップ、デプスマップ加工部20により加工されたデプスマップ、3D画像生成部30により生成された3D出力画像のいずれを表示させることもできる。
図4は、本発明の実施の形態1に係る画像編集システム500の全体処理プロセスを説明するための図である。一般的に2D画像には複数のオブジェクトが含まれる。図4の2D入力画像は3つのオブジェクトを含む。具体的には人物、木、背景のオブジェクトを含む。まずデプスマップ生成部10は、2D入力画像からデプスマップを生成する(ステップS10)。デプスマップは白に近いほど輝度が高く観察者との距離が近いことを示し、黒に近いほど輝度が低く観察者との距離が遠いことを示す。3D画像を生成する場合、デプスマップの白に近い領域ほど飛び出し量が大きくなり、黒に近い領域ほど引っ込み量が大きくなる。
本実施の形態では画像内の複数のオブジェクトに対して個別に奥行き感を調整するために、デプスマップ内の個々のオブジェクト領域に対して独立にエフェクト調整する。具体的には、画像中の個々のオブジェクト領域を表す複数のマスクを用いて、デプスマップ内に、個々のオブジェクト領域を特定する。そして特定されたオブジェクト領域ごとに個別にエフェクト調整し、エフェクト調整された複数のデプスマップを得る。そして、この複数のデプスマップを合成して一つのデプスマップを生成する。このデプスマップは、オリジナル視点の2D画像から別視点の2D画像を生成する際に使用される。
デプスマップ生成部10は2D入力画像のデプスマップを自動的に生成する(S10)。生成されたデプスマップは、デプスマップ加工部20に入力される。デプスマップ加工部20には、2D入力画像内の複数のオブジェクト領域をそれぞれ表す複数のマスクも入力される。これらのマスクはユーザによりトレースされたオブジェクト領域の輪郭をもとに生成される。例えば、表示制御部50は表示部70に2D入力画像を表示させ、ユーザはその2D入力画像内においてオブジェクト領域とすべき領域の輪郭を、操作部60を使用してトレースする。操作受付部40は操作部60からの信号により、個々のオブジェクト領域の輪郭情報を生成し、マスクとしてデプスマップ加工部20に出力する。なおユーザが印刷物上に描いた輪郭をスキャナにより読み取ることによりマスクを画像処理装置100に読み込ませてもよい。
図4では各マスクの有効領域を白で無効領域を黒で描いている。人物のマスクは人物の領域のみを有効とし、他の領域を無効とするパターンである。木のマスクは木の領域のみを有効とし、他の領域を無効とするパターンである。背景のマスクは背景のみを有効とし、他の領域を無効とするパターンである。
1画面あたりのマスクの数に制約はなく、ユーザが任意に設定できる。またオブジェクト領域はユーザが1つのオブジェクト領域にすべきと決定した領域に設定できる。例えば、図4に示すように1人の人物に1つのオブジェクト領域を設定しもよいし、人物の部位ごと、さらに各部位の部分ごとにオブジェクト領域を設定してもよい。特に高品質な3D画像を生成する際には、1人の人物に対しても多数のオブジェクト領域を設定し、部位ごと、さらに各部位の部分ごとに厚みや奥行き方向の位置を調整することもある。
デプスマップ加工部20は、デプスマップ生成部10から入力されるデプスマップ(以下、入力デプスマップという)を、ユーザインタフェースを介して入力される複数のマスクを用いて加工する(S20)。デプスマップ加工部20は各マスクで特定される領域ごとに、個別にデプスマップを加工する。以下、この領域別のデプスマップの加工をデプスマップのレイヤ処理と呼ぶ。またレイヤ処理されたデプスマップをレイヤデプスマップと呼ぶ。本明細書ではレイヤを、マスクの有効領域に対する処理の単位を示す概念として使用している。
図4では、一例としてデプスマップ加工部20は入力デプスマップから、人物のマスク(レイヤ1のマスク)を用いて人物の領域を特定してレイヤ処理している(S21a)。同様に入力デプスマップから、木のマスク(レイヤ2のマスク)を用いて木の領域を特定してレイヤ処理している(S21b)。同様に入力デプスマップから、背景のマスク(レイヤ3のマスク)を用いて背景の領域を特定してレイヤ処理している(S21c)。
デプスマップ加工部20は、レイヤ1〜3のレイヤデプスマップの各オブジェクト領域のデプスマップを合成する(S22)。この合成されたデプスマップを合成デプスマップと呼ぶ。3D画像生成部30は、この合成デプスマップを用いて2D入力画像の画素をシフトし、2D入力画像に対して視差を持つ画像を生成する(S30)。3D画像生成部30は2D入力画像を3D出力画像の右眼画像(R)とし、生成した画像を左眼画像(L)として出力する。
(ゲイン調整)
まず、デプスマップ加工部20によるレイヤ処理としてゲイン調整する例を説明する。ゲイン調整はオブジェクトの奥行き方向の厚みを調整する処理である。ゲインを上げるとオブジェクトが厚くなり、ゲインを下げるとオブジェクトが薄くなる。
図5は、入力デプスマップのゲイン調整プロセスを説明するための図である。デプスマップ加工部20は、加工前のデプスマップである入力デプスマップに対して、人物のマスクの有効領域だけにゲインを乗算して、入力デプスマップ内の人物の部分のみデプス値の振幅を大きくする(S21a)。図5において加工後のデプスマップであるレイヤデプスマップは人物の部分の振幅が大きくなっている(符号a参照)。
図6は、レイヤデプスマップの合成処理プロセスを説明するための図である。デプスマップ加工部20は、レイヤ1のレイヤデプスマップ(人物のデプスマップ)のうち、レイヤ1のマスク(人物のマスク)の有効領域のみを切り出す。同様にレイヤ2のレイヤデプスマップ(木のデプスマップ)のうち、レイヤ2のマスク(木のマスク)の有効領域のみを切り出す。同様にレイヤ3のレイヤデプスマップ(背景のデプスマップ)のうち、レイヤ3のマスク(背景のマスク)の有効領域のみを切り出す。デプスマップ加工部20は、切り出した3つのデプスマップを組み合わせて合成デプスマップを生成する。
図7は、マスクを使用しない入力デプスマップのゲイン調整プロセスを説明するための図である。レイヤデプスマップの合成の際、各レイヤデプスマップのマスクの有効領域のみを用いて合成するのであれば、各レイヤデプスマップのマスクの無効領域は合成デプスマップに反映されないことになる。よって、デプスマップ加工部20は入力デプスマップ全体にゲインを乗算して、入力デプスマップ全体のデプス値の振幅を大きくする(S21a)。図7においてレイヤデプスマップは全体の振幅が大きくなっている(符号b参照)。
図8は、3D画像生成部30による3D画像生成プロセスを説明するための図である。3D画像生成部30は合成デプスマップをもとに2D入力画像の画素をシフトし、2D入力画像に対して視差を持つ画像を生成する(S30)。図8では2D入力画像内の人物部分の画素を左にシフトする例を示している。3D画像生成部30は合成デプスマップの人物部分のデプス値にオフセット値を加算してデプス値を大きくする。なおオフセット調整の詳細は後述する。人物部分のデプス値が大きくなると、3D画像の人物部分の飛び出し量が大きくなる。
人物部分の周囲の背景部分を画素シフトせずに人物部分のみを画素シフトすると、画素が存在しない欠落画素部分が発生する(補正前の画素シフト画像の符号c参照)。3D画像生成部30は、この欠落画素部分をその周辺画素から生成した画素で補間して欠落画素部分を補正する。画素補間には様々な方法があるが、例えば人物部分の境界の画素で補間する(補正後の画素シフト画像の符号d参照)。
(オフセット調整)
次に、デプスマップ加工部20によるレイヤ処理としてオフセット調整する例を説明する。オフセット調整はオブジェクトの奥行き方向の位置を調整する処理である。正のオフセット値を加算するとオブジェクトが飛び出し方向に移動し、負のオフセット値を加算すると引っ込み方向に移動する。
図9は、入力デプスマップのオフセット調整プロセスを説明するための図である。デプスマップ加工部20は、加工前のデプスマップである入力デプスマップに対して、木のマスクの有効領域だけにオフセットを加算して、入力デプスマップ内の木の部分のみデプス値のレベルを高くする(S21b)。図9において加工後のデプスマップであるレイヤデプスマップは木の部分のレベルが高くなっている(符号g参照)。
図10は、マスクを使用しない入力デプスマップのオフセット調整プロセスを説明するための図である。レイヤデプスマップの合成の際、各レイヤデプスマップのマスクの有効領域のみを用いて合成するのであれば、各レイヤデプスマップのマスクの無効領域は合成デプスマップに反映されないことになる。よって、デプスマップ加工部20は入力デプスマップ全体にオフセットを加算して、入力デプスマップ全体のデプス値のレベルを高くする(S21b)。図10においてレイヤデプスマップは全体のレベルが高くなっている(符号h参照)。
オフセット調整する際に使用するオフセット値は外部から設定される。ユーザは操作部60を使用して所望のオフセット値を入力し、操作受付部40は操作部60から入力されるオフセット値を受け付けてデプスマップ加工部20に設定する。以上の説明ではデプスマップのオブジェクト領域にオフセット値を加算する例を示したが、合成デプスマップにオフセット値を加算してもよい。
デプスマップのオフセット領域ではなく合成デプスマップをゲイン調整すると、意図どおりのゲイン調整ができない場合がある。以下、デプスマップのデプス値のダイナミックレンジを拡大または縮小し、画面全体の奥行き感を強めたり弱めたりする場合を想定する。以下の説明では、奥行き感を強める場合について説明するが、逆に奥行き感を弱める場合についても同様である。
画面全体の奥行き感を強めるための方法として、合成デプスマップに対して均一にゲインを掛ける方法が考えられる。しかしながら、この方法ではデプス値のダイナミックレンジが拡大されると同時に、個々のオブジェクトの凹凸感の振幅も拡大される。後者の拡大も調整の意図に適っていればよいが、そうでない場合もある。
以下、デプス値のダイナミックレンジは拡大するが、個々のオブジェクトの凹凸感の振幅は変化しない調整方法について説明する。デプスマップ加工部20は、デプスマップ全体のデプス値の平均値と、デプスマップ内の各オブジェクト領域内におけるデプス値の平均値との各差分に、デプスマップ全体のダイナミックレンジを調整するための共通の係数を掛ける。各演算結果は各オブジェクト領域内におけるデプス値のオフセット値となる。デプスマップ加工部20は、各オブジェクト領域内におけるデプス値に、対応する各オフセット値を加算する。
以下、具体例を挙げて説明する。合成デプスマップのデプス値が−X〜+Xに分布しているとし、このデプス値の分布−X〜+Xをデプス値のダイナミックレンジとする。以下デプス値のダイナミックレンジを拡大する例を考える。例えばデプス値のダイナミックレンジを1.5倍にして、デプス値の分布を−X〜+Xから−1.5X〜+1.5Xに変更する。個々のオブジェクトの凹凸感の振幅を変化させずに、デプス値のダイナミックレンジを拡大させるために以下の処理を実行する。
まずデプスマップ加工部20はデプスマップ全体におけるデプス値の最小値、最大値、平均値をそれぞれ算出する。当該最小値と当該最大値の差が、デプス値のダイナミックレンジである。次にデプスマップ加工部20はデプスマップの各オブジェクト領域内におけるデプス値の平均値を算出する。次にデプスマップ加工部20は各オブジェクト領域内におけるデプス値の平均値から、デプスマップ全体におけるデプス値の平均値を減算する。この減算結果をレイヤデプスの平均差分と呼ぶ。
以下、デプス値のダイナミックレンジをa倍に拡大したい場合を考える。デプスマップ加工部20は、各レイヤデプスの平均差分をa倍する。次にa倍した各レイヤデプスの平均差分から、各レイヤデプスの平均差分を減算する。この減算結果を、各レイヤデプスの平均差分のオフセット値と呼ぶ。最後にデプスマップ加工部20は、各レイヤデプスの平均差分のオフセット値を、デプスマップの各オブジェクト領域内におけるデプス値に加算する。
これにより、各レイヤデプスマップではデプス値のオフセット値だけが変化し、デプス値の振幅値は変化しない。従って個々のオブジェクトの凹凸感の振幅を変化させずに、デプス値のダイナミックレンジを拡大できる。
図11(a)−(c)は、デプスマップ全体のダイナミックレンジ調整を説明するための図である。ここまで2D入力画像内のレイヤ数が3の例を説明してきたが、図11(a)−(c)ではレイヤ数が5(レイヤ0〜レイヤ4)の例を示している。観察者から見てレイヤ0のオブジェクトが最も引っ込んで見え、レイヤ4のオブジェクトが最も飛び出して見える。
図11(a)は、ダイナミックレンジ調整前の各レイヤのデプスの一例を示す。各レイヤにおいて矢印(符号l参照)は、各レイヤのオブジェクト領域におけるデプス値の最小値(符号j参照)と、最大値(符号k参照)により規定される。即ち矢印(符号l参照)は各レイヤのダイナミックレンジを示している。各矢印を結ぶ線は、各レイヤのオブジェクト領域におけるデプス値の平均値(符号i参照)を結んだ線である。
図11(b)は、図11(a)の各レイヤのデプスに、均一に2倍のゲイン調整を適用した後の各レイヤのデプスを示す。デプスマップ全体のダイナミックレンジが2倍に拡大されると同時に、各レイヤのオブジェクト領域のダイナミックレンジ、即ち各レイヤの凹凸感の振幅も2倍に拡大されている。
図11(c)は、図11(a)の各レイヤのデプスに、上述したオフセット調整を適用した後の各レイヤのデプスを示す。デプスマップ全体のダイナミックレンジは2倍に拡大されるが、各レイヤのオブジェクト領域のダイナミックレンジ、即ち各レイヤの凹凸感の振幅は変化しない。例えばオブジェクトとして複数の人物が画面に存在する場合において、各人物の厚みは変化させずに各人物間の距離を調整することにより、奥行き感を強めることができる。
(グラデーション付加)
次に、デプスマップ加工部20によるレイヤ処理としてグラデーションを付加する例を説明する。グラデーションの付加は、個々のオブジェクトの奥行きに傾斜を付ける処理である。
図12は、入力デプスマップのグラデーション付加プロセスを説明するための図である。デプスマップ加工部20は、加工前のデプスマップである入力デプスマップに対して、背景のマスクの有効領域だけ(図12では地面だけ)に、グラデーションを付加して背景の部分のみデプス値に傾斜を付けている(S21c)。図12において加工後のデプスマップであるレイヤデプスマップは地面の奥行きに傾斜がついている(符号m参照)。
以下より具体的に説明する。図示しないグラデーションパターン保持部はあらかじめ生成された少なくとも一つのグラデーションパターンを保持している。グラデーションパターン保持部は、図12に示すように平面のグラデーションパターンだけでなく、球面、円筒など様々な形状のグラデーションパターンを保持してもよい。また同じ形状のグラデーションパターンであっても、傾斜角度および/または傾斜方向が異なる複数のグラデーションパターンを保持してもよい。
ユーザは操作部60を使用して、当該グラデーションパターン保持部に保持される複数のグラデーションパターンを表示部70に表示させ、その中から1つを選択できる。操作受付部40は操作部60からの入力を受け付けて、その入力に対応するグラデーションパターンを取得してデプスマップ加工部20に出力する。
デプスマップ加工部20には、デプスマップ生成部10から入力デプスマップ、外部からマスク、グラデーションパターン保持部からグラデーションパラメータがそれぞれ入力される。デプスマップ加工部20は入力デプスマップ内のマスクの有効領域に、グラデーションパターンを加算する。
図13は、マスクを使用しない入力デプスマップのグラデーション付加プロセスを説明するための図である。レイヤデプスマップの合成の際、各レイヤデプスマップのマスクの有効領域のみを用いて合成するのであれば、各レイヤデプスマップのマスクの無効領域は合成デプスマップに反映されないことになる。よって、デプスマップ加工部20は入力デプスマップ全体にグラデーションを付加して、入力デプスマップ全体のデプス値に傾斜をつける(S21c)。図13においてレイヤデプスマップは全体に傾斜がついている(符号n参照)。
上記の説明では、デプスマップに付加すべきグラデーションパターンを、あらかじめ生成された典型的なグラデーションパターンから選択する例を説明した。以下、デプスマップに付加すべきグラデーションパターンを、制御パラメータにより指定する例を説明する。デプスマップ加工部20は、外部設定される、それぞれ独立に調整可能なグラデーションの傾斜パラメータ及び方向パラメータをもとに、デプスマップのオブジェクト領域にグラデーションを付加する。さらに外部設定されるオフセットパラメータをもとに、デプスマップの指定領域をオフセット調整しつつグラデーションを付加することもできる。
ユーザは操作部60を使用して、当該グラデーションの傾斜パラメータ、方向パラメータ、オフセットパラメータを入力できる。操作受付部40は操作部60からの入力を受け付けてデプスマップ加工部20に出力する。
デプスマップにグラデーションを付加する処理は、デプスマップの各画素に対してグラデーションの角度と傾斜に応じた、グラデーションデプス値を加算することで実現できる。この処理を行うための制御パラメータとして、Slope、Angleを使用する。Slopeは1画素あたりのデプス値の変化値で規定される。以下、説明を単純化するためデプス値が比例関数的に変化する傾斜モデルを考える。なおデプス値が指数関数的に変化する等、傾斜モデルには他にも様々な種類がある。
Slope:グラデーションの傾斜 [デプス値/画素]
Angle:グラデーションの画像に対する角度 [degree]
グラデーションは、画面の中心を基準に付加するとし、画面の中心の座標を(x,y)=(0,0)とする。これを基準とした、画像上の任意の画素の座標を(x,y)=(x_base,y_base)とする。X軸方向、Y軸方向それぞれのグラデーションの傾斜値をslope_x、slope_yとすると、slope_x、slope_yは下記式(1)、式(2)で表される。
slope_x=slope*cosθ=slope*cos(2π*(Angle/360)) …式(1)
slope_y=slope*sinθ=slope*sin(2π*(Angle/360)) …式(2)
ある座標における、X軸方向、Y軸方向それぞれのグラデーションデプス値をgrad_depth_x、grad_depth_yとすると、grad_depth_x、grad_depth_yは下記式(3)、式(4)で表される。
grad_depth_x=Slope_x*x_base …式(3)
grad_depth_y=Slope_y*y_base …式(4)
デプスマップにグラデーションを付加するために、各画素のデプス値に加算するグラデーションデプス値をgrad_depthとすると、grad_depthは下記式(5)で表される。
grad_depth=grad_depth_x+grad_depth_y …式(5)
上記式(5)により求めたグラデーションデプス値を、デプスマップの各画素に加算することにより、デプスマップにグラデーションを付加することができる。グラデーションの傾斜は上記Slopeの値を、グラデーションの画像に対する角度は上記Angleの値を変化させることにより自在に設定できる。
以上、式(1)〜式(5)を用いてデプスマップにグラデーションを付加する方法について説明した。この方法ではグラデーションデプス値は画面の中心を基準に付加されるため、画面中心ではデプスマップのデプス値は変化しない。以下、デプスマップにグラデーションを付加すると同時にオフセットも加算し、任意ポジションにおいて任意レベルのグラデーションを付加する方法について説明する。
加算するオフセット値を制御するパラメータとしてOffsetを使用する。
Offset:グラデーションのオフセット
デプスマップにグラデーションを付加する際に各画素に加算する、オフセット値も含むグラデーションデプス値をgrad_offset_depthとすると、grad_offset_depthは下記式(6)で表される。
grad_offset_depth=grad_depth_x+grad_depth_y+Offset …式(6)
これにより、画面の任意ポジションにおいて任意レベルのグラデーションを付加することができる。以上の説明では、デプスマップのオブジェクト領域にグラデーションを付加する例を場合を示したが、合成デプスマップにグラデーションを付加してもよい。
以上説明したように実施の形態1によれば、2D画像から3D画像を生成する際に、ユーザの手間を軽減しつつ高品質な3D画像を生成できる。即ちデプスマップ生成部10によりシーン構造を推定して複数の基本デプスモデルの合成比率を変化させることにより、自動処理によりシーン構造を反映させたデプスマップを生成できる。さらに、ユーザの指示を反映させたデプスマップ加工部20により、当該デプスマップ内のオブジェクト毎に個別にデプスマップを加工する。これにより高品質な3D画像を生成できるとともに、同様の品質の3D画像を2D画像からユーザが一から生成する場合と比較し、大幅に作業量を削減できる。
図1に示す2D3D変換で使用されるデプスマップは、画面全体に対するデプス値を保持する。このデプスマップに対してゲイン調整またはオフセット調整することにより、画面全体の奥行き感を自在に調整できる。またこのデプスマップに対してグラデーションを付加することにより、画面全体の奥行き度合いの傾斜を自在に調整できる。
しかしながら、一般に画像中には複数のオブジェクトが存在する。本明細書の例では人物、木、背景が存在する。仮に人物部分の奥行き感を調整するために、デプスマップをゲイン調整して人物部分の奥行き感を強調したとすると、これに伴い人物以外の木や背景の奥行き感も同時に変化してしまう。従って人物部分の奥行き感だけを独立して調整することは困難である。また仮に、木の部分の奥行き感を調整するために、デプスマップをオフセット調整して木の部分の奥行き感を強調したとすると、これに伴い木以外の人物や背景の奥行き感も同時に変化してしまう。従って木の部分の奥行き感だけを独立して調整することは困難である。また仮に、背景部分の奥行きに傾斜をつけるために、デプスマップにグラデーションを付加すると、これに伴い背景以外の人物や木の部分の奥行きにも同時に傾斜がついてしまう。従って背景部分の奥行きだけに傾斜をつけることは困難である。
これに対して実施の形態に係る画像編集システム500によれば、画像中の個々のオブジェクトの凹凸度合い及びその傾斜を自由に独立に可変できる。従ってユーザは、実施の形態に係る2D3D変換で使用されるデプスマップをもとに生成される3D画像の遠近感を、画像中の個々のオブジェクト毎に自由に独立して制御できる。よって高品質な3D画像を生成できる。
次に実施の形態2について説明する。実施の形態1では、マスクを用いてオブジェクト単位でデプスマップを加工し、オブジェクトに立体感を与える手法を示した。この手法はオブジェクト単位での立体感を強調するのに有効である。ただし、オブジェクト内部のボリューム感を強調することは難しいため、オブジェクトそのものはボリューム感の乏しい平面的な画像となる。
実施の形態2では、平面的であったり局所的に凹凸だけが付いた3D画像ではなく、オブジェクト全体にボリュームが付いた、より立体感のある3D画像を生成する手法を示す。その手法は3D画像を生成する基となるデプスマップに対して、以下の処理を施すことにより実現される。まずオブジェクトの形状を特定する。次にオブジェクトの形状に合わせた立体感を推定する。次に推定した立体感に沿ったグラデーション状のエンボスパターンを生成する。最後に生成したエンボスをデプスマップに加算する。
これらの処理により、オブジェクトの形状に合ったエンボスが付加されたデプスマップを生成できる。このデプスマップを用いて3D変換することにより、オブジェクト全体にボリュームが付いた、より立体感のある3D画像を生成できる。
実施の形態2に係るデプスマップ加工部20は、外部設定される複数のマスクにより指定される複数のオブジェクト領域ごとに、デプスマップ生成部10により生成されるデプスマップの形状を個別に調整する。その際、後述するボリュームエンボスパターンを使用することにより、オブジェクト領域内の中央部が、周辺部と異なるデプス値を持つよう加工する。具体的にはオブジェクト領域内の中央部が、周辺部に比べて、より飛び出し量の大きいデプス値を持つように加工する。より好ましくはオブジェクト領域内において周辺部から中央部にいくに従って、周辺部に比べて中央部の飛び出し量がなだらかに変化するように加工する。さらに好ましくはオブジェクト領域内において、丸みを帯びたデプス形状になるように加工する。以下、具体的に説明する。
図14は、実施の形態2に係る画像編集システム500の構成を示す図である。実施の形態2に係る画像編集システム500における画像処理装置100は、図2の実施の形態1に係る画像処理装置100にボリュームエンボス生成部80が追加された構成である。ボリュームエンボス生成部80は、入力されるマスク内のオブジェクトの輪郭の形状をもとに、そのオブジェクトのエンボスを生成する。このエンボスはオブジェクトのデプスの形状を推定したものであるため、ボリュームエンボス生成部80はデプス推定装置ともいえる。
図15は、実施の形態2に係るボリュームエンボス生成部80の構成を示す図である。ボリュームエンボス生成部80は、輪郭特定部81、距離特定部82、デプス値決定部83及びレベル変換部84を含む。
輪郭特定部81は、入力されるマスクをもとに、オブジェクトの輪郭部分の位置を特定する。このマスクはデプスマップ加工部20に入力されるマスクと同じものである。
距離特定部82は、オブジェクト領域内の対象画素と、輪郭特定部81により特定された当該オブジェクトの輪郭との最短距離を求める。例えば対象画素の位置を中心とする同心円状に広がる探索円を用いて、輪郭との接点を探索することにより、当該最短距離を求める。この探索方法の詳細は後述する。ここで同心円状に広がるとは、一周するごとに一画素ずつ広がる例に限らず、螺旋状に広がっていってもよい。また簡易モードとして数画素(例えば、4画素)単位で探索円を広げていってもよい。この場合、精度は低下するが、輪郭に到達するまでの時間は短縮される。距離特定部82は、オブジェクト領域内の全画素について当該輪郭との最短距離を求める。
デプス値決定部83は、距離特定部82により求められた最短距離に応じて対象画素のデプス値を決定する。デプス値決定部83は、この最短距離が長いほど飛び出し量を大きくする。本明細書では、より飛び出し量の大きいデプス値を持つように加工する。これはオブジェクト領域内においてその輪郭から内側に侵入するほど膨らみを大きくするモデルにもとづく。距離特定部82によりオブジェクト領域内の全画素について輪郭との最短距離が求められるため、オブジェクト領域内の全画素についてデプス値が決定される。したがってオブジェクトのデプスマップに基づくエンボスパターンが生成される。
レベル変換部84は、デプス値決定部83により生成されたエンボスパターンを、写像関数または数値変換テーブルを用いてレベル変換する。このレベル変換により、デプス値決定部83により決定されたデプスの形状を任意の形状に加工できる。レベル変換の具体例は後述する。
デプスマップ加工部20は上述のレイヤデプスマップを生成するとともに、そのレイヤデプスマップを、ボリュームエンボス生成部80により生成されたオブジェクトのエンボスパターンをもとに加工する。具体的にはデプスマップ加工部20は、デプスマップ生成部10により生成されたデプスマップをレイヤ処理して複数のレイヤデプスマップを生成する。レイヤ処理には実施の形態1で説明したようにゲイン調整、オフセット調整およびグラデーション付加が含まれる。デプスマップ加工部20は、各オブジェクト領域のデプスマップに対して指定されたレイヤ処理を施す。デプスマップ加工部20は生成したレイヤデプスマップに対して、ボリュームエンボス生成部80により生成された対応するオブジェクトのエンボスパターンを加算する。
なおデプスマップ加工部20は、デプスマップ生成部10により生成されたデプスマップにレイヤ処理せずに、そのデプスマップの各オブジェクト領域に対して、ボリュームエンボス生成部80により生成されたそれぞれ対応するオブジェクトのエンボスパターンを加算してもよい。
デプスマップ加工部20は、加工した複数のレイヤデプスマップを合成する。これにより2D3D変換により使用されるデプスマップが生成される。
以下、具体例を挙げながら実施の形態2に係るデプスマップ加工部20による加工処理についてより詳細に説明する。上述したように実施の形態2ではオブジェクト全体に立体感のあるボリュームを付与するために以下の処理を実行する。まずオブジェクトの形状を特定する。次にオブジェクトの形状に合わせた立体感を推定する。次に推定した立体感に沿ったグラデーション状のエンボスパターンを生成する。最後に生成したエンボスをデプスマップに加算する。
図16(a)−(c)は、実施の形態2に係る、オブジェクトのデプスマップの生成方法を説明するための図である。輪郭特定部81に入力されるマスクは、オブジェクトの輪郭に沿って描かれ、オブジェクトの外側と内側とを白黒のパターンで塗り分けたものである。マスクの形状から、オブジェクトの凡その外形が推定できる。
図16(a)は原画の一例を示し、図16(b)はその原画のマスクの一例を示す。図16(b)に示すマスクは原画内の人物のマスクである。その人物のマスクは頭部と胴体の両方を含むマスクである。
オブジェクトの形状に合わせた立体感を推定するために、以下の3つの経験則から推定されるモデルを定義する。第1にオブジェクトは全体に丸みを持っている。第2にオブジェクトはその端に比べて中央がより盛り上がった構造をしている。第3にオブジェクトは幅が狭い部分より広い部分のほうがより盛り上がった構造をしている。
例えば、オブジェクトとして人物を想定する場合、頭部は球形に近く、胴体は円柱に近い長楕球に近い構造をしている。また、腕や首などの細い部分に比べて、胴体などの太い部分は、より厚みのある構造をしている。このような経験則に基づいて、上記のモデルを定義できる。
推定した立体感に沿ったグラデーション状のエンボスパターンを生成するために、以下の処理を実行する。まずオブジェクトの内部のエリア、つまりマスクが有効なエリアを特定する。本明細書ではマスク内の当該エリアは白になる。
次に距離特定部82は、そのエリア内の特定のマスク画素に対して、その画素から最も近いマスクエッジまでの距離を測定する。求めた距離は、その画素がオブジェクト領域内でどの程度中央寄りにあるかを示す指標となる。距離が大きいほど、その画素がオブジェクト領域内で中央寄りに位置することになる。距離特定部82は、オブジェクトの外部のエリア、つまりマスクが無効のエリアの画素について距離をゼロに設定する。本明細書ではマスク内の当該エリアは黒になる。
デプス値決定部83は、このようにして求めた距離情報を輝度情報に変換して、画像テーブルを作成する。これにより、オブジェクトの外側のエリアはゼロであり、内側のエリアは中央にいくに従って輝度が高くなる、グラデーション状のエンボスパターンを生成できる。以下、これをボリュームエンボスと呼ぶ。
図16(c)は、図16(b)のマスクを用いて生成された人物のボリュームエンボスの一例を示す。色の明るい部分が飛び出し部分を示す。また、マスク無効エリアに相当する領域のグレーは、デプス値がゼロであることを示す。
最後に、デプスマップ加工部20は、生成されたボリュームエンボスをレイヤデプスマップに加算する。これにより、オブジェクトの形状に合わせたボリュームエンボスがオブジェクトに付加され、さらにオブジェクト内部の個々の部分に細かい凹凸が付加されたデプスマップを生成できる。このデプスマップを用いて3D変換することにより、オブジェクト全体にボリューム感と細かい凹凸感が付加された、より立体感のある3D画像を生成できる。
以下、オブジェクト領域内の特定の画素について、その画素からマスクエッジまでの最短距離を測定する具体的手法について説明する。距離特定部82は、オブジェクト領域内にある、測定対象のマスク画素ポジションを中心に、近隣のマスク画素を探索する。探索は、測定対象画素に近い画素から遠い画素の順に行う。例えば、測定対象画素を中心に、所定の角度と半径で決まる探索ポジションを規定し、角度が360°変化する毎に半径を徐々に小さいほうから大きいほうに変化させて探索ポジションを移動させる。この探索の過程で、黒いマスク画素が最初に見つかったときが、測定対象画素から最も近いマスクエッジを見つけたことに相当する。距離特定部82は、測定対象画素と、発見した黒いマスク画素との距離を求める。これにより測定対象画素からマスクエッジまでの最短距離を求めることができる。この距離は、測定対象画素がオブジェクト領域内でどの程度中央寄りにあるかを示す指標となる。
図17(a)−(b)は、オブジェクト領域内の対象画素からマスクエッジまでの最短距離を探索する処理を説明するための図である。図17(a)は図16(b)に示したマスクにおいて、オブジェクト領域内の画素からマスクエッジまでの最短距離を渦巻状に探索する様子を示している。図17(a)では人物の頭部を構成する画素の、マスクエッジまでの最短距離を探索する様子を示している。図17(b)は図17(a)に示すマスク内の人物の頭部およびその周辺を切り出して拡大した図である。
以下、図17(b)に示すマスクにおいてオブジェクト領域の任意の画素からマスクエッジまでの最短距離を求める手法を具体的に説明する。図17(b)においてオブジェクト領域は白い領域であり、マスクエッジは白い領域と黒い領域の境界である。オブジェクト領域の任意の画素の座標を(x0,y0)と定義する。
距離特定部82は、(x0,y0)を基点に渦巻状にマスク画素を探索する。即ち、(x0,y0)を中心とした円の円周上の座標の画素を順に探索し、一周分の探索が終了すると円の半径を一単位増加させる。この探索を黒いマスク画素が見つかるまで繰り返す。円の半径を一単位増加させつつ探索するため、最初に見つかった黒いマスク画素の座標が、基点(x0,y0)から最短距離にあるマスクエッジの座標となる。
探索円の半径をr、角度をθとすると、探索画素の座標(x,y)は下記式(7)、式(8)で表される。
x=r*cosθ+x0 …式(7)
y=r*sinθ+y0 …式(8)
最初に黒いマスク画素が見つかったときの探索画素の座標を(x1,y1)とすると、基点(x0,y0)と探索点(x1,y1)の距離Lは、下記式(9)で表される。この距離Lが、基点(x0,y0)からマスクエッジまでの最短距離に相当する。
L=√((x1-x0)2+(y1-y0)2) …式(9)
以上説明した、対象画素からマスクエッジまでの最短距離を求める手法は一例であり、最短距離を求めることができれば、他の手法を用いてもよい。
図18は、ボリュームエンボスの輝度変化を示す図である。図19(a)−(c)は、ボリュームエンボスのレベル変換を説明するための図である。デプス値決定部28により生成されるボリュームエンボスは、距離特定部82により求められた距離情報をそのまま輝度情報に変換したものである。図18に示すボリュームエンボス内のA点からB点を結ぶ直線上の距離情報、即ちその直線上の輝度情報は、図19(a)に示すように折れ線形状となる。
オブジェクトの形状は丸みを持っている場合が多い。図19(a)に示すような折れ線形状のエンボスパターンでは、実際の立体感と一致しない場合が多くなる。この対策として、曲線関数による写像を用いて、直線形状の輝度変化を曲線形状の輝度変化にレベル変換する。これにより、より実際のオブジェクト形状に近いボリュームエンボスパターンに変換できる。図19(b)は図19(a)の折れ線形状の輝度変化を、曲線形状の輝度変化に変換する様子を示す。図19(b)に示す例では、レベル変換を行うための曲線関数の一例として逆正接関数(アークタンジェント関数)を用いている。
図19(c)は、逆正接関数の特性を示す図である。図19(c)内に記載されている式のa、bは係数を示す。このように逆正接関数による写像を用いて、直線形状の輝度変化を曲線形状の輝度変化にレベル変換する。これにより、より実際のオブジェクト形状に近い、丸みを帯びたボリュームエンボスパターンを生成できる。
なお図19(c)の逆正接関数は一例である。その係数を変化させることにより、任意形状に変形した曲線を用いてもよい。また、逆正接関数に限らず他の種別の曲線関数を使用してもよい。またオブジェクトの形状に応じて複数の種類の曲線関数を使い分けてもよい。逆正接関数は丸みを持ったエンボスパターンを生成するための曲線関数の一例であるが、オブジェクトの形状によっては、丸くない形状のエンボスパターンを生成する関数を使用してもよい。また関数ではなく変換係数テーブルを用いてレベル変換処理してもよい。また、写像をあえて行わず、元の折れ線形状のままのエンボスパターンを用いてもよい。
以上説明したように実施の形態2によれば、デプスマップに対して、オブジェクトの形状に合わせたボリュームエンボスを付加できる。このデプスマップを用いて3D変換することにより、オブジェクト全体にボリューム感が付いた、よりリアルで立体感のある3D画像を生成できる。またこのボリュームエンボスを自動で生成できるため、ユーザの負担が増大することもない。
実施の形態2に係るボリュームエンボス生成部80(デプス推定装置)は、マスクに限らず写真、CGを含む画像全般に適用可能である。また輪郭特定部81は、画像内のオブジェクト領域を既存の手法を用いて自動的に検出することもできる。例えば、画像にハイパスフィルタをかけることにより画像内のエッジを検出できる。
一般的な画像加工アプリケーションには、オブジェクトにグラデーションを付加する機能を搭載しているものが多い。実施の形態2に係るデプス推定装置は、3D画像の生成を目的とせず、2D画像内のオブジェクトへのグラデーション付加を目的とする処理にも適用可能である。
汎用的な画像加工アプリケーションにおけるグラデーション付加機能は、オブジェクトのデプスの形状を考慮しないものが多い。この場合、自然なグラデーションとするにはユーザによる調整作業が必要となる。CG作成用など高性能な画像処理アプリケーションでは、オブジェクトのデプスの形状を考慮してグラデーションを付加するものがある。例えば、オブジェクト図形の重心を求めて、重心が最も膨らむようにグラデーションを付加するものがある。
このような重心を求める手法と比較して、実施の形態2に係るデプス推定装置を用いるほうが、デプスの形状を精度よく推定できる。円などの単純な形状の場合、両者の間で精度の違いがほとんど発生しないが、複雑な形状の場合、両者の間で大きな精度の違いが発生する。
図20(a)−(b)は、複雑なオブジェクト形状のボリュームエンボスの一例を示す図である。図20(a)は図16(b)と同様に人物のマスクであるが、頭部と胴体に加えて両腕と隣の人の左腕もオブジェクトに含まれる。図20(b)は、図20(a)のマスクを用いて生成されたオブジェクトのボリュームエンボスの一例を示す。生成されたボリュームエンボスは、それぞれの部位において中央の部分のボリュームが大きくなっている。これは自然でリアルなボリュームエンボスといえる。
これに対して重心を求める手法では、図20(a)のような複雑な形状の場合、そもそも重心を求めること自体が非常に難しい。また仮に重心が求められたとしても、その重心の位置のボリュームを最も大きくして徐々に小さくするという手法では不自然なボリュームエンボスとなる。図20(a)のような人物のオブジェクトの場合、本来、部位ごとに重心が求められる必要がある。したがって重心を求める手法を使用する場合、単純な形状の部品ごとにグラデーションを付加して複数の部品を組み合わせる必要がある。その場合、部品間のグラデーションに不整合が生じやすい。また部品を組み合わせるユーザの作業が必要となる。また重心を求める手法では、ドーナツなど重心を特定しづらい形状への適用が困難である。
これに対して実施の形態2に係るデプス推定装置を用いる場合、どのような形状のオブジェクトであっても一つのオブジェクトとして処理でき、生成されるボリュームエンボスの精度も高い。対象画素からエッジまでの距離を算出するというシンプルなアルゴリズムであるため汎用性が高く、ドーナツなどの特殊な形状でも高精度なボリュームエンボスを生成できる。
次に実施の形態3について説明する。オブジェクトに立体感を与えるために、デプスマップに加算するエンボスを生成する手法の一つに、画像中の画素の情報を用いてエンボスを生成する手法がある。この手法は、オブジェクトの個別の部分に凹凸を与えることはできても、オブジェクト全体にボリューム感を与えることは困難な場合がある。
また、マスクを用いてオブジェクト単位でデプスマップを加工し、オブジェクトに立体感を与える手法がある。この手法は、オブジェクト単位での立体感の強調はできても、オブジェクト内部のボリューム感を強調することはできず、オブジェクトそのものはボリューム感の乏しい平面的な画像となる。
そこで実施の形態2では、オブジェクトに対して立体感を与えるために、その形状から推定される適切なエンボスパターンを生成する手法を示した。これにより、平面的な画像でなく、また局所的に凹凸だけが付いた3D画像でなく、オブジェクト全体にボリュームが付いた、より立体感のある3D画像を生成できる。
実施の形態2の方法で生成されるエンボスパターンは、オブジェクト内の任意の点からオブジェクトのエッジまでの距離に応じて一義に決定される。従って、生成されるエンボスパターンの頂点や尾根の位置、形状などは一義的に決定される。このエンボスパターンの頂点および尾根の位置は、これを用いて変換された3D画像では、最も飛び出している位置に相当する。
実施の形態2の方法であっても、画像内におけるオブジェクトのデプスの形状を簡単かつ高精度に推定できるが、実際の画像では、実施の形態2の方法で決定されるエンボスパターンの頂点や尾根の位置、形状などは、オブジェクトの最も飛び出している位置に一致するとは限らないことがある。以下、説明する実施の形態3によれば、画像内におけるオブジェクトのデプスの形状をさらに高精度に推定できる。以下、実施の形態3を用いるとより有効な場合について、具体的な例を挙げながら説明する。
図21(a)−(b)は、正面を向いている人物のエンボスパターンを示す図である。図21(a)は原画を、図21(b)はエンボスパターンを示す。図21(b)内の点線は原画のオブジェクトパーツの位置を示す補助線である。白が飛び出し方向を示している。図21(a)に示すように、人物が正面を向いている画像の場合には、最も飛び出している位置は顔の中心(鼻)であると推定される。図21(b)に示すエンボスパターンでは、エンボスの頂点の位置と、オブジェクトの飛び出し位置が一致している。このエンボスパターンで3D画像に与えられる奥行き感は、実際の画像と一致した適切なものとなる。
図22(a)−(b)は、斜め方向を向いている人物のエンボスパターンを示す図である。図22(a)は原画を、図22(b)はエンボスパターンを示す。図22(a)に示すように、人物が右斜め方向を向いている画像の場合には、最も飛び出している鼻の位置は、オブジェクトの中心から右によっている。しかしながら実施の形態2の方法で生成されるエンボスパターンでは、オブジェクト形状の中心が、最も飛び出している位置であると推定される。図22(b)に示すエンボスパターンでは、エンボスの頂点の位置と、オブジェクトの飛び出し位置が一致していない。このエンボスパターンで3D画像に与えられる奥行き感は、実際の画像とは一致しないものとなる。
またオブジェクトの立体感と、これを作るためのデプスエンボスパターンの頂点を一致させる手法として、例えば、ユーザ自身にオブジェクトの頂点のポジションを指定させ、この位置からオブジェクトのエッジに対して放射線を描く手法が提案されている。この手法では、正しい頂点の立体感を持つエンボスパターンを生成できる。しかしながらこの手法では、ユーザに頂点を指定させるための特別なグラフィカルユーザインタフェースと、ユーザ自身に頂点指定作業を行わせるための煩雑なプロセスの追加が必要になる。
また、エンボスパターンをオブジェクト内の任意の点からオブジェクトのエッジまでの距離に応じて一義に決定した場合は、オブジェクトの形状によっては、そのオブジェクト本来の立体感を正しく再現できない場合がある。以下、具体例を挙げながら説明する。
図23(a)−(c)は、ボトルのエンボスパターンを示す図である。図23(a)に示すように、オブジェクトがボトル等の回転体形状の場合には、本来は図23(b)に示すようなエンボスパターンが生成されるべきである。しかしながら実施の形態2の方法で生成されるエンボスパターンは、図23(c)に示すようなエンボス形状となり、オブジェクト本来の立体感とは異なる形状のエンボスが生成される。ボディが円柱状のボトルの場合、上下方向には丸みを帯びるべきではないが、図23(b)では上下方向にも丸みを帯びている。
実施の形態3の方法は、ユーザ自身に頂点指定作業を行わせるための煩雑なプロセスの追加を必要とせず、所望の部分を頂点とした理想的なエンボス生成を可能にする。ユーザの簡単な操作で、ユーザの指定する割合だけずれた位置を中心としたエンボスパターンを生成でき、実際の画像と一致した奥行き感を持った3D画像を容易に生成できる。また図23(a)−(c)に示したような、オブジェクトが回転体形状の場合でも、オブジェクト本来の立体感と一致するエンボスを生成できる。
実施の形態3は、オブジェクトの中心ではなく、ユーザの指定する割合だけずれた位置を中心としたエンボスパターンを自動生成するアルゴリズムを与える。実施の形態2では、任意の点のエンボスパターンの高さを求める際に、オブジェクト内の任意の基点からオブジェクトのエッジまでの距離を測定する方法を使用した。即ち、オブジェクト内のある点から渦巻き状にエッジ画素を探索していき、最も近いエッジが見つかった時の基点から探索点までの距離を算出した。実施の形態3では、その方法をベースに、エッジ画素の探索を真円ではなく特殊形状の円を用いて行う。
図24は、実施の形態3に係るボリュームエンボス生成部80の構成を示す図である。実施の形態3に係るボリュームエンボス生成部80も、図15に示す実施の形態3に係るボリュームエンボス生成部80と同様に、輪郭特定部81、距離特定部82、デプス値決定部83及びレベル変換部84を含む。
実施の形態2に係る距離特定部82は、真円の探索円を用いて、オブジェクトの輪郭との接点を探索した。実施の形態3に係る距離特定部82は、特殊形状の探索円を用いて接点を探索する。特殊形状の探索円は、例えば中心が偏心している円、楕円などが該当する。距離特定部82は、外部設定される円変形用のパラメータに応じて探索円の形状を変形する。当該パラメータには、水平/垂直方向の偏心率、水平/垂直方向の楕円化率、楕円化した場合の楕円の傾斜角などが該当する。
ユーザは操作部60を操作して、上記複数のパラメータの少なくとも一つのパラメータ値を入力する。操作受付部40は、入力されたパラメータ値をボリュームエンボス生成部80の距離特定部82に渡す(上記図14参照)。
まず偏心した探索円を使用する例を説明する。図25は、偏心していない探索円(真円)を用いてオブジェクトのエッジ画素を探索する様子を示す図である。図26は、図25のエンボスパターンを示す図である。図25にてオブジェクトは白丸である。偏心していない探索円を用いると図26に示すように、オブジェクトの中心を頂点としたエンボスパターンが生成される。
図27(a)−(b)は、偏心している探索円(真円)を用いてオブジェクトのエッジ画素を探索する様子を示す図である。図27(a)に示す探索円は、偏心していない探索円を基に、円周上の点と中心とを結ぶ線(図27の矢印線)と、所定の軸(例えば水平軸)との角度に応じた係数を、そのときの半径に乗じて生成したものである。偏心してない探索円と偏心している探索円は、中心位置を固定して考えた場合、半径の大きさが、前述の角度に応じて異なるだけで、相互に対応関係にある。図27に示す例では、矢印が右向きのときの半径に対して最も小さい係数を乗算し、矢印が上向き(又は下向き)となり、そして左向きになるに従って、徐々に大きい係数としている。そして、矢印が左向きのときに最も大きい係数を乗算している。また、このような偏心している探索円は、半径が大きくなるほど中心位置が所定方向にずれていく円とも言える。例えば、図27に示す例では、半径が大きくなるほど中心位置が左方向にずれていく複数の探索円となっている。
このような偏心している探索円を用いてエッジ画素を探索する。また基点から探索した画素までの距離を算出する際には、偏心している探索円に対応する偏心してない探索円の半径をその距離とする。図27(b)は、距離を求めるための偏心してない探索円を示している。
探索円の右側よりも左側のほうが半径が大きいため、たとえ基点がオブジェクトの中央にあったとしても、基点の右側に近いエッジよりも、基点の左側に近いエッジのほうが早く探索される。また、探索した画素までの距離は偏心してない探索円の半径で計算される。従って、見つかったエッジまでの距離は、実際よりも近い距離にあると判断される。
図28は、偏心している探索円(真円)を用いてオブジェクトのエッジ画素を探索する様子を示す図である。図29は、図28のエンボスパターンを示す図である。図28は、図26と同じオブジェクトのエッジ画素の探索を、偏心している探索円を用いて行う様子を示している。この場合、オブジェクトの左エッジに近い画素の方が、右エッジに近い画素よりも、エッジまでの距離が近いと判断される傾向にある。
その結果、オブジェクトの左エッジに近い部分には、エッジまでの距離が近いと判断された画素が、オブジェクトの右エッジに近い部分には、エッジまでの距離が遠いと判断された画素が並ぶことになる。図29に示すように、生成されたエンボスパターンの高さは、画素毎のエッジまでの距離に応じて生成されるため、頂点が中央よりも右に移動したエンボスパターンが生成される。
図30は、図28の探索円の偏心率をさらに大きくした探索円(真円)を用いてオブジェクトのエッジ画素を探索する様子を示す図である。図31は、図30のエンボスパターンを示す図である。図30の探索円は図28の探索円の偏心を極端にしたものである。図30の探索円は、左側方向には半径を持つが、右側方向には半径を持たず、常にゼロである。この場合にて、基点がオブジェクトのエッジより内側に位置する場合は、基点の左側のエッジは探索されるが、基点の右側のエッジは探索されない。基点の右側のエッジが探索されるのは、基点がオブジェクトの右側のエッジに位置する場合のみである。
その結果、オブジェクト内部の殆ど全ての部分は、遠くになる左エッジ付近までの距離に基づいた距離情報を持つ画素となる。図31に示すように、生成されるエンボスパターンの頂点は、オブジェクトの右エッジ部分に位置することとなる。
図32は、左下方向に偏心している探索円(真円)を用いてオブジェクトのエッジ画素を探索する様子を示す図である。図33は、図32のエンボスパターンを示す図である。この場合も同様に、頂点が中央よりも左下に移動したエンボスパターンが生成されることになる。
このように、偏心させた探索円を用いて探索することにより、任意の部分に頂点を持つエンボスパターンを容易に生成できる。この場合、上述したような、ユーザに頂点を指定させるための、特別なグラフィカルユーザインタフェースと、ユーザ自身に頂点指定作業を行わせるための煩雑なプロセスの追加は必要ない。オブジェクト形状の中で、どの方向にどの程度頂点を移動させるかだけを指定する簡易なユーザインタフェースを用いて、簡単な操作で足りる。従ってユーザの負担を軽減できる。
次に偏心している探索円の作成方法の一例を、図34及び図35を用いて説明する。エッジ探索を行う画素の座標を(x0,y0)とすると、その座標を中心として描いた、図34に示す、偏心させる前の探索円のポジション(x,y)は、下記式(10)のように表すことができる。
x = r*cos(θ*π/180)+x0
y = r*sin(θ*π/180)+y0 …式(10)
r:半径、θ:角度(degree)
これに対して、図35に示す、実施の形態3に係る偏心している探索円のポジション(x,y)は、下記式(11)のように表すことができる。
x =r*cos(θ*π/180)+x0+Sx
y =r*sin(θ*π/180)+y0+Sy
Sx =r*Px
Sy =r*Py
Px=Dx*cos(DyθDx)
Py=Dy*sin(DyθDy)
DxθDy =tan-1(Dx/Dy) …式(11)
r:半径、θ:角度(degree)
Dx:水平方向の偏心比率(-1<Dx<+1)
Dy:垂直方向の偏心比率(-1<Dy<+1)
ユーザは、操作部60から水平方向および/または垂直方向の偏心率を入力することにより、探索円をユーザの意図通りに偏心させることができる。
次に探索円を楕円にする例を説明する。図36は、真円の探索円を用いてオブジェクトのエッジ画素を探索する様子を示す図である。図37は、図36のエンボスパターンを示す図である。図36にてオブジェクトはボトルである。図37に示すようにボトルの全方向について均等にスロープの付いたエンボスパターンが生成される。
図38は、楕円の探索円を用いてオブジェクトのエッジ画素を探索する様子を示す図である。図39は、図38のエンボスパターンを示す図である。図38の探索円は、偏心していない真円を基に、その半径に対して、中心からの角度に応じた係数を乗じて生成したものである。真円と楕円は、半径が角度に応じて異なるだけで、相互に対応関係にある。このような楕円の探索円を用いてエッジ画素を探索する。また基点から探索した画素までの距離を算出する際には、上述の偏心の場合と同様に、楕円に対応する真円の半径をその距離とする。
図38では探索円の上下方向よりも左右方向のほうが半径が大きいため、基点の上下方向のエッジよりも、基点の左右方向のエッジのほうが早く探索される。また探索した画素までの距離は真円の半径で計算されるため、見つかったエッジまでの距離は、実際よりも近い距離にあると判断される。その結果、オブジェクト内部の各々の画素のエッジまでの距離は、左右方向については実際より近く、上下方向については実際より遠いと判断される傾向になる。
図39に示すように、生成されたエンボスパターンの高さは、画素毎のエッジまでの距離に応じて生成される。その結果、左右方向のスロープは緩やかであり、上下方向のスロープは急峻なエンボスパターンが生成される。
このことは、探索円を水平方向に圧縮した楕円にする代わりに、もともとのオブジェクトを垂直方向に引き伸ばした形状に変化させておいて、真円を用いた探索手法でエンボスパターンを生成した後に、エンボスオブジェクトを垂直方向に圧縮し元通りにしても、同じパターンを得られることが容易に想像できるので、上記の手法が正しいことが裏付けられる。
図40は、図38の探索円の楕円化率をさらに大きくした探索円を用いてオブジェクトのエッジ画素を探索する様子を示す図である。図41は、図40のエンボスパターンを示す図である。図40の探索円は図38の探索円の楕円化を極端にしたものである。この場合、生成されたエンボスの左右方向にスロープが付くが、上下方向にはスロープが殆ど付かないエンボスパターンが生成される。ボトルは回転体であるので、このほうがより理想的なエンボスパターンが生成できる。
次に探索円を楕円化する方法の一例を、図34及び図42を用いて説明する。エッジ探索を行う画素の座標を(x0,y0)とすると、その座標を中心として描いた、図34に示す、楕円状にする前の真円の探索円のポジション(x,y)は、下記式(12)のように表すことができる。
x=r*cos(θ*π/180)+x0
y=r*sin(θ*π/180)+y0 …式(12)
r::半径、θ:角度(degree)
これに対して、図42に示す、実施の形態3に係る楕円の探索円のポジション(x,y)は、下記式(13)のように表すことができる。
x=Rx*r*cos(θ*π/180)+x0
y=Ry*r*sin(θ*π/180)+y0 …式(13)
r:半径、θ:角度(degree)
Rx:水平方向の楕円化比率(0<Rx<+1)
Ry:垂直方向の楕円化比率(0<Ry<+1)
ユーザは、操作部60から水平方向および/または垂直方向の楕円化比率を入力することにより、探索円をユーザの意図通りの楕円に変形できる。なお、楕円化比率を極限まで0に近づけると、楕円状の探索円はほぼ直線になる。
次に探索円としての楕円を傾ける例を説明する。図43は、傾いたボトル形状のオブジェクトのエッジ画素を探索する様子を示す図である。図44は、図43のエンボスパターンを示す図である。図43では、回転体であるボトルの回転軸が垂直ではなく傾いている。このボトルのオブジェクトに対して、垂直方向に圧縮された楕円を用いて探索すると、正しいエンボスパターンが生成されない。よって、オブジェクトの回転軸と同様に、楕円の回転軸も傾ける。図44に示すように、オブジェクトと同様に回転軸が傾いた楕円を用いてエンボスを生成すると、正しいエンボスパターンを生成できる。
次に傾いた軸を持つ楕円の探索円を生成する方法の一例を、図45を用いて説明する。エッジ探索を行う画素の座標(x0,y0)を中心として描いた、通常の傾いていない軸を持つ楕円の探索円のポジションを(x,y)とすると、図45に示す、傾いた軸を持つ楕円の探索円のポジション(x_rot,y_rot)は、下記式(14)のように表すことができる。
x1=x-x0
y1=y- y0
x2=cos(rotθ)*x1-sin(rotθ)*y1
y2=sin(rotθ)*x1+cos(rotθ)*y1
x_rot = x2 + x0
y_rot = y2 + y0 …式(14)
rotθ:探索円の傾斜角
(x1,y1):座標軸を傾斜させる前の探索円の(x0,y0)を基準としたオフセット座標
(x2,y2):座標軸を傾斜させた後の探索円の(x0,y0)を基準としたオフセット座標
ユーザは、操作部60から探索円の傾斜角およびオフセット座標を入力することにより、探索円をユーザの意図通りに傾けることができる。
以上説明したように実施の形態3によれば、デプスマップに対して、オブジェクトの形状に合わせたボリュームエンボスを生成する際に、ユーザの簡単な操作で、ユーザの指定する割合だけずれた位置を中心としたエンボスパターンを自動生成できる。従って、実際の画像と一致した奥行き感を持った3D画像を容易に生成できる。なお、特別なグラフィカルユーザインタフェースと、ユーザ自身に頂点指定作業を行わせるための煩雑なプロセスの追加は必要ない。また、オブジェクトが回転体形状の場合でも、オブジェクト本来の立体感と一致するエンボスを生成できる。このようなエンボスが付加されたデプスマップを用いて3D変換することで、オブジェクト全体にボリューム感が付いた、より立体感のある3D画像を生成できる。
実施の形態3では探索円を変形することにより、実際の画像の奥行き感に一致したエンボスを生成した。実施の形態3の変形例では、オブジェクトを変形することにより同様の効果を得る方法を説明する。実施の形態3の変形例では、図24の距離特定部82は、オブジェクトを、外部設定されるパラメータに応じて変形する。パラメータとして例えば、オブジェクトの水平/垂直方向の伸張率、オブジェクトの回転角度などが該当する。以下、具体例を挙げながら説明する。
図46(a)−(b)は、真円の探索円を用いてオブジェクトのエッジ画素を探索する様子を示す図である。図47(a)−(b)は、図46(a)−(b)のエンボスパターンを示す図である。図46(a)のオブジェクトは、図36、図38、図40と同様にボトルである。図46(a)は原画を示す。ここではマスクとする。図38、図40では垂直方向に圧縮された楕円の探索円を用いたが、本変形例では探索円を圧縮する代わりにオブジェクトを引き伸ばす。図46(b)は、図46(a)のオリジナルマスクを垂直方向に引き伸ばしたマスクを示す。探索円は楕円ではなく真円を使用する。
図47(a)は、図46(b)のエンボスパターンを示す。最後に、生成されたエンボスパターンを、元のオブジェクトサイズになるよう圧縮する。図47(b)は、図46(a)のマスクサイズに戻されたエンボスパターンを示す。このエンボスパターンは、楕円の探索円を用いて生成した図39のエンボスパターンと同様である。
ユーザは、操作部60からオブジェクトの水平方向および/または垂直方向の伸張率を入力することにより、ユーザの意図通りのオブジェクトを伸張できる。
図48(a)−(d)は、傾いたボトル形状のオブジェクトのエッジ画素を探索する様子を示す図である。図48(a)のオブジェクトは、図43と同様に傾いたボトルである。図48(a)は原画を示す。ここではマスクとする。図43では、ボトルの傾きに合わせて回転させた楕円の探索円を用いたが、本変形例では楕円を回転させる代わりにオブジェクトを回転させる。図48(b)は、図48(a)のオリジナルマスクを左に所定角度、回転させて、ボトルが垂直なマスクに変形している。探索円は傾いていない楕円を使用する。
図48(c)は、図48(b)のエンボスパターンを示す。最後に、生成されたエンボスパターンを、元のオブジェクトの傾きになるよう逆回転する。図48(d)は、図48(a)のマスクの傾きに戻されたエンボスパターンを示す。このエンボスパターンは、傾いた楕円の探索円を用いて生成した図44のエンボスパターンと同様である。
ユーザは、操作部60から水平方向および/または垂直方向の楕円化率、およびオブジェクトの回転角度を入力することにより、ユーザの意図通りの楕円に変形でき、かつオブジェクトを回転できる。
このように探索円を変形する代わりにオブジェクトを変形、または探索円とオブジェクトの両方を変形することによっても、上述した探索円のみを変形する場合と同様の効果を得ることができる。
次に実施の形態4について説明する。実施の形態3では、対象とするオブジェクトに適したデプスマップを生成するために、ボリュームエンボスの種々のパラメータを手動で設定した。例えばオブジェクトが人物である場合、その人物オブジェクトの大きさ、顔のふくらみカーブ、顔の向き、オブジェクトの縦横の比率、オブジェクトの傾き、鼻などのパーツのポジションなどをユーザが原画を参照して判断し、上記のパラメータを適切に設定する必要があった。この作業はユーザの手間を増やす要因となる。
これに対して実施の形態4では、オブジェクト認識技術を用いてオブジェクトの形状や特徴を自動で判断し、その結果を用いて上記のパラメータを自動設定する。これにより、ユーザの手間を大幅に軽減できる。
図49は、実施の形態4に係るボリュームエンボス生成部80の構成を示す図である。実施の形態4に係るボリュームエンボス生成部80は、図24に示す実施の形態3に係るボリュームエンボス生成部80の構成に、画像解析部85及びパラメータ算出部86が追加された構成である。
実施の形態4でも距離特定部82は、特殊形状の探索円を用いて接点を探索する。距離特定部82は、パラメータ算出部86から設定される円変形用のパラメータに応じて探索円の形状を変形する。当該パラメータに応じて探索円が変形すると実施の形態3で示したようにボリュームエンボスの形状も変形する。当該パラメータには、水平/垂直方向の偏心率、水平/垂直方向の楕円化率、楕円化した場合の楕円の傾斜角などが該当する。実施の形態4では実施の形態3と異なり、ユーザが操作部60に入力したパラメータ値を使用するのではなく、画像解析部85及びパラメータ算出部86により生成されたパラメータ値を使用する。
画像解析部85は、エンボスが付加されるべきマスクに対応する原画像内のオブジェクト領域を画像解析する。解析箇所は、原画像内のオブジェクト領域のみであってもよいし、原画像全体であってもよい。パラメータ算出部86は、画像解析部85による解析結果をもとに上記探索円のパラメータを算出する。デプス値決定部83及びレベル変換部84の処理は、実施の形態3と同様であるため説明を省略する。以下、画像解析部85による画像解析の具体例を複数説明する。
まず実施の形態4の実施例1を説明する。本実施例では顔検出を使ってボリュームエンボスの設定を最適化する。図50は、実施の形態4の実施例1に係る画像解析部85の構成を示す図である。当該画像解析部85は、顔検出部851及びオブジェクト範囲限定部852を含む。
顔検出部851は、オブジェクト領域の原画像に対して顔検出を実行する。顔検出には一般的な顔認識アルゴリズムを用いることができる。例えば顔認識アルゴリズムとして、主成分分析を使った顔識別器、線形判別分析、弾性バンチグラフマッチング、隠れマルコフモデル、ニューロン動機づけによるダイナミックリンク照合などを用いることができる。
オブジェクト範囲限定部852は、オブジェクト領域の原画像の内、オブジェクトの範囲を顔の範囲に限定する。オブジェクト範囲限定部852は、限定したオブジェクトの範囲を輪郭特定部81に渡す。輪郭特定部81は、オブジェクト範囲限定部852から渡されたオブジェクトの範囲をもとに、入力されたマスクのオブジェクト範囲を変更する。即ち、顔検出部851によりオブジェクト領域の原画像から顔が検出された場合、輪郭特定部81は、当該顔の輪郭を新たなオブジェクトの輪郭として特定する。以下、具体例を挙げる。
図51(a)−(b)は、顔検出によるオブジェクト範囲の限定処理を示す図である。図51(a)は原画像を、図51(b)はマスクを示す。以下、図51(a)に示す人物のポートレート画像に対してボリュームエンボスを付加する例を説明する。図51(a)のような画像に、実施の形態2で説明したオリジナルのエンボス生成方法を適用すると、顔部分に付加されるエンボスレベルに対して、胴体部分に付加されるエンボスレベルのほうが大きくなる。従って、生成される3D画像は、顔よりも胴体部分が大きく飛び出した不自然な画像になりやすい。この理由を以下に述べる。
オブジェクト領域内の任意のポジションにおいて生成されるエンボスの高さ(奥行き)は、そのポジションからマスクエッジまでの距離で決定される。つまり、オブジェクトの幅が広いほどエンボスレベルが高くなる。図37には、オブジェクトの幅が狭いボトルの首よりも、オブジェクトの幅が広い胴のほうがエンボスレベルが高くなる例を示した。
図37に示したボトル画像の例では、生成されるボリュームエンボスの形状はボトルの形状に整合しているが、図51(a)に示すポートレート画像では、顔の中央のポジションよりも胴体の中央のポジションのほうが、マスクエッジまでの距離が長いため、顔より胴体のエンボスが高くなる。よってマスク内で顔と胴体が同一オブジェクトで構成されている場合、適切なエンボスを付加できない場合が発生する。
そこで本実施例では、人物の原画像に対して顔検出を実行することで顔の範囲(符号o参照)を特定し、マスク内の人物オブジェクトのうち、原画像の顔領域(符号o参照)に相当する領域(符号p参照)だけを抽出する。これにより、ボリュームエンボスを生成する領域を限定することができる。即ち、たとえマスク内で顔と胴体が同一オブジェクトで構成されている場合でも顔の部分だけにボリュームエンボスをかけることができる。
次に実施の形態4の実施例2を説明する。本実施例では人検出を使ってボリュームエンボスの設定を最適化する。図52は、実施の形態4の実施例2に係る画像解析部85の第1構成を示す図である。当該画像解析部85は、人検出部851a及びオブジェクト範囲限定部852を含む。
人検出部851aは、オブジェクトの原画像に対して人検出を実行する。人検出には一般的な人認識アルゴリズムを用いることができる。人認識アルゴリズムも顔検出アルゴリズムと同様に、主成分分析を使った人識別器、線形判別分析、弾性バンチグラフマッチング、隠れマルコフモデル、ニューロン動機づけによるダイナミックリンク照合などを用いることができる。
オブジェクト範囲限定部852は、オブジェクト領域の原画像の内、オブジェクトの範囲を人の範囲に限定する。オブジェクト範囲限定部852は、限定したオブジェクトの範囲を輪郭特定部81に渡す。輪郭特定部81は、オブジェクト範囲限定部852から渡されたオブジェクトの範囲をもとに、入力されたマスクのオブジェクト範囲を変更する。即ち、人検出部851aによりオブジェクト領域の原画像から人が検出された場合、輪郭特定部81は、当該人の輪郭を新たなオブジェクトの輪郭として特定する。以下、具体例を挙げる。
図53(a)−(b)は、人検出によるオブジェクト範囲の限定処理を示す図である。図53(a)は原画像を、図53(b)はマスクを示す。図53(a)に示すように、引きの画に人が映っている場合、顔だけ映っているわけではなく体全体が映っていることが多い。この場合、顔を検出して顔領域にエンボスをかけるだけでは十分な効果が期待できない。人だけのマスクであれば、人に対してのみエンボスをかけることが可能である。しかしながらマスク内で、人と人以外の物体が同一オブジェクトで構成されている場合、実施の形態2に示したオリジナルのエンボス生成方法では、オブジェクト全体に一律の処理をかけることしかできず、エンボスの高さが不自然になる場合があった。
図53(a)に示すラウンドガールのように看板を掲げている人の画像では、本来は平面であるはずの看板部分にエンボスが生成されてしまい、実際とは異なる奥行き感が生まれてしまう。上述のように、より幅の広い部分にレベルの高いエンボスが生成されるためである。
そこで、オブジェクト領域の原画像に対して人検出を実行することで人の範囲(符号q参照)を特定し、マスク内の、人と人以外の物体(看板)を含むオブジェクト領域の内、原画像の人領域(符号q参照)に相当する領域(符号r参照)だけを抽出する。これにより、人領域に対してのみエンボスをかけることができ、看板に対してはエンボスをかけないようにできる。これにより、人の部分にだけボリュームエンボスがかかり、看板が平坦な自然な奥行き感を生成できる。
図54は、実施の形態4の実施例2に係る画像解析部85の第2構成を示す図である。当該画像解析部85は、人検出部851a、オブジェクト範囲限定部852及びオブジェクト分離部853を含む。人検出部851a及びオブジェクト範囲限定部852は、図52の第1構成と同じであるため説明を省略する。
オブジェクト分離部853は、原画像内のオブジェクト領域を、オブジェクト範囲限定部852により限定された人の領域と、それ以外の領域に分離する。オブジェクト分離部853は、分離されたオブジェクトの各領域を輪郭特定部81に渡す。輪郭特定部81は、オブジェクト範囲限定部852から渡されたオブジェクトの各領域をもとに、入力されたマスクのオブジェクト領域を複数のオブジェクト領域に分離する。距離特定部82、デプス値決定部83及びレベル変換部84は、分離されたオブジェクト領域ごとにボリュームエンボスを生成する。以下、具体例を挙げる。
図55(a)−(b)は、人検出によるオブジェクト領域の分離処理を示す図である。図55(a)は原画像を、図55(b)はマスクを示す。図53(a)に示した看板は平面であるため、ボリュームエンボスを付加する必要はないが、図55(a)に示すように傘の場合、ボリュームエンボスを付加する必要がある。傘は回転体であるため、人とは異なるパラメータ設定でボリュームエンボスを生成する必要がある。
そこで、オブジェクト領域の原画像に人検出を実行することで人の範囲(符号s参照)を特定し、マスク内の、人と人以外の物体(傘)を含むオブジェクト領域を、原画像の人領域(符号s参照)に相当する領域(符号t参照)と、それ以外の領域に分離する。マスク内のオブジェクト領域の人部分の領域と傘部分の領域を分離することにより、各々の領域に対して各々に適合したパラメータを設定できる。従って各領域ごとに適切なボリュームエンボスを生成できる。このように実施例2ではマスク内の1つのオブジェクト領域に対して、特定した領域毎にボリュームエンボスのありなしを選択する、もしくはボリュームエンボスのかけ方を変更できる。
なおオブジェクト内に人以外の物体が複数存在する場合、物体ごとに領域を分離する。例えば、傘をさしている人が大きな鞄を持っている場合、人部分の領域と、傘部分の領域と、鞄部分の領域にそれぞれ分離する。
次に実施の形態4の実施例3を説明する。本実施例では顔検出を使ってボリュームエンボスの設定を最適化する別の例を示す。図56は、実施の形態4の実施例3に係る画像解析部85及びパラメータ算出部86の構成を示す図である。当該画像解析部85は、顔検出部851及び鼻位置特定部854を含む。
顔検出部851は、オブジェクト領域の原画像に対して顔検出を実行する。鼻位置特定部854は、顔検出部851により検出された顔領域から鼻の位置を特定する。顔認識アルゴリズムとして顔のパーツの相対位置や大きさ、目、鼻、ほお骨、あご等の形を特徴として利用するアルゴリズムを使用する場合、原画像内の特徴を検出する過程で鼻の位置も特定できる。鼻位置特定部854は、特定した鼻の位置をパラメータ算出部86に渡す。
パラメータ算出部86は、入力されるマスク内の顔オブジェクトの座標上の中心位置を検出する。パラメータ算出部86は、検出した中心位置と、鼻位置特定部854から渡された鼻の位置とのずれをもとに上記探索円の偏心率を算出する。距離特定部82は、パラメータ算出部86から設定される偏心率に応じて上記探索円の形状を変形する。以下、具体例を挙げる。
図57(a)−(c)は、比較例に係る顔検出を使用したボリュームエンボスの生成例を示す図である。図57(a)は原画像を、図57(b)はマスクを、図57(c)はエンボスパターンを示す。実施の形態2で説明したオリジナルのボリュームエンボス生成方法では、オブジェクトに対してエンボスをかける位置がずれ、オブジェクトが不自然に見えることがあった。例えば、図57(a)に示すように原画像が、斜め方向を向いた人物画像である場合、本来は最も飛び出している鼻の部分を頂点としたエンボスパターンが生成されるべきである。しかしながら図57(b)に示すように、マスクの持つ情報では顔の向きを特定することはできないため、図57(c)に示すように、マスクの中心である頬の部分がエンボスの頂点になっていた。
これに対して実施の形態3では、上記式(11)を用いて探索円を偏心させることにより、中心からずれた部分にエンボスの頂点を生成する方法を示した。上記式(11)は、水平方向の偏心比率パラメータDx(-1<Dx<+1)、垂直方向の偏心比率パラメータDy(-1<Dy<+1)を含んでいる。
図58(a)−(c)は、実施の形態4の実施例3に係る顔検出を使用したボリュームエンボスの生成例を示す図である。図58(a)は原画像を、図58(b)はマスクを、図58(c)はエンボスパターンを示す。図58(a)に示すように原画像に対する顔検出の過程で、顔検出部851は顔領域(符号u参照)内の鼻の位置(符号v参照)を検出する。実施例3では、この鼻の位置をボリュームエンボスの頂点として用いる。
図58(b)に示すようにパラメータ算出部86は、マスク内のオブジェクトの重心を検出して、顔オブジェクトの中心(符号x参照)を検出する。パラメータ算出部86は、顔オブジェクト内の中心(符号x参照)の位置に対する、原画像内の鼻の位置(符号w参照)のずれを算出する。図58(b)の例では、鼻の位置が中心より左方向に40%ずれている例を示している。エンボスパラメータの頂点を中心から左方向に40%ずらすには、上記式(11)の水平方向の偏心比率パラメータDxに、−0.4を設定すればよい。これにより図58(c)に示すように、位置ずれがない自然なエンボスを自動で生成できる。
なお鼻の位置が、顔オブジェクトの中心位置から垂直方向にずれている場合、上記式(11)の垂直方向の偏心比率パラメータDyに、そのずれに応じた値が設定される。斜め方向にずれている場合、水平方向の偏心比率パラメータDxおよび垂直方向の偏心比率パラメータDyのそれぞれに、垂直方向および水平方向のそれぞれのずれに応じた値が設定される。
このように実施例3では、オブジェクト領域の原画像から顔が検出された場合、パラメータ算出部86が当該顔の鼻の位置と、顔オブジェクトの中心位置とのずれをもとに探索円の偏心比率を設定する。これによりユーザの作業を発生させずに、顔領域に付与されるボリュームエンボスの品質を向上させることができる。
次に実施の形態4の実施例4を説明する。本実施例ではオブジェクト領域の原画像をテクスチャ解析して、オブジェクト表面の概略を推定する方法を説明する。図59は、実施の形態4の実施例4に係る画像解析部85の構成を示す図である。当該画像解析部85は、テクスチャ解析部855及びオブジェクト形状推定部856を含む。
テクスチャ解析部855は、オブジェクト領域の原画像の複数箇所のテクスチャを周波数解析する。オブジェクト形状推定部856は、当該周波数解析の結果と、マスクから得られるオブジェクトの2次元形状をもとにオブジェクトの3次元形状を簡易推定する。オブジェクト形状推定部856は、推定したオブジェクトの形状情報をパラメータ算出部86に渡す。
パラメータ算出部86は、推定されたオブジェクトの形状情報をもとに、探索円の偏心比率、楕円化率、楕円化した場合の楕円の傾斜角のパラメータの内、少なくとも一つを算出する。以下、具体例を挙げる。
実施の形態3では、オブジェクトの形状をユーザが原画から判断して各種パラメータを設定した。実施の形態4の実施例4ではその形状判断を自動化する方法を示す。実施の形態2で説明したオリジナルのエンボス生成方法では基本的に、マスクから得られる情報のみに基づきボリュームエンボスを生成した。しかしながら、マスクからはオブジェクトのシルエットが分かるだけであり、オブジェクトがどのような形状をしているかは正確には判別できない。例えば、缶を真正面から見ると四角に見える。真正面から見た缶は、マスクではただの四角になる。マスクの情報からは平面だから四角なのか、曲面を正面から見ているから四角なのか特定できない。そこで実施例4では、オブジェクト領域の原画像のテクスチャを解析することにより、オブジェクトの形状を推定する。
図60は、実施の形態4の実施例4に係るテクスチャ解析の一例を示す図である。図60は、オブジェクトが円筒形の例を示している。円筒形では一般に、端に行くに従ってオブジェクトの模様の密度が高くなる。模様の密度を検出するには原画像のテクスチャの周波数成分を検出すればよい。中心部の模様の密度が低い部分では低域成分が多くなり、端に行くに従って高域成分が多くなる。より一般的にいえば、近景のテクスチャほど模様の密度が低く低域成分が多くなり、遠景のテクスチャほど模様の密度が高く高域成分が多くなる。
従ってオブジェクト領域に複数のテクスチャ領域を設定し、複数のテクスチャ領域の周波数成分を検出することにより、オブジェクト表面の凹凸を推定できる。1つのテクスチャ領域を小さくし多数のテクスチャ領域を設定するほど、オブジェクト表面の凹凸を高精度に推定できるが、演算量が増大する。反対に1つのテクスチャ領域を大きくし、オブジェクトに設定するテクスチャ領域の数を少なくするほど、演算量を低減できるが、凹凸の推定精度は低下する。
図60では左端列のテクスチャ領域T(1,y)は高域成分が多く、その右側の列のテクスチャ領域T(2,y)は中域成分が多く、中央列のテクスチャ領域T(3,y)は低域成分が多く、その右側の列のテクスチャ領域T(4,y)は中域成分が多く、右端列のテクスチャ領域T(5,y)は高域成分が多い。このように、垂直方向の周波数成分の変化が小さく、水平方向の両端部が遠景で中心部に行くに従って近景になるオブジェクトは、縦長の円筒形と推定できる。なお水平方向の周波数成分の変化が小さく、垂直方向の両端部が遠景で中心部に行くに従って近景になるオブジェクトは、横長の円筒形と推定できる。
実施の形態3では、ユーザが操作部60に楕円化比率を入力することで探索円を楕円に変形させ、回転体に適したエンボスを生成する方法を示した。探索円を楕円に変換する上記式(13)は、水平方向の楕円化比率のパラメータRx(0<Rx<+1)、垂直方向の楕円化比率のパラメータRy(0<Ry<+1)を含んでいる。縦長の円筒形の場合は垂直方向にスロープを付ける必要がないため、パラメータ算出部86は垂直方向の楕円化比率のパラメータRyに0を設定する。一方、横長の円筒形の場合は水平方向にスロープを付ける必要がないため、パラメータ算出部86は水平方向の楕円化比率のパラメータRxに0を設定する。即ち、縦長の円筒形の場合は探索円を水平線に変換し、横長の円筒形の場合は探索円を垂直線に変換する。
またパラメータ算出部86は、オブジェクトの形状が縦長の円筒形と推定された場合、垂直方向の楕円化比率のパラメータRyに0より若干大きい値を設定して、探索円を横長の楕円に変換してもよい。同様に横長の円筒形と推定された場合、水平方向の楕円化比率のパラメータRxに0より若干大きい値を設定して、探索円を縦長の楕円に変換してもよい。なおオブジェクトの形状が円筒形ではなく、六角柱や八角柱などの多角柱の筒形であっても、少なくとも長手方向にスロープが付くという不自然さは解消できる。
オブジェクト形状推定部856により推定されたオブジェクトが斜めに傾いた筒形の場合、パラメータ算出部86は、垂直方向の楕円化比率のパラメータRy又は水平方向の楕円化比率のパラメータRxに0を設定するとともに、上記式(14)に含まれる探索円の傾斜角パラメータrotθを算出する。
また以下のパラメータ設定方法を実行してもよい。オブジェクト形状推定部856は、複数のテクスチャ領域の内、最も低域成分が多い領域を特定する。パラメータ算出部86は、マスク内のオブジェクトの重心を検出して、オブジェクトの中心を検出する。パラメータ算出部86は、オブジェクト内の中心領域に対する、上記の最も低域成分が多い領域のずれを算出する。パラメータ算出部86は、当該ずれに基づき上記式(11)の水平方向の偏心比率パラメータDx及び/又は垂直方向の偏心比率パラメータDyを設定する。
このように実施例4によれば、原画像のオブジェクト領域のテクスチャを周波数解析することにより、オブジェクト表面の凹凸を推定できる。推定されたオブジェクト表面の凹凸をもとに探索円を変形することにより、マスクだけでは形状を正確に判別できないオブジェクト(例えば、円筒形)に対しても、自然なエンボスを自動で付加できる。なおテクスチャ解析として周波数成分を解析するのは一例であり、他の方法を使用したテクスチャ解析を行ってもよい。
次に実施の形態4の実施例5を説明する。本実施例では周波数解析以外の方法でオブジェクトの表面形状が平面なのか曲面なのかを判断する方法を説明する。図61は、実施の形態4の実施例5に係る画像解析部85の構成を示す図である。当該画像解析部85は、ハフ変換部857及びオブジェクト形状推定部856を含む。
ハフ変換部857は、オブジェクト領域の原画像に対してハフ変換を実行する。オブジェクト形状推定部856は、当該ハフ変換により原画像から得られる直線成分と、マスクから得られるオブジェクトの輪郭形状をもとにオブジェクトの形状が筒形であるか否か推定する。オブジェクト形状推定部856は、オブジェクトの形状が筒形であるか否かをパラメータ算出部86に渡す。パラメータ算出部86は、オブジェクトの形状が筒形である場合、探索円の楕円化率を算出する。以下、具体例を挙げる。
ハフ変換を使用する解析方法は、オブジェクトの形状が筒形であるか否かを推定するのに有効な方法である。筒形は中心付近が手前側に飛び出した形状である。オブジェクトが筒形の光沢物体であり、その物体に光が当たっている場合、回転軸方向に一筋の線ができる。実施例5ではこの回転軸方向の直線成分を利用して、オブジェクトの形状が筒形であるか否か推定する。
図62(a)−(c)は、実施の形態4の実施例5に係るハフ変換を使用したボリュームエンボスの生成例を示す図である。図62(a)は原画像を、図62(b)はハフ変換後の画像を、図62(c)はマスクを示す。図62(b)に示す画像は、図62(a)に示す原画像に対して実行されたハフ変換の結果を示す画像である。ハフ変換により、オブジェクト領域に含まれる直線成分を検出できる。オブジェクト(缶)の外形のエッジ(符号y参照)は、マスクから判別できる。
オブジェクト形状推定部856は、オブジェクト(缶)の直線エッジと平行である、ハフ変換により得られた直線成分が設定数より多ければ、オブジェクトの形状を筒形と推定する。図62(a)に示すように縦長の筒形のオブジェクトである場合、図62(b)に示すように垂直方向の直線が検出される。一方、横長の筒形のオブジェクトである場合、水平方向の直線が検出される。
縦長の筒形の場合は垂直方向にスロープを付ける必要がないため、パラメータ算出部86は、上記式(13)の垂直方向の楕円化比率のパラメータRyに0を設定する。一方、横長の筒形の場合は水平方向にスロープを付ける必要がないため、パラメータ算出部86は上記式(13)の水平方向の楕円化比率のパラメータRxに0を設定する。即ち、縦長の筒形の場合は探索円を水平線に変換し、横長の円筒形の場合は探索円を垂直線に変換する。
またパラメータ算出部86は、オブジェクトの形状が縦長の筒形と推定された場合、垂直方向の楕円化比率のパラメータRyに0より若干大きい値を設定して、探索円を横長の楕円に変換してもよい。同様に横長の円筒形と推定された場合、水平方向の楕円化比率のパラメータRxに0より若干大きい値を設定して、探索円を縦長の楕円に変換してもよい。
オブジェクト形状推定部856により推定されたオブジェクトが斜めに傾いた筒形の場合、パラメータ算出部86は、垂直方向の楕円化比率のパラメータRy又は水平方向の楕円化比率のパラメータRxに0を設定するとともに、上記式(14)に含まれる探索円の傾斜角パラメータrotθを算出する。
このように実施例5によれば、原画像のオブジェクト領域をハフ変換することにより、オブジェクト形状が筒形であるか否か推定できる。その推定結果をもとに探索円を変形することにより、筒形のオブジェクトに対しても、自然なエンボスを自動で付加できる。なおハフ変換は一例であり、他の方法を使って画像の成分分析を行ってもよい。
次に実施の形態4の実施例6を説明する。実施例1−5では原画像から、探索円変形用のパラメータを算出する方法を説明した。実施例6ではマスクからパラメータを算出する方法について説明する。上記の図19(a)−(c)では、ボリュームエンボスのレベル変換について説明した。具体的には図19(a)に示す折れ線形状の輝度変化を、下記式(15)を用いて図19(b)に示す曲線形状の輝度変化に変換する例を説明した。これにより、尖った形のエンボスパターンではなく、丸みを持ったエンボスパターンを生成できる。
y = A * tan -1 (B * x) …式(15)
Aは曲線のゲイン、Bは曲線の傾きを変化させる変数である。本実施例では変数Bを操作対象とする。
例えばボールのような球状のオブジェクトにボリュームエンボスをかける場合を考える。この場合、図19(a)に示すような尖ったボリュームエンボスではなく、図19(b)に示すような丸みを持ったボリュームエンボスをかけることが望まれる。そこで本実施例では、まずマスクからオブジェクト領域を特定する。マスクは2値データであるためエッジを明確に検出できる。オブジェクト領域を特定できると、球状のオブジェクトの半径も特定できる。このようなオブジェクトに付加されるエンボス形状は、周辺部から中央部に行くに従って傾斜が緩やかになり、かつ頂点では水平に近いことが望まれる。また、頂点付近の水平部分が長いと不自然になるため、頂点付近の水平部分をできるだけ短くすることが望まれる。このようなエンボス形状を作り出すためには、上記式(15)の変数Bを適切に設定する必要がある。
図63(a)−(b)は、ボリュームエンボスのレベル変換を説明するための図である。図63(a)はレベル変換を行うための曲線関数の一例を示し、図63(b)は図63(a)の曲線関数の微分関数を示す。エンボスの頂点付近が水平に近く、かつ頂点付近の水平部分が最短になる状態とは、上記式(15)の微分値が0に近づき、水平を判定するための閾値を超えた状態である。よって、上記式(15)の微分値を用いて上記式(15)の変数Bを規定する。変数Bの値が大きいほど膨らみが大きい曲線関数となり、変数Bの値が小さいほど膨らみが小さい曲線関数となる。
図63(b)は、上記式(15)を微分した曲線関数を示すグラフである。この曲線関数は下記式(16)で表される。
f’(x)=AB / (B2x2 + 1) …式(16)
図63(b)のd0は、水平を判定するための閾値である。エンボス形状の傾き、つまり微分値がd0となる時のxの値をx0とする。球状のオブジェクトの場合、x0はオブジェクトの中心までの距離となる。よってx0はオブジェクトの半径(R/2)となる。以上から、上記式(16)にd0,、x0を代入すると変数Bの値は、下記式(17)で表される。
d0=AB / (B2 x0 2 + 1)
x0 = R/2であるので、
d0=AB / (B2 R2 / 4 + 1)
d0R2 B2 − 4AB + 4 d0 = 0
B=(2A±2√(A2-d0 2R2))/d0R2 …式(17)
つまり変数Bについて2つの解が得られる。2つの解のどちらが適切かは、得られたBの値で生成されるエンボス形状をもとに判定する。
図64は、y = A * tan -1 (B * x)で規定される2つの曲線関数を示す図である。図64に示すグラフではA=1、d0=0.01、R=50に設定している。変数Bには、上記式(17)で算出された2つの値を代入する。y = A * tan -1 (B * x)で規定される曲線は急峻になったり、ほぼ直線のようになったりする場合があるため、2つの曲線のうち適した曲線を選択する。このように実施例6によれば、実施の形態2、3では手動で設定していた変数Bの値をほぼ自動で算出できる。
実施の形態4に係るボリュームエンボス生成部80は、実施例1−6の少なくとも1つの機能を搭載することができる。複数の機能を搭載する場合、各機能の有効/無効をユーザの操作により設定できる。例えば、人物が登場しない動画像の場合、顔検出および人検出に係る実施例1−3の機能は無効に設定する。これによりボリュームエンボス生成部80の負荷を軽減できる。
以上説明したように実施の形態4によれば、オブジェクトの奥行き方向の、飛び出し又は引っ込みの程度を調整するボリュームエンボス生成処理にて、オブジェクトの原画像を解析する。これにより、ボリュームエンボスをかけるべきオブジェクトの範囲を自動で制限できる。また複数のオブジェクトが一体となっている場合でも、個々のオブジェクトに自動で分離することができ、個々のオブジェクトごとにボリュームエンボスをかけることができる。またオブジェクトの原画像を解析することにより、オブジェクト表面の凹凸を自動で推定でき、それに基いて探索円のパラメータを自動設定できる。
従って、ボリュームエンボス作成に必要なユーザの作業を大幅に削減でき、ボリュームエンボス作成に必要な時間も短縮できる。また手動のパラメータ設定で発生しがちな、エンボスの位置ずれ、かけ方の不自然さといった設定ミスを回避できる。
なお、本発明は以上説明した実施の形態に限定されることはなく、本発明の要旨を逸脱しない範囲において種々変更が可能である。例えば、各実施の形態を組み合わせてもよい。また、デプス推定装置や画像処理装置の一部の構成を別体にし、ネットワーク等を介してその別体とした構成と通信するようにして、デプス推定装置や画像処理装置の機能を実現してもよい。
また、本発明は各部の機能をコンピュータに実現させるためのプログラムを含むものである。これらのプログラムは、記録媒体から読み取られてコンピュータに取り込まれてもよいし、通信ネットワークを介して伝送されてコンピュータに取り込まれてもよい。
以上に説明した実施の形態に係る発明は、以下に記載する項目によって特定されてもよい。
[項目1]
対象画像内のオブジェクトの輪郭を特定する輪郭特定部と、
前記オブジェクトの領域内の対象画素と、前記輪郭との距離を、前記対象画素の位置を中心にして、当該中心から同心円状に広がる探索円を用いて前記輪郭との接点を探索して求める距離特定部と、
前記距離に応じて前記対象画素のデプス値を決定するデプス値決定部と、
前記オブジェクトの原画像を解析する画像解析部と、
前記原画像の解析結果をもとに前記探索円のパラメータを算出するパラメータ算出部と、を備え、
前記距離特定部は、算出されたパラメータをもとに前記探索円を変形することを特徴とするデプス推定装置。
[項目2]
前記画像解析部は、前記オブジェクトの原画像の複数箇所を周波数解析して、前記オブジェクトの形状を推定し、
前記パラメータ算出部は、推定されたオブジェクトの形状をもとに、前記探索円の偏心率、楕円化率、楕円化した場合の楕円の傾斜角のパラメータの内、少なくとも一つを算出することを特徴とする項目1に記載のデプス推定装置。
[項目3]
前記パラメータ算出部は、前記オブジェクトの形状が縦長の筒形と推定された場合、前記探索円を横長の楕円または水平線に変換するための楕円化率を設定して、横長の筒形と推定された場合、前記探索円を縦長の楕円または垂直線に変換するための楕円化率を設定することを特徴とする項目2に記載のデプス推定装置。
[項目4]
前記画像解析部は、前記オブジェクトの原画像に対して顔検出または人検出を実行し、
前記輪郭特定部は、前記原画像から顔または人が検出された場合、当該顔または人の輪郭を新たなオブジェクトの輪郭として特定することを特徴とする項目1に記載のデプス推定装置。
[項目5]
前記画像解析部は、前記オブジェクトの原画像に対して顔検出を実行し、
前記パラメータ算出部は、前記原画像から顔が検出された場合、当該顔の鼻の位置と、当該顔の座標上の中心位置とのずれをもとに前記探索円の偏心率を算出することを特徴とする項目1に記載のデプス推定装置。
[項目6]
前記画像解析部は、前記オブジェクトの原画像をハフ変換して得られる直線成分と、前記オブジェクトの輪郭形状をもとに、前記オブジェクトの形状が筒形であるか否か推定し、
前記パラメータ算出部は、前記オブジェクトの形状が縦長の筒形と推定された場合、前記探索円を横長の楕円または水平線に変換するための楕円化率を設定して、横長の筒形と推定された場合、前記探索円を縦長の楕円または垂直線に変換するための楕円化率を設定することを特徴とする項目1に記載のデプス推定装置。
[項目7]
入力画像とデプスモデルをもとに、前記入力画像のデプスマップを生成するデプスマップ生成部と、
前記入力画像内のオブジェクトのエンボスパターンを生成するボリュームエンボス生成部と、
前記デプスマップ生成部により生成されたデプスマップにおける、前記オブジェクトに対応する領域を加工するデプスマップ加工部と、
前記入力画像、及び前記デプスマップ加工部により加工されたデプスマップをもとに、別視点の画像を生成する画像生成部と、を備え、
前記ボリュームエンボス生成部は、
前記オブジェクトの輪郭を特定する輪郭特定部と、
前記オブジェクトの領域内の対象画素と、前記輪郭との距離を、前記対象画素の位置 を中心にして、当該中心から同心円状に広がる探索円を用いて前記輪郭との接点を探索 して求める距離特定部と、
前記距離に応じて前記対象画素のデプス値を決定するデプス値決定部と、
前記オブジェクトの原画像を解析する画像解析部と、
前記原画像の解析結果をもとに前記探索円のパラメータを算出するパラメータ算出部 と、を有し、前記距離特定部は、算出されたパラメータをもとに前記探索円を変形し、
前記ボリュームエンボス生成部は、前記デプス値決定部によって決定したデプス値に基づいて前記エンボスパターンを生成し、
前記デプスマップ加工部は、前記エンボスパターンを使用して前記デプスマップの前記オブジェクトに対応する領域にエンボスを付加することを特徴とする画像処理装置。
[項目8]
対象画像内のオブジェクトの輪郭を特定する輪郭特定ステップと、
前記オブジェクトの領域内の対象画素と、前記輪郭との距離を、前記対象画素の位置を中心にして、当該中心から同心円状に広がる探索円を用いて前記輪郭との接点を探索して求める距離特定ステップと、
前記距離に応じて前記対象画素のデプス値を決定するデプス値決定ステップと、
前記オブジェクトの原画像を解析する画像解析ステップと、
前記原画像の解析結果をもとに前記探索円のパラメータを算出するパラメータ算出ステップと、を備え、
前記距離特定ステップは、算出されたパラメータをもとに前記探索円を変形することを特徴とするデプス推定方法。
[項目9]
対象画像内のオブジェクトの輪郭を特定する輪郭特定処理を、
前記オブジェクトの領域内の対象画素と、前記輪郭との距離を、前記対象画素の位置を中心にして、当該中心から同心円状に広がる探索円を用いて前記輪郭との接点を探索して求める距離特定処理と、
前記距離に応じて前記対象画素のデプス値を決定するデプス値決定処理と、
前記オブジェクトの原画像を解析する画像解析処理と、
前記原画像の解析結果をもとに前記探索円のパラメータを算出するパラメータ算出処理をと、をコンピュータに実行させ、
前記距離特定処理は、算出されたパラメータをもとに前記探索円を変形することを特徴とするデプス推定プログラム。