(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-04-04
(45)【発行日】2024-04-12
(54)【発明の名称】時空間推論および位置特定のためのマルチホップトランスフォーマー
(51)【国際特許分類】
G06T 7/00 20170101AFI20240405BHJP
G06F 16/70 20190101ALI20240405BHJP
G06N 3/02 20060101ALI20240405BHJP
G06T 1/00 20060101ALI20240405BHJP
G06V 10/82 20220101ALI20240405BHJP
【FI】
G06T7/00 350C
G06F16/70
G06N3/02
G06T1/00 200E
G06V10/82
(21)【出願番号】P 2023512676
(86)(22)【出願日】2021-09-02
(86)【国際出願番号】 US2021048832
(87)【国際公開番号】W WO2022066388
(87)【国際公開日】2022-03-31
【審査請求日】2023-04-11
(32)【優先日】2021-09-01
(33)【優先権主張国・地域又は機関】US
(32)【優先日】2020-09-28
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】504080663
【氏名又は名称】エヌイーシー ラボラトリーズ アメリカ インク
【氏名又は名称原語表記】NEC Laboratories America, Inc.
(74)【代理人】
【識別番号】100123788
【氏名又は名称】宮崎 昭夫
(74)【代理人】
【識別番号】100127454
【氏名又は名称】緒方 雅昭
(72)【発明者】
【氏名】カダヴ、 アシム
(72)【発明者】
【氏名】レイ、 ファーレイ
(72)【発明者】
【氏名】グラフ、 ハンス、 ペーター
(72)【発明者】
【氏名】ニクレスク-ミジル、 アレクサンドラ
(72)【発明者】
【氏名】ミン、 レンチャン
(72)【発明者】
【氏名】ズオウ、 ホンギュ
【審査官】佐田 宏史
(56)【参考文献】
【文献】特開2018-026108(JP,A)
【文献】特開2010-039617(JP,A)
【文献】特開2015-194901(JP,A)
【文献】国際公開第2018/173848(WO,A1)
【文献】国際公開第2019/008752(WO,A1)
【文献】中国特許出願公開第111325347(CN,A)
【文献】中国特許出願公開第110110043(CN,A)
【文献】宮西 大樹、外2名,“多段階時空間推論による映像質問応答”,一般社団法人 人工知能学会 第34回全国大会(2020),日本,一般社団法人人工知能学会,2020年06月09日,pp.1-4
【文献】Nicolas Carion et al.,"End-to-End Object Detection with Transformers",arXiv,米国,CORNELL UNIVERSITY,2020年05月28日,pp.1-26,https://arxiv.org/abs/2005.12872
(58)【調査した分野】(Int.Cl.,DB名)
G06T 1/00,7/00-7/90
G06V 10/00-10/98
G06F 16/70
G06N 3/02
(57)【特許請求の範囲】
【請求項1】
マルチホップ推論フレームワークを使用して多段階の構成的長期推論を実行する方法であって、
1つ又は複数のプロセッサによって、
畳み込みニューラルネットワーク(CNN)を使用することによって、ビデオストリームから特徴マップおよびフレームレベル表現を抽出する(1001)ことと、
オブジェクト表現の学習および検出を実行する(1003)ことと、
追跡を介してオブジェクトを時間的にリンクして、オブジェクトトラックおよび画像特徴トラックを生成する(1005)ことと、
前記ビデオストリーム内のフレームをホップするマルチホップトランスフォーマーに、該マルチホップトランスフォーマーが正解に到達するまで、前記ビデオストリーム内の1つまたは複数の前記オブジェクトに同時に注目しながら、前記オブジェクトトラックおよび前記画像特徴トラックを供給する(1007)ことと、
前記オブジェクトおよび画像コンテキストからのビデオ表現の学習および認識を使用して、前記ビデオストリーム内の
前記オブジェクトのうちのターゲットオブジェクトを位置特定する(1009)ことと、を含む
処理を実行する方法。
【請求項2】
前記オブジェクト表現の学習および検出を実行するときに、空間次元が1次元に折り畳まれる、請求項1に記載の方法。
【請求項3】
前記オブジェクト表現の学習および検出を実行するときに、バッチ次元が、前記特徴マップの時間次元と組み合わされる、請求項2に記載の方法。
【請求項4】
前記マルチホップトランスフォーマーの単一層に対する複数の反復は、whileループで実行される、請求項1に記載の方法。
【請求項5】
前記複数の反復の各反復は、前記ビデオストリームの選択フレームにおける前記1つまたは複数のオブジェクトのターゲットオブジェクトを選択することによって、1ホップの推論を実行する、請求項
4に記載の方法。
【請求項6】
前記ホップは、自己回帰的に動作する、請求項
5に記載の方法。
【請求項7】
マルチホップ推論フレームワークを使用して多段階の構成的長期推論を実行するためのコンピュータ可読プログラムを含む非一時的コンピュータ可読記憶媒体であって、コンピュータ上で実行されたときに、前記コンピュータ可読プログラムが、前記コンピュータに、
畳み込みニューラルネットワーク(CNN)を使用することによって、ビデオストリームから特徴マップおよびフレームレベル表現を抽出する(1001)工程と、
オブジェクト表現の学習および検出を実行する(1003)工程と、
追跡を介してオブジェクトを時間的にリンクして、オブジェクトトラックおよび画像特徴トラックを生成する(1005)工程と、
前記ビデオストリーム内のフレームをホップするマルチホップトランスフォーマーに、該マルチホップトランスフォーマーが正解に到達するまで、前記ビデオストリーム内の1つまたは複数の前記オブジェクトに同時に注目しながら、前記オブジェクトトラックおよび前記画像特徴トラックを供給する(1007)工程と、
前記オブジェクトおよび画像コンテキストからのビデオ表現の学習および認識を使用して、前記ビデオストリーム内の
前記オブジェクトのうちのターゲットオブジェクトを位置特定する(1009)工程と、を実行させる、非一時的コンピュータ可読記憶媒体。
【請求項8】
前記オブジェクト表現の学習および検出を実行するときに、空間次元が1次元に折り畳まれる、請求項
7に記載の非一時的コンピュータ可読記憶媒体。
【請求項9】
前記オブジェクト表現の学習および検出を実行するときに、バッチ次元が、前記特徴マップの時間次元と組み合わされる、請求項
8に記載の非一時的コンピュータ可読記憶媒体。
【請求項10】
前記マルチホップトランスフォーマーの単一層に対する複数の反復は、whileループで実行される、請求項
7に記載の非一時的コンピュータ可読記憶媒体。
【請求項11】
前記複数の反復の各反復は、前記ビデオストリームの選択フレームにおける前記1つまたは複数のオブジェクトのターゲットオブジェクトを選択することによって、1ホップの推論を実行する、請求項
10に記載の非一時的コンピュータ可読記憶媒体。
【請求項12】
マルチホップ推論フレームワークを使用して多段階の構成的長期推論を実行するシステムであって、
メモリと、
畳み込みニューラルネットワーク(CNN)を使用することによって、ビデオストリームから特徴マップおよびフレームレベル表現を抽出し(1001)、
オブジェクト表現の学習および検出を実行し(1003)、
追跡を介してオブジェクトを時間的にリンクして、オブジェクトトラックおよび画像特徴トラックを生成し(1005)、
前記ビデオストリーム内のフレームをホップするマルチホップトランスフォーマーに、該マルチホップトランスフォーマーが正解に到達するまで、前記ビデオストリーム内の1つまたは複数の前記オブジェクトに同時に注目しながら、前記オブジェクトトラックおよび前記画像特徴トラックを供給し(1007)、
前記オブジェクトおよび画像コンテキストからのビデオ表現の学習および認識を使用して、前記ビデオストリーム内の
前記オブジェクトのうちのターゲットオブジェクトを位置特定する(1009)ように構成された、前記メモリと通信する1つまたは複数のプロセッサと、を有する、システム。
【発明の詳細な説明】
【技術分野】
【0001】
関連出願情報
本出願は、2020年9月28日に出願された米国特許仮出願第63/084,066号、および2021年9月1日に出願された米国特許出願第17/463,757号の優先権を主張し、それぞれその全体が参照により本明細書に組み込まれる。
【0002】
本発明は、ビデオ内のオブジェクトの位置特定に関し、より詳細には、時空間推論および位置特定のためのマルチホップトランスフォーマーに関する。
関連技術の説明
【背景技術】
【0003】
過去に得た知識を代数的に操作して新たな質問に答える推論は、人工知能の次のマイルストーンの核となるものである。パーセプションと統計的マッピングから、意図的な思考と非表面的な理解へと移行し、推論できるモデルを構築することは、現在の学習ベースのシステムの限界に対処するのに役立つ。
【発明の概要】
【0004】
マルチホップ推論フレームワークを使用して、多段階の構成的長期推論(compositional long-term reasoning)を実行する方法を提示する。本方法は、畳み込みニューラルネットワーク(CNN)を使用することによって、ビデオストリームから特徴マップおよびフレームレベル表現を抽出することと、オブジェクト表現の学習および検出を実行することと、追跡を介してオブジェクトを時間的にリンクして、オブジェクトトラックおよび画像特徴トラックを生成することと、前記ビデオストリーム内のフレームをホップするマルチホップトランスフォーマーに、該マルチホップトランスフォーマーが正解に到達するまで、前記ビデオストリーム内の1つまたは複数の前記オブジェクトに同時に注目(attending)しながら、前記オブジェクトトラックおよび前記画像特徴トラックを供給することと、前記オブジェクトおよび画像コンテキストからのビデオ表現の学習および認識を使用して、前記ビデオストリーム内のターゲットオブジェクトを位置特定することと、を含む。
【0005】
マルチホップ推論フレームワークを使用して、多段階の構成的長期推論を実行するためのコンピュータ可読プログラムを備える非一時的コンピュータ可読記憶媒体が提示される。コンピュータ可読プログラムは、コンピュータ上で実行されると、コンピュータに、畳み込みニューラルネットワーク(CNN)を使用することによって、ビデオストリームから特徴マップおよびフレームレベル表現を抽出する工程と、オブジェクト表現の学習および検出を実行する工程と、追跡を介してオブジェクトを時間的にリンクして、オブジェクトトラックおよび画像特徴トラックを生成する工程と、前記ビデオストリーム内のフレームをホップするマルチホップトランスフォーマーに、該マルチホップトランスフォーマーが正解に到達するまで、前記ビデオストリーム内の1つまたは複数の前記オブジェクトに同時に注目しながら、前記オブジェクトトラックおよび前記画像特徴トラックを供給する工程と、前記オブジェクトおよび画像コンテキストからのビデオ表現の学習および認識を使用して、前記ビデオストリーム内のターゲットオブジェクトを位置特定する工程と、を実行させる。
【0006】
マルチホップ推論フレームワークを使用して、多段階の構成的長期推論を実行するシステムを提示する。システムは、メモリと、畳み込みニューラルネットワーク(CNN)を使用することによって、ビデオストリームから特徴マップおよびフレームレベル表現を抽出し、オブジェクト表現の学習および検出を実行し、追跡を介してオブジェクトを時間的にリンクして、オブジェクトトラックおよび画像特徴トラックを生成し、前記ビデオストリーム内のフレームをホップするマルチホップトランスフォーマーに、該マルチホップトランスフォーマーが正解に到達するまで、前記ビデオストリーム内の1つまたは複数の前記オブジェクトに同時に注目しながら、前記オブジェクトトラックおよび前記画像特徴トラックを供給し、前記オブジェクトおよび画像コンテキストからのビデオ表現の学習および認識を使用して、前記ビデオストリーム内のターゲットオブジェクトを位置特定するように構成された、前記メモリと通信する1つまたは複数のプロセッサとを含む。
【0007】
これらおよび他の特徴および利点は、添付の図面と関連して読まれるべき、以下の例示的な実施形態の詳細な説明から明らかになるのであろう。
【図面の簡単な説明】
【0008】
本開示は、以下の図面を参照して、以下の好ましい実施形態の説明において詳細を提供する。
【0009】
【
図1】従来のシステムと、本発明の実施形態による、マルチホップトランスフォーマーを使用する例示的なシステムとの比較を示すブロック/フロー図である。
【0010】
【
図2】本発明の実施形態による、ホッパーの例示的フレームワークのブロック/フロー図である。
【0011】
【
図3】本発明の実施形態による、マルチホップトランスフォーマーの例示的なアーキテクチャの第1の部分のブロック/フロー図である。
【0012】
【
図4】本発明の実施形態による、マルチホップトランスフォーマーの例示的なアーキテクチャの第2の部分のブロック/フロー図である。
【0013】
【
図5】本発明の実施形態による、マルチホップトランスフォーマーを使用するための例示的な実用的用途である。
【0014】
【
図6】本発明の実施形態による、マルチホップトランスフォーマーを使用するための例示的な処理システムである。
【0015】
【
図7】本発明の実施形態による、マルチホップトランスフォーマーを使用するための例示的な方法のブロック/フロー図である。
【発明を実施するための形態】
【0016】
学習および推論は、知能に関連する2つの不可欠な能力である。この2つのうち、学習の統計的性質はよりよく理解されており、過去数十年にわたる人工知能の主要な進歩を示している。データの統計的な相関関係を学習することによって課題を解決するために、多くの機械学習法が開発された。しかしながら、相関をマッピングして学習する機能のみを備えた機械には、無視できない欠点がある。例えば、統計的な誤ったパターンや望ましくないデータ集合の偏りによって簡単にだまされる可能性がある。また、別の例では、研究者は、モデルが演技者のダイナミクスではなく、シーンの偏りである青いスイミングプールに依存しているため、演技者が隠されているときでさえ、モデルが、例えば、「水泳」という行動を認識することができることを発見した。このようなモデルは、解釈可能性、ロバスト性、汎用性、健全性、および一般化に制限があり、好ましくない。一方、推論の性質は、もっととらえどころがなく、知能の核心に近いものであることが証明されている。
【0017】
人間にとっての推論とは、知識実体を関係の観点から操作する能力である。人間は、常に無意識のうちに推論を行っている。例えば、人間は、物体を認識するだけでなく、物体間の関係を理解する。人間は、静止的な物体(信号機や道路標識など)に隠された意味を推論し、歩行者や車がどのように動き、どこに移動するかを予測して、ナビゲートする方法を決定する必要がある。また、人間がポーチに記録されたセキュリティカメラ映像を分析して、ビデオ内の人間が荷物を盗んでいるのか、それとも配達しているかを判断するときにも推論が行われる。人間の推論と同様に、機械推論は「新しい質問に答えるために、以前に獲得した知識を代数的に操作すること」と定義することができる。知覚から意図的な思考と真の理解へと移行し、機械学習中心のAIから機械推論中心のAIへの移行が観察されている。
【0018】
常識と推論への探求が注目を集めているが、時空間推論とビデオ理解を行う能力を備えたモデルは存在しない。これに関して、例示的な実施形態は、複雑な問題解決のために、具体的にはビデオ理解のタスクに関するニューラル推論を進める。ビデオ理解には、時空間推論が必要である。例えば、リアルタイムの監視ビデオから万引きを検出するためには、第一に、モデルは、人物や商品を認識する必要がある。第二に、モデルは、「歩き回る」、「商品を持つ」、「商品をポケットに入れる」、「会計する」、「店を出る」などのアトミック行動を認識できる必要がある。そのためには、オブジェクトの永続性(permanence)を実現する視覚システムを構築することが暗黙的に必要になる。最も重要なことは、モデルがこれらの行動の時間的順序を認識し、これらの行動間の関係および論理を推論する必要があることである。このような高レベルのビデオ理解を可能にするために、例示的な実施形態は、知識を柔軟に展開し、時空間推論を実行する高度なビデオ理解フレームワークであるホッパーを導入する。
【0019】
ホッパーは、CATERタスクを適用するために開発された。CATERタスクには、閉塞(occlusion)および包含(containment)の下でのスニッチローカリゼーション(Snitch Localization)が含まれ、これはフラグシップタスクであり、モデルが環境に与える影響を認識する能力をテストするCATERで最も難しいタスクである。モデム時空間ビデオアーキテクチャを分析するための診断データ集合として、CATERスニッチローカリゼーションタスクは、カップとボールのトリックに類似しており、例えば、オブジェクトは、特別なオブジェクト(スニッチ)と少なくとも1つの容器(コーン)を含み、同時に移動しており、タスクは、スニッチが別のオブジェクトによって遮られたり、含まれたり(例えば、内側に隠されたり)することがある中で、ビデオの最後にあるスニッチの位置を決定することである。従来のビデオアーキテクチャは、高度な時空間理解能力がないため、このタスクをうまく実行することは困難である。ホッパーは、ビデオ理解フレームワークとして、このような問題を軽減するためのマルチホップトランスフォーマーを含む。
【0020】
ホッパーは、多段階の構成的長期推論を含み、例えば、人間は、工程(多段階)で考えて、世界をその部分の合計(構成)として理解し、従って、知的モデル(例えば、トークンベースのオブジェクト中心の学習)のための多段階の構成推論を奨励することが重要であり得、人間は、通常、エンティティおよびそれらの間の関係の観点から考えるので、人間は、例えば、追跡可能なビデオ認識などのトークンベースのオブジェクト中心の学習に傾倒し、つまり、例示的な実施形態では、追跡が時間順にシーケンス特徴を集約し、一貫した特徴表現、および、例えば、エンドツーエンド自動ニューラル推論を与えることができるため、追跡をシステムに組み込む。例示的な実施形態は、記号論理的推論が豊富な多段階の推論を行うことができるにもかかわらず、ニューラルネットワークは自動で、効率的であり、良好な一般化能力を有するので、ニューラル推論およびアテンションモデリングに依存する。例示的なモデルは、明示的、エンドツーエンド、かつ健全な多段階の時空間推論手順を自動的に実行して、長期的なビデオ理解の構成的かつ構造的な性質を処理する。これは、マルチホップトランスフォーマーを繰り返し実行することによって実現される。
【0021】
マルチホップトランスフォーマーは、マルチホップトランスフォーマーが正解(ターゲットオブジェクト)に到達するまで、ビデオ内のオブジェクトを「意識的に」選択しながら、ビデオ内のフレームをホッピングすることによって推論する機能を有する。例示的な実施形態は、whileループを用いてマルチホップトランスフォーマーの単一層に対して複数の反復を実行する。反復ごとに、特定のフレーム内の特定のオブジェクトを選択することによって、1ホップの推論を実行する。ホップ、すなわち反復は、自己回帰方式で動作する。ホップ数は、自動的に検出され、ビデオによって異なる。マルチホップトランスフォーマーは、反復設計を通じて学習した表現の組み合わせをガイドし、マルチヘッドおよび条件付けアテンション機構は、適切で正しい帰納的バイアス(inductive biases)を提供し、より高い推論形態へと導く、本質的に構成規則である。このマルチホップトランスフォーマーを中心としたホッパーは、困難な問題解決タスクに対処するために、代数的構造事前確率(algebraic structural priors)を強化するように設計されている。
【0022】
ホッパーは、解釈可能な状態で自動的に多段階推論を行う。これは、非自明なビデオ理解のための構造化された、自動、反復、および連鎖的な推論プロセスを可能にする最初の方法であると思われる。短いクリップから学習する代わりに、提案されたモデルは、ビデオ全体を取り込み、エンドツーエンドの差別化能力を有する。例示的な実施形態は、CATERデータ集合上の多段階構成のニューラル推論におけるモデルの能力を実証し、わずか1FPS(フレーム/秒)で最新の性能を達成する。モデルは、CATERデータ集合上で高精度を得るために、最後のフレームのみを見ることができることを発見した後、例示的な実施形態では、任意のモデルについて真の時空間推論を必要とするために、より困難なデータ集合CATER-hを構築した。例示的な方法は、実質的により高い予測力をもたらす。結果は、高レベルのビデオ理解と機械知能に向けたマルチホップ推論の重要性と価値を強調する。
【0023】
図1を参照すると、タスクには、ビデオと、ビデオ内のオブジェクトの最終的な位置を要求するクエリとが与えられ、このオブジェクトは、隠されたり、遮蔽されたりすることがある。システムの出力は、オブジェクトが存在する可能性のある最終的な座標またはボックスである。
【0024】
システム100は、深層学習ネットワーク104がビデオストリーム102を受信して出力106をローカライズする既存の作業を記述する。多くの場合、単一の表現が絡み合っているため、これらのシステム100は、オブジェクトがどのように移動するかを完全に解読または推論することができない。そのため、このようなシステム100は、多くの場合、オブジェクトの形状またはオクルーダー(オブジェクトを隠す)のようなバイアスに依存し、最終出力としてそれを与える。
【0025】
システム110は、例示的な発明を示しており、ホッパーは、まず、ビデオストリーム112から受信されたフレームにおいて、オブジェクトトラッカ114を介してオブジェクトを追跡する。ホッパーは、トラック116を時間的に一致させることによって、一貫した表現を構築する。次に、推論を使用して、オブジェクトが完全に見えていた中間段階からビデオの終わりに向かってトレースバックして、オブジェクトまたは出力120を完全に位置特定するマルチホップトランスフォーマー118が使用される。
【0026】
図2を参照すると、ホッパー200のフレームワークが示されており、CNN210が、ビデオ入力またはビデオストリーム205からフレームレベルの特徴表現を抽出するために利用される。位置時間符号化215および解像度符号化220は、CNN210から特徴マップ225を学習して総和する。結果として得られる表現は、オブジェクトクエリと共に、トランスフォーマーベースのオブジェクト検出器であるDETR230への入力を形成する。その後、追跡235は、Hungarianアルゴリズムを適用して、2つの連続するフレーム間でオブジェクトをマッチングさせることによって実行される。CNN210からのN個のオブジェクトトラックと画像特徴の1トラックとは、学習された位置時間符号化215とともに追加されて、提案されたマルチホップトランスフォーマー250へのメモリ入力を形成し、これは、ビデオクエリをさらに受け入れ、ビデオの潜在表現を生成する。多層パーセプトロン(MLP)240は、ビデオ表現を取り込み、分類を実行する。ホッパー200は、まず、バックボーンまたはCNN210を介して、空間コンテキストとすべてのフレームの表現を取得する。次いで、オブジェクト表現およびオブジェクトトラックが計算されて、マルチホップトランスフォーマー250のためのトークンベースのオブジェクト中心の学習が可能になる。
【0027】
ホッパー200は、ビデオストリーム205の本質を捉えるためのフレームワークを提供する。ホッパー200は、人間が通常、エンティティとそれらの間の関係の観点から考えるという観察から着想を得ており、ホッパー200は、追跡統合型のオブジェクト中心学習と多段階の構成的長期推論を通じて高性能を達成する。特徴を学習して抽出するピクセルに対して処理を実行する従来の深層ビジュアルネットワークとは異なり、オブジェクト中心の学習ベースのアーキテクチャには、低レベル情報からのグループ化と抽象化を通じてエンティティに関する情報を記憶する部分が明確に定義されている。さらに、ホッパー200は、細視化(オブジェクト表現)情報と粗視化(画像表現)情報の両方を組み合わせことで、ビデオ205の非自明なコンテキスト理解を形成することができる。
【0028】
例示的な実施形態は、
図2のホッパーフレームワーク200を示す。図示されるように、ホッパー200は、ビデオ入力205からフレームレベルの表現を抽出するCNNバックボーン210、オブジェクト表現の学習および検出215、220、追跡235を介した経時的なオブジェクトのリンク、ならびに(マルチホップトランスフォーマー250を介して)オブジェクトおよび画像コンテキストからのビデオ表現の学習および認識を含む。
【0029】
最初のRGBベースのビデオ表現
【数1】
から始まり、ここでTはビデオのフレーム数を表し、3は3つのカラーチャネルのためのものであり、H
0およびW
0は元の解像度の高さおよび幅を表し、従来のCNNバックボーン210は、フレームtごとに特徴マップ
【数2】
(225)とコンパクトな画像表現
【数3】
を抽出する。1×1畳み込みは、fのチャネル次元をCからより小さな次元dに縮小し、線形層を使用してctの次元をCからdに変換する。
【0030】
オブジェクトの検出および表現に関して、例示的な実施形態は、空間次元を1次元に折り畳み、特徴マップfの時間次元とバッチ次元を組み合わせる。位置エンコーディング215は、各時間ステップ(合計でT)および各解像度(合計でH×W)について学習され、これらはさらに要素ごとに特徴マップ225に追加され、その結果、DETR230のトランスフォーマーエンコーダに提供されるメモリ表現が得られる。DETR230は、画像用のトランスフォーマーベースのオブジェクト検出器である。DETR230は、さらに、すべての画像に対するオブジェクトクエリのN個の埋め込みを(すべての画像が最大でN個のオブジェクトを有することができると仮定して)トランスフォーマーデコーダに受け入れる。また、例示的な実施形態は、バッチ次元と時間次元を組み合わせる。DETR230からの出力は、すべてのオブジェクト(例えば、コーン、スニッチなど)のバウンディングボックスおよびクラスラベルを予測するためにMLP240への入力として使用される変換されたオブジェクト表現である。
【0031】
追跡235に関して、追跡235は、本質的に関連付け問題である。連続する2つのフレームからの2つのオブジェクト間の関連付けは、オブジェクトクラスの一致と2つのバウンディングボックスの差によって定義することができる。
【0032】
例示的な実施形態は、ビデオ205のすべてのフレームにおけるオブジェクトの予測リストとして
【数4】
を示し、ここで、
【数5】
は、フレームtにおけるオブジェクトの予測集合を示す。フレームtにおける予測オブジェクト集合の各要素は、以下の4タプルと見做すことができる。
【0033】
【数6】
ここで、
【数7】
はフレームtにおけるオブジェクトiの最大予測尤度を持つクラスラベルを示し、
【数8】
は画像サイズに対するバウンディングボックスの左上と右下の座標を定義するベクトルであり、
【数9】
はクラスcの予測尤度を示し、
【数10】
は、このオブジェクトiの表現ベクトルを示す。
【0034】
フレームtおよびt+1における予測オブジェクト集合間の最適な二部マッチングを得るために、例示的な実施形態は、以下の最も低い順列コストを有するN個の要素
【数11】
の順列を探索する。
【数12】
【0035】
ここで、
【数13】
は予測オブジェクト
【数14】
(例えば、フレームtにおけるオブジェクトi)と、
【数15】
によって表される順列σからのインデックスσ(i)を有するフレームt+1における予測オブジェクトとの間のペアワイズトラックマッチングコストである。最適な割り当ては、Hungarianアルゴリズムを用いて効率的に計算される。
【0036】
オブジェクトiの時刻tにおけるトラックマッチングコストは、
【数16】
として定義される。
【0037】
ここで、
【数17】
は、指数関数を表し、記号
【数18】
の後の方程式が{...}内の条件が真である場合にのみ有効になり、それ以外の場合は項が0になる。
【数19】
は各項を重み付けする。
【数20】
は、L1損失と一般化IoU損失の線形結合として定義される。フレームtにおけるオブジェクトiの予測クラスラベルが
【数21】
でない場合、例示的な実施形態は、フレームt+1における予測オブジェクトσ(i)に対するクラスラベル
【数22】
の尤度を最大化し、両者のバウンディングボックス差を最小化することを目的とする。ビデオの合計トラックマッチングコストは、オブジェクトi=1~N、フレームt=1~T-1までの
【数23】
の集約である。
【0038】
ビデオの表現および認識に関して、Hungarianアルゴリズムから得られたN個のオブジェクトトラックと、バックボーンCNN210からの画像特徴の1トラックとが、学習された位置時間符号化でさらに追加されて、マルチホップトランスフォーマー250へのメモリ入力を形成する。マルチホップトランスフォーマー250は、ビデオの最終的な潜在表現
【数24】
を生成する。MLPはビデオ表現eを取り込み、認識を実行する。
【0039】
マルチホップトランスフォーマー250に関して、例示的な実施形態では、
図3および
図4にマルチホップトランスフォーマー250が示されている。アーキテクチャ300Aは、アーキテクチャ300Bと通信する。全体のモジュールは、疑似コードでアルゴリズム1に記述されており、表記は次のように定義されている。フレームトラック
【数25】
、オブジェクトトラック
【数26】
、メモリシーケンス
【数27】
、ターゲットビデオクエリ埋め込みε、オブジェクト可視性マップν、ヘルパー情報
【数28】
、アテンション候補
【数29】
、およびアテンション重み
【数30】
である。
【0040】
マルチホップトランスフォーマーは、フレームトラック
【数31】
、オブジェクトトラック
【数32】
、オブジェクト可視性マップνシーケンス、ターゲットビデオクエリ埋め込みε、オブジェクト数N、およびフレーム数Tを入力として受け付ける。νは、ヒューリスティック基準によって決定され、オブジェクトのバウンディングボックスがそのフレーム内の別のオブジェクトのバウンディングボックスに完全に含まれていない場合、オブジェクトは可視である。
【0041】
以下に再現されるアルゴリズム1に示されるように、マルチホップトランスフォーマー250は、TransformerfとTransformersの2つの従来のエンコーダ/デコーダトランスフォーマーユニットを有する。
【0042】
技術的には、トランスフォーマーは、tgt_updated、 attention_weights Transformer(tgt, src)として定義することができる。
【表1】
【0043】
マルチホップトランスフォーマー250は、マルチホップトランスフォーマー250が正しい答え(例えば、ビデオ認識にとって最も重要な特定のフレームのオブジェクト)に到達するまで、フレーム内のオブジェクト(複数可)に選択的に注目しながらフレームをホップすることによって推論する能力を有する。具体的には、例示的な方法は、マルチホップトランスフォーマー250上で複数の反復を適用し、それぞれが、マルチヘッドアテンションを通じて特定のフレーム内の特定のオブジェクト(複数可)に注目することによって、1ホップの推論を実行する。合計H回の反復(ホップ)で、モデルは、H個の重要なフレーム内のオブジェクトに注目し、ビデオの表現を形成する。ビデオの複雑さが変わると、Hもビデオごとに変化する。例示的な実施形態では、ホップが自己回帰的に動作するように制約している。したがって、ホップhが主にフレームtのオブジェクト(複数可)を処理する場合、ホップh+1は、フレームtの後のフレームのオブジェクト(複数可)にのみ処理することができる。マルチホップトランスフォーマー250が最後のフレーム(アルゴリズム1の2行目)のオブジェクトに注目したときにホッピングは終了する。
【0044】
Transformer
fは、メモリシーケンスMから有用な情報を抽出し、Transformer
sは、その情報を注意深く利用することによって、ターゲットビデオの潜在表現を学習する。したがって、メモリシーケンスから、マルチホップトランスフォーマー250は、まず、アテンション候補
【数33】
(たとえば、特定のオブジェクトの表現)とヘルパー情報
【数34】
を取得し、これらは、今回のホップで誰にアテンションするかを決定するのを助けるのに重要な表現である。ホップ1には、異なる
【数35】
と
【数36】
(アルゴリズム1の6行目)があり、これは、グローバル情報から最初の重要なオブジェクト(複数可)とフレームを見つけることを目的としたすべてのビデオにホップ1が必要だからである。Transformer
fは、
【数37】
をtgtとして、
【数38】
をsrcとして取り込み、次いで、
【数39】
に選択的に注目し、アテンション候補のヘルパー融合表現を元の表現
【数40】
に条件付きで統合することにより、
【数41】
の更新版であるU
updateを生成する。条件付き統合は、アテンション特徴ベースのゲーティング(アルゴリズム1の9行目)によって実現される。Transformer
sの機能は、アテンション候補の更新されマスクされた表現(アルゴリズム1の11行目)に注目して、ビデオの表現を学習することである。
【0045】
Masking()は、モデルが可視オブジェクトのみを考慮するのに役立ち、現在のホップがホップ1でない場合に、自己回帰演算を実行する。ホップ2から最後のホップまでは、Extrac()は、前のホップが注目したフレーム内のすべてのオブジェクトの表現の集合として
【数42】
を返し、Masking()は、Transformer
sのアテンション候補が前のホップが注目したフレームの後のフレーム内の可視オブジェクトであることを確認する。最も注目したオブジェクトとフレームのインデックスは、差別化可能なSoftargmax()で前のホップからのアテンション重み
【数43】
によって決定される。
【0046】
Transformer
f、Transformer
s、および新規のホッピング機構により、マルチホップトランスフォーマー250は、アテンション候補の集合内の要素間の関係、および各アテンション候補がヘルパー情報
【数44】
にどのように関係するかを推論することによって、ビデオεの現在の表現を与えられたときに、(アテンション候補
【数45】
のシーケンス内の)どのオブジェクトに注目すべきかを決定する。
【0047】
埋め込まれたこれらの構造的事前確率(例えば、ソフトツリーとして扱うことができるアテンション)は、本質的に、以前に獲得した知識を代数的に操作する構成規則を提供し、良好で正しい帰納的バイアスとして機能し、より高い形式の推論につながる。
【0048】
訓練について、以下の訓練方法を概説する。
【0049】
動的ホップストライド、すなわち、例示的な実施形態では、ホップごとのフレームストライドを厳密に1に設定する代わりに、モデルがどの次フレームを推論するかをアトミックに決定させる。
【0050】
推論の最小ホップ、すなわち、例示的な実施形態は、合理的に多数のホップ(可能でない限り、例えば、最後の可視スニッチが最後から2番目のフレームにあるビデオ)を通じて推論の学習を促進するために、モデルが任意のビデオに対して行う必要がある最小ホップ数を5(経験的に設定)に設定する。
【0051】
補助ホップ1オブジェクト損失、すなわち、例示的な実施形態は、計算された最後の可視スニッチの分類インデックスのクロスエントロピーを定義する。この損失への入力は、Toからの最後の可視スニッチのインデックスと、ホップ1のTransformersからのアテンション重みであり、各インデックスクラスの予測尤度として機能する。
【0052】
補助ホップ2オブジェクト損失、すなわち、例示的な実施形態は、最後の可視スニッチの直前のオクルーダまたはコンテナの分類インデックスのクロスエントロピーとして定義する。この損失への入力は、ヒューリスティック3の計算されたインデックスと、ホップ2のTransformersからのアテンション重みである。
【0053】
補助ホップ1&2フレーム損失、すなわち、例示的な実施形態は、後のホップに有益なホップ1および2における正しいフレームに注目する。L1損失項は、モデルが正しいフレームインデックスを見つけるように導くことができる。
【0054】
教師強制、すなわち、例示的な実施形態は、以前の時間ステップからのグラウンドトゥルースを入力として使用するリカレントニューラルネットワークを迅速かつ効率的に訓練するために使用されるこの方法を使用することができる。例示的な実施形態は、訓練段階中にグラウンドトゥルース
【数46】
および
【数47】
を提供することによって、ホップ2に教師強制を使用する。
【0055】
マスキングアウトによる対照的なデバイアス損失、すなわち、例示的な実施形態は、これを使用して、最後のフレームで最も注目されているオブジェクトがマスキングアウトされたときに、モデルが正しく予測を行うことができる場合、モデルのペナルティを与える。ここでの直感は、モデルが正しい証拠を見ずに正しい位置を予測することはできないはずだということである。
【0056】
技術的には、対照的なデバイアス損失は、以下のように定義される、例示的な実施形態が最大化することを望むエントロピー関数として定義される。
【数48】
【0057】
ここで、
【数49】
はマルチホップトランスフォーマー250へのメモリシーケンスであり、最後に最も注目されたオブジェクトはゼロによってマスクされ、Kはグリッドクラスの数を示し、g
θは各グリッドクラスの尤度を生成するパラメータθを有するビデオ表現/認識モジュール(MLPとともにマルチホップトランスフォーマー250)を示す。この対照的なデバイアス損失(debias loss)は、最終的な分類タスクに最大限に有用な情報を捕捉するために潜在空間を誘導する。
【0058】
CATER-Hデータ集合に関して、CATERは、解決されるべき長期の空間的理解および時間的推論を必要とする診断ビデオデータ集合を提供する。CATERは、暗黙的な誤ったデータ集合バイアスを利用し、ビデオの時空間構造の意味のあるバリエーションを無視するモデルに対して構築される。完全に観察可能で制御可能なシーンバイアスを用いて、CATERの5,500本のビデオは、標準3Dオブジェクトのライブラリ、すなわち、3つのサイズ(小、中、大)の5つのオブジェクト形状(立方体、球、円柱、円錐、スニッチ)、2つの材料(光沢のある金属およびつや消しゴム)、および8つの色を含む合計193の異なるオブジェクトクラスを用いて、24FPS(300フレーム320×240px)で合成的にレンダリングされる。すべてのビデオには、小さな金属スニッチがある。すべてのオブジェクトが配置される大きな「テーブル」平面がある。高度なレベルでは、CATERビデオのダイナミクスは、カップとボールのマジックのルーティンに類似している。4つのアトミック行動(「回転」、「ピックプレース」、「スライド」、および「包含(contain)」)のサブ集合が各オブジェクトによって提供される。
【0059】
「包含」はコーンによってのみ与えられ、再帰的な包含が可能であり、例えば、コーンは、別のオブジェクトを含むより小さなコーンを含むことができることに留意されたい。CATERのすべてのビデオは、いくつかのタイムスロットに分割され、このビデオのすべてのオブジェクトはタイムスロットでランダムに行動(「行動なし」を含む)を実行する。オブジェクトと行動はビデオによって異なる。「テーブル」平面は、6×6のグリッド(36個の矩形セル)に分割され、スニッチローカリゼーションタスクは、単一ラベル分類タスクとして、ビデオの最後にスニッチがいるグリッドを決定することである。このタスクでは、オブジェクトが別のオブジェクトによって隠されたり、含まれたり(内部に隠されたり)する可能性があるため、オブジェクトの永続性を暗黙的に理解する必要がある。
【0060】
スニッチローカライゼーションタスクは、スニッチが最終的に別のオブジェクトに含まれている場合、より困難になる。この発見に着想を得て、例示的な実施形態では、CATERのすべてのビデオについて、最後の可視スニッチのフレームインデックスのヒストグラムをプロットする。CATERデータ集合は、時間的手がかりに関して、スニッチローカライゼーションタスクに対して非常に不均衡である。例えば、CATERでは、58%のサンプルで、ビデオの最後にスニッチが完全に見える。これは、ビデオ全体ではなく、最後のフレームを単に「見る」だけで、モデルが比較的良好な精度を得ることができることを示す。このようなデータ集合の特性は、CATERの本来の設計目的、例えば、長期的な時間的推論を必要とする診断ツールの提供に反するため、好ましくない。直感的には、人間であっても、ビデオの前半でスニッチが見えない場合、スニッチローカライゼーションタスクはより困難になる。結果として、例示的な実施形態では、解決するために真の時空間推論を必要とする多様な時間的変動を有する偏りのないデータ集合として、新しいデータ集合CATERhard(またはCATER-h)を構築した。CATER-hのヒストグラムでは、すべてのフレームインデックスがほぼ同じ数のビデオを共有し、そのフレームにおいて最後の可視スニッチを有する。CATER-hは、最後の数フレームを「見る」だけでショートカットすることによって、高性能を実現するモデルを回避することができる。
【0061】
要約すると、例示的な実施形態は、多段階の構成的長期推論を実行できるマルチホップ推論フレームワークを使用する。マルチホップトランスフォーマーには、マルチホップトランスフォーマーが正しい答えに到達してオブジェクトの位置を特定するまで、ビデオ内のオブジェクトに「意識的に」注目しながら、ビデオ内のフレームをホップすることによって推論する機能がある。例示的な実施形態は、マルチホップトランスフォーマーの単一層に対して、whileループを用いて複数の反復を実行する。すべての反復は、特定のフレーム内の特定のオブジェクトを選択することによって、1ホップの推論を実行する。ホップ(または反復)は、自己回帰的に動作する。ホップ数は自動的に検出され、ビデオによって異なる。マルチホップトランスフォーマーは、反復設計、ならびに、良好で正しい帰納的バイアスを提供し、より高度な推論を導く本質的に構成規則であるマルチヘッドおよび条件付けアテンション機構を通じて、学習された表現の組み合わせを導く。マルチホップトランスフォーマーを含むホッパーは、時空間位置特定に対処するために代数的構造事前確率を強化するように設計されている。
【0062】
その結果、本発明の例示的な実施形態は、ビデオ内のオブジェクトの位置特定の問題を解決する。例示的な実施形態は、時空間ビデオ推論システムを説明する。ビデオ(またはビデオストリーム)と、ビデオ内の特定のオブジェクトの最終的な位置を要求するクエリとが与えられると、タスクは、ビデオ内のオブジェクトの最終的な位置を特定することである。ビデオには、多数のオブジェクトや、時間の経過とともに移動する人が含まれている。様々なカメラアングルによるオクルージョンまたは非表示によってビデオ内をオブジェクトが動き回るため、ビデオ内のオブジェクトを位置特定することは非常に困難である。しかしながら、例示的な実施形態のマルチホップトランスフォーマーを含むホッパーフレームワークは、ビデオストリーム内のターゲットオブジェクトを高い精度で位置特定するのに役立つ。したがって、例示的な実施形態は、知識を柔軟に展開し、高レベルのビデオ理解に向けて時空間推論を実行する高度なニューラルモデルを提案する。特に、ホッパーは、構造化、自動化、反復的、および連鎖的な推論プロセスを実行するマルチホップトランスフォーマーを中心としたビデオ理解フレームワークである。また、教師強制やマスクアウトによる対比的なデバイアス損失など、いくつかの実践的な訓練方法も実証されている。例示的な実施形態は、提案された技法をCATERデータ集合上で評価して、構成的長期時空間推論における能力を評価する。例示的な実施形態では、モデルがCATERの最後の数フレームのみを利用することによって、高い性能を達成することができることを発見した。したがって、より困難なビデオデータ集合であるCATER-hは、真の時空間推論を必要とする不偏データ集合として構築される。
【0063】
図5は、本発明の実施形態による、マルチホップトランスフォーマーを使用するための実用的な適用例のブロック/フロー
図800である。
【0064】
1つの実用的な例では、カメラ802は、ビデオストリーム806内のオブジェクト804(例えば、犯罪を犯した可能性のある自転車に乗っている人)を探す。例示的な方法は、CNN210を介したホッパーフレームワーク200、オブジェクト表現の学習および検出215、220、追跡235、ならびにマルチホップトランスフォーマー250を介したビデオ表現および認識を採用する。一例では、ホッパー200は、(フレームをホッピング/スキップ/ジャンプすることによって)1つまたは複数のフレームを選択して、ビデオストリーム806内のターゲットオブジェクト804を見つけることができる。結果810(例えば、ターゲットオブジェクト804を有するすべてのフレーム)は、ユーザ814が扱うユーザインタフェース812上に提供または表示することができる。
【0065】
図6は、本発明の実施形態による、マルチホップトランスフォーマーを使用する例示的な処理システムである。
【0066】
処理システムは、システムバス902を介して他の構成要素に動作可能に結合された少なくとも1つのプロセッサ(CPU)904を含む。GPU905、キャッシュ906、読み取り専用メモリ(ROM)908、ランダムアクセスメモリ(RAM)910、入出力(I/O)アダプタ920、ネットワークアダプタ930、ユーザインタフェースアダプタ940、およびディスプレイアダプタ950は、システムバス902に動作可能に結合される。さらに、ホッパー200は、CNN210、オブジェクト表現の学習および検出215、220、追跡235、ならびにマルチホップトランスフォーマー250を介したビデオ表現および認識を介して使用することができる。
【0067】
記憶装置922は、I/Oアダプタ920によってシステムバス902に動作可能に結合される。記憶装置922は、ディスク記憶装置(例えば、磁気ディスク記憶装置または光ディスク記憶装置)、固体磁気装置などのいずれであってもよい。
【0068】
トランシーバ932は、ネットワークアダプタ930によってシステムバス902に動作可能に結合される。
【0069】
ユーザ入力装置942は、ユーザインタフェースアダプタ940によってシステムバス902に動作可能に結合される。ユーザ入力装置942は、キーボード、マウス、キーパッド、画像キャプチャ装置、モーションセンシング装置、マイクロフォン、前述の装置のうちの少なくとも2つの機能を組み込んだ装置などのうちのいずれかとすることができる。もちろん、本発明の精神を維持しながら、他のタイプの入力装置を使用することもできる。ユーザ入力装置942は、同じタイプのユーザ入力装置であっても、異なるタイプのユーザ入力装置であってもよい。ユーザ入力装置942は、処理システムとの間で情報を入出力するために使用される。
【0070】
ディスプレイ装置952は、ディスプレイアダプタ950によってシステムバス902に動作可能に結合される。
【0071】
当然ながら、処理システムは、当業者によって容易に考えられるように、他の要素(図示せず)を含むこともでき、特定の要素を省略することもできる。例えば、当業者であれば容易に理解できるように、システムの特定の実装に応じて、様々な他の入力装置および/または出力装置をシステムに含めることができる。例えば、様々なタイプの無線および/または有線の入力装置および/または出力装置を使用することができる。さらに、当業者であれば容易に理解できるように、様々な構成の追加のプロセッサ、コントローラ、メモリなども利用することができる。処理システムのこれらおよび他の変形例は、本明細書で提供される本発明の教示を考慮すれば、当業者であれば容易に想到することができる。
【0072】
図7は、本発明の実施形態による、マルチホップトランスフォーマーを使用するための例示的な方法のブロック/フロー図である。
【0073】
ブロック1001において、畳み込みニューラルネットワーク(CNN)を使用することによって、ビデオストリームから特徴マップおよびフレームレベル表現を抽出する。
【0074】
ブロック1003において、オブジェクト表現の学習および検出を実行する。
【0075】
ブロック1005において、追跡を介してオブジェクトを時間的にリンクして、オブジェクトトラックおよび画像特徴トラックを生成する。
【0076】
ブロック1007において、マルチホップトランスフォーマーが正解に到達するまで、ビデオストリーム内の1つまたは複数のオブジェクトに同時に注目しながら、ビデオストリーム内のフレームをホップするマルチホップトランスフォーマーに、オブジェクトトラックおよび画像特徴トラックを供給する。
【0077】
ブロック1009において、オブジェクトおよび画像コンテキストからのビデオ表現の学習および認識を使用して、ビデオストリーム内のターゲットオブジェクトを位置特定する。
【0078】
本明細書で使用する場合、「データ」、「コンテンツ」、「情報」の用語、および同様の用語は、様々な例示的な実施形態に従って、キャプチャ、送信、受信、表示、および/または保存できるデータを指すために互換的に使用することができる。したがって、このような用語の使用は、本開示の精神および範囲を制限するものと解釈されるべきではない。さらに、本明細書において、コンピューティングデバイスが別のコンピューティングデバイスからデータを受信することが記載されている場合、データは、別のコンピューティングデバイスから直接受信することができ、または、例えば、1つまたは複数のサーバ、リレー、ルータ、ネットワークアクセスポイント、基地局などの1つまたは複数の中間コンピューティングデバイスを介して間接的に受信することができる。同様に、本明細書において、コンピューティングデバイスが別のコンピューティングデバイスからデータを送信することが記載されている場合、データは、別のコンピューティングデバイスに直接送信することができ、または、例えば、1つまたは複数のサーバ、リレー、ルータ、ネットワークアクセスポイント、基地局などの1つまたは複数の中間コンピューティングデバイスを介して間接的に送信することができる。
【0079】
当業者には理解されるように、本発明の態様は、システム、方法、またはコンピュータプログラム製品として具現化することができる。したがって、本発明の態様は、完全にハードウェアの実施形態、完全にソフトウェアの実施形態(ファームウェア、常駐ソフトウェア、マイクロコードなどを含む)、またはソフトウェアとハードウェアの態様を組み合わせた実施形態をとることができ、これらはすべて、本明細書において一般に「回路」、「モジュール」、「計算機」、「装置」、または「システム」として参照することができる。さらに、本発明の態様は、その上に具現化されたコンピュータ可読プログラムコードを有する1つまたは複数のコンピュータ可読媒体に具現化されたコンピュータプログラム製品の形態をとることができる。
【0080】
1つまたは複数のコンピュータ可読媒体の任意の組合せを利用することができる。コンピュータ可読媒体は、コンピュータ可読信号媒体またはコンピュータ可読記憶媒体とすることができる。コンピュータ可読記憶媒体は、例えば、電子、磁気、光学、電磁気、赤外線、または半導体のシステム、装置、またはデバイス、またはこれらの任意の適切な組合せであり得るが、これらに限定されない。コンピュータ可読記憶媒体のより具体的な例(非網羅的リスト)は、1つまたは複数のワイヤを有する電気接続、ポータブルコンピュータディスケット、ハードディスク、ランダムアクセスメモリ(RAM)、読み取り専用メモリ(ROM)、消去可能でプログラム可能な読み取り専用メモリ(EPROMまたはフラッシュメモリ)、光ファイバ、ポータブルコンパクトディスク読み取り専用メモリ(CD-ROM)、光データ記憶装置、磁気データ記憶装置、またはこれらの任意の適切な組合せを含む。本書の文脈では、コンピュータ可読記憶媒体は、命令実行システム、装置、またはデバイスによって、またはそれに関連して使用するためのプログラムを含む、または記憶することができる任意の有形媒体であり得る。
【0081】
コンピュータ可読信号媒体は、例えば、ベースバンドにおいて、または搬送波の一部として、コンピュータ可読プログラムコードが組み込まれた伝搬データ信号を含むことができる。そのような伝搬信号は、電磁気、光学、またはそれらの任意の適切な組合せを含むが、これらに限定されない、様々な形態のいずれかをとることができる。コンピュータ可読信号媒体は、コンピュータ可読記憶媒体ではなく、命令実行システム、装置、またはデバイスによって、またはそれに関連して使用するためのプログラムを通信、伝播、または移送することができる任意のコンピュータ可読媒体であり得る。
【0082】
コンピュータ可読媒体上に具現化されたプログラムコードは、無線、有線、光ファイバケーブル、RFなど、またはこれらの任意の適切な組合せを含むが、これらに限定されない、任意の適切な媒体を使用して送信され得る。
【0083】
本発明の態様のための動作を実行するコンピュータプログラムコードは、Java、Smalltalk、C++などのオブジェクト指向プログラミング言語、および「C」プログラミング言語または同様のプログラミング言語などの従来の手続き型プログラミング言語を含む、1つまたは複数のプログラミング言語の任意の組合せで記述することができる。プログラムコードは、ユーザのコンピュータ上で完全に実行してもよいし、ユーザのコンピュータ上で部分的に実行してもよいし、スタンドアロンソフトウェアパッケージとして、ユーザのコンピュータ上で部分的に、リモートコンピュータ上で部分的に、またはリモートコンピュータもしくはサーバ上で完全に実行してもよい。後者のシナリオでは、リモートコンピュータは、ローカルエリアネットワーク(LAN)またはワイドエリアネットワーク(WAN)を含む任意のタイプのネットワークを介してユーザのコンピュータに接続されてもよく、または(例えば、インターネットサービスプロバイダを使用するインターネットを介して)外部コンピュータへの接続は行われてもよい。
【0084】
本発明の態様は、本発明の実施形態による方法、装置(システム)およびコンピュータプログラム製品のフローチャート図および/またはブロック図を参照して以下に説明される。フローチャート図および/またはブロック図の各ブロック、ならびにフローチャート図および/またはブロック図のブロックの組合せは、コンピュータプログラム命令によって実施できることが理解されよう。これらのコンピュータプログラム命令は、汎用コンピュータ、専用コンピュータ、または他のプログラム可能なデータ処理装置のプロセッサに提供され、コンピュータまたは他のプログラム可能なデータ処理装置のプロセッサを介して実行される命令が、フローチャート図および/またはブロック図のブロックまたはモジュールで指定された機能/動作を実施する手段を作成するように、マシンを生成することができる。
【0085】
これらのコンピュータプログラム命令は、コンピュータ、他のプログラム可能なデータ処理装置、または他のデバイスに特定の方法で機能するように指示することができるコンピュータ可読媒体に格納することもでき、その結果、コンピュータ可読媒体に記憶された命令が、フローチャートおよび/またはブロック図のブロックもしくはモジュールで指定された機能/動作を実施する命令を含む製品を生成する。
【0086】
コンピュータプログラム命令は、また、コンピュータ、他のプログラム可能なデータ処理装置、または他のデバイス上にロードされて、一連の動作ステップがコンピュータ、他のプログラム可能な装置、または他のデバイス上で実行され、コンピュータまたは他のプログラム可能な装置上で実行される命令が、フローチャートおよび/またはブロック図のブロックもしくはモジュールで指定される機能/動作を実施するためのプロセスを提供するように、コンピュータ実装プロセスを生成することができる。
【0087】
本明細書で使用される「プロセッサ」という用語は、例えば、CPU(中央処理装置)および/または他の処理回路を含むものなど、任意の処理装置を含むことを意図していることを理解されたい。また、「プロセッサ」という用語は、複数の処理装置を指す場合があり、処理装置に関連する様々な要素は、他の処理装置によって共有され得る場合があることも理解されたい。
【0088】
本明細書で使用される「メモリ」という用語は、例えば、RAM、ROM、固定メモリデバイス(例えば、ハードドライブ)、リムーバブルメモリデバイス(例えば、ディスケット)、フラッシュメモリなど、プロセッサまたはCPUに関連するメモリを含むことを意図している。このようなメモリは、コンピュータ可読記憶媒体と見做すことができる。
【0089】
加えて、本明細書で使用される「入力/出力装置」または「I/O装置」という語句は、例えば、処理ユニットにデータを入力するための1つまたは複数の入力装置(例えば、キーボード、マウス、スキャナなど)、および/または処理ユニットに関連する結果を提示するための1つまたは複数の出力装置(例えば、スピーカ、ディスプレイ、プリンタなど)を含むことを意図している。
【0090】
上記は、あらゆる点で例示的(illustrative)かつ典型的(exemplary)であり、限定的ではないと理解されるべきであり、本明細書に開示される本発明の範囲は、詳細な説明から決定されるべきではなく、むしろ特許法によって許容される全範囲に従って解釈される特許請求の範囲から決定されるべきである。本明細書に示され、説明された実施形態は、本発明の原理の例示にすぎず、当業者は、本発明の範囲および趣旨から逸脱することなく、様々な変更を実施できることを理解されたい。当業者は、本発明の範囲および精神から逸脱することなく、様々な他の特徴の組み合わせを実施することができる。このように、特許法によって要求される詳細および特殊性とともに、本発明の態様を説明してきたが、特許証によって請求され、保護されることを望むものは、添付の特許請求の範囲に記載されている。