(57)【特許請求の範囲】
【請求項１】
人物を撮影するカメラと、カメラから送出される撮影映像を合成処理する画像処理装置と、合成処理された合成映像を表示するディスプレイとを備えた画像表示システムであって、
前記画像処理装置は、
映像上の１人以上の人物とコンテンツとの合成のタイミングを定めたシナリオデータを記憶したシナリオデータ記憶手段と、
背景画像と周囲を囲まれた一部が開いている重畳画像をコンテンツとして記憶したコンテンツ記憶手段と、
前記カメラから送出された映像の１つのフレームに撮影されている顔画像を検出し、検出した前記顔画像毎に、顔検出枠の位置・矩形サイズを顔検出枠データとして出力する顔検出手段と、
前記顔検出手段から取得した前記顔検出枠データを、他のフレームの顔検出枠データと対応付けるトラッキング手段と、
前記顔検出手段により検出された顔検出枠データを含む顔オブジェクトに対して、前記シナリオデータに含まれる人物との対応付けを行うシナリオデータ対応付け手段と、
前記対応付けに従って、前記顔オブジェクトを前記シナリオデータの人物に割り当て、前記顔オブジェクトの顔検出枠データの位置、サイズに合わせて、前記重畳画像の位置、サイズを変更して合成するとともに、前記重畳画像に対応したマスク画像によりマスクされた前記背景画像と合成した合成画像を生成する合成画像生成手段と、
を備えていることを特徴とする画像表示システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、撮影した映像を加工して表示する技術に関し、特に撮影されている閲覧者の状態に応じて加工した映像を表示する技術に関する。
【背景技術】
【０００２】
ディスプレイやプロジェクタなどの表示装置を用いて広告を表示する広告媒体であるデジタルサイネージ（Digital Signage）が、様々な場所に設置され始めている。デジタルサイネージを用いることで、動画や音声を用いた豊かなコンテンツの提供が可能になるばかりか、デジタルサイネージの設置場所に応じた効率的な広告配信が可能になるため、今後、デジタルサイネージのマーケット拡大が期待されている。
【０００３】
最近では、デジタルサイネージについて、様々な改良が施されており、デジタルサイネージの前に存在する閲覧者の動きに応じて表示させる画像を変化させる技術が提案されている（特許文献１参照）。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特許第４２３８３７１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
上記特許文献１に記載の技術では、人の認識情報と動き情報を基に合成画像を生成するが、トラッキング処理を行っていないために、各人の動きに応じて背景画像を合成することができない。特に、人物と背景を違和感なく合成することはできない。また、人と背景画像を合成する手法としては、クロマキー合成技術が存在するが、クロマキー合成技術では、背景を人物とは明確に異なる色で区別しておかなければならないという問題がある。
【０００６】
そこで、本発明は、撮影されている閲覧者と背景画像を違和感なく合成し、リアルタイムに表示することが可能な画像表示システムを提供することを課題とする。
【課題を解決するための手段】
【０００７】
上記課題を解決するため、本発明第１の態様では、人物を撮影するカメラと、カメラから送出される撮影映像を合成処理する画像処理装置と、合成処理された合成映像を表示するディスプレイとを備えた画像表示システムであって、前記画像処理装置は、映像上の１人以上の人物とコンテンツとの合成のタイミングを定めたシナリオデータを記憶したシナリオデータ記憶手段と、合成に用いる背景画像をコンテンツとして記憶したコンテンツ記憶手段と、前記カメラから送出された映像の１つのフレームに撮影されている顔画像を検出し、検出した前記顔画像毎に、顔検出枠の位置・矩形サイズを顔検出枠データとして出力する顔検出手段と、前記顔検出手段から取得した前記顔検出枠データを、他のフレームの顔検出枠データと対応付けるトラッキング手段と、前記顔検出手段により検出された顔検出枠データを含む顔オブジェクトに対して、前記シナリオデータに含まれる人物との対応付けを行うシナリオデータ対応付け手段と、前記各フレームにおいて前記シナリオデータに含まれる人物との対応付けがなされた顔検出枠を含む範囲にセグメント領域を設定し、このセグメント領域を利用して人物と人物以外の部分にセグメント化したセグメント結果画像を用いて、前記背景画像をマスクし、前記フレーム中の人物と背景画像を合成した合成画像を生成する合成画像生成手段と、を備えた画像表示システムを提供する。
【０００８】
本発明第１の態様によれば、撮影映像中の人物とコンテンツとの合成のタイミングを定めたシナリオデータを用意しておき、撮影映像のフレームから顔検出枠を検出し、顔検出枠のトラッキングを行い、得られた顔オブジェクトをシナリオデータの人物に割り当て、顔オブジェクトの顔検出枠を含む範囲にセグメント領域を設定し、このセグメント領域を利用して人物と人物以外の部分にセグメント化したセグメント結果画像を用いて、背景画像をマスクし、フレーム中の人物と背景画像を合成するようにしたので、撮影されている閲覧者と背景画像を違和感なく合成し、リアルタイムに表示することが可能となる。特に、撮影されている閲覧者の輪郭部分を明確にすることにより、違和感なく背景画像と合成することが可能となる。
【０００９】
また、本発明第２の態様では、本発明第１の態様による画像表示システムにおいて、前記コンテンツ記憶手段は、さらに前記人物または背景に重ねる画像である重畳画像をコンテンツとして記憶し、前記合成画像生成手段は、前記シナリオデータ対応付け手段による対応付けに従って、前記顔オブジェクトを前記シナリオデータの人物に割り当て、前記顔オブジェクトの顔検出枠データの位置、サイズに合わせて、前記重畳画像の位置、サイズを変更し、前記フレーム上に前記重畳画像を合成した合成画像を生成するものであることを特徴とする。
【００１０】
本発明第２の態様によれば、顔オブジェクトの顔検出枠データの位置、サイズに合わせて、重畳画像の位置、サイズを変更し、フレーム上に重畳画像を合成するようにしたので、撮影した映像に映っている人物にリアルタイムで重畳画像を重ねた映像を表示することができる。ここで、重畳画像とは、撮影映像中のフレームにおける人物部分または背景画像と重ねられる画像であり、その重ね方としては、完全に上書きされる場合や、いわゆるαブレンドの手法により、人物部分または背景画像の画素の値を反映させながら重ねる手法もある。
【００１１】
また、本発明第３の態様では、本発明第１または第２の態様による画像表示システムにおいて、前記合成画像生成手段は、前記セグメント領域を、前記顔検出枠の位置に基づいて、前記顔検出枠と左右方向の中心が一致し、上下方向については前記顔検出枠の中心が前記セグメント領域の中心より上方に位置するように設定し、前記セグメント領域内における所定の位置に設定される、人物の存在する領域と人物の存在しない領域において指定された画素を利用して、セグメント化するものであることを特徴とする。
【００１２】
本発明第３の態様によれば、セグメント領域を、顔検出枠の位置に基づいて、顔検出枠と左右方向の中心が一致し、上下方向については顔検出枠の中心がセグメント領域の中心より上方に位置するように設定し、セグメント領域内において設定される人物の存在する領域と人物の存在しない領域において、指定された画素を利用して、セグメント化するようにしたので、人物の存在する領域に指定された画素の値、人物の存在しない領域に指定された画素の値の特徴に基づき、人物と人物以外の境界の画素が特定でき、人物の輪郭を明確にすることが可能となる。
【００１３】
また、本発明第４の態様では、人物を撮影するカメラと、カメラから送出される撮影映像を合成処理する画像処理装置と、合成処理された合成映像を表示するディスプレイとを備えた画像表示システムであって、前記画像処理装置は、映像上の１人以上の人物とコンテンツとの合成のタイミングを定めたシナリオデータを記憶したシナリオデータ記憶手段と、背景画像と周囲を囲まれた一部が開いている重畳画像をコンテンツとして記憶したコンテンツ記憶手段と、前記カメラから送出された映像の１つのフレームに撮影されている顔画像を検出し、検出した前記顔画像毎に、顔検出枠の位置・矩形サイズを顔検出枠データとして出力する顔検出手段と、前記顔検出手段から取得した前記顔検出枠データを、他のフレームの顔検出枠データと対応付けるトラッキング手段と、前記顔検出手段により検出された顔検出枠データを含む顔オブジェクトに対して、前記シナリオデータに含まれる人物との対応付けを行うシナリオデータ対応付け手段と、前記対応付けに従って、前記顔オブジェクトを前記シナリオデータの人物に割り当て、前記顔オブジェクトの顔検出枠データの位置、サイズに合わせて、前記重畳画像の位置、サイズを変更して合成するとともに、前記重畳画像に対応したマスク画像によりマスクされた前記背景画像と合成した合成画像を生成する合成画像生成手段と、を備えた画像表示システムを提供する。
【００１４】
本発明第４の態様によれば、撮影映像中の人物とコンテンツとの合成のタイミングを定めたシナリオデータを用意しておき、撮影映像のフレームから顔検出枠を検出し、顔検出枠のトラッキングを行い、得られた顔オブジェクトをシナリオデータの人物に割り当て、顔オブジェクトの顔検出枠データの位置、サイズに合わせて、周囲を囲まれた一部が開いている重畳画像の位置、サイズを変更して合成するとともに、重畳画像に対応したマスク画像によりマスクされた背景画像と合成するようにしたので、撮影されている閲覧者と背景画像を違和感なく合成し、リアルタイムに表示することが可能となる。
【発明の効果】
【００１５】
本発明によれば、撮影されている閲覧者と背景画像を違和感なく合成し、リアルタイムに表示することが可能となるという効果を奏する。
【図面の簡単な説明】
【００１６】
【図１】本実施形態における画像表示システム１の構成を説明する図。
【図２】画像表示システム１を構成する画像処理装置２のハードウェアブロック図。
【図３】画像処理装置２に実装されたコンピュータプログラムで実現される機能ブロック図。
【図４】画像処理装置２がフレームを解析する処理を説明するフロー図。
【図５】トラッキング処理を説明するためのフロー図。
【図６】顔検出枠データ対応付け処理を説明するためのフロー図。
【図７】本実施形態における状態遷移表を説明する図。
【図８】人体及び顔検出結果を説明するための図。
【図９】画像処理装置２が合成画像を作成する処理を説明するフロー図。
【図１０】ターゲットが１人の場合のＸＭＬ形式のシナリオデータの一例を示す図。
【図１１】ターゲットが２人の場合のＸＭＬ形式のシナリオデータの一例を示す図。
【図１２】顔検出枠を用いたコンテンツの合成の様子を示す図。
【図１３】ターゲットが１人の場合の合成画像の表示状態を示す図。
【図１４】ターゲットが２人の場合の合成画像の表示状態を示す図。
【図１５】タッチボタン対応の場合のＸＭＬ形式のシナリオデータの一例を示す図。
【図１６】タッチボタン対応の場合の合成画像の表示状態を示す図。
【図１７】指示判定処理における画像処理の様子を示す図。
【図１８】画像処理装置２´に実装されたコンピュータプログラムで実現される機能ブロック図。
【図１９】顔検出処理及びトラッキング処理を説明するためのフロー図。
【図２０】シーン合成の場合のＸＭＬ形式のシナリオデータの一例を示す図。
【図２１】撮影画像における顔検出枠とセグメント領域の関係を示す図である。
【図２２】イニシャル領域の形状を示す図である。
【図２３】図２０のシナリオデータの例に従って設定されたイニシャル領域を示す図である。
【図２４】合成マスク画像作成の様子を示す図である。
【図２５】背景マスク画像作成の様子を示す図である。
【図２６】撮影画像に対してシーン合成を行い、合成画像を作成する様子を示す図である。
【発明を実施するための形態】
【００１７】
≪１．システム構成≫
以下、本発明の好適な実施形態について図面を参照して詳細に説明する。図１は、本実施形態における画像表示システム１の構成を説明する図、図２は、画像表示システム１を構成する画像処理装置２のハードウェアブロック図、図３は、画像処理装置２に実装されたコンピュータプログラムで実現される機能ブロック図である。
【００１８】
図１で図示したように、画像表示システム１には、液晶ディスプレイ等の表示デバイスであるディスプレイ３が含まれる。このディスプレイ３には、撮影した画像だけでなく、表示領域を分けて広告を表示するようにしても良い。
【００１９】
この場合、ディスプレイ３を街頭や店舗などに設置することにより、画像表示システム１はデジタルサイネージとしても機能する。画像表示システム１をデジタルサイネージとして機能させる場合、ディスプレイ３で表示する広告映像を制御するサーバが必要となる。
【００２０】
ディスプレイ３には、ディスプレイ３で再生されている映像を見ている人物の顔が撮影されるようにアングルが設定され、ディスプレイ３で再生されている広告映像を閲覧している人物を撮影するビデオカメラ４が設置されている。
【００２１】
このビデオカメラ４で撮影された映像は、ＵＳＢポートなどを利用して画像処理装置２に入力され、画像処理装置２は、ビデオカメラ４から送信された映像に含まれるフレームを解析し、ディスプレイ３の前にいる人物や，ディスプレイ３で再生されている映像を閲覧した人物の顔を検出し、閲覧者に関するログ（例えば、ディスプレイ３の閲覧時間）を記憶する。
【００２２】
図１で図示した画像表示システム１を構成する装置において、ディスプレイ３及びビデオカメラ４は市販の装置を利用できるが、画像処理装置２は、従来技術にはない特徴を備えているため、ここから、画像処理装置２について詳細に説明する。
【００２３】
画像処理装置２は汎用のコンピュータを利用して実現することができ、汎用のコンピュータと同様なハードウェアを備えている。図２の例では、画像処理装置２は、該ハードウェアとして、ＣＰＵ２ａ（CPU: Central Processing Unit）と、ＢＩＯＳが実装されるＲＯＭ２ｂ（ROM: Read-Only Memory）と、コンピュータのメインメモリであるＲＡＭ２ｃ（RAM: Random Access Memory）と、外部記憶装置として大容量のデータ記憶装置２ｄ（例えば，ハードディスク）と、外部デバイス（ビデオカメラ４）とデータ通信するための入出力インターフェース２ｅと、ネットワーク通信するためのネットワークインターフェース２ｆと、表示デバイス（ディスプレイ３）に情報を送出するための表示出力インターフェース２ｇと、文字入力デバイス２ｈ（例えば、キーボード）と、ポインティングデバイス２ｉ（例えば、マウス）を備えている。
【００２４】
画像処理装置２のデータ記憶装置２ｄには、ＣＰＵ２ａを動作させるためのコンピュータプログラムが実装され、このコンピュータプログラムによって、画像処理装置２には図３で図示した手段が備えられる。また、データ記憶装置２ｄは、画像表示システムに必要な様々なデータを格納することが可能となっており、映像上の１人以上の人物とコンテンツとの合成のタイミングを定めたシナリオデータを記憶したシナリオデータ記憶手段、合成に用いるコンテンツを記憶したコンテンツ記憶手段としての役割も果たしている。
【００２５】
ここで、コンテンツ記憶手段に格納されているコンテンツについて説明しておく。コンテンツは、撮影された映像のフレームと合成して合成画像を得る際の素材画像である。コンテンツとしては、背景となる背景画像と、撮影画像中の人物または背景画像上に重ねる重畳画像の２種類が存在する。図１２（ａ）に重畳画像としてのコンテンツの一例を示す。重畳画像としては、特に限定されず、様々な形態のものを用いることができるが、図１２（ａ）の例では、重畳画像としてカツラを用意した場合を示している。この重畳画像は矩形情報（ｘ，ｙ方向の位置、幅、高さ）を有しており、この矩形情報を用いて、撮影されたフレームとの位置合わせが可能になっている。
【００２６】
図３で図示したように、画像処理装置２の入力は、ビデオカメラ４によって撮影された映像で、画像処理装置２の出力は、撮影された映像を加工した加工映像である。
【００２７】
画像処理装置２には、ビデオカメラ４によって撮影された映像のフレームを解析する手段として、ビデオカメラ４によって撮影された映像のフレームの背景画像を除去する背景除去手段２０と、背景除去手段２０によって背景が除去されたフレームから人物の顔を検出する顔検出手段２１と、背景除去手段２０によって背景画像が除去されたフレームから人体を検出する人体検出手段２２と、顔検出手段２１が検出した顔を前後のフレームで対応付けるトラッキング手段２３と、パーティクルフィルタなどの動画解析手法を用い、指定された顔画像をフレームから検出する動画解析手段２４と、顔検出手段２１が新規に検出した顔画像毎に顔オブジェクトを生成し、トラッキング手段２３から得られる一つ前と今回の顔検出枠データの対応付け結果を参照し、事前に定めた状態遷移表に従い顔オブジェクトの状態を遷移させ、顔オブジェクトの状態遷移に応じたログを記憶する状態遷移管理手段２５と、顔検出手段２１により検出され、状態遷移管理手段２５により状態遷移された顔オブジェクトと、用意されたシナリオデータの対応付けを行うシナリオデータ対応付け手段８３と、ビデオカメラ４によって撮影された映像の各フレームを、シナリオデータに従って加工した合成画像を作成する合成画像作成手段８４と、閲覧者が所定の位置に定義されたタッチレスボタンに対して指示を行っているかどうかを判定する指示判定手段８５と、指示判定手段８５による判定に従ってシナリオデータ中のコマンドの切替を行うコマンド切替手段８６を備え、更に、本実施形態では、ディスプレイ３を閲覧した人物の属性（年齢や性別）をログデータに含ませるために、顔検出手段２１が検出した顔画像から人物の人物属性（年齢や性別）を推定する人物属性推定手段２６、状態遷移管理手段２５が記憶したログをファイル形式で出力するログファイル出力手段２７、加工対象のターゲット（人または場所）をシナリオデータ中に定義する合成ターゲット定義手段８０、加工に用いるコンテンツ（画像、音声、ＣＧ等）をシナリオデータ中に定義する合成コンテンツ定義手段８１、加工内容をシナリオデータ中に定義するアニメーションシナリオ定義手段８２を備えている。
【００２８】
シナリオデータは、別のシステムで事前に作成し、シナリオデータ記憶手段としてのデータ記憶装置２ｄに格納しておくことができるが、合成ターゲット定義手段８０、合成コンテンツ定義手段８１、アニメーションシナリオ定義手段８２により、作成することもできる。合成ターゲット定義手段８０、合成コンテンツ定義手段８１、アニメーションシナリオ定義手段８２は、撮影により得られた映像の各フレームをどのように加工するかを示したシナリオデータを作成するために用いられるものである。シナリオデータの形式は特に限定されないが、本実施形態では、ＸＭＬ（eXtensible Markup Language）を採用している。シナリオデータとしてＸＭＬを採用した本実施形態では、合成ターゲット定義手段８０、合成コンテンツ定義手段８１、アニメーションシナリオ定義手段８２は、テキストエディタで実現することができる。したがって、テキストエディタを起動し、管理者が文字入力デバイスを用いて、文字入力を行うことにより、シナリオデータが作成される。
【００２９】
図１０は、ターゲットが１人の場合のＸＭＬ形式のシナリオデータの一例を示す図である。ここからは、図１０のシナリオデータを参照しながら、合成ターゲット定義手段８０、合成コンテンツ定義手段８１、アニメーションシナリオ定義手段８２について詳細に説明する。合成ターゲット定義手段８０は、ターゲットＩＤ、タイプ、絶対座標、移り変わり設定の４つの属性を設定することによりターゲットを定義する。図１０の例では、３行目の<Simulation Targets>と、９行目の</Simulation Targets>の２つのタグで囲まれた範囲に対応する。タイプについては、人と場所の２種を設定可能であるが、図１０の例では、<Human>タグを用いて人についてのみ設定している。移り変わり設定は、人に対してのみ設定可能となっており、対応付け済みの人が消失した場合、新たな人に対応付けるかどうかを設定するものである。図１０の例では、５行目のタグで、ターゲットＩＤ、タイプ、移り変わり設定の３属性を設定しており、ターゲットＩＤは“０”、タイプは“human(人)”、移り変わり設定（IsTransfer）は“false(設定しない)”となっている。
【００３０】
合成コンテンツ定義手段８１は、コンテンツＩＤ、コンテンツのパス、重なり設定の３つの属性を設定することによりコンテンツを定義する。図１０の例では、１０行目の<Simulation Contents>と、１８行目の</Simulation Contents >の２つのタグで囲まれた範囲に対応する。図１０の例では、コンテンツＩＤ（ContentsID）が“０”から“６”までの７つのコンテンツについて定義されている。図１０に示すように、各コンテンツについて１行単位で、コンテンツのパス（ContentsPath）、重なり設定（OverlapOrder）が設定される。
【００３１】
アニメーションシナリオ定義手段８２は、コマンドＩＤ、コマンドタイプ、開始キー、終了キー、キータイプ、ターゲットＩＤ、コンテンツＩＤの７つの属性を設定することによりアニメーションシナリオを定義する。図１０の例では、１９行目の<Animation Commands>と、３４行目の</Animation Commands>の２つのタグで囲まれた範囲に対応する。図１０の例では、コマンドＩＤ（CommandID）が“０”から“６”までの７つのコマンドについて定義されている。図１０に示すように、各コマンドについて２行単位で、コマンドタイプ、開始キー、終了キー、キータイプ、ターゲットＩＤ、コンテンツＩＤが設定される。コマンドタイプとは、どのようなフレームを基にどのようなタイプの効果を生じさせるかを示すものであり、レイヤ合成、αブレンド合成、音声再生開始、シーン合成が用意されている。このうち、レイヤ合成、αブレンド合成、シーン合成は、画像合成のタイプを示すものであり、レイヤ合成は、コンテンツを上書き合成するものであり、αブレンド合成は、設定されたα比率に応じてコンテンツとフレームを透過させて合成するものであり、シーン合成は、人体部分を切り抜き、背景画像と合成するものである。図１０の例では、コマンドタイプ（CommandType）として、レイヤ合成（LayerMontage）が設定されている。開始キー、終了キーは各コマンドの開始時点、終了時点を設定するものである。本実施形態では、シナリオデータの時間を、シナリオ開始時を“０．０”、シナリオ終了時を“１．０”として管理している。したがって、最初に開始するコマンドの開始キー（StartKey）は“０．０”、最後に終了するコマンドの終了キー（EndKey）は“１．０”となる。キータイプとは、開始キー、終了キーの基準とする対象を設定するものであり、own、base、globalの３つが用意されている。ownは各ターゲットＩＤに対応する顔オブジェクトの閲覧時間を基準とし、baseはターゲットＩＤ＝０に対応する顔オブジェクトの閲覧時間を基準とし、globalは撮影映像の最初のフレームを取得した時間を基準とする。図１０の例では、キータイプ（KeyType）として、ownが設定されているので、顔オブジェクトがフレームに登場した時点（顔オブジェクトが“閲覧開始”と判断された時点）を“０．０”として、開始キー、終了キーが認識されることになる。
【００３２】
シナリオデータの<CycleInterval>タグは、シナリオの開始から終了までの時間を秒単位で設定するものであり、図１０の例では、１行目の<CycleInterval>タグにおいて“１０”が設定されているので、シナリオの開始から終了まで１０秒であることを示している。開始キー、終了キーの値を１０倍した実時間でシナリオは管理されることになる。シナリオデータの<IsAutoLoop>タグは、ループ処理（繰り返し処理）を行うかどうかを設定するものであり、図１０の例では、２行目の<IsAutoLoop>タグにおいて“true”が設定されているので、ループ処理を行うことを示している。<CycleInterval>タグおよび<IsAutoLoop>タグについても、テキストエディタにより設定が可能である。このようにして、合成ターゲット定義手段８０、合成コンテンツ定義手段８１、アニメーションシナリオ定義手段８２により作成されたシナリオデータは、シナリオデータ記憶手段としてのデータ記憶装置２ｄに格納される。
【００３３】
画像処理装置２が、ビデオカメラ４によって撮影された映像のフレームを時系列で解析することで、画像処理装置２のデータ記憶装置２ｄには、閲覧測定に利用可能なログファイルとして、ディスプレイの閲覧時間が記憶される閲覧時間ログファイルと、ディスプレイを閲覧した人物の位置が記憶される位置ログファイルと、ディスプレイを閲覧した人物の人物属性（例えば，年齢・性別）が記憶される人物属性ログファイルと、ディスプレイの前にいる人物の総人数、ディスプレイを閲覧していない人物の人数、ディスプレイを閲覧した人物の人数が記憶される人数ログファイルが記憶され、これらのログファイルを出力するログファイル出力手段２７が画像処理装置２には備えられている。本発明では、ログファイルを作成することは必須ではないが、ログファイルを作成する過程における顔オブジェクト、閲覧開始時刻が、合成画像の生成に利用される。
【００３４】
まず、ビデオカメラ４から送信された映像のフレームを画像処理装置２が解析する処理を説明しながら、ビデオカメラ４によって撮影された映像のフレームを解析、加工するために備えられた各手段について説明する。
【００３５】
≪２．処理動作≫
図４は、ビデオカメラ４から送信された映像のフレームを画像処理装置２が解析する処理を説明するフロー図である。それぞれの処理の詳細は後述するが、画像処理装置２に映像の一つのフレームが入力されると、画像処理装置２は該フレームについて背景除去処理Ｓ１を行い、背景除去処理Ｓ１した後のフレームについて、顔検出処理Ｓ２及び人体検出処理Ｓ３を行う。
【００３６】
画像処理装置２は、背景除去処理Ｓ１した後のフレームについて、顔検出処理Ｓ２及び人体検出処理Ｓ３を行った後、顔検出処理Ｓ３の結果を利用して、今回の処理対象となるフレームであるＮフレームから検出された顔と、一つ前のフレームであるＮ−１フレームから検出された顔を対応付けるトラッキング処理Ｓ４を行い、トラッキング処理Ｓ４の結果を踏まえて顔オブジェクトの状態を遷移させる状態遷移管理処理Ｓ５を実行する。
【００３７】
まず、背景除去処理Ｓ１について説明する。背景除去処理Ｓ１を担う手段は、画像処理装置２の背景除去手段２０である。画像処理装置２が背景除去処理Ｓ１を実行するのは、図１に図示しているように、ディスプレイ３の上部に設けられたビデオカメラ４の位置・アングルは固定であるため、ビデオカメラ４が撮影した映像には変化しない背景が含まれることになり、この背景を除去することで、精度よく人体・顔を検出できるようにするためである。
【００３８】
画像処理装置２の背景除去手段２０が実行する背景除去処理としては既存技術を利用でき、ビデオカメラ４が撮影する映像は、例えば、朝、昼、夜で光が変化する場合があるので、背景の時間的な変化を考慮した動的背景更新法を用いることが好適である。
【００３９】
背景の時間的な変化を考慮した動的背景更新法としては、例えば、「森田 真司, 山澤 一誠, 寺沢 征彦, 横矢 直和: "全方位画像センサを用いたネットワーク対応型遠隔監視システム", 電子情報通信学会論文誌（D-II), Vol. J88-D-II, No. 5, pp. 864-875, (2005.5)」に記載されている手法を用いることができる。
【００４０】
次に、画像処理装置２の顔検出手段２１によって実行される顔検出処理Ｓ２について説明する。顔検出処理Ｓ２で実施する顔検出方法としては、特許文献１に記載されているような顔検出方法も含め、様々な顔検出方法が開示されているが、本実施形態では、弱い識別器として白黒のHaar-Like特徴を用いたAdaboostアルゴリズムによる顔検出法を採用している。なお、弱い識別器として白黒のHaar-Like特徴を用いたAdaboostアルゴリズムによる顔検出法については、「Paul Viola and Michael J. Jones, "Rapid Object Detection using a Boosted Cascade of Simple Features", IEEE CVPR, 2001.」、「Rainer Lienhart and Jochen Maydt, "An Extended Set of Haar-like Features for Rapid Object Detection", IEEE ICIP 2002, Vol. 1, pp. 900-903, Sep. 2002.」で述べられている。
【００４１】
弱い識別器として白黒のHaar-Like特徴を用いたAdaboostアルゴリズムによる顔検出法を実行することで、フレームに含まれる顔画像毎に顔検出枠データが得られ、この顔検出枠データには、顔画像を検出したときに利用した顔検出枠の位置（例えば、左上隅の座標）・矩形サイズ（幅及び高さ）が含まれる。
【００４２】
次に、画像処理装置２の人体検出手段２２によって実行される人体検出処理Ｓ３について説明する。人体を検出する手法としては赤外線センサを用い、人物の体温を利用して人体を検出する手法が良く知られているが、本実施形態では、顔検出処理Ｓ２で実施する人体検出方法として、弱い識別器としてＨＯＧ（Histogram of Oriented Gradients）特徴を用いたAdaboostアルゴリズムによる人体検出法を採用している。なお、弱い識別器としてＨＯＧ（Histogram of Oriented Gradients）特徴を用いたAdaboostアルゴリズムによる人体検出法については、「N. Dalal and B. Triggs，"Histograms of Oriented Gradientstional Conference on Computer Vision，pp. 734-741，2003．」で述べれられている。
【００４３】
弱い識別器としてＨＯＧ特徴を用いたAdaboostアルゴリズムによる人体検出法を実行することで、フレームに含まれる人体毎に人体検出枠データが得られ、この人体検出枠データには、人体画像を検出したときに利用した人体検出枠の位置（例えば、左上隅の座標）・矩形サイズ（幅及び高さ）が得られる。
【００４４】
図８は、人体及び顔検出結果を説明するための図である。図８のフレーム７で撮影されている人物は、人物７ａ〜７ｆの合計６人が含まれ，画像処理装置２の人体検出手段２２はそれぞれの人物７ａ〜７ｆを検出し、それぞれの人物７ａ〜７ｆに対応する人体検出枠データ７０ａ〜７０ｆを出力する。また、画像処理装置２の顔検出手段２１は、両眼が撮影されている人物７ａ〜７ｃの顔を検出し、それぞれの顔に対応する顔検出枠データ７１ａ〜７１ｃを出力する。
【００４５】
次に、画像処理装置２のトラッキング手段２３によって実行されるトラッキング処理Ｓ４について説明する。トラッキング処理Ｓ４では、画像処理装置２のトラッキング手段２３によって、顔検出手段２１がＮ−１フレームから検出した顔検出枠データと、顔検出手段２１がＮフレームから検出した顔検出枠データを対応付ける処理が実行される。
【００４６】
ここから，画像処理装置２のトラッキング手段２３によって実行されるトラッキング処理Ｓ４について詳細に説明する。図５は、画像処理装置２のトラッキング手段２３によって実行されるトラッキング処理Ｓ４を説明するためのフロー図である。
【００４７】
画像処理装置２のトラッキング手段２３は、Ｎフレームをトラッキング処理Ｓ４するために、まず、Ｎフレームから得られた顔検出枠データ及び人体検出枠データをそれぞれ顔検出手段２１及び人体検出手段２２から取得する（Ｓ１０）。
【００４８】
なお、次回のトラッキング処理Ｓ４において、Ｎフレームから得られた顔検出枠データは、Ｎ−１フレームの顔検出枠データとして利用されるため、画像処理装置２のトラッキング手段２３は、Ｎフレームから得られた顔検出枠データをＲＡＭ２ｃまたはデータ記憶装置２ｄに記憶する。
【００４９】
画像処理装置２のトラッキング手段２３は、Ｎフレームの顔検出枠データ及び人体検出枠データを取得すると、Ｎフレームの人体検出枠データ毎に、ディスプレイの閲覧判定を行う（Ｓ１１）。
【００５０】
上述しているように、人体検出枠データには人体検出枠の位置及び矩形サイズが含まれ、顔検出枠データには顔検出枠の位置及び矩形サイズが含まれるため、顔検出枠が含まれる人体検出枠データは、ディスプレイ３を閲覧している人物の人体検出枠データと判定でき、また、顔検出枠が含まれない人体検出枠データは、ディスプレイ３を閲覧していない人物の人体検出枠データと判定できる。
【００５１】
画像処理装置２のトラッキング手段２３は、このようにして、Ｎフレームの人体検出枠データ毎にディスプレイの閲覧判定を行うと、Ｎフレームが撮影されたときの人数ログファイルとして、ディスプレイ３の前にいる人物の総人数、すなわち、人体検出手段２２によって検出された人体検出枠データの数と、ディスプレイ３を閲覧していない人物の人数、すなわち、顔検出枠が含まれていない人体検出枠データの数と、ディスプレイ３を閲覧している人物の人数、すなわち、顔検出枠が含まれる人体検出枠データの数を記載した人数ログファイルを生成し、Nフレームのフレーム番号などを付与してデータ記憶装置２ｄに記憶する。
【００５２】
画像処理装置２のトラッキング手段２３は、Ｎフレームの人体検出枠データ毎に、ディスプレイの閲覧判定を行うと、顔検出手段２１がＮ−１フレームから検出した顔検出枠データと、顔検出手段２１がＮフレームから検出した顔検出枠データを対応付ける顔検出枠データ対応付け処理Ｓ１２を実行する。
【００５３】
図６は、顔検出枠データ対応付け処理Ｓ１２を説明するためのフロー図で、本実施形態では、図６で図示したフローにおいて、以下に記述する数式１の評価関数を用いて得られる評価値を利用して、顔検出枠データの対応付けがなされる。
【００５４】
なお、数式１の評価関数ｆ１（）は、ニアレストネイバー法を用いた評価関数で、評価関数ｆ１（）で得られる評価値は、顔検出枠データの位置・矩形サイズの差を示した評価値になる。また、数式１の評価関数ｆ２（）で得られる評価値は、評価関数ｆ１（）から求められる評価値に、顔検出枠データで特定される顔検出枠に含まれる顔画像から得られ、顔画像の特徴を示すＳＵＲＦ特徴量の差が重み付けして加算された評価値になる。
【数１】
0005776471.tif 000002
【００５５】
Ｎ−１フレームから検出した顔検出枠データとＮフレームから検出した顔検出枠データを対応付けるために、画像処理装置２のトラッキング手段２３は、まず、Ｎフレームから得られた顔検出枠データの数だけループ処理Ｌ１を実行する。
【００５６】
このループ処理Ｌ１において、画像処理装置２のトラッキング手段２３は、まず、Ｎ−１フレームから検出された顔検出枠データの数だけループ処理Ｌ２を実行し、このループ処理Ｌ２では、ループ処理Ｌ１の処理対象となる顔検出枠データの位置・矩形サイズと、ループ処理Ｌ２の処理対象となる顔検出枠データの位置・矩形サイズが、数式１の評価関数ｆ１（）に代入して評価値を算出し（Ｓ１２０）、ループ処理Ｌ１の対象となる顔検出枠データとの位置・サイズの差を示す評価値が、Ｎ−１フレームから検出された顔検出枠データ毎に算出される。
【００５７】
画像処理装置２のトラッキング手段２３は、ループ処理Ｌ１の処理対象となる顔検出枠データとの位置・サイズの差を示す評価値を、Ｎ−１フレームから検出された顔検出枠データ毎に算出すると、該評価値の最小値を検索し（Ｓ１２１）、該評価値の最小値と他の評価値との差分を算出した後（Ｓ１２２）、閾値以下の該差分値があるか判定する（Ｓ１２３）。
【００５８】
そして、画像処理装置２のトラッキング手段２３は、ループ処理Ｌ１の処理対象となる顔検出枠データとの位置・サイズの差を示す評価値の最小値と他の評価値との差分の中に、閾値以下の差分がある場合，画像処理装置２のトラッキング手段２３は、評価値が閾値以内である顔検出枠データ数だけループ処理Ｌ３を実行する。
【００５９】
このループ処理Ｌ３では、ループ処理Ｌ１の処理対象となる顔検出枠データで特定される顔検出枠内の顔画像と、ループ処理Ｌ３の処理対象となるＮ−１フレームの顔検出枠データで特定される顔検出枠内の顔画像とのＳＵＲＦ特徴量の差が求められ、ＳＵＲＦ特徴量の差が数式１の評価関数ｆ２（）に代入され、ＳＵＲＦ特徴量の差を加算した評価値が、Ｎ−１フレームから検出された顔検出枠データ毎に算出される（Ｓ１２４）。
【００６０】
数式１で示した評価関数ｆ２（）を用い、ＳＵＲＦ特徴量の差を加算した評価値を算出するのは、ニアレストネイバー法のみを利用した評価関数ｆ１（）を用いて求められた評価値の最小値と他の評価値との差分値に閾値以下がある場合、サイズの似た顔検出枠が近接していると考えられ（例えば，図８の人物７ａ，ｂ），ニアレストネイバー法の評価値からでは、Ｎフレームの顔検出枠データに対応付けるＮ−１フレームの顔検出枠データが判定できないからである。
【００６１】
数式１で示した評価関数ｆ２（）を用い、ＳＵＲＦ特徴量の差を加算した評価値を算出することで、顔の特徴が加味された評価値が算出されるので、該評価値を用いることで、サイズの似た顔検出枠が近接している場合は、顔が似ているＮ−１フレームの顔検出枠データがＮフレームの顔検出枠データに対応付けられることになる。
【００６２】
そして、画像処理装置２のトラッキング手段２３は、数式１の評価関数から得られた評価値が最小値であるＮ−１フレームの顔検出枠データを、ループ処理Ｌ１の対象となるＮフレームの顔検出枠データに対応付ける処理を実行する（Ｓ１２５）。なお、数式１で示した評価関数ｆ２（）を用いた評価値を算出していない場合、この処理で利用される評価値は、数式１で示した評価関数ｆ１（）から求められた値になり、数式１で示した評価関数ｆ２（）を用いた評価値を算出している場合、この処理で利用される評価値は、数式１で示した評価関数ｆ２（）から求められた値になる。
【００６３】
ループ処理Ｌ１が終了し、画像処理装置２のトラッキング手段２３は、Ｎフレームの顔検出枠データとＮ−１フレームの顔検出枠データを対応付けすると、Ｎ−１フレームの顔検出枠データが重複して、Ｎフレームの顔検出枠データに対応付けられていないか確認する（Ｓ１２６）。
【００６４】
Ｎ−１フレームの顔検出枠データが重複して、Ｎフレームの顔検出枠データに対応付けられている場合、画像処理装置２のトラッキング手段２３は、重複して対応付けられているＮ−１フレームの顔検出枠データの評価値を参照し、評価値が小さい方を該Ｎフレームの顔検出枠データに対応付ける処理を再帰的に実行することで、最終的に、Ｎフレームの顔検出枠データに対応付けるＮ−１フレームの顔検出枠データを決定する（Ｓ１２７）。
【００６５】
ここから、図４で図示したフローの説明に戻る。トラッキング処理Ｓ４が終了すると、画像処理装置２の状態遷移管理手段２５によって、トラッキング処理Ｓ４から得られ、一つ前と今回の顔検出枠データの対応付け結果を参照し、事前に定めた状態遷移表に従い顔オブジェクトの状態を遷移させ、顔オブジェクトの状態遷移に応じたログを記憶する状態遷移管理処理Ｓ５が実行され、この状態遷移管理処理Ｓ５で所定の状態遷移があると、該状態遷移に対応した所定のログファイルがデータ記憶装置２ｄに記憶される。
【００６６】
画像処理装置２の状態遷移管理手段２５には、顔オブジェクトの状態遷移を管理するために、予め、顔オブジェクトの状態と該状態を状態遷移させるルールが定義された状態遷移表が定められており、画像処理装置２のトラッキング手段２３は、この状態遷移表を参照し、顔検出枠データ対応付け処理Ｓ１２の結果に基づき顔オブジェクトの状態を遷移させる。
【００６７】
ここから、状態遷移表の一例を例示し、該状態遷移表の説明をしながら、画像処理装置２の状態遷移管理手段２５によって実行される状態遷移管理処理Ｓ５について説明する。
【００６８】
図７は、本実施形態における状態遷移表６を説明する図である。図７で図示した状態遷移表６によって、顔オブジェクトの状態と、Ｎ−１フレームの状態からＮフレームの状態への遷移が定義され、状態遷移表６の縦軸はＮ−１フレームの状態で、横軸はＮフレームの状態で，縦軸と横軸が交差する箇所に状態遷移する条件が記述されている。なお、状態遷移表に「―」は不正な状態遷移を示している。
【００６９】
図７で図示した状態遷移表６には、顔オブジェクトの状態として、Ｎｏｎｅ、候補Ｆａｃｅ、現在Ｆａｃｅ、待機Ｆａｃｅ、ノイズＦａｃｅ及び終了Ｆａｃｅが定義され、状態遷移表で定義された状態遷移を説明しながら、それぞれの状態について説明する。
【００７０】
顔オブジェクトの状態の一つであるＮｏｎｅとは、顔オブジェクトが存在しない状態を意味し、Ｎフレームの顔検出枠データに対応付けるＮ−１フレームの顔検出枠データが無い場合（図７の条件１）、画像処理装置２の状態遷移管理手段２５は、顔オブジェクトを識別するためのＩＤ、該Ｎフレームの顔検出データ、顔オブジェクトに付与された状態に係わるデータなどを属性値と有する顔オブジェクトを新規に生成し、該顔オブジェクトの状態を候補Ｆａｃｅに設定する。
【００７１】
顔オブジェクトの状態の一つである候補Ｆａｃｅとは、新規に検出した顔画像がノイズである可能性がある状態を意味し、顔オブジェクトの状態の一つに候補Ｆａｃｅを設けているのは、複雑な背景の場合、背景除去処理を行っても顔画像の誤検出が発生し易く、新規に検出できた顔画像がノイズの可能性があるからである。
【００７２】
候補Ｆａｃｅの状態である顔オブジェクトには、候補Ｆａｃｅの状態に係わるデータとして、候補Ｆａｃｅの状態であることを示す状態ＩＤと、候補Ｆａｃｅへ状態遷移したときの日時及びカウンタが付与される。
【００７３】
候補Ｆａｃｅから状態遷移可能な状態は、候補Ｆａｃｅ、現在Ｆａｃｅ及びノイズＦａｃｅで、事前に定められた設定時間内において、候補Ｆａｃｅの状態である顔オブジェクトに対応する顔検出枠が所定の数だけ連続してトラッキングできた場合（図７の条件２−２）、該顔オブジェクトの状態は候補Ｆａｃｅから現在Ｆａｃｅに遷移する。
【００７４】
候補Ｆａｃｅの状態である顔オブジェクトの属性にカウンタを設けているのは、設定時間内において、候補Ｆａｃｅの状態である顔オブジェクトに対応する顔検出枠を連続してトラッキングできた回数をカウントするためで、画像処理装置２の状態遷移管理手段２５は、Ｎフレームの顔検出枠データに対応付けられたＮ−１フレームの顔検出データが含まれている顔オブジェクトの状態が候補Ｆａｃｅの場合、該顔オブジェクトに付与されている顔検出枠データをＮフレームの顔検出枠データに更新すると共に、該顔オブジェクトのカウンタをインクリメントする。
【００７５】
そして、画像処理装置２の状態遷移管理手段２５は、状態遷移管理処理Ｓ５を実行する際、候補Ｆａｃｅである顔オブジェクト毎に、候補Ｆａｃｅへ状態遷移したときの日時を参照し、設定時間以内に該カウンタの値が事前に定めた設定値に達している場合は、顔オブジェクトの状態を現在Ｆａｃｅに状態遷移させる。また、画像処理装置２の状態遷移管理手段２５は、この時点で設定時間が経過しているが、該カウンタが設定値に達しなかった該顔オブジェクトの状態をノイズＦａｃｅに状態遷移させ（図７の条件２−３）、該設定時間が経過していない該顔オブジェクトについては状態を状態遷移させない（図７の条件２−１）。
【００７６】
顔オブジェクトの状態の一つであるノイズＦａｃｅとは、画像処理装置２の顔検出手段２１が検出した顔画像がノイズと判定された状態で、ノイズＦａｃｅに状態遷移した顔オブジェクトは消滅したと見なされ、これ以降の状態遷移管理処理Ｓ５に利用されない。
【００７７】
顔オブジェクトの状態の一つである現在Ｆａｃｅとは、顔オブジェクトに対応する人物がディスプレイ３を閲覧状態と判定できる状態で、現在Ｆａｃｅの状態にある時間が、顔オブジェクトに対応する人物がディスプレイ３を閲覧している時間となる。
【００７８】
画像処理装置２の状態遷移管理手段２５は、顔オブジェクトの状態を候補Ｆａｃｅから現在Ｆａｃｅに状態遷移すると、該顔オブジェクトの顔検出枠データをＮフレームの顔検出枠データに更新すると共に、現在Ｆａｃｅに係わるデータとして、現在Ｆａｃｅの状態であることを示す状態ＩＤと現在Ｆａｃｅに状態遷移させたときの日時を顔オブジェクトに付与する。
【００７９】
また、ディスプレイを閲覧している人物の人物属性（例えば、年齢・性別）をログとして記憶するために、顔オブジェクトの状態を現在Ｆａｃｅに状態遷移すると、画像処理装置２の状態遷移管理手段２５は人物属性推定手段２６を作動させ、現在Ｆａｃｅに状態遷移させた顔オブジェクトの顔検出枠データで特定される顔検出枠から得られる人物属性を取得し、該顔オブジェクトのオブジェクトＩＤ、人物属性が記述された属性ログファイルをデータ記憶装置２ｄに記憶する。
【００８０】
なお、画像処理装置２に備えられた人物属性推定手段２６については詳細な記載はしないが、人物の顔画像から人物の人物属性（年齢・性別）を自動で識別することは、タバコの自動販売機などでも広く利用されており、例えば、特開２００７―０８００５７号公報の技術を利用できる。
【００８１】
更に、画像処理装置２の状態遷移管理手段２５は、顔オブジェクトの状態を現在Ｆａｃｅに状態遷移すると、ディスプレイ３を閲覧している人物の位置を時系列で記憶するための位置ログファイルをデータ記憶装置２ｄに新規に生成する。生成時の位置ログファイルには、現在Ｆａｃｅに状態遷移した顔オブジェクトのオブジェクトＩＤと、現在Ｆａｃｅに状態遷移した顔オブジェクトに含まれる顔検出枠データが付与される。
【００８２】
現在Ｆａｃｅの状態から状態遷移可能な状態は、現在Ｆａｃｅ及び待機Ｆａｃｅである。画像処理装置２の状態遷移管理手段２５は、Ｎフレームの顔検出枠データに対応付けられたＮ−１フレームの顔検出データを含む顔オブジェクトの状態が現在Ｆａｃｅの場合（条件３−１）、該顔オブジェクトに付与されている顔検出枠データをＮフレームにおける顔検出枠データに更新すると共に、該顔検出枠データを、該顔オブジェクトのオブジェクトＩＤで特定される位置ログファイルに追加する。
【００８３】
また、画像処理装置２の状態遷移管理手段２５は、状態遷移管理処理Ｓ５を行う際、Ｎフレームの顔検出枠データが対応付けられなかったＮ−１フレームの顔検出枠データが付与されている顔オブジェクトの状態が現在Ｆａｃｅの場合、動画解析手段２４を作動させて、動画解析手法により、該Ｎ−１フレームの顔検出枠データに対応する顔画像をＮフレームから検出する処理を実施する。
【００８４】
本実施形態において、画像処理装置２の動画解析手段２４は、まず、Ｎフレームの顔検出枠データが対応付けられなかったＮ−１フレームの顔検出枠データと既に対応付けられているＮフレームの顔検出枠データの間で、オクルージョン状態の判定を行い、対象となる人物の顔が完全に隠れた状態のオクルージョンであるか確認する。
【００８５】
画像処理装置２の動画解析手段２４は、この時点で存在し、現在Ｆａｃｅ、候補Ｆａｃｅ及び待機Ｆａｃｅの状態である全ての顔オブジェクトについて、数式２に従い，顔オブジェクトのオクルージョン状態を判定する処理を実行する。
【数２】
0005776471.tif 000003
【００８６】
画像処理装置２の動画解析手段２４は、数式２に従い、顔オブジェクトのオクルージョン状態を判定する処理を実行すると、判定結果に基づき処理を分岐する。
【００８７】
トラッキング対象である人物が完全に隠れた状態のオクルージョンである可能性が高いと判断できた場合（数式２の判定基準１に該当する場合）、パーティクルフィルタによるトラッキング行い、対象となる顔オブジェクトの位置・矩形サイズを検出する。なお、パーティクルフィルタについては，「加藤丈和: 「パーティクルフィルタとその実装法」、情報処理学会研究報告, CVIM-157, pp.161-168 (2007).」など数多くの文献で述べられている。
【００８８】
また、トラッキング対象である人物が半分隠れた状態のオクルージョンで可能性が高いと判断できた場合（数式２の判定基準２に該当する場合）、ＬＫ法（Lucus-Kanadeアルゴリズム）によるトラッキング行い、対象となる顔オブジェクトの位置・矩形サイズを検出する。なお、ＬＫ法については、「Lucas, B.D. and Kanade, T.：" An Iterative Image Registration Technique with an Application to Stereo Vision",Proc.DARPA Image Understanding Workshop,pp.121-130,1981.」で述べられている。
【００８９】
そして、トラッキング対象である人物にオクルージョンはない可能性が高いと判定できた場合（数式３の判定基準３に該当する場合）、画像処理装置２の動画解析手段２４は、ＣａｍＳｈｉｆｔ手法を用いたトラッキングを行い、対象となる顔オブジェクトの位置・矩形サイズを検出する。なお、ＣａｍＳｈｉｆｔ手法については、「G. R. Bradski: "Computer vision face tracking foruse in a perceptual user interface," Intel Technology Journal, Q2, 1998.」で述べられている。
【００９０】
画像処理装置２の状態遷移管理手段２５は、これらのいずれかの手法で対象となる顔画像がＮフレームから検出できた場合、現在Ｆａｃｅの状態である顔オブジェクトの顔検出データを、これらの手法で検出された位置・矩形サイズに更新し、これらのいずれかの手法でも対象となる顔画像がトラッキングできなかった場合、現在Ｆａｃｅの状態である顔オブジェクトの状態を待機Ｆａｃｅに状態遷移させる（図７の条件３−２）。
【００９１】
顔オブジェクトの状態の一つである待機Ｆａｃｅとは、画像処理装置２に備えられた動画解析手段２４を用いても、顔オブジェクトに対応する顔画像を検出できなくなった状態である。
【００９２】
また、画像処理装置２の状態遷移管理手段２５は、顔オブジェクトの状態を待機Ｆａｃｅに状態遷移する際、顔オブジェクトの顔検出枠データは更新せず、待機Ｆａｃｅに係わるデータとして、待機Ｆａｃｅの状態であることを示す状態ＩＤと、該顔オブジェクトが現在Ｆａｃｅに状態遷移したときの日時と、該顔オブジェクトが待機Ｆａｃｅに状態遷移したときの日時を顔オブジェクトに付与する。
【００９３】
待機Ｆａｃｅから状態遷移可能な状態は、現在Ｆａｃｅまたは終了Ｆａｃｅである。画像処理装置２の状態遷移管理手段２５は、待機Ｆａｃｅに状態遷移してからの時間が所定時間経過する前に、Ｎフレームの顔検出枠データを含む顔オブジェクトを検索し、該顔オブジェクトの状態が待機Ｆａｃｅであった場合、該顔オブジェクトの状態を待機Ｆａｃｅから現在Ｆａｃｅに状態遷移させる（図７の条件４−１）。
【００９４】
なお、顔オブジェクトの状態を待機Ｆａｃｅから現在Ｆａｃｅに状態遷移させる際、画像処理装置２の状態遷移管理手段２５は、該顔オブジェクトが現在Ｆａｃｅに状態遷移したときの日時は、待機Ｆａｃｅの状態のときに顔オブジェクトに付与されていた該日時を利用する。
【００９５】
また、画像処理装置２のトラッキング手段２３は、顔オブジェクトの状態遷移を管理する処理を実行する際、待機Ｆａｃｅに状態遷移してからの時間が所定時間経過した顔オブジェクトの状態を終了Ｆａｃｅに状態遷移させ（図７の条件４−３）、該設定時間が経過していない該顔オブジェクトについては状態を遷移させない（図７の条件４−２）。
【００９６】
顔オブジェクトの状態の一つである終了Ｆａｃｅとは、画像処理装置２が検出できなくなった人物に対応する状態で、状態が終了Ｆａｃｅになった顔オブジェクトは消滅したと見なされ、これ以降の状態遷移管理処理Ｓ５で利用されない。
【００９７】
なお、画像処理装置２の状態遷移管理手段２５は、顔オブジェクトの状態を終了Ｆａｃｅに状態遷移する前に、該顔オブジェクトのオブジェクトＩＤ、該顔オブジェクトが現在Ｆａｃｅに状態遷移したときの日時である閲覧開始時刻、該顔オブジェクトが待機Ｆａｃｅに状態遷移したときの日時である閲覧終了時刻を記述した閲覧時間ログファイルを生成しデータ記憶装置２ｄに記憶させる。
【００９８】
以上詳しく説明したように、画像処理装置２は、顔検出手段２１が検出した顔毎に生成する顔オブジェクトの状態として、Ｎｏｎｅ、候補Ｆａｃｅ、現在Ｆａｃｅ、待機Ｆａｃｅ、ノイズＦａｃｅ及び終了Ｆａｃｅの５つを状態遷移表６で定義し，顔オブジェクトに対応する顔のトラッキング結果に従い、顔オブジェクトの状態を遷移させることで、顔オブジェクトの状態遷移に従い、ディスプレイ３の閲覧時間をログとして記憶することが可能になる。
【００９９】
上述した内容に従えば、顔オブジェクトの状態が現在Ｆａｃｅである間は、顔オブジェクトに対応する顔を連続して検出できたことになるため、現在Ｆａｃｅの状態にあった時間は、ディスプレイ３の閲覧時間になる。
【０１００】
また、顔オブジェクトの状態として候補Ｆａｃｅを定義しておくことで、ノイズによって顔を誤検出した場合でも、ディスプレイ３の閲覧時間への影響はなくなる。また、顔オブジェクトの状態として待機Ｆａｃｅを定義しておくことで、顔を見失った後に、同じ顔を検出した場合でも、同じ顔として取り扱うことができるようになる。
【０１０１】
≪３．シナリオデータを用いた合成処理≫
≪３．１．ターゲットが１人の場合≫
図９は、ビデオカメラ４から送信された映像のフレームを基に、画像処理装置２が合成画像を作成する処理を説明するフロー図である。画像処理装置２を起動し、使用するシナリオデータを指定すると、まず、シナリオデータ対応付け手段８３が、指定されたシナリオデータをデータ記憶装置２ｄから読み込む（Ｓ２１）。そして、シナリオデータ対応付け手段８３は、シナリオデータを解釈し、シナリオデータに従った画像の作成を開始する（Ｓ２２）。
【０１０２】
次に、シナリオデータ対応付け手段８３は、状態遷移管理手段２５により生成された顔オブジェクトデータを取得する（Ｓ２３）。顔オブジェクトデータは、オブジェクトＩＤ、顔検出枠データ（位置、矩形サイズ）、閲覧時間で構成される。
【０１０３】
続いて、シナリオデータ対応付け手段８３は、状態遷移管理手段２５から取得した顔オブジェクトデータをシナリオデータに対応付ける処理を行う（Ｓ２４）。具体的には、顔オブジェクトデータに含まれる顔検出枠データのオブジェクトＩＤとターゲットＩＤを対応付ける。状態遷移管理手段２５から複数の顔検出枠データを取得した場合は、候補Ｆａｃｅへ状態遷移したときの日時が最も早いものを“０”に設定し、以降、候補Ｆａｃｅへ状態遷移したときの日時が早い順に“１””２” ”３”と数を１ずつ増加させながら設定していく。図１０の例では、シナリオデータには、ターゲットＩＤ“０”の１つだけ設定されているので、シナリオデータ対応付け手段８３は、ターゲットＩＤ“０”が対応付けられたオブジェクトＩＤで特定される顔検出枠データをターゲットとすることになる。
【０１０４】
次に、合成画像作成手段８４が、フレーム単位で表示用の合成画像を作成する処理を行う（Ｓ２５）。具体的には、まず、開始時点を時刻“０．０”と設定し、この時刻“０．０”で、シナリオデータの<Animation Commands>を参照する。すると、図１０に示すように、開始キー“０．０”から終了キー“０．１”までは、キータイプ“own”、コマンドタイプ“LayerMontage(レイヤ合成)”、ターゲットＩＤ“０”、コンテンツＩＤ“０”であるので、合成画像作成手段８４は、ターゲットＩＤ“０”の顔検出枠データに、コンテンツＩＤ“０”をレイヤ合成することにより、合成画像を作成することになる。
【０１０５】
コンテンツＩＤ“０”のコンテンツ（合成用素材）は、シナリオデータの<Simulation Contents>を参照することにより、コンテンツのパスが特定できるので、そのパスで特定されるデータ記憶装置２ｄ内の記憶位置からコンテンツを取得する。上述のように、コンテンツには矩形情報が設定されているので、合成画像作成手段８４は、この矩形情報と顔検出枠データの矩形サイズが一致するように矩形情報とコンテンツのサイズを変更し、変更したコンテンツを、変更後の矩形情報と顔検出枠データの位置が一致する位置にレイヤ合成を行う。具体的には、図１２（ｂ）に示すような顔画像に設定された顔検出枠データの矩形に合わせて、コンテンツに設定された矩形の大きさを変更し、コンテンツに設定された矩形の変更割合に合わせてコンテンツをリサイズし、２つの矩形が一致するように合成処理を行う。この結果、例えば、図１２（ａ）のようにコンテンツがカツラである場合、人の顔に合わせてカツラを被せたような状態の合成画像（図１２（ｃ））が得られることになる。合成画像作成手段８４は、得られた合成画像を、ディスプレイ３に表示させる。この結果、ディスプレイ３には、撮影映像のフレームに加工が施された合成画像が表示されることになる。
【０１０６】
１つのフレームについて合成画像の作成を終えたら、シナリオデータ対応付け手段８３は、シナリオ中であるかどうかを判断する（Ｓ２６）。具体的には、シナリオデータに従った画像作成開始からの経過時間でシナリオデータ内の<CycleInterval>タグを参照し、経過時間がシナリオ時間未満である場合は、シナリオ中であると判断し、経過時間がシナリオ時間以上である場合は、シナリオ終了であると判断する。シナリオ中であると判断した場合には、シナリオデータ対応付け手段８３は、Ｓ２３に戻って、顔オブジェクトデータを取得する。
【０１０７】
そして、Ｓ２４において、シナリオデータ対応付け手段８３は、状態遷移管理手段２５から取得した次の顔オブジェクトデータをシナリオデータに対応付ける処理を行う。このときも1回目のループと同様、候補Ｆａｃｅへ状態遷移したときの日時が最も早いものを“０”に設定し、以降、候補Ｆａｃｅへ状態遷移したときの日時が早い順に“１””２” ”３”と数を１ずつ増加させながら設定していく。そして、シナリオデータに従って、シナリオデータ対応付け手段８３は、ターゲットＩＤ“０”が対応付けられたオブジェクトＩＤで特定される顔検出枠データをターゲットとする。
【０１０８】
次に、Ｓ２５において、合成画像作成手段８４が、フレーム単位で合成画像を作成する処理を行う。具体的には、経過時間を取得し、取得した経過時間で、シナリオデータの<Animation Commands>を参照する。取得した経過時間が、“０．１”より小さい場合は、上述の場合と同様、図１０のシナリオデータに示すように、開始キー“０．０”から終了キー“０．１”の間であるので、キータイプ“own”、コマンドタイプ“LayerMontage(レイヤ合成)”、ターゲットＩＤ“０”、コンテンツＩＤ“０”であるので、合成画像作成手段８４は、ターゲットＩＤ“０”の顔検出枠データに、コンテンツＩＤ“０”をレイヤ合成することにより、合成画像を作成する。取得した経過時間が、“０．１”を超えていた場合、図１０に示すように、開始キー“０．１”から終了キー“０．３”までは、キータイプ“own”、コマンドタイプ“LayerMontage(レイヤ合成)”、ターゲットＩＤ“０”、コンテンツＩＤ“１”であるので、合成画像作成手段８４は、ターゲットＩＤ“０”の顔検出枠データに、コンテンツＩＤ“１”をレイヤ合成することにより、合成画像を作成することになる。このようにして、Ｓ２６においてシナリオ終了であると判断されるまでは、経過時間に従い、シナリオデータを実行する処理を繰り返し行う。
【０１０９】
Ｓ２６において、シナリオ終了であると判断した場合には、シナリオデータ対応付け手段８３は、繰り返して処理を行うかどうかを判断する（Ｓ２７）。具体的には、シナリオデータ内の<IsAutoLoop>タグを参照し、“true”が設定されている場合は、繰り返して処理を行うと判断する。繰り返して処理を行うと判断した場合には、シナリオデータ対応付け手段８３は、経過時間を“０”にリセットし、経過時間の計測を再び開始するとともに、Ｓ２２に戻って、シナリオデータに従った画像の作成を開始する。このように、映像の各フレームから得られた合成画像を順次ディスプレイに表示することにより、加工映像として表示されることになる。
【０１１０】
図１３は、図１０のシナリオデータに従って得られた合成画像の表示状態を示す図である。まず、フレームにフキダシ「こんにちは」が合成された合成画像が表示される（ア）。シナリオ開始時（StartKey="0.0"）から経過時間１秒（EndKey="0.1"）までのフレームについては、全てフキダシ「こんにちは」（ContentsID="0"）が合成された合成画像が表示されることになる。この際、ContentsID="0"で<SimulationContents>を参照することにより、コンテンツのコンテンツ記憶手段内における所在“fukidashi001.jpg”を特定し、フキダシ「こんにちは」のコンテンツを取得する。
【０１１１】
次に、経過時間１秒（StartKey="0. 1"）になると、フキダシ「今日の髪素敵でしょ？」（ContentsID="1"）が合成された合成画像が表示される（イ）。経過時間１秒（StartKey="0. 1"）から経過時間３秒（EndKey="0. 3"）までのフレームについては、全てフキダシ「今日の髪素敵でしょ？」が合成された合成画像が表示されることになる。この際、ContentsID="1"で<SimulationContents>を参照することにより、コンテンツのコンテンツ記憶手段内における所在“fukidashi002.jpg”を特定し、フキダシ「今日の髪素敵でしょ？」のコンテンツを取得する。
【０１１２】
経過時間３秒（StartKey="0.3"）になると、フキダシ「もう少しカジュアルにしようかな」（ContentsID="2"）が合成された合成画像が表示される（ウ）。この際、ContentsID="2"で<SimulationContents>を参照することにより、コンテンツのコンテンツ記憶手段内における所在“fukidashi003.jpg”を特定し、フキダシ「もう少しカジュアルにしようかな」のコンテンツを取得する。
【０１１３】
経過時間３秒（StartKey="0.3"）から経過時間６秒（EndKey="0.6"）までのフレームについては、全てフキダシ「もう少しカジュアルにしようかな」が合成された合成画像が表示されることになる。経過時間６秒（StartKey="0.6"）になると、黒いカツラ（ContentsID="5"）が合成された合成画像が表示される（エ）。この際、ContentsID="5"で<SimulationContents>を参照することにより、コンテンツのコンテンツ記憶手段内における所在“afro.jpg”を特定し、黒いカツラのコンテンツを取得する。経過時間６秒（StartKey="0.6"）から経過時間７秒（EndKey="0.7"）までのフレームについては、全て黒いカツラが合成された合成画像が表示されることになる。
【０１１４】
経過時間７秒（StartKey="0.7"）になると、フキダシ「こっちがいいかな」（ContentsID="3"）と、金髪のカツラ（ContentsID="6"）が合成された合成画像が表示される（オ）。この際、ContentsID="6"で<SimulationContents>を参照することにより、コンテンツのコンテンツ記憶手段内における所在“blond.jpg”を特定し、金髪のカツラのコンテンツを取得する。経過時間７秒（StartKey="0.7"）から経過時間９秒（EndKey="0.9"）までのフレームについては、全てフキダシ「こっちがいいかな」と、金髪のカツラが合成された合成画像が表示されることになる。経過時間９秒（StartKey="0.9"）になると、フキダシ「ねっどうでしょう」（ContentsID="4"）と、金髪のカツラが合成された合成画像が表示される（カ）。この際、ContentsID="4"で<SimulationContents>を参照することにより、コンテンツのコンテンツ記憶手段内における所在“fukidashi005.jpg”を特定し、フキダシ「ねっどうでしょう」のコンテンツを取得する。経過時間９秒（StartKey="0.9"）から経過時間１０秒（EndKey="1.0"）までのフレームについては、全て黒いカツラが合成された合成画像が表示されることになる。
【０１１５】
≪３．２．ターゲットが２人の場合≫
次に、ターゲットが２人の場合について説明する。図１１は、ターゲットが２人の場合のＸＭＬ形式のシナリオデータの一例を示す図である。図１０の例と大きく異なるのは、<Simulation Targets>タグで挟まれた<Human>タグ内に、ターゲットＩＤが２つ設定されている点である。図１１の例では、ターゲットＩＤ“０”と“１”が設定されている。<Animation Commands>タグ内では、各コマンドＩＤについて、１つのターゲットＩＤが設定される。図１１の例では、コマンドＩＤ“０”“２”“３”“５”については、ターゲットＩＤ“０”が設定され、コマンドＩＤ“１”“４”“６”については、ターゲットＩＤ“１”が設定されている。
【０１１６】
ターゲットが２人の場合も、ターゲットが１人の場合と同様に、図９のフロー図に従って実行される。ターゲットが２人の場合は、Ｓ２３において、シナリオデータ対応付け手段８３が、状態遷移管理手段２５により生成された顔オブジェクトデータを複数取得するので、Ｓ２４において、取得したそれぞれの顔オブジェクトデータをシナリオデータに対応付ける。図１１の例では、シナリオデータには、ターゲットＩＤ“０”“１”の２つが設定されているので、シナリオデータ対応付け手段８３は、ターゲットＩＤ“０”“１”が対応付けられたオブジェクトＩＤで特定される顔検出枠データをターゲットとすることになる。これにより、ターゲットとする顔オブジェクトの顔検出枠がフレームで入れ替わるように移動したとしても、合成画像作成手段８４は、それぞれの顔検出枠に合わせてコンテンツを合成することができる。
【０１１７】
図１４は、図１１のシナリオデータに従って得られた合成画像の表示状態を示す図である。まず、フレームの左側にフキダシ「こんにちは」が合成された合成画像が表示され、経過時間１秒になると、フレームの右側にフキダシ「こんにちは」が合成された合成画像が表示される（ア）。経過時間３秒になると、金髪のカツラと、黒いカツラが合成された合成画像が表示される（図示省略）。経過時間４秒になると、フキダシ「今日のあなたの髪」と、金髪のカツラと、黒いカツラが合成された合成画像が表示される（イ）。経過時間６秒になると、金髪のカツラと、黒いカツラが合成された合成画像が表示される（図示省略）。経過時間７秒になると、フキダシ「今日のあなたの髪」と、金髪のカツラと、黒いカツラが合成された合成画像が表示される（ウ）。経過時間９秒になると、フキダシ「ありがとうあなたもね」と、金髪のカツラと、黒いカツラが合成された合成画像が表示される（エ）。
【０１１８】
≪３．３．対話的表示を行う例≫
次に、仮想のタッチレスボタンを用いて対話的表示を行う場合について説明する。対話的表示を行うためには、対話的表示に対応するシナリオデータが必要となる。図１５は、タッチレスボタンに対応（ターゲット１人）の場合のＸＭＬ形式のシナリオデータの一例を示す図である。ここでは、図１５のシナリオデータを参照しながら、合成ターゲット定義手段８０、合成コンテンツ定義手段８１、アニメーションシナリオ定義手段８２の機能について説明する。合成ターゲット定義手段８０は、ターゲットＩＤ、タイプ、絶対座標、移り変わり設定の４つの属性を設定することによりターゲットを定義する。図１５の例では、１行目の<Simulation Targets>と、７行目の</Simulation Targets>の２つのタグで囲まれた範囲に対応する。タイプについては、人と場所の２種を設定可能であるが、図１５の例では、<Human>タグを用いて人についてのみ設定している。移り変わり設定は、人に対してのみ設定可能となっており、対応付け済みの人が消失した場合、新たな人に対応付けるかどうかを設定するものである。図１５の例では、３行目のタグで、ターゲットＩＤ、タイプ、移り変わり設定の３属性を設定しており、ターゲットＩＤは“０”、タイプは“human(人)”、移り変わり設定（IsTransfer）は“false(設定しない)”となっている。
【０１１９】
合成コンテンツ定義手段８１は、コンテンツＩＤ、コンテンツのパス、重なり設定の３つの属性を設定することによりコンテンツを定義する。図１５の例では、８行目の<Simulation Contents>と、１１行目の</Simulation Contents >の２つのタグで囲まれた範囲に対応する。図１５の例では、コンテンツＩＤ（ContentsID）が“０”と“１”の２つのコンテンツについて定義されている。図１５に示すように、各コンテンツについて１行単位で、コンテンツのパス（ContentsPath）、重なり設定（OverlapOrder）が設定される。
【０１２０】
アニメーションシナリオ定義手段８２は、コマンドＩＤ、コマンドタイプ、セレクタＩＤ、開始キー、終了キー、キータイプ、ターゲットＩＤ、コンテンツＩＤの８つの属性を設定することによりアニメーションシナリオを定義する。図１５の例では、１２行目の<Animation Commands>と、１７行目の</Animation Commands>の２つのタグで囲まれた範囲に対応する。図１５の例では、コマンドＩＤ（CommandID）が“０” と“１”の２つのコマンドについて定義されている。図１５に示すように、各コマンドについて２行単位で、コマンドタイプ、セレクタＩＤ（SelectorID）、開始キー、終了キー、キータイプ、ターゲットＩＤ、コンテンツＩＤが設定される。コマンドタイプとは、どのようなフレームを基にどのようなタイプの効果を生じさせるかを示すものであり、レイヤ合成、αブレンド合成、音声再生開始、シーン合成が用意されている。このうち、レイヤ合成、αブレンド合成、シーン合成は、画像合成のタイプを示すものであり、レイヤ合成は、コンテンツを上書き合成するものであり、αブレンド合成は、設定されたα比率に応じてコンテンツとフレームを透過させて合成するものであり、シーン合成は、人体部分を切り抜き、背景の上に合成するものである。図１５の例では、コマンドタイプ（CommandType）として、レイヤ合成（LayerMontage）が設定されている。
【０１２１】
セレクタＩＤは、実行するコマンドを特定するための条件であり、そのセレクタＩＤに対応するコマンドＩＤのコマンドが実行される。セレクタにより特定された１以上のコマンドの集合が１つのシナリオを構成することになる。したがって、セレクタとシナリオは１対１で対応している。図１５の例では、１つのシナリオが１つのコマンドで構成されており、セレクタＩＤ＝０の場合に、コマンドＩＤ＝０のコマンドが実行され、セレクタＩＤ＝１の場合に、コマンドＩＤ＝１のコマンドが実行されることを示している。開始キー、終了キーは、図１０の例と同様、各コマンドの開始時点、終了時点を設定するものである。本実施形態では、シナリオデータの時間を、シナリオ開始時を“０．０”、シナリオ終了時を“１．０”として管理している。図１５の例では、図１０の例と異なり、全てのコマンドの開始キー（StartKey）は“０．０”、最後に終了するコマンドの終了キー（EndKey）は“１．０”となる。キータイプとは、開始キー、終了キーの基準とする対象を設定するものであり、own、base、globalの３つが用意されている。ownは各ターゲットＩＤに対応する顔オブジェクトの閲覧時間を基準とし、baseはターゲットＩＤ＝０に対応する顔オブジェクトの閲覧時間を基準とし、globalは撮影映像の最初のフレームを取得した時間を基準とする。図１５の例では、キータイプ（KeyType）として、ownが設定されているので、顔オブジェクトがフレームに登場した時点（顔オブジェクトが“閲覧開始”と判断された時点）を“０．０”として、開始キー、終了キーが認識されることになる。
【０１２２】
図１５の例では、図１０に示した<CycleInterval>タグ、<IsAutoLoop>タグが、２行目の< Human >と、４行目の</ Human >の２つのタグで囲まれた３行目のターゲットＩＤタグ内に含まれている。<CycleInterval>タグ、<IsAutoLoop>タグがターゲットＩＤタグ内に含まれている場合でも、図１０の例と同様、シナリオデータの<CycleInterval>タグは、シナリオの開始から終了までの時間を秒単位で設定するものであり、シナリオデータの<IsAutoLoop>タグは、ループ処理（繰り返し処理）を行うかどうかを設定するものである。画像表示システム１は、シナリオデータに複数通りの記述形式を許容しており、図１０、図１５に示したように<CycleInterval>タグ、<IsAutoLoop>タグの記述位置が異なる場合であっても、シナリオデータ対応付け手段８３は、<CycleInterval>タグ、<IsAutoLoop>タグを認識し、記述内容に従った処理を実行する。図１５の例では、ターゲットＩＤタグ内でCycleInterval＝“１０”に設定されているので、シナリオの開始から終了まで１０秒であることを示している。開始キー、終了キーの値を１０倍した実時間でシナリオは管理されることになる。図１５の例では、ターゲットＩＤタグ内でIsAutoLoop＝“true”に設定されているので、ループ処理を行うことを示している。このようにして、合成ターゲット定義手段８０、合成コンテンツ定義手段８１、アニメーションシナリオ定義手段８２により作成されたシナリオデータは、シナリオデータ記憶手段としてのデータ記憶装置２ｄに格納される。
【０１２３】
さらに、アニメーションシナリオ定義手段８２は、セレクタＩＤ、セレクトタイプ、セレクトナンバー、トリガＩＤの４つの属性を設定することによりアニメーションセレクタを定義する。図１５の例では、１８行目の<AnimationSelectors SelectorsNum = "2" InitialSerectorID="0">と、２１行目の</AnimationSelectors>の２つのタグで囲まれた範囲に対応する。図１５の例では、セレクタＩＤ（SelectorID）が“０” と“１”の２つのセレクタについて定義されている。図１５に示すように、各セレクタについて１行単位で、セレクタＩＤ（SelectorID）、セレクトタイプ（SelectType）、セレクトナンバー（SelectNum）、トリガＩＤ（TriggerID）が設定される。セレクタＩＤはセレクタを特定するＩＤである。セレクトタイプ（SelectType）は、セレクタＩＤの特定方法を定めるものであり、selectnum、incrementnum、decrementnum、returnnumの４つのタイプが存在する。selectnumは、直接指定されたセレクタＩＤを選択する。incrementnumは、選択中のセレクタＩＤにセレクトナンバー（SelectNum）を加算して得られるセレクタＩＤを選択する。decrementnumは、選択中のセレクタＩＤにセレクトナンバー（SelectNum）を減算して得られるセレクタＩＤを選択する。returnnumは、トリガＩＤに対応するセレクタＩＤを選択する。セレクトナンバー（SelectNum）は、incrementnum、decrementnumに用いられる番号である。トリガＩＤは、所定のイベントが発生した場合に、そのイベントに対応して発生するＩＤであり、図１５の例では、タッチレスボタンが指示された場合に発生する。
【０１２４】
さらに、アニメーションシナリオ定義手段８２は、タッチレスボタンＩＤ、ボタンイメージパス、マスクファイルパス、ボタン位置、ボタンサイズ、連続時間しきい値、マスク割合しきい値の７つの属性を設定することによりアニメーショントリガを定義する。図１５の例では、２２行目の<AnimationTriggers >と、３１行目の</AnimationTriggers >の２つのタグで囲まれた範囲に対応する。図１５の例では、タッチレスボタンＩＤ（TouchlessButton ID）が“０” と“１”の２つのボタンについて定義されている。図１５に示すように、各ボタンについて４行単位で、タッチレスボタンＩＤ（TouchlessButton ID）、ボタンイメージパス（ButtonImagePath）、マスクファイルパス（MaskFilePath）、ボタン位置（PositionX, PositionY）、ボタンサイズ（ButtonWidth,ButtonHeight）、連続時間しきい値（Thtime）、マスク割合しきい値（Thmask）が設定される。タッチレスボタンＩＤはタッチレスボタンを特定するＩＤである。このタッチレスボタンＩＤはトリガＩＤと一対一で対応しており、タッチレスボタンＩＤが決定すると、トリガＩＤも同じ値に設定される。ボタンイメージパスは、ディスプレイ３に表示させるタッチレスボタンの画像を記録した位置を特定するパスである。マスクファイルパスは、ボタン形状の角を丸めるためにマスクするためのマスク画像を記録した位置を特定するパスである。ボタン位置は、タッチレスボタンを表示させる画面上のｘｙ座標である。なお、後述するボタンの指示判定において、ボタン領域を設定する場合は、画像の左右を反転させる必要があるため、それに応じてｘ座標を変換して用いる。ボタンサイズは、タッチレスボタンの幅と高さである。連続時間しきい値は、タッチレスボタンが押され続けたと判断するための時間のしきい値である。マスク割合しきい値は、タッチレスボタンが押されていると判断するための面積比率のしきい値である。
【０１２５】
図９のフロー図を用いて、図１５に示したシナリオデータを指定した場合について説明する。画像処理装置２を起動し、図１５に示したシナリオデータを使用するシナリオデータとして指定すると、まず、シナリオデータ対応付け手段８３が、指定されたシナリオデータをデータ記憶装置２ｄから読み込む（Ｓ２１）。そして、シナリオデータ対応付け手段８３は、シナリオデータを解釈し、シナリオデータに従った画像の作成を開始する（Ｓ２２）。
【０１２６】
画像の作成を開始と同時に、画像処理装置２は、ディスプレイ３にタッチレスボタンのボタン画像を表示する。閲覧者はビデオカメラ４により撮影され、常に撮影映像が取得されており、閲覧者がボタン画像に触れようとした際にも、その映像は撮影されることになる。
【０１２７】
画像の作成を開始したら、シナリオデータ対応付け手段８３は、状態遷移管理手段２５により生成された顔オブジェクトデータを取得する（Ｓ２３）。顔オブジェクトデータは、オブジェクトＩＤ、顔検出枠データ（位置、矩形サイズ）、閲覧時間で構成される。
【０１２８】
続いて、シナリオデータ対応付け手段８３は、状態遷移管理手段２５から取得した顔オブジェクトデータをシナリオデータに対応付ける処理を行う（Ｓ２４）。具体的には、顔オブジェクトデータに含まれる顔検出枠データのオブジェクトＩＤとターゲットＩＤを対応付ける。状態遷移管理手段２５から複数の顔検出枠データを取得した場合は、候補Ｆａｃｅへ状態遷移したときの日時が最も早いものを“０”に設定し、以降、候補Ｆａｃｅへ状態遷移したときの日時が早い順に“１””２” ”３”と数を１ずつ増加させながら設定していく。図１５の例では、シナリオデータには、ターゲットＩＤ“０”の１つだけ設定されているので、シナリオデータ対応付け手段８３は、ターゲットＩＤ“０”が対応付けられたオブジェクトＩＤで特定される顔検出枠データをターゲットとすることになる。
【０１２９】
次に、合成画像作成手段８４が、フレーム単位で表示用の合成画像を作成する処理を行う（Ｓ２５）。具体的には、まず、開始時点を時刻“０．０”と設定し、この時刻“０．０”で、シナリオデータの<Animation Commands>を参照する。図１５に示すように、<Animation Commands>においては、コマンドＩＤが“０”と“１”の２つのコマンドが存在し、いずれも、開始キー“０．０”から終了キー“１．０”までは、キータイプ“own”、コマンドタイプ“LayerMontage(レイヤ合成)”、ターゲットＩＤ“０”となっており、コンテンツＩＤのみが“０” と“１”で異なっている。上述のように、コマンドＩＤは、セレクタＩＤにより決定されるが、図１５の１８行目に示すように、初期セレクタＩＤ（InitialSerectorID）は“０”に設定されているため、最初は、合成画像作成手段８４は、ターゲットＩＤ“０”の顔検出枠データに、コンテンツＩＤ“０”のコンテンツをレイヤ合成することにより、合成画像を作成することになる。
【０１３０】
コンテンツＩＤ“０”のコンテンツ（合成用素材）は、シナリオデータの<Simulation Contents>を参照することにより、コンテンツのパスが特定できるので、そのパスで特定されるデータ記憶装置２ｄ内の記憶位置からコンテンツを取得する。上述のように、コンテンツには矩形情報が設定されているので、合成画像作成手段８４は、この矩形情報と顔検出枠データの矩形サイズが一致するように矩形情報とコンテンツのサイズを変更し、変更したコンテンツを、変更後の矩形情報と顔検出枠データの位置が一致する位置にレイヤ合成を行う。具体的には、図１２（ｂ）に示すような顔画像に設定された顔検出枠データの矩形に合わせて、コンテンツに設定された矩形の大きさを変更し、コンテンツに設定された矩形の変更割合に合わせてコンテンツをリサイズし、２つの矩形が一致するように合成処理を行う。この結果、例えば、図１２（ａ）のようにコンテンツがカツラである場合、人の顔に合わせてカツラを被せたような状態の合成画像（図１２（ｃ））が得られることになる。合成画像作成手段８４は、得られた合成画像を、ディスプレイ３に表示させる。この結果、ディスプレイ３には、撮影映像のフレームに加工が施された合成画像が表示されることになる。
【０１３１】
１つのフレームについて合成画像の作成を終えたら、シナリオデータ対応付け手段８３は、シナリオ中であるかどうかを判断する（Ｓ２６）。具体的には、シナリオデータに従った画像作成開始からの経過時間でシナリオデータ内の<Target ID>タグ内の“CycleInterval”を参照し、経過時間がシナリオ時間未満である場合は、シナリオ中であると判断し、経過時間がシナリオ時間以上である場合は、シナリオ終了であると判断する。シナリオ中であると判断した場合には、シナリオデータ対応付け手段８３は、Ｓ２３に戻って、顔オブジェクトデータを取得する。
【０１３２】
そして、Ｓ２４において、シナリオデータ対応付け手段８３は、状態遷移管理手段２５から取得した次の顔オブジェクトデータをシナリオデータに対応付ける処理を行う。このときも1回目のループと同様、候補Ｆａｃｅへ状態遷移したときの日時が最も早いものを“０”に設定し、以降、候補Ｆａｃｅへ状態遷移したときの日時が早い順に“１””２” ”３”と数を１ずつ増加させながら設定していく。そして、シナリオデータに従って、シナリオデータ対応付け手段８３は、ターゲットＩＤ“０”が対応付けられたオブジェクトＩＤで特定される顔検出枠データをターゲットとする。
【０１３３】
次に、Ｓ２５において、合成画像作成手段８４が、フレーム単位で合成画像を作成する処理を行う。具体的には、経過時間を取得し、取得した経過時間で、シナリオデータの<Animation Commands>を参照する。このとき、セレクタＩＤが“０”であれば、コンテンツＩＤ“０”のコンテンツを、セレクタＩＤが“１”であれば、コンテンツＩＤ“１” のコンテンツを、ターゲットＩＤ“０”の顔検出枠データにレイヤ合成することにより合成画像を作成する。このようにして、Ｓ２６においてシナリオ終了であると判断されるまでは、経過時間に従い、シナリオデータを実行する処理を繰り返し行う。
【０１３４】
Ｓ２６において、シナリオ終了であると判断した場合には、シナリオデータ対応付け手段８３は、繰り返して処理を行うかどうかを判断する（Ｓ２７）。具体的には、シナリオデータ内の<IsAutoLoop>タグを参照し、“true”が設定されている場合は、繰り返して処理を行うと判断する。繰り返して処理を行うと判断した場合には、シナリオデータ対応付け手段８３は、経過時間を“０”にリセットし、経過時間の計測を再び開始するとともに、Ｓ２２に戻って、シナリオデータに従った画像の作成を開始する。このように、映像の各フレームから得られた合成画像を順次ディスプレイに表示することにより、加工映像として表示されることになる。
【０１３５】
一方、Ｓ２２〜Ｓ２５の処理と並行して、指示判定手段８５は、タッチボタンが指示されたかどうかを常に判断する（Ｓ２８）。具体的には、撮影映像のフレームに対して画像処理を行うことにより、判断を行う。図１７は、指示判定手段８５の画像処理により得られる画像を示す図である。図１７においては、白い部分が画素値“１”の画素、黒い部分が画素値“０”の画素を示している。まず、指示判定手段８５は、図４のＳ１において、背景除去手段２０により処理された背景除去画像を取得する。そして、多値である背景除去画像の各画素値を所定のしきい値で二値化する。図１７（ａ）に、二値化された背景除去画像を示す。続いて、指示判定手段８５は、入力フレーム画像に対してＨＳＶ変換を行い、所定のしきい値で二値化し、二値化されたＨＳＶ画像を得る。図１７（ｂ）に、二値化されたＨＳＶ画像を示す。このＨＳＶ変換により肌色等の色味部分を抽出する。そして、二値化された背景除去画像と二値化されたＨＳＶ画像のＡｎｄ演算処理を行う。そして、人物を抽出した人物画像を得る。図１７（ｃ）に、人物画像を示す。
【０１３６】
次に、指示判定手段８５は、図４のＳ２において、顔検出手段２１により取得された顔検出枠を取得する。指示判定手段８５は、取得した顔検出枠をマスクした二値の顔マスク画像を生成する。図１７（ｄ）に、顔マスク画像を示す。そして、指示判定手段８５は、顔マスク画像と人物画像のＡｎｄ演算処理を行う。この結果、人物から顔部分を除外した特徴画像が得られる。図１７（ｅ）に、特徴画像を示す。
【０１３７】
次に、指示判定手段８５は、シナリオデータ中の<AnimationTriggers >と、</AnimationTriggers >の２つのタグで囲まれた範囲におけるタッチレスボタンのボタン位置（PositionX, PositionY）、ボタンサイズ（ButtonWidth,ButtonHeight）の情報を取得する。そして、このボタン位置とボタンサイズから、ボタンの領域、およびボタンに含まれる総画素数を求める。さらに、特徴画像のボタンの領域における画素値“１”（図面では白で表現）の画素数とボタンに含まれる総画素数の比率Ｒｍａｓｋを算出する。図１７（ｆ）に、特徴画像とボタン領域の関係を示す。図１７（ｆ）において、白線で囲まれた矩形領域がボタン領域である。なお、図１５に示すように、タッチレスボタンが複数設定されている場合、指示判定手段８５は、各ボタンについて、比率Ｒｍａｓｋを算出する処理を行う。
【０１３８】
指示判定手段８５は、各フレームに対して、上述のような処理を実行し、各タッチレスボタンの比率Ｒｍａｓｋを算出する。そして、シナリオデータ中に設定されているマスクしきい値Ｔｈｍａｓｋと各タッチレスボタンの比率Ｒｍａｓｋの比較を行う。そして、比較の結果に基づいて、以下の１）〜３）のいずれの状態であるかの判断を行う。
【０１３９】
（タッチレスボタン上の特徴部分の比率および継続時間による状態の判断）
１）Ｒｍａｓｋ＜Ｔｈｍａｓｋの場合    通常状態
２）Ｒｍａｓｋ＞ＴｈｍａｓｋかつＴｉｍｅ＜Ｔｈｔｉｍｅの場合    手が翳された状態
３）Ｒｍａｓｋ＞ＴｈｍａｓｋかつＴｉｍｅ＞Ｔｈｔｉｍｅの場合    指示された状態
【０１４０】
上記２）、３）において、Ｔｉｍｅは、フレーム数にフレームレートの逆数を乗じて算出した時間であり、Ｔｈｔｉｍｅはシナリオデータ中に設定されている時間のしきい値である。上記１）の場合、タッチレスボタン上における手の面積が小さいため、タッチレスボタンに手が翳された状態でなく、通常状態であると判断する。上記２）の場合、タッチレスボタン上における手の面積が大きいため、手が翳された状態ではあるが、その時間が短いため、タッチレスボタンに対する指示とまでは判断できない。上記３）の場合、タッチレスボタン上における手の面積が大きく、その時間も長いため、タッチレスボタンに対する指示と判断する。なお、図１５に示したシナリオデータ中では、２つのタッチレスボタンのいずれにおいても、Ｔｈｔｉｍｅは１．０秒、Ｔｈｍａｓｋは０．１（１０％）が設定されている。
【０１４１】
すなわち、Ｓ２８において、指示判定手段８５は、各タッチレスボタンに対する手の面積比率がしきい値以上であるかどうかを判断する処理を、各フレームについて行い、手の面積比率がしきい値以上であるタッチレスボタンが所定フレーム数以上連続した場合に、タッチレスボタンが指示されたと判断する。
【０１４２】
Ｓ２８において、指示判定手段８５が、タッチレスボタンが指示されたと判断した場合、コマンド切替手段８６は、コマンド切替を行う（Ｓ２９）。具体的には、セレクタＩＤ（Selector ID）を変更する。図１５の例では、“０”である場合は“１”に、“１”である場合は“０”に変更されることになる。セレクタＩＤの変更により、コマンドＩＤも変更され、コマンドが切り替えられることになる。
【０１４３】
図１６は、図１５のシナリオデータに従って得られた合成画像の表示状態を示す図である。図１６（ａ）（ｂ）において、角の丸い矩形は、タッチレスボタンを示している。図１６の例では、“金髪”、“黒髪”と記されたタッチレスボタンが表示されている。閲覧者を認識すると、まず、図１５のシナリオデータ１８行目に示すように、初期のセレクタＩＤを定めるInitialSelectorIDが“０”であるので、セレクタＩＤは“０”に設定され、１３行目によりコマンドＩＤが“０”に設定される。そして、１３行目、１４行目の<Command ID>タグに従って、シナリオ開始時（StartKey="0.0"）から経過時間１０秒（EndKey="1.0"）までのフレームについては、コンテンツＩＤ“０”のコンテンツがレイヤ合成される。この際、ContentsID="0"で<SimulationContents>を参照することにより、コンテンツのコンテンツ記憶手段内における所在“afro.jpg”を特定し、黒いカツラのコンテンツを取得する。そして、図１６（ａ）に示すように、黒いカツラが閲覧者の画像に合成される。タッチレスボタンの指示によるコマンドの切替がない場合、シナリオ開始時（StartKey="0.0"）から経過時間１０秒（EndKey="1.0"）までのフレームについては、全て黒いカツラが合成された合成画像が表示されることになる。
【０１４４】
閲覧者が“金髪”のタッチレスボタンに手を翳し、<AnimationTriggers>の条件に従って、指示判定手段８５が、タッチレスボタンが指示されたと判定すると、指示判定手段８５は、タッチレスボタンＩＤ(TouchlessButton ID)を“１”に設定し、コマンド切替手段８６が、タッチレスボタンＩＤに１対１で対応するトリガＩＤ を “１” に設定し、さらに、セレクタＩＤを “１”、コマンドＩＤを“１”に切り替える。そして、１３行目、１４行目の<Command ID>タグに従って、シナリオ開始時（StartKey="0.0"）から経過時間１０秒（EndKey="1.0"）までのフレームについては、コンテンツＩＤ“１”のコンテンツがレイヤ合成される。この際、ContentsID="1"で<SimulationContents>を参照することにより、コンテンツのコンテンツ記憶手段内における所在“blond.jpg”を特定し、金髪のカツラのコンテンツを取得する。そして、図１６（ｂ）に示すように、黒いカツラに代えて金髪のカツラが閲覧者の画像に合成される。この後、タッチレスボタンの指示によるコマンドの切替がない場合、シナリオ開始時（StartKey="0.0"）から経過時間１０秒（EndKey="1.0"）までのフレームについては、全て金髪のカツラが合成された合成画像が表示されることになる。
【０１４５】
≪３．４．シーン合成処理（１）≫
次に、本発明の特徴であるシーン合成機能について説明する。シーン合成機能としては、人物と人物以外の輪郭を明確にして合成を行う実施形態と、人物と人物以外の輪郭を特に明確にすることなく合成を行う実施形態がある。まず、第１の実施形態として、人物と人物以外の輪郭を明確にして合成を行う実施形態について説明する。シーン合成を行うためには、シーン合成機能に対応するシナリオデータが必要となる。図２０は、シーン合成機能に対応（ターゲット２人）の場合のＸＭＬ形式のシナリオデータの一例を示す図である。ここでは、図２０のシナリオデータを参照しながら、合成ターゲット定義手段８０、合成コンテンツ定義手段８１、アニメーションシナリオ定義手段８２の機能について説明する。合成ターゲット定義手段８０は、ターゲットＩＤ、タイプ、絶対座標、移り変わり設定の４つの属性を設定することによりターゲットを定義する。図２０の例では、１行目の<Simulation Targets>と、７行目の</Simulation Targets>の２つのタグで囲まれた範囲に対応する。ターゲットについては、Human、Place、Sceneの３つのタイプが設定可能である。ＩＤタイプについては、ターゲットに対応した人、場所、場面の３種を設定可能である。図２０の例では、HumanIDで始まる２つのHumanタグを用いて２人について設定し、Place IDで始まるPlaceタグを用いて場所について設定し、SceneIDで始まるSceneタグを用いて場面について設定している。移り変わり設定は、対応付けられたターゲットが消失した場合、新たなターゲットに対応付けるかどうかを設定するものである。図２０の例では、２〜４行目のタグで、ターゲットＩＤ（HumanID, Place ID, SceneID）、タイプ、移り変わり設定の３属性を設定しており、移り変わり設定（IsTransfer）はいずれも“false(設定しない)”となっている。
【０１４６】
合成コンテンツ定義手段８１は、コンテンツＩＤ、コンテンツのパス、重なり設定の３つの属性を設定することによりコンテンツを定義する。図２０の例では、８行目の<Simulation Contents>と、２４行目の</Simulation Contents >の２つのタグで囲まれた範囲に対応する。図２０の例では、コンテンツＩＤ（ContentsID）が“０”、“１”、“２”の３つのコンテンツについて定義されている。コンテンツには、人物または背景に重ねる重畳画像と、背景画像の２種類がある。重畳画像、背景画像については、図２０の９、１０行目に示すように、各コンテンツについて１行単位で、コンテンツのパス（ContentsPath）、重なり設定（OverlapOrder）が設定される。
【０１４７】
アニメーションシナリオ定義手段８２は、コマンドＩＤ、コマンドタイプ、セレクタＩＤ、開始キー、終了キー、キータイプ、ターゲットＩＤ、コンテンツＩＤの８つの属性を設定することによりアニメーションシナリオを定義する。図２０の例では、２５行目の<Animation Commands>と、２８行目の</Animation Commands>の２つのタグで囲まれた範囲に対応する。図２０の例では、コマンドＩＤ（CommandID）が“０”のコマンドについて定義されている。図２０に示すように、１つのコマンドについて２行単位で、コマンドタイプ、セレクタＩＤ（SelectorID）、開始キー、終了キー、キータイプ、ターゲットＩＤ、コンテンツＩＤが設定される。コマンドタイプとは、どのようなフレームを基にどのようなタイプの効果を生じさせるかを示すものであり、レイヤ合成、αブレンド合成、音声再生開始、シーン合成が用意されている。このうち、レイヤ合成、αブレンド合成、シーン合成は、画像合成のタイプを示すものであり、レイヤ合成は、コンテンツを上書き合成するものであり、αブレンド合成は、設定されたα比率に応じてコンテンツとフレームを透過させて合成するものであり、シーン合成は、人体部分を切り抜き、背景の上に合成するものである。図２０の例では、コマンドタイプ（CommandType）として、シーン合成（SceneMontage）が設定されている。
【０１４８】
セレクタＩＤは、実行するコマンドを特定するための条件であり、そのセレクタＩＤに対応するコマンドＩＤのコマンドが実行される。セレクタにより特定された１以上のコマンドの集合が１つのシナリオを構成することになる。したがって、セレクタとシナリオは１対１で対応している。図２０の例では、１つのシナリオが１つのコマンドで構成されており、セレクタＩＤ＝０の場合に、コマンドＩＤ＝０のコマンドが実行されることを示している。開始キー、終了キーは、図１０の例と同様、各コマンドの開始時点、終了時点を設定するものである。本実施形態では、シナリオデータの時間を、シナリオ開始時を“０．０”、シナリオ終了時を“１．０”として管理している。図２０の例では、図１５の例と同様、全てのコマンドの開始キー（StartKey）は“０．０”、最後に終了するコマンドの終了キー（EndKey）は“１．０”となる。キータイプとは、開始キー、終了キーの基準とする対象を設定するものであり、own、base、globalの３つが用意されている。ownは各ターゲットＩＤに対応する顔オブジェクトの閲覧時間を基準とし、baseはターゲットＩＤ＝０に対応する顔オブジェクトの閲覧時間を基準とし、globalは撮影映像の最初のフレームを取得した時間を基準とする。図２０の例では、キータイプ（KeyType）として、ownが設定されているので、1つ目の顔オブジェクトがフレームに登場した時点（顔オブジェクトが“閲覧開始”と判断された時点）を“０．０”として、開始キー、終了キーが認識されることになる。
【０１４９】
図２０の例では、図１５と同様、<CycleInterval>タグ、<IsAutoLoop>タグが、２行目〜４行目のHumanID、PlaceIDで表現された各ターゲットＩＤタグ内に含まれている。上述のように、<CycleInterval>タグ、<IsAutoLoop>タグがターゲットＩＤタグ内に含まれている場合でも、図１０の例と同様、シナリオデータの<CycleInterval>タグは、シナリオの開始から終了までの時間を秒単位で設定するものであり、シナリオデータの<IsAutoLoop>タグは、ループ処理（繰り返し処理）を行うかどうかを設定するものである。画像表示システム１は、シナリオデータに複数通りの記述形式を許容しており、図１０、図１５に示したように<CycleInterval>タグ、<IsAutoLoop>タグの記述位置が異なる場合であっても、シナリオデータ対応付け手段８３は、<CycleInterval>タグ、<IsAutoLoop>タグを認識し、記述内容に従った処理を実行する。図２０の例では、ターゲットＩＤタグ内でCycleInterval＝“１０”に設定されているので、シナリオの開始から終了まで１０秒であることを示している。開始キー、終了キーの値を１０倍した実時間でシナリオは管理されることになる。図２０の例では、ターゲットＩＤタグ内でIsAutoLoop＝“true”に設定されているので、ループ処理を行うことを示している。このようにして、合成ターゲット定義手段８０、合成コンテンツ定義手段８１、アニメーションシナリオ定義手段８２により作成されたシナリオデータは、シナリオデータ記憶手段としてのデータ記憶装置２ｄに格納される。
【０１５０】
図９のフロー図を用いて、図２０に示したシナリオデータを指定した場合について説明する。画像処理装置２を起動し、図２０に示したシナリオデータを使用するシナリオデータとして指定すると、まず、シナリオデータ対応付け手段８３が、指定されたシナリオデータをデータ記憶装置２ｄから読み込む（Ｓ２１）。そして、シナリオデータ対応付け手段８３は、シナリオデータを解釈し、シナリオデータに従った画像の作成を開始する（Ｓ２２）。
【０１５１】
次に、シナリオデータ対応付け手段８３は、状態遷移管理手段２５により生成された顔オブジェクトデータを取得する（Ｓ２３）。顔オブジェクトデータは、オブジェクトＩＤ、顔検出枠データ（位置、矩形サイズ）、閲覧時間で構成される。
【０１５２】
続いて、シナリオデータ対応付け手段８３は、状態遷移管理手段２５から取得した顔オブジェクトデータをシナリオデータに対応付ける処理を行う（Ｓ２４）。具体的には、顔オブジェクトデータに含まれる顔検出枠データのオブジェクトＩＤとターゲットＩＤを対応付ける。状態遷移管理手段２５から複数の顔検出枠データを取得した場合は、候補Ｆａｃｅへ状態遷移したときの日時が最も早いものを“０”に設定し、以降、候補Ｆａｃｅへ状態遷移したときの日時が早い順に“１””２” ”３”と数を１ずつ増加させながら設定していく。図２０の例では、シナリオデータには、ターゲットＩＤとして、HumanID="0"、 HumanID="1" 、PlaceID="2"、 SceneID="3"の４つが設定されているので、シナリオデータ対応付け手段８３は、ターゲットＩＤ“０”が対応付けられたオブジェクトＩＤで特定されるデータをターゲットとすることになる。
【０１５３】
次に、合成画像作成手段８４が、フレーム単位で表示用の合成画像を作成する処理を行う（Ｓ２５）。具体的には、まず、開始時点を時刻“０．０”と設定し、この時刻“０．０”で、シナリオデータの<Animation Commands>を参照する。図２０に示すように、<Animation Commands>においては、コマンドＩＤが“０”のコマンドのみが存在し、開始キー“０．０”から終了キー“１．０”までは、キータイプ“own”、コマンドタイプ“SceneMontage(シーン合成)”、ターゲットＩＤ“３”、コンテンツＩＤ“２”となっている。上述のように、コマンドＩＤは、セレクタＩＤにより決定されるが、図２０では、コマンドＩＤは1つのみであるため、合成画像作成手段８４は、ターゲットＩＤ“３”で特定される対象に、コンテンツＩＤ“２”のコンテンツをシーン合成することにより、合成画像を作成することになる。
【０１５４】
コンテンツＩＤ“２”のコンテンツ（合成用素材画像）は、シナリオデータの<Simulation Contents>を参照することにより、コンテンツのパスが特定できる。具体的には、コンテンツＩＤ“２”は、１１行目の“SceneContentsID=2”を示しており、SceneContentsIDタグ内の“Human ContentsID=0”と“Place ContentsID=1”の２つのコンテンツからなることがわかる。さらに、“Human ContentsID=0”は、９行目の“ContentsID=0”を示し、“Place ContentsID=1”は、１０行目の“ContentsID=1”を示しているので、そのパスで特定されるデータ記憶装置２ｄ内の記憶位置から各コンテンツを取得する。そして、“Place ContentsID=1”で特定されるコンテンツ（背景画像）のうち、輪郭により切り抜かれた人物部分をマスクする。具体的には、１２行目から２２行目までのSegmentationArea、SourceArea、SinkAreaに記述された内容に従って得られた輪郭線の内部をマスクしたマスク画像を生成し、“Place ContentsID=1”で特定される背景画像と合成する。一方、“Human ContentsID=0”で特定されるコンテンツ（重畳画像）は、既にマスク加工が行われているので、そのまま重畳画像として用いる。
【０１５５】
続いて、合成画像作成手段８４は、１２行目から２２行目までのSegmentationArea、SourceArea、SinkAreaに記述された内容に従って得られた輪郭線の内部を撮影画像から切り抜いて、マスク加工された背景画像と合成する。さらに、撮影画像の顔検出枠データに対応する部分を用いて、重畳画像と合成する。この重畳画像にも、上述のコンテンツのように、矩形情報が設定されているので、合成画像作成手段８４は、この矩形情報と顔検出枠データの矩形サイズが一致するように矩形情報と重畳画像のサイズを変更し、変更した重畳画像を、変更後の矩形情報と顔検出枠データの位置が一致する位置にレイヤ合成を行う。具体的には、図１２（ｂ）に示すような顔画像に設定された顔検出枠データの矩形に合わせて、コンテンツに設定された矩形の大きさを変更し、コンテンツに設定された矩形の変更割合に合わせてコンテンツをリサイズし、２つの矩形が一致するように合成処理を行う。この結果、例えば、図１２（ａ）のようにコンテンツがカツラである場合、人の顔に合わせてカツラを被せたような状態の合成画像（図１２（ｃ））が得られることになる。背景画像と重畳画像が重なる部分については、９行目と１０行目のOverlapOrderの値により、重畳画像が優先する。合成画像作成手段８４は、得られた合成画像を、ディスプレイ３に表示させる。この結果、ディスプレイ３には、撮影映像のフレームに加工が施された合成画像が表示されることになる。
【０１５６】
１つのフレームについて合成画像の作成を終えたら、シナリオデータ対応付け手段８３は、シナリオ中であるかどうかを判断する（Ｓ２６）。具体的には、シナリオデータに従った画像作成開始からの経過時間でシナリオデータ内のターゲットＩＤタグ（HumanID 、PlaceID）内の“CycleInterval”を参照し、経過時間がシナリオ時間未満である場合は、シナリオ中であると判断し、経過時間がシナリオ時間以上である場合は、シナリオ終了であると判断する。シナリオ中であると判断した場合には、シナリオデータ対応付け手段８３は、Ｓ２３に戻って、顔オブジェクトデータを取得する。
【０１５７】
そして、Ｓ２４において、シナリオデータ対応付け手段８３は、状態遷移管理手段２５から取得した次の顔オブジェクトデータをシナリオデータに対応付ける処理を行う。このときも1回目のループと同様、候補Ｆａｃｅへ状態遷移したときの日時が最も早いものを“０”に設定し、以降、候補Ｆａｃｅへ状態遷移したときの日時が早い順に“１””２” ”３”と数を１ずつ増加させながら設定していく。ただし、図２０ではPlaceID="2"に設定されているため、HumanIDは“0”か“1”しか設定することができない。すなわち、図２０のシナリオデータでは、最大２人までしか対応できない。もちろん、シナリオデータを書き換えれば、より多くの人数に対応することも可能である。そして、シナリオデータに従って、シナリオデータ対応付け手段８３は、ターゲットＩＤ“０”が対応付けられたオブジェクトＩＤで特定される顔検出枠データをターゲットとする。
【０１５８】
次に、Ｓ２５において、合成画像作成手段８４が、フレーム単位で合成画像を作成する処理を行う。具体的には、経過時間を取得し、取得した経過時間で、シナリオデータの<Animation Commands>を参照する。そして、<Animation Commands>に従い、TargetID=“3”で特定されるターゲットに、ContentsID=“2”で特定されるコンテンツをシーン合成することにより合成画像を作成する。このようにして、Ｓ２６においてシナリオ終了であると判断されるまでは、経過時間に従い、シナリオデータを実行する処理を繰り返し行う。
【０１５９】
Ｓ２６において、シナリオ終了であると判断した場合には、シナリオデータ対応付け手段８３は、繰り返して処理を行うかどうかを判断する（Ｓ２７）。具体的には、シナリオデータ内の<IsAutoLoop>タグを参照し、“true”が設定されている場合は、繰り返して処理を行うと判断する。繰り返して処理を行うと判断した場合には、シナリオデータ対応付け手段８３は、経過時間を“０”にリセットし、経過時間の計測を再び開始するとともに、Ｓ２２に戻って、シナリオデータに従った画像の作成を開始する。このように、映像の各フレームから得られた合成画像を順次ディスプレイに表示することにより、加工映像として表示されることになる。
【０１６０】
次に、図２０のシナリオデータの１２行目〜２２行目における撮影画像の切り抜き処理の詳細について説明する。１２行目〜２２行目は、１２、１３行目のSegmentationAreaタグ、１４〜１８行目のSourceAreaタグ、１９〜２２行目のSinkAreaタグで構成されている。SegmentationAreaタグ、SourceAreaタグ、SinkAreaタグでは、それぞれセグメント領域、Sourceデータ列のイニシャル領域、Sinkデータ列のイニシャル領域が設定されている。
【０１６１】
まず、セグメント領域について説明する。セグメント領域とは、イニシャル領域設定に必要な領域であり、顔検出枠を含む範囲のものである。図２０の１２、１３行目に示すように、セグメント領域は、顔検出枠上部倍率（TopRate）、顔検出枠下部倍率（BottomRate）、アスペクト比（AspectWidth、AspectHeight）により設定される。
【０１６２】
図２１は、撮影画像における顔検出枠とセグメント領域の関係を示す図である。図２１における２つの矩形のうち、内側の矩形が顔検出枠、外側の矩形がセグメント領域の枠を示している。図２１に示したセグメント領域は、図２０のシナリオデータの内容（TopRate="1.2、BottomRate="2.0、 AspectWidth="5"、 AspectHeight="3"）に従って設定されたものである。顔検出枠上部倍率とは、顔検出枠中央から顔検出枠上辺までの長さと、顔検出枠中央からセグメント領域上辺までの長さの比であり、顔検出枠下部倍率とは、顔検出枠中央から顔検出枠下辺までの長さと、顔検出枠中央からセグメント領域下辺までの長さの比である。顔検出枠上部倍率、顔検出枠下部倍率とアスペクト比に従って顔検出枠全体を含む範囲にセグメント領域が設定される。図２０、図２１に示したように、セグメント領域は、顔検出枠の位置・大きさを基準にして数値指定されることにより設定され、数値は適宜変更可能であるが、顔検出枠と左右方向の中心が一致し、上下方向については顔検出枠の中心がセグメント領域の中心より上方に位置するように設定されることが望ましい。そのような数値は、合成コンテンツ定義手段８１が自動で設定するようにしても良い。
【０１６３】
図２２は、イニシャル領域の形状を示す図である。本実施形態では、イニシャル領域は、円、楕円、長方形（正方形含む）の３つの形状で設定可能である。各イニシャル領域は、セグメント領域を０〜１とした場合の相対位置、相対幅、相対高さで表現される。具体的には、円の場合は、中心位置（CenterX、CenterY）と半径（Radius）、楕円の場合は、中心位置（CenterX、CenterY）とX軸半径（XRadius）とY軸半径（YRadius）、長方形の場合は、左上頂点位置（X、Y）と幅（Width）と高さ（Height）で設定される。本実施形態の３つの形状以外で設定することも、もちろん可能である。
【０１６４】
図２３は、図２０のシナリオデータの例に従って設定されたイニシャル領域を示す図である。図２３（ａ）は、撮影フレームにおけるイニシャル領域を示す図であり、図２３（ｂ）は、図２３（ａ）のイニシャル領域を設定するためのシナリオデータにおけるSourceAreaタグとSinkAreaタグ部分のスクリプトである。
【０１６５】
イニシャル領域を用いて後述する処理により人物の輪郭を切り抜くためには、Sourceのイニシャル領域は、人物が存在する位置に、Sinkのイニシャル領域は、人物が存在しない位置に設定される必要がある。図２０のシナリオデータでは、イニシャル領域が数値指定されているが、この数値は、顔検出枠とセグメント領域の関係に基づいて計算され、得られた数値である。また、SourceAreaタグ、SinkAreaタグでは、SamplingNum = "50"として、イニシャル領域においてランダムに選ばれる画素数が指定されている。
【０１６６】
イニシャル領域が設定されたら、合成画像作成手段８４によりセグメント領域における画像のセグメント化が行われる。このセグメント化は、対象と対象以外を分ける処理であり、Sourceのイニシャル領域が対象、Sinkのイニシャル領域が対象以外の部分に含まれるように行われる。セグメント化の手法としては、公知の様々な技術を用いることが可能であるが、本実施形態では、公知のグラフカットセグメンテーションの手法を用いている。したがって、合成画像作成手段８４は、Sourceのイニシャル領域、Sinkのイニシャル領域それぞれにおいてランダムに５０画素ずつ選択し、各画素の値を用いてグラフカットセグメンテーションの手法を実行することにより、セグメント領域における画像を、対象と対象以外にセグメント化する。Sourceのイニシャル領域、Sinkのイニシャル領域それぞれにおいてランダムに選択する画素数は、SourceAreaタグ内の“SamplingNum”により任意に設定可能である。セグメント化により得られたセグメント結果画像を図２４（ｂ）に示す。図２４（ｂ）において、白い部分が対象（人物）を示す部分であり、両側の黒い部分が対象（人物）以外を示す部分である。セグメント結果画像は２値画像として作成される。
【０１６７】
セグメント結果画像が得られたら、合成画像作成手段８４は、コンテンツマスク画像とセグメント結果画像を合成して合成マスク画像を作成する。コンテンツマスク画像は、Human ContentsIDで指定されたコンテンツ画像に対応するマスク画像であり、そのコンテンツ画像で抜き出す部分以外がマスクされた画像である。このコンテンツマスク画像は、各コンテンツ画像について予め作成された２値画像であり、データ記憶装置２ｄに格納されている。図２４に示すように、図２４（ｃ）の合成マスク画像は、図２４（ａ）に示すようなコンテンツマスク画像と図２４（ｂ）に示すようなセグメント結果画像のマスクされない部分をＯＲ演算することにより、両者のマスクされない部分を足し合わせた２値画像として得られる。したがって、コンテンツ画像がヘルメットと服である場合、コンテンツマスク画像は、ヘルメット、服、人物の部分がマスクされない画像となる。
【０１６８】
次に、合成画像作成手段８４は、合成マスク画像を反転して背景マスク画像を作成する。具体的には、二値画像である合成マスク画像の各画素の値を他方の値に変更する。この結果、マスクする画素とマスクされない画素が逆になった二値画像である背景マスク画像が得られる。図２５に合成マスク画像と背景マスク画像の一例を示す。図２５（ａ）は、合成マスク画像、図２５（ｂ）は、背景マスク画像である。背景マスク画像では、ヘルメット、服、人物の部分がマスクされる画像となる。
【０１６９】
続いて、合成画像作成手段８４は、背景マスク画像を用いて背景画像をマスクし、重畳画像をコンテンツマスク画像でマスクし、得られた画像を撮影画像に重ねることにより、合成画像を作成する。この結果、図２６（ｆ）に示すような合成画像が得られる。図２６に合成画像作成の様子を示す。図２６（ａ）は、撮影画像、図２６（ｂ）は、背景画像、図２６（ｃ）は、背景マスク画像、図２６（ｄ）は、重畳画像、図２６（ｅ）は、重畳マスク画像、図２６（ｆ）は、合成画像である。図２６（ｆ）においては、図面の都合上、背景の幅を狭めた状態で示しているが、現実には、ディスプレイ３の表示範囲に合わせた縦横比で合成が行われる。このようにして、ディスプレイ３を閲覧している人物に服等のコンテンツと背景を合成してディスプレイ３に表示することが可能となる。
【０１７０】
≪３．５．シーン合成処理（２）≫
上記のシーン合成処理では、セグメント領域をセグメント化することにより、人物と人物以外の境界を明確にして、背景画像と合成するようにした。第２の実施形態では、セグメント領域を用いず、人物と人物以外の境界を明確にすることなく、人物と背景画像を合成する処理を行う。第２の実施形態においても、図１〜３に示した装置構成により、図４〜６、９に示したフロー図に従った処理を実行する点は第１の実施形態と同じである。また、図示は省略するが、映像上の１人以上の人物とコンテンツとの合成のタイミングを定めたシナリオデータがシナリオデータ記憶手段としてのデータ記憶装置２ｄに記憶されている。
【０１７１】
第２の実施形態について、図９のフロー図を用いて説明する。画像処理装置２を起動し、シナリオデータを指定すると、シナリオデータ対応付け手段８３が、指定されたシナリオデータをデータ記憶装置２ｄから読み込む（Ｓ２１）。そして、シナリオデータ対応付け手段８３は、シナリオデータを解釈し、シナリオデータに従った画像の作成を開始する（Ｓ２２）。
【０１７２】
次に、シナリオデータ対応付け手段８３は、状態遷移管理手段２５により生成された顔オブジェクトデータを取得する（Ｓ２３）。顔オブジェクトデータは、オブジェクトＩＤ、顔検出枠データ（位置、矩形サイズ）、閲覧時間で構成される。
【０１７３】
続いて、シナリオデータ対応付け手段８３は、状態遷移管理手段２５から取得した顔オブジェクトデータをシナリオデータに対応付ける処理を行う（Ｓ２４）。具体的には、顔オブジェクトデータに含まれる顔検出枠データのオブジェクトＩＤとターゲットＩＤを対応付ける。状態遷移管理手段２５から複数の顔検出枠データを取得した場合は、候補Ｆａｃｅへ状態遷移したときの日時が最も早いものを“０”に設定し、以降、候補Ｆａｃｅへ状態遷移したときの日時が早い順に“１””２” ”３”と数を１ずつ増加させながら設定していく。
【０１７４】
次に、合成画像作成手段８４が、フレーム単位で表示用の合成画像を作成する処理を行う（Ｓ２５）。具体的には、まず、開始時点を時刻“０．０”と設定し、この時刻“０．０”で、シナリオデータの<Animation Commands>を参照し、指定されたコマンドＩＤのコマンドを実行する。
【０１７５】
コマンドＩＤタグで指定されるコンテンツＩＤで、シナリオデータの<Simulation Contents>を参照することにより、コンテンツのパスが特定できる。第２の実施形態においては、第１の実施形態と異なり、必ず重畳画像と背景画像の２つのコンテンツが特定されている必要がある。また、重畳画像としては、人物の顔付近だけ開いていて、その周囲を全て囲うような画像を用意する。例えば、顔出し看板、ウェディングドレスが挙げられる。合成画像作成手段８４は、そのパスで特定されるデータ記憶装置２ｄ内の記憶位置から各コンテンツを取得する。そして、Place ContentsIDで特定されるコンテンツ（背景画像）を、重畳画像のコンテンツマスク画像を反転して得られた背景マスク画像を用いてマスクする。一方、“Human ContentsID”で特定されるコンテンツ（重畳画像）は、既にマスク加工が行われているので、そのまま重畳画像として用いる。
【０１７６】
続いて、合成画像作成手段８４は、撮影画像の顔検出枠データに対応する部分を用いて、重畳画像と合成する。この重畳画像にも、上述のコンテンツのように、矩形情報が設定されているので、合成画像作成手段８４は、この矩形情報と顔検出枠データの矩形サイズが一致するように矩形情報と重畳画像のサイズを変更し、変更した重畳画像を、変更後の矩形情報と顔検出枠データの位置が一致する位置にレイヤ合成を行う。具体的には、図１２（ｂ）に示すような顔画像に設定された顔検出枠データの矩形に合わせて、コンテンツに設定された矩形の大きさを変更し、コンテンツに設定された矩形の変更割合に合わせてコンテンツをリサイズし、２つの矩形が一致するように合成処理を行う。この結果、例えば、図１２（ａ）のようにコンテンツがカツラである場合、人の顔に合わせてカツラを被せたような状態の合成画像（図１２（ｃ））が得られることになる。本実施形態では、重畳画像のコンテンツとして、顔出し看板やウェディングドレスのような人物の顔付近だけ開いていて、その周囲を全て囲うような画像が用意されているので、撮影画像中の人物が顔出し看板の穴に顔を出していたり、ウェディングドレスを着た状態になるような合成が行われることになる。続いて、合成画像作成手段８４は、背景マスク画像を用いてマスクされた背景画像と、撮影画像および重畳画像を合成したものを合成する。背景画像と重畳画像が重なる部分については、８行目と９行目のOverlapOrderの値により、重畳画像が優先する。合成画像作成手段８４は、得られた合成画像を、ディスプレイ３に表示させる。この結果、ディスプレイ３には、撮影映像のフレームに加工が施された合成画像が表示されることになる。
【０１７７】
１つのフレームについて合成画像の作成を終えたら、シナリオデータ対応付け手段８３は、シナリオ中であるかどうかを判断する（Ｓ２６）。具体的には、シナリオデータに従った画像作成開始からの経過時間でシナリオデータ内のターゲットＩＤタグ（HumanID 、PlaceID）内の“CycleInterval”を参照し、経過時間がシナリオ時間未満である場合は、シナリオ中であると判断し、経過時間がシナリオ時間以上である場合は、シナリオ終了であると判断する。シナリオ中であると判断した場合には、シナリオデータ対応付け手段８３は、Ｓ２３に戻って、顔オブジェクトデータを取得する。
【０１７８】
そして、Ｓ２４において、シナリオデータ対応付け手段８３は、状態遷移管理手段２５から取得した次の顔オブジェクトデータをシナリオデータに対応付ける処理を行う。このときも1回目のループと同様、候補Ｆａｃｅへ状態遷移したときの日時が最も早いものを“０”に設定し、以降、候補Ｆａｃｅへ状態遷移したときの日時が早い順に“１””２” ”３”と数を１ずつ増加させながら設定していく。そして、シナリオデータに従って、シナリオデータ対応付け手段８３は、ターゲットＩＤ“０”が対応付けられたオブジェクトＩＤで特定される顔検出枠データをターゲットとする。
【０１７９】
次に、Ｓ２５において、合成画像作成手段８４が、フレーム単位で合成画像を作成する処理を行う。具体的には、経過時間を取得し、取得した経過時間で、シナリオデータの<Animation Commands>を参照する。そして、<Animation Commands>に従い、TargetIDで特定されるターゲットに、ContentsIDで特定されるコンテンツをシーン合成することにより合成画像を作成する。このようにして、Ｓ２６においてシナリオ終了であると判断されるまでは、経過時間に従い、シナリオデータを実行する処理を繰り返し行う。
【０１８０】
Ｓ２６において、シナリオ終了であると判断した場合には、シナリオデータ対応付け手段８３は、繰り返して処理を行うかどうかを判断する（Ｓ２７）。具体的には、シナリオデータ内の<IsAutoLoop>タグを参照し、“true”が設定されている場合は、繰り返して処理を行うと判断する。繰り返して処理を行うと判断した場合には、シナリオデータ対応付け手段８３は、経過時間を“０”にリセットし、経過時間の計測を再び開始するとともに、Ｓ２２に戻って、シナリオデータに従った画像の作成を開始する。このように、映像の各フレームから得られた合成画像を順次ディスプレイに表示することにより、加工映像として表示されることになる。
【０１８１】
＜４．状態遷移管理手段を用いない構成＞
上記実施形態の画像表示システムは、状態遷移管理手段２５を用い、検出された顔画像がノイズであったと判定される場合に、閲覧状態と判断しないようにしたが、状態遷移管理手段２５を用いず、検出された顔画像を全て閲覧状態と判断するようにすることも可能である。次に、状態遷移管理手段２５を用いない構成について説明する。
【０１８２】
図１８は、状態遷移管理手段２５を用いない場合の画像処理装置２´に実装されたコンピュータプログラムで実現される機能ブロック図である。図１８において、図３と同一機能を有するものについては、同一符号を付して詳細な説明を省略する。
【０１８３】
図１８に示す画像処理装置２´は、図３に示したトラッキング手段２３に代えて、トラッキング手段２３´を有している。このトラッキング手段２３´は、図３に示した動画解析手段２４に相当する機能も備えている。
【０１８４】
図１８に示す画像処理装置２´は、フレームを解析するにあたり、図４に示したＳ１〜Ｓ５の処理のうち、Ｓ１、Ｓ３の処理は、画像処理装置２と同様にして行う。また、顔検出処理とトラッキング処理は、連携させて実行する。上述のように、Ｓ５の状態遷移管理処理は行わない。
【０１８５】
図１９は、顔検出処理とトラッキング処理を示すフロー図である。まず、背景除去処理Ｓ１を行った後、Ｎフレームを処理するにあたり、Ｎ−１フレームの顔検出枠の数が０より大であるかどうかの判断を行う（Ｓ３１）。Ｎ−１フレームの顔検出枠の数が０より大である場合は、トラッキング手段２３´がトラッキング処理を実行する（Ｓ３２）。
【０１８６】
トラッキング手段２３´は、Ｎ−１フレームにおける各顔検出枠を追跡してＮフレームにおける対応する顔検出枠を特定するものである。トラッキング手段２３´としては、上述の動画解析手段２４が実行する“パーティクルフィルタ”、“ＬＫ法”、“ＣａｍＳｈｉｆｔ手法”等の公知のトラッキング手法を採用することができる。
【０１８７】
Ｎ−１フレームからＮフレームへの顔検出枠のトラッキング処理を終えたら、顔検出手段２１がＮフレームにおける顔検出処理を行う（Ｓ３３）。Ｓ３３における顔検出処理は、図４に示したＳ２の顔検出処理と同一である。また、Ｓ３１において、Ｎ−１フレームの顔検出枠の数が０より大でないと判定された場合は、Ｎ−１フレームからＮフレームへのトラッキング処理を行わずに、顔検出手段２１がＮフレームにおける顔検出処理を行う。
【０１８８】
続いて、顔検出処理Ｓ３３において新規に検出されたＮフレームの顔検出枠の数が０より大であるかどうかを判断する（Ｓ３４）。新規に検出されたＮフレームの顔検出枠とは、Ｎフレームで検出された顔検出枠のうち、Ｎ−１フレームからＮフレームへトラッキングされた顔検出枠を除外したものである。
【０１８９】
次に、顔検出手段２１が、Ｎフレームにおいて新規に検出された各顔検出枠データに、オブジェクトＩＤを付与し、顔検出枠データ、オブジェクトＩＤ、トラッキング時間で構成される顔オブジェクトを設定する（Ｓ３５）。顔オブジェクトは、オブジェクトＩＤにより特定され、トラッキングにより対応付けられた顔検出枠は、同一のオブジェクトＩＤで特定されることになる。また、トラッキング時間の初期値は０に設定される。
【０１９０】
続いて、Ｎフレームにおける顔検出枠の数が０より大であるかどうかの判断を行う（Ｓ３６）。Ｓ３６においては、Ｎフレームにおいて新規に検出されたかどうかを問わず、既にオブジェクトＩＤが発行された顔検出枠がＮフレームに存在するかどうかを判断する。
【０１９１】
顔検出枠が存在した場合には、各顔検出枠の顔オブジェクトについて、トラッキング時間を算出する（Ｓ３７）。具体的には、直前のＮ−１フレームまでに算出されているトラッキング時間に１フレームに相当する時間を加算することによりＮフレームまでの各顔オブジェクトのトラッキング時間を算出する。トラッキング時間を算出し終えたら、Ｎをインクリメントして（Ｓ３８）、次のＮフレームについての処理に移行する。Ｓ３６における判断の結果、顔検出枠が存在しなかった場合には、Ｎフレームには、追跡すべき対象が存在しないことになるので、トラッキング時間の算出は行わず、Ｎをインクリメントして（Ｓ３８）、次のＮフレームについての処理に移行する。
【０１９２】
画像処理装置２´の顔検出手段２１、トラッキング手段２３´は、背景除去手段２０により背景処理が行われた各フレームについて、図１９に示した処理を繰り返し実行する。
【０１９３】
図１９に示した処理において付与された顔オブジェクトは、図９に示したＳ２４において、シナリオデータ対応付け手段８３によりシナリオデータと対応付けられる。図１９に示した処理においては、顔オブジェクトのオブジェクトＩＤは、顔検出枠が検出された順に、“０”“１” “２”“３”と数を１ずつ増加させながら設定される。
【０１９４】
以上、本発明の好適な実施形態について説明したが、本発明は上記実施形態に限定されず、種々の変形が可能である。例えば、上記第１の実施形態では、撮影画像から切り抜いた人物部分と背景画像を合成するとともに、人物部分または背景画像に重畳画像を重ねて合成するようにしたが、重畳画像を重ねず、背景画像のみと合成した場合であっても、十分にリアルタイムで演出効果のある合成画像を作成することが可能である。重畳画像を重ねた場合には、さらに演出効果が高まる。
【０１９５】
また、上記第１の実施形態では、合成画像作成手段８４によるセグメント領域における画像のセグメント化の具体的な手法として、グラフカットセグメンテーションを用いたが、Ｗａｔｅｒｓｈｅｄアルゴリズムや平均値アルゴリズム等の公知の他の手法を用いても良い。
【産業上の利用可能性】
【０１９６】
本発明は、コンピュータを利用してディスプレイに画像を表示する産業、広告を映像として表示するデジタルサイネージの産業に利用可能である。
【符号の説明】
【０１９７】
１    画像表示システム
２、２´    画像処理装置
２０  背景除去手段
２１  顔検出手段
２２  人体検出手段
２３、２３´  トラッキング手段
２４  動画解析手段
２５  状態遷移管理手段
２６  人物属性推定手段
２７  ログファイル出力手段
３    ディスプレイ
４    ビデオカメラ
６    状態遷移表
８０  合成ターゲット定義手段
８１  合成コンテンツ定義手段
８２  アニメーションシナリオ定義手段
８３  シナリオデータ対応付け手段
８４  合成画像作成手段
８５  指示判定手段
８６  コマンド切替手段
【図１】
0005776471.tif 000004
【図２】
0005776471.tif 000005
【図３】
0005776471.tif 000006
【図４】
0005776471.tif 000007
【図５】
0005776471.tif 000008
【図６】
0005776471.tif 000009
【図７】
0005776471.tif 000010
【図８】
0005776471.tif 000011
【図９】
0005776471.tif 000012
【図１０】
0005776471.tif 000013
【図１１】
0005776471.tif 000014
【図１２】
0005776471.tif 000015
【図１３】
0005776471.tif 000016
【図１４】
0005776471.tif 000017
【図１５】
0005776471.tif 000018
【図１６】
0005776471.tif 000019
【図１７】
0005776471.tif 000020
【図１８】
0005776471.tif 000021
【図１９】
0005776471.tif 000022
【図２０】
0005776471.tif 000023
【図２２】
0005776471.tif 000024
【図２４】
0005776471.tif 000025
【図２５】
0005776471.tif 000026
【図２６】
0005776471.tif 000027
【図２１】
0005776471.tif 000028
【図２３】
0005776471.tif 000029