(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-07-29
(45)【発行日】2024-08-06
(54)【発明の名称】ネットワークの制御方法、および、データ処理システム
(51)【国際特許分類】
H04N 21/238 20110101AFI20240730BHJP
H04N 21/2343 20110101ALI20240730BHJP
H04L 41/0895 20220101ALI20240730BHJP
【FI】
H04N21/238
H04N21/2343
H04L41/0895
(21)【出願番号】P 2022532248
(86)(22)【出願日】2020-12-07
(86)【国際出願番号】 JP2020045487
(87)【国際公開番号】W WO2021260970
(87)【国際公開日】2021-12-30
【審査請求日】2023-10-12
(32)【優先日】2020-06-26
(33)【優先権主張国・地域又は機関】US
(31)【優先権主張番号】P 2020111563
(32)【優先日】2020-06-29
(33)【優先権主張国・地域又は機関】JP
(73)【特許権者】
【識別番号】000002185
【氏名又は名称】ソニーグループ株式会社
(74)【代理人】
【識別番号】100121131
【氏名又は名称】西川 孝
(74)【代理人】
【氏名又は名称】稲本 義雄
(74)【代理人】
【識別番号】100168686
【氏名又は名称】三浦 勇介
(72)【発明者】
【氏名】山岸 靖明
(72)【発明者】
【氏名】久野 浩
【審査官】大西 宏
(56)【参考文献】
【文献】特開2013-020430(JP,A)
【文献】特開2015-041385(JP,A)
【文献】特開2018-084854(JP,A)
【文献】特表2015-505404(JP,A)
【文献】米国特許出願公開第2012/0081567(US,A1)
【文献】米国特許出願公開第2018/0095854(US,A1)
【文献】米国特許出願公開第2018/0157915(US,A1)
【文献】国際公開第2019/099111(WO,A1)
【文献】韓国公開特許第10-2017-0127315(KR,A)
【文献】山田 倍司,アプリケーションルータネットワークにおける処理タスク割当によるコスト最小化,電子情報通信学会技術研究報告,日本,一般社団法人電子情報通信学会,2015年01月22日,Vol.114,No.404,pp.119-124
(58)【調査した分野】(Int.Cl.,DB名)
H04N 21/00 -21/858
H04L 41/00 -43/55
(57)【特許請求の範囲】
【請求項1】
ネットワーク接続装置が、
イメージセンサとイベントセンサとを含むセンサデバイスと、それに接続されたネットワーク内の経路にある
他のネットワーク接続装置のなかから、前記センサデバイスで生成されたセンサデータを処理するアプリケーションを実行させる
装置を、マニフェストに基づいて決定
し、
前記アプリケーションが実行する処理は、前記イメージセンサが生成したフレーム画像と前記イベントセンサが生成したイベント画像から、注目領域の超解像画像を生成する処理を含み、
前記超解像画像は、前記フレーム画像に対して、時間分解能を高めた画像、空間解像度を向上させた画像、または、ダイナミックレンジを拡大した画像のいずれかである
ネットワークの制御方法。
【請求項2】
前記ネットワーク接続装置は、前記マニフェストに記載された、前記アプリケーションを配置する際の評価軸と、その
評価軸の場合のアプリケーション配置の優先順位に基づいて決定する
請求項1に記載のネットワークの制御方法。
【請求項3】
前記マニフェストは、前記評価軸として、ネットワーク転送遅延による処理遅延を含む
請求項2に記載のネットワークの制御方法。
【請求項4】
前記マニフェストは、前記評価軸として、前記ネットワークのトラフィックを含む
請求項2に記載のネットワークの制御方法。
【請求項5】
前記マニフェストは、前記評価軸として、前記アプリケーションの処理速度を含む
請求項2に記載のネットワークの制御方法。
【請求項6】
前記マニフェストは、前記評価軸として、前記アプリケーションの実行コストを含む
請求項2に記載のネットワークの制御方法。
【請求項7】
前記マニフェストは、前記評価軸として、ストレージコストを含む
請求項2に記載のネットワークの制御方法。
【請求項8】
前記マニフェストは、前記評価軸として、前記センサデータの再利用性を含む
請求項2に記載のネットワークの制御方法。
【請求項9】
前記マニフェストは、前記評価軸として、要求されたサービスに対応する本処理を実行する前に前処理を実行するかを含む
請求項2に記載のネットワークの制御方法。
【請求項10】
前記アプリケーションを実行させる装置を決定する前記ネットワーク接続装置は
、要求されたサービスに対応する本処理を実行するアプリケーション
を実行させる装置と、前記本処理の前処理を実行するアプリケーション
を実行させる装置を
それぞれ決定する
請求項1に記載のネットワークの制御方法。
【請求項11】
前記前処理は、非圧縮の前記センサデータを圧縮する処理である
請求項10に記載のネットワークの制御方法。
【請求項12】
前記前処理は、前記本処理の内容に合わせて
実行される処理である
請求項10に記載のネットワークの制御方法。
【請求項13】
前記前処理を実行するアプリケーション
を実行する装置は、前記本処理を実行するアプリケーション
を実行する装置の前段に複数配置
される
請求項10に記載のネットワークの制御方法。
【請求項14】
前記アプリケーション配置の優先順位は
、前記センサデバイス、エッジクラウド、および、センタークラウドの優先順位である
請求項2に記載のネットワークの制御方法。
【請求項15】
前記注目領域を特定する処理は、前記センサデバイス、または、前記センサデバイスと最初に接続される前記他のネットワーク接続装置で実行される
請求項1に記載のネットワークの制御方法。
【請求項16】
イメージセンサとイベントセンサとを含むセンサデバイスと、それに接続されたネットワーク内の経路にある
ネットワーク接続装置のなかから、前記センサデバイスで生成されたセンサデータを処理するアプリケーションを実行させる
装置を、マニフェストに基づいて決定するオーケストレータ
を備え、
前記アプリケーションが実行する処理は、前記イメージセンサが生成したフレーム画像と前記イベントセンサが生成したイベント画像から、注目領域の超解像画像を生成する処理を含み、
前記超解像画像は、前記フレーム画像に対して、時間分解能を高めた画像、空間解像度を向上させた画像、または、ダイナミックレンジを拡大した画像のいずれかである
データ処理システム。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、ネットワークの制御方法、および、データ処理システムに関し、特に、ネットワーク内のトラフィックを削減するとともに、データ処理するアプリケーションの処理負荷を低減させるようにしたネットワークの制御方法、および、データ処理システムに関する。
【背景技術】
【0002】
本出願人は、特許文献1において、同期型のイメージセンサと非同期型のDVSとを組み合わせて用いた物体検出システムを先行して提案している。同期型のイメージセンサは、垂直同期信号に同期して撮像を行い、その垂直同期信号の周期で1フレーム(画面)の画像データであるフレームデータを出力するセンサである。DVSは、Dynamic Vision Sensorの略称であり、画素の輝度変化をイベントとして、イベントが発生した場合に、イベントの発生を表すイベントデータを出力するセンサである。DVSは垂直同期信号に依らずにイベントが発生したタイミングでイベントデータを出力するため、非同期型(又はアドレス制御型)のイメージセンサということができる。
【0003】
DVSからは、予測不可能かつ突発的にイベントデータが出る。イベントデータは遅延なく使えなければならないため時間粒度が極めて細かいデータとなっている。DVSから生成された大量のデータを、見境なくネットワークに注入すると、ネットワークのキャパシティに制限があるとすると、ネットワークが破綻し、本当に必要なデータが正しく処理できない可能性がある。ネットワークのキャパシティに制限がないとしても、ネットワーク上でデータ処理を行う計算資源が破綻する。すなわち、必要のない無駄な処理に計算資源が浪費される。したがって、ネットワークやネットワーク上の計算資源に負担をかけないため、イベントデータに対する何らかのフィルタリングを行ってからネットワークに注入しなければならない。
【先行技術文献】
【特許文献】
【0004】
【発明の概要】
【発明が解決しようとする課題】
【0005】
このフィルタリングを、センサデータを生成するセンサデバイスだけで行うと、ネットワークそのものに負担をかけずに済むが、貧弱な計算資源のため、フィルタリングの精度に限界がある。センサデータをクラウド(ネットワーク)へ渡して、フィルタリングをクラウド内だけで行うと、クラウド上の豊富な計算資源を用いることができ、フィルタリングの精度を上げることができる。しかしながら、フィルタリング処理されないセンサデータをネットワーク上へ上げることになるので、計算資源をクラウド上の装置に分散させただけで、ネットワーク内を流れるデータの総量は変わらず、ネットワークやネットワーク上の計算資源の負担を減らすことができない。
【0006】
本開示は、このような状況に鑑みてなされたものであり、ネットワーク内のトラフィックを削減するとともに、データ処理するアプリケーションの処理負荷を低減させることができるようにするものである。
【課題を解決するための手段】
【0007】
本開示の第1の側面のネットワークの制御方法は、ネットワーク接続装置が、イメージセンサとイベントセンサとを含むセンサデバイスと、それに接続されたネットワーク内の経路にある他のネットワーク接続装置のなかから、前記センサデバイスで生成されたセンサデータを処理するアプリケーションを実行させる装置を、マニフェストに基づいて決定し、前記アプリケーションが実行する処理は、前記イメージセンサが生成したフレーム画像と前記イベントセンサが生成したイベント画像から、注目領域の超解像画像を生成する処理を含み、前記超解像画像は、前記フレーム画像に対して、時間分解能を高めた画像、空間解像度を向上させた画像、または、ダイナミックレンジを拡大した画像のいずれかである。
【0008】
本開示の第2の側面のデータ処理システムは、イメージセンサとイベントセンサとを含むセンサデバイスと、それに接続されたネットワーク内の経路にあるネットワーク接続装置のなかから、前記センサデバイスで生成されたセンサデータを処理するアプリケーションを実行させる装置を、マニフェストに基づいて決定するオーケストレータを備え、前記アプリケーションが実行する処理は、前記イメージセンサが生成したフレーム画像と前記イベントセンサが生成したイベント画像から、注目領域の超解像画像を生成する処理を含み、前記超解像画像は、前記フレーム画像に対して、時間分解能を高めた画像、空間解像度を向上させた画像、または、ダイナミックレンジを拡大した画像のいずれかである。
【0009】
本開示の第1および第2の側面においては、イメージセンサとイベントセンサとを含むセンサデバイスと、それに接続されたネットワーク内の経路にあるネットワーク接続装置のなかから、前記センサデバイスで生成されたセンサデータを処理するアプリケーションを実行させる装置が、マニフェストに基づいて決定される。前記アプリケーションが実行する処理は、前記イメージセンサが生成したフレーム画像と前記イベントセンサが生成したイベント画像から、注目領域の超解像画像を生成する処理を含み、前記超解像画像は、前記フレーム画像に対して、時間分解能を高めた画像、空間解像度を向上させた画像、または、ダイナミックレンジを拡大した画像のいずれかである。
【0010】
ネットワークとは、少なくとも2つの装置が接続され、ある装置から、他の装置に対して、情報の伝達をできるようにした仕組みをいう。ネットワークを介して通信する装置は、独立した装置どうしであっても良いし、1つの装置を構成している内部ブロックどうしであっても良い。
【0011】
なお、本開示の第1の側面のネットワークの制御方法および第2の側面のデータ処理システムは、コンピュータにプログラムを実行させることにより実現することができる。コンピュータに実行させるプログラムは、伝送媒体を介して伝送することにより、又は、記録媒体に記録して、提供することができる。
【0012】
データ処理システムは、独立した装置であっても良いし、1つの装置を構成している内部ブロックであっても良い。
【図面の簡単な説明】
【0013】
【
図1】本開示を適用した一実施の形態であるデータ処理システムの構成例を示す図である。
【
図2】オーケストレータによるマニフェストの取得を説明する図である。
【
図3】
図1のデータ処理システムによるアプリケーション配置制御を説明するフローチャートである。
【
図4】アプリケーションの配置方針を説明する図である。
【
図5】前処理として圧縮処理を行う場合のアプリケーションの配置方針を説明する図である。
【
図6】前処理として圧縮処理を行う場合のアプリケーションの配置方針を説明する図である。
【
図7】
図5と
図6のアプリケーション配置例を比較して示す図である。
【
図8】個別化処理を多段配置した場合のアプリケーションの配置方針を説明する図である。
【
図9】個別化処理を多段配置した場合のアプリケーションの配置方針を説明する図である。
【
図10】再利用性を重視する場合のアプリケーションの配置方針を説明する図である。
【
図11】再利用性を重視する場合のアプリケーションの配置方針を説明する図である。
【
図12】アプリケーション配置する際の評価軸と、その場合のアプリケーション配置の優先順位をまとめた図である。
【
図13】クラウドコンピューティングの構成例を示す図である。
【
図14】DVSのイベントデータを利用して超解像画像を生成する例を示す図である。
【
図15】本技術を適用した画像処理システムの実施の形態である画像解析ネットワークシステムの構成例を示す図である。
【
図16】
図15の画像解析ネットワークシステムのアプリケーション適用例を示す図である。
【
図17】
図15の画像解析ネットワークシステムのアプリケーション適用例を示す図である。
【
図18】上流からROI超解像イメージストリームを配信する第1の例を示す図である。
【
図19】上流からROI超解像イメージストリームを配信する第1の例を示す図である。
【
図20】解析装置の分解能に応じたROI超解像イメージストリームの例を示す図である。
【
図21】上流からROI超解像イメージストリームを配信する第2の例を示す図である。
【
図22】上流からROI超解像イメージストリームを配信する第3の例を示す図である。
【
図23】上流からROI超解像イメージストリームを配信する第4の例を示す図である。
【
図24】上流からROI超解像イメージストリームを配信する例を示す図である。
【
図25】
図15の画像解析ネットワークシステムが行うROI超解像イメージストリームの配信例を示す図である。
【
図27】イベントストリームが間引かれて伝送される例を示す図である。
【
図29】各注目領域ROIのストリームの伝送経路を示した図である。
【
図30】
図15の画像解析ネットワークシステムの構成例を示すブロック図である。
【
図31】スナップショットと注目領域ROIの割り当ての例を示す図である。
【
図32】ROIサブスクリプションリクエストを説明する図である。
【
図33】超解像処理ノードが解析装置の1つ上流側のノードに配置された場合の構成例を示すブロック図である。
【
図34】センサデバイスとブローカーノードのその他の構成例を示すブロック図である。
【
図35】センサデバイスとブローカーノードのその他の構成例を示すブロック図である。
【
図36】注目領域ROI単位のイベントストリームの第1のネットワーク伝送例を示す図である。
【
図37】注目領域ROI単位のイベントストリームの第1のネットワーク伝送例を示す図である。
【
図38】注目領域ROI単位のイベントストリームの第2のネットワーク伝送例を示す図である。
【
図39】ROI超解像ストリームの例を示す図である。
【
図40】イベントデータの間引き合成を説明する図である。
【
図41】間引き合成前と間引き合成後の注目領域ROIのイベントストリームの例を示す図である。
【
図42】超解像画像解析処理の装置間の流れを説明するフローチャートである。
【
図43】超解像画像解析処理のモジュール間の流れを説明するフローチャートである。
【
図44】超解像画像解析処理のモジュール間の流れを説明するフローチャートである。
【
図45】超解像画像解析処理のモジュール間の流れを説明するフローチャートである。
【
図46】ストリームの伝送フォーマット例を示す図である。
【
図47】イベントパケットペイロードのフォーマット例を示す図である。
【
図48】本技術を適用したコンピュータの一実施の形態の構成例を示すブロック図である。
【発明を実施するための形態】
【0014】
以下、添付図面を参照しながら、本開示を実施するための形態(以下、実施の形態という)について説明する。なお、本明細書において、「および/または」の記載は、「および」と「または」の両方を取り得ることを意味する。また、本明細書及び図面において、実質的に同一の機能構成を有する構成要素については、同一の符号を付することにより重複説明を省略する。説明は以下の順序で行う。
1.データ処理システムの構成例
2.アプリケーション配置制御のフローチャート
3.最適配置の評価軸と配置方針
4.クラウドコンピューティングの構成例
5.DVSデータを用いた超解像ストリーム
6.超解像画像を用いた画像解析ネットワークシステム
7.ストリーム配信方法の例
8.画像解析ネットワークシステムが行うストリーム配信方法の例
9.画像解析ネットワークシステムのブロック図
10.イメージストリームとROIイベントストリームの例
11.ROIイベントストリームの間引き合成処理
12.画像解析ネットワークシステムの処理の流れ
13.ストリームの伝送フォーマットの例
14.コンピュータ構成例
【0015】
<1.データ処理システムの構成例>
図1は、本開示を適用した一実施の形態であるデータ処理システムの構成例を示している。
【0016】
図1のデータ処理システム500は、センサ511がセンシングにより生成したセンサデータをクラウド521へ送信(アップリンク)し、センサデータに対する所定のデータ処理をクラウド521上で行うネットワークシステムである。クラウド521上で実行されるデータ処理は、クラウド521で提供されるサービスに応じて決定される。例えば、センサ511がイメージセンサである場合、イメージセンサで生成された画像の認識処理や解析処理が、クラウド521上で実行される。
【0017】
センサ(Sensor)511は、例えば、同期型のイメージセンサ、非同期型のDVSなどで構成され、センシングにより生成したセンサデータを、エッジデバイス512へ供給するセンサデバイスである。同期型のイメージセンサは、垂直同期信号に同期して撮像を行い、その垂直同期信号の周期で1フレーム(画面)の画像データであるフレームデータを出力するセンサである。DVSは、画素の輝度変化をイベントとして、イベントが発生したタイミングに応じて非同期に、イベントの発生を表すイベントデータを出力するセンサである。
【0018】
なお、本実施の形態では、センサ511が、同期型のイメージセンサまたは非同期型のDVSのいずれか一方または両方を備えるセンサデバイスであるとして説明するが、センサ511は、イメージセンサに限定されず、その他のセンサデバイスであってもよい。センサ511の例としては、例えばIoT(Internet of Things)センサとして用いられるような、加速度センサ、ジャイロセンサ、磁気センサ、臭気センサ、気圧センサ、温度センサ、湿度センサ、風速センサ、光センサ(RGBセンサ、IRセンサなど)、GPSセンサなどが挙げられる。
【0019】
エッジデバイス(Edge Device)512は、外部デバイスとしてのセンサ511を接続するデータ処理装置であり、例えばサーバ装置で構成される。エッジデバイス512は、センサ511から供給されるセンサデータを処理するアプリケーションを実行できるアプリケーションプラットフォーム(Application Platform)531を実装している。例えば、センサ511でキャプチャされたイメージデータを解析する処理等を行うアプリケーションが、アプリケーションプラットフォーム531上で実行される。アプリケーションプラットフォーム531は、その上で実行される複数のアプリケーションを管理する機能も有している。
【0020】
センサ511は、エッジデバイス512の外部デバイスとしてエッジデバイス512と接続される場合もあれば、エッジデバイス512の一部として一体に組み込まれている場合もある。以下では、センサ511とエッジデバイス512を、まとめて、センサ/エッジ513と称して説明する。
【0021】
クラウド521は、複数のノードと、それらを接続するネットワークで構成される。ネットワークは、例えば、インターネット、公衆電話回線網、所謂4G回線や5G回線等の無線移動体用の広域通信網、WAN(Wide Area Network)、LAN(Local Area Network)、Bluetooth(登録商標)規格に準拠した通信を行う無線通信網、NFC(Near Field Communication)等の近距離無線通信の通信路、赤外線通信の通信路、HDMI(登録商標)(High-Definition Multimedia Interface)やUSB(Universal Serial Bus)等の規格に準拠した有線通信の通信網等、任意の通信規格の通信網や通信路で構成される。クラウド521を構成する各ノードは、例えば、センサデバイス、ルータ、モデム、ハブ、ブリッジ、スイッチングハブ、基地局制御装置、交換機、サーバなどのネットワーク接続装置で構成される。ノードとしてのネットワーク接続装置が、以下で説明するアプリケーションプラットフォーム532、ネットワークモニタ533、アプリケーションプラットフォーム534、ネットワークモニタ535、オーケストレータ536、または、アプリケーションリポジトリ537として機能する。
【0022】
クラウド521には、センサデータをネットワークに注入するセンサ/エッジ513に近いエッジ側に配置されたエッジクラウド(Edge Cloud)522と、それ以外のコアネットワークに配置されたセンタークラウド(Center Cloud)523とが含まれる。エッジクラウド522は、例えば、ネットワークが携帯電話通信網である場合は基地局などで構成される。
【0023】
エッジクラウド522は、センサ511から供給されるセンサデータを処理するアプリケーションを実行できるアプリケーションプラットフォーム532を実装している。アプリケーションプラットフォーム532は、センサ/エッジ513のアプリケーションプラットフォーム531とネットワーク538で接続される。エッジクラウド522は、ネットワーク538の状態をモニターするネットワークモニタ(Network Monitor)533を有している。
【0024】
センタークラウド523も、センサ511から供給されるセンサデータを処理するアプリケーションを実行できるアプリケーションプラットフォーム534を実装している。アプリケーションプラットフォーム534は、エッジクラウド522のアプリケーションプラットフォーム532とネットワーク539で接続される。センタークラウド523は、ネットワーク539の状態をモニターするネットワークモニタ535を有している。
【0025】
オーケストレータ(Orchestrator)536は、アプリケーションリポジトリ537へアクセスし、所定のサービスを提供するアプリケーションの属性や実行イメージ(実行ファイル)を取得する。アプリケーションの属性には、例えば、計算リソース、メモリ、GPU(Graphics Processing Unit)等のハードウェアアクセラレータなど、そのアプリケーションに必要な実行環境についての情報が含まれる。
【0026】
オーケストレータ536は、サービス要求条件に応じて、アプリケーションを実行させる最適な場所を決定する。具体的には、オーケストレータ536は、アプリケーションを、センサ/エッジ513のアプリケーションプラットフォーム531、エッジクラウド522のアプリケーションプラットフォーム532、または、センタークラウド523のアプリケーションプラットフォーム534のいずれに配置するのが最適であるかを決定する。オーケストレータ536は、アプリケーションの実行場所として決定したアプリケーションプラットフォームに、アプリケーションの実行環境を確保し、アプリケーションを実行させる。
【0027】
アプリケーションリポジトリ(Application Repository)537は、所定のサービスを提供するアプリケーションの属性や実行イメージ(実行ファイル)を、サービスごとに記憶する。アプリケーションリポジトリ537は、実行イメージそのものを取得するのではなく、実行イメージの格納場所を示す参照アドレス等を記憶してもよい。
【0028】
以上のように構成される
図1のデータ処理システム500において、オーケストレータ536は、提供されるサービスの要求条件に応じて、アプリケーションを実行させる最適な場所を決定して、アプリケーションを実行させる。これにより、ネットワーク内のトラフィックを削減するとともに、データ処理するアプリケーションの処理負荷を低減させる。
【0029】
オーケストレータ536は、
図2に示されるように、センサネットワークサービスオペレータ541から供給されるマニフェストをもとに、アプリケーションの最適な配置を決定する。マニフェストには、アプリケーションの配置決定のための評価軸、例えば、アプリケーション配置に際して重要視される項目や、重要視される項目の順序などが、最適配置方針として記述されている。
【0030】
例えば、ネットワーク転送遅延(処理遅延を含む)、ネットワークのトラフィック総量、アプリケーションの処理速度、実行コスト(計算コスト)、ストレージコスト、データ発生位置、のどれを優先的に抑えたいかについての情報が、最適配置方針としてマニフェストに記述される。
【0031】
また例えば、要求されたサービスに対応するアプリケーション処理の前に前処理を実行して、アプリケーションの処理負荷軽減を重視するか否かについての情報が、最適配置方針としてマニフェストに記述される。
【0032】
また例えば、センサデータの再利用性を重視するか否かについての情報が、最適配置方針としてマニフェストに記述される。センサデータの再利用性とは、例えば、複数のアプリケーションが共有してセンサデータを利用できることや、センサデータをオフラインで(別タイミングで)再度利用できることの度合いを表す。
【0033】
<2.アプリケーション配置制御のフローチャート>
図3のフローチャートを参照して、アプリケーションの最適配置を決定するアプリケーション配置制御について説明する。
【0034】
なお、この処理の開始前には、オーケストレータ536がアプリケーションリポジトリ537へアクセスし、実行予定のアプリケーションに必要な実行環境についての情報が取得済みであるとする。
【0035】
初めに、センサ511は、ステップS101において、“Capture Data”によりセンサデータの生成を検出し、それをトリガにして、ステップS102において、“Request App Instantiation”を実行する。“Request App Instantiation”では、アプリケーションの最適な配置での起動を依頼する“App Requirements”が、センサ511からオーケストレータ536へ送信される。アプリケーションが行う処理は、例えば、センサ511で得られた画像の解析処理や、画像中のオブジェクトを認識する処理などとすることができる。
【0036】
ステップS103において、オーケストレータ536は、“Evaluate & Determine Target App Platform”を実行する。すなわち、オーケストレータ536は、センサネットワークサービスオペレータ541から供給されたマニフェストに基づいて、アプリケーションを実行する最適なアプリケーションプラットフォームを、センサ/エッジ513上、エッジクラウド522上、または、センタークラウド523上のなかから探索し、決定する。この際、オーケストレータ536は、エッジクラウド522のネットワークモニタ533から、アプリケーションプラットフォーム531と532との間のネットワーク538のトラフィックの状態を取得し、ネットワークモニタ535から、アプリケーションプラットフォーム532と534との間のネットワーク539のトラフィックの状態を取得した上で、最適なアプリケーションプラットフォームを決定する。ここでは、エッジクラウド522上のアプリケーションプラットフォーム532が、最適な実行場所であると決定されたとする。
【0037】
オーケストレータ536は、ステップS104において、エッジクラウド522上のアプリケーションプラットフォーム532に対して、“Request App Resource Reservation”を送信し、アプリケーションに必要な実行環境を、アプリケーションプラットフォーム532に確保させる。アプリケーションプラットフォーム532は、“Request App Resource Reservation”にしたがい、アプリケーションに必要な実行環境を確保する。
【0038】
オーケストレータ536は、ステップS105において、エッジクラウド522上のアプリケーションプラットフォーム532に対して、“Request App Instantiation”を実行する。すなわち、オーケストレータ536は、アプリケーションの起動を依頼する“App Requirements”を、アプリケーションプラットフォーム532に送信する。
【0039】
エッジクラウド522上のアプリケーションプラットフォーム532は、ステップS106において、アプリケーションを起動、実行する。アプリケーションプラットフォーム532で起動されたアプリケーションは、ステップS107において、センサ511に対して“Inform App Ready”を送信し、アプリケーションが起動されたこと、換言すれば、処理の準備ができたことを通知する。
【0040】
“Inform App Ready”を受信したセンサ511は、ステップS108において、“Send Data”、すなわち、センサデータを、エッジクラウド522上のアプリケーションプラットフォーム532のアプリケーションへ、ネットワーク538を介して送信する。
【0041】
アプリケーションプラットフォーム532のアプリケーションは、ステップS109において、センサ511から送信されてきたセンサデータを取得し、所定のデータ処理を実行する(“Process Data”)。
【0042】
ステップS108におけるセンサデータの送信と、ステップS109におけるセンサデータのデータ処理は、センサ511でセンサデータが生成される間、継続して実行される。その間、オーケストレータ536は、ステップS110において、アプリケーションの実行状態、および、センサ/エッジ513とエッジクラウド522のアプリケーションプラットフォーム間のネットワーク538の状態を確認する。
【0043】
そして、ステップS111において、オーケストレータ536は、現在のアプリケーションの実行場所が最適であるか、換言すれば、ステップS103で決定したアプリケーションの最適配置の判断に変更がないかを判定する。ステップS111で、アプリケーションの最適配置の判断に変更がないと判定された場合、エッジクラウド522上のアプリケーションプラットフォーム532でのアプリケーションの実行が継続される。
【0044】
一方、アプリケーションの実行状態やネットワーク538の状態に変化が発生し、ステップS111で、オーケストレータ536が、現在のアプリケーションの実行場所が最適ではないと判定した場合、処理がステップS112へ進められる。
【0045】
ステップS112において、オーケストレータ536は、“Evaluate & Determine Target App Platform”を実行する。すなわち、オーケストレータ536は、センサネットワークサービスオペレータ541から供給されたマニフェストに基づいて、アプリケーションを実行する最適なアプリケーションプラットフォームを、再度、探索して決定する。ここでは、センタークラウド523上のアプリケーションプラットフォーム534が、最適な実行場所であると決定されたとする。
【0046】
オーケストレータ536は、ステップS113において、センタークラウド523上のアプリケーションプラットフォーム534に対して、“Request App Resource Reservation”を送信し、アプリケーションに必要な実行環境を、アプリケーションプラットフォーム534に確保させる。アプリケーションプラットフォーム534は、“Request App Resource Reservation”にしたがい、アプリケーションに必要な実行環境を確保する。
【0047】
オーケストレータ536は、ステップS114において、センタークラウド523上のアプリケーションプラットフォーム534に対して、“Request App Instantiation”を実行する。すなわち、オーケストレータ536は、アプリケーションの起動を依頼する“App Requirements”を、アプリケーションプラットフォーム534に送信する。ここで、オーケストレータ536は、エッジクラウド522上のアプリケーションプラットフォーム532で実行されていたアプリケーションの状態情報を、センタークラウド523上のアプリケーションプラットフォーム534のアプリケーションにコピーして同期させることができる。
【0048】
センタークラウド523上のアプリケーションプラットフォーム534は、ステップS115において、アプリケーションを起動、実行する。アプリケーションプラットフォーム534で起動されたアプリケーションは、ステップS116において、センサ511に対して“Inform App Ready”を送信し、アプリケーションが起動されたこと、換言すれば、処理の準備ができたことを通知する。
【0049】
“Inform App Ready”を受信したセンサ511は、ステップS117において、“Capture & Send Data”、すなわち、センサデータの生成を検出し、検出したセンサデータを、センタークラウド523上のアプリケーションプラットフォーム534のアプリケーションへ、ネットワーク538および539を介して送信する。
【0050】
アプリケーションプラットフォーム534のアプリケーションは、ステップS118において、センサ511から送信されてきたセンサデータを取得し、所定のデータ処理を実行する(“Process Data”)。
【0051】
ステップS117におけるセンサデータの送信と、ステップS118におけるセンサデータのデータ処理は、センサ511でセンサデータが生成される間、継続して実行される。
【0052】
以下同様に、ステップS110ないしS113の処理、すなわち、現在のアプリケーションの実行場所が最適であるかどうかを判定し、最適ではないと判定された場合に、最適なアプリケーションプラットフォームを、再度探索して、最適な配置でアプリケーションを実行する処理が継続される。オーケストレータ536は、ネットワークに参加するセンサ/エッジ513の増大や、センサ511で生成されるセンサデータの増大が発生した場合でも、ネットワーク全体のトラフィックや処理負荷の状態を監視し、負荷に追従したネットワーク制御(障害回復およびメンテナンスを含む。)を行うことができる。
【0053】
<3.最適配置の評価軸と配置方針>
上述したように、オーケストレータ536は、“Evaluate & Determine Target App Platform”の処理において、センサネットワークサービスオペレータ541から供給されたマニフェストに基づいて、アプリケーションを実行するのに最適なアプリケーションプラットフォームの場所を決定する。
【0054】
以下では、マニフェストに記載された、アプリケーションの配置決定のための評価軸の例と、その評価軸におけるアプリケーションの配置方針について、具体的に説明する。なお、以下の説明では、センサ/エッジ513上、エッジクラウド522上、または、センタークラウド523上の各アプリケーションプラットフォーム531、532、および534を、簡単のため、プラットフォーム531、532、および534と称して説明する。
【0055】
<本アプリケーションの配置方針>
図4は、アプリケーションを、センサ/エッジ513上、エッジクラウド522上、または、センタークラウド523上の各プラットフォームに配置した例を示している。
【0056】
具体的には、
図4に示される配置(1)は、アプリケーションを、センサ/エッジ513上のプラットフォーム531に配置して実行する配置例を示している。配置(2)は、アプリケーションを、エッジクラウド522上のプラットフォーム532に配置して実行する配置例を示している。配置(3)は、アプリケーションを、センタークラウド523上のプラットフォーム534に配置して実行する配置例を示している。
【0057】
図4において、“Application”は、センサ511で得られた画像の解析処理や、画像中のオブジェクトを認識する処理など、要求されたサービスに対応する処理(以下、本処理と称する。)を実行するアプリケーションの配置場所を示している。“Capture & Send Data”は、センサ511による
図3のステップS101およびS108と同様の、センサデータの生成を検出してアプリケーションへ送信する処理を示している。“Process Data”は、
図3のステップS109やS118と同様の、センサ511から送信されてきたセンサデータを取得して本処理を実行する処理を示している。
【0058】
最適配置方針として、ネットワーク転送遅延による処理遅延をできるだけ小さくすることがマニフェストに記述されている場合について考える。ネットワーク転送遅延による処理遅延は、センサ511に近い方ほど小さくなる。換言すれば、センサ/エッジ513上のプラットフォーム531、エッジクラウド522上のプラットフォーム532、センタークラウド523上のプラットフォーム534の順に、転送遅延が大きくなる。
【0059】
したがって、ネットワーク転送遅延による処理遅延をできるだけ小さくしたい場合、オーケストレータ536は、配置(1)を最優先にし、配置(1)、配置(2)、配置(3)の優先順でアプリケーションを配置する。
【0060】
最適配置方針として、ネットワークのトラフィックの総量をできるだけ小さくすることがマニフェストに記述されている場合について考える。ネットワークのトラフィックの総量は、センサ511に近い方ほど小さくなる。換言すれば、センサ/エッジ513上のプラットフォーム531、エッジクラウド522上のプラットフォーム532、センタークラウド523上のプラットフォーム534の順に、ネットワークトラフィックの総量が大きくなる。
【0061】
したがって、ネットワークのトラフィックの総量をできるだけ小さくしたい場合、オーケストレータ536は、配置(1)を最優先にし、配置(1)、配置(2)、配置(3)の優先順でアプリケーションを配置する。
【0062】
ネットワーク転送遅延による処理遅延と、ネットワークトラフィックの総量の両方をできるだけ小さくできれば、他の要件は無視できることが、最適配置方針としてマニフェストに記述されている場合にも、オーケストレータ536は、配置(1)を最優先にし、配置(1)、配置(2)、配置(3)の優先順でアプリケーションを配置することができる。
【0063】
最適配置方針として、アプリケーションの処理速度をできるだけ速くすることがマニフェストに記述されている場合について考える。アプリケーションの処理速度は、アプリケーションの実行環境の違いによっても異なるが、センサ/エッジ513上のプラットフォーム531、エッジクラウド522上のプラットフォーム532、センタークラウド523上のプラットフォーム534の順に大きくなる。
【0064】
したがって、ネットワークインタフェースから渡された後のアプリケーション処理速度をできるだけ速くしたいという要件の下では、オーケストレータ536は、配置(3)を最優先にし、配置(3)、配置(2)、配置(1)の優先順でアプリケーションを配置する。
【0065】
最適配置方針として、アプリケーションを実行するのに必要なコストであるアプリケーションの実行コストをできるだけ小さくすることがマニフェストに記述されている場合について考える。アプリケーションの実行コストは、アプリケーションの実行環境の違いによっても異なるが、センタークラウド523に近い方が計算資源が豊富となるため安くなる。すなわち、実行コストは、センサ/エッジ513上のプラットフォーム531、エッジクラウド522上のプラットフォーム532、センタークラウド523上のプラットフォーム534の順に低くなる。
【0066】
したがって、アプリケーションの実行コストをできるだけ小さくしたいという要件の下では、オーケストレータ536は、配置(3)を最優先にし、配置(3)、配置(2)、配置(1)の優先順でアプリケーションを配置する。
【0067】
センサデータを一時的または永続的にストレージに格納しておき、多目的に利用する場合や、経路上のネットワークが不安定な場合に一時的にキャッシュしておいてから転送するストアアンドフォワードを行う場合などでは、センサデータを記憶するストレージが必要となる。ストレージを確保することにもコストがかかる。最適配置方針として、ストレージコストをできるだけ低くすることがマニフェストに記述されている場合について考える。ストレージコストも、センタークラウド523に近い方が計算資源が豊富となるため安くなるため、センサ/エッジ513上のプラットフォーム531、エッジクラウド522上のプラットフォーム532、センタークラウド523上のプラットフォーム534の順に低くなる。
【0068】
したがって、ストレージコストをできるだけ低くしたいという要件の下では、オーケストレータ536は、配置(3)を最優先にし、配置(3)、配置(2)、配置(1)の優先順でアプリケーションを配置する。
【0069】
アプリケーション処理速度をできるだけ速く、アプリケーションの実行コストをできるだけ小さく、または、ストレージコストをできるだけ低く、の2つ以上を満たせば、他の要件は無視できることが、最適配置方針としてマニフェストに記述されている場合にも、オーケストレータ536は、配置(3)を最優先にし、配置(3)、配置(2)、配置(1)の優先順でアプリケーションを配置することができる。
【0070】
<前処理がある場合のアプリケーションの配置方針>
図4で説明したアプリケーションの配置方針は、配置するアプリケーションを、本処理を実行する1つのアプリケーションのみとした場合の例であった。
【0071】
次に、本処理の前の前処理として非圧縮のセンサデータを圧縮する処理(以下、圧縮処理と称する。)を実行するアプリケーションと、本処理を実行するアプリケーションの2つのアプリケーションを配置する場合の配置方針について説明する。
【0072】
図5は、2つのアプリケーションを、センサ/エッジ513上、エッジクラウド522上、または、センタークラウド523上の各プラットフォームに配置した例を示している。
【0073】
図5において、“Application”は、本処理を実行するアプリケーションの配置場所を示している。“Application(Compressor)”は、圧縮処理を実行するアプリケーションの配置場所を示している。“Capture & Send Data”は、センサ511がセンサデータの生成を検出してアプリケーションへ送信する処理を示している。“Application(Compressor)”が配置されたプラットフォームの“Process & Send Data”は、圧縮処理を実行するアプリケーションが、圧縮処理を実行して、本処理を実行するアプリケーションへ送信する処理を示している。“Process Data”は、圧縮処理後のセンサデータを取得して本処理を実行する処理を示している。
【0074】
図5に示される配置(11)は、圧縮処理を行うアプリケーションを、センサ/エッジ513上のプラットフォーム531に配置し、本処理を行うアプリケーションを、エッジクラウド522上のプラットフォーム532に配置して実行する配置例を示している。配置(12)は、圧縮処理を行うアプリケーションを、センサ/エッジ513上のプラットフォーム531に配置し、本処理を行うアプリケーションを、センタークラウド523上のプラットフォーム534に配置して実行する配置例を示している。配置(13)は、圧縮処理を行うアプリケーションを、エッジクラウド522上のプラットフォーム532に配置し、本処理を行うアプリケーションを、センタークラウド523上のプラットフォーム534に配置して実行する配置例を示している。
【0075】
図5において、センサデータの転送を示す矢印の太さは、圧縮処理の有無による帯域幅の違いを示しており、非圧縮データの方が、圧縮データよりも広い帯域が必要となる。また、圧縮処理を行う場合には、非圧縮の場合と比べて、ネットワークへ転送する前の遅延が生じる。
【0076】
配置(11)は、配置(12)および配置(13)と比較して、ネットワーク転送遅延による処理遅延およびネットワークトラフィックについては、より小さくなるが、アプリケーション処理速度はより遅く、実行コストはより高く、ストレージコストはより高くなる。
【0077】
配置(12)は、配置(11)と比較して、ネットワーク転送遅延による処理遅延はより大きく、ネットワークトラフィックはより増加するが、アプリケーション処理速度はより速く、実行コストはより低く、ストレージコストはより低くなる。また、配置(12)は、配置(13)と比較して、ネットワーク転送遅延による処理遅延はより小さく、ネットワークトラフィックはより低くなるが、アプリケーション処理速度はより遅く、実行コストはより高く、ストレージコストはより高くなる。
【0078】
配置(13)は、配置(11)および配置(12)と比較して、ネットワーク転送遅延による処理遅延はより大きく、ネットワークトラフィックはより増加するが、アプリケーション処理速度はより速く、実行コストはより低く、ストレージコストはより低くなる。
【0079】
以上より、本処理を実行するアプリケーションと、本処理の前の前処理として圧縮処理を実行するアプリケーションの2つのアプリケーションを配置する場合、ネットワーク転送遅延による処理遅延、および/または、ネットワークトラフィックをより小さくしたいという要件の下では、オーケストレータ536は、配置(11)を最優先にし、配置(11)、配置(12)、配置(13)の優先順でアプリケーションを配置する。また、アプリケーション処理速度をより速く、実行コストをより低く、ストレージコストをより低くしたいという要件の下では、オーケストレータ536は、配置(13)を最優先にし、配置(13)、配置(12)、配置(11)の優先順でアプリケーションを配置する。
【0080】
<個別化処理がある場合のアプリケーションの配置方針>
次に、本処理の前の前処理として高度なAI(artificial intelligence)処理等により本処理の内容に合わせて個別化された処理(以下、個別化処理と称する。)を実行するアプリケーションと、本処理を実行するアプリケーションの2つのアプリケーションを配置する場合の配置方針について説明する。
【0081】
図6は、2つのアプリケーションを、センサ/エッジ513上、エッジクラウド522上、または、センタークラウド523上の各プラットフォームに配置した例を示している。
【0082】
図6において、“Application”は、本処理を実行するアプリケーションの配置場所を示している。“Application(Post Processor)”は、個別化処理を実行するアプリケーションの配置場所を示している。“Capture & Send Data”は、センサ511がセンサデータの生成を検出してアプリケーションへ送信する処理を示している。“Application(Post Processor)”が配置されたプラットフォームの“Process & Send Data”は、個別化処理を実行するアプリケーションが、個別化処理を実行して、本処理を実行するアプリケーションへ送信する処理を示している。“Process Data”は、個別化処理後のセンサデータを取得して本処理を実行する処理を示している。
【0083】
本処理の内容に合わせた個別化処理は、センサデータの特徴量を抽出する特徴量抽出処理や、センサデータの特徴を認識する特徴認識処理、例えば、画像内のオブジェクトを認識して、オブジェクトの場所または形状を出力する処理などとすることができる。個別化処理は、
図5で説明した前処理である圧縮処理よりもはるかに大きな圧縮効果を期待できるが、ネットワーク転送前の遅延が大きくなる。
【0084】
図6に示される配置(21)は、個別化処理を行うアプリケーションを、センサ/エッジ513上のプラットフォーム531に配置し、本処理を行うアプリケーションを、エッジクラウド522上のプラットフォーム532に配置して実行する配置例を示している。配置(22)は、個別化処理を行うアプリケーションを、センサ/エッジ513上のプラットフォーム531に配置し、本処理を行うアプリケーションを、センタークラウド523上のプラットフォーム534に配置して実行する配置例を示している。配置(23)は、個別化処理を行うアプリケーションを、エッジクラウド522上のプラットフォーム532に配置し、本処理を行うアプリケーションを、センタークラウド523上のプラットフォーム534に配置して実行する配置例を示している。
【0085】
図6において、センサデータの転送を示す矢印の太さは、個別化処理の有無による帯域幅の違いを示しており、個別化処理データの方が、圧縮データおよび非圧縮データよりも狭い帯域で伝送可能となる。
【0086】
配置(21)は、配置(22)および配置(23)と比較して、ネットワーク転送遅延による処理遅延およびネットワークトラフィックについては、より小さくなるが、アプリケーション処理速度はより遅く、実行コストはより高く、ストレージコストはより高くなる。
【0087】
配置(22)は、配置(21)と比較して、ネットワーク転送遅延による処理遅延はより大きく、ネットワークトラフィックはより増加するが、アプリケーション処理速度はより速く、実行コストはより低く、ストレージコストはより低くなる。また、配置(22)は、配置(23)と比較して、ネットワーク転送遅延による処理遅延はより小さく、ネットワークトラフィックはより低くなるが、アプリケーション処理速度はより遅く、実行コストはより高く、ストレージコストはより高くなる。
【0088】
配置(23)は、配置(21)および配置(22)と比較して、ネットワーク転送遅延による処理遅延はより大きく、ネットワークトラフィックはより増加するが、アプリケーション処理速度はより速く、実行コストはより低く、ストレージコストはより低くなる。
【0089】
以上より、本処理を実行するアプリケーションと、本処理の前の前処理として個別化処理を実行するアプリケーションの2つのアプリケーションを配置する場合、ネットワーク転送遅延による処理遅延、および/または、ネットワークトラフィックをより小さくしたいという要件の下では、オーケストレータ536は、配置(21)を最優先にし、配置(21)、配置(22)、配置(23)の優先順でアプリケーションを配置する。また、アプリケーション処理速度をより速く、実行コストをより低く、ストレージコストをより低くしたいという要件の下では、オーケストレータ536は、配置(23)を最優先にし、配置(23)、配置(22)、配置(21)の優先順でアプリケーションを配置する。
【0090】
図7は、前処理として圧縮処理を行う
図5のアプリケーション配置例と、前処理として個別化処理を行う
図6のアプリケーション配置例を、
図6を上、
図5を下に配置して並べた図である。
【0091】
配置(21)と配置(11)どうし、配置(22)と配置(12)どうし、または、配置(23)と配置(13)どうしの、前処理を実行するアプリケーションと本処理を実行するアプリケーションの配置が同じものどうしを比較する。
【0092】
配置(21)は、配置(11)と比べて、ネットワークトラフィックをより小さくすることができる。同様に、配置(22)は、配置(12)と比べて、ネットワークトラフィックをより小さくすることができ、配置(23)は、配置(13)と比べて、ネットワークトラフィックをより小さくすることができる。
【0093】
以上より、前処理として個別化処理を行うアプリケーションを導入すると、前処理として圧縮処理を行うアプリケーションを導入する場合と比べて、よりネットワークトラフィックの低減効果を期待できると言える。なお、例えば配置(23)と配置(11)との比較のような、アプリケーションの配置が異なるものどうしについては単純に比較することができない。
【0094】
<個別化処理を多段配置した場合のアプリケーションの配置方針>
図8および
図9は、本処理の前の前処理として個別化処理を実行するアプリケーションを配置する
図6の配置例のバリエーション例を示している。
【0095】
図8に示される配置(31)のように、個別化処理を行うアプリケーションを、本処理を行うアプリケーションの前段に複数配置するアプリケーション配置を採用することができる。具体的には、配置(31)では、第1の個別化処理を行うアプリケーションが、センサ/エッジ513上のプラットフォーム531に配置され、第2の個別化処理を行うアプリケーションが、エッジクラウド522上のプラットフォーム532に配置され、本処理を行うアプリケーションが、センタークラウド523上のプラットフォーム534に配置されている。
【0096】
個別化処理を行うアプリケーションの多段配置は、より抽象度の高い個別化処理(AI処理)を段階的に行うことができ、アプリケーションの個別の要件に応じてより最適化したデータを、最終的に本処理を行うアプリケーションに届けることができる。ただし、段階的な個別化処理の実行により、処理遅延は大きくなる。一点鎖線の矢印は、細実線の矢印よりもネットワークトラフィックが小さいことを示している。
【0097】
個別化処理を行うアプリケーションを多段に配置する例としては、次のようなケースがある。
【0098】
・複雑な軌跡を持つオブジェクトを特定するケース
センサ/エッジ513上のプラットフォーム531のアプリケーションが、オブジェクト(ROI)抽出を行い、エッジクラウド522上のプラットフォーム532のアプリケーションが、複数オブジェクトの軌跡トラッキングを行い、センタークラウド523上のプラットフォーム534のアプリケーションが、オブジェクトの内容理解と対象オブジェクトの特定を行う。
【0099】
・観測対象のオブジェクトの種類を特定してその軌跡推定を行うケース
センサ/エッジ513上のプラットフォーム531のアプリケーションが、オブジェクト(ROI)抽出を行い、エッジクラウド522上のプラットフォーム532のアプリケーションが、オブジェクト内容理解と対象オブジェクトの特定および特定オブジェクトの軌跡トラッキングを行い、センタークラウド523上のプラットフォーム534のアプリケーションが、対象オブジェクトの軌跡推定を行う。
【0100】
このように、アプリケーションの個別の要件に合わせて、個別化の種類、抽象度のレベルを決定し、かつ、その処理の複雑度に応じた計算コスト等を考慮に入れて、アプリケーションを、複数のプラットフォームに最適に配置することができる。
【0101】
図9は、オブジェクト検知、オブジェクト内容理解/分類、オブジェクト軌跡トラッキング、および、軌跡推定の順番で処理が行われるケースで、アプリケーションを多段配置と一段配置で配置した例を示している。
【0102】
図9において、“Object Detection”は、オブジェクト検知の処理を行うことを示しており、“Object Classification”は、オブジェクト内容理解および分類の処理を行うことを示している。“Object Tracking”は、オブジェクト軌跡トラッキングの処理を行うことを示しており、“Motion Estimation”は、軌跡推定の処理を行うことを示している。
【0103】
配置(311)は、オブジェクト検知、オブジェクト内容理解/分類、および、オブジェクト軌跡トラッキングを、センサ/エッジ513上のプラットフォーム531に配置した個別化処理を行うアプリケーションが実行し、軌跡推定を、センタークラウド523上のプラットフォーム534に配置した本処理を行うアプリケーションが実行する配置例を示している。
【0104】
配置(312)は、オブジェクト検知を、センサ/エッジ513上のプラットフォーム531に配置した個別化処理を行うアプリケーションが実行し、オブジェクト内容理解/分類、および、オブジェクト軌跡トラッキングを、エッジクラウド522上のプラットフォーム532に配置した個別化処理を行うアプリケーションが実行し、軌跡推定を、センタークラウド523上のプラットフォーム534に配置した本処理を行うアプリケーションが実行する配置例を示している。
【0105】
配置(313)は、オブジェクト検知、オブジェクト内容理解/分類、オブジェクト軌跡トラッキング、および、軌跡推定の全てを、センタークラウド523上のプラットフォーム534に配置した本処理を行うアプリケーションが実行する配置例を示している。配置(313)は、
図4の配置(3)と同じである。
【0106】
ネットワークのトラフィックの総量は、矢印の太さで示されるように、配置(311)、配置(312)、配置(313)の順に大きくなる。一点鎖線の矢印は、細実線の矢印よりもネットワークトラフィックが小さいことを示している。
【0107】
ネットワークのトラフィックの総量をできるだけ小さくすることが、最適配置方針としてマニフェストに記述されている場合、オーケストレータ536は、配置(311)を最優先にし、配置(311)、配置(312)、配置(313)の優先順でアプリケーションを配置する。
【0108】
アプリケーション処理速度をより速く、実行コストをより低く、ストレージコストをより低くすることが、最適配置方針としてマニフェストに記述されている場合、オーケストレータ536は、配置(313)を最優先にし、配置(313)、配置(312)、配置(311)の優先順でアプリケーションを配置する。
【0109】
なお、オブジェクト検知、オブジェクト内容理解/分類、オブジェクト軌跡トラッキング、および、軌跡推定の4つの処理を、複数の個別化処理を行うアプリケーションで分散して実行させる配置例は、上述した配置(312)の配置例以外も取り得ることは言うまでもない。
【0110】
<再利用性を重視する場合のアプリケーションの配置方針>
次に、
図10を参照して、再利用性を重視する場合のアプリケーションの配置方針について説明する。
【0111】
センサデータの再利用性を重視する場合があり得る。すなわち、センサ511が生成したセンサデータを、複数のアプリケーションで共有して利用したり、センサデータ生成時から一定時間経過後の別タイミングで、オフラインでセンサデータを利用できることを優先したい場合がある。
【0112】
センサデータの再利用性を考慮しない場合、生成されたセンサデータは、そのデータを利用するアプリケーションまで届ければよいので、
図10に示される配置(41)のように、P2P(Peer to Peer)で、センサ/エッジ513上、エッジクラウド522上、または、センタークラウド523上のいずれかに配置されたアプリケーションへ転送される。
図10の配置(41)は、
図4に示した配置(1)ないし(3)と同一である。
【0113】
これに対して、センサデータの再利用性を重視する場合、
図10に示される配置(42)のように、本処理の前の前処理として、センサデータを一時的または永続的にキャッシュ(記憶)するアプリケーションが配置される。配置(42)は、センサデータを一時的または永続的にキャッシュするアプリケーションを、エッジクラウド522上のプラットフォーム532に配置し、本処理を行うアプリケーションを、センタークラウド523上のプラットフォーム534に配置して実行する配置例を示している。
【0114】
図10において、“Application”は、本処理を実行するアプリケーションの配置場所を示している。“Application(Broker)”は、センサデータを一時的または永続的にキャッシュするアプリケーションの配置場所を示している。配置(42)では、センサ/エッジ513から送信されたセンサデータが、エッジクラウド522上のプラットフォーム532に配置されたアプリケーションへ転送される。エッジクラウド522上のアプリケーションは、取得したセンサデータを一時的または永続的にキャッシュするとともに、センタークラウド523上のプラットフォーム534に配置された3つのアプリケーションに送信する。センタークラウド523上の3つのアプリケーションが実行する本処理は、同一の処理でもよいし、異なる処理でもよい。同一の処理を実行する場合には、例えば、時間がかかるが低コストで実行できるアプリケーションと、高コストで高速に実行できるアプリケーションなど、処理の性能が異なる場合がある。
【0115】
以上より、センサデータの再利用性を重視する(再利用性を上げる)という要件の下では、オーケストレータ536は、配置(42)を最優先にし、配置(42)、配置(41)の優先順でアプリケーションを配置する。
【0116】
さらに、センサデータの再利用性を重視することを前提として、
図5および
図6に示したような圧縮処理や個別化処理をさらに行うことにより、ネットワークトラフィックを最小化または低減することもあり得る。
【0117】
図11は、センサデータの再利用性と、圧縮処理または個別化処理を併用した場合のアプリケーションの配置例を示している。
【0118】
具体的には、
図11に示される配置(51)は、センサデータを一時的または永続的にキャッシュするアプリケーションと、圧縮処理を行うアプリケーションを、エッジクラウド522上のプラットフォーム532に配置し、本処理を行うアプリケーションを、センタークラウド523上のプラットフォーム534に配置して実行する配置例を示している。エッジクラウド522上のプラットフォーム532では、センサデータをキャッシュするアプリケーションの後段に、圧縮処理を行うアプリケーションが配置される。
【0119】
配置(52)は、センサデータを一時的または永続的にキャッシュするアプリケーションと、個別化処理を行うアプリケーションを、エッジクラウド522上のプラットフォーム532に配置し、本処理を行うアプリケーションを、センタークラウド523上のプラットフォーム534に配置して実行する配置例を示している。エッジクラウド522上のプラットフォーム532では、センサデータをキャッシュするアプリケーションの後段に、個別化処理を行うアプリケーションが配置される。
【0120】
図11の配置(51)および配置(52)では、圧縮処理を行うアプリケーションまたは個別化処理を行うアプリケーションが、センタークラウド523上のプラットフォーム534に配置された3つのアプリケーションそれぞれに対して設けられている。これらの圧縮処理または個別化処理を行う3つのアプリケーションは、アプリケーションの要件に応じて、異なる圧縮処理または個別化処理を行う。仮に、同一の圧縮処理または個別化処理を実行すればよい場合には、これらの前処理を行うアプリケーションは1つとすることができる。
【0121】
図7を参照して説明したように、ネットワークのトラフィックの総量は、圧縮処理よりも個別化処理を行う方が小さくすることができる。したがって、矢印の太さで示されるように、配置(52)は、配置(51)と比べて、ネットワークトラフィックをより小さくすることができる。
【0122】
以上より、センサデータの再利用性を重視する(再利用性を上げる)という要件の下で、さらに、ネットワークトラフィックをより低減させる場合には、オーケストレータ536は、配置(52)を最優先にし、配置(52)、配置(51)の優先順でアプリケーションを配置する。
【0123】
<評価軸とアプリケーションの配置方針のまとめ>
図12は、
図4ないし
図11で説明した、アプリケーションを配置する際の評価軸と、その場合のアプリケーション配置の優先順位(配置方針)をまとめたテーブルである。評価軸としては、ネットワーク転送遅延による処理遅延、ネットワークのトラフィック、アプリケーションの処理速度、アプリケーションの実行コスト、ストレージコスト、センサデータの再利用性、要求されたサービスに対応する本処理を実行する前に前処理を実行するか、が含まれる。なお、これらの評価軸と優先順位との組は、全てが含まれなくてもよく、少なくとも1つが含まれていればよい。アプリケーション配置の優先順位は、アプリケーション配置場所としての、センサ/エッジ513、エッジクラウド522、および、センタークラウド523の優先順位である。
【0124】
図12で示される情報が、マニフェストとして、センサネットワークサービスオペレータ541からオーケストレータ536へ供給される。オーケストレータ536は、供給されたマニフェストに基づいて、さまざまなトレードオフを考慮し、アプリケーションの最適配置を行う。
【0125】
すなわち、オーケストレータ536は、
図3を参照して説明したアプリケーション配置制御の“Evaluate & Determine Target App Platform”の処理において、
図12の配置方針に基づいて、アプリケーションを実行する最適なアプリケーションプラットフォームの場所を決定する。オーケストレータ536は、例えば、センサデータのデータ処理を所定のプラットフォームに局所化したり、センサ/エッジ513、エッジクラウド522、またはセンタークラウド523の2つ以上に多段配置したり、圧縮処理や個別化処理を行ってから転送することにより、ネットワーク内のトラフィックを削減するとともに、データ処理するアプリケーションの処理負荷を低減させる。
【0126】
<4.クラウドコンピューティングの構成例>
上述したデータ処理システムおよびアプリケーション配置制御方法を含む本明細書に記載の方法およびシステムは、コンピュータソフトウェア、ファームウェア、ハードウェア、または、それらの組み合わせもしくはサブセットを含むコンピュータプログラミングまたはエンジニアリング技術を用いて実現することができる。
【0127】
図13は、本明細書に記載の各種の実施の形態を実現することができるコンピュータのブロック図を示している。
【0128】
本開示は、システム、方法、および/または、コンピュータプログラムとして実現することができる。コンピュータプログラムは、コンピュータ読み取り可能な記憶媒体を含むことができ、コンピュータ読み取り可能な記憶媒体には、本実施形態の態様を1または複数のプロセッサに実行させるコンピュータ読み取り可能なプログラム命令が記録されている。
【0129】
コンピュータ読み取り可能な記憶媒体は、命令実行デバイス(プロセッサ)で使用するための命令を格納することができる有形のデバイスとすることができる。コンピュータ読み取り可能な記憶媒体は、例えば、電子記憶装置、磁気記憶装置、光学記憶装置、電磁記憶装置、半導体記憶装置、または、それらの装置の任意の適切な組み合わせとすることができるが、それらに限定されない。コンピュータ読み取り可能な記憶媒体のより具体的な例には、以下のそれぞれ(および適切な組み合わせ)が含まれる:フレキシブルディスク、ハードディスク、SSD(solid state drive)、RAM(random access memory)、ROM(read only memory)、EPROM(erasable and programmable read only memory)or Flash(フラッシュメモリ)、SRAM(static random access memory)、コンパクトディスク(CDまたはCD-ROM)、DVD(digital versatile disc)、カード型またはスティック型のメモリ。本開示で使用されるようなコンピュータ読み取り可能な記憶媒体は、電波または他の自由に伝播する電磁波、導波管または他の伝送媒体(例えば、光ファイバーケーブルを通る光パルス)を介して伝播する電磁波、または、ワイヤを介して送信される電気信号、などの一時的な信号自体であると解釈されるものではない。
【0130】
本開示のコンピュータ読み取り可能なプログラム命令は、コンピュータ読み取り可能な記憶媒体から、適切なコンピューティングデバイスまたはプロセッシングデバイスにダウンロードされたり、例えばインターネットなどのグローバルネットワーク、ローカルエリアネットワーク、ワイドエリアネットワーク、および/または、ワイヤレスネットワークを介して、外部のコンピュータまたは外部の記憶装置にダウンロードされ得る。ネットワークには、銅伝送線、光通信ファイバ、ワイヤレス伝送、ルータ、ファイアウォール、スイッチ、ゲートウェイコンピュータ、および/または、エッジサーバなどがある。コンピューティングデバイスまたはプロセッシングデバイス内のネットワークアダプタカードまたはネットワークインタフェースは、ネットワークからのコンピュータ読み取り可能なプログラム命令を受信して、そのコンピュータ読み取り可能なプログラム命令を転送して、コンピューティングデバイスまたはプロセッシングデバイス内のコンピュータ読み取り可能な記憶媒体に記憶することができる。
【0131】
本開示の処理を実行するコンピュータ読み取り可能なプログラム命令には、機械語命令、および/または、マイクロコードが含まれ、それらは、アッセンブリ言語、Basic, Fortran, Java, Python, R, C, C++, C#、もしくは類似のプログラム言語を含む1または複数のグログラム言語の任意の組み合わせで記述されたソースコードからコンパイルまたは解釈される。コンピュータ読み取り可能なプログラム命令は、ユーザのパーソナルコンピュータ、ノートブックコンピュータ、タブレット、または、スマートフォン上で完全に実行することができ、遠隔のコンピュータもしくはコンピュータサーバ、または、これらのコンピューティングデバイスの任意の組み合わせ上でも完全に実行することができる。遠隔のコンピュータまたはコンピュータサーバは、ユーザのデバイス、または、ローカルエリアネットワーク、ワイドエリアネットワーク、グローバルネットワーク(例えばインターネット)などのコンピュータネットワークを介したデバイスと接続されてもよい。本開示の態様を実現するために、例えば、プログラマブルロジック回路、FPGA(field-programmable gate arrays)、PLA(programmable logic arrays)を含む電気回路が、電子回路を構成またはカスタマイズするコンピュータ読み取り可能なプログラム命令からの情報を使用して、コンピュータ読み取り可能なプログラム命令を実行することができる実施の形態もある。
【0132】
本開示の態様は、本開示の実施形態による方法、装置(システム)、およびコンピュータプログラムのフロー図およびブロック図を参照して本明細書で説明される。フロー図およびブロック図の各ブロック、ならびに、フロー図およびブロック図におけるブロックの組み合わせがコンピュータ読み取り可能なプログラム命令によって実現できることは当業者には理解されるであろう。
【0133】
本開示に記載されたシステムおよび方法を実行することができるコンピュータ読み取り可能なプログラム命令は、装置を製造するための汎用コンピュータ、専用コンピュータ、または他のプログラム可能装置の1または複数のプロセッサ(および/またはプロセッサ内の1または複数のコア)で利用される。コンピュータまたは他のプログラム可能装置のプロセッサを介してプログラム命令が実行されることにより、本開示のフロー図およびブロック図で記載された機能を実現するためのシステムが作成される。これらのコンピュータ読み取り可能なプログラム命令はまた、コンピュータ、プログラマブル装置、および/または他のデバイスに特定の方法で機能するように指示することができるコンピュータ読み取り可能な記憶媒体に格納され得る。したがって、命令が格納されたコンピュータ読み取り可能な記憶媒体は、本開示のフロー図およびブロック図で特定された機能の態様を実現する命令が含まれる製造物品である。
【0134】
コンピュータ読み取り可能なプログラム命令はまた、コンピュータ、他のプログラマブル装置、または他のデバイスにロードされて、コンピュータ、他のプログラマブル装置または他のデバイス上で一連の操作ステップを実行し、コンピュータの処理結果を生成する。プログラム命令が、コンピュータ、他のプログラマブル装置、または他のデバイス上で実行されることにより、本開示のフロー図およびブロック図で特定された機能が実現される。
【0135】
図13は、1または複数のコンピュータやサーバなどがネットワークを介して接続されたネットワークシステム800の機能ブロック図である。なお、
図13の実施の形態で示されているハードウェアおよびソフトウェア環境は、本開示によるソフトウェアおよび/または方法を実現するためのプラットフォームを提供する一例として示されている。
【0136】
図13に示すように、ネットワークシステム800は、コンピュータ805、ネットワーク810、リモートコンピュータ815、ウェブサーバ820、クラウドストレージサーバ825、およびコンピュータサーバ830を含むことができるが、これに限られない。ある実施の形態では、
図13に示される1または複数の機能ブロックのうちの複数のインスタンスが使用される。
【0137】
図13には、コンピュータ805のより詳細な構成が図示されている。なお、コンピュータ805内に示されている機能ブロックは、例示的な機能を確立するために図示されており、全てを図示するものではない。また、リモートコンピュータ815、ウェブサーバ820、クラウドストレージサーバ825、およびコンピュータサーバ830の詳細な構成は図示されていないが、これらは、コンピュータ805について示されている機能ブロックと同様の構成を含むことができる。
【0138】
コンピュータ805としては、パーソナルコンピュータ(PC)、デスクトップコンピュータ、ラップトップコンピュータ、タブレットコンピュータ、ネットブックコンピュータ、携帯情報端末(PDA)、スマートフォン、または、ネットワーク810上の他のデバイスと通信可能な他のプログラム可能な任意の電子デバイスを用いることができる。
【0139】
そして、コンピュータ805は、プロセッサ835、バス837、メモリ840、不揮発性ストレージ845、ネットワークインタフェース850、周辺機器インタフェース855、および、ディスプレイインターフェース865を備えて構成される。これらの機能の各々は、ある実施の形態では、個々の電子サブシステム(集積回路チップまたはチップと関連デバイスの組み合わせ)として実装され、他の実施形態では、いくつかの機能が組み合わせられて単一チップ(システムオンチップまたはSoC(System on Chip))として実装されてもよい。
【0140】
プロセッサ835は、例えば、Intel Corporation, Advanced Micro Devices, Inc.(AMD), Arm Holdings(Arm), Apple Computerなどにより設計および/または製造されるような、1または複数のシングルまたはマルチチップのマイクロプロセッサとすることができる。マイクロプロセッサの例としては、Intel Corporation製のCeleron, Pentium, Core i3, Core i5やCore i7、AMD製のOpteron, Phenom, Athlon, TurionやRyzen、Arm製のCortex-A, Cortex-RやCortex-Mが挙げられる。
【0141】
バス837は、例えば、ISA,PCI,PCI Express(PCI-e),AGPなどの、独自仕様または業界標準の高速パラレルまたはシリアル周辺相互接続バスを採用することができる。
【0142】
メモリ840および不揮発性ストレージ845は、コンピュータが読み取り可能なストレージ媒体である。メモリ840は、DRAM(Dynamic Random Access Memory)やSRAM(Static RAM)などの任意の適切な揮発性ストレージデバイスを採用することができる。不揮発性ストレージ845は、フレキシブルディスク、ハードディスク、SSD(Solid State Drive)、ROM(Read Only Memory)、EPROM(Erasable and Programmable Read Only Memory)、フラッシュメモリ、コンパクトディスク(CDまたはCD-ROM)、DVD(Digital Versatile Disc)、カード型メモリ、またはスティック型メモリのうち、1つ以上を採用することができる。
【0143】
また、プログラム848は、機械読み取り可能命令および/またはデータの集合である。この集合は、不揮発性ストレージ845に格納され、本開示で詳細に説明したり、図面に記載した特定のソフトウェア機能を作成、管理、および制御するために使用される。なお、メモリ840が不揮発性ストレージ845よりも非常に高速である構成では、プログラム848を、プロセッサ835により実行される前に、不揮発性ストレージ845からメモリ840に転送することができる。
【0144】
コンピュータ805は、ネットワークインタフェース850を介して、ネットワーク810を介した他のコンピュータとの通信および相互作用をすることができる。ネットワーク810は、例えば、LAN(Local Area Network)、インターネットなどのWAN(Wide Area Network)、または、LANおよびWANの組み合わせで、有線、無線、または光ファイバー接続が含まれた構成を採用することができる。一般に、ネットワーク810は、2つ以上のコンピュータと関連デバイス間の通信をサポートする接続およびプロトコルの任意の組み合わせからなる。
【0145】
周辺機器インタフェース855は、コンピュータ805にローカルに接続され得る他のデバイスとのデータの入出力を行うことができる。例えば、周辺機器インタフェース855は、外部デバイス860への接続を提供する。外部デバイス860には、キーボード、マウス、キーパッド、タッチスクリーン、および/または、その他の適切な入力デバイスが用いられる。外部デバイス860は、例えば、サムドライブ、ポータブル光学ディスクまたは磁気ディスク、およびメモリカードなどのポータブルコンピュータ可読記憶媒体も含み得る。本開示の実施の形態を実現するソフトウェアおよびデータ、例えば、プログラム848は、そのようなポータブルコンピュータ可読記憶媒体に記憶されてもよい。そのような実施形態では、ソフトウェアは、不揮発性ストレージ845上にロードされてもよいし、代わりに、周辺機器インタフェース855を介してメモリ840上に直接ロードされてもよい。周辺機器インタフェース855は、外部デバイス860との接続に、RS-232またはUSB(Universal Serial Bus)などの業界標準を使用してもよい。
【0146】
ディスプレイインターフェース865は、コンピュータ805をディスプレイ870に接続することができ、ディスプレイ870を使用して、コマンドラインまたはグラフィカルユーザインターフェースを、コンピュータ805のユーザに提示する形態もある。ディスプレイインターフェース865は、VGA(Video Graphics Array)や、DVI(Digital Visual Interface)、DisplayPort、HDMI(High-Definition Multimedia Interface)(登録商標)などの業界標準または専用の接続の1つまたは複数を使用して、ディスプレイ870と接続することができる。
【0147】
上述のように、ネットワークインタフェース850は、他のコンピュータやストレージシステム、または、コンピュータ805の外部のデバイスとの通信を提供する。本明細書で説明するソフトウェアプログラムおよびデータは、例えば、リモートコンピュータ815、ウェブサーバ820、クラウドストレージサーバ825、およびコンピュータサーバ830から、不揮発性ストレージ845へ、ネットワークインタフェース850およびネットワーク810を介してダウンロードすることができる。さらに、本開示のシステムおよび方法は、ネットワークインタフェース850およびネットワーク810を介してコンピュータ805と接続された1または複数のコンピュータにより実行することができる。例えば、ある実施の形態では、本開示のシステムおよび方法が、リモートコンピュータ815、コンピュータサーバ830、または、ネットワーク810上の相互接続された複数のコンピュータの組み合わせによって実行される。
【0148】
本開示のシステムおよび方法の実施の形態で採用されるデータ、データセット、および/または、データベースは、リモートコンピュータ815、ウェブサーバ820、クラウドストレージサーバ825、および、コンピュータサーバ830からダウンロードして、格納することができる。
【0149】
<5.DVSデータを用いた超解像ストリーム>
上述したデータ処理システム500は、DVS(Dynamic Vision Sensor)を用いた画像処理システムに適用し得る。
【0150】
DVSは、画素の輝度変化をイベントとして検出し、イベントが発生したタイミングで、イベントの発生を表すイベントデータを出力する。
【0151】
一般的なイメージセンサが、垂直同期信号に同期して撮像を行い、一定周期で1フレーム(画面)の画像データを出力するのに対して、DVSは、イベントが発生したタイミングで、非同期にイベントデータを出力する。画素の値は、例えば、+変化、-変化、または、変化なし、のような3値を取る。DVSは、変化した画素のみについて画素の位置座標と時間情報を組み合わせて出力するため、高効率で高速、低遅延なデータ出力が可能である。
【0152】
以下においては、区別を容易にするため、通常の同期型のイメージセンサを、イメージセンサと称するとともに、イメージセンサが出力するフレーム単位のデータをイメージデータと称する。また、非同期にイベントを検出するイベントセンサをDVSと称するとともに、DVSが出力するデータをイベントデータと称する。
【0153】
DVSのイベントデータは、例えば、通常のフレームベースのイメージセンサの画像と組み合わせて超解像画像を生成する処理に利用することができる。
【0154】
同期型のイメージセンサと非同期型のDVSとを組み合わせた処理としては、同期型のイメージセンサで得られた動画像に、非同期型のDVSによるイベント出力を適用することにより、時間解像度を高めた超解像動画像を生成する技術が提案されている(例えば、非特許文献「Liyuan Pan, Richard Hartley, Cedric Scheerlinck, Miaomiao Liu, Xin Yu, Yuchao Dai, High Frame Rate Video Reconstruction based on an Event Camera, Extension of our CVPR2019 (Oral) paper, インターネット<https://arxiv.org/pdf/1903.06531.pdf>」)。
【0155】
図14は、DVSのイベントデータを利用して、時間分解能を高めた超解像画像を生成する例を示している。
【0156】
イメージセンサは、例えば30fpsや60fpsのような、DVSと比較して長周期となる一定のフレームレートで画像を生成、出力する。イメージセンサが出力する、一定のフレームレートで撮像された画像をフレーム画像と称する。
図14の例では、時刻T0においてフレーム画像P0が出力され、時刻T1においてフレーム画像P1が出力されている。
【0157】
DVSは、イベントが発生したランダムなタイミングで、イベントを検出し、画像を生成、出力する。DVSがランダムに出力する画像を、イベント画像と称する。
図14の例では、時刻T0においてイベント画像E0が出力され、時刻T1においてイベント画像E3が出力される他、時刻T0と時刻T1との間の時刻T0aと時刻T0bにおいて、イベント画像E1とE2が出力されている。
【0158】
超解像画像を生成する画像処理装置は、例えば、時刻T0におけるフレーム画像P0と、時刻T0と時刻T0aとの輝度変化を表すイベント画像E1に基づいて、時刻T0aにおける超解像画像F1を生成、出力する。また、画像処理装置は、例えば、時刻T0におけるフレーム画像P0および時刻T0aにおける超解像画像F1と、時刻T0 aと時刻T0bとの輝度変化を表すイベント画像E2に基づいて、時刻T0bにおける超解像画像F2を生成、出力する。
【0159】
画像処理装置は、以上のように、イメージセンサが出力する動画像の画像ストリームであるイメージストリームと、DVSが出力する動画像の画像ストリームであるイベントストリームとを用いて超解像処理を行うことにより、時間方向の分解能を高めた超解像動画像の画像ストリームである超解像イメージストリームを生成することができる。
【0160】
なお、
図14の例は、超解像処理により、超解像画像として、時間方向の分解能を向上させた画像を生成する例であるが、例えば、ダイナミックレンジを拡大した高ダイナミックレンジ画像や、空間解像度を向上させた画像を、超解像画像として生成するものでもよい。
【0161】
超解像画像を用いることにより、現状のイメージセンサでは捉えることができない画像の特徴を検出できる可能性が拡大する。
【0162】
しかしながら、時間解像度を高めた超解像動画像を、ネットワークを介して多数の画像処理装置へ送信する場合、ネットワークのトラフィックを圧迫することが懸念される。
【0163】
そこで、以下では、
図1のデータ処理システム500を、上述した超解像処理を行う画像解析ネットワークシステムに適用した実施の形態について説明する。
図1のデータ処理システム500におけるセンサ511が、
図15の画像解析ネットワークシステム1におけるセンサデバイス11または解析装置12に対応し、
図1のデータ処理システム500において本処理を行うアプリケーションが、
図30において、超解像処理を実行して超解像イメージストリームを生成するアプリケーション(超解像処理ノード14C)に対応する。例えば、評価軸としてネットワークトラフィックをできるだけ小さくし、解析装置12により近いノードの優先順位を高くすることがマニフェストに記載される場合を想定する。あるいはまた、マニフェストを参照せずに、評価軸と優先順位が予め決定されているとしてもよい。超解像処理を実行するアプリケーションを最適配置することにより、超解像の画像ストリームを効率的にネットワーク伝送することができる。
【0164】
<6.超解像画像を用いた画像解析ネットワークシステム>
図15は、本技術を適用した画像処理システムの一実施の形態である画像解析ネットワークシステムの構成例を示している。
【0165】
図15の画像解析ネットワークシステム1は、上述した超解像処理によって生成される超解像画像を用いた画像解析処理を行うシステムである。画像解析ネットワークシステム1では、センサデバイス11と複数の解析装置12(12A乃至12C)とが、ネットワーク13を介して接続される。
【0166】
センサデバイス11は、イメージセンサとDVSを有しており、超解像処理を行う元データとなるイメージデータとイベントデータを生成する。
【0167】
解析装置12は、例えば、ディープラーニングなどの機械学習を用いたAIエンジンを備え、イメージデータとイベントデータから生成された超解像画像を用いた画像解析処理を行う画像処理装置である。
【0168】
ネットワーク13は、例えば、インターネット、公衆電話回線網、所謂4G回線や5G回線等の無線移動体用の広域通信網、WAN(Wide Area Network)、LAN(Local Area Network)、Bluetooth(登録商標)規格に準拠した通信を行う無線通信網、NFC(Near Field Communication)等の近距離無線通信の通信路、赤外線通信の通信路、HDMI(登録商標)(High-Definition Multimedia Interface)やUSB(Universal Serial Bus)等の規格に準拠した有線通信の通信網等、任意の通信規格の通信網や通信路である。
【0169】
ネットワーク13には、センサデバイス11と複数の解析装置12の他、複数のノード14(14a乃至ノード14i)が存在する。各ノード14は、例えば、センサデバイス、ルータ、モデム、ハブ、ブリッジ、スイッチングハブ、基地局制御装置、サーバなどのネットワーク接続装置であり、データの出力元から、宛先となる装置へ、データを転送する機能を少なくとも有する。本実施の形態において、データの出力元は、センサデバイス11であり、出力されるデータは、センサデータであるイメージデータもしくはイベントデータ、または、超解像処理により生成された超解像画像である。センサデバイス11から出力されたデータの宛先となる装置は、超解像画像を用いた画像解析処理を行う各解析装置12である。
【0170】
なお、以下において、データの出力元であるセンサデバイス11から、宛先装置である各解析装置12までのデータ伝送経路の所定のノード14を起点としたとき、データの取得先であるセンサデバイス11側の経路を上流、データの出力先である解析装置12側の経路を下流と呼ぶことがある。
【0171】
図15では、紙面の制約上、ノード14の個数が、ノード14aからノード14iまでの9個であり、解析装置12の個数が、解析装置12A乃至12Cの3個の例が示されているが、解析装置12およびノード14の個数は、これに限られず、任意である。
【0172】
<超解像画像の解析アプリケーション例>
図16および
図17を参照して、
図15の画像解析ネットワークシステム1のアプリケーション適用例について説明する。
【0173】
図16は、画像解析ネットワークシステム1を適用した第1のアプリケーションの参考画像例である。
【0174】
第1のアプリケーションとしての画像解析ネットワークシステム1は、速度違反のバイク(移動体)を検知し、それに乗っている人物を特定して追跡、通報するシステムである。
【0175】
センサデバイス11は、例えば、高速道路等に配置され、通過するバイクや自動車等の移動体を捉えた30fpsや60fpsなどの長周期のイメージデータと、高速、低遅延なイベントデータとを出力する。
【0176】
複数の解析装置12は全国各地に散らばって配置されており、各解析装置12は、様々な人物の特徴量をアプリケーションにより収集してデータベース化している。解析装置12は、センサデバイス11が出力したイメージデータとイベントデータとから生成された超解像画像F11内の注目領域ROI-1乃至ROI-4に含まれる人物の特徴を認識して、人物を特定して通報する。
【0177】
人間の身体のパーツの細かな動かし方には個人差がある。DVSは、検索対象人物の顔の特徴量など、従来、人物特定に使われてきた特徴量ばかりでなく、人間の目を超えたAIエンジンにのみ解析可能な、DVSにしか検知することのできない、身体の各部の細かな動きの特徴を検出することができる。
【0178】
したがって、各解析装置12は、フレーム単位のイメージデータのみから判定するより、DVSによるイベントデータを用いて生成された超解像画像を用いて認識処理することにより、精度高く人物を特定することができる。
【0179】
また、上記のような人物特定は即座に行われる必要があり、全国各地で分散稼働する解析装置12に対して解析すべきデータを同時に共有させて解析することにより、リアルタイム性を担保した画像解析処理が可能となる。
【0180】
したがって、画像解析ネットワークシステム1では、全国に散らばった様々な人物の特徴量データベースを持つ人の目を超えた動作特徴解析可能なAIエンジン群により人物認識処理を行い、該当人物のリアルタイム判定が可能となる。
【0181】
図17は、画像解析ネットワークシステム1を適用した第2のアプリケーションの参考画像例である。
【0182】
第2のアプリケーションとしての画像解析ネットワークシステム1は、抗議デモにおいて暴徒化した人物の危険行動を予測し、危険人物を同定し、機動隊への防御指示等をリアルタイムに行うシステムである。
【0183】
センサデバイス11は、例えば、都市部の道路や歩道等に配置され、抗議デモのデモ隊を捉えた30fpsや60fpsなどの長周期のイメージデータと、高速、低遅延なイベントデータとを出力する。
【0184】
各解析装置12は、フレーム単位のイメージデータと、DVSによるイベントデータを用いて生成された超解像画像を用いて認識処理することにより、人物の行動(危険行動)を予測し、危険人物を同定する。例えば、超解像画像F12内の注目領域ROI-11乃至ROI-15に含まれる人物が、解析装置12により危険人物として同定され、機動隊へ通知される。DVSによるイベントデータを用いて生成された超解像画像を用いて、人物を認識する認識処理を行うことにより、フレーム単位のイメージデータでは検知できない人間の身体の細かな動きを認識することができ、危険行動予測および危険人物同定を高精度に行うことができる。
【0185】
今後は、ありとあらゆるセンサデバイス11が世の中に普及していくため、センサデバイス11が検知した様々な種類のデータが物理的に離れた場所に分散して、蓄積されていく可能性がある。また、ある目的でとったデータが、他の目的や、さまざまな用途で使われていくことも予想される。例えば、農業管理用にとったデータが気象予報用途に使われたり、ライフログ的にとったデータが犯罪者捜査などに使われたりすることも考えられる。これらのデータは分散管理されるため、それらのデータをもとに解析する解析装置12も分散配置されて稼働する可能性が高い。
【0186】
センサデバイス11が検知した様々な種類のデータは、高速に解析装置12に転送され、解析装置12がリアルタイム性を担保して解析処理を行うことが望まれる。
【0187】
従って、イメージセンサやDVSからのデータを、このような分散された解析装置12に配送して解析させるような場合に、ネットワーク13内を無駄なデータが流れないようにしなければならない。センサデバイス11から各解析装置12までのネットワーク13の経路上で、できるだけ必要最小限のデータに絞って流さなければならない。
【0188】
すなわち、センサデバイス11で得られたデータを、ネットワーク13内に分散された各解析装置12へ無駄なく(必要最小限に)配送して、各解析装置12に解析させるような仕組みが必要となる。
【0189】
<7.ストリーム配信方法の例>
センサデバイス11から各解析装置12へ、無駄なネットワークトラフィックを抑えて、超解像イメージストリーム(超解像画像の画像データ)を転送する仕組みを検討すると、
図18乃至
図24で示される方法が考えられる。
【0190】
まず、解析装置12が行う解析処理の処理速度を向上させ、リアルタイム性を担保する場合、分散配置された複数の解析装置12それぞれには、イメージデータまたは超解像画像で検出されたすべての解析対象を処理させるのではなく、注目領域ROIごとに処理を分けて、注目領域ROIごとの超解像イメージストリーム(以下、ROI超解像イメージストリームと称する。)を配信して、解析処理を行わせることが好ましい。
【0191】
例えば、
図18に示されるように、センサデバイス11が、注目領域ROI-1のROI超解像イメージストリームを生成し、ネットワーク13を介して、担当する各解析装置12へ配信する。
【0192】
ここで、センサデバイス11は、すべての解析装置12の解析能力に対応するために、高分解能の注目領域ROI-1のROI超解像イメージストリームを生成し、各解析装置12へマルチキャスト配信したとする。
【0193】
しかしながら、注目領域ROI-1の解析を担当する解析装置12の解析能力が、そこまで高くなく、必要以上の分解能(本例では、時間分解能)のROI超解像イメージストリームである場合には、分解能が高いほど、イメージストリームが占有する帯域は大きくなるため、トラフィックを圧迫する要因となる。
【0194】
例えば、配信されるROI超解像イメージストリームの分解能に応じて、ネットワーク13を占有する帯域が、広帯域(高分解能)、中帯域(中分解能)、狭帯域(低分解能)の3種類に分類されるとすると、センサデバイス11が、広帯域のROI超解像イメージストリームをマルチキャスト配信し、解析装置12Aにとって必要十分な超解像ストリームの帯域が中帯域であり、解析装置12Bにとって必要十分な超解像ストリームの帯域が狭帯域である場合には、センサデバイス11は、必要以上の広帯域のROI超解像イメージストリームを配信し、ネットワーク13のトラフィックを圧迫することになる。
【0195】
実際には、
図19に示されるように、イメージデータまたは超解像画像で検出された複数の注目領域ROIそれぞれについて、必要以上の広帯域のROI超解像イメージストリームが配信されることになるので、トラフィックはさらに圧迫される。
【0196】
必要以上の広帯域のROI超解像イメージストリームが配信されてしまうことに対処するためには、分解能について各々の解析装置12の要件を予め上流側に通知しておき、
図20に示されるように、センサデバイス11が、各解析装置12の分解能に応じたROI超解像イメージストリームを生成し、配信することが考えられる。
【0197】
図20は、解析装置12Aに対しては、解析装置12Aにとって必要十分な中帯域の超解像ストリームを生成し、解析装置12Bに対しては、解析装置12Bにとって必要十分な狭帯域の超解像ストリームを生成する様子を示している。
【0198】
また、生成したROI超解像イメージストリームをマルチキャスト配信するのではなく、
図21に示されるように、ポイントツーポイントで、必要十分な帯域の超解像ストリームを配信することが望ましい。
【0199】
図21は、センサデバイス11が、解析装置12Aにとって必要十分な中帯域のROI超解像イメージストリームを生成して、ポイントツーポイントで解析装置12Aに配信し、解析装置12Bおよび12Cに対しては、必要十分な狭帯域のROI超解像イメージストリームを生成して、ポイントツーポイントで解析装置12Bおよび12Cに配信する様子を示している。
【0200】
しかしながら、ポイントツーポイントの配信では、解析装置12の台数が非常に多くなると、ポイントツーポイントストリーミングの負荷が大きくなってしまう。また、解析装置12各々の分解能要件に合わせて上流側でストリーム生成するのは難しいため、何らかの最適化が必要となる。
【0201】
例えば、
図22に示されるように、センサデバイス11が、中帯域と狭帯域それぞれのROI超解像イメージストリームを生成して、それぞれの分解能を必要とする解析装置12へ、マルチキャスト配信する方法が考えられる。
図22の例では、中帯域のROI超解像イメージストリームが解析装置12Aに配信され、狭帯域のROI超解像イメージストリームが、解析装置12Bおよび12Cにマルチキャスト配信されている。
【0202】
あるいはまた、
図23に示されるように、センサデバイス11から、ネットワーク13の途中のノード14までは、最大帯域(広帯域)のROI超解像イメージストリームをマルチキャスト配信し、途中のノード14において、それより下流の配信先の解析装置12の分解能要件に合わせて分解能を変更したROI超解像イメージストリームを生成し、各解析装置12へマルチキャスト配信する方法が考えられる。
図22の例では、途中のノード14において、広帯域のROI超解像イメージストリームから、中帯域と狭帯域のROI超解像イメージストリームが生成され、中帯域のROI超解像イメージストリームが、解析装置12Aに配信され、狭帯域のROI超解像イメージストリームが、解析装置12Bおよび12Cにマルチキャスト配信されている。
【0203】
上記のいずれの方法を採用した場合でも、ネットワーク13の上流側から、ROI超解像イメージストリームが流れるため、
図24のように、多数のセンサデバイス11が存在し、かつ、それぞれのセンサデバイス11が撮像した画像に多数の注目領域ROIが設定されるような場合、ネットワーク13におけるトラフィックの圧迫は避けられない。
【0204】
以上のように、センサデバイス11が撮像した画像に多数の解析対象物が含まれ、それらに対して注目領域ROIが設定され、ネットワーク13に分散配置された多数の解析装置12が、所定の時間内に画像解析を行うために、解析処理を同時実行するようなケースでは、注目領域ROI毎の超解像処理された時間分解能が高いイメージストリーム(ROI超解像ストリーム)を、ネットワーク13を介して多数の解析装置12へ配信しなければならず、注目領域ROIが多ければ多いほど、ネットワーク13のトラフィックを圧迫してしまう。
【0205】
また、センサデバイス11、または、センサデバイス11と最初に接続されるサーバ等のノード14が、ROI超解像ストリームを生成する場合、配信先の解析装置12毎の解析能力を把握できていなければ、必要以上に高分解能なイメージストリームを配信してしまう可能性があり、その結果、ネットワーク13のトラフィックが圧迫される。
【0206】
<8.画像解析ネットワークシステムが行うストリーム配信方法の例>
そこで、
図15の画像解析ネットワークシステム1は、上述したような注目領域ROI毎のROI超解像ストリームの配信も可能であるが、ネットワーク13のトラフィックを抑制し、効率的に伝送するため、
図25に示されるような、ROI超解像ストリームの配信を行う。
【0207】
図25は、
図15の画像解析ネットワークシステム1が行う、ROI超解像ストリームの配信の概念図を示している。
【0208】
画像解析ネットワークシステム1は、センサデバイス11から複数の解析装置12までのネットワーク13内にある複数のノード14のなかから、解析装置12に近い下流のノード14で、イメージストリームおよびイベントストリームからROI超解像ストリームを生成するようにして、解析装置12へ配信する。ROI超解像ストリームを生成する下流のノード14までは、センサデバイス11が生成したイメージストリームおよびイベントストリームが、そのまま伝送される。イメージストリームおよびイベントストリームからROI超解像ストリームを生成するノード14(後述する超解像処理ノード14C)は、少なくともセンサデバイス11よりも解析装置12に近いノード14とされる。
【0209】
図26は、
図25のROI超解像ストリームの配信の概念図をさらに詳細に示した図である。
【0210】
イメージセンサが撮像したフレーム画像に含まれる複数の注目領域ROI-1乃至ROI-nそれぞれについてのイメージストリームとイベントストリームが、ネットワーク13の伝送経路の解析装置12に近い下流側、例えば、解析装置12と最初に接続されるノード14まで伝送される。解析装置12と最初に接続されるノード14は、取得したイメージストリームおよびイベントストリームからROI超解像ストリームを生成し、解析装置12へ送信する。
【0211】
イメージストリームは、長周期のフレーム画像からなるストリームであり、また、イベントストリームは、イベントが発生した画素(アドレス)のみの3値のデータであるため、イメージストリームおよびイベントストリームは、いずれも、ROI超解像ストリームと比較して転送負荷の軽いストリームである。
【0212】
イメージストリームは、イメージセンサが撮像したフレーム画像から注目領域ROI単位で抽出した注目領域ROI毎のストリームでもよいし、イメージセンサが撮像したフレーム画像そのまま(以下、全体イメージと称する。)のストリームでもよい。本実施の形態では、全体イメージのイメージストリームを伝送することとする。
【0213】
ROI超解像ストリームを生成するノード14以外の、それより上流側の各ノード14は、イメージストリームおよびイベントストリームを中継する。すなわち、各ノード14は、上流側から伝送されてくるイメージストリームおよびイベントストリームを受信し、下流側のノード14へ送信する。また、各ノード14は、受信したイメージストリームおよびイベントストリームをキャッシュ(記憶)し、下流側に新たな解析装置12が追加され、他の経路が追加された場合に、必要に応じて、キャッシュしたイメージストリームおよびイベントストリームを送信可能とする。
【0214】
また、イメージストリームおよびイベントストリームを中継する各ノード14は、下流側の配信先の解析装置12の時間分解能の能力に応じて、必要に応じてイベントストリームを間引いて、下流側のノード14へ送信することもできる。なお、以下では、解析装置12の時間分解能の能力を、解析装置12において必要十分な時間分解能の要件ということで、時間分解能要件とも称する。
【0215】
図27は、複数の解析装置12それぞれの時間分解能要件に応じて、伝送経路のノード14においてイベントストリームが間引かれて伝送される例を示している。
【0216】
解析装置12の時間分解能は、例えば、一定期間に解析装置12が解析処理可能な超解像画像の枚数に相当し、超解像処理では、イベントが発生する毎に超解像画像が生成されるので、イベントが発生する頻度に対応する。したがって、解析装置12の時間分解能は、イベントストリームのイベント頻度(イベント密度)に対応する。
【0217】
図27の例では、解析装置12の時間分解能要件をイベント頻度で表し、各解析装置12の時間分解能要件が、矩形の枠で囲んだ数字で表されている。具体的には、解析装置12Aの時間分解能は「1」であり、解析装置12Bの時間分解能は「2」であり、解析装置12Cの時間分解能は「4」であり、解析装置12Dの時間分解能は「1」である。
【0218】
センサデバイス11が生成したイベントストリームの時間分解能は、「4」である。ネットワーク13の各ノード14は、下流側にイベントストリームを伝送する際、下流の経路に接続される解析装置12の時間分解能要件(イベント頻度)の最大値に合わせて、イベントストリームを間引いて、下流側のノード14へ送信する。
【0219】
例えば、解析装置12Aへ伝送される所定の注目領域ROIのイベントストリームの時間分解能は、センサデバイス11から「4→4→2→1」となる。また、解析装置12Bへ伝送される所定の注目領域ROIのイベントストリームの時間分解能は、センサデバイス11から「4→4→2→2」となる。解析装置12Cへ伝送される所定の注目領域ROIのイベントストリームの時間分解能は、センサデバイス11から「4→4→4→4」となる。また、解析装置12Dへ伝送される所定の注目領域ROIのイベントストリームの時間分解能は、センサデバイス11から「4→4→4→1」となる。
【0220】
このように、時間分解能要件(イベント頻度)の最大値に合わせて、イベントストリームを間引いて、下流側のノード14へ送信することにより、ネットワークトラフィックを最適化し、軽減させることができる。
【0221】
イベントストリームを間引く処理は、
図40および
図41を参照して後述するように、例えば、時間方向に隣接するイベントを積算(合成)することで行うことができる。
【0222】
なお、ROI超解像ストリームを生成するノード14は、下流側の経路に接続されている解析装置12の数や注目領域ROIの数などによっては、解析装置12と最初に接続されるエッジのノード14ではなく、
図28に示されるように、その1つ前のノード14や、2つ前のノード14でROI超解像ストリームを生成した方が、全体としてのネットワークトラフィックを低減できる場合がある。この場合、ROI超解像ストリームを生成するノード14より下流のノード14は、ROI超解像ストリームを中継およびキャッシュするノードとなる。
【0223】
図29は、イメージセンサが撮像したフレーム画像に含まれる複数の注目領域ROIに着目して、各注目領域ROIのストリームの伝送経路を示した図である。
【0224】
なお、
図29は、図が煩雑になるのを防ぐため、注目領域の個数は、注目領域ROI-1乃至ROI-4の4個とされている。
【0225】
注目領域ROI-1乃至ROI-4それぞれのイベントストリームが伝送される経路を、注目領域ROIごとにみると、下流側の経路に接続されている解析装置12が解析処理を担当する注目領域ROIごとに、イベントストリームがマルチキャストで配信される。すなわち、すべての解析装置12に、各注目領域ROIのイベントストリームがマルチキャスト配信されるのではなく、解析処理を担当する解析装置12のみに、処理対象の注目領域ROIのイベントストリームがマルチキャスト配信される。これにより、ネットワーク13の経路に、不要なイベントストリームが伝送されることがなく、ネットワークトラフィックが最適化され、軽減される。
【0226】
イメージストリームについては、全体イメージのイメージストリームを伝送する場合には、解析装置12と接続されるすべての経路のノード14にマルチキャスト配信されるが、注目領域ROI毎のイメージストリームを伝送する場合には、イベントストリームと同様に、解析処理を担当する解析装置12のみに、処理対象の注目領域ROIのイメージストリームがマルチキャスト配信される。
【0227】
以上、
図25乃至
図29を参照して説明したように、
図15の画像解析ネットワークシステム1は、解析装置12に近いネットワーク13の下流側のノード14で超解像ストリームを生成する。これにより、超解像ストリームを生成するネットワーク13のノード14までは、転送負荷の軽いイメージストリームとイベントストリームで伝送することができるので、トラフィックを軽減させることができる。すなわち、超解像の画像ストリームを効率的にネットワーク伝送することができる。
【0228】
また、画像解析ネットワークシステム1は、全ての注目領域ROIで一律のフレームレートでストリームを伝送させるのではなく、個々の注目領域ROIごとに、解析装置12の時間分解能要件に応じて、必要十分なイベント頻度に応じた最適な可変フレームレートで伝送させる。これにより、伝送経路のトラフィックを軽減することができ、ストリームを中継するノード14のキャッシュ量も最適化することができる。また、超解像処理を行うノード14も必要以上の超解像処理をセーブすることができ、CPU(GPU)性能を効率的に利用することができる。
【0229】
<9.画像解析ネットワークシステムのブロック図>
図30は、
図25乃至
図29を参照して説明したストリーム配信方法を実現する
図15の画像解析ネットワークシステム1の構成例を示すブロック図である。
【0230】
画像解析ネットワークシステム1は、センサデバイス11、ブローカーノード14A、中継処理ノード14B,超解像処理ノード14C、オーケストレータ14D、および、解析装置12を含んで構成される。
【0231】
図30では、センサデバイス11から所定の1つの解析装置12へROI超解像ストリームが配信される経路に関連する構成例が示されている。したがって、
図30の解析装置12は、例えば、
図25に示した3台の解析装置12A乃至12Cの所定の1台に対応する。
【0232】
ブローカーノード14A、中継処理ノード14B、超解像処理ノード14C、および、オーケストレータ14Dは、
図15のネットワーク13内のいずれかのノード14であり、ネットワーク13内の各ノード14は、それが実行する機能によって、ブローカーノード14A、中継処理ノード14B、超解像処理ノード14C、または、オーケストレータ14Dのいずれかに割り当てられる。
【0233】
ブローカーノード14Aは、ネットワーク13においてセンサデバイス11と最初に接続されるネットワーク13内のノード14(エッジノード)であり、
図15では、例えばノード14aである。
【0234】
中継処理ノード14Bは、
図26で説明した、イメージストリームおよびイベントストリームを中継およびキャッシュするノードであり、
図15では、例えばノード14cやノード14eである。
【0235】
なお、中継処理ノード14Bは、ブローカーノード14Aと超解像処理ノード14Cとの間に、複数介在することが一般的であるが、
図30では、1つとして説明する。
【0236】
超解像処理ノード14Cは、上流側のノード14(中継処理ノード14B)から伝送されてきたイメージストリームとイベントストリームを用いて超解像画像を生成する超解像処理を実行するノードであり、
図15では、例えば、ノード14gやノード14hである。超解像処理ノード14Cは、ネットワーク13において解析装置12と最初に接続されるネットワーク13内のノード14(エッジノード)とされることが多いが、ノード14の処理能力やネットワーク13を流れるストリーム全体の帯域等を考慮して、エッジノードよりも上流側のノード14とされる場合もある。
【0237】
オーケストレータ14Dは、ネットワーク13の経路に流れるストリームの帯域等を監視し、超解像処理を実行するノード14(超解像処理ノード14C)を決定するノードであり、
図15では、例えば、ノード14iである。
図30の各構成は、超解像処理ノード14Cが決定された状態の構成を示している。
【0238】
センサデバイス11は、イベント・イメージセンサ41、オブジェクトROI抽出エンジン42、ROIカタログジェネレータ43、ROIイメージフィルタ44、および、ROIイベントフィルタ45を備える。
【0239】
ブローカーノード14Aは、ROIサブスクリプションブローカ51、ROIイメージブローカ52、および、ROIイベントブローカ53の各モジュールを備える。
【0240】
中継処理ノード14Bは、ROIサブスクリプション中継モジュール61、ROIイメージ中継モジュール62、および、ROIイベント中継モジュール63を備える。
【0241】
超解像処理ノード14Cは、ROIサブスクリプション中継モジュール71、および、超解像処理モジュール72を備える。
【0242】
オーケストレータ14Dは、オーケストレーションモジュール91を備える。
【0243】
解析装置12は、ROIサブスクライバ81、および、解析モジュール82の各モジュールを備える。
【0244】
センサデバイス11のイベント・イメージセンサ41は、DVS(イベントセンサ)とイメージセンサとを有する。DVSは、イベントが発生したランダムなタイミングで、イベント画像を生成し、イメージセンサは、例えば30fpsや60fpsのような、DVSと比較して長周期で、フレーム画像を生成する。生成されるイベント画像およびフレーム画像は、オブジェクトROI抽出エンジン42、ROIイメージフィルタ44、および、ROIイベントフィルタ45に供給される。
【0245】
イベント・イメージセンサ41は、DVSが最初のイベントを検出すると、イメージセンサに撮像を行わせ、生成したフレーム画像を、スナップショットとして、オブジェクトROI抽出エンジン42へ供給する。
【0246】
オブジェクトROI抽出エンジン42は、イベント・イメージセンサ41からのスナップショットに基づいて、オブジェクトを認識する処理を実行し、認識したオブジェクト毎に注目領域ROIを割り当てる。そして、オブジェクトROI抽出エンジン42は、オブジェクトを特定したときのスナップショットと、オブジェクト毎に割り当てた注目領域ROIを特定する情報(ROI特定情報)を、ROIカタログジェネレータ43へ供給する。ROI特定情報には、例えば、オブジェクトの注目領域ROIを識別するROI-ID(ROI識別情報)と、オブジェクトの属性情報(オブジェクト属性情報)とが含まれる。オブジェクトの属性情報には、例えば、認識処理により検出されたオブジェクトの種類(人、車、物の名称など)、色、領域を示す座標などが含まれる。スナップショットとROI特定情報は、オブジェクトROI抽出エンジン42から、ROIイメージフィルタ44およびROIイベントフィルタ45へも供給される。
【0247】
ROIカタログジェネレータ43は、オブジェクトROI抽出エンジン42から供給される、オブジェクトが含まれた画像であるスナップショットと、注目領域ROIを特定するROI特定情報とに基づいて、ROIカタログを生成し、ブローカーノード14AのROIサブスクリプションブローカ51に供給する。
【0248】
図31は、オブジェクトROI抽出エンジン42から供給されたスナップショットと、注目領域ROIの割り当ての例を示している。
【0249】
図31のスナップショットSNPには、認識処理により検出されたオブジェクトOBJ1乃至OBJ3が含まれている。オブジェクトOBJ1乃至OBJ3は、例えば、色や車種の異なる車である。オブジェクトOBJ1乃至OBJ3には、ROI識別情報として、ROI-ID-1乃至ROI-ID-3が付与されている。
【0250】
ROIカタログジェネレータ43は、オブジェクトOBJ1乃至OBJ3のそれぞれについて、注目領域ROI-ID-1乃至ROI-ID-3を、グローバルユニークに識別するグローバルROI-IDに変換する。グローバルROI-IDは、例えば、イベント・イメージセンサ41を識別するセンサID(sensor-ID-n)と、ROI特定情報(ROI-ID-n)とからなるurn(uniform resource name)とされる(n=1,2,3,・・・)。イメージストリームが、注目領域ROIごとではなく、全体イメージのストリームである場合には、例えば、ROI特定情報(ROI-ID-n)のnを0としたROI-ID-0など、注目領域ROIを限定しないurnが付される。
【0251】
図30の説明に戻り、ROIカタログジェネレータ43は、スナップショットSNPと、オブジェクトOBJごとのグローバルROI-IDとオブジェクト属性情報とを含むROI特定情報を、ROIカタログとし、ROIサブスクリプションブローカ51に供給する。このROIカタログは、ROIサブスクリプションブローカ51、ROIサブスクリプション中継モジュール61、および、ROIサブスクリプション中継モジュール71を中継して、ROIサブスクライバ81へ通知される。
【0252】
ROIイメージフィルタ44は、オブジェクトROI抽出エンジン42から供給されるスナップショットとオブジェクト毎のROI特定情報とに基づいて、イベント・イメージセンサ41から供給されるフレーム画像をフィルタリングし、フィルタリング処理後のフレーム画像を、ブローカーノード14AのROIイメージブローカ52に供給する。
【0253】
ROIイベントフィルタ45は、オブジェクトROI抽出エンジン42から供給されるスナップショットとオブジェクト毎のROI特定情報とに基づいて、イベント・イメージセンサ41から供給されるイベント画像をフィルタリングし、フィルタリング処理後のイベント画像を、ブローカーノード14AのROIイベントブローカ53に供給する。
【0254】
すなわち、ROIイベントフィルタ45は、イベント・イメージセンサ41から順次供給されるイベント画像が、ROI特定情報で特定される注目領域ROI単位となるようにフィルタリング(抽出)し、注目領域ROI毎のイベント画像を、イベントストリームとして、ROIイベントブローカ53に供給する。
【0255】
これに対して、イメージストリームは、上述したように、注目領域ROI毎のイメージストリームか、または、全体イメージのイメージストリームのどちらでもよく、注目領域ROI毎の場合には、ROIイメージフィルタ44は、注目領域ROI単位となるようにフィルタリング(抽出)するが、全体イメージのイメージストリームの場合には、イベント・イメージセンサ41から順次供給されるフレーム画像をフィルタリングせずに、そのままイメージストリームとして、ROIイメージブローカ52に供給する。
【0256】
なお、フレーム画像およびイベント画像に含まれるオブジェクトは動いたり、変化するため、ROIイメージフィルタ44およびROIイベントフィルタ45は、オブジェクトROI抽出エンジン42と協調して、オブジェクトを追尾しながら、フィルタ処理を実行する。
【0257】
ブローカーノード14AのROIサブスクリプションブローカ51は、ROIカタログジェネレータ43から供給されるROIカタログを、ROIサブスクリプション中継モジュール61へ送信する。
【0258】
また、ROIサブスクリプションブローカ51は、ROIサブスクリプション中継モジュール61を介して、各解析装置12のROIサブスクライバ81から供給されるROIサブスクリプションリクエストを取得する。ROIサブスクリプションリクエストとは、各解析装置12がサブスクライブする注目領域ROIのリクエストであり、サブスクライブするとは、本実施の形態では、超解像イメージストリームを連続的に取得することを表す。したがって、ROIサブスクリプションリクエストとは、換言すれば、解析装置12が超解像イメージストリームを連続的に取得したい注目領域ROIの要求である。
【0259】
ROIサブスクリプションリクエストは、具体的には、
図32に示されるように、リクエストする注目領域ROIのグローバルROI-IDと、超解像要件とを含んで構成される。超解像要件は、解析装置12が実行する認識処理に必要十分な超解像画像の分解能を示す情報である。本実施の形態では、超解像画像が時間分解能を向上させた画像としているので、例えば、イメージセンサが出力するフレーム画像の時間分解能であるフレームレート[fps]と、DVSがイベントを検出する際の輝度値の閾値に対応するイベント感度とで構成される。イベント感度は、例えば、イベント頻度(イベント密度)でもよい。
【0260】
ROIサブスクリプションブローカ51は、オーケストレータ14Dのオーケストレーションモジュール91から、イメージストリームおよびイベントストリームの注目領域ROIごとの送信先および経路を取得し、ROIイメージブローカ52とROIイベントブローカ53に供給する。
【0261】
さらに、ROIサブスクリプションブローカ51は、複数の解析装置12それぞれから供給されるROIサブスクリプションリクエストの注目領域ROIごとの超解像要件に基づいて、イメージセンサのフレームレート(動作フレームレート)と、DVSのイベント感度(動作感度)とを決定する。決定されたフレームレートは、ROIイメージブローカ52を介して、ROIイメージフィルタ44およびイベント・イメージセンサ41に供給され、イベント感度は、ROIイベントブローカ53を介して、ROIイベントフィルタ45およびイベント・イメージセンサ41に供給される。
【0262】
ROIイメージブローカ52は、ROIサブスクリプションブローカ51から供給される、イメージストリームの注目領域ROIごとの送信先および経路に基づいて、ROIイメージフィルタ44から供給されるイメージストリームを、所要の中継処理ノード14BのROIイメージ中継モジュール62に供給する。配信されるイメージストリームが、全体イメージのストリームである場合には、注目領域ROIに応じた送信先の選択は行われない。
【0263】
ROIイベントブローカ53は、ROIサブスクリプションブローカ51から供給される、イベントストリームの注目領域ROIごとの送信先および経路に基づいて、ROIイメージフィルタ44から供給されるイベントストリームを、所要の中継処理ノード14BのROIイベント中継モジュール63に供給する。
【0264】
中継処理ノード14BのROIサブスクリプション中継モジュール61は、ROIカタログおよびROIサブスクリプションリクエストを中継する。すなわち、ROIサブスクリプション中継モジュール61は、ROIサブスクリプションブローカ51から供給されるROIカタログを取得して、超解像処理ノード14CのROIサブスクリプション中継モジュール71に供給する。また、ROIサブスクリプション中継モジュール61は、ROIサブスクリプション中継モジュール71から供給されるROIサブスクリプションリクエストを取得して、ROIサブスクリプションブローカ51に供給する。中継処理ノード14Bと超解像処理ノード14Cとの間に、他の中継処理ノード14Bが介在する場合には、他の中継処理ノード14BのROIサブスクリプション中継モジュール61を介して同様の動作を行う。
【0265】
ROIイメージ中継モジュール62は、全体イメージまたは注目領域ROIのイメージストリームを中継する。すなわち、ROIイメージ中継モジュール62は、ROIイメージブローカ52から供給される、全体イメージまたは注目領域ROIのイメージストリームを取得し、超解像処理ノード14Cの超解像処理モジュール72に供給する。中継処理ノード14Bと超解像処理ノード14Cとの間に、他の中継処理ノード14Bが介在する場合には、全体イメージまたは注目領域ROIのイメージストリームは、他の中継処理ノード14BのROIイメージ中継モジュール62に供給される。
【0266】
ROIイベント中継モジュール63は、注目領域ROIのイベントストリームを中継する。すなわち、ROIイベント中継モジュール63は、ROIイベントブローカ53から供給される、注目領域ROIのイベントストリームを取得し、超解像処理ノード14Cの超解像処理モジュール72に供給する。中継処理ノード14Bと超解像処理ノード14Cとの間に、他の中継処理ノード14Bが介在する場合には、注目領域ROIのイベントストリームは、他の中継処理ノード14BのROIイベント中継モジュール63に供給される。
【0267】
また、ROIイベント中継モジュール63は、下流の経路の超解像要件に基づいて、注目領域ROIのイベントストリームを必要に応じて間引き合成し、イベント頻度を低くした低分解能の注目領域ROIのイベントストリームを生成し、超解像処理モジュール72または他のROIイベント中継モジュール63に供給する。
【0268】
超解像処理ノード14CのROIサブスクリプション中継モジュール71は、中継処理ノード14BのROIサブスクリプション中継モジュール61と同様に、ROIカタログとROIサブスクリプションリクエストを中継する。すなわち、ROIサブスクリプション中継モジュール71は、ROIサブスクリプション中継モジュール61から供給されるROIカタログを取得して、解析装置12のROIサブスクライバ81に供給する。また、ROIサブスクリプション中継モジュール71は、ROIサブスクライバ81から供給されるROIサブスクリプションリクエストを取得して、ROIサブスクリプション中継モジュール61に供給する。
【0269】
超解像処理モジュール72は、中継処理ノード14BのROIイメージ中継モジュール62から供給される全体イメージまたは注目領域ROIのイメージストリームと、ROIイベント中継モジュール63から供給される注目領域ROIのイベントストリームとを用いて、超解像処理を実行する。超解像処理の生成方法は特に限定されない。例えば、上記の非特許文献1で用いられている方法を利用することができる。
【0270】
超解像処理モジュール72は、超解像処理により得られた、注目領域ROIの超解像イメージストリーム(ROI超解像イメージストリーム)を、解析装置12の解析モジュール82に供給する。
【0271】
オーケストレータ14Dのオーケストレーションモジュール91は、各中継処理ノード14BのROIサブスクリプション中継モジュール61から、ROIカタログとROIサブスクリプションリクエストを取得する。すなわち、センサデバイス11と、分散配置された多数の解析装置12との間のネットワーク13内の経路にある各中継処理ノード14BのROIサブスクリプション中継モジュール61から、ROIカタログとROIサブスクリプションリクエストが取得される。
【0272】
オーケストレーションモジュール91は、ROIカタログとROIサブスクリプションリクエストから、各解析装置12が解析処理を行う注目領域ROIに基づいて、センサデバイス11から各解析装置12までの経路を注目領域ROI毎に決定し、中継処理ノード14BのROIサブスクリプション中継モジュール61や、ブローカーノード14AのROIサブスクリプションブローカ51などに供給する。
【0273】
オーケストレーションモジュール91は、センサデバイス11からのROIカタログから推測されるストリーム帯域(イメージストリーム帯域および注目領域ROI毎のイベントストリーム帯域)と、各中継処理ノード14BのROIサブスクリプション中継モジュール61のROIサブスクリプションリクエストの情報に基づく、中継処理ノード14B毎のストリーム帯域と、超解像処理が行われた後のROI超解像イメージストリームのストリーム帯域、超解像処理ノード14Cに必要なリソース(演算処理能力およびキャッシュ容量など)とを総合的に判定し、できるだけ解析装置12側に近い下流側の中継処理ノード14Bを、超解像処理ノード14Cに決定する。
【0274】
また、オーケストレーションモジュール91は、ネットワーク13を経由する各ストリームの伝送パスの帯域の総量ができるだけ小さくなるように、超解像処理ノード14Cを決定する。
【0275】
オーケストレーションモジュール91は、各ストリームの伝送が開始された後も、逐次ストリーミング状況を監視しながら、トラフィックが最適に維持されるように、超解像処理ノード14Cを配置しなおす等の調整を行う。
【0276】
超解像処理ノード14Cの配置の決定においては、オーケストレーションモジュール91は、下流側の経路に接続されている解析装置12の数や注目領域ROIの数などに基づいて、解析装置12と最初に接続されるノード14を超解像処理ノード14Cとするか、それよりも上流側のノード14を超解像処理ノード14Cとするかを決定する。
【0277】
解析装置12のROIサブスクライバ81は、超解像処理ノード14CのROIサブスクリプション中継モジュール71を介して、センサデバイス11のROIカタログジェネレータ43から供給されるROIカタログを参照し、ROIサブスクリプションリクエストを生成する。具体的には、ROIサブスクライバ81は、ROIカタログに基づいて、ROI超解像画像に含まれる1以上の注目領域ROIのうち、自身が認識処理する注目領域ROIを選択する。そして、ROIサブスクライバ81は、選択した注目領域ROIのグローバルROI-IDと、超解像要件とを含むROIサブスクリプションリクエストを生成する。生成されたROIサブスクリプションリクエストは、超解像処理ノード14C、および、中継処理ノード14Bを介して、ROIサブスクリプションブローカ51に通知される。
【0278】
解析モジュール82は、ディープラーニングなどの機械学習を用いたAIエンジンを備え、超解像処理モジュール72からROI超解像イメージストリームを取得し、注目領域ROIの超解像画像を解析する画像解析処理を行う。例えば、解析モジュール82は、注目領域ROIの超解像画像に含まれるオブジェクトOBJの人物を同定(認識)したり、人物の行動(危険行動)を予測(判定)する処理などを行う。
【0279】
以上のように、センサデバイス11と複数の解析装置12との間のネットワーク13の各ノード14は、センサデバイス11と複数の解析装置12の配置に応じて、ブローカーノード14A、中継処理ノード14B、超解像処理ノード14C、または、オーケストレータ14Dのいずれかのノード機能が割り当てられ、それぞれの動作を実行する。
【0280】
各ノード14が割り当てられたノード機能に必要なモジュールは、ネットワーク13内のアプリケーションリポジトリから必要に応じて検索され、動的に取得される。
【0281】
各ノード14は、他のノード14から取得したデータを、ノード14内の各モジュールで共有するとともに、内部に一定期間記憶(キャッシュ)し、新たにネットワーク13に参加したノード14からの要求に応じて、自身が記憶しているイメージストリーム、イベントストリーム、ROIカタログ、超解像要件等の各データを送信することができる。
【0282】
図33は、超解像処理ノード14Cが、解析装置12と最初に接続されるノード14ではなく、その1つ上流側のノード14に配置された場合の、超解像処理ノード14Cおよび解析装置12と、その間の中継処理ノード14B’の構成例を示している。
【0283】
超解像処理ノード14Cが、ネットワーク13のエッジのノード14ではなく、それより上流側のノード14に配置された場合、超解像処理ノード14Cと解析装置12の間の中継処理ノード14B’は、ROIサブスクリプション中継モジュール61と、ROI超解像ストリーム中継モジュール101とで構成される。
【0284】
すなわち、中継処理ノード14B’では、中継処理ノード14BのROIイメージ中継モジュール62とROIイベント中継モジュール63が、ROI超解像ストリーム中継モジュール101に置き換えられる。
【0285】
超解像処理ノード14Cの超解像処理モジュール72により、ROI超解像イメージストリームが生成されるので、イメージストリームおよびイベントストリームを中継するROIイメージ中継モジュール62とROIイベント中継モジュール63ではなく、ROI超解像イメージストリームを中継するROI超解像ストリーム中継モジュール101が配置される。
【0286】
<センサデバイスとブローカーノードの変形例>
図34および
図35は、センサデバイス11とブローカーノード14Aのその他の構成例を示している。
【0287】
図30に示した構成例では、センサデバイス11が、イベント・イメージセンサ41、オブジェクトROI抽出エンジン42、ROIカタログジェネレータ43、ROIイメージフィルタ44、および、ROIイベントフィルタ45を備えていたが、イベント・イメージセンサ41以外のモジュールは、ブローカーノード14Aに配置されてもよい。
【0288】
図34は、オブジェクトROI抽出エンジン42とROIカタログジェネレータ43を、ブローカーノード14Aに配置した構成例を示している。
【0289】
この場合、センサデバイス11は、イベント・イメージセンサ41、ROIイメージフィルタ44、および、ROIイベントフィルタ45を備える。ブローカーノード14Aは、オブジェクトROI抽出エンジン42、ROIカタログジェネレータ43、ROIサブスクリプションブローカ51、ROIイメージブローカ52、および、ROIイベントブローカ53の各モジュールを備える。
【0290】
図35は、イベント・イメージセンサ41以外の全てのモジュールを、ブローカーノード14Aに配置した構成例を示している。
【0291】
この場合、センサデバイス11は、イベント・イメージセンサ41を備える。ブローカーノード14Aは、オブジェクトROI抽出エンジン42、ROIカタログジェネレータ43、ROIイメージフィルタ44、ROIイベントフィルタ45、ROIサブスクリプションブローカ51、ROIイメージブローカ52、および、ROIイベントブローカ53を備える。
【0292】
【0293】
図30、
図34、および、
図35の各モジュール配置も、ネットワーク13内のアプリケーションリポジトリから必要に応じて動的に取得されることで実現することができる。
【0294】
<10.イメージストリームとROIイベントストリームの例>
図36は、全体イメージのイメージストリームと注目領域ROI単位のイベントストリームをネットワーク伝送する例を示している。
【0295】
時刻T11、T12、およびT13は、長周期T(=T12-T11=T13-T12)に対応して、全体イメージのイメージデータが出力されるタイミングを表し、時刻T11にフレーム画像P11が出力され、時刻T12にフレーム画像P12が出力され、時刻T13にフレーム画像P13が出力されて、ネットワーク13を伝送される。
【0296】
一方、イベント画像E11乃至E21は、時刻T11から時刻T13の間に発生された所定の注目領域ROIのイベント画像を示している。注目領域ROIに対応するオブジェクトOBJには動きが発生しており、イベント画像E11乃至E21の位置は、イベントが検出される毎に異なっている。
【0297】
時刻T11から時刻T12の期間のイベント画像E11乃至E16それぞれに対応した超解像画像を生成するためには、イベント画像E11乃至E16に対応する全領域111のイメージデータとイベントデータが必要となる。
【0298】
イベント画像E11乃至E16に対応する全領域111のイメージデータは、伝送されるイメージデータが全体イメージのイメージストリームであるので、伝送されるイメージデータに含まれている。
【0299】
イベントストリームは、注目領域ROI単位のストリームであるので、イベント画像E11乃至E16に対応する全領域111は、時刻T12になるまで確定できない。そこで、ROIイベントフィルタ45は、オブジェクトROI抽出エンジン42と協調して、オブジェクトOBJの動きを検出または予測し、移動後のオブジェクト領域に関連する過去のイベント画像も合わせて伝送する。
【0300】
例えば、
図36において破線で囲まれたイベント画像E11およびE12について説明すると、
図37に示されるように、イベント画像E12の領域が検出または予測された時点で、ROIイベントフィルタ45は、イベント画像E12の領域に関連する過去のイベントの領域121のイベントデータも、イベント画像E12とともに伝送する。
【0301】
このような処理を逐次的に実行することで、イベント画像E11乃至E16に対応する全領域111のイベントデータを伝送することができ、超解像処理ノード14Cにおいて超解像処理を行うことができる。
【0302】
時刻T12から時刻T13の期間のイベント画像E16乃至E21それぞれについても、オブジェクトOBJの動きが検出または予測され、移動後のオブジェクト領域に関連する過去のイベント画像が伝送されることで、イベント画像E16乃至E21に対応する全領域112のイベントデータが超解像処理ノード14Cまで伝送される。
【0303】
図38は、イメージストリームとイベントストリームのどちらについても注目領域ROI単位でネットワーク伝送する例を示している。
【0304】
図38において、時刻T11から時刻T13の期間に検出されるイベント画像E11乃至E21は、
図36と同様である。
【0305】
イメージストリームを注目領域ROI単位でネットワーク伝送する場合、時刻T11から時刻T12の期間のイベント画像E11乃至E16それぞれに対応した超解像画像を生成するためには、イメージデータについても、イベントデータと同様に、イベント画像E11乃至E16に対応する全領域111に対応する部分画像Pr11が必要となる。
【0306】
しかしながら、イベント画像E11乃至E16に対応する全領域111は、時刻T12になるまで確定できない。そこで、ROIイベントフィルタ45は、時刻T12となり、イベント画像E11乃至E16に対応する全領域111が確定した時点で、全領域111に対応する部分画像Pr11と、イベント画像E11乃至E16に対応する全領域111に対応するイベントデータを伝送する。この場合、注目領域ROI単位のイメージストリームとイベントストリームが、長周期T遅れで伝送される。
【0307】
時刻T12から時刻T13の期間のイベント画像E16乃至E21それぞれについても、時刻T13となり、イベント画像E16乃至E21に対応する全領域112が確定した時点で、全領域112に対応する部分画像Pr12と、イベント画像E16乃至E21に対応する全領域112に対応するイベントデータが伝送される。
【0308】
図38の伝送方法は、若干転送が遅くなっても、イメージストリームの帯域を抑えたい場合に有用である。
【0309】
図39は、
図36または
図38の伝送方法により超解像処理ノード14Cまでイメージストリームとイベントストリームが伝送され、超解像処理ノード14Cにおいて超解像処理が実行された後の、超解像処理ノード14Cから出力されるROI超解像ストリームの例を示している。
【0310】
図39では、
図36および
図38のイベント画像E11乃至E21の発生タイミングに応じて、超解像画像F11乃至F21が生成され、ROI超解像ストリームとして伝送されている。
【0311】
<11.ROIイベントストリームの間引き合成処理>
次に、ROIイベント中継モジュール63が行うイベントストリームの間引き合成について説明する。
【0312】
ROIイベント中継モジュール63は、下流の経路の超解像要件に基づいて、注目領域ROIのイベントストリームを必要に応じて間引き合成し、合成後のイベントストリームを送信することができる。
【0313】
図40は、DVSの所定の一画素のイベントデータの時系列データ(イベント列)を示している。
【0314】
DVSでは、例えば、各画素に入射された受光量の対数値に応じた電圧信号が、画素信号として検出される。そして、DVSは、画素信号が表す輝度変化が所定の閾値Thを超えて明るく変化した場合に、正方向の輝度変化を表す“+1”を出力し、所定の閾値Thを超えて暗く変化した場合に、負方向の輝度変化を表す“-1”を出力する。
【0315】
図40の例において、DVSが出力した合成前のイベント列EV1では、時刻t1において、“+1”が出力され、時刻t2において、“+1”が出力され、時刻t3において、“-1”が出力され、時刻t4において、“-1”が出力され、時刻t5において、“+1”が出力され、時刻t6において、“+1”が出力されている。時刻t1、t2、t3、・・・・t6どうしの間隔は、
図40に示されるように一定ではない。
【0316】
イベントデータは、例えば、AER(Address-Event Representation)形式と呼ばれる以下の形式で表される。
e = (x, y, ts, p) ・・・・・・・・(1)
【0317】
式(1)において、x,yは、輝度変化が発生した画素の座標を表し、tsは、輝度変化が発生した時刻に相当するタイムスタンプを表し、pは、輝度変化の極性(正方向または負方向)を表す。
【0318】
DVSが出力したイベント列EV1を、例えば、イベント頻度を1/2に間引き合成した場合、間引き合成後のイベント列EV2は、
図40に示されるようになる。
【0319】
ROIイベント中継モジュール63は、例えば、時間方向に隣接する2つのイベントデータを積算することにより、間引き合成前のイベント列EV1から、間引き合成後のイベント列EV2を生成する。
【0320】
間引き合成後のイベントデータは、式(1)のAER形式を拡張した次の拡張AER形式で表すことができる。
ce = (x, y, ts, p, n) ・・・・・・・・(2)
【0321】
式(2)において、nは、度数を表し、例えば、時刻t2のイベントデータでは、n=2となる。
【0322】
拡張AER形式において、度数nを1とすると、間引き合成前のイベント列EV1も表現可能である。
【0323】
なお、間引き合成の方法は、時間方向に隣接する複数のイベントデータを積算する以外の方法を採用してもよい。
【0324】
図41は、所定の注目領域ROIのイベントストリームの間引き合成前と間引き合成後の例を示している。
【0325】
時刻T41乃至T42における間引き合成前のイベントストリームは、例えば、イベント画像E41乃至E52で構成される。
【0326】
時刻T41乃至T42における間引き合成後のイベントストリームは、例えば、イベント画像E41’,E43’,E46’,E49’,E52’で構成される。
【0327】
時刻T41乃至T42において、イメージストリームは、時刻T41におけるフレーム画像P41と、時刻T42におけるフレーム画像P42で構成される。
【0328】
<12.画像解析ネットワークシステムの処理の流れ>
次に、
図42のフローチャートを参照して、画像解析ネットワークシステム1による超解像画像解析処理の装置間の流れについて説明する。
【0329】
なお、
図42の超解像画像解析処理が開始される前には、解析装置12のROIサブスクライバ81が、中継処理ノード14BのROIサブスクリプション中継モジュール61を介して、ブローカーノード14AのROIサブスクリプションブローカ51が発行するROIカタログを取得するためのROIカタログ用のマルチキャストに参加する処理が行われている。
【0330】
初めに、ステップS1において、センサデバイス11は、イベントを検出するとスナップショットを取得する。具体的には、センサデバイス11のDVSがイベントを検出すると、オブジェクトROI抽出エンジン42を起動させるとともに、イメージセンサに撮像を行わせる。そして、イメージセンサが撮像したフレーム画像が、スナップショットとしてオブジェクトROI抽出エンジン42に供給される。
【0331】
ステップS2において、センサデバイス11は、取得したスナップショットに基づいてオブジェクトを認識する処理を実行し、認識したオブジェクト毎に注目領域ROIを割り当てる。さらに、センサデバイス11は、スナップショットと、注目領域ROIを特定するROI特定情報とに基づいて、ROIカタログを生成し、解析装置12へ通知する。ROIカタログは、ブローカーノード14A、1以上の中継処理ノード14Bを経由して、解析装置12まで伝送される。
【0332】
解析装置12は、ステップS3において、センサデバイス11から通知されたROIカタログを取得して参照し、自身が認識処理する注目領域ROIを選択する。そして、解析装置12は、選択した注目領域ROIのROIサブスクリプションリクエストを生成し、1以上の中継処理ノード14Bを経由して、ブローカーノード14Aへ通知する。ここで、ROIサブスクリプションリクエストは、自身が認識処理する注目領域ROIの超解像イメージストリームを連続的に取得したいことの要求である。ROIサブスクリプションリクエストには、選択した注目領域ROIのグローバルROI-IDと、超解像要件とが含まれる。
【0333】
オーケストレータ14Dは、ステップS4において、各中継処理ノード14Bが中継する、ROIカタログとROIサブスクリプションリクエストを取得する。オーケストレータ14Dは、ROIカタログから推測されるストリーム帯域と、各中継処理ノード14Bにおいて超解像処理が行われた後のROI超解像イメージストリームのストリーム帯域等に基づいて、できるだけ解析装置12側に近い下流側の中継処理ノード14Bを、超解像処理ノード14Cに決定し、通知する。
【0334】
ステップS5において、超解像処理ノード14Cであることが通知された中継処理ノード14Bは、超解像処理ノード14Cに必要なモジュール、具体的には、超解像処理モジュール72をネットワーク13内のアプリケーションリポジトリから取得する。
【0335】
ステップS4およびS5の処理以降、センサデバイス11と解析装置12との間のネットワーク13内の所定の1つのノード14であって、できるだけ解析装置12側に近い下流側の中継処理ノード14Bが、超解像処理ノード14Cとして動作する。
【0336】
一方、ブローカーノード14Aは、ステップS6において、複数の解析装置12それぞれから供給されるROIサブスクリプションリクエストに含まれる、注目領域ROIごとの超解像要件に基づいて、イメージセンサのフレームレートと、DVSのイベント感度とを決定し、センサデバイス11へ通知する。
【0337】
ステップS4およびS5とステップS6の処理は並行して実行することができる。
【0338】
ステップS7において、センサデバイス11は、長周期のフレームレートで撮像を行い、その結果生成される全体イメージのイメージストリームを超解像処理ノード14C宛に送信するとともに、認識したオブジェクト毎のイベントを検出して、注目領域ROI毎のイベントストリームを超解像処理ノード14C宛に送信する。フレーム画像およびイベント画像に含まれるオブジェクトは、動きに応じてトラッキングされる。
【0339】
全体イメージのイメージストリームおよび注目領域ROI毎のイベントストリームは、ブローカーノード14Aと、1以上の中継処理ノード14Bとを経由して、超解像処理ノード14Cまで転送される。
【0340】
ステップS8において、途中経路の所定の中継処理ノード14Bは、下流の経路の超解像要件に基づいて、注目領域ROIのイベントストリームを必要に応じて間引き合成し、イベント頻度を低くした低分解能の注目領域ROIのイベントストリームを生成して、次の中継処理ノード14Bまたは超解像処理ノード14Cへ転送する。
【0341】
ステップS9において、超解像処理ノード14Cは、全体イメージのイメージストリームと注目領域ROIのイベントストリームとを用いて、超解像処理を実行し、注目領域ROIの超解像イメージストリーム(ROI超解像イメージストリーム)を生成する。生成されたROI超解像イメージストリームは、解析装置12宛に送信される。
【0342】
超解像処理ノード14Cが、解析装置12と接続されたネットワーク13内のエッジのノード14ではなく、超解像処理ノード14Cと解析装置12との間に中継処理ノード14B’が介在する場合には、ROI超解像イメージストリームが、中継処理ノード14B’から解析装置12へ転送される。
【0343】
ステップS10において、解析装置12は、ROI超解像イメージストリームを取得し、注目領域ROIの超解像画像を解析する画像解析処理を行う。例えば、解析装置12は、注目領域ROIの超解像画像に含まれるオブジェクトOBJの人物を同定(認識)したり、人物の行動(危険行動)を予測(判定)する処理などを行う。
【0344】
画像解析ネットワークシステム1の各装置は、以上のように超解像画像解析処理を実行する。これにより、超解像の画像ストリームを効率的にネットワーク伝送することができる。
【0345】
なお、解析装置12が画像解析処理を実行した後の流れについては省略するが、例えば、解析結果を収集する所定のデータサーバ等へ、解析結果が送信される。
【0346】
次に、
図43乃至
図45のフローチャートを参照して、画像解析ネットワークシステム1のモジュール単位の、より詳細な超解像画像解析処理の流れについて説明する。
【0347】
初めに、
図43のステップS21において、センサデバイス11のイベント・イメージセンサ41がイベントを検出すると、オブジェクトROI抽出エンジン42を起動させる。
【0348】
続いて、ステップS22において、イベント・イメージセンサ41は、撮像を行い、その結果得られたフレーム画像を、スナップショットとしてオブジェクトROI抽出エンジン42に供給する。
【0349】
ステップS23において、オブジェクトROI抽出エンジン42は、イベント・イメージセンサ41からのスナップショットに基づいて、オブジェクトを認識する処理を実行し、認識したオブジェクト毎に注目領域ROIを割り当てる。そして、オブジェクトROI抽出エンジン42は、オブジェクトを特定したときのスナップショットと、オブジェクト毎に割り当てた注目領域ROIを特定するROI特定情報を、ROIカタログジェネレータ43へ通知する。
【0350】
ステップS24において、ROIカタログジェネレータ43は、オブジェクトROI抽出エンジン42から供給されたスナップショットとROI特定情報とに基づいて、ROIカタログを生成し、ブローカーノード14AのROIサブスクリプションブローカ51に通知する。ROIカタログは、スナップショットと、オブジェクトごとのROI特定情報とで構成され、ROI特定情報は、グローバルROI-IDとオブジェクト属性情報とを含む。ROIサブスクリプションブローカ51へ通知されたROIカタログは、1以上の中継処理ノード14BのROIサブスクリプション中継モジュール61を経由して、各解析装置12のROIサブスクライバ81へ供給される。
【0351】
ステップS25において、各解析装置12のROIサブスクライバ81は、センサデバイス11のROIカタログジェネレータ43から供給されたROIカタログに基づいて、1以上の注目領域ROIのうち、自身が認識処理する注目領域ROIを選択する。そして、ROIサブスクライバ81は、選択した注目領域ROIのグローバルROI-IDと、超解像要件とを含むROIサブスクリプションリクエストを生成する。生成されたROIサブスクリプションリクエストは、1以上の中継処理ノード14BのROIサブスクリプション中継モジュール61を経由して、ブローカーノード14AのROIサブスクリプションブローカ51へ通知される。
【0352】
図44のステップS41において、オーケストレータ14Dのオーケストレーションモジュール91は、各中継処理ノード14BのROIサブスクリプション中継モジュール61が伝送する、ROIカタログとROIサブスクリプションリクエストを取得する。そして、オーケストレーションモジュール91は、各解析装置12が解析処理を行う注目領域ROIに基づいて、注目領域ROI毎のセンサデバイス11から各解析装置12までの経路と、超解像処理を実行する超解像処理ノード14Cを決定する。センサデバイス11から各解析装置12までの経路に存在する超解像処理ノード14Cに決定された中継処理ノード14Bは、超解像処理モジュール72をネットワーク13内のアプリケーションリポジトリから取得する。決定された経路は、中継処理ノード14BのROIサブスクリプション中継モジュール61や、ブローカーノード14AのROIサブスクリプションブローカ51へ通知される。決定された経路は、中継処理ノード14Bにおいて、ROIサブスクリプション中継モジュール61から、ROIイメージ中継モジュール62およびROIイベント中継モジュール63にも通知され、ブローカーノード14Aにおいて、ROIサブスクリプションブローカ51からROIイメージブローカ52およびROIイベントブローカ53にも通知される。
【0353】
続いて、ステップS42において、ROIサブスクリプションブローカ51は、複数の解析装置12それぞれのROIサブスクライバ81から通知されたROIサブスクリプションリクエストに含まれる注目領域ROIごとの超解像要件に基づいて、イメージセンサのフレームレートを決定し、ROIイメージブローカ52を介して、センサデバイス11のROIイメージフィルタ44およびイベント・イメージセンサ41へ通知する。
【0354】
続いて、ステップS43において、ROIサブスクリプションブローカ51は、ROIサブスクリプションリクエストに含まれる注目領域ROIごとの超解像要件に基づいて、DVSのイベント感度を決定し、ROIイベントブローカ53を介して、センサデバイス11のROIイベントフィルタ45およびイベント・イメージセンサ41へ通知する。
【0355】
ステップS44において、センサデバイス11のイベント・イメージセンサ41は、長周期による撮像を行ってフレーム画像を生成し、その全体イメージのフレーム画像を、ROIイメージフィルタ44に供給する。
【0356】
ステップS45において、ROIイメージフィルタ44は、イベント・イメージセンサ41から供給された全体イメージのフレーム画像を、必要に応じてフィルタリングし、ブローカーノード14AのROIイメージブローカ52に供給する。
【0357】
すなわち、イメージストリームは、全体イメージで送信される場合と、注目領域ROI単位で送信される場合とがあり、注目領域ROI単位で送信される場合に、ROIイメージフィルタ44は、オブジェクトROI抽出エンジン42から供給されたスナップショットとオブジェクト毎のROI特定情報とに基づいて、全体イメージのフレーム画像を注目領域ROI単位にフィルタリングし、フィルタリング処理後の注目領域画像を、ブローカーノード14AのROIイメージブローカ52に供給する。全体イメージで送信される場合には、フィルタリングされない全体イメージのフレーム画像が、ブローカーノード14AのROIイメージブローカ52に供給される。
【0358】
ステップS46において、イベント・イメージセンサ41は、イベントを検出してイベント画像を生成し、ROIイベントフィルタ45に供給する。
【0359】
ROIイベントフィルタ45は、ステップS47において、オブジェクトROI抽出エンジン42から供給されたスナップショットとオブジェクト毎のROI特定情報とに基づいて、イベント・イメージセンサ41から供給されたイベント画像をフィルタリングし、フィルタリング処理後のイベント画像を、ブローカーノード14AのROIイベントブローカ53に供給する。
【0360】
フレーム画像に対するステップS44およびS45の処理と、イベント画像に対するステップS46およびS47の処理は、並行して実行することができる。
【0361】
フレーム画像は、一定周期(長周期)で順次生成され、イメージストリームとして、ROIイメージブローカ52に供給される。イベント画像は、イベントの検出毎に順次生成され、イベントストリームとして、ROIイベントブローカ53に供給される。
【0362】
次に、
図45のステップS61において、ROIイベントブローカ53は、注目領域ROIごとの経路に基づいて、ROIイメージフィルタ44から供給されたイベントストリームを、中継処理ノード14BのROIイベント中継モジュール63に転送する。
【0363】
ROIイベント中継モジュール63は、ステップS62において、注目領域ROIのイベントストリームを中継する。また、ROIイベント中継モジュール63は、下流の経路の超解像要件に基づいて、注目領域ROIのイベントストリームを必要に応じて間引き合成し、イベント頻度を低くした低分解能の注目領域ROIのイベントストリームを生成し、超解像処理モジュール72に供給する。
【0364】
ステップS63において、ROIイメージブローカ52は、注目領域ROIごとの経路に基づいて、ROIイメージフィルタ44から供給されたイメージストリームを、中継処理ノード14BのROIイメージ中継モジュール62に供給する。ROIイメージ中継モジュール62は、送信されてきた全体イメージまたは注目領域ROIのイメージストリームをさらに中継して、超解像処理モジュール72に転送する。
【0365】
ステップS64において、超解像処理モジュール72は、中継処理ノード14BのROIイメージ中継モジュール62から供給された全体イメージまたは注目領域ROIのイメージストリームと、ROIイベント中継モジュール63から供給された注目領域ROIのイベントストリームとを用いて、超解像処理を実行する。そして、超解像処理モジュール72は、超解像処理により得られた、注目領域ROIの超解像イメージストリーム(ROI超解像イメージストリーム)を、解析装置12の解析モジュール82に供給する。
【0366】
ステップS65において、解析モジュール82は、超解像処理モジュール72からROI超解像イメージストリームを取得し、注目領域ROIの超解像画像を解析する画像解析処理を行う。例えば、解析モジュール82は、注目領域ROIの超解像画像に含まれるオブジェクトOBJの人物を同定(認識)したり、人物の行動(危険行動)を予測(判定)する処理などを行う。
【0367】
画像解析ネットワークシステム1の各モジュールは、以上のように超解像画像解析処理を実行する。これにより、超解像の画像ストリームを効率的にネットワーク伝送することができる。
【0368】
<13.ストリームの伝送フォーマットの例>
次に、
図46を参照しながら、マルチキャストで配信されるイメージストリームとイベントストリームの伝送フォーマットについて説明する。
【0369】
注目領域ROI単位にマルチキャストで配信されるイメージストリームとイベントストリームは、イメージストリームチャネルとイベントストリームチャネルの2つのトランスポートチャネルからなる。
【0370】
図46は、イメージストリームチャネルとイベントストリームチャネルのフォーマットを示す図である。
【0371】
イメージストリームチャネルは、注目領域ROIごとのイメージデータを伝送する場合には、注目領域ROIの数に応じた複数のチャネルとなるが、全体イメージのイメージデータを伝送する場合には、1つのチャネルとなる。
【0372】
イメージストリームチャネルは、各時刻に対応した複数のイメージパケット群で構成され、各イメージパケット群は、1以上のイメージパケットからなる。イベントストリームチャネルは、各時刻に対応した複数のイベントパケット群で構成され、各イベントパケット群は、1以上のイベントパケットからなる。
【0373】
イメージパケットは、イメージパケットヘッダと、イメージパケットペイロードとからなる。イメージパケットヘッダは、グローバルROI-ID、Packet Sequence Number、および、Capture Timeを含む。イメージパケットペイロードには、全体イメージまたは注目領域ROIのイメージデータが分割されて、所定のイメージフォーマットで格納される。Packet Sequence Numberは、パケットペイロード単位で割り当てられた、チャネルで一意な番号であり、十分な長さで周期的にゼロリセットされる。
【0374】
イベントパケットは、イベントパケットヘッダと、イベントパケットペイロードとからなる。イベントパケットヘッダは、グローバルROI-ID、Packet Sequence Number、および、Reference Capture Timeを含む。Reference Capture Timeは、参照されるイメージパケットのCapture Timeを表す。
【0375】
ここで、イメージストリームチャネルに、全体イメージのイメージデータが格納される場合には、複数のイベントストリームチャネルそれぞれが参照するイメージストリームが共有されるので、異なるイベントストリームチャネルで転送されるイベントパケットのReference Image Capture Timeには、共有先の全体イメージストリームを示すグローバルROI-IDが付記される。
【0376】
図47は、イベントパケットペイロードのフォーマットを示す図である。
【0377】
イベントパケットペイロードには、例えば、上述した式(1)の“e”で表されるAER形式、または、式(2)の“ce”で表される拡張AER形式で、複数のイベントデータが格納される。
【0378】
なお、イベントパケットペイロードに格納されるイベントデータの形式は、AER形式または拡張AER形式に限定されず、その他の形式であってもよい。例えば、イベントフレームやTime Surface等と呼ばれる形式で格納してもよい。イベントパケットペイロードには、イベントデータの形式を識別するイベントデータフォーマット識別子(一意なURL)とともに、そのイベントデータフォーマット識別子が表す形式でエンコードされたイベントデータを格納してもよい。また、イベントデータフォーマット識別子は、イベントパケットヘッダに格納してもよい。
【0379】
また、グローバルROI-IDに対応するイメージストリームチャネル、または、イベントストリームチャネルのセッション(仮想的なパス)が下位レイヤで確立される場合には、パケットごとのグローバルROI-IDを省略することもできる。例えば、グローバルROI-IDをIPマルチキャストアドレスに対応させたり、グローバルROI-IDを下位レイヤのラベル(MPLS(Multi Protocol Label Switching)のラベルやGMPLS(Generalized MPLS)におけるλ(波長)等)に対応させることもできる。
【0380】
ROIサブスクリプションブローカ51は、イメージストリームチャネルとイベントストリームチャネルの経路を確立する際に、転送要件に沿って必要なQoSクラスでネットワーク13上のリソースをリザーブする。例えば、超解像要件に合わせて形成される中継処理ノード14B間のマルチキャストツリーの各リンクの帯域要件に合わせて必要帯域を確保する。
【0381】
ROIサブスクリプションブローカ51は、イメージストリームチャネルとイベントストリームチャネルの関連するパケット群が超解像処理されるタイミングが合うように同期されて転送されるように制御する。マルチキャストされるネットワーク13のチャネルリソースの総量に制限がある場合は、ROIサブスクリプションブローカ51は、注目領域ROI毎のサブスクリプションリクエストの大小に合わせて、注目領域ROIに優先度を割り当て、優先度の高いものから、QoSクラスが高品質(低遅延、低エラーレート、広帯域等)となるように割り当てる。
【0382】
また、ベストエフォートな転送になる場合には、ROIサブスクリプションブローカ51は、相互に関連するパケット群が相対的に同期して超解像処理ノード14Cに到着するように、経路上の中継処理ノード14Bがパケット間の転送時間調整を行えるようにする。例えば、最初の時刻T(k)までにCapture-Time=T(n)を持つイメージパケット群が到着し、次の時刻T(k+1)までにReference-Image-Capture-Time =T(n)を持つのすべてのイベントパケット群が到着し、次の時刻T(k+2)までにCapture-Time=T(n+1)を持つイメージパケット群が到着し、時刻T(k+3)までにReference-Image-Capture-Time =T(n+1)を持つすべてのイベントパケット群が到着するというように、すなわち、到着時刻順序が、”Capture-Time=T(n)を持つ最後のイメージパケット” < ”Reference-Image-Capture-Time =T(n)を持つ最後のイベントパケット” < ”Capture-Time=T(n+1)を持つ最後のイメージパケット” < ”Reference-Image-Capture-Time =T(n+1)を持つ最後のイベントパケット”となるように、経路上の中継処理ノード14Bが転送時間調整を行えるようにする。
【0383】
超解像処理ノード14Cの超解像処理モジュール72と、解析装置12の解析モジュール82との間で伝送されるROI超解像イメージストリームは、
図46のイメージストリームチャネルにより伝送され、ROI超解像処理された注目領域ROIの超解像画像のイメージデータが分割されて、イメージパケットのイメージパケットペイロードに格納されて転送される。
【0384】
<14.コンピュータ構成例>
上述した一連の処理は、ハードウエアにより実行することもできるし、ソフトウエアにより実行することもできる。一連の処理をソフトウエアにより実行する場合には、そのソフトウエアを構成するプログラムが、コンピュータにインストールされる。ここで、コンピュータには、専用のハードウエアに組み込まれているマイクロコンピュータや、各種のプログラムをインストールすることで、各種の機能を実行することが可能な、例えば汎用のパーソナルコンピュータなどが含まれる。
【0385】
図48は、上述した一連の処理をプログラムにより実行するコンピュータのハードウエアの構成例を示すブロック図である。
【0386】
コンピュータにおいて、CPU(Central Processing Unit)301,ROM(Read Only Memory)302,RAM(Random Access Memory)303は、バス304により相互に接続されている。
【0387】
バス304には、さらに、入出力インタフェース305が接続されている。入出力インタフェース305には、入力部306、出力部307、記憶部308、通信部309、及びドライブ310が接続されている。
【0388】
入力部306は、キーボード、マウス、マイクロホン、タッチパネル、入力端子などよりなる。出力部307は、ディスプレイ、スピーカ、出力端子などよりなる。記憶部308は、ハードディスク、RAMディスク、不揮発性のメモリなどよりなる。通信部309は、ネットワークインタフェースなどよりなる。ドライブ310は、磁気ディスク、光ディスク、光磁気ディスク、或いは半導体メモリなどのリムーバブル記録媒体311を駆動する。
【0389】
以上のように構成されるコンピュータでは、CPU301が、例えば、記憶部308に記憶されているプログラムを、入出力インタフェース305及びバス304を介して、RAM303にロードして実行することにより、上述した一連の処理が行われる。RAM303にはまた、CPU301が各種の処理を実行する上において必要なデータなども適宜記憶される。
【0390】
コンピュータ(CPU301)が実行するプログラムは、例えば、パッケージメディア等としてのリムーバブル記録媒体311に記録して提供することができる。また、プログラムは、ローカルエリアネットワーク、インターネット、デジタル衛星放送といった、有線または無線の伝送媒体を介して提供することができる。
【0391】
コンピュータでは、プログラムは、リムーバブル記録媒体311をドライブ310に装着することにより、入出力インタフェース305を介して、記憶部308にインストールすることができる。また、プログラムは、有線または無線の伝送媒体を介して、通信部309で受信し、記憶部308にインストールすることができる。その他、プログラムは、ROM302や記憶部308に、あらかじめインストールしておくことができる。
【0392】
なお、コンピュータが実行するプログラムは、本明細書で説明する順序に沿って時系列に処理が行われるプログラムであっても良いし、並列に、あるいは呼び出しが行われたとき等の必要なタイミングで処理が行われるプログラムであっても良い。
【0393】
なお、本明細書において、フローチャートに記述されたステップは、記載された順序に沿って時系列的に行われる場合はもちろん、必ずしも時系列的に処理されなくとも、並列に、あるいは呼び出しが行われたとき等の必要なタイミングで実行されてもよい。
【0394】
なお、本明細書において、システムとは、複数の構成要素(装置、モジュール(部品)等)の集合を意味し、すべての構成要素が同一筐体中にあるか否かは問わない。したがって、別個の筐体に収納され、ネットワークを介して接続されている複数の装置、及び、1つの筐体の中に複数のモジュールが収納されている1つの装置は、いずれも、システムである。
【0395】
本技術の実施の形態は、上述した実施の形態に限定されるものではなく、本技術の要旨を逸脱しない範囲において種々の変更が可能である。
【0396】
例えば、上述した実施の形態の全てまたは一部を組み合わせた形態を採用することができる。
【0397】
例えば、本技術は、1つの機能をネットワークを介して複数の装置で分担、共同して処理するクラウドコンピューティングの構成をとることができる。
【0398】
また、上述のフローチャートで説明した各ステップは、1つの装置で実行する他、複数の装置で分担して実行することができる。
【0399】
さらに、1つのステップに複数の処理が含まれる場合には、その1つのステップに含まれる複数の処理は、1つの装置で実行する他、複数の装置で分担して実行することができる。
【0400】
なお、本明細書に記載された効果はあくまで例示であって限定されるものではなく、本明細書に記載されたもの以外の効果があってもよい。
【0401】
なお、本技術は、以下の構成を取ることができる。
<1>
ネットワーク接続装置が、
センサデバイスから複数の画像処理装置までのネットワーク内の経路にある装置のなかから、前記センサデバイスが生成した画像に含まれる注目領域単位の前記画像を超解像処理することにより前記注目領域の超解像画像を生成する超解像処理ノードを決定する
ネットワークの制御方法。
<2>
前記超解像処理ノードは、前記センサデバイスが生成した一定周期のフレーム画像と、ランダムに発生するイベント画像から、前記注目領域の超解像画像を生成する
前記<1>に記載のネットワークの制御方法。
<3>
前記センサデバイスから前記超解像処理ノードまでは、前記フレーム画像のストリームデータと、前記イベント画像のストリームデータが伝送され、
前記超解像処理ノードから前記画像処理装置までは、前記注目領域の超解像画像のストリームデータが伝送される
前記<2>に記載のネットワークの制御方法。
<4>
前記ネットワーク内の経路にある各装置は、下流の経路の要件に基づいて前記イベント画像をフィルタリングし、フィルタリング後の前記イベント画像のストリームデータを供給する
前記<3>に記載のネットワークの制御方法。
<5>
前記ネットワーク内の経路にある各装置は、中継するデータをキャッシュする
前記<1>ないし<4>のいずれかに記載のネットワークの制御方法。
<6>
前記ネットワーク接続装置は、前記複数の画像処理装置それぞれが要求する前記注目領域の超解像画像に基づいて、前記超解像処理ノードを決定する
前記<1>ないし<5>のいずれかに記載のネットワークの制御方法。
<7>
前記ネットワーク接続装置は、前記画像に含まれる前記注目領域を特定する注目領域特定情報から推測されるストリーム帯域と、前記複数の画像処理装置それぞれが要求する前記注目領域の情報に基づく中継処理ノードのストリーム帯域と、前記超解像処理が行われた後の前記超解像画像のストリーム帯域とに基づいて、前記超解像処理ノードを決定する
前記<1>ないし<6>のいずれかに記載のネットワークの制御方法。
<8>
前記ネットワーク接続装置は、前記画像処理装置の数と、前記画像に含まれる前記注目領域の数とに基づいて、前記超解像処理ノードを決定する
前記<1>ないし<7>のいずれかに記載のネットワークの制御方法。
<9>
前記ネットワーク接続装置は、少なくとも前記センサデバイスよりも前記画像処理装置に近い装置を、前記超解像処理ノードに決定する
前記<1>ないし<8>のいずれかに記載のネットワークの制御方法。
<10>
前記超解像処理ノードは、前記画像処理装置と最初に接続される前記ネットワーク内の装置である
前記<1>ないし<9>のいずれかに記載のネットワークの制御方法。
<11>
前記画像処理装置は、前記センサデバイスに、処理対象の前記注目領域と、自身の処理に必要十分な超解像要件とを要求する
前記<1>ないし<10>のいずれかに記載のネットワークの制御方法。
<12>
前記超解像要件は、前記センサデバイスが生成するフレーム画像のフレームレートと、前記センサデバイスが生成するイベント画像のイベント感度とで構成される
前記<1>ないし<11>のいずれかに記載のネットワークの制御方法。
<13>
前記超解像処理ノードに決定された前記装置は、前記ネットワーク内のリポジトリから、前記超解像処理を行うモジュールを取得する
前記<1>ないし<12>のいずれかに記載のネットワークの制御方法。
<14>
前記センサデバイスは、イメージセンサと、イベントセンサとを含む
前記<1>ないし<13>のいずれかに記載のネットワークの制御方法。
<15>
センサデバイスから複数の画像処理装置までのネットワーク内の経路にある装置のなかから、前記センサデバイスが生成した画像に含まれる注目領域単位の前記画像を超解像処理することにより前記注目領域の超解像画像を生成する超解像処理ノードを決定するモジュールを備える
画像処理システム。
【0402】
なお、本開示は、以下の構成を取ることができる。
<1>
ネットワーク接続装置が、
センサデバイスと、それに接続されたネットワーク内の経路にある装置のなかから、前記センサデバイスで生成されたセンサデータを処理するアプリケーションを実行させる最適な場所を、マニフェストに基づいて決定する
ネットワークの制御方法。
<2>
前記ネットワーク接続装置は、前記マニフェストに記載された、前記アプリケーションを配置する際の評価軸と、その場合のアプリケーション配置の優先順位に基づいて決定する
前記<1>に記載のネットワークの制御方法。
<3>
前記マニフェストは、前記評価軸として、ネットワーク転送遅延による処理遅延を含む
前記<2>に記載のネットワークの制御方法。
<4>
前記マニフェストは、前記評価軸として、前記ネットワークのトラフィックを含む
前記<2>または<3>に記載のネットワークの制御方法。
<5>
前記マニフェストは、前記評価軸として、前記アプリケーションの処理速度を含む
前記<2>ないし<4>のいずれかに記載のネットワークの制御方法。
<6>
前記マニフェストは、前記評価軸として、前記アプリケーションの実行コストを含む
前記<2>ないし<5>のいずれかに記載のネットワークの制御方法。
<7>
前記マニフェストは、前記評価軸として、ストレージコストを含む
前記<2>ないし<6>のいずれかに記載のネットワークの制御方法。
<8>
前記マニフェストは、前記評価軸として、前記センサデータの再利用性を含む
前記<2>ないし<7>のいずれかに記載のネットワークの制御方法。
<9>
前記マニフェストは、前記評価軸として、要求されたサービスに対応する本処理を実行する前に前処理を実行するかを含む
前記<2>ないし<8>のいずれかに記載のネットワークの制御方法。
<10>
前記ネットワーク接続装置は、前記アプリケーションとして、要求されたサービスに対応する本処理を実行するアプリケーションと、前記本処理の前処理を実行するアプリケーションの最適な場所を決定する
前記<1>ないし<9>のいずれかに記載のネットワークの制御方法。
<11>
前記前処理は、非圧縮の前記センサデータを圧縮する処理である
前記<10>に記載のネットワークの制御方法。
<12>
前記前処理は、前記本処理の内容に合わせて個別化された処理である
前記<10>に記載のネットワークの制御方法。
<13>
前記ネットワーク接続装置は、前記前処理を実行するアプリケーションを、前記本処理を実行するアプリケーションの前段に複数配置する
前記<10>ないし<12>のいずれかに記載のネットワークの制御方法。
<14>
前記アプリケーション配置の優先順位は、アプリケーション配置場所としての、前記センサデバイス、エッジクラウド、および、センタークラウドの優先順位である
前記<2>ないし<13>のいずれかに記載のネットワークの制御方法。
<15>
前記ネットワーク接続装置は、前記センサデバイスから複数の画像処理装置までのネットワーク内の経路にある装置のなかから、前記センサデバイスが生成した画像に含まれる注目領域単位の前記画像を超解像処理することにより前記注目領域の超解像画像を生成するアプリケーションを実行させる最適な場所を決定する
前記<1>ないし<14>のいずれかに記載のネットワークの制御方法。
<16>
センサデバイスと、それに接続されたネットワーク内の経路にある装置のなかから、前記センサデバイスで生成されたセンサデータを処理するアプリケーションを実行させる最適な場所を、マニフェストに基づいて決定するオーケストレータ
を備えるデータ処理システム。
【符号の説明】
【0403】
1 画像解析ネットワークシステム, 11 センサデバイス, 12 解析装置, 13 ネットワーク, 14A ブローカーノード, 14B 中継処理ノード, 14C 超解像処理ノード, 14D オーケストレータ, 14 ノード, 41 イベント・イメージセンサ, 42 オブジェクトROI抽出エンジン, 43 ROIカタログジェネレータ, 44 ROIイメージフィルタ, 45 ROIイベントフィルタ, 51 ROIサブスクリプションブローカ, 52 ROIイメージブローカ, 53 ROIイベントブローカ, 61 ROIサブスクリプション中継モジュール, 62 ROIイメージ中継モジュール, 63 ROIイベント中継モジュール, 71 ROIサブスクリプション中継モジュール, 72 超解像処理モジュール, 81 ROIサブスクライバ, 82 解析モジュール, 91 オーケストレーションモジュール, 101 ROI超解像ストリーム中継モジュール, 301 CPU, 302 ROM, 303 RAM, 306 入力部, 307 出力部, 308 記憶部, 309 通信部, 310 ドライブ, 500 データ処理システム, 511 センサ, 512 エッジデバイス, 513 センサ/エッジ, 521 クラウド, 522 エッジクラウド, 523 センタークラウド, 531,532 アプリケーションプラットフォーム, 533 ネットワークモニタ, 534 アプリケーションプラットフォーム, 535 ネットワークモニタ, 536 オーケストレータ, 537 アプリケーションリポジトリ, 538,539 ネットワーク, 800 ネットワークシステム, 805 コンピュータ, 810 ネットワーク, 815 リモートコンピュータ, 820 ウェブサーバ, 825 クラウドストレージサーバ, 830 コンピュータサーバ, 835 プロセッサ, 840 メモリ, 845 不揮発性ストレージ, 848 プログラム, 860 外部デバイス