(57)【特許請求の範囲】
【請求項１】
ビデオを時間的にセグメント化するための方法であって、前記方法は、
前記ビデオの複数の復号されたビデオフレームからサンプルビデオフレームを選択するステップと、
ニューラルネットワークモデルにより、トレーニング画像のコーパス上でアノテーションモデルをトレーニングするステップと、
前記トレーニングされたアノテーションモデルにより、前記選択されたサンプルビデオフレームの各々にアノテーションを付与するステップと、
前記選択されたサンプルビデオフレームの前記アノテーションに基づいて、前記選択されたサンプルビデオフレームを前記ビデオの各エンティティについての複数のセグメントへセグメント化するステップであって、前記ビデオのエンティティについてのセグメントは、前記ビデオの意味論的に意味のある時空間領域を表す、セグメント化するステップと、
前記ビデオの各エンティティの前記複数のセグメントに基づいて、前記ビデオの全体的な時間的セグメント化を生成するステップと、
を含む、方法。
【請求項２】
前記選択されたサンプルビデオフレームの各々にアノテーションを付与するステップは、
前記選択されたサンプルビデオフレームに対して前記トレーニングされたアノテーションモデルを適用するステップと、
前記トレーニングされたアノテーションモデルの前記適用に基づいて、前記選択されたサンプルビデオフレーム内に存在する1つまたは複数のエンティティを識別するステップであって、前記ビデオの識別されたエンティティは、前記選択されたサンプルビデオフレーム内の興味のあるオブジェクトを表す、識別するステップと、
各識別されたエンティティをアノテーションパラメータのセットによって表すステップと
を含む、請求項1に記載の方法。
【請求項３】
前記選択されたサンプルビデオフレーム内のエンティティについての前記アノテーションパラメータのセットは、前記エンティティの意味を説明する説明ラベルと、前記エンティティを含む前記選択されたサンプルビデオフレームの一部と、前記エンティティが正確に識別される尤度を示す信頼度スコアとを含む、請求項2に記載の方法。
【請求項４】
前記選択されたサンプルビデオフレームの前記アノテーションに基づいて、前記選択されたサンプルビデオフレームを前記ビデオの各エンティティについての複数のセグメントへセグメント化するステップは、
前記ビデオの各エンティティについて、
前記エンティティについての時系列を生成するステップであって、前記時系列は、前記エンティティと、前記エンティティの対応する信頼度スコアとを含む前記選択されたサンプルビデオフレームの複数のタイムスタンプを含む、生成するステップと、
前記エンティティの前記生成された時系列に平滑化関数を適用するステップと、
前記エンティティの平滑化された時系列の前記信頼度スコアに基づいて、前記エンティティを含む各セグメントについての境界を識別するステップと
を含む、請求項1に記載の方法。
【請求項５】
エンティティの前記生成された時系列に前記平滑化関数を適用するステップは、
前記エンティティの前記時系列に移動ウィンドウを適用するステップであって、前記移動ウィンドウは、サイズによって規定され、前記移動ウィンドウは、前記移動ウィンドウ内にあるタイムスタンプの複数の信頼度スコアを選択する、適用するステップと、
前記移動ウィンドウによって選択された前記信頼度スコアの平均信頼度スコアを計算するステップと
を含む、請求項4に記載の方法。
【請求項６】
エンティティについてのセグメントの境界を識別するステップは、
前記セグメントについての開始閾値を選択するステップであって、前記開始閾値は、前記セグメントの開始を示す、選択するステップと、
前記セグメントについての終了閾値を選択するステップであって、前記終了閾値は、前記セグメントの終了を示す、選択するステップと、
前記エンティティの前記平滑化された時系列の前記信頼度スコアと、前記開始閾値および前記終了閾値とを比較するステップと、
前記エンティティの前記平滑化された時系列の前記信頼度スコアの前記比較に基づいて、前記セグメントの前記境界を識別するステップと
を含む、請求項4に記載の方法。
【請求項７】
ビデオを時間的にセグメント化するための実行可能なコンピュータプログラム命令を記憶する、非一時的なコンピュータ読取可能な記憶媒体であって、前記コンピュータプログラム命令は、実行されると、コンピュータプロセッサに、
前記ビデオの複数の復号されたビデオフレームからサンプルビデオフレームを選択させる命令と、
ニューラルネットワークモデルにより、トレーニング画像のコーパス上でアノテーションモデルをトレーニングさせる命令と、
前記トレーニングされたアノテーションモデルにより、前記サンプルビデオフレームの各々にアノテーションを付与させる命令と、
前記選択されたサンプルビデオフレームの前記アノテーションに基づいて、前記選択されたサンプルビデオフレームを前記ビデオの各エンティティについての複数のセグメントへセグメント化させる命令であって、前記ビデオのエンティティについてのセグメントは、前記ビデオの意味論的に意味のある時空間領域を表す、セグメント化させる命令と、
前記ビデオの各エンティティの前記複数のセグメントに基づいて、前記ビデオの全体的な時間的セグメント化を生成させる命令と、
を含む、非一時的なコンピュータ読取可能な記憶媒体。
【請求項８】
前記選択されたサンプルビデオフレームの各々にアノテーションを付与させるための前記コンピュータプログラム命令は、実行されると、前記コンピュータプロセッサに、
前記選択されたサンプルビデオフレームに対して前記トレーニングされたアノテーションモデルを適用させる命令と、
前記トレーニングされたアノテーションモデルの前記適用に基づいて、前記選択されたサンプルビデオフレーム内に存在する1つまたは複数のエンティティを識別させる命令であって、前記ビデオの識別されたエンティティは、前記選択されたサンプルビデオフレーム内の興味のあるオブジェクトを表す、識別させる命令と、
各識別されたエンティティをアノテーションパラメータのセットによって表させる命令と
を含む、請求項7に記載のコンピュータ読取可能な記憶媒体。
【請求項９】
前記選択されたサンプルビデオフレーム内のエンティティについての前記アノテーションパラメータのセットは、前記エンティティの意味を説明する説明ラベルと、前記エンティティを含む前記選択されたサンプルビデオフレームの一部と、前記エンティティが正確に識別される尤度を示す信頼度スコアとを含む、請求項8に記載のコンピュータ読取可能な記憶媒体。
【請求項１０】
前記選択されたサンプルビデオフレームの前記アノテーションに基づいて、前記選択されたサンプルビデオフレームを前記ビデオの各エンティティについての複数のセグメントへセグメント化するための前記コンピュータプログラム命令は、実行されると、前記コンピュータプロセッサに、
前記ビデオの各エンティティについて、
前記エンティティについての時系列を生成させる命令であって、前記時系列は、前記エンティティと、前記エンティティの対応する信頼度スコアとを含む前記選択されたサンプルビデオフレームの複数のタイムスタンプを含む、生成させる命令と、
前記エンティティの前記生成された時系列に平滑化関数を適用させる命令と、
前記エンティティの平滑化された時系列の前記信頼度スコアに基づいて、前記エンティティを含む各セグメントについての境界を識別させる命令と
を含む、請求項7に記載のコンピュータ読取可能な記憶媒体。
【請求項１１】
エンティティの前記生成された時系列に前記平滑化関数を適用させるための前記コンピュータプログラム命令は、実行されると、前記コンピュータプロセッサに、
前記エンティティの前記時系列に移動ウィンドウを適用させる命令であって、前記移動ウィンドウは、サイズによって規定され、前記移動ウィンドウは、前記移動ウィンドウ内にあるタイムスタンプの複数の信頼度スコアを選択する、適用させる命令と、
前記移動ウィンドウによって選択された前記信頼度スコアの平均信頼度スコアを計算させる命令と
を含む、請求項10に記載のコンピュータ読取可能な記憶媒体。
【請求項１２】
エンティティについてのセグメントの境界を識別するための前記コンピュータプログラム命令は、実行されると、前記コンピュータプロセッサに、
前記セグメントについての開始閾値を選択させる命令あって、前記開始閾値は、前記セグメントの開始を示す、選択させる命令と、
前記セグメントについての終了閾値を選択させる命令であって、前記終了閾値は、前記セグメントの終了を示す、選択させる命令と、
前記エンティティの前記平滑化された時系列の前記信頼度スコアと、前記開始閾値および前記終了閾値とを比較させる命令と、
前記エンティティの前記平滑化された時系列の前記信頼度スコアの前記比較に基づいて、前記セグメントの前記境界を識別させる命令と
を含む、請求項10に記載のコンピュータ読取可能な記憶媒体。
【請求項１３】
ビデオを時間的にセグメント化するためのコンピュータシステムであって、前記システムは、
コンピュータプロセッサであって、
前記ビデオの複数の復号されたビデオフレームからサンプルビデオフレームを選択するステップと、
ニューラルネットワークモデルにより、トレーニング画像のコーパス上でアノテーションモデルをトレーニングするステップと、
前記トレーニングされたアノテーションモデルにより、前記サンプルビデオフレームの各々にアノテーションを付与するステップと、
前記選択されたサンプルビデオフレームの前記アノテーションに基づいて、前記選択されたサンプルビデオフレームを前記ビデオの各エンティティについての複数のセグメントへセグメント化するステップであって、前記ビデオのエンティティについてのセグメントは、前記ビデオの意味を反映する、セグメント化するステップと、
前記ビデオの各エンティティの前記複数のセグメントに基づいて、前記ビデオの全体的な時間的セグメント化を生成するステップと、
を含むステップを実行するためのコンピュータプロセッサ
を備える、コンピュータシステム。
【請求項１４】
前記選択されたサンプルビデオフレームの各々にアノテーションを付与するステップは、
前記選択されたサンプルビデオフレームに対して前記トレーニングされたアノテーションモデルを適用するステップと、
前記トレーニングされたアノテーションモデルの前記適用に基づいて、前記選択されたサンプルビデオフレーム内に存在する1つまたは複数のエンティティを識別するステップであって、前記ビデオの識別されたエンティティは、前記選択されたサンプルビデオフレーム内の興味のあるオブジェクトを表す、識別するステップと、
各識別されたエンティティをアノテーションパラメータのセットによって表すステップと
を含む、請求項13に記載のシステム。
【請求項１５】
前記選択されたサンプルビデオフレーム内のエンティティについての前記アノテーションパラメータのセットは、前記エンティティの意味を説明する説明ラベルと、前記エンティティを含む前記選択されたサンプルビデオフレームの一部と、前記エンティティが正確に識別される尤度を示す信頼度スコアとを含む、請求項14に記載のシステム。
【請求項１６】
前記選択されたサンプルビデオフレームの前記アノテーションに基づいて、前記選択されたサンプルビデオフレームを前記ビデオの各エンティティについての複数のセグメントへセグメント化するステップは、
前記ビデオの各エンティティについて、
前記エンティティについての時系列を生成するステップであって、前記時系列は、前記エンティティと、前記エンティティの対応する信頼度スコアとを含む前記選択されたサンプルビデオフレームの複数のタイムスタンプを含む、生成するステップと、
前記エンティティの前記生成された時系列に平滑化関数を適用するステップと、
前記エンティティの平滑化された時系列の前記信頼度スコアに基づいて、前記エンティティを含む各セグメントについての境界を識別するステップと
を含む、請求項13に記載のシステム。
【請求項１７】
エンティティについてのセグメントの境界を識別するステップは、
前記セグメントについての開始閾値を選択するステップであって、前記開始閾値は、前記セグメントの開始を示す、選択するステップと、
前記セグメントについての終了閾値を選択するステップであって、前記終了閾値は、前記セグメントの終了を示す、選択するステップと、
前記エンティティの前記平滑化された時系列の前記信頼度スコアと、前記開始閾値および前記終了閾値とを比較するステップと、
前記エンティティの前記平滑化された時系列の前記信頼度スコアの前記比較に基づいて、前記セグメントの前記境界を識別するステップと
を含む、請求項16に記載のシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
説明される実施形態は、一般に、ビデオ処理に関し、より詳細には、ビデオストリームのエンティティベースの時間的セグメント化(Entity Based Temporal Segmentation)に関する。
【背景技術】
【０００２】
多様な異なるコンテンツを有し、YOUTUBE（登録商標）などのホスティングサービスを通じて異なるフォーマットで符号化されたビデオの共有は、効果的な編成、インデックス付け、および管理に対する必要性の高まりを表す。ビデオの閲覧および検索のための既存の解決策のほとんどは、ショットベース(Shot-Based)であり、ショットベースにおいては、ビデオストリームがショットへ時間的にセグメント化される。ビデオストリームのショットとは、1台のカメラから得られたビデオストリームの途切れのないビデオフレームのシーケンスであり、ショットベースの時間的セグメント化を使用する2つの時間的に隣接するセグメントは、視覚的に異なる。
【０００３】
隣接するショット間の時間的な視覚的差異ではなく、ビデオシーンの意味(Semantics)を対象とする、多くのマルチメディアアプリケーションが存在する。ショットベースの時間的セグメント化における1つの課題は、生の低レベルのビデオデータとビデオストリームの高レベルの意味論的フィールドとを結びつけること、例えば、ビデオの意味を反映する視覚的コンテンツについて適当な表現(Representation)を見つけることである。滑走路へ向かって飛行し、着陸する航空機の隣接ショットを例に挙げると、意味論的レベルにおいて、隣接ショットは、2つのシーンを含み、一方は、航空機が飛行することを説明し、他方は、航空機の着陸に関する。2つのシーン間の遷移が平滑である場合、ショットベースのセグメント化は、2つのシーンを区別しないことがある。
【発明の概要】
【発明が解決しようとする課題】
【０００４】
説明される方法、システムおよびコンピュータプログラム製品は、ビデオのビデオフレーム内で識別されたエンティティの分析に基づいて、ビデオを時間的にセグメント化するための解決策を提供する。
【課題を解決するための手段】
【０００５】
一実施形態は、ビデオを時間的にセグメント化するためのコンピュータ実装方法を含む。本方法は、ビデオを複数のビデオフレームへ復号するステップを含む。複数のビデオフレームは、アノテーションのために選択される。アノテーションプロセスは、サンプルビデオフレーム内に存在するエンティティを識別し、各識別されたエンティティは、タイムスタンプと、そのエンティティが正確に識別される尤度を示す信頼度スコア(Confidence Score)とを有する。各識別されたエンティティについて、タイムスタンプと、対応する信頼度スコアとから構成される時系列が、生成され、平滑化されて、アノテーションノイズが低減される。ビデオの長さにわたるエンティティを含む1つまたは複数のセグメントは、そのエンティティの時系列においてセグメントの境界を検出することによって取得される。ビデオ内の各識別されたエンティティについての個々の時間的セグメント化から、そのビデオの全体的な時間的セグメント化が生成され、ここで、この全体的な時間的セグメント化は、ビデオの意味を反映する。
【０００６】
本明細書において説明される特徴および利点は包括的ではなく、特に、図面、明細書、および特許請求の範囲を考慮すれば、多くの付加的な特徴および利点が、当業者には明らかになるであろう。さらに、本明細書において使用される文言は、主に読みやすさおよび教育上の目的のために選択されており、開示される主題を描写し、または制限するためには選択されていないことがあることが留意されるべきである。
【図面の簡単な説明】
【０００７】
【図１】一実施形態に係る、エンティティベースの一次的なセグメント化モジュールを有するビデオホスティングサービスのシステム図を示すブロック図である。
【図２】帽子をかぶる犬と、犬および帽子についての対応するアノテーションとを有するビデオフレームの例の図である。
【図３】一実施形態に係るセグメント化モジュールを示すブロック図である。
【図４】ビデオ内の識別されたエンティティの時系列と、そのビデオ内の様々な時間インスタンスにおけるエンティティの対応する信頼度スコアとの例を示す図である。
【図５】ビデオ内の識別されたエンティティの時系列に平滑化関数を適用する例の図である。
【図６】ビデオ内の識別されたエンティティについてのセグメント境界を検出する例の図である。
【図７Ａ】一実施形態に係る、ビデオ内の識別されたエンティティについての個々のセグメント化に基づいて、ビデオの全体的なセグメント化を生成する例の図である。
【図７Ｂ】識別されたエンティティについての個々のセグメント化をソートした後の、図7Aに示されるビデオ生成の全体的なセグメント化に対応する例の図である。
【図８】一実施形態に係る、エンティティベースの一次的なセグメント化のフローチャートである。
【発明を実施するための形態】
【０００８】
図面は、本発明の様々な実施形態をあくまでも例示の目的のために描いており、本発明は、これらの示された実施形態に限定されない。当業者は、本明細書において説明される本発明の原理から逸脱することなく、本明細書において示される構造および方法の代替的な実施形態が採用され得ることを、以下の考察から容易に認識するであろう。
【０００９】
I.システム概観
図1は、一実施形態に係る、エンティティベースの一次的なセグメント化モジュール102を有するビデオホスティングサービス100のシステム図を示すブロック図である。複数のユーザ/視聴者は、ビデオホスティングウェブサイトからのビデオのアップロードおよび検索などの、ビデオホスティングサービス100によって提供されるサービスを使用し、要求したサービスをビデオホスティングサービス100から受信するために、クライアント110A〜Nを使用する。ビデオホスティングサービス100は、ネットワーク130を介して、1つまたは複数のクライアント110A〜Nと通信する。ビデオホスティングサービス100は、クライアント110A〜Nからビデオに対するビデオホスティングサービス要求を受信し、エンティティベースの時間的セグメント化モジュール102によってビデオをセグメント化およびインデックス付けし、要求されたビデオをクライアント110A〜Nに返す。
【００１０】
一実施形態において、クライアント110は、ビデオホスティングサービスに要求するためにユーザによって使用される。例えば、ユーザは、アップロードされたビデオをインデックス付けし、または記憶するための要求を送信するためにクライアント110を使用する。クライアント110は、パーソナルコンピュータ(例えば、デスクトップコンピュータ、ノート型コンピュータ、ラップトップコンピュータ)などの任意のタイプのコンピュータデバイス、および携帯電話、携帯情報端末、IP対応のビデオプレーヤなどのデバイスとすることができる。クライアント110は、典型的には、プロセッサと、ディスプレイデバイス(またはディスプレイデバイスへの出力)と、タスクを行う際にユーザによって使用されるデータをクライアント110が記憶する、ハードドライブまたはフラッシュメモリデバイスなどのローカルストレージと、ネットワーク130を介してビデオホスティングサービス100と結合するためのネットワークインターフェイスとを含む。クライアント110は、ビデオストリームを再生するためのビデオプレーヤも有する。
【００１１】
ネットワーク130は、クライアント110とビデオホスティングサービス100との間の通信を可能にする。一実施形態において、ネットワーク130は、インターネットであり、クライアント110がビデオホスティングサービス100と通信することを可能にする、現在知られている、または今後開発される、標準化されたインターネットワーキング通信技術およびプロトコルを使用する。
【００１２】
ビデオホスティングサービス100は、エンティティベースの時間的セグメント化モジュール102と、ビデオサーバ104と、ビデオデータベース106とを備える。ビデオサーバ104は、ユーザビデオホスティングサービス要求に応答して、ビデオデータベース106からビデオを供給する。ビデオデータベース106は、ユーザアップロードされたビデオ、インターネットから収集されたビデオ、およびエンティティベースの時間的セグメント化モジュール102によってセグメント化されたビデオを記憶する。一実施形態において、ビデオデータベース106は、エンティティベースの時間的セグメント化モジュール102がアノテーションモデルをトレーニングするための大きなビデオコーパスを記憶する。
【００１３】
エンティティベースの時間的セグメント化モジュール102は、入力ビデオのビデオフレーム内に存在する1つまたは複数のエンティティの分析に基づいて、入力ビデオを複数の時間的な意味論的セグメント(Semantic Segment)へセグメント化する。ビデオフレーム内のエンティティは、そのビデオフレームの意味論的に意味のある時空間領域を表す。例えば、犬と遊んでいる猫のビデオのフレームは、犬、または猫、または犬と猫との両方を含むことがあり、ここでは、犬および/または猫が、ビデオフレームのエンティティである。入力ビデオの2つの時間的に隣接する意味論的セグメントは、セグメントの意味の観点から異なるシーン、例えば、犬のシーンと猫のシーンとを含む。
【００１４】
一実施形態において、エンティティベースの時間的セグメント化モジュール102は、復号モジュール140と、アノテーションモジュール150と、セグメント化モジュール300とを有する。復号モジュール140は、入力ビデオを復号し、復号されたビデオは、複数のビデオフレームを有する。当業者に知られている任意の復号スキームが、実装者の裁量により、復号モジュール140によって使用され得る。一実施形態において、復号モジュール140は、入力ビデオの信号の逆変換(離散コサイン変換またはウェーブレット変換)、逆量子化および逆エントロピー符号化を含めて、ビデオ圧縮標準に従って入力ビデオを符号化する、対応する符号化プロセスの各ステージの逆を行うことによって、入力ビデオを復号する。
【００１５】
アノテーションモジュール150は、復号されたビデオから複数のビデオフレームを選択し、各選択されたビデオフレームにアノテーションを付与する。一実施形態において、アノテーションモジュール150は、タイミング情報に基づいてビデオフレームを選択し、例えば、入力ビデオの5秒ごとにビデオフレームを選択し、または、ロケーションに基づいてビデオフレームを選択し、例えば、復号されたビデオフレームの表示順序に従って10番目ごとのビデオフレームを選択する。選択されたビデオフレームにアノテーションを付与するために、アノテーションモジュール150は、選択されたビデオフレーム内のエンティティを識別し、各識別されたエンティティに信頼度スコアを割り当てる。一実施形態において、アノテーションモジュール150は、入力ビデオの各ビデオフレームに対してトレーニングされたアノテーションモデルを適用し、各識別されたエンティティを説明するアノテーションパラメータのセット、例えば、クラスラベル、識別されたエンティティを含む境界ボックス、および信頼度スコアを生成する。識別されたエンティティのクラスラベルは、人間が判読可能な手法で、例えば、エンティティの説明文で、エンティティを説明する。識別されたエンティティを含む境界ボックスは、識別されたエンティティを含むビデオフレーム内のエリアを規定する。境界ボックスは、そのサイズおよび幅と、そのコーナーピクセルのうちの1つの座標とによって規定される。エンティティに関連付けられた信頼度スコアは、エンティティが正確に識別される尤度を示しており、例えば、ビデオフレーム内で識別された犬は、犬である90%の確率を有する。ビデオフレーム内のより高い信頼度スコアを有するエンティティは、同じエンティティがより低い信頼度スコアを有する別のビデオフレームよりも、そのビデオフレーム内に存在する可能性が高い。
【００１６】
一実施形態において、アノテーションモジュール150は、DisBeliefフレームワークなどのアノテーショントレーニングフレームワークを使用して、アノテーションモデルをトレーニングし、このアノテーショントレーニングフレームワークは、ビデオデータベース106に記憶されたビデオを使用して、迅速な反復により、ディープニューラルネットワークモデルを分散的にトレーニングする。例えば、アノテーションモジュール150は、1600万の画像と2万1000のカテゴリーとから成るデータセットに対して、数千台のマシンを有するコンピューティングクラスタ上で、非同期確率的勾配降下法プロシージャおよび多様な分散バッチ最適化プロシージャを使用して、アノテーションモデルをトレーニングする。アノテーションモジュール150は、トレーニング画像から視覚的特徴を抽出し、抽出された視覚的特徴の不変特徴を学習し、視覚的特徴の学習からトレーニングモデルを構築する。アノテーションモジュール150の他の実施形態は、アノテーションモデルをトレーニングするために、他の機械学習技法を使用してもよい。
【００１７】
図2は、帽子230を着用している犬220と、犬および帽子についての対応するアノテーションとを有するビデオフレーム210の例である。アノテーションモジュール150は、ビデオフレーム210に対して、トレーニングされたアノテーションモデルを適用する。この適用に基づいて、アノテーションモジュール150は、ビデオフレーム210内の2つのエンティティ、すなわち、犬220と、広いつば付きの帽子230とを識別する。各識別されたエンティティについて、アノテーションモジュール150は、そのエンティティを、クラスラベルを用いて、例えば、犬、帽子、および識別されたエンティティを含む境界ボックスを用いて識別する。アノテーションモジュール150は、トレーニングされたアノテーションモデルによってエンティティに関連付けられた視覚的特徴の分析に基づいて、各識別されたエンティティに信頼度スコア(図示せず)も割り当てる。
【００１８】
セグメント化モジュール300は、入力ビデオのビデオフレーム内の1つまたは複数の識別されたエンティティの分析に基づいて、入力ビデオを複数の時間的な意味論的セグメントへセグメント化する。一実施形態において、セグメント化モジュール300は、入力ビデオの各識別されたエンティティについての時間的セグメント化に基づいて、入力ビデオの全体的な時間的セグメント化を生成し、入力ビデオのすべての識別されたエンティティの時間的セグメント化を組み合わせて、入力ビデオ全体についての全体的な時間的セグメント化を生成する。セグメント化モジュール300は、図3〜図8を参照しつつ、以下でさらに説明される。
【００１９】
II.エンティティベースの時間的な意味論的セグメント化
図3は、一実施形態に係るセグメント化モジュール300を示すブロック図である。図3のセグメント化モジュール300の実施形態は、エンティティモジュール310と、平滑化モジュール320と、セグメント検出モジュール330と、シーンセグメント化モジュール340とを含む。当業者は、セグメント化モジュール300の他の実施形態は、ここで説明されるものとは異なるモジュールおよび/または他のモジュールを有し得ること、ならびに、機能性は、異なる手法でモジュール間に分散され得ることを、認識するであろう。
【００２０】
エンティティモジュール310は、識別されたエンティティとそれらの対応する信頼度スコアとを受信するために、セグメント化モジュール300のアノテーションモジュール150と対話し、入力ビデオの全長にわたって、各識別されたエンティティについての時系列を、対応する信頼度スコアと共に生成する。一実施形態において、エンティティモジュール310は、識別されたエンティティの時系列をSeとして表し、ただし、パラメータeは、ビデオフレーム内で識別されたエンティティを表す。時系列Seは、一連のペア
【数１】
0006445716.tif 000002
を含み、ただし、パラメータiは、フレーム番号を指し、パラメータ
【数２】
0006445716.tif 000003
は、i番目のフレームのタイムスタンプであり、
【数３】
0006445716.tif 000004
は、タイムスタンプ
【数４】
0006445716.tif 000005
におけるエンティティeの信頼度スコアを指す。
【００２１】
ここで、図4を参照すると、図4は、入力ビデオ内の識別されたエンティティの時系列と、その入力ビデオの様々な時間インスタンスにおけるエンティティの対応する信頼度スコアとの例を示す。図4は、入力ビデオの全長にわたる、1つの識別されたエンティティ、例えば、犬と遊んでいる猫のビデオ内の犬の時系列430を示す。水平軸410は、時系列430のタイミング情報、例えば、ビデオの長さ、およびビデオのビデオフレームのタイムスタンプを表し、垂直軸420は、各時間インスタンスにおいてエンティティに関連付けられた信頼度スコア(例えば、430a〜420h)を表す。例えば、時間インスタンスt1におけるフレームは、信頼度スコア430aを有しており、これは、時間インスタンスt1におけるフレームがビデオフレーム内の識別されたエンティティを有する尤度を表す。
【００２２】
平滑化モジュール320は、入力ビデオの各識別されたエンティティについての時系列に平滑化関数を適用することによって、潜在的に誤っているセグメントを除去する。ビデオのビデオフレーム内のエンティティは、ノイズ、例えば、入力ビデオをキャプチャする際のカメラ振動によって引き起こされた被写体ブレに起因して、ビデオの生の視覚的特徴に基づいて、誤って識別されることがある。したがって、入力ビデオの全長にわたる識別されたエンティティの信頼度スコアは、時間的なサブシーケンスフレームにおける小さい変化に起因して、大きく変化することがあり、これは、入力ビデオの誤ったセグメントにつながり得る。
【００２３】
一実施形態において、平滑化モジュール320は、各識別されたエンティティについての時系列を平滑にするために移動ウィンドウを使用して、各識別されたエンティティについての平滑化された時系列を生成する。移動ウィンドウは、サイズとステップとによって規定される。エンティティの時系列上の移動ウィンドウは、平滑化されるべきエンティティの信頼度スコアを選択する。平滑化モジュール320は、移動ウィンドウ内の信頼度スコアを平均して、平均された信頼度スコアを生成し、この平均された信頼度スコアは、移動ウィンドウ内のエンティティの平滑化された信頼度スコアを表す。平滑化モジュール320は、時系列の次の部分内の信頼度スコアを平滑化するために、エンティティの時系列の次の部分へウィンドウを移動させる。
【００２４】
図5は、ビデオ内の識別されたエンティティの時系列に平滑化関数を適用する例である。識別されたエンティティについて生の時系列は、平滑で連続的な曲線530によって表される。平滑化関数は、そのサイズとステップとによって規定された移動ウィンドウ540内の信頼度スコアを平均する平均化関数である。エンティティについての平滑化された時系列は、曲線550によって表され、この曲線550は、入力ビデオのビデオフレーム内のアノテーションノイズを除去する。
【００２５】
セグメント検出モジュール330は、入力ビデオ内の各識別されたエンティティについてのセグメントを検出する。一実施形態において、セグメント検出モジュール330は、識別されたエンティティの時系列において、識別されたエンティティを含むセグメントについての境界の検出することによって、ビデオフレーム内のエッジを検出する。セグメント検出モジュール330は、識別されたエンティティの平滑化された時系列に関連付けられた信頼度スコアを、セグメント検出モジュール330によって選択された第1のタイムスタンプから開始して、その時系列のタイムスタンプの昇順でソートする。セグメント検出モジュール330は、予め定義された開始閾値および終了閾値に基づいて、時系列におけるセグメントについての境界のペアを検出する。セグメントの境界の開始閾値は、識別されたエンティティを含むセグメントの開始を示し、識別されたエンティティについての終了閾値は、識別されたエンティティを含むセグメントの終了を示す。セグメントの開始および終了に関連付けられた時間インスタンス間のビデオフレームは、識別されたエンティティを含むセグメントを形成する。対応する時間インスタンス間でキャプチャされたビデオフレーム内の識別されたエンティティは、開始閾値以上の平滑化された信頼度スコアを有する。
【００２６】
識別されたエンティティについてのセグメントの長さを決定するために、セグメント検出モジュール330は、2つの連続するタイムスタンプに関連付けられた信頼度スコアの導関数に基づいて、ある時間インスタンスにおいて、新しいセグメントを開始するべきか、または現在のセグメントを終えるべきかを決定する。一実施形態において、セグメント検出モジュール330は、以下のように方程式(1)において、2つの連続するタイムスタンプにおける信頼度スコア間の差異として導関数を算出する。
【数５】
0006445716.tif 000006
ただし、
【数６】
0006445716.tif 000007
は、タイムスタンプ
【数７】
0006445716.tif 000008
における信頼度スコアを表し、
【数８】
0006445716.tif 000009
は、次のタイムスタンプ
【数９】
0006445716.tif 000010
における信頼度スコアを表し、2つのタイプスタンプは、時間においてΔtだけ均一に離間されると仮定される。セグメント検出モジュール330は、計算された導関数と、一次導関数閾値(「開始導関数閾値」とも称される)とを比較する。計算された導関数が、開始導関数閾値を超えることに応じて、セグメント検出モジュール330は、識別されたエンティティについて新しいセグメントを開始する。
【００２７】
同様に、セグメント検出モジュール330は、計算された導関数と、二次導関数閾値(「終了導関数閾値」とも称される)とを比較し得る。計算された導関数が、終了導関数閾値より小さいことに応じて、セグメント検出モジュール330は、エンティティについて現在のセグメントを終える。
【００２８】
図6は、設定可能な開始導関数閾値および終了導関数閾値に基づいて、ビデオ内の識別されたエンティティ、例えば犬についてのセグメント境界を検出する例を示す。犬エンティティについての時系列は、曲線660によって表される。時間インスタンスt1＋Δtにおけるエンティティは、対応する信頼度スコアbを有しており、この信頼度スコアbは、犬エンティティについてのセグメントの開始630を示す開始閾値として選択される。時間インスタンスtjにおけるエンティティは、対応する信頼度スコアcを有しており、この信頼度スコアcは、犬エンティティについてのセグメントの終了650を示す終了閾値として選択される。時間インスタンスt1＋Δtとtjとの間のビデオフレームは、犬エンティティを含むセグメントを形成する。時間インスタンスt1＋Δtとtjとの間でキャプチャされたビデオフレーム内の各犬エンティティは、開始閾値、すなわち、信頼度スコアb以上の信頼度スコアを有する。
【００２９】
t1およびt1＋Δtにおける時間インスタンスが連続すると仮定すると、セグメント検出モジュール330は、上記の方程式(1)に従って、t1とt1＋Δtとの間の信頼度スコアの導関数を計算する。セグメント検出モジュール330は、計算された導関数と、所定の開始導関数閾値とを比較する。図6の例において、t1とt1＋Δtとの間の信頼度スコアの導関数は、所定の開始導関数閾値を超える。セグメント検出モジュール330は、犬エンティティについての新しいセグメントが時間インスタンスt1＋Δtにおいて開始すると決定する。
【００３０】
同様に、セグメント検出モジュール330は、tjとtj＋Δtとの間の信頼度スコアの導関数を、上記の方程式(1)に従って計算し、計算された導関数と所定の終了導関数閾値とを比較する。図6の例において、tjとtj＋Δtとの間の信頼度スコアの導関数は、所定の終了導関数閾値未満である。セグメント検出モジュール330は、犬エンティティについてのセグメントが時間インスタンスtjにおいて終了すると決定する。
【００３１】
開始導関数閾値および終了導関数閾値は設定可能であることが留意される。一実施形態において、セグメント検出モジュール330は、ビデオデータベース106に記憶された、選択されたビデオを用いたビデオセグメント化実験に基づいて、開始導関数閾値および終了導関数閾値を選択し、ここで、選択されたビデオは、知られているセグメント化情報を有しており、開始導関数閾値および終了導関数閾値を導出するためのグランドトゥルースを表す。別の実施形態では、エンティティセグメント検出モジュール330は、信頼度スコアの昇順で順序付けされた正の導関数の選択されたパーセンタイル値に基づいて、開始導関数閾値を選択し、セグメント検出モジュール330は、信頼度スコアの降順で順序付けされた負の導関数の選択されたパーセンタイル値に基づいて、終了導関数閾値を選択する。
【００３２】
パーセンタイル値に基づいた開始/終了導関数閾値の選択をさらに示すために、エンティティについての時系列の順序付けされた導関数が下記であると仮定する。
{-0.9、-0.6、-0.5、-0.3、-0.1、0、0、0、0、0.1、0.2、0.3、0.3、0.5}、
ただし、昇順で順序付けされた正の導関数は、{0、0、0、0、0.1、0.2、0.3、0.3、0.5}であり、降順で順序付けされた負の導関数は、{-0.1、-0.3、-0.5、-0.6、-0.9}であり、セグメント検出モジュール330は、昇順で順序付けされた正の導関数のパーセンタイル値0．3を開始閾値として選択し、降順で順序付けされた負の導関数のパーセンタイル値0.3を終了閾値として選択する。昇順で順序付けされた正の導関数のパーセンタイル値0.3は、開始導関数閾値を0.2に設定し、一方で、降順で順序付けされた負の導関数のパーセンタイル値0.3は、終了導関数閾値を-0.3に設定する。開始導関数閾値は、エンティティについてのセグメントの開始を示し、終了導関数閾値は、エンティティについてのセグメントの終了を示す。
【００３３】
また別の実施形態では、セグメント検出モジュール330は、2つの連続するタイムスタンプ間の信頼度スコアにおける縮小率(Percentage Reduction)を以下のように方程式(2)において計算する。
【数１０】
0006445716.tif 000011
セグメント検出モジュール230は、縮小率の閾値を選択し、計算されたPercentage_Reductionと選択された閾値とを比較する。計算されたPercentage_Reductionが、選択された閾値より小さいことに応じて、セグメント検出モジュール230は、タイムスタンプ
【数１１】
0006445716.tif 000012
においてセグメントを終える。
エンティティのセグメント化プロセスにおいて、少数の欠損ビデオフレームに起因する不要なセグメント化を防止するために、セグメント検出モジュール330は、クールオフ期間中に時間的に接近するセグメントを統合する。クールオフ期間は、多様な要因、例えば、入力ビデオのコンテンツの特性、利用可能なコンピューティングリソース(例えば、コンピュータプロセッサの数)などに応じて、ある期間、例えば、5秒間続き得る。クールオフ期間中は、上述されたセグメントの終了を示す条件が満たされたとしても、エンティティについてのセグメントを継続させることが許容される。
【００３４】
入力ビデオは、多くのビデオフレームを有することが多く、しばらくの間続く。ビデオフレームの各々は、そのビデオフレーム内に2つ以上のエンティティを含み得る。上述された実施形態は、各識別されたエンティティについての個々のセグメント化の生成を開示する。シーンセグメント化モジュール340は、各識別されたエンティティについての個々のセグメント化に基づいて、入力ビデオ全体の全体的なセグメント化を生成する。入力ビデオの全体的なセグメント化は、1つまたは複数の時間的な意味論的セグメントを含み、この時間的な意味論的セグメントの各々は、エンティティのセットを有し、任意の2つの近隣セグメントは、異なるエンティティのセットを有する。
【００３５】
一実施形態において、セグメント化モジュール300は、入力ビデオの全体的なセグメント化を生成するためのシーンセグメント化モジュール340を有する。シーンセグメント化モジュール340は、セグメント検出モジュール330から、入力ビデオの各識別されたエンティティについての個々のセグメント化を取得し、個々のセグメント化に関連付けられたタイムスタンプに従って、識別されたエンティティの個々のセグメント化をソートする。ソートされた個々のセグメント化から、シーンセグメント化モジュール340は、個々のセグメント化に関連付けられた開始および終了を記録し、異なるエンティティを含むセグメントを生成する。
【００３６】
ここで、図7を参照すると、図7は、一実施形態に係る、入力ビデオ内の識別されたエンティティについての個々のセグメント化に基づいて、入力ビデオの全体的なセグメント化を生成する例である。図7の例は、セグメント化検出モジュール230によって生成された4つの個々のセグメント、すなわち、犬エンティティについての時間インスタンスt1と時間インスタンスt3との間のセグメントと、別の犬エンティティについての時間インスタンスt5と時間インスタンスt7との間のセグメントと、猫エンティティについての時間インスタンスt2と時間インスタンスt4との間のセグメントと、別の猫エンティティについての時間インスタンスt6と時間インスタンスt8との間のセグメントとを有する。
【００３７】
シーンセグメント化モジュール340は、図7に示されるような個々のセグメントに関連付けられた開始タイムスタンプおよび終了タイムスタンプに従って、犬エンティティおよび猫エンティティの個々のセグメントを順序付けする。シーンセグメント化モジュール340は、4つの開始タイムスタンプ、すなわち、時間インスタンスt1、t2、t5およびt6におけるタイムスタンプと、4つの終了タイムスタンプ、すなわち、時間インスタンスt3、t4、t7およびt8におけるタイムスタンプとを記録する。シーンセグメント化モジュール340は、順序付けされた開始タイムスタンプおよび終了タイムスタンプに従って、犬エンティティおよび猫エンティティについての個々のセグメントを組み合わせて、入力ビデオについての新しいセグメントを生成する。例えば、個々のセグメントの順序付けされたタイムスタンプは、以下の6つの新しいセグメントを示す。
・犬のみのセグメントである、タイムスタンプt1とt2との間のセグメント
・猫および犬のセグメントである、タイムスタンプt2とt3との間のセグメント
・猫のみのセグメントである、タイムスタンプt3とt4との間のセグメント
・犬のみのセグメントである、タイムスタンプt5とt6との間のセグメント
・猫および犬のセグメントである、タイムスタンプt6とt7との間のセグメント
・猫のみのセグメントである、タイムスタンプt7とt8との間のセグメント
【００３８】
シーンセグメント化モジュール340は、新しいセグメントをさらにソートし、別のセグメントと同じエンティティのセットを含むセグメントを削除し得る。例えば、タイムスタンプt1とt2との間のセグメント、およびタイムスタンプt5とt6との間のセグメントは、両方とも犬のみのセグメントである。シーンセグメント化モジュール340は、これらの2つのセグメントのうちの1つ、例えば、タイムスタンプt5とt6との間のセグメントを選んで、入力ビデオの犬のみのセグメントを表し得る。同様に、シーンセグメント化モジュール340は、セグメントタイムスタンプt7およびt8を選択して、猫のみのセグメントを表し得る。さらなるソートの後、シーンセグメント化モジュール340は、入力ビデオの全体的なセグメント化を生成し、この全体的なセグメント化は、3つのセグメント、すなわち、犬のみのセグメントと、猫のみのセグメントと、猫および犬のセグメントとを含む。図7Bは、ソート後の入力ビデオの全体的なセグメント化の例を示す。
【００３９】
別の実施形態では、シーンセグメント化モジュール340は、エンティティに関連付けられた信頼度スコアに従って、新しいセグメントをさらにソートしてもよい。例えば、シーンセグメント化モジュール340は、例えば犬といった識別されたエンティティのセグメントを、そのセグメントの対応する信頼度スコアに基づいてランク付けしてもよい。あるエンティティに関する検索クエリに応じて、シーンセグメント化モジュール340は、その各々が閾値を超える信頼度スコアを有する、クエリを行われたエンティティのすべてのセグメントのサブセットを返し、またはクエリを行われたエンティティのすべてのセグメントを返し得る。
【００４０】
III.エンティティベースの時間的な意味論的セグメント化の例示的な動作
図8は、一実施形態に係る、エンティティベースの時間的セグメント化のフローチャートである。最初に、エンティティベースの時間的セグメント化モジュール102は、入力ビデオを復号する810。復号された入力ビデオは、複数のビデオフレームを有し、その各々は、1つまたは複数のエンティティを有する。エンティティベースの時間的セグメント化モジュール102は、セグメント化のための1つまたは複数のサンプルビデオフレームを選択する820。例えば、エンティティベースの時間的セグメント化モジュール102は、入力ビデオの5つのビデオフレームごとに、1つのビデオフレームを選択する。選択された各ビデオフレームについて、エンティティベースの時間的セグメント化モジュール102は、選択されたサンプルビデオフレームに対して、トレーニングされたアノテーションモデルを適用する830。エンティティベースの時間的セグメント化モジュール102は、トレーニングされたアノテーションモデルの適用に基づいて、各選択されたサンプルビデオフレーム内の各エンティティを識別する840。選択されたサンプルビデオフレーム内の各識別されたエンティティは、タイムスタンプと、エンティティのラベルと、エンティティが正確に識別される尤度を示すための信頼度スコアとを有する。
【００４１】
エンティティベースの時間的セグメント化モジュール102は、各識別されたエンティティについての時系列を生成し850、ここで、この時系列は、入力ビデオの全長に及ぶ、各時間インスタンスにおける識別されたエンティティと、その対応する信頼度スコアとを含む。エンティティベースの時間的セグメント化モジュール102は、各エンティティの時系列に平滑化関数を適用して860、アノテーションプロセス期間中に生成されたノイズを除去する。
【００４２】
各識別されたエンティティについて、エンティティベースの時間的セグメント化モジュール102は、入力ビデオの全長に及ぶ識別されたエンティティを含む個々のセグメントを生成する。エンティティについての個々のセグメントは、開始点と終了点とを有しており、これらが、そのセグメントの長さを規定する。一実施形態において、エンティティベースの時間的セグメント化モジュール102は、予め定義された開始閾値および終了閾値に基づいて、セグメントを規定する境界のペアを検出する870。識別されたエンティティについての個々のセグメントの再順序付けおよび分析に基づいて、エンティティベースの時間的セグメント化モジュール102は、入力ビデオ全体についての全体的なセグメント化を生成する。
【００４３】
上記の説明は、好適な実施形態の動作を示すために含まれており、本発明の範囲を限定することを意図されていない。本発明の範囲は、以下の特許請求の範囲によってのみ限定されるべきである。上記の考察から、本発明の精神および範囲によってなお包含されるべき、多くのバリエーションが、関連する技術の当業者に明らかになるであろう。
【００４４】
本発明は、1つの考え得る実施形態に関して、特に詳細に説明されてきた。当業者は、本発明が他の実施形態において実施されてもよいことを認識するであろう。まず、構成要素の特定の命名、用語の大文字化、属性、データ構造、または任意の他のプログラミングもしくは構造の態様は、必須または重要ではなく、本発明またはその特徴を実装する機構は、異なる名前、フォーマット、またはプロトコルを有してもよい。さらに、システムは、説明されたように、ハードウェアとソフトウェアとの組み合わせを介して実装されても、または完全にハードウェア要素において実装されてもよい。また、本明細書において説明された様々なシステム構成要素間での機能性の特定の分割は、単なる例示であり、必須ではない。単一のシステム構成要素によって行われる機能は、代わりに、複数の構成要素によって行われてもよく、複数の構成要素によって行われる機能は、代わりに、単一の構成要素によって行われてもよい。
【符号の説明】
【００４５】
100  ビデオホスティングサービス
102  エンティティベースの一次的なセグメント化モジュール
104  ビデオサーバ
106  ビデオデータベース
110A  クライアント
110N  クライアント
130  ネットワーク
140  復号モジュール
150  アノテーションモジュール
300  セグメント化モジュール
210  ビデオフレーム
220  犬
230  広いつば付きの帽子
300  セグメント化モジュール
310  エンティティモジュール
320  平滑化モジュール
330  セグメント検出モジュール
340  シーンセグメント化モジュール
410  時間
420  信頼度スコア
430  エンティティ時系列
520  信頼度スコア
530  生のエンティティ時系列
540  移動ウィンドウ
550  平滑化されたエンティティ時系列
610  時間
610  時間
620  信頼度スコア
630  犬のシーン:オン
640  犬
650  犬のシーン:オフ
660  犬エンティティ時系列
710  時間
720  犬のシーン
730  犬のシーン
740  猫のシーン
750  猫のシーン
710  時間
750  猫のシーン
760  犬のシーン
770  犬および猫のシーン
【図１】
0006445716.tif 000013
【図２】
0006445716.tif 000014
【図３】
0006445716.tif 000015
【図４】
0006445716.tif 000016
【図５】
0006445716.tif 000017
【図６】
0006445716.tif 000018
【図７Ａ】
0006445716.tif 000019
【図７Ｂ】
0006445716.tif 000020
【図８】
0006445716.tif 000021