IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ クゥアルコム・インコーポレイテッドの特許一覧

特表2024-509862ビデオ処理における改善された時間的一貫性のための効率的なテスト時間適応
<>
  • 特表-ビデオ処理における改善された時間的一貫性のための効率的なテスト時間適応 図1
  • 特表-ビデオ処理における改善された時間的一貫性のための効率的なテスト時間適応 図2A
  • 特表-ビデオ処理における改善された時間的一貫性のための効率的なテスト時間適応 図2B
  • 特表-ビデオ処理における改善された時間的一貫性のための効率的なテスト時間適応 図2C
  • 特表-ビデオ処理における改善された時間的一貫性のための効率的なテスト時間適応 図2D
  • 特表-ビデオ処理における改善された時間的一貫性のための効率的なテスト時間適応 図3
  • 特表-ビデオ処理における改善された時間的一貫性のための効率的なテスト時間適応 図4
  • 特表-ビデオ処理における改善された時間的一貫性のための効率的なテスト時間適応 図5
  • 特表-ビデオ処理における改善された時間的一貫性のための効率的なテスト時間適応 図6
  • 特表-ビデオ処理における改善された時間的一貫性のための効率的なテスト時間適応 図7
  • 特表-ビデオ処理における改善された時間的一貫性のための効率的なテスト時間適応 図8
  • 特表-ビデオ処理における改善された時間的一貫性のための効率的なテスト時間適応 図9
  • 特表-ビデオ処理における改善された時間的一貫性のための効率的なテスト時間適応 図10
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2024-03-05
(54)【発明の名称】ビデオ処理における改善された時間的一貫性のための効率的なテスト時間適応
(51)【国際特許分類】
   G06V 10/82 20220101AFI20240227BHJP
   G06V 10/40 20220101ALI20240227BHJP
   G06V 20/40 20220101ALI20240227BHJP
   G06T 7/00 20170101ALI20240227BHJP
