(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フレームのフレーム番号などを付与してデータ記憶装置２ｄに記憶する。
【００５９】
画像処理装置２のトラッキング手段２３は、Ｎフレームの人体検出枠データ毎に、ディスプレイの閲覧判定を行うと、顔検出手段２１がＮ−１フレームから検出した顔検出枠データと、顔検出手段２１がＮフレームから検出した顔検出枠データを対応付ける顔検出枠データ対応付け処理Ｓ１２を実行する。
【００６０】
図６は、顔検出枠データ対応付け処理Ｓ１２を説明するためのフロー図で、本実施形態では、図６で図示したフローにおいて、以下に記述する数式１の評価関数を用いて得られる評価値を利用して、顔検出枠データの対応付けがなされる。
【００６１】
なお、数式１の評価関数ｆ１（）は、ニアレストネイバー法を用いた評価関数で、評価関数ｆ１（）で得られる評価値は、顔検出枠データの位置・矩形サイズの差を示した評価値になる。また、数式１の評価関数ｆ２（）で得られる評価値は、評価関数ｆ１（）から求められる評価値に、顔検出枠データで特定される顔検出枠に含まれる顔画像から得られ、顔画像の特徴を示すＳＵＲＦ特徴量の差が重み付けして加算された評価値になる。
【数１】
0005850188.tif 000002
【００６２】
Ｎ−１フレームから検出した顔検出枠データとＮフレームから検出した顔検出枠データを対応付けるために、画像処理装置２のトラッキング手段２３は、まず、Ｎフレームから得られた顔検出枠データの数だけループ処理Ｌ１を実行する。
【００６３】
このループ処理Ｌ１において、画像処理装置２のトラッキング手段２３は、まず、Ｎ−１フレームから検出された顔検出枠データの数だけループ処理Ｌ２を実行し、このループ処理Ｌ２では、ループ処理Ｌ１の処理対象となる顔検出枠データの位置・矩形サイズと、ループ処理Ｌ２の処理対象となる顔検出枠データの位置・矩形サイズが、数式１の評価関数ｆ１（）に代入して評価値を算出し（Ｓ１２０）、ループ処理Ｌ１の対象となる顔検出枠データとの位置・サイズの差を示す評価値が、Ｎ−１フレームから検出された顔検出枠データ毎に算出される。
【００６４】
画像処理装置２のトラッキング手段２３は、ループ処理Ｌ１の処理対象となる顔検出枠データとの位置・サイズの差を示す評価値を、Ｎ−１フレームから検出された顔検出枠データ毎に算出すると、該評価値の最小値を検索し（Ｓ１２１）、該評価値の最小値と他の評価値との差分を算出した後（Ｓ１２２）、閾値以下の該差分値があるか判定する（Ｓ１２３）。
【００６５】
そして、画像処理装置２のトラッキング手段２３は、ループ処理Ｌ１の処理対象となる顔検出枠データとの位置・サイズの差を示す評価値の最小値と他の評価値との差分の中に、閾値以下の差分がある場合，画像処理装置２のトラッキング手段２３は、評価値が閾値以内である顔検出枠データ数だけループ処理Ｌ３を実行する。
【００６６】
このループ処理Ｌ３では、ループ処理Ｌ１の処理対象となる顔検出枠データで特定される顔検出枠内の顔画像と、ループ処理Ｌ３の処理対象となるＮ−１フレームの顔検出枠データで特定される顔検出枠内の顔画像とのＳＵＲＦ特徴量の差が求められ、ＳＵＲＦ特徴量の差が数式１の評価関数ｆ２（）に代入され、ＳＵＲＦ特徴量の差を加算した評価値が、Ｎ−１フレームから検出された顔検出枠データ毎に算出される（Ｓ１２４）。
【００６７】
数式１で示した評価関数ｆ２（）を用い、ＳＵＲＦ特徴量の差を加算した評価値を算出するのは、ニアレストネイバー法のみを利用した評価関数ｆ１（）を用いて求められた評価値の最小値と他の評価値との差分値に閾値以下がある場合、サイズの似た顔検出枠が近接していると考えられ（例えば，図８の人物７ａ，ｂ），ニアレストネイバー法の評価値からでは、Ｎフレームの顔検出枠データに対応付けるＮ−１フレームの顔検出枠データが判定できないからである。
【００６８】
数式１で示した評価関数ｆ２（）を用い、ＳＵＲＦ特徴量の差を加算した評価値を算出することで、顔の特徴が加味された評価値が算出されるので、該評価値を用いることで、サイズの似た顔検出枠が近接している場合は、顔が似ているＮ−１フレームの顔検出枠データがＮフレームの顔検出枠データに対応付けられることになる。
【００６９】
そして、画像処理装置２のトラッキング手段２３は、数式１の評価関数から得られた評価値が最小値であるＮ−１フレームの顔検出枠データを、ループ処理Ｌ１の対象となるＮフレームの顔検出枠データに対応付ける処理を実行する（Ｓ１２５）。なお、数式１で示した評価関数ｆ２（）を用いた評価値を算出していない場合、この処理で利用される評価値は、数式１で示した評価関数ｆ１（）から求められた値になり、数式１で示した評価関数ｆ２（）を用いた評価値を算出している場合、この処理で利用される評価値は、数式１で示した評価関数ｆ２（）から求められた値になる。
【００７０】
ループ処理Ｌ１が終了し、画像処理装置２のトラッキング手段２３は、Ｎフレームの顔検出枠データとＮ−１フレームの顔検出枠データを対応付けすると、Ｎ−１フレームの顔検出枠データが重複して、Ｎフレームの顔検出枠データに対応付けられていないか確認する（Ｓ１２６）。
【００７１】
Ｎ−１フレームの顔検出枠データが重複して、Ｎフレームの顔検出枠データに対応付けられている場合、画像処理装置２のトラッキング手段２３は、重複して対応付けられているＮ−１フレームの顔検出枠データの評価値を参照し、評価値が小さい方を該Ｎフレームの顔検出枠データに対応付ける処理を再帰的に実行することで、最終的に、Ｎフレームの顔検出枠データに対応付けるＮ−１フレームの顔検出枠データを決定する（Ｓ１２７）。
【００７２】
ここから、図４で図示したフローの説明に戻る。トラッキング処理Ｓ４が終了すると、画像処理装置２の状態遷移管理手段２５によって、トラッキング処理Ｓ４から得られ、一つ前と今回の顔検出枠データの対応付け結果を参照し、事前に定めた状態遷移表に従い顔オブジェクトの状態を遷移させ、顔オブジェクトの状態遷移に応じたログを記憶する状態遷移管理処理Ｓ５が実行され、この状態遷移管理処理Ｓ５で所定の状態遷移があると、該状態遷移に対応した所定のログファイルがデータ記憶装置２ｄに記憶される。
【００７３】
画像処理装置２の状態遷移管理手段２５には、顔オブジェクトの状態遷移を管理するために、予め、顔オブジェクトの状態と該状態を状態遷移させるルールが定義された状態遷移表が定められており、画像処理装置２のトラッキング手段２３は、この状態遷移表を参照し、顔検出枠データ対応付け処理Ｓ１２の結果に基づき顔オブジェクトの状態を遷移させる。
【００７４】
ここから、状態遷移表の一例を例示し、該状態遷移表の説明をしながら、画像処理装置２の状態遷移管理手段２５によって実行される状態遷移管理処理Ｓ５について説明する。
【００７５】
図７は、本実施形態における状態遷移表６を説明する図である。図７で図示した状態遷移表６によって、顔オブジェクトの状態と、Ｎ−１フレームの状態からＮフレームの状態への遷移が定義され、状態遷移表６の縦軸はＮ−１フレームの状態で、横軸はＮフレームの状態で，縦軸と横軸が交差する箇所に状態遷移する条件が記述されている。なお、状態遷移表に「−」は不正な状態遷移を示している。
【００７６】
図７で図示した状態遷移表６には、顔オブジェクトの状態として、Ｎｏｎｅ、候補Ｆａｃｅ、現在Ｆａｃｅ、待機Ｆａｃｅ、ノイズＦａｃｅ及び終了Ｆａｃｅが定義され、状態遷移表で定義された状態遷移を説明しながら、それぞれの状態について説明する。
【００７７】
顔オブジェクトの状態の一つであるＮｏｎｅとは、顔オブジェクトが存在しない状態を意味し、Ｎフレームの顔検出枠データに対応付けるＮ−１フレームの顔検出枠データが無い場合（図７の条件１）、画像処理装置２の状態遷移管理手段２５は、顔オブジェクトを識別するためのＩＤ、該Ｎフレームの顔検出データ、顔オブジェクトに付与された状態に係わるデータなどを属性値と有する顔オブジェクトを新規に生成し、該顔オブジェクトの状態を候補Ｆａｃｅに設定する。
【００７８】
顔オブジェクトの状態の一つである候補Ｆａｃｅとは、新規に検出した顔画像がノイズである可能性がある状態を意味し、顔オブジェクトの状態の一つに候補Ｆａｃｅを設けているのは、複雑な背景の場合、背景除去処理を行っても顔画像の誤検出が発生し易く、新規に検出できた顔画像がノイズの可能性があるからである。
【００７９】
候補Ｆａｃｅの状態である顔オブジェクトには、候補Ｆａｃｅの状態に係わるデータとして、候補Ｆａｃｅの状態であることを示す状態ＩＤと、候補Ｆａｃｅへ状態遷移したときの日時及びカウンタが付与される。
【００８０】
候補Ｆａｃｅから状態遷移可能な状態は、候補Ｆａｃｅ、現在Ｆａｃｅ及びノイズＦａｃｅで、事前に定められた設定時間内において、候補Ｆａｃｅの状態である顔オブジェクトに対応する顔検出枠が所定の数だけ連続してトラッキングできた場合（図７の条件２−２）、該顔オブジェクトの状態は候補Ｆａｃｅから現在Ｆａｃｅに遷移する。
【００８１】
候補Ｆａｃｅの状態である顔オブジェクトの属性にカウンタを設けているのは、設定時間内において、候補Ｆａｃｅの状態である顔オブジェクトに対応する顔検出枠を連続してトラッキングできた回数をカウントするためで、画像処理装置２の状態遷移管理手段２５は、Ｎフレームの顔検出枠データに対応付けられたＮ−１フレームの顔検出データが含まれている顔オブジェクトの状態が候補Ｆａｃｅの場合、該顔オブジェクトに付与されている顔検出枠データをＮフレームの顔検出枠データに更新すると共に、該顔オブジェクトのカウンタをインクリメントする。
【００８２】
そして、画像処理装置２の状態遷移管理手段２５は、状態遷移管理処理Ｓ５を実行する際、候補Ｆａｃｅである顔オブジェクト毎に、候補Ｆａｃｅへ状態遷移したときの日時を参照し、設定時間以内に該カウンタの値が事前に定めた設定値に達している場合は、顔オブジェクトの状態を現在Ｆａｃｅに状態遷移させる。また、画像処理装置２の状態遷移管理手段２５は、この時点で設定時間が経過しているが、該カウンタが設定値に達しなかった該顔オブジェクトの状態をノイズＦａｃｅに状態遷移させ（図７の条件２−３）、該設定時間が経過していない該顔オブジェクトについては状態を状態遷移させない（図７の条件２−１）。
【００８３】
顔オブジェクトの状態の一つであるノイズＦａｃｅとは、画像処理装置２の顔検出手段２１が検出した顔画像がノイズと判定された状態で、ノイズＦａｃｅに状態遷移した顔オブジェクトは消滅したと見なされ、これ以降の状態遷移管理処理Ｓ５に利用されない。
【００８４】
顔オブジェクトの状態の一つである現在Ｆａｃｅとは、顔オブジェクトに対応する人物がディスプレイ３を閲覧状態と判定できる状態で、現在Ｆａｃｅの状態にある時間が、顔オブジェクトに対応する人物がディスプレイ３を閲覧している時間となる。
【００８５】
画像処理装置２の状態遷移管理手段２５は、顔オブジェクトの状態を候補Ｆａｃｅから現在Ｆａｃｅに状態遷移すると、該顔オブジェクトの顔検出枠データをＮフレームの顔検出枠データに更新すると共に、現在Ｆａｃｅに係わるデータとして、現在Ｆａｃｅの状態であることを示す状態ＩＤと現在Ｆａｃｅに状態遷移させたときの日時を顔オブジェクトに付与する。
【００８６】
また、ディスプレイを閲覧している人物の人物属性（例えば、年齢・性別）をログとして記憶するために、顔オブジェクトの状態を現在Ｆａｃｅに状態遷移すると、画像処理装置２の状態遷移管理手段２５は人物属性推定手段２６を作動させ、現在Ｆａｃｅに状態遷移させた顔オブジェクトの顔検出枠データで特定される顔検出枠から得られる人物属性を取得し、該顔オブジェクトのオブジェクトＩＤ、人物属性が記述された属性ログファイルをデータ記憶装置２ｄに記憶する。
【００８７】
なお、画像処理装置２に備えられた人物属性推定手段２６については詳細な記載はしないが、人物の顔画像から人物の人物属性（年齢・性別）を自動で識別することは、タバコの自動販売機などでも広く利用されており、例えば、特開２００７−０８００５７号公報の技術を利用できる。
【００８８】
更に、画像処理装置２の状態遷移管理手段２５は、顔オブジェクトの状態を現在Ｆａｃｅに状態遷移すると、ディスプレイ３を閲覧している人物の位置を時系列で記憶するための位置ログファイルをデータ記憶装置２ｄに新規に生成する。生成時の位置ログファイルには、現在Ｆａｃｅに状態遷移した顔オブジェクトのオブジェクトＩＤと、現在Ｆａｃｅに状態遷移した顔オブジェクトに含まれる顔検出枠データが付与される。
【００８９】
現在Ｆａｃｅの状態から状態遷移可能な状態は、現在Ｆａｃｅ及び待機Ｆａｃｅである。画像処理装置２の状態遷移管理手段２５は、Ｎフレームの顔検出枠データに対応付けられたＮ−１フレームの顔検出データを含む顔オブジェクトの状態が現在Ｆａｃｅの場合（条件３−１）、該顔オブジェクトに付与されている顔検出枠データをＮフレームにおける顔検出枠データに更新すると共に、該顔検出枠データを、該顔オブジェクトのオブジェクトＩＤで特定される位置ログファイルに追加する。
【００９０】
また、画像処理装置２の状態遷移管理手段２５は、状態遷移管理処理Ｓ５を行う際、Ｎフレームの顔検出枠データが対応付けられなかったＮ−１フレームの顔検出枠データが付与されている顔オブジェクトの状態が現在Ｆａｃｅの場合、動画解析手段２４を作動させて、動画解析手法により、該Ｎ−１フレームの顔検出枠データに対応する顔画像をＮフレームから検出する処理を実施する。
【００９１】
本実施形態において、画像処理装置２の動画解析手段２４は、まず、Ｎフレームの顔検出枠データが対応付けられなかったＮ−１フレームの顔検出枠データと既に対応付けられているＮフレームの顔検出枠データの間で、オクルージョン状態の判定を行い、対象となる人物の顔が完全に隠れた状態のオクルージョンであるか確認する。
【００９２】
画像処理装置２の動画解析手段２４は、この時点で存在し、現在Ｆａｃｅ、候補Ｆａｃｅ及び待機Ｆａｃｅの状態である全ての顔オブジェクトについて、数式２に従い，顔オブジェクトのオクルージョン状態を判定する処理を実行する。
【数２】
0005850188.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＝“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"）までのフレームについては、全て金髪のカツラが合成された合成画像が表示されることになる。
【０１５２】
＜状態遷移管理手段を用いない構成＞
上記実施形態の画像表示システムは、状態遷移管理手段２５を用い、検出された顔画像がノイズであったと判定される場合に、閲覧状態と判断しないようにしたが、状態遷移管理手段２５を用いず、検出された顔画像を全て閲覧状態と判断するようにすることも可能である。次に、状態遷移管理手段２５を用いない構成について説明する。
【０１５３】
図１８は、状態遷移管理手段２５を用いない場合の画像処理装置２´に実装されたコンピュータプログラムで実現される機能ブロック図である。図１８において、図３と同一機能を有するものについては、同一符号を付して詳細な説明を省略する。
【０１５４】
図１８に示す画像処理装置２´は、図３に示したトラッキング手段２３に代えて、トラッキング手段２３´を有している。このトラッキング手段２３´は、図３に示した動画解析手段２４に相当する機能も備えている。
【０１５５】
図１８に示す画像処理装置２´は、フレームを解析するにあたり、図４に示したＳ１〜Ｓ５の処理のうち、Ｓ１、Ｓ３の処理は、画像処理装置２と同様にして行う。また、顔検出処理とトラッキング処理は、連携させて実行する。上述のように、Ｓ５の状態遷移管理処理は行わない。
【０１５６】
図１９は、顔検出処理とトラッキング処理を示すフロー図である。まず、背景除去処理Ｓ１を行った後、Ｎフレームを処理するにあたり、Ｎ−１フレームの顔検出枠の数が０より大であるかどうかの判断を行う（Ｓ３１）。Ｎ−１フレームの顔検出枠の数が０より大である場合は、トラッキング手段２３´がトラッキング処理を実行する（Ｓ３２）。
【０１５７】
トラッキング手段２３´は、Ｎ−１フレームにおける各顔検出枠を追跡してＮフレームにおける対応する顔検出枠を特定するものである。トラッキング手段２３´としては、上述の動画解析手段２４が実行する“パーティクルフィルタ”、“ＬＫ法”、“ＣａｍＳｈｉｆｔ手法”等の公知のトラッキング手法を採用することができる。
【０１５８】
Ｎ−１フレームからＮフレームへの顔検出枠のトラッキング処理を終えたら、顔検出手段２１がＮフレームにおける顔検出処理を行う（Ｓ３３）。Ｓ３３における顔検出処理は、図４に示したＳ２の顔検出処理と同一である。また、Ｓ３１において、Ｎ−１フレームの顔検出枠の数が０より大でないと判定された場合は、Ｎ−１フレームからＮフレームへのトラッキング処理を行わずに、顔検出手段２１がＮフレームにおける顔検出処理を行う。
【０１５９】
続いて、顔検出処理Ｓ３３において新規に検出されたＮフレームの顔検出枠の数が０より大であるかどうかを判断する（Ｓ３４）。新規に検出されたＮフレームの顔検出枠とは、Ｎフレームで検出された顔検出枠のうち、Ｎ−１フレームからＮフレームへトラッキングされた顔検出枠を除外したものである。
【０１６０】
次に、顔検出手段２１が、Ｎフレームにおいて新規に検出された各顔検出枠データに、オブジェクトＩＤを付与し、顔検出枠データ、オブジェクトＩＤ、トラッキング時間で構成される顔オブジェクトを設定する（Ｓ３５）。顔オブジェクトは、オブジェクトＩＤにより特定され、トラッキングにより対応付けられた顔検出枠は、同一のオブジェクトＩＤで特定されることになる。また、トラッキング時間の初期値は０に設定される。
【０１６１】
続いて、Ｎフレームにおける顔検出枠の数が０より大であるかどうかの判断を行う（Ｓ３６）。Ｓ３６においては、Ｎフレームにおいて新規に検出されたかどうかを問わず、既にオブジェクトＩＤが発行された顔検出枠がＮフレームに存在するかどうかを判断する。
【０１６２】
顔検出枠が存在した場合には、各顔検出枠の顔オブジェクトについて、トラッキング時間を算出する（Ｓ３７）。具体的には、直前のＮ−１フレームまでに算出されているトラッキング時間に１フレームに相当する時間を加算することによりＮフレームまでの各顔オブジェクトのトラッキング時間を算出する。トラッキング時間を算出し終えたら、Ｎをインクリメントして（Ｓ３８）、次のＮフレームについての処理に移行する。Ｓ３６における判断の結果、顔検出枠が存在しなかった場合には、Ｎフレームには、追跡すべき対象が存在しないことになるので、トラッキング時間の算出は行わず、Ｎをインクリメントして（Ｓ３８）、次のＮフレームについての処理に移行する。
【０１６３】
画像処理装置２´の顔検出手段２１、トラッキング手段２３´は、背景除去手段２０により背景処理が行われた各フレームについて、図１９に示した処理を繰り返し実行する。
【０１６４】
図１９に示した処理において付与された顔オブジェクトは、図９に示したＳ２４において、シナリオデータ対応付け手段８３によりシナリオデータと対応付けられる。図１９に示した処理においては、顔オブジェクトのオブジェクトＩＤは、顔検出枠が検出された順に、“０”“１” “２”“３”と数を１ずつ増加させながら設定される。
【０１６５】
以上、本発明の好適な実施形態について説明したが、本発明は上記実施形態に限定されず、種々の変形が可能である。例えば、上記実施形態では、指示判定手段が、人物の抽出を行う際、フレームから背景を除去して得られた背景除去画像と、フレームにＨＳＶ変換を行って得られたＨＳＶ画像の重複部分を抽出することにより行ったが、撮影されている人物を抽出することができれば、他の手法を用いて抽出しても良い。
【０１６６】
また、上記実施形態では、シナリオデータに従って合成画像を生成し、表示するようにしたが、音源データを用意しておき、シナリオデータに従って音源データを再生し、スピーカから音を出力するようにしても良い。また、滞在者が数人以上になった場合に、コンテンツを切り替えたり、性別・年代に応じてコンテンツを切り替えたりする処理を実行するようにしても良い。
【産業上の利用可能性】
【０１６７】
本発明は、コンピュータを利用してディスプレイに画像を表示する産業、広告を映像として表示するデジタルサイネージの産業に利用可能である。
【符号の説明】
【０１６８】
１    画像表示システム
２、２´    画像処理装置
２０  背景除去手段
２１  顔検出手段
２２  人体検出手段
２３、２３´  トラッキング手段
２４  動画解析手段
２５  状態遷移管理手段
２６  人物属性推定手段
２７  ログファイル出力手段
３    ディスプレイ
４    ビデオカメラ
６    状態遷移表
８０  合成ターゲット定義手段
８１  合成コンテンツ定義手段
８２  アニメーションシナリオ定義手段
８３  シナリオデータ対応付け手段
８４  合成画像作成手段
８５  指示判定手段
８６  コマンド切替手段
【図２】
0005850188.tif 000004
【図３】
0005850188.tif 000005
【図４】
0005850188.tif 000006
【図５】
0005850188.tif 000007
【図６】
0005850188.tif 000008
【図７】
0005850188.tif 000009
【図８】
0005850188.tif 000010
【図１０】
0005850188.tif 000011
【図１１】
0005850188.tif 000012
【図１５】
0005850188.tif 000013
【図１７】
0005850188.tif 000014
【図１８】
0005850188.tif 000015
【図１９】
0005850188.tif 000016
【図１】
0005850188.tif 000017
【図９】
0005850188.tif 000018
【図１２】
0005850188.tif 000019
【図１３】
0005850188.tif 000020
【図１４】
0005850188.tif 000021
【図１６】
0005850188.tif 000022