(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2023-12-05
(54)【発明の名称】自己最適化ビデオ分析パイプライン
(51)【国際特許分類】
G06F 9/50 20060101AFI20231128BHJP
【FI】
G06F9/50 150D
【審査請求】有
【予備審査請求】未請求
(21)【出願番号】P 2023531079
(86)(22)【出願日】2021-11-10
(85)【翻訳文提出日】2023-05-23
(86)【国際出願番号】 US2021058740
(87)【国際公開番号】W WO2022115236
(87)【国際公開日】2022-06-02
(32)【優先日】2021-11-09
(33)【優先権主張国・地域又は機関】US
(32)【優先日】2020-11-30
(33)【優先権主張国・地域又は機関】US
(81)【指定国・地域】
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
(71)【出願人】
【識別番号】504080663
【氏名又は名称】エヌイーシー ラボラトリーズ アメリカ インク
【氏名又は名称原語表記】NEC Laboratories America, Inc.
(74)【代理人】
【識別番号】100123788
【氏名又は名称】宮崎 昭夫
(74)【代理人】
【識別番号】100127454
【氏名又は名称】緒方 雅昭
(72)【発明者】
【氏名】ヤン、 イ
(72)【発明者】
【氏名】コヴィエロ、 ジュゼッペ
(72)【発明者】
【氏名】チャクラッダー、 スリマット
(57)【要約】
自己最適化されたビデオ分析パイプラインを実施するための方法が提示される。本方法は、ビデオファイルを一連のフレームにデコードし、ビデオファイルの一連のフレームのうちの1つまたは複数のフレームからオブジェクトの特徴を抽出し、強化学習(RL)に基づく適応リソース割り当てコンポーネントを使用して、ビデオ分析パイプラインに含まれる異なるマイクロサービスのリソース使用量のバランスを動的に調整し、適応マイクロサービスパラメータ調整コンポーネントを使用して、異なるマイクロサービスのマイクロサービスの精度とパフォーマンスのバランスをとり、グラフベースのフィルタを適用して、一連のフレームの1つまたは複数のフレームにわたる冗長な計算を最小限に抑制し、深層学習ベースのフィルタを適用して、ビデオ分析パイプラインにおける異なるマイクロサービス間の不一致から生じる不要な計算を除去する。
【選択図】
図5
【特許請求の範囲】
【請求項1】
自己最適化されたビデオ分析パイプラインを実施するための方法であって、
ビデオファイルを一連のフレームにデコードし(1001)、
前記ビデオファイルの前記一連のフレームのうちの1つまたは複数のフレームからオブジェクトの特徴を抽出し(1003)、
強化学習(RL)に基づく適応リソース割り当てコンポーネントを使用して、前記ビデオ分析パイプラインに含まれる異なるマイクロサービスのリソース使用量のバランスを動的にとり(1005)、
適応マイクロサービスパラメータ調整コンポーネントを使用して、前記異なるマイクロサービスのマイクロサービスの精度とパフォーマンスのバランスをとり(1007)、
グラフベースのフィルタを適用して、前記一連のフレームの前記1つまたは複数のフレームにわたる冗長な計算を最小限に抑制し(1009)、
深層学習ベースのフィルタを適用して、前記ビデオ分析パイプラインにおける前記異なるマイクロサービス間の不一致から生じる不要な計算を除去する(1011)、方法。
【請求項2】
前記適応リソース割り当てコンポーネントの状態は、少なくとも各マイクロサービスの入力キューのバックログ、システムリソースの現在の使用率、それぞれの前記マイクロサービスに割り当てられた各システムリソースの割合及び前記ビデオファイルのコンテンツから得られるメトリクスを含むベクトルである、請求項1に記載の方法。
【請求項3】
モノリシックアプリケーションの機能が、個別のオブジェクト検出及び特徴抽出マイクロサービスに分割される、請求項1に記載の方法。
【請求項4】
前記適応マイクロサービスパラメータ調整コンポーネントは、RLによってバッチサイズパラメータ及び画像解像度パラメータを調整する、請求項1に記載の方法。
【請求項5】
前記グラフベースのフィルタは、グラフG=(V,E)を作成することで、前記一連のフレーム内の連続するフレームから繰り返されるオブジェクトを除去し、各オブジェクトは、頂点v
iと、2つの頂点v
iとv
jとの間のエッジe(v
i,v
j)を形成し、これらのオブジェクトが互いに近い場合に限り、2つのオブジェクトの前記近さは、距離メトリックの計算に使用される空間的な近さと時間的な近さとによって決定される、請求項1に記載の方法。
【請求項6】
前記空間的な近さは、前記連続するフレームからの前記オブジェクトの境界ボックス間のオーバーラップ率を使用し、前記オーバーラップ率は、
【数1】
で与えられる、請求項5に記載の方法。
【請求項7】
前記時間的な近さは、前記連続フレームからの前記オブジェクト間のラグを使用し、前記ラグは
【数2】
で与えられる、請求項5に記載の方法。
【請求項8】
前記グラフは複数のサブグラフに分割され、各サブグラフはオブジェクトのリストに平坦化され、平坦化された連結コンポーネントにおいて重複物にラベル付けされる、請求項5に記載の方法。
【請求項9】
自己最適化されたビデオ分析パイプラインを実施するためのコンピュータで読み取り可能なプログラムを含む、非一時的なコンピュータで読み取り可能な記録媒体であって、
前記コンピュータで読み取り可能なプログラムが前記コンピュータで実行されると、前記コンピュータに、
ビデオファイルを一連のフレームにデコードさせ(1001)、
前記ビデオファイルの前記一連のフレームのうちの1つまたは複数のフレームからオブジェクトの特徴を抽出させ(1003)、
強化学習(RL)に基づく適応リソース割り当てコンポーネントを使用して、前記ビデオ分析パイプラインに含まれる異なるマイクロサービスのリソース使用量のバランスを動的に調整させ(1005)、
適応マイクロサービスパラメータ調整コンポーネントを使用して、前記異なるマイクロサービスのマイクロサービスの精度とパフォーマンスのバランスをとらせ(1007)、
グラフベースのフィルタを適用して、前記一連のフレームの前記1つまたは複数のフレームにわたる冗長な計算を最小限に抑制させ(1009)、
深層学習ベースのフィルタを適用して、前記ビデオ分析パイプラインにおける前記異なるマイクロサービス間の不一致から生じる不要な計算を除去させる(1011)、非一時的なコンピュータで読み取り可能な記録媒体。
【請求項10】
前記適応リソース割り当てコンポーネントの状態は、少なくとも各マイクロサービスの入力キューのバックログ、システムリソースの現在の使用率、それぞれの前記マイクロサービスに割り当てられた各システムリソースの割合及び前記ビデオファイルのコンテンツから得られるメトリクスを含むベクトルである、請求項9に記載の非一時的なコンピュータで読み取り可能な記録媒体。
【請求項11】
モノリシックアプリケーションの機能が、個別のオブジェクト検出及び特徴抽出マイクロサービスに分割される、請求項9に記載の非一時的なコンピュータで読み取り可能な記録媒体。
【請求項12】
前記適応マイクロサービスパラメータ調整コンポーネントは、RLによってバッチサイズパラメータ及び画像解像度パラメータを調整する、請求項9に記載の非一時的なコンピュータで読み取り可能な記録媒体。
【請求項13】
前記グラフベースのフィルタは、グラフG=(V,E)を作成することで、前記一連のフレーム内の連続するフレームから繰り返されるオブジェクトを除去し、各オブジェクトは、頂点v
iと、2つの頂点v
iとv
jとの間のエッジe(v
i,v
j)を形成し、これらのオブジェクトが互いに近い場合に限り、2つのオブジェクトの前記近さは、距離メトリックの計算に使用される空間的な近さと時間的な近さとによって決定される、請求項9に記載の非一時的なコンピュータで読み取り可能な記録媒体。
【請求項14】
前記空間的な近さは、前記連続するフレームからの前記オブジェクトの境界ボックス間のオーバーラップ率を使用し、前記オーバーラップ率は、
【数3】
で与えられる、請求項13に記載の非一時的なコンピュータ可読記憶媒体。
【請求項15】
前記時間的な近さは、前記連続フレームからの前記オブジェクト間のラグを使用し、前記ラグは
【数4】
で与えられる、請求項13に記載の非一時的なコンピュータで読み取り可能な記録媒体。
【請求項16】
前記グラフは複数のサブグラフに分割され、各サブグラフはオブジェクトのリストに平坦化され、平坦化された連結コンポーネントにおいて重複物にラベル付けされる、請求項13に記載の非一時的なコンピュータで読み取り可能な記録媒体。
【請求項17】
自己最適化されたビデオ分析パイプラインを実施するためのシステムであって、
メモリと、
ビデオファイルを一連のフレームにデコードし(1001)、
前記ビデオファイルの前記一連のフレームのうちの1つまたは複数のフレームからオブジェクトの特徴を抽出し(1003)、
強化学習(RL)に基づく適応リソース割り当てコンポーネントを使用して、前記ビデオ分析パイプラインに含まれる異なるマイクロサービスのリソース使用量のバランスを動的に調整し(1005)、
適応マイクロサービスパラメータ調整コンポーネントを使用して、前記異なるマイクロサービスのマイクロサービスの精度とパフォーマンスのバランスをとり(1007)、
グラフベースのフィルタを適用して、前記一連のフレームの前記1つまたは複数のフレームにわたる冗長な計算を最小限に抑制し(1009)、
深層学習ベースのフィルタを適用して、前記ビデオ分析パイプラインにおける前記異なるマイクロサービス間の不一致から生じる不要な計算を除去する(1011)ように構成された、前記メモリと通信する1つまたは複数のプロセッサと、
を有するシステム。
【請求項18】
前記グラフベースのフィルタは、グラフG=(V,E)を作成することで、前記一連のフレーム内の連続するフレームから繰り返されるオブジェクトを除去し、各オブジェクトは、頂点v
iと、2つの頂点v
iとv
jとの間のエッジe(v
i,v
j)を形成し、これらのオブジェクトが互いに近い場合に限り、2つのオブジェクトの前記近さは、距離メトリックの計算に使用される空間的な近さと時間的な近さとによって決定される、請求項17に記載のシステム。
【請求項19】
前記空間的な近さは、前記連続するフレームからの前記オブジェクトの境界ボックス間のオーバーラップ率を使用し、前記オーバーラップ率は、
【数5】
で与えられる、請求項18に記載のシステム。
【請求項20】
前記時間的な近さは、前記連続フレームからの前記オブジェクト間のラグを使用し、前記ラグは
【数6】
で与えられる、請求項18に記載のシステム。
【発明の詳細な説明】
【技術分野】
【0001】
この出願は、2020年11月30日に出願された米国仮特許出願第63/119,288号及び2021年11月9日に出願された米国特許出願第17/522,226号を基礎とする優先権を主張し、それらの開示の全てをここに取り込む。
【0002】
本発明は、マイクロサービスベースのビデオ分析パイプラインに関し、より詳細には、人工知能(AI)技術を利用して定期的に自己最適化する自己最適化ビデオ分析パイプラインの開発に関する。
【背景技術】
【0003】
監視カメラはどこにでも設置されている。現在、およそ7億7000万台の監視カメラが使用されており、その数は間もなく10億台まで急増すると予想されている。ビデオ分析技術は、交通管制、セキュリティ監視、スマートファクトリー製造等、24時間年中無休の様々なアプリケーションで日常的に使用されている。ビデオ分析技術は、深層学習と古典的なコンピュータビジョン技術の急速な進歩により、過去10年間で大幅に進化した。人工知能(AI)と深層学習は引き続きビデオコンテンツ分析の背景となる重要な技術であり、ライブビデオまたは録画ビデオを構造化メタデータに効果的に変換し、実用的かつ定量化可能な見識を提供する。
【発明の概要】
【0004】
自己最適化されたビデオ分析パイプラインを実施するための方法が提示される。本方法は、ビデオファイルを一連のフレームにデコードし、ビデオファイルの一連のフレームのうちの1つまたは複数のフレームからオブジェクトの特徴を抽出し、強化学習(RL)に基づく適応リソース割り当てコンポーネントを使用して、ビデオ分析パイプラインに含まれる異なるマイクロサービスのリソース使用量のバランスを動的に調整し、適応マイクロサービスパラメータ調整コンポーネントを使用して、異なるマイクロサービスのマイクロサービスの精度とパフォーマンスのバランスをとり、グラフベースのフィルタを適用して、一連のフレームの1つまたは複数のフレームにわたる冗長な計算を最小限に抑制し、深層学習ベースのフィルタを適用して、ビデオ分析パイプラインにおける異なるマイクロサービス間の不一致から生じる不要な計算を除去することを含む。
【0005】
自己最適化されたビデオ分析パイプラインを実施するためのコンピュータで読み取り可能なプログラムを含む、非一時的なコンピュータで読み取り可能な記録媒体が提示される。コンピュータで読み取り可能なプログラムがコンピュータで実行されると、コンピュータに、ビデオファイルを一連のフレームにデコードさせ、ビデオファイルの一連のフレームのうちの1つまたは複数のフレームからオブジェクトの特徴を抽出させ、強化学習(RL)に基づく適応リソース割り当てコンポーネントを使用して、ビデオ分析パイプラインに含まれる異なるマイクロサービスのリソース使用量のバランスを動的に調整させ、適応マイクロサービスパラメータ調整コンポーネントを使用して、異なるマイクロサービスのマイクロサービスの精度とパフォーマンスのバランスをとらせ、グラフベースのフィルタを適用して、一連のフレームの1つまたは複数のフレームにわたる冗長な計算を最小限に抑制させ、深層学習ベースのフィルタを適用して、ビデオ分析パイプラインにおける異なるマイクロサービス間の不一致から生じる不要な計算を除去させる。
【0006】
自己最適化されたビデオ分析パイプラインを実施するためのシステムが提示される。本システムは、メモリと、ビデオファイルを一連のフレームにデコードし、ビデオファイルの一連のフレームのうちの1つまたは複数のフレームからオブジェクトの特徴を抽出し、強化学習(RL)に基づく適応リソース割り当てコンポーネントを使用して、ビデオ分析パイプラインに含まれる異なるマイクロサービスのリソース使用量のバランスを動的に調整し、適応マイクロサービスパラメータ調整コンポーネントを使用して、異なるマイクロサービスのマイクロサービスの精度とパフォーマンスのバランスをとり、グラフベースのフィルタを適用して、一連のフレームの1つまたは複数のフレームにわたる冗長な計算を最小限に抑制し、深層学習ベースのフィルタを適用して、ビデオ分析パイプラインにおける異なるマイクロサービス間の不一致から生じる不要な計算を除去するように構成された、メモリと通信する1つまたは複数のプロセッサと、を有する。
【0007】
これら及び他の特徴並びに利点は、以下の典型的な実施形態の詳細な説明を添付の図面と併せて読むことで明らかになるであろう。
【0008】
本開示では、後述するように、以下の図面を参照しながら好ましい実施形態について詳細に説明する。
【図面の簡単な説明】
【0009】
【
図1】
図1は、本発明の実施形態による、マジックパイプと呼ばれる例示的な自己最適化パイプラインのブロック/フロー図である。
【0010】
【
図2】
図2は、本発明の実施形態による、深層学習ベースのフィルタの例示的なラベリング及び訓練アーキテクチャのブロック/フロー図である。
【0011】
【
図3】
図3は、本発明の実施形態による、自己最適化されたビデオ分析パイプラインを実施するための例示的な実際のアプリケーションである。
【0012】
【
図4】
図4は、本発明の実施形態による、自己最適化されたビデオ分析パイプラインを実施するための例示的な処理システムである。
【0013】
【
図5】
図5は、本発明の実施形態による、自己最適化されたビデオ分析パイプラインを実施するための例示的な方法のブロック/フロー図である。
【発明を実施するための形態】
【0014】
ビデオ分析アプリケーションには、ビデオ処理タスクのパイプラインまたはマイクロサービスが含まれており、これらは様々な深層畳み込みニューラルネットワーク及びコンピュータビジョン技術を活用して複雑なビデオ分析タスクを実行する。例えば、ライブまたは録画された監視ビデオ内の容疑者を検索するアプリケーションのパイプラインには、ビデオデコーダと、ビデオフレーム内の顔を検出し、固有の顔の特徴等の性質を抽出する高度な深層学習エンジンが含まれている。これらの顔の特徴は、その後、保存されている容疑者の顔の特徴のデータベースを検索して一致する別のコンポーネントによって使用される。
【0015】
深層畳み込みニューラルネットワークを大規模にビデオデータに適用すると、高精度な見識を確保しながらアプリケーションの応答時間を改善するには非常に多くの計算リソースを必要とすることが多いため、システムに大きな課題をもたらす。入力ビデオの適切な解像度を選択することで、リソースの使用量、応答時間、精度のバランスを取ることが期待できるが、リソースの使用量とアプリケーションの応答時間に対する動的ビデオコンテンツの大きな影響に対処する必要がある。
【0016】
パイプラインにおけるマイクロサービスへのリソースの最適な割り当て及び各マイクロサービスのパラメータの最適な構成は、時間の経過と共に、多くの場合、分または秒のタイムスケールで変化することが観察される。例示的な実施形態は、これらの観察を活用し、人工知能(AI:artificial intelligence)技術を利用して定期的に自己最適化する自己最適化ビデオ分析パイプラインであるマジックパイプ(Magic-Pipe)を開発する。
【0017】
例示的なマジックパイプのアーキテクチャは、既存のマイクロサービスベースのビデオ分析パイプラインを自動的に拡張して自己最適化機能を示す。まず、例示的な方法は、実行時に異なるマイクロサービスのリソース使用量のバランスを動的に調整する、新しいビデオコンテンツベースの適応リソース割り当て技術またはコンポーネントを提案する。このコンポーネントは、新しいマイクロサービスとしてパイプラインに統合される。次に、例示的な方法は、実行時のマイクロサービスの精度とパフォーマンスのバランスをとるための適応マイクロサービスパラメータ調整技術またはコンポーネントを提案する。このコンポーネントも、新しいマイクロサービスとしてパイプラインに統合される。最後に、例示的な方法は、マイクロサービスの不一致による不要な計算を削減する2つの異なるアプローチを提案する。つまり、特徴を抽出できない入力を排除することで特徴抽出器のパフォーマンスを向上させる深層学習ベースのアプローチと、グラフ理論的なアプローチによりフレーム全体にわたる冗長な計算を最小限に抑制する、低オーバーヘッドのアプローチとである。これらの手法またはコンポーネントは、両方とも新しいマイクロサービスとして分析パイプラインに組み込まれる。
【0018】
マジックパイプの評価は、自己最適化機能で拡張されたパイプラインが、同じハードウェアリソースを使用し、同様の高精度を達成しながら、オリジナルのパイプラインよりも一桁優れたアプリケーションの応答時間を提示することを示している。
【0019】
ビデオ分析アプリケーションは、多くの場合、パイプラインまたは有向非巡回グラフ(DAG:directed acyclic graph)として実施され、1つまたは複数のタスクの出力が後続のタスクの入力として使用される。通常、DAGへの入力はビデオファイルまたはライブカメラからのストリームのいずれかである。多くの場合、DAGの最後のタスクは出力を生成し、永続的な記憶装置に保存されるか、キューに挿入されてさらなる処理で使用可能になる。
【0020】
ビデオ分析アプリケーションを、モノリシックアプリケーションではなく、単一目的の処理タスクまたはマイクロサービスの集まりとして設計することは、いくつかの利点がある。すなわち、マイクロサービスベースの設計は、アプリケーション間でのソフトウェアコンポーネント(マイクロサービス)の再利用を促進する。マイクロサービスのより良いバージョン(例えば、より正確な、または優れたパフォーマンス)への交換は、マイクロサービスベースのアプリケーションの大規模な再エンジニアリング及びデバッグが不要になり、分析アプリケーションの設計に必要な開発作業を複数のエンティティに分割することが容易になる。
【0021】
このように、ハードウェアリソースの割り当て、マイクロサービスのパラメータの調整、マイクロサービスの不一致が、ビデオ分析パイプラインのレイテンシ、精度及びスケーラビリティに与える潜在的な影響が示されている。
【0022】
ハードウェアリソースの割り当てに関して、分析パイプラインにおける異なるマイクロサービスに対する利用可能なハードウェアリソースの割り当ては、パイプラインのパフォーマンスに大きな影響を与える。また、ビデオコンテンツの動的な変化により、マイクロサービスに対するリソースの静的な割り当ては最適ではないことがよくある。
【0023】
例示的なパイプラインにおいて、フレームデコーダ及び特徴抽出マイクロサービスは中央処理装置(CPU)を集中的に使用するが、顔検出器は、そのデフォルト構成では、グラフィック処理装置(GPU)のみを集中的に使用する。したがって、顔抽出マイクロサービスの未使用のCPUリソースを顔検出等の他のタスクに割り当て、パイプラインの全体的なパフォーマンスを向上させる好機がある。同様に、顔の密度が高いビデオの場合、GPUの使用率は一貫して低く、未使用のGPUのリソースを使用することでパイプラインが恩恵を受けることを示唆している。フレームあたりのオブジェクトの疎らさ、カメラの動き等、パフォーマンスや最適なリソースの割り当てに影響を与える入力ビデオの特性は、パイプラインの実行中に測定できる。
【0024】
利用可能なハードウェアリソースの動的な割り当ては難しい問題であり、パイプラインのパフォーマンスに影響を与えるいくつかの局面を考慮する必要がある。
【0025】
パイプラインにおける各タスクは、大きく異なるニーズを有する可能性がある。いくつかのタスクは計算集約的であり、その他のタスクはネットワークまたはディスク集約的であり、タスクの中にはGPU等の特別なハードウェアを使用することで恩恵を受けるものがある。
【0026】
マイクロサービスに割り当てられたリソースをスケールアップまたはスケールダウンすると、特に利用可能なハードウェアリソースが固定されている場合、パイプラインにおける他のマイクロサービスのパフォーマンスに干渉することになる。
【0027】
いくつかのタスクによって使用されるリソースは、入力ビデオのコンテンツに大きく依存する。
【0028】
マイクロサービスに対するリソースの最適な割り当ては、分析パイプラインで利用可能な特定のタイプのハードウェアリソースにも依存する。例えば、ハイエンドマルチコアCPUとローエンドGPUの組み合わせに適したリソース割り当てスキームは、CPUとGPUの別の組み合わせでは最適でないことがある。
【0029】
ハードウェアリソースの組み合わせは多数あり、特にアプリケーションの開発者やエンドユーザが、分析パイプラインの処理に様々な顧客が使用しているハードウェアプラットフォームを認識していない場合、最適な割り当てが非現実的であると判断するためのハードウェアの静的プロファイリングが行われる。開発者やエンドユーザが各マイクロサービスのニーズとマイクロサービス間の相互作用を理解していても、顧客が処理する様々な入力ビデオ毎にパイプラインを再構成することはできない。最適なハードウェアリソースの割り当てにとって最も有益な局面は、利用可能なハードウェアリソースの使用に対する入力ビデオのコンテンツの影響を動的に考慮することであることに留意されたい。
【0030】
マイクロサービスのパラメータの調整に関して、マイクロサービスの構成パラメータに割り当てられる値は、マイクロサービスのパフォーマンス、ひいてはパイプライン全体のパフォーマンスに大きな影響を与える可能性がある。したがって、エンドユーザにとってのもう1つの負担は、最適なパフォーマンスを達成するためにパイプラインにおける各マイクロサービスのパラメータを微調整することである。マイクロサービスのパフォーマンスを変える可能性のあるパラメータの値は出力の精度にも影響し、マイクロサービスの最適なパラメータの構成は入力ビデオコンテンツの時間変化の特性にも依存することに留意されたい。
【0031】
マイクロサービスパラメータの最適な調整にとって最も有益な局面は、入力ビデオのコンテンツがマイクロサービスのパフォーマンス及び精度に与える影響、並びに分析パイプライン全体に対する過渡的な影響を動的に考慮することでもあることに留意されたい。
【0032】
マイクロサービスの不一致に関して、マイクロサービスベースのビデオ分析パイプラインで観察される問題は、パイプラインにおけるマイクロサービス間の不一致から生じる不要な計算による計算リソースの浪費である。不要な計算の主な原因は次のとおりである。
【0033】
マイクロサービスの全ての出力値が、パイプラインにおける後続のマイクロサービスに対する適切な入力であるわけではない。例えば、特徴抽出マイクロサービスは、顔検出マイクロサービスによって発行された顔のサブセットのみの特徴ベクトルを抽出できる場合がある。特徴抽出器が特徴ベクトルを抽出できたとしても、いくつかの制限により、その特徴が悪い特徴であるとみなされる可能性がある。ある事例では、目と目の距離が10ピクセル未満の顔は、顔認識の候補として適していない。
【0034】
いくつかの計算は不必要に繰り返される。簡単な例として、人の顔が一連の100フレームで表示される場合、同じ顔の繰り返しの検出と特徴抽出を回避できる。但し、AI技術を活用することで不要な計算を除去または完全に排除できる、より複雑な状況もある。
【0035】
これを考慮して、例示的な方法は、自己最適化ビデオ分析パイプラインを実現するためのマジックパイプを提示する。
【0036】
ビデオ分析ワークロードは、ビデオの特性と処理プラットフォームの両方が時間の経過と共に変化する傾向があるため、通常、非定常である。このため、ベイズ最適化(Bayesian optimization)や多腕バンディット(multi-armed bandit)等の従来のアプローチは、動的かつリアルタイムに適応するにはコストがかかりすぎるか、または定常環境を前提としているために不適切である。それに対して、マジックパイプのアーキテクチャは非定常環境を想定しており、入力ビデオコンテンツの変化に応じてリソースとマイクロサービスの構成パラメータを定期的に自己最適化する。
【0037】
マジックパイプアーキテクチャは、既存のマイクロサービスベースのビデオ分析アプリケーションを自動的に拡張して、自己最適化機能を示す。具体的には、マジックパイプアーキテクチャは、提案する自己最適化手法を既存の分析パイプラインに効果的に適用できるように、既存のマイクロサービスにラッパーを追加する。但し、スレッドの管理に必要なインテリジェンス及びポリシーは、適応リソースの割り当て、適応パラメータ調整、データフィルタリング等の提案する手法から得られる。これらの手法は全てAI手法を用いてシステムの問題を解決する。
【0038】
図1は、自己最適化ビデオ分析パイプラインであるマジックパイプアーキテクチャ100を示している。まず、例示的な方法は、異なるマイクロサービスのリソース使用量のバランスを動的にとるため、ビデオコンテンツベースの適応リソース割り当てコンポーネント110を提案する。適応リソース割り当てコンポーネント110(または適応リソース割り当て器)は、実行時に強化学習を利用する。次に、例示的な方法は、実行時のマイクロサービスの精度とパフォーマンスのバランスをとるための適応マイクロサービスパラメータ調整コンポーネント120(適応マイクロサービスパラメータ調整器)を提案する。最後に、例示的な方法は、不要な計算を除去するための2つの異なるアプローチを提案する。すなわち、特徴を抽出できない入力を除去することで特徴抽出器の性能を向上させる深層学習ベースのアプローチ(深層学習ベースのフィルタ140)と、フレーム全体にわたる冗長な計算を最小限に抑制するための低オーバーヘッドのグラフ理論的アプローチ(グラフベースのフィルタ130)とを提案する。フィルタリングコンポーネント130、140は、互いに独立するように設計されている。つまり、ユーザは、拡張パイプラインにおいてフィルタリングコンポーネント130、140を使用しないか、いずれか一方を使用するか、または両方を使用するかを選択できる。
【0039】
適応リソース割り当てコンポーネント110に関して、ビデオ分析パイプラインは、多くの場合、複数のマイクロサービスを含み、マイクロサービスに対するハードウェアリソースの割り当ては、通常、エンドユーザによって手動で実行される。パイプラインのパフォーマンスは、利用可能なハードウェアリソースだけでなく、入力ビデオのコンテンツにも大きく依存する。
【0040】
ハードウェアプラットフォームが多様であり、性能が入力ビデオコンテンツに大きく依存していることを考慮すると、パイプラインのマイクロサービスにハードウェアリソースを最適に割り当てることは非常に困難である。単純なモニタリングに基づく自動スケールやリソースを大量に消費するマイクロサービスのスケールアップまたはスケールアウト等、広く使用されている手法は必ずしも適用できるわけではない。つまり、パイプラインが固定のハードウェアリソースセット(オンプレミス)で実行されているか、単純なスケールアウトのコストが法外に高い可能性がある。
【0041】
例示的な方法は、強化学習(RL:reinforcement learning)に基づく自動化された適応リソース割り当てを導入する。ジョブのスケジューリングにRL技術を使用すると、有用であることが既に証明されている。例示的な実施形態は、異なるパイプラインからのマイクロサービスをスケジュールするジョブに依存しない外部スケジューラは設計しない。むしろ、例示的な方法は、アプリケーション内に存在するアプリケーション固有のRLモデルを設計し、マイクロサービス間の相互作用を監視し、アプリケーション内のマイクロサービス間で固定ハードウェアリソースを定期的に再分配する。
【0042】
適応リソース割り当てコンポーネント110の主要部はSARSA(State-Action-Reward-State-Action)強化学習アルゴリズムである。強化学習では、エージェントは、環境と継続的に相互作用することで、特定の環境で最適に動作するように時間をかけて学習する。エージェントは、学習の過程で、環境内の様々な状況や状態を学ぶ。特定の状態にあるエージェントは、許容可能な動作のセットから選択して環境の状態を変更し、次の状態に到達できる。また、特定の状態における各動作は、異なる報酬(またはペナルティ)をもたらす可能性がある。エージェントは、時間の経過と共にこれらの報酬を最大化し、どのような状態でも最適に動作することを学習する。
【0043】
SARSAは、オンポリシー学習アルゴリズムであり、エージェントが環境と相互作用し、実行された動作に基づいてそのポリシーを更新することを意味する。さらに、SARSAは予め訓練されたモデルやラベル付きデータを必要としない。
【0044】
提案する適応リソース割り当てコンポーネント110における環境状態は、各マイクロサービスの入力キューのバックログ、システムリソース(CPU、メモリ、GPU、GPUメモリ)の現在の使用率、各マイクロサービスに割り当てられた各システムリソースの割合及び入力ビデオのコンテンツから得られるメトリクス(フレームあたりの人数等)を含むベクトルである。
【0045】
各量には多くの異なる値があるため、エージェントが学ぶ環境状態は多数存在する。
【0046】
エージェントが利用できる動作のセットは、例えば、より多くのリソースをマイクロサービスに割り当てる、いくつかのリソースをマイクロサービスから除去する、いくつかのリソースをマイクロサービスから別のマイクロサービスに移動する、並びに変更を行わないことである。
【0047】
動作を実行するためにエージェントで受け取る即時報酬は、パイプラインの処理速度
【数1】
の変化として計算される。
【0048】
エージェントが動作に対して受け取る即時報酬に加えて、エージェントは、現在の動作で生じる可能性のある将来の報酬も考慮に入れる。したがって、Q値は状態と動作のペア毎に定義される。例えば、Q(s,a)は、状態sで動作aを実行することがどの程度適切であるかの推定値である。Q(s,a)の推定では、以下で示すように、状態sで動作aを実行することで生じる可能性のある将来の報酬が考慮される。
【数2】
【0049】
上式において、定数aは学習率であり、以前に学習されたQ値と比較して新しい情報にどれだけの重みが与えられるかを制御する。値0は学習段階を停止し、値1は最新の情報のみを使用する。オペレータは、最初の導入時または別のハードウェアプラットフォームに移行するときに、このパラメータに高い値(例えば0.9)を設定し、新しい環境で実行された動作の結果をモデルが迅速に吸収できるようにする。最初の集中的な学習後、Q行列のかなりの部分が調査されたとき、同じオペレータはこの値を下げて(例えば0.1)、新しく取り入れた情報の利用を開始できる。
【0050】
定数γは、将来の報酬の重要性を決定する割引係数である。γが0の場合、エージェントは将来の報酬を完全に無視し、当面の報酬を最適化しようとする。γが1の場合、エージェントは長期的な報酬を高く評価する。オペレータが入力コンテンツにおける後続のフレームで非常に大きな変動を予想する場合、オペレータはこの情報をエンコードして非常に小さい値γ(0.1)を割り当てることができる。それ以外の場合は、より大きい値を用いて変動を小さくできる。
【0051】
以下で再現されるアルゴリズム1は、SARSAアルゴリズムのメインループを記載する。現在の状態sを観察した後、エージェントは適切な動作aを選択し、環境の状態をs’に変更する。エージェントは即時報酬rも受け取る。新しい状態s’において、エージェントは動作a’のQ値がQ(s’,a’)になると想定する。推定累積報酬Q(s,a)は以下を用いて計算される。
【数3】
【0052】
Q(s,a)を更新した後、エージェントは自分自身が見出した新しい状態はs'であり、エージェントは動作a'をとることを検討する。
【表1】
【0053】
アルゴリズム1は、動作aを選択するためのポリシーを定義しない。むしろ、エージェントは全ての状態と動作のペアを無限回のアクセスを保証するポリシーがあることを前提としている。この要件を満たす1つの方法は、パラメータイプシロンを定義することである。確率イプシロンの場合、ポリシーは状態にとって「最適な」動作を提案し、確率1-イプシロンの場合、エージェントはランダムな動作を選択する。したがって、学習段階では、状態空間を探索するためにイプシロンに小さな値(例えば、0.1)を割り当てるのが一般的である。Q値の大部分が正確に推定されている場合、エージェントが学習したモデルを活用できるように、より大きなイプシロンの値(0.9~0.99)を使用するのが一般的である。
【0054】
アルゴリズム1で使用されるポリシーは、動作を選択するために作成され、アルゴリズム2に記載されるポリシーは以下で再現される。確率1-イプシロンの場合、エージェントはランダムな動作(探索)を選択する。動作aの報酬が負の場合(ペナルティ等)、エージェントは該動作を元に戻す(例えば、動作がリソースを追加する場合、元に戻す動作は該リソースを除去する)。エージェントは、現在の状態で報酬を最大にする動作として次の動作を選択する。但し、選択した動作の実行による予測報酬が動作aで得られる報酬よりも小さい場合、ポリシーは動作aを再度推奨するだけである。これは、損失につながる行動を直ぐに元に戻し、より良い報酬を与える動作を繰り返し続けるという点で、非常に欲張りなポリシーである。
【表2】
【0055】
適応マイクロサービスパラメータ調整に関して、特に代替オブジェクト検出器に関しては、3つのタスク全てを実行する単一のモノリシックアプリケーション、すなわちビットマップ画像において顔を検出し、それぞれの顔に関する独自の特徴を計算し、2つの特徴ベクトルの類似性を比較する機能を提供することが一般的である。例示的な方法は、モノリシックアプリケーションの機能を個別のオブジェクト検出及び特徴抽出マイクロサービスに分割する。このような分割は、いくつかの理由から有利である。第1に、これによりモノリシックアプリケーションで従来の特徴抽出機能を備えた新しいクラス最良のオブジェクト検出器を使用できるようになる。第2に、従来のモノリシックアプリケーションは高い計算要件を必要とする可能性があり、汎用GPU(GPGPU)等の新しいメニーコア(manycore)処理プラットフォームでは実行できない可能性がある。それに対して、従来のオブジェクト検出器は軽く、GPGPUと組み込みプロセッサを利用できる。
【0056】
適応マイクロサービスパラメータ調整に関して、特にマイクロサービスパラメータに関して、GPGPUのビデオ分析のパフォーマンスに影響を与える2つの重要なパラメータがある。第1のパラメータはバッチサイズである。GPGPUには多数のストリーミングプロセッサが搭載されており、アプリケーションの作業負荷において高レベルの並列処理が必要になる。深層学習ネットワークは、GPGPUで(CPUでの実行と比較した場合)優れたパフォーマンスを発揮するが、GPGPUリソースの使用率は通常高くない。GPGPUプロセッサの使用率を高める1つの方法は、バッチサイズ(単一バッチの一部としてGPGPUで同時に処理されるフレーム数)を大きくすることである。バッチサイズを大きくすると、GPGPUの使用率が向上する。GPGPUでの分析パフォーマンスに影響を与える第2のパラメータは、画像の解像度である。解像度が低いほどオブジェクト検出の速度は向上するが、精度が低下する可能性もある。オブジェクトのサイズはビデオによって異なるため、入力ビデオ毎に最適な解像度を見出すことが有益である。全体として、バッチサイズはパイプラインのパフォーマンスに影響を与える可能性があり、フレーム解像度はオブジェクト検出のパフォーマンスと精度の両方に影響を与える可能性がある。
【0057】
適応マイクロサービスパラメータ調整に関して、特にRLを使用したパラメータ調整に関して、例示的な方法は、マイクロサービスパラメータを調整するために再びSARSAを利用する。
【0058】
本明細書では、マイクロサービスパラメータの調整に特有の状態、動作及び報酬関数のみを説明する。パラメータ調整の環境状態は、GPU検出器によって使用される、解像度とバッチサイズの2つの要素を備えたベクトルである。
【0059】
エージェントで利用可能な動作のセットは以下の通りである。GPU検出器のバッチサイズを大きくする、GPU検出器のバッチサイズを小さくする、解像度を高くする、解像度を低くする、変更を加えない。
【0060】
解像度のパラメータは任意の値に設定されるわけではない。解像度の選択肢の数は7つの値に制限されている。解像度は、180p、240p、270p、360p、480p、720p、1080pのいずれかに制限される。解像度が480pから低下すると、例示的な方法では360pが使用されることを意味する。同様に、バッチサイズは任意に変更できるが、例示的な方法では、検索スペースが制限されるようにバッチサイズを1、2、5、6、10、15または30に制限する。
【0061】
例示的な方法は、精度及び処理速度の変化の関数として即時報酬を計算する。
【0062】
入力解像度について異なる値を使用すると、結果の精度が変化する可能性がある(バッチサイズが異なると常に同じ精度が得られる)。現在の解像度設定の精度を推定するため、例示的な方法は、本来の解像度と現在の設定の両方を用いて、同じ小さなフレームセットのオブジェクトを検出する。システムは、状態と動作のペアの報酬を決定する、少数フレームの精度計算のみを実行するため、従来のオブジェクト抽出機能の使用による追加の計算コストは無視できる。その後、例示的な方法は、本来の及びスケーリングされた入力フレームで検出された共通のオブジェクトの数と、本来の解像度のフレームで検出されたオブジェクトの数との比として精度を計算する。精度の推定値が特定の数値よりも低い場合、報酬は-1とみなされる。それ以外の場合、報酬は、適応リソースの割り当てに関して上述で用いた報酬と同様である。
【0063】
例示的な方法は、GPGPU検出器に対する報酬を次のように定義する。
【数4】
【0064】
グラフベースのフィルタに関して、例示的な実施形態は、フレームにわたる冗長な計算を最小限に抑制する、低オーバーヘッドのグラフ理論アプローチを説明する。ビデオでは、近くのフレームで同じオブジェクトが複数検出されるのが一般的である。オブジェクト検出の出力を使用するマイクロサービスでは、近くのフレームで同じオブジェクトが複数回検出されるため、冗長な計算が発生する。その結果、繰り返されるオブジェクト検出をさらなる検討からフィルタリングする、決定論的なグラフ理論アプローチが導入される。
【0065】
以下で再現されるアルゴリズム3は、繰り返されるオブジェクトをフィルタリングするアプローチを提示する。アルゴリズムに対する入力は、連続するフレームの小さなバッチで検出されたオブジェクトのセットである。各オブジェクト検出には、フレームにおけるオブジェクトの位置とフレーム番号に関する情報も含まれる。出力として、アルゴリズムは各入力オブジェクトに識別子を割り当て、繰り返されるオブジェクトには同じ識別子が割り当てられる。
【表3】
【0066】
第1に、例示的な方法は、入力における各オブジェクトが頂点viを形成し、2つの頂点viとvjの間にエッジe(vi,vj)が存在し、これらのオブジェクトが互いに「近い」場合に限り、グラフG=(V,E)を作成する。2つのオブジェクトが互いに「近い」か否かを判定するため、例示的な方法は、それらの「空間的」及び「時間的」な近さを考慮して、「距離」メトリックを計算する。
【0067】
「空間的」な近さに関して、例示的な方法は、フレームにわたるオブジェクトの境界ボックス間の「オーバーラップ」率を使用する。頂点v
i及びv
jの任意のペアについて、例示的な方法は、以下のオーバーラップ式を用いて、それらの境界ボックス間のオーバーラップ率がどの程度であるかをチェックする。オーバーラップ率が高いほど、各オブジェクトは空間的に近くなる。
【数5】
【0068】
「時間的」な近さに関して、例示的な方法は、フレームにわたる2つのオブジェクト間の「ラグ」を使用する。頂点v
i及びv
jの任意のペアについて、例示的な方法は、以下のラグ式を用いて、それらが時間的にどの程度近いかを決定する。ラグ率が低いほど、オブジェクトは時間的に近くなる。
【数6】
【0069】
例示的な方法は、この「空間的」及び「時間的」な近さを単一の「距離」メトリックに結合する。「空間的」及び「時間的」な近さは分数であるため、例示的な方法は、「近さ」を判定するために分数に適した調和平均を使用する。具体的には、例示的な方法は、「オーバーラップ」(空間的な近さ)と「1-ラグ」(時間的な近さ)との間の1-調和平均を使用し、以下のd(v
i,v
j)の式で与えられる、異なるフレームで検出された2つのオブジェクト間の距離を推定する。例示的な方法は、この「距離」メトリックが特定の閾値を下回る場合、2つの頂点の間にエッジを置く。
【数7】
【0070】
第2に、第1のステップで作成されたグラフから、グラフを複数の小さなサブグラフに分割するために、強く連結されたコンポーネントが見つけられる。アイデアは、サブグラフ内のこれらの頂点(オブジェクト)が互いに類似しているため、例示的な方法ではサブグラフ全体を表すために、これらのオブジェクトの一部のみを使用できるということある。このステップでは、各エッジのラベル(コスト等)は無視される。
【0071】
第3に、サブグラフを単純化するため、例示的な方法は各サブグラフをオブジェクトのリストに平坦化する。このステップにおいて、例示的な方法は、各サブグラフに対してd(vi,vj)を用いて計算されたコスト(距離)を用いて最小全域木(minimum spanning tree)を計算する。次に、例示的な方法は、最も幅の広い未アクセスのオブジェクトからの幅優先探索(breadth-first search)を用いて全域木内のオブジェクトをソートする。例示的な実施形態は、最初の要素が最も広い面積を有するオブジェクトであるリストを取得し、それらを相互の距離を用いてソートする(リストの最初と最後の要素は、連結コンポーネントにおいて互いに遠いオブジェクトである)。
【0072】
最後に、例示的な方法は、以下で再現されるアルゴリズム4に示される二分探索スキームを用いて平坦化された連結コンポーネントにおける重複物にラベルを付与する。検出されたオブジェクトの入力リストにおける最初と最後のオブジェクト(構成上、距離が最も離れた2つのオブジェクト)が類似している場合、全てのオブジェクトがリスト内の最初の要素の重複物としてマークされる。それ以外の場合、入力リストは半分に分割され、同じ関数が再帰的に適用される。重要な所見は、例示的な実施形態では少数のオブジェクトに対して特徴抽出を行うだけでよいということである。
【表4】
【0073】
深層学習ベースのフィルタに関して、パイプラインにおけるマイクロサービス間の不一致から生じる不要な計算の除去に対処する。例示的な実施形態は、特徴を抽出できない入力を排除することで特徴抽出器の性能を向上させる深層学習ベースのフィルタについて説明する。
【0074】
軽オブジェクト検出器は、アクセラレータを利用することでシステムのスループットを向上させる。但し、潜在的な問題の1つは、モノリシックアプリケーションにおいて、オブジェクト検出器マイクロサービスが従来の特徴抽出器よりもはるかに多くのオブジェクトを検出することである。さらに、特徴抽出機能は、軽オブジェクト検出器マイクロサービスで検出されたオブジェクトの多くの特徴を抽出できない。言い換えれば、オブジェクト検出器マイクロサービスは、特徴抽出器でさらに処理できない顔を出力する。このような顔は偽陽性と呼ばれる。このような顔については特徴が抽出されないため、例示的な方法は、特徴抽出器からの出力を用いることで精度の問題に直面しない。但し、特徴抽出機能はそのような誤検知に対して多くの不要な計算を実行するため、これは回避できる。
【0075】
例示的な実施形態は、偽陽性を取り除くための新しい深層学習ベースのフィルタを提案する。
図2は、フィルタの全体的な訓練プロセス200を示している。オブジェクト検出器マイクロサービス205によって検出されたオブジェクト210毎に、特徴抽出器220は、特徴ベクトルの抽出に成功するか、失敗するかのいずれかである。これにより、システムは、顔画像とそのラベル(「成功」または「失敗」)を含むラベル付き訓練データセット225を自動的に構築できる。例示的な方法は、そのようなラベル付けされたデータを用いて深層学習バイナリ分類器を定期的に訓練し、フィルタ230を介してオブジェクト検出器マイクロサービスからの偽陽性をフィルタリングする。バイナリ分類器を用いた訓練と推論は追加の計算リソースを消費するが、例示的な方法ではGPGPUを利用するResnet34のような小さくて軽いモデルを選択する。自動的に生成されたラベル付きデータには偽陽性よりも真陽性が多く、例示的な方法では訓練手順中に真陽性により多くの重みが与えられる。より多くのビデオがパイプラインによって処理されると、例示的な方法は、人の介入なしに、より多くのラベル付きデータを生成し、バイナリ分類器を定期的に再訓練する。深層学習ベースのフィルタには、フィルタ処理を継続的に学習して改善できるという利点があるが、訓練には追加の時間と計算リソースが必要である。分析パイプラインの使用時のアイドル期間を利用して、バックグラウンドで定期的な訓練を行うことができる。
【0076】
要約すると、パイプラインにおける深層学習エンジン(またはマイクロサービス)へのリソースの最適な割り当てが観察され、各エンジンのパラメータの最適な構成は、時間の経過と共に変化する。多くの場合、ビデオ内の動的コンテンツに基づいて、数分から数秒のタイムスケールで変化する。例示的な方法は、これらの観察を活用し、AI技術を利用して定期的に自己最適化する自己最適化ビデオ分析パイプラインであるマジックパイプを開発する。まず、例示的な方法は、動的ビデオコンテンツに基づいて、異なるマイクロサービスのリソース使用量の動的バランスをとるための、新しい適応リソース割り当てコンポーネントを提案する。次に、例示的な方法は、同じくビデオコンテンツに基づいて、マイクロサービスの精度とパフォーマンスのバランスをとるための適応マイクロサービスパラメータ調整コンポーネントを提案する。最後に、例示的な方法は、独立して設計された再利用可能な深層学習エンジンの避けられない不一致による不要な計算を削減するための2つの異なるアプローチ、すなわち特徴を抽出できない入力をフィルタリングすることで特徴抽出のパフォーマンスを向上させる深層学習アプローチ(深層学習ベースのフィルタ)及びフレーム全体にわたる冗長な計算を最小限に抑制する、少ないオーバーヘッドのグラフ理論的アプローチ(グラフベースのフィルタ)を提案する。
【0077】
図3は、本発明の実施形態による、自己最適化されたビデオ分析パイプラインを実施するための実際のアプリケーションのブロック/フロー
図800である。
【0078】
実際の一例において、第1のカメラ802は第1のオブジェクト806を検出可能であり、第2のカメラ804は第2のオブジェクト808を検出できる。第1のオブジェクト806及び第2のオブジェクト808は、適応リソース割り当て器110及び適応マイクロサービスパラメータ調整器120、並びにグラフベースのフィルタ130及び深層学習ベースのフィルタ140を使用することで、マジックパイプアーキテクチャ100で処理される。結果810(例えば、関心のある人物)は、ユーザ814によって操作されるユーザインターフェース812に提供または表示される。
【0079】
図4は、本発明の実施形態による、自己最適化されたビデオ分析パイプラインを実施するための例示的な処理システムである。
【0080】
処理システムは、システムバス902を介して他のコンポーネントに動作可能に接続された少なくとも1つのプロセッサ(CPU)904を含む。システムバス902には、GPU905、キャッシュ906、読み取り専用メモリ(ROM)908、ランダムアクセスメモリ(RAM)910、入出力(I/O)アダプタ920、ネットワークアダプタ930、ユーザインタフェースアダプタ940及び/またはディスプレイアダプタ950もまた動作可能に接続されている。マジックパイプアーキテクチャ100は、適応リソース割り当て器110及び適応マイクロサービスパラメータ調整器120、さらにはグラフベースのフィルタ130及び深層学習ベースのフィルタ140によって使用できる。
【0081】
記憶装置922は、I/Oアダプタ920によってシステムバス902に動作可能に接続されている。記憶装置922は、ディスク記憶装置(例えば、磁気ディスク記憶装置または光ディスク記憶装置)、固体磁気装置等のいずれであってもよい。
【0082】
トランシーバ932は、ネットワークアダプタ930によってシステムバス902に動作可能に接続されている。
【0083】
ユーザ入力装置942は、ユーザインタフェースアダプタ940によってシステムバス902に動作可能に接続されている。ユーザ入力装置942は、キーボード、マウス、キーパッド、画像キャプチャ装置、モーション感知装置、マイクロフォン、あるいはこれらの装置のうちの少なくとも2つの装置の機能を組み込んだ装置等のいずれであってもよい。もちろん、本発明の原理の主旨を維持しながら、他のタイプの入力装置を使用することもできる。もちろん、本発明の精神を維持しながら、他のタイプの入力装置も使用することができる。ユーザ入力装置942は、同じタイプのユーザ入力装置であってもよく、異なるタイプのユーザ入力装置であってもよい。ユーザ入力装置942は、処理システムに情報を入力し、処理システムから情報を出力するために使用される。
【0084】
ディスプレイ装置952は、ディスプレイアダプタ950によってシステムバス902に動作可能に接続されている。
【0085】
もちろん、処理システムは、当業者であれば容易に思いつくような他の要素(図示せず)を含んでもよく、特定の要素を省略することも可能である。例えば、当業者であれば容易に理解できるが、処理システムには、その詳細な実施に応じて他の様々なタイプの入力装置及び/または出力装置を含むことができる。例えば、無線及び/または有線による様々な入力装置及び/または出力装置を使用できる。さらに、当業者であれば容易に理解できるが、様々な構成の追加プロセッサ、コントローラ、メモリ等を使用することも可能である。処理システムの上記及び他の変形例は、本明細書で提供される本原理の教示によって当業者であれば容易に考えられるであろう。
【0086】
図5は、本発明の実施形態による、自己最適化されたビデオ分析パイプラインを実施するための例示的な方法のブロック/フロー図である。
【0087】
ブロック1001において、ビデオファイルを一連のフレームにデコードする。
【0088】
ブロック1003において、ビデオファイルの一連のフレームのうちの1つまたは複数のフレームからオブジェクトの特徴を抽出する。
【0089】
ブロック1005において、強化学習(RL)に基づく適応リソース割り当てコンポーネントを使用して、ビデオ分析パイプラインに含まれる異なるマイクロサービスのリソースの使用量のバランスを動的に調整する。
【0090】
ブロック1007において、適応マイクロサービスパラメータ調整コンポーネントを使用して、異なるマイクロサービスのマイクロサービスの精度とパフォーマンスのバランスを取る。
【0091】
ブロック1009において、グラフベースのフィルタを適用して、一連のフレームの1つまたは複数のフレームにわたる冗長な計算を最小限に抑制する。
【0092】
ブロック1011において、深層学習ベースのフィルタを適用して、ビデオ分析パイプラインにおける異なるマイクロサービス間の不一致から生じる不要な計算を除去する。
【0093】
本明細書で用いる「データ」、「コンテンツ」、「情報」及び同様の用語は、様々な例示的な実施形態によって取得され、送信され、受信され、表示され、及び/または保存可能なデータを示すために、交換可能に使用できる。したがって、これらの用語の使用は、開示の主旨及び範囲を制限するものと解釈されるべきではない。さらに、本明細書に別の計算デバイスからデータを受信するための計算デバイスが記載されている場合、データは、別の計算デバイスから直接受信してもよく、1つ以上の中間計算デバイス、例えば1つ以上のサーバ、リレー、ルータ、ネットワークアクセスポイント、基地局等を介して間接的に受信してもよい。同様に、本明細書にデータを別の計算デバイスに送信するための計算デバイスが記載されている場合、データは、別の計算データに直接送信してもよく、例えば、1つ以上のサーバ、リレー、ルータ、ネットワークアクセスポイント、基地局及び/または同様のもの等の1つ以上の中間計算デバイスを介して間接的に送信してもよい。
【0094】
当業者であれば理解するように、本発明の態様は、システム、方法またはコンピュータプログラム製品として実現してもよい。したがって、本発明の態様は、全体としてハードウェアの実施形態であってもよく、全体としてソフトウェアの実施形態(ファームウェア、常駐ソフトウェア、マイクロコード等を含む)であってもよく、本明細書において、一般に「回路」、「モジュール」、「計算機」、「装置」または「システム」と呼ぶことができる、ソフトウェアとハードウェアの態様を組み合わせた実施の形態を採用してもよい。さらに、本発明の態様は、コンピュータで読み取り可能なプログラムコードを有する、1つまたは複数のコンピュータで読み取り可能な媒体で具現化された、コンピュータプログラム製品の形態を採用してもよい。
【0095】
1つまたは複数のコンピュータで読み取り可能な媒体の任意の組合せを用いてもよい。コンピュータで読み取り可能な媒体は、コンピュータで読み取り可能な信号媒体またはコンピュータで読み取り可能な記録媒体であってもよい。コンピュータで読み取り可能な記録媒体は、例えば、電子、磁気、光学、電磁気、赤外線または半導体システム、装置またはデバイス、あるいは前述の任意の適切な組合せとすることができるが、これらに限定されない。コンピュータで読み取り可能な記録媒体のより具体的な例(以下に限定されない)は、1つ以上のワイヤ、携帯用コンピュータディスケット、ハードディスク、ランダムアクセスメモリ(RAM)、リードオンリーメモリ(ROM)、消去可能プログラマブルリードオンリーメモリ(EPROMまたはフラッシュメモリ)、光ファイバ、携帯用コンパクトディスクリードオンリーメモリ(CD-ROM)、光データ記憶装置、磁気データ記憶装置または前述した任意の適切な組み合わせを含む。本文書のコンテキストにおいて、コンピュータで読み取り可能な記録媒体は、命令実行システム、装置またはデバイスによって、またはそれに関連して使用するためのプログラムを含む、またはそれを記憶できる、任意の有形媒体であってもよい。
【0096】
コンピュータで読み取り可能な信号媒体には、例えば、ベースバンドで、または搬送波の一部として、コンピュータで読み取り可能なプログラムコードが具現化された伝搬データ信号を含むことができる。そのような伝播信号は、電磁、光学またはそれらの任意の適切な組み合わせを含むが、それらに限定されない、任意の様々な形態がある。コンピュータ読み取り可能な信号媒体は、コンピュータ読み取り可能な記録媒体ではなく、命令実行システム、装置または装置によって、またはそれに関連して使用するためにプログラムを通信、伝播、または移送できる、任意のコンピュータ読み取り可能な媒体であってもよい。
【0097】
コンピュータで読み取り可能な媒体で具現化されるプログラムコードは、無線、有線、光ファイバケーブル、RF等、あるいは前述した任意の適切な組合せを含むが、これらに限定されない、任意の適切な媒体を用いて送信される。
【0098】
本発明の態様に関する処理を実行するためのコンピュータプログラムコードは、Java、Smalltalk(登録商標)、C++等のオブジェクト指向プログラミング言語及び「C」プログラミング言語または類似のプログラミング言語等の従来の手続き型プログラミング言語を含む、1つ以上のプログラミング言語の任意の組み合わせで書くことができる。プログラムコードは、全体的にユーザのコンピュータで実行されてもよく、スタンドアロンソフトウェアパッケージとして部分的にユーザのコンピュータで実行されてもよく、部分的にユーザのコンピュータで実行され、かつ部分的にリモートコンピュータで実行されてもよく、全体的にリモートコンピュータまたはサーバで実行されてもよい。後者のシナリオにおいて、リモートコンピュータは、ローカルエリアネットワーク(LAN)または広域ネットワーク(WAN)を含む任意のタイプのネットワークを介してユーザのコンピュータと接続されてもよく、(例えば、インターネットサービスプロバイダを利用したインターネットを介して)外部コンピュータと接続されてもよい。
【0099】
本発明の態様について、本発明の実施形態による方法、装置(システム)、並びにコンピュータプログラム製品のフローチャート及び/またはブロック図を参照して以下で説明する。フローチャート及び/またはブロック図の各ブロック、並びにフローチャート及び/またはブロック図のブロックにおける組合せは、コンピュータプログラム命令によって実施できることを理解されたい。これらのコンピュータプログラム命令は、コンピュータまたは他のプログラマブルデータ処理装置のプロセッサを通して実行される命令が、フローチャート及び/またはブロック図の1つまたは複数のブロックまたはモジュールに指定される機能/動作を実施するための手段を作り出すようなマシンを生成するために、汎用コンピュータ、専用コンピュータまたは他のプログラマブルデータ処理装置のプロセッサに提供される。
【0100】
これらのコンピュータプログラム命令は、コンピュータで読み取り可能な媒体に保存された命令が、フローチャート及び/またはブロック図の1つまたは複数のブロックまたはモジュールに指定された機能/動作を実施するための命令を含む製品を生成するように、コンピュータ、他のプログラマブルデータ処理装置または他のデバイスに、特定の方法で機能するように指示できるコンピュータで読み取り可能な媒体に保存できる。
【0101】
コンピュータプログラム命令は、またコンピュータ、他のプログラマブルデータ処理装置または他のデバイスにロードされて、一連の動作ステップがコンピュータ、他のプログラマブル装置または他のデバイスで実行され、コンピュータまたは他のプログラマブル装置で実行される命令が、フローチャート及び/またはブロック図のブロックまたはモジュールに指定された機能/動作を実施するためのプロセスを提供するように、コンピュータで実施されるプロセスを生成できる。
【0102】
本明細書で使用する「プロセッサ」という用語は、例えばCPU(central processing unit)及び/または他の処理回路を含むもの等、任意の処理装置を含むことを意図している。また、「プロセッサ」という用語は1つ以上の処理装置を指すことが可能であり、処理装置に関連する様々な要素は、他の処理装置によって共有されることも理解されたい。
【0103】
本明細書で使用する「メモリ」という用語は、例えば、RAM、ROM、固定メモリデバイス(例えば、ハードドライブ)、リムーバブルメモリデバイス(例えば、ディスケット)、フラッシュメモリ等、プロセッサまたはCPUに関連するメモリを含むことを意図している。このようなメモリは、コンピュータで読み取り可能な記録媒体と考えることができる。
【0104】
さらに、本明細書で使用する「入力/出力装置」または「I/O装置」という用語は、例えば、処理ユニットにデータを入力するための1つまたは複数の入力装置(例えば、キーボード、マウス、スキャナ等)及び/または処理ユニットに関連する、結果を提示するための1つまたは複数の出力装置(例えば、スピーカ、ディスプレイ、プリンタなど)を含むことを意図する。
【0105】
上記は、あらゆる観点において説明的かつ典型的であって限定的でないものと理解されるべきであり、本明細書で開示する本発明の範囲は、詳細な説明から決定されるべきではなく、特許法で認められた最大限の広さに基づいて解釈される特許請求の範囲から決定されるべきである。本明細書中に図示及び記載されている実施形態は、本発明の原理を説明するものにすぎず、本発明の範囲及び主旨から逸脱することなく当業者は様々な変更を実施することができることを理解されたい。当業者は、本発明の範囲及び精神から逸脱することなく、様々な他の特徴の組み合わせを実施できる。以上、本発明の態様について、特許法で要求される細部及び詳細な事項と共に説明したが、特許証で保護されることを要求する特許請求の範囲は、添付の特許請求の範囲に示されている。
【国際調査報告】