【FI】
G06V10/82
G06V10/40
G06V20/40
G06T7/00 350C
【審査請求】未請求
【予備審査請求】未請求
(21)【出願番号】P 2023553719
(86)(22)【出願日】2022-03-09
(85)【翻訳文提出日】2023-09-04
(86)【国際出願番号】 US2022019620
(87)【国際公開番号】W WO2022192449
(87)【国際公開日】2022-09-15
(31)【優先権主張番号】17/198,147
(32)【優先日】2021-03-10
(33)【優先権主張国・地域又は機関】US
(81)【指定国・地域】
(71)【出願人】
【識別番号】595020643
【氏名又は名称】クゥアルコム・インコーポレイテッド
【氏名又は名称原語表記】QUALCOMM INCORPORATED
(74)【代理人】
【識別番号】110003708
【氏名又は名称】弁理士法人鈴榮特許綜合事務所
(72)【発明者】
【氏名】ジャン、イージェー
(72)【発明者】
【氏名】ボース、シュブハンカー・マンゲシュ
(72)【発明者】
【氏名】ポリクリ、ファティ・ムラート
【テーマコード(参考)】
5L096
【Fターム(参考)】
5L096AA02
5L096FA01
5L096FA02
5L096GA34
5L096KA04
5L096LA13
(57)【要約】
ビデオを処理するための方法が、人工ニューラルネットワーク(ANN)の第1の層における入力としてビデオを受信することを含む。ビデオの第1のフレームが、第1のラベルを生成するために処理される。その後、人工ニューラルネットワークは、第1のラベルに基づいて更新される。更新することは、ビデオの第2のフレームをコンカレントに処理する間に実施される。そうする際に、ラベル間の時間的非一貫性が低減される。
【特許請求の範囲】
【請求項1】
ビデオを処理するための方法であって、
人工ニューラルネットワーク(ANN)の第1の層における入力として前記ビデオを受信することと、
第1のラベルを生成するために前記ビデオの第1のフレームを処理することと、
前記第1のラベルに基づいて前記人工ニューラルネットワークを更新することと、前記更新することが、前記ビデオの第2のフレームをコンカレントに処理する間に実施される、
を備える、方法。
【請求項2】
前記人工ニューラルネットワークを更新するために、前記人工ニューラルネットワークのバックワードパスにおいて前記第1のラベルを適用することをさらに備える、請求項1に記載の方法。
【請求項3】
前記第2のフレームに基づいて第2のラベルを生成することをさらに備え、前記コンカレント処理が、前記第1のラベルと前記第2のラベルとの間の時間的非一貫性を低減するために行われる、請求項1に記載の方法。
【請求項4】
ビデオを処理するための方法であって、
第1の人工ニューラルネットワーク(ANN)および第2の人工ニューラルネットワークの第1の層における入力として前記ビデオを受信することと、前記第1の人工ニューラルネットワークが、前記第2の人工ニューラルネットワークよりも少数のチャネルを有する、
第1のラベルを生成するために前記第1の人工ニューラルネットワークを介して前記ビデオの第1のフレームを処理することと、前記第1の人工ニューラルネットワークが、前記ビデオの前記第1のフレームから抽出された中間特徴を前記第2の人工ニューラルネットワークに供給する、
前記ビデオの前記第1のフレームを、前記中間特徴と前記第1のフレームとに基づいて第2のラベルを生成するために前記第2の人工ニューラルネットワークを介して、処理することと、
前記第2の人工ニューラルネットワークが前記ビデオの第2のフレームをコンカレントに処理する間、前記第1のラベルに基づいて前記第1の人工ニューラルネットワークを更新することと
を備える、方法。
【請求項5】
前記第2のフレームに基づいて前記第2の人工ニューラルネットワークを介して第3のラベルを生成することをさらに備え、前記コンカレント処理は、前記第2のラベルと前記第3のラベルとの間の時間的非一貫性が低減されるように行われる、請求項4に記載の方法。
【請求項6】
前記第1の人工ニューラルネットワークが、前記第2の人工ニューラルネットワークよりも低い解像度において動作する、請求項4に記載の方法。
【請求項7】
ビデオを処理するための装置であって、
メモリと、
前記メモリに結合された少なくとも1つのプロセッサと
を備え、前記少なくとも1つのプロセッサは、
第1の人工ニューラルネットワーク(ANN)および第2の人工ニューラルネットワークの第1の層における入力として前記ビデオを受信することと、前記第1の人工ニューラルネットワークが、前記第2の人工ニューラルネットワークよりも少数のチャネルを有する、
第1のラベルを生成するために前記第1の人工ニューラルネットワークを介して前記ビデオの第1のフレームを処理することと、前記第1の人工ニューラルネットワークが、前記ビデオの前記第1のフレームから抽出された中間特徴を前記第2の人工ニューラルネットワークに供給する、
前記ビデオの前記第1のフレームを、前記中間特徴と前記第1のフレームとに基づいて第2のラベルを生成するために前記第2の人工ニューラルネットワークを介して、処理することと、
前記第2の人工ニューラルネットワークが前記ビデオの第2のフレームをコンカレントに処理する間、前記第1のラベルに基づいて前記第1の人工ニューラルネットワークを更新することと
を行うように構成された、装置。
【請求項8】
前記少なくとも1つのプロセッサが、前記第2のフレームに基づいて前記第2の人工ニューラルネットワークを介して第3のラベルを生成するようにさらに構成され、前記コンカレント処理は、前記第2のラベルと前記第3のラベルとの間の時間的非一貫性が低減されるように行われる、請求項7に記載の装置。
【請求項9】
前記第1の人工ニューラルネットワークが、前記第2の人工ニューラルネットワークよりも低い解像度において動作する、請求項7に記載の装置。
【請求項10】
ビデオを処理するためのプログラムコードをその上に符号化した非一時的コンピュータ可読媒体であって、前記プログラムコードは、プロセッサによって実行され、
第1の人工ニューラルネットワーク(ANN)および第2の人工ニューラルネットワークの第1の層における入力として前記ビデオを受信するためのプログラムコードと、前記第1の人工ニューラルネットワークが、前記第2の人工ニューラルネットワークよりも少数のチャネルを有する、
第1のラベルを生成するために前記第1の人工ニューラルネットワークを介して前記ビデオの第1のフレームを処理するためのプログラムコードと、前記第1の人工ニューラルネットワークが、前記ビデオの前記第1のフレームから抽出された中間特徴を前記第2の人工ニューラルネットワークに供給する、
前記ビデオの前記第1のフレームを、前記中間特徴と前記第1のフレームとに基づいて第2のラベルを生成するために前記第2の人工ニューラルネットワークを介して、処理するためのプログラムコードと、
前記第2の人工ニューラルネットワークが前記ビデオの第2のフレームをコンカレントに処理する間、前記第1のラベルに基づいて前記第1の人工ニューラルネットワークを更新するためのプログラムコードと
を備える、非一時的コンピュータ可読媒体。
【請求項11】
前記第2のフレームに基づいて前記第2の人工ニューラルネットワークを介して第3のラベルを生成するためのプログラムコードをさらに備え、前記コンカレント処理は、前記第2のラベルと前記第3のラベルとの間の時間的非一貫性が低減されるように行われる、請求項10に記載の非一時的コンピュータ可読媒体装置。
【請求項12】
前記第1の人工ニューラルネットワークが、前記第2の人工ニューラルネットワークよりも低い解像度において動作する、請求項10に記載の非一時的コンピュータ可読媒体。
【発明の詳細な説明】
【技術分野】
【0001】
関連出願の相互参照
[0001] 本出願は、その開示全体が参照により本明細書に明確に組み込まれる、2021年3月10日に出願された、「EFFICIENT TEST-TIME ADAPTATION FOR IMPROVED TEMPORAL CONSISTENCY IN VIDEO PROCESSING」と題する米国特許出願第17/198,147号の優先権を主張する。
【0002】
[0002] 本開示の態様は、一般にニューラルネットワーク(neural network)に関し、より詳細には、ビデオ処理(video processing)に関する。
【背景技術】
【0003】
[0003] 人工ニューラルネットワーク(Artificial neural network)は、人工ニューロン(artificial neuron)(たとえば、ニューロンモデル)の相互結合されたグループを備え得る。人工ニューラルネットワークは、計算デバイス(computational device)であるか、または計算デバイスによって実施されるべき方法として表され得る。
【0004】
[0004] ニューラルネットワークは、テンソル(tensor)を消費し、テンソルを作り出す、オペランドからなる。ニューラルネットワークは、複雑な問題を解決するために使用され得るが、解を作り出すために実施され得るネットワークサイズおよび計算の数が多量であり得るので、ネットワークがタスクを完了するための時間が長くなり得る。さらに、これらのタスクが、限られた計算能力(computational power)を有し得るモバイルデバイス上で実施され得るので、深層ニューラルネットワーク(deep neural network)の計算コストが問題になり得る。
【0005】
[0005] 畳み込みニューラルネットワークは、フィードフォワード人工ニューラルネットワークのタイプである。畳み込みニューラルネットワークは、各々が受容野を有し、入力空間を集合的にタイリングするニューロンの集合を含み得る。深層畳み込みニューラルネットワーク(DCN:deep convolutional neural network)など、畳み込みニューラルネットワーク(CNN:Convolutional neural network)は、多数の適用例を有する。特に、これらのニューラルネットワークアーキテクチャは、画像認識、パターン認識、音声認識、自律運転、ビデオストリームにおけるオブジェクトセグメンテーション、ビデオ処理および他の分類タスクなど、様々な技術において使用される。
【0006】
[0006] 現代の深層学習ベースのビデオ処理方法またはモデルは、経時的に一貫性のない(inconsistent)出力を生成し得る。いくつかの場合には、非一貫性(inconsistency)が、ディスプレイにおけるちらつきまたは他の不整合の形態で観測され得る。時間的に一貫性のない出力(たとえば、ちらつき)は、ユーザのエクスペリエンスおよび楽しみ、ならびにシステム安定性および性能を劣化させ得る。
【発明の概要】
【0007】
[0007] 本開示の一態様では、ビデオ(video)を処理するための方法が提供される。本方法は、人工ニューラルネットワーク(ANN:artificial neural network)の第1の層(first layer)における入力(input)としてビデオを受信することを含む。本方法は、第1のラベル(first label)を生成するためにビデオの第1のフレーム(first frame)を処理することをも含む。さらに、本方法は、第1のラベルに基づいて人工ニューラルネットワークを更新することを含む。人工ニューラルネットワークの更新は、ビデオの第2のフレーム(second frame)をコンカレントに処理する(concurrently process)間に実施される。
【0008】
[0008] 本開示の別の態様では、ビデオを処理するための装置(apparatus)が提供される。本装置は、メモリ(memory)と、メモリに結合された1つまたは複数のプロセッサ(processor)とを含む。(1つまたは複数の)プロセッサは、人工ニューラルネットワーク(ANN)の第1の層における入力としてビデオを受信するように構成される。(1つまたは複数の)プロセッサは、第1のラベルを生成するためにビデオの第1のフレームを処理するようにも構成される。さらに、(1つまたは複数の)プロセッサは、第1のラベルに基づいて人工ニューラルネットワークを更新するように構成される。人工ニューラルネットワークの更新は、ビデオの第2のフレームをコンカレントに処理する間に実施される。
【0009】
[0009] 本開示の一態様では、ビデオを処理するための装置が提供される。本装置は、人工ニューラルネットワークの第1の層における入力としてビデオを受信するための手段を含む。本装置は、第1のラベルを生成するためにビデオの第1のフレームを処理するための手段をも含む。さらに、本装置は、第1のラベルに基づいて人工ニューラルネットワークを更新するための手段を含む。人工ニューラルネットワークの更新は、ビデオの第2のフレームをコンカレントに処理する間に実施される。
【0010】
[0010] 本開示のさらなる態様では、非一時的コンピュータ可読媒体(non-transitory computer readable medium)が提供される。本コンピュータ可読媒体は、ビデオを処理するためのプログラムコード(program code)をその上に符号化している。プログラムコードは、プロセッサによって実行され、人工ニューラルネットワークの第1の層における入力としてビデオを受信するためのコードを含む。プログラムコードは、第1のラベルを生成するためにビデオの第1のフレームを処理するためのコードをも含む。さらに、プログラムコードは、第1のラベルに基づいて人工ニューラルネットワークを更新するためのコードを含む。人工ニューラルネットワークの更新は、ビデオの第2のフレームをコンカレントに処理する間に実施される。
【0011】
[0011] 本開示の一態様では、ビデオを処理するための方法が提供される。本方法は、第1の人工ニューラルネットワーク(first artificial neural network)および第2の人工ニューラルネットワーク(second artificial neural network)の第1の層における入力としてビデオを受信することを含む。第1の人工ニューラルネットワークは、第2の人工ニューラルネットワークよりも少数のチャネル(channel)を有する。本方法は、第1のラベルを生成するために第1の人工ニューラルネットワークを介してビデオの第1のフレームを処理することをも含む。第1の人工ニューラルネットワークは、ビデオの第1のフレームから抽出された中間特徴(intermediate feature)を第2の人工ニューラルネットワークに供給する。さらに、本方法は、ビデオの第1のフレームを中間特徴と第1のフレームとに基づいて第2のラベル(second label)を生成するために第2の人工ニューラルネットワークを介して、処理することを含む。さらに、本方法は、第2の人工ニューラルネットワークがビデオの第2のフレームをコンカレントに処理する間、第1のラベルに基づいて第1の人工ニューラルネットワークを更新することを含む。
【0012】
[0012] 本開示の一態様では、ビデオを処理するための装置が提供される。本装置は、メモリと、メモリに結合された1つまたは複数のプロセッサとを含む。(1つまたは複数の)プロセッサは、第1の人工ニューラルネットワークおよび第2の人工ニューラルネットワークの第1の層における入力としてビデオを受信するように構成される。第1の人工ニューラルネットワークは、第2の人工ニューラルネットワークよりも少数のチャネルを有する。(1つまたは複数の)プロセッサは、第1のラベルを生成するために第1の人工ニューラルネットワークを介してビデオの第1のフレームを処理するようにも構成される。第1の人工ニューラルネットワークは、ビデオの第1のフレームから抽出された中間特徴を第2の人工ニューラルネットワークに供給する。さらに、(1つまたは複数の)プロセッサは、ビデオの第1のフレームを、中間特徴と第1のフレームとに基づいて第2のラベルを生成するために第2の人工ニューラルネットワークを介して、処理するように構成される。さらに、(1つまたは複数の)プロセッサは、第2の人工ニューラルネットワークがビデオの第2のフレームをコンカレントに処理する間、第1のラベルに基づいて第1の人工ニューラルネットワークを更新するように構成される。
【0013】
[0013] 本開示の一態様では、ビデオを処理するための装置が提供される。本装置は、第1の人工ニューラルネットワークおよび第2の人工ニューラルネットワークの第1の層における入力としてビデオを受信するための手段を含む。第1の人工ニューラルネットワークは、第2の人工ニューラルネットワークよりも少数のチャネルを有する。本装置は、第1のラベルを生成するために第1の人工ニューラルネットワークを介してビデオの第1のフレームを処理するための手段をも含む。第1の人工ニューラルネットワークは、ビデオの第1のフレームから抽出された中間特徴を第2の人工ニューラルネットワークに供給する。さらに、本装置は、ビデオの第1のフレームを、中間特徴と第1のフレームとに基づいて第2のラベルを生成するために第2の人工ニューラルネットワークを介して、処理するための手段を含む。さらに、本装置は、第2の人工ニューラルネットワークがビデオの第2のフレームをコンカレントに処理する間、第1のラベルに基づいて第1の人工ニューラルネットワークを更新するための手段を含む。
【0014】
[0014] 本開示の一態様では、非一時的コンピュータ可読媒体が提供される。本コンピュータ可読媒体は、ビデオを処理するためのプログラムコードをその上に符号化している。プログラムコードは、プロセッサによって実行され、第1の人工ニューラルネットワークおよび第2の人工ニューラルネットワークの第1の層における入力としてビデオを受信するためのコードを含む。第1の人工ニューラルネットワークは、第2の人工ニューラルネットワークよりも少数のチャネルを有する。プログラムコードは、第1のラベルを生成するために第1の人工ニューラルネットワークを介してビデオの第1のフレームを処理するためのコードをも含む。第1の人工ニューラルネットワークは、ビデオの第1のフレームから抽出された中間特徴を第2の人工ニューラルネットワークに供給する。さらに、プログラムコードは、ビデオの第1のフレームを、中間特徴と第1のフレームとに基づいて第2のラベルを生成するために第2の人工ニューラルネットワークを介して、処理するためのコードを含む。さらに、プログラムコードは、第2の人工ニューラルネットワークがビデオの第2のフレームをコンカレントに処理する間、第1のラベルに基づいて第1の人工ニューラルネットワークを更新するためのコードを含む。
【0015】
[0015] 本開示の追加の特徴および利点が、以下で説明される。本開示は、本開示の同じ目的を実行するための他の構造を修正または設計するための基礎として容易に利用され得ることを、当業者は諒解されたい。また、そのような等価な構成は、添付の特許請求の範囲に記載の本開示の教示から逸脱しないことを、当業者は了解されたい。さらなる目的および利点とともに、本開示の編成と動作の方法の両方に関して、本開示を特徴づけると考えられる新規の特徴は、添付の図に関連して以下の説明を検討するとより良く理解されよう。ただし、図の各々は、例示および説明のみの目的で提供されたものであり、本開示の限界を定めるものではないことを明確に理解されたい。
【0016】
[0016] 本開示の特徴、特性、および利点は、全体を通じて同様の参照符号が同様のものを指す図面とともに、以下に記載される発明を実施するための形態を読めばより明らかになろう。
【図面の簡単な説明】
【0017】
図1】[0017] 本開示のいくつかの態様による、汎用プロセッサを含むシステムオンチップ(SoC)を使用するニューラルネットワークの例示的な一実装形態を示す図。
図2A】[0018] 本開示の態様による、ニューラルネットワークを示す図。
図2B】本開示の態様による、ニューラルネットワークを示す図。
図2C】本開示の態様による、ニューラルネットワークを示す図。
図2D】本開示の態様による、例示的な深層畳み込みネットワーク(DCN:deep convolutional neural network)を示す図。
図3】[0019] 本開示の態様による、例示的な深層畳み込みネットワーク(DCN)を示すブロック図。
図4】[0020] 人工知能(AI)機能をモジュール化し得る例示的なソフトウェアアーキテクチャを示すブロック図。
図5】[0021] 本開示の態様による、ビデオを処理するための例示的なアーキテクチャを示すブロック図。
図6】[0022] 本開示の態様による、ビデオを処理するための例示的なアーキテクチャを示すブロック図。
図7】[0023] 本開示の態様による、ビデオを処理するための例示的なアーキテクチャを示すブロック図。
図8】[0024] 本開示の態様による、ビデオを処理するための例示的なアーキテクチャを示すより詳細な図。
図9】[0025] 本開示の態様による、ビデオを処理するための方法を示す流れ図。
図10】[0026] 本開示の態様による、ビデオを処理するための方法を示す流れ図。
【発明を実施するための形態】
【0018】
[0027] 添付の図面に関して以下に記載される発明を実施するための形態は、様々な構成を説明するものであり、説明される概念が実施され得る構成のみを表すものではない。発明を実施するための形態は、様々な概念の完全な理解を提供するための具体的な詳細を含む。ただし、これらの概念はこれらの具体的な詳細なしに実施され得ることが当業者には明らかであろう。いくつかの事例では、そのような概念を不明瞭にしないように、よく知られている構造および構成要素がブロック図の形式で示される。
【0019】
[0028] これらの教示に基づいて、本開示の範囲は、本開示の他の態様とは無関係に実装されるにせよ、本開示の他の態様と組み合わせられるにせよ、本開示のいかなる態様をもカバーするものであることを、当業者は諒解されたい。たとえば、記載された態様をいくつ使用しても、装置が実装され得、または方法が実施され得る。さらに、本開示の範囲は、記載された本開示の様々な態様に加えてまたはそれらの態様以外に、他の構造、機能、または構造および機能を使用して実施されるそのような装置または方法をカバーするものとする。開示される本開示のいずれの態様も、請求項の1つまたは複数の要素によって実施され得ることを理解されたい。
【0020】
[0029] 「例示的」という単語は、「例、事例、または例示の働きをすること」を意味するために使用される。「例示的」として説明されるいかなる態様も、必ずしも他の態様よりも好ましいまたは有利であると解釈されるべきであるとは限らない。
【0021】
[0030] 特定の態様が説明されるが、これらの態様の多くの変形および置換は本開示の範囲内に入る。好適な態様のいくつかの利益および利点が説明されるが、本開示の範囲は特定の利益、使用、または目的に限定されるものではない。むしろ、本開示の態様は、様々な技術、システム構成、ネットワーク、およびプロトコルに広く適用可能であるものとし、それらのいくつかが、例として、図および好適な態様についての以下の説明において示される。発明を実施するための形態および図面は、本開示を限定するものではなく説明するものにすぎず、本開示の範囲は添付の特許請求の範囲およびそれの均等物によって定義される。
【0022】
[0031] ニューラルネットワークは、複雑な問題を解決するために使用され得るが、解を作り出すために実施され得るネットワークサイズおよび計算の数が多量であり得るので、ネットワークがタスクを完了するための時間が長くなり得る。さらに、これらのタスクが、限られた計算能力を有し得るモバイルデバイス上で実施され得るので、深層ニューラルネットワークの計算コストが問題になり得る。
【0023】
[0032] 従来の深層学習ベースのビデオ処理方法またはモデルは、経時的に一貫性のない出力を生成し得る。いくつかの場合には、非一貫性が、ディスプレイにおけるちらつきまたは他の不整合の形態で観測され得る。時間的に一貫性のない出力(たとえば、ちらつき)は、ユーザエクスペリエンスおよび楽しみ、ならびにシステム安定性を劣化させ得る。
【0024】
[0033] 時間的一貫性のない出力(temporal inconsistent output)(たとえば、予測)についての1つの理由は、ニューラルネットワークが、たとえば、出力が約0.5であるとき、不確実な予測を提供し得ることである。そのような場合、ニューラルネットワークは、任意の様式で予測を作り出し得る。したがって、(より正確にセグメント化されたフレーム間にある)ビデオストリーム中のいくつかのフレームについてセグメンテーション正確さ(segmentation accuracy)が著しく低下し得る。したがって、ニューラルネットワークによって処理される同様に見える画像領域が異なる予測を生じ得る。その上、セグメンテーション正確さの減少が、性能に悪影響を及ぼし得る。
【0025】
[0034] この問題点に対処するために、本開示の態様は、セグメンテーションモデルのオンライン(たとえば、テスト時間における)適応を対象とする。ビデオを処理するためのセグメンテーションネットワーク(segmentation network)が、ビデオを処理する間に更新され得る。いくつかの態様では、セグメンテーションネットワークがビデオを処理し続ける間、ネットワーク更新を行うために、セグメンテーションネットワークとともに補助ネットワークが組み込まれ得る。
【0026】
[0035] 図1は、人工ニューラルネットワーク(たとえば、ニューラルエンドツーエンドネットワーク)を使用するビデオ処理のために構成された中央処理ユニット(CPU)102またはマルチコアCPUを含み得る、システムオンチップ(SoC)100の例示的な一実装形態を示す。変数(たとえば、ニューラル信号およびシナプス荷重)、計算デバイスに関連するシステムパラメータ(たとえば、重み(weight)をもつニューラルネットワーク)、遅延、周波数ビン情報、およびタスク情報が、ニューラル処理ユニット(NPU)108に関連するメモリブロックに記憶されるか、CPU102に関連するメモリブロックに記憶されるか、グラフィックス処理ユニット(GPU)104に関連するメモリブロックに記憶されるか、デジタル信号プロセッサ(DSP)106に関連するメモリブロックに記憶されるか、メモリブロック118に記憶され得るか、または複数のブロックにわたって分散され得る。CPU102において実行される命令が、CPU102に関連するプログラムメモリからロードされ得るか、またはメモリブロック118からロードされ得る。
【0027】
[0036] SoC100はまた、GPU104、DSP106など、特定の機能に適合された追加の処理ブロックと、第5世代(5G)接続性、第4世代ロングタームエボリューション(4G LTE(登録商標))接続性、Wi-Fi(登録商標)接続性、USB接続性、Bluetooth(登録商標)接続性などを含み得る接続性ブロック110と、たとえば、ジェスチャーを検出および認識し得るマルチメディアプロセッサ112とを含み得る。一実装形態では、NPU108は、CPU102、DSP106、および/またはGPU104において実装される。SoC100はまた、センサープロセッサ114、画像信号プロセッサ(ISP)116、および/または全地球測位システムを含み得るナビゲーションモジュール120を含み得る。
【0028】
[0037] SoC100はARM命令セットに基づき得る。本開示の一態様では、汎用プロセッサ102にロードされる命令は、人工ニューラルネットワーク(ANN)の第1の層における入力としてビデオを受信するためのコードを含み得る。汎用プロセッサ102は、第1のラベルを生成するためにビデオの第1のフレームを処理するためのコードをも含み得る。汎用プロセッサ102は、第1のラベルに基づいて人工ニューラルネットワークを更新するためのコードをさらに含み得る。更新は、ビデオの第2のフレームをコンカレントに処理する間に実施される。
【0029】
[0038] 本開示の一態様では、汎用プロセッサ102にロードされる命令は、第1の人工ニューラルネットワーク(ANN)および第2の人工ニューラルネットワークの第1の層における入力としてビデオを受信するためのコードを含み得る。第1の人工ニューラルネットワークは、第2の人工ニューラルネットワークよりも少数のチャネルを有する。汎用プロセッサ102は、第1のラベルを生成するために第1の人工ニューラルを介してビデオの第1のフレームを処理するためのコードをも含み得る。第1の人工ニューラルネットワークは、ビデオの第1のフレームから抽出された中間特徴を第2の人工ニューラルネットワークに供給する。汎用プロセッサ102は、ビデオの第1のフレームを、中間特徴と第1のフレームとに基づいて第2のラベルを生成するために第2の人工ニューラルネットワークを介して、処理するためのコードをさらに含み得る。汎用プロセッサ102は、第2の人工ニューラルネットワークがビデオの第2のフレームをコンカレントに処理する間、第1のラベルに基づいて第1の人工ニューラルネットワークを更新するためのコードをさらに含み得る。
【0030】
[0039] 深層学習アーキテクチャは、各層において連続的により高い抽象レベルで入力を表現するように学習し、それにより、入力データの有用な特徴表現を蓄積することによって、オブジェクト認識タスクを実施し得る。このようにして、深層学習は、旧来の機械学習の主要なボトルネックに対処する。深層学習の出現より前に、オブジェクト認識問題に対する機械学習手法は、場合によっては浅い分類器(shallow classifier)と組み合わせて、人的に設計された特徴に大きく依拠していることがある。浅い分類器は、たとえば、入力がどのクラスに属するかを予測するために、特徴ベクトル成分の重み付き和がしきい値と比較され得る2クラス線形分類器であり得る。人的に設計された特徴は、領域の専門知識をもつ技術者によって特定の問題領域に適合されたテンプレートまたはカーネルであり得る。対照的に、深層学習アーキテクチャは、人間の技術者が設計し得るものと同様である特徴を表現するように学習するが、トレーニングを通してそれを行い得る。さらに、深層ネットワークは、人間が考慮していないことがある新しいタイプの特徴を表現し、認識するように学習し得る。
【0031】
[0040] 深層学習アーキテクチャは特徴の階層を学習し得る。たとえば、視覚データが提示された場合、第1の層は、エッジなど、入力ストリーム中の比較的単純な特徴を認識するように学習し得る。別の例では、聴覚データが提示された場合、第1の層は、特定の周波数におけるスペクトル電力を認識するように学習し得る。第1の層の出力を入力として取る第2の層は、視覚データの場合の単純な形状、または聴覚データの場合の音の組合せなど、特徴の組合せを認識するように学習し得る。たとえば、上位層は、視覚データ中の複雑な形状、または聴覚データ中の単語を表現するように学習し得る。さらに上位の層は、共通の視覚オブジェクトまたは発話フレーズを認識するように学習し得る。
【0032】
[0041] 深層学習アーキテクチャは、自然階層構造を有する問題に適用されたとき、特にうまく機能し得る。たとえば、原動機付き車両の分類は、ホイール、フロントガラス、および他の特徴を認識するための第1の学習から恩恵を受け得る。これらの特徴は、車、トラック、および飛行機を認識するために、異なる方法で、上位層において組み合わせられ得る。
【0033】
[0042] ニューラルネットワークは、様々な結合性パターンを用いて設計され得る。フィードフォワードネットワークでは、情報が下位層から上位層に受け渡され、所与の層における各ニューロンは、上位層におけるニューロンに通信する。上記で説明されたように、フィードフォワードネットワークの連続する層において、階層表現が蓄積され得る。ニューラルネットワークはまた、リカレントまたは(トップダウンとも呼ばれる)フィードバック結合を有し得る。リカレント結合では、所与の層におけるニューロンからの出力は、同じ層における別のニューロンに通信され得る。リカレントアーキテクチャは、ニューラルネットワークに順次配信される入力データチャンクのうちの2つ以上にわたるパターンを認識するのに役立ち得る。所与の層におけるニューロンから下位層におけるニューロンへの結合は、フィードバック(またはトップダウン)結合と呼ばれる。高レベルの概念の認識が、入力の特定の低レベルの特徴を弁別することを助け得るとき、多くのフィードバック結合をもつネットワークが役立ち得る。
【0034】
[0043] ニューラルネットワークの層間の結合は全結合または局所結合であり得る。図2Aは、全結合ニューラルネットワーク202の一例を示す。全結合ニューラルネットワーク202では、第1の層におけるニューロンは、第2の層における各ニューロンが第1の層におけるあらゆるニューロンから入力を受信するように、それの出力を第2の層におけるあらゆるニューロンに通信し得る。図2Bは、局所結合ニューラルネットワーク204の一例を示す。局所結合ニューラルネットワーク204では、第1の層におけるニューロンは、第2の層における限られた数のニューロンに結合され得る。より一般的には、局所結合ニューラルネットワーク204の局所結合層は、層における各ニューロンが同じまたは同様の結合性パターンを有するように構成されるが、異なる値を有し得る結合強度で構成され得る(たとえば、210、212、214、および216)。局所結合の結合性パターンは、所与の領域中の上位層ニューロンが、ネットワークへの総入力のうちの制限された部分のプロパティにトレーニングを通して調節された入力を受信し得るので、上位層において空間的に別個の受容野を生じ得る。
【0035】
[0044] 局所結合ニューラルネットワークの一例は、畳み込みニューラルネットワークである。図2Cは、畳み込みニューラルネットワーク206の一例を示す。畳み込みニューラルネットワーク206は、第2の層における各ニューロンのための入力に関連する結合強度が共有されるように構成され得る(たとえば、208)。畳み込みニューラルネットワークは、入力の空間ロケーションが有意味である問題に好適であり得る。
【0036】
[0045] 1つのタイプの畳み込みニューラルネットワークは、深層畳み込みネットワーク(DCN)である。図2Dは、車載カメラなどの画像キャプチャデバイス230から入力された画像226から視覚特徴を認識するように設計されたDCN200の詳細な例を示す。本例のDCN200は、交通標識と、交通標識上で与えられた数とを識別するようにトレーニングされ得る。もちろん、DCN200は、車線マーキングを識別すること、または交通信号を識別することなど、他のタスクのためにトレーニングされ得る。
【0037】
[0046] DCN200は、教師あり学習を用いてトレーニングされ得る。トレーニング中に、DCN200は、速度制限標識の画像226など、画像を提示され得、次いで、出力222を作り出すために、フォワードパスが計算され得る。DCN200は、特徴抽出セクションと分類セクションとを含み得る。画像226を受信すると、畳み込み層232が、特徴マップ218の第1のセットを生成するために、畳み込みカーネル(図示せず)を画像226に適用し得る。一例として、畳み込み層232のための畳み込みカーネルは、28×28特徴マップを生成する5×5カーネルであり得る。本例では、4つの異なる特徴マップが、特徴マップ218の第1のセットにおいて生成されるので、4つの異なる畳み込みカーネルが、畳み込み層232において画像226に適用された。畳み込みカーネルは、フィルタまたは畳み込みフィルタと呼ばれることもある。
【0038】
[0047] 特徴マップ218の第1のセットは、特徴マップ220の第2のセットを生成するために、最大プーリング層(図示せず)によってサブサンプリングされ得る。最大プーリング層は、特徴マップ218の第1のセットのサイズを低減する。すなわち、14×14などの特徴マップ220の第2のセットのサイズが、28×28などの特徴マップ218の第1のセットのサイズよりも小さい。低減されたサイズは、メモリ消費を低減しながら、後続の層に同様の情報を提供する。特徴マップ220の第2のセットは、特徴マップの1つまたは複数の後続のセット(図示せず)を生成するために、1つまたは複数の後続の畳み込み層(図示せず)を介して、さらに畳み込まれ得る。
【0039】
[0048] 図2Dの例では、特徴マップ220の第2のセットは、第1の特徴ベクトル224を生成するために畳み込まれる。さらに、第1の特徴ベクトル224は、第2の特徴ベクトル228を生成するために、さらに畳み込まれる。第2の特徴ベクトル228の各特徴は、「標識」、「60」、および「100」など、画像226の可能な特徴に対応する数を含み得る。ソフトマックス関数(図示せず)が、第2の特徴ベクトル228中の数を確率にコンバートし得る。したがって、DCN200の出力222は、画像226が1つまたは複数の特徴を含む確率である。
【0040】
[0049] 本例では、「標識」および「60」についての出力222における確率は、「30」、「40」、「50」、「70」、「80」、「90」、および「100」など、出力222の他のものの確率よりも高い。トレーニングの前に、DCN200によって作り出される出力222は、不正確である可能性がある。したがって、誤差が、出力222とターゲット出力との間で算定され得る。ターゲット出力は、画像226(たとえば、「標識」および「60」)のグランドトゥルースである。次いで、DCN200の重みは、DCN200の出力222がターゲット出力とより密接に整合されるように調整され得る。
【0041】
[0050] 重みを調整するために、学習アルゴリズムは、重みのための勾配ベクトルを計算し得る。勾配は、重みが調整された場合に、誤差が増加または減少する量を示し得る。最上層において、勾配は、最後から2番目の層におけるアクティブ化されたニューロンと出力層におけるニューロンとを結合する重みの値に直接対応し得る。下位層では、勾配は、重みの値と、上位層の計算された誤差勾配(error gradient)とに依存し得る。次いで、重みは、誤差を低減するために調整され得る。重みを調整するこの様式は、それがニューラルネットワークを通して「バックワードパス(backward pass)」を伴うので、「バックプロパゲーション(back propagation)」と呼ばれることがある。
【0042】
[0051] 実際には、重みの誤差勾配(error gradient of weight)は、算定された勾配が真の誤差勾配を近似するように、少数の例にわたって算定され得る。この近似方法は、確率的勾配降下(stochastic gradient descent)と呼ばれることがある。システム全体の達成可能な誤差レートが減少しなくなるまで、または誤差レートがターゲットレベルに達するまで、確率的勾配降下が繰り返され得る。学習の後に、DCNは新しい画像を提示され得、ネットワークを通したフォワードパスは、DCNの推論または予測と見なされ得る出力222をもたらし得る。
【0043】
[0052] 深層信念ネットワーク(DBN:deep belief network)は、隠れノードの複数の層を備える確率モデルである。DBNは、トレーニングデータセットの階層表現を抽出するために使用され得る。DBNは、制限ボルツマンマシン(RBM:Restricted Boltzmann Machine)の層を積層することによって取得され得る。RBMは、入力のセットにわたる確率分布を学習することができる人工ニューラルネットワークのタイプである。RBMは、各入力がそれにカテゴリー分類されるべきクラスに関する情報の不在下で確率分布を学習することができるので、RBMは、教師なし学習においてしばしば使用される。ハイブリッド教師なしおよび教師ありパラダイムを使用して、DBNの下部RBMは、教師なし様式でトレーニングされ得、特徴抽出器として働き得、上部RBMは、(前の層からの入力とターゲットクラスとの同時分布上で)教師あり様式でトレーニングされ得、分類器として働き得る。
【0044】
[0053] 深層畳み込みネットワーク(DCN)は、追加のプーリング層および正規化層で構成された、畳み込みネットワークのネットワークである。DCNは、多くのタスクに関して最先端の性能を達成している。DCNは、入力と出力ターゲットの両方が、多くの標本について知られており、勾配降下方法の使用によってネットワークの重みを変更するために使用される、教師あり学習を使用してトレーニングされ得る。
【0045】
[0054] DCNは、フィードフォワードネットワークであり得る。さらに、上記で説明されたように、DCNの第1の層におけるニューロンから次の上位層におけるニューロンのグループへの結合は、第1の層におけるニューロンにわたって共有される。DCNのフィードフォワードおよび共有結合は、高速処理のために活用され得る。DCNの計算負荷(computational burden)は、たとえば、リカレントまたはフィードバック結合を備える同様のサイズのニューラルネットワークのそれよりもはるかに少ないことがある。
【0046】
[0055] 畳み込みネットワークの各層の処理は、空間的に不変のテンプレートまたは基底投射と見なされ得る。入力が、カラー画像の赤色、緑色、および青色チャネルなど、複数のチャネルに最初に分解された場合、その入力に関してトレーニングされた畳み込みネットワークは、画像の軸に沿った2つの空間次元と、色情報をキャプチャする第3の次元とをもつ、3次元であると見なされ得る。畳み込み結合の出力は、後続の層において特徴マップを形成すると考えられ、特徴マップ(たとえば、220)の各要素が、前の層(たとえば、特徴マップ218)における様々なニューロンから、および複数のチャネルの各々から入力を受信し得る。特徴マップにおける値は、整流(rectification)、max(0,x)など、非線形性を用いてさらに処理され得る。隣接するニューロンからの値は、さらにプールされ得、これは、ダウンサンプリングに対応し、さらなる局所不変性と次元削減とを与え得る。白色化に対応する正規化はまた、特徴マップにおけるニューロン間のラテラル抑制によって適用され得る。
【0047】
[0056] 深層学習アーキテクチャの性能は、より多くのラベリングされたデータポイントが利用可能となるにつれて、または計算能力が増加するにつれて、向上し得る。現代の深層ニューラルネットワークは、ほんの15年前に一般的な研究者にとって利用可能であったものより数千倍も大きいコンピューティングリソースを用いて、ルーチン的にトレーニングされる。新しいアーキテクチャおよびトレーニングパラダイムが、深層学習の性能をさらに高め得る。整流された線形ユニット(rectified linear unit)は、勾配消失(vanishing gradients)として知られるトレーニング問題を低減し得る。新しいトレーニング技法は、過学習(over-fitting)を低減し、したがって、より大きいモデルがより良い汎化を達成することを可能にし得る。カプセル化技法は、所与の受容野においてデータを抽出し、全体的性能をさらに高め得る。
【0048】
[0057] 図3は、深層畳み込みネットワーク350を示すブロック図である。深層畳み込みネットワーク350は、結合性および重み共有に基づく、複数の異なるタイプの層を含み得る。図3に示されているように、深層畳み込みネットワーク350は、畳み込みブロック354A、354Bを含む。畳み込みブロック354A、354Bの各々は、畳み込み層(CONV)356と、正規化層(LNorm)358と、最大プーリング層(MAX POOL)360とで構成され得る。
【0049】
[0058] 畳み込み層356は、1つまたは複数の畳み込みフィルタを含み得、これは、特徴マップを生成するために入力データに適用され得る。畳み込みブロック354A、354Bのうちの2つのみが示されているが、本開示はそのように限定しておらず、代わりに、設計選好に従って、任意の数の畳み込みブロック354A、354Bが深層畳み込みネットワーク350中に含まれ得る。正規化層358は、畳み込みフィルタの出力を正規化し得る。たとえば、正規化層358は、白色化またはラテラル抑制を行い得る。最大プーリング層360は、局所不変性および次元削減のために、空間にわたってダウンサンプリングアグリゲーションを行い得る。
【0050】
[0059] たとえば、深層畳み込みネットワークの並列フィルタバンクは、高性能および低電力消費を達成するために、SoC100のCPU102またはGPU104にロードされ得る。代替実施形態では、並列フィルタバンクは、SoC100のDSP106またはISP116にロードされ得る。さらに、深層畳み込みネットワーク350は、それぞれ、センサーおよびナビゲーションに専用の、センサープロセッサ114およびナビゲーションモジュール120など、SoC100上に存在し得る他の処理ブロックにアクセスし得る。
【0051】
[0060] 深層畳み込みネットワーク350はまた、1つまたは複数の全結合層362(FC1およびFC2)を含み得る。深層畳み込みネットワーク350は、ロジスティック回帰(LR)層364をさらに含み得る。深層畳み込みネットワーク350の各層356、358、360、362、364の間には、更新されるべき重み(図示せず)がある。層(たとえば、356、358、360、362、364)の各々の出力は、畳み込みブロック354Aのうちの第1のものにおいて供給された入力データ352(たとえば、画像、オーディオ、ビデオ、センサーデータおよび/または他の入力データ)から階層特徴表現を学習するために、深層畳み込みネットワーク350中の層(たとえば、356、358、360、362、364)のうちの後続の層の入力として働き得る。深層畳み込みネットワーク350の出力は、入力データ352についての分類スコア366である。分類スコア366は、確率のセットであり得、ここで、各確率は、入力データが特徴のセットからの特徴を含む確率である。
【0052】
[0061] 図4は、人工知能(AI)機能をモジュール化し得る例示的なソフトウェアアーキテクチャ400を示すブロック図である。そのアーキテクチャを使用して、システムオンチップ(SoC)420の様々な処理ブロック(たとえば、CPU422、DSP424、GPU426および/またはNPU428)に、本開示の態様による、AIアプリケーション402のためのトレーニング後量子化について開示される適応丸め(adaptive rounding)をサポートすることを行わせ得るアプリケーションが設計され得る。
【0053】
[0062] AIアプリケーション402は、たとえば、デバイスが現在動作するロケーションを示すシーンの検出および認識を与え得る、ユーザ空間404において定義されている機能を呼び出すように構成され得る。AIアプリケーション402は、たとえば、認識されたシーンがオフィス、講堂、レストラン、または湖などの屋外環境であるかどうかに応じて別様に、マイクロフォンおよびカメラを構成し得る。AIアプリケーション402は、AI機能アプリケーションプログラミングインターフェース(API)406において定義されているライブラリに関連するコンパイルされたプログラムコードへの要求を行い得る。この要求は、たとえば、ビデオおよび測位データに基づいて推論応答を提供するように構成された深層ニューラルネットワークの出力に最終的に依拠し得る。
【0054】
[0063] さらに、ランタイムフレームワークのコンパイルされたコードであり得るランタイムエンジン408が、AIアプリケーション402にとってアクセス可能であり得る。AIアプリケーション402は、たとえば、ランタイムエンジンに、特定の時間間隔における、またはアプリケーションのユーザインターフェースによって検出されたイベントによってトリガされた、推論を要求させ得る。推論応答を提供させられたとき、ランタイムエンジンは、今度は、SoC420上で実行している、カーネル412など、オペレーティングシステム(OS)空間中のオペレーティングシステムに信号を送り得る。オペレーティングシステムは、今度は、CPU422、DSP424、GPU426、NPU428、またはそれらの何らかの組合せ上で、量子化の継続的緩和を実施させ得る。CPU422は、オペレーティングシステムによって直接アクセスされ得、他の処理ブロックは、それぞれ、DSP424、GPU426、またはNPU428のための、ドライバ414、416、または418など、ドライバを通してアクセスされ得る。例示的な例では、深層ニューラルネットワークは、CPU422、DSP424、およびGPU426など、処理ブロックの組合せ上で実行するように構成され得るか、またはNPU428上で実行され得る。
【0055】
[0064] アプリケーション402(たとえば、AIアプリケーション)は、たとえば、デバイスが現在動作するロケーションを示すシーンの検出および認識を与え得る、ユーザ空間404において定義されている機能を呼び出すように構成され得る。アプリケーション402は、たとえば、認識されたシーンがオフィス、講堂、レストラン、または湖などの屋外環境であるかどうかに応じて別様に、マイクロフォンおよびカメラを構成し得る。アプリケーション402は、現在のシーンの推定を与えるために、SceneDetectアプリケーションプログラミングインターフェース(API)406において定義されているライブラリに関連するコンパイルされたプログラムコードへの要求を行い得る。この要求は、たとえば、ビデオおよび測位データに基づいてシーン推定を提供するように構成された差分ニューラルネットワーク(differential neural network)の出力に最終的に依拠し得る。
【0056】
[0065] さらに、ランタイムフレームワークのコンパイルされたコードであり得るランタイムエンジン408が、アプリケーション402にとってアクセス可能であり得る。アプリケーション402は、たとえば、ランタイムエンジンに、特定の時間間隔における、またはアプリケーションのユーザインターフェースによって検出されたイベントによってトリガされた、シーン推定を要求させ得る。シーンを推定させられたとき、ランタイムエンジンは、今度は、SoC420上で実行している、カーネル412など、オペレーティングシステム410に信号を送り得る。オペレーティングシステム410は、今度は、CPU422、DSP424、GPU426、NPU428、またはそれらの何らかの組合せ上で、計算を実施させ得る。CPU422は、オペレーティングシステムによって直接アクセスされ得、他の処理ブロックは、DSP424のための、GPU426のための、またはNPU428のためのドライバ414~418など、ドライバを通してアクセスされ得る。例示的な例では、差分ニューラルネットワークは、CPU422およびGPU426など、処理ブロックの組合せ上で実行するように構成され得るか、またはNPU428上で実行され得る。
【0057】
[0066] 本開示の態様は、敵対的関数近似(adversarial function approximation)を使用する深層ニューラルネットワークモデル移植(transplantation)を対象とする。
【0058】
[0067] 図5は、本開示の態様による、ビデオを処理するための例示的なアーキテクチャ500を示すブロック図である。図5に示されているように、セグメンテーションネットワーク502が、入力としてビデオ504を受信する。セグメンテーションネットワーク502は、たとえば、図3に示されている深層畳み込みネットワーク350など、畳み込みニューラルネットワークであり得る。ビデオ504は、フレーム(たとえば、raw t1、raw t2、raw t3、raw t4、raw t5、およびraw t6)において分割される。セグメンテーションネットワーク502は、連続的にビデオ504の各フレームを処理し、セグメント(たとえば、seg t1、seg t2、seg t3、seg t4、seg t5、およびseg t6)の形態の出力506を生成する。ビデオ504を処理する間、セグメンテーションネットワーク502はまた、更新され得る。図5に示されているように、各出力セグメントを生成した後に、セグメンテーションネットワーク502は、バックパス(たとえば、508a~508f)を介して更新される。
【0059】
[0068] 図6は、本開示の態様による、ビデオを処理するための例示的なアーキテクチャ600を示すブロック図である。図6に示されているように、セグメンテーションネットワーク604が、入力としてビデオ602を受信する。セグメンテーションネットワーク604は、図5のセグメンテーションネットワーク502と同様に動作するように構成され得る。セグメンテーションネットワーク604は、ビデオ602の各フレームを処理し、出力セグメント606を生成する。各出力セグメント606は、擬似ラベル608と出力ラベル612とを生成するために、argmax演算にかけられる。相互エントロピー(CE)を損失関数として適用して、負の対数尤度が、擬似ラベル608と出力ラベル612とに基づいて計算され得る。今度は、セグメンテーションネットワーク604は、CE損失を低減するためにバックプロパゲーション(BP)を介して更新され得る。いくつかの態様では、argmaxは、出力ラベル612を決定するために使用され得、たとえば、ソフトマックス尤度またはロジット関数を使用して計算される信頼性値によって補完され得る。その上、いくつかの態様では、信頼性値は、最良の推定または次善の推定ラベル比であり得る。
【0060】
[0069] 図7は、本開示の態様による、ビデオを処理するための例示的なアーキテクチャ700を示すブロック図である。図7を参照すると、例示的なアーキテクチャ700は、セグメンテーションネットワーク704と、補助ネットワーク(auxiliary network)706とを含む。補助ネットワーク706は、セグメンテーションネットワーク704のアーキテクチャと同様の全体的アーキテクチャを有し得る。しかしながら、補助ネットワーク706は、セグメンテーションネットワーク704よりも小さい(たとえば、1/10のサイズ)。たとえば、いくつかの態様では、補助ネットワーク706は、セグメンテーションネットワーク704よりも少数のチャネルで構成され得(たとえば、補助ネットワーク706は18個のチャネルを有し得、セグメンテーションネットワーク704は48個のチャネルを有し得)、またはセグメンテーションネットワーク704よりも低い解像度(lower resolution)において動作し得る。一例では、補助ネットワーク706は、32ビットCPU(たとえば、図1のCPU102)またはGPU(たとえば、図1のGPU104)上で動作し得、セグメンテーションネットワーク704は、8ビットDSP(たとえば、図1のDSP106)上で動作し得る。
【0061】
[0070] 動作中、セグメンテーションネットワーク704および補助ネットワーク706は、各々、入力としてビデオ702を受信する。セグメンテーションネットワーク704は、ビデオ702の各フレームを処理し、出力セグメント710を生成する。補助ネットワーク706は、ビデオ702の各フレームを処理し、セグメント708を生成する。
【0062】
[0071] さらに、補助ネットワーク706は、中間特徴をセグメンテーションネットワーク704に供給する。セグメンテーションネットワーク704は、出力セグメント710を計算するためにセグメンテーションネットワークの層中で生成された中間特徴と(「+」符号によって示されるように)アグリゲートされた中間特徴を処理する。各出力セグメント710は、擬似ラベル712を生成するためにargmax演算にかけられる。同様に、各セグメント708は、出力ラベル714を生成するためにargmax演算にかけられる。
【0063】
[0072] 擬似ラベル712および出力ラベル714は、相互エントロピー損失を計算することと、セグメンテーションネットワーク704がフォワードパスにおいてビデオ702を処理し続ける間、たとえば、バックプロパゲーションを介して、補助ネットワーク706を更新することとを行うために使用され得る。更新が、セグメンテーションネットワーク704ではなく、より小さい補助ネットワーク706上で行われるので、計算コストは、図6のセグメンテーションネットワーク604の計算コストに対して著しく低減され得る。
【0064】
[0073] 図8は、本開示の態様による、図7の例示的なアーキテクチャ700を示すより詳細な図800である。図8を参照すると、セグメンテーションネットワーク804および補助ネットワーク806が示されている。図8の例では、セグメンテーションネットワーク804および補助ネットワーク806は、同様のアーキテクチャを有し得る。たとえば、セグメンテーションネットワーク804および補助ネットワーク806は、オートエンコーダとして構成され得る。図7に関して上記で説明されたように、補助ネットワーク806は、セグメンテーションネットワーク804よりも小さくなり得る(たとえば、1/10のサイズ)。たとえば、いくつかの態様では、補助ネットワーク806は、より少数のチャネルで構成され得る(たとえば、補助ネットワーク806は18個のチャネルを有し得、セグメンテーションネットワーク804は48個のチャネルを有し得る)。さらに、いくつかの態様では、補助ネットワーク806は、セグメンテーションネットワーク804よりも低い解像度において動作し得る。たとえば、図8に示されているように、補助ネットワーク806およびセグメンテーションネットワーク804は、両方とも、入力としてビデオ802を受信する。しかしながら、セグメンテーションネットワーク804がビデオ802の各フレームを3回ダウンサンプリングする間、補助ネットワーク806は、セグメンテーションネットワーク804と比較してビデオの各フレームのより低い解像度を作り出すために、ビデオ802の各フレームを4回ダウンサンプリングする。
【0065】
[0074] ビデオ802のフレームをダウンサンプリングすると、セグメンテーションネットワーク804および補助ネットワーク806は、各々、それらのそれぞれのより低い解像度フレームを、特徴を抽出するために畳み込みフィルタの連続する層(たとえば、畳み込み符号化ブロック)を通して受け渡す。より低い解像度の特徴を抽出するために、さらなるダウンサンプリングが、それぞれ、セグメンテーションネットワーク804および補助ネットワーク806の遷移ブロック(たとえば、遷移1、遷移2および遷移3)を介して実施され得る。
【0066】
[0075] さらに、補助ネットワーク806は、中間特徴(たとえば、808、810)をセグメンテーションネットワーク804に供給し得る。中間特徴(たとえば、808、810)は、セグメンテーションネットワーク804の中間特徴と、(セグメンテーションネットワーク804中のより多数のチャネルを考慮するために)マッピングされ、組み合わせられるまたはアグリゲートされ得る。セグメンテーションネットワーク804および補助ネットワーク806は、各々、出力特徴のセット(たとえば、812、814)を作り出し、これは、アップサンプリングされ、連結され、デコーダ(816、818)に供給され得る。
【0067】
[0076] デコーダ816および818は、今度は、出力セグメント820および822を生成するために、出力特徴(たとえば、812、814)を処理する。出力セグメント820、822の各々は、ラベル824を生成するためにargmax演算にかけられる。
【0068】
[0077] さらに、補助ネットワーク806は、バックプロパゲーションを使用して更新され得る。特に、補助ネットワーク806は、セグメンテーションネットワーク804がビデオ802を処理し続けるとき、オンラインで(たとえば、テスト時間において)更新される。そうする際に、時間的非一貫性(temporal inconsistency)が低減され得る(たとえば、インターセクションオーバーユニオン(intersection over union)メトリックが増加され得る)。したがって、ビデオ802において観測されるちらつき効果が低減され得る。さらに、計算コストおよび処理時間が低減され得る。
【0069】
[0078] 図9は、本開示の態様による、ビデオを処理するための方法900を示す。図9に示されているように、ブロック902において、方法900は、人工ニューラルネットワーク(ANN)の第1の層におけるビデオ入力を受信する。第1の人工ニューラルネットワークは、図3の深層畳み込みネットワーク350など、畳み込みニューラルネットワークであり得る。図5を参照して説明されたように、セグメンテーションネットワーク502が、入力としてビデオ504を受信する。
【0070】
[0079] ブロック904において、方法900は、第1のラベルを生成するためにビデオの第1のフレームを処理する。図5を参照して説明されたように、セグメンテーションネットワーク502は、連続的にビデオ504の各フレームを処理し、セグメント(たとえば、seg t1)の形態の出力506を生成する。
【0071】
[0080] ブロック906において、方法900は、第1のラベルに基づいて人工ニューラルネットワークを更新し、更新することは、ビデオの第2のフレームをコンカレントに処理する間に実施される。たとえば、図5に示されているように、各出力セグメントを生成した後に、セグメンテーションネットワークは、バックパス(たとえば、508a~508f)を介して更新される。
【0072】
[0081] 図10は、本開示の態様による、ビデオを処理するための方法1000を示す。図10に示されているように、ブロック1002において、方法1000は、第1の人工ニューラルネットワーク(ANN)および第2の人工ニューラルネットワークの第1の層における入力としてビデオを受信する。第1の人工ニューラルネットワークは、第2の人工ニューラルネットワークよりも少数のチャネルを有する。たとえば、図7に示されているように、例示的なアーキテクチャ700は、セグメンテーションネットワーク704と、補助ネットワーク706とを含む。セグメンテーションネットワーク704および補助ネットワーク706は、各々、入力としてビデオ702を受信する。さらに、補助ネットワーク706は、セグメンテーションネットワーク704のアーキテクチャと同様のアーキテクチャを有し得る。たとえば、いくつかの態様では、補助ネットワーク706は、セグメンテーションネットワーク704よりも少数のチャネルで構成され得(たとえば、補助ネットワーク706は18個のチャネルを有し得、セグメンテーションネットワーク704は48個のチャネルを有し得)、またはセグメンテーションネットワーク704よりも低い解像度において動作し得る。
【0073】
[0082] ブロック1004において、方法1000は、第1のラベルを生成するために第1の人工ニューラルを介してビデオの第1のフレームを処理する。第1の人工ニューラルネットワークは、ビデオの第1のフレームから抽出された中間特徴を第2の人工ニューラルネットワークに供給する。たとえば、図7を参照しながら説明されたように、補助ネットワーク706は、ビデオの各フレームを処理し、セグメント708を生成する。補助ネットワーク706は、中間特徴をセグメンテーションネットワーク704に供給する。セグメンテーションネットワーク704は、中間特徴を処理し、これは、出力セグメント710を計算するためにアグリゲートされる。
【0074】
[0083] ブロック1006において、方法1000は、ビデオの第1のフレームを、中間特徴と第1のフレームとに基づいて第2のラベルを生成するために第2の人工ニューラルネットワークを介して、処理する。たとえば、セグメンテーションネットワーク704は、ビデオ702の各フレームを処理し、出力セグメント710を生成する。
【0075】
[0084] ブロック1008において、方法1000は、第2の人工ニューラルネットワークがビデオの第2のフレームをコンカレントに処理する間、第1のラベルに基づいて第1の人工ニューラルネットワークを更新する。図7を参照しながら説明されたように、擬似ラベル712は、セグメンテーションネットワーク704がフォワードパスにおいてビデオ702を処理し続ける間、たとえば、バックプロパゲーションを介して、補助ネットワーク706を更新するために使用され得る。
【0076】
[0085] 一態様では、受信手段、処理手段、および/または更新手段は、具陳された機能を実施するように構成された、CPU102、GPU104、CPU102に関連するDSP106プログラムメモリ、専用メモリブロック118、全結合層362、NPU428、および/またはルーティング接続処理ユニット216であり得る。別の構成では、上述の手段は、上述の手段によって具陳された機能を実施するように構成された任意のモジュールまたは任意の装置であり得る。
【0077】
[0086] 上記で説明された方法の様々な動作は、対応する機能を実施することが可能な任意の好適な手段によって実施され得る。それらの手段は、限定はしないが、回路、特定用途向け集積回路(ASIC)、またはプロセッサを含む、様々な(1つまたは複数の)ハードウェアおよび/またはソフトウェア構成要素および/またはモジュールを含み得る。概して、図に示されている動作がある場合、それらの動作は、同様の番号をもつ対応するカウンターパートのミーンズプラスファンクション構成要素を有し得る。
【0078】
[0087] 実装例が、以下の番号付けされた条項において提供される。
1. ビデオを処理するための方法であって、
人工ニューラルネットワーク(ANN)の第1の層における入力としてビデオを受信することと、
第1のラベルを生成するためにビデオの第1のフレームを処理することと、
第1のラベルに基づいて人工ニューラルネットワークを更新することと、更新することが、ビデオの第2のフレームをコンカレントに処理する間に実施される、
を備える、方法。
2. 人工ニューラルネットワークを更新するために、人工ニューラルネットワークのバックワードパスにおいて第1のラベルを適用することをさらに備える、条項1に記載の方法。
3. 第2のフレームに基づいて第2のラベルを生成することをさらに備え、コンカレント処理(concurrent processing)が、第1のラベルと第2のラベルとの間の時間的非一貫性を低減するために行われる、条項1から2のいずれかに記載の方法。
4. ビデオを処理するための方法であって、
第1の人工ニューラルネットワーク(ANN)および第2の人工ニューラルネットワークの第1の層における入力としてビデオを受信することと、第1の人工ニューラルネットワークが、第2の人工ニューラルネットワークよりも少数のチャネルを有する、
第1のラベルを生成するために第1の人工ニューラルネットワークを介してビデオの第1のフレームを処理することと、第1の人工ニューラルネットワークが、ビデオの第1のフレームから抽出された中間特徴を第2の人工ニューラルネットワークに供給する、
ビデオの第1のフレームを、中間特徴と第1のフレームとに基づいて第2のラベルを生成するために第2の人工ニューラルネットワークを介して、処理することと、
第2の人工ニューラルネットワークがビデオの第2のフレームをコンカレントに処理する間、第1のラベルに基づいて第1の人工ニューラルネットワークを更新することと
を備える、方法。
5. 第2のフレームに基づいて第2の人工ニューラルネットワークを介して第3のラベル(third label)を生成することをさらに備え、コンカレント処理は、第2のラベルと第3のラベルとの間の時間的非一貫性が低減されるように行われる、条項4に記載の方法。
6. 第1の人工ニューラルネットワークが、第2の人工ニューラルネットワークよりも低い解像度において動作する、条項4から5のいずれかに記載の方法。
7. ビデオを処理するための装置であって、
メモリと、
メモリに結合された少なくとも1つのプロセッサと
を備え、少なくとも1つのプロセッサは、
人工ニューラルネットワーク(ANN)の第1の層における入力としてビデオを受信することと、
第1のラベルを生成するためにビデオの第1のフレームを処理することと、
第1のラベルに基づいて人工ニューラルネットワークを更新することと、更新が、ビデオの第2のフレームをコンカレントに処理する間に実施される、
を行うように構成された、装置。
8. 少なくとも1つのプロセッサが、人工ニューラルネットワークを更新するために、人工ニューラルネットワークのバックワードパスにおいて第1のラベルを適用するようにさらに構成された、条項7に記載の装置。
9. 少なくとも1つのプロセッサが、第2のフレームに基づいて第2のラベルを生成するようにさらに構成され、コンカレント処理が、第1のラベルと第2のラベルとの間の時間的非一貫性を低減するために行われる、条項7から8のいずれかに記載の装置。
10. ビデオを処理するための装置であって、
メモリと、
メモリに結合された少なくとも1つのプロセッサと
を備え、少なくとも1つのプロセッサは、
第1の人工ニューラルネットワーク(ANN)および第2の人工ニューラルネットワークの第1の層における入力としてビデオを受信することと、第1の人工ニューラルネットワークが、第2の人工ニューラルネットワークよりも少数のチャネルを有する、
第1のラベルを生成するために第1の人工ニューラルネットワークを介してビデオの第1のフレームを処理することと、第1の人工ニューラルネットワークが、ビデオの第1のフレームから抽出された中間特徴を第2の人工ニューラルネットワークに供給する、
ビデオの第1のフレームを、中間特徴と第1のフレームとに基づいて第2のラベルを生成するために第2の人工ニューラルネットワークを介して、処理することと、
第2の人工ニューラルネットワークがビデオの第2のフレームをコンカレントに処理する間、第1のラベルに基づいて第1の人工ニューラルネットワークを更新することと
を行うように構成された、装置。
11. 少なくとも1つのプロセッサが、第2のフレームに基づいて第2の人工ニューラルネットワークを介して第3のラベルを生成するようにさらに構成され、コンカレント処理は、第2のラベルと第3のラベルとの間の時間的非一貫性が低減されるように行われる、条項10に記載の装置。
12. 第1の人工ニューラルネットワークが、第2の人工ニューラルネットワークよりも低い解像度において動作する、条項10に記載の装置。
13. ビデオを処理するための装置であって、
人工ニューラルネットワーク(ANN)の第1の層における入力としてビデオを受信するための手段と、
第1のラベルを生成するためにビデオの第1のフレームを処理するための手段と、
第1のラベルに基づいて人工ニューラルネットワークを更新するための手段と、更新することが、ビデオの第2のフレームをコンカレントに処理する間に実施される、
を備える、装置。
14. 人工ニューラルネットワークを更新するために、人工ニューラルネットワークのバックワードパスにおいて第1のラベルを適用するための手段をさらに備える、条項13に記載の装置。
15. 第2のフレームに基づいて第2のラベルを生成するための手段をさらに備え、コンカレント処理が、第1のラベルと第2のラベルとの間の時間的非一貫性を低減するために行われる、条項13から14のいずれかに記載の装置。
16. ビデオを処理するための装置であって、
第1の人工ニューラルネットワーク(ANN)および第2の人工ニューラルネットワークの第1の層における入力としてビデオを受信するための手段と、第1の人工ニューラルネットワークが、第2の人工ニューラルネットワークよりも少数のチャネルを有する、
第1のラベルを生成するために第1の人工ニューラルネットワークを介してビデオの第1のフレームを処理するための手段と、第1の人工ニューラルネットワークが、ビデオの第1のフレームから抽出された中間特徴を第2の人工ニューラルネットワークに供給する、
ビデオの第1のフレームを、中間特徴と第1のフレームとに基づいて第2のラベルを生成するために第2の人工ニューラルネットワークを介して、処理するための手段と、
第2の人工ニューラルネットワークがビデオの第2のフレームをコンカレントに処理する間、第1のラベルに基づいて第1の人工ニューラルネットワークを更新するための手段と
を備える、装置。
17. 第2のフレームに基づいて第2の人工ニューラルネットワークを介して第3のラベルを生成するための手段をさらに備え、コンカレント処理は、第2のラベルと第3のラベルとの間の時間的非一貫性が低減されるように行われる、条項16に記載の装置。
18. 第1の人工ニューラルネットワークが、第2の人工ニューラルネットワークよりも低い解像度において動作する、条項16から17のいずれかに記載の装置。
19. ビデオを処理するためのプログラムコードをその上に符号化した非一時的コンピュータ可読媒体であって、プログラムコードは、プロセッサによって実行され、
人工ニューラルネットワーク(ANN)の第1の層における入力としてビデオを受信するためのプログラムコードと、
第1のラベルを生成するためにビデオの第1のフレームを処理するためのプログラムコードと、
第1のラベルに基づいて人工ニューラルネットワークを更新するためのプログラムコードと、更新が、ビデオの第2のフレームをコンカレントに処理する間に実施される、
を備える、非一時的コンピュータ可読媒体。
20. 人工ニューラルネットワークを更新するために、人工ニューラルネットワークのバックワードパスにおいて第1のラベルを適用するためのプログラムコードをさらに備える、条項19に記載の非一時的コンピュータ可読媒体。
21. 第2のフレームに基づいて第2のラベルを生成するためのプログラムコードをさらに備え、コンカレント処理が、第1のラベルと第2のラベルとの間の時間的非一貫性を低減するために行われる、条項19から20のいずれかに記載の非一時的コンピュータ可読媒体。
22. ビデオを処理するためのプログラムコードをその上に符号化した非一時的コンピュータ可読媒体であって、プログラムコードは、プロセッサによって実行され、
第1の人工ニューラルネットワーク(ANN)および第2の人工ニューラルネットワークの第1の層における入力としてビデオを受信するためのプログラムコードと、第1の人工ニューラルネットワークが、第2の人工ニューラルネットワークよりも少数のチャネルを有する、
第1のラベルを生成するために第1の人工ニューラルネットワークを介してビデオの第1のフレームを処理するためのプログラムコードと、第1の人工ニューラルネットワークが、ビデオの第1のフレームから抽出された中間特徴を第2の人工ニューラルネットワークに供給する、
ビデオの第1のフレームを、中間特徴と第1のフレームとに基づいて第2のラベルを生成するために第2の人工ニューラルネットワークを介して、処理するためのプログラムコードと、
第2の人工ニューラルネットワークがビデオの第2のフレームをコンカレントに処理する間、第1のラベルに基づいて第1の人工ニューラルネットワークを更新するためのプログラムコードと
を備える、非一時的コンピュータ可読媒体。
23. 第2のフレームに基づいて第2の人工ニューラルネットワークを介して第3のラベルを生成するためのプログラムコードをさらに備え、コンカレント処理は、第2のラベルと第3のラベルとの間の時間的非一貫性が低減されるように行われる、条項22に記載の非一時的コンピュータ可読媒体装置。
24. 第1の人工ニューラルネットワークが、第2の人工ニューラルネットワークよりも低い解像度において動作する、条項22から23のいずれかに記載の非一時的コンピュータ可読媒体。
【0079】
[0088] 本明細書で使用される「決定すること(determining)」という用語は、多種多様なアクションを包含する。たとえば、「決定すること」は、算定すること(calculating)、計算すること(computing)、処理すること(processing)、導出すること(deriving)、調査すること(investigating)、ルックアップすること(たとえば、テーブル、データベースまたは別のデータ構造においてルックアップすること)、確認することなどを含み得る。さらに、「決定すること」は、受信すること(たとえば、情報を受信すること)、アクセスすること(たとえば、メモリ中のデータにアクセスすること)などを含み得る。さらに、「決定すること」は、解決すること、選択すること、選定すること、確立することなどを含み得る。
【0080】
[0089] 本明細書で使用される、項目のリスト「のうちの少なくとも1つ」を指す句は、単一のメンバーを含む、それらの項目の任意の組合せを指す。一例として、「a、b、またはcのうちの少なくとも1つ」は、a、b、c、a-b、a-c、b-c、およびa-b-cを包含するものとする。
【0081】
[0090] 本開示に関連して説明された様々な例示的な論理ブロック、モジュールおよび回路は、汎用プロセッサ、デジタル信号プロセッサ(DSP)、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ信号(FPGA)または他のプログラマブル論理デバイス(PLD)、個別ゲートまたはトランジスタ論理、個別ハードウェア構成要素、あるいは説明された機能を実施するように設計されたそれらの任意の組合せを用いて実装または実施され得る。汎用プロセッサはマイクロプロセッサであり得るが、代替として、プロセッサは、任意の市販のプロセッサ、コントローラ、マイクロコントローラ、または状態機械であり得る。プロセッサはまた、コンピューティングデバイスの組合せ、たとえば、DSPとマイクロプロセッサの組合せ、複数のマイクロプロセッサ、DSPコアと連携する1つまたは複数のマイクロプロセッサ、または任意の他のそのような構成として実装され得る。
【0082】
[0091] 本開示に関連して説明された方法またはアルゴリズムのステップは、ハードウェアで直接実施されるか、プロセッサによって実行されるソフトウェアモジュールで実施されるか、またはその2つの組合せで実施され得る。ソフトウェアモジュールは、当技術分野で知られている任意の形態の記憶媒体中に常駐し得る。使用され得る記憶媒体のいくつかの例は、ランダムアクセスメモリ(RAM)、読取り専用メモリ(ROM)、フラッシュメモリ、消去可能プログラマブル読取り専用メモリ(EPROM)、電気消去可能プログラマブル読取り専用メモリ(EEPROM(登録商標))、レジスタ、ハードディスク、リムーバブルディスク、CD-ROMなどを含む。ソフトウェアモジュールは、単一の命令、または多数の命令を備え得、いくつかの異なるコードセグメント上で、異なるプログラム間で、および複数の記憶媒体にわたって分散され得る。記憶媒体は、プロセッサがその記憶媒体から情報を読み取ることができ、その記憶媒体に情報を書き込むことができるように、プロセッサに結合され得る。代替として、記憶媒体はプロセッサに一体化され得る。
【0083】
[0092] 本明細書で開示される方法は、説明された方法を達成するための1つまたは複数のステップまたはアクションを備える。本方法のステップおよび/またはアクションは、特許請求の範囲から逸脱することなく、互いに交換され得る。言い換えれば、ステップまたはアクションの特定の順序が指定されない限り、特定のステップおよび/またはアクションの順序および/または使用は、特許請求の範囲から逸脱することなく修正され得る。
【0084】
[0093] 説明された機能は、ハードウェア、ソフトウェア、ファームウェア、またはそれらの任意の組合せで実装され得る。ハードウェアで実装される場合、例示的なハードウェア構成はデバイス中に処理システムを備え得る。処理システムは、バスアーキテクチャを用いて実装され得る。バスは、処理システムの特定の適用例および全体的な設計制約に応じて、任意の数の相互接続バスおよびブリッジを含み得る。バスは、プロセッサと、機械可読媒体と、バスインターフェースとを含む様々な回路を互いにリンクし得る。バスインターフェースは、ネットワークアダプタを、特に、バスを介して処理システムに接続するために使用され得る。ネットワークアダプタは、信号処理機能を実装するために使用され得る。いくつかの態様では、ユーザインターフェース(たとえば、キーパッド、ディスプレイ、マウス、ジョイスティックなど)もバスに接続され得る。バスはまた、タイミングソース、周辺機器、電圧調整器、電力管理回路など、様々な他の回路をリンクし得るが、これらの回路は当技術分野でよく知られており、したがってこれ以上説明されない。
【0085】
[0094] プロセッサは、機械可読媒体に記憶されたソフトウェアの実行を含む、バスおよび一般的な処理を管理することを担当し得る。プロセッサは、1つまたは複数の汎用および/または専用プロセッサを用いて実装され得る。例は、マイクロプロセッサと、マイクロコントローラと、DSPプロセッサと、ソフトウェアを実行することができる他の回路とを含む。ソフトウェアは、ソフトウェア、ファームウェア、ミドルウェア、マイクロコード、ハードウェア記述言語などの名称にかかわらず、命令、データ、またはそれらの任意の組合せを意味すると広く解釈されたい。機械可読媒体は、例として、ランダムアクセスメモリ(RAM)、フラッシュメモリ、読取り専用メモリ(ROM)、プログラマブル読取り専用メモリ(PROM)、消去可能プログラマブル読取り専用メモリ(EPROM)、電気消去可能プログラマブル読取り専用メモリ(EEPROM)、レジスタ、磁気ディスク、光ディスク、ハードドライブ、または他の好適な記憶媒体、あるいはそれらの任意の組合せを含み得る。機械可読媒体はコンピュータプログラム製品において実施され得る。コンピュータプログラム製品はパッケージング材料を備え得る。
【0086】
[0095] ハードウェア実装形態では、機械可読媒体は、プロセッサとは別個の処理システムの一部であり得る。しかしながら、当業者なら容易に諒解するように、機械可読媒体またはその任意の部分は処理システムの外部にあり得る。例として、機械可読媒体は、すべてバスインターフェースを介してプロセッサによってアクセスされ得る、伝送線路、データによって変調された搬送波、および/またはデバイスとは別個のコンピュータ製品を含み得る。代替的に、または追加として、機械可読媒体またはその任意の部分は、キャッシュおよび/または汎用レジスタファイルがそうであり得るように、プロセッサに統合され得る。局所構成要素など、説明された様々な構成要素は、特定のロケーションを有するものとして説明され得るが、それらはまた、分散コンピューティングシステムの一部として構成されているいくつかの構成要素など、様々な方法で構成され得る。
【0087】
[0096] 処理システムは、すべて外部バスアーキテクチャを介して他のサポート回路と互いにリンクされる、プロセッサ機能を提供する1つまたは複数のマイクロプロセッサと、機械可読媒体の少なくとも一部を提供する外部メモリとをもつ汎用処理システムとして構成され得る。代替的に、処理システムは、説明されたニューロンモデルとニューラルシステムのモデルとを実装するための1つまたは複数の神経形態学的プロセッサを備え得る。別の代替として、処理システムは、プロセッサをもつ特定用途向け集積回路(ASIC)と、バスインターフェースと、ユーザインターフェースと、サポート回路と、単一のチップに統合された機械可読媒体の少なくとも一部分とを用いて、あるいは1つまたは複数のフィールドプログラマブルゲートアレイ(FPGA)、プログラマブル論理デバイス(PLD)、コントローラ、状態機械、ゲート論理、個別ハードウェア構成要素、もしくは他の好適な回路、または本開示全体にわたって説明された様々な機能を実施することができる回路の任意の組合せを用いて、実装され得る。当業者は、特定の適用例と、全体的なシステムに課される全体的な設計制約とに応じて、どのようにしたら処理システムについて説明された機能を最も良く実装し得るかを理解されよう。
【0088】
[0097] 機械可読媒体はいくつかのソフトウェアモジュールを備え得る。ソフトウェアモジュールは、プロセッサによって実行されたときに、処理システムに様々な機能を実施させる命令を含む。ソフトウェアモジュールは、送信モジュールと受信モジュールとを含み得る。各ソフトウェアモジュールは、単一の記憶デバイス中に常駐するか、または複数の記憶デバイスにわたって分散され得る。例として、トリガイベントが発生したとき、ソフトウェアモジュールがハードドライブからRAMにロードされ得る。ソフトウェアモジュールの実行中、プロセッサは、アクセス速度を高めるために、命令のいくつかをキャッシュにロードし得る。次いで、1つまたは複数のキャッシュラインが、プロセッサによる実行のために汎用レジスタファイルにロードされ得る。以下でソフトウェアモジュールの機能に言及する場合、そのような機能は、そのソフトウェアモジュールからの命令を実行したときにプロセッサによって実装されることが理解されよう。さらに、本開示の態様が、そのような態様を実装するプロセッサ、コンピュータ、機械、または他のシステムの機能に改善を生じることを諒解されたい。
【0089】
[0098] ソフトウェアで実装される場合、機能は、1つまたは複数の命令またはコードとしてコンピュータ可読媒体上に記憶されるか、あるいはコンピュータ可読媒体を介して送信され得る。コンピュータ可読媒体は、ある場所から別の場所へのコンピュータプログラムの転送を可能にする任意の媒体を含む、コンピュータ記憶媒体と通信媒体の両方を含む。記憶媒体は、コンピュータによってアクセスされ得る任意の利用可能な媒体であり得る。限定ではなく例として、そのようなコンピュータ可読媒体は、RAM、ROM、EEPROM、CD-ROMまたは他の光ディスクストレージ、磁気ディスクストレージまたは他の磁気ストレージデバイス、あるいは命令またはデータ構造の形態の所望のプログラムコードを搬送または記憶するために使用され得、コンピュータによってアクセスされ得る、任意の他の媒体を備えることができる。さらに、いかなる接続もコンピュータ可読媒体と適切に呼ばれる。たとえば、ソフトウェアが、同軸ケーブル、光ファイバーケーブル、ツイストペア、デジタル加入者回線(DSL)、または赤外線(IR)、無線、およびマイクロ波などのワイヤレス技術を使用して、ウェブサイト、サーバ、または他のリモートソースから送信される場合、同軸ケーブル、光ファイバーケーブル、ツイストペア、DSL、または赤外線、無線、およびマイクロ波などのワイヤレス技術は、媒体の定義に含まれる。本明細書で使用されるディスク(disk)およびディスク(disc)は、コンパクトディスク(disc)(CD)、レーザーディスク(登録商標)(disc)、光ディスク(disc)、デジタル多用途ディスク(disc)(DVD)、フロッピー(登録商標)ディスク(disk)、およびBlu-ray(登録商標)ディスク(disc)を含み、ここで、ディスク(disk)は、通常、データを磁気的に再生し、ディスク(disc)は、データをレーザーで光学的に再生する。したがって、いくつかの態様では、コンピュータ可読媒体は非一時的コンピュータ可読媒体(たとえば、有形媒体)を備え得る。さらに、他の態様では、コンピュータ可読媒体は一時的コンピュータ可読媒体(たとえば、信号)を備え得る。上記の組合せもコンピュータ可読媒体の範囲内に含まれるべきである。
【0090】
[0099] したがって、いくつかの態様は、本明細書で提示される動作を実施するためのコンピュータプログラム製品を備え得る。たとえば、そのようなコンピュータプログラム製品は、説明された動作を実施するために1つまたは複数のプロセッサによって実行可能である命令をその上に記憶した(および/または符号化した)コンピュータ可読媒体を備え得る。いくつかの態様では、コンピュータプログラム製品はパッケージング材料を含み得る。
【0091】
[0100] さらに、説明された方法および技法を実施するためのモジュールおよび/または他の適切な手段は、適用可能な場合にユーザ端末および/または基地局によってダウンロードされ、および/または他の方法で取得され得ることを諒解されたい。たとえば、そのようなデバイスは、説明された方法を実施するための手段の転送を可能にするためにサーバに結合され得る。代替的に、説明された様々な方法は、ユーザ端末および/または基地局が記憶手段(たとえば、RAM、ROM、コンパクトディスク(CD)またはフロッピーディスクなどの物理記憶媒体など)をデバイスに結合するかまたは与えると様々な方法を得ることができるように、記憶手段によって提供され得る。その上、説明された方法および技法をデバイスに提供するための任意の他の好適な技法が利用され得る。
【0092】
[0101] 特許請求の範囲は、上記で示された厳密な構成および構成要素に限定されないことを理解されたい。上記で説明された方法および装置の構成、動作、および詳細において、特許請求の範囲から逸脱することなく、様々な修正、変更、および変形が行われ得る。
図1
図2A
図2B
図2C
図2D
図3
図4
図5
図6
図7
図8
図9
図10
【国際調査報告】