(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2024-08-20
(54)【発明の名称】サーバSOCのための人工知能およびクラウド技術を伴うシステムおよび方法
(51)【国際特許分類】
H04N 21/235 20110101AFI20240813BHJP
G06N 3/02 20060101ALI20240813BHJP
【FI】
H04N21/235
G06N3/02
【審査請求】未請求
【予備審査請求】未請求
(21)【出願番号】P 2023565610
(86)(22)【出願日】2022-05-02
(85)【翻訳文提出日】2023-10-24
(86)【国際出願番号】 US2022027242
(87)【国際公開番号】W WO2022235550
(87)【国際公開日】2022-11-10
(32)【優先日】2021-05-05
(33)【優先権主張国・地域又は機関】US
(32)【優先日】2021-05-05
(33)【優先権主張国・地域又は機関】US
(31)【優先権主張番号】PCT/US2022/027035
(32)【優先日】2022-04-29
(33)【優先権主張国・地域又は機関】US
(81)【指定国・地域】
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
(71)【出願人】
【識別番号】523402774
【氏名又は名称】ユニークファイ, インク
【氏名又は名称原語表記】UNIQUIFY, INC.
(74)【代理人】
【識別番号】110002365
【氏名又は名称】弁理士法人サンネクスト国際特許事務所
(72)【発明者】
【氏名】リー, ジョシュア
(72)【発明者】
【氏名】キム, サムジョン
【テーマコード(参考)】
5C164
【Fターム(参考)】
5C164MA06S
5C164MB11S
5C164SB08P
5C164UD11S
(57)【要約】
本明細書に記載される例示的な実装は、入力データを処理し、エッジデバイスへのメタデータまたは命令を生成することを通じて人工知能/ニューラルネットワークモデルを実行するように構成されたサーバハブデバイスのためのシステムおよび方法を対象とする。例示的な実装では、AI/NN動作が、そのような動作に対応する対数量子化されたパラメータに対する論理シフトの実行(例えば、シフタ回路による)を通じて行われる。
【選択図】
図5
【特許請求の範囲】
【請求項1】
デバイスであって、
1つまたは複数の訓練済みニューラルネットワークモデルを格納するように構成されたメモリと、前記1つまたは複数の訓練済みニューラルネットワークモデルは、1つまたは複数のニューラルネットワーク動作を通じて画像データを処理するように構成され、
インターフェイスと、
前記画像データを取り込むことと、
前記1つまたは複数の訓練済みニューラルネットワークモデルを実行して、前記1つまたは複数のニューラルネットワーク動作を通じて前記画像データを処理することと、
前記画像データの前記処理に基づいて、前記画像データの補足コンテンツを提供するためのメタデータを生成することと、前記メタデータは、前記インターフェイスを通じた別のデバイスへの接続から検索される情報に基づいて生成され、
前記画像データを取り込んでいる1つまたは複数の他のデバイスに、前記インターフェイスを通じて前記メタデータを送信することと、
を行うように構成されたシステムオンチップ(SoC)と
を備えるデバイス。
【請求項2】
前記メタデータが、前記1つまたは複数の他のデバイスによって1つまたは複数のオーバーレイとして前記画像データ上に前記補足コンテンツとして提供される、1つまたは複数のソーシャルメディアの投稿に関連する情報を含む、請求項1に記載のデバイス。
【請求項3】
前記SoCが、前記1つまたは複数の訓練済みニューラルネットワークモデルを、前記SoC内の1つまたは複数のシフタ回路によって実行するように構成される、請求項1に記載のデバイス。
【請求項4】
前記SoCが、前記1つまたは複数の訓練済みニューラルネットワークモデルを、フィールドプログラマブルゲートアレイ(FPGA)によって実行するように構成される、請求項1に記載のデバイス。
【請求項5】
前記FPGAが、前記1つまたは複数の訓練済みニューラルネットワークモデルを、1つまたは複数の論理シフト演算を通じて実行するように構成される、請求項4に記載のデバイス。
【請求項6】
前記SoCが、前記1つまたは複数の訓練済みニューラルネットワークモデルを、1つまたは複数のハードウェアプロセッサによって実行するように構成される、請求項1に記載のデバイス。
【請求項7】
前記1つまたは複数のプロセッサが、前記1つまたは複数の訓練済みニューラルネットワークを、1つまたは複数の論理シフト演算を通じて実行するように構成される、請求項6に記載のデバイス。
【請求項8】
前記デバイスがサーバであり、前記画像データがテレビの映像データである、請求項1に記載のデバイス。
【請求項9】
前記別のデバイスがコンテンツサーバであり、
前記メモリが、前記1つまたは複数の訓練済みニューラルネットワークモデルによる前記画像データの処理の出力を前記コンテンツサーバから検索された情報にマッピングする、別の情報を格納するように構成され、
前記SoCが、前記別の情報をメモリから読み出し、対応するマッピングを前記メタデータとして提供するように構成される、請求項1に記載のデバイス。
【請求項10】
前記情報が、分類された物体を、購入可能な物体に関係する情報にマッピングし、
前記SoCが、前記情報をメモリから読み出し、前記購入可能な物体のうち対応するものを、前記インターフェイスを通じて前記コンテンツサーバから検索するように構成され、前記購入可能な物体のうち前記対応するものは、前記1つまたは複数の訓練済みニューラルネットワークモデルによって分類された前記画像データから分類された1つまたは複数の物体に基づく情報として提供される、請求項9に記載のデバイス。
【請求項11】
前記インターフェイスが、1つまたは複数の対数量子化されたパラメータをサーバから検索し、前記1つまたは複数の対数量子化されたパラメータを前記メモリに格納するように構成され、前記1つまたは複数のニューラルネットワーク動作は前記1つまたは複数の対数量子化されたパラメータによって表され、
前記SoCが、前記1つまたは複数の訓練済みニューラルネットワークモデルを実行して、前記1つまたは複数のニューラルネットワーク動作の前記1つまたは複数の対数量子化されたパラメータから導出されたシフト命令を通じて、前記画像データを処理するように構成される、請求項1に記載のデバイス。
【請求項12】
前記メタデータが、前記画像データ内のフレームの識別子と、前記フレーム内の座標と、前記座標に関連するデータとを含む、請求項1に記載のデバイス。
【請求項13】
前記座標に関連する前記データが、オーバーレイとして使用されるためのソーシャルメディアの投稿を含む、請求項12に記載のデバイス。
【請求項14】
前記座標に関連する前記データが、コンテンツサーバから検索された1つまたは複数のオーバーレイを含む、請求項12に記載のデバイス。
【請求項15】
前記メタデータが、前記1つまたは複数の他のデバイスに対する実行可能命令を含む、請求項1に記載のデバイス。
【請求項16】
前記デバイスが、前記インターフェイスを通じて前記1つまたは複数の他のデバイスに前記画像データを送信するように構成される、請求項1に記載のデバイス。
【発明の詳細な説明】
【技術分野】
【0001】
[0002]本開示は、概して、人工知能/ニューラルネットワーク(AI/NN)処理のためのシステムおよびアーキテクチャを対象とし、より具体的には、サーバシステムオンチップ(SoC)のためのAIおよびクラウド技術を伴うシステムおよび方法を対象とする。
関連技術
【0002】
[0003]今日、多くの形態のデジタルコンテンツがある。最初に用語を定義すると、「デジタルコンテンツ」とは、消費者が消費する任意の視覚、可聴、およびテキストのコンテンツである。一例として、テレビ(TV)のデジタルコンテンツは、画像、映像、音声、およびテキストを含む。そのようなデジタルコンテンツの配信機構には、イーサネット、衛星、ケーブル、携帯電話網、インターネット、ならびにWIFI、および/または同類のものがある。コンテンツを配信するために使用されるデバイスには、テレビ(TV)、携帯電話、自動車ディスプレイ、監視カメラディスプレイ、パーソナルコンピュータ(PC)、タブレット、強化現実/仮想現実(AR/VR)デバイス、およびさまざまなモノのインターネット(IoT)デバイスが含まれ得る。デジタルコンテンツは、生のスポーツイベントなどの「リアルタイム」のコンテンツと、映画や連続ドラマまたは他の事前に録画されたイベントもしくは生でないイベントなどの「用意された」コンテンツとに分けることもできる。現在、「リアルタイム」のコンテンツと「用意された」コンテンツはどちらも、さらなる補足または処理を行わずに消費者に提示されている。
【発明の概要】
【0003】
[0004]本明細書に記載される例示的な実装は、デジタルコンテンツを処理して、物体検出、物体分類、顔認識、テキスト検出、自然言語処理から得られる情報などの、コンテンツに関するインテリジェントな情報を入手し、クラウド/インターネット/任意の場所で見つかった適切な関連する情報を、処理されて消費者に提示できる状態になるデジタルコンテンツの部分に結びつける/アノテーションするための新規な手法を伴う。例示的な実装は、処理されたデジタルコンテンツを、クラウド/インターネットで見つかった関連する適切な情報に結びつける/アノテーションする方法を提供し、ハードウェア、ソフトウェア、またはそれらの何らかの組合せとして実装される。
【0004】
[0005]本明細書に記載される例示的な実装は、視覚コンテンツおよびオーディオコンテンツを分類することをさらに伴う。例示的な実装は、視覚コンテンツ内の人、物体、概念、シーン、テキスト、および言語を分類/識別することができる。例示的な実装は、オーディオコンテンツをテキストに変換し、その変換されたテキスト内で関連する情報を識別することができる。
【0005】
[0006]本明細書に記載される例示的な実装は、クラウド/インターネットから任意の適切な情報を取得し、見つかった情報で視覚コンテンツおよびオーディオコンテンツを補足することをさらに伴う。
【0006】
[0007]本明細書に記載される例示的な実装は、補足されたコンテンツを消費者に提示することをさらに伴う。
【0007】
[0008]本明細書に記載される例示的な実装における分類/識別プロセスは、画像、映像、音声、および言語を処理して、人々(例えば、ある者が誰であるか)、物体の部類(車、船等)、テキスト/言語の意味、任意の概念、または任意のシーンを識別するステップを伴う。この分類ステップを達成することができる方法の一例は、画像、映像、および言語を分類することができるさまざまな人工知能(AI)モデルである。しかし、従来のアルゴリズムなどの他の代替方法があり得る。
【0008】
[0009]本開示において、「クラウド」は、インターネット、任意のサーバ、任意形態のデータベース、任意のコンピュータメモリ、任意の格納デバイス、または任意の消費者デバイスに存在する任意の情報を伴うことができる。
【0009】
[0010]本開示の態様はデバイスを伴うことができ、このデバイスは、1つまたは複数の対数量子化されたパラメータ値によって表される訓練済みニューラルネットワークの形態の物体検出モデルを格納するように構成されたメモリであって、物体検出モデルは、訓練済みニューラルネットワークの対数量子化されたパラメータ値に従って、1つまたは複数のニューラルネットワーク動作を通じて画像データ上で1つまたは複数の物体を分類するように構成される、メモリと、システムオンチップ(SoC)であって、画像データを取り込むことと、物体検出モデルを実行して、1つまたは複数のニューラルネットワーク動作を通じて画像データの1つまたは複数の物体を分類することであって、1つまたは複数のニューラルネットワーク動作は、メモリから読み出された1つまたは複数の対数量子化されたパラメータ値に基づく、画像データに対する論理シフト演算によって実行される、物体を分類することと、画像データから分類された1つまたは複数の物体に基づいて画像データをアノテーションするためのメタデータを生成することと、を行うように構成されたSoCと、画像データを受信する1つまたは複数の他のデバイスにメタデータを送信するように構成されたインターフェイスと、を含むことができる。
【0010】
[0011]本開示の態様はコンピュータプログラムを伴うことができ、このコンピュータプログラムは、画像データを取り込むことと、物体検出モデルを実行して、1つまたは複数のニューラルネットワーク動作を通じて画像データの1つまたは複数の物体を分類することであって、1つまたは複数のニューラルネットワーク動作は、メモリから読み出された1つまたは複数の対数量子化されたパラメータ値に基づく、画像データに対する論理シフト演算によって実行される、物体を分類することと、画像データから分類された1つまたは複数の物体に基づいて画像データをアノテーションするためのメタデータを生成することと、画像データを受信する1つまたは複数の他のデバイスにメタデータを送信することと、を伴う命令を含むことができる。コンピュータプログラムおよび命令は、1つまたは複数のプロセッサにより実行するために非一過性のコンピュータ可読媒体に格納されることができる。
【0011】
[0012]本開示の態様は方法を伴うことができ、この方法は、画像データを取り込むことと、物体検出モデルを実行して、1つまたは複数のニューラルネットワーク動作を通じて画像データから1つまたは複数の物体を分類することであって、1つまたは複数のニューラルネットワーク動作は、メモリから読み出された1つまたは複数の対数量子化されたパラメータ値に基づく、画像データに対する論理シフト演算によって実行される、物体を分類することと、画像データから分類された1つまたは複数の物体に基づいて画像データをアノテーションするためのメタデータを生成することと、画像データを受信する1つまたは複数の他のデバイスにメタデータを送信することと、を含むことができる。
【0012】
[0013]本開示の態様はシステムを伴うことができ、このシステムは、画像データを取り込む手段と、物体検出モデルを実行して、1つまたは複数のニューラルネットワーク動作を通じて画像データから1つまたは複数の物体を分類することであって、1つまたは複数のニューラルネットワーク動作は、メモリから読み出された1つまたは複数の対数量子化されたパラメータ値に基づく、画像データに対する論理シフト演算によって実行される、物体を分類することと、画像データから分類された1つまたは複数の物体に基づいて画像データをアノテーションするためのメタデータを生成する手段と、画像データを受信する1つまたは複数の他のデバイスにメタデータを送信する手段と、を含むことができる。
【0013】
[0014]本開示の態様はデバイスを伴うことができ、このデバイスは、1つまたは複数の訓練済みニューラルネットワークモデルを格納するように構成されたメモリであって、1つまたは複数の訓練済みニューラルネットワークモデルは、1つまたは複数のニューラルネットワーク動作を通じて画像データを処理するように構成される、メモリと、インターフェイスと、システムオンチップ(SoC)と、を備え、SoCは、画像データを取り込むことと、1つまたは複数の訓練済みニューラルネットワークモデルを実行して、1つまたは複数のニューラルネットワーク動作を通じて画像データを処理することと、画像データの処理に基づいて、画像データの補足コンテンツを提供するためのメタデータを生成することであって、メタデータは、インターフェイスを通じた別のデバイスへの接続から検索される情報に基づいて生成される、メタデータを生成することと、画像データを取り込んでいる1つまたは複数の他のデバイスに、インターフェイスを通じてメタデータを送信することと、を行うように構成される。
【0014】
[0015]本開示の態様は、デバイスを伴うことができ、このデバイスは、1つまたは複数の訓練済みニューラルネットワークモデルを格納するように構成されたメモリであって、1つまたは複数の訓練済みニューラルネットワークモデルは、1つまたは複数のニューラルネットワーク動作を通じて画像データを処理するように構成される、メモリと、インターフェイスと、システムオンチップ(SoC)と、を備え、SoCは、画像データを取り込むことと、1つまたは複数の訓練済みニューラルネットワークモデルを実行して、1つまたは複数のニューラルネットワーク動作を通じて画像データを処理することと、画像データの処理に基づいて、画像データの補足コンテンツを提供するためのメタデータを生成することであって、メタデータは、インターフェイスを通じた別のデバイスへの接続から検索される情報に基づいて生成される、メタデータを生成することと、画像データを取り込んでいる1つまたは複数の他のデバイスに、インターフェイスを通じてメタデータを送信することと、を行うように構成される。
【0015】
[0016]本開示の態様は方法を伴い、この方法は、画像データを取り込むことと、1つまたは複数の訓練済みニューラルネットワークモデルを実行して、1つまたは複数のニューラルネットワーク動作を通じて画像データを処理することと、画像データの処理に基づいて、画像データの補足コンテンツを提供するためのメタデータを生成することであって、メタデータは、インターフェイスを通じた別のデバイスへの接続から検索される情報に基づいて生成される、メタデータを生成することと、画像データを取り込んでいる1つまたは複数の他のデバイスに、インターフェイスを通じてメタデータを送信することと、を含むことができる。
【0016】
[0017]本開示の態様はコンピュータプログラムを伴い、このコンピュータプログラムは、画像データを取り込むことと、1つまたは複数の訓練済みニューラルネットワークモデルを実行して、1つまたは複数のニューラルネットワーク動作を通じて画像データを処理することと、画像データの処理に基づいて、画像データの補足コンテンツを提供するためのメタデータを生成することであって、メタデータは、インターフェイスを通じた別のデバイスへの接続から検索される情報に基づいて生成される、メタデータを生成することと、画像データを取り込んでいる1つまたは複数の他のデバイスに、インターフェイスを通じてメタデータを送信することと、を伴う命令を含むことができる。コンピュータプログラムおよび命令は、非一過性のコンピュータ可読媒体に格納されることができ、1つまたは複数のプロセッサによって実行されるように構成されることができる。
【0017】
[0018]本開示の態様はシステムを伴い、このシステムは、画像データを取り込む手段と、1つまたは複数の訓練済みニューラルネットワークモデルを実行して、1つまたは複数のニューラルネットワーク動作を通じて画像データを処理する手段と、画像データの処理に基づいて、画像データの補足コンテンツを提供するためのメタデータを生成する手段であって、メタデータは、インターフェイスを通じた別のデバイスへの接続から検索される情報に基づいて生成される、メタデータを生成する手段と、画像データを取り込んでいる1つまたは複数の他のデバイスに、インターフェイスを通じてメタデータを送信する手段と、を含むことができる。
【0018】
[0019]本開示の態様はデバイスを伴うことができ、このデバイスは、1つまたは複数の対数量子化されたパラメータ値によって表される訓練済みニューラルネットワークモデルを格納するように構成されたメモリであって、訓練済みニューラルネットワークモデルは、訓練済みニューラルネットワークの対数量子化されたパラメータ値に従って、1つまたは複数のニューラルネットワーク動作を通じて、入力データに分析を行うように構成される、メモリと、システムオンチップ(SoC)と、伴うことができ、SoCは、訓練済みニューラルネットワークを実行して、1つまたは複数のニューラルネットワーク動作を通じて、入力データに分析を行うことであって、1つまたは複数のニューラルネットワーク動作は、メモリから読み出された1つまたは複数の対数量子化されたパラメータ値に基づく入力データに対する論理シフト演算によって実行される、分析を行うことと、インターフェイスを通じて、入力データに対する分析に基づいて別のデバイスを制御することと、を行うように構成される。
【0019】
[0020]本開示の態様は方法を伴うことができ、この方法は、訓練済みニューラルネットワークを実行して、1つまたは複数のニューラルネットワーク動作を通じて、入力データに分析を行うことであって、1つまたは複数のニューラルネットワーク動作は、メモリから読み出された1つまたは複数の対数量子化されたパラメータ値に基づく入力データに対する論理シフト演算によって実行される、分析を行うことと、インターフェイスを通じて、入力データに対する分析に基づいて別のデバイスを制御することと、を伴う。
【0020】
[0021]本開示の態様はコンピュータプログラムを伴うことができ、このコンピュータプログラムは、訓練済みニューラルネットワークを実行して、1つまたは複数のニューラルネットワーク動作を通じて、入力データに分析を行うことであって、1つまたは複数のニューラルネットワーク動作は、メモリから読み出された1つまたは複数の対数量子化されたパラメータ値に基づく入力データに対する論理シフト演算によって実行される、分析を行うことと、インターフェイスを通じて、入力データに対する分析に基づいて別のデバイスを制御することと、のための命令を伴う。コンピュータプログラムおよび命令は、非一過性のコンピュータ可読媒体に格納され、1つまたは複数のプロセッサによって実行されることができる。
【0021】
[0022]本開示の態様はシステムを伴うことができ、このシステムは、訓練済みニューラルネットワークを実行して、1つまたは複数のニューラルネットワーク動作を通じて、入力データに分析を行う手段であって、1つまたは複数のニューラルネットワーク動作は、メモリから読み出された1つまたは複数の対数量子化されたパラメータ値に基づく入力データに対する論理シフト演算によって実行される、分析を行う手段と、インターフェイスを通じて、入力データに対する分析に基づいて別のデバイスを制御する手段と、を伴う。
【図面の簡単な説明】
【0022】
【
図1A】[0023]
図1A~
図1Cは、例示的な実施形態による、全体的なシステムアーキテクチャの例を示す図である。
【
図1B】[0023]
図1A~
図1Cは、例示的な実施形態による、全体的なシステムアーキテクチャの例を示す図である。
【
図1C】[0023]
図1A~
図1Cは、例示的な実施形態による、全体的なシステムアーキテクチャの例を示す図である。
【
図2】[0024]
図2は、例示的な実施形態による、AI SoCを用いるサーバまたはハブデバイスの例示的なフロー図である。
【
図3】[0025]
図3は、例示的な実施形態による、AI SoCを用いるサーバまたはハブデバイスによってコンテンツと併せて提供されることができる補足メタデータの例を示す図である。
【
図4A】[0026]
図4Aおよび
図4Bは、例示的な実施形態による、AI SoCを用いるサーバまたはハブデバイスによってコンテンツと併せて提供されることができる補足メタデータの例を示す図である。
【
図4B】[0026]
図4Aおよび
図4Bは、例示的な実施形態による、AI SoCを用いるサーバまたはハブデバイスによってコンテンツと併せて提供されることができる補足メタデータの例を示す図である。
【
図4C】[0027]
図4Cは、例示的な実施形態による、補足コンテンツへの出力ラベルのマッピングの例を示す図である。
【
図5】[0028]
図5は、例示的な実施形態による、AI SoCの例示的なアーキテクチャを示す図である。
【
図6】[0029]
図6は、例示的な実施形態による、AI処理要素(AIPE)の例示的な回路図である。
【
図7】[0030]
図7は、例示的な実施形態による、AIPEアレイの例を示す図である。
【
図8】[0031]
図8は、例示的な実施形態による、AIモデルアーキテクチャの例示的なフローを示す図である。
【
図9】[0032]
図9は、例示的な実施形態による、クラウド情報およびソーシャルメディア情報で補足されたデジタルコンテンツの例を示す図である。
【
図10】[0033]
図10は、例示的な実施形態による、クラウド情報および電子商取引情報で補足されたデジタルコンテンツの例を示す図である。
【
図11】[0034]
図11は、例示的な実施形態による、検出アルゴリズムからの出力の例を示す図である。
【
図12】[0035]
図12は、例示的な実施形態による、カスタマイズされたデジタルコンテンツの例を示す図である。
【
図13】[0036]
図13は、例示的な実施形態による、AI SoCを用いるサーバまたはハブデバイスの例示的な構成を示す図である。
【
図14】[0037]
図14は、例示的な実施形態による、
図13のサーバ/ハブデバイスの例示的な実装が実装されることが可能な例示的なシステムを示す図である。
【発明を実施するための形態】
【0023】
[0038]以下の詳細な説明は、本出願の図および例示的な実装の詳細を提供する。図間の冗長な要素の参照番号および説明は、明確にするために省略される。説明全体を通じて使用される用語は、例として提供されており、制限となるよう意図されていない。例えば、「自動的」という用語の使用は、本出願の実装を実践する当業者の望ましい実装に応じて、実装の特定の態様に対するユーザまたは管理者の制御を伴う完全に自動的な実装または半自動的な実装を含んでよい。選択が、ユーザインターフェイスまたはその他の入力手段を介して、ユーザによって実施されることができ、あるいは望ましいアルゴリズムによって実施されることができる。本明細書に記載されている例示的な実装は、単独で、または組み合わせて利用されることができ、例示的な実装の機能は、望ましい実装に従って任意の手段によって実装されることができる。
【0024】
[0039]本明細書に記載される例示的な実装は、サーバのための新規なAI SoCおよびブロードキャストアーキテクチャの使用を伴う。本明細書に記載される例示的な実装では、「リアルタイム」のデジタルコンテンツおよび「用意された」デジタルコンテンツが、さらなるアノテーションまたは処理なしで消費者に提示される(例えばブロードキャストされる)。先行する項で提案された技術は、デジタルコンテンツを処理し、消費者に提示するデジタルコンテンツのうち関連する部分に関して見つかった適切なクラウド情報を結びつけるための新規の手法である。例示的な実装が実装され、それが使用されて「補足データ」を作成し、そのような追加情報を本来のデジタルコンテンツと共に消費者に送ることができる。
【0025】
[0040]
図1A~1Cは、例示的な実装による全体的なシステムアーキテクチャを示している。
図1Aに示されるシステムアーキテクチャでは、本明細書に記載されるように、エッジデバイス104に、ならびにAI SoC103を利用するサーバまたは他のハブデバイスに、コンテンツ101がブロードキャストされる。コンテンツ101は、これらに限定されないが、衛星、TV、モバイルデバイスから、カメラ(例えば、監視カメラ)、パーソナルコンピュータからなど、任意の望ましい実装を通じてブロードキャストされることができる。サーバまたは他のハブデバイスは、エッジデバイス104にこれからブロードキャストされるコンテンツを観察し、AI/ニューラルネットワーク(NN)モデルおよび他の望ましい実装を使用してコンテンツを処理して、エッジデバイス104内でブロードキャストされたコンテンツと併せて使用されるための情報を生成するように構成される。例示的な実装では、コンテンツ101は、テレビ、映像/オーディオデータ、ストリーミング映像、監視映像等の画像データを含むことができる。しかし、本開示はそれに限定されず、望ましい実装および使用される基礎モデルに応じて、他のコンテンツがブロードキャストされることもできる。例えば、コンテンツは、オーディオ、センサデータ、奥行きカメラ画像データ、およびその他であり得る。
【0026】
[0041]クラウド102または別のインターネットリソースからの情報も、サーバまたはAI SoC103を利用する他のハブデバイスに提供される。そのような情報は、望ましい実装に応じて、クラウドリソースからのデータ、電子商取引情報、ソーシャルメディア情報、ウェブ情報、インターネット情報等を含み得る。AI SoC103を利用するサーバまたはハブデバイスは、コンテンツおよびクラウド情報を処理して、コンテンツと共に提供される適切な情報をペアリングする。映像ストリーミングデータを伴う例示的な実装では。例示的な実装では、AI SoC103を利用するサーバまたはハブデバイスは、AI/NNモデルを使用して、映像、オーディオ、およびテキストコンテンツを分類して、映像、オーディオ、およびテキストコンテンツを識別するコンテンツ分類105を生成する。コンテンツ分類105およびクラウド102からの関連する適切な情報に基づいて、補足データ106が識別され、それを使用して、受信された画像データのエッジ処理で使用するためにエッジデバイス104に提供されるメタデータ107を生成する。例示的な実装では、本明細書に記載されるように、エッジデバイスによるアノテーションなどの態様が、メタデータによって達成されることができ、それをエッジデバイス104が使用して、クラウド情報102を受信したコンテンツ101にリンクする。
【0027】
[0042]そのような例示的な実装を通じて、エッジデバイス104からの処理に代えて、専用のサーバ、またはブロードキャストされるコンテンツと併せて使用されるための情報をクラウド102から提供する中央ハブとして機能することができる他のハブデバイスによって、AI処理が行われることができる。さらに、AI SoC103において論理シフト演算を使用するという新規の手法を通じて、処理は、サーバまたはハブデバイスでシームレスかつ高速に(リアルタイムで)行われることができ、そのため、提供されるクラウド情報102は、エッジデバイス104が受信コンテンツ101を表示するかまたはその他の形で使用できる状態になる時までに、エッジデバイス104に提供されることができる。そのような例示的な実装を通じて、エッジデバイス104は、クラウド情報102とペアリングされた受信コンテンツ101を表示/使用することができ、これは、それを行うために必要とされる処理時間のために、関連技術の実装では本来可能でなかった。これは、人手によるメタデータのアノテーションまたは人手によるメタデータが事前に決定されることを必要とする、関連技術の実装に対する改良である。AI SoC103を用いるサーバまたはハブデバイスは、複数の異なるコンテンツを処理する複数の異なるエッジデバイス104に、そのようなペアリングを提供することができる。
【0028】
[0043]「リアルタイム」のコンテンツおよび「用意された」デジタルコンテンツ101は、イーサネット、衛星、ケーブル、ローカルエリアネットワーク(LAN)、ワイドエリアネットワーク(WAN)およびWIFIなどの接続を介して、これらに限定されないが、TV、携帯電話、自動車ディスプレイ、監視カメラディスプレイ、PC、タブレット、AR/VR デバイス、およびさまざまなモノのインターネット(IoT)デバイスを含み得る、エッジデバイス104に配信される。
【0029】
[0044]
図1Bは、別の例示的なアーキテクチャを示しており、ここでは、コンテンツ101がメタデータと併せてまたはそれと共にエッジデバイスに提供される。
図1Aで、コンテンツ101の画像データは、AI SoC103を管理するサーバまたはハブデバイスに対するブロードキャストも行っている何らかのブロードキャストデバイスから、エッジデバイスによって受信されることができる。しかし、コンテンツ101は、必要な場合には、AI SoC103を管理するサーバまたはハブデバイスから受信されることができる。そのような例示的な実装では、サーバまたはハブデバイスが、コンテンツ101と併せて、またはコンテンツ101の中に一体化された、メタデータを1つまたは複数のエッジデバイスに提供することができる。
【0030】
[0045]
図1Cは、例示的な実装による、すでに処理されたメタデータのリポジトリを伴う例示的な実装を示している。例示的な実装では、メタデータは、同様のコンテンツ101を受信している他のデバイスのために再使用されてよい。例えば、サーバまたはハブデバイスがデジタルコンテンツのリポジトリ(例えば、その映像コンテンツを要求するデバイスに提供される映像コンテンツのライブラリを管理しているストリーミングアプリケーション)を管理している場合、リポジトリ内のいずれかのデジタルコンテンツのために生成されたメタデータが、同じデジタルコンテンツを要求する他のエッジデバイスのために再使用されることができる。そのような例示的な実装では、さらに再使用するようにメタデータ107を格納するためにメタデータリポジトリ110が利用されることができ、リポジトリは、望ましい実装に従って、クラウドシステム、データベース、格納システム等の形態であることができる。
【0031】
[0046]
図2は、例示的な実装による、AI SoCを用いるサーバまたはハブデバイスの例示的なフロー図を示している。デジタルコンテンツを配信する前に、コンテンツが処理されて、AI SoCを用いるサーバまたはハブデバイスによる以下のステップを経ることができる。
【0032】
[0047]視覚、オーディオ、およびテキストコンテンツを分類/識別/処理する200。例示的な実装におけるAI SoCを用いるサーバまたはハブデバイスは、視覚コンテンツ内の人、物体、概念、シーン、テキスト、および言語を分類/識別/処理し、オーディオコンテンツをテキストに変換し、そのテキストを分類/処理することができる。このステップを実現するために、AI、ニューラルネットワーク、および任意の他の従来の技術が使用されることができる。
【0033】
[0048]クラウドから任意の適切な情報を取得し、視覚、オーディオ、およびテキストコンテンツに合わせて見つかった情報(「補足データ」)を集める201。
【0034】
[0049]見つかった情報(「補足データ」)を、本来のコンテンツに加えて、閲覧のためにエッジデバイスに配信する202。望ましい実装に応じて、「補足データ」は、デジタルコンテンツに埋め込まれることができるか、または受信側デバイスに別途配信されることができ、受信側デバイスは、どの「補足データ」を視聴者に表示するかを選択することができる。
【0035】
[0050]本明細書に記載される例示的な実装では、200における分類処理および201におけるクラウドからの適切な情報の収集は、1つまたは複数のサーバにおけるデジタルコンテンツの配信の前に発生することができる。分類された物体についての分類情報およびクラウド情報は、受信側デバイスが理解できる形式で格納される。受信側デバイスまたは受信側デバイスで実行されているアプリケーションが、望ましい実装に応じて、本来のコンテンツと共に受信された、分類/処理された物体についてのどの情報をどのように表示するかを選択する。
【0036】
[0051]例示的な実装は、「補足データ」を本来のコンテンツ媒体に埋め込むこともできる。関連技術の実装では、利用可能な画像/オーディオ/テキストファイル形式は、映像、オーディオ、およびテキストなどの主コンテンツ以外の追加情報を埋め込むことが可能でない。新しいファイル形式を用いて、視覚、オーディオ、テキストコンテンツおよび「補足データ」などの追加的データを格納することができる。この新しい形式は、「補足データ」と本来のコンテンツデータとの組合せであることができる。
【0037】
[0052]このプロセスは、一回発生することができ、後のストリーミング/ブロードキャストのために格納されることができる。これにより、コンテンツがブロードキャストまたはストリーミングされるたびにこのプロセスを何度も繰り返す必要がなくなる。さらに、エッジデバイス104は、受信したコンテンツ101および受信した補足データ(例えば、オーバーレイの形態)を、追加的なAI処理を行う必要なく、単純に処理することができる。
【0038】
[0053]
図3は、例示的な実装による、AI SoCを用いるサーバまたはハブデバイスによってコンテンツと併せて提供されることができる補足メタデータの例を示している。提供されることができる補足メタデータの一例では、ヘッダは、メタデータの残りが関連付けられるべきコンテンツを識別する情報を含むことができる。ヘッダは、例示的な実装に従って、これらに限定されないが、形式バージョン、コンテンツ形式、コンテンツ解像度、コンテンツサイズ、コンテンツレート等の情報を含むことができる。フレームメタデータは、各物体名および物体の座標(サイズ)、ならびに物体に関連付けられるべき任意のデータを識別することができる。よって、クラウドからの補足データは、任意の画像コンテンツまたは映像コンテンツのコンテンツの特定フレーム当たりの出力に関して記述されることができる。
【0039】
[0054]
図4Aおよび
図4Bは、例示的な実装による、AI SoCを用いるサーバまたはハブデバイによってコンテンツと併せて提供されることができる補足メタデータの例を示している。例示的な実装は、画像コンテンツまたは映像コンテンツを越えるものまで拡張されることができ、望ましい実装に従って任意形態のコンテンツ(例えば、オーディオ、ネットワークトラフィック等)に一般化されることができる。そのような例示的な実装では、データ情報は、補足情報および受信されているコンテンツに関連する他の情報を含むことができ、コンテンツは、エッジデバイス104による使用のためにコンテンツファイルで提供されることができる。そのようにして、サーバまたはハブデバイスは、必要な場合は、メタデータと併せて、またはメタデータと一体化された、コンテンツを提供することができる。
図4Bの例では、メタデータは、望ましい実装に従って、1つまたは複数のエッジデバイスによって実行可能な実行可能命令(例えば、メニューを出現させる、カメラを別の方向にパンする)も含むことができる。そのようにして、エッジデバイスは、必要に応じて受信したコンテンツおよびメタデータに付随する命令を実行することができる。
図3、
図4A、および
図4Bに示される例示的実装の概念は、望ましい実装を容易にするために任意の形で組み合わせられることができる。
【0040】
[0055]
図4Cは、例示的な実装による、1つまたは複数のニューラルネットワークモデル/AIモデルの出力ラベルの、補足コンテンツへの例示的マッピングを示している。1つまたは複数のニューラルネットワークモデル/AIモデルは、入力データを任意の目的(例えば、物体分類、テキスト認識、自然言語処理等)のために処理して、1つまたは複数の出力ラベルを、
図3、
図4A、および
図4Bに示されるようなメタデータ形態で提供可能なそれらの座標と共に生成するように訓練されることができる。出力ラベルは、コンテンツ101と併せて提供される、提供される補足コンテンツ(例えば、オーバーレイ、ソーシャルメディアの投稿、画像、オーディオ、ポップアップメニュー等)にマッピングされることができる。例えば、物体を分類する物体分類モデル(例えば、訓練済みのニューラルネットワークモデルから構築される)を使用して、バスケットボールを、オーバーレイとして使用される補足コンテンツとしての火の画像にマッピングすることができる。アナウンサーによって発話されている選手Aを認識するオーディオ認識(例えば、訓練済みのニューラルネットワークモデル/AIモデルから構築される)を、
図10に示されるジャージなど、選手Aに関する購入可能な物体を伴う補足コンテンツにマッピングすることができる。チームAが攻撃側でプレーしていると画面上で認識されるが、そのような出力ラベルが、
図9に示されるようにオーバーレイとして使用されるソーシャルメディアの投稿にマッピングされることができる。さらに、望ましい実装に応じて、補足コンテンツは、メタデータに組み込まれて実行のためにエッジデバイスに送信される実行可能命令(例えば、購入可能な物体に関するポップアップメニューを生成する、インターネットからソーシャルメディアの投稿を検索する等)も伴うことができる。
【0041】
[0056]
図5は、例示的な実装による、AI SoCの例示的アーキテクチャを示している。AI SoC500は、本明細書に記載されるようにいくつかの構成要素を含むことができる。
【0042】
[0057]入力処理ユニット502は、AI/NNモデルによる処理のために、ブロードキャストされるコンテンツの入力を取り込むように構成される。そのようなブロードキャストされるコンテンツは、望ましい実装に従って、これらに限定されないが、映像、画像、データ、オーディオ、テキスト等を含むことができる。AI処理ユニット504によって処理されるように、入力処理ユニット502は、適切なAI/NNモデルによる処理のためにコンテンツを値の行列に変換するように構成されることができ、ネットワークインターフェイス503は、ネットワーク入力/出力(I/O)インターフェイス501とのインターフェイスをとって、クラウド、インターネットまたは他の外部データ源からデータを取り込むと共に、出力処理ユニット508を介してエッジデバイスに出力(例えば、メタデータ/補足データ509)を提供するように構成される。ネットワークI/Oインターフェイス501は、望ましい実装に従って、サーバまたはハブデバイスに設置された別個のハードウェア構成要素、またはその他であることができる。プロセッサコア507は、AI SoC500の代わりに命令を読み出し、それに応じてプロセスを実行する1つまたは複数のIPコアを伴うことができる。
【0043】
[0058]コントローラ505は、AI SoC500による処理のためにAI/NNモデルをメモリ506からロードするように構成されたメモリコントローラである。例示的な実装では、メモリ506は、ダブル・データ・レート・シンクロナス・ダイナミック・ランダムアクセスメモリ(DDR SDRAM)の形態であることができ、または望ましい実装に従って他の種のメモリであることができる。同様に、コントローラ505はDDRコントローラであることができるが、それに限定されない。
【0044】
[0059]AI処理ユニット(APU)504は、コントローラ505からロードされたパラメータに基づいてAI/NNモデルを実行し、これらに限定されないが、望ましい実装に従って、物体分類、物体検出、物体セグメント化、顔認識などの機能、または他の種のAI/NNモデルを行うように構成される。本明細書に記載される例示的実装では、APU504は、
図6に示されるように1つまたは複数のAI処理要素(AIPE)から構成されることができる。エッジデバイスがコンテンツを受信するのと同時に補足データ/メタデータがエッジデバイスに提供されることができるように、適時のAI/NNモデルの処理を容易にするために、APU504は、乗算でAI/NNモデルを処理する代わりに、論理シフト演算を利用して、AI/NNモデルの対数量子化されたパラメータを処理する。本明細書に記載される例示的な実装では、AI/ニューラルネットワークモデルのパラメータは対数量子化され(2
round(log
2
X)の形態の最も近い2の累乗に丸められ、XはAI/NNモデルの重みまたはバイアスパラメータである)、それにより、対数量子化されたパラメータが、入力処理ユニット502によって受け取られたコンテンツに対してモデルによって必要とされる対応するAI/NN動作に従って、値をシフトするためのシフト命令に変換されることができる。乗算演算ではなく論理シフト演算を使用することにより、AI/NNモデルの出力を生成するために必要とされる処理時間を大幅に節減することが可能となる。さらに、そのような演算は、乗算器/累算器(MAC)回路に代えて物理的なハードウェアシフタを利用するAIPEによって容易にされることができ、それにより、消費電力、モデルを処理するために必要とされる時間、マザーボード上のフットプリント等を節減する。しかし、APUは、望ましい実装に従って、受信されたコンテンツに2値/論理シフト演算を実行してAI/NNモデル処理を実行するようにプログラムされた中央処理装置(CPU)、またはフィールドプログラマブルゲートアレイ(FPGA)などの、物理的プロセッサの形態であることもできる。さらに、AI SoC500の構成要素のいずれかが、望ましい実装に従って、等価回路およびFPGAを含む、その機能を行うための専用ハードウェア要素の形態で実装されることができる。
【0045】
[0060]出力処理ユニット508は、プロセッサコア507を利用して、
図3、
図4Aおよび
図4Bに示されるもののような対応するメタデータ/補足データ509を出力として生成するための命令を伴うことができる。そのようなメタデータ/補足データは、例えば、
図5に示されるような視聴者に対するオーバーレイなどの追加的情報を生成するために、エッジデバイスによって使用することができる。そのような命令は、訓練済みニューラルネットワーク/AIモデル内で示される出力へのラベルのマッピングに基づいて出力を出力ラベルに変換し、次いで、
図4Cに示されるようにそのようなラベルを補足コンテンツにマッピングして、
図3、
図4A、および
図4Bに示されるようなメタデータを生成することを伴うことができる。
【0046】
[0061]
図6は、例示的な実装による、デジタルコンテンツを処理するためのAIPEの例を示している。
図6のAIPEは、デジタルコンテンツを処理するために算術シフトアーキテクチャを備えてよい。しかし、本開示は、本明細書に開示される算術シフトアーキテクチャに限定されることは意図されない。一部の態様では、AIPEは、デジタルコンテンツを処理するための加算器および/または乗算器を含んでよい。
図6のAIPEは、算術シフタ602および加算器604を利用して、これらに限定されないが、畳み込み、dense層、パラメトリックReLU、バッチ正規化、maxプーリング、加算、および/または乗算などのニューラルネットワーク動作を処理する。算術シフタ602は、論理シフト演算を容易にするために、データ606と、対数量子化されたパラメータ608から導出されたシフト命令とを入力として受け取る。データ606は、32ビットのデータを2の補数の形式で備えてよく、対数量子化されたパラメータ608から導出されたシフト命令は、7ビットのデータを備えてよい。例えば、算術シフタ602は、32ビットの算術シフタを備えてよい。算術シフタ602は、対数量子化されたパラメータ608から導出されたシフト命令に基づいてデータ606をシフトする。算術シフタ602の出力は、2の補数のアーキテクチャを通過し、バイアス610が加算される。バイアス610は、32ビットバイアスを備えてよい。加算器604は、算術シフタ602の出力を入力として受け取る。算術シフタ602の出力は、2の補数の形態であり、XORに供給されて、対数量子化されたパラメータ608から導出されたシフト命令の符号ビット612と比較される。符号ビット612が負である場合には、算術シフタ602の出力が反転される。算術シフタ602の出力と符号ビット612との間のXOR演算の出力は、次いで加算器604に供給される。加算器604は、バイアス610、算術シフタ602の出力と符号ビット612との間のXOR演算の出力を受け取って、共に加算する。加算器604は、桁上げデータとしての符号ビット612も入力として受け取る。加算器604の出力は、フリップフロップ614に供給される。フリップフロップ614のデータは、
図6のAIPEに戻される。例えば、フリップフロップ614の出力は、マルチプレクサに供給され、データ606と多重化される。フリップフロップ614の出力はまた、マルチプレクサに供給され、バイアス610と多重化される。フリップフロップ614の出力はまた、マルチプレクサに供給され、加算器604の出力と多重化される。フリップフロップ614の出力は、2の補数の形態であってよい。フリップフロップ614のデータの符号ビットもAIPEに戻される。例えば、フリップフロップ614のデータの符号ビットは、OR演算子に供給されて信号S2と比較され、OR演算の結果は、パラメータ608と一定の0信号とを多重化するマルチプレクサに供給される。
【0047】
[0062]シフタの使用を通じて乗算および他のニューラルネットワーク動作を実行する
図6の変形例も可能であり、本開示はこれに限定されない。そのような例は、例えば、2022年4月29日に出願され、「IMPLEMENTATIONS AND METHODS FOR PROCESSING NEURAL NETWORK IN SEMICONDUCTOR HARDWARE」と題された、PCT出願第PCT/US22/27035号に見られ、その開示は、その全体が参照によって明示的に本明細書に組み込まれている。
【0048】
[0063]上記の図は例であり、機能的な相当物を利用して、フィールドプログラマブルゲートアレイ(FPGA)を用いることや、そのような要素をハードウェアの他の機能相当物と置き換えることを通じて、望ましい実装を容易にすることができ、または、追加的な要素で変更して、望ましい実装に従って追加的な機能を容易にすることができる。
【0049】
[0064]
図7は、例示的な実装による、AIPEアレイの例を示している。
図7の例では、ニューラルネットワークアレイは複数のAIPEを備え、ここでは、データおよびパラメータ(カーネル)がAIPEに入力されて、本明細書に開示されるようにデジタルコンテンツを処理するためのさまざまな動作を行う。AIPEアーキテクチャは、シフタおよび論理ゲートを備えてよいが、他の要素を利用するように構成されてよく、本開示は、本明細書に開示される例に制限されることは意図されない。本明細書に開示される例は、7ビットのパラメータと共に32ビットのデータを含み、データは、1ビット~Nビットであることができ、パラメータは、1ビット~Mビットのパラメータであることができ、NおよびMは任意の正の整数である。一部の例は、1つの32ビットのシフタを含むが、シフタの数は、2つ以上であってよく、1つのシフタからO個のシフタまで変化してよく、Oは正の整数である。場合によっては、アーキテクチャは、データの128ビット、パラメータの8ビット、および直列に(次々に)接続された7つのシフタを備える。また、本明細書に示された論理ゲートは、特定のアーキテクチャに応じて変化することができる論理ゲートの標準的なセットである。
【0050】
[0065]場合によっては、AIPEアーキテクチャは、シフタ、加算器、および/または論理ゲートを利用してよい。本明細書に開示される例は、7ビットのパラメータと共に32ビットのデータを備え、データは、1ビット~Nビットであることができ、パラメータは、1ビット~Mビットのパラメータであることができ、NおよびMは任意の正の整数である。一部の例は、1つの32ビットシフタおよび1つの32ビットの2入力加算器を含むが、シフタおよび加算器の数は2つ以上であってよく、1つのシフタからO個のシフタまで、および1つの加算器からP個の加算器まで変化してよく、OおよびPは正の整数である。場合によっては、アーキテクチャは、データの128ビット、パラメータの8ビット、および直列に接続された2つのシフタ、および直列に(次々に)接続された2つの加算器を備える。
【0051】
[0066]本明細書に開示されるAIPEアーキテクチャは、シフタおよび論理ゲートを備えて実装されてよく、その場合、シフタが乗算および加算/累算動作を代替する。本明細書に開示されるAIPEアーキテクチャは、シフタ、加算器、および論理ゲートを備えて実装されてもよく、その場合、シフタが乗算および加算/累算動作を代替する。AIPEアーキテクチャは、乗算動作を代替するシフタおよび加算/累算動作を代替する論理関数から構成されてよい。加算/累算動作を代替する論理関数は、乗算器でも、加算器でも、シフタでもない論理関数である。しかし、一部の態様では、AIPEアーキテクチャは、乗算器、加算器、および/またはシフタから構成されてよい。累算動作は、多数の数が累算動作に入り、1つの数が結果として出てくる簡約動作と考えられることができる。
【0052】
[0067]
図8は、例示的な実装による、AIモデルアーキテクチャの例示的なフローを示している。AIモデルアーキテクチャ802は、入力処理804、ニューラルネットワーク806、および出力フォーマッタ808を含む。AIモデルアーキテクチャ802は、入力としてデジタルコンテンツ810を受け取ってよく、入力処理804がそのデジタルコンテンツ810を処理する。入力処理804は、デジタルコンテンツ810の映像を複数のフレームとして処理してよく、またはデジタルコンテンツ810のオーディオを音声として処理してよい。次いで、入力処理804は、処理されたデジタルコンテンツ810をニューラルネットワーク806に提供してよい。ニューラルネットワーク806は、処理されたデジタルコンテンツ810に対して複数の動作を行ってよい。例えば、ニューラルネットワーク806は、処理されたデジタルコンテンツ内で物体を検出するように構成されてよい。例えば、ニューラルネットワーク806は、これらに限定されないが、人々、物体、テキスト等の1つまたは複数の種々の物体を、デジタルコンテンツ内で検出してよい。ニューラルネットワーク806は、検出された物体の各々に対して1つまたは複数のサブフレームを生成してよい。
【0053】
[0068]検出された物体のサブフレームが、ニューラルネットワーク806によってさらに処理されてよい。例えば、ニューラルネットワーク806は、サブフレームを処理して、検出された物体を分類または識別してよい。ニューラルネットワーク806は、検出された物体を分類または識別し、分類または識別された物体に関連する情報を出力フォーマッタ808に提供してよい。検出された物体が人々を含む事例では、ニューラルネットワーク806は、例えば、検出された人の身体部分を識別することを試みて、検出された人々に関連するサブフレームを処理してよい。例えば、ニューラルネットワーク806は、デジタルコンテンツ内の1人または複数の検出された人を識別するために顔認識または検出を行ってよい。
【0054】
[0069]入力処理804がデジタルコンテンツのオーディオを処理する場合、ニューラルネットワーク806は、音声認識のためにオーディオを処理してよい。ニューラルネットワーク806は、検出された音声を、自然言語処理を使用して処理してよい。自然言語処理は、デジタルコンテンツに関連する関連情報を検出または識別してよい。デジタルコンテンツのオーディオから得られた検出された関連情報は、出力フォーマッタ808に提供されてよい。
【0055】
[0070]出力フォーマッタ808は、ニューラルネットワーク806の出力を利用して、表示のための補足されたデジタルコンテンツ812を提供してよい。例えば、出力フォーマッタ808は、デジタルコンテンツのオーディオから得られた関連情報を利用して、そのオーディオから得られた関連情報に関係する補足されたデジタルコンテンツ812の中で広告、情報等を表示してよい。別の例では、出力フォーマッタ808は、デジタルコンテンツ内の1人または複数の検出された人に関係する情報を利用して、それら1人または複数の検出された人に関係する関連付けられた情報を表示してよい。例えば、1人または複数の検出された人が運動選手である場合は、関係するスポーツ用衣料品(例えば、ジャージ、ユニフォーム等)の広告が、補足されたデジタルコンテンツ812の中で表示されてよい。さらに別の例では、出力フォーマッタ808は、(検出された人々以外の)検出された物体に関係する情報を利用して、検出された物体に関係する補足されたデジタルコンテンツ812内で情報を表示してよい。例えば、検出された物体内の任意の検出されたテキストまたは項目を出力フォーマッタ808によって利用して、検出されたそのテキストまたは項目に関係する広告または情報を表示してよい。
【0056】
[0071]他の実装も可能であり、本開示は、本明細書に記載される実装に特に制限されない。本明細書において提案されるAI SoCは、望ましい実装に従って、そのような機能を利用することができる他のエッジシステムまたはサーバシステムに拡張されることもでき、そのようなシステムには、モバイルデバイス、監視デバイス(例えば、中央ステーションまたはローカルユーザ制御システムに接続されたカメラまたは他のセンサ)、パーソナルコンピュータ、タブレットもしくは他のユーザ機器、車両(例えば、ADASシステム、またはECUを利用したシステム)、モノのインターネットのエッジデバイス(例えば、アグリゲータ、ゲートウェイ、ルータ)、AR/VRシステム、スマート住宅および他のスマートシステムの実装等が含まれる。
【0057】
[0072]
図9は、例示的な実装による、クラウド情報およびソーシャルメディア情報で補足されたデジタルコンテンツの例を示している。
図9の例では、ソーシャルメディアからの情報がデジタルコンテンツを補足するように、ソーシャルメディア(例えば、ソーシャルメディアの投稿)が、デジタルコンテンツと関係付けられてよい。例えば、本明細書に記載されるサーバ/ハブデバイスからメタデータ/ソーシャルメディアの投稿または該当する命令を受け取った後に、デジタルコンテンツに結びつけられたソーシャルメディアアプリケーション上で投稿しているユーザが、エッジデバイスによってデジタルコンテンツに重畳されてよい。デジタルコンテンツと共に表示されるソーシャルメディアからのコンテンツは、ソーシャルオーバーレイとして知られることがある。ソーシャルオーバーレイは、ユーザ同士が、人々がテレビで見ているものについてソーシャルメディア上で共有体験を有することを可能にし得る。例えば、デジタルコンテンツ内の検出された物体または人々の上に、ソーシャルオーバーレイが重畳されてよい。一部の態様では、ディスプレイ上の表示項目がデジタルコンテンツと共に提供され得るように、選手が選択されてよい。ソーシャルオーバーレイで補足されたデジタルコンテンツは、ソーシャルメディアに投稿され得る。ソーシャルオーバーレイの一部として表示される項目は、ランダムであってもまたは事前に設定されてもよい。
【0058】
[0073]
図10は、例示的な実装による、クラウド情報および電子商取引情報で補足されたデジタルコンテンツの例を示している。一部の態様では、デジタルコンテンツ内の検出された物体は、電子商取引アプリケーションに関係付けられてよい。例えば、リアルタイムのスポーツイベントでは、ジャージ、ユニフォーム、または運動用衣料品がデジタルコンテンツ内で検出されてよく、検出されたジャージ、ユニフォーム、または運動用衣料品が、同様のまたは関係するジャージ、ユニフォーム、または運動用衣料品を購入するためのリンクをトリガしてよい。リンクは、適切なメタデータまたはそれに対する命令がサーバ/ハブデバイスによって提供された後に、電子商取引ウェブサイトへのインターフェイスが、エッジデバイスによってデジタルコンテンツと共に表示デバイスに表示され得るように選択されてよい。例示的な実装では、命令は、別のデバイスのアプリケーションによって管理されるグラフィカルユーザインターフェイス(GUI)上にメニューを生成するための命令を伴うことができる。例えば、メタデータは、
図4Bに示されるように命令を含むことができ、その命令は、実行されると、対応するポップアップメニューをアプリケーションのGUIに出現させる(例えば、購入が可能なジャージや他の物を示すポップアップメニュー、より多くの情報を得るためにリンクが利用可能であることを示すメニュー等)。
【0059】
[0074]
図11は、例示的な実装による、検出アルゴリズムからの出力の例を示している。検出アルゴリズムは、デジタルコンテンツ内の人々などの物体を検出してよい。例えば、検出アルゴリズムは、選手ならびに検出された選手の身体部分(例えば、手、顔、脚、足、胴等)を検出してよい。検出アルゴリズムは、ボール、バスケット、またはバックボードなど、コンテンツ内の物体を検出してもよい。検出アルゴリズムは、広告やデジタルコンテンツに関与する選手/チームの点数など、デジタルコンテンツ内のテキストを検出してもよい。検出アルゴリズムは、人を検出すると、望ましい実装に応じて、その選手を識別することを試みて検出された人をさらに処理してよく、選手の名前をデジタルコンテンツ内に提供することができる。そのような物体/人々が検出され、分類されると、それに応じて適切なメタデータまたは命令が生成されることができ、それがエッジデバイスを制御して、本明細書における例に示されるように分類された物体/人々に基づいて何らかのプロセスを実行させる。例示的な実装は、当技術分野で知られる任意のAI/NNに基づく物体検出、物体認識アルゴリズムを利用して望ましい実装を容易にすることができる。
【0060】
[0075]生成されたメタデータに基づいて命令を実行するまたはオーバーレイを提供する例において、
図12は、例示的な実装による、カスタマイズされたデジタルコンテンツの例を示している。一部の態様では、デジタルコンテンツ内で物体を検出すると、検出された物体の位置を示すメタデータまたは特定の物体をオーバーレイで変更するための命令を受け取った後に、検出された物体が、カスタマイズ可能なオーバーレイを含むようにエッジデバイスによって変更されてよい。例えば、
図12はリアルタイムのバスケットボールの試合の例を提供し、ここではバスケットボールが検出されている。バスケットボールは、カスタマイズ可能なオーバーレイを含むように選択されてよく、オーバーレイは、
図12の例では、火と煙から構成されるオーバーレイを含んでいる。場合によっては、火と煙のオーバーレイを有するバスケットボールは、バスケットボールをシュートした者が良い試合をしており、その選手が「燃えて」いることを示すために利用され得る。しかし、場合によっては、多くの異なるオーバーレイが、検出された物体との関連で使用されてよく、本開示は、火と煙から構成されるオーバーレイに制限されない。
【0061】
[0076]
図13は、例示的な実装による、AI SoCを用いるサーバまたはハブデバイスの例示的な構成を示している。例示的な実装では、望ましい実装に従って、サーバ/ハブデバイス1300は、コンテンツI/O1301、
図5に関して説明したネットワークI/Oインターフェイス501、AI SoC500、およびメモリ506、プロセッサ1303等を含むことができる。
【0062】
[0077]コンテンツI/O1301は、AI SoC500を通じたAI/NNモデルによる処理のために、直接のコンテンツを提供するように構成されることができる。望ましい実装に応じて、コンテンツI/O1301は、直接の画像/映像/オーディオインターフェイス(例えば、高精細度マルチメディアインターフェイス(HDMI)入力、アナログ入力、オーディオ入力、カメラからのカメラフィード等)を含むことができ、または、望ましい実装に従って、AI/NNモデル処理を必要とする任意の他の直接のデータインターフェイス(例えば、ローカルエリアネットワークからの、または直接接続、衛星インターフェイス、無線インターフェイスを介した、セキュリティ保護されたセンサデータフィード等)を伴うことができる。さらに、例示的な実装は、複数のデータ源を伴うことができ、コンテンツI/O1301は、サーバ/ハブデバイス1300によって受け取られるすべてのデータに対応するためのいくつかの異なるインターフェイスを伴うことができる。例えば、コンテンツI/O1301は、望ましい実装を容易にするために、任意数の同じまたは異なるデバイスを供給源とする画像、オーディオ、またはデータの任意の組合せを受け取るように構成されることができる。
【0063】
[0078]ネットワークI/Oインターフェイス501は、望ましい実装に従って、クラウドまたはインターネットからの外部データに接続するための任意のインターフェイスを含むことができる。そのような外部データは、クラウドデータベースから抽出されることができ、望ましい実装に従って、メモリ506に格納されているAI/NNモデルを更新するための対数量子化されたパラメータ等を含むことができる。
【0064】
[0079]サーバ/ハブデバイス1300は、望ましい実装に従って、任意数のAI SoC500を伴うことができる。メモリ506は、AI SoC500にロードされる、訓練済みAI/NNモデルの対数量子化されたパラメータを格納するように構成されることができ、そのため、AI SoC500は、それに応じてシフトおよび/または加算演算を実行して、データに対してAI/NNモデルを実行することにより、エッジデバイスが使用するためのメタデータを生成することができる。プロセッサ1303は、望ましい実装に従って、AI SoC500の出力をメタデータ、補足データ、または他の出力に変換するなどの追加的な機能を容易にするための任意の命令をロードして実行するように構成されることができる。望ましい実装に応じて、プロセッサ1303は、AI SoC500からの出力を、対応するエッジデバイスによって実行するための命令に変換するための命令をロードして実行するように構成されることもでき、そのような命令は、ネットワークI/Oインターフェイス501を介して対応するエッジデバイスに送信されることができる。そのような命令は、エッジデバイスを制御するための命令を含むことができる(例えば、カメラを別の角度に回転させる、空気圧縮機のモータ回転数を調整する、オーバーレイを生成する、またはユーザインターフェイスにメニューを出現させる等)。
【0065】
[0080]例示的な実装では、サーバ/ハブデバイス1300は、ストリーミングテレビサービスのブロードキャスト側にあることができ、そのサービスから、すべてのストリーミングブロードキャストが、エッジデバイスに、および同時にサーバ/ハブデバイス1300に送信される。サーバ/ハブデバイス1300は、未処理のブロードキャストを処理し、それに応じてAI/NNモデルを実行して、エッジデバイス内のアプリケーションが使用するためのメタデータ/補足データを生成することができる。次いで、エッジデバイス内のアプリケーションは、そのメタデータ/補足データを使用して、
図9~12等に示されるように、表示コンテンツ上にオーバーレイを生成することができる。別の例示的な実装では、サーバ/ハブデバイス1300は、望ましい実装に従って、メニューを呼び出す、モバイルデバイスまたはモバイルデバイスとペアリングされた他のデバイスと対話する(例えば、ペアリングされたモバイルデバイスに電子商取引またはソーシャルメディア情報を提供する)等のために、エッジデバイスのアプリケーションに送信する命令を生成することもできる。そのような例示的な実装を容易にするために任意数のサーバ/ハブデバイス1300が利用されてよく、望ましい実装を容易にするために、複数のサーバ/ハブデバイス1300が、クラウドサービスの提供者として同じようにして使用されることができる。
【0066】
[0081]例示的な実装では、サーバ/ハブデバイス1300は、望ましい実装を容易にするために、ローカルネットワーク内の1つまたは複数のエッジデバイスと対話する/それらを制御するように構成されることができ、または、クラウドを通じて1つまたは複数のエッジデバイスと対話する/それらを制御するエッジサーバとして機能することができる。ローカルネットワーク内の1つまたは複数のエッジデバイスを制御するサーバ/ハブデバイスの例示的な実装では、そのような実装は、高いプライバシーを必要とするシステム(例えば、住宅デバイス、スマート工場フロア等)内で使用されることができ、ここでは、送信されるデータはAI/NNモデルの処理を必要とするが、データはプライベートでもある。一例では、1つまたは複数の住宅カメラがサーバ/ハブデバイス1300に監視映像フィードを提供することができ、ソフトウェアが使用されて、その住宅の所望の構成員(例えば、家族、ペット等)を認識するようにAI/NNモデルを訓練することができる。AI/NNモデルは、次いで対数量子化され、サーバ/ハブデバイス1300のメモリに格納されて、インターネットを通じて画像データを送信する必要なしに、および/またはサーバ/ハブデバイス1300がインターネットに接続されることを必要とせずに、ローカルセキュリティシステムを容易にし、それによりデータのセキュリティを向上させる。望ましい実装に従って他のデバイスがサーバ/ハブデバイスと対話してもよく、本開示はこれに制限されない。例えば、望ましい実装に従って、カメラおよび他のセンサが冷蔵庫内に設置されて、商品を監視して買い物リストを生成し、食品が期限切れになろうとしている時にそれを知らせ、または示される商品に関するレシピを示すことができる。エッジデバイスからのデータまたは他のフィードバックに対してAI/NNモデルを実装するための任意の望ましい実装が利用されることができる。
【0067】
[0082]サーバ/ハブデバイス1300の例示的な実装では、メモリ506が、1つまたは複数の訓練済みニューラルネットワークモデル(例えば、物体検出モデル、物体認識モデル、顔認識モデル等)を格納するように構成され、各モデルは、1つまたは複数の対数量子化されたパラメータ値から構成され得る1つまたは複数のニューラルネットワーク動作(例えば、ニューラルネットワーク層)によって表されることができる。一例では、
図11に示されるように、物体検出モデルが、そのようなニューラルネットワーク動作を通じて画像データ上の1つまたは複数の物体を分類するように構成されることができる。サーバ/ハブデバイス1300は、AI SoC500を伴うこともでき、それは、(例えば、IPU502を介して)画像データを取り込むことと、1つまたは複数の訓練済みニューラルネットワークモデル(例えば、物体検出モデル、物体認識モデル等)を(例えばAPU504を介して)実行して、1つまたは複数のニューラルネットワーク動作を通じて、受信された画像データを処理する(例えば、画像データから1つまたは複数の物体を分類する)ことと、を含む方法またはコンピュータ命令を実行するように構成されることができる。
図6に示されるように、1つまたは複数のニューラルネットワーク動作が、メモリ506から読み出された1つまたは複数の対数量子化されたパラメータ値に基づいて、論理シフト演算によって画像データに実行されることができ(例えば、対数量子化されたパラメータ608から導出されたシフト命令を介して、事前処理された画像データ606に)、1つまたは複数のニューラルネットワークモデルの出力に基づいて(例えば、
図11に示されるように、物体検出モデルからの画像データ出力から分類された1つまたは複数の物体に基づいて)、画像データを補足する(例えば、
図9~11に示されるようにアノテーションまたはオーバーレイを介して)ためのメタデータを生成する。サーバ/ハブデバイス1300は、画像データを受信する1つまたは複数の他のデバイス(例えば、1401)にメタデータ(例えば、
図3、
図4A、
図4Bに示されるような)を送信するように構成されたインターフェイス501を伴うことができる。
【0068】
[0083]望ましい実装に応じて、メタデータは、1つまたは複数の他のデバイスによって1つまたは複数のオーバーレイとして画像データ上に提供される、1つまたは複数のソーシャルメディアの投稿に関連する情報(例えば、
図3、
図4A、または
図4Bに組み込まれたものとして
図9に示されるように)を伴うことができる。
【0069】
[0084]望ましい実装に応じて、
図6に示されるように、AI SoC500の1つまたは複数のシフタ回路にシフト命令を供給することにより、論理シフト演算が実行される。同様に、1つまたは複数のニューラルネットワーク動作に対応する加算演算が、AI SoC500内の1つまたは複数のシフタ回路あるいは1つまたは複数の加算器回路によって実行されることもできる。
【0070】
[0085]望ましい実装に応じて、論理シフト演算は、フィールドプログラマブルゲートアレイ(FPGA)によって実行されることができる。すなわち、FPGAは、
図6の回路およびその変形例の機能と同等の機能を実行すると共に、望ましい実装に従ってAI SoC500の任意の他の機能を容易にするための専用ハードウェアとして、プログラムおよび構成されることができる。
【0071】
[0086]望ましい実装に応じて、論理シフト演算は、中央処理装置(CPU)などの1つまたは複数のハードウェアプロセッサによって実行されることもできる。すなわち、AI SoC500は、ハードウェアプロセッサを用いてコンピュータプログラムを実行して、論理シフト演算を実行することができる。そのような例示的な実装は、専用ハードウェアが利用可能でない場合に、AI/NN動作を処理するための実行サイクルおよび消費電力の節減を可能にすることができる。
【0072】
[0087]望ましい実装に応じて、デバイス1300は、サーバであることができ、画像データは、テレビの映像/オーディオデータを伴うことができる。そのような例示的な実装では、テレビコンテンツは、テレビなどのエッジデバイスにブロードキャストされることができ、サーバは、望ましい実装に従って、メタデータおよびテレビの映像/オーディオデータ等をブロードキャストすることがでる。
【0073】
[0088]望ましい実装に応じて、インターフェイス501は、コンテンツサーバ(例えば、クラウド102を容易にするために使用される1つまたは複数のコンテンツサーバ、インターネットで検索可能な補足コンテンツを容易にするコンテンツサーバ、データベースから補足コンテンツを提供するように構成されたコンテンツサーバ等)からデータを検索するように構成されることができ、メモリ506は、
図4Cに示されるように、分類された物体をデータにマッピングする情報を、コンテンツサーバからの検索のために格納するように構成され、AI SoC500は、メモリからその情報を読み出して、画像データから分類された1つまたは複数の物体に基づいて、対応するマッピングをメタデータとして提供するように構成される。
【0074】
[0089]望ましい実装に応じて、その情報は、
図4Cおよび
図10に示されるように、分類された物体を、購入可能な物体に関係するデータにマッピングすることができ、AI SoCは、メモリからその情報を読み出し、購入可能な物体のうち対応するものを、インターフェイスを通じてコンテンツサーバから検索するように構成され、購入可能な物体のうち対応するものは、画像データから分類された1つまたは複数の物体に基づく情報として提供される。
【0075】
[0090]望ましい実装に応じて、1つまたは複数のニューラルネットワークモデルは、訓練済みニューラルネットワークの対数量子化されたパラメータ値に従って、1つまたは複数のニューラルネットワーク動作を通じて画像データに顔認識を行う顔認識モデルを伴うことができ、AI SoC500は、顔認識で識別された顔に基づいてメタデータを生成するように構成される。
【0076】
[0091]望ましい実装に応じて、インターフェイス501は、サーバ(例えば、クラウド102にある1つまたは複数のサーバ)から1つまたは複数の対数量子化されたパラメータを検索し、この1つまたは複数の対数量子化されたパラメータをメモリに格納するように構成される。対数量子化されたパラメータは、データ処理を行う1つまたは複数の訓練済みニューラルネットワーク/AIモデルを構成する、1つまたは複数のニューラルネットワーク/AI動作を表すことができる。
【0077】
[0092]望ましい実装に応じて、メタデータは、
図3、
図4A、および
図4Bに示されるように、画像データ内のフレームの識別子、物体検出モデルによってフレーム内で識別された1つまたは複数の物体、フレーム内で識別された1つまたは複数の物体の座標、およびフレーム内で識別された1つまたは複数の物体に関連するデータ、を伴うことができる。
【0078】
[0093]望ましい実装に応じて、フレーム内で識別された1つまたは複数の物体に関連するデータは、
図3、
図4A、
図4B、
図4C、および
図9に示されるようにオーバーレイとして使用されるためのソーシャルメディアの投稿を伴うことができる。
【0079】
[0094]望ましい実装に応じて、1つまたは複数の物体に関連するデータは、
図4Cに示されるようにコンテンツサーバから検索された1つまたは複数のオーバーレイを伴うことができる。
【0080】
[0095]望ましい実装に応じて、1つまたは複数の物体に関連するデータは、
図4Bに示されるように1つまたは複数のエッジデバイスにより実行するための実行可能命令を伴うことができる。
【0081】
[0096]例示的な実装では、サーバ/ハブデバイス1300は、1つまたは複数の訓練済みニューラルネットワークモデルを格納するように構成されたメモリ506であって、1つまたは複数の訓練済みニューラルネットワークモデルは、1つまたは複数のニューラルネットワーク動作を通じて画像データを処理するように構成される、メモリ506と、インターフェイス501と、システムオンチップ(SoC)500と、を含むことができ、SoC500は、画像データを取り込むための方法またはコンピュータ命令を実行して、
図5に示されるように、1つまたは複数の訓練済みニューラルネットワークモデルを実行して、1つまたは複数のニューラルネットワーク動作を通じて画像データを処理することと、
図3および
図4A~4Cに示されるように、画像データの処理に基づいて画像データの補足コンテンツを提供するためのメタデータを生成することであって、メタデータは、インターフェイス501を介した別のデバイス(例えば
図1A~1Cのクラウド102にある1つまたは複数のコンテンツサーバ)からの接続から検索された情報に基づいて生成される、メタデータを生成することと、画像データを取り込んでいる1つまたは複数の他のデバイス(例えば、エッジデバイス104)に、インターフェイス501を通じてメタデータを送信することと、を行うように構成される。
【0082】
[0097]望ましい実装に応じて、メタデータは、
図9に示されるように、1つまたは複数の他のデバイス104によって1つまたは複数のオーバーレイとして画像データ上に補足コンテンツとして提供される、1つまたは複数のソーシャルメディアの投稿に関連する情報を伴うことができる。そのようなソーシャルメディアの投稿は、
図4Bに示されるように、インターネット接続からそのようなソーシャルメディアの投稿を受信するための実行可能命令により、
図4Aに示されるようにコンテンツとして提供されることができ、または、
図4Cに示されるように、マッピングに基づいてエッジデバイス104によって行われることができる。
【0083】
[0098]望ましい実装に応じて、SoC500は、
図6に示されるように、SoC内の1つまたは複数のシフタ回路により、1つまたは複数の訓練済みニューラルネットワークモデルを実行するように構成されることができる。
【0084】
[0099]別の例示的な実装では、SoCは、
図6の回路と同等の機能を実行するようにプログラムされた(例えば、1つまたは複数の論理シフト演算を通じて1つまたは複数の訓練済みニューラルネットワークモデルを実行するようにプログラムされた)フィールドプログラマブルゲートアレイ(FPGA)により、1つまたは複数の訓練済みニューラルネットワークモデルを実行するように構成される。別の例示的な実装では、SoCは、1つまたは複数のハードウェアプロセッサにより、1つまたは複数の訓練済みニューラルネットワークモデルを実行して、
図6の回路と同等の機能をコンピュータ命令によって行う(例えば、1つまたは複数の論理シフト演算を通じて1つまたは複数の訓練済みニューラルネットワークを実行する)ように構成されることができる。そのような例示的な実装では、
図6に示されるような専用回路が利用可能でないにも関わらず、ハードウェアデバイスでコンピューティングサイクルおよび電力が節減されることができる。
【0085】
[0100]望ましい実装に応じて、デバイス1300は、
図1Bに示されるように、インターフェイス501を通じて1つまたは複数のエッジデバイスに画像データを送信するように構成されることができる。
【0086】
[0101]例示的な実装では、サーバ/ハブデバイス1300は、1つまたは複数の訓練済みニューラルネットワークモデルを格納するように構成されたメモリ506であって、1つまたは複数の訓練済みニューラルネットワークモデルは、1つまたは複数のニューラルネットワーク動作を通じて画像データを処理するように構成される、メモリ506と、インターフェイス501と、システムオンチップ(SoC)500と、を含むことができ、SoC500は、
図5に示されるように、(例えば、IPU502を介して)画像データを取り込むことと、1つまたは複数の訓練済みニューラルネットワークモデルを実行して、1つまたは複数のニューラルネットワーク動作を通じて(例えばAPU504を介して)画像データを処理することと、
図4Bに示されるように、画像データの処理に基づいて、1つまたは複数の他のデバイスのアプリケーションによって実行するための命令を(例えば、OPU508を介して)生成することと、画像データを取り込んでいる1つまたは複数の他のデバイス104に、インターフェイス501を介して命令を送信することと、を含む方法または命令を実行するように構成される。
【0087】
[0102]例示的な実装では、上記命令は、
図10に関して説明されたように、別のデバイスのアプリケーションによって管理されるグラフィカルユーザインターフェイス(GUI)にメニューを生成するための命令を伴うことができる。
【0088】
[0103]例示的な実装では、サーバ/ハブデバイス1300は、訓練済みニューラルネットワークの対数量子化されたパラメータ値に従って、1つまたは複数のニューラルネットワーク動作を通じて入力データに分析を行うように構成された訓練済みニューラルネットワークモデルを格納するように構成されたメモリ506と、命令または方法を実行するように構成されたシステムオンチップ(SoC)500と、を含むことができ、命令または方法は、訓練済みニューラルネットワークを実行して、1つまたは複数のニューラルネットワーク動作を通じて入力データに分析を行うことであって、1つまたは複数のニューラルネットワーク動作は、メモリ506から読み出された1つまたは複数の対数量子化されたパラメータ値に基づく入力データに対する論理シフト演算によって実行される、分析を行うことと、インターフェイス501を通じて、入力データに対する分析に基づいて別のデバイスを制御することと、を含むことができ、その例は
図14に関して説明された。
【0089】
[0104]例示的な実装では、1つまたは複数のデバイスに送信される画像データを(例えば、IPU502を介して)取り込むことと、1つまたは複数の訓練済みニューラルネットワークモデルを実行して、1つまたは複数のニューラルネットワーク動作を通じて(例えば、APU504を介して)画像データを処理することと、画像データの処理に基づいて、画像データを補足するためのメタデータを生成することであって、メタデータは、別のデバイス(例えば、クラウド102)への接続から検索される情報に基づいて生成される、メタデータを生成することと、メタデータを1つまたは複数の他のデバイスに送信することであって、1つまたは複数のデバイスは、メタデータに従って画像データ上に1つまたは複数のオーバーレイを提供するように(例えば、
図9~11に示されるように)構成される、送信することと、を含むシステムおよび方法があることができる。
【0090】
[0105]
図14は、例示的な実装による、
図13のサーバ/ハブデバイスの例示的な実装が実装されることが可能な例示的なシステムを示している。1つまたは複数のエッジ/ネットワーク化デバイス1401が、
図13に示されるように、サーバ/ハブデバイス1402に接続されているネットワーク1400(例えば、ローカルエリアネットワーク(LAN)、ワイドエリアネットワーク(WAN)、WIFI等)に通信的に接続される。サーバ/ハブデバイス1402は、望ましい実装に応じて、LANまたはインターネット接続を介してデータベース/クラウドシステム1403に接続することができる。そのようなデータベース/クラウドシステム1403は、望ましい実装に応じて、提供されたメタデータに基づいてエッジ/ネットワーク化デバイス1401によって検索されることが可能なオーバーレイに関するデータを含むことができ、および/または、エッジ/ネットワーク化デバイス1401によって提供されるデータを含むこともできる。データベース/クラウドシステム1403は、当技術分野で知られるように、1つまたは複数のコンテンツサーバまたは格納システムを通じて実装されることができる。望ましい実装に応じて、システムは、望ましい実装に従って、複数の異種デバイスがサーバ/ハブデバイス1402によって管理または制御されることができる、モノのインターネット(IoT)システムとして実装されることもできる。
【0091】
[0106]例示的な実装では、サーバ/ハブデバイス1402は、エッジ/ネットワーク化デバイス1401に代わって、ニューラルネットワークモデルを実行することによって分析を行うように構成されることもできる。そのような例示的な実装では、そのようなエッジ/ネットワーク化デバイス1401は、AI/NNモデルによる処理のためにサーバ/ハブデバイス1402にデータを送信するように構成されることができ、サーバ/ハブデバイス1402は、該当する処理を行い、それに応じて命令の送信を通じてエッジ/ネットワーク化デバイスを制御することができる。
【0092】
[0107]例えば、セキュリティシステムでは、望ましい実装に従って、エッジ/ネットワーク化デバイス1401が、監視カメラ、音センサ、モバイルデバイス、ラップトップ、TV、ドアセンサ等を伴うことができる。映像データまたは他のデータが、エッジ/ネットワーク化デバイス1401からサーバ/ハブデバイス1402に送信されて、侵入者を検出するように構成されたAI SoC上のAI/NNモデルで処理されることができ、侵入者が検出された場合、サーバ/ハブデバイス1402は、それに応じて命令を送信する(例えば、モバイルデバイスに監視カメラから映像フィールドを取り出すように命じる)、または、それに応じてメタデータを送信する(例えば、示されたデバイスから侵入に関するメタデータをモバイルデバイスに送り、モバイルデバイスは、それに応じて知らされた侵入を知らせるためのメッセージを生成するか、またはメニューをロードする)ように構成されることができる。
【0093】
[0108]別の例では、サーバ/ハブデバイス1402は、複数の工場デバイスを制御するための工場フロアにあるプログラム可能論理コントローラ(PLC)の形態であることができる。そのような例示的な実装では、そのような工場デバイスが、サーバ/ハブデバイス1402にセンサデータを送信してよく、サーバ/ハブデバイス1402は、望ましい実装に従ってAI SoCを通じてAI/NNモデルを実行することでそのような工場デバイスを制御する。例えば、AI/NNモデルは、分析を行って工場デバイスが故障を起こしそうであるかどうかを判断するように構成されたニューラルネットワークモデルを実行してよく、故障を起こしそうな場合、サーバ/ハブデバイス1402は、さらなる損害を回避するために電源を落とすようにそのような工場デバイスを制御するように構成されることができる。
【0094】
[0109]望ましい実装に従って他の分析の例も可能であり得、本発明は特に制限されない。例えば、工場ラインにあるさまざまなデバイスからのセンサデータが訓練済みニューラルネットワークモデルによって分析されて、望ましい実装に従って調節することができる。分析に基づく変更の他の例には、望ましい実装に従って、分析結果に応じてセンサが再構成されること、分析に応じて音声認識パラメータが変更されること等が含まれ得る。
【0095】
[0110]上記の例示的な実装は、望ましい実装に従って、任意のネットワーク化された環境およびデバイスに拡張されることができる。当業者は、望ましい実装に従って、本明細書に記載される例示的な実装を利用して、ネットワーク化デバイスによって処理するためのメタデータを生成する、またはそのようなネットワークデバイスを命令で制御することができる。
【0096】
[0111]詳細な説明の一部は、コンピュータ内の動作のアルゴリズムおよび記号的表現として提示されている。これらのアルゴリズム的記述および記号表現は、革新的技術の本質を他の当業者に伝達するために、データ処理技術の当業者によって使用される手段である。アルゴリズムは、望まれる最終状態または結果につながる一連の定義されたステップである。例示的な実装では、実行されるステップは、有形の結果を達成するために、有形の量の物理的操作を必要とする。
【0097】
[0112]説明から明らかであるように、特に具体的に述べられない限り、説明全体を通じて、「処理」、「計算」、「算出」、「決定」、「表示」などの用語を利用する説明は、コンピュータシステムのレジスタおよびメモリ内の物理(電子)量として表されたデータを操作して、コンピュータシステムのメモリまたはレジスタあるいはその他の情報の格納デバイス、送信デバイス、または表示デバイス内の物理量として同様に表された他のデータに変換する、コンピュータシステムまたはその他の情報処理デバイスの動作およびプロセスを含むことができると理解される。
【0098】
[0113]例示的な実装は、本明細書における動作を実行するための装置に関連してもよい。この装置は、必要とされる目的のために特別に構築されてよく、あるいは1つまたは複数のコンピュータプログラムによって選択的に作動または再構成される1つまたは複数の汎用コンピュータを含んでよい。そのようなコンピュータプログラムは、コンピュータ可読ストレージ媒体またはコンピュータ可読信号媒体などのコンピュータ可読媒体に格納されてよい。コンピュータ可読ストレージ媒体は、これらに限定されないが、光ディスク、磁気ディスク、読み取り専用メモリ、ランダムアクセスメモリ、半導体デバイスおよびドライブ、あるいは電子情報を格納するのに適している任意のその他の種類の有形または非一過性の媒体などの、有形の媒体を含んでよい。コンピュータ可読信号媒体は、搬送波などの媒体を含んでよい。本明細書において提示されたアルゴリズムおよび表示は、本質的に、どの特定のコンピュータまたはその他の装置にも関連していない。コンピュータプログラムは、望ましい実装の動作を実行する命令を伴う純粋なソフトウェア実装を含むことができる。
【0099】
[0114]さまざまな汎用システムが、本明細書における例に従って、プログラムおよびモジュールと共に使用されてよく、または、望まれる方法のステップを実行するために、より特殊な装置を構築することが便利であると判明することもある。加えて、例示的な実装は、いずれかの特定のプログラミング言語を参照して説明されない。本明細書に記載された例示的な実装の技術を実装するために、さまざまなプログラミング言語が使用されてよいことが理解されるであろう。プログラミング言語の命令は、1つまたは複数の処理デバイス(例えば、中央処理装置(CPU)、プロセッサ、またはコントローラ)によって実行されてよい。
【0100】
[0115]当技術分野において知られているように、上記の動作は、ハードウェア、ソフトウェア、またはソフトウェアとハードウェアの何らかの組合せによって実行されることができる。例示的な実装のさまざまな態様は、回路および論理デバイス(ハードウェア)を使用して実装されてよいが、他の態様は、機械可読媒体に格納された命令(ソフトウェア)を使用して実装されてもよく、これらの命令は、プロセッサによって実行された場合、プロセッサに、本出願の実装を実行するための方法を実行させる。さらに、本出願の一部の例示的な実装は、ハードウェアのみで実行されてよく、一方、他の例示的な実装は、ソフトウェアのみで実行されてよい。さらに、説明されたさまざまな機能は、単一のユニットにおいて実行されることができ、または任意数の方式で複数のコンポーネントにわたって分散されることができる。ソフトウェアによって実行される場合、方法は、コンピュータ可読媒体に格納された命令に基づいて、汎用コンピュータなどのプロセッサによって実行されてよい。必要に応じて、命令は、圧縮された形式および/または暗号化された形式で媒体に格納されることができる。
【0101】
[0116]さらに、本明細書の検討および本出願の教示の実践から、本出願の他の実装が当業者にとって明らかになるであろう。説明された例示的な実装のさまざまな態様および/またはコンポーネントが、単独で、または任意の組合せで使用されてよい。本明細書および例示的な実装は、単なる例と見なされることが意図され、本出願の真の範囲および思想は、以下の特許請求の範囲によって示されている。
【手続補正書】
【提出日】2024-08-08
【手続補正1】
【補正対象書類名】明細書
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【発明の詳細な説明】
【技術分野】
【0001】
関連出願の相互参照
[0001]本出願は、2021年5月5日に出願され、「Systems and Methods Involving Artificial Intelligence and Cloud Technology for Edge and Server SOC」と題された、米国仮出願第63/184,576号、2021年5月5日に出願され、「Systems and Methods Involving Artificial Intelligence and Cloud Technology for Edge and Server SOC」と題された、米国仮出願第63/184,630号、および、2022年4月29日に出願され、「IMPLEMENTATIONS AND METHODS FOR PROCESSING NEURAL NETWORK IN SEMICONDUCTOR HARDWARE」と題された、PCT出願第PCT/US22/27035号に対する恩恵および優先権を主張し、それらの開示はその全体が参照によって本明細書に明示的に組み込まれている。
[0002]本開示は、概して、人工知能/ニューラルネットワーク(AI/NN)処理のためのシステムおよびアーキテクチャを対象とし、より具体的には、サーバシステムオンチップ(SoC)のためのAIおよびクラウド技術を伴うシステムおよび方法を対象とする。
関連技術
【0002】
[0003]今日、多くの形態のデジタルコンテンツがある。最初に用語を定義すると、「デジタルコンテンツ」とは、消費者が消費する任意の視覚、可聴、およびテキストのコンテンツである。一例として、テレビ(TV)のデジタルコンテンツは、画像、映像、音声、およびテキストを含む。そのようなデジタルコンテンツの配信機構には、イーサネット、衛星、ケーブル、携帯電話網、インターネット、ならびにWIFI、および/または同類のものがある。コンテンツを配信するために使用されるデバイスには、テレビ(TV)、携帯電話、自動車ディスプレイ、監視カメラディスプレイ、パーソナルコンピュータ(PC)、タブレット、強化現実/仮想現実(AR/VR)デバイス、およびさまざまなモノのインターネット(IoT)デバイスが含まれ得る。デジタルコンテンツは、生のスポーツイベントなどの「リアルタイム」のコンテンツと、映画や連続ドラマまたは他の事前に録画されたイベントもしくは生でないイベントなどの「用意された」コンテンツとに分けることもできる。現在、「リアルタイム」のコンテンツと「用意された」コンテンツはどちらも、さらなる補足または処理を行わずに消費者に提示されている。
【発明の概要】
【0003】
[0004]本明細書に記載される例示的な実装は、デジタルコンテンツを処理して、物体検出、物体分類、顔認識、テキスト検出、自然言語処理から得られる情報などの、コンテンツに関するインテリジェントな情報を入手し、クラウド/インターネット/任意の場所で見つかった適切な関連する情報を、処理されて消費者に提示できる状態になるデジタルコンテンツの部分に結びつける/アノテーションするための新規な手法を伴う。例示的な実装は、処理されたデジタルコンテンツを、クラウド/インターネットで見つかった関連する適切な情報に結びつける/アノテーションする方法を提供し、ハードウェア、ソフトウェア、またはそれらの何らかの組合せとして実装される。
【0004】
[0005]本明細書に記載される例示的な実装は、視覚コンテンツおよびオーディオコンテンツを分類することをさらに伴う。例示的な実装は、視覚コンテンツ内の人、物体、概念、シーン、テキスト、および言語を分類/識別することができる。例示的な実装は、オーディオコンテンツをテキストに変換し、その変換されたテキスト内で関連する情報を識別することができる。
【0005】
[0006]本明細書に記載される例示的な実装は、クラウド/インターネットから任意の適切な情報を取得し、見つかった情報で視覚コンテンツおよびオーディオコンテンツを補足することをさらに伴う。
【0006】
[0007]本明細書に記載される例示的な実装は、補足されたコンテンツを消費者に提示することをさらに伴う。
【0007】
[0008]本明細書に記載される例示的な実装における分類/識別プロセスは、画像、映像、音声、および言語を処理して、人々(例えば、ある者が誰であるか)、物体の部類(車、船等)、テキスト/言語の意味、任意の概念、または任意のシーンを識別するステップを伴う。この分類ステップを達成することができる方法の一例は、画像、映像、および言語を分類することができるさまざまな人工知能(AI)モデルである。しかし、従来のアルゴリズムなどの他の代替方法があり得る。
【0008】
[0009]本開示において、「クラウド」は、インターネット、任意のサーバ、任意形態のデータベース、任意のコンピュータメモリ、任意の格納デバイス、または任意の消費者デバイスに存在する任意の情報を伴うことができる。
【0009】
[0010]本開示の態様はデバイスを伴うことができ、このデバイスは、1つまたは複数の対数量子化されたパラメータ値によって表される訓練済みニューラルネットワークの形態の物体検出モデルを格納するように構成されたメモリであって、物体検出モデルは、訓練済みニューラルネットワークの対数量子化されたパラメータ値に従って、1つまたは複数のニューラルネットワーク動作を通じて画像データ上で1つまたは複数の物体を分類するように構成される、メモリと、システムオンチップ(SoC)であって、画像データを取り込むことと、物体検出モデルを実行して、1つまたは複数のニューラルネットワーク動作を通じて画像データの1つまたは複数の物体を分類することであって、1つまたは複数のニューラルネットワーク動作は、メモリから読み出された1つまたは複数の対数量子化されたパラメータ値に基づく、画像データに対する論理シフト演算によって実行される、物体を分類することと、画像データから分類された1つまたは複数の物体に基づいて画像データをアノテーションするためのメタデータを生成することと、を行うように構成されたSoCと、画像データを受信する1つまたは複数の他のデバイスにメタデータを送信するように構成されたインターフェイスと、を含むことができる。
【0010】
[0011]本開示の態様はコンピュータプログラムを伴うことができ、このコンピュータプログラムは、画像データを取り込むことと、物体検出モデルを実行して、1つまたは複数のニューラルネットワーク動作を通じて画像データの1つまたは複数の物体を分類することであって、1つまたは複数のニューラルネットワーク動作は、メモリから読み出された1つまたは複数の対数量子化されたパラメータ値に基づく、画像データに対する論理シフト演算によって実行される、物体を分類することと、画像データから分類された1つまたは複数の物体に基づいて画像データをアノテーションするためのメタデータを生成することと、画像データを受信する1つまたは複数の他のデバイスにメタデータを送信することと、を伴う命令を含むことができる。コンピュータプログラムおよび命令は、1つまたは複数のプロセッサにより実行するために非一過性のコンピュータ可読媒体に格納されることができる。
【0011】
[0012]本開示の態様は方法を伴うことができ、この方法は、画像データを取り込むことと、物体検出モデルを実行して、1つまたは複数のニューラルネットワーク動作を通じて画像データから1つまたは複数の物体を分類することであって、1つまたは複数のニューラルネットワーク動作は、メモリから読み出された1つまたは複数の対数量子化されたパラメータ値に基づく、画像データに対する論理シフト演算によって実行される、物体を分類することと、画像データから分類された1つまたは複数の物体に基づいて画像データをアノテーションするためのメタデータを生成することと、画像データを受信する1つまたは複数の他のデバイスにメタデータを送信することと、を含むことができる。
【0012】
[0013]本開示の態様はシステムを伴うことができ、このシステムは、画像データを取り込む手段と、物体検出モデルを実行して、1つまたは複数のニューラルネットワーク動作を通じて画像データから1つまたは複数の物体を分類することであって、1つまたは複数のニューラルネットワーク動作は、メモリから読み出された1つまたは複数の対数量子化されたパラメータ値に基づく、画像データに対する論理シフト演算によって実行される、物体を分類することと、画像データから分類された1つまたは複数の物体に基づいて画像データをアノテーションするためのメタデータを生成する手段と、画像データを受信する1つまたは複数の他のデバイスにメタデータを送信する手段と、を含むことができる。
【0013】
[0014]本開示の態様はデバイスを伴うことができ、このデバイスは、1つまたは複数の訓練済みニューラルネットワークモデルを格納するように構成されたメモリであって、1つまたは複数の訓練済みニューラルネットワークモデルは、1つまたは複数のニューラルネットワーク動作を通じて画像データを処理するように構成される、メモリと、インターフェイスと、システムオンチップ(SoC)と、を備え、SoCは、画像データを取り込むことと、1つまたは複数の訓練済みニューラルネットワークモデルを実行して、1つまたは複数のニューラルネットワーク動作を通じて画像データを処理することと、画像データの処理に基づいて、画像データの補足コンテンツを提供するためのメタデータを生成することであって、メタデータは、インターフェイスを通じた別のデバイスへの接続から検索される情報に基づいて生成される、メタデータを生成することと、画像データを取り込んでいる1つまたは複数の他のデバイスに、インターフェイスを通じてメタデータを送信することと、を行うように構成される。
【0014】
[0015]本開示の態様は、デバイスを伴うことができ、このデバイスは、1つまたは複数の訓練済みニューラルネットワークモデルを格納するように構成されたメモリであって、1つまたは複数の訓練済みニューラルネットワークモデルは、1つまたは複数のニューラルネットワーク動作を通じて画像データを処理するように構成される、メモリと、インターフェイスと、システムオンチップ(SoC)と、を備え、SoCは、画像データを取り込むことと、1つまたは複数の訓練済みニューラルネットワークモデルを実行して、1つまたは複数のニューラルネットワーク動作を通じて画像データを処理することと、画像データの処理に基づいて、画像データの補足コンテンツを提供するためのメタデータを生成することであって、メタデータは、インターフェイスを通じた別のデバイスへの接続から検索される情報に基づいて生成される、メタデータを生成することと、画像データを取り込んでいる1つまたは複数の他のデバイスに、インターフェイスを通じてメタデータを送信することと、を行うように構成される。
【0015】
[0016]本開示の態様は方法を伴い、この方法は、画像データを取り込むことと、1つまたは複数の訓練済みニューラルネットワークモデルを実行して、1つまたは複数のニューラルネットワーク動作を通じて画像データを処理することと、画像データの処理に基づいて、画像データの補足コンテンツを提供するためのメタデータを生成することであって、メタデータは、インターフェイスを通じた別のデバイスへの接続から検索される情報に基づいて生成される、メタデータを生成することと、画像データを取り込んでいる1つまたは複数の他のデバイスに、インターフェイスを通じてメタデータを送信することと、を含むことができる。
【0016】
[0017]本開示の態様はコンピュータプログラムを伴い、このコンピュータプログラムは、画像データを取り込むことと、1つまたは複数の訓練済みニューラルネットワークモデルを実行して、1つまたは複数のニューラルネットワーク動作を通じて画像データを処理することと、画像データの処理に基づいて、画像データの補足コンテンツを提供するためのメタデータを生成することであって、メタデータは、インターフェイスを通じた別のデバイスへの接続から検索される情報に基づいて生成される、メタデータを生成することと、画像データを取り込んでいる1つまたは複数の他のデバイスに、インターフェイスを通じてメタデータを送信することと、を伴う命令を含むことができる。コンピュータプログラムおよび命令は、非一過性のコンピュータ可読媒体に格納されることができ、1つまたは複数のプロセッサによって実行されるように構成されることができる。
【0017】
[0018]本開示の態様はシステムを伴い、このシステムは、画像データを取り込む手段と、1つまたは複数の訓練済みニューラルネットワークモデルを実行して、1つまたは複数のニューラルネットワーク動作を通じて画像データを処理する手段と、画像データの処理に基づいて、画像データの補足コンテンツを提供するためのメタデータを生成する手段であって、メタデータは、インターフェイスを通じた別のデバイスへの接続から検索される情報に基づいて生成される、メタデータを生成する手段と、画像データを取り込んでいる1つまたは複数の他のデバイスに、インターフェイスを通じてメタデータを送信する手段と、を含むことができる。
【0018】
[0019]本開示の態様はデバイスを伴うことができ、このデバイスは、1つまたは複数の対数量子化されたパラメータ値によって表される訓練済みニューラルネットワークモデルを格納するように構成されたメモリであって、訓練済みニューラルネットワークモデルは、訓練済みニューラルネットワークの対数量子化されたパラメータ値に従って、1つまたは複数のニューラルネットワーク動作を通じて、入力データに分析を行うように構成される、メモリと、システムオンチップ(SoC)と、伴うことができ、SoCは、訓練済みニューラルネットワークを実行して、1つまたは複数のニューラルネットワーク動作を通じて、入力データに分析を行うことであって、1つまたは複数のニューラルネットワーク動作は、メモリから読み出された1つまたは複数の対数量子化されたパラメータ値に基づく入力データに対する論理シフト演算によって実行される、分析を行うことと、インターフェイスを通じて、入力データに対する分析に基づいて別のデバイスを制御することと、を行うように構成される。
【0019】
[0020]本開示の態様は方法を伴うことができ、この方法は、訓練済みニューラルネットワークを実行して、1つまたは複数のニューラルネットワーク動作を通じて、入力データに分析を行うことであって、1つまたは複数のニューラルネットワーク動作は、メモリから読み出された1つまたは複数の対数量子化されたパラメータ値に基づく入力データに対する論理シフト演算によって実行される、分析を行うことと、インターフェイスを通じて、入力データに対する分析に基づいて別のデバイスを制御することと、を伴う。
【0020】
[0021]本開示の態様はコンピュータプログラムを伴うことができ、このコンピュータプログラムは、訓練済みニューラルネットワークを実行して、1つまたは複数のニューラルネットワーク動作を通じて、入力データに分析を行うことであって、1つまたは複数のニューラルネットワーク動作は、メモリから読み出された1つまたは複数の対数量子化されたパラメータ値に基づく入力データに対する論理シフト演算によって実行される、分析を行うことと、インターフェイスを通じて、入力データに対する分析に基づいて別のデバイスを制御することと、のための命令を伴う。コンピュータプログラムおよび命令は、非一過性のコンピュータ可読媒体に格納され、1つまたは複数のプロセッサによって実行されることができる。
【0021】
[0022]本開示の態様はシステムを伴うことができ、このシステムは、訓練済みニューラルネットワークを実行して、1つまたは複数のニューラルネットワーク動作を通じて、入力データに分析を行う手段であって、1つまたは複数のニューラルネットワーク動作は、メモリから読み出された1つまたは複数の対数量子化されたパラメータ値に基づく入力データに対する論理シフト演算によって実行される、分析を行う手段と、インターフェイスを通じて、入力データに対する分析に基づいて別のデバイスを制御する手段と、を伴う。
【図面の簡単な説明】
【0022】
【
図1A】[0023]
図1A~
図1Cは、例示的な実施形態による、全体的なシステムアーキテクチャの例を示す図である。
【
図1B】[0023]
図1A~
図1Cは、例示的な実施形態による、全体的なシステムアーキテクチャの例を示す図である。
【
図1C】[0023]
図1A~
図1Cは、例示的な実施形態による、全体的なシステムアーキテクチャの例を示す図である。
【
図2】[0024]
図2は、例示的な実施形態による、AI SoCを用いるサーバまたはハブデバイスの例示的なフロー図である。
【
図3】[0025]
図3は、例示的な実施形態による、AI SoCを用いるサーバまたはハブデバイスによってコンテンツと併せて提供されることができる補足メタデータの例を示す図である。
【
図4A】[0026]
図4Aおよび
図4Bは、例示的な実施形態による、AI SoCを用いるサーバまたはハブデバイスによってコンテンツと併せて提供されることができる補足メタデータの例を示す図である。
【
図4B】[0026]
図4Aおよび
図4Bは、例示的な実施形態による、AI SoCを用いるサーバまたはハブデバイスによってコンテンツと併せて提供されることができる補足メタデータの例を示す図である。
【
図4C】[0027]
図4Cは、例示的な実施形態による、補足コンテンツへの出力ラベルのマッピングの例を示す図である。
【
図5】[0028]
図5は、例示的な実施形態による、AI SoCの例示的なアーキテクチャを示す図である。
【
図6】[0029]
図6は、例示的な実施形態による、AI処理要素(AIPE)の例示的な回路図である。
【
図7】[0030]
図7は、例示的な実施形態による、AIPEアレイの例を示す図である。
【
図8】[0031]
図8は、例示的な実施形態による、AIモデルアーキテクチャの例示的なフローを示す図である。
【
図9】[0032]
図9は、例示的な実施形態による、クラウド情報およびソーシャルメディア情報で補足されたデジタルコンテンツの例を示す図である。
【
図10】[0033]
図10は、例示的な実施形態による、クラウド情報および電子商取引情報で補足されたデジタルコンテンツの例を示す図である。
【
図11】[0034]
図11は、例示的な実施形態による、検出アルゴリズムからの出力の例を示す図である。
【
図12】[0035]
図12は、例示的な実施形態による、カスタマイズされたデジタルコンテンツの例を示す図である。
【
図13】[0036]
図13は、例示的な実施形態による、AI SoCを用いるサーバまたはハブデバイスの例示的な構成を示す図である。
【
図14】[0037]
図14は、例示的な実施形態による、
図13のサーバ/ハブデバイスの例示的な実装が実装されることが可能な例示的なシステムを示す図である。
【発明を実施するための形態】
【0023】
[0038]以下の詳細な説明は、本出願の図および例示的な実装の詳細を提供する。図間の冗長な要素の参照番号および説明は、明確にするために省略される。説明全体を通じて使用される用語は、例として提供されており、制限となるよう意図されていない。例えば、「自動的」という用語の使用は、本出願の実装を実践する当業者の望ましい実装に応じて、実装の特定の態様に対するユーザまたは管理者の制御を伴う完全に自動的な実装または半自動的な実装を含んでよい。選択が、ユーザインターフェイスまたはその他の入力手段を介して、ユーザによって実施されることができ、あるいは望ましいアルゴリズムによって実施されることができる。本明細書に記載されている例示的な実装は、単独で、または組み合わせて利用されることができ、例示的な実装の機能は、望ましい実装に従って任意の手段によって実装されることができる。
【0024】
[0039]本明細書に記載される例示的な実装は、サーバのための新規なAI SoCおよびブロードキャストアーキテクチャの使用を伴う。本明細書に記載される例示的な実装では、「リアルタイム」のデジタルコンテンツおよび「用意された」デジタルコンテンツが、さらなるアノテーションまたは処理なしで消費者に提示される(例えばブロードキャストされる)。先行する項で提案された技術は、デジタルコンテンツを処理し、消費者に提示するデジタルコンテンツのうち関連する部分に関して見つかった適切なクラウド情報を結びつけるための新規の手法である。例示的な実装が実装され、それが使用されて「補足データ」を作成し、そのような追加情報を本来のデジタルコンテンツと共に消費者に送ることができる。
【0025】
[0040]
図1A~1Cは、例示的な実装による全体的なシステムアーキテクチャを示している。
図1Aに示されるシステムアーキテクチャでは、本明細書に記載されるように、エッジデバイス104に、ならびにAI SoC103を利用するサーバまたは他のハブデバイスに、コンテンツ101がブロードキャストされる。コンテンツ101は、これらに限定されないが、衛星、TV、モバイルデバイスから、カメラ(例えば、監視カメラ)、パーソナルコンピュータからなど、任意の望ましい実装を通じてブロードキャストされることができる。サーバまたは他のハブデバイスは、エッジデバイス104にこれからブロードキャストされるコンテンツを観察し、AI/ニューラルネットワーク(NN)モデルおよび他の望ましい実装を使用してコンテンツを処理して、エッジデバイス104内でブロードキャストされたコンテンツと併せて使用されるための情報を生成するように構成される。例示的な実装では、コンテンツ101は、テレビ、映像/オーディオデータ、ストリーミング映像、監視映像等の画像データを含むことができる。しかし、本開示はそれに限定されず、望ましい実装および使用される基礎モデルに応じて、他のコンテンツがブロードキャストされることもできる。例えば、コンテンツは、オーディオ、センサデータ、奥行きカメラ画像データ、およびその他であり得る。
【0026】
[0041]クラウド102または別のインターネットリソースからの情報も、サーバまたはAI SoC103を利用する他のハブデバイスに提供される。そのような情報は、望ましい実装に応じて、クラウドリソースからのデータ、電子商取引情報、ソーシャルメディア情報、ウェブ情報、インターネット情報等を含み得る。AI SoC103を利用するサーバまたはハブデバイスは、コンテンツおよびクラウド情報を処理して、コンテンツと共に提供される適切な情報をペアリングする。映像ストリーミングデータを伴う例示的な実装では。例示的な実装では、AI SoC103を利用するサーバまたはハブデバイスは、AI/NNモデルを使用して、映像、オーディオ、およびテキストコンテンツを分類して、映像、オーディオ、およびテキストコンテンツを識別するコンテンツ分類105を生成する。コンテンツ分類105およびクラウド102からの関連する適切な情報に基づいて、補足データ106が識別され、それを使用して、受信された画像データのエッジ処理で使用するためにエッジデバイス104に提供されるメタデータ107を生成する。例示的な実装では、本明細書に記載されるように、エッジデバイスによるアノテーションなどの態様が、メタデータによって達成されることができ、それをエッジデバイス104が使用して、クラウド情報102を受信したコンテンツ101にリンクする。
【0027】
[0042]そのような例示的な実装を通じて、エッジデバイス104からの処理に代えて、専用のサーバ、またはブロードキャストされるコンテンツと併せて使用されるための情報をクラウド102から提供する中央ハブとして機能することができる他のハブデバイスによって、AI処理が行われることができる。さらに、AI SoC103において論理シフト演算を使用するという新規の手法を通じて、処理は、サーバまたはハブデバイスでシームレスかつ高速に(リアルタイムで)行われることができ、そのため、提供されるクラウド情報102は、エッジデバイス104が受信コンテンツ101を表示するかまたはその他の形で使用できる状態になる時までに、エッジデバイス104に提供されることができる。そのような例示的な実装を通じて、エッジデバイス104は、クラウド情報102とペアリングされた受信コンテンツ101を表示/使用することができ、これは、それを行うために必要とされる処理時間のために、関連技術の実装では本来可能でなかった。これは、人手によるメタデータのアノテーションまたは人手によるメタデータが事前に決定されることを必要とする、関連技術の実装に対する改良である。AI SoC103を用いるサーバまたはハブデバイスは、複数の異なるコンテンツを処理する複数の異なるエッジデバイス104に、そのようなペアリングを提供することができる。
【0028】
[0043]「リアルタイム」のコンテンツおよび「用意された」デジタルコンテンツ101は、イーサネット、衛星、ケーブル、ローカルエリアネットワーク(LAN)、ワイドエリアネットワーク(WAN)およびWIFIなどの接続を介して、これらに限定されないが、TV、携帯電話、自動車ディスプレイ、監視カメラディスプレイ、PC、タブレット、AR/VR デバイス、およびさまざまなモノのインターネット(IoT)デバイスを含み得る、エッジデバイス104に配信される。
【0029】
[0044]
図1Bは、別の例示的なアーキテクチャを示しており、ここでは、コンテンツ101がメタデータと併せてまたはそれと共にエッジデバイスに提供される。
図1Aで、コンテンツ101の画像データは、AI SoC103を管理するサーバまたはハブデバイスに対するブロードキャストも行っている何らかのブロードキャストデバイスから、エッジデバイスによって受信されることができる。しかし、コンテンツ101は、必要な場合には、AI SoC103を管理するサーバまたはハブデバイスから受信されることができる。そのような例示的な実装では、サーバまたはハブデバイスが、コンテンツ101と併せて、またはコンテンツ101の中に一体化された、メタデータを1つまたは複数のエッジデバイスに提供することができる。
【0030】
[0045]
図1Cは、例示的な実装による、すでに処理されたメタデータのリポジトリを伴う例示的な実装を示している。例示的な実装では、メタデータは、同様のコンテンツ101を受信している他のデバイスのために再使用されてよい。例えば、サーバまたはハブデバイスがデジタルコンテンツのリポジトリ(例えば、その映像コンテンツを要求するデバイスに提供される映像コンテンツのライブラリを管理しているストリーミングアプリケーション)を管理している場合、リポジトリ内のいずれかのデジタルコンテンツのために生成されたメタデータが、同じデジタルコンテンツを要求する他のエッジデバイスのために再使用されることができる。そのような例示的な実装では、さらに再使用するようにメタデータ107を格納するためにメタデータリポジトリ110が利用されることができ、リポジトリは、望ましい実装に従って、クラウドシステム、データベース、格納システム等の形態であることができる。
【0031】
[0046]
図2は、例示的な実装による、AI SoCを用いるサーバまたはハブデバイスの例示的なフロー図を示している。デジタルコンテンツを配信する前に、コンテンツが処理されて、AI SoCを用いるサーバまたはハブデバイスによる以下のステップを経ることができる。
【0032】
[0047]視覚、オーディオ、およびテキストコンテンツを分類/識別/処理する200。例示的な実装におけるAI SoCを用いるサーバまたはハブデバイスは、視覚コンテンツ内の人、物体、概念、シーン、テキスト、および言語を分類/識別/処理し、オーディオコンテンツをテキストに変換し、そのテキストを分類/処理することができる。このステップを実現するために、AI、ニューラルネットワーク、および任意の他の従来の技術が使用されることができる。
【0033】
[0048]クラウドから任意の適切な情報を取得し、視覚、オーディオ、およびテキストコンテンツに合わせて見つかった情報(「補足データ」)を集める201。
【0034】
[0049]見つかった情報(「補足データ」)を、本来のコンテンツに加えて、閲覧のためにエッジデバイスに配信する202。望ましい実装に応じて、「補足データ」は、デジタルコンテンツに埋め込まれることができるか、または受信側デバイスに別途配信されることができ、受信側デバイスは、どの「補足データ」を視聴者に表示するかを選択することができる。
【0035】
[0050]本明細書に記載される例示的な実装では、200における分類処理および201におけるクラウドからの適切な情報の収集は、1つまたは複数のサーバにおけるデジタルコンテンツの配信の前に発生することができる。分類された物体についての分類情報およびクラウド情報は、受信側デバイスが理解できる形式で格納される。受信側デバイスまたは受信側デバイスで実行されているアプリケーションが、望ましい実装に応じて、本来のコンテンツと共に受信された、分類/処理された物体についてのどの情報をどのように表示するかを選択する。
【0036】
[0051]例示的な実装は、「補足データ」を本来のコンテンツ媒体に埋め込むこともできる。関連技術の実装では、利用可能な画像/オーディオ/テキストファイル形式は、映像、オーディオ、およびテキストなどの主コンテンツ以外の追加情報を埋め込むことが可能でない。新しいファイル形式を用いて、視覚、オーディオ、テキストコンテンツおよび「補足データ」などの追加的データを格納することができる。この新しい形式は、「補足データ」と本来のコンテンツデータとの組合せであることができる。
【0037】
[0052]このプロセスは、一回発生することができ、後のストリーミング/ブロードキャストのために格納されることができる。これにより、コンテンツがブロードキャストまたはストリーミングされるたびにこのプロセスを何度も繰り返す必要がなくなる。さらに、エッジデバイス104は、受信したコンテンツ101および受信した補足データ(例えば、オーバーレイの形態)を、追加的なAI処理を行う必要なく、単純に処理することができる。
【0038】
[0053]
図3は、例示的な実装による、AI SoCを用いるサーバまたはハブデバイスによってコンテンツと併せて提供されることができる補足メタデータの例を示している。提供されることができる補足メタデータの一例では、ヘッダは、メタデータの残りが関連付けられるべきコンテンツを識別する情報を含むことができる。ヘッダは、例示的な実装に従って、これらに限定されないが、形式バージョン、コンテンツ形式、コンテンツ解像度、コンテンツサイズ、コンテンツレート等の情報を含むことができる。フレームメタデータは、各物体名および物体の座標(サイズ)、ならびに物体に関連付けられるべき任意のデータを識別することができる。よって、クラウドからの補足データは、任意の画像コンテンツまたは映像コンテンツのコンテンツの特定フレーム当たりの出力に関して記述されることができる。
【0039】
[0054]
図4Aおよび
図4Bは、例示的な実装による、AI SoCを用いるサーバまたはハブデバイによってコンテンツと併せて提供されることができる補足メタデータの例を示している。例示的な実装は、画像コンテンツまたは映像コンテンツを越えるものまで拡張されることができ、望ましい実装に従って任意形態のコンテンツ(例えば、オーディオ、ネットワークトラフィック等)に一般化されることができる。そのような例示的な実装では、データ情報は、補足情報および受信されているコンテンツに関連する他の情報を含むことができ、コンテンツは、エッジデバイス104による使用のためにコンテンツファイルで提供されることができる。そのようにして、サーバまたはハブデバイスは、必要な場合は、メタデータと併せて、またはメタデータと一体化された、コンテンツを提供することができる。
図4Bの例では、メタデータは、望ましい実装に従って、1つまたは複数のエッジデバイスによって実行可能な実行可能命令(例えば、メニューを出現させる、カメラを別の方向にパンする)も含むことができる。そのようにして、エッジデバイスは、必要に応じて受信したコンテンツおよびメタデータに付随する命令を実行することができる。
図3、
図4A、および
図4Bに示される例示的実装の概念は、望ましい実装を容易にするために任意の形で組み合わせられることができる。
【0040】
[0055]
図4Cは、例示的な実装による、1つまたは複数のニューラルネットワークモデル/AIモデルの出力ラベルの、補足コンテンツへの例示的マッピングを示している。1つまたは複数のニューラルネットワークモデル/AIモデルは、入力データを任意の目的(例えば、物体分類、テキスト認識、自然言語処理等)のために処理して、1つまたは複数の出力ラベルを、
図3、
図4A、および
図4Bに示されるようなメタデータ形態で提供可能なそれらの座標と共に生成するように訓練されることができる。出力ラベルは、コンテンツ101と併せて提供される、提供される補足コンテンツ(例えば、オーバーレイ、ソーシャルメディアの投稿、画像、オーディオ、ポップアップメニュー等)にマッピングされることができる。例えば、物体を分類する物体分類モデル(例えば、訓練済みのニューラルネットワークモデルから構築される)を使用して、バスケットボールを、オーバーレイとして使用される補足コンテンツとしての火の画像にマッピングすることができる。アナウンサーによって発話されている選手Aを認識するオーディオ認識(例えば、訓練済みのニューラルネットワークモデル/AIモデルから構築される)を、
図10に示されるジャージなど、選手Aに関する購入可能な物体を伴う補足コンテンツにマッピングすることができる。チームAが攻撃側でプレーしていると画面上で認識されるが、そのような出力ラベルが、
図9に示されるようにオーバーレイとして使用されるソーシャルメディアの投稿にマッピングされることができる。さらに、望ましい実装に応じて、補足コンテンツは、メタデータに組み込まれて実行のためにエッジデバイスに送信される実行可能命令(例えば、購入可能な物体に関するポップアップメニューを生成する、インターネットからソーシャルメディアの投稿を検索する等)も伴うことができる。
【0041】
[0056]
図5は、例示的な実装による、AI SoCの例示的アーキテクチャを示している。AI SoC500は、本明細書に記載されるようにいくつかの構成要素を含むことができる。
【0042】
[0057]入力処理ユニット502は、AI/NNモデルによる処理のために、ブロードキャストされるコンテンツの入力を取り込むように構成される。そのようなブロードキャストされるコンテンツは、望ましい実装に従って、これらに限定されないが、映像、画像、データ、オーディオ、テキスト等を含むことができる。AI処理ユニット504によって処理されるように、入力処理ユニット502は、適切なAI/NNモデルによる処理のためにコンテンツを値の行列に変換するように構成されることができ、ネットワークインターフェイス503は、ネットワーク入力/出力(I/O)インターフェイス501とのインターフェイスをとって、クラウド、インターネットまたは他の外部データ源からデータを取り込むと共に、出力処理ユニット508を介してエッジデバイスに出力(例えば、メタデータ/補足データ509)を提供するように構成される。ネットワークI/Oインターフェイス501は、望ましい実装に従って、サーバまたはハブデバイスに設置された別個のハードウェア構成要素、またはその他であることができる。プロセッサコア507は、AI SoC500の代わりに命令を読み出し、それに応じてプロセスを実行する1つまたは複数のIPコアを伴うことができる。
【0043】
[0058]コントローラ505は、AI SoC500による処理のためにAI/NNモデルをメモリ506からロードするように構成されたメモリコントローラである。例示的な実装では、メモリ506は、ダブル・データ・レート・シンクロナス・ダイナミック・ランダムアクセスメモリ(DDR SDRAM)の形態であることができ、または望ましい実装に従って他の種のメモリであることができる。同様に、コントローラ505はDDRコントローラであることができるが、それに限定されない。
【0044】
[0059]AI処理ユニット(APU)504は、コントローラ505からロードされたパラメータに基づいてAI/NNモデルを実行し、これらに限定されないが、望ましい実装に従って、物体分類、物体検出、物体セグメント化、顔認識などの機能、または他の種のAI/NNモデルを行うように構成される。本明細書に記載される例示的実装では、APU504は、
図6に示されるように1つまたは複数のAI処理要素(AIPE)から構成されることができる。エッジデバイスがコンテンツを受信するのと同時に補足データ/メタデータがエッジデバイスに提供されることができるように、適時のAI/NNモデルの処理を容易にするために、APU504は、乗算でAI/NNモデルを処理する代わりに、論理シフト演算を利用して、AI/NNモデルの対数量子化されたパラメータを処理する。本明細書に記載される例示的な実装では、AI/ニューラルネットワークモデルのパラメータは対数量子化され(2
round(log
2
X)の形態の最も近い2の累乗に丸められ、XはAI/NNモデルの重みまたはバイアスパラメータである)、それにより、対数量子化されたパラメータが、入力処理ユニット502によって受け取られたコンテンツに対してモデルによって必要とされる対応するAI/NN動作に従って、値をシフトするためのシフト命令に変換されることができる。乗算演算ではなく論理シフト演算を使用することにより、AI/NNモデルの出力を生成するために必要とされる処理時間を大幅に節減することが可能となる。さらに、そのような演算は、乗算器/累算器(MAC)回路に代えて物理的なハードウェアシフタを利用するAIPEによって容易にされることができ、それにより、消費電力、モデルを処理するために必要とされる時間、マザーボード上のフットプリント等を節減する。しかし、APUは、望ましい実装に従って、受信されたコンテンツに2値/論理シフト演算を実行してAI/NNモデル処理を実行するようにプログラムされた中央処理装置(CPU)、またはフィールドプログラマブルゲートアレイ(FPGA)などの、物理的プロセッサの形態であることもできる。さらに、AI SoC500の構成要素のいずれかが、望ましい実装に従って、等価回路およびFPGAを含む、その機能を行うための専用ハードウェア要素の形態で実装されることができる。
【0045】
[0060]出力処理ユニット508は、プロセッサコア507を利用して、
図3、
図4Aおよび
図4Bに示されるもののような対応するメタデータ/補足データ509を出力として生成するための命令を伴うことができる。そのようなメタデータ/補足データは、例えば、
図5に示されるような視聴者に対するオーバーレイなどの追加的情報を生成するために、エッジデバイスによって使用することができる。そのような命令は、訓練済みニューラルネットワーク/AIモデル内で示される出力へのラベルのマッピングに基づいて出力を出力ラベルに変換し、次いで、
図4Cに示されるようにそのようなラベルを補足コンテンツにマッピングして、
図3、
図4A、および
図4Bに示されるようなメタデータを生成することを伴うことができる。
【0046】
[0061]
図6は、例示的な実装による、デジタルコンテンツを処理するためのAIPEの例を示している。
図6のAIPEは、デジタルコンテンツを処理するために算術シフトアーキテクチャを備えてよい。しかし、本開示は、本明細書に開示される算術シフトアーキテクチャに限定されることは意図されない。一部の態様では、AIPEは、デジタルコンテンツを処理するための加算器および/または乗算器を含んでよい。
図6のAIPEは、算術シフタ602および加算器604を利用して、これらに限定されないが、畳み込み、dense層、パラメトリックReLU、バッチ正規化、maxプーリング、加算、および/または乗算などのニューラルネットワーク動作を処理する。算術シフタ602は、論理シフト演算を容易にするために、データ606と、対数量子化されたパラメータ608から導出されたシフト命令とを入力として受け取る。データ606は、32ビットのデータを2の補数の形式で備えてよく、対数量子化されたパラメータ608から導出されたシフト命令は、7ビットのデータを備えてよい。例えば、算術シフタ602は、32ビットの算術シフタを備えてよい。算術シフタ602は、対数量子化されたパラメータ608から導出されたシフト命令に基づいてデータ606をシフトする。算術シフタ602の出力は、2の補数のアーキテクチャを通過し、バイアス610が加算される。バイアス610は、32ビットバイアスを備えてよい。加算器604は、算術シフタ602の出力を入力として受け取る。算術シフタ602の出力は、2の補数の形態であり、XORに供給されて、対数量子化されたパラメータ608から導出されたシフト命令の符号ビット612と比較される。符号ビット612が負である場合には、算術シフタ602の出力が反転される。算術シフタ602の出力と符号ビット612との間のXOR演算の出力は、次いで加算器604に供給される。加算器604は、バイアス610、算術シフタ602の出力と符号ビット612との間のXOR演算の出力を受け取って、共に加算する。加算器604は、桁上げデータとしての符号ビット612も入力として受け取る。加算器604の出力は、フリップフロップ614に供給される。フリップフロップ614のデータは、
図6のAIPEに戻される。例えば、フリップフロップ614の出力は、マルチプレクサに供給され、データ606と多重化される。フリップフロップ614の出力はまた、マルチプレクサに供給され、バイアス610と多重化される。フリップフロップ614の出力はまた、マルチプレクサに供給され、加算器604の出力と多重化される。フリップフロップ614の出力は、2の補数の形態であってよい。フリップフロップ614のデータの符号ビットもAIPEに戻される。例えば、フリップフロップ614のデータの符号ビットは、OR演算子に供給されて信号S2と比較され、OR演算の結果は、パラメータ608と一定の0信号とを多重化するマルチプレクサに供給される。
【0047】
[0062]シフタの使用を通じて乗算および他のニューラルネットワーク動作を実行する
図6の変形例も可能であり、本開示はこれに限定されない。そのような例は、例えば、2022年4月29日に出願され、「IMPLEMENTATIONS AND METHODS FOR PROCESSING NEURAL NETWORK IN SEMICONDUCTOR HARDWARE」と題された、PCT出願第PCT/US22/27035号に見られ、その開示は、その全体が参照によって明示的に本明細書に組み込まれている。
【0048】
[0063]上記の図は例であり、機能的な相当物を利用して、フィールドプログラマブルゲートアレイ(FPGA)を用いることや、そのような要素をハードウェアの他の機能相当物と置き換えることを通じて、望ましい実装を容易にすることができ、または、追加的な要素で変更して、望ましい実装に従って追加的な機能を容易にすることができる。
【0049】
[0064]
図7は、例示的な実装による、AIPEアレイの例を示している。
図7の例では、ニューラルネットワークアレイは複数のAIPEを備え、ここでは、データおよびパラメータ(カーネル)がAIPEに入力されて、本明細書に開示されるようにデジタルコンテンツを処理するためのさまざまな動作を行う。AIPEアーキテクチャは、シフタおよび論理ゲートを備えてよいが、他の要素を利用するように構成されてよく、本開示は、本明細書に開示される例に制限されることは意図されない。本明細書に開示される例は、7ビットのパラメータと共に32ビットのデータを含み、データは、1ビット~Nビットであることができ、パラメータは、1ビット~Mビットのパラメータであることができ、NおよびMは任意の正の整数である。一部の例は、1つの32ビットのシフタを含むが、シフタの数は、2つ以上であってよく、1つのシフタからO個のシフタまで変化してよく、Oは正の整数である。場合によっては、アーキテクチャは、データの128ビット、パラメータの8ビット、および直列に(次々に)接続された7つのシフタを備える。また、本明細書に示された論理ゲートは、特定のアーキテクチャに応じて変化することができる論理ゲートの標準的なセットである。
【0050】
[0065]場合によっては、AIPEアーキテクチャは、シフタ、加算器、および/または論理ゲートを利用してよい。本明細書に開示される例は、7ビットのパラメータと共に32ビットのデータを備え、データは、1ビット~Nビットであることができ、パラメータは、1ビット~Mビットのパラメータであることができ、NおよびMは任意の正の整数である。一部の例は、1つの32ビットシフタおよび1つの32ビットの2入力加算器を含むが、シフタおよび加算器の数は2つ以上であってよく、1つのシフタからO個のシフタまで、および1つの加算器からP個の加算器まで変化してよく、OおよびPは正の整数である。場合によっては、アーキテクチャは、データの128ビット、パラメータの8ビット、および直列に接続された2つのシフタ、および直列に(次々に)接続された2つの加算器を備える。
【0051】
[0066]本明細書に開示されるAIPEアーキテクチャは、シフタおよび論理ゲートを備えて実装されてよく、その場合、シフタが乗算および加算/累算動作を代替する。本明細書に開示されるAIPEアーキテクチャは、シフタ、加算器、および論理ゲートを備えて実装されてもよく、その場合、シフタが乗算および加算/累算動作を代替する。AIPEアーキテクチャは、乗算動作を代替するシフタおよび加算/累算動作を代替する論理関数から構成されてよい。加算/累算動作を代替する論理関数は、乗算器でも、加算器でも、シフタでもない論理関数である。しかし、一部の態様では、AIPEアーキテクチャは、乗算器、加算器、および/またはシフタから構成されてよい。累算動作は、多数の数が累算動作に入り、1つの数が結果として出てくる簡約動作と考えられることができる。
【0052】
[0067]
図8は、例示的な実装による、AIモデルアーキテクチャの例示的なフローを示している。AIモデルアーキテクチャ802は、入力処理804、ニューラルネットワーク806、および出力フォーマッタ808を含む。AIモデルアーキテクチャ802は、入力としてデジタルコンテンツ810を受け取ってよく、入力処理804がそのデジタルコンテンツ810を処理する。入力処理804は、デジタルコンテンツ810の映像を複数のフレームとして処理してよく、またはデジタルコンテンツ810のオーディオを音声として処理してよい。次いで、入力処理804は、処理されたデジタルコンテンツ810をニューラルネットワーク806に提供してよい。ニューラルネットワーク806は、処理されたデジタルコンテンツ810に対して複数の動作を行ってよい。例えば、ニューラルネットワーク806は、処理されたデジタルコンテンツ内で物体を検出するように構成されてよい。例えば、ニューラルネットワーク806は、これらに限定されないが、人々、物体、テキスト等の1つまたは複数の種々の物体を、デジタルコンテンツ内で検出してよい。ニューラルネットワーク806は、検出された物体の各々に対して1つまたは複数のサブフレームを生成してよい。
【0053】
[0068]検出された物体のサブフレームが、ニューラルネットワーク806によってさらに処理されてよい。例えば、ニューラルネットワーク806は、サブフレームを処理して、検出された物体を分類または識別してよい。ニューラルネットワーク806は、検出された物体を分類または識別し、分類または識別された物体に関連する情報を出力フォーマッタ808に提供してよい。検出された物体が人々を含む事例では、ニューラルネットワーク806は、例えば、検出された人の身体部分を識別することを試みて、検出された人々に関連するサブフレームを処理してよい。例えば、ニューラルネットワーク806は、デジタルコンテンツ内の1人または複数の検出された人を識別するために顔認識または検出を行ってよい。
【0054】
[0069]入力処理804がデジタルコンテンツのオーディオを処理する場合、ニューラルネットワーク806は、音声認識のためにオーディオを処理してよい。ニューラルネットワーク806は、検出された音声を、自然言語処理を使用して処理してよい。自然言語処理は、デジタルコンテンツに関連する関連情報を検出または識別してよい。デジタルコンテンツのオーディオから得られた検出された関連情報は、出力フォーマッタ808に提供されてよい。
【0055】
[0070]出力フォーマッタ808は、ニューラルネットワーク806の出力を利用して、表示のための補足されたデジタルコンテンツ812を提供してよい。例えば、出力フォーマッタ808は、デジタルコンテンツのオーディオから得られた関連情報を利用して、そのオーディオから得られた関連情報に関係する補足されたデジタルコンテンツ812の中で広告、情報等を表示してよい。別の例では、出力フォーマッタ808は、デジタルコンテンツ内の1人または複数の検出された人に関係する情報を利用して、それら1人または複数の検出された人に関係する関連付けられた情報を表示してよい。例えば、1人または複数の検出された人が運動選手である場合は、関係するスポーツ用衣料品(例えば、ジャージ、ユニフォーム等)の広告が、補足されたデジタルコンテンツ812の中で表示されてよい。さらに別の例では、出力フォーマッタ808は、(検出された人々以外の)検出された物体に関係する情報を利用して、検出された物体に関係する補足されたデジタルコンテンツ812内で情報を表示してよい。例えば、検出された物体内の任意の検出されたテキストまたは項目を出力フォーマッタ808によって利用して、検出されたそのテキストまたは項目に関係する広告または情報を表示してよい。
【0056】
[0071]他の実装も可能であり、本開示は、本明細書に記載される実装に特に制限されない。本明細書において提案されるAI SoCは、望ましい実装に従って、そのような機能を利用することができる他のエッジシステムまたはサーバシステムに拡張されることもでき、そのようなシステムには、モバイルデバイス、監視デバイス(例えば、中央ステーションまたはローカルユーザ制御システムに接続されたカメラまたは他のセンサ)、パーソナルコンピュータ、タブレットもしくは他のユーザ機器、車両(例えば、ADASシステム、またはECUを利用したシステム)、モノのインターネットのエッジデバイス(例えば、アグリゲータ、ゲートウェイ、ルータ)、AR/VRシステム、スマート住宅および他のスマートシステムの実装等が含まれる。
【0057】
[0072]
図9は、例示的な実装による、クラウド情報およびソーシャルメディア情報で補足されたデジタルコンテンツの例を示している。
図9の例では、ソーシャルメディアからの情報がデジタルコンテンツを補足するように、ソーシャルメディア(例えば、ソーシャルメディアの投稿)が、デジタルコンテンツと関係付けられてよい。例えば、本明細書に記載されるサーバ/ハブデバイスからメタデータ/ソーシャルメディアの投稿または該当する命令を受け取った後に、デジタルコンテンツに結びつけられたソーシャルメディアアプリケーション上で投稿しているユーザが、エッジデバイスによってデジタルコンテンツに重畳されてよい。デジタルコンテンツと共に表示されるソーシャルメディアからのコンテンツは、ソーシャルオーバーレイとして知られることがある。ソーシャルオーバーレイは、ユーザ同士が、人々がテレビで見ているものについてソーシャルメディア上で共有体験を有することを可能にし得る。例えば、デジタルコンテンツ内の検出された物体または人々の上に、ソーシャルオーバーレイが重畳されてよい。一部の態様では、ディスプレイ上の表示項目がデジタルコンテンツと共に提供され得るように、選手が選択されてよい。ソーシャルオーバーレイで補足されたデジタルコンテンツは、ソーシャルメディアに投稿され得る。ソーシャルオーバーレイの一部として表示される項目は、ランダムであってもまたは事前に設定されてもよい。
【0058】
[0073]
図10は、例示的な実装による、クラウド情報および電子商取引情報で補足されたデジタルコンテンツの例を示している。一部の態様では、デジタルコンテンツ内の検出された物体は、電子商取引アプリケーションに関係付けられてよい。例えば、リアルタイムのスポーツイベントでは、ジャージ、ユニフォーム、または運動用衣料品がデジタルコンテンツ内で検出されてよく、検出されたジャージ、ユニフォーム、または運動用衣料品が、同様のまたは関係するジャージ、ユニフォーム、または運動用衣料品を購入するためのリンクをトリガしてよい。リンクは、適切なメタデータまたはそれに対する命令がサーバ/ハブデバイスによって提供された後に、電子商取引ウェブサイトへのインターフェイスが、エッジデバイスによってデジタルコンテンツと共に表示デバイスに表示され得るように選択されてよい。例示的な実装では、命令は、別のデバイスのアプリケーションによって管理されるグラフィカルユーザインターフェイス(GUI)上にメニューを生成するための命令を伴うことができる。例えば、メタデータは、
図4Bに示されるように命令を含むことができ、その命令は、実行されると、対応するポップアップメニューをアプリケーションのGUIに出現させる(例えば、購入が可能なジャージや他の物を示すポップアップメニュー、より多くの情報を得るためにリンクが利用可能であることを示すメニュー等)。
【0059】
[0074]
図11は、例示的な実装による、検出アルゴリズムからの出力の例を示している。検出アルゴリズムは、デジタルコンテンツ内の人々などの物体を検出してよい。例えば、検出アルゴリズムは、選手ならびに検出された選手の身体部分(例えば、手、顔、脚、足、胴等)を検出してよい。検出アルゴリズムは、ボール、バスケット、またはバックボードなど、コンテンツ内の物体を検出してもよい。検出アルゴリズムは、広告やデジタルコンテンツに関与する選手/チームの点数など、デジタルコンテンツ内のテキストを検出してもよい。検出アルゴリズムは、人を検出すると、望ましい実装に応じて、その選手を識別することを試みて検出された人をさらに処理してよく、選手の名前をデジタルコンテンツ内に提供することができる。そのような物体/人々が検出され、分類されると、それに応じて適切なメタデータまたは命令が生成されることができ、それがエッジデバイスを制御して、本明細書における例に示されるように分類された物体/人々に基づいて何らかのプロセスを実行させる。例示的な実装は、当技術分野で知られる任意のAI/NNに基づく物体検出、物体認識アルゴリズムを利用して望ましい実装を容易にすることができる。
【0060】
[0075]生成されたメタデータに基づいて命令を実行するまたはオーバーレイを提供する例において、
図12は、例示的な実装による、カスタマイズされたデジタルコンテンツの例を示している。一部の態様では、デジタルコンテンツ内で物体を検出すると、検出された物体の位置を示すメタデータまたは特定の物体をオーバーレイで変更するための命令を受け取った後に、検出された物体が、カスタマイズ可能なオーバーレイを含むようにエッジデバイスによって変更されてよい。例えば、
図12はリアルタイムのバスケットボールの試合の例を提供し、ここではバスケットボールが検出されている。バスケットボールは、カスタマイズ可能なオーバーレイを含むように選択されてよく、オーバーレイは、
図12の例では、火と煙から構成されるオーバーレイを含んでいる。場合によっては、火と煙のオーバーレイを有するバスケットボールは、バスケットボールをシュートした者が良い試合をしており、その選手が「燃えて」いることを示すために利用され得る。しかし、場合によっては、多くの異なるオーバーレイが、検出された物体との関連で使用されてよく、本開示は、火と煙から構成されるオーバーレイに制限されない。
【0061】
[0076]
図13は、例示的な実装による、AI SoCを用いるサーバまたはハブデバイスの例示的な構成を示している。例示的な実装では、望ましい実装に従って、サーバ/ハブデバイス1300は、コンテンツI/O1301、
図5に関して説明したネットワークI/Oインターフェイス501、AI SoC500、およびメモリ506、プロセッサ1303等を含むことができる。
【0062】
[0077]コンテンツI/O1301は、AI SoC500を通じたAI/NNモデルによる処理のために、直接のコンテンツを提供するように構成されることができる。望ましい実装に応じて、コンテンツI/O1301は、直接の画像/映像/オーディオインターフェイス(例えば、高精細度マルチメディアインターフェイス(HDMI)入力、アナログ入力、オーディオ入力、カメラからのカメラフィード等)を含むことができ、または、望ましい実装に従って、AI/NNモデル処理を必要とする任意の他の直接のデータインターフェイス(例えば、ローカルエリアネットワークからの、または直接接続、衛星インターフェイス、無線インターフェイスを介した、セキュリティ保護されたセンサデータフィード等)を伴うことができる。さらに、例示的な実装は、複数のデータ源を伴うことができ、コンテンツI/O1301は、サーバ/ハブデバイス1300によって受け取られるすべてのデータに対応するためのいくつかの異なるインターフェイスを伴うことができる。例えば、コンテンツI/O1301は、望ましい実装を容易にするために、任意数の同じまたは異なるデバイスを供給源とする画像、オーディオ、またはデータの任意の組合せを受け取るように構成されることができる。
【0063】
[0078]ネットワークI/Oインターフェイス501は、望ましい実装に従って、クラウドまたはインターネットからの外部データに接続するための任意のインターフェイスを含むことができる。そのような外部データは、クラウドデータベースから抽出されることができ、望ましい実装に従って、メモリ506に格納されているAI/NNモデルを更新するための対数量子化されたパラメータ等を含むことができる。
【0064】
[0079]サーバ/ハブデバイス1300は、望ましい実装に従って、任意数のAI SoC500を伴うことができる。メモリ506は、AI SoC500にロードされる、訓練済みAI/NNモデルの対数量子化されたパラメータを格納するように構成されることができ、そのため、AI SoC500は、それに応じてシフトおよび/または加算演算を実行して、データに対してAI/NNモデルを実行することにより、エッジデバイスが使用するためのメタデータを生成することができる。プロセッサ1303は、望ましい実装に従って、AI SoC500の出力をメタデータ、補足データ、または他の出力に変換するなどの追加的な機能を容易にするための任意の命令をロードして実行するように構成されることができる。望ましい実装に応じて、プロセッサ1303は、AI SoC500からの出力を、対応するエッジデバイスによって実行するための命令に変換するための命令をロードして実行するように構成されることもでき、そのような命令は、ネットワークI/Oインターフェイス501を介して対応するエッジデバイスに送信されることができる。そのような命令は、エッジデバイスを制御するための命令を含むことができる(例えば、カメラを別の角度に回転させる、空気圧縮機のモータ回転数を調整する、オーバーレイを生成する、またはユーザインターフェイスにメニューを出現させる等)。
【0065】
[0080]例示的な実装では、サーバ/ハブデバイス1300は、ストリーミングテレビサービスのブロードキャスト側にあることができ、そのサービスから、すべてのストリーミングブロードキャストが、エッジデバイスに、および同時にサーバ/ハブデバイス1300に送信される。サーバ/ハブデバイス1300は、未処理のブロードキャストを処理し、それに応じてAI/NNモデルを実行して、エッジデバイス内のアプリケーションが使用するためのメタデータ/補足データを生成することができる。次いで、エッジデバイス内のアプリケーションは、そのメタデータ/補足データを使用して、
図9~12等に示されるように、表示コンテンツ上にオーバーレイを生成することができる。別の例示的な実装では、サーバ/ハブデバイス1300は、望ましい実装に従って、メニューを呼び出す、モバイルデバイスまたはモバイルデバイスとペアリングされた他のデバイスと対話する(例えば、ペアリングされたモバイルデバイスに電子商取引またはソーシャルメディア情報を提供する)等のために、エッジデバイスのアプリケーションに送信する命令を生成することもできる。そのような例示的な実装を容易にするために任意数のサーバ/ハブデバイス1300が利用されてよく、望ましい実装を容易にするために、複数のサーバ/ハブデバイス1300が、クラウドサービスの提供者として同じようにして使用されることができる。
【0066】
[0081]例示的な実装では、サーバ/ハブデバイス1300は、望ましい実装を容易にするために、ローカルネットワーク内の1つまたは複数のエッジデバイスと対話する/それらを制御するように構成されることができ、または、クラウドを通じて1つまたは複数のエッジデバイスと対話する/それらを制御するエッジサーバとして機能することができる。ローカルネットワーク内の1つまたは複数のエッジデバイスを制御するサーバ/ハブデバイスの例示的な実装では、そのような実装は、高いプライバシーを必要とするシステム(例えば、住宅デバイス、スマート工場フロア等)内で使用されることができ、ここでは、送信されるデータはAI/NNモデルの処理を必要とするが、データはプライベートでもある。一例では、1つまたは複数の住宅カメラがサーバ/ハブデバイス1300に監視映像フィードを提供することができ、ソフトウェアが使用されて、その住宅の所望の構成員(例えば、家族、ペット等)を認識するようにAI/NNモデルを訓練することができる。AI/NNモデルは、次いで対数量子化され、サーバ/ハブデバイス1300のメモリに格納されて、インターネットを通じて画像データを送信する必要なしに、および/またはサーバ/ハブデバイス1300がインターネットに接続されることを必要とせずに、ローカルセキュリティシステムを容易にし、それによりデータのセキュリティを向上させる。望ましい実装に従って他のデバイスがサーバ/ハブデバイスと対話してもよく、本開示はこれに制限されない。例えば、望ましい実装に従って、カメラおよび他のセンサが冷蔵庫内に設置されて、商品を監視して買い物リストを生成し、食品が期限切れになろうとしている時にそれを知らせ、または示される商品に関するレシピを示すことができる。エッジデバイスからのデータまたは他のフィードバックに対してAI/NNモデルを実装するための任意の望ましい実装が利用されることができる。
【0067】
[0082]サーバ/ハブデバイス1300の例示的な実装では、メモリ506が、1つまたは複数の訓練済みニューラルネットワークモデル(例えば、物体検出モデル、物体認識モデル、顔認識モデル等)を格納するように構成され、各モデルは、1つまたは複数の対数量子化されたパラメータ値から構成され得る1つまたは複数のニューラルネットワーク動作(例えば、ニューラルネットワーク層)によって表されることができる。一例では、
図11に示されるように、物体検出モデルが、そのようなニューラルネットワーク動作を通じて画像データ上の1つまたは複数の物体を分類するように構成されることができる。サーバ/ハブデバイス1300は、AI SoC500を伴うこともでき、それは、(例えば、IPU502を介して)画像データを取り込むことと、1つまたは複数の訓練済みニューラルネットワークモデル(例えば、物体検出モデル、物体認識モデル等)を(例えばAPU504を介して)実行して、1つまたは複数のニューラルネットワーク動作を通じて、受信された画像データを処理する(例えば、画像データから1つまたは複数の物体を分類する)ことと、を含む方法またはコンピュータ命令を実行するように構成されることができる。
図6に示されるように、1つまたは複数のニューラルネットワーク動作が、メモリ506から読み出された1つまたは複数の対数量子化されたパラメータ値に基づいて、論理シフト演算によって画像データに実行されることができ(例えば、対数量子化されたパラメータ608から導出されたシフト命令を介して、事前処理された画像データ606に)、1つまたは複数のニューラルネットワークモデルの出力に基づいて(例えば、
図11に示されるように、物体検出モデルからの画像データ出力から分類された1つまたは複数の物体に基づいて)、画像データを補足する(例えば、
図9~11に示されるようにアノテーションまたはオーバーレイを介して)ためのメタデータを生成する。サーバ/ハブデバイス1300は、画像データを受信する1つまたは複数の他のデバイス(例えば、1401)にメタデータ(例えば、
図3、
図4A、
図4Bに示されるような)を送信するように構成されたインターフェイス501を伴うことができる。
【0068】
[0083]望ましい実装に応じて、メタデータは、1つまたは複数の他のデバイスによって1つまたは複数のオーバーレイとして画像データ上に提供される、1つまたは複数のソーシャルメディアの投稿に関連する情報(例えば、
図3、
図4A、または
図4Bに組み込まれたものとして
図9に示されるように)を伴うことができる。
【0069】
[0084]望ましい実装に応じて、
図6に示されるように、AI SoC500の1つまたは複数のシフタ回路にシフト命令を供給することにより、論理シフト演算が実行される。同様に、1つまたは複数のニューラルネットワーク動作に対応する加算演算が、AI SoC500内の1つまたは複数のシフタ回路あるいは1つまたは複数の加算器回路によって実行されることもできる。
【0070】
[0085]望ましい実装に応じて、論理シフト演算は、フィールドプログラマブルゲートアレイ(FPGA)によって実行されることができる。すなわち、FPGAは、
図6の回路およびその変形例の機能と同等の機能を実行すると共に、望ましい実装に従ってAI SoC500の任意の他の機能を容易にするための専用ハードウェアとして、プログラムおよび構成されることができる。
【0071】
[0086]望ましい実装に応じて、論理シフト演算は、中央処理装置(CPU)などの1つまたは複数のハードウェアプロセッサによって実行されることもできる。すなわち、AI SoC500は、ハードウェアプロセッサを用いてコンピュータプログラムを実行して、論理シフト演算を実行することができる。そのような例示的な実装は、専用ハードウェアが利用可能でない場合に、AI/NN動作を処理するための実行サイクルおよび消費電力の節減を可能にすることができる。
【0072】
[0087]望ましい実装に応じて、デバイス1300は、サーバであることができ、画像データは、テレビの映像/オーディオデータを伴うことができる。そのような例示的な実装では、テレビコンテンツは、テレビなどのエッジデバイスにブロードキャストされることができ、サーバは、望ましい実装に従って、メタデータおよびテレビの映像/オーディオデータ等をブロードキャストすることがでる。
【0073】
[0088]望ましい実装に応じて、インターフェイス501は、コンテンツサーバ(例えば、クラウド102を容易にするために使用される1つまたは複数のコンテンツサーバ、インターネットで検索可能な補足コンテンツを容易にするコンテンツサーバ、データベースから補足コンテンツを提供するように構成されたコンテンツサーバ等)からデータを検索するように構成されることができ、メモリ506は、
図4Cに示されるように、分類された物体をデータにマッピングする情報を、コンテンツサーバからの検索のために格納するように構成され、AI SoC500は、メモリからその情報を読み出して、画像データから分類された1つまたは複数の物体に基づいて、対応するマッピングをメタデータとして提供するように構成される。
【0074】
[0089]望ましい実装に応じて、その情報は、
図4Cおよび
図10に示されるように、分類された物体を、購入可能な物体に関係するデータにマッピングすることができ、AI SoCは、メモリからその情報を読み出し、購入可能な物体のうち対応するものを、インターフェイスを通じてコンテンツサーバから検索するように構成され、購入可能な物体のうち対応するものは、画像データから分類された1つまたは複数の物体に基づく情報として提供される。
【0075】
[0090]望ましい実装に応じて、1つまたは複数のニューラルネットワークモデルは、訓練済みニューラルネットワークの対数量子化されたパラメータ値に従って、1つまたは複数のニューラルネットワーク動作を通じて画像データに顔認識を行う顔認識モデルを伴うことができ、AI SoC500は、顔認識で識別された顔に基づいてメタデータを生成するように構成される。
【0076】
[0091]望ましい実装に応じて、インターフェイス501は、サーバ(例えば、クラウド102にある1つまたは複数のサーバ)から1つまたは複数の対数量子化されたパラメータを検索し、この1つまたは複数の対数量子化されたパラメータをメモリに格納するように構成される。対数量子化されたパラメータは、データ処理を行う1つまたは複数の訓練済みニューラルネットワーク/AIモデルを構成する、1つまたは複数のニューラルネットワーク/AI動作を表すことができる。
【0077】
[0092]望ましい実装に応じて、メタデータは、
図3、
図4A、および
図4Bに示されるように、画像データ内のフレームの識別子、物体検出モデルによってフレーム内で識別された1つまたは複数の物体、フレーム内で識別された1つまたは複数の物体の座標、およびフレーム内で識別された1つまたは複数の物体に関連するデータ、を伴うことができる。
【0078】
[0093]望ましい実装に応じて、フレーム内で識別された1つまたは複数の物体に関連するデータは、
図3、
図4A、
図4B、
図4C、および
図9に示されるようにオーバーレイとして使用されるためのソーシャルメディアの投稿を伴うことができる。
【0079】
[0094]望ましい実装に応じて、1つまたは複数の物体に関連するデータは、
図4Cに示されるようにコンテンツサーバから検索された1つまたは複数のオーバーレイを伴うことができる。
【0080】
[0095]望ましい実装に応じて、1つまたは複数の物体に関連するデータは、
図4Bに示されるように1つまたは複数のエッジデバイスにより実行するための実行可能命令を伴うことができる。
【0081】
[0096]例示的な実装では、サーバ/ハブデバイス1300は、1つまたは複数の訓練済みニューラルネットワークモデルを格納するように構成されたメモリ506であって、1つまたは複数の訓練済みニューラルネットワークモデルは、1つまたは複数のニューラルネットワーク動作を通じて画像データを処理するように構成される、メモリ506と、インターフェイス501と、システムオンチップ(SoC)500と、を含むことができ、SoC500は、画像データを取り込むための方法またはコンピュータ命令を実行して、
図5に示されるように、1つまたは複数の訓練済みニューラルネットワークモデルを実行して、1つまたは複数のニューラルネットワーク動作を通じて画像データを処理することと、
図3および
図4A~4Cに示されるように、画像データの処理に基づいて画像データの補足コンテンツを提供するためのメタデータを生成することであって、メタデータは、インターフェイス501を介した別のデバイス(例えば
図1A~1Cのクラウド102にある1つまたは複数のコンテンツサーバ)からの接続から検索された情報に基づいて生成される、メタデータを生成することと、画像データを取り込んでいる1つまたは複数の他のデバイス(例えば、エッジデバイス104)に、インターフェイス501を通じてメタデータを送信することと、を行うように構成される。
【0082】
[0097]望ましい実装に応じて、メタデータは、
図9に示されるように、1つまたは複数の他のデバイス104によって1つまたは複数のオーバーレイとして画像データ上に補足コンテンツとして提供される、1つまたは複数のソーシャルメディアの投稿に関連する情報を伴うことができる。そのようなソーシャルメディアの投稿は、
図4Bに示されるように、インターネット接続からそのようなソーシャルメディアの投稿を受信するための実行可能命令により、
図4Aに示されるようにコンテンツとして提供されることができ、または、
図4Cに示されるように、マッピングに基づいてエッジデバイス104によって行われることができる。
【0083】
[0098]望ましい実装に応じて、SoC500は、
図6に示されるように、SoC内の1つまたは複数のシフタ回路により、1つまたは複数の訓練済みニューラルネットワークモデルを実行するように構成されることができる。
【0084】
[0099]別の例示的な実装では、SoCは、
図6の回路と同等の機能を実行するようにプログラムされた(例えば、1つまたは複数の論理シフト演算を通じて1つまたは複数の訓練済みニューラルネットワークモデルを実行するようにプログラムされた)フィールドプログラマブルゲートアレイ(FPGA)により、1つまたは複数の訓練済みニューラルネットワークモデルを実行するように構成される。別の例示的な実装では、SoCは、1つまたは複数のハードウェアプロセッサにより、1つまたは複数の訓練済みニューラルネットワークモデルを実行して、
図6の回路と同等の機能をコンピュータ命令によって行う(例えば、1つまたは複数の論理シフト演算を通じて1つまたは複数の訓練済みニューラルネットワークを実行する)ように構成されることができる。そのような例示的な実装では、
図6に示されるような専用回路が利用可能でないにも関わらず、ハードウェアデバイスでコンピューティングサイクルおよび電力が節減されることができる。
【0085】
[0100]望ましい実装に応じて、デバイス1300は、
図1Bに示されるように、インターフェイス501を通じて1つまたは複数のエッジデバイスに画像データを送信するように構成されることができる。
【0086】
[0101]例示的な実装では、サーバ/ハブデバイス1300は、1つまたは複数の訓練済みニューラルネットワークモデルを格納するように構成されたメモリ506であって、1つまたは複数の訓練済みニューラルネットワークモデルは、1つまたは複数のニューラルネットワーク動作を通じて画像データを処理するように構成される、メモリ506と、インターフェイス501と、システムオンチップ(SoC)500と、を含むことができ、SoC500は、
図5に示されるように、(例えば、IPU502を介して)画像データを取り込むことと、1つまたは複数の訓練済みニューラルネットワークモデルを実行して、1つまたは複数のニューラルネットワーク動作を通じて(例えばAPU504を介して)画像データを処理することと、
図4Bに示されるように、画像データの処理に基づいて、1つまたは複数の他のデバイスのアプリケーションによって実行するための命令を(例えば、OPU508を介して)生成することと、画像データを取り込んでいる1つまたは複数の他のデバイス104に、インターフェイス501を介して命令を送信することと、を含む方法または命令を実行するように構成される。
【0087】
[0102]例示的な実装では、上記命令は、
図10に関して説明されたように、別のデバイスのアプリケーションによって管理されるグラフィカルユーザインターフェイス(GUI)にメニューを生成するための命令を伴うことができる。
【0088】
[0103]例示的な実装では、サーバ/ハブデバイス1300は、訓練済みニューラルネットワークの対数量子化されたパラメータ値に従って、1つまたは複数のニューラルネットワーク動作を通じて入力データに分析を行うように構成された訓練済みニューラルネットワークモデルを格納するように構成されたメモリ506と、命令または方法を実行するように構成されたシステムオンチップ(SoC)500と、を含むことができ、命令または方法は、訓練済みニューラルネットワークを実行して、1つまたは複数のニューラルネットワーク動作を通じて入力データに分析を行うことであって、1つまたは複数のニューラルネットワーク動作は、メモリ506から読み出された1つまたは複数の対数量子化されたパラメータ値に基づく入力データに対する論理シフト演算によって実行される、分析を行うことと、インターフェイス501を通じて、入力データに対する分析に基づいて別のデバイスを制御することと、を含むことができ、その例は
図14に関して説明された。
【0089】
[0104]例示的な実装では、1つまたは複数のデバイスに送信される画像データを(例えば、IPU502を介して)取り込むことと、1つまたは複数の訓練済みニューラルネットワークモデルを実行して、1つまたは複数のニューラルネットワーク動作を通じて(例えば、APU504を介して)画像データを処理することと、画像データの処理に基づいて、画像データを補足するためのメタデータを生成することであって、メタデータは、別のデバイス(例えば、クラウド102)への接続から検索される情報に基づいて生成される、メタデータを生成することと、メタデータを1つまたは複数の他のデバイスに送信することであって、1つまたは複数のデバイスは、メタデータに従って画像データ上に1つまたは複数のオーバーレイを提供するように(例えば、
図9~11に示されるように)構成される、送信することと、を含むシステムおよび方法があることができる。
【0090】
[0105]
図14は、例示的な実装による、
図13のサーバ/ハブデバイスの例示的な実装が実装されることが可能な例示的なシステムを示している。1つまたは複数のエッジ/ネットワーク化デバイス1401が、
図13に示されるように、サーバ/ハブデバイス1402に接続されているネットワーク1400(例えば、ローカルエリアネットワーク(LAN)、ワイドエリアネットワーク(WAN)、WIFI等)に通信的に接続される。サーバ/ハブデバイス1402は、望ましい実装に応じて、LANまたはインターネット接続を介してデータベース/クラウドシステム1403に接続することができる。そのようなデータベース/クラウドシステム1403は、望ましい実装に応じて、提供されたメタデータに基づいてエッジ/ネットワーク化デバイス1401によって検索されることが可能なオーバーレイに関するデータを含むことができ、および/または、エッジ/ネットワーク化デバイス1401によって提供されるデータを含むこともできる。データベース/クラウドシステム1403は、当技術分野で知られるように、1つまたは複数のコンテンツサーバまたは格納システムを通じて実装されることができる。望ましい実装に応じて、システムは、望ましい実装に従って、複数の異種デバイスがサーバ/ハブデバイス1402によって管理または制御されることができる、モノのインターネット(IoT)システムとして実装されることもできる。
【0091】
[0106]例示的な実装では、サーバ/ハブデバイス1402は、エッジ/ネットワーク化デバイス1401に代わって、ニューラルネットワークモデルを実行することによって分析を行うように構成されることもできる。そのような例示的な実装では、そのようなエッジ/ネットワーク化デバイス1401は、AI/NNモデルによる処理のためにサーバ/ハブデバイス1402にデータを送信するように構成されることができ、サーバ/ハブデバイス1402は、該当する処理を行い、それに応じて命令の送信を通じてエッジ/ネットワーク化デバイスを制御することができる。
【0092】
[0107]例えば、セキュリティシステムでは、望ましい実装に従って、エッジ/ネットワーク化デバイス1401が、監視カメラ、音センサ、モバイルデバイス、ラップトップ、TV、ドアセンサ等を伴うことができる。映像データまたは他のデータが、エッジ/ネットワーク化デバイス1401からサーバ/ハブデバイス1402に送信されて、侵入者を検出するように構成されたAI SoC上のAI/NNモデルで処理されることができ、侵入者が検出された場合、サーバ/ハブデバイス1402は、それに応じて命令を送信する(例えば、モバイルデバイスに監視カメラから映像フィールドを取り出すように命じる)、または、それに応じてメタデータを送信する(例えば、示されたデバイスから侵入に関するメタデータをモバイルデバイスに送り、モバイルデバイスは、それに応じて知らされた侵入を知らせるためのメッセージを生成するか、またはメニューをロードする)ように構成されることができる。
【0093】
[0108]別の例では、サーバ/ハブデバイス1402は、複数の工場デバイスを制御するための工場フロアにあるプログラム可能論理コントローラ(PLC)の形態であることができる。そのような例示的な実装では、そのような工場デバイスが、サーバ/ハブデバイス1402にセンサデータを送信してよく、サーバ/ハブデバイス1402は、望ましい実装に従ってAI SoCを通じてAI/NNモデルを実行することでそのような工場デバイスを制御する。例えば、AI/NNモデルは、分析を行って工場デバイスが故障を起こしそうであるかどうかを判断するように構成されたニューラルネットワークモデルを実行してよく、故障を起こしそうな場合、サーバ/ハブデバイス1402は、さらなる損害を回避するために電源を落とすようにそのような工場デバイスを制御するように構成されることができる。
【0094】
[0109]望ましい実装に従って他の分析の例も可能であり得、本発明は特に制限されない。例えば、工場ラインにあるさまざまなデバイスからのセンサデータが訓練済みニューラルネットワークモデルによって分析されて、望ましい実装に従って調節することができる。分析に基づく変更の他の例には、望ましい実装に従って、分析結果に応じてセンサが再構成されること、分析に応じて音声認識パラメータが変更されること等が含まれ得る。
【0095】
[0110]上記の例示的な実装は、望ましい実装に従って、任意のネットワーク化された環境およびデバイスに拡張されることができる。当業者は、望ましい実装に従って、本明細書に記載される例示的な実装を利用して、ネットワーク化デバイスによって処理するためのメタデータを生成する、またはそのようなネットワークデバイスを命令で制御することができる。
【0096】
[0111]詳細な説明の一部は、コンピュータ内の動作のアルゴリズムおよび記号的表現として提示されている。これらのアルゴリズム的記述および記号表現は、革新的技術の本質を他の当業者に伝達するために、データ処理技術の当業者によって使用される手段である。アルゴリズムは、望まれる最終状態または結果につながる一連の定義されたステップである。例示的な実装では、実行されるステップは、有形の結果を達成するために、有形の量の物理的操作を必要とする。
【0097】
[0112]説明から明らかであるように、特に具体的に述べられない限り、説明全体を通じて、「処理」、「計算」、「算出」、「決定」、「表示」などの用語を利用する説明は、コンピュータシステムのレジスタおよびメモリ内の物理(電子)量として表されたデータを操作して、コンピュータシステムのメモリまたはレジスタあるいはその他の情報の格納デバイス、送信デバイス、または表示デバイス内の物理量として同様に表された他のデータに変換する、コンピュータシステムまたはその他の情報処理デバイスの動作およびプロセスを含むことができると理解される。
【0098】
[0113]例示的な実装は、本明細書における動作を実行するための装置に関連してもよい。この装置は、必要とされる目的のために特別に構築されてよく、あるいは1つまたは複数のコンピュータプログラムによって選択的に作動または再構成される1つまたは複数の汎用コンピュータを含んでよい。そのようなコンピュータプログラムは、コンピュータ可読ストレージ媒体またはコンピュータ可読信号媒体などのコンピュータ可読媒体に格納されてよい。コンピュータ可読ストレージ媒体は、これらに限定されないが、光ディスク、磁気ディスク、読み取り専用メモリ、ランダムアクセスメモリ、半導体デバイスおよびドライブ、あるいは電子情報を格納するのに適している任意のその他の種類の有形または非一過性の媒体などの、有形の媒体を含んでよい。コンピュータ可読信号媒体は、搬送波などの媒体を含んでよい。本明細書において提示されたアルゴリズムおよび表示は、本質的に、どの特定のコンピュータまたはその他の装置にも関連していない。コンピュータプログラムは、望ましい実装の動作を実行する命令を伴う純粋なソフトウェア実装を含むことができる。
【0099】
[0114]さまざまな汎用システムが、本明細書における例に従って、プログラムおよびモジュールと共に使用されてよく、または、望まれる方法のステップを実行するために、より特殊な装置を構築することが便利であると判明することもある。加えて、例示的な実装は、いずれかの特定のプログラミング言語を参照して説明されない。本明細書に記載された例示的な実装の技術を実装するために、さまざまなプログラミング言語が使用されてよいことが理解されるであろう。プログラミング言語の命令は、1つまたは複数の処理デバイス(例えば、中央処理装置(CPU)、プロセッサ、またはコントローラ)によって実行されてよい。
【0100】
[0115]当技術分野において知られているように、上記の動作は、ハードウェア、ソフトウェア、またはソフトウェアとハードウェアの何らかの組合せによって実行されることができる。例示的な実装のさまざまな態様は、回路および論理デバイス(ハードウェア)を使用して実装されてよいが、他の態様は、機械可読媒体に格納された命令(ソフトウェア)を使用して実装されてもよく、これらの命令は、プロセッサによって実行された場合、プロセッサに、本出願の実装を実行するための方法を実行させる。さらに、本出願の一部の例示的な実装は、ハードウェアのみで実行されてよく、一方、他の例示的な実装は、ソフトウェアのみで実行されてよい。さらに、説明されたさまざまな機能は、単一のユニットにおいて実行されることができ、または任意数の方式で複数のコンポーネントにわたって分散されることができる。ソフトウェアによって実行される場合、方法は、コンピュータ可読媒体に格納された命令に基づいて、汎用コンピュータなどのプロセッサによって実行されてよい。必要に応じて、命令は、圧縮された形式および/または暗号化された形式で媒体に格納されることができる。
【0101】
[0116]さらに、本明細書の検討および本出願の教示の実践から、本出願の他の実装が当業者にとって明らかになるであろう。説明された例示的な実装のさまざまな態様および/またはコンポーネントが、単独で、または任意の組合せで使用されてよい。本明細書および例示的な実装は、単なる例と見なされることが意図され、本出願の真の範囲および思想は、以下の特許請求の範囲によって示されている。
【国際調査報告】