説明

画像処理装置、画像処理方法及びプログラム

【課題】 現実画像とCG画像とを合成して合成画像を生成する際に、違和感のない、より自然な合成画像の生成を実現できるようにする。
【解決手段】 現実画像1503の中から、特定の色範囲に含まれる色領域を抽出する色領域抽出手段1401と、仮想シーンデータ1501に基づいてCG画像1505を生成するCPU110と、現実画像1503の中から、特定の形状を有する領域を特定形状領域として抽出する形状領域抽出手段1402と、色領域抽出手段1401で抽出された色領域と、形状領域抽出手段1402で抽出された特定形状領域とに基づいて、現実画像1503とCG画像1505とを合成処理する合成手段1403を備える。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、現実空間の現実画像とCG画像とを合成処理する画像処理装置、画像処理方法、及び、当該画像処理方法をコンピュータに実行させるためのプログラムに関するものである。
【背景技術】
【0002】
従来から、現実世界の映像(画像)と、三次元モデリングされたCGの映像(画像)とを合成して表示し、あたかも現実の世界にCGの物体(仮想物体)が存在しているかのように見せる複合現実感(MR:Mixed Reality)提示装置が存在している。このような装置としては、例えば、下記の特許文献1に示すものが挙げられる。具体的に、特許文献1には、現実の映像(画像)を撮影するための現実映像撮影手段と、現実映像撮影手段の位置姿勢から見たようにCG映像(CG画像)を作り出すCG映像生成手段と、現実映像とCG映像とを合成する合成手段等からなる装置が示されている。
【0003】
このような複合現実感提示装置においては、現実画像の上に仮想オブジェクトの画像が重畳描画されてしまうため、現実物体と仮想物体の奥行き関係が正しく表示されないという問題があった。特に、複合現実感(MR)の体験者が仮想オブジェクトに対して自分の手を差し出す状況が頻繁に起こり得るが、手より奥にあるはずの仮想物体が手よりも手前に描画されてしまい、体験者が強い違和感を覚えることが多かった。
【0004】
この問題を解決するためには、現実画像の撮影点から見た現実空間の奥行き情報を取得する必要があるが、その場合には特別な測定装置が必要であった。また、奥行き情報の精度によっては、現実物体の輪郭とCGの境界とがきれいに表現されないという問題もあった。この問題に対して、特許文献1では、体験者の手及び腕の肌色と略同じ色を有する画像領域にはCGを描画しないようにする構成を有することにより、問題の解決を図っている。この構成によれば、現実空間の奥行き情報を取得する必要がないシンプルな構成でありながら、頻繁に起こり得る状況の問題を解決することが可能である。また、奥行き情報による判定ではなく画像の情報から判断することにより、手及び腕の輪郭がきれいに表現されるという利点があった。さらに、特許文献1には、肌色と略同じ色を有する領域の占める面積によって、CGを描画するべき領域か否かを判断する構成も示されている。
【0005】
【特許文献1】特開2006−343953号公報
【発明の開示】
【発明が解決しようとする課題】
【0006】
しかしながら、従来の技術では、例えば、CGオブジェクトの奥の位置に他の人物がいたときなどに、その人物の顔の領域が手や腕の肌色と同じ色の領域として抽出されてしまうという問題があった。また、肌色領域の面積によって判断する手段を有する場合でも、顔の領域の面積が手及び腕の領域の面積と比べて大差がない広い面積で撮影される状況が多々あるために、意図どおりに処理できない場合があった。
【0007】
本発明は、このような問題点に鑑みてなされたものであり、現実画像とCG画像とを合成して合成画像を生成する際に、違和感のない、より自然な合成画像の生成を実現する画像処理装置、画像処理方法及びプログラムを提供することを目的とする。
【課題を解決するための手段】
【0008】
本発明の画像処理装置は、現実画像の中から、特定の色範囲に含まれる色領域を抽出する色領域抽出手段と、仮想シーンデータに基づいてCG画像を生成するCG画像生成手段と、前記現実画像の中から、特定の形状を有する領域を特定形状領域として抽出する形状領域抽出手段と、前記色領域抽出手段で抽出された色領域と、前記形状領域抽出手段で抽出された特定形状領域とに基づいて、前記現実画像と前記CG画像とを合成処理する合成手段とを有する。
【0009】
本発明の画像処理方法は、現実画像の中から、特定の色範囲に含まれる色領域を抽出する色領域抽出ステップと、仮想シーンデータに基づいてCG画像を生成するCG画像生成ステップと、前記現実画像の中から、特定の形状を有する領域を特定形状領域として抽出する形状領域抽出ステップと、前記色領域抽出ステップで抽出された色領域と、前記形状領域抽出ステップで抽出された特定形状領域とに基づいて、前記現実画像と前記CG画像とを合成処理する合成ステップとを有する。
【0010】
本発明のプログラムは、現実画像の中から、特定の色範囲に含まれる色領域を抽出する色領域抽出ステップと、仮想シーンデータに基づいてCG画像を生成するCG画像生成ステップと、前記現実画像の中から、特定の形状を有する領域を特定形状領域として抽出する形状領域抽出ステップと、前記色領域抽出ステップで抽出された色領域と、前記形状領域抽出ステップで抽出された特定形状領域とに基づいて、前記現実画像と前記CG画像とを合成処理する合成ステップとをコンピュータに実行させるためのものである。
【発明の効果】
【0011】
本発明によれば、現実画像とCG画像とを合成して合成画像を生成する際に、従来手法と比べて、違和感のない、より自然な合成画像の生成を実現することができる。
【発明を実施するための最良の形態】
【0012】
以下に、図面を参照しながら、本発明を実施するための最良の形態(実施形態)について説明する。
【0013】
図1は、本発明の実施形態に係る画像処理装置100の概略構成の一例を示す模式図である。
図1に示すように、画像処理装置100は、CPU110と、ディスプレイ120と、ビデオカメラ130と、第1のメモリ140と、第2のメモリ150と、情報入力装置160と、バス170を有して構成されている。
【0014】
CPU110は、画像処理装置100における動作を統括的に制御するものであり、必要に応じて、画像処理装置100の各構成部(120〜160)の制御を行う。
【0015】
ディスプレイ120は、CPU110の制御に基づいて、各種の画像や各種の情報を表示する表示装置を構成するものである。
【0016】
ビデオカメラ130は、CPU110の制御に基づいて、被写体等の画像を撮像する撮像装置を構成するものである。
【0017】
第1のメモリ140には、プログラム1400が記憶されている。そして、例えば、CPU110がプログラム1400を実行することによって、色領域抽出手段1401、形状領域抽出手段1402、合成手段1403、CG描画領域抽出手段1404、現実画像切り出し手段1405、形状周辺領域抽出手段1406、形状周辺領域面積判定手段1407、及び、形状周辺領域削減手段1408が構成される。
【0018】
第2のメモリ150には、各種のデータや各種の画像が格納される。具体的に、図1には、各種のデータとして、仮想シーンデータ1501、第1の色範囲データ1502、第2の色範囲データ1511、特定形状領域画素数データ1512、特定形状周辺領域画素数データ1513、判定パラメータデータ1514が格納される。また、各種の画像として、現実画像1503、特定色領域画像1504、CG画像1505、CG描画領域画像1506、被重畳現実画像1507、特定形状領域画像1508、特定形状周辺領域画像1509、合成画像1510、マスク画像1515が格納される。
【0019】
なお、図1において、第1のメモリ140と第2のメモリ150は、説明の便宜上区別しているだけであり、例えば、1つのメモリで構成されていてもよい。
【0020】
情報入力装置160は、当該画像処理装置100に対して、情報の入力を行なうものである。
【0021】
バス170は、CPU110、ディスプレイ120、ビデオカメラ130、第1のメモリ140、第2のメモリ150及び情報入力装置160を通信可能に接続するためのものである。
【0022】
ここで、本実施形態において、描画する仮想シーンを表す3Dデータは、事前に、情報入力装置160等を介して、第2のメモリ150の内部に、仮想シーンデータ1501として記憶されているものである。また、特定の色範囲を表現するためのデータは、事前に、情報入力装置160等を介して、第2のメモリ150の内部に、第1の色範囲データ1502として記憶されているものである。この第1の色範囲データ1502としては、例えば、適切な色空間表現(例えば、YUV、RGBなど)において色を表現する3値の、それぞれの上限・下限を色範囲として設定しておくなどすればよい。これにより、色領域抽出手段1401では、拝呈対象の画素値を表現する3つの値がいずれもそれぞれに設けられた上限・下限の色範囲に含まれているか否かを判定することによって、色領域の抽出を行うことができる。また、特定の色範囲(第1の色範囲)を代表する多数のサンプル色を第1の色範囲データ1502として予め記憶しておき、色領域抽出手段1401では、上記サンプル色との色の近似度を比較することによって、色領域の抽出を行うようにしてもよい。
【0023】
さらに、本実施形態においては、第1の色範囲データ1502の第1の色範囲と異なる第2の色範囲を表現するためのデータが、事前に、情報入力装置160等を介して、第2のメモリ150の内部に、第2の色範囲データ1511として記憶されている。また、形状周辺領域面積判定手段1407による判定で用いるためのデータが、事前に、情報入力装置160等を介して、第2のメモリ150の内部に、判定パラメータデータ1514として記憶されている。
【0024】
以下、本実施形態の画像処理装置100による画像処理方法の処理手順について説明する。
【0025】
図2は、本発明の実施形態に係る画像処理装置100による画像処理方法の処理手順の一例を示すフローチャートである。
【0026】
まず、ステップS101において、例えばCPU110は、ビデオカメラ130を用いて現実映像(現実画像)をキャプチャして取得し、これを第2のメモリ150の内部に現実画像1503として記憶する。
【0027】
図3は、図1に示す現実画像1503の一例を示す模式図である。この現実画像1503は、例えば、フルカラーの画像である。
【0028】
続いて、ステップS102において、CPU110はプログラム1400を実行し、色領域抽出手段1401によって、ステップS101で取得した現実画像1503の中から、特定の色範囲(第1の色範囲)に含まれる色をした画像領域(色領域)を抽出する。具体的に、色領域抽出手段1401は、現実画像1503の全画素について、第1の色範囲データ1502に示された特定の色範囲(第1の色範囲)に含まれる色であるか否かを判定し、当該特定の色範囲に含まれる色の色領域を抽出する。また、この際、従来から行われているように、特定の色範囲であるとされた画素をラベリングし、ラベリングされた領域の面積が予め定めた値よりも小さいものや、他と比べて相対的に小さいものは、色領域として抽出しないとする処理などを加えてもよい。その後、例えばCPU110(色領域抽出手段1401)は、ステップS102で抽出した色領域を特定色領域画像1504として第2のメモリ150に記憶する。
【0029】
図4は、図1に示す特定色領域画像1504の一例を示す模式図である。
この特定色領域画像1504は、画素値として0か1かを持つ画像である。ここでは、図3に示す現実画像1503の中から特定の色範囲(第1の色範囲)であるとして抽出された色領域(図4の画像領域402、403及び404)の画素値を1、そうでない領域(図4の画像領域401)の画素値を0としている。ここで、画像領域402及び403は、観察者の手の画像領域を示し、画像領域405は、正面に立っている人物の顔の画像領域を示している。
【0030】
続いて、ステップS103において、例えばCPU110は、第2のメモリ150に記憶されている仮想シーンデータ1501をレンダリングして、CG画像を生成し、これを第2のメモリ150の内部にCG画像1505として記憶する。ここで、CG画像を生成する処理(S103の処理)を行う例えばCPU110は、CG画像生成手段を構成する。ここで、従来の複合現実感システムで行われているように、現実のビデオカメラ130の位置・姿勢と、CGレンダリングの仮想カメラの位置・姿勢とを一致させてもよい。例えば、ビデオカメラ130の位置・姿勢を取得する位置・姿勢センサを用いたり、現実画像1503の画像の特徴によってビデオカメラ130の位置・姿勢を推定したりする方法を用いることができる。
【0031】
図5は、図1に示すCG画像1505の一例を示す模式図である。この図5には、CG画像1505として、球状の物体の画像が示されている。
【0032】
続いて、ステップS104において、CPU110はプログラム1400を実行し、CG描画領域抽出手段1404により、CG画像1505の中から、仮想シーンデータ1501中のCGオブジェクトがレンダリングされている領域(CG描画領域)を抽出する。具体的に、CG描画領域抽出手段1404は、当該CGオブジェクトが描画されている部分(領域)とそうでない部分(領域)とを判定して、CGオブジェクトが描画されているCG描画領域の抽出を行う。この際、CGオブジェクトが描画されている画素(領域)であるか否かは、例えば、CGのZバッファの値を検査することや、CG描画前にクリアした画素値と変化があったか否かなどにより判定すればよい。その後、例えばCPU110(CG描画領域抽出手段1404)は、ステップS104で抽出したCG描画領域をCG描画領域画像1506として第2のメモリ150に記憶する。
【0033】
図6は、図1に示すCG描画領域画像1506の一例を示す模式図である。
このCG描画領域画像1506は、画素値として0か1かを持つ画像である。ここでは、図5に示すCG画像1505の中から、仮想シーンデータ1501中のCGオブジェクトがレンダリングされたとして抽出された領域(図6の画像領域601)の画素値を1、そうでない領域(図6の画像領域602)の画素値を0としている。
【0034】
続いて、ステップS105において、CPU110はプログラム1400を実行し、現実画像切り出し手段1405によって、現実画像1503の中から、合成時にCGオブジェクトが重畳されるであろう画像領域(CG描画領域に相当する領域)を切り出す。その後、例えばCPU110(現実画像切り出し手段1405)は、ステップS105で切り出した画像領域を被重畳現実画像1507として第2のメモリ150に記憶する。この被重畳現実画像1507は、現実画像1503の各画素値に対して、それぞれ、CG描画領域画像1506の各画素値を掛け合わせることで生成することができる。即ち、被重畳現実画像1507は、CG描画領域画像1506で画素値が1である領域(図6の601)は、現実画像1503のままの値として生成され、CG描画領域画像1506で画素値が0である領域(図6の画像領域602)の画素値は0として生成される。
【0035】
図7は、図1に示す被重畳現実画像1507の一例を示す模式図である。
図7において、画像領域701は、図3に示す現実画像1503のままの画素値の領域であり、画像領域702は、図6に示すCG描画領域画像1506で画素値が0である領域(画像領域602)に対応する画素値が0の領域である。なお、上述した、現実画像1503の各画素値にCG描画領域画像1506の各画素値を掛け合わせる際、CG描画領域画像1506において画素値が1である領域を適当な幅だけ広げた後に、掛け合わせるようにしてもよい。この場合、例えば、予め決められた画素分だけ外側に広げるなどすればよい。このようにすることにより、現実画像1503として撮影された人物の顔の領域が、CG描画領域の端の部分で一部分だけ重畳するような場合への対策となる。
【0036】
続いて、ステップS106において、CPU110はプログラム1400を実行し、形状領域抽出手段1402によって、被重畳現実画像1507の中から、特定の形状をしていると認識される領域(特定形状領域)を抽出する。ここで、特定の形状とは、例えば人間の顔の形状である。この際、ある画像の中から人間の顔であると認識される領域を抽出する技術は既知のものである。ここで、抽出される領域がどのようなものになるのかについては、顔認識のアルゴリズムによる。例えば、画像上の肌色領域の中で特徴抽出を行い、眼と口と認識できる部分があれば、両眼と口の位置を含む矩形領域を顔領域として抽出することができる。その後、例えばCPU110(形状領域抽出手段1402)は、ステップS106で抽出した特定形状領域を特定形状領域画像1508として第2のメモリ150に記憶する。
【0037】
図8は、図1に示す特定形状領域画像1508の一例を示す模式図である。
図8は、図7に示す被重畳現実画像1507に対して特定の形状(ここでは顔)の認識処理を行い、認識した形状のものがどの位置にあったかを矩形で表現したものである。ここでは、図7に示す被重畳現実画像1507の中から特定の形状のものがあるとして抽出された領域(図8の画像領域801)の画素値を1、それ以外の領域(図8の画像領域802)の画素値を0としている。なお、図8に示す例では、説明を容易にするために抽出される領域を矩形としたが、不定形であることも考えられる。例えば、眼・口と認識された部分を含んで連続している肌色の領域を不定形で抽出するようなことも考えられる。
【0038】
続いて、ステップS107において、CPU110はプログラム1400を実行し、形状周辺領域抽出手段1406により、ステップS106で抽出された特定形状領域に連続し、かつ、第2の色範囲データ1511の色範囲に基づく特定形状周辺領域を抽出する。このステップS107の処理の詳細については、図10を用いて後述する。その後、例えばCPU110(形状周辺領域抽出手段1406)は、ステップS107で抽出した特定形状周辺領域を特定形状周辺領域画像1509として第2のメモリ150に記憶する。
【0039】
図9は、図1に示す特定形状周辺領域画像1509の一例を示す模式図である。
図9では、特定形状周辺領域として抽出された領域(図9の画像領域901、902及び903)の画素値が1であり、その以外の領域(図9の画像領域904)の画素値が0である。画像領域901は、図3に示す現実画像1503の人物の顔の額における領域、画像領域902は、図3に示す現実画像1503の人物の耳における領域、画像領域903は、図3に示す現実画像1503の人物のあご・首における領域である。これらの領域は、顔と認識された領域(図8の画像領域801)に連続しており、かつ、第2の色範囲の色(ここでは肌色)をしている領域である。なお、手が撮影されている領域は、肌色ではあるが、顔と認識された領域と連続していないため、ここでは抽出されない。
【0040】
続いて、ステップS108において、CPU110はプログラム1400を実行し、形状周辺領域面積判定手段1407を動作させる。そして、形状周辺領域面積判定手段1407は、特定形状領域画像1508中の画素値が1である画素の数と、特定形状周辺領域画像1509中の画素値が1である画素の数とを比較し、その比が一定値以上であるか否かを判断する。即ち、このステップS108の処理は、特定形状領域における特定形状周辺領域に対する面積比が一定値以上であるか否かを判断(判定)するものである。このステップS108の処理の詳細については、図14を用いて後述する。
【0041】
ステップS108の判断の結果、特定形状領域画像1508中の画素値が1である画素の数と、特定形状周辺領域画像1509中の画素値が1である画素の数との比が一定値以上である場合には(S108/YES)、ステップS109に進む。
【0042】
ステップS109に進むと、CPU110はプログラム1400を実行し、形状周辺領域削減手段1408によって、ステップS107で抽出した特定形状周辺領域を削減する削減処理を行う。このステップS109の処理の詳細については、図15を用いて後述する。
【0043】
ステップS109の処理が終了した場合、或いは、ステップS108において特定形状領域画像1508と特定形状周辺領域画像1509との所定の画素値における画素数の比が一定値以上でない場合には(S108/NO)、ステップS110に進む。
【0044】
ステップS110に進むと、CPU110はプログラム1400を実行し、合成手段1403によって、現実画像1503とCG画像1505とを合成処理して、合成画像を生成する。このステップS110の処理の詳細については、図16を用いて後述する。その後、例えばCPU110(合成手段1403)は、ステップS110で生成した合成画像を合成画像1510として第2のメモリ150に記憶する。
【0045】
続いて、ステップS111において、CPU110は、ステップS110で生成した合成画像1510をディスプレイ120に出力して表示する。
【0046】
以上の図2に示す一連の処理を経ることにより、1フレーム分の合成画像1510がディスプレイ120に出力表示される。そして、必要に応じて、図2に示す一連の処理を繰り返し行うことによって、合成画像1510を動画としてディスプレイ120に表示することが可能である。
【0047】
次に、形状周辺領域抽出手段1406が行う、図2のステップS107の詳細な処理について説明する。
図10は、図2に示すステップS107の詳細な処理手順の一例を示すフローチャートである。
【0048】
まず、図10のステップS201において、形状周辺領域抽出手段1406は、第2の色範囲データ1511を用いて、現実画像1503の中から、第2の色範囲に含まれる画素値を持つ色領域を抽出する。
【0049】
図11は、図10のステップS201の抽出された色領域の画像の一例を示す模式図である。
図11に示す色領域の画像では、第2の色範囲であると判定された領域(図11の画像領域1101、1102及び1103)の画素値を1、それ以外の領域(図11の画像領域1104)の画素値を0としている。
【0050】
続いて、ステップS202において、形状周辺領域抽出手段1406は、ステップS201で抽出した色領域の画像(図11)に、特定形状領域画像1508の画素値をORする(即ち足す)。
【0051】
図12は、図10のステップS202の処理で得られた画像の一例を示す模式図である。この図12に示す画像は、図11に示す色領域の画像と、図8に示す特定形状領域画像1508とを足したものである。即ち、図12の画像領域1201は、図11の画像領域1101と図8の画像領域801とを足した領域ということになる。
【0052】
続いて、ステップS203において、形状周辺領域抽出手段1406は、ステップS202の処理で得られた画像(図12)をラベリングして、連続している領域をそれぞれまとめ、相互に区別できるようにする。例えば、ここで付けられたラベルの番号を画素値に入れてもよい。ここでは、例えば、図12の画像領域1201の画素値を1、画像領域1202の画素値を2、画像領域1203の画素値を3にする。
【0053】
続いて、ステップS204において、形状周辺領域抽出手段1406は、特定形状領域画像1508で画素値が1である領域(図8の画像領域801)に対応する領域と同じラベルが付けられた領域の画素値を1とする。そして、形状周辺領域抽出手段1406は、他のラベルがつけられた領域の画素値を0に変更する。
【0054】
図13は、図10のステップS204の処理で得られた画像の一例を示す模式図である。図13において、画像領域1301は画素値が1の領域であり、画像領域1302は画素値が0の領域である。
【0055】
続いて、ステップS205において、形状周辺領域抽出手段1406は、ステップS204の処理で得られた画像に対して、特定形状領域画像1508で画素値が1である領域(図8の画像領域801)に相当する画素の値を0にセットする。この結果、図9に示す特定形状周辺領域画像1509が得られる。
【0056】
以上のステップS201〜S205の処理を経ることにより、特定形状周辺領域画像1509の生成が行われる。
【0057】
ここで、本実施形態では、上述したように、ステップS201における色領域の抽出の際に用いる色範囲(第2の色範囲)を、第1の色範囲データ1502の特定の色範囲(第1の色範囲)とは異なるものにしている。その理由としては、特定形状の周辺領域をより安定して抽出するためである。具体的に、第1の色範囲データ1502によって手・腕の領域を抽出しようとしている場合、この色範囲を広くしてしまうと、手・腕でない画素が多く抽出されしまうため、色範囲をあまり広く設定できない。一方、形状周辺領域抽出手段1406で抽出したい領域は、手・腕ではない領域に連続する色領域を抽出しようとしているので、色範囲が少々広くても問題にならない。例えば、顔として認識された領域に連続する肌色領域を抽出する場合、第1の色範囲データ1502よりもやや広めの色範囲を設定すると、顔領域に連続する肌色領域がつながりやすくなるという利点がある。以上のように、ステップS201の処理において、第1の色範囲データ1502と異なる第2の色範囲データ1511を用いるのには利点がある。しかしながら、簡便のために、ステップS201で用いる色範囲として、第2の色範囲ではなく、第1の色範囲データ1502における特定の色範囲(第1の色範囲)を用いる形態であってもよい。
【0058】
次に、形状周辺領域面積判定手段1407が行う、図2のステップS108の詳細な処理について説明する。
図14は、図2に示すステップS108の詳細な処理手順の一例を示すフローチャートである。
【0059】
まず、ステップS301において、形状周辺領域面積判定手段1407は、特定形状領域画像1508について、画素値が1である画素の数(特定形状領域画素数)を計算する。そして、例えばCPU110(形状周辺領域面積判定手段1407)は、ステップS301の計算の結果得られたデータを特定形状領域画素数データ1512として第2のメモリ150に記憶する。
【0060】
続いて、ステップS302において、形状周辺領域面積判定手段1407は、特定形状周辺領域画像1509について、画素値が1である画素の数(特定形状周辺領域画素数)を計算する。そして、例えばCPU110(形状周辺領域面積判定手段1407)は、ステップS302の計算の結果得られたデータを特定形状周辺領域画素数データ1513として第2のメモリ150に記憶する。
【0061】
続いて、ステップS303において、形状周辺領域面積判定手段1407は、ステップS301及びS302で計算した、特定形状周辺領域画素数に対する特定形状領域画素数の比を計算し、これを判定パラメータデータ1514の一定値と比較する。そして、形状周辺領域面積判定手段1407は、当該比が判定パラメータデータ1514の一定値以上であるか否かを判断する。
【0062】
ここで、判定パラメータデータ1514について説明する。
この判定パラメータデータ1514は、特定の形状、例えば人間の顔と認識された領域が、それ以外の領域、例えば手・腕である領域と連結してしまう場合を判断するためのものである。即ち、特定形状である顔として認識された領域の面積よりも、顔につながっている周辺の肌色領域が相対的に大きすぎるかどうかを判断することで、別の肌色領域につながっているか否かを判断するものである。
【0063】
したがって、例えば顔と認識された特定形状領域における、それに連続する肌色領域等の特定形状周辺領域に対する面積比が、判定パラメータデータ1514の一定値以上である場合には(S303/YES)、ステップS304に進む。そして、ステップS304において、形状周辺領域面積判定手段1407は、顔等の特定形状領域に何か別の肌色物体(例えば手・腕)の特定形状周辺領域が重なってしまったと判定する。この場合には、後工程のステップS109において、形状周辺領域削減手段1408の処理によって、当該特定形状周辺領域を適当な範囲(例えば特定形状領域に重ならない範囲)におさめるようにするものである。
【0064】
一方、ステップS303の判断の結果、否定判断された場合には(S303/NO)、ステップS305において、形状周辺領域面積判定手段1407は、顔等の特定形状領域に特定形状周辺領域が重なっていないと判定する。
【0065】
なお、本実施形態では、ここでの判定方法として単純な面積比によるものを用いたが、特定形状周辺領域が特定形状領域に比べて大きすぎることを判定できるものであれば、別途定めた方式によるものであってもよい。
【0066】
以上のステップS301〜S305の処理を経ることにより、図2のステップS108の処理が終了する。
【0067】
次に、形状周辺領域削減手段1408が行う、図2のステップS109の詳細な処理について説明する。
図15は、図2に示すステップS109の詳細な処理手順の一例を示すフローチャートである。
【0068】
まず、ステップS401において、形状周辺領域削減手段1408は、特定形状領域画像1508の重心Pを設定する。ここでは、重心Pとして、重心位置を一時的な変数として設定する。
【0069】
続いて、ステップS402において、形状周辺領域削減手段1408は、特定形状周辺領域画像1509のうち、画素値が1である全ての画素について、重心Pに相当する位置からの距離と座標を求め、配列Aに格納する。ここで、配列Aは、例えば、重心Pからの距離、画素のx座標、画素のy座標の3つの内容からなる配列である。また、その配列の
サイズは、特定形状周辺領域画素数データ1513の値と等しくなる。
【0070】
続いて、ステップS403において、形状周辺領域削減手段1408は、配列Aを距離の小さい順にソートする。
【0071】
続いて、ステップS404において、形状周辺領域削減手段1408は、N=(特定形状領域画素数データ1512)×(判定パラメータデータ1514)で算出される値Nを求める。この値Nは、特定形状領域画素数と特定形状周辺領域画素数との比が、判定パラメータデータ1514の一定値未満(或いは以下)になるような、特定形状周辺領域画素数を求めたものである。
【0072】
続いて、ステップS405において、形状周辺領域削減手段1408は、値Nが、特定形状周辺領域画素数未満であるか否かを判断する。
【0073】
ステップS405の判断の結果、値Nが、特定形状周辺領域画素数未満でない、即ち以上である場合には(S405/NO)、ステップS406に進む。
【0074】
ステップS406に進むと、形状周辺領域削減手段1408は、ステップS403でソートした配列AのN番目の要素Anに対応する画素に0をセットする。その後、ステップS407において、形状周辺領域削減手段1408は、現在の値Nに1を加算して、現在の値Nを変更した後、ステップS405に戻る。
【0075】
即ち、ステップS405からステップS407では、ステップS403でソートした配列AのN番目の要素Anから最後の要素(配列Aの全要素数は特定形状周辺領域画素数データ1513の値に等しい)までの画素に対応する画素値を0にセットする。ここで、配列Aの各要素には、画素の特定形状周辺領域画像1509中におけるx座標、y座標が格納されているため、特定形状周辺領域画像1509中で対応する画素の値をセットすることができる。
【0076】
一方、ステップS405の判断の結果、値Nが、特定形状周辺領域画素数未満である場合には(S405/YES)、図15に示すフローチャートの処理を終了する。
【0077】
以上のステップS401〜S407の処理を経ることによって、特定形状領域画像1508中で画素値が1である画素数と特定形状周辺領域画像1509中で画素値が1である画素数との比は、判定パラメータデータ1514の一定値未満におさまることになる。
【0078】
本実施形態においては、特定形状周辺領域画像1509は、特定形状領域画像1508の重心Pに近いものを画素値1として残し、重心Pから遠いものを削除する(画素値が0になる)ようにしているが、他の手法を用いても構わない。この場合、例えば、本実施形態の処理においては、特定形状周辺領域画像1509で画素値が1である領域は結果的に円形になるが、特定形状として認識される対象が人物の顔であることを鑑みて、残される領域が楕円形になるように処理することなども考えられる。
【0079】
次に、合成手段1403が行う、図2のステップS110の詳細な処理について説明する。
図16は、図2に示すステップS110の詳細な処理手順の一例を示すフローチャートである。
【0080】
まず、ステップS501において、合成手段1403は、特定色領域画像1504(図4)を第2のメモリ150のマスク画像1515にコピーする。
【0081】
続いて、ステップS502において、合成手段1403は、特定形状領域画像1508(図8)の画素値を全て反転する処理を行う。
【0082】
続いて、ステップS503において、合成手段1403は、マスク画像1515の全画素について、それに対応する位置の特定形状領域画像1508(ステップS502で反転させたもの)の画素とのANDをとり、その結果をマスク画像1515に反映する。
【0083】
図17は、図16のステップS503の処理で得られたマスク画像1515の一例を示す模式図である。
【0084】
続いて、ステップS504において、合成手段1403は、特定形状周辺領域画像1509(図9)の画素値を全て反転する処理を行う。
【0085】
続いて、ステップS505において、合成手段1403は、マスク画像1515の全画素について、それに対応する位置の特定形状周辺領域画像1509(ステップS504で反転させたもの)の画素とのANDをとり、その結果をマスク画像1515に反映する。
【0086】
図18は、図16のステップS505の処理で得られたマスク画像1515の一例を示す模式図である。
【0087】
続いて、ステップS506において、合成手段1403は、マスク画像1515の画素値を全て反転する処理を行う。
【0088】
続いて、ステップS507において、合成手段1403は、CG画像1505と、ステップS506で反転したマスク画像1515とにおいて対応する各画素値を掛け合わせ、その結果をCG画像1505に反映する。
【0089】
続いて、ステップS508において、合成手段1403は、現実画像1503を第2のメモリ150の内部の合成画像1510にコピーする。
【0090】
続いて、ステップS509において、合成手段1403は、ステップS507で処理したCG画像1505を合成画像1510の上に上書して重畳し、現実画像1503とCG画像1505を合成する処理を行う。なお、この際、CG画像1505に半透明領域がある場合には、適宜ブレンディングなどの処理を行う。その後、図16に示すフローチャートの処理を終了する。
【0091】
以上のステップS501〜S509の処理を経ることにより、図2のステップS110における合成画像1510の合成処理が行われる。
【0092】
図19は、図2のステップS110(或いは図16)の合成処理で得られた合成画像1510の一例を示す模式図である。
図19に示す合成画像1510では、図5に示すCG画像1505に重なった手の画像領域が肌色の色領域であるとして抽出されたことによって、CG画像1505がマスクされているために、図3に示す現実画像1503の手が見えている。また、CG画像1505に重なった顔の領域とそれに連続する肌色の領域は、肌色ではあったが、特定の形状及びそれに連続する所定色領域であるとして抽出されたため、当該領域のCG画像1505はマスクされることなく、そのまま重畳されている。
【0093】
なお、ステップS507のように反転させたマスク画像1515とCG画像1505を掛け合わせるのではなく、マスク画像1515を反転させずにステンシルバッファに格納した後に、仮想シーンをレンダリングしてCG画像1505を得る方法も考えられる。本実施形態では、形状認識を行う領域を限定するために、CG画像1505が既に生成済みであった。しかしながら、形状認識を行う領域を限定して効率化するような処理を行わないのであれば、本処理に至るまで仮想シーンをレンダリングしなくても構わない。そのような場合には、合成処理中でステンシルバッファを用いてCG描画を行う手法も有効である。
【0094】
本実施形態によれば、現実画像とCG画像とを合成して合成画像を生成する際に、従来手法と比べて、違和感のない、より自然な合成画像の生成を実現することができる。
【0095】
(本発明の他の実施形態)
前述した本発明の実施形態に係る画像処理装置100に含まれる各手段(1401〜1408)、並びに、画像処理方法を示す図2、図10、図14〜図16の各ステップは、CPU110がプログラム1400を実行することによって実現できる。このプログラム1400及び当該プログラム1400を記録したコンピュータ読み取り可能な記録媒体(例えば、第1のメモリ140)は本発明に含まれる。
【0096】
また、本発明は、例えば、システム、装置、方法、プログラム若しくは記憶媒体等としての実施形態も可能であり、具体的には、複数の機器から構成されるシステムに適用してもよいし、また、1つの機器からなる装置に適用してもよい。
【0097】
なお、本発明は、前述した実施形態の機能を実現するソフトウェアのプログラム(実施形態では図2、図10、図14〜図16に示すフローチャートに対応したプログラム)を、システム或いは装置に直接、或いは遠隔から供給するものを含む。そして、そのシステム或いは装置のコンピュータが前記供給されたプログラムコードを読み出して実行することによっても達成される場合も本発明に含まれる。
【0098】
したがって、本発明の機能処理をコンピュータで実現するために、前記コンピュータにインストールされるプログラムコード自体も本発明を実現するものである。つまり、本発明は、本発明の機能処理を実現するためのコンピュータプログラム自体も含まれる。
【0099】
その場合、プログラムの機能を有していれば、オブジェクトコード、インタプリタにより実行されるプログラム、OSに供給するスクリプトデータ等の形態であってもよい。
【0100】
プログラムを供給するための記録媒体としては、例えば、フレキシブルディスク、ハードディスク、光ディスク、光磁気ディスク、MO、CD−ROM、CD−R、CD−RWなどがある。また、磁気テープ、不揮発性のメモリカード、ROM、DVD(DVD−ROM,DVD−R)などもある。
【0101】
その他、プログラムの供給方法としては、クライアントコンピュータのブラウザを用いてインターネットのホームページに接続する。そして、前記ホームページから本発明のコンピュータプログラムそのもの、若しくは圧縮され自動インストール機能を含むファイルをハードディスク等の記録媒体にダウンロードすることによっても供給できる。
【0102】
また、本発明のプログラムを構成するプログラムコードを複数のファイルに分割し、それぞれのファイルを異なるホームページからダウンロードすることによっても実現可能である。つまり、本発明の機能処理をコンピュータで実現するためのプログラムファイルを複数のユーザに対してダウンロードさせるWWWサーバも、本発明に含まれるものである。
【0103】
また、本発明のプログラムを暗号化してCD−ROM等の記憶媒体に格納してユーザに配布し、所定の条件をクリアしたユーザに対し、インターネットを介してホームページから暗号化を解く鍵情報をダウンロードさせる。そして、ダウンロードした鍵情報を使用することにより暗号化されたプログラムを実行してコンピュータにインストールさせて実現することも可能である。
【0104】
また、コンピュータが、読み出したプログラムを実行することによって、前述した実施形態の機能が実現される。その他、そのプログラムの指示に基づき、コンピュータ上で稼動しているOSなどが、実際の処理の一部又は全部を行い、その処理によっても前述した実施形態の機能が実現され得る。
【0105】
さらに、記録媒体から読み出されたプログラムが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれる。その後、そのプログラムの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるCPUなどが実際の処理の一部又は全部を行い、その処理によっても前述した実施形態の機能が実現される。
【0106】
なお、前述した各実施形態は、何れも本発明を実施するにあたっての具体化の例を示したものに過ぎず、これらによって本発明の技術的範囲が限定的に解釈されてはならないものである。即ち、本発明はその技術思想、又はその主要な特徴から逸脱することなく、様々な形で実施することができる。
【図面の簡単な説明】
【0107】
【図1】本発明の実施形態に係る画像処理装置の概略構成の一例を示す模式図である。
【図2】本発明の実施形態に係る画像処理装置による画像処理方法の処理手順の一例を示すフローチャートである。
【図3】図1に示す現実画像の一例を示す模式図である。
【図4】図1に示す特定色領域画像の一例を示す模式図である。
【図5】図1に示すCG画像の一例を示す模式図である。
【図6】図1に示すCG描画領域画像の一例を示す模式図である。
【図7】図1に示す被重畳現実画像の一例を示す模式図である。
【図8】図1に示す特定形状領域画像の一例を示す模式図である。
【図9】図1に示す特定形状周辺領域画像の一例を示す模式図である。
【図10】図2に示すステップS107の詳細な処理手順の一例を示すフローチャートである。
【図11】図10のステップS201の抽出された色領域の画像の一例を示す模式図である。
【図12】図10のステップS202の処理で得られた画像の一例を示す模式図である。
【図13】図10のステップS204の処理で得られた画像の一例を示す模式図である。
【図14】図2に示すステップS108の詳細な処理手順の一例を示すフローチャートである。
【図15】図2に示すステップS109の詳細な処理手順の一例を示すフローチャートである。
【図16】図2に示すステップS110の詳細な処理手順の一例を示すフローチャートである。
【図17】図16のステップS503の処理で得られたマスク画像の一例を示す模式図である。
【図18】図16のステップS505の処理で得られたマスク画像の一例を示す模式図である。
【図19】図2のステップS110(或いは図16)の合成処理で得られた合成画像の一例を示す模式図である。
【符号の説明】
【0108】
100 画像処理装置
110 CPU
120 ディスプレイ
130 ビデオカメラ
140 第1のメモリ
1401 色領域抽出手段
1402 形状領域抽出手段
1403 合成手段
1404 CG描画領域抽出手段
1405 現実画像切り出し手段
1406 形状周辺領域抽出手段
1407 形状周辺領域面積判定手段
1408 形状周辺領域削減手段
150 第2のメモリ
1501 仮想シーンデータ
1502 第1の色範囲データ
1503 現実画像
1504 特定色領域画像
1505 CG画像
1506 CG描画領域画像
1507 被重畳現実画像
1508 特定形状領域画像
1509 特定形状周辺領域画像
1510 合成画像
1511 第2の色範囲データ
1512 特定形状領域画素数データ
1513 特定形状周辺領域画素数データ
1514 判定パラメータデータ
1515 マスク画像
160 情報入力装置
170 バス

