(57)【特許請求の範囲】
【請求項１】
ビデオシーケンスの少なくとも１つのビデオフレームを選択する方法をコンピュータに実行させるためのプログラムであって、
前記ビデオシーケンスの少なくとも１つのビデオフレームにおいて顔を検出する検出工程と、
前記ビデオシーケンスに含まれる一連のビデオフレームにおいて、前記検出工程において検出された顔の向きを追跡する追跡工程と、
前記ビデオシーケンスに含まれる、前記検出工程において検出された第１の顔及び第２の顔が互いの方を向いている少なくとも１つのビデオフレームを選択する選択工程と、
をコンピュータに実行させ、
前記選択工程では、前記一連のビデオフレームの少なくとも一部において前記追跡工程において追跡された前記第１の顔の向きに基づき、前記第１の顔が前記第２の顔の方を向いていくことで前記第１の顔及び前記第２の顔が互いの方を向いている少なくとも１つのビデオフレームを、２つの顔の向きが変化せずに当該２つの顔が互いの方を向いているビデオフレームよりも優先して選択することを特徴とするプログラム。
【請求項２】
前記追跡工程では、前記一連のビデオフレームにおいて、前記第１の顔の向きと前記第２の顔の向きを追跡し、
前記選択工程では、前記第１の顔と前記第２の顔が互いに向き合っていくことで前記第１の顔及び前記第２の顔が互いの方を向いている少なくとも１つのビデオフレームを選択することを特徴とする請求項１に記載のプログラム。
【請求項３】
前記選択工程では、前記ビデオシーケンスにおいて、前記第１の顔が前記第２の顔の方を向いていった後の、前記第１の顔及び前記第２の顔が互いの方を向いている少なくとも１つのビデオフレームを選択することを特徴とする請求項１または２に記載のプログラム。
【請求項４】
前記ビデオシーケンスにおいて、前記第１の顔が前記第２の顔の方を向いていった後の、前記第１の顔と前記第２の顔が、少なくとも所定数のフレームにおいて向き合っているかを判定する判定工程をさらにコンピュータに実行させ、
前記選択工程では、前記第１の顔と前記第２の顔が前記少なくとも所定数のフレームにおいて向き合っていると前記判定工程において判定されたことに基づいて、前記第１の顔及び前記第２の顔が互いの方を向いている少なくとも１つのビデオフレームを選択することを特徴とする請求項１乃至３のいずれか1項に記載のプログラム。
【請求項５】
前記選択工程において選択されたビデオフレームは、前記検出工程において検出された顔の凝視固定をキャプチャするものであることを特徴とする請求項１乃至４のいずれか１項に記載のプログラム。
【請求項６】
前記第１の顔は、前記第２の顔が静止している間に、前記第２の顔の方を向いていく顔であることを特徴とする請求項１乃至５のいずれか１項に記載のプログラム。
【請求項７】
前記凝視固定は閾値期間に依存することを特徴とする請求項５に記載のプログラム。
【請求項８】
前記凝視固定は最小のターニング時間に依存することを特徴とする請求項５に記載のプログラム。
【請求項９】
前記第１の顔と前記第２の顔は、前記検出工程において検出され且つ所定の条件を満たす顔であることを特徴とする請求項１乃至８のいずれか１項に記載のプログラム。
【請求項１０】
前記所定の条件は、フレームにおける所定の中央の領域に含まれる顔であることを含むことを特徴とする請求項９に記載のプログラム。
【請求項１１】
前記所定の条件は、所定のサイズより大きな顔であることを含むことを特徴とする請求項９または１０に記載のプログラム。
【請求項１２】
前記所定の条件は、前記第１の顔と前記第２の顔の候補である２つの顔の大きさの違いに基づく条件であることを特徴とする請求項９乃至１１のいずれか１項に記載のプログラム。
【請求項１３】
前記所定の条件は、フレームにおいて、前記第１の顔と前記第２の顔の候補である２つの顔の間に他の顔が存在するか否かに基づく条件であることを特徴とする請求項９乃至１２のいずれか１項に記載のプログラム。
【請求項１４】
フォトブックにおいて前記選択工程において選択されたフレームが印刷されることを特徴とする請求項１乃至１３のいずれか１項に記載のプログラム。
【請求項１５】
前記ビデオシーケンスの概略説明において前記選択工程において選択されたフレームが表示されることを特徴とする請求項１乃至１３のいずれか１項に記載のプログラム。
【請求項１６】
前記選択工程において選択されたフレームにおいて、前記第１の顔は、前記第２の顔と相対的に前方を向いており、前記第２の顔は、前記第１の顔と相対的に後方を向いていることを特徴とする請求項１乃至１５のいずれか１項に記載のプログラム。
【請求項１７】
前記選択工程では、
前記第１の顔が前記第２の顔の方を向いていくことで前記第１の顔及び前記第２の顔が互いの方を向いている少なくとも１つのビデオフレームを選択し、２つの顔の向きが変化せずに当該２つの顔が互いの方を向いているビデオフレームを選択しないことを特徴とする請求項１乃至１６のいずれか１項に記載のプログラム。
【請求項１８】
ビデオシーケンスの少なくとも１つのビデオフレームを選択するシステムであって、
データ及びコンピュータプログラムを記憶するメモリと、
前記コンピュータプログラムを実行するためのメモリと結合されたプロセッサと、を有し、前記コンピュータプログラムは、
前記ビデオシーケンスの少なくとも１つのビデオフレームにおいて顔を検出し、
前記ビデオシーケンスに含まれる一連のビデオフレームにおいて、前記検出された顔の向きを追跡し、
前記ビデオシーケンスに含まれる、前記検出された第１の顔及び第２の顔が互いの方を向いている少なくとも１つのビデオフレームを選択するインストラクションを有し、
前記選択においては、前記一連のビデオフレームの少なくとも一部において前記追跡された前記第１の顔の向きに基づき、前記第１の顔が前記第２の顔の方を向いていくことで前記第１の顔及び前記第２の顔が互いの方を向いている少なくとも１つのビデオフレームを、２つの顔の向きが変化せずに当該２つの顔が互いの方を向いているビデオフレームよりも優先して選択することを特徴とするシステム。
【請求項１９】
ビデオシーケンスの少なくとも１つのビデオフレームを選択する装置であって、
前記ビデオシーケンスの少なくとも１つのビデオフレームにおいて顔を検出する手段と、
前記ビデオシーケンスに含まれる一連のビデオフレームにおいて、前記検出された顔の向きを追跡する手段と、
前記ビデオシーケンスに含まれる、前記検出された第１の顔及び第２の顔が互いの方を向いている少なくとも１つのビデオフレームを選択する手段と、を有し、
前記選択においては、前記一連のビデオフレームの少なくとも一部において前記追跡された前記第１の顔の向きに基づき、前記第１の顔が前記第２の顔の方を向いていくことで前記第１の顔及び前記第２の顔が互いの方を向いている少なくとも１つのビデオフレームを、２つの顔の向きが変化せずに当該２つの顔が互いの方を向いているビデオフレームよりも優先して選択することを特徴とする装置。
【請求項２０】
ビデオシーケンスの少なくとも１つのビデオフレームを選択する装置において実行される方法であって、
前記ビデオシーケンスの少なくとも１つのビデオフレームにおいて顔を検出する検出工程と、
前記ビデオシーケンスに含まれる一連のビデオフレームにおいて、前記検出工程において検出された顔の向きを追跡する追跡工程と、
前記ビデオシーケンスに含まれる、前記検出工程において検出された第１の顔及び第２の顔が互いの方を向いている少なくとも１つのビデオフレームを選択する選択工程と、を有し
前記選択工程では、前記一連のビデオフレームの少なくとも一部において前記追跡工程において追跡された前記第１の顔の向きに基づき、前記第１の顔が前記第２の顔の方を向いていくことで前記第１の顔及び前記第２の顔が互いの方を向いている少なくとも１つのビデオフレームを、２つの顔の向きが変化せずに当該２つの顔が互いの方を向いているビデオフレームよりも優先して選択することを特徴とする方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、一般的に画像処理に関し、特に、ビデオシーケンスのビデオフレームを選択するプログラム、システム、装置、及び方法に関する。
【背景技術】
【０００２】
ビデオは、シーンや次々と展開されるイベントをキャプチャするために効果的な方法である。人はしばしば、誕生日パーティ、結婚式、旅行、スポーツなどのイベントについてのビデオをキャプチャする。静止画像と違って、ビデオには、特に、自然な顔の表情や、人間の交流（例えば、話す、互いに微笑む、キスする、ハグする、握手する）のような、発展的で体系化されていないイベントをキャプチャするという利点がある。静止画像が用いられているのと同様な方法により、表示用もしくは印刷書籍におけるコンテンツとしての使用のためにビデオフレームのシーケンスから個別のフレームを選択することがしばしば望まれる。加えて、セグメントとして知られるビデオシーケンスのサブセクションは、ビデオシーケンスの概略説明としての表示のために選択され得る。ビデオセグメントは、ビデオシーケンスの一連のシーケンシャルなビデオフレームを含む。
【０００３】
携帯電話や他のコンシューマ向けのカメラ機器の需要とアクセスのしやすさとの増大に伴って、ますます、ビデオデータはキャプチャされて保存されている。従って、関連するビデオを見つけること、及び／又は、印刷や表示のためにビデオの所望のフレームを抽出することはますます困難になってきている。
【０００４】
ビデオフレームを選択する一つの方法においては、写真の構図、色の配分、にじみ、色のコントラスト、鮮鋭さ、露出を含む画像品質の指標に基づくことのみにより、所望のビデオセグメントやフレームを決定する。携帯機器上で直接、画像解析を実行する代わりに、ビデオフレームやセグメントを選択する代替方法においては、絞りやシャッタースピード、ＩＳＯ、レンズの種類やカメラの動きといったカメラの特定のパラメータを用いる。ビデオフレームを選択する、より最近の方法においては、顔、オブジェクト、イベントの種類、人間の行動を識別することによりビデオセグメントや画像の選択を容易にするために、ビデオから高レベルの意味を抽出することが試みられている。特に、結婚式やスポーツのイベントについての幾つかの方法においては、ビデオシーケンスにおいて重要なシーン、オブジェクト、イベントを識別するために、カメラのフラッシュや、音声の特徴（例えば、音楽、拍手、歓声）を検出する。
【発明の概要】
【発明が解決しようとする課題】
【０００５】
本発明の目的は、既存の構成の少なくとも１つの不利点を十分に解消し、もしくは少なくとも改善することである。
【課題を解決するための手段】
【０００６】
本開示の１つの態様によると、ビデオシーケンスの少なくとも１つのビデオフレームを選択するプログラムが提供される。そのプログラムは、
ビデオシーケンスの少なくとも１つのビデオフレームを選択する方法をコンピュータに実行させるためのプログラムであって、
前記ビデオシーケンスの少なくとも１つのビデオフレームにおいて顔を検出する検出工程と、
前記ビデオシーケンスに含まれる一連のビデオフレームにおいて、前記検出工程において検出された顔の向きを追跡する追跡工程と、
前記ビデオシーケンスに含まれる、前記検出工程において検出された第１の顔及び第２の顔が互いの方を向いている少なくとも１つのビデオフレームを選択する選択工程と、
をコンピュータに実行させ、
前記選択工程では、前記一連のビデオフレームの少なくとも一部において前記追跡工程において追跡された前記第１の顔の向きに基づき、前記第１の顔が前記第２の顔の方を向いていくことで前記第１の顔及び前記第２の顔が互いの方を向いている少なくとも１つのビデオフレームを、２つの顔の向きが変化せずに当該２つの顔が互いの方を向いているビデオフレームよりも優先して選択することを特徴とする。
【００１０】
他の態様も同様に開示される。
【図面の簡単な説明】
【００１１】
本発明の少なくとも１つの実施形態が以下の図面を参照することで説明される。
【図１】、
【図２】図１及び図２は、記載される構成が実行される場合の汎用的なコンピュータのブロック図である。
【図３】図３は、ビデオシーケンスの少なくとも１つのビデオフレームを選択する方法を示すフロー図である。
【図４】図４は、図３の方法において用いられる候補ビデオセグメントを検出する方法を示すフロー図である。
【図５】図５は、図４の方法の出力を示す図である。
【図６】図６は、候補ビデオセグメントにおける一連のビデオフレーム上で顔を追跡する方法を示すフロー図である。
【図７Ａ】図７Ａは、候補セグメント内の一フレーム期間上の一対の顔を示す図である。
【図７Ｂ】図７Ｂは、顔の向きを表すために用いられる角度を示す図である。
【図７Ｃ】図７Ｃは、顔が異なる深度にあることを判定するために用いられ得る異なるサイズの顔を示す図である。
【図７Ｄ】図７Ｄは、凝視コンタクトであることを示す位置及び向きを有する顔の配置を示す図である。
【図７Ｅ】図７Ｅは、上方を見る顔と下方を見る顔を示す図である。
【図８】図８は、図３の方法において用いられるような凝視コンタクトを検出する方法を示すフロー図である。
【発明を実施するための形態】
【００１２】
少なくともいずれかの付随する図面がステップ及び／又は特徴について参照される。同一の参照番号は、反対の意思がない限り、記載の目的のための同一の機能や動作を示す。
【００１３】
人間間での対話があるフレームが、印刷、表示等のための一連のビデオフレームから選択されても良い。例えば、多くの人々がいるフレームが選択されても良い。他の例として、人々が互いに活発に関与しているフレームが選択されても良い。そのような人々の活発な関与は、話す、微笑む、を含んで良く、また、互いに見合う少なくとも２人の人々を必要としても良い。しかしながら、従来の方法を用いてそのような関与を検出することは、計算的に高価なものとなり得る。
【００１４】
本開示は、ビデオフレームで示される対象物間の関与の検出に基づいて、一連のビデオフレームから所望のビデオフレームを選択する方法を提供することを対象としている。詳細は後述するが、関連するビデオセグメント及びフレームは、一連のビデオフレームから抽出され得る。各ビデオセグメントは、ビデオシーケンスの一連のシーケンシャルなビデオフレームを含む。ビデオフレームは、ビデオデコード処理においてビデオシーケンスから抽出され得る。抽出されたフレームは、デジタル静止写真撮影を通して得られる画像と同様に扱われ得る。用語「画像」と「フレーム」は、以下の記載においては置き換え可能である。
【００１５】
図１及び図２は、記載される様々な構成が実現され得る、汎用的なコンピュータシステム１００を示す。
【００１６】
図１に示すように、コンピュータシステム１００は、コンピュータモジュール１０１、キーボード１０２、マウスポインタデバイス１０３、スキャナ１２６、カメラ１２７、マイクロホン１８０のような入力デバイスと、プリンタ１１５、表示デバイス１１４、スピーカ１１７を含む出力デバイスとを含む。外部のモジュレータ／デモジュレータ（ＭＯＤＥＭ）トランシーバデバイス１１６は、接続１２１を介して通信ネットワーク１２０に対してもしくは通信ネットワーク１２０から、通信するためのコンピュータモジュール１０１により用いられても良い。通信ネットワーク１２０は、インターネットのようなワイドエリアネットワーク（ＷＡＮ）、携帯電話通信ネットワークや、プライベートＷＡＮであっても良い。接続１２１は電話回線であって、モデム１１６は、一般的なダイアルアップモデムであっても良い。また、接続１２１は高容量（ケーブル等）接続であっても良く、モデム１１６は、ブロードバンドモデムであっても良い。ワイヤレスモデムも同様に、通信ネットワーク１２０への無線接続に用いられても良い。
【００１７】
コンピュータモジュール１０１は、一般的には、少なくとも１つのプロセッサユニット１０５と、メモリユニット１０６を含む。例えば、メモリユニット１０６は、半導体ランダムアクセスメモリ（ＲＡＭ）と半導体リードオンリーメモリ（ＲＯＭ）を有しても良い。コンピュータモジュール１０１は、また、多くの入力／出力（Ｉ／Ｏ）インタフェースを含み、入力／出力（Ｉ／Ｏ）インタフェースは、ビデオディスプレイ１１４、スピーカ１１７、マイクロホン１８０に結合された音声ビデオインタフェース１０７、キーボード１０２、マウス１０３、スキャナ１２６、カメラ１２７、オプションとしてのジョイスティックや他のヒューマンインタフェースデバイス（不図示）と結合されたＩ／Ｏインタフェース１１３、外部モデム１１６とプリンタ１１５用のインタフェース１０８を含む。幾つかの形態として、モデム１１６は、コンピュータモジュール１０１内に含まれても良く、例えばインタフェース１０８内に含まれても良い。コンピュータモジュール１０１は、また、ローカルネットワークインタフェース１１１を有し、ローカルネットワークインタフェース１１１は、ローカルエリアネットワーク（ＬＡＮ）として知られるローカルエリア通信ネットワーク１２２への接続１２３を介したコンピュータシステム１００の結合を許可する。図１に示されるように、ローカル通信ネットワーク１２２は、また、接続１２４を介してワイドネットワーク１２０に結合されても良く、一般的には、いわゆるファイヤウォールデバイスもしくは類似の機能のデバイスを含む。ローカルネットワークインタフェース１１１は、イーサネット（登録商標）回路カード、Ｂｌｕｅｔｏｏｔｈ（登録商標）無線構成や、ＩＥＥＥ８０２．１１無線構成を含んでも良い。しかしながら、多くの他のタイプのインタフェースがインタフェース１１１として実現されても良い。
【００１８】
Ｉ／Ｏインタフェース１０８と１１３は、シリアル接続とパラレル接続の両方、もしくはいずれかを可能である。前者は、一般的には、ユニバーサル・シリアル・バス（ＵＳＢ）規格に準拠して実現され、ＵＳＢコネクタ（不図示）に対応している。ストレージデバイス１０９が構成され、一般的には、ハードディスクドライブ（ＨＤＤ）１１０を含む。フロッピーディスクドライブや磁気テープドライブ（不図示）等の他のストレージデバイスが用いられても良い。光ディスクドライブ１１２は、一般的には、データの不揮発性ソースとしてふるまうように構成されている。ポータブルメモリデバイス、例えば、光ディスク（例えば、ＣＤ−ＲＯＭ、ＤＶＤ、ブルーレイディスク（商標））、ＵＳＢ−ＲＡＭ、ポータブル、外部ハードドライブ、フロッピーディスクなどがシステム１００への適切なデータソースとして用いられても良い。
【００１９】
コンピュータモジュール１０１のコンポーネント１０５〜１１３は、一般的には、相互接続バス１０４を介し、当業者に知られているコンピュータシステム１００の動作の一般的なモードをもたらす方法によって通信される。例えば、プロセッサ１０５は、接続１１８を用いて、システムバス１０４に結合されている。同様に、メモリ１０６と光ディスクドライブ１１２は、接続１１９によりシステムバス１０４に結合されている。記載された構成が実現され得るコンピュータの例は、ＩＢＭ−ＰＣおよび互換機、ＳｕｎＳｐａｒｃｓｔａｔｉｏｎｓ、Ａｐｐｌｅ  Ｍａｃ（商標）、若しくは同様のコンピュータシステムを含む。
【００２０】
以下に記載する方法は、コンピュータシステム１００を用いることで実現されても良い。コンピュータシステム１００では、図３〜図８で記載される処理が、コンピュータシステム１００内で実行可能な少なくとも１つのソフトウェアアプリケーションプログラム１３３として実行されても良い。特に、記載される方法のステップは、コンピュータシステム１００内で実行されるソフトウェア１３３におけるインストラクション１３１（図２参照）により実現される。ソフトウェアのインストラクション１３１は、それぞれが少なくとも１つの特有のタスクを実行するための、少なくとも１つのコードモジュールとして形成されても良い。ソフトウェアはまた、２つの別個の部分に分割されても良い。その場合、第１の部分及び対応するコードモジュールは、記載される方法を実行し、第２の部分及び対応するコードモジュールは、第１の部分とユーザとの間のユーザインタフェースを管理する。
【００２１】
ソフトウェアは、例えば以下に記載するストレージデバイスを含むコンピュータ読取可能な媒体に記憶されても良い。ソフトウェア１３３は、一般的には、ＨＤＤ１１０若しくはメモリ１０６に記憶される。ソフトウェアは、コンピュータ読取可能な媒体からコンピュータシステム１００にロードされ、そして、コンピュータシステム１００により実行される。従って、例えば、ソフトウェア１３３は、光ディスクドライブ１１２により読み出される光学的に読取可能なディスクストレージ媒体（例えば、ＣＤ−ＲＯＭ）１２５上に記憶されても良い。コンピュータ読取可能な媒体上に記録されたそのようなソフトウェアやコンピュータプログラムは、コンピュータプログラムプロダクトである。コンピュータシステム１００におけるコンピュータプログラムプロダクトの使用は、好ましくは、記載される方法を実行するための有利な装置をもたらす。
【００２２】
幾つかの例では、アプリケーションプログラム１３３は、少なくとも１つのＣＤ−ＲＯＭ１２５上にコード化され、対応するドライブ１１２を介して読み出されても良い。若しくは代わりに、ネットワーク１２０若しくは１２２からユーザにより読み出されても良い。さらには、ソフトウェアはまた、他のコンピュータ読取可能な媒体からコンピュータシステム１００にロードされても良い。コンピュータ読取可能なストレージ媒体は、記録されたインストラクション及び／又はデータを、実行及び／又は処理用のコンピュータシステム１００へ提供するようないかなる不揮発性の有形のストレージ媒体にも言及する。そのようなストレージ媒体の例は、フロッピーディスク、磁気テープ、ＣＤ−ＲＯＭ、ＤＶＤ、ブルーレイ（商標）ディスク、ハードディスクドライブ、ＲＯＭ若しくは集積回路、ＵＳＢメモリ、磁気光ディスク、若しくは、ＰＣＭＣＩＡカード等のコンピュータ読取可能なカードを、それらのようなデバイスがコンピュータモジュール１０１の内部であろうと外部であろうと含むものである。ソフトウェア、アプリケーションプログラム、インストラクション及び／又はデータのコンピュータモジュール１０１への提供に関わり得る一時的若しくは非有形のコンピュータ読取可能な伝送媒体の例は、他のコンピュータ若しくはネットワーク化されたデバイスへのネットワーク接続と同様に、無線若しくは赤外線伝送チャネルを含む。そして、インターネット若しくはイントラネットは、ウェブサイト等で記録された情報や電子メール送信を含む。
【００２３】
アプリケーションプログラム１３３の第２の部分及び上述の対応するコードモジュールは、レンダリングされ、若しくは、ディスプレイ１１４上に別の方法で表される少なくとも１つのグラフィカルユーザインタフェース（ＧＵＩ）を実施するように実行されても良い。一般的に、キーボード１０２とマウス１０３の操作を通して、コンピュータシステム１００のユーザ及びアプリケーションは、制御コマンド及び／又は入力を、ＧＵＩと関連するアプリケーションへ提供するために、機能上適応可能な方法でインタフェースを操作しても良い。また、スピーカ１１７を介した音声プロンプト出力を利用したオーディオインタフェースや、マイクロホン１８０を介したユーザボイスコマンド入力のような、機能上適応可能なユーザインタフェースの他の形式が実行されても良い。
【００２４】
図２は、プロセッサ１０５とメモリ１３４の詳細なブロックダイアグラムを示す図である。メモリ１３４は、図１のコンピュータモジュール１０１によりアクセスされ得る全てのメモリモジュール（ＨＤＤ１０９と半導体メモリ１０６を含む）の論理的な集合体を表す。
【００２５】
コンピュータモジュール１０１が最初に電源投入されたとき、電源投入セルフテスト（ＰＯＳＴ）プログラム１５０が実行される。ＰＯＳＴプログラム１５０は、一般的には、図１の半導体メモリ１０６のＲＯＭ１４９に記憶されている。ソフトウェアを記憶するＲＯＭ１４９のようなハードウェアデバイスは、ファームウェアとして称される場合がある。ＰＯＳＴプログラム１５０は、適切な機能を確認するためにコンピュータモジュール１０１内のハードウェアを試験し、一般的には、正しい動作のために、プロセッサ１０５、メモリ１３４（１０９、１０６）、基本入出力システムソフトウェア（ＢＩＯＳ）モジュール１５１をチェックし、一般的には、ＲＯＭ１４９に記憶される。ＰＯＳＴプログラム１５０が成功裡に動作すると、ＢＩＯＳ１５１は、図１のハードディスクドライブ１１０を作動させる。ハードディスクドライブ１１０の作動は、ハードディスクドライブ１１０上で常駐するブートストラップローダープログラム１５２を、プロセッサ１０５を介して実行させる。このことにより、オペレーティングシステム１５３が動作を開始するときに、オペレーティングシステム１５３がＲＡＭメモリ１０６にロードされる。オペレーティングシステム１５３は、プロセッサ管理、メモリ管理、デバイス管理、ストレージ管理、ソフトウェアアプリケーションインタフェース、汎用的なユーザインタフェースを含む様々な高レベルの機能を実現する、プロセッサ１０５により実行可能なシステムレベルアプリケーションである。
【００２６】
オペレーティングシステム１５３は、各プロセス若しくはコンピュータモジュール１０１上で動作するアプリケーションが他のプロセスに割り当てられるメモリと衝突することなく実行するための十分なメモリを有することを確実にするため、メモリ１３４（１０９、１０６）を管理する。さらに、各プロセスが効果的に動作し得るために、図１のシステム１００において有効なメモリと異なるタイプが適切に用いられる必要がある。従って、集合化されたメモリ１３４は、適切なメモリセグメントがどのように割り当てられるかを意図しておらず（さもなければ、述べられなければ）、むしろ、コンピュータシステム１００によりアクセス可能なメモリの汎用的な図を提供してどのように用いられるかを示すことを意図している。
【００２７】
図２に示すように、プロセッサ１０５は、多くの機能モジュールを含み、機能モジュールは、コントロールユニット１３９、算術論理ユニット（ＡＬＵ）１４０、しばしばキャッシュメモリと呼ばれるローカル若しくは内部メモリ１４８を含む。キャッシュメモリ１４８は、一般的には、レジスタセクションにおいて多くのストレージレジスタ１４４〜１４６を含む。少なくとも１つの内部バス１４１は、機能的に、これらの機能モジュールを相互接続する。プロセッサ１０５はまた、一般的には、接続１１８を用いて、システムバス１０４を介して外部デバイスと通信する少なくとも１つのインタフェース１４２を有する。メモリ１３４は、接続１１９を用いてバス１０４に結合されている。
【００２８】
アプリケーションプログラム１３３は、連続するインストラクションを含み、インストラクションは、一般的な分岐及びループのインストラクションを含んでも良い。プログラム１３３はまた、プログラム１３３の実行において用いられるデータ１３２を含む。インストラクション１３１及びデータ１３２は、記憶場所１２８、１２９、及び１３０と、１３５、１３６、及び１３７とのそれぞれに格納されている。インストラクション１３１の相対的サイズ及び記憶場所１２８〜１３０に応じて、特定のインストラクションが記憶場所１３０で示されるインストラクションで記述される単一の記憶場所に格納されても良い。また、記憶位置１２８及び１２９で示されるインストラクションセグメントにより記述されるように、各々が別個の記憶位置に格納される多くの部分にインストラクションがセグメント化されても良い。
【００２９】
一般的には、プロセッサ１０５により、実行される一連のインストラクションが与えられる。プロセッサ１０５は、他のインストラクションセットを実行することにより反応する後続の入力を待機する。各入力は、少なくとも１つのソースから提供され、ソースは、図１に示される、入力デバイス１０２、１０３の少なくとも１つにより生成されたデータ、ネットワーク１２０、１０２の１つを介して外部ソースから受信したデータ、ストレージデバイス１０６、１０９の１つから受信したデータ、若しくは、対応するリーダー１１２に挿入されたストレージ媒体１２５から受信したデータ、を含む。インストラクションセットの実行は、幾つかのケースにおいては、データの出力をもたらしても良い。実行はまた、データ若しくは変数をメモリ１３４に格納することを含んでも良い。
【００３０】
開示される構成は、入力変数１５４を用い、入力変数１５４は、メモリ１３４における対応する記憶場所１５５、１５６、１５７に格納される。開示される構成は、出力変数１６１を生成し、出力変数１６１は、メモリ１３４における対応する記憶場所１６２、１６３、１６４に格納される。中間変数１５８は、記憶場所１５９、１６０、１６６、１６７に格納されても良い。
【００３１】
図２のプロセッサ１０５に言及すると、レジスタ１４４、１４５、１４６、算術論理ユニット（ＡＬＵ）１４０、コントロールユニット１３９は、協調して、プログラム１３３を構成するインストラクションセットにおけるインストラクションごとに「フェッチ、デコード、実行」のサイクルを実行するために必要とされるマイクロオペレーションのシーケンスを実行する。それぞれの、フェッチ、デコード、実行のサイクルは、
記憶位置１２８、１２９、１３０からインストラクション１３１をフェッチ若しくは読み出すフェッチオペレーションと、
コントロールユニット１３９がどのインストラクションがフェッチされたかを判定するデコードオペレーションと、
コントロールユニット１３９及び／又はＡＬＵ１４０がインストラクションを実行する実行オペレーションと、を含む。
【００３２】
その後、次のインストラクションについてのさらなるフェッチ、デコード、実行サイクルが実行されても良い。同様に、コントロールユニット１３９が値を記憶場所１３２に格納若しくは書き込むことにより、格納サイクルが実行されても良い。
【００３３】
図３から図８の処理における各ステップ若しくはサブステップは、プログラム１３３の少なくとも１つのセグメントに関連する。そして、図３から図８の処理における各ステップ若しくはサブステップは、フェッチ、デコードを実行し、プログラム１３３の記載されたセグメントについてのインストラクションセットにおけるインストラクションごとにサイクルを実行するように協調する、プロセッサ１０５内の、レジスタセクション１４４、１４５、１４７、ＡＬＵ１４０、コントロールユニット１３９により実行される。
【００３４】
記載された方法は、また、記載された方法の機能若しくは副次機能を実行する少なくとも１つの集積回路のような専用ハードウェアにおいて実行されても良い。そのような専用ハードウェアは、グラフィックプロセッサ、デジタル信号処理プロセッサ、若しくは、少なくとも１つのマイクロプロセッサ及び関連するメモリを含んでも良い。
【００３５】
図３は、入力ビデオシーケンスの少なくとも１つのビデオフレームを選択する方法３００を示すフローダイアグラムである。方法３００は、ビデオシーケンスのビデオフレームで示されるサブジェクト間の関与の検出に基づいて、ビデオシーケンスから所望のフレームを判定する。
【００３６】
ビデオシーケンスとスチール写真技術の両方から魅力的なフレームを判定するために多くの要素が用いられても良い。鮮鋭さ及び許容可能な彩度のような従来の画像品質要素が、画像を選択するために用いられても良い。加えて、行動、微笑、ありきたりなコンテンツ（例えば、誕生日にろうそくを吹き消す子供）を含む、より抽象的な要素が、もし検出されるのであれば、画像を選択するために用いられても良い。
【００３７】
画像において魅力的なコンテンツの１つのクラスは、互いに活発に関与する人々である。活発な関与とは、例えば、画像において、互いに話したり、微笑んだりしているところをキャプチャされた人々を含む。
【００３８】
方法３００は、既存の構成と比較すると、計算的に安価な技術を提供する。方法３００は、人々がビデオシーケンスにおいてどこで関与を確立しているかを判定し、関与の期間に基づいて、ビデオシーケンスのフレーム若しくはセグメントを選択する。上述のように、各ビデオセグメントは、ビデオシーケンスの一連のシーケンシャルなビデオフレームを含む。
【００３９】
用語「凝視固定」は、以下詳述するように、関与の期間に基づいて、方法３００に従って検出された項目に言及する。記載されるように、凝視固定は、所定の凝視固定の閾値期間に依存しても良い。
【００４０】
用語「凝視固定」は、眼の方向の追跡に言及する凝視検出と解釈されるべきではない。しかしながら、深度検出とともに凝視検出は、後述するように、顔の向きを監視する中で代わりのステップとして用いられても良い。方法３００は、凝視検出及び深度検出の正確性及び複雑性の欠如の理由から、ビデオシーケンスのフレームを選択するにおいて、凝視検出及び深度検出の単なる使用に対しての有利性を提供する。
【００４１】
方法３００は、少なくとも１つの所望の、入力ビデオシーケンスから抽出されたばらばらのビデオセグメントをマージすることにより、図１のコンピュータシステム１００を用いてビデオサマリを生成して表示するために用いられても良い。
【００４２】
方法３００はまた、印刷用のビデオシーケンス（例えば、フォトブックを生成する目的用）の抽出されたビデオセグメントから、少なくとも１つの所望のフレームを選択するために用いられても良い。少なくとも１つのビデオフレームは、ビデオフレームの入力されたシーケンスから表示され若しくは印刷される。
【００４３】
方法３００は、図３を参照し例を通して記載される。方法３００は、プロセッサ１０５による実行において制御されるハードディスクドライブ１１０に常駐するソフトウェアアプリケーションプログラム１３３の少なくとも１つのソフトウェアコードモジュールとして実現されても良い。
【００４４】
方法３００に対する入力は、発展的なイベント若しくはシーンを示す複数のビデオフレームを含むビデオシーケンスである。入力ビデオシーケンスは、ビデオ信号と同期した少なくとも１つの複数音声チャネルを含んでも良い。入力ビデオシーケンスは、単一の「ショット」（例えば、テーク（take））を含み、ショットは、ビデオフレームの連続するシーケンスである（例えば、カメラを変えることなく若しくはビデオシーケンスのフレームのキャプチャをポーズ／停止することなくキャプチャされた）。他のケースにおいて、ビデオシーケンスは、複数のショットを含んでも良い。
【００４５】
幾つかのケースにおいて、入力ビデオシーケンスは、ホームビデオであっても良い。代わりに、ビデオシーケンスは、映画撮影技術のルールに則って専門的に生成されたビデオであっても良い。
【００４６】
方法３００は、候補ビデオセグメント検出ステップ３１０で開始し、複数の（２以上の）顔を含むシーンを示す一連の候補ビデオセグメントが、プロセッサ１０５の実行の下、検出される。各候補ビデオセグメントは、入力ビデオシーケンスの一部分を表す。入力ビデオシーケンスの各部分は、ビデオシーケンスの一連のシーケンシャルビデオフレームを含む。
【００４７】
１つの構成において、ステップ３１０で検出された顔は、所定のサイズ閾値より大きいことを要求されても良い。ステップ３１０で実行される、候補ビデオセグメントの検出方法４００は、図４を参照しながら詳細を後述する。
【００４８】
ステップ３１０の出力は、一連の候補ビデオセグメント、候補ビデオセグメントの各シーケンシャルフレームにおいて検出された顔のサイズ、位置、及び向きである。図５は、そのようなビデオセグメント５００の１つの特定のフレーム５１０の例、及びフレーム５１０において検出された顔を示す。図５の例では、シーンにおいて３人の人物がいる。人物５２０と人物５３０の顔が方法３００に従って検出され、それぞれ、破線矩形５２５及び５３５により強調されている。フレーム５１０の左上近傍に現れている人物５４０の顔は、所定のサイズ閾値より小さく、そのため、方法３００によって検出されていない。代わりの構成では、フレームの中央領域範囲内にある顔のみが検出用の候補である。人物５４０の顔は、フレーム５１０の中央部分５５０の外側に位置する。中央部分５５０は、図５においては、フレーム５１０の内部の影付き領域により図示されている。１つの構成において、人物５４０の顔の位置は、人物５４０を検出しないための付加的な理由を提供するであろう。人物５４０の顔は、検出用の候補として考慮されずに無視される。
【００４９】
図５の例では、各検出された顔は、フレーム５１０において検出された顔の位置、サイズ、及び向き（例えば、フレーム５１０をキャプチャするために用いられるカメラに関連して）を示す一連の値と関連している。顔の向きについての正値は、フレーム５１０の右手側を向いた検出された顔を表す。顔の向きについての負値は、フレーム５１０の左手側を向いた検出された顔を表す。検出された顔の位置、サイズ、及び向きの詳細は、図７を参照しながら以下に記載する。
【００５０】
方法３００は、顔追跡ステップ３２０において継続し、検出された顔のそれぞれの相対的な位置及び向きが、候補ビデオシーケンスを表す一連の後続するビデオフレーム上で追跡される。検出された顔の位置及び向きは、候補ビデオセグメント内の全てのフレーム上で追跡される。以下記載するように、検出された顔の向きは、ステップ３２０で追跡され、検出された顔のうち第１の顔（即ち、第１の検出された顔）が、検出された顔のうち第２の顔（即ち、第２の検出された顔）の方を向いているかが判定される。ステップ３２０で実行される、顔を追跡する方法６００は、図６を参照しながら詳細を後述する。ステップ３２０の出力は、少なくとも２つの顔を含むシーン及び２つの顔の間での相対的な顔の向きを示す候補ビデオセグメントのサブセットである。
【００５１】
凝視コンタクト検出ステップ３３０が顔追跡ステップ３２０に続く。ステップ３３０において、現在の候補ビデオセグメント内で識別され追跡された全ての顔のうち、２つの検出された顔がビデオセグメントの連続したビデオフレームにおいて互いに向き合っていき、互いに向き合った後、その２つの検出された顔が互いに向き合っている場合（即ち、凝視コンタクト）、方法３００は、凝視固定ステップ３４０への「Ｙｅｓ」の矢印に従う。さもなければ、方法３００は、「Ｎｏ」の矢印に従って３２０へ戻り、顔の位置及び向きの追跡が現在のビデオセグメントで継続される。１つの構成において、検出された顔のうち第１の顔が第２の顔の方に回転し、一方、第２の顔は静止し、第１の顔の回転後、一対の顔が互いに向き合っている場合、方法３００は、再び、ステップ３４０への「Ｙｅｓ」の矢印に従う。ステップ３３０で実行される、凝視コンタクトを検出する方法８００は、図８を参照しながら詳細を後述する。
【００５２】
１つの構成において、凝視コンタクトは、候補ビデオセグメントにおける２つの顔の位置及びそれらの相対的な顔の向きの位置に基づいてステップ３３０において判定される。図８を参照しながら詳細を後述する。
【００５３】
１つの構成において、フレームごとでのステップ３３０での凝視コンタクト検出を実行する代わりに、現在のフレームにおいて２つの顔の間で凝視コンタクトがない場合、方法３００はまず、第２の顔の円錐状の視野表面からの第１の顔の眼の最小距離を判定しても良い。円錐状の視野は、人間の眼の注目する円錐状に基づきおよそ５５度のサイズを有する人間の視覚的注意の範囲の表現である。第１の顔の円錐状の視野表面からの第２の顔の眼の対応する最小距離がその後決定される。最小距離の合計が従前にテストされたフレームの合計よりも大きい場合、方法３００は、テストの対象となる次のフレームまで、所定数のフレームをスキップしても良い。さもなければ、方法３００は、最小距離の合計に比例して多くのフレームをスキップしても良い。
【００５４】
凝視コンタクト検出ステップ３３０に続いて、方法３００は、凝視固定判定ステップ３４０に進む。ステップ３４０では、凝視コンタクトが最初にステップ３３０で検出されたフレームに続く少なくとも所定数のフレームＮｇａｚｅについて、２つの顔が互いに向き合っているままである場合、凝視固定が２つの顔の間で確立されていると考えられる。フレームＮｇａｚｅに等しい期間が、「凝視固定閾値」として称されても良い。ステップ３４０において少なくとも所定数のフレームＮｇａｚｅについて２つの顔が互いに向き合っているままである場合、方法３００は、選択ステップ３５０への「Ｙｅｓ」の矢印に従う。さもなければ、方法３００は、ステップ３２０に戻る。
【００５５】
ステップ３４０は、第１及び第２の検出された顔の凝視固定を特定する所定数のフレームＮｇａｚｅについて第１及び第２の検出された顔が互いを向いているかを判定するため、ステップ３２０において判定された検出された顔の追跡された向きを用いる。
【００５６】
ステップ３５０において、現在の候補ビデオセグメントから凝視固定をキャプチャする少なくとも１つのビデオフレームが、プロセッサ１０５の実行の下、選択される。１つの構成において、所定の凝視固定閾値は、１と１／２秒として定義される（例えば、３０フレーム毎秒のビデオについて４５フレームのＮｇａｚｅに相当する）。代わりの構成において、凝視固定閾値は、現在の候補ビデオセグメントにおける対象物の頭の向きの動きの平均速度に基づいて調整されても良い。他の構成において、凝視固定閾値は、イベントの種類に依存しても良い。例えば、小さい凝視固定閾値が、スポーツ及びアクションシーンについてより適切であっても良い。しかしながら、大きい凝視固定閾値が、結婚式に用いられても良い。
【００５７】
選択ステップ３５０において、少なくとも１つのビデオフレームは、各候補ビデオセグメントから選択される。選択されたビデオフレームは、以下記載するように、候補ビデオセグメントから関与期間をキャプチャする。選択されたビデオフレームは、その後に、フォトブックに印刷されても良い。他の例として、選択されたビデオフレームは、ステップ３１０で入力された、候補ビデオセグメント若しくはビデオシーケンスの概略説明を表示するために用いられても良い。
【００５８】
１つの構成において、２つの顔が凝視コンタクトを有していると判定され、そして、ステップ３３０及び３４０で判定されたように所定の凝視固定閾値について互いに向き合っているままであると判定され凝視コンタクトであると判定された各候補ビデオセグメントの中央において１つのフレームが選択される。各選択されたビデオフレームは、検出された顔の凝視固定をキャプチャする。
【００５９】
代わりの構成において、にじみ、コントラスト、鮮鋭さ、露光、及び、写真の構図のような審美的な画像品質の指標に基づいて、ステップ３５０において少なくとも１つのフレームが選択される。他の構成において、現在の候補ビデオセグメント内の２つの顔が著しく異なるサイズを有する場合、方法３００は、ビデオ全体から選択されたフレームがほとんどないのであれば、現在の候補ビデオセグメントから１つのフレームを選択しても良い。
【００６０】
次の決定ステップ３６０において、方法３００は、処理を必要とするさらなる候補ビデオセグメントがあるかを判定する。少なくとも１つの候補ビデオセグメントが依然として処理されていない場合、方法３００は、「Ｙｅｓ」の矢印に従い、ステップ３２０に戻り、次の候補ビデオセグメントを処理する。さもなければ、方法３００は、終了する。
【００６１】
ステップ３４０に戻り、凝視コンタクトがステップ３３０において検出された後、所定数より少ないフレームにおいて２つの顔が互いに向きを変えた場合、方法３００は、「Ｎｏ」の矢印に従い、ステップ３２０に戻る。方法３００は、その後、２つの顔が後のフレームにおいて再び互いの方を向いていくかを検出するための顔追跡を再開する。
【００６２】
入力ビデオシーケンスから少なくとも１つのビデオフレーム（例えば、所望のビデオセグメント若しくはフレーム）を選択する方法３００を記載したが、ステップ３１０で実行される、候補ビデオセグメントを検出する方法４００は、図４を参照しながら詳細を後述する。方法４００は、入力ビデオシーケンスから少なくとも２つの顔を有する候補ビデオセグメントを生成する。方法４００は、プロセッサ１０５による実行において制御されるハードディスクドライブ１１０に常駐するソフトウェアアプリケーションプログラム１３３の少なくとも１つのソフトウェアコードモジュールとして実現されても良い。
【００６３】
方法４００は、読取ステップ４１０で開始する。一般的には、ビデオやビデオショットの開始において入力ビデオシーケンスから連続したビデオフレームが、プロセッサ１０５の実行の下、読み取られる。
【００６４】
その後、チェックステップ４１５において、処理対象のビデオフレームがない場合、方法４００は、終了する。さもなければ、処理対象の入力ビデオシーケンスのさらなるフレームがある場合、「Ｙｅｓ」の矢印に従って検出ステップ４２５に進む。
【００６５】
検出ステップ４２５において、顔検出処理が、現在のビデオフレーム内のあるサイズより大きい顔を検出するように実行される。ステップ４２５において実行される顔検出処理は、現在のビデオフレーム内の各検出された顔のサイズ、位置、及び向きを判定する。顔検出処理は、検出された顔に基づいて、ビデオフレームで示された特定の人物が誰であるかを必ずしも識別しなくても良い。現在のフレームにおける顔のサイズ、位置、及び向きと、現在のフレームの詳細（即ち、顔が検出されたフレーム）が、ステップ４２５で判定される。適切な顔検出アルゴリズムのいかなるものでも、ステップ４２５で用いられて良い。顔のサイズ及び位置は、そのようなアルゴリズムから取得され得る。１つの構成において、ポーズ検出が、Ｉｎｔｅｌ（登録商標）ＲｅａｌＳｅｎｓｅ（商標）ＳＤＫを用いて、ステップ４２５で実行されても良い。
【００６６】
１つの構成において、ステップ４２５で用いられる最小の顔のサイズは、入力ビデオシーケンスの解像度に基づいている。例えば、最小のサイズは、検出された顔がフレームの重要な部分を占め且つ十分に大きいように、また、顔がビデオディスプレイ１１４上に表示されたとき若しくは１枚の紙に印刷されたときに人間により顔が容易に認識されるように設定されても良い。１つの構成において、標準のデフィニションビデオ（例えば、６４０画素×３６０画素）について、最小の顔のサイズは、８０画素幅×８０画素高のように設定されても良い。同様に、高デフィニションビデオ（例えば、１２８０画素×７２０画素）について、最小の顔のサイズは、１６０画素×１６０画素に線形的にスケールされる。１つの構成において、ステップ４２５で用いられる最小の顔のサイズは、顔検出処理の精度に依存しても良い。他の構成において、ステップ４２５において実行される顔検出処理は、各検出された個人の顔をさらに認識しても良く、認識された個人の顔のサイズ、位置、向きのみが判定される。
【００６７】
判定ステップ４３０がステップ４２５に続き、現在のビデオフレームにおいて検出された顔の数が、プロセッサ１０５の実行の下、判定される。現在のビデオフレームは、フレームが少なくとも２つの顔を含む場合、マークされる。
【００６８】
決定ステップ４３５において、現在のビデオフレームにおいて少なくとも２つの顔がある場合、方法４００は、決定ステップ４４５に進む。さもなければ、方法４００は、ステップ４４０に進む。
【００６９】
ステップ４４５において、新しい現在の候補セグメントが生成された場合（例えば、メモリ１０６において）、方法４００は、ステップ４６０に進み、現在のビデオフレームが候補セグメントに追加される。さもなければ、方法４００は、ステップ４５５に進み、新しい候補セグメントが生成され、メモリ１０６内に格納される。ステップ４５５から、方法４００は、その後、ステップ４６０に進み、現在のビデオフレームを、新しく生成された候補セグメントに追加する。
【００７０】
決定ステップ４３５において、現在のビデオフレームがビデオフレーム内に少なくとも２つの顔を有していない場合、方法４００は、さらなる決定ステップ４４０に進む。ステップ４４０においてメモリ１０６内に構成された現在の候補セグメントがある場合、方法４００は、出力ステップ４５０に進む。さもなければ、方法４００は、ステップ４１０に戻る。
【００７１】
ステップ４５０において、現在の候補セグメントは、セグメントの存続期間が所定の時間閾値より長い場合、出力される（例えば、メモリ１０６に）。所定の時間閾値より短い存続であるビデオセグメントは、破棄される。ステップ４５０の後、方法４００は、ステップ４１０に戻る。
【００７２】
１つの構成において、所定の時間閾値は、５秒に設定される。一般的なビデオについて３０フレーム毎秒では、５秒がおよそ１５０フレームに相当する。代わりの構成において、所定の時間閾値が、入力ビデオシーケンスのイベント区分に適応される。例えば、より小さい閾値がスポーツ及びアクションシーンに用いられても良く、より大きい閾値が結婚式や卒業式に用いられても良い。
【００７３】
方法４００の出力は、候補ビデオセグメントの各フレームにおける、少なくとも２つの顔と、各検出された顔のサイズ、位置、及び向きと、を含む候補ビデオセグメントのリストである。
【００７４】
ステップ３２０（図３）で実行される顔を追跡する方法６００は、図６のフローダイアグラムを参照しながら詳細を後述する。方法６００は、候補ビデオセグメントにおける一連のビデオフレーム上の２つの検出された顔の向きを追跡する。方法６００の出力は、候補セグメントの入力リストの候補ビデオセグメントのサブセットであり、サブセットの候補セグメントのそれぞれは、少なくとも２つの顔と、２つの顔の間の相対的な顔の向きとを含む。方法６００は、プロセッサ１０５による実行において制御されるハードディスクドライブ１１０に常駐するソフトウェアアプリケーションプログラム１３３の少なくとも１つのソフトウェアコードモジュールとして実行されても良い。
【００７５】
方法６００は、追跡ステップ６１０で開始し、候補ビデオセグメントの入力リストの各候補ビデオセグメント内で複数のビデオフレームに渡って、顔が追跡される。ビデオシーケンス内で複数のフレームに渡って顔を追跡するための様々な方法がある。
【００７６】
１つの構成において、現在のビデオフレームにおける顔が、従前のフレームから検出された顔のサイズ及び位置のみに基づいて追跡される。１つの構成において、従前のフレームから検出された顔のサイズ及び位置に基づいて顔が追跡され、方法３００のステップ３１０の出力は、ステップ６１０で追跡するために必要とされる全ての情報を提供する。１つの構成において、シーンにおいてより多くの顔がある場合若しくは２つの顔が互いに近い場合、特にマッチングの精度を改善するために顔の向きが用いられる。他の構成において、髪の色、皮膚の色、眼鏡等の高レベルの特徴が顔の追跡を容易にするために用いられても良い。
【００７７】
他の構成において、顔認識が図４のステップ４２５で用いられた場合、複数のフレームに渡って検出された顔は、検出された顔に対応する人物の同一性を整合させることにより、より効果的に整合させることができる。
【００７８】
ステップ６１０に続いて、方法６００は、選択ステップ６２０において、顔のペアが、各候補ビデオセグメントにおける顔全体から選択される。例えば、３つの顔Ａ、Ｂ、Ｃがある場合、顔のペアは、ＡＢ、ＡＣ、及びＢＣとなる。顔のペアの組み合わせは、顔の数が増えるにつれ、急激に増加する。しかしながら、より小さい顔からサイズをフィルタリングすることにより、ペアの数は、計算上、問題となって現れない。他の代わりの構成において、２つの最大の顔のみが候補ビデオセグメントについて評価される。
【００７９】
ステップ６２０の出力は、顔のペアのセットである。ステップ６２０に続いて、判定ステップ６３０で、顔のペアそれぞれに関連するタイムスパンが、プロセッサ１０５の実行の下、判定される。タイムスパンは、候補セグメントの１つの中でペアの個々の顔が追跡された期間の共通部分として判定される。また、関連する期間が、ステップ４５０の最小の所定時間閾値より小さい場合、顔のペアが破棄される。幾つかの顔のペアは、共通部分となるいかなる期間も有さないかもしれない。例えば、１つの顔が視野に入り、ペアのうちの第２の顔が視野に入る前に、去っていく場合、顔は、共通部分となるいかなる期間も有さない場合がある。他の構成において、２つの顔の間に位置する付加的な顔がある期間について、付加的なフィルタリングが顔のペアを除去するために行われても良い。
【００８０】
その後、出力ステップ６４０において、最小の所定時間閾値より大きいタイムスパンを有する残った顔のペアのみが方法６００により出力される。ステップ６４０の出力はまた、ペアにおける各顔の位置、サイズ、及び向きと、各残った顔のペアの２つの顔の間での相対的な顔の向きとを含む。ステップ６４０で出力される情報は、図３の方法３００により用いられ、２つの顔が互いを向いていくか否か、そして、２つの顔が凝視コンタクトを有するか否かを、ステップ３３０と３４０それぞれにおいて判定する。図７Ａから図７Ｅは、向き、位置、及びサイズの点を説明する顔の例を示す。記載の目的として、１つの図における人物の視点は、位置を述べる際に用いられる。例えば、図７Ａの人物７１６は、人物７１３の左側であると言われる。向きについても同様に、顔の奥行きは、人物の向きを述べる際に用いられる。図７Ｂにおいて、左側を向く顔は、正の角度を有し、右側を向く顔は、負の角度を有する。
【００８１】
図７Ａは、候補セグメント内のフレーム期間（即ち、フレーム１からフレーム２０）上の顔のペアを示す。フレーム１からフレーム５まで、人物Ｂの顔は、人物Ａの方を向いていく。フレーム３からフレーム７まで、人物Ａは、人物Ｂの方を向いていく。フレーム７からフレーム２０まで、人物Ａの顔と人物Ｂの顔は、凝視コンタクトである。人物Ａと人物Ｂが互いに向き合う１４のフレームに相当する期間が所定の凝視固定閾値より大きい場合、人物Ａの顔と人物Ｂの顔は、凝視固定状態であると考えられる。
【００８２】
図７Ｂは、顔の向きを表すために用いられる角度を示す。前方を向くことは、０度の角度であると考えられる。ゼロより大きい角度（即ち、＞０）は、左側を向く顔を示し、ゼロより小さい角度（即ち、＜０）は、右側を向く顔を示す。９０度の角度及び負の９０度（−９０）は、横の方を向く顔である。そして、左の７１６上の負の９０度（−９０）の角度を有する顔と、左の７１３上の９０度（９０）の角度を有する顔は、互いに向き合う候補である。顔が左を向いて後ろ側であれば、角度は、９０度より大きく１８０度より小さい角度まで拡張可能である。また、顔が右を向いて後ろ側であれば、負の９０度より小さく負の１８０度より大きい角度まで拡張可能である。顔の角度間の絶対値が１８０度に等しい場合、顔は凝視コンタクトであり、その場合、顔の相対的な位置は、それらの向きと一貫する。
【００８３】
図７Ｃは、顔が異なる深度にあることを判定するために用いられ得る異なるサイズの顔を示す。図７Ｃにおいて異なる深度にある顔は、たとえ顔７５１及び７５２の向き及び位置が顔７１３及び７１６と同じであっても、凝視コンタクトとはみなされない。
【００８４】
図７Ｄは、顔７４２及び７４６が位置及び向きを有する構成であり、顔７４２及び７４６は、凝視コンタクトである。しかしながら、第３の顔７４４が顔７４２及び７４６に対して、類似の顔サイズを有し、２つの顔を分けている。従って、顔７４２及び７４６は、凝視コンタクトとはみなされない。
【００８５】
図７Ｅは、上方を見る顔と下方を見る顔を示す。図７Ｅにおける顔の位置は、顔及び頭の追跡ソフトウェアにより判定され得る。１つ若しくは両方の顔が図７Ｅで示される状態の１つであるとして検出された場合、顔は、凝視コンタクトとはみなされないであろう。
【００８６】
ステップ３３０（図３）で実行される、凝視コンタクトを検出する方法８００は、図８のフローダイアグラムを参照しながら詳細を後述する。方法８００は、凝視コンタクトが確立されたかを判定する。方法８００は、図７Ａから図７Ｅに例示される向きに従って記載される。
【００８７】
方法８００は、プロセッサ１０５による実行において制御されるハードディスクドライブ１１０に常駐するソフトウェアアプリケーションプログラム１３３の少なくとも１つのソフトウェアコードモジュールとして実行されても良い。
【００８８】
方法８００は、検出ステップ８１０で開始し、顔のペアが現在の候補セグメントの一連のフレーム上でモニタされる。一連のフレームにおける顔の向き及び位置が、プロセッサ１０５の実行の下、モニタされ、フレームにおける顔が互いの方を向いているかを検出する。例えば、図７Ａに示されるように、人物Ｂは、フレーム１で人物Ａの方を向き始めている。
【００８９】
図７Ａの例において、人物Ａ及び人物Ｂの顔の両方がモニタされ、そして、フレーム１とフレーム２の間の角度の変化に基づいてフレーム１で人物Ｂの顔が向き始めたことが検出される。人物Ａ及びＢの相対位置及び負の方向における角度差は、ステップ８１０において、人物Ｂの顔が人物Ａの顔に向かって向き始めていることを判定するために用いられる。
【００９０】
その後、決定ステップ８２０において、ステップ８１０においてモニタされている顔のペアが互いに向き始めた場合、Ｙｅｓの矢印に従って、モニタリングステップ８５０に進む。さもなければ、方法８００は、ステップ８３０に戻る。
【００９１】
ステップ８５０において、顔のペアの各顔の位置及び向きは、顔が互いに向いていくことを停止するまでモニタされる。図７Ａの例において、人物Ｂの顔の向いていく様子がモニタされ、そして、フレーム６において、人物Ｂの顔が向いていくことを停止したことが判定される。同時に、フレーム４において、人物Ａの顔が人物Ｂの顔の方を向き始めることが検出される。
【００９２】
図７Ａの例において、フレーム４と５の間では、人物Ａの顔が一時的に向いていくことを停止している。方法８００は、実質的には、人物Ａの顔が人物Ｂの顔の方を向いていく中での一時的な一貫性のなさに対して、向いていくことをスムース化することで対処するように構成される。同様に、人物Ａ及び人物Ｂの顔が異なった時間に向き始め、異なった時間に向き終わることが記載されるであろう。時間の一貫性のなさについての適切な閾値が、人物Ａ及び人物Ｂのアクションが同時とみなされ得るかを判定するように設定されても良い。図７Ａの例において、フレーム８において、人物Ａ及び人物Ｂの顔は向くことを停止している。
【００９３】
方法８００は、ステップ８５０に続いて判定ステップ８６０に進み、顔が凝視コンタクトであるかを判定する。図７Ａから図７Ｅに従って上述したように、顔が凝視コンタクトであるかを判定するために用いられる要素は、例えば、顔の位置、顔の向き、顔の深度を含む。１つの構成において、検出された顔の第１の顔（例えば、人物Ａの顔）は、検出された顔の第２の顔（例えば、人物Ｂの顔）に対してわずかに前方を向いていても良く、及び／又は、第２の顔は、第１の顔に対してわずかに後方を向いていても良い。そして、顔はなお、凝視コンタクトであると判定されても良い。
【００９４】
決定ステップ８７０において、顔が凝視コンタクトでない場合、方法８００は、ＮＯの矢印に従って、決定ステップ８３０に進む。さもなければ、方法８００は、ステップ８８０に進む。
【００９５】
ステップ８３０において、処理対象の現在の候補セグメントのフレームがまだある場合には、方法８００は、ステップ８１０に戻る。さもなければ、処理対象の現在の候補セグメントのさらなるフレームがない場合、方法８００は、出力ステップ８４０において、凝視コンタクトが検出されなかったということを出力する。
【００９６】
ステップ８６０の後、検出された凝視コンタクトがあった場合、決定ステップ８７０において、方法８００は、Ｙｅｓの矢印に従って、決定ステップ８８０に進む。１つの構成において、凝視コンタクトがあると確信して確立される前に、固定の最小のターニング（turning）期間が満たされることが要求される。例えば、図７Ａは、１／４秒の期間に等しい、向いていく７つのフレームの期間を示す。１つの構成において、最小のターニング期間が、１秒若しくはそれより長い時間に設定される。１つの代わりの構成において、最小の閾値は要求されない。更なる代わりの構成において、最小のターニング時間は可変である。最小の閾値は、凝視固定について上記で述べたことと似た要素により決定されても良い。ターニング期間がステップ８８０において最小のターニング閾値を越える場合、方法８００は、凝視コンタクトが出力ステップ８９０において検出されたことを出力する。
【００９７】
産業上の利用可能性
述べた構成は、コンピュータ及びデータ処理産業、とりわけ、画像処理について適用される。
【００９８】
前述は、本発明の幾つかの実施形態についてのみ述べた。改良及び／又は変更が、本発明の範囲及び精神から逸脱することなく行われ得る。実施形態は、説明のためであっても限定的ではない。
【００９９】
本明細書の文脈において、用語”含む”は、”主に含み、必ずしももっぱらではない”、若しくは、”有する”若しくは”含む”を意味し、”のみで構成される”を意味していない。”含む”や”含む”のような用語”含む”の変形は、対応する変更した意味を有する。
【図１】
0006373446.tif 000002
【図２】
0006373446.tif 000003
【図３】
0006373446.tif 000004
【図４】
0006373446.tif 000005
【図５】
0006373446.tif 000006
【図６】
0006373446.tif 000007
【図７Ａ】
0006373446.tif 000008
【図７Ｂ】
0006373446.tif 000009
【図７Ｃ】
0006373446.tif 000010
【図７Ｄ】
0006373446.tif 000011
【図７Ｅ】
0006373446.tif 000012
【図８】
0006373446.tif 000013