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

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

▶ ソニーセミコンダクタソリューションズ株式会社の特許一覧

特開2023-134172情報処理装置、情報処理方法および情報処理プログラム、ならびに、情報処理システム
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2023134172
(43)【公開日】2023-09-27
(54)【発明の名称】情報処理装置、情報処理方法および情報処理プログラム、ならびに、情報処理システム
(51)【国際特許分類】
   G06T 7/00 20170101AFI20230920BHJP
   G06N 3/02 20060101ALI20230920BHJP
【FI】
G06T7/00 350C
G06N3/02
【審査請求】未請求
【請求項の数】29
【出願形態】OL
(21)【出願番号】P 2022039541
(22)【出願日】2022-03-14
(71)【出願人】
【識別番号】316005926
【氏名又は名称】ソニーセミコンダクタソリューションズ株式会社
(74)【代理人】
【識別番号】110002147
【氏名又は名称】弁理士法人酒井国際特許事務所
(72)【発明者】
【氏名】山田 和樹
(72)【発明者】
【氏名】楊 瀛
(72)【発明者】
【氏名】ジャガディシュ ハリ
(72)【発明者】
【氏名】石田 実
(72)【発明者】
【氏名】奥村 浩之
(72)【発明者】
【氏名】奥池 和幸
【テーマコード(参考)】
5L096
【Fターム(参考)】
5L096AA06
5L096CA02
5L096DA02
5L096HA11
5L096KA04
5L096KA15
5L096LA13
(57)【要約】
【課題】ネットワーク機能を適切に分割することが可能な情報処理装置、情報処理方法および情報処理プログラム、ならびに、情報処理システムを提供する。
【解決手段】本開示に係る情報処理装置は、複数のプロセッサそれぞれに1対1で実行させるネットワークを、複数のネットワークから決定する制御部、を備え、前記制御部は、前記複数のネットワークのうち少なくとも1つのネットワークを、入力データが入力されるネットワークに決定し、前記複数のネットワークのうち前記入力データが入力されるネットワークとは異なる1つのネットワークを、前記入力データに応じた出力データを出力するネットワークに決定する。
【選択図】図1
【特許請求の範囲】
【請求項1】
複数のプロセッサそれぞれに1対1で実行させるネットワークを、複数のネットワークから決定する制御部、
を備え、
前記制御部は、
前記複数のネットワークのうち少なくとも1つのネットワークを、入力データが入力されるネットワークに決定し、
前記複数のネットワークのうち前記入力データが入力されるネットワークとは異なる1つのネットワークを、前記入力データに応じた出力データを出力するネットワークに決定する、
情報処理装置。
【請求項2】
前記入力データが入力され、前記複数のプロセッサのうち第1のプロセッサに実行させる、前記複数のネットワークのうち第1のネットワークと、前記複数のプロセッサのうち第2のプロセッサに実行させる、前記第1のネットワークの出力が入力され、前記入力データに応じた出力データを出力する、前記複数のネットワークのうち第2のネットワークと、をそれぞれ決定する制御部、
を備える、
請求項1に記載の情報処理装置。
【請求項3】
前記制御部は、
前記第1のネットワークおよび前記第2のネットワークのうち少なくとも一方による処理の実行に対して要求される性能である要求性能に応じて、前記第1のネットワークおよび前記第2のネットワークを決定する、
請求項2に記載の情報処理装置。
【請求項4】
前記制御部は、
ハードウェア要素に対する前記要求性能と、前記出力データに対する処理を実行するアプリケーションにより前記出力データに要求されるアプリケーション要素に対する前記要求性能と、のうち少なくとも一方に基づき、前記第1のネットワークおよび前記第2のネットワークを決定する、
請求項3に記載の情報処理装置。
【請求項5】
前記ハードウェア要素は、前記第1のプロセッサと、前記第2のプロセッサと、前記入力データの生成元のハードウェアと、のうち少なくとも1つの能力および制約を含み、
前記アプリケーション要素は、前記出力データのレートと、伝送サイズと、前記アプリケーションにおける処理のコストと、のうち少なくとも1つを含む、
請求項4に記載の情報処理装置。
【請求項6】
前記制御部は、
前記要求性能と、所定のネットワークに対する性能維持指標とに基づき、前記第1のネットワークと前記第2のネットワークとを決定する、
請求項3に記載の情報処理装置。
【請求項7】
前記制御部は、
前記第1のネットワークでは固定小数点演算を行い、前記第2のネットワークでは浮動小数点演算を行うように、前記第1のネットワークおよび前記第2のネットワークを決定する、
請求項3に記載の情報処理装置。
【請求項8】
前記制御部は、
前記第1のネットワークによる処理および前記第2のネットワークによる処理を、前記第2のネットワークによる処理が前記第1のネットワークによる処理に対するパイプライン処理として実行されるように決定する、
請求項3に記載の情報処理装置。
【請求項9】
所定のネットワークに含まれる、前記入力データに対する第1の機能を前記第1のネットワークに適用し、前記第1の機能による処理結果に対する第2の機能を前記第2のネットワークに適用する、
請求項2に記載の情報処理装置。
【請求項10】
前記制御部は、
前記第2の機能に応じて前記第1の機能を決定する、
請求項9に記載の情報処理装置。
【請求項11】
前記制御部は、
前記第2のネットワークの学習結果に応じて前記第2の機能を更新または変更する、
請求項9に記載の情報処理装置。
【請求項12】
前記制御部は、
前記第1のネットワークの出力に応じて前記第2のネットワークを変更する、
請求項9に記載の情報処理装置。
【請求項13】
前記制御部は、
前記第2のネットワークとして、互いに異なる複数の前記第2の機能のそれぞれに1対1で対応し、並列処理が可能な複数の第2のネットワークを決定する、
請求項9に記載の情報処理装置。
【請求項14】
前記制御部は、
前記複数の第2のネットワークを、1つの前記第1のネットワークの出力が共通に入力されるように決定する、
請求項13に記載の情報処理装置。
【請求項15】
前記第1のネットワークとして、互いに異なる複数の前記第1の機能のそれぞれに1対1で対応し、並列処理が可能な複数の第1のネットワークを決定する、
請求項9に記載の情報処理装置。
【請求項16】
前記制御部は、
前記第2のネットワークを、前記複数の第1のネットワークそれぞれの出力が入力されるように決定する、
請求項15に記載の情報処理装置。
【請求項17】
前記制御部は、
前記第1のネットワークを速度を優先して前記第1の機能の処理を行うように決定し、前記第2のネットワークを精度および機能のうち少なくとも一方を優先して前記第2の機能の処理を行うように決定する、
請求項9に記載の情報処理装置。
【請求項18】
前記制御部は、
前記第2のネットワークによる処理結果に基づき前記第1のネットワークを再学習させるように、前記第1のネットワークおよび前記第2のネットワークを決定する、
請求項17に記載の情報処理装置。
【請求項19】
前記制御部は、
前記第1のネットワークによる出力のデータを削減して前記第2のネットワークに入力させるように、前記第1のネットワークおよび前記第2のネットワークを決定する、
請求項9に記載の情報処理装置。
【請求項20】
コンピュータによリ実行される、
複数のプロセッサそれぞれに1対1で実行させるネットワークを、複数のネットワークから決定する制御ステップ、
を備え、
前記制御ステップは、
前記複数のネットワークのうち少なくとも1つのネットワークを、入力データが入力されるネットワークに決定し、
前記複数のネットワークのうち前記入力データが入力されるネットワークとは異なる1つのネットワークを、前記入力データに応じた出力データを出力するネットワークに決定する、
情報処理方法。
【請求項21】
コンピュータに、
複数のプロセッサそれぞれに1対1で実行させるネットワークを、複数のネットワークから決定する制御ステップ、
を実行させ、
前記制御ステップは、
前記複数のネットワークのうち少なくとも1つのネットワークを、入力データが入力されるネットワークに決定し、
前記複数のネットワークのうち前記入力データが入力されるネットワークとは異なる1つのネットワークを、前記入力データに応じた出力データを出力するネットワークに決定する、
ための情報処理プログラム。
【請求項22】
入力データが入力され、複数のネットワークのうち1つのネットワークが実行される第1のプロセッサと、
前記複数のネットワークのうち前記入力データが入力されるネットワークとは異なる1つのネットワークが実行され、前記入力データに応じた出力データを出力する第2のプロセッサと、
前記第1のプロセッサおよび前記第2のプロセッサを含む複数のプロセッサそれぞれに1対1で実行させるネットワークを、前記複数のネットワークから決定する制御部、を備える情報処理装置と、
を含む、
情報処理システム。
【請求項23】
前記制御部は、
前記複数のプロセッサのうち前記第1のプロセッサに実行させる、前記複数のネットワークのうち第1のネットワークと、
前記複数のプロセッサのうち前記第2のプロセッサに実行させる、前記第1のネットワークの出力が入力され、前記入力データに応じた出力データを出力する第2のネットワークと、
をそれぞれ決定する、
請求項22に記載の情報処理システム。
【請求項24】
前記第1のプロセッサと前記第2のプロセッサとが同一の筐体内に構成される、
請求項23に記載の情報処理システム。
【請求項25】
前記第1のプロセッサが第1の筐体内に構成され、前記第2のプロセッサが第2の筐体内に構成される、
請求項23に記載の情報処理システム。
【請求項26】
前記入力データを出力するセンサデバイスをさらに含む、
請求項23に記載の情報処理システム。
【請求項27】
前記センサデバイスと前記第1のプロセッサとが一体的に構成される、
請求項26に記載の情報処理システム。
【請求項28】
前記第2のプロセッサと前記第1のプロセッサとが通信ネットワークを介して接続される、
請求項23に記載の情報処理システム。
【請求項29】
前記第2のプロセッサから出力される前記出力データに対して処理を実行するアプリケーションが搭載される、前記情報処理装置とは異なる他の情報処理装置、
をさらに含む、
請求項23に記載の情報処理システム。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、情報処理装置、情報処理方法および情報処理プログラム、ならびに、情報処理システムに関する。
【背景技術】
【0002】
DNN(Deep Neural Network)機能を組み込んだデバイスが知られている。一般に、DNN処理は計算コストが大きく、さらに、複雑で高度なDNN処理を実行可能なモデルほど、モデルサイズが大きくなる傾向にある。そのため、DNN機能を分割し、分割された一部のDNN機能による処理を当該デバイスにおいて実行し、他の部分のDNN機能の処理を外部のサーバなどにおいて実行する技術が提案されている。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特開2020-47191号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
DNN機能を分割するに当たり、その機能や処理量に応じて適切な分割を行う必要がある。
【0005】
本開示は、ネットワーク機能を適切に分割することが可能な情報処理装置、情報処理方法および情報処理プログラム、ならびに、情報処理システムを提供することを目的とする。
【課題を解決するための手段】
【0006】
本開示に係る情報処理装置は、複数のプロセッサそれぞれに1対1で実行させるネットワークを、複数のネットワークから決定する制御部、を備え、前記制御部は、前記複数のネットワークのうち少なくとも1つのネットワークを、入力データが入力されるネットワークに決定し、前記複数のネットワークのうち前記入力データが入力されるネットワークとは異なる1つのネットワークを、前記入力データに応じた出力データを出力するネットワークに決定する。
【0007】
本開示に係る情報処理方法は、コンピュータによリ実行される、複数のプロセッサそれぞれに1対1で実行させるネットワークを、複数のネットワークから決定する制御ステップ、を備え、前記制御ステップは、前記複数のネットワークのうち少なくとも1つのネットワークを、入力データが入力されるネットワークに決定し、前記複数のネットワークのうち前記入力データが入力されるネットワークとは異なる1つのネットワークを、前記入力データに応じた出力データを出力するネットワークに決定する。
【0008】
本開示に係る情報処理プログラムは、コンピュータに、複数のプロセッサそれぞれに1対1で実行させるネットワークを、複数のネットワークから決定する制御ステップ、
を実行させ、前記制御ステップは、前記複数のネットワークのうち少なくとも1つのネットワークを、入力データが入力されるネットワークに決定し、前記複数のネットワークのうち前記入力データが入力されるネットワークとは異なる1つのネットワークを、前記入力データに応じた出力データを出力するネットワークに決定する、ための情報処理プログラム。
【0009】
本開示に係る情報処理システムは、入力データが入力され、複数のネットワークのうち1つのネットワークが実行される第1のプロセッサと、前記複数のネットワークのうち前記入力データが入力されるネットワークとは異なる1つのネットワークが実行され、前記入力データに応じた出力データを出力する第2のプロセッサと、前記第1のプロセッサおよび前記第2のプロセッサを含む複数のプロセッサそれぞれに1対1で実行させるネットワークを、前記複数のネットワークから決定する制御部、を備える情報処理装置と、を含む。
【図面の簡単な説明】
【0010】
図1】第1の実施形態に係る情報処理システムの概略的な構成を示す一例のブロック図である。
図2】第1の実施形態に係る情報処理システムにおけるネットワーク制御部による処理を概略的に示す一例のフローチャートである。
図3】第1の実施形態に適用可能なセンシングデバイスとしての撮像装置の一例の構成を示すブロック図である。
図4】第1の実施形態に係る撮像装置の一例の構造を概略的に示す斜視図である。
図5】第1の実施形態に係るネットワーク制御部の機能を説明するための一例の機能ブロック図である。
図6】第1の実施形態に係るネットワーク制御部を構成可能なサーバの一例のハードウェア構成を示すブロック図である。
図7A】第1の実施形態に係るシステム構成の第1の例を概略的に示す模式図である。
図7B】第1の実施形態に係るシステム構成を概略的に示す模式図である。
図7C】第1の実施形態に係るシステム構成を概略的に示す模式図である。
図8A】第1の実施形態に係るシステム構成の第1の例をより具体的に説明するための模式図である。
図8B】第1の実施形態に係るシステム構成の第2の例をより具体的に説明するための模式図である。
図8C】第1の実施形態に係るシステム構成の第3の例をより具体的に説明するための模式図である。
図8D】第1の実施形態に係るシステム構成の第4の例をより具体的に説明するための模式図である。
図8E】第1の実施形態に係るシステム構成の第5の例をより具体的に説明するための模式図である。
図8F】第1の実施形態に係るシステム構成の第6の例をより具体的に説明するための模式図である。
図8G】第1の実施形態に係るシステム構成の第7の例をより具体的に説明するための模式図である。
図9】第2の実施形態に関する既存技術を説明するための模式図である。
図10】第2の実施形態に係る処理を説明するための一例の模式図である。
図11】第2の実施形態に係る処理の流れを説明するための模式図である。
図12】第2の実施形態に係る、互換性テスト処理部による互換性テスト処理を示す一例のフローチャートである。
図13】ユーザに提示される性能維持指標の例を示す模式図である。
図14】ユーザに提示される性能維持指標の例を示す模式図である。
図15】既存技術による処理シーケンスと、第2の実施形態に係る処理シーケンスとを対比させて示す模式図である。
図16】DNNを第1DNNおよび第2DNNの2つのDNNに分割する例を概略的に示す模式図である。
図17】DNNを分割した第1DNNおよび第2DNNによる処理を実行するための、既存技術による構成の例を示す模式図である。
図18】第3の実施形態に係る情報処理システムの構成を概略的に示す模式図である。
図19】第3の実施形態に係るネットワーク制御部における処理を示す一例のフローチャートである。
図20】第3の実施形態の第1の例による情報処理システムの一例の構成を示すブロック図である。
図21】第3の実施形態の第2の例による情報処理システムの一例の構成を示すブロック図である。
図22】第3の実施形態の第2の例における第1の具体例による情報処理システムの一例の構成を示すブロック図である。
図23】第3の実施形態の第2の例における第2の具体例による情報処理システムの一例の構成を示すブロック図である。
図24】第3の実施形態の第2の例における第2の具体例に適用可能なセグメンテーション処理を説明するための模式図である。
図25】第3の実施形態の第2の例における第2の具体例に適用可能な姿勢推定処理を説明するための模式図である。
図26】第3の実施形態の第3の例による情報処理システムの一例の構成を示すブロック図である。
図27】第3の実施形態の第3の例における第1の具体例による情報処理システムの一例の構成を示すブロック図である。
図28】第3の実施形態の第3の例における第2の具体例による情報処理システムの一例の構成を示すブロック図である。
図29】第3の実施形態の第4の例による情報処理システムの一例の構成を示すブロック図である。
図30】第3の実施形態の第4の例における応用例による情報処理システムの一例の構成を示すブロック図である。
図31】第3の実施形態の第5の例による情報処理システムの一例の構成を示すブロック図である。
図32】第4の実施形態に係る情報処理システムにおける各部の、基板に対する物理的なレイアウトの例を示す模式図である。
図33】第4の実施形態に係る情報処理システムの第1の経路例を示す模式図である。
図34】第4の実施形態に係る情報処理システムの第2の経路例を示す模式図である。
図35】第4の実施形態に係る第2の経路例におけるデータ伝送に係る各タイミングを示す一例のタイミングチャートである。
図36】第4の実施形態に係る情報処理システムの第3の経路例を示す模式図である。
図37】第4の実施形態に係る第3の経路例におけるデータ伝送に係る各タイミングを示す一例のタイミングチャートである。
図38】第4の実施形態に係る情報処理システムの第4の経路例を示す模式図である。
図39A】第4の実施形態に係る第4の経路例における積層構造体の垂直方向の構造を概略的に示す模式図である。
図39B】第4の実施形態に係る第4の経路例における積層構造体の垂直方向の構造を概略的に示す模式図である。
図40】第4の実施形態に係る情報処理システムの第5の信号経路例を示す模式図である。
図41】第4の実施形態に係る情報処理システムの第6の信号経路例を示す模式図である。
図42】第4の実施形態に係る情報処理システムの第7の信号経路例を示す模式図である。
図43A】第4の実施形態に係る第7の信号経路例における積層構造体の垂直方向の構造を概略的に示す模式図である。
図43B】第4の実施形態に係る第7の信号経路例における積層構造体の垂直方向の構造を概略的に示す模式図である。
図44】第4の実施形態に係る情報処理システムの第8の信号経路例を示す模式図である。
図45A】第4の実施形態に係る情報処理システムの第9の信号経路例を示す模式図である。
図45B】第4の実施形態に係る情報処理システムの第9の信号経路例を示す模式図である。
図46A】第5の実施形態の第1の例による構成の例を示す模式図である。
図46B】第5の実施形態の第1の例による構成の例を示す模式図である。
図47A】第5の実施形態の第2の例による構成の例を示す模式図である。
図47B】第5の実施形態の第2の例による構成の例を示す模式図である。
図48A】第5の実施形態の第3の例による構成の例を示す模式図である。
図48B】第5の実施形態の第3の例による構成の例を示す模式図である。
【発明を実施するための形態】
【0011】
以下、本開示の実施形態について、図面に基づいて詳細に説明する。なお、以下の実施形態において、同一の部位には同一の符号を付することにより、重複する説明を省略する。
【0012】
以下、本開示の実施形態について、下記の順序に従って説明する。
1.第1の実施形態
1-1.第1の実施形態に係る基本的な構成
1-2.第1の実施形態に係る構成の詳細
1-3.第1の実施形態に係るシステム構成
2.第2の実施形態
2-1.既存技術について
2-2.第2の実施形態に係る構成および処理
2-3.第2の実施形態に係る効果
3.第3の実施形態
3-1.既存技術について
3-2.第3の実施形態に係る概略的な構成
3-3.第3の実施形態の各例について
3-3-1.第3の実施形態の第1の例
3-3-2.第3の実施形態の第2の例
3-3-3.第3の実施形態の第3の例
3-3-4.第3の実施形態の第4の例
3-3-5.第3の実施形態の第5の例
4.第4の実施形態
5.第5の実施形態
【0013】
(1.第1の実施形態)
本開示の第1の実施形態について説明する。本開示の第1の実施形態に係る情報処理システムでは、制御部により、第1プロセッサに実行させる、入力された入力データに対する処理を行う第1のネットワークと、第2プロセッサに実行させる、第1のネットワークの出力対して処理を行う第2のネットワークと、をそれぞれ決定する。
【0014】
なお、本開示において、ネットワークは、例えばDNN(Deep Neural Network)といったニューラルネットワークを適用できる。
【0015】
(1-1.第1の実施形態に係る基本的な構成)
先ず、第1の実施形態に係る基本的な構成について説明する。図1は、第1の実施形態に係る情報処理システムの概略的な構成を示す一例のブロック図である。
【0016】
図1において、第1の実施形態に係る情報処理システム1は、第1プロセッサ11と、第2プロセッサ12と、ネットワーク制御部20と、を含む。
【0017】
ネットワーク制御部20は、例えばインターネットなどの通信ネットワーク上のサーバにおいて構成され、第1プロセッサ11および第2プロセッサ12と当該通信ネットワークを介して通信を行うことができるようにされる。これらネットワーク制御部20、センシングデバイス10、第1プロセッサ11、第2プロセッサ12およびアプリケーション実行部30の配置の具体例については、後述する。
【0018】
ネットワーク制御部20は、タスクが入力される。ここで、タスクは、ニューラルネットワーク(DNNなど)を用いて実行する処理を指すものとする。タスクは、例えば、タスクに用いられるニューラルネットワークにおけるモデルとして、ネットワーク制御部20に入力される。ネットワーク制御部20は、入力されたタスクを解析し、当該タスクを少なくとも2つのタスクに分割する。ネットワーク制御部20は、例えばタスクを第1のタスクおよび第2のタスクの2つのタスクに分割する場合、第1のタスクを第1プロセッサ11に割り当て、第2のタスクを第2プロセッサ12に割り当てる。
【0019】
換言すれば、ネットワーク制御部20は、タスクが用いるニューラルネットワークを、第1のタスクが用いる第1のニューラルネットワークと、第2のタスクが用いる第2のニューラルネットワークとに分割し、第1のニューラルネットワークを第1プロセッサ11に、第2のニューラルネットワークを第2プロセッサ12に、それぞれ割り当てる、といえる。
【0020】
第1プロセッサ11は、入力データとして、例えばセンシングデバイス10の出力が入力される。センシングデバイス10が撮像装置である場合、センシングデバイス10の出力は、撮像装置により撮像して得られた撮像画像(画像信号)である。第1プロセッサ11に入力される入力データは、ネットワーク制御部20に入力されるタスクの処理対象となるデータであって、センシングデバイス10の出力に限定されない。第1プロセッサ11は、入力データに対して第1のタスクを実行し、処理結果を出力する。第2プロセッサ12は、第1プロセッサの出力に対して第2タスクを実行し、処理結果を出力データとして出力する。
【0021】
第2プロセッサ12から出力された出力データは、アプリケーション実行部30に供給される。アプリケーション実行部30は、例えば一般的なコンピュータといった情報処理装置に搭載されるアプリケーションプログラムにより構成してよい。
【0022】
なお、図1では、情報処理システム1は、1つのタスクを2つに分割し、分割された各タスクに、第1プロセッサ11および第2プロセッサ12をそれぞれ割り当てているが、これはこの例に限定されない。例えば、情報処理システム1は、1つのタスクを3以上のタスクに分割してもよい。この場合には、分割された3以上のタスクそれぞれに、異なるプロセッサを割り当ててよい。情報処理システム1は、1つのタスクを3以上のタスクに分割する場合、分割された3以上のタスクのうち少なくとも1つのタスクを、入力データが入力されるタスクに決定してよい。また、情報処理システム1は、分割された当該3以上のタスクのうち、入力データが入力されるタスクとは異なるタスクを、当該入力データに応じた出力データを出力するタスクに決定してよい。
【0023】
図2は、第1の実施形態に係る情報処理システム1におけるネットワーク制御部20による処理を概略的に示す一例のフローチャートである。なお、以下では、ネットワーク制御部20に対して、タスクとしてニューラルネットワークが入力されるものとして説明を行う。また、以下では、特に記載の無い限り、ニューラルネットワークを単に「ネットワーク」と呼び、ニューラルネットワークの例としてDNNを適用する。
【0024】
図2において、ステップS100で、ネットワーク制御部20は、ネットワークを取得する。次のステップS101で、ネットワーク制御部20は、ステップS100で取得されたネットワークを解析する。次のステップS102で、ネットワーク制御部20は、ステップS101での解析結果に基づき、ステップS100で取得されたネットワークを分割する。
【0025】
ステップS101およびステップS102において、ネットワーク制御部20は、当該ネットワークを、当該ネットワークの機能、当該ネットワークを実行するハードウェアに関するハードウェア要素、当該ネットワークによる出力を利用するアプリケーションに関するアプリケーション要素、などに基づき解析および分割してよい。
【0026】
以下、特に記載の無い限り、ネットワーク制御部20は、ネットワークを、ネットワークにおける前段の処理を行う第1のネットワークと、当該第1のネットワークの出力に対する処理を行う第2のネットワークと、に分割するものとして説明を行う。
【0027】
次のステップS103で、ネットワーク制御部20は、ステップS102で分割された各ネットワークを実行するプロセッサを決定する。例えば、ネットワーク制御部20は、第1プロセッサ11を第1のネットワークによる処理を実行するプロセッサとして決定し、第2プロセッサ12を第2のネットワークによる処理を実行するプロセッサとして決定する。
【0028】
次のステップS104で、ネットワーク制御部20は、分割された各ネットワークを、実行が決定された各プロセッサに送信する。具体的には、ネットワーク制御部20は、第1のネットワークを第1プロセッサ11に送信し、第2のネットワークを第2プロセッサ12に送信する。
【0029】
第1プロセッサ11は、センシングデバイス10の出力を入力データとして、入力データに対して第1のネットワークによる処理を実行する。第2プロセッサ12は、第1プロセッサ11の出力に対して第2のネットワークによる処理を実行する。第2プロセッサ12の出力は、アプリケーション実行部30に供給される。
【0030】
このように、第1の実施形態では、ネットワーク制御部20により、第1のプロセッサに実行させる第1のネットワークと、第1プロセッサ11の出力に対して処理を行う第2のプロセッサに実行させる第2のネットワークを決定している。そのため、第1の実施形態を適用することで、ネットワークを適切に分割して第1プロセッサ11および第2プロセッサ12に割り当てることが可能である。
【0031】
(1-2.第1の実施形態に係る構成の詳細)
次に、第1の実施形態に係る構成について、より詳細に説明する。図3は、第1の実施形態に適用可能な、センシングデバイス10を含む撮像装置の一例の構成を示すブロック図である。図3の例では、撮像装置100は、図1を用いて説明した情報処理システム1における、センシングデバイス10と第1プロセッサ11とを含んで構成されている。
【0032】
図3において、撮像装置100は、CIS(CMOS(Complementary Metal Oxide Semiconductor) image sensor)として構成され、撮像ブロック110と信号処理ブロック120とを含む。
【0033】
撮像ブロック110と信号処理ブロック120とは、それぞれ内部バスである接続線CL1,CL2、および、CL3によって電気的に接続されている。後述するように、撮像ブロック110は、図1におけるセンシングデバイス10に対応させてよい。また、信号処理ブロック120は、図1における第1プロセッサ11を含むことができる。
【0034】
撮像ブロック110は、撮像部111、撮像処理部112、出力制御部113、出力I/F(インタフェース)114、および、撮像制御部115を有し、被写体を撮像し撮像画像を得る。
【0035】
撮像部111は、それぞれ光電変換により受光した光に応じた信号を出力する受光素子である複数の画素が行列状の配列に従い配置された画素アレイを含む。撮像部111は、撮像処理部112によって駆動され、被写体の撮像を行う。
【0036】
すなわち、撮像部111には、図示されない光学系からの光が入射する。撮像部111は、画素アレイに含まれる各画素において、光学系からの入射光を受光し、光電変換を行って、入射光に対応するアナログの画像信号を出力する。
【0037】
撮像部111が出力する画像信号による画像のサイズは、例えば、幅×高さが3968画素×2976画素、1920画素×1080画素、640画素×480画素などの複数のサイズの中から選択することができる。撮像部111が出力可能な画像サイズは、この例に限定されない。また、撮像部111が出力する画像については、例えば、RGB(赤、緑、青)のカラー画像とするか、あるいは、輝度のみの白黒画像とするかを選択することができる。撮像部111に対するこれらの選択は、撮影モードの設定の一種として行うことができる。
【0038】
なお、画素アレイにおいて行列状に配列された各画素の出力に基づく情報を、フレームと呼ぶ。撮像装置100は、撮像部111において、行列状の画素の情報を、時系列に沿って所定のレート(フレームレート)で繰り返し取得する。撮像装置100は、取得したそれぞれの情報を、フレームごとに纏めて出力する。
【0039】
撮像処理部112は、撮像制御部115の制御に従い、撮像部111の駆動や、撮像部111が出力するアナログの画像信号のAD(Analog to Digital)変換、撮像信号処理等の、撮像部111での画像の撮像に関連する撮像処理を行う。
【0040】
撮像処理部112が行う撮像信号処理としては、例えば、撮像部111が出力する画像について、所定の小領域ごとに、画素値の平均値を演算すること等により、小領域ごとの明るさを求める処理や、撮像部111が出力する画像を、HDR(High Dynamic Range)画像に変換するHDR変換処理、欠陥補正、現像等がある。
【0041】
撮像処理部112は、撮像部111が出力するアナログの画像信号のAD変換等によって得られるディジタルの画像信号を、撮像画像として出力する。また、撮像処理部112は、撮像画像として、現像などの処理を施さないRAW画像を出力することもできる。なお、RAW画像に対して現像などの処理を施した、各画素がRGB各色の情報を持つ画像を、RGB画像と呼ぶ。
【0042】
撮像処理部112が出力する撮像画像は、出力制御部113に供給されるとともに、接続線CL2を介して、信号処理ブロック120の画像圧縮部125に供給される。
【0043】
出力制御部113には、撮像処理部112から撮像画像が供給される他、信号処理ブロック120から、接続線CL3を介して、撮像画像等を用いた信号処理の信号処理結果が供給される。
【0044】
出力制御部113は、撮像処理部112からの撮像画像、および、信号処理ブロック120からの信号処理結果を、(1つの)出力I/F114から外部(例えば撮像装置100の外部に接続されるメモリ等)に選択的に出力させる出力制御を行う。すなわち、出力制御部113は、撮像処理部112からの撮像画像、又は、信号処理ブロック120からの信号処理結果を選択し、出力I/F114に供給する。
【0045】
出力I/F114は、出力制御部113から供給される撮像画像、および、信号処理結果を外部に出力するI/Fである。出力I/F114としては、例えば、MIPI(Mobile Industry Processor Interface)等の比較的高速なパラレルI/F等を採用することができる。
【0046】
出力I/F114では、出力制御部113の出力制御に応じて、撮像処理部112からの撮像画像、または、信号処理ブロック120からの信号処理結果が、外部に出力される。したがって、例えば、外部において、信号処理ブロック120からの信号処理結果だけが必要であり、撮像画像そのものが必要でない場合には、信号処理結果だけを出力することができ、出力I/F114から外部に出力するデータ量を削減することができる。
【0047】
また、信号処理ブロック120において、外部で必要とする信号処理結果が得られる信号処理を行い、その信号処理結果を、出力I/F114から出力することにより、外部で信号処理を行う必要がなくなり、外部のブロックの負荷を軽減することができる。
【0048】
撮像制御部115は、通信I/F116およびレジスタ群117を有する。
【0049】
通信I/F116は、例えば、I2C(Inter-Integrated Circuit)等のシリアル通信I/F等の第1の通信I/Fであり、外部(例えばこの撮像装置100が搭載される装置を制御する制御部)との間で、レジスタ117群に読み書きする情報等の必要な情報のやりとりを行う。
【0050】
レジスタ群117は、複数のレジスタを有し、撮像部111での画像の撮像に関連する撮像情報、その他の各種情報を記憶する。例えば、レジスタ群117は、通信I/F116において外部から受信された撮像情報や、撮像処理部112での撮像信号処理の結果(例えば、撮像画像の小領域ごとの明るさ等)を記憶する。
【0051】
レジスタ群117に記憶される撮像情報としては、例えば、ISO感度(撮像処理部112でのAD変換時のアナログゲイン)や、露光時間(シャッタスピード)、フレームレート、フォーカス、撮影モード、切り出し範囲等(を表す情報)がある。
【0052】
撮影モードには、例えば、露光時間やフレームレート等が手動で設定される手動モードと、シーンに応じて自動的に設定される自動モードとがある。自動モードには、例えば、夜景や、人の顔等の各種の撮影シーンに応じたモードがある。
【0053】
また、切り出し範囲とは、撮像処理部112において、撮像部111が出力する画像の一部を切り出して、撮像画像として出力する場合に、撮像部111が出力する画像から切り出す範囲を表す。切り出し範囲の指定によって、例えば、撮像部111が出力する画像から、人が映っている範囲だけを切り出すこと等が可能になる。なお、画像の切り出しとしては、撮像部111が出力する画像から切り出す方法の他、撮像部111から、切り出し範囲の画像(信号)だけを読み出す方法がある。
【0054】
撮像制御部115は、レジスタ群117に記憶された撮像情報に従って、撮像処理部112を制御し、これにより、撮像部111での画像の撮像を制御する。
【0055】
なお、レジスタ群117は、撮像情報や、撮像処理部112での撮像信号処理の結果の他、出力制御部113での出力制御に関する出力制御情報を記憶することができる。出力制御部113は、レジスタ群117に記憶された出力制御情報に従って、撮像画像および信号処理結果を選択的に出力させる出力制御を行うことができる。
【0056】
また、撮像装置100では、撮像制御部115と、信号処理ブロック120のCPU121とは、接続線CL1を介して接続されており、CPU121は、接続線CL1を介して、レジスタ群117に対して、情報の読み書きを行うことができる。すなわち、撮像装置100では、レジスタ群117に対する情報の読み書きは、通信I/F116から行う他、CPU121からも行うことができる。
【0057】
信号処理ブロック120は、CPU(Central Processing Unit)121、DSP(Digital Signal Processor)122、メモリ123、通信I/F124、画像圧縮部125、および、入力I/F126を有し、撮像ブロック110で得られた撮像画像等を用いて、所定の信号処理を行う。なお、CPU121は、これに限らずMPU(Micro Processor Unit)やMCU(Micro Controller Unit)であってもよい。
【0058】
信号処理ブロック120を構成するCPU121、DSP122、メモリ123、通信I/F124および入力I/F126は、相互にバスを介して接続され、必要に応じて、情報のやりとりを行うことができる。
【0059】
CPU121は、メモリ123に記憶されたプログラムを実行することで、信号処理ブロック120の制御、接続線CL1を介しての、撮像制御部115のレジスタ群117への情報の読み書き、その他の各種の処理を行う。
【0060】
例えば、CPU121は、プログラムを実行することにより、DSP122での信号処理により得られる信号処理結果を用いて、撮像情報を算出する撮像情報算出部として機能し、信号処理結果を用いて算出した新たな撮像情報を、接続線CL1を介して、撮像制御部115のレジスタ群117にフィードバックして記憶させる。
【0061】
したがって、CPU121は、結果として、撮像画像の信号処理結果に応じて、撮像部111での撮像や、撮像処理部112での撮像信号処理を制御することができる。
【0062】
また、CPU121がレジスタ群117に記憶させた撮像情報は、通信I/F116から外部に提供(出力)することができる。例えば、レジスタ群117に記憶された撮像情報のうちのフォーカスの情報は、通信I/F116から、フォーカスを制御するフォーカスドライバ(図示せず)に提供することができる。
【0063】
DSP122は、メモリ123に記憶されたプログラムを実行することで、撮像処理部112から、接続線CL2を介して、信号処理ブロック120に供給される撮像画像や、入力I/F126が外部から受け取る情報を用いた信号処理を行う信号処理部として機能する。
【0064】
メモリ123は、SRAM(Static Random Access Memory)やDRAM(Dynamic RAM)等で構成され、信号処理ブロック120の処理上必要なデータ等を記憶する。
【0065】
例えば、メモリ123は、通信I/F124において、外部から受信されたプログラムや、画像圧縮部125で圧縮され、DSP122での信号処理で用いられる撮像画像、DSP122で行われた信号処理の信号処理結果、入力I/F126が受け取った情報等を記憶する。
【0066】
通信I/F124は、例えば、SPI(Serial Peripheral Interface)等のシリアル通信I/F等の第2の通信I/Fであり、外部(例えば、図示されないメモリや制御部など)との間で、CPU121やDSP122が実行するプログラム等の必要な情報のやりとりを行う。
【0067】
例えば、通信I/F124は、CPU121やDSP122が実行するプログラムを外部からダウンロードし、メモリ123に供給して記憶させる。したがって、通信I/F124がダウンロードするプログラムによって、CPU121やDSP122で様々な処理を実行することができる。
【0068】
なお、通信I/F124は、外部との間で、プログラムの他、任意のデータのやりとりを行うことができる。例えば、通信I/F124は、DSP122での信号処理により得られる信号処理結果を、外部に出力することができる。また、通信I/F124は、CPU121の指示に従った情報を、外部の装置に出力し、これにより、CPU121の指示に従って、外部の装置を制御することができる。
【0069】
DSP122での信号処理により得られる信号処理結果は、通信I/F124から外部に出力する他、CPU121によって、撮像制御部115のレジスタ群117に書き込むことができる。レジスタ群117に書き込まれた信号処理結果は、通信I/F116から外部に出力することができる。CPU121で行われた処理の処理結果についても同様である。
【0070】
画像圧縮部125に対して、撮像処理部112から接続線CL2を介して、撮像画像が供給される。画像圧縮部125は、撮像画像を圧縮する圧縮処理を行い、その撮像画像よりもデータ量が少ない圧縮画像を生成する。画像圧縮部125で生成された圧縮画像は、バスを介して、メモリ123に供給されて記憶される。
【0071】
ここで、DSP122での信号処理は、撮像画像そのものを用いて行う他、画像圧縮部125で撮像画像から生成された圧縮画像を用いて行うことができる。圧縮画像は、撮像画像よりもデータ量が少ないため、DSP122での信号処理の負荷の軽減や、圧縮画像を記憶するメモリ123の記憶容量の節約を図ることができる。
【0072】
画像圧縮部125での圧縮処理としては、例えば、3968画素×2976画素の撮像画像を、640画素×480画素の画像に変換するスケールダウンを行うことができる。また、DSP122での信号処理が輝度を対象として行われ、かつ、撮像画像がRGB画像である場合には、圧縮処理としては、RGB画像を、例えば、YUVの画像に変換するYUV変換を行うことができる。
【0073】
なお、画像圧縮部125は、ソフトウェアにより実現することもできるし、専用のハードウェアにより実現することもできる。
【0074】
入力I/F126は、外部から情報を受け取るI/Fである。入力I/F126は、例えば、外部のセンサから、その外部のセンサの出力(外部センサ出力)を受け取り、バスを介してメモリ123に供給して記憶させる。入力I/F126としては、例えば、出力I/F114と同様に、MIPI等のパラレルI/F等を採用することができる。
【0075】
また、外部のセンサとしては、例えば、距離に関する情報をセンシングする距離センサを採用することができる、さらに、外部のセンサとしては、例えば、光をセンシングし、その光に対応する画像を出力するイメージセンサ、すなわち、撮像装置100とは別のイメージセンサを採用することができる。
【0076】
DSP122では、撮像画像あるいは撮像画像から生成された圧縮画像を用いる他、入力I/F126が上述のような外部のセンサから受け取り、メモリ123に記憶される外部セサ出力を用いて、信号処理を行うことができる。
【0077】
DSP122、あるいは、DSP122およびCPU121は、図1における第1プロセッサ11に対応させてよい。これに限らず、CPU121を第1プロセッサ11に対応させてもよい。例えば、ネットワーク制御部20から送信された第1のネットワークが通信I/F124あるいは入力I/F126により受信され、メモリ123に記憶される。DSP122は、CPU121の命令に従いメモリ123から第1のネットワークを読み出して、第1のネットワークによる処理を実行する。第1のネットワークによる処理結果は、出力制御部113および出力I/F114を介して撮像装置100の外部に出力される。
【0078】
以上のように構成される撮像装置100では、撮像部111での撮像により得られる撮像画像あるいは撮像画像から生成される圧縮画像を用いた信号処理がDSP122で行われ、その信号処理の信号処理結果、および、撮像画像が、出力I/F114から選択的に出力される。したがって、ユーザが必要とする情報を出力する撮像装置を、小型に構成することができる。
【0079】
ここで、撮像装置100において、DSP122の信号処理を行わず、したがって、撮像装置100から、信号処理結果を出力せず、撮像画像を出力する場合、すなわち、撮像装置100を、単に、画像を撮像して出力するだけのイメージセンサとして構成する場合、撮像装置100は、出力制御部113を設けない撮像ブロック110だけで構成することができる。
【0080】
図4は、図3を用いて説明した、第1の実施形態に係る撮像装置100の一例の構造を概略的に示す斜視図である。
【0081】
撮像装置100は、例えば、図4に示すように、複数のダイが積層された積層構造を有する1チップの半導体装置として構成することができる。図4の例では、撮像装置100は、ダイ130および131の2枚のダイが積層された1チップの半導体装置として構成されている。
【0082】
なお、ダイは、電子回路を作り込んだシリコンの小薄片をいい、1以上のダイを封止した個体をチップと呼ぶものとする。
【0083】
図4において、上側のダイ130には、撮像部111が搭載されている。また、下側のダイ131には、撮像処理部112、出力制御部113、出力I/F114および撮像制御部115が搭載されている。このように、図4の例では、ダイ130には、撮像ブロック110のうち撮像部111が搭載され、ダイ131には、撮像部111以外の部分が搭載されている。ダイ131に対して、さらに、CPU121、DSP122、メモリ123、通信I/F124、画像圧縮部125および入力I/F126を含む信号処理ブロック120が搭載されている。
【0084】
上側のダイ130と下側のダイ131とは、例えば、ダイ130を貫き、ダイ131にまで到達する貫通孔を形成することにより、電気的に接続される。これに限らず、ダイ130および131は、ダイ130の下面側に露出したCuなどの金属配線と、ダイ131の上面側に露出したCuなどの金属配線とを直接接続するCu-Cu接合など金属-金属配線を行うこと等により、電気的に接続されてもよい。
【0085】
ここで、撮像処理部112において、撮像部111が出力する画像信号のAD変換を行う方式としては、例えば、列並列AD方式やエリアAD方式を採用することができる。
【0086】
列並列AD方式では、例えば、撮像部111を構成する画素の列に対してADC(AD Converter)が設けられ、各列のADCが、その列の画素の画素信号のAD変換を担当することで、1行の各列の画素の画像信号のAD変換が並列に行われる。列並列AD方式を採用する場合には、その列並列AD方式のAD変換を行う撮像処理部112の一部が、上側のダイ130に搭載されることがある。
【0087】
エリアAD方式では、撮像部111を構成する画素が、複数のブロックに区分され、各ブロックに対して、ADCが設けられる。そして、各ブロックのADCが、そのブロックの画素の画素信号のAD変換を担当することで、複数のブロックの画素の画像信号のAD変換が並列に行われる。エリアAD方式では、ブロックを最小単位として、撮像部111を構成する画素のうちの必要な画素についてだけ、画像信号のAD変換(読み出しおよびAD変換)を行うことができる。
【0088】
なお、撮像装置100の面積が大になることが許容されるのであれば、撮像装置100は、1枚のダイで構成することができる。
【0089】
また、図4の例では、2枚のダイ130および131を積層して、1チップの撮像装置100を構成することとしたが、1チップの撮像装置100は、3枚以上のダイを積層して構成することができる。例えば、3枚のダイを積層して1チップの撮像装置100を構成する場合には、図4においてダイ131に搭載されるメモリ123を、ダイ130および131とは異なるダイに搭載することができる。
【0090】
ここで、センサチップ、メモリチップ、および、DSPチップのチップ同士を複数のバンプで並列に接続した撮像装置(以下、バンプ接続撮像装置ともいう)では、積層構造に構成された1チップの撮像装置100に比較して、厚みが大きく増加し、装置が大型化する。
【0091】
さらに、バンプ接続撮像装置では、バンプの接続部分での信号劣化等により、撮像処理部112から出力制御部113に撮像画像を出力するレートとして、十分なレートを確保することが困難になることがあり得る。
【0092】
積層構造の撮像装置100によれば、以上のような装置の大型化や、撮像処理部112と出力制御部113との間のレートとして、十分なレートを確保することができなくなることを防止することができる。したがって、積層構造の撮像装置100によれば、撮像装置100の後段での処理において必要とされる情報を出力する撮像装置を小型に構成することが可能となる。
【0093】
後段において必要とされる情報が撮像画像である場合には、撮像装置100は、撮像画像(RAW画像、RGB画像など)を出力することができる。また、後段において必要とされる情報が撮像画像を用いた信号処理により得られる場合には、撮像装置100は、DSP122において、その信号処理を行うことにより、ユーザが必要とする情報としての信号処理結果を得て出力することができる。
【0094】
撮像装置100で行われる信号処理、すなわちDSP122の信号処理としては、例えば、撮像画像から、所定の認識対象を認識する認識処理を採用することができる。
【0095】
また、例えば、撮像装置100は、その撮像装置100と所定の位置関係になるように配置されたToF(Time of Flight)センサ等の距離センサの出力を、入力I/F126で受け取ることができる。この場合、DSP122の信号処理としては、例えば、入力I/F126で受け取った距離センサの出力から得られる距離画像のノイズを、撮像画像を用いて除去する処理のような、距離センサの出力と撮像画像とを統合して、精度の良い距離を求めるフュージョン処理を採用することができる。
【0096】
さらに、例えば、撮像装置100は、その撮像装置100と所定の位置関係になるように配置されたイメージセンサが出力する画像を、入力I/F126で受け取ることができる。この場合、DSP122の信号処理としては、例えば、入力I/F126で受け取った画像と、撮像画像とをステレオ画像として用いた自己位置推定処理(SLAM(Simultaneously Localizationand Mapping))を採用することができる。
【0097】
図5は、第1の実施形態に係るネットワーク制御部20の機能を説明するための一例の機能ブロック図である。より詳細には、図5では、図1を用いて説明したネットワーク制御部20の機能を示している。
【0098】
なお、図5において、デバイス群21は、図1に示した第1プロセッサ11や第2プロセッサ12、あるいは、図3に示した撮像装置100などの、ネットワーク制御部20が出力するネットワークを受け取る1以上のデバイスを含む。また、デバイス群21に含まれる各デバイスは、ネットワーク制御部20から受け取ったネットワークによる処理を実行するためのプロセッサをそれぞれ含む。
【0099】
図5において、ネットワーク制御部20は、解析部200と、分割部201と、送信部202と、学習部203と、を含む。これらのうち、学習部203は、省略することができる。
【0100】
これらネットワーク制御部20に含まれる解析部200、分割部201、送信部202および学習部203は、CPU上で第1の実施形態に係る情報処理プログラムが実行されることで構成される。これに限らず、これら解析部200、分割部201、送信部202および学習部203の一部または全部を、互いに協働して動作するハードウェア回路により構成してもよい。
【0101】
ネットワーク制御部20にタスクが入力される。タスクは、例えばタスクが用いるニューラルネットワークによるモデルとして入力される。ネットワーク制御部20に入力されたタスクは、解析部200と学習部203とに渡される。
【0102】
解析部200は、渡されたタスクを解析する。例えば、解析部200は、タスクを解析することで、タスクにおいて前段で行われる処理と前段の処理結果に基づき後段で行われる処理と、を抽出する。解析部200による解析結果は、ネットワーク制御部20に入力されたタスクと共に、分割部201に渡される。
【0103】
タスクを2つのタスクに分割する場合、分割部201は、解析部200から渡された解析結果に基づき、タスクを前段のネットワーク(第1のネットワーク)と、後段のネットワーク(第2のネットワーク)とに分割する。分割部201は、さらに、第1のネットワークおよび第2のネットワークのそれぞれを適用するプロセッサを、デバイス群21に含まれるプロセッサから決定する。デバイス群21は、例えば撮像装置100や、撮像装置100の出力に対して信号処理などを行う信号処理装置などを含む。
【0104】
この例では、分割部201は、図1を参照して説明した、入力データが入力される第1プロセッサ11を、第1のネットワークを適用するプロセッサとして決定する。また、第1プロセッサ11の出力が入力される第2プロセッサ12を、第2のネットワークを適用するプロセッサとして決定する。
【0105】
分割部201は、ネットワーク制御部20に入力されタスクが分割された第1のネットワークおよび第2のネットワークと、これら第1のネットワークおよび第2のネットワークが適用されるプロセッサを示す情報とを送信部202に渡す。
【0106】
送信部202は、分割部201から渡された第1のネットワークおよび第2のネットワークを、それぞれに決定されたプロセッサに送信する。例えば、送信部202は、デバイス群21に含まれる各デバイスに含まれるプロセッサのうち、第1のネットワークおよび第2のネットワークのそれぞれに決定されたプロセッサに送信する。この例では、送信部202は、第1のネットワークを第1プロセッサ11に送信し、第2のネットワークを第2プロセッサ12に送信する。
【0107】
デバイス群21に含まれ、第1のネットワークおよび第2のネットワークが適用された各プロセッサは、例えば第1のネットワークおよび第2のネットワークのうち少なくとも一方の処理結果をネットワーク制御部20に返すことができる。当該処理結果は、ネットワーク制御部20において学習部203に渡される。
【0108】
学習部203は、渡された処理結果を用いて、ネットワーク制御部20にタスクとして入力されたネットワークを再学習させることができる。学習部203は、再学習されたネットワークを、解析部200に渡す。解析部200は、学習部203から渡された、再学習されたネットワークを解析し、分割部201は、再学習されたネットワークを分割し、第1のネットワークおよび第2のネットワークを更新する。
【0109】
図6は、第1の実施形態に係るネットワーク制御部20を構成可能なサーバの一例のハードウェア構成を示すブロック図である。
【0110】
図6において、サーバ2000は、互いにバス2020で通信可能に接続された、CPU2010と、ROM(Read Only Memory)2011と、RAM(Random Access Memory)2012と、表示デバイス2013と、ストレージ装置2014と、データI/F2015と、通信I/F2016と、入力デバイス2017と、を含む。
【0111】
ストレージ装置2014は、例えばハードディスクドライブやフラッシュメモリといった不揮発性の記憶媒体である。CPU2010は、ストレージ装置2014やROM2011に記憶されるプログラムに従い、RAM2012をワークメモリとして用いてこのサーバ2000の全体の動作を制御する。
【0112】
表示デバイス2013は、画像を表示するディスプレイ装置と、CPU2010により生成された表示制御信号をディスプレイ装置が表示可能な表示信号に変換する表示制御部とを含む。入力デバイス2017は、ユーザ入力を受け付けるもので、マウスなどのポインティングデバイスや、キーボードなどを適用することができる。入力デバイス2017として適用可能なデバイスは、これらに限定されない。
【0113】
データI/F2015は、外部機器との間でデータの入出力を行うためのインタフェースである。データI/F2015としては、USB(Universal Serial Bus)などを適用できるが、適用可能なインタフェース方式は特に限定されない。通信I/F2016は、インターネットなどの通信ネットワークを介した通信を制御する。
【0114】
このように、サーバ2000は、CPU2010、ROM2011、RAM2012などを含み、一般的なコンピュータとして構成される。これに限らず、サーバ2000を、クラウドコンピューティングによるクラウドコンピューティングサービスを利用して構成してもよい。
【0115】
サーバ2000において、CPU2010は、第1の実施形態に係る機能を実現するための情報処理プログラムが実行されることで、上述した解析部200、分割部201、送信部202および学習部203を、RAM2012における主記憶領域上に、それぞれ例えばモジュールとして構成する。
【0116】
当該情報処理プログラムは、例えば通信I/F2016を介した通信により、図示されない通信ネットワークを介して外部から取得し、当該サーバ2000上にインストールすることが可能とされている。これに限らず、当該情報処理プログラムは、CD(Compact Disk)やDVD(Digital Versatile Disk)、USB(Universal Serial Bus)メモリといった着脱可能な記憶媒体に記憶されて提供されてもよい。
【0117】
(1-3.第1の実施形態に係るシステム構成)
次に、第1の実施形態に係るシステム構成について説明する。
【0118】
図7A図7Cは、第1の実施形態に係るシステム構成の第1~第3の例を概略的に示す模式図である。図7A図7Cにおいて、第1演算機40、第2演算機41および第3演算機42は、それぞれCPU、MPUあるいはMCUといった演算器を備え、プログラムに従いデータ処理などの演算を行う情報処理装置としての構成を有してよい。
【0119】
また、ネットワークが分割された第1のネットワークによる処理を、当該ネットワークにおける第1フェイズの処理、第2のネットワークによる処理を、当該ネットワークにおける第2フェイズの処理とする。図7A図7Cにおいて、第1プロセッサ11は、第1フェイズの処理を実行するフェイズ#1実行部とされ、第2プロセッサ12は、第2フェイズの処理を実行するフェイズ#2実行部とされている。
【0120】
図7Aは、図1に示した情報処理システム1における、第1プロセッサ11と第2プロセッサ12とネットワーク制御部20とが、それぞれ異なる演算機において構成される例である。より具体的には、第1プロセッサ11が第1演算機40において構成され、第2プロセッサ12が第2演算機41において構成され、ネットワーク制御部20が第3演算機42において構成される。第3演算機42は、第1演算機40および第2演算機41と、有線あるいは無線通信を介して接続される。また、第1演算機40と第2演算機41とが有線あるいは無線通信を介して接続される。
【0121】
図7Bは、図1に示した情報処理システム1における、第1プロセッサ11と第2プロセッサ12とが第1演算機40において構成され、ネットワーク制御部20が第3演算機42において構成される例である。第1演算機40において、第1プロセッサ11と第2プロセッサ12とが内部的に接続される。また、第3演算機42と第1演算機40とが有線あるいは無線通信を介して接続される。図7Bに示す構成は、上述した図7Aに示す構成と比較して、第1プロセッサ11と第2プロセッサ12との間でのデータ伝送を、より高速とすることができる。
【0122】
図7Cは、図1に示した情報処理システム1における、第1プロセッサ11が第1演算機40において構成され、第2プロセッサ12およびネットワーク制御部20が第2演算機41において構成される例である。第1演算機40と第2演算機41とが有線あるいは無線通信を介して接続される。また、第2演算機41において、第2プロセッサ12とネットワーク制御部20とが内部的に接続される。図7Cに示す構成において、第2演算機41を例えばより高機能な情報処理装置(サーバ2000など)とすることで、第2プロセッサ12によるフェイズ#2実行部による処理を、より高速化あるいは高機能化することができる。
【0123】
図8A図8Gを用いて、第1の実施形態に係るシステム構成の第1~第7の例について、より具体的に説明する。なお、図8A図8Gに示される各システム構成は、図1に示した情報処理システム1が取り得る構成の例を示している。また、図8A~と、図8Gでは、図1におけるネットワーク制御部20が省略されている。
【0124】
なお、図8A図8Dにおける撮像装置150、および、図8E図8Gにおける撮像装置100は、例えば監視カメラといった、設置場所が固定的とされ人や物に対する認識処理を行うための撮像を行う用途を想定している。撮像装置100および150の用途は監視カメラに限定されるものではなく、車載カメラや携帯可能なカメラであってもよい。
【0125】
図8Aは、図1に示した情報処理システム1における、センシングデバイス10と、第1プロセッサ11により実行される第1のネットワーク(第1DNN51)と、第2プロセッサ12により実行される第2のネットワーク(第2DNN52)と、を含む撮像装置150によるシステム構成の例である。すなわち、撮像装置150は、センシングデバイス10と、第1DNN51による処理を実行する第1プロセッサ11(図示しない)と、第2DNN52による処理を実行する第2プロセッサ12(図示しない)と、が1つの筐体内に収められて構成される。撮像装置150の出力は、図1を用いて説明した情報処理システム1におけるアプリケーション実行部30へと出力される。一例として、撮像装置150の出力は、当該撮像装置150の外部に出力され、例えばユーザに提供される。
【0126】
なお、図8Aの構成において、第1DNN51および第2DNN52の少なくとも一方の処理結果、さらには、アプリケーション実行部30の処理結果に基づき、センシングデバイス10の制御を行うようにできる。また、第2DNN52による処理結果に基づき第1DNN51(第1のネットワーク)を変更するようにできる。さらに、アプリケーション実行部30の処理結果に基づき第1DNN51(第1のネットワーク)や第2DNN52(第2のネットワーク)を変更するようにもできる。
【0127】
図8Bは、図1に示した情報処理システム1におけるセンシングデバイス10、第1DNN51および第2DNN52を含む撮像装置150の出力が、情報処理装置300aに送信されるシステム構成の例である。情報処理装置300aは、プロセッサ302とストレージ装置303とを含む。情報処理装置300aは、さらに、撮像装置150の出力に対して所定の信号処理を実行する信号処理部301を含む。信号処理部301は、例えば第1DNN51および第2DNN52の他のDNN、あるいは、アプリケーションプログラムにより構成される。信号処理部301は、図1を用いて説明した情報処理システム1におけるアプリケーション実行部30に対応させることができる。このように、アプリケーション実行部30は、DNNであってもよい。信号処理部301による処理結果は、情報処理装置300aの外部に出力され、例えばユーザに提供される。信号処理部301による処理結果をストレージ装置303に格納してもよい。
【0128】
なお、図8Bの構成において、第1DNN51および第2DNN52の少なくとも一方の処理結果、さらには、信号処理部301の処理結果に基づき、センシングデバイス10の制御を行うようにできる。また、第2DNN52による処理結果に基づき第1DNN51(第1のネットワーク)を変更するようにできる。さらに、信号処理部301の処理結果に基づき第1DNN51(第1のネットワーク)や第2DNN52(第2のネットワーク)を変更するようにもできる。さらにまた、情報処理装置300aの出力が供給される外部における処理結果に基づき、センシングデバイス10の制御や、第1DNN51(第1のネットワーク)の変更、第2DNN52(第2のネットワーク)を変更するようにもできる。
【0129】
図8Cは、図8Bにおける信号処理部301が、クラウドコンピューティングサービスにより提供されるクラウドネットワーク310上に構成されるシステム構成の例である。なお、クラウドコンピューティングサービスは、換言すれば、コンピュータネットワークを経由してコンピュータ資源を提供するサービスである。
【0130】
撮像装置150の出力は、インターネットやイントラネットなどの有線あるいは無線通信を介してクラウドネットワーク310に送信され、信号処理部301に入力される。信号処理部301は、図1を用いて説明した情報処理システム1におけるアプリケーション実行部30に対応させることができる。信号処理部301による処理結果は、例えばクラウドネットワーク310の外部に出力され、例えばユーザに提供される。信号処理部301による処理結果を、クラウドネットワーク310が有する図示されないストレージ装置に格納してもよい。
【0131】
なお、図8Cの構成において、第1DNN51および第2DNN52の少なくとも一方の処理結果、さらには、信号処理部301の処理結果に基づき、センシングデバイス10の制御を行うようにできる。また、第2DNN52による処理結果に基づき第1DNN51(第1のネットワーク)を変更するようにできる。さらに、信号処理部301の処理結果に基づき第1DNN51(第1のネットワーク)や第2DNN52(第2のネットワーク)を変更するようにもできる。さらにまた、情報処理装置300aの出力が供給される外部における処理結果に基づき、センシングデバイス10の制御や、第1DNN51(第1のネットワーク)の変更、第2DNN52(第2のネットワーク)を変更するようにもできる。
【0132】
図8Dは、図8Bの構成に対して、さらに、クラウドコンピューティングサービスにより提供されるクラウドネットワーク310上に構成される信号処理部301bが追加されたシステム構成の例である。信号処理部301bは、情報処理装置300aにおける信号処理部301aに対して、さらに他のDNNあるいはアプリケーションプログラムにより構成される。
【0133】
情報処理装置300aにおける信号処理部301aによる処理結果は、インターネットやイントラネットなどの有線あるいは無線通信を介してクラウドネットワーク310に送信され、信号処理部301bに入力される。情報処理装置300aは、信号処理部301aから出力された処理結果を直接的にクラウドネットワーク310に送信してもよいし、ストレージ装置303から処理結果を読み出してクラウドネットワーク310に送信してもよい。
【0134】
信号処理部301bによる処理結果は、例えばクラウドネットワーク310の外部に出力され、例えばユーザに提供される。信号処理部301bによる処理結果を、クラウドネットワーク310が有する図示されないストレージ装置に格納してもよい。
【0135】
図8Dの例において、情報処理装置300aにおける信号処理部301aは、図1を用いて説明した情報処理システム1におけるアプリケーション実行部30に対応させることができる。これに限らず、図8Dの例において、信号処理部301aと、クラウドネットワーク310上に構成される信号処理部301bとを含めて、図1を用いて説明した情報処理システム1におけるアプリケーション実行部30としてもよい。
【0136】
なお、図8Dの構成において、第1DNN51および第2DNN52の少なくとも一方の処理結果、さらには、信号処理部301aあるいは301bの処理結果に基づき、センシングデバイス10の制御を行うようにできる。また、第2DNN52による処理結果に基づき第1DNN51(第1のネットワーク)を変更するようにできる。さらに、信号処理部301aおよび301bの少なくとも一方の処理結果に基づき第1DNN51(第1のネットワーク)や第2DNN52(第2のネットワーク)を変更するようにもできる。さらにまた、クラウドネットワーク310の出力が供給される外部における処理結果に基づき、センシングデバイス10の制御や、第1DNN51(第1のネットワーク)の変更、第2DNN52(第2のネットワーク)を変更するようにもできる。
【0137】
図8Eは、図3を用いて説明した撮像装置100と、情報処理装置300bとを含むシステム構成の例を示している。図8Eの例では、撮像装置100が、図1に示した情報処理システム1におけるセンシングデバイス10および第1DNN51を含み、第1DNN51の出力に対して処理を実行する第2DNN52が、撮像装置100の外部の情報処理装置300bに搭載されている。この例の場合、撮像装置100は、センシングデバイス10と、第1DNN51による処理を実行する第1プロセッサ11(図示しない)と、が1つの筐体内に収められて構成される。
【0138】
図8Eにおいて、情報処理装置300bは、プロセッサ302とストレージ装置303とを含む。情報処理装置300bにおいて、プロセッサ302は、第2DNN52が構成され、第2プロセッサ12の機能を含むことができる。
【0139】
撮像装置100の出力が、例えば有線あるいは無線通信を介して情報処理装置300bに送信され、第2DNN52に入力される。第2DNN52の出力は、図1を用いて説明した情報処理システム1におけるアプリケーション実行部30へと出力される。一例として、第2DNN52の出力が信号処理部301aに渡される。信号処理部301aは、例えば第1DNN51および第2DNN52の他のDNN、あるいは、アプリケーションプログラムにより構成される。信号処理部301aは、図1を用いて説明した情報処理システム1におけるアプリケーション実行部30に対応させることができる。信号処理部301aによる処理結果は、情報処理装置300bの外部に出力され、例えばユーザに提供される。信号処理部301aによる処理結果をストレージ装置303に格納してもよい。
【0140】
なお、図8Eの構成において、第1DNN51および第2DNN52の少なくとも一方の処理結果、さらには、信号処理部301aの処理結果に基づき、センシングデバイス10の制御を行うようにできる。また、第2DNN52による処理結果に基づき第1DNN51(第1のネットワーク)を変更するようにできる。さらに、信号処理部301aの処理結果に基づき第1DNN51(第1のネットワーク)や第2DNN52(第2のネットワーク)を変更するようにもできる。さらにまた、情報処理装置300bの出力が供給される外部における処理結果に基づき、センシングデバイス10の制御や、第1DNN51(第1のネットワーク)の変更、第2DNN52(第2のネットワーク)を変更するようにもできる。
【0141】
図8Fは、図3を用いて説明した撮像装置100と、クラウドネットワーク310とを含むシステム構成の例を示している。図8Fの例では、撮像装置100が、図1に示した情報処理システム1におけるセンシングデバイス10および第1DNN51を含み、図8Eにおける第2DNN52および信号処理部301aがクラウドコンピューティングサービスにより提供されるクラウドネットワーク310上に構成される例である。クラウドネットワーク310は、第2プロセッサ12、あるいは、第2プロセッサ12の機能を実現可能な他のプロセッサを含み、第2DNN52は、第2プロセッサ12あるいは当該他のプロセッサにおいて構成される。
【0142】
撮像装置100の出力は、インターネットやイントラネットなどの有線あるいは無線通信を介してクラウドネットワーク310に送信され、第2DNN52に入力される。第2DNN52による処理結果は、信号処理部301aに入力される。信号処理部301aは、図1を用いて説明した情報処理システム1におけるアプリケーション実行部30に対応させることができる。信号処理部301aによる処理結果は、クラウドネットワーク310の外部に出力され、例えばユーザに提供される。信号処理部301aによる処理結果を、クラウドネットワーク310が有する図示されないストレージ装置に格納してもよい。
【0143】
なお、図8Fの構成において、第1DNN51および第2DNN52の少なくとも一方の処理結果、さらには、信号処理部301aの処理結果に基づき、センシングデバイス10の制御を行うようにできる。また、第2DNN52による処理結果に基づき第1DNN51(第1のネットワーク)を変更するようにできる。さらに、信号処理部301aの処理結果に基づき第1DNN51(第1のネットワーク)や第2DNN52(第2のネットワーク)を変更するようにもできる。さらにまた、クラウドネットワーク310の出力が供給される外部における処理結果に基づき、センシングデバイス10の制御や、第1DNN51(第1のネットワーク)の変更、第2DNN52(第2のネットワーク)を変更するようにもできる。
【0144】
図8Gは、図8Eの構成に対して、さらに、クラウドコンピューティングサービスにより提供されるクラウドネットワーク310上に構成される信号処理部301bが追加されたシステム構成の例である。信号処理部301bは、情報処理装置300bにおける信号処理部301aに対して、さらに他のDNNあるいはアプリケーションプログラムにより構成される。
【0145】
情報処理装置300bにおける信号処理部301aによる処理結果は、インターネットやイントラネットなどの有線あるいは無線通信を介してクラウドネットワーク310に送信され、信号処理部301bに入力される。情報処理装置300bは、信号処理部301aから出力された処理結果を直接的にクラウドネットワーク310に送信してもよいし、ストレージ装置303から処理結果を読み出してクラウドネットワーク310に送信してもよい。
【0146】
信号処理部301bによる処理結果は、クラウドネットワーク310の外部に出力され、例えばユーザに提供される。信号処理部301bによる処理結果を、クラウドネットワーク310が有する図示されないストレージ装置に格納してもよい。
【0147】
図8Gの例において、情報処理装置300bにおける信号処理部301aは、図1を用いて説明した情報処理システム1におけるアプリケーション実行部30に対応させることができる。これに限らず、図8Gの例において、信号処理部301aと、クラウドネットワーク310上に構成される信号処理部301bとを含めて、図1を用いて説明した情報処理システム1におけるアプリケーション実行部30としてもよい。
【0148】
なお、図8Gの構成において、第1DNN51および第2DNN52の少なくとも一方の処理結果、さらには、信号処理部301aあるいは301bの処理結果に基づき、センシングデバイス10の制御を行うようにできる。また、第2DNN52による処理結果に基づき第1DNN51(第1のネットワーク)を変更するようにできる。さらに、信号処理部301aおよび301bの少なくとも一方の処理結果に基づき第1DNN51(第1のネットワーク)や第2DNN52(第2のネットワーク)を変更するようにもできる。さらにまた、クラウドネットワーク310の出力が供給される外部における処理結果に基づき、センシングデバイス10の制御や、第1DNN51(第1のネットワーク)の変更、第2DNN52(第2のネットワーク)を変更するようにもできる。
【0149】
(2.第2の実施形態)
次に、本開示の第2の実施形態について説明する。第2の実施形態では、ネットワークに対して要求される性能(要求性能と呼ぶ)に基づき、ネットワークを複数のネットワークに分割する。
【0150】
要求性能は、ハードウェア要素に関して要求される性能と、ネットワークから出力される出力データに対する処理を実行するアプリケーションにより当該出力データに要求されるアプリケーション要素に対して要求される性能と、のうち少なくとも一方を含む。
【0151】
(2-1.既存技術について)
第2の実施形態の説明に先んじて、理解を容易とするために、第2の実施形態に関する既存技術について説明する。
【0152】
図9は、第2の実施形態に関する既存技術を説明するための模式図である。図9において、DNN(DNNモデル)の搭載対象のデバイスとしてのスマートカメラ1100と、クラウドネットワークあるいはサーバ上に構成され、スマートカメラ1100と通信ネットワークを介して通信を行うネットワーク制御部1000とを含むスマートカメラシステムを考える。スマートカメラ1100は、DNNによる処理を実行するDNNプロセッサ1110を含む。
【0153】
スマートカメラ1100は、CISによる撮像装置100と、撮像装置100から出力された出力データに対する処理や、撮像装置100の制御を行うホスト部140とを含む。また、撮像装置100は、DNNによる処理を実行するDNNプロセッサ1110と、容量のうち例えば8MB(メガバイト)をDNNプロセッサ1110による処理に使用可能なメモリと、を含む。また、ネットワーク制御部1000は、例えばクラウドネットワークあるいはサーバ上に構成され、DSPコンバータ1011と、パッケージャ1012とを含む。
【0154】
ネットワーク制御部1000に対して、スマートカメラ1100のDNNプロセッサ1110に搭載するDNN50が入力され、DSPコンバータ1011に渡される。DSPコンバータ1011は、DNN50をDNNプロセッサ1110が実行可能な形式に変換する。また、DSPコンバータ1011は、変換されたDNN50に対して、スマートカメラ1100においてDNNプロセッサ1110に接続されるメモリの容量内に収まるように、最適化を行う。
【0155】
形式の変換および最適化されたDNN50(以下、最適化DNNと呼ぶ)は、パッケージャ1012により暗号化およびパッケージ化され、スマートカメラ1100に送信される。スマートカメラ1100においてホスト部140は、ネットワーク制御部1000から送信された変換DNNをDNNプロセッサ1110に接続されるメモリに転送し、DNNプロセッサ1110に対して最適化DNNを搭載する。
【0156】
このようなシステムにおいて、DSPコンバータ1011は、最適化DNNのデータサイズが、DNNプロセッサ1110に接続されるメモリの容量より大きい場合、エラーを返す。図9の例では、当該メモリにおいてDNNプロセッサ1110が使用可能な容量が8MBであり、DSPコンバータ1011は、当該データサイズが8MBを超える場合に、エラーを返す。エラーが返された場合、最適化DNNは、DNNプロセッサ1110に搭載されない。
【0157】
また、既存技術によれば、スマートカメラ1100のホスト部140、あるいは、クラウドネットワークにおいて最適化DNNの一部が実行可能である場合であっても、DSPコンバータ1011においてその点が自動的に考慮されない。このように、既存技術によれば、DSPコンバータ1011が最適化DNNを搭載できないというエラーを返すため、スマートカメラ1100が機能している場合であっても、多くのDNNの実行が制限される。
【0158】
別の方法として、ユーザ側でDNNを手動で分割してデバイス(この例ではスマートカメラ1100)の制約に適合させ、DNNにおいて前段処理を行う部分をDNNプロセッサ1110において実行し、後段の部分をホスト部140において実行させることが考えられる。
【0159】
しかしながら、一般的に、ユーザ側やDNN50の開発者が認識していない、仕様が異なる様々なタイプのデバイスが存在する可能性がある。したがって、DNN50を手動にて効率的に分割して、システム内の様々なプロセッサやコンポーネントで実行させることは、極めて困難であると考えられる。また、システムの制約に基づき、特定のアプリケーションに対して、DNNを異なる方法で分割する必要が生じる可能性もある。
【0160】
そのため、本開示の第2の実施形態では、デバイスに搭載すべきDNN50を、DNN50による処理の実行に対して要求される性能(要求性能)に基づき分割する。これにより、例えばスマートカメラ1100において、撮像装置100が有するDNNプロセッサ1110と、ホスト部140とに、それぞれ適切にDNN搭載することができ、システムとして、より高度なDNNによる処理を実行させることが可能となる。
【0161】
(2-2.第2の実施形態に係る構成および処理)
次に、第2の実施形態に係る構成および処理について説明する。
【0162】
図10は、第2の実施形態に係る情報処理システムとしてのスマートカメラシステムの機能を説明するための一例の機能ブロック図である。
【0163】
図10の例では、スマートカメラシステム2は、ネットワーク制御部20と、スマートカメラ1100a、1100bおよび1100cと、を含む。なお、図10において、各スマートカメラ1100a、1100bおよび1100cは、構成の異なる複数のスマートカメラを例示したものであって、スマートカメラシステム2がこれら全てのスマートカメラを含んでいる必要はない。
【0164】
スマートカメラ1100a、1100bおよび1100cは、それぞれ、DNNプロセッサ1110と、容量のうち例えば8MBをDNNプロセッサ1110による処理に使用可能なメモリ(図示しない)と、を含む撮像装置100を有する。各DNNプロセッサ1110は、それぞれ第1プロセッサ11の機能を含んでよい。
【0165】
撮像装置100は、例えば図3に示した撮像装置100の構成を有していてよい。この場合、DNNプロセッサ1110は、DSP122、あるいは、DSP122およびCPU121を適用させてよい。また、DNNプロセッサ1110による処理に使用可能なメモリは、メモリ123としてもよいし、例えばDSP122に当該メモリを含めてもよい。
【0166】
また、スマートカメラ1100a、1100bおよび1100cのそれぞれは、それぞれが含む撮像装置100の出力に対する処理や、撮像装置100の動作の制御を行うホスト部140a、140bおよび140cを含む。図10の例では、ホスト部140aは、プロセッサとしてMCU141を含み、ホスト部140bは、プロセッサとしてMPU142を含む。また、ホスト部140cは、プロセッサとしてMPU142およびACCL(アクセラレータ)143を含む。ACCL143は、DNN処理が可能なハードウェア回路である。
【0167】
ホスト部140aおよび140bが含むMCU141およびMPU142は、それぞれ第2プロセッサ12の機能を含んでよい。また、ホスト部140cが含むMPU142およびACCL143は、協働して、あるいは、何れか一方が第2プロセッサ12の機能を含んでよい。
【0168】
以下では、特に記載の無い限り、スマートカメラ1100a、1100bおよび1100cのうち、スマートカメラ1100aがDNN50を搭載するターゲットとなるターゲットデバイスであるものとして説明を行う。
【0169】
図10において、ネットワーク制御部20は、最適化部220と、デバイス設定データベース221と、互換性テスト処理部222と、パッケージャ223と、DNN実行部224と、CISコンバータ225と、ホスト部DNNコンバータ226と、を含む。なお、これらのうち、デバイス設定データベース221およびDNN実行部224は、ネットワーク制御部20の外部の構成としてもよい。
【0170】
CISコンバータ225は、入力されたDNNをDNNプロセッサ1110が実行可能な形式に変換する。このとき、CISコンバータ225は、入力されたDNNによる処理をDNNプロセッサ1110上で実行させた場合の性能維持指標(KPI:Key Performance Indicator)を算出する。ここで算出される性能維持指標は、入力されたDNNによる処理に対して要求される性能(要求性能)である。
【0171】
ホスト部DNNコンバータ226は、入力されたDNNをホスト部140a(MCU141)が実行可能な形式に変換する。
【0172】
デバイス設定データベース221は、ターゲットデバイスの能力を示すターゲットデバイス能力情報が格納される。
【0173】
最適化部220に対して、スマートカメラシステム2において動作させる対象のDNN50が入力される。
【0174】
最適化部220は、最適化アルゴリズム230を用いて、入力されたDNN50のどの部分をスマートカメラシステム2上のどのハードウェアコンポーネント上で動作させるかを決定する。最適化アルゴリズム230は、DNN50を効率的に分割するために、各ハードウェアの能力(ハードウェア要素)に加えて、DNN50による処理の出力を使用するアプリケーションの要件(アプリケーション要素)も考慮する。アプリケーション要素の例としては、当該アプリケーションが要求するフレームレート、伝送サイズ、アプリケーションにおけるコンポーネント間のコスト、などがある。
【0175】
より具体的には、最適化部220は、入力されたDNN50をCISコンバータ225に渡す。CISコンバータ225は、渡されたDNN50に基づき性能維持指標を求め、最適化部220に返す。
【0176】
また、最適化部220は、ターゲットデバイスタイプ、アプリケーションパラメータおよびユーザフラグが入力される。
【0177】
ターゲットデバイスタイプは、ターゲットデバイスの種類を示す。アプリケーションパラメータは、ターゲットデバイスの出力を利用するアプリケーションにおいて、当該出力に対する要件を指定するためのパラメータである。アプリケーションパラメータは、例えばターゲットデバイスの出力のフレームレート、当該出力に対するアプリケーションにおける総処理時間、アプリケーションにおけるその他の制約、のうち少なくとも1つを含む。
【0178】
ユーザフラグは、ユーザが当該スマートカメラシステムにおける特定のコンポーネント上でDNNを実行する際の優先権を持っているか否かを指定する。例えば、ユーザフラグにより、DNNを、スマートカメラ1100aのDNNプロセッサ1110のみで実行するか、ホスト部140aのみで実行するか、DNNプロセッサ1110とホスト部140aとで実行するか、あるいは、ホスト部140aとクラウドネットワークとで実行するか、などが指定される。
【0179】
このユーザフラグによる指定は、例えば、スマートカメラ1100aの出力に対してユーザが利用するアプリケーションがプライバシーを重視し、DNNによる処理をDNNプロセッサ1110(撮像装置100)のような特定のコンポーネント上でのみ実行させたい場合などに、必要となる。
【0180】
これらターゲットデバイスタイプ、アプリケーションパラメータおよびユーザフラグは、ユーザにより指定されてよい。
【0181】
さらに、最適化部220は、デバイス設定データベース221から、ターゲットデバイス能力情報を取得する。ターゲットデバイス能力情報は、ターゲットデバイス(スマートカメラ1100aとする)に関する様々な情報が含まれる。
【0182】
ターゲットデバイス能力情報は、例えば下記の各情報を少なくとも1つ、含むことができる。
・ターゲットデバイスのホスト部140aにおけるプロセッサの種類(CPU、MPU、MCU)、動作周波数など、ハードウェア面での能力。
・ターゲットデバイスの電力制約。
・ターゲットデバイスのホスト部140と撮像装置100との間のインタフェース種類(SPIおよび/またはMIPI)と、その仕様。
・ホスト部140aにおいてDNNアクセラレータが利用可能か、利用可能な場合はその仕様。
・DNNの実行時に利用可能なランタイムメモリ。
・ホスト部140aに適用されるライブラリ、フレームワーク、シングルまたはマルチスレッドか、といったソフトウェア機能。
・ホスト部140aとクラウドネットワーク(サーバ)との間のインタフェース(有線、無線)の転送速度など。
・DNNレイヤタイプの実行精度。畳み込みなどの処理を行う一部のレイヤは、固定小数点演算を行うハードウェアアクセラレータに実行させ、より高精度が要求される処理を行う一部のレイヤは、浮動小数点演算をクラウドネットワークやMPUにおいて実行させると、DNNの全体的な精度を向上させることが可能となる。
【0183】
最適化部220は、上述した各情報(ターゲットデバイスタイプ、アプリケーションパラメータ、ユーザフラグ、ターゲットデバイス能力情報、性能維持指標)に基づき、最適化アルゴリズム230を用いて、DNN50のどの部分を、スマートカメラシステム2におけるどのハードウェアコンポーネント上で動作させるかを決定する。最適化部220は、この決定に従い、DNN50を分割する。
【0184】
例えば、最適化部220は、DNN50を、DNNプロセッサ1110で実行される第1のネットワークと、ホスト部140a(MCU141)で実行される第2のネットワークと、サーバあるいはクラウドネットワークで実行される第3のネットワークと、に分割する。ここで、最適化部220は、例えば分割された第1のネットワークと第2のネットワークとが、パイプライン処理により時間的に連続して処理可能となるように、DNN50の分割位置を決定することができる。
【0185】
互換性テスト処理部222は、最適化部220においてDNN50が分割された第1、第2および第3のネットワークの、これら第1、第2および第3のネットワークが適用される各コンポーネント(DNNプロセッサ1110、ホスト部140a(MCU141)、サーバあるいはクラウドネットワーク)に対する互換性が、DSP処理240、ホスト部処理241およびサーバ処理242によりそれぞれテストされる。互換性テスト処理部222は、例えばシミュレーションにより、各テストを実行してよい。
【0186】
また、互換性テスト処理部222は、テストの結果に基づき性能維持指標(KPI)を求め、求めた性能維持指標を例えばユーザに提示する。
【0187】
CISコンバータ225は、DSP処理240により互換性に問題無いとされた第1のネットワークを、DNNプロセッサ1110が実行可能な形式に変換する。ホスト部DNNコンバータ226は、ホスト部処理241により互換性に問題無いとされた第2のネットワークを、ホスト部140a(MCU141)が実行可能な形式に変換する。
【0188】
パッケージャ223は、CISコンバータ225により変換された第1のネットワークと、ホスト部DNNコンバータ226により変換された第2のネットワークと、を暗号化およびパッケージ化して、スマートカメラ1100aに送信する。また、パッケージャ223は、サーバ処理242により互換性に問題無いとされた第3のネットワークについては、DNN実行部224に渡す。
【0189】
スマートカメラ1100aは、パッケージャ223から渡された、変換された第1のネットワークを、DNNプロセッサ1110に接続されるメモリに転送し、DNNプロセッサ1110に対して第1のネットワークを搭載する。同様に、スマートカメラ1100aは、パッケージャ223から渡された、変換された第2のネットワークを、ホスト部140aに渡し、ホスト部140a(MCU141)に対して第2のネットワークを搭載する。
【0190】
図11は、第2の実施形態に係る処理の流れを説明するための模式図である。なお、図11における各部は、上述した図10の各部と同一であるので、ここでの説明を省略する。
【0191】
ステップS10aで、最適化部220に対して、DNN50が入力される。また、ステップS10bで、最適化部220に対して、ターゲットデバイスタイプ、アプリケーションパラメータおよびユーザフラグが入力される。ステップS11aで、最適化部220は、DNN50をCISコンバータ225に渡す。CISコンバータ225は、渡されたDNN50に基づき性能維持指標を算出する。算出された性能維持指標は、当該DNN50による処理を実行する際に要求されるランタイムメモリの容量や、実行サイクルを示す情報を含んでよい。CISコンバータ225は、算出した性能維持指標を、最適化部220に返す(ステップS11b)。
【0192】
ステップS12で、最適化部220は、デバイス設定データベース221から、ターゲットデバイス(この例ではスマートカメラ1100a)のターゲットデバイス能力情報を取得する。
【0193】
ステップS13で、最適化部220は、最適化アルゴリズム230を用いて、ステップS10bで取得した各情報と、ステップS12で取得したターゲットデバイス能力情報とに基づき、スマートカメラシステム2における各ハードウェアコンポーネントに対するDNN50の効率的な配置を決定する。
【0194】
最適化部220は、各情報を単独で考慮するだけではなく、それらの組み合わせも考慮して、配置を決定する。例えば、最適化部220は、スマートカメラ1100aにおけるDNNプロセッサ1110と、ホスト部140aと、クラウドネットワークあるいはサーバとの間でのデータ転送における転送データサイズおよび転送速度や、アプリケーション実行部30で実行されるアプリケーションによるトータルレイテンシを考慮してよい。
【0195】
最適化部220は、最適化アルゴリズム230によりDNN50を複数のサブネットワーク(例えば第1、第2および第3のネットワーク)に分割する。最適化部220は、分割した各サブネットワークの、スマートカメラシステム2の各ハードウェアコンポーネントへの配置を割り当てる。各サブネットワークを実行する際の性能維持指標は、各ハードウェアコンポーネントに対するシミュレータにより得ることができる。
【0196】
図12は、第2の実施形態に係る、最適化部220による互換性テスト処理を示す一例のフローチャートである。
【0197】
ステップS200で、最適化部220は、ステップS12bでCISコンバータ225から取得した性能維持指標(KPI)を、条件として取得する。
【0198】
次のステップS201で、最適化部220は、ステップS10bで取得した各情報、および、ステップS12で取得したターゲットデバイス能力情報のそれぞれをパラメータとして、パラメータの組み合わせを1つ抽出する。次のステップS202で、最適化部220は、抽出したパラメータの組み合わせにより、各サブネットワークを各ハードウェアコンポーネントにおいて実行した際のシミュレーションを実行する(DSP処理240、ホスト部処理241、サーバ処理242)。
【0199】
次のステップS203で、最適化部220は、シミュレーションにより得られた性能維持指標と、ステップS200で条件として取得した性能維持指標とを比較する。
【0200】
次のステップS204で、最適化部220は、ステップS203の比較結果に基づき、ステップS202で得られた性能維持指標が条件を満たしているか否かを判定する。最適化部220は、ステップS202で得られた性能維持指標が条件を満たしていないと判定した場合(ステップS204、「No」)、処理をステップS201に戻し、未処理のパラメータの組み合わせを1つ抽出する。
【0201】
一方、最適化部220は、ステップS204で、ステップS202で得られた性能維持指標が条件を満たしていると判定した場合(ステップS204、「Yes」)、処理をステップS205に移行させる。ステップS205で、最適化部220は、各サブネットワークを、配置が決定された各ハードウェアコンポーネントに適用する。
【0202】
ステップS205の処理の後、図12のフローチャートによる一連の処理が終了される。
【0203】
図13は、最適化部220による最適化処理をより具体的に説明するための模式図である。図13において、当初、DNNがセクション(a)に示すように、DNNプロセッサ1110に搭載される第1のネットワークと、ホスト部140aあるいはサーバに搭載される第2のネットワークとに分割されているものとする。なお、DNNプロセッサ1110は、接続されるメモリの容量を8MB使用可能であり、ホスト部140aあるいはサーバは、メモリの容量を3MBまで使用可能であるものとする。
【0204】
セクション(a)の例では、DNNは、レイヤN(Layer N)の直後で第1のネットワークと第2のネットワークとに分割されている。ここで、レイヤNの転送サイズが256画素×256画素×32ビットであり、レイヤNの直前のレイヤN-1(Layer N-1)が64画素×64画素×32ビットのサイズを有するものとする。すなわち、セクション(a)の例では、DNNプロセッサ1110からホスト部140aあるいはサーバに対して、256画素×256画素×32ビット=2097152ビットのデータを転送することになる。
【0205】
セクション(b)は、セクション(a)の状態に対して最適化を行った場合の例を示している。セクション(b)の例では、DNNの分割位置が、レイヤNの直前(レイヤNとレイヤN-1との間)に変更されている。第1のネットワークの最後尾レイヤがレイヤN-1となり、DNNプロセッサ1110からホスト部140aあるいはサーバに対して、64画素×64画素×32ビット=131072ビットのデータが転送されることになる。したがって、セクション(b)の例では、転送されるデータ量がセクション(a)の場合と比較して1/16となっている。
【0206】
説明を図11に戻し、最適化部220は、配置が決定された各サブネットワークを互換性テスト処理部222に渡す(ステップS14a、ステップS14bおよびステップS14c)。互換性テスト処理部222は、渡された各サブネットワークの、それぞれ割り当てられたハードウェアコンポーネントに対する互換性をテストする。
【0207】
例えば、互換性テスト処理部222は、各サブネットワークを各ハードウェアコンポーネントにおいて実行した際の動作をシミュレーションし、実行の凡その性能維持指標を算出する。互換性テスト処理部222は、算出した性能維持指標と、ステップS12bでCISコンバータ225から取得した性能維持指標とを比較して、各サブネットワークを各ハードウェアコンポーネントに配置可能か否かを判定する。
【0208】
互換性テスト処理部222は、テストの結果、互換性に問題が無いとされたサブネットワーク(第1のネットワーク)をCISコンバータ225に渡す(ステップS15a)。CISコンバータ225は、渡されたサブネットワークを、DNNプロセッサ1110が実行可能な形式に変換する。
【0209】
また、互換性テスト処理部222は、互換性テストの結果、互換性に問題が無いとされたサブネットワーク(第2のネットワーク)をホスト部DNNコンバータ226に渡す。ホスト部DNNコンバータ226は、渡されたサブネットワークを、ホスト部140a(MCU141)が実行可能な形式に変換する。
【0210】
さらに、互換性テスト処理部222は、互換性テストにより算出された性能維持指標を、例えばユーザに提示する(ステップS16)。ユーザは、提示された性能維持指標に基づき互換性テストの結果を判定することができる。
【0211】
図14は、ユーザに提示される性能維持指標の例を示す模式図である。図のように、性能維持指標は、フレーム当たりの必要電力、処理サイクル、可変メモリサイズ、ランタイムメモリサイズといった、DNNが実行されるハードウェアに要求される性能を含む。また、性能維持指標は、レイヤワイズ(Layer-wise)メモリや、各レイヤの処理タイプ、使用メモリ、処理サイクル、必要電力といった、DNNにおけるレイヤの情報も含む。
【0212】
互換性テスト処理部222は、CISコンバータ225により変換されたサブネットワーク(第1のネットワーク)と、ホスト部DNNコンバータ226により変換されたサブネットワーク(第2のネットワーク)とを、パッケージャ223に渡す(ステップS17)。パッケージャ223は、互換性テスト処理部222から渡された各サブネットワークを暗号化およびパッケージ化して、スマートカメラ1100aに送信する(ステップS18)。また、パッケージャ223は、サーバ処理242により互換性に問題無いとされたサブネットワーク(第3のネットワーク)については、DNN実行部224に渡す。
【0213】
(2-3.第2の実施形態に係る効果)
次に、第2の実施形態に係る効果について説明する。
【0214】
図15は、既存技術による処理シーケンスと、第2の実施形態に係る処理シーケンスとを対比させて示す模式図である。図15において、セクション(a)は、既存技術による処理シーケンスの例を示している。また、セクション(b)および(c)は、第2の実施形態に係る処理シーケンスの例を示している。
【0215】
なお、図15のセクション(a)~(c)において、横軸は、時間の経過を示している。セクション(a)~(c)の上段に示すように、フレームレートが15msecとされている。したがって、1sec当たりに撮像装置100が出力可能なフレーム数Nは、66(=1000/15)となる。また、上段のフレームを示す目盛の数値は、撮像装置100がフレーム状の情報を出力したタイミングを、フレームのカウント値(正確には、カウント値-1)として表している。
【0216】
(既存技術による処理)
まず、図15のセクション(a)を用いて、既存技術による処理について説明する。ここでは、図9に示したスマートカメラ1100を対象として、説明を行う。なお、セクション(a)において、DNNとして示される帯の長さは、DNNによる処理に要する時間の長さを表している。
【0217】
図15のセクション(a)に示す既存技術では、撮像装置100においてDNN(DNNプロセッサ1110)に入力された1フレーム分の情報を、DNNによって処理するに要する時間として、撮像装置100が本来出力し得るフレーム間隔(図に示した例では、15msec)よりも長い時間を要している(図に示した例では、20msec)。このため、DNNによる処理を示す帯は、撮像装置100が出力し得るフレームの間隔よりも長く延在している。
【0218】
図15のセクション(a)に示す既存技術は、DNNを実行するプロセッサとして1個のDNNプロセッサ1110を用いて、かつ、DNNプロセッサ1110がDNNを用いた処理を示している。ここで、当該セクション(a)では、「m番目のフレームについての処理を終えたら、m+1番目のフレームについての処理を開始して、m+1番目のフレームについての処理を終えたら、m+2番目のフレームについての処理を行う」という順次的な処理を行う例、を表している。
【0219】
図15のセクション(a)における、DNNの処理を示す各帯の後端から図において下方に伸びる点線矢印は、DNNプロセッサ1110がDNNを用いた処理を実行した結果を出力するタイミング、を表している。すなわち、この点線矢印のタイミングに応じて、スマートカメラ1100から、例えば他の情報処理装置において実行されるアプリケーションに対して出力データが送信される。
【0220】
図15のセクション(a)における、DNNの処理を示す各帯の先端から図において下方に伸びる実線矢印は DNN処理の結果を出力する際に、そのDNN処理に用いたデータ(当該DNN処理への入力データ)も併せて出力するシステムの形態において、当該DNNプロセッサ1110への入力データを出力するタイミング、を表している。
【0221】
図15のセクション(a)に示す既存技術は、
(1)DNNプロセッサ1110による処理に要する時間として、撮像装置100が本来出力し得るフレーム間隔よりも長い時間を要する例、
であって、且つ、
(2)1つのフレームについての処理を終えてから次のフレームについての処理を行う、という順次的な処理を行う例、
を表している。
【0222】
このため、DNNプロセッサ1110を用いた処理結果を出力する間隔(点線矢印の間隔)は、撮像装置100が本来出力し得るフレーム間隔(15msec)の2倍の30msecとなる。DNNプロセッサ1110が単位時間(例えば1sec)当りに出力し得るDNN処理結果のフレーム数(フレームレート)は、撮像装置100が本来出力し得るフレームレートRの1/2、つまり、R/2となる。DNN処理結果を出力する際に、そのDNN処理に用いた入力データを出力するフレームレートも、R/2となる。
【0223】
(第2の実施形態に係る処理のフレームレートに対する効果)
次に、図15のセクション(b)を用いて、第2の実施形態に係る処理のフレームレートに対する効果について説明する。ここでは、図10に示したスマートカメラ1100aを対象として、説明を行う。
【0224】
図15のセクション(b)は、第2の実施形態に係る処理シーケンスの例を示している。セクション(b)では、DNN処理が第1のネットワークによる処理(第1DNN)と、第2のネットワークによる処理(第2DNN)とに分割されている。セクション(b)において、第1DNNおよび第2DNNとしてそれぞれ示される帯の長さは、それぞれ、第1DNNおよび第2DNNによる処理に要する時間の長さを表している。それ以外の部分の意味は、セクション(a)と共通なので、ここでの説明を省略する。
【0225】
第2の実施形態では、スマートカメラ1100aがDNNによる処理が可能なプロセッサを複数備え、これら複数のプロセッサにおいて、DNNを用いた処理をパイプラインで実行する。この複数のプロセッサによるパイプライン処理は、上述した第1の実施形態、および、後述する第3~第5の実施形態にも、共通に適用できる。
【0226】
図15のセクション(b)は、複数個のプロセッサを用いてパイプライン処理を行う例として、DNNを用いて行う処理を時間方向に2つに分割して、2個のプロセッサを用いてパイプライン処理する例を表している。
【0227】
具体的には、第1のプロセッサ(例えば撮像装置100が有するDNNプロセッサ1110)と、第2のプロセッサ(例えばホスト部140aが有するMCU141)とを用いて、撮像装置100における撮像部111から入力された1フレーム分の情報をDNN処理する。この処理に要する合計の時間は、図15のセクション(a)に示した既存技術の場合と同じ20msecである。
【0228】
なお、第1のプロセッサおよび第2のプロセッサは、それぞれ、第1の実施形態で図1を用いて説明した第1プロセッサ11および第2プロセッサ12に対応させることができる。
【0229】
このDNN処理を、第1のプロセッサにおいて実行する第1DNN処理と、第2のプロセッサにおいて実行する第2DNN処理と、に分割する。ここで、第1DNN処理に要する時間、および、第2DNN処理に要する時間は、それぞれ10msecであって、撮像装置100が出力し得るフレーム間隔よりも小さい。
【0230】
撮像装置100において撮像部111から入力された第1のフレームに対して、先ず、第1DNN処理を第1のプロセッサ(DNNプロセッサ1110)で実行し、次に、第2DNN処理を第2のプロセッサ(ホスト部140aのMCU141)で実行する。この場合において、第2のプロセッサが第1のフレームについて第2DNN処理を実行している時間帯の少なくとも一部が重複する時間帯に、第1のプロセッサが次のフレームとなる第2のフレームについて、第1DNN処理を並行して実行する、所謂パイプライン処理を実行する。
【0231】
図15のセクション(b)における、第2DNN処理を示す各帯の後端から下に伸びる点線矢印は、図15のセクション(a)においてDNN処理の各帯の後端から下に伸びる点線矢印と同様に、第2のプロセッサが第2DNN処理を実行した結果を出力するタイミングを表している。すなわち、この点線矢印のタイミングに応じて、スマートカメラ1100aから、例えば他の情報処理装置において実行されるアプリケーションに対して出力データが送信される。
【0232】
図15のセクション(b)における、第1DNN処理を示す各帯の先端から下に伸びる実線矢印は、DNN処理の結果を出力する際に、そのDNN処理に用いたデータ(当該DNN処理への入力データ)も併せて出力するシステムの形態において、当該データを出力するタイミングを表している。
【0233】
図15のセクション(a)を用いて説明した既存技術では、DNN処理に要する時間として、撮像装置100が本来出力し得るフレーム間隔よりも長い時間を要する場合には、撮像装置100が本来出力し得るフレーム間隔よりも長いフレーム間隔(低いフレームレート)でしか、DNN処理を実行できなかった。これに対して図15のセクション(b)を用いて説明した第2の実施形態では、このDNN処理を複数に分割して複数のプロセッサでパイプライン処理している。これにより、第2の実施形態では、既存技術よりも短いフレーム間隔(高いフレームレート)でDNN処理を実行できる。
【0234】
特に、図15のセクション(b)に示した例の場合、第2DNN処理の各帯の後端の点線矢印で示す、DNN処理を出力するフレーム間隔を、撮像装置100が本来出力し得るフレーム間隔(15msec)と、同じにすることができる。すなわち、DNN処理を実行するプロセッサが単位時間(例えば1sec)当りに出力し得るフレームの数(フレームレート)は、撮像装置100が単位時間当りに出力し得るフレーム数と同じとすることができる。
【0235】
DNN処理の結果だけでなく、DNN処理に用いた入力データも併せて出力する形態においては、第1DNN処理の各帯の先端の実線矢印で示す、DNN処理に用いた入力データを出力する間隔も、撮像装置100が本来出力し得るフレーム間隔と同じとなる。したがって、当該入力データを出力するフレームレートも、撮像装置100がデータを出力するフレームレートと同じとなる。
【0236】
第2の実施形態では、複数個のプロセッサを備え、これら複数個のプロセッサにおいて、DNNを用いた処理をパイプラインで実行する構成を備える。これにより、第2の実施形態では、この構成を備えない既存技術に対して、DNNを用いた処理を行うフレームレートと処理結果を出力するフレームレートとを大きくすることが可能となる。換言すれば、第2の実施形態では、既存技術に対して、DNNを用いた処理を開始してから当該処理の処理結果を出力するまでの時間を短縮することが可能となる。
【0237】
(第2の実施形態に係る処理のレイテンシに対する効果)
次に、図15のセクション(c)を用いて、第2の実施形態に係る処理のレイテンシに対する効果について説明する。図15のセクション(c)は、上述した図15のセクション(b)に対して第1DNN処理の結果に応じたアプリケーションによる処理が追加された以外の部分の意味は、当該セクション(b)と共通なので、個々での説明を省略する。ここでは、図10に示したスマートカメラ1100aを対象として、説明を行う。
【0238】
第2の実施形態では、複数個のプロセッサを備え、これら複数個のプロセッサにおいて、DNNを用いた処理をパイプラインで実行する構成を備えることにより、この構成を備えない既存技術と比較して、DNN処理を行うことによって生じるレイテンシを、小さくすることができる。
【0239】
より詳しくは、第2の実施形態では、「センシングデバイス(例えば撮像装置100)がセンシング結果となるデータを出力してから、DNN処理を行う最初のプロセッサでこのデータが処理されて、この処理結果を利用する後段へと出力するまで、に要する時間」を小さくすることが可能である。
【0240】
ここでは、第2の実施形態に係るDNNを用いた処理として、自動運転を行う車両において、当該車両の前方に存在する物体を検出して弁別する処理を例にとって説明する。
【0241】
この例においては、物体を検出して弁別する処理として、下記の処理(a)および(b)を実行するものとする。
(a)センシングデバイス(例えばスマートカメラ1100a)が自動運転中の当該センシングデバイスを搭載した車両(自車両)の前面を観測したデータの中に、自車両がブレーキ操作を行うべき対象となる物体を検出する処理。
(b)ブレーキ操作を行うべき対象となる物体が存在する場合には、その物体がどのような物体であるか(例えば、歩行者であるか、自車両とは別の車両であるか)に応じて、自動運転中の自車両が次なる走行の制御を行うことが可能なように、検出した物体の種類を弁別する処理。
【0242】
図15のセクション(a)に示す既存技術の場合、撮像装置100が最初のフレームのデータを出力してから、このデータを入力されたプロセッサが当該最初のフレームに対して上述の処理(a)および(b)を含むDNNによる処理を終えてその結果を当該プロセッサの後段(自車両の走行を制御する走行制御部)へと出力するまでが、この後段にとってのレイテンシとなる。図15のセクション(a)においては、番号#1が付されたDNN処理の先頭タイミングから、当該DNN処理の後端のタイミングまでが、レイテンシとなる。
【0243】
これに対して、図15のセクション(c)に示す第2の実施形態の場合、第1のプロセッサ(例えばDNNプロセッサ1110)が自身に入力された最初のフレームに対して第1DNN処理を終えた時点で、当該第1のプロセッサから、第1DNNによる処理の処理結果を、当該第1のプロセッサが含まれるスマートカメラ1100aの後段(自車両の走行を制御する走行制御部)へと出力することができる。第1のプロセッサから出力される情報は、例えば、ブレーキ操作の対象となる物体が存在することを表した特徴マップや、少なくともブレーキ操作の対象となる物体が存在するとの情報であってよい。
【0244】
第1DNN処理に次いで、第2のプロセッサが実行する第2DNN処理を終えた時点で、検出した物体の種類を弁別した結果を、自車両の走行を制御する走行制御部へと出力することができる。走行制御部は、第1DNN処理の処理結果を受け取ると、自車両のブレーキ操作を開始することができる。このため、スマートカメラ1100aが最初のフレームのデータを出力してから、第1のプロセッサが当該最初のフレームに対して第1DNN処理の結果を出力するまでが、走行制御部にとってのレイテンシ(図における第1DNNのレイテンシ)となる。
【0245】
このように、第2の実施形態では、複数個のプロセッサを備え、これら複数個のプロセッサにおいて、DNNを用いた処理をパイプラインで実行する構成を備える。これにより、図15のセクション(a)を用いて説明した既存技術と比較して、レイテンシを小さく(短縮)することが可能である。換言すれば、第2の実施形態では、既存技術に対して、DNNを用いた処理を開始してから当該処理の処理結果を出力するまでの時間を短縮することが可能となる。
【0246】
(3.第3の実施形態)
次に、本開示の第3の実施形態について説明する。第3の実施形態では、ネットワークの各部における機能に基づき、ネットワークを複数のネットワークに分割する。
【0247】
(3-1.既存技術について)
第3の実施形態の説明に先んじて、理解を容易とするために、第3の実施形態に関する既存技術について説明する。
【0248】
一般的に、DNN処理は計算コストが大きい一方で、エッジデバイスでは計算リソースが限られている。その結果、以下の課題が存在する。
・複雑で高度なDNN処理を行えるモデルほどモデルサイズが大きくなる傾向がある。
・サイズの大きいモデルをエッジデバイスで動作させることが困難である。
・エッジデバイスで処理できるDNN処理は、エッジデバイスのハードウェア的制約により限定される。
【0249】
なお、エッジデバイスは、インターネットに接続される末端の情報機器である。エッジデバイスの例としては、インターネットを介して画像データなどの情報を送信する監視カメラや、家電製品に設けられ、インターネットに対する通信機能を有する電子機器などが挙げられる。
【0250】
これらの課題を克服すべく、データの量子化などを用い、軽量かつ高性能なモデルを作成する手法が数多く提案されているが、依然としてエッジデバイスで行えるDNN処理は限られている。
【0251】
そのため、高性能なDNN処理を行う場合は、エッジデバイスで取得したデータを、計算リソースが比較的潤沢にあるサーバなどのデバイスに送り、そこで処理が行われている。しかしながら、通信帯域がボトルネックになったり、個人情報を含むデータを通信に乗せる必要があるなど課題が多い。特に計算リソースを多く要する傾向がある画像処理において、この課題がより顕著に現れる。
【0252】
図16は、DNN50を第1DNN51および第2DNN52の2つのDNNに分割する例を概略的に示す模式図である。この例では、入力データとして、例えば図3に示す撮像装置100において、撮像処理部112から出力される撮像画像を想定している。
【0253】
図16の例では、第1DNN51は、入力データに対する第1フェイズ(図ではフェイズ#1と記載)の処理として、RGB画像に対する処理を実行する。第2DNN52は、第1フェイズすなわち第1DNN51の出力に対して、所定の処理を実行する。第2DNN52の処理結果は、出力データとして外部に出力される。
【0254】
図17は、DNNを分割した第1DNN51および第2DNN52による処理を実行するための、既存技術による構成の例を示す模式図である。図17において、入力データは、例えばエッジデバイスから出力された画像データとされている。既存技術では、DNN50における第1DNN51および第2DNN52による、第1フェイズおよび第2フェイズの処理を、サーバなど1つの情報処理装置400において実行していた。
【0255】
すなわち、既存技術では、1つまたはそれ以上のDNN処理において複数の処理を行う場合、エッジデバイスにより取得したデータを計算リソース、特にメモリが潤沢にある単一のデバイス(この例では情報処理装置400)に転送し、DNN処理を行っていた。この場合、画像データは、単位時間に転送されるデータ量が比較的多いため、データ転送に用いる通信帯域が転送速度のボトルネックになるおそれがある。また、画像データが顔など個人情報を含む場合もある。
【0256】
(3-2.第3の実施形態に係る概略的な構成)
第3の実施形態に係る概略的な構成について説明する。図18は、第3の実施形態に係る情報処理システムの構成を概略的に示す模式図である。なお、DNNの構成は、図16に示した構成を適用するものとする。また、第3の実施形態では、各プロセッサにおいて実行されるネットワークを決定するネットワーク制御部20として、第1の実施形態において図5を用いて説明した構成を適用できる。なお、図18では、当該ネットワーク制御部20の記載が省略されている。
【0257】
図18において、ネットワーク制御部20は、与えられたタスクを解析して、当該タスクを、第1フェイズによる処理と、第2フェイズによる処理とに分割する。ネットワーク制御部20は、第1フェイズのタスクによるDNN処理(第1DNN51)を実行するプロセッサを、例えばエッジデバイスに搭載される第1プロセッサ111に決定する。また、ネットワーク制御部20は、第2フェイズのタスクによるDNN処理(第2DNN52)を実行するプロセッサを、例えばサーバに搭載される第2プロセッサ12に決定する。
【0258】
なお、第2プロセッサ12は、第1プロセッサ11と比較して潤沢なハードウェアリソースを利用可能とされ、第1プロセッサ11よりも高速且つ高機能な処理を実行可能であるものとする。一例として、第2プロセッサ12に接続され第2のプロセッサが使用し得るメモリの容量は、第1プロセッサ11に接続され第1のプロセッサが使用し得るメモリの容量よりも、大きくてよい。また、第2プロセッサが動作する周波数は、第1のプロセッサが動作する周波数よりも、高くてよい。
【0259】
第1プロセッサ111の処理結果は、第2プロセッサ12に送信される。第1プロセッサ111の処理結果は、例えばRGB画像に対する第1DNN51による処理で得られた特徴量マップやメタデータとすることができる。
【0260】
また、第3の実施形態に係る情報処理システムでは、それぞれ第1DNN51による処理を実行する複数の第1プロセッサ111、112、…、11Nを含むことができる。例えば、ネットワーク制御部20は、第1フェイズによる処理を、第1のDNN処理、第2のDNN処理、…、第NのDNN処理、…に分割する。ネットワーク制御部20は、これら第1のDNN処理、第2のDNN処理、…、第NのDNN処理、…のそれぞれを実行するプロセッサを、第1プロセッサ111、112、…、11Nに決定する。
【0261】
この場合、第1プロセッサ111、112、…、11Nで実行されるDNN処理は、必ずしも同一でなくてもよく、異なっていてよい。例えば、第2フェイズによる処理が共通の、互いに異なる第1フェイズによる処理を、第1プロセッサ111、112、…、11Nにそれぞれ割り当ててもよい。各第1プロセッサ111、112、…、11Nの出力は、第2プロセッサ12に送信される。
【0262】
第3の実施形態に係る情報処理システムの構成は、第1の実施形態において図1を用いて説明した構成を適用できる。すなわち、第3の実施形態に係る情報処理システムは、図16も併せて参照し、第1DNN51による処理を実行する第1プロセッサ11と、第1DNN51による処理結果を用いて第2DNN52による処理を実行する第2プロセッサ12と、を含む。第3の実施形態に係る情報処理システムは、さらに、与えられたDNN50を第1DNN51および第2DNN52に分割して第1プロセッサ11および第2プロセッサ12にそれぞれ割り当てるネットワーク制御部20を含む。
【0263】
図19は、第3の実施形態に係るネットワーク制御部20における処理を示す一例のフローチャートである。
【0264】
ステップS300で、ネットワーク制御部20は、必要に応じて、与えられたDNN50によるモデルを学習する。次のステップS301で、ネットワーク制御部20は、モデルにより実行されるタスクを解析する。次のステップS302で、ネットワーク制御部20は、ステップS301によるタスク解析の結果に基づき、モデルを分割する。
【0265】
例えば、ネットワーク制御部20は、ステップS301におけるモデル解析により、DNN50を構成する各レイヤにおいて、前段となる処理に係るレイヤ群と、前段の処理結果を受ける、後段となる処理に係るレイヤ群とを抽出する。ネットワーク制御部20は、ステップS302におけるモデル分割において、DNN50を、前段となる処理に係るレイヤ群によるモデル(第1DNN51)と、後段となる処理に係るレイヤ群によるモデル(第2DNN)と、に分割する。
【0266】
ステップS303で、ネットワーク制御部20は、分割したモデルを、それぞれ対応するデバイス(プロセッサ)に送信する。ネットワーク制御部20は、例えば、前段となる処理に係るレイヤ群によるモデルを、入力データが入力される第1プロセッサ11に送信する。また、後段となる処理に係るレイヤ群によるモデルを、第1プロセッサ11の出力が入力される第2プロセッサ12に送信する。
【0267】
各モデルが送信された各デバイスは、それぞれのモデルに応じた処理を実行する。各デバイスは、モデルに応じた処理の処理結果をネットワーク制御部20に送信してよい。
【0268】
次のステップS304で、ネットワーク制御部20は、各モデルを送信した各デバイスから送信されたデータ(例えば処理結果)を受信する。次のステップS305で、ネットワーク制御部20は、各デバイスから送信されたデータに基づき、モデルすなわちDNN50を再学習する。なお、ステップS305では、分割されたネットワークの一部のみを再学習してもよい。
【0269】
次のステップS306で、ネットワーク制御部20は、ステップS305における再学習によりモデルに更新が生じたか否かを判定する。ネットワーク制御部20は、モデルに更新が生じなかったと判定した場合(ステップS306、「No」)。処理をステップS304に戻す。一方、ネットワーク制御部20は、モデルに更新が生じたと判定した場合、処理をステップS302に戻し、更新されたモデルに対してモデル分割を実行する。
【0270】
このように、第3の実施形態では、DNN50を分割した第1DNN51および第2DNN52を、第1プロセッサ111および第2プロセッサ12といった、異なるハードウェアにより実行する。そのため、第3の実施形態では、単一デバイスで実行が困難なモデルの実行、通信帯域の減少、セキュリティの向上などを実現できる。また、第3の実施形態では、前段処理および後段処理の一方を共通化し、他方を変更することが可能となる。さらに、第3の実施形態では、エッジデバイスの並列処理が可能となる。
【0271】
ここで、特許文献1では、DNN処理を前段と後段とに分割しているが、前段および後段で行うDNN処理が一意に固定されている。また、特許文献1では、それぞれ単一での処理を行っている。
【0272】
これに対して、第3の実施形態では、前段DNNの処理結果によって、後段DNNで用いるネットワークモデルを切り替える構成を取り得る。また、第3の実施形態では、前段と後段処理共に、複数のDNNモデルを並列に処理する構成を取り得る。
【0273】
また、特許文献1では、DNN処理の分割方法に関して、前段処理をCNN(Convolutional Neural Network)m後段処理をLSTM(Long Short Term Memory)としている。
【0274】
これに対して、第3の実施形態では、全体で機能Aを実現するDNN処理を行うこともできるし、全体で機能Bを実現するDNN処理を行うこともできる。全体で機能Aを実現する場合には、機能Aを機能A#1およびA#2に分割したうちの機能A#1は、これを実行するために必要となるハードウェアリソースを備えたプロセッサ#1(例えば第1プロセッサ11)で実行し、機能A#2は、これを実行するために必要となるハードウェアリソースを備えたプロセッサ#2(例えば第2プロセッサ)で実行させることができる。
【0275】
同様に、全体で機能Bを実現する場合であって、機能Bを機能B#1およびB#2に分割したうちの機能B#1は、これを実行するために必要となるハードウェアリソースが、プロセッサ#1では足りず、プロセッサ#2では足りる場合には、プロセッサ#2で実行する。同様に、機能B#2も、これを実行するために必要となるハードウェアリソースが、プロセッサ#1では足りず、プロセッサ#2では足りる場合には、プロセッサ#2で実行する。
【0276】
プロセッサ#2は、それ単独で、機能Aの実行が可能であると共に、機能Bの実行が可能である。この場合において、機能Aを実行する際には、所望の特性を優先するために、機能A#1をプロセッサ#1で実行し、機能A#2をプロセッサ#2で実行する。一方、機能Bを実行する際には、上記の特性を優先することはせずに、機能Bの全てをプロセッサ#2で実行する。
【0277】
このような構成は、特許文献1には開示されていない。
【0278】
(3-3.第3の実施形態の各例について)
以下、第3の実施形態に係る構成の各例について、図20図30を用いて説明する。なお、図20図30では、ネットワーク制御部20が省略されている。
【0279】
(3-3-1.第3の実施形態の第1の例)
第3の実施形態の第1の例について説明する。第3の実施形態の第1の例は、前段である第1フェイズの処理を実行する第1DNN51の処理結果を用いて、後段である第2フェイズの処理を実行する第2DNN52による処理を行う場合において、後段の処理によって前段の出力を決定する例である。
【0280】
図20は、第3の実施形態の第1の例による情報処理システムの一例の構成を示すブロック図である。第1プロセッサ11は、例えば図3に示した撮像装置100におけるCPU121および/またはDSP122に対応させることができる。また、第2プロセッサ12は、当該撮像装置100と同一筐体に構成されるホスト部であってもよいし、当該撮像装置100と有線あるいは無線通信により接続される情報処理装置やクラウドネットワークにおいて構成してもよい。この第1プロセッサ11および第2プロセッサ12に関する構成は、以降の図21図30において共通である。
【0281】
第1プロセッサ11において、第1DNN51により第1フェイズ(図ではフェイズ#1として記載)の処理が実行される。図の例では、例えば第1プロセッサ11は、適用されるモデルに応じて、入力テンソル60と、出力テンソル61と、RAWデータ62と、の3種類のデータを出力することができる。
【0282】
入力テンソル60は、例えば、撮像部111の出力に対して現像などの処理を施して各画素にRGBの色情報を持たせたRGB画像である。出力テンソル61は、例えば、当該撮像画像に対して第1DNN51による処理を行った処理結果のデータである。図の例では、第1DNN51が撮像画像に基づき物体(人)検出を行った検出結果が出力テンソル61とされている。出力テンソル61は、例えば検出結果としての特徴量マップを含んでよい。RAWデータ62は、撮像部111の出力に対して現像などの処理を行わないデータである。
【0283】
第2プロセッサ12は、第2DNN52により第2フェイズ(図ではフェイズ#2として記載)の処理が行われる。第2プロセッサ12は、入力テンソル60と、出力テンソル61と、RAWデータ62と、のうち第2フェイズの処理において必要となるデータを出力させるためのモデルを第1プロセッサ11に送信する。第1プロセッサ11は、第2プロセッサ12から送信されたモデルを例えばメモリ123(図3参照)に格納し、当該モデルを第1DNN51に適用する。
【0284】
なお、第2プロセッサ12は、第1プロセッサ11においてモデルの変更が不要の場合は、第1プロセッサ11に対してモデルを送信せずに、出力データのタイプを指定するのみでもよい。例えば、第2DNN52において入力テンソル60やRAWデータ62が必要な場合は、第1プロセッサ11におけるモデルの変更が不要である可能性がある。
【0285】
なお、図20の構成において、デバッグ用に前段すなわち第1DNN51の出力を表示させる処理を実行することも可能である。
【0286】
(3-3-2.第3の実施形態の第2の例)
次に、第3の実施形態の第2の例について説明する。第3の実施形態の第2の例は、後段である第2フェイズの処理を実行する第2DNN52に適用するモデルを変更する例である。
【0287】
図21は、第3の実施形態の第2の例による情報処理システムの一例の構成を示すブロック図である。図21において、第2プロセッサ12は、搭載される第2DNN52を、他の第2DNN52-1、52-2、52-3、…と入れ換えることができる。これら第2DNN52-1、52-2、52-3、…は、第2DNN52と異なる機能を実現するものであってよいし、第2DNN52を再学習後に更新したものであってもよい。
【0288】
図21の例では、第2DNN52-1および52-2は、第2DNN52を再学習後に更新されたDNNとされている(第2フェイズのDNN#A-1、#A-2)。一方、第2DNN52-2は、第2DNN52と異なる機能を実現するためのDNNとされている。
【0289】
(第3の実施形態の第2の例における第1の具体例)
第3の実施形態の第2の例における第1の具体例について説明する。この第1の具体例は、前段すなわち第1プロセッサ11における第1DNN51による処理結果に応じて、後段すなわち第2プロセッサ12のDNNを切り替えるようにした例である。
【0290】
図22は、第3の実施形態の第2の例における第1の具体例による情報処理システムの一例の構成を示すブロック図である。図22の例では、前段処理を行う第1プロセッサ11において、第1DNN51bは、第1フェイズの処理として、撮像部111による撮像画像に基づき人を検出し、検出された人の数をカウントする処理を実行する。
【0291】
第2プロセッサ12は、例えば第1プロセッサ11と通信ネットワークを介して接続されるサーバ上に構成され、機能の異なる2つの第2DNN52aおよび52bを、第1DNN51bのカウント結果に応じて切り替えることが可能とされている。
【0292】
より具体的には、第2DNN52aおよび52bは、それぞれ、第1DNN51bの人検出の結果に基づき、検出された人を追跡するトラッキング処理を実行する。この場合において、第2DNN52aは、第2フェイズにおける第1のDNN処理として、高精度であるが少人数に対応する第1のトラッキング処理を実行する。一方、第2DNN52bは、第2フェイズにおける第2のDNN処理として、精度は低いが大人数に対応する第2のトラッキング処理を実行する。
【0293】
第2プロセッサ12は、第1プロセッサ11によりカウントされた人数を閾値thと比較する。第2プロセッサ12は、比較の結果、当該人数が閾値th未満の場合に(Yes)、第2DNN52aによる処理を実行し、当該人数が閾値th以上の場合に(No)、第2DNN52bによる処理を実行する。
【0294】
第2プロセッサ12における比較処理は、第2DNN52aおよび52bとは別のプログラムにより実現してもよいし、第2DNN52aおよび52bの機能に含めてもよい。
【0295】
(第3の実施形態の第2の例における第2の具体例)
第3の実施形態の第2の例における第2の具体例について説明する。この第2の具体例は、後段すなわち第2プロセッサ12において、機能の異なる複数の第2DNNを並列的に実行するようにした例である。
【0296】
図23は、第3の実施形態の第2の例における第2の具体例による情報処理システムの一例の構成を示すブロック図である。図23の例では、前段処理を行う第1プロセッサ11において、第1DNN51cは、第1フェイズの処理として、撮像部111による撮像画像に基づき特徴量マップを生成する。
【0297】
第2プロセッサ12は、例えば第1プロセッサ11と通信ネットワークを介して接続されるサーバ上に構成され、機能の異なる2つの第2DNN52cおよび52dを並列的に実行する。この例では、第2DNN52cは、第2フェイズの処理として、第1DNN51cで生成された特徴量マップに基づきセグメンテーション処理を実行する。また、第2DNN52dは、第2フェイズの処理として、第1DNN51cで生成された特徴量マップに基づき姿勢推定処理を実行する。
【0298】
図24は、第3の実施形態の第2の例における第2の具体例に適用可能なセグメンテーション処理を説明するための模式図である。この例では、PSPNet(Pyramid Scene Parsing Network)を用いてセグメンテーション処理を実行する。
【0299】
図24において、第1DNN51cに対して、画像55が入力される。画像55は、3チャネル(例えばRGB)×(高さ)475画素×(幅)475画素の情報を含む。第1DNN51cは、この画像55に基づき特徴量マップを生成する。第1DNN51cは、4096チャネル×(高さ)60画素×(幅)60画素の第1の特徴量マップと、1024チャネル×(高さ)60画素×(幅)60画素の第2の特徴量マップと、を生成する。
【0300】
第2DNN52cは、Pyramid Poolingモジュール520と、Decorderモジュール521と、Auxiliary Lossモジュール522と、を含む。第1の特徴量マップは、Pyramid Poolingモジュール520に入力され、Pyramid Poolingモジュール520およびDecorderモジュール521により、21クラス数×(高さ)475画素×(幅)475画素の情報とされて出力される。また、第2の特徴量マップは、Auxiliary Lossモジュール522に入力され、21クラス数×(高さ)475画素×(幅)475画素の情報とされて出力される。これらDecorderモジュール521およびAuxiliary Lossモジュール522の出力が、第2DNN52cの出力とされる。
【0301】
図25は、第3の実施形態の第2の例における第2の具体例に適用可能な姿勢推定処理を説明するための模式図である。この例では、OpenPoseと呼ばれる手法を用いて姿勢推定を行う。
【0302】
第1DNN51cは、3チャネル(例えばRGB)×(高さ)475画素×(幅)475画素の情報を含む画像55に基づき、128チャネル×(高さ)46画素×(幅)46画素の第3の特徴量マップをさらに生成する。第2DNN52dは、第1DNN51cから出力された第3の特徴量マップに基づき、Stage1のBlock1_1において38チャネル×(高さ)46画素×(幅)46画素のPAFs(Part Affinity Fields)を生成する。また、Stage1のBlock1_2において19チャネル×(高さ)46画素×(幅)46画素のヒートマップを生成する。
【0303】
第2DNN52dは、Stage1で生成されたPAFsおよびヒートマップと、第1DNN51cで生成された特徴量マップとを統合し、統合した情報に基づき、Stage2のBlock2_1において38チャネル×(高さ)46画素×(幅)46画素のPAFsを生成する。また、Stage2のBlock2_2において19チャネル×(高さ)46画素×(幅)46画素のヒートマップを生成する。
【0304】
第2DNN52dは、このStage2に係る処理をStage3~Stage6にて繰り返し実行し、Stage6のBlock6_1において38チャネル×(高さ)46画素×(幅)46画素のPAFsを生成する。また、第2DNN52dは、Stage6のBlock6_2において19チャネル×(高さ)46画素×(幅)46画素のヒートマップを生成する。第2DNN52dは、このStage6において生成されたPAFsおよびヒートマップが第2DNN52dにおける姿勢推定結果として出力する。
【0305】
なお、図24の例では第1DNN51cが出力する第1および第2の特徴量マップが(高さ)60画素×(幅)60画素のサイズを有し、図25の例では第1DNN51cが出力する第3の特徴量マップが(高さ)46画素×(幅)46画素のサイズを有するように説明したが、これはこの例に限定されない。例えば、第1DNN51cが出力する第1および第2の特徴量マップのサイズと、第3の特徴量マップのサイズとを同一としてもよい。
【0306】
(3-3-3.第3の実施形態の第3の例)
次に、第3の実施形態の第3の例について説明する。第3の実施形態の第3の例は、それぞれ前段としての複数のエッジデバイスで異なるDNN処理を行い、後段で、前段の複数の出力を集約するDNN処理を実行する例である。
【0307】
図26は、第3の実施形態の第3の例による情報処理システムの一例の構成を示すブロック図である。図26において、互いに異なるデバイスに含まれる第1プロセッサ11-1、11-2、11-3、…に対して、第1DNN51-1、51-2、51-3、…がそれぞれ搭載される。第1DNN51-1は、第1フェイズにおける第1のDNN処理を実行する。第1DNN51-2は、第1フェイズにおける第2のDNN処理を実行する。また、第1DNN51-3は、第1フェイズにおける第3のDNN処理を実行する。
【0308】
第1プロセッサ11-1、11-2、11-3、…のそれぞれは、第1DNN51-1、51-2、51-3、…の処理による各処理結果を第2プロセッサ12に渡す。例えばサーバに搭載される第2プロセッサ12において、第2DNN52eは、第2フェイズの処理として、第1DNN51-1、51-2、51-3、…の処理による各処理結果を集約するDNN処理を実行する。
【0309】
(第3の実施形態の第3の例における第1の具体例)
第3の実施形態の第3の例における第1の具体例について説明する。この第1の具体例は、後段すなわち第2プロセッサ12において、前段すなわち各第1プロセッサ11-11、11-12、11-13、…の出力を用いてデータマイニングを行う例である。
【0310】
図27は、第3の実施形態の第3の例における第1の具体例による情報処理システムの一例の構成を示すブロック図である。図27の例では、第1プロセッサ11-11、11-12および11-13に、それぞれ画像に基づき姿勢推定、年齢推定および顔認証を行う第1DNN51-11、51-12および51-13を割り当てている。
【0311】
第1プロセッサ11-11は、第1DNN51-11の処理により出力された姿勢情報を、第2プロセッサ12に送信する。第1プロセッサ11-12は、第1DNN51-12の処理により出力された姿勢情報を、第2プロセッサ12に送信する。また、第1プロセッサ11-13は、第1DNN51-13の処理により得られた顔の情報を、例えば当該顔に基づく特徴量と、当該顔を特定するためのIDとを関連付けて第2プロセッサ12に送信する。
【0312】
第2プロセッサ12は、第2DNN52fの処理により、第1プロセッサ11-11、11-12および11-13から送信された各情報に基づき、データマイニングを行う。第2DNN52fが実行するデータマイニング処理としては、行動分析などが考えられる。例えば、第2DNN52fは、第1プロセッサ11-11および11-12から送信された姿勢情報および年齢情報に基づき、姿勢および年齢に関する行動情報が登録されたデータベース(DB)56を参照することで、IDで示される人物に関する行動分析を行う。
【0313】
このとき、顔認証を行う第1DNN51-13は、顔画像ではなくIDおよび特徴量を送信するため、行動分析された人物のプライバシーを保護することが可能である。
【0314】
(第3の実施形態の第3の例における第2の具体例)
第3の実施形態の第3の例における第2の具体例について説明する。この第2の具体例は、後段すなわち第2プロセッサ12において、前段すなわち各第1プロセッサ11-21、11-22、11-23、…の出力を用いて人物などのトラッキングを行う例である。
【0315】
図28は、第3の実施形態の第3の例における第2の具体例による情報処理システムの一例の構成を示すブロック図である。図28の例では、第1プロセッサ11-21、11-22および11-23に、それぞれ画像に基づき人物を認証し、認証された人物の移動軌跡を検出して当該人物のトラッキングを行う第1DNN51-21、51-22および51-23を割り当てている。
【0316】
第1プロセッサ11-21、11-22および11-23のそれぞれは、各第1DNN51-21、51-22および51-23により認証された人物の特徴量と、当該人物を特定するID(この例では対象X、対象Y)と、当該IDの人物が認証された時刻を示す情報と、を関連付けて、それぞれ第2プロセッサ12に送信する。
【0317】
第2プロセッサ12は、各第1プロセッサ11-21、11-22および11-23のそれぞれが認証を行うための画像を取得する各撮像装置(撮像装置A、BおよびCとする)の位置を示すデバイス位置情報57を取得できる。デバイス位置情報57は、予め与えられてもよいし、各撮像装置により撮像された撮像画像内に含まれるオブジェクトなどに基づき求めることも可能である。
【0318】
第2プロセッサ12は、第2フェイズの処理を行う第2DNN52gにより、各第1プロセッサ11-21、11-22および11-23から送信された特徴量と、時刻情報と、各撮像装置の位置情報と、に基づき、IDで示される人物の移動軌跡をトラッキングする。各第1プロセッサ11-21、11-22および11-23から送信された情報に示される人物は、特徴量を比較することで識別、特定することができる。
【0319】
図の例では、第1プロセッサ11-21の第1DNN51-21の処理により、時刻「10:00」に対象Yが認識され、時刻「10:01」に対象Xが認識されている。また、第1プロセッサ11-22の第1DNN51-22の処理により、時刻「10:00」に対象Xが認識され、時刻「10:01」に対象Yが認識されている。さらに、第1プロセッサ11-23の第1DNN51-23の処理により、時刻「10:02」に対象XおよびYが認識されている。
【0320】
第2プロセッサ12は、第2DNN52gの処理により、各第1プロセッサ11-21、11-22および11-23から送信された情報に基づくトラッキング処理により、対象Xが撮像装置Bの位置、撮像装置Aの位置、撮像装置Cの位置、の順に移動していることを検出する。同様に、第2プロセッサ12は、第2DNN52gの処理により、対象Yが撮像装置Aの位置、撮像装置Bの位置、撮像装置Cの位置、の順に移動していることを検出する。
【0321】
このとき、第1DNN51-21、51-22および51-23のそれぞれは、顔画像ではなくIDおよび特徴量を送信するため、トラッキングされた人物のプライバシーを保護することが可能である。
【0322】
(3-3-4.第3の実施形態の第4の例)
次に、第3の実施形態の第4の例について説明する。第3の実施形態の第4の例は、前段としてのエッジデバイスで軽量な推論を高速で実行し、後段としての例えばサーバで、高精度かつ高機能な推論を実行するようにした例である。
【0323】
なお、以下では、「高速に実行される軽量な推論」を「粗推論」と呼び、「高精度かつ高機能な推論」を「詳細推論」と呼ぶ。
【0324】
図29は、第3の実施形態の第4の例による情報処理システムの一例の構成を示すブロック図である。図29において、互いに異なるデバイスに含まれる第1プロセッサ11-31、11-32、11-33、…に対して、第1DNN51-31、51-32、51-33、…がそれぞれ搭載される。
【0325】
第1DNN51-31は、第1フェイズにおける第1のDNN処理を実行する。第1DNN51-32は、第1フェイズにおける第2のDNN処理を実行する。また、第1DNN51-33は、第1フェイズにおける第3のDNN処理を実行する。これら、第1フェイズにおける第1~第3のDNN処理は、入力データに基づき所定の粗推論を行う処理である。第1DNN51-31、51-32および52-33のそれぞれによる粗推論の結果である粗推論結果71-31、71-32および71-33は、例えばユーザに提供される。
【0326】
第1プロセッサ11-31(第1DNN51-31)は、入力データを入力テンソル70-31として出力する。第1プロセッサ11-32(第1DNN51-32)は、入力データを入力テンソル70-32として出力する。同様に、第1プロセッサ11-33(第1DNN51-33)は、入力データを入力テンソル70-33として出力する。
【0327】
第2プロセッサ12において、第2フェイズの処理を行う第2DNN52hは、第1プロセッサ11-31、11-32および11-33それぞれから出力された入力テンソル70-31、70-32および70-33を用いて、詳細推論を行う。第2DNN52hによる詳細推論の結果である詳細推論結果は、例えばユーザに提供される。
【0328】
粗推論および詳細推論の内容は、特に限定されないが、撮像画像に基づき粗推論により人物の有無や人数を推論し、詳細推論により人物の認識や行動分析を推論することが考えられる。
【0329】
第3の実施形態の第4の例によれば、ユーザは、粗推論結果に基づき先ずは現場の凡その状況を把握し、その後に、詳細推論結果により現場の詳細な状況を把握することが可能となり、現場の状況に対してより適切な対応を取ることが容易となる。
【0330】
(第3の実施形態の第4の例における応用例)
次に、第3の実施形態の第4の例における応用例について説明する。この応用例では、第2プロセッサ12は、第2プロセッサ12により、図29を用いて説明した第4の例における各粗推論結果71-31、71-32および71-33を用いて、第1DNN51-31、51-32および51-33それぞれを再学習するようにした例である。
【0331】
図30は、第3の実施形態の第4の例における応用例による情報処理システムの一例の構成を示すブロック図である。図30において、第2プロセッサ12は、第2フェイズの処理を行う第2DNN52iと、再学習部72とを含む。再学習部72は、第1プロセッサ11-31、11-32および11-33に搭載される各第1DNN51-31、51-32および51-33にそれぞれ対応する第1DNN51-31’、51-32’および51-33’をそれぞれ含む。第1DNN51-31’、51-32’および51-33’は、例えば、初期状態の第1DNN51-31、51-32および51-33を適用してよい。
【0332】
各第1プロセッサ11-31、11-32および11-33から出力された各粗推論結果71-31、71-32および71-33が、再学習部72に渡される。再学習部72は、第2DNN52iによる処理で得られた詳細推論結果と、粗推論結果71-31、71-32および71-33と、を用いて、第1DNN51-31’、51-32’および51-33’それぞれを再学習する。
【0333】
再学習部72は、再学習を、「蒸留」と呼ばれる手法を用いて実行することができる。「蒸留」は、一般的には、既存のネットワーク(この例では第2DNN52i)の出力を用いて対象のネットワーク(この例では第1DNN51-31、~51-33)の性能を向上させる手法を指す。この場合において、既存のネットワークは、規模が大きい、高性能、および/または、学習データが豊富に用意されているネットワークが想定される。一方、対象のネットワークは、規模が小さい、性能が低い、および/または、学習データが十分ではないネットワークが想定される。このように、対象のネットワークの学習に、単純に学習データを用いるだけでなく、他のネットワークの出力も用いることで、性能がより向上されることが知られている。
【0334】
第2プロセッサ12は、再学習部72により再学習された第1DNN51-31’~51-33’を、それぞれ第1プロセッサ11-31~11-33に送信する。各第1プロセッサ11-31~11-33では、第2プロセッサ12から送信された第1DNN51-31’~51-33’により、第1DNN51-31~51-33をそれぞれ更新する。この場合において、第2プロセッサ12は、再学習された第1DNN51-31’~51-33’のうち、再学習前よりも性能が向上したモデルのみを、各第1プロセッサ11-31~11-33に送信してよい。
【0335】
このように、第3の実施形態の第4の例における応用例では、利用時間などに応じて第1DNN51-31~51-33による粗推論の精度が向上されるため、ユーザは、より高い精度の推論結果を、高速に取得することが可能となる。
【0336】
(3-3-5.第3の実施形態の第5の例)
次に、第3の実施形態の第5の例について説明する。第3の実施形態の第5の例は、第1フェイズの処理を行う第1のDNNによる処理結果を、データ量を削減して第2フェイズの処理を行う第2のDNNに送信するようにした例である。より具体的には、第1のDNNの処理により、画像に基づき物体領域の検出を行い、検出された物体領域のみの情報を第2のDNNに送信する。第2のDNNでは、第1のDNNから送信された物体領域に対して処理を行う。
【0337】
図31は、第3の実施形態の第5の例による情報処理システムの一例の構成を示すブロック図である。
【0338】
第1プロセッサ11に対して、オブジェクト74を含む画像73が入力される。第1プロセッサ11において、第1フェイズの処理を行う第1DNN51dは、入力された画像73に対して物体検出を行い、オブジェクト74を含む最小の矩形領域を物体領域75として検出する。第1DNN51dは、画像73から物体領域75を抽出して第2プロセッサ12に送信する。第2プロセッサ12は、第2フェイズの処理を行う第2DNN52jにより、物体領域75の画像に基づき処理のDNN処理を実行する。
【0339】
第1プロセッサ11は、画像73から抽出した物体領域75の画像を第2プロセッサ12に送信するため、第1プロセッサ11と第2プロセッサとの間の通信量が削減される。また、第2プロセッサ12においては、第2DNN52jは、元の画像73に対してサイズが小さい物体領域75の画像に対してDNN処理を実行するため、画像73に対してDNN処理を実行する場合に比べて処理負荷を軽減できる。
【0340】
第3の実施形態の第5の例は、この例に限らず、例えば第2DNN52jによる処理結果に基づき第1DNN51dを再学習させることも可能である。例えば、第2DNN52jにより、物体領域75の画像に含まれるオブジェクト74に対するより詳細な検出処理を行う場合、第2DNN52jの検出結果を用いて、上述した蒸留の手法により第1DNN51dを再学習させることが考えられる。
【0341】
また、第1DNN51dにおいて、画像73としてRGB画像を用いて物体領域75を検出し、画像73に対応するRAWデータにおける物体領域75のデータのみを、第2DNN52jに送信することもできる。また、第1DNN51dにおいて、画像73から対象のオブジェクトが検出されない場合に、第2DNN52jに対してデータを送信しないようにしてもよい。
【0342】
なお、上述した第3の実施形態の第1~第5の例は、それぞれ独立して実施されるのみならず、互いに矛盾を生じない範囲で、適宜に組み合わせて実施することが可能である。
【0343】
(4.第4の実施形態)
次に、本開示の第4の実施形態について説明する。第4の実施形態は、第1プロセッサ11および第2プロセッサ12などの実装に関する。より詳細には、第4の実施形態は、センシングデバイス10と、第1プロセッサ11と、第2プロセッサ12と、の間でデータを伝送する信号経路の構造に関する。
【0344】
(第4の実施形態に係る物理的なレイアウト例)
図32は、第4の実施形態に係る情報処理システムにおける各部の、基板に対する物理的なレイアウトの例を示す模式図である。
【0345】
図32において、左側は、センシングデバイス10、第1プロセッサ11および第2プロセッサ12と、第2プロセッサ12の出力を送信し、また、外部から送信されたデータなどを受信する通信部14と、を含む撮像装置150(あるいはセンシング装置)の、基板16aに対する物理的なレイアウトの例を、俯瞰図として示している。
【0346】
センシングデバイス10、第1プロセッサ11および第2プロセッサ12の内部では、センシングデバイス10の出力に基づく情報や、当該情報に基づき演算処理を施した結果の情報が、複数ビットを単位とするデータとして扱われている。
【0347】
図32において、右側は、アプリケーション実行部30あるいはDNNが実行される第3プロセッサ13と、通信部14との間でデータの送受信を行う通信部15と、を含む情報処理装置300aの、基板16bに対する物理的なレイアウトの例を、俯瞰図として示している。
【0348】
なお、図32では、センシングデバイス10、第1プロセッサ11、第2プロセッサ12および通信部14が基板16aに対して直線状に配置されているが、これは説明のためであり、この例に限定されない。また、図32では、情報処理装置300aに含まれる通信部15および第3プロセッサ13が基板16bに配置されるように示しているが、これは説明のためであり、この例に限定されない。例えば、通信部15および第3プロセッサ13を含む情報処理装置300aは、クラウドネットワーク上の構成であってもよい。この場合、通信部14と通信部15とは、通信ネットワークを介してデータの送受信を行うことになる。
【0349】
(第4の実施形態に係る第1の信号経路例)
第4の実施形態に係る第4の信号経路例について説明する。図33は、第4の実施形態に係る情報処理システムの第1の信号経路例を示す模式図である。図33は、上述した図32に対して、各部を接続する信号経路を追加したものである。
【0350】
図33において、情報処理システム1bは、撮像装置150において、センシングデバイス10と第1プロセッサ11との間、および、第1プロセッサ11と第2プロセッサ12との間において、情報(データ)を伝送する信号線が、複数本の信号線を含むパラレル転送信号線80により構成されている。一方、第2プロセッサ12と通信部14との間において、データを伝送する信号線は、パラレル転送信号線、あるいは、1以上のシリアル転送信号線によって構成される。
【0351】
(第4の実施形態に係る第2の信号経路例)
第4の実施形態に係る第2の信号経路例について説明する。図34は、第4の実施形態に係る情報処理システムの第2の信号経路例を示す模式図である。図34において、情報処理システム1cは、第1プロセッサ11と第2プロセッサ12との間の信号経路として、図33を用いて説明したパラレル転送信号線80に代えて、1以上の高速シリアル転送信号線81が用いられている。
【0352】
なお、高速シリアル転送信号線81は、例えば図33に示すパラレル転送信号線80と比較して、高いクロック周波数に従いデータを転送する構造の信号線である。あるいは、高速シリアル転送信号線81は、1つのセンシング素子(例えば画素アレイ)がある時間内若しくはあるタイミングにおいて取得したデータ、あるいは、このデータを演算処理したデータの少なくとも一部を時間方向に並べて転送する構造の信号線であってよい。
【0353】
図35は、図34に示した、第4の実施形態に係る第2の信号経路例におけるデータ伝送に係る各タイミングを示す一例のタイミングチャートである。図35において、図上の横方向は、右方向に向けて時間の経過を示している。ここでは、各処理がクロック信号である駆動タイミング信号の立ち上がりエッジをトリガとして開始され、立ち下がりエッジで終了されるものとして説明を行う。
【0354】
図35において、時間t0でセンシングデバイス10から画素データの出力が開始される。それと共に、時間t0で、センシングデバイス10から第1プロセッサ11への、パラレル転送信号線80を介した画素データの伝送が開始される。時間t1で、第1プロセッサ11において、センシングデバイス10から転送された画素データに対する第1DNN51による処理が開始される。
【0355】
時間t3で第1DNN51による処理が終了されると、第1プロセッサ11は、第1DNN51の出力の先頭データからパラレル/シリアル変換(P/S変換)を開始する。時間t4で、第1プロセッサ11から第2プロセッサ12への、高速シリアル転送信号線81を介したデータ転送が開始される。時間t5で、第2プロセッサ12において伝送された先頭データからシリアル/パラレル変換(S/P変換)が開始され、時間t6で、第2プロセッサ12において第2DNN52による処理が開始される。第2DNN52による処理結果の出力は、時間t7で開始される。
【0356】
このように、本開示では、第1DNN51の処理と、第2DNN52の処理とがパイプライン処理により実行される。
【0357】
センシングデバイス10から画素データが出力される時間t0から、第1DNN51の処理結果の出力が開始される時間t3までが、第1DNN51による処理のレイテンシとなる。また、当該時間t0から、第2DNN52の処理結果の出力が開始される時間t7までが、第1DNN51と第2DNN52とによる処理のレイテンシとなる。
【0358】
(第4の実施形態に係る第3の信号経路例)
第4の実施形態に係る第3の信号経路例について説明する。図36は、第4の実施形態に係る情報処理システムの第3の信号経路例を示す模式図である。図36において、情報処理システム1dは、センシングデバイス10と第1プロセッサ11との間の経信号路として、図34を用いて説明したパラレル転送信号線80に代えて、1以上の高速シリアル転送信号線81が用いられている。すなわち、図36の例では、第1プロセッサ11と第2プロセッサ12との間に加えて、センシングデバイス10と第1プロセッサ11との間の信号経路として、高速シリアル転送信号線81が用いられている。
【0359】
図37は、図36に示した、第4の実施形態に係る第3の信号経路例におけるデータ伝送に係る各タイミングを示す一例のタイミングチャートである。図37において、図上の横方向は、右方向に向けて時間の経過を示している。図35と同様に、各処理がクロック信号である駆動タイミング信号の立ち上がりエッジをトリガとして開始され、立ち下がりエッジで終了されるものとして説明を行う。
【0360】
図37において、時間t10でセンシングデバイス10から画素データの出力が開始される。それと共に、時間t10で、センシングデバイス10は、画素データの先頭データからパラレル/シリアル変換(P/S変換)を開始する。時間t11で、センシングデバイス10から第1プロセッサ11への、高速シリアル転送信号線81を介した画素データの伝送が開始される。
【0361】
時間t12で、第1プロセッサ11は、高速シリアル転送信号線81を介して受信した画素データの先頭データからS/P変換を開始する。時間t13で、第1プロセッサ11において、センシングデバイス10から高速シリアル転送信号線81を介して転送された画素データに対する第1DNN51による処理が開始される。
【0362】
時間t14で第1DNN51による処理が終了されると、第1プロセッサ11は、第1DNN51の出力の先頭データからP/S変換を開始する。時間t15で、第1プロセッサ11から第2プロセッサ12への、高速シリアル転送信号線81を介したデータ転送が開始される。時間t16で、第2プロセッサ12において伝送された先頭データからS/P変換が開始され、時間t17で、第2プロセッサ12において第2DNN52による処理が開始される。第2DNN52による処理結果の出力は、時間t18で開始される。
【0363】
このように、本開示では、第1DNN51の処理と、第2DNN52の処理とがパイプライン処理により実行される。
【0364】
センシングデバイス10から画素データが出力される時間t10から、第1DNN51の処理結果の出力が開始される時間t14までが、第1DNN51による処理のレイテンシとなる。また、当該時間t10から、第2DNN52の処理結果の出力が開始される時間t18までが、第2DNN52による処理のレイテンシとなる。
【0365】
この図37と、上述した図35とを比較すると、図35の例は、図37の例に対してよ、センシングデバイス10の出力におけるP/S変換(時間t10)と、第2プロセッサ12の入力におけるS/P変換(時間t16)とが不要となっている。そのため、図34に示す第4の実施形態の第2の信号経路例は、図36に示す第4の実施形態の第3の信号経路例に対して、センシングデバイス10から画素データが出力されてから第1DNN51による処理が開始されるまでのレイテンシが小さくなる。同様に、図34に示す第4の実施形態の第2の信号経路例は、図36に示す第4の実施形態の第3の信号経路例に対して、センシングデバイス10から画素データが出力されてから第2DNN52による処理が開始されるまでのレイテンシも、小さくなる。
【0366】
したがって、レイテンシを考慮した場合、図36に示す第4の実施形態の第3の信号経路例よりも、図34に示す第4の実施形態の第2の信号経路例の方が有利であるといえる。一方、図36に示す第4の実施形態の第3の信号経路例では、センシングデバイス10と第1プロセッサ11との間、および、第1プロセッサ11と第1プロセッサ11との間、をそれぞれ高速シリアル転送信号線81で接続しているため、図34に示す第4の実施形態の第2の信号経路例や、図33に示す第4の実施形態の第1の信号経路例に対して、レイアウトの自由度の点で有利であるといえる。
【0367】
(第4の実施形態に係る第4の信号経路例)
第4の実施形態に係る第4の信号経路例について説明する。第4の実施形態に係る第4の信号経路例は、センシングデバイス10と第1プロセッサ11とを積層構造あるいは重畳させて構成した場合の例である。例えば、センシングデバイス10に含まれる撮像部111を第1のダイに構成し、センシングデバイス10に含まれる撮像部111以外の部分と、第1プロセッサ11とを第2のダイに構成する。第1のダイと第2のダイとを貼り合わせて、積層構造による1チップの半導体装置を構成する。
【0368】
以下では、このように、複数のデバイスを積層あるいは重畳した構造体を、適宜、積層構造体と呼ぶ。
【0369】
図38は、第4の実施形態に係る情報処理システムの第4の信号経路例を示す模式図である。図38において、情報処理システム1eは、撮像部111と第1プロセッサ11とが基板16aの垂直方向に積層されて積層構造体を構成している。この積層構造体において、撮像部111と第1プロセッサ11との間のデータを伝送する信号線が、基板16aと垂直方向に延在する、複数本の信号線を含むパラレル転送信号線によって構成される。
【0370】
なお、図38おいて、撮像部111と第1プロセッサ11とが積層あるいは重畳されるように記載しているが、これは説明のためであり、実際には、撮像装置100aにおける撮像部111以外の部分は、撮像部111側および/または第1プロセッサ11側に適宜に配置される。
【0371】
図39Aおよび図39Bは、第4の実施形態に係る第4の信号経路例における積層構造体の垂直方向の構造を概略的に示す模式図である。図39Aおよび図39Bにおいて、撮像部111と第1プロセッサ11とが積層あるいは重畳された積層構造体は、撮像部111と第1プロセッサ11の信号を当該積層構造体の外部に取り出すための基板502(所謂インターポーザ基板)が含められている。
【0372】
以下、基板502をインターポーザ基板502として説明を行う。
【0373】
図39Aにおいて、撮像部111と第1プロセッサ11との間、第1プロセッサ11とインターポーザ基板502との間が、それぞれ、複数本の信号線500によるパラレル転送信号線により接続される。また、図39Aの例では、撮像部111とインターポーザ基板502とが、第1プロセッサ11の内部に設けられた導電体501を介して接続されている。
【0374】
この例に限らず、図39Bに例示されるように、撮像部111とインターポーザ基板502とが、第1プロセッサ11の外側を介して接続してもよい。
【0375】
このように、積層構造体を採用することで、撮像部111と第1プロセッサ11との間におけるデータの信号経路のレイアウトが容易となる。また、積層構造体を採用することで、撮像装置150の小型化が可能となる。
【0376】
(第4の実施形態に係る第5の信号経路例)
第4の実施形態に係る第5の信号経路例について説明する。図40は、第4の実施形態に係る情報処理システムの第5の信号経路例を示す模式図である。
【0377】
図40において、情報処理システム1fは、図34に示した構造と比較して、センシングデバイス10と第1プロセッサ11とをパラレル転送信号線80によって接続した構造を、図39Aまたは図39Bに示す、センシングデバイス10と第1プロセッサ11とを積層し、複数本の信号線500によるパラレル転送信号線により接続した積層構造体を用いて実現した構造を有している。
【0378】
図40に示される第4の実施形態に係る第5の信号経路例に係る構造は、センシングデバイス10と第1プロセッサ11とを積層して積層構造帯を形成している。そのため、当該第5の信号経路例に係る構造を適用することで、することで、図33図34および図36で説明した構造と比較して、基板16aにおける実装面積を削減することができる。
【0379】
それと共に、当該第5の信号経路例に係る構造は、第1プロセッサ11と、センシングデバイス10と第1プロセッサ11とによる積層構造体の外部に配置された第2プロセッサ12と、の間を高速シリアル転送信号線81で接続している。これにより、当該第5の信号経路例の構造を適用することで、基板16aにおける配線のレイアウトが容易となる効果も得ることができる。
【0380】
さらには、当該第5の信号経路例に係る構造は、第1プロセッサ11と第2プロセッサ12と、の間を高速シリアル転送信号線81で接続すると共に、センシングデバイス10と第1プロセッサ11とを複数本の信号線500によるパラレル転送信号線により接続している。そのため、当該第5の信号経路例を適用することで、図35および図37を用いて説明したように、例えば図36に示した、センシングデバイス10と第1プロセッサ11との間を高速シリアル転送信号線81で接続した構造と比較して、センシングデバイス10から画素データが出力されてから第2DNN52による処理が開始されるまでのレイテンシを小さくすることができる。
【0381】
(第4の実施形態に係る第6の信号経路例)
第4の実施形態に係る第6の信号経路例について説明する。図41は、第4の実施形態に係る情報処理システムの第6の信号経路例を示す模式図である。図41において、情報処理システム1gは、図40に示した構造に対して、撮像部111と第1プロセッサ11との間の信号経路として、複数の信号線500を含むパラレル転送信号線に代えて、1以上の高速シリアル転送信号線82が用いられている。
【0382】
(第4の実施形態に係る第7の信号経路例)
第4の実施形態に係る第7の信号経路例について説明する。図42は、第4の実施形態に係る情報処理システムの第7の信号経路例を示す模式図である。図42において、情報処理システム1hは、撮像部111と第1プロセッサ11と第2プロセッサ12とが基板16aの垂直方向に積層されて積層構造体を構成している。この積層構造体において、撮像部111と第1プロセッサ11との間のデータを伝送する信号線、および、第1プロセッサ11と第2プロセッサ12との間のデータを伝送する信号線が、基板16aと垂直方向に延在する、複数本の信号線を含むパラレル転送信号線によって構成される。
【0383】
図43Aおよび図43Bは、第4の実施形態に係る第7の信号経路例における積層構造体の垂直方向の構造を概略的に示す模式図である。
【0384】
図43Aにおいて、撮像部111と第1プロセッサ11との間、第1プロセッサ11と第2プロセッサ12との間、および、第2プロセッサ12とインターポーザ基板502との間が、それぞれ、複数本の信号線500によるパラレル転送信号線により接続される。また、図43Aの例では、撮像部111とインターポーザ基板502とが、第1プロセッサ11および第2プロセッサ12の内部にそれぞれ設けられた導電体501を介して接続されている。同様に、第1プロセッサ11とインターポーザ基板502とが、第2プロセッサ12の内部に設けられた導電体501を介して接続されている。
【0385】
この例に限らず、図43Bに例示されるように、撮像部111とインターポーザ基板502とを、第1プロセッサ11および第2プロセッサ12の外側を介して接続し、第1プロセッサ11とインターポーザ基板502とを、第2プロセッサ12の外側を介して接続してもよい。
【0386】
このように、第4の実施形態に係る第7の信号経路例では、撮像部111と、第1プロセッサ11と、第2プロセッサ12とを積層あるいは重畳した積層構造体を採用している。そのため、撮像部111と第1プロセッサ11との間、第1プロセッサ11と第2プロセッサ12との間、におけるデータの信号経路のレイアウトが容易となる。また、撮像部111と、第1プロセッサ11と、第2プロセッサ12とを積層あるいは重畳した積層構造体を採用することで、上述した第4の実施形態に係る第4の信号経路例と比較して、撮像装置150のさらなる小型化が可能となる。
【0387】
(第4の実施形態に係る第8の信号経路例)
第4の実施形態に係る第8の信号経路例について説明する。図44は、第4の実施形態に係る情報処理システムの第8の信号経路例を示す模式図である。図44において、情報処理システム1iは、第2プロセッサ12が情報処理装置300bに含めて構成されている。撮像装置150は、撮像部111と第1プロセッサ11とが積層あるいは重畳された積層構造体と、通信部14と、を含む。
【0388】
図44の例では、撮像装置150において、第1プロセッサ11と通信部14との間の信号経路が、パラレル転送信号線80により構成されている。また、情報処理装置300bにおいて、通信部15と第2プロセッサ12との間の信号経路が、パラレル転送信号線80により構成されている。また、情報処理装置300bにおいて、第2プロセッサ12と第3プロセッサとの間の信号経路が、高速シリアル転送信号線81により構成されている。
【0389】
図44に示す構成によれば、情報処理装置300bを計算リソースが比較的潤沢なものとすることで、第2プロセッサ12において、第2DNN52による処理をより高精度およびより高機能とすることが可能である。
【0390】
なお、図44に示す構成において、撮像装置150における第1プロセッサ11と通信部14との間の信号経路や、情報処理装置300bにおける通信部15と第2プロセッサ12との間の信号経路を高速シリアル転送信号線81としてもよい。また、第2プロセッサ12と第3プロセッサ13との間の信号経路を、パラレル転送信号線80としてもよい。
【0391】
(第4の実施形態に係る第9の信号経路例)
第4の実施形態に係る第9の信号経路例について説明する。図45Aおよび図45Bは、第4の実施形態に係る情報処理システムの第9の信号経路例を示す模式図である。第4の実施形態に係る第9の信号経路例では、例えば図40に示した情報処理システム1fの構成に対して、第1プロセッサ11と通信部14とを接続する信号経路を追加した例である。
【0392】
図45Aは、第1プロセッサ11と通信部14との間の信号経路が、複数の信号線を含むパラレル転送信号線83とされた情報処理システム1jの例を示している。また、図45Bは、第1プロセッサ11と通信部14との間の信号経路が、1以上の高速シリアル転送信号線84とされた情報処理システム1kの例を示している。図45Bに示す構成は、図45Aに示す構成と比較して、基板16aにおけるレイアウトが容易となる。
【0393】
なお、この、第1プロセッサ11と通信部14とを接続する信号経路を追加する構成は、上述した第4の実施形態に係る第1~第8の信号経路例に対しても適用可能である。
【0394】
(5.第5の実施形態)
次に、本開示の第5の実施形態について説明する。第5の実施形態は、第1プロセッサ11および第2プロセッサ12が用いるメモリの構成に関する。なお、以下では、第1プロセッサ11および第2プロセッサ12が同一の基板16aに構成されるものして説明を行う。
【0395】
(第5の実施形態の第1の例)
先ず、第5の実施形態の第1の例について説明する。第5の実施形態の第1の例は、第1プロセッサ11と第1プロセッサ11が用いるメモリとが1つの半導体集積回路のダイあるいはチップに設けられ、第2プロセッサ12と第2プロセッサ12が用いるメモリとが別の1つの半導体集積回路のダイあるいはチップに設けられる例である。
【0396】
図46Aおよび図46Bは、第5の実施形態の第1の例による構成の例を示す模式図である。
【0397】
図46Aにおいて、第1プロセッサ11aは、入力部600と、演算回路部601と、出力部602と、第1メモリ603と、を含む。また、演算回路部601は、第1演算処理部610aとその他回路611と、含む。
【0398】
入力部600は、第1プロセッサ11aにおける入力インタフェースであって、センシングデバイス10からの出力が入力される。第1演算処理部610aは、シングルコアの構成を有し、プログラムに従い所定の演算を実行する。その他回路611は、第1演算処理部610aが演算処理に用いる回路(クロック回路など)や、第1演算処理部610a以外の演算処理を行う回路を含んでよい。出力部602は、第1プロセッサ11aにおける出力インタフェースであって、第1演算処理部610aによる演算結果を第1プロセッサ11aの外部に出力する。
【0399】
第1メモリ603は、第1演算処理部610aが演算処理に用いるメモリである。例えば、第1DNN51が第1メモリ603に記憶される。第1演算処理部610aは、第1メモリ603から第1DNN51を読み出して、例えば第1フェイズによるDNN処理を実行する。
【0400】
第2プロセッサ12aは、入力部6220と、演算回路部621と、出力部622と、第2メモリ604と、を含む。また、演算回路部621は、第2演算処理部630aとその他回路631と、含む。
【0401】
入力部620は、第2プロセッサ12aにおける入力インタフェースであって、第1プロセッサ11からの出力が入力される。第2演算処理部630aは、シングルコアの構成を有し、プログラムに従い所定の演算を実行する。その他回路631は、第2演算処理部630aが演算処理に用いる回路(クロック回路など)や、第2演算処理部630a以外の演算処理を行う回路を含んでよい。出力部622は、第2プロセッサ12aにおける出力インタフェースであって、第2演算処理部630aによる演算結果を第2プロセッサ12aの外部に出力する。
【0402】
第2メモリ604は、第2演算処理部630aが演算処理に用いるメモリである。例えば、第2DNN52が第2メモリ604に記憶される。第2演算処理部630aは、第2メモリ604から第2DNN52を読み出して、例えば第2フェイズによるDNN処理を実行する。
【0403】
第1演算処理部610aおよび第2演算処理部630aは、マルチコアの構成とすることもできる。図46Bは、図46Aにおける第1演算処理部610aおよび第2演算処理部630aに代えて、マルチコア構成による第1演算処理部610bおよび第2演算処理部630bを設けた第1プロセッサ11bおよび第2プロセッサ12bの構成を示している。
【0404】
第1演算処理部610bは、それぞれ演算処理を実行可能な複数のコア6121、6122、…を含む(図ではそれぞれコア#1、コア#2、…としても示されている)。同様に、第2演算処理部630bは、それぞれ演算処理を実行可能な複数のコア6321、6322、…を含む(図ではそれぞれコア#1、コア#2、…としても示されている)。
【0405】
なお、図46Bに示す構成において、例えば第1プロセッサ11bにおいて第1DNNを時間方向に分割してそれらを複数のコア6121、6122、…で分担して実行するネットワーク構造にしてもよい。また、第1DNN51をネットワークの深さ方向に分割し、それらを複数のコア6121、6122、…で分担して実行するネットワーク構造にしてもよい。さらに、第1DNN51を複数のコア6121、6122、…で並列に実行する構造にしてもよい。
【0406】
図46Bの構成によれば、第1演算処理部610aおよび第2演算処理部630aがシングルコアである図46Aの構成に対して、より演算能力を向上させることができる。
【0407】
(第5の実施形態の第2の例)
先ず、第5の実施形態の第2の例について説明する。第5の実施形態の第2の例は、第1プロセッサ11と第1プロセッサ11が用いるメモリとが異なる半導体集積回路のダイあるいはチップに設けられ、第2プロセッサ12と第2プロセッサ12が用いるメモリとがそれぞれ異なる半導体集積回路のダイあるいはチップに設けられる例である。
【0408】
図47Aおよび図47Bは、第5の実施形態の第2の例による構成の例を示す模式図である。
【0409】
図47Aの例では、第1プロセッサ11cは、シングルコアの第1演算処理部610aを有し、第1演算処理部610aが演算処理に用いる第1メモリ603は、第1プロセッサ11cの外部に設けられている。同様に、第2プロセッサ12cは、シングルコアの第2演算処理部630aを有し、第2演算処理部630aが演算処理に用いる第2メモリ604は、第2プロセッサ12cの外部に設けられている。
【0410】
このように、第1メモリ603および第2メモリ604を第1プロセッサ11cおよび第2プロセッサ12cと異なるダイあるいはチップに構成することで、図46Aおよび図46Bに示した構成と比較して、第1メモリ603および第2メモリ604の大容量化が容易となる。また、第1メモリ603および第2メモリ604のダイあるいはチップとして、一般的に流通しているメモリのダイあるいはチップを用いることができるため、製造コストを抑制することが可能である。
【0411】
また、図47Aの構成において、例えば第1プロセッサ11cと第1メモリ603とを積層あるいは重畳して積層構造体として構成することが可能である。この場合には、第1プロセッサ11cおよび第1メモリ603が搭載される基板や、これを搭載した装置の外形を縮小することが可能である。
【0412】
図47Bは、図47Aの第1演算処理部610aに代えて、それぞれ演算処理を行う複数のコア6121、6122、…を有する第1演算処理部610bを有し、第1メモリ603が異なるダイに構成される第1プロセッサ11dの構成例を示している。また、図47Bでは、図47Aの第2演算処理部630aに代えて、それぞれ演算処理を行う複数のコア6321、6322、…を有する第2演算処理部630bを有し、第2メモリ604が異なるダイに構成される第2プロセッサ12dの構成例も示している。
【0413】
図47Bに示す構成においても、図47Aの構成と同等の効果を得ることができる。さらに、図47Bに示す構成では、図47Aに示す構成に対してより演算能力を向上させることができる。
【0414】
(第5の実施形態の第3の例)
先ず、第5の実施形態の第3の例について説明する。第5の実施形態の第3は、第1プロセッサ11が用いるメモリと第2プロセッサ12が用いるメモリとを共通化した例である。第1プロセッサ11および第2プロセッサ12が共通に用いるメモリは、第1プロセッサ11および第2プロセッサ12が構成されるダイとは異なるダイに構成される。
【0415】
図48Aおよび図48Bは、第5の実施形態の第3の例による構成の例を示す模式図である。
【0416】
図48Aの例では、第1プロセッサ11eは、シングルコアの第1演算処理部610aを有し、第2プロセッサ12eは、シングルコアの第2演算処理部630aを有する。第1演算処理部610aと第2演算処理部630aが共通して用いるメモリ605が、第1プロセッサ11eおよび第2プロセッサ12eの外部に設けられている。
【0417】
このように、第1プロセッサ11eが用いるメモリと第2プロセッサ12eが用いるメモリとを共通化したメモリ605とし、メモリ605を第1プロセッサ11eおよび第2プロセッサ12eと異なるダイに構成することで、図46Aおよび図46Bに示した構成と比較して、第1プロセッサ11eおよび第2プロセッサ12eが用いるメモリ605の大容量化が容易となる。また、第1プロセッサ11eが用いるメモリと第2プロセッサ12eが用いるメモリとを共通化することで、レイアウトが容易となる。
【0418】
このように、第1プロセッサ11eおよび第2プロセッサ12eが用いるメモリを共通化し、第1プロセッサ11cおよび第2プロセッサ12cと異なるダイに構成することで、図46Aおよび図46Bに示した構成と比較して、第1プロセッサ11eおよび第2プロセッサ12eが用いるメモリの大容量化が容易となる。また、メモリ605のダイとして、一般的に流通しているメモリのダイを用いることができるため、製造コストを抑制することが可能である。また、図47Aおよび図47Bに示した構成と比較してメモリの個数を減らすことができるため、第1プロセッサ11e、第2プロセッサ12eおよびメモリ605が搭載される基板や、これを搭載した装置の外形を縮小することが可能である。
【0419】
図48Bは、図48Aの第1演算処理部610aに代えて、それぞれ演算処理を行う複数のコア6121、6122、…を有する第1演算処理部610bを有する第1プロセッサ11fと、第2演算処理部630aに代えて、それぞれ演算処理を行う複数のコア6321、6322、…を有する第2演算処理部630bを有する第2プロセッサ12fの例を示している。第1演算処理部610bと第2演算処理部630bが共通して用いるメモリ605が、第1プロセッサ11fおよび第2プロセッサ12fの外部に設けられている。
【0420】
図48Bに示す構成においても、図48Aの構成と同等の効果を得ることができる。さらに、図48Bに示す構成では、図48Aに示す構成に対してより演算能力を向上させることができる。
【0421】
なお、本明細書に記載された効果はあくまで例示であって限定されるものでは無く、また他の効果があってもよい。
【0422】
なお、本技術は以下のような構成も取ることができる。
(1)
複数のプロセッサそれぞれに1対1で実行させるネットワークを、複数のネットワークから決定する制御部、
を備え、
前記制御部は、
前記複数のネットワークのうち少なくとも1つのネットワークを、入力データが入力されるネットワークに決定し、
前記複数のネットワークのうち前記入力データが入力されるネットワークとは異なる1つのネットワークを、前記入力データに応じた出力データを出力するネットワークに決定する、
情報処理装置。
(2)
入力データが入力され、前記複数のプロセッサのうち第1のプロセッサに実行させる、前記複数のネットワークのうち第1のネットワークと、前記複数のプロセッサのうち第2のプロセッサに実行させる、前記第1のネットワークの出力が入力され、前記入力データに応じた出力データを出力する、前記複数のネットワークのうち第2のネットワークと、をそれぞれ決定する制御部、
を備える、
前記(1)に記載の情報処理装置。
(3)
前記制御部は、
前記第1のネットワークおよび前記第2のネットワークのうち少なくとも一方による処理の実行に対して要求される性能である要求性能に応じて、前記第1のネットワークおよび前記第2のネットワークを決定する、
前記(2)に記載の情報処理装置。
(4)
前記制御部は、
ハードウェア要素に対する前記要求性能と、前記出力データに対する処理を実行するアプリケーションにより前記出力データに要求されるアプリケーション要素に対する前記要求性能と、のうち少なくとも一方に基づき、前記第1のネットワークおよび前記第2のネットワークを決定する、
前記(3)に記載の情報処理装置。
(5)
前記ハードウェア要素は、前記第1のプロセッサと、前記第2のプロセッサと、前記入力データの生成元のハードウェアと、のうち少なくとも1つの能力および制約を含み、
前記アプリケーション要素は、前記出力データのレートと、伝送サイズと、前記アプリケーションにおける処理のコストと、のうち少なくとも1つを含む、
前記(4)に記載の情報処理装置。
(6)
前記制御部は、
前記要求性能と、所定のネットワークに対する性能維持指標とに基づき、前記第1のネットワークと前記第2のネットワークとを決定する、
前記(3)乃至(5)の何れかに記載の情報処理装置。
(7)
前記制御部は、
前記第1のネットワークでは固定小数点演算を行い、前記第2のネットワークでは浮動小数点演算を行うように、前記第1のネットワークおよび前記第2のネットワークを決定する、
前記(3)乃至(6)の何れかに記載の情報処理装置。
(8)
前記制御部は、
前記第1のネットワークによる処理および前記第2のネットワークによる処理を、前記第2のネットワークによる処理が前記第1のネットワークによる処理に対するパイプライン処理として実行されるように決定する、
前記(3)乃至(7)の何れかに記載の情報処理装置。
(9)
所定のネットワークに含まれる、前記入力データに対する第1の機能を前記第1のネットワークに適用し、前記第1の機能による処理結果に対する第2の機能を前記第2のネットワークに適用する、
前記(2)に記載の情報処理装置。
(10)
前記制御部は、
前記第2の機能に応じて前記第1の機能を決定する、
前記(9)に記載の情報処理装置。
(11)
前記制御部は、
前記第2のネットワークの学習結果に応じて前記第2の機能を更新または変更する、
前記(9)または(10)に記載の情報処理装置。
(12)
前記制御部は、
前記第1のネットワークの出力に応じて前記第2のネットワークを変更する、
前記(9)乃至(11)の何れかに記載の情報処理装置。
(13)
前記制御部は、
前記第2のネットワークとして、互いに異なる複数の前記第2の機能のそれぞれに1対1で対応し、並列処理が可能な複数の第2のネットワークを決定する、
前記(9)乃至(12)の何れかに記載の情報処理装置。
(14)
前記制御部は、
前記複数の第2のネットワークを、1つの前記第1のネットワークの出力が共通に入力されるように決定する、
前記(13)に記載の情報処理装置。
(15)
前記第1のネットワークとして、互いに異なる複数の前記第1の機能のそれぞれに1対1で対応し、並列処理が可能な複数の第1のネットワークを決定する、
前記(9)に記載の情報処理装置。
(16)
前記制御部は、
前記第2のネットワークを、前記複数の第1のネットワークそれぞれの出力が入力されるように決定する、
前記(15)に記載の情報処理装置。
(17)
前記制御部は、
前記第1のネットワークを速度を優先して前記第1の機能の処理を行うように決定し、前記第2のネットワークを精度および機能のうち少なくとも一方を優先して前記第2の機能の処理を行うように決定する、
前記(9)乃至(16)の何れかに記載の情報処理装置。
(18)
前記制御部は、
前記第2のネットワークによる処理結果に基づき前記第1のネットワークを再学習させるように、前記第1のネットワークおよび前記第2のネットワークを決定する、
前記(17)に記載の情報処理装置。
(19)
前記制御部は、
前記第1のネットワークによる出力のデータを削減して前記第2のネットワークに入力させるように、前記第1のネットワークおよび前記第2のネットワークを決定する、
前記(9)乃至(18)の何れかに記載の情報処理装置。
(20)
コンピュータにより実行される、
複数のプロセッサそれぞれに1対1で実行させるネットワークを、複数のネットワークから決定する制御ステップ、
を備え、
前記制御ステップは、
前記複数のネットワークのうち少なくとも1つのネットワークを、入力データが入力されるネットワークに決定し、
前記複数のネットワークのうち前記入力データが入力されるネットワークとは異なる1つのネットワークを、前記入力データに応じた出力データを出力するネットワークに決定する、
情報処理方法。
(21)
コンピュータに、
複数のプロセッサそれぞれに1対1で実行させるネットワークを、複数のネットワークから決定する制御ステップ、
を実行させ、
前記制御ステップは、
前記複数のネットワークのうち少なくとも1つのネットワークを、入力データが入力されるネットワークに決定し、
前記複数のネットワークのうち前記入力データが入力されるネットワークとは異なる1つのネットワークを、前記入力データに応じた出力データを出力するネットワークに決定する、
ための情報処理プログラム。
(22)
入力データが入力され、複数のネットワークのうち1つのネットワークが実行される第1のプロセッサと、
前記複数のネットワークのうち前記入力データが入力されるネットワークとは異なる1つのネットワークが実行され、前記入力データに応じた出力データを出力する第2のプロセッサと、
前記第1のプロセッサおよび前記第2のプロセッサを含む複数のプロセッサそれぞれに1対1で実行させるネットワークを、前記複数のネットワークから決定する制御部、を備える情報処理装置と、
を含む、
情報処理システム。
(23)
前記制御部は、
前記複数のプロセッサのうち前記第1のプロセッサに実行させる、前記複数のネットワークのうち第1のネットワークと、
前記複数のプロセッサのうち前記第2のプロセッサに実行させる、前記第1のネットワークの出力が入力され、前記入力データに応じた出力データを出力する第2のネットワークと、
それぞれ決定する、
前記(22)に記載の情報処理システム。
(24)
前記第1のプロセッサと前記第2のプロセッサとが同一の筐体内に構成される、
前記(23)に記載の情報処理システム。
(25)
前記第1のプロセッサが第1の筐体内に構成され、前記第2のプロセッサが第2の筐体内に構成される、
前記(23)に記載の情報処理システム。
(26)
前記入力データを出力するセンサデバイスをさらに含む、
前記(23)乃至(25)の何れかに記載の情報処理システム。
(27)
前記センサデバイスと前記第1のプロセッサとが一体的に構成される、
前記(26)に記載の情報処理システム。
(28)
前記第2のプロセッサと前記第1のプロセッサとが通信ネットワークを介して接続される、
前記(23)乃至(27)の何れかに記載の情報処理システム。
(29)
前記第2のプロセッサから出力される前記出力データに対して処理を実行するアプリケーションが搭載される、前記情報処理装置とは異なる他の情報処理装置、
をさらに含む、
前記(23)乃至(28)の何れかに記載の情報処理システム。
【符号の説明】
【0423】
1,1b,1c,1d,1e,1f,1g,1h,1i,1j,1k 情報処理システム
10 センシングデバイス
11,11-1,11-2,11-3,11-11,11-12,11-13,11-21,11-22,11-23,11-31,11-32,11-33,111,112,11N,11a,11b,11c,11d,11e,11f 第1プロセッサ
12,12a,12b,12c,12d,12e,12f 第2プロセッサ
14,15 通信部
16a,16b 基板
20,1000 ネットワーク制御部
30 アプリケーション実行部
50 DNN
51,51-1,51-2,51-3,51-11,51-12,51-13,51-21,51-22,51-23,51-31,51-32,51-33,51-31’,51-32’,51-33’,51b,51c 第1DNN
52、52-1,52-2,52-3,52a,52b,52c,52d,52e,52f,52g,52h,52i 第2DNN
72 再学習部
80,83 パラレル転送信号線
81,82,84 高速シリアル転送信号線
100,100a 撮像装置
111 撮像部
121 CPU
122 DSP
123,605 メモリ
140,140a,140b,140c ホスト部
141 MCU
142 MPU
143 ACCL
150 撮像装置
200 解析部
201 分割部
202 送信部
203 学習部
220 最適化部
221 デバイス設定データベース
222 互換性テスト処理部
223,1012 パッケージャ
224 DNN実行部
225 CISコンバータ
226 ホスト部DNNコンバータ
300a,300b,400 情報処理装置
310 クラウドネットワーク
600 入力部
601,621 演算回路部
602,622 出力部
603 第1メモリ
604 第2メモリ
610a,610b 第1演算処理部
630a,630b 第2演算処理部
1100,1100a,1100b,1100c スマートカメラ
1110 DNNプロセッサ
図1
図2
図3
図4
図5
図6
図7A
図7B
図7C
図8A
図8B
図8C
図8D
図8E
図8F
図8G
図9
図10
図11
図12
図13
図14
図15
図16
図17
図18
図19
図20
図21
図22
図23
図24
図25
図26
図27
図28
図29
図30
図31
図32
図33
図34
図35
図36
図37
図38
図39A
図39B
図40
図41
図42
図43A
図43B
図44
図45A
図45B
図46A
図46B
図47A
図47B
図48A
図48B