【特許請求の範囲】
【請求項1】
現実画像の中から、特定の色範囲に含まれる色領域を抽出する色領域抽出手段と、
仮想シーンデータに基づいてCG画像を生成するCG画像生成手段と、
前記現実画像の中から、特定の形状を有する領域を特定形状領域として抽出する形状領域抽出手段と、
前記色領域抽出手段で抽出された色領域と、前記形状領域抽出手段で抽出された特定形状領域とに基づいて、前記現実画像と前記CG画像とを合成処理する合成手段と
を有することを特徴とする画像処理装置。
【請求項2】
前記CG画像の中から、前記仮想シーンデータのCGオブジェクトが描画されている領域をCG描画領域として抽出するCG描画領域抽出手段と、
前記現実画像の中から、前記CG描画領域に相当する領域を切り出す現実画像切り出し手段と
を更に有し、
前記形状領域抽出手段は、前記現実画像切り出し手段により切り出された現実画像の中から、前記特定形状領域を抽出することを特徴とする請求項1に記載の画像処理装置。
【請求項3】
前記特定形状領域に連続し、かつ、前記特定の色範囲に含まれる色領域を特定形状周辺領域として抽出する形状周辺領域抽出手段を更に有し、
前記合成手段は、前記色領域抽出手段で抽出された色領域および前記形状領域抽出手段で抽出された特定形状領域に加えて、更に、前記形状周辺領域抽出手段で抽出された特定形状周辺領域に基づいて、前記合成処理を行うことを特徴とする請求項1または2に記載の画像処理装置。
【請求項4】
前記特定形状領域における前記特定形状周辺領域に対する面積の比が一定値以上であるか否かを判定する形状周辺領域面積判定手段と、
前記面積の比が一定値以上である場合に、前記特定形状周辺領域のうち、前記特定形状領域の重心からの距離が遠い領域を削減処理する形状周辺領域削減手段と
を更に有し、
前記合成手段は、前記特定形状周辺領域に基づく前記合成処理を行う際に、前記形状周辺領域削減手段で削減処理された特定形状周辺領域に基づく前記合成処理を行うことを特徴とする請求項3に記載の画像処理装置。
【請求項5】
形状周辺領域面積判定手段は、前記面積の比として、前記特定形状領域における画素数と前記特定形状周辺領域における画素数との比を用いることを特徴とする請求項4に記載の画像処理装置。
【請求項6】
前記形状周辺領域抽出手段は、前記特定形状周辺領域を抽出する際に、前記特定の色範囲に含まれる色領域にかえて、当該特定の色範囲とは異なる第2の色範囲に含まれる色領域を用いることを特徴とする請求項3乃至5のいずれか1項に記載の画像処理装置。
【請求項7】
現実画像の中から、特定の色範囲に含まれる色領域を抽出する色領域抽出ステップと、
仮想シーンデータに基づいてCG画像を生成するCG画像生成ステップと、
前記現実画像の中から、特定の形状を有する領域を特定形状領域として抽出する形状領域抽出ステップと、
前記色領域抽出ステップで抽出された色領域と、前記形状領域抽出ステップで抽出された特定形状領域とに基づいて、前記現実画像と前記CG画像とを合成処理する合成ステップと
を有することを特徴とする画像処理方法。
【請求項8】
現実画像の中から、特定の色範囲に含まれる色領域を抽出する色領域抽出ステップと、
仮想シーンデータに基づいてCG画像を生成するCG画像生成ステップと、
前記現実画像の中から、特定の形状を有する領域を特定形状領域として抽出する形状領域抽出ステップと、
前記色領域抽出ステップで抽出された色領域と、前記形状領域抽出ステップで抽出された特定形状領域とに基づいて、前記現実画像と前記CG画像とを合成処理する合成ステップと
をコンピュータに実行させるためのプログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate

【図15】
image rotate

【図16】
image rotate

【図17】
image rotate

【図18】
image rotate

【図19】
image rotate


【公開番号】特開2010−140093(P2010−140093A)
【公開日】平成22年6月24日(2010.6.24)
【国際特許分類】
【出願番号】特願2008−313476(P2008−313476)
【出願日】平成20年12月9日(2008.12.9)
【出願人】(000001007)キヤノン株式会社 (59,756)
【Fターム(参考)】