(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2024-12-24
(54)【発明の名称】デルタ蒸留を使用するビデオ処理
(51)【国際特許分類】
G06T 7/00 20170101AFI20241217BHJP
G06V 10/82 20220101ALI20241217BHJP
G06T 7/10 20170101ALI20241217BHJP
G06N 3/08 20230101ALI20241217BHJP
【FI】
G06T7/00 350C
G06V10/82
G06T7/10
G06N3/08
【審査請求】未請求
【予備審査請求】未請求
(21)【出願番号】P 2024527214
(86)(22)【出願日】2022-11-11
(85)【翻訳文提出日】2024-05-08
(86)【国際出願番号】 US2022079679
(87)【国際公開番号】W WO2023086911
(87)【国際公開日】2023-05-19
(32)【優先日】2021-11-15
(33)【優先権主張国・地域又は機関】US
(32)【優先日】2022-11-10
(33)【優先権主張国・地域又は機関】US
(81)【指定国・地域】
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
(71)【出願人】
【識別番号】507364838
【氏名又は名称】クアルコム,インコーポレイテッド
(74)【代理人】
【識別番号】100108453
【氏名又は名称】村山 靖彦
(74)【代理人】
【識別番号】100163522
【氏名又は名称】黒田 晋平
(72)【発明者】
【氏名】アミールホセイン・ハビビアン
(72)【発明者】
【氏名】ダヴィデ・アバティ
(72)【発明者】
【氏名】ハイタム・ベン・ヤヒア
【テーマコード(参考)】
5L096
【Fターム(参考)】
5L096AA06
5L096BA04
5L096CA01
5L096DA01
5L096DA02
5L096EA39
5L096FA19
5L096FA67
5L096GA08
5L096HA11
5L096JA11
5L096KA04
(57)【要約】
本開示の特定の態様は、人工ニューラルネットワークを使用してビデオコンテンツを処理するための、技術及び装置を提供する。例示的な方法は、一般に、少なくとも第1のフレーム及び第2のフレームを含む、ビデオデータストリームを受信することを含む。第1の特徴が、教師ニューラルネットワークを使用して第1のフレームから抽出される。第1のフレームと第2のフレームとの間の差分が決定される。第2の特徴が、生徒ニューラルネットワークを使用して、少なくとも第1のフレームと第2のフレームとの間の差分から抽出される。第2のフレームに関する特徴マップが、第1の特徴と第2の特徴との総和に基づいて生成される。第2の特徴に関する生成された特徴マップに基づいて、ビデオデータストリームの少なくとも第2のフレームに関して推論が生成される。
【特許請求の範囲】
【請求項1】
プロセッサによって実行される方法であって、
少なくとも第1のフレーム及び第2のフレームを含む、ビデオデータストリームを受信することと、
教師ニューラルネットワークを使用して、前記第1のフレームから第1の特徴を抽出することと、
前記第1のフレームと前記第2のフレームとの間の差分を決定することと、
生徒ニューラルネットワークを使用して、少なくとも前記第1のフレームと前記第2のフレームとの間の前記差分から、第2の特徴を抽出することと、
前記第1の特徴と前記第2の特徴との総和に基づいて、前記第2のフレームに関する特徴マップを生成することと、
前記第2のフレームに関する前記生成された特徴マップに基づいて、前記ビデオデータストリームの少なくとも前記第2のフレームに関する推論を生成することと、を含む、方法。
【請求項2】
前記第1のフレームが、前記ビデオデータストリームにおけるキーフレームを含み、前記第2のフレームが、前記ビデオデータストリームにおける非キーフレームを含む、請求項1に記載の方法。
【請求項3】
前記ビデオデータストリームにおける前記第2のフレームと第3のフレームとの間の差分を決定することと、
前記生徒ニューラルネットワークを使用して、少なくとも前記第2のフレームと前記第3のフレームとの間の前記差分から、第3の特徴を抽出することと、
前記第2の特徴と前記第3の特徴との総和に基づいて、前記第3のフレームに関する特徴マップを生成することと、
前記第3のフレームに関する前記生成された特徴マップに基づいて、前記ビデオデータストリームの前記第3のフレームに関する推論を生成することと、
を更に含む、請求項1に記載の方法。
【請求項4】
前記教師ニューラルネットワークが、線形ネットワークを含む、請求項1に記載の方法。
【請求項5】
前記生徒ニューラルネットワークが、前記教師ニューラルネットワークにおける重みのランクよりも低いランクへと重みを分解するように構成されている、請求項1に記載の方法。
【請求項6】
前記生徒ニューラルネットワークが、1つ又は複数のグループ畳み込み層を含む、請求項1に記載の方法。
【請求項7】
前記教師ニューラルネットワークが、非線形ネットワークを含む、請求項1に記載の方法。
【請求項8】
前記生徒ニューラルネットワークが、前記教師ニューラルネットワークと比較して、低減された数のチャネル、低減された空間解像度、又は低減された量子化のうちの、1つ若しくは複数を有するネットワークを含む、請求項1に記載の方法。
【請求項9】
前記第2の特徴が、前記第1のフレームと前記第2のフレームとの間の前記差分とともに、前記第1のフレームから更に抽出される、請求項1に記載の方法。
【請求項10】
前記生徒ニューラルネットワークが、前記第1のフレームと前記第2のフレームとの間の特徴マップにおける実際の変化と、前記第1のフレームと前記第2のフレームとの間の前記特徴マップにおける予測された変化との間の差分に基づく、損失関数を最小化するように訓練された、ニューラルネットワークを含む、請求項1に記載の方法。
【請求項11】
前記損失関数が、前記生徒ニューラルネットワークの複雑性の尺度と、複数の候補モデルにわたるカテゴリ分布とに基づいて定義される、コスト関数に更に基づく、請求項10に記載の方法。
【請求項12】
前記推論を生成することが、前記ビデオデータストリームの前記第2のフレーム内の1つ又は複数のオブジェクトを識別することを含む、請求項1に記載の方法。
【請求項13】
前記推論を生成することが、前記ビデオデータストリームにおける被写体の姿勢又は予測される動きのうちの少なくとも一方を推定することを含む、請求項1に記載の方法。
【請求項14】
前記推論を生成することが、前記ビデオデータストリームを、前記ビデオデータストリームにおいてキャプチャされた種々の被写体に関連付けられる複数のセグメントへと意味的にセグメント化することを含む、請求項1に記載の方法。
【請求項15】
前記推論を生成することが、前記第2のフレームを、潜在空間内の複数のコードからの1つのコードにマッピングすることを含み、前記方法は、前記第2のフレームがマッピングされる前記潜在空間内の前記コードに基づいて、前記第2のフレームを修正することを更に含む、請求項1に記載の方法。
【請求項16】
プロセッサによって実行される方法であって、
複数のビデオサンプルを含む訓練データセットを受信することであって、前記複数のビデオサンプルの各ビデオサンプルが複数のフレームを含む、受信することと、
前記訓練データセットに基づいて、教師ニューラルネットワークを訓練することと、
各ビデオサンプル内の連続するフレームに関する特徴マップ間の予測された差分と、各ビデオサンプル内の前記連続するフレームに関する特徴マップ間の実際の差分とに基づいて、生徒ニューラルネットワークを訓練することと、
前記教師ニューラルネットワーク及び前記生徒ニューラルネットワークを展開することと、を含む、方法。
【請求項17】
前記教師ニューラルネットワーク及び前記生徒ニューラルネットワークが、同じタスク固有目的関数を最小化するように訓練され、
前記タスク固有目的関数が、ビデオサンプル内の連続するフレームに関して生成された特徴マップにおける、実際の変化と予測された変化との間の差分に関連付けられる、重み付けされたデルタ分布損失項と、前記生徒ニューラルネットワークに関する複雑性の尺度に関連付けられる、重み付けされたコスト項とに基づいて定義される関数を含む、
請求項16に記載の方法。
【請求項18】
前記生徒ニューラルネットワークを訓練することが、前記訓練データセットにおけるビデオサンプル内の連続するフレームに関して生成された出力間の実際の差分と、前記ビデオサンプル内の前記連続するフレームに関して生成された前記出力間の予測された差分との間の損失を最小化するように、前記生徒ニューラルネットワークを訓練することを含む、請求項16に記載の方法。
【請求項19】
前記生徒ニューラルネットワークを訓練することが、前記生徒ニューラルネットワークに関する複雑性の尺度と、複数の候補モデルにわたるカテゴリ分布とに基づいて定義される、コスト関数を最小化するように、前記生徒ニューラルネットワークを訓練することを含む、請求項16に記載の方法。
【請求項20】
前記教師ニューラルネットワークが、線形ネットワークを含む、請求項16に記載の方法。
【請求項21】
前記生徒ニューラルネットワークが、前記教師ニューラルネットワークの重みのランクよりも低いランクへと重みを分解するように構成されている、ネットワークを含む、請求項16に記載の方法。
【請求項22】
処理システムであって、
実行可能命令が記憶されているメモリと、
前記実行可能命令を実行するように構成されているプロセッサと、を備え、前記実行可能命令が、前記処理システムに、
少なくとも第1のフレーム及び第2のフレームを含む、ビデオデータストリームを受信することと、
教師ニューラルネットワークを使用して、前記第1のフレームから第1の特徴を抽出することと、
前記第1のフレームと前記第2のフレームとの間の差分を決定することと、
生徒ニューラルネットワークを使用して、少なくとも前記第1のフレームと前記第2のフレームとの間の前記差分から、第2の特徴を抽出することと、
前記第1の特徴と前記第2の特徴との総和に基づいて、前記第2のフレームに関する特徴マップを生成することと、
前記第2のフレームに関する前記生成された特徴マップに基づいて、前記ビデオデータストリームの少なくとも前記第2のフレームに関する推論を生成することと、を実行させるためのものである、処理システム。
【請求項23】
前記プロセッサが、前記処理システムに、
前記ビデオデータストリームにおける前記第2のフレームと第3のフレームとの間の差分を決定することと、
前記生徒ニューラルネットワークを使用して、少なくとも前記第2のフレームと前記第3のフレームとの間の前記差分から、第3の特徴を抽出することと、
前記第2の特徴と前記第3の特徴との総和に基づいて、前記第3のフレームに関する特徴マップを生成することと、
前記第3のフレームに関する前記生成された特徴マップに基づいて、前記ビデオデータストリームの前記第3のフレームに関する推論を生成することと、を実行させるように更に構成されている、請求項22に記載の処理システム。
【請求項24】
前記教師ニューラルネットワークが、線形ネットワークを含む、請求項22に記載の処理システム。
【請求項25】
前記教師ニューラルネットワークが、非線形ネットワークを含み、前記生徒ニューラルネットワークが、前記教師ニューラルネットワークと比較して、低減された数のチャネル、低減された空間解像度、又は低減された量子化のうちの、1つ若しくは複数を有するネットワークを含む、請求項22に記載の処理システム。
【請求項26】
前記第2の特徴が、前記第1のフレームと前記第2のフレームとの間の前記差分とともに、前記第1のフレームから更に抽出される、請求項22に記載の処理システム。
【請求項27】
前記生徒ニューラルネットワークが、前記第1のフレームと前記第2のフレームとの間の特徴マップにおける実際の変化と、前記第1のフレームと前記第2のフレームとの間の前記特徴マップにおける予測された変化との間の差分に基づく、損失関数を最小化するように訓練された、ニューラルネットワークを含む、請求項22に記載の処理システム。
【請求項28】
前記損失関数が、前記生徒ニューラルネットワークの複雑性の尺度と、複数の候補モデルにわたるカテゴリ分布とに基づいて定義される、コスト関数に更に基づく、請求項27に記載の処理システム。
【請求項29】
処理システムであって、
実行可能命令が記憶されているメモリと、
前記実行可能命令を実行するように構成されているプロセッサと、を備え、前記実行可能命令が、前記処理システムに、
複数のビデオサンプルを含む訓練データセットを受信することであって、前記複数のビデオサンプルの各ビデオサンプルが複数のフレームを含む、受信することと、
前記訓練データセットに基づいて、教師ニューラルネットワークを訓練することと、
各ビデオサンプル内の連続するフレームに関する特徴マップ間の予測された差分と、各ビデオサンプル内の前記連続するフレームに関する特徴マップ間の実際の差分とに基づいて、生徒ニューラルネットワークを訓練することと、
前記教師ニューラルネットワーク及び前記生徒ニューラルネットワークを展開することと、を実行させるためのものである、処理システム。
【請求項30】
前記生徒ニューラルネットワークを訓練するために、前記プロセッサが、前記処理システムに、前記生徒ニューラルネットワークに関する複雑性の尺度と、複数の候補モデルにわたるカテゴリ分布とに基づいて定義される、コスト関数を最小化するように、前記生徒ニューラルネットワークを訓練させるように構成されている、請求項29に記載の処理システム。
【発明の詳細な説明】
【技術分野】
【0001】
関連出願の相互参照
本出願は、2021年11月15日に出願された米国仮特許出願第63/264,072号の利益及び優先権を主張する、2022年11月10日に出願された米国特許出願第18/054,274号の利益及び優先権を主張するものであり、これらの出願のそれぞれの全体が、参照により本明細書に組み込まれる。
【背景技術】
【0002】
本開示の諸態様は、ビデオコンテンツの処理に関する。
【0003】
人工ニューラルネットワークは、ビデオコンテンツ、又は空間成分と時間成分とを含む他のコンテンツに関して、様々な動作を実行するために使用することができる。例えば、人工ニューラルネットワークは、ビデオコンテンツをより小さいサイズの表現へと圧縮することにより、記憶及び送信の効率を改善し、そのビデオコンテンツに関する使用目的(例えば、デバイスのディスプレイのサイズに対する、データの適切な解像度)に一致させるために使用することができる。このコンテンツの圧縮は、解凍バージョンのデータが、圧縮されていた元のデータの近似であるような、非可逆技術を使用して、又は、解凍バージョンのデータが、元のデータと等価になる(又は、少なくとも視覚的に等価になる)結果をもたらす、可逆技術を使用することによって、実行することができる。別の実施例では、人工ニューラルネットワークは、ビデオコンテンツ内のオブジェクトを検出するために使用することができる。オブジェクト検出としては、例えば、ビデオコンテンツ内の移動する被写体を識別して、その被写体が将来どのように移動するかを予測するために使用される、被写体姿勢推定(subject pose estimation)、ビデオコンテンツ内の関心対象のオブジェクトを識別するための、オブジェクト分類などを挙げることができる。
【0004】
一般に、ビデオコンテンツの時間成分は、そのビデオコンテンツ内の異なるフレームによって表すことができる。人工ニューラルネットワークは、人工ニューラルネットワークの各層を介して、ビデオコンテンツ内のフレームを独立して処理することができる。それゆえ、人工ニューラルネットワークを介したビデオ処理のコストは、ビデオコンテンツ内の情報の増大率とは異なる(かつ、より高い)増大率で増大し得る。すなわち、ビデオコンテンツ内の連続するフレーム間では、異なるフレーム間の経過時間中に少量のデータのみが変化し得るため、各フレーム間には小さい変化が存在し得る。しかしながら、ニューラルネットワークは一般に、各フレームを独立して処理するため、人工ニューラルネットワークは、一般に、フレーム間の繰り返しデータ(例えば、変化しないシーンの部分)を処理するが、このことは極めて非効率的である。
【発明の概要】
【0005】
特定の態様は、人工ニューラルネットワークを使用してビデオコンテンツを処理するための方法を提供する。例示的な方法は、一般に、少なくとも第1のフレーム及び第2のフレームを含む、ビデオデータストリームを受信することを含む。第1の特徴が、教師ニューラルネットワークを使用して、第1のフレームから抽出される。第1のフレームと第2のフレームとの間の差分が決定される。第2の特徴が、生徒ニューラルネットワークを使用して、少なくとも第1のフレームと第2のフレームとの間の差分から抽出される。第2のフレームに関する特徴マップが、第1の特徴と第2の特徴との総和に基づいて生成される。第2の特徴に関する生成された特徴マップに基づいて、ビデオデータストリームの少なくとも第2のフレームに関して推論が生成される。
【0006】
特定の態様は、ビデオコンテンツを処理するために人工ニューラルネットワークを訓練するための方法を提供する。例示的な方法は、一般に、複数のビデオサンプルを含む訓練データセットを受信することを含む。各ビデオサンプルは、複数のフレームを含み得る。教師ニューラルネットワークは、訓練データセットに基づいて訓練され、生徒ニューラルネットワークは、各ビデオサンプル内の連続するフレームに関する特徴マップ間の予測された差分と、各ビデオサンプル内の連続するフレームに関する特徴マップ間の実際の差分とに基づいて訓練される。教師ニューラルネットワーク及び生徒ニューラルネットワークが展開される。
【0007】
他の態様は、前述の方法並びに本明細書で説明される方法を実行するように構成されている、処理システムと、処理システムの1つ又は複数のプロセッサによって実行されると、その処理システムに、前述の方法並びに本明細書で説明される方法を実行させる命令を含む、非一時的コンピュータ可読媒体と、前述の方法並びに本明細書で更に説明される方法を実行するためのコードを含む、コンピュータ可読記憶媒体上に具現化されているコンピュータプログラム製品と、前述の方法並びに本明細書で更に説明される方法を実行するための手段を備える、処理システムとを提供する。
【0008】
以下の説明及び関連する図面は、1つ又は複数の態様の特定の例示的な特徴を、詳細に記載している。
【0009】
添付の図は、1つ又は複数の態様の特定の特徴を示すものであり、それゆえ、本開示の範囲の限定と見なされるべきでない。
【図面の簡単な説明】
【0010】
【
図1】教師ニューラルネットワーク及び生徒ニューラルネットワークを含む、例示的な蒸留アーキテクチャを示す。
【
図2】教師ニューラルネットワーク及び生徒ニューラルネットワークを使用して、フレーム間の変化を蒸留するために使用される、デルタ蒸留の一実施例を示す。
【
図3】本開示の諸態様による、ビデオコンテンツ内のフレーム間の変化に基づいて、教師ニューラルネットワーク及び生徒ニューラルネットワークを含む、ニューラルネットワークを訓練することの一実施例を示す。
【
図4】本開示の諸態様による、ビデオコンテンツ内のフレーム間の変化に基づいて、ニューラルネットワークを使用してビデオコンテンツに関して推論を実行する一実施例を示す。
【
図5】本開示の諸態様による、連続するビデオフレームから蒸留されたデルタに基づいて、ビデオコンテンツに対して推論を実行するように、ニューラルネットワークを訓練するための、例示的な動作を示す。
【
図6】本開示の諸態様による、連続するビデオフレームから蒸留されたデルタに基づいて、ビデオコンテンツを処理するように訓練されたニューラルネットワークを使用して、ビデオコンテンツに対して推論を実行するための、例示的な動作を示す。
【
図7】本開示の諸態様を実装することが可能な、例示的なシステムを示す。
【
図8】本開示の諸態様を実装することが可能な、別の例示的なシステムを示す。
【0011】
理解を容易にするために、可能な場合には、図面に共通する同一の要素を指定するために同一の参照番号が使用されている。或る1つの態様の要素及び特徴を、更に詳述することなく、他の態様に有益に組み込むことができる点が想到されている。
【発明を実施するための形態】
【0012】
本開示の諸態様は、人工ニューラルネットワークを使用してビデオコンテンツを効率的に処理するための技術を提供する。
【0013】
論じられたように、人工ニューラルネットワークは、ビデオコンテンツに対して様々な推論動作を実行するために使用することができる。これらの推論は、例えば、様々な圧縮方式、オブジェクト検出、コンピュータビジョン動作、様々な画像処理及び修正動作(例えば、サイズ拡大、ノイズ除去など)などにおいて使用することができる。しかしながら、人工ニューラルネットワークは、ビデオコンテンツ内の各ビデオフレームを、独立して処理し得る。それゆえ、これらの人工ニューラルネットワークは、ビデオコンテンツ内のフレーム間にわたる様々な冗長性を活用しない場合がある。
【0014】
ニューラルネットワークを訓練すること、及び訓練されたニューラルネットワークを使用して推論を実行することは、計算的に複雑なタスクとなる場合があり、計算の複雑性の程度は、ニューラルネットワークの精度に対応し得る。すなわち、精度の高いモデルは、訓練及び使用するために、より計算的に複雑となり得るが、より精度の低いモデルは、訓練及び使用するために、さほど計算的に複雑とはなり得ない。人工ニューラルネットワークにおける精度を保持しつつ、計算の複雑性を改善することを可能にするために、データにおける冗長性を活用することができる。例えば、チャネルの冗長性は、様々な誤差項に基づいて重みを刈り込むことを可能にし得るものであり、それにより、推論に対して最小限の影響を及ぼすか又は全く影響を及ぼさない重み(例えば、画像データにおける色チャネルなどの、特定のチャネルに関するもの)が、訓練されるニューラルネットワークから取り除かれ、量子化を使用することにより、より小さいビット幅を使用して重みを表すことができ、特異値分解を使用することにより、よりコンパクトな表現で重み行列を近似することができる。別の実施例では、空間的冗長性を使用することにより、空間領域における類似性を活用することができる。更に別の実施例では、生徒ニューラルネットワークが、教師ニューラルネットワークの特徴出力に一致するように訓練される、知識蒸留を使用することができる。しかしながら、これらの技術は、ビデオコンテンツ又は時間成分を含む他のコンテンツにおける、時間的冗長性を活用することができない。
【0015】
本開示の諸態様は、ビデオコンテンツ又は時間成分を含む他のコンテンツにおける、時間的冗長性を活用して、ニューラルネットワークを訓練し、ビデオコンテンツ又は時間成分を含む他のコンテンツに対する推論を生成するためにニューラルネットワークを使用する、技術を提供する。これらの時間的冗長性は、ビデオコンテンツ又は時間成分を有する他のコンテンツの連続部分間の、差分又はデルタによって表すことができる。ビデオコンテンツ又は時間成分を有する他のコンテンツの連続部分から蒸留されたデルタに基づいて、ニューラルネットワークを訓練し、この訓練されたニューラルネットワークを使用して推論を実行することによって、本開示の諸態様は、ニューラルネットワークを訓練し、ニューラルネットワークを使用して推論を実行する際に使用される、データの量を削減することができる。このことにより、ニューラルネットワークを訓練し、ニューラルネットワークを使用して推論を実行するプロセスを加速させることができ、それにより、これらの動作において使用される処理サイクル及びメモリの数を低減し、訓練及び推論の動作において使用される電力量を低減することなどが可能となる。
【0016】
人工ニューラルネットワークにおける例示的なデルタ蒸留
図1は、教師ニューラルネットワーク及び生徒ニューラルネットワークを含む、例示的な蒸留アーキテクチャ100を示す。教師-生徒ニューラルネットワークのパラダイムにおいて、教師ニューラルネットワークは、生徒ニューラルネットワークよりも大きいネットワークとすることができ、教師ニューラルネットワークによって学習されたデータは、以下で更に詳細に論じられるように、データ蒸留技術を使用して生徒ネットワークを訓練するために使用することができる。
【0017】
図示のように、蒸留アーキテクチャ100は、教師ニューラルネットワーク110及び生徒ニューラルネットワーク120を含む。教師ニューラルネットワーク110は、一般に、a個の層を含み、生徒ニューラルネットワーク120は、(以下で更に詳細に論じられるように、aよりも大きい数とすることが可能な)b個の層を含む。入力105を、教師ニューラルネットワーク110及び生徒ニューラルネットワーク120の双方に提供することができ、教師ニューラルネットワーク110と生徒ニューラルネットワーク120とによって、特徴間の蒸留損失115が生成される。
【0018】
教師ニューラルネットワーク110は、以下の式に従って、L個のパラメータブロックの構成としての、包括的バックボーンFとして表すことができる:
【0019】
【0020】
各パラメータブロックは、入力を出力zにマッピングすることができる。一般に、l番目のパラメータブロックに関しては、このブロックによって生成される出力は、以下の式に従って表すことができる:
【0021】
【数2】
式中、xは、パラメータブロックへの入力を表し、θ
lは、パラメータブロックの学習可能なパラメータを表す。
【0022】
バックボーンFを所与として、訓練及び推論の実行の計算コストを低減するための1つの技術は、知識蒸留を含む。この実施例では、バックボーンFにおける各
【0023】
【数3】
は、学習可能なパラメータφ
lを有する別個の生徒ニューラルネットワーク
【0024】
【数4】
に関する監督信号として使用することが可能な、ターゲット特徴マップを提供する、教師ニューラルネットワークとして扱うことができる。生徒ニューラルネットワークは、例えば、パラメータの削減、層の削減、生徒ニューラルネットワークにおいて処理されるデータの量の、サイズ縮小又は他の入力スケーリングによる削減などを通じて、教師ニューラルネットワークよりも低い、計算の複雑性、またそれゆえ低い計算費用を有するように設計することができる。生徒ニューラルネットワークを訓練する際に使用される蒸留目的は、例えば、以下の式に従って、
【0025】
【0026】
【数6】
との誤差の、予期されるl
2ノルムを最適化することを志向し得る:
【0027】
【0028】
ビデオコンテンツなどの、時間成分を有するデータに関しては、各
【0029】
【数8】
は、時間tにおける、出力z
tへの入力x
tのマッピングと見なすことができる。更には、関数のテイラー展開に従って、現在の出力を、従前の出力に対する加法的更新として(例えば、z
t-1に対する加法的更新として)表すことができる。それゆえ、出力z
tは、式
【0030】
【数9】
によって表すことができ、またそれゆえ、z
tとz
t-1とのデルタ(又は、差分)は、式
【0031】
【数10】
によって表すことができる。更には、多くの関数に関して、f’は、fよりも少ないパラメータを有し得るものであり、このことは、時間tと時間t-1とにおけるフレーム間の変化が、より圧縮可能である可能性があり、特徴空間内の同様の領域内に存在している可能性があることを示し得る点に留意されたい。
【0032】
図2は、教師ニューラルネットワーク210及び生徒ニューラルネットワーク220が、時間的に分離された異なるビデオフレーム間の差分(又は、デルタ)を蒸留するように訓練される、一実施例を示す。図示のように、上記で論じられた関数fによって表される教師ニューラルネットワーク210と、上記で論じられた関数gによって表される生徒ニューラルネットワーク220との双方は、入力として、2つのビデオフレームx
t-1及びx
t(例えば、タイムスタンプtを有する現在のフレーム、及びタイムスタンプt-1を有する先行のフレーム)を受信することができる。教師ニューラルネットワーク210は、双方の入力x
t-1及びx
tに関する特徴マップを生成して、Δz
tとして表される、入力x
t-1とx
tとの間の差分を表す、時間tにおける差分特徴マップを生成することができる。生徒ニューラルネットワーク220は、同様に、2つのビデオフレームx
t-1及びx
tを入力として受信することができ、ビデオフレームx
t-1及びx
tに関して生成される特徴マップ間の差分を予測するように訓練することができ、予測された差分は、
【0033】
【0034】
【数12】
を生徒ニューラルネットワーク220が正確に生成することを可能にするために(教師ニューラルネットワーク210の出力が、グラウンドトゥルースデータとして扱われることを所与として)、生徒ニューラルネットワーク220は、実際の差分Δz
tと予測された差分
【0035】
【0036】
【数14】
を最小化するように訓練することができる。
【0037】
フレームxtは、フレームxt-1と加法的デルタとの和として表すことができるため、特徴マップztは同様に、以下の式に従って、特徴マップzt-1(例えば、フレームxt-1に関する特徴マップ)に加法的デルタを加えた和として表すことができる:
【0038】
【0039】
【数16】
は、入力x
t-1における所与の時間的変化に関する、出力Δz
tにおける変化を特徴付ける、加法的デルタを表す。より一般的には、加法的デルタは、以下の式に従って、パラメータφ
lを使用して生徒ニューラルネットワーク220によって近似させることが可能な、現在の入力と従前の入力との関数として定義することができる:
【0040】
【0041】
図3は、本開示の諸態様による、ビデオコンテンツ内のフレーム間の変化に基づいて、教師ニューラルネットワーク310及び生徒ニューラルネットワーク320を含むニューラルネットワークを訓練し、そのニューラルネットワークを使用して推論することの、一実施例300を示す。
【0042】
図示のように、関数flによって表される教師ニューラルネットワーク310は、任意の所与の入力ビデオフレームxに関する、特徴マップzを生成するように訓練することができる。教師ニューラルネットワーク310によって生成された特徴マップzは、生徒ニューラルネットワーク320を訓練するための、グラウンドトゥルースデータとして扱うことができる。教師ニューラルネットワーク310は、フレームxを入力として受信することができ、生徒ニューラルネットワーク320は、異なるフレーム間の差分Δxを、入力として受信することができる。所与の時間t+nにおいて、生徒ニューラルネットワークへの入力として使用されるフレーム間の差分は、
【0043】
【数18】
として表すことができ、式中、tは、推論が実行されるベースフレーム(例えば、ビデオデータストリームにおけるキーフレーム)に関連付けられているタイムスタンプを表し、nは、タイムスタンプtと、フレームx
t+nに関連付けられているタイムスタンプとの間の差分を表す。
【0044】
生徒ニューラルネットワーク320は、1つ又は複数の線形ブロックとして表すことができ、この場合、生徒ニューラルネットワークは、入力として、時間データにおける異なるサンプル(例えば、異なるビデオフレーム)間の残差値を受信する。そのような場合、生徒ニューラルネットワーク320は、式
【0045】
【0046】
【数20】
における一次項とすることができ、非ゼロ項とすることができる。導関数
【0047】
【0048】
【数22】
が線形である場合、定数である。別の実施例では、生徒ニューラルネットワーク320は、1つ又は複数の非線形ブロックによって表すことができる。そのような場合、生徒ニューラルネットワークは、時間tにおいて、入力として、従前の入力x
t-1及び残差値Δx
tの双方を受信することができる。
【0049】
一般に、生徒ニューラルネットワーク320の構造は、チャネル削減戦略又は空間削減戦略に基づいて選択することができる。チャネル削減戦略では、生徒ニューラルネットワーク320は、構造上は教師ニューラルネットワーク310を反映し得るが、教師ニューラルネットワーク310よりも少ないチャネルを有し得る。いくつもの点単位畳み込みを、生徒ニューラルネットワーク320内のブロックに、最初の層及び最後の層として導入することができ、それらの層は、それぞれ、チャネルの数を縮小及び拡張することができる。空間削減戦略では、生徒ニューラルネットワーク320は、教師ニューラルネットワーク310に類似し得る。しかしながら、生徒ニューラルネットワーク320は、入力ビデオフレームに対して、より小さい空間解像度を使用して動作することができ、このことは、生徒ニューラルネットワーク320内の最初の層として導入されている点単位ストライド畳み込み層(例えば、入力ビデオフレームの異なる部分間に間隔を有する、1×1カーネルを使用する畳み込み層)と、生徒ニューラルネットワーク320内の最後の層として導入されているピクセルシャッフルアップサンプリング層とを通じて達成することができる。
【0050】
教師ニューラルネットワーク310によって実装されているバックボーンモデルF内では、異なる層は、異なる程度まで圧縮可能とすることができる。例えば、いくつかの層は、圧縮可能(又は、蒸留可能)ではない場合があるが、これは、それらの層が教師ニューラルネットワーク310の性能を完全に損なう恐れがあるためである。それゆえ、生徒ニューラルネットワーク
【0051】
【0052】
【0053】
【数25】
は、教師ニューラルネットワークと同じ計算コストで動作する(例えば、圧縮することなくフレーム間のデルタを蒸留する)生徒ニューラルネットワークを表し、
【0054】
【数26】
は、何らかのターゲット係数によって計算的により安価なものである。2つの候補ネットワークのうちの、より好適なものを表す、学習可能なバイアス
【0055】
【数27】
を導入することができる。この学習可能なバイアスψ
lは、例えばGumbel-softmax再パラメータ化推定勾配を使用して、勾配降下法によって学習することができる。
【0056】
デルタ蒸留ブロック315は、特定の用途に関してビデオモデルを最適化するために使用することができる。タスク固有目的関数Ltask(Θ)を定義することができ、この場合、Θ={θ1,...,θL}は、教師ニューラルネットワーク310によって実装されているバックボーンモデルFのパラメータを表す。訓練の間に、Ltaskを、訓練ビデオクリップ上で最適化することができ、この場合、教師ニューラルネットワーク310及び生徒ニューラルネットワーク320の双方が予測に寄与する。教師ニューラルネットワーク310は、初期フレームに関する出力z(例えば、特徴マップ)を予測することに寄与し得るものであり、生徒ニューラルネットワーク320は、残りのフレームに関する出力zを予測することに寄与し得る。
【0057】
デルタ蒸留を(例えば、デルタ蒸留ブロック315を通じて)最適化するために、ターゲットデルタΔztを生徒ブロック
【0058】
【0059】
【0060】
【数30】
の学習を監督する教師として指定することができる。そうするために、デルタ分布損失L
ddを、デルタ蒸留ブロック315において最小化することができる。デルタ分布損失L
ddは、z
tにおける真の変化と、生徒ブロック
【0061】
【数31】
によってモデル化された変化との間の、l
2目的によって定義することができ、以下の式によって表すことができる:
【0062】
【0063】
可能な場合には、計算コストの低い候補ネットワーク(例えば、
【0064】
【数33】
)を、生徒ニューラルネットワークとして使用することを促進するために、複雑性目的を更に導入することができる。一般に、非正則化ψ
lバイアス項は、最も圧縮されていない生徒ネットワーク(例えば、
【0065】
【数34】
)の選択に収束し得るが、これは、最も圧縮されていない生徒が、より大きい容量とより良好なデルタ蒸留能力とを有するためであり、それにより、コスト関数を最適化することができる。コスト関数は、以下の式によって表すことができる:
【0066】
【数35】
式中、C(・)は、生徒ニューラルネットワークに関する複雑性の尺度を表し、
【0067】
【0068】
【数37】
にわたるカテゴリ分布を表し、これは、ソフトマックス層への入力としてψ
lを提供することによって得ることができる。L
cost及びL
ddの最小化(又は、少なくとも低減)により、コストと性能との最良のトレードオフをもたらす候補ネットワークに向けて、生徒ネットワーク探索を導くことができる。最終的に、生徒ニューラルネットワークを選択する際に最適化される全体的な目的は、以下の式によって表すことができる:
【0069】
【数38】
式中、α及びβは、L
task、L
dd、及びL
costのバランスを取るハイパーパラメータであり、総和は、教師ニューラルネットワーク310内のブロックLのそれぞれにわたって集約される。
【0070】
一般に、生徒ニューラルネットワーク320を訓練する過程で、蒸留されたデルタは、教師のデルタに収束することになる。タスク損失の勾配は、教師ニューラルネットワーク310へと経時的に逆伝播されるため、これらのタスク損失勾配は、生徒ニューラルネットワーク320によって加法的に更新することが可能な、第1のフレームに関する表現を提供することができる。それゆえ、タスク損失勾配は、更新することがより容易な表現を提供するように、教師に促すことができ、このことにより、ネットワーク内での時間的一貫性を改善することができる。更には、本明細書で説明される技術は、或る時点から別の時点に教師ニューラルネットワークが出力を伝播させることができるため、教師ニューラルネットワーク310において実装されているバックボーンFを、回帰型モデルに変換することができ、このことにより、教師ニューラルネットワーク310と生徒ニューラルネットワーク320とを含むパイプラインにおける、時間的一貫性が更に改善される。
【0071】
図4は、本開示の諸態様による、ビデオコンテンツ内のフレーム間の変化に基づいて、ニューラルネットワークを使用してビデオコンテンツに関して推論を実行する一実施例400を示す。
【0072】
ビデオコンテンツに対して推論を実行するために、教師ニューラルネットワーク410と1つ又は複数の生徒ニューラルネットワーク420とを使用して、ビデオコンテンツ内のフレームを処理することができる。一般に、ビデオデータの所与の入力に関して、教師ニューラルネットワーク410及び生徒ニューラルネットワーク420によって生成される出力は、以下の式に従って表すことができる:
【0073】
【0074】
教師ニューラルネットワーク410は、キーフレームなどの、指定された初期フレームを処理することができ、そのフレームから、後続フレームが、キーフレームに対する差分の観点から定義される。その一方で、生徒ニューラルネットワーク420は、或るフレームと先行フレームとのデルタに少なくとも部分的に基づいて、ビデオコンテンツ内の他のフレームを処理することができる。すなわち、時間tにおけるフレームxtに関して、教師ニューラルネットワーク410は、特徴マップztを生成することができる。時間t+1におけるフレームxt+1に関して、デルタΔxt+1を、フレームxtとフレームxt+1との間の差分として算出することができる。次いで、生徒ニューラルネットワーク420は、Δxt+1に関する特徴マップ
【0075】
【数40】
、及びフレームx
tに関する特徴マップz
tに基づいて、近似特徴マップを生成することができる。フレームx
t+1に関する近似特徴マップ
【0076】
【0077】
【数42】
との和として算出することができる。同様に、生徒ニューラルネットワーク420は、フレームx
t+1とフレームx
t+2との間の差分に関する近似特徴マップ
【0078】
【0079】
【0080】
【数45】
との和として生成することができる。このことは、任意の数のビデオフレームxに関して継続することができる。例えば、ビデオコンテンツ内で新たなキーフレームに遭遇するまで、デルタ蒸留を使用して、フレームに関して特徴マップを生成することができる。この新たなキーフレームは、教師ニューラルネットワーク410を使用して処理することができ、次のキーフレームまでの後続のフレームは、生徒ニューラルネットワーク420を使用して処理することができる。
【0081】
デルタ蒸留並びに教師ニューラルネットワーク及び生徒ニューラルネットワークを使用する、ビデオ処理のための例示的な方法
図5は、本開示の特定の態様による、連続するビデオフレームから蒸留されたデルタ(又は、ビデオコンテンツ内のフレーム間の差分)に基づいて、ビデオコンテンツに対して推論を実行するように、ニューラルネットワークを訓練するために、システムによって実行することが可能な、例示的な動作500を示す。動作500は、例えば、機械学習モデルを訓練して、その機械学習モデルを、ビデオデータから推論を生成する際に使用するために、別のデバイスに展開することが可能な、コンピューティングデバイス(例えば、
図7に示される処理システム700)によって実行することができる。
【0082】
図示のように、動作500は、訓練データセットが受信される、ブロック510から開始する。一般に、訓練データセットは、複数のビデオサンプルを含み得るものであり、複数のビデオサンプルの各ビデオサンプルは、複数のフレームを含み得る。各ビデオサンプルに関する複数のフレームのうち、1つ又は複数のフレームを、キーフレームとして指定することができ、第1のキーフレームの後、かつ第2のキーフレームの前のフレームを、第1のキーフレームに対する差分に基づいて定義することができる。
【0083】
ブロック520において、教師ニューラルネットワークが、訓練データセットに基づいて訓練される。一般に、教師ニューラルネットワークを訓練する際、教師ニューラルネットワークは、複数のビデオサンプルのそれぞれにおける各フレームに関して、特徴マップを生成するように訓練することができる。教師ニューラルネットワークは、例えば、L個のパラメータブロックのバックボーンFとして表すことができ、以下の式に従って出力zを生成することができる:
【0084】
【数46】
、式中、xは、(例えば、ビデオサンプル内のフレームの)入力を表す。
【0085】
ブロック530において、生徒ニューラルネットワークが訓練される。一般に、生徒ニューラルネットワークは、各ビデオサンプル内の連続するフレームに関する特徴マップ間の予測された差分と、各ビデオサンプル内の連続するフレームに関する特徴マップ間の実際の差分とに基づいて訓練することができる。
【0086】
いくつかの態様では、教師ニューラルネットワーク及び生徒ニューラルネットワークは、同じタスク固有目的関数を最小化するように訓練することができる。タスク固有目的関数は、例えば、教師ニューラルネットワークによって実装されているモデルの、複数のパラメータのそれぞれに基づく、目的関数とすることができる。タスク固有目的関数は、重み付けされたデルタ分布損失項、及び重み付けされたコスト項に基づいて定義することができる。例えば、タスク固有目的関数は、式
【0087】
【数47】
によって表すことができる。デルタ分布損失項、
【0088】
【数48】
は、ビデオサンプル内の連続するフレームに関して生成された特徴マップにおける、実際の変化と予測された変化との間の差分に関連付けることができ、コスト項、
【0089】
【数49】
は、生徒ニューラルネットワークに関する複雑性の尺度に関連付けることができる。
【0090】
いくつかの態様では、生徒ニューラルネットワークを訓練することは、デルタ蒸留損失を最小化するように、生徒ニューラルネットワークを訓練することを含み得る。デルタ蒸留損失は、一般に、(例えば、教師ニューラルネットワークによって生成された)訓練データセットにおけるビデオサンプル内の連続するフレームに関して生成された出力間の実際の差分と、(例えば、生徒ニューラルネットワークによって生成された)そのビデオサンプル内の連続するフレームに関して生成された出力間の予測された差分との、差異を表し得る。
【0091】
いくつかの態様では、生徒ニューラルネットワークを訓練することは、生徒ニューラルネットワークに関する複雑性の尺度と、複数の候補モデルにわたるカテゴリ分布とに基づいて定義される、コスト関数を最小化するように、生徒ニューラルネットワークを訓練することを含み得る。例えば、生徒ニューラルネットワークを訓練することは、計算の複雑性において教師ニューラルネットワークに一致する第1のニューラルネットワークと、低減された複雑性を有する第2のニューラルネットワークとに関する、複雑性の尺度に基づき得る。
【0092】
ブロック540において、教師ニューラルネットワーク及び生徒ニューラルネットワークが展開される。例えば、教師ニューラルネットワーク及び生徒ニューラルネットワークは、ワイヤレスネットワーク内のユーザ機器(UE)、コンピュータビジョン能力に少なくとも部分的に基づいて動作する自律運転能力を有する車両などの、キャプチャされたビデオデータに対して推論を実行するデバイスに展開することができる。これらの推論としては、例えば、圧縮のための潜在空間へのコンテンツの符号化、ビデオコンテンツ内のオブジェクト検出、被写体姿勢推定及び移動予測、種々のセグメントへのビデオコンテンツのセマンティックセグメンテーションなどを挙げることができる。
【0093】
図6は、本開示の特定の態様による、連続するビデオフレームから蒸留されたデルタに基づいて、ビデオコンテンツを処理するように訓練されたニューラルネットワークを使用して、ビデオコンテンツに対して推論を実行するための、例示的な動作600を示す。動作600は、例えば、ユーザ機器(UE)、自律車両などの、教師ニューラルネットワーク及び生徒ニューラルネットワークが展開されるデバイス(例えば、
図8に示される処理システム800)によって実行することができる。
【0094】
図示のように、動作600は、ビデオデータストリームが受信される、ブロック610から開始することができる。一般に、ビデオデータストリームは、キーフレームと、1つ又は複数の非キーフレームとを含み得る。キーフレームは、推論が実行される初期基準としてニューラルネットワークによって使用されるフレームとすることができ、連続するフレーム間の差分に基づいて、非キーフレームに関する推論を実行することができる。
【0095】
ブロック620において、教師ニューラルネットワークを使用して、第1のフレームから第1の特徴を抽出することができる。第1のフレームは、論じられたように、ビデオコンテンツ内の(例えば、第1のフレームに適用するための差分の観点から定義される)他のフレームが導出される、キーフレーム又は初期フレームとすることができる。
【0096】
ブロック630において、第1のフレームと第2のフレームとの間の差分が決定される。一般に、第1のフレームと第2のフレームとの間の差分は、第1のフレームと決定された差分との組み合わせが第2のフレームをもたらすような、第1のフレームと第2のフレームとの各ピクセルにおける変化についての情報を含み得る。
【0097】
ブロック640において、第2の特徴が、生徒ニューラルネットワークを使用して、少なくとも第1のフレームと第2のフレームとの間の差分から抽出される。一般に、第2の特徴は、第1の特徴と、第2のフレームに関して教師ニューラルネットワークによって抽出されたであろう特徴との間の差分の、近似とすることができる。いくつかの態様では、第2の特徴は、第1のフレームと第2のフレームとの間の差分と併せて第1のフレームから更に抽出することができる。
【0098】
ブロック650において、第1の特徴と第2の特徴との総和に基づいて、第2のフレームに関して特徴マップが生成される。論じられたように、第1の特徴は、一般に、第1のフレームからその全体が抽出された特徴のセットとすることができ、第2の特徴は、第1のフレームと第2のフレームとの間の差分から抽出された特徴のセットとすることができる。第2のフレームは、第1のフレームと、第1のフレームと第2のフレームとの間の差分との、和として表すことができるため、第2のフレームを表す特徴マップは、同様に、(第1のフレームから抽出された)第1の特徴と、(第1のフレームと第2のフレームとの間の差分から抽出された)第2の特徴との、和として表すことができる。
【0099】
ブロック660において、第2のフレームに関する生成された特徴マップに基づいて、ビデオデータストリームの少なくとも第2のフレームに関して推論が生成される。いくつかの態様では、推論を生成することは、第2のフレーム内の1つ又は複数のオブジェクトを識別することを含み得る。いくつかの態様では、推論を生成することは、ビデオデータストリームにおける被写体の姿勢及び/又は予測される動きを推定することを含み得る。姿勢推定及び予測される動きは、その後、例えば、自律自動車と被写体との衝突を回避するために、ビデオコンテンツ内に記録された被写体の予測される動きに反応するように、自律自動車を制御する際に使用することができる。別の態様では、推論を生成することは、ビデオデータストリームを、複数のセグメントへと意味的(semantically)にセグメント化することを含み得る。例えば、ビデオデータストリームは、ビデオストリームにおいてキャプチャされた種々の被写体に関連付けられる1つ又は複数のセグメントへとセグメント化することができる。別の実施例では、ビデオデータストリームは、フォアグラウンドコンテンツとバックグラウンドコンテンツとにセグメント化することができ、このことにより、特定のコンテンツを分析することが可能となり、他のコンテンツを、そのコンテンツがフォアグラウンドコンテンツになるような時(存在する場合)まで無視することが可能となり得る。
【0100】
更に別の実施例では、推論を生成することは、潜在空間内の複数のコードからの1つのコードに、第2のフレームをマッピングすることを含み得る。第2のフレームがマッピングされている潜在空間内のコードに基づいて、1つ又は複数の修正を、第2のフレームに対して実行することができる。例えば、第2のフレーム、又は第2のフレームの一部分(例えば、フォアグラウンドコンテンツ、特定のオブジェクトなどの、関心対象の部分)を修正することができる。修正は、解像度の変更(第2のフレームの修正後にも細部が保存されるような、サイズ拡大及び/又はサイズ縮小)、ノイズ除去、及び、画像若しくは画像の一部分に対して実行することが可能な他の修正を含み得る。
【0101】
いくつかの態様では、教師ニューラルネットワークは、上記で論じられたように、複数の線形ブロックを含む、線形ネットワークとすることができる。生徒ニューラルネットワークは、教師ニューラルネットワークにおける重みのランクよりも低いランクへと、重みを分解するように構成することができる。生徒ニューラルネットワークは、複数のグループ畳み込み層を含み得る。教師ニューラルネットワークが線形ネットワークである場合、生徒ニューラルネットワークは、先行のフレームと現在のフレームとの間の差分に基づいて(例えばΔxt=xt-xt-1に基づいて)、第2の特徴(例えば、Δzt)を生成することが可能であり、第2の特徴を生成するために先行のフレームを受信する必要はない場合もある。
【0102】
いくつかの態様では、教師ニューラルネットワークは、複数の非線形ブロックを含む、非線形ネットワークとすることができる。そのような場合、生徒ニューラルネットワークは、教師ニューラルネットワークと比較して、低減された数のチャネル、低減された空間解像度、又は低減された量子化のうちの、1つ若しくは複数を有するネットワークとすることができる。論じられたように、教師ニューラルネットワークが非線形ネットワークである場合、生徒ニューラルネットワークは、先行のフレームxt-1、及び先行のフレームと現在のフレームとの間の差分に基づいて(例えば、Δxt=xt-xt-1に基づいて)、第2の特徴(例えば、Δzt)を生成することができる。
【0103】
いくつかの態様では、生徒ニューラルネットワークは、第1のフレームと第2のフレームとの間の特徴マップにおける実際の変化と、第1のフレームと第2のフレームとの間の特徴マップにおける予測された変化との間の差分に基づく、損失関数を最小化するように訓練された、ニューラルネットワークとすることができる。損失関数は更に、生徒ニューラルネットワークの複雑性の尺度と、複数の候補モデルにわたるカテゴリ分布とに基づいて定義される、コスト関数に基づき得る。複数の候補モデルは、例えば、教師ニューラルネットワークと同じ計算コストで動作する(例えば、圧縮することなくフレーム間のデルタを蒸留する)生徒ニューラルネットワーク
【0104】
【数50】
と、何らかのターゲット係数によって教師ニューラルネットワークよりも計算的に安価な生徒ニューラルネットワーク
【0105】
【0106】
いくつかの態様では、ビデオデータストリームにおける第2のフレームと第3のフレームとの、差分を決定することができる。生徒ニューラルネットワークを使用して、少なくとも第2のフレームと第3のフレームとの間の差分から、第3の特徴を抽出することができる。第2の特徴と第3の特徴との総和に基づいて、第3のフレームに関して特徴マップを生成することができ、第3のフレームに関する生成された特徴マップに基づいて、第3のフレームに関して推論を生成することができる。
【0107】
ニューラルネットワークにおいてデルタ蒸留を使用してビデオ処理するための例示的な処理システム
図7は、例えば
図5に関して本明細書で説明されたような、デルタ蒸留、教師ニューラルネットワーク、及び生徒ニューラルネットワークを使用して、ビデオコンテンツ(又は、時間成分を有する他のコンテンツ)に対して推論を実行するように、機械学習モデルを訓練するための、例示的な処理システム700を示す。
【0108】
処理システム700は、いくつかの実施例ではマルチコアCPUとすることが可能な、中央処理ユニット(CPU)702を含む。CPU702において実行される命令は、例えば、CPU702に関連付けられているプログラムメモリからロードすることができ、又はメモリ724からロードすることもできる。
【0109】
処理システム700はまた、グラフィックス処理ユニット(GPU)704、デジタル信号プロセッサ(DSP)706、ニューラル処理ユニット(NPU)708、マルチメディア構成要素710、及びワイヤレス接続性構成要素712などの、特定の機能に即して調整されている追加的な処理構成要素も含む。
【0110】
NPU708などのNPUは、一般に、人工ニューラルネットワーク(ANNs)、ディープニューラルネットワーク(DNNs)、ランダムフォレスト(RFs)などを処理するためのアルゴリズムなどの、機械学習アルゴリズムを実行するための、制御及び算術論理を実装するように構成されている特殊回路である。NPUは、代替的に、ニューラル信号プロセッサ(NSP)、テンソル処理ユニット(TPUs)、ニューラルネットワークプロセッサ(NNP)、インテリジェンス処理ユニット(IPU)、ビジョン処理ユニット(VPU)、又はグラフ処理ユニットと称される場合もあり得る。
【0111】
NPU708などのNPUは、画像分類、機械翻訳、オブジェクト検出、及び様々な他の予測モデルなどの、一般的な機械学習タスクの実行を加速するように構成されている。いくつかの実施例では、複数のNPUを、システムオンチップ(SoC)などの単一のチップ上にインスタンス化することができるが、他の実施例では、NPUは、専用のニューラルネットワークアクセラレータの一部とすることもできる。
【0112】
NPUは、訓練若しくは推論に関して最適化させることができ、又は、いくつかの場合、それらの双方の間で性能のバランスを取るように構成することもできる。訓練及び推論の双方を実行することが可能なNPUに関しては、2つのタスクは依然として、一般に独立して実行することができる。
【0113】
訓練を加速するように設計されているNPUは、一般に、新たなモデルの最適化を加速するように構成されており、この最適化は、(多くの場合、ラベル付け又はタグ付けされている)既存のデータセットを入力し、そのデータセットを反復させ、次いで、モデル性能を向上させるために、重み及びバイアスなどの、モデルパラメータを調節することを伴う、極めて計算集約的な動作である。一般に、誤った予測に基づく最適化は、モデルの層を逆伝播して、予測誤差を低減するように勾配を決定することを伴う。
【0114】
推論を加速するように設計されているNPUは、一般に、完全なモデル上で動作するように構成されている。それゆえ、そのようなNPUは、新たなデータを入力して、そのデータを、モデル出力(例えば、推論)を生成するように既に訓練されているモデルを通じて、高速に処理するように構成することができる。
【0115】
一実装形態では、NPU708は、CPU702、GPU704、及び/又はDSP706のうちの1つ若しくは複数の一部である。
【0116】
いくつかの実施例では、ワイヤレス接続性構成要素712は、例えば、第3世代(3G)接続性、第4世代(4G)接続性(例えば、4G LTE)、第5世代接続性(例えば、5G又はNR)、Wi-Fi接続性、Bluetooth接続性、及び他のワイヤレスデータ伝送規格に関する、サブ構成要素を含み得る。ワイヤレス接続性構成要素712は、1つ又は複数のアンテナ714に更に結合されている。
【0117】
いくつかの実施例では、処理システム700のプロセッサのうちの1つ又は複数は、ARM又はRISC-V命令セットに基づき得る。
【0118】
処理システム700はまた、任意の方式のセンサに関連付けられている1つ又は複数のセンサ処理ユニット716、任意の方式の画像センサに関連付けられている1つ又は複数の画像信号プロセッサ(ISPs)718、並びに/あるいは、衛星ベースの測位システム構成要素(例えば、GPS又はGLONASS)、及び慣性測位システム構成要素を含み得る、ナビゲーション構成要素720も含み得る。
【0119】
処理システム700はまた、スクリーン、タッチ感知面(タッチ感知ディスプレイを含む)、物理ボタン、スピーカ、マイクロフォンなどの、1つ若しくは複数の入力及び/又は出力デバイス722も含み得る。
【0120】
メモリ724は、ダイナミックランダムアクセスメモリ(DRAM)、フラッシュベースのスタティックメモリなどの、1つ若しくは複数のスタティックメモリ及び/又はダイナミックメモリを表している。この実施例では、メモリ724は、処理システム700の前述の構成要素のうちの1つ又は複数によって実行することが可能な、コンピュータ実行可能構成要素を含む。
【0121】
具体的には、この実施例では、メモリ724は、訓練データセット受信構成要素724A、教師ニューラルネットワーク訓練構成要素724B、生徒ニューラルネットワーク訓練構成要素724C、及びニューラルネットワーク展開構成要素724Dを含む。図示の構成要素、及び図示されていない他の構成要素は、本明細書で説明されている方法の様々な態様を実行するように構成することができる。
【0122】
一般に、処理システム700及び/又はその構成要素は、本明細書で説明されている方法を実行するように構成することができる。
【0123】
特に、他の態様では、処理システム700がサーバコンピュータなどである場合などには、処理システム700の要素を省略することができる。例えば、マルチメディア構成要素710、ワイヤレス接続性構成要素712、センサ処理ユニット716、ISP718、及び/又はナビゲーション構成要素720は、他の態様では省略される場合がある。更には、処理システム700の要素は、モデルを訓練し、そのモデルを使用して推論を生成することなどのために、分散させることができる。
【0124】
図8は、例えば
図6に関して本明細書で説明されたような、デルタ蒸留、教師ニューラルネットワーク、及び生徒ニューラルネットワークを使用して、ビデオコンテンツ(又は、時間成分を有する他のコンテンツ)に対して推論を実行するための、例示的な処理システム800を示す。
【0125】
処理システム800は、いくつかの実施例ではマルチコアCPUとすることが可能な、中央処理ユニット(CPU)802を含む。処理システム800はまた、グラフィックス処理ユニット(GPU)804、デジタル信号プロセッサ(DSP)806、及びニューラル処理ユニット(NPU)808などの、特定の機能に即して調整されている追加的な処理構成要素も含む。CPU802、GPU804、DSP806、及びNPU808は、
図7に関して上記で論じられた、CPU702、GPU704、DSP706、及びNPU708と同様のものとすることができる。
【0126】
いくつかの実施例では、ワイヤレス接続性構成要素812は、例えば、第3世代(3G)接続性、第4世代(4G)接続性(例えば、4G LTE)、第5世代接続性(例えば、5G又はNR)、Wi-Fi接続性、Bluetooth接続性、及び他のワイヤレスデータ伝送規格に関する、サブ構成要素を含み得る。ワイヤレス接続性構成要素812は、1つ又は複数のアンテナ(図示せず)に更に接続することができる。
【0127】
いくつかの実施例では、処理システム800のプロセッサのうちの1つ又は複数は、ARM又はRISC-V命令セットに基づき得る。
【0128】
処理システム800はまた、ダイナミックランダムアクセスメモリ、フラッシュベースのスタティックメモリなどの、1つ若しくは複数のスタティックメモリ及び/又はダイナミックメモリを表す、メモリ824も含む。この実施例では、メモリ824は、処理システム800の前述のプロセッサのうちの1つ又は複数によって実行することが可能な、コンピュータ実行可能構成要素を含む。
【0129】
具体的には、この実施例では、メモリ824は、ビデオデータストリーム受信構成要素824A、特徴抽出構成要素824B、差分決定構成要素824C、特徴マップ生成構成要素824D、推論生成構成要素824E、及びニューラルネットワーク構成要素824F(
図3に関して上述されたニューラルネットワーク310及び320、あるいは
図4に関して上述されたニューラルネットワーク410及び420など)を含む。図示の構成要素、及び図示されていない他の構成要素は、本明細書で説明されている方法の様々な態様を実行するように構成することができる。
【0130】
一般に、処理システム800及び/又はその構成要素は、本明細書で説明されている方法を実行するように構成することができる。
【0131】
特に、他の態様では、処理システム800がサーバコンピュータなどである場合などには、処理システム800の要素を省略することができる。例えば、マルチメディア構成要素810、ワイヤレス接続性構成要素812、センサ816、ISP818、及び/又はナビゲーション構成要素820は、他の態様では省略される場合がある。
【0132】
例示的条項
本開示の様々な態様の実装の詳細が、以下の番号付けされた条項において説明される。
【0133】
条項1:方法であって、少なくとも第1のフレーム及び第2のフレームを含む、ビデオデータストリームを受信することと、教師ニューラルネットワークを使用して、第1のフレームから第1の特徴を抽出することと、第1のフレームと第2のフレームとの間の差分を決定することと、生徒ニューラルネットワークを使用して、少なくとも第1のフレームと第2のフレームとの間の差分から、第2の特徴を抽出することと、第1の特徴と第2の特徴との総和に基づいて、第2のフレームに関する特徴マップを生成することと、第2のフレームに関する生成された特徴マップに基づいて、ビデオデータストリームの少なくとも第2のフレームに関する推論を生成することとを含む、方法。
【0134】
条項2:第1のフレームが、ビデオデータストリームにおけるキーフレームを含み、第2のフレームが、ビデオデータストリームにおける非キーフレームを含む、条項1の方法。
【0135】
条項3:ビデオデータストリームにおける第2のフレームと第3のフレームとの間の差分を決定することと、生徒ニューラルネットワークを使用して、少なくとも第2のフレームと第3のフレームとの間の差分から、第3の特徴を抽出することと、第2の特徴と第3の特徴との総和に基づいて、第3のフレームに関する特徴マップを生成することと、第3のフレームに関する生成された特徴マップに基づいて、ビデオデータストリームの第3のフレームに関する推論を生成することとを更に含む、条項1又は2の方法。
【0136】
条項4:教師ニューラルネットワークが、線形ネットワークを含む、条項1~3のうちのいずれかの方法。
【0137】
条項5:生徒ニューラルネットワークが、教師ニューラルネットワークにおける重みのランクよりも低いランクへと重みを分解するように構成されている、条項1~4のうちのいずれかの方法。
【0138】
条項6:生徒ニューラルネットワークが、1つ又は複数のグループ畳み込み層を含む、条項1~5のうちのいずれかの方法。
【0139】
条項7:教師ニューラルネットワークが、非線形ネットワークを含む、条項1~6のうちのいずれかの方法。
【0140】
条項8:生徒ニューラルネットワークが、教師ニューラルネットワークと比較して、低減された数のチャネル、低減された空間解像度、又は低減された量子化のうちの、1つ若しくは複数を有するネットワークを含む、条項1~7のうちのいずれかの方法。
【0141】
条項9:第2の特徴が、第1のフレームと第2のフレームとの間の差分とともに第1のフレームから更に抽出される、条項1~8のうちのいずれかの方法。
【0142】
条項10:生徒ニューラルネットワークが、第1のフレームと第2のフレームとの間の特徴マップにおける実際の変化と、第1のフレームと第2のフレームとの間の特徴マップにおける予測された変化との間の差分に基づく、損失関数を最小化するように訓練された、ニューラルネットワークを含む、条項1~10のうちのいずれかの方法。
【0143】
条項11:損失関数が、生徒ニューラルネットワークの複雑性の尺度と、複数の候補モデルにわたるカテゴリ分布とに基づいて定義される、コスト関数に更に基づく、条項10の方法。
【0144】
条項12:推論を生成することが、ビデオデータストリームの第2のフレーム内の1つ又は複数のオブジェクトを識別することを含む、条項1~11のうちのいずれかの方法。
【0145】
条項13:推論を生成することが、ビデオデータストリームにおける被写体の姿勢又は予測される動きのうちの少なくとも一方を推定することを含む、条項1~12のうちのいずれかの方法。
【0146】
条項14:推論を生成することが、ビデオデータストリームを、ビデオデータストリームにおいてキャプチャされた種々の被写体に関連付けられる複数のセグメントへと意味的にセグメント化することを含む、条項1~13のうちのいずれかの方法。
【0147】
条項15:推論を生成することが、潜在空間内の複数のコードからの1つのコードに、第2のフレームをマッピングすることを含み、本方法は、第2のフレームがマッピングされている潜在空間内のコードに基づいて、第2のフレームを修正することを更に含む、条項1~14のうちのいずれか1つの方法。
【0148】
条項16:方法であって、複数のビデオサンプルを含む訓練データセットを受信することであって、複数のビデオサンプルの各ビデオサンプルが、複数のフレームを含む、受信することと、訓練データセットに基づいて、教師ニューラルネットワークを訓練することと、各ビデオサンプル内の連続するフレームに関する特徴マップ間の予測された差分と、各ビデオサンプル内の連続するフレームに関する特徴マップ間の実際の差分とに基づいて、生徒ニューラルネットワークを訓練することと、教師ニューラルネットワーク及び生徒ニューラルネットワークを展開することとを含む、方法。
【0149】
条項17:教師ニューラルネットワーク及び生徒ニューラルネットワークが、同じタスク固有目的関数を最小化するように訓練され、タスク固有目的関数が、ビデオサンプル内の連続するフレームに関して生成された特徴マップにおける、実際の変化と予測された変化との間の差分に関連付けられる、重み付けされたデルタ分布損失項と、生徒ニューラルネットワークに関する複雑性の尺度に関連付けられる、重み付けされたコスト項とに基づいて定義される関数を含む、条項16の方法。
【0150】
条項18:生徒ニューラルネットワークを訓練することが、訓練データセットにおけるビデオサンプル内の連続するフレームに関して生成された出力間の実際の差分と、ビデオサンプル内の連続するフレームに関して生成された出力間の予測された差分との間の損失を最小化するように、生徒ニューラルネットワークを訓練することを含む、条項16又は17の方法。
【0151】
条項19:生徒ニューラルネットワークを訓練することが、生徒ニューラルネットワークに関する複雑性の尺度と、複数の候補モデルにわたるカテゴリ分布とに基づいて定義される、コスト関数を最小化するように、生徒ニューラルネットワークを訓練することを含む、条項16~18のうちのいずれかの方法。
【0152】
条項20:教師ニューラルネットワークが、線形ネットワークを含む、条項16~19のうちのいずれかの方法。
【0153】
条項21:生徒ニューラルネットワークが、教師ニューラルネットワークの重みのランクよりも低いランクへと重みを分解するように構成されている、ネットワークを含む、条項16~20のうちのいずれかの方法。
【0154】
条項22:教師ニューラルネットワークが、非線形ネットワークを含む、条項16~21のうちのいずれかの方法。
【0155】
条項23:コンピュータ実行可能命令を含むメモリと、コンピュータ実行可能命令を実行し、処理システムに、条項1~22のうちのいずれかによる方法を実行させるように構成されている、1つ又は複数のプロセッサとを備える、処理システム。
【0156】
条項24:条項1~22のうちのいずれかによる方法を実行するための手段を備える、処理システム。
【0157】
条項25:処理システムの1つ又は複数のプロセッサによって実行されると、処理システムに、条項1~22のうちのいずれかの方法を実行させる、コンピュータ実行可能命令を含む、非一時的コンピュータ可読媒体。
【0158】
条項26:条項1~22のうちのいずれかによる方法を実行するためのコードを含む、コンピュータ可読記憶媒体上に具現化されているコンピュータプログラム製品。
【0159】
追加的な考慮事項
前述の説明は、本明細書で説明されている様々な態様を、あらゆる当業者が実践することを可能にするために提供されている。本明細書で論じられている実施例は、請求項に記載されている範囲、適用可能性、又は態様を限定するものではない。これらの態様に対する様々な修正が、当業者には容易に明らかとなり、本明細書で定義されている一般的原理は、他の態様に適用することもできる。例えば、本開示の範囲から逸脱することなく、論じられている要素の機能及び構成に変更を加えることができる。様々な実施例は、必要に応じて、様々な手順若しくは構成要素を、省略するか、置換するか、又は追加することができる。例えば、説明されている方法は、説明されている順序とは異なる順序で実行することができ、様々なステップを追加するか、省略するか、又は組み合わせることもできる。また、いくつかの実施例に関して説明されている特徴を、いくつかの他の実施例に組み合わせることもできる。例えば、本明細書に記載されている任意の数の態様を使用して、装置を実装することができ、又は方法を実践することができる。更には、本開示の範囲は、本明細書に記載されている本開示の様々な態様に加えて、又はそれらの態様以外に、他の構造、機能、若しくは、構造と機能とを使用して実践されるような、装置又は方法を包含することが意図されている。本明細書で開示されている、本開示のいずれの態様も、特許請求の範囲の1つ又は複数の要素によって具現化することできる点を理解されたい。
【0160】
本明細書で使用される場合、「例示的」という語は、「実施例、事例、又は例示としての役割を果たすこと」を意味する。「例示的」として本明細書で説明されているいずれの態様も、必ずしも他の態様よりも好ましいか又は有利であるとして解釈されるべきではない。
【0161】
本明細書で使用される場合、項目のリスト「のうちの少なくとも1つ」に言及する語句は、単一のメンバーを含めた、それらの項目の任意の組み合わせを指す。例として、「a、b、又はcのうちの少なくとも1つ」は、a、b、c、a-b、a-c、b-c、及びa-b-c、並びに、複数の同じ要素を有する任意の組み合わせ(例えば、a-a、a-a-a、a-a-b、a-a-c、a-b-b、a-c-c、b-b、b-b-b、b-b-c、c-c、及びc-c-c、あるいは、a、b、及びcの任意の他の配列)を包含することが意図されている。
【0162】
本明細書で使用される場合、「決定すること(determining)」という用語は、多種多様なアクションを包含する。例えば、「決定すること」は、算出すること、計算すること、処理すること、導出すること、調査すること、検索すること(例えば、テーブル、データベース、又は別のデータ構造を検索すること)、確認することなどを含み得る。また、「決定すること」は、受信すること(例えば、情報を受信すること)、アクセスすること(例えば、メモリ内のデータにアクセスすること)なども含み得る。また、「決定すること」は、解決すること、選択すること、選び取ること、確立することなども含み得る。
【0163】
本明細書で開示される方法は、方法を達成するための1つ若しくは複数のステップ又はアクションを含む。それらの方法のステップ及び/又はアクションは、特許請求の範囲から逸脱することなく、互いに入れ替えることができる。換言すれば、ステップ又はアクションの特定の順序が指定されていない限り、特定のステップ及び/又はアクションの順序、並びに/あるいは、それらのステップ及び/又はアクションの使用は、特許請求の範囲から逸脱することなく、修正することができる。更には、上述の方法の様々な動作は、対応する機能を実行することが可能な、任意の好適な手段によって実行することができる。それらの手段は、限定するものではないが、回路、特定用途向け集積回路(ASIC)、又はプロセッサを含めた、様々なハードウェア構成要素及び/又はソフトウェア構成要素、並びに/あるいは、様々なハードウェアモジュール及び/又はソフトウェアモジュールを含み得る。一般に、図中に動作が示されている場合、それらの動作は、同様の番号が付された、対応する同等のミーンズプラスファンクション構成要素を有し得る。
【0164】
以下の特許請求の範囲は、本明細書で示されている態様に限定されることを意図するものではなく、特許請求の範囲の文言と一致する全範囲が与えられるべきである。請求項内では、単数形による要素への言及は、そのように明記されていない限り、「1つのみ」を意味するものではなく、むしろ「1つ又は複数」を意味することが意図されている。別段に明記されていない限り、「いくつかの」という用語は、1つ又は複数を指す。請求項のいかなる要素も、その要素が「~のための手段」という語句を使用して明示的に列挙されていない限り、又は方法請求項の場合には、その要素が「~のためのステップ」という語句を使用して列挙されていない限り、米国特許法第112条(f)の規定の下で解釈されるべきではない。当業者には公知であるか又は後に公知となる、本開示の全体にわたって説明されている様々な態様の要素に対する、全ての構造的及び機能的な等価物は、参照により本明細書に明示的に組み込まれ、特許請求の範囲によって包含されることが意図されている。更には、本明細書で開示されるものはいずれも、そのような開示が特許請求の範囲において明示的に列挙されているか否かに関わりなく、公に供されることを意図するものではない。
【国際調査報告】