(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024119951
(43)【公開日】2024-09-03
(54)【発明の名称】エッジ装置、処理方法及び処理プログラム
(51)【国際特許分類】
G06V 10/70 20220101AFI20240827BHJP
G06F 9/38 20180101ALI20240827BHJP
G06T 7/00 20170101ALI20240827BHJP
【FI】
G06V10/70
G06F9/38 370X
G06T7/00 350B
【審査請求】有
【請求項の数】10
【出願形態】OL
(21)【出願番号】P 2024095528
(22)【出願日】2024-06-13
(62)【分割の表示】P 2022564707の分割
【原出願日】2020-11-24
(71)【出願人】
【識別番号】000004226
【氏名又は名称】日本電信電話株式会社
(74)【代理人】
【識別番号】110002147
【氏名又は名称】弁理士法人酒井国際特許事務所
(72)【発明者】
【氏名】坂本 啓
(72)【発明者】
【氏名】森永 一路
(72)【発明者】
【氏名】史 旭
(72)【発明者】
【氏名】榎本 昇平
(72)【発明者】
【氏名】江田 毅晴
(57)【要約】
【課題】エッジ装置からサーバ装置に対するデータ転送量の低減及びサーバ装置における演算負荷の低減を図ることができる。
【解決手段】エッジ装置30は、処理データを複数に分割した分割データを、複数のDNN1-1~DNN1-Nのうち対応するDNN1-1~DNN1-Nにそれぞれ入力して、各DNN1-1~DNN1-Nにおける推論を実行させる推論部32と、複数の分割データのうち、各DNN1-1~DNN1-Nにおける推論結果が予め定められた結果と合致すると判定した分割データのみをサーバ装置20に出力する判定部33と、を有する。
【選択図】
図3
【特許請求の範囲】
【請求項1】
処理データを複数に分割した分割データを、複数の第1のモデルのうち対応する第1のモデルにそれぞれ入力して、各第1のモデルにおける推論を実行させる第1の推論部と、
複数の前記分割データのうち、各第1のモデルにおける推論結果が予め定められた結果と合致すると判定した前記分割データのみをサーバ装置に出力する判定部と、
を有することを特徴とするエッジ装置。
【請求項2】
前記第1の推論部は、前記分割した分割データを、前記複数の第1のモデルのうち対応する第1のモデルにそれぞれ入力して、各第1のモデルにおける物体検出を実行させ、
前記判定部は、複数の前記分割データのうち、各第1のモデルにおいて少なくとも所定の物体を含むと判定した前記分割データを前記サーバ装置に出力することを特徴とする請求項1に記載のエッジ装置。
【請求項3】
前記判定部は、複数の前記分割データのうち、前記所定の物体を含み、かつ、前記第1のモデルによる前記物体検出の結果が正解であることの確からしさの度合いである確信度が、所定の閾値以上である前記分割データを、前記サーバ装置に出力することを特徴とする請求項2に記載のエッジ装置。
【請求項4】
前記第1の推論部は、前記分割データに対して、物体検出を行うとともに動体検出を行い、
前記判定部は、複数の前記分割データのうち、前記所定の物体を含み、かつ、動体検出された分割データを前記サーバ装置に出力することを特徴とする請求項2または3に記載のエッジ装置。
【請求項5】
前記処理データは、1枚の画像であり、
前記第1の推論部は、前記1枚の画像を分割した複数の分割画像を、前記複数の第1のモデルのうち対応する第1のモデルにそれぞれ入力して、各第1のモデルにおける被写体認識を実行させ、
前記判定部は、前記複数の分割画像のうち、各第1のモデルにおいて少なくとも所定の被写体を含むと判定した前記分割画像を前記サーバ装置に出力することを特徴とする請求項2~4のいずれか一つに記載のエッジ装置。
【請求項6】
前記処理データは、時系列に沿って撮像された複数の画像であり、
前記第1の推論部は、前記複数の画像をそれぞれ、前記複数の第1のモデルのうち対応する第1のモデルにそれぞれ入力して、各第1のモデルにおける被写体認識を実行させ、
前記判定部は、前記複数の画像のうち、各第1のモデルにおいて少なくとも所定の被写体を含むと判定した前記画像を前記サーバ装置に出力することを特徴とする請求項2~4のいずれか一つに記載のエッジ装置。
【請求項7】
前記処理データは、時系列に沿って撮像された複数の画像であり、
前記第1の推論部は、前記複数の画像をそれぞれ、前記複数の第1のモデルのうち対応する第1のモデルにそれぞれ入力して、各第1のモデルにおける被写体認識を実行させ、
前記判定部は、前記複数の画像のうち、各第1のモデルにおいて少なくとも所定の被写体を含むことを認識された画像を選別し、
前記第1の推論部は、前記判定部によって選別された画像を分割した複数の分割画像を、前記複数の第1のモデルのうち対応する第1のモデルにそれぞれ入力して、各第1のモデルにおける被写体認識を実行させ、
前記判定部は、前記複数の分割画像のうち、各第1のモデルにおいて少なくとも所定の被写体を含むと判定された前記分割画像を前記サーバ装置に出力することを特徴とする請求項2~4のいずれか一つに記載のエッジ装置。
【請求項8】
前記判定部によって前記サーバ装置に出力することを判定された各分割データをそれぞれ符号化し、前記サーバ装置に出力する複数の符号化部
を有することを特徴とする請求項2~7のいずれか一つに記載のエッジ装置。
【請求項9】
エッジ装置が実行する処理方法であって、
処理データを複数に分割した分割データを、複数の第1のモデルのうち対応する第1のモデルにそれぞれ入力して、各第1のモデルにおける推論を実行させる第1の推論工程と、
複数の前記分割データのうち、各第1のモデルにおける推論結果が予め定められた結果と合致すると判定した前記分割データのみを出力する判定工程と、
を含んだことを特徴とする処理方法。
【請求項10】
方法をコンピュータに実行させる処理プログラムであって、
エッジ装置としてのコンピュータに、
処理データを複数に分割した分割データを、複数の第1のモデルのうち対応する第1のモデルにそれぞれ入力して、各第1のモデルにおける推論を実行させる第1の推論ステップと、
複数の前記分割データのうち、各第1のモデルにおける推論結果が予め定められた結果と合致すると判定した前記分割データのみを出力する判定ステップと、
を実行させることを特徴とする処理プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、エッジ装置、処理方法及び処理プログラムに関する。
【背景技術】
【0002】
センサに代表されるIoTデバイスにより収集されたデータのデータ量は、膨大であるため、クラウドコンピューティングで収集されたデータを集約及び処理する際、膨大な通信量が発生する。このため、ユーザに近いエッジ装置でも、収集されたデータを処理するエッジコンピューティングに注目が集まっている。
【0003】
しかしながら、エッジ装置で用いられる装置の演算量やメモリ等のリソースは、エッジ装置よりもユーザから物理的及び論理的に遠くに配置されたエッジ装置以外の装置(以下、簡便のためクラウドと記載する)と比して、貧弱である。このため、演算負荷が大きい処理をエッジ装置で行うと、処理が完了するまでに多大な時間を要したり、演算量が大きくない他の処理が完了するまでにも時間を要したりする場合がある。
【0004】
ここで、演算量が大きい処理の一つに機械学習に係る処理が挙げられる。非特許文献1には、いわゆるアダプティブラーニングのエッジ・クラウドへの適用が提案されている。すなわち、非特許文献1に記載の方法は、クラウドで汎用的な学習データを用いて学習を行った学習済みモデルをエッジ装置に展開し、エッジ装置で取得されたデータを用いて、クラウドで学習を行ったモデルに対して再度学習を行うことでクラウドとエッジ装置との利点を活かした運用を実現している。
【先行技術文献】
【非特許文献】
【0005】
【非特許文献1】:大越他, “クラウド・エッジ連携によるDNNモデル運用方式の提案と評価”, 第80回全国大会講演論文集 2018(1), 3-4, 2018-03-13.
【発明の概要】
【発明が解決しようとする課題】
【0006】
しかしながら、高精度(ハイビジョン(4K,8K))カメラ画像等、処理データのデータサイズが大きい場合、エッジ側で判定できない処理データを全てクラウド側に送信してしまうと、伝送路を圧迫するととともに、サーバ側でも、データサイズが大きい処理データに対する処理時間が長くなってしまうという問題があった。
【0007】
本発明は、上記に鑑みてなされたものであって、エッジ装置からサーバ装置に対するデータ転送量の低減及びサーバ装置における演算負荷の低減を図ることができるエッジ装置、処理方法及び処理プログラムを提供することを目的とする。
【課題を解決するための手段】
【0008】
上述した課題を解決し、目的を達成するために、本発明に係るエッジ装置は、処理データを複数に分割した分割データを、複数の第1のモデルのうち対応する第1のモデルにそれぞれ入力して、各第1のモデルにおける推論を実行させる第1の推論部と、複数の分割データのうち、各第1のモデルにおける推論結果が予め定められた結果と合致すると判定した分割データのみをサーバ装置に出力する判定部と、を有することを特徴とする。
【発明の効果】
【0009】
本発明によれば、エッジ装置からサーバ装置に対するデータ転送量の低減及びサーバ装置における演算負荷の低減を図ることができる。
【図面の簡単な説明】
【0010】
【
図1】
図1は、実施の形態に係る処理システムの処理方法の概要を説明する図である。
【
図2】
図2は、DNN1及びDNN2の一例を説明する図である。
【
図3】
図3は、実施の形態に係る処理システムの構成の一例を模式的に示す図である。
【
図4】
図4は、
図3に示すエッジ装置が実行する処理の流れを示すフローチャートである。
【
図5】
図5は、
図3に示すサーバ装置が実行する処理の流れを示すフローチャートである。
【
図6】
図6は、実施の形態の変形例1に係る処理システムの処理方法の概要を説明する図である。
【
図7】
図7は、実施の形態の変形例2に係る処理システムのエッジ装置における処理方法の概要を説明する図である。
【
図8】
図8は、実施の形態の変形例2に係る処理システムの構成の一例を模式的に示す図である。
【
図9】
図9は、プログラムが実行されることにより、エッジ装置及びサーバ装置が実現されるコンピュータの一例を示す図である。
【発明を実施するための形態】
【0011】
以下、図面を参照して、本発明の一実施形態を詳細に説明する。なお、この実施形態により本発明が限定されるものではない。また、図面の記載において、同一部分には同一の符号を付して示している。
【0012】
[実施の形態]
[実施の形態の概要]
本発明の実施の形態について説明する。本発明の実施の形態では、学習済みの高精度モデル及び軽量モデルを使って推論処理を行う処理システムについて説明する。なお、実施の形態の処理システムでは、推論処理において用いるモデルとして、DNN(Deep Neural Network)を用いた場合を例に説明する。実施の形態の処理システムでは、DNN以外のニューラルネットワークを用いてもよいし、学習済みモデルに代えて低演算量の信号処理と高演算量の信号処理を用いてもよい。
【0013】
図1は、実施の形態に係る処理システムの処理方法の概要を説明する図である。実施の形態の処理システムは、高精度モデル及び軽量モデルを用いたモデルカスケードを構成する。実施の形態の処理システムでは、高速かつ低精度な軽量モデル(例えば、DNN1(第1のモデル))を用いるエッジ装置と、低速かつ高精度な高精度モデル(例えば、DNN2(第2のモデル))を用いるクラウド(サーバ装置)とのいずれにおいて処理を実行するかを制御する。例えば、サーバ装置は、ユーザから物理的及び論理的に遠い場所に配置された装置である。エッジ装置は、ユーザから物理的及び論理的に近い場所に配置されたIoT機器及び各種端末装置であり、サーバ装置と比してリソースが少ない。
【0014】
DNN1及びDNN2は、入力された処理対象データを基に推論結果を出力するモデルである。本実施の形態では、例えば、データサイズが大きい高精度カメラ画像についても高速処理を可能にするため、エッジ装置において、入力画像を分割し、分割画像ごとに複数の処理を並列に実行し、所定の条件を満たす分割画像のみをクラウド側に送信する。エッジ装置及びサーバ装置では、DNN1及びDNN2を複数備え、推論処理を含む各処理を並列に実行する。また、ハイフレームレートの映像についても効果を奏する。所望の被写体が撮影されているとエッジ装置で判断された画像や、前もしくは後ろの画像と比較して変化がある(動きがある)画像のみをクラウド側に伝送するようにするようにしてもよい。さらに、当該画像を分割し、所望の被写体が含まれている画像の分割画像をクラウド側に送信するようにしてもよい。
【0015】
図1の例では、エッジ装置に、ハイビジョン(4K,8K)画像(以降、画像G1とする。)が処理データとして入力された場合、エッジ装置では、この画像G1を、例えば9等分に分割し、分割画像G1-1~G1-9を、DNN1-1~DNN1-9にそれぞれ分配する(
図1の(1))。各DNN1-1~DNN1-9は、入力された分割画像G1-1~G1-9に対して、画像に写る物体のクラスごとの確率を推論する被写体認識と、動体検出とを行う(
図1の(2))。なお、エッジ装置におけるDNN1-1~DNN1-9の数は一例であり、画像の分割数に応じた数を設ければよい。また、DNN1-1~DNN1-M(Mは分割数よりも小さい数)を用いて分割された画像を順番に処理するよう構成してもよい。
【0016】
そして、エッジ装置では、DNN1-1~DNN1-9の推論結果を基に、所定の被写体(例えば、猫或いは猫のー部)を含み、かつ、動体検出された分割画像G1-1,G1-5を選別し、この分割画像G1-1,G1-5の確信度を取得する。確信度は、DNN1-1~DNN1-9による被写体認識の結果が正解であることの確からしさの度合いである。
【0017】
続いて、エッジ装置では、確信度が所定の閾値以上である分割画像G1-1,G1-5を送信対象であると判定し(
図1の(3))、分割画像G1-1,G1-5に対し、分割画像G1-1,G1-5ごとにエンコード処理を行い、クラウド(サーバ装置)に送信する(
図1の(4))。この際、分割画像の周囲の領域も送るように設計してもよい。これは、所望の被写体が分割画像からはみ出して存在するような場合における推論精度の向上に有効である。特に、所望の被写体が複数の分割画面に同じくらいの領域を占めるよう撮影されている場合である。複数の分割画面とは、例えば2つの分割画面である場合や、周囲の複数の分割画面であるような場合有効である。
【0018】
クラウド側では、エッジ装置から出力された分割画像G1-1,G1-5を受信すると、分割画像G1-1,G1-5ごとにデコードし(
図1の(5))、2-1~DNN2-9にそれぞれ入力する(
図1の(6))。各2-1~DNN2-9は、入力された分割画像G1-1,G1-5に対し、画像に写る物体のクラスごとの確率を推論する推論処理を行う(
図1の(6))。そして、クラウド側では、所定の後処理を行った後、各2-1~DNN2-9の推論結果を統合して(
図1の(7))、処理データである画像G1の処理結果として出力する。クラウド側の2-1~DNN2-9の数は一例であり、入力される分割画像の数に応じた数を設ければよい。
【0019】
このように、実施の形態に係る処理システムは、エッジ装置において、処理対象の画像を分割し、分割画像ごとに推論処理を含む各処理を並列に実行し、所定の条件を満たす分割画像のみをクラウド側に送信する。したがって、本実施の形態では、処理対象の画像全体を送信する場合と比して、エッジ装置からサーバ装置に対するデータ転送量を低減することが可能である。また、サーバ装置は、送信された分割画像のみについて推論処理を行う。このため、実施の形態に係る処理システムでは、処理対象の画像全体に対して推論処理を行う場合と比して、サーバ装置における演算負荷を低減することが可能である。
【0020】
[軽量モデル及び高精度モデル]
次に、DNN1、DNN2について説明する。
図2は、DNN1及びDNN2の一例を説明する図である。DNNは、データが入る入力層、入力層から入力されたデータを様々に変換する複数の中間層、確率や尤度など、いわゆる推論した結果を出力する出力層を有する。また、上述した確信度を出力するよう構成してもよい。クラウドに送る出力値とする中間層の出力値は、入力されるデータが匿名性を保つ必要がある場合は非可逆としてもよい。
【0021】
図2に示すように、処理システムは、DNN1-1~DNN1-9及びDNN2-1~DNN2-9として、それぞれ独立したDNN1a及びDNN2aを用いてもよい。例えば、DNN2aが既知の方法でトレーニングされた後、DNN1aが、DNN2aのトレーニングで使用された学習データを用いてトレーニングされてもよい。なお、DNN1-・・・,DNN2-・・・は、1以上であればいずれも数に制限はない。
【0022】
なお、DNN1a及びDNN2aには、精度とパフォーマンスが異なる同じタスクが割り当てられてもよいし、軽量モデル及び高精度モデルに代えて、低演算量のモデルと高演算量のモデルからなる異なるタスクが割り当てられてもよい。例えば、低演算量のモデルとして動体の検知を行い、高演算量のモデルとして被写体認識を行ってもよい。また、DNN1-1~DNN1-9は、分割された領域ごとに学習してもよく、或いは、共通するDNNであってもよい。さらに、DNN1-1~DNN1-9は、被写体認識とともに動体検出をおこなってもよい。
【0023】
[処理システム]
次に、処理システムの構成について説明する。
図3は、実施の形態に係る処理システムの構成の一例を模式的に示す図である。
【0024】
実施の形態に係る処理システム100は、サーバ装置20及びエッジ装置30を有する。また、サーバ装置20及びエッジ装置30は、ネットワークNを介して接続される。ネットワークNは、例えばインターネットである。例えば、サーバ装置20は、クラウド環境に設けられたサーバである。また、エッジ装置30は、例えば、IoT機器及び各種端末装置である。
【0025】
サーバ装置20及びエッジ装置30は、それぞれROM(Read Only Memory)、RAM(Random Access Memory)、CPU(Central Processing Unit)等を含むコンピュータ等に所定のプログラムが読み込まれて、CPUが所定のプログラムを実行することで実現される。また、GPUやVPU(Vision Processing Unit)、FPGA(Field Programmable Gate Array)、ASIC(Application Specific Integrated Circuit)や専用のAI(Artificial Intelligence)チップに代表されるいわゆるアクセラレータも用いられる。サーバ装置20及びエッジ装置30は、それぞれ、NIC(Network Interface Card)等を有し、LAN(Local Area Network)やインターネットなどの電気通信回線を介した他の装置との間の通信を行うことも可能である。
【0026】
図3に示すように、サーバ装置20は、複数のデコーダを有する復号化部21と、学習済みの高精度モデルである複数のDNN2-1~DNN2-9を用いて推論を行う推論部22(第2の推論部)と、統合部23とを有する。DNN2-1~DNN2-9は、モデルパラメータ等の情報を含む。なお、DNN2-1~DNN2-9の数は一例であり、入力される分割画像の数に応じた数を設ければよい。
【0027】
復号化部21は、第1デコーダ21-1、第2デコーダ21-2を有する。第1デコーダ21-1、第2デコーダ21-2は、エッジ装置30から送信された分割画像を受信し、デコード処理を行う。なお、復号化部21における第1デコーダ21-1、第2デコーダ21-2の数は一例であり、最小の構成とする場合、推論部22が有するデコーダ21の数は1となる。ここで、システム全体としての最小構成についても記載する。DNN1、エンコーダ、デコーダ、DNN2のいずれも1つが最小構成である。また、いずれの構成の数も可変としてよい。例えば、DNN1の数を2、エンコーダの数を4、その他を1というようにアシンメトリックに設計してもよい。
【0028】
推論部22は、DNN2を用いて、エッジ装置30から出力された分割画像に対する推論処理を実行する。推論部22は、エッジ装置30から出力された各分割画像を、DNN2-1~DNN2-9の入力とする。推論部22は、DNN2-1~DNN2-9の出力として推論結果(例えば、画像に写る物体のクラスごとの確率や前後の画像と比較した動体の有無)を取得する。推論部22は、推論用データの入力を受け付け、推論結果を出力する。各分割画像は、ラベルが未知のデータであるものとする。また、推論結果をユーザに返す場合、推論部22で得られた推論結果はエッジ装置30に伝送され、エッジ装置30からユーザに返してもよい。最小の構成とする場合、推論部22が有するDNN2の数は1となる。
【0029】
統合部23は、推論部22による各分割画像に対する各推論結果を統合し、統合した推論結果を、処理データである画像の処理結果として出力する。
【0030】
ここで、サーバ装置20及びエッジ装置30は、モデルカスケードを構成する。なお、モデルカスケードとは、2つないしそれ以上の独立したモデルを層状(2層ないし多層)につないで利用することを意図する。このため、推論部22は、常に推論を行うわけではない。推論部22は、エッジ装置30において、推論処理をサーバ装置20に実行させると判定された分割画像の入力を受け付けて、DNN2による推論を行う。
【0031】
エッジ装置30は、分割部31と、学習済みの軽量モデルであるDNN1-1~DNN1-N(Nは自然数)を有する推論部32(第1の推論部)と、判定部33と、符号化部34を有する。
【0032】
分割部31は、処理データを分割する。分割部31は、処理対象の画像を分割する。分割部分の大きさや分割数は、エッジ装置30及びサーバ装置20のリソースや、エッジ装置30とサーバ装置20との間の伝送路の伝送能力に応じて設定される。
【0033】
推論部32は、学習済みの軽量モデルである複数のDNN1-1~DNN1-Nを用いて推論を行う。推論部32は、分割部31が分割した分割データを、複数のDNN1-1~DNN1-Nのうち対応するDNNにそれぞれ入力して、各DNN1-1~DNN1-Nにおける推論を実行させる。なお、エッジ装置30におけるDNN1の数は一例であり、分割数よりも少ないDNN1を用いて、分割された画像を順番に処理するよう構成してもよい。
【0034】
DNN1-1~DNN1-Nは、画像に写る物体のクラスごとの確率を推論する被写体認識を行う。さらに、DNN1-1~DNN1-Nは、被写体認識とともに動体検出を行ってもよい。また、DNN1-1~DNN1-Nにおいて、動体検知のみを行ってもよい。
【0035】
また、推論部32は、動体検知を行うために、さらに軽量化されたモデルを用いてもよい。例えば、軽量化されたモデルとして、画像を符号化したデータに含まれる符号化データを用いて動体検出を行うモデルがある。具体的には、分割された領域のイントラ符号化されたブロックとインター符号化されたブロックとの割合に応じて動体検知の有無を決定するモデルや、他領域との符号量の比などを基に動体検出を行うモデルがある。また、現実空間におけるほぼ同じ位置を撮影した2枚の画像における、対応する領域同士の符号量に基づいて、これらの領域間の変化の有無を判定するモデルや、2枚の静止画像間の動きベクトルを基に被写体の動作の有無を取得するモデルがある。
【0036】
推論部32は、分割部31によって分割された分割画像を、DNN1-1~DNN1-Nのうち対応するDNN1-1~DNN1-Nにそれぞれ入力して、各DNN1-1~DNN1-Nにおける被写体認識を実行させる。さらに、推論部32は、DNN1-1~DNN1-Nに動体検出を実行させてもよい。推論部32は、複数の画像に対する推論結果(例えば、被写体認識結果、或いは、被写体認識結果及び動体検出)を出力する。
【0037】
判定部33は、複数の分割データのうち、各DNN1-1~DNN1-Nにおける推論結果が予め定められた結果と合致すると判定した分割データのみをサーバ装置20に出力する。判定部33は、複数の分割画像のうち、各DNN1-1~DNN1-Nにおいて、少なくとも所定の被写体を含むと判定した分割画像をサーバ装置20に出力して、推論用データに係る処理(推論処理)をサーバ装置20に実行させることを判定する第1判定部33-1~第N判定部33-Nを有する。第1判定部33-1~第N判定部33-Nの数は一例であり、分割画像に対して並列処理を実行できるように、推論部32が有するDNN1―1~DNN1-Nと同数であればよい。
【0038】
そして、第1判定部33-1~第N判定部33-Nは、それぞれ、所定の被写体を含み、かつ、分割画像に対する被写体認識の結果に対する確信度が所定の閾値以上である分割画像を選別して、サーバ装置20に出力してもよい。確信度は、各DNN1-1~DNN1-Nによる被写体認識の結果が正解であることの確からしさの度合いである。例えば、確信度は、各DNN1-1~DNN1-Nがそれぞれ出力した、各分割画像に写る物体のクラスごとの確率であってもよい。
【0039】
また、第1判定部33-1~第N判定部33-Nは、それぞれ、所定の被写体を含み、かつ、動体検出された分割画像を選別して、サーバ装置20に出力してもよい。或いは、第1判定部33-1~第N判定部33-Nは、それぞれ、所定の被写体を含み、かつ、動体検出された分割画像であって、分割画像に対する被写体認識の結果に対する確信度が所定の閾値以上である分割画像を選別して、サーバ装置20に出力する。なお、判定部33は、所定の被写体を含む分割画像がない場合、推論部32が推論した推論結果を出力する。
【0040】
符号化部34は、第1エンコーダ34-1~第Nエンコーダを有し、第1判定部33-1~第N判定部33-Nによってサーバ装置20に出力することを判定された各分割画像をそれぞれ量子化後、通信用のエンコード処理を施す符号化処理を行い、サーバ装置20に出力する。第1エンコーダ34-1~第Nエンコーダの数は一例であり、分割画像に対して並列処理を実行できるように、推論部32が有するDNN1―1~DNN1-Nと同数であってもよく、また、分割数よりも少ないエンコーダを用いて、分割された画像を順番に処理するよう構成してもよい。
【0041】
ここで、符号化部34は、サーバ装置20への送信を判定された分割画像ごとにエンコードするほか、分割画像を結合して1つの画像としてエンコードしてもよい。原画像と同じ解像度にする場合には、符号化部34は、サーバ装置20に送信しないと判定された分割画像を黒単色などに変換すればよい。この際、符号化部34は、符号化効率が高くなるように、サーバ装置20への送信を判定された各分割画像を、元の画像の配置と異なる位置に並び替えて、1つの画像としてエンコードしてもよい。具体的には、符号化部34は、サーバ装置20への送信を判定された分割画像が隣接するように配置を変える。
【0042】
[エッジ装置における処理]
図4は、
図3に示すエッジ装置30が実行する処理の流れを示すフローチャートである。
図4に示すように、まず、エッジ装置30において、処理対象の画像(例えば、画像G)の入力を受け付けると(ステップS1)、分割部31は、処理対象の画像を分割画像G-1~G-Nに分割し、DNN1-1~DNN1-Nに分配する(ステップS2)。
【0043】
推論部32では、DNN1-1~DNN1-Nに対し、分配された各分割画像G-1~G-Nをそれぞれ入力し(ステップS3-1~ステップS3-N)、被写体認識、または、被写体認識及び動体検出を実行させる(ステップS4-1~ステップS4-N)。
【0044】
第1判定部33-1~第N判定部33-Nは、各分割画像G-1~G-Nについて、所定の被写体を含むか否か、或いは、所定の被写体を含み、かつ、動体検出されたか否かを判定する(ステップS5-1~ステップS5-N)。
【0045】
所定の被写体を含む、或いは、所定の被写体を含み、かつ、動体検出されたと判定した場合(ステップS5-1~ステップS5-N:Yes)、第1判定部33-1~第N判定部33-Nは、各分割画像G-1~G-Nに対する被写体認識の結果に対する確信度を取得する(ステップS7-1~ステップS7-N)。そして、第1判定部33-1~第N判定部33-Nは、確信度が所定の閾値以上であるか否かを判定する(ステップS8-1~ステップS8-N)。
【0046】
確信度が所定の閾値以上であると判定された場合(ステップS8-1~ステップS8-N:Yes)、符号化部34は、確信度が所定の閾値以上であると判定された分割画像G-1~G-Nをそれぞれ量子化後、通信用のエンコード処理を実行し(ステップS9-1~ステップS9-N)、サーバ装置20に送信する(ステップS10-1~ステップS10-N)。
【0047】
第1判定部33-1~第N判定部33-Nは、所定の被写体を含まない判定した場合、或いは、所定の被写体を含むものの動体検出されない、すなわち、所定の被写体は写っているが動いてはいないと判定した場合(ステップS5-1~ステップS5-N:No)、または、確信度が所定の閾値以上でないと判定した場合(ステップS8-1~ステップS8-N:No)、この分割画像は送信不要であると判定する(ステップS6-1~ステップS6-N)。そして、判定部33は、全分割画像が送信不要であると判定した場合には(ステップS11:Yes)、推論部32が推論した推論結果を出力する(ステップS12)。また、判定部33は、全分割画像が送信不要でないと判定した場合には(ステップS11:No)、処理対象の画像Gに対する処理を終了する。
【0048】
[サーバ装置における処理]
図5は、
図3に示すサーバ装置20が実行する処理の流れを示すフローチャートである。
図5に示すように、サーバ装置20では、エッジ装置30から送信された分割画像G-i,G-jの入力を受け付けると(ステップS21-1,S21-2)、第1デコーダ21-1、第2デコーダ21-2が、分割画像G-i,G-jに対してそれぞれデコード処理を行う(ステップS22-1,S22-2)。
【0049】
そして、推論部22では、エッジ装置30から出力された分割画像G-i,G-jを、DNN2-1~DNN2-9に入力し、分割画像G-i,G-jに対する推論処理をそれぞれ実行する(ステップS23-1,S23-2)。
【0050】
統合部23は、分割画像G-i,G-jに対する各推論結果を統合し(ステップS24)、統合した推論結果を、処理データである画像の処理結果として出力する(ステップS25)。
【0051】
[実施の形態の効果]
実施の形態に係る処理システムは、エッジ装置30において、処理画像を分割した分割画像ごとに推論処理を含む各処理を並列に実行し、所定の条件を満たす分割画像のみをサーバ装置20に送信する。したがって、本実施の形態では、処理対象の画像全体をサーバ装置に送信する場合と比して、エッジ装置30からサーバ装置20に対するデータ転送量を低減することが可能である。また、サーバ装置20は、送信された分割画像のみについて推論処理を行う。このため、実施の形態に係る処理システムでは、処理対象の画像全体に対して推論処理を行う場合と比して、サーバ装置20における演算負荷を低減することが可能である。また、広く使われているYOLO等のモデルでは、入力する画像の最大解像度が決まっている場合がある。このようなモデルをエッジ装置に配置するDNN1-1~DNN1-Nとして選択する場合、対象画像を分割した画像毎にDNN1-1~DNN1-Nに入力することから、分割するサイズを上記最大解像度以下となるような設計とすることで、画像が持つ情報を劣化させることなく推論のために用いることができる。当該分割するサイズは、例えば被写体の認識やイベントの検知等の対象に応じて、当該対象を満たすサイズとすべきであることは言うまでもない。
【0052】
また、実施の形態では、エッジ装置30は、複数の分割画像のうち、所定の被写体を含み、かつ、分割画像に対する被写体認識についての確信度が、所定の閾値以上である分割画像を選別して、サーバ装置20に出力する。或いは、エッジ装置30は、複数の分割画像のうち、所定の被写体を含み、かつ、動体検出された分割画像であって、分割画像に対する被写体認識の結果に対する確信度が所定の閾値以上である分割画像を選別して、サーバ装置20に出力する。したがって、実施の形態では、高精度の推論処理が必要と考えられる分割画像のみを、エッジ装置30からサーバ装置20に送信することができる。
【0053】
また、サーバ装置20は、推論部22による各分割画像に対する各推論結果を統合し、統合した推論結果を処理対象の1枚の画像に対する推論結果として出力するため、ユーザは、処理対象の画像に対する推論結果を正確に認識することが可能である。
【0054】
なお、エッジ装置30は、分割画像にある被写体1体が写っている場合、被写体のバウンディングボックスに分類結果を付して、後段のサーバ装置20に送信してもよい。なお、被写体のバウンティングボックスとは、分割された画像であって被写体が写っている領域を意図する。エッジ装置30は、分割画像にある被写体1体が写っている場合、被写体が写っている対象部分を切り取って、切り取った部分画像に分類結果を付して、後段のサーバ装置20に送信してもよい。
【0055】
また、エッジ装置30は、分割画像に、種々の被写体が複数体写っている場合、各被写体のバウンディングボックスに分類結果を付して、全ての結果を後段のサーバ装置20に送信してもよい。エッジ装置30は、種々の被写体が複数体写っている場合、各被写体が写っている対象部分を切り取り、分割して別々に後段のサーバ装置20に送信してもよい。
【0056】
また、エッジ装置30は、分割画像に、種々の被写体が複数体写っている場合、特定の分類に属する被写体のバウンディングボックスに分類結果を付して、それぞれ後段のサーバ装置20に送信してもよい。エッジ装置30は、分割画像に、種々の被写体が複数体写っている場合、各被写体が写っている対象部分を切り取り、分割して別々に後段のサーバ装置20に送信してもよい。また、エッジ装置30は、特定の分類の被写体が写る分割画像を選別して、後段のサーバ装置20に送信してもよい。例えば、エッジ装置30は、人と犬とが写っている画像である場合、人のみが写る分割画像を、後段のサーバ装置20に送信してもよい。
【0057】
[変形例1]
実施の形態では、処理データが、1枚の画像である場合を例に説明したが、処理データは、時系列に撮像された複数の画像(時系列画像)であってもよい。
図6は、実施の形態の変形例1に係る処理システムの処理方法の概要を説明する図である。
【0058】
図6に示すように、エッジ装置30は、時系列画像である画像Gt11~Gt13が処理データとして入力された場合、各画像Gt11~Gt13を、DNN1t-1~DNN1t-3にそれぞれ分配して、DNN1t-1~DNN1t-3に被写体認識と動体検出とを実行させる(
図6の(1))。なお、DNN1t-1~DNN1t-3の数は一例であり、エッジ装置30のリソース等に応じて設定される。DNN1t-1~DNN1t-3は、一つの共通するDNNであってもよい。また、DNN1t-1~DNN1t-3は、DNN1-1~DNN1―Nと同じDNNであってもよく、また、異なるDNNであってもよい。また、各DNN1t-1~DNN1t-3は、動体検出を省略することも可能である。
【0059】
続いて、エッジ装置30は、DNN1t-1~DNN1t-3のうち、所定の被写体を含み、かつ、動体検出された画像Gt11,Gt12を選別する。続いて、エッジ装置30は、画像に対する被写体認識の結果に対する確信度が所定の閾値以上である画像Gt11,Gt12を送信対象であると判定する(
図6の(2))。
【0060】
そして、エッジ装置30は、選別された画像Gt11,Gt12に対し、画像Gt11,Gt12ごとにエンコード処理を行い、クラウド(サーバ装置20)に送信する(
図6の(3))。なお、本変形例1では、エッジ装置30は、
図3に示す分割部31を省略することができる。また、各DNN1t-1~DNN1t-3が動体検出を省略した場合には、エッジ装置30は、所定の被写体を含み、かつ、確信度が所定の閾値以上である画像を送信対象として選別すればよい。
【0061】
そして、クラウド側のサーバ装置20では、エッジ装置30から出力された画像Gt11,Gt12を受信すると、画像Gt11,Gt12ごとにデコードし(
図6の(4))、DNN2-1~DNN2-9にそれぞれ入力する。サーバ装置20では、各DNN2-1~DNN2-9が、入力された画像Gt11,Gt12に対し、画像に写る物体のクラスごとの確率を推論する推論処理を行う(
図6の(5))。そしてサーバ装置20は、所定の後処理を行った後、各DNN2-1~DNN2-9の推論結果を出力する。なお、本変形例1では、サーバ装置20は、
図3に示す統合部23を省略することができる。
【0062】
このように、処理データが時系列に沿って撮像された複数の画像であっても、エッジ装置30では、この複数の画像から、高精度な推論処理が必要である画像のみを選別して、サーバ装置20に送信するため、実施の形態と同様の効果を奏する。
【0063】
[変形例2]
また、処理システムは、時系列に沿って撮像された複数の画像から一部の画像を選別後、選別した画像を分割して、高精度な推論処理が必要である分割画像を選別し、選別した分割画像のみをサーバ装置に送信してもよい。
【0064】
図7は、実施の形態の変形例2に係る処理システムのエッジ装置における処理方法の概要を説明する図である。
図8は、実施の形態の変形例2に係る処理システムの構成の一例を模式的に示す図である。
【0065】
図7及び
図8に示すように、実施の形態の変形例2に係る処理システム100Bにおいて、エッジ装置30Bに、時系列画像である入力画像群(例えば、画像Gt11~Gt13)が処理データとして入力された場合、推論部32Bは、各画像を、DNN1t-1~DNN1t-M(Mは自然数)にそれぞれ分配して、DNN1t-1~DNN1t-Mに被写体認識と動体検出とを実行させる(
図7の(1))。
【0066】
続いて、判定部33Bでは、第1判定部33-1~第M判定部33-Mが、DNN1t-1~DNN1t-Mの推論結果を基に、所定の被写体を含み、かつ、動体検出された画像(例えば、画像Gt11,Gt12)を選別する。そして、第1判定部33-1~第M判定部33-M(例えば、第1判定部33-1、第2判定部33-2)は、画像Gt11,Gt12の確信度が所定の閾値以上であるか否かを判定し、送信対象の画像(例えば、画像Gt11)を選別する(
図7の(2))。なお、各DNN1t-1~DNN1t-Mは、動体検出を省略することも可能である。各DNN1t-1~DNN1t-Mが動体検出を省略した場合には、第1判定部33-1~第M判定部33-Mは、所定の被写体を含み、かつ、確信度が所定の閾値以上である画像を、送信対象として選別すればよい。
【0067】
そして、エッジ装置では、分割部31が、この画像Gt11を、例えば9等分に分割し、分割画像Gt11-1~Gt11-9を、推論部32のDNN1-1~DNN1-N(例えば、DNN1-1~DNN1-9)にそれぞれ分配する(
図7の(3))。
【0068】
続いて、各DNN1-1~DNN1-Nは、入力された分割画像(例えば、分割画像Gt11-1~Gt11-9)に対して、画像に写る物体のクラスごとの確率を推論する被写体認識と動体検出とを行う(
図7の(4))。
【0069】
判定部33では、第1判定部33-1~第N判定部33-Nが、DNN1-1~DNN1-Nの推論結果を基に、所定の被写体を含み、かつ、動体検出された分割画像(例えば、分割画像Gt11-1,Gt11-5)を選別し、この分割画像G1-1,G1-5の確信度を取得する。
【0070】
続いて、第1判定部33-1~第N判定部33-Nは、確信度が所定の閾値以上である分割画像Gt11-1,Gt11-5を送信対象であると判定する(
図7の(5))。符号化部34では、分割画像Gt11-1,Gt11-5をそれぞれ量子化後、エンコード処理を行い、クラウド(サーバ装置20)に送信する(
図7の(6))。なお、各DNN1-1~DNN1-Nは、動体検出を省略することも可能である。各DNN1-1~DNN1-Nが動体検出を省略した場合には、第1判定部33-1~第N判定部33-Nは、所定の被写体を含み、かつ、確信度が所定の閾値以上である分割画像を送信対象として選別すればよい。
【0071】
このように、実施の形態の変形例2では、エッジ装置30Bにおいて、推論部32Bが、時系列に沿って撮影された複数の画像をそれぞれ、各DNN1t-1~DNN1t-Mにそれぞれ入力して被写体認識を実行させ、判定部33Bが、複数の画像のうち、各DNN1t-1~DNN1t-Mにおいて少なくとも所定の被写体を含むことを認識された画像を選別する。
【0072】
そして、エッジ装置30Bでは、分割部31が、判定部33Bによって選別された画像を分割し、推論部32が、複数の分割画像を、DNN1-1~DNN1-Nのうち対応するDNN1にそれぞれ入力して、各DNN1-1~DNN1-Nにおける被写体認識を実行させる。続いて、エッジ装置30Bでは、判定部33が、複数の分割画像のうち、各DNN1-1~DNN1-Nにおいて少なくとも所定の被写体を含み、かつ、確信度が所定の閾値以上であると判定された分割画像をサーバ装置20に出力する。
【0073】
上記のように、エッジ装置30Bは、複数の画像から、高精度な推論処理が必要である画像のみを選別後、選別した画像をさらに分割して、高精度な推論処理が必要である分割画像を選別し、選別した分割画像のみをサーバ装置20に送信することで、データ転送量とサーバ装置20における演算負荷とをより低減するようにしてもよい。
【0074】
[変形例3]
データ転送量と全体的な演算負荷をさらに低減する手法を示す。以下では、DNN1で推論を行うよう記載しているが、DNN1-1~DNN1-Nいずれで推論が行われてもよい。ある時点Tにおいて、DNN1-1で推論を行った結果、動体を検出したとする。この動体に対応するバウンティングボックスよりも広いかつ画像全体ではない一部である領域内において、T-n・・・T-1の時点において被写体を検出していた場合、ある時点Tにおいて検出した動体は、T-n・・T-1の時点において検出していた被写体であると推論するようにしてもよい。
【0075】
同様の推論を動体として、DNN2に伝送されてきた分割画像を対象として行ってもよい。さらに、上記領域が現実空間においてほぼ同じ空間を示している場合、複数のDNN1-k(1≦k≦N)から伝送されていた分割画像を対象として同様の推論を行ってもよい。
【0076】
なお、本実施の形態では、エッジ装置30,30Bまたはサーバ装置20が複数であってもよく、また、エッジ装置30,30Bとサーバ装置20とがいずれも複数であってもよい。
【0077】
また、本実施の形態では、画像を処理する例について説明したが、これに限らず、処理データはセンサの検知結果等であってもよく、また、推論部32、推論部22は、例えば、所定の物体の有無を検出する物体検出を行ってもよい。
【0078】
[システム構成等]
図示した各装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各装置の分散・統合の具体的形態は図示のものに限られず、その全部又は一部を、各種の負荷や使用状況等に応じて、任意の単位で機能的又は物理的に分散・統合して構成することができる。さらに、各装置にて行なわれる各処理機能は、その全部又は任意の一部が、CPU及び当該CPUにて解析実行されるプログラムにて実現され、あるいは、ワイヤードロジックによるハードウェアとして実現され得る。
【0079】
また、本実施形態において説明した各処理のうち、自動的に行われるものとして説明した処理の全部又は一部を手動的におこなうこともでき、あるいは、手動的におこなわれるものとして説明した処理の全部又は一部を公知の方法で自動的におこなうこともできる。この他、上記文書中や図面中で示した処理手順、制御手順、具体的名称、各種のデータやパラメータを含む情報については、特記する場合を除いて任意に変更することができる。
【0080】
[プログラム]
図9は、プログラムが実行されることにより、エッジ装置30,30B及びサーバ装置20が実現されるコンピュータの一例を示す図である。コンピュータ1000は、例えば、メモリ1010、CPU1020を有する。また、演算を補助するために前述したアクセラレータを備えてもよい。また、コンピュータ1000は、ハードディスクドライブインタフェース1030、ディスクドライブインタフェース1040、シリアルポートインタフェース1050、ビデオアダプタ1060、ネットワークインタフェース1070を有する。これらの各部は、バス1080によって接続される。
【0081】
メモリ1010は、ROM(Read Only Memory)1011及びRAM1012を含む。ROM1011は、例えば、BIOS(Basic Input Output System)等のブートプログラムを記憶する。ハードディスクドライブインタフェース1030は、ハードディスクドライブ1090に接続される。ディスクドライブインタフェース1040は、ディスクドライブ1100に接続される。例えば磁気ディスクや光ディスク等の着脱可能な記憶媒体が、ディスクドライブ1100に挿入される。シリアルポートインタフェース1050は、例えばマウス1110、キーボード1120に接続される。ビデオアダプタ1060は、例えばディスプレイ1130に接続される。
【0082】
ハードディスクドライブ1090は、例えば、OS(Operating System)1091、アプリケーションプログラム1092、プログラムモジュール1093、プログラムデータ1094を記憶する。すなわち、エッジ装置30,30B及びサーバ装置20の各処理を規定するプログラムは、コンピュータにより実行可能なコードが記述されたプログラムモジュール1093として実装される。プログラムモジュール1093は、例えばハードディスクドライブ1090に記憶される。例えば、エッジ装置30,30B及びサーバ装置20における機能構成と同様の処理を実行するためのプログラムモジュール1093が、ハードディスクドライブ1090に記憶される。なお、ハードディスクドライブ1090は、SSD(Solid State Drive)により代替されてもよい。
【0083】
また、上述した実施形態の処理で用いられる設定データは、プログラムデータ1094として、例えばメモリ1010やハードディスクドライブ1090に記憶される。そして、CPU1020が、メモリ1010やハードディスクドライブ1090に記憶されたプログラムモジュール1093やプログラムデータ1094を必要に応じてRAM1012に読み出して実行する。
【0084】
なお、プログラムモジュール1093やプログラムデータ1094は、ハードディスクドライブ1090に記憶される場合に限らず、例えば着脱可能な記憶媒体に記憶され、ディスクドライブ1100等を介してCPU1020によって読み出されてもよい。あるいは、プログラムモジュール1093及びプログラムデータ1094は、ネットワーク(LAN(Local Area Network)、WAN(Wide Area Network)等)を介して接続された他のコンピュータに記憶されてもよい。そして、プログラムモジュール1093及びプログラムデータ1094は、他のコンピュータから、ネットワークインタフェース1070を介してCPU1020によって読み出されてもよい。
【0085】
以上、本発明者によってなされた発明を適用した実施形態について説明したが、本実施形態による本発明の開示の一部をなす記述及び図面により本発明は限定されることはない。すなわち、本実施形態に基づいて当業者等によりなされる他の実施形態、実施例及び運用技術等は全て本発明の範疇に含まれる。
【符号の説明】
【0086】
20 サーバ装置
21 復号化部
22,32,32B 推論部
23 統合部
30 エッジ装置
31 分割部
33,33B 判定部
34 符号化部
100,100B 処理システム