(57)【要約】【課題】  現実画像とＣＧ画像とを合成して合成画像を生成する際に、違和感のない、より自然な合成画像の生成を実現できるようにする。【解決手段】  現実画像１５０３の中から、特定の色範囲に含まれる色領域を抽出する色領域抽出手段１４０１と、仮想シーンデータ１５０１に基づいてＣＧ画像１５０５を生成するＣＰＵ１１０と、現実画像１５０３の中から、特定の形状を有する領域を特定形状領域として抽出する形状領域抽出手段１４０２と、色領域抽出手段１４０１で抽出された色領域と、形状領域抽出手段１４０２で抽出された特定形状領域とに基づいて、現実画像１５０３とＣＧ画像１５０５とを合成処理する合成手段１４０３を備える。【選択図】  図１
2010140093.tif 000002
【特許請求の範囲】
【請求項１】
現実画像の中から、特定の色範囲に含まれる色領域を抽出する色領域抽出手段と、
仮想シーンデータに基づいてＣＧ画像を生成するＣＧ画像生成手段と、
前記現実画像の中から、特定の形状を有する領域を特定形状領域として抽出する形状領域抽出手段と、
前記色領域抽出手段で抽出された色領域と、前記形状領域抽出手段で抽出された特定形状領域とに基づいて、前記現実画像と前記ＣＧ画像とを合成処理する合成手段と
を有することを特徴とする画像処理装置。
【請求項２】
前記ＣＧ画像の中から、前記仮想シーンデータのＣＧオブジェクトが描画されている領域をＣＧ描画領域として抽出するＣＧ描画領域抽出手段と、
前記現実画像の中から、前記ＣＧ描画領域に相当する領域を切り出す現実画像切り出し手段と
を更に有し、
前記形状領域抽出手段は、前記現実画像切り出し手段により切り出された現実画像の中から、前記特定形状領域を抽出することを特徴とする請求項１に記載の画像処理装置。
【請求項３】
前記特定形状領域に連続し、かつ、前記特定の色範囲に含まれる色領域を特定形状周辺領域として抽出する形状周辺領域抽出手段を更に有し、
前記合成手段は、前記色領域抽出手段で抽出された色領域および前記形状領域抽出手段で抽出された特定形状領域に加えて、更に、前記形状周辺領域抽出手段で抽出された特定形状周辺領域に基づいて、前記合成処理を行うことを特徴とする請求項１または２に記載の画像処理装置。
【請求項４】
前記特定形状領域における前記特定形状周辺領域に対する面積の比が一定値以上であるか否かを判定する形状周辺領域面積判定手段と、
前記面積の比が一定値以上である場合に、前記特定形状周辺領域のうち、前記特定形状領域の重心からの距離が遠い領域を削減処理する形状周辺領域削減手段と
を更に有し、
前記合成手段は、前記特定形状周辺領域に基づく前記合成処理を行う際に、前記形状周辺領域削減手段で削減処理された特定形状周辺領域に基づく前記合成処理を行うことを特徴とする請求項３に記載の画像処理装置。
【請求項５】
形状周辺領域面積判定手段は、前記面積の比として、前記特定形状領域における画素数と前記特定形状周辺領域における画素数との比を用いることを特徴とする請求項４に記載の画像処理装置。
【請求項６】
前記形状周辺領域抽出手段は、前記特定形状周辺領域を抽出する際に、前記特定の色範囲に含まれる色領域にかえて、当該特定の色範囲とは異なる第２の色範囲に含まれる色領域を用いることを特徴とする請求項３乃至５のいずれか１項に記載の画像処理装置。
【請求項７】
現実画像の中から、特定の色範囲に含まれる色領域を抽出する色領域抽出ステップと、
仮想シーンデータに基づいてＣＧ画像を生成するＣＧ画像生成ステップと、
前記現実画像の中から、特定の形状を有する領域を特定形状領域として抽出する形状領域抽出ステップと、
前記色領域抽出ステップで抽出された色領域と、前記形状領域抽出ステップで抽出された特定形状領域とに基づいて、前記現実画像と前記ＣＧ画像とを合成処理する合成ステップと
を有することを特徴とする画像処理方法。
【請求項８】
現実画像の中から、特定の色範囲に含まれる色領域を抽出する色領域抽出ステップと、
仮想シーンデータに基づいてＣＧ画像を生成するＣＧ画像生成ステップと、
前記現実画像の中から、特定の形状を有する領域を特定形状領域として抽出する形状領域抽出ステップと、
前記色領域抽出ステップで抽出された色領域と、前記形状領域抽出ステップで抽出された特定形状領域とに基づいて、前記現実画像と前記ＣＧ画像とを合成処理する合成ステップと
をコンピュータに実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、現実空間の現実画像とＣＧ画像とを合成処理する画像処理装置、画像処理方法、及び、当該画像処理方法をコンピュータに実行させるためのプログラムに関するものである。
【背景技術】
【０００２】
従来から、現実世界の映像（画像）と、三次元モデリングされたＣＧの映像（画像）とを合成して表示し、あたかも現実の世界にＣＧの物体（仮想物体）が存在しているかのように見せる複合現実感（ＭＲ：Ｍｉｘｅｄ  Ｒｅａｌｉｔｙ）提示装置が存在している。このような装置としては、例えば、下記の特許文献１に示すものが挙げられる。具体的に、特許文献１には、現実の映像（画像）を撮影するための現実映像撮影手段と、現実映像撮影手段の位置姿勢から見たようにＣＧ映像（ＣＧ画像）を作り出すＣＧ映像生成手段と、現実映像とＣＧ映像とを合成する合成手段等からなる装置が示されている。
【０００３】
このような複合現実感提示装置においては、現実画像の上に仮想オブジェクトの画像が重畳描画されてしまうため、現実物体と仮想物体の奥行き関係が正しく表示されないという問題があった。特に、複合現実感（ＭＲ）の体験者が仮想オブジェクトに対して自分の手を差し出す状況が頻繁に起こり得るが、手より奥にあるはずの仮想物体が手よりも手前に描画されてしまい、体験者が強い違和感を覚えることが多かった。
【０００４】
この問題を解決するためには、現実画像の撮影点から見た現実空間の奥行き情報を取得する必要があるが、その場合には特別な測定装置が必要であった。また、奥行き情報の精度によっては、現実物体の輪郭とＣＧの境界とがきれいに表現されないという問題もあった。この問題に対して、特許文献１では、体験者の手及び腕の肌色と略同じ色を有する画像領域にはＣＧを描画しないようにする構成を有することにより、問題の解決を図っている。この構成によれば、現実空間の奥行き情報を取得する必要がないシンプルな構成でありながら、頻繁に起こり得る状況の問題を解決することが可能である。また、奥行き情報による判定ではなく画像の情報から判断することにより、手及び腕の輪郭がきれいに表現されるという利点があった。さらに、特許文献１には、肌色と略同じ色を有する領域の占める面積によって、ＣＧを描画するべき領域か否かを判断する構成も示されている。
【０００５】
【特許文献１】特開２００６−３４３９５３号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
しかしながら、従来の技術では、例えば、ＣＧオブジェクトの奥の位置に他の人物がいたときなどに、その人物の顔の領域が手や腕の肌色と同じ色の領域として抽出されてしまうという問題があった。また、肌色領域の面積によって判断する手段を有する場合でも、顔の領域の面積が手及び腕の領域の面積と比べて大差がない広い面積で撮影される状況が多々あるために、意図どおりに処理できない場合があった。
【０００７】
本発明は、このような問題点に鑑みてなされたものであり、現実画像とＣＧ画像とを合成して合成画像を生成する際に、違和感のない、より自然な合成画像の生成を実現する画像処理装置、画像処理方法及びプログラムを提供することを目的とする。
【課題を解決するための手段】
【０００８】
本発明の画像処理装置は、現実画像の中から、特定の色範囲に含まれる色領域を抽出する色領域抽出手段と、仮想シーンデータに基づいてＣＧ画像を生成するＣＧ画像生成手段と、前記現実画像の中から、特定の形状を有する領域を特定形状領域として抽出する形状領域抽出手段と、前記色領域抽出手段で抽出された色領域と、前記形状領域抽出手段で抽出された特定形状領域とに基づいて、前記現実画像と前記ＣＧ画像とを合成処理する合成手段とを有する。
【０００９】
本発明の画像処理方法は、現実画像の中から、特定の色範囲に含まれる色領域を抽出する色領域抽出ステップと、仮想シーンデータに基づいてＣＧ画像を生成するＣＧ画像生成ステップと、前記現実画像の中から、特定の形状を有する領域を特定形状領域として抽出する形状領域抽出ステップと、前記色領域抽出ステップで抽出された色領域と、前記形状領域抽出ステップで抽出された特定形状領域とに基づいて、前記現実画像と前記ＣＧ画像とを合成処理する合成ステップとを有する。
【００１０】
本発明のプログラムは、現実画像の中から、特定の色範囲に含まれる色領域を抽出する色領域抽出ステップと、仮想シーンデータに基づいてＣＧ画像を生成するＣＧ画像生成ステップと、前記現実画像の中から、特定の形状を有する領域を特定形状領域として抽出する形状領域抽出ステップと、前記色領域抽出ステップで抽出された色領域と、前記形状領域抽出ステップで抽出された特定形状領域とに基づいて、前記現実画像と前記ＣＧ画像とを合成処理する合成ステップとをコンピュータに実行させるためのものである。
【発明の効果】
【００１１】
本発明によれば、現実画像とＣＧ画像とを合成して合成画像を生成する際に、従来手法と比べて、違和感のない、より自然な合成画像の生成を実現することができる。
【発明を実施するための最良の形態】
【００１２】
以下に、図面を参照しながら、本発明を実施するための最良の形態（実施形態）について説明する。
【００１３】
図１は、本発明の実施形態に係る画像処理装置１００の概略構成の一例を示す模式図である。
図１に示すように、画像処理装置１００は、ＣＰＵ１１０と、ディスプレイ１２０と、ビデオカメラ１３０と、第１のメモリ１４０と、第２のメモリ１５０と、情報入力装置１６０と、バス１７０を有して構成されている。
【００１４】
ＣＰＵ１１０は、画像処理装置１００における動作を統括的に制御するものであり、必要に応じて、画像処理装置１００の各構成部（１２０〜１６０）の制御を行う。
【００１５】
ディスプレイ１２０は、ＣＰＵ１１０の制御に基づいて、各種の画像や各種の情報を表示する表示装置を構成するものである。
【００１６】
ビデオカメラ１３０は、ＣＰＵ１１０の制御に基づいて、被写体等の画像を撮像する撮像装置を構成するものである。
【００１７】
第１のメモリ１４０には、プログラム１４００が記憶されている。そして、例えば、ＣＰＵ１１０がプログラム１４００を実行することによって、色領域抽出手段１４０１、形状領域抽出手段１４０２、合成手段１４０３、ＣＧ描画領域抽出手段１４０４、現実画像切り出し手段１４０５、形状周辺領域抽出手段１４０６、形状周辺領域面積判定手段１４０７、及び、形状周辺領域削減手段１４０８が構成される。
【００１８】
第２のメモリ１５０には、各種のデータや各種の画像が格納される。具体的に、図１には、各種のデータとして、仮想シーンデータ１５０１、第１の色範囲データ１５０２、第２の色範囲データ１５１１、特定形状領域画素数データ１５１２、特定形状周辺領域画素数データ１５１３、判定パラメータデータ１５１４が格納される。また、各種の画像として、現実画像１５０３、特定色領域画像１５０４、ＣＧ画像１５０５、ＣＧ描画領域画像１５０６、被重畳現実画像１５０７、特定形状領域画像１５０８、特定形状周辺領域画像１５０９、合成画像１５１０、マスク画像１５１５が格納される。
【００１９】
なお、図１において、第１のメモリ１４０と第２のメモリ１５０は、説明の便宜上区別しているだけであり、例えば、１つのメモリで構成されていてもよい。
【００２０】
情報入力装置１６０は、当該画像処理装置１００に対して、情報の入力を行なうものである。
【００２１】
バス１７０は、ＣＰＵ１１０、ディスプレイ１２０、ビデオカメラ１３０、第１のメモリ１４０、第２のメモリ１５０及び情報入力装置１６０を通信可能に接続するためのものである。
【００２２】
ここで、本実施形態において、描画する仮想シーンを表す３Ｄデータは、事前に、情報入力装置１６０等を介して、第２のメモリ１５０の内部に、仮想シーンデータ１５０１として記憶されているものである。また、特定の色範囲を表現するためのデータは、事前に、情報入力装置１６０等を介して、第２のメモリ１５０の内部に、第１の色範囲データ１５０２として記憶されているものである。この第１の色範囲データ１５０２としては、例えば、適切な色空間表現（例えば、ＹＵＶ、ＲＧＢなど）において色を表現する３値の、それぞれの上限・下限を色範囲として設定しておくなどすればよい。これにより、色領域抽出手段１４０１では、拝呈対象の画素値を表現する３つの値がいずれもそれぞれに設けられた上限・下限の色範囲に含まれているか否かを判定することによって、色領域の抽出を行うことができる。また、特定の色範囲（第１の色範囲）を代表する多数のサンプル色を第１の色範囲データ１５０２として予め記憶しておき、色領域抽出手段１４０１では、上記サンプル色との色の近似度を比較することによって、色領域の抽出を行うようにしてもよい。
【００２３】
さらに、本実施形態においては、第１の色範囲データ１５０２の第１の色範囲と異なる第２の色範囲を表現するためのデータが、事前に、情報入力装置１６０等を介して、第２のメモリ１５０の内部に、第２の色範囲データ１５１１として記憶されている。また、形状周辺領域面積判定手段１４０７による判定で用いるためのデータが、事前に、情報入力装置１６０等を介して、第２のメモリ１５０の内部に、判定パラメータデータ１５１４として記憶されている。
【００２４】
以下、本実施形態の画像処理装置１００による画像処理方法の処理手順について説明する。
【００２５】
図２は、本発明の実施形態に係る画像処理装置１００による画像処理方法の処理手順の一例を示すフローチャートである。
【００２６】
まず、ステップＳ１０１において、例えばＣＰＵ１１０は、ビデオカメラ１３０を用いて現実映像（現実画像）をキャプチャして取得し、これを第２のメモリ１５０の内部に現実画像１５０３として記憶する。
【００２７】
図３は、図１に示す現実画像１５０３の一例を示す模式図である。この現実画像１５０３は、例えば、フルカラーの画像である。
【００２８】
続いて、ステップＳ１０２において、ＣＰＵ１１０はプログラム１４００を実行し、色領域抽出手段１４０１によって、ステップＳ１０１で取得した現実画像１５０３の中から、特定の色範囲（第１の色範囲）に含まれる色をした画像領域（色領域）を抽出する。具体的に、色領域抽出手段１４０１は、現実画像１５０３の全画素について、第１の色範囲データ１５０２に示された特定の色範囲（第１の色範囲）に含まれる色であるか否かを判定し、当該特定の色範囲に含まれる色の色領域を抽出する。また、この際、従来から行われているように、特定の色範囲であるとされた画素をラベリングし、ラベリングされた領域の面積が予め定めた値よりも小さいものや、他と比べて相対的に小さいものは、色領域として抽出しないとする処理などを加えてもよい。その後、例えばＣＰＵ１１０（色領域抽出手段１４０１）は、ステップＳ１０２で抽出した色領域を特定色領域画像１５０４として第２のメモリ１５０に記憶する。
【００２９】
図４は、図１に示す特定色領域画像１５０４の一例を示す模式図である。
この特定色領域画像１５０４は、画素値として０か１かを持つ画像である。ここでは、図３に示す現実画像１５０３の中から特定の色範囲（第１の色範囲）であるとして抽出された色領域（図４の画像領域４０２、４０３及び４０４）の画素値を１、そうでない領域（図４の画像領域４０１）の画素値を０としている。ここで、画像領域４０２及び４０３は、観察者の手の画像領域を示し、画像領域４０５は、正面に立っている人物の顔の画像領域を示している。
【００３０】
続いて、ステップＳ１０３において、例えばＣＰＵ１１０は、第２のメモリ１５０に記憶されている仮想シーンデータ１５０１をレンダリングして、ＣＧ画像を生成し、これを第２のメモリ１５０の内部にＣＧ画像１５０５として記憶する。ここで、ＣＧ画像を生成する処理（Ｓ１０３の処理）を行う例えばＣＰＵ１１０は、ＣＧ画像生成手段を構成する。ここで、従来の複合現実感システムで行われているように、現実のビデオカメラ１３０の位置・姿勢と、ＣＧレンダリングの仮想カメラの位置・姿勢とを一致させてもよい。例えば、ビデオカメラ１３０の位置・姿勢を取得する位置・姿勢センサを用いたり、現実画像１５０３の画像の特徴によってビデオカメラ１３０の位置・姿勢を推定したりする方法を用いることができる。
【００３１】
図５は、図１に示すＣＧ画像１５０５の一例を示す模式図である。この図５には、ＣＧ画像１５０５として、球状の物体の画像が示されている。
【００３２】
続いて、ステップＳ１０４において、ＣＰＵ１１０はプログラム１４００を実行し、ＣＧ描画領域抽出手段１４０４により、ＣＧ画像１５０５の中から、仮想シーンデータ１５０１中のＣＧオブジェクトがレンダリングされている領域（ＣＧ描画領域）を抽出する。具体的に、ＣＧ描画領域抽出手段１４０４は、当該ＣＧオブジェクトが描画されている部分（領域）とそうでない部分（領域）とを判定して、ＣＧオブジェクトが描画されているＣＧ描画領域の抽出を行う。この際、ＣＧオブジェクトが描画されている画素（領域）であるか否かは、例えば、ＣＧのＺバッファの値を検査することや、ＣＧ描画前にクリアした画素値と変化があったか否かなどにより判定すればよい。その後、例えばＣＰＵ１１０（ＣＧ描画領域抽出手段１４０４）は、ステップＳ１０４で抽出したＣＧ描画領域をＣＧ描画領域画像１５０６として第２のメモリ１５０に記憶する。
【００３３】
図６は、図１に示すＣＧ描画領域画像１５０６の一例を示す模式図である。
このＣＧ描画領域画像１５０６は、画素値として０か１かを持つ画像である。ここでは、図５に示すＣＧ画像１５０５の中から、仮想シーンデータ１５０１中のＣＧオブジェクトがレンダリングされたとして抽出された領域（図６の画像領域６０１）の画素値を１、そうでない領域（図６の画像領域６０２）の画素値を０としている。
【００３４】
続いて、ステップＳ１０５において、ＣＰＵ１１０はプログラム１４００を実行し、現実画像切り出し手段１４０５によって、現実画像１５０３の中から、合成時にＣＧオブジェクトが重畳されるであろう画像領域（ＣＧ描画領域に相当する領域）を切り出す。その後、例えばＣＰＵ１１０（現実画像切り出し手段１４０５）は、ステップＳ１０５で切り出した画像領域を被重畳現実画像１５０７として第２のメモリ１５０に記憶する。この被重畳現実画像１５０７は、現実画像１５０３の各画素値に対して、それぞれ、ＣＧ描画領域画像１５０６の各画素値を掛け合わせることで生成することができる。即ち、被重畳現実画像１５０７は、ＣＧ描画領域画像１５０６で画素値が１である領域（図６の６０１）は、現実画像１５０３のままの値として生成され、ＣＧ描画領域画像１５０６で画素値が０である領域（図６の画像領域６０２）の画素値は０として生成される。
【００３５】
図７は、図１に示す被重畳現実画像１５０７の一例を示す模式図である。
図７において、画像領域７０１は、図３に示す現実画像１５０３のままの画素値の領域であり、画像領域７０２は、図６に示すＣＧ描画領域画像１５０６で画素値が０である領域（画像領域６０２）に対応する画素値が０の領域である。なお、上述した、現実画像１５０３の各画素値にＣＧ描画領域画像１５０６の各画素値を掛け合わせる際、ＣＧ描画領域画像１５０６において画素値が１である領域を適当な幅だけ広げた後に、掛け合わせるようにしてもよい。この場合、例えば、予め決められた画素分だけ外側に広げるなどすればよい。このようにすることにより、現実画像１５０３として撮影された人物の顔の領域が、ＣＧ描画領域の端の部分で一部分だけ重畳するような場合への対策となる。
【００３６】
続いて、ステップＳ１０６において、ＣＰＵ１１０はプログラム１４００を実行し、形状領域抽出手段１４０２によって、被重畳現実画像１５０７の中から、特定の形状をしていると認識される領域（特定形状領域）を抽出する。ここで、特定の形状とは、例えば人間の顔の形状である。この際、ある画像の中から人間の顔であると認識される領域を抽出する技術は既知のものである。ここで、抽出される領域がどのようなものになるのかについては、顔認識のアルゴリズムによる。例えば、画像上の肌色領域の中で特徴抽出を行い、眼と口と認識できる部分があれば、両眼と口の位置を含む矩形領域を顔領域として抽出することができる。その後、例えばＣＰＵ１１０（形状領域抽出手段１４０２）は、ステップＳ１０６で抽出した特定形状領域を特定形状領域画像１５０８として第２のメモリ１５０に記憶する。
【００３７】
図８は、図１に示す特定形状領域画像１５０８の一例を示す模式図である。
図８は、図７に示す被重畳現実画像１５０７に対して特定の形状（ここでは顔）の認識処理を行い、認識した形状のものがどの位置にあったかを矩形で表現したものである。ここでは、図７に示す被重畳現実画像１５０７の中から特定の形状のものがあるとして抽出された領域（図８の画像領域８０１）の画素値を１、それ以外の領域（図８の画像領域８０２）の画素値を０としている。なお、図８に示す例では、説明を容易にするために抽出される領域を矩形としたが、不定形であることも考えられる。例えば、眼・口と認識された部分を含んで連続している肌色の領域を不定形で抽出するようなことも考えられる。
【００３８】
続いて、ステップＳ１０７において、ＣＰＵ１１０はプログラム１４００を実行し、形状周辺領域抽出手段１４０６により、ステップＳ１０６で抽出された特定形状領域に連続し、かつ、第２の色範囲データ１５１１の色範囲に基づく特定形状周辺領域を抽出する。このステップＳ１０７の処理の詳細については、図１０を用いて後述する。その後、例えばＣＰＵ１１０（形状周辺領域抽出手段１４０６）は、ステップＳ１０７で抽出した特定形状周辺領域を特定形状周辺領域画像１５０９として第２のメモリ１５０に記憶する。
【００３９】
図９は、図１に示す特定形状周辺領域画像１５０９の一例を示す模式図である。
図９では、特定形状周辺領域として抽出された領域（図９の画像領域９０１、９０２及び９０３）の画素値が１であり、その以外の領域（図９の画像領域９０４）の画素値が０である。画像領域９０１は、図３に示す現実画像１５０３の人物の顔の額における領域、画像領域９０２は、図３に示す現実画像１５０３の人物の耳における領域、画像領域９０３は、図３に示す現実画像１５０３の人物のあご・首における領域である。これらの領域は、顔と認識された領域（図８の画像領域８０１）に連続しており、かつ、第２の色範囲の色（ここでは肌色）をしている領域である。なお、手が撮影されている領域は、肌色ではあるが、顔と認識された領域と連続していないため、ここでは抽出されない。
【００４０】
続いて、ステップＳ１０８において、ＣＰＵ１１０はプログラム１４００を実行し、形状周辺領域面積判定手段１４０７を動作させる。そして、形状周辺領域面積判定手段１４０７は、特定形状領域画像１５０８中の画素値が１である画素の数と、特定形状周辺領域画像１５０９中の画素値が１である画素の数とを比較し、その比が一定値以上であるか否かを判断する。即ち、このステップＳ１０８の処理は、特定形状領域における特定形状周辺領域に対する面積比が一定値以上であるか否かを判断（判定）するものである。このステップＳ１０８の処理の詳細については、図１４を用いて後述する。
【００４１】
ステップＳ１０８の判断の結果、特定形状領域画像１５０８中の画素値が１である画素の数と、特定形状周辺領域画像１５０９中の画素値が１である画素の数との比が一定値以上である場合には（Ｓ１０８／ＹＥＳ）、ステップＳ１０９に進む。
【００４２】
ステップＳ１０９に進むと、ＣＰＵ１１０はプログラム１４００を実行し、形状周辺領域削減手段１４０８によって、ステップＳ１０７で抽出した特定形状周辺領域を削減する削減処理を行う。このステップＳ１０９の処理の詳細については、図１５を用いて後述する。
【００４３】
ステップＳ１０９の処理が終了した場合、或いは、ステップＳ１０８において特定形状領域画像１５０８と特定形状周辺領域画像１５０９との所定の画素値における画素数の比が一定値以上でない場合には（Ｓ１０８／ＮＯ）、ステップＳ１１０に進む。
【００４４】
ステップＳ１１０に進むと、ＣＰＵ１１０はプログラム１４００を実行し、合成手段１４０３によって、現実画像１５０３とＣＧ画像１５０５とを合成処理して、合成画像を生成する。このステップＳ１１０の処理の詳細については、図１６を用いて後述する。その後、例えばＣＰＵ１１０（合成手段１４０３）は、ステップＳ１１０で生成した合成画像を合成画像１５１０として第２のメモリ１５０に記憶する。
【００４５】
続いて、ステップＳ１１１において、ＣＰＵ１１０は、ステップＳ１１０で生成した合成画像１５１０をディスプレイ１２０に出力して表示する。
【００４６】
以上の図２に示す一連の処理を経ることにより、１フレーム分の合成画像１５１０がディスプレイ１２０に出力表示される。そして、必要に応じて、図２に示す一連の処理を繰り返し行うことによって、合成画像１５１０を動画としてディスプレイ１２０に表示することが可能である。
【００４７】
次に、形状周辺領域抽出手段１４０６が行う、図２のステップＳ１０７の詳細な処理について説明する。
図１０は、図２に示すステップＳ１０７の詳細な処理手順の一例を示すフローチャートである。
【００４８】
まず、図１０のステップＳ２０１において、形状周辺領域抽出手段１４０６は、第２の色範囲データ１５１１を用いて、現実画像１５０３の中から、第２の色範囲に含まれる画素値を持つ色領域を抽出する。
【００４９】
図１１は、図１０のステップＳ２０１の抽出された色領域の画像の一例を示す模式図である。
図１１に示す色領域の画像では、第２の色範囲であると判定された領域（図１１の画像領域１１０１、１１０２及び１１０３）の画素値を１、それ以外の領域（図１１の画像領域１１０４）の画素値を０としている。
【００５０】
続いて、ステップＳ２０２において、形状周辺領域抽出手段１４０６は、ステップＳ２０１で抽出した色領域の画像（図１１）に、特定形状領域画像１５０８の画素値をＯＲする（即ち足す）。
【００５１】
図１２は、図１０のステップＳ２０２の処理で得られた画像の一例を示す模式図である。この図１２に示す画像は、図１１に示す色領域の画像と、図８に示す特定形状領域画像１５０８とを足したものである。即ち、図１２の画像領域１２０１は、図１１の画像領域１１０１と図８の画像領域８０１とを足した領域ということになる。
【００５２】
続いて、ステップＳ２０３において、形状周辺領域抽出手段１４０６は、ステップＳ２０２の処理で得られた画像（図１２）をラベリングして、連続している領域をそれぞれまとめ、相互に区別できるようにする。例えば、ここで付けられたラベルの番号を画素値に入れてもよい。ここでは、例えば、図１２の画像領域１２０１の画素値を１、画像領域１２０２の画素値を２、画像領域１２０３の画素値を３にする。
【００５３】
続いて、ステップＳ２０４において、形状周辺領域抽出手段１４０６は、特定形状領域画像１５０８で画素値が１である領域（図８の画像領域８０１）に対応する領域と同じラベルが付けられた領域の画素値を１とする。そして、形状周辺領域抽出手段１４０６は、他のラベルがつけられた領域の画素値を０に変更する。
【００５４】
図１３は、図１０のステップＳ２０４の処理で得られた画像の一例を示す模式図である。図１３において、画像領域１３０１は画素値が１の領域であり、画像領域１３０２は画素値が０の領域である。
【００５５】
続いて、ステップＳ２０５において、形状周辺領域抽出手段１４０６は、ステップＳ２０４の処理で得られた画像に対して、特定形状領域画像１５０８で画素値が１である領域（図８の画像領域８０１）に相当する画素の値を０にセットする。この結果、図９に示す特定形状周辺領域画像１５０９が得られる。
【００５６】
以上のステップＳ２０１〜Ｓ２０５の処理を経ることにより、特定形状周辺領域画像１５０９の生成が行われる。
【００５７】
ここで、本実施形態では、上述したように、ステップＳ２０１における色領域の抽出の際に用いる色範囲（第２の色範囲）を、第１の色範囲データ１５０２の特定の色範囲（第１の色範囲）とは異なるものにしている。その理由としては、特定形状の周辺領域をより安定して抽出するためである。具体的に、第１の色範囲データ１５０２によって手・腕の領域を抽出しようとしている場合、この色範囲を広くしてしまうと、手・腕でない画素が多く抽出されしまうため、色範囲をあまり広く設定できない。一方、形状周辺領域抽出手段１４０６で抽出したい領域は、手・腕ではない領域に連続する色領域を抽出しようとしているので、色範囲が少々広くても問題にならない。例えば、顔として認識された領域に連続する肌色領域を抽出する場合、第１の色範囲データ１５０２よりもやや広めの色範囲を設定すると、顔領域に連続する肌色領域がつながりやすくなるという利点がある。以上のように、ステップＳ２０１の処理において、第１の色範囲データ１５０２と異なる第２の色範囲データ１５１１を用いるのには利点がある。しかしながら、簡便のために、ステップＳ２０１で用いる色範囲として、第２の色範囲ではなく、第１の色範囲データ１５０２における特定の色範囲（第１の色範囲）を用いる形態であってもよい。
【００５８】
次に、形状周辺領域面積判定手段１４０７が行う、図２のステップＳ１０８の詳細な処理について説明する。
図１４は、図２に示すステップＳ１０８の詳細な処理手順の一例を示すフローチャートである。
【００５９】
まず、ステップＳ３０１において、形状周辺領域面積判定手段１４０７は、特定形状領域画像１５０８について、画素値が１である画素の数（特定形状領域画素数）を計算する。そして、例えばＣＰＵ１１０（形状周辺領域面積判定手段１４０７）は、ステップＳ３０１の計算の結果得られたデータを特定形状領域画素数データ１５１２として第２のメモリ１５０に記憶する。
【００６０】
続いて、ステップＳ３０２において、形状周辺領域面積判定手段１４０７は、特定形状周辺領域画像１５０９について、画素値が１である画素の数（特定形状周辺領域画素数）を計算する。そして、例えばＣＰＵ１１０（形状周辺領域面積判定手段１４０７）は、ステップＳ３０２の計算の結果得られたデータを特定形状周辺領域画素数データ１５１３として第２のメモリ１５０に記憶する。
【００６１】
続いて、ステップＳ３０３において、形状周辺領域面積判定手段１４０７は、ステップＳ３０１及びＳ３０２で計算した、特定形状周辺領域画素数に対する特定形状領域画素数の比を計算し、これを判定パラメータデータ１５１４の一定値と比較する。そして、形状周辺領域面積判定手段１４０７は、当該比が判定パラメータデータ１５１４の一定値以上であるか否かを判断する。
【００６２】
ここで、判定パラメータデータ１５１４について説明する。
この判定パラメータデータ１５１４は、特定の形状、例えば人間の顔と認識された領域が、それ以外の領域、例えば手・腕である領域と連結してしまう場合を判断するためのものである。即ち、特定形状である顔として認識された領域の面積よりも、顔につながっている周辺の肌色領域が相対的に大きすぎるかどうかを判断することで、別の肌色領域につながっているか否かを判断するものである。
【００６３】
したがって、例えば顔と認識された特定形状領域における、それに連続する肌色領域等の特定形状周辺領域に対する面積比が、判定パラメータデータ１５１４の一定値以上である場合には（Ｓ３０３／ＹＥＳ）、ステップＳ３０４に進む。そして、ステップＳ３０４において、形状周辺領域面積判定手段１４０７は、顔等の特定形状領域に何か別の肌色物体（例えば手・腕）の特定形状周辺領域が重なってしまったと判定する。この場合には、後工程のステップＳ１０９において、形状周辺領域削減手段１４０８の処理によって、当該特定形状周辺領域を適当な範囲（例えば特定形状領域に重ならない範囲）におさめるようにするものである。
【００６４】
一方、ステップＳ３０３の判断の結果、否定判断された場合には（Ｓ３０３／ＮＯ）、ステップＳ３０５において、形状周辺領域面積判定手段１４０７は、顔等の特定形状領域に特定形状周辺領域が重なっていないと判定する。
【００６５】
なお、本実施形態では、ここでの判定方法として単純な面積比によるものを用いたが、特定形状周辺領域が特定形状領域に比べて大きすぎることを判定できるものであれば、別途定めた方式によるものであってもよい。
【００６６】
以上のステップＳ３０１〜Ｓ３０５の処理を経ることにより、図２のステップＳ１０８の処理が終了する。
【００６７】
次に、形状周辺領域削減手段１４０８が行う、図２のステップＳ１０９の詳細な処理について説明する。
図１５は、図２に示すステップＳ１０９の詳細な処理手順の一例を示すフローチャートである。
【００６８】
まず、ステップＳ４０１において、形状周辺領域削減手段１４０８は、特定形状領域画像１５０８の重心Ｐを設定する。ここでは、重心Ｐとして、重心位置を一時的な変数として設定する。
【００６９】
続いて、ステップＳ４０２において、形状周辺領域削減手段１４０８は、特定形状周辺領域画像１５０９のうち、画素値が１である全ての画素について、重心Ｐに相当する位置からの距離と座標を求め、配列Ａに格納する。ここで、配列Ａは、例えば、重心Ｐからの距離、画素のx座標、画素のｙ座標の３つの内容からなる配列である。また、その配列の
サイズは、特定形状周辺領域画素数データ１５１３の値と等しくなる。
【００７０】
続いて、ステップＳ４０３において、形状周辺領域削減手段１４０８は、配列Ａを距離の小さい順にソートする。
【００７１】
続いて、ステップＳ４０４において、形状周辺領域削減手段１４０８は、Ｎ＝（特定形状領域画素数データ１５１２）×（判定パラメータデータ１５１４）で算出される値Ｎを求める。この値Ｎは、特定形状領域画素数と特定形状周辺領域画素数との比が、判定パラメータデータ１５１４の一定値未満（或いは以下）になるような、特定形状周辺領域画素数を求めたものである。
【００７２】
続いて、ステップＳ４０５において、形状周辺領域削減手段１４０８は、値Ｎが、特定形状周辺領域画素数未満であるか否かを判断する。
【００７３】
ステップＳ４０５の判断の結果、値Ｎが、特定形状周辺領域画素数未満でない、即ち以上である場合には（Ｓ４０５／ＮＯ）、ステップＳ４０６に進む。
【００７４】
ステップＳ４０６に進むと、形状周辺領域削減手段１４０８は、ステップＳ４０３でソートした配列ＡのＮ番目の要素Ａｎに対応する画素に０をセットする。その後、ステップＳ４０７において、形状周辺領域削減手段１４０８は、現在の値Ｎに１を加算して、現在の値Ｎを変更した後、ステップＳ４０５に戻る。
【００７５】
即ち、ステップＳ４０５からステップＳ４０７では、ステップＳ４０３でソートした配列ＡのＮ番目の要素Ａｎから最後の要素（配列Ａの全要素数は特定形状周辺領域画素数データ１５１３の値に等しい）までの画素に対応する画素値を０にセットする。ここで、配列Ａの各要素には、画素の特定形状周辺領域画像１５０９中におけるｘ座標、ｙ座標が格納されているため、特定形状周辺領域画像１５０９中で対応する画素の値をセットすることができる。
【００７６】
一方、ステップＳ４０５の判断の結果、値Ｎが、特定形状周辺領域画素数未満である場合には（Ｓ４０５／ＹＥＳ）、図１５に示すフローチャートの処理を終了する。
【００７７】
以上のステップＳ４０１〜Ｓ４０７の処理を経ることによって、特定形状領域画像１５０８中で画素値が１である画素数と特定形状周辺領域画像１５０９中で画素値が１である画素数との比は、判定パラメータデータ１５１４の一定値未満におさまることになる。
【００７８】
本実施形態においては、特定形状周辺領域画像１５０９は、特定形状領域画像１５０８の重心Ｐに近いものを画素値１として残し、重心Ｐから遠いものを削除する（画素値が０になる）ようにしているが、他の手法を用いても構わない。この場合、例えば、本実施形態の処理においては、特定形状周辺領域画像１５０９で画素値が１である領域は結果的に円形になるが、特定形状として認識される対象が人物の顔であることを鑑みて、残される領域が楕円形になるように処理することなども考えられる。
【００７９】
次に、合成手段１４０３が行う、図２のステップＳ１１０の詳細な処理について説明する。
図１６は、図２に示すステップＳ１１０の詳細な処理手順の一例を示すフローチャートである。
【００８０】
まず、ステップＳ５０１において、合成手段１４０３は、特定色領域画像１５０４（図４）を第２のメモリ１５０のマスク画像１５１５にコピーする。
【００８１】
続いて、ステップＳ５０２において、合成手段１４０３は、特定形状領域画像１５０８（図８）の画素値を全て反転する処理を行う。
【００８２】
続いて、ステップＳ５０３において、合成手段１４０３は、マスク画像１５１５の全画素について、それに対応する位置の特定形状領域画像１５０８（ステップＳ５０２で反転させたもの）の画素とのＡＮＤをとり、その結果をマスク画像１５１５に反映する。
【００８３】
図１７は、図１６のステップＳ５０３の処理で得られたマスク画像１５１５の一例を示す模式図である。
【００８４】
続いて、ステップＳ５０４において、合成手段１４０３は、特定形状周辺領域画像１５０９（図９）の画素値を全て反転する処理を行う。
【００８５】
続いて、ステップＳ５０５において、合成手段１４０３は、マスク画像１５１５の全画素について、それに対応する位置の特定形状周辺領域画像１５０９（ステップＳ５０４で反転させたもの）の画素とのＡＮＤをとり、その結果をマスク画像１５１５に反映する。
【００８６】
図１８は、図１６のステップＳ５０５の処理で得られたマスク画像１５１５の一例を示す模式図である。
【００８７】
続いて、ステップＳ５０６において、合成手段１４０３は、マスク画像１５１５の画素値を全て反転する処理を行う。
【００８８】
続いて、ステップＳ５０７において、合成手段１４０３は、ＣＧ画像１５０５と、ステップＳ５０６で反転したマスク画像１５１５とにおいて対応する各画素値を掛け合わせ、その結果をＣＧ画像１５０５に反映する。
【００８９】
続いて、ステップＳ５０８において、合成手段１４０３は、現実画像１５０３を第２のメモリ１５０の内部の合成画像１５１０にコピーする。
【００９０】
続いて、ステップＳ５０９において、合成手段１４０３は、ステップＳ５０７で処理したＣＧ画像１５０５を合成画像１５１０の上に上書して重畳し、現実画像１５０３とＣＧ画像１５０５を合成する処理を行う。なお、この際、ＣＧ画像１５０５に半透明領域がある場合には、適宜ブレンディングなどの処理を行う。その後、図１６に示すフローチャートの処理を終了する。
【００９１】
以上のステップＳ５０１〜Ｓ５０９の処理を経ることにより、図２のステップＳ１１０における合成画像１５１０の合成処理が行われる。
【００９２】
図１９は、図２のステップＳ１１０（或いは図１６）の合成処理で得られた合成画像１５１０の一例を示す模式図である。
図１９に示す合成画像１５１０では、図５に示すＣＧ画像１５０５に重なった手の画像領域が肌色の色領域であるとして抽出されたことによって、ＣＧ画像１５０５がマスクされているために、図３に示す現実画像１５０３の手が見えている。また、ＣＧ画像１５０５に重なった顔の領域とそれに連続する肌色の領域は、肌色ではあったが、特定の形状及びそれに連続する所定色領域であるとして抽出されたため、当該領域のＣＧ画像１５０５はマスクされることなく、そのまま重畳されている。
【００９３】
なお、ステップＳ５０７のように反転させたマスク画像１５１５とＣＧ画像１５０５を掛け合わせるのではなく、マスク画像１５１５を反転させずにステンシルバッファに格納した後に、仮想シーンをレンダリングしてＣＧ画像１５０５を得る方法も考えられる。本実施形態では、形状認識を行う領域を限定するために、ＣＧ画像１５０５が既に生成済みであった。しかしながら、形状認識を行う領域を限定して効率化するような処理を行わないのであれば、本処理に至るまで仮想シーンをレンダリングしなくても構わない。そのような場合には、合成処理中でステンシルバッファを用いてＣＧ描画を行う手法も有効である。
【００９４】
本実施形態によれば、現実画像とＣＧ画像とを合成して合成画像を生成する際に、従来手法と比べて、違和感のない、より自然な合成画像の生成を実現することができる。
【００９５】
（本発明の他の実施形態）
前述した本発明の実施形態に係る画像処理装置１００に含まれる各手段（１４０１〜１４０８）、並びに、画像処理方法を示す図２、図１０、図１４〜図１６の各ステップは、ＣＰＵ１１０がプログラム１４００を実行することによって実現できる。このプログラム１４００及び当該プログラム１４００を記録したコンピュータ読み取り可能な記録媒体（例えば、第１のメモリ１４０）は本発明に含まれる。
【００９６】
また、本発明は、例えば、システム、装置、方法、プログラム若しくは記憶媒体等としての実施形態も可能であり、具体的には、複数の機器から構成されるシステムに適用してもよいし、また、１つの機器からなる装置に適用してもよい。
【００９７】
なお、本発明は、前述した実施形態の機能を実現するソフトウェアのプログラム（実施形態では図２、図１０、図１４〜図１６に示すフローチャートに対応したプログラム）を、システム或いは装置に直接、或いは遠隔から供給するものを含む。そして、そのシステム或いは装置のコンピュータが前記供給されたプログラムコードを読み出して実行することによっても達成される場合も本発明に含まれる。
【００９８】
したがって、本発明の機能処理をコンピュータで実現するために、前記コンピュータにインストールされるプログラムコード自体も本発明を実現するものである。つまり、本発明は、本発明の機能処理を実現するためのコンピュータプログラム自体も含まれる。
【００９９】
その場合、プログラムの機能を有していれば、オブジェクトコード、インタプリタにより実行されるプログラム、ＯＳに供給するスクリプトデータ等の形態であってもよい。
【０１００】
プログラムを供給するための記録媒体としては、例えば、フレキシブルディスク、ハードディスク、光ディスク、光磁気ディスク、ＭＯ、ＣＤ−ＲＯＭ、ＣＤ−Ｒ、ＣＤ−ＲＷなどがある。また、磁気テープ、不揮発性のメモリカード、ＲＯＭ、ＤＶＤ（ＤＶＤ−ＲＯＭ，ＤＶＤ−Ｒ）などもある。
【０１０１】
その他、プログラムの供給方法としては、クライアントコンピュータのブラウザを用いてインターネットのホームページに接続する。そして、前記ホームページから本発明のコンピュータプログラムそのもの、若しくは圧縮され自動インストール機能を含むファイルをハードディスク等の記録媒体にダウンロードすることによっても供給できる。
【０１０２】
また、本発明のプログラムを構成するプログラムコードを複数のファイルに分割し、それぞれのファイルを異なるホームページからダウンロードすることによっても実現可能である。つまり、本発明の機能処理をコンピュータで実現するためのプログラムファイルを複数のユーザに対してダウンロードさせるＷＷＷサーバも、本発明に含まれるものである。
【０１０３】
また、本発明のプログラムを暗号化してＣＤ−ＲＯＭ等の記憶媒体に格納してユーザに配布し、所定の条件をクリアしたユーザに対し、インターネットを介してホームページから暗号化を解く鍵情報をダウンロードさせる。そして、ダウンロードした鍵情報を使用することにより暗号化されたプログラムを実行してコンピュータにインストールさせて実現することも可能である。
【０１０４】
また、コンピュータが、読み出したプログラムを実行することによって、前述した実施形態の機能が実現される。その他、そのプログラムの指示に基づき、コンピュータ上で稼動しているＯＳなどが、実際の処理の一部又は全部を行い、その処理によっても前述した実施形態の機能が実現され得る。
【０１０５】
さらに、記録媒体から読み出されたプログラムが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれる。その後、そのプログラムの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるＣＰＵなどが実際の処理の一部又は全部を行い、その処理によっても前述した実施形態の機能が実現される。
【０１０６】
なお、前述した各実施形態は、何れも本発明を実施するにあたっての具体化の例を示したものに過ぎず、これらによって本発明の技術的範囲が限定的に解釈されてはならないものである。即ち、本発明はその技術思想、又はその主要な特徴から逸脱することなく、様々な形で実施することができる。
【図面の簡単な説明】
【０１０７】
【図１】本発明の実施形態に係る画像処理装置の概略構成の一例を示す模式図である。
【図２】本発明の実施形態に係る画像処理装置による画像処理方法の処理手順の一例を示すフローチャートである。
【図３】図１に示す現実画像の一例を示す模式図である。
【図４】図１に示す特定色領域画像の一例を示す模式図である。
【図５】図１に示すＣＧ画像の一例を示す模式図である。
【図６】図１に示すＣＧ描画領域画像の一例を示す模式図である。
【図７】図１に示す被重畳現実画像の一例を示す模式図である。
【図８】図１に示す特定形状領域画像の一例を示す模式図である。
【図９】図１に示す特定形状周辺領域画像の一例を示す模式図である。
【図１０】図２に示すステップＳ１０７の詳細な処理手順の一例を示すフローチャートである。
【図１１】図１０のステップＳ２０１の抽出された色領域の画像の一例を示す模式図である。
【図１２】図１０のステップＳ２０２の処理で得られた画像の一例を示す模式図である。
【図１３】図１０のステップＳ２０４の処理で得られた画像の一例を示す模式図である。
【図１４】図２に示すステップＳ１０８の詳細な処理手順の一例を示すフローチャートである。
【図１５】図２に示すステップＳ１０９の詳細な処理手順の一例を示すフローチャートである。
【図１６】図２に示すステップＳ１１０の詳細な処理手順の一例を示すフローチャートである。
【図１７】図１６のステップＳ５０３の処理で得られたマスク画像の一例を示す模式図である。
【図１８】図１６のステップＳ５０５の処理で得られたマスク画像の一例を示す模式図である。
【図１９】図２のステップＳ１１０（或いは図１６）の合成処理で得られた合成画像の一例を示す模式図である。
【符号の説明】
【０１０８】
１００  画像処理装置
１１０  ＣＰＵ
１２０  ディスプレイ
１３０  ビデオカメラ
１４０  第１のメモリ
１４０１  色領域抽出手段
１４０２  形状領域抽出手段
１４０３  合成手段
１４０４  ＣＧ描画領域抽出手段
１４０５  現実画像切り出し手段
１４０６  形状周辺領域抽出手段
１４０７  形状周辺領域面積判定手段
１４０８  形状周辺領域削減手段
１５０  第２のメモリ
１５０１  仮想シーンデータ
１５０２  第１の色範囲データ
１５０３  現実画像
１５０４  特定色領域画像
１５０５  ＣＧ画像
１５０６  ＣＧ描画領域画像
１５０７  被重畳現実画像
１５０８  特定形状領域画像
１５０９  特定形状周辺領域画像
１５１０  合成画像
１５１１  第２の色範囲データ
１５１２  特定形状領域画素数データ
１５１３  特定形状周辺領域画素数データ
１５１４  判定パラメータデータ
１５１５  マスク画像
１６０  情報入力装置
１７０  バス
【図１】
2010140093.tif 000003
【図２】
2010140093.tif 000004
【図３】
2010140093.tif 000005
【図４】
2010140093.tif 000006
【図５】
2010140093.tif 000007
【図６】
2010140093.tif 000008
【図７】
2010140093.tif 000009
【図８】
2010140093.tif 000010
【図９】
2010140093.tif 000011
【図１０】
2010140093.tif 000012
【図１１】
2010140093.tif 000013
【図１２】
2010140093.tif 000014
【図１３】
2010140093.tif 000015
【図１４】
2010140093.tif 000016
【図１５】
2010140093.tif 000017
【図１６】
2010140093.tif 000018
【図１７】
2010140093.tif 000019
【図１８】
2010140093.tif 000020
【図１９】
2010140093.tif 000021