(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024009487
(43)【公開日】2024-01-23
(54)【発明の名称】画像処理システム及び画像処理方法
(51)【国際特許分類】
H04N 19/115 20140101AFI20240116BHJP
G06V 10/94 20220101ALI20240116BHJP
G06T 7/00 20170101ALI20240116BHJP
H04N 19/136 20140101ALI20240116BHJP
H04N 19/156 20140101ALI20240116BHJP
H04N 19/172 20140101ALI20240116BHJP
【FI】
H04N19/115
G06V10/94
G06T7/00 350B
H04N19/136
H04N19/156
H04N19/172
【審査請求】未請求
【請求項の数】7
【出願形態】OL
(21)【出願番号】P 2022111047
(22)【出願日】2022-07-11
(71)【出願人】
【識別番号】000005223
【氏名又は名称】富士通株式会社
(74)【代理人】
【識別番号】100092978
【弁理士】
【氏名又は名称】真田 有
(74)【代理人】
【識別番号】100189201
【弁理士】
【氏名又は名称】横田 功
(72)【発明者】
【氏名】雷 旭穎
【テーマコード(参考)】
5C159
5L096
【Fターム(参考)】
5C159MA05
5C159MD02
5C159ME01
5C159TA60
5C159TB04
5C159TC02
5C159TC41
5C159TC51
5C159TD04
5C159UA02
5L096AA06
5L096BA02
5L096CA04
5L096EA24
5L096FA33
5L096FA64
5L096GA08
5L096HA11
5L096JA11
5L096KA04
(57)【要約】
【課題】複数の機器が取得した複数の入力画像に対する推論処理を複数のサーバが行なう画像処理システムにおいて、推論処理を入力画像に応じて適切に制御する。
【解決手段】第1機器2は、機械学習モデルの前段の層に第1入力画像11を入力して第1特徴量12を取得し、前記第1特徴量の統計情報13を算出して制御装置4に送信し、前記第1特徴量を、前記制御装置が決定したネットワーク帯域に基づき、複数のサーバ3のうちの前記制御装置が決定した第1サーバ3に送信し、前記複数の機器及び前記複数のサーバの制御を行なう前記制御装置は、前記第1機器から受信した前記統計情報と、前記複数のサーバの各々の性能とに基づき、前記第1機器に割り当てる前記ネットワーク帯域と、前記第1サーバと、を決定し、前記第1サーバは、前記機械学習モデルの後段の層に、前記第1機器から受信した前記第1特徴量を入力して推論結果14を取得する。
【選択図】
図4
【特許請求の範囲】
【請求項1】
入力画像を取得する複数の機器と、
複数の前記入力画像に対する推論処理を行なう複数のサーバと、
前記複数の機器及び前記複数のサーバの制御を行なう制御装置と、を備え、
前記複数の機器のうちの第1入力画像を取得する第1機器は、
入力される画像に対する推論処理を実行する機械学習モデルの前段の層に、前記第1入力画像を入力して前記第1入力画像の第1特徴量を取得し、
前記第1特徴量の統計情報を算出して前記制御装置に送信し、
前記第1特徴量を、前記制御装置が決定したネットワーク帯域に基づき、前記複数のサーバのうちの前記制御装置が決定した第1サーバに送信し、
前記制御装置は、
前記第1機器から受信した前記統計情報と、前記複数のサーバの各々の性能とに基づき、前記第1機器に割り当てる前記ネットワーク帯域と、前記第1サーバと、を決定し、
前記第1サーバは、
前記機械学習モデルの後段の層に、前記第1機器から受信した前記第1特徴量を入力して推論結果を取得する、
画像処理システム。
【請求項2】
前記複数のサーバの各々は、
受信した特徴量に基づく推論結果を前記制御装置に送信し、
前記制御装置は、
前記決定する処理において、受信した第1推論結果であって、前記第1入力画像よりも時間的に先行する第2入力画像の第2特徴量に基づく前記第1推論結果にさらに基づき、前記ネットワーク帯域と、前記第1サーバと、を決定する、
請求項1に記載の画像処理システム。
【請求項3】
前記推論処理は、物体の検出処理であり、
前記制御装置は、前記決定する処理において、
前記統計情報と、前記第2入力画像における物体の検出数を示す前記第1推論結果とに基づき、前記第1入力画像における物体の検出数を推定し、
前記統計情報と、前記複数のサーバの各々の性能と、前記第1入力画像における物体の検出数とに基づき、前記ネットワーク帯域と、前記第1サーバと、を決定する、
請求項2に記載の画像処理システム。
【請求項4】
前記第1機器は、前記第1特徴量を送信する処理において、
前記第1特徴量を符号化し、
符号化した前記第1特徴量を、前記制御装置が決定した前記ネットワーク帯域に基づき量子化し、
量子化した前記第1特徴量を前記第1サーバに送信する、
請求項1~請求項3のいずれか1項に記載の画像処理システム。
【請求項5】
前記第1機器は、前記統計情報を算出する処理において、
前記符号化した前記第1特徴量の前記統計情報を算出する、
請求項4に記載の画像処理システム。
【請求項6】
前記第1機器は、前記第1特徴量を取得する処理において、
画像を固定位置から撮像する撮像装置により撮像された前記第1入力画像と、前記撮像装置により撮像される画像の背景画像との差分画像を、前記機械学習モデルの前記前段の層に入力して前記第1特徴量を取得する、
請求項1~請求項3のいずれか1項に記載の画像処理システム。
【請求項7】
入力画像を取得する複数の機器と、
複数の前記入力画像に対する推論処理を行なう複数のサーバと、
前記複数の機器及び前記複数のサーバの制御を行なう制御装置と、を備える画像処理システムにおける画像処理方法であって、
前記複数の機器のうちの第1入力画像を取得する第1機器は、
入力される画像に対する推論処理を実行する機械学習モデルの前段の層に、前記第1入力画像を入力して前記第1入力画像の第1特徴量を取得し、
前記第1特徴量の統計情報を算出して前記制御装置に送信し、
前記第1特徴量を、前記制御装置が決定したネットワーク帯域に基づき、前記複数のサーバのうちの前記制御装置が決定した第1サーバに送信し、
前記制御装置は、
前記第1機器から受信した前記統計情報と、前記複数のサーバの各々の性能とに基づき、前記第1機器に割り当てる前記ネットワーク帯域と、前記第1サーバと、を決定し、
前記第1サーバは、
前記機械学習モデルの後段の層に、前記第1機器から受信した前記第1特徴量を入力して推論結果を取得する、
画像処理方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、画像処理システム及び画像処理方法に関する。
【背景技術】
【0002】
カメラ等のエッジ端末(機器)が取得したフレーム画像に基づく推論処理、例えば人物等の物体を検出する物体検出処理を、クラウドサーバ等のエッジサーバ(サーバ)にオフロードする技術が知られている。
【0003】
上述した技術では、エッジ端末からエッジサーバにフレーム画像を送信するためのネットワーク帯域を複数のエッジ端末間で均等に割り当てることが行なわれる場合がある。
【0004】
フレーム画像の伝送手法としては、例えば、フレーム間の差分を伝送することで通信量を削減する手法が知られている。
【先行技術文献】
【特許文献】
【0005】
【特許文献1】米国特許出願公開第2011/0255590号明細書
【発明の概要】
【発明が解決しようとする課題】
【0006】
上述した技術では、動きのある物体の数が多い(フレーム間の差分が大きい)フレーム画像を送信するエッジ端末に割り当てられるネットワーク帯域が不足する場合がある。ネットワーク帯域が不足すると、当該フレーム画像の伝送により画質が劣化し、サーバでの物体検出精度が低下することがある。
【0007】
また、物体検出処理を行なうエッジサーバを各エッジ端末に固定的に割り当てると、入力画像に応じて特定のエッジサーバに負荷が集中し、リアルタイムの物体検出ができない場合がある。
【0008】
このように、上述した技術では、物体検出処理等の推論処理が適切に実行できない場合がある。
【0009】
1つの側面では、本発明は、複数の機器が取得した複数の入力画像に対する推論処理を複数のサーバが行なう画像処理システムにおいて、推論処理を入力画像に応じて適切に制御することを目的の1つとする。
【課題を解決するための手段】
【0010】
1つの側面では、画像処理システムは、入力画像を取得する複数の機器と、複数の前記入力画像に対する推論処理を行なう複数のサーバと、前記複数の機器及び前記複数のサーバの制御を行なう制御装置と、を備えてよい。前記複数の機器のうちの第1入力画像を取得する第1機器は、入力される画像に対する推論処理を実行する機械学習モデルの前段の層に、前記第1入力画像を入力して前記第1入力画像の第1特徴量を取得してよい。また、前記第1機器は、前記第1特徴量の統計情報を算出して前記制御装置に送信し、前記第1特徴量を、前記制御装置が決定したネットワーク帯域に基づき、前記複数のサーバのうちの前記制御装置が決定した第1サーバに送信してよい。前記制御装置は、前記第1機器から受信した前記統計情報と、前記複数のサーバの各々の性能とに基づき、前記第1機器に割り当てる前記ネットワーク帯域と、前記第1サーバと、を決定してよい。前記第1サーバは、前記機械学習モデルの後段の層に、前記第1機器から受信した前記第1特徴量を入力して推論結果を取得してよい。
【発明の効果】
【0011】
1つの側面では、本発明は、複数の機器が取得した複数の入力画像に対する推論処理を複数のサーバが行なう画像処理システムにおいて、推論処理を入力画像に応じて適切に制御することができる。
【図面の簡単な説明】
【0012】
【
図1】第1比較例に係るシステムの構成例を示すブロック図である。
【
図2】第2比較例に係るシステムの構成例を示すブロック図である。
【
図3】一実施形態に係るシステムの構成例を示すブロック図である。
【
図4】一実施形態に係るシステムのソフトウェア構成例を示すブロック図である。
【
図5】一実施形態に係る物体検出モデルの一例を示す図である。
【
図6】ネットワーク帯域に基づく量子化処理及び逆量子化処理の一例を説明するための図である。
【
図7】送信先の決定処理の一例を説明するための図である。
【
図8】フレーム画像と特徴量との一例を示す図である。
【
図9】一実施形態に係るシステムで実行される各処理のタイミングチャートの一例を示す図である。
【
図10】一実施形態に係るエッジ端末の動作例を説明するフローチャートである。
【
図11】一実施形態に係るエッジサーバの動作例を説明するフローチャートである。
【
図12】一実施形態に係る制御サーバの動作例を説明するフローチャートである。
【
図13】第1変形例に係るエッジ端末のソフトウェア構成例を示すブロック図である。
【
図14】一実施形態に係るコンピュータのハードウェア構成例を示すブロック図である。
【発明を実施するための形態】
【0013】
以下、図面を参照して本発明の実施の形態を説明する。ただし、以下に説明する実施形態は、あくまでも例示であり、以下に明示しない種々の変形又は技術の適用を排除する意図はない。例えば、本実施形態を、その趣旨を逸脱しない範囲で種々変形して実施することができる。なお、以下の説明で用いる図面において、同一符号を付した部分は、特に断らない限り、同一若しくは同様の部分を表す。
【0014】
〔A〕比較例に係るシステムの説明
図1は、第1比較例に係るシステム100の構成例を示すブロック図である。
図1に示すように、システム100は、複数のエッジ端末120と、複数のエッジサーバ130とを備える。以下、特定のエッジ端末120を示す場合は、エッジ端末#0~#3(
図1参照)と表記し、特定のエッジサーバ130を示す場合は、エッジサーバ#0,#1(
図1参照)と表記する。
【0015】
エッジ端末120は、カメラ等の撮像装置と接続された端末であり、撮像装置からフレーム画像110を取得し、取得したフレーム画像110をいずれかのエッジサーバ130に送信する。フレーム画像110は、
図1に顔のマークで示すように、例えば人物を含むカメラ映像における1フレームの画像であってよい。
【0016】
エッジサーバ130は、例えばクラウドサーバ等のコンピュータであり、エッジ端末120から受信したフレーム画像110に対する物体検出処理を行ない、物体、例えば人物の検出結果を出力する。
【0017】
図1に示すシステム100において、例えばカメラ映像に含まれる人物が動いている場合、各フレーム画像110に含まれる人物の位置及び数が変動する。
【0018】
このため、エッジ端末120とエッジサーバ130との間のネットワーク帯域を、エッジ端末120間で均等に割り当てると、例えば人物が多く映っているフレーム画像110を送信するエッジ端末#1のネットワーク帯域が不足する。
【0019】
例えば、エッジ端末120は、フレーム画像110を符号化する際に、B,Pフレームにおいて、フレーム間の差分画像を算出し、当該差分画像を伝送することにより、データ量を削減する。しかし、エッジ端末#1のように、カメラ映像に映っている人物の数が多くなると、現在フレームと前フレームとの差分が大きくなるため、伝送する差分画像のデータ量が大きくなり、伝送に用いるネットワーク帯域が増加する。
【0020】
不足したネットワーク帯域において、エッジ端末#1からフレーム画像110を伝送すると、画質が劣化し、エッジサーバ#0での物体検出精度が低下する場合がある。
【0021】
また、エッジ端末120とエッジサーバ130とを固定的に割り当てる場合、特定のエッジサーバ130に負荷が集中し、リアルタイムの解析処理(検出処理)が実現できない場合がある。
【0022】
エッジサーバ130が物体検出処理を行なう物体検出モデルとして、YOLO v3を利用する場合を想定する。YOLO v3は、入力画像に含まれる物体の位置を検出し、その物体の名前を予測するモデルである。YOLO v3では、入力画像に対して、入力画像に含まれる全ての物体の位置(バウンディングボックス)の検出と、各物体が属するカテゴリの分類とが算出されるため、物体の数が増加するほど、処理負荷が高くなる。
【0023】
例えば、
図1では、エッジサーバ#0がエッジ端末#0及び#1からのフレーム画像110を処理し、エッジサーバ#1がエッジ端末#2及び#3からのフレーム画像110を処理する。この場合、エッジ端末#0及び#1は、いずれも、エッジ端末#2及び#3よりも人物を多く含むフレーム画像110を送信するため、エッジサーバ#0における物体検出処理の処理負荷が高まる、換言すれば多くの演算パワーが使用される。
【0024】
図2は、第2比較例に係るシステム200の構成例を示すブロック図である。システム200は、複数のエッジ端末120及び複数のエッジサーバ130に加えて、制御サーバ240を備える。
【0025】
制御サーバ240は、各エッジサーバ130による物体検出処理の解析結果に基づき、各エッジ端末120に対するフィードバック制御を行なう。
【0026】
例えば、制御サーバ240は、以前のフレーム画像110の解析結果に基づく物体の検出数に応じて、各エッジ端末120に分配するネットワーク帯域と、各エッジ端末120からのフレーム画像110の送信先となるエッジサーバ130とを動的に制御する。
【0027】
これにより、
図2に例示するように、エッジサーバ#0は、エッジ端末#0,#2,#3からのフレーム画像110を処理し、エッジサーバ#1は、エッジ端末#1からのフレーム画像110を処理するように制御でき、物体の検出数の観点で負荷を分散できる。
【0028】
しかし、システム200では、制御部240によるフィードバック制御において、物体の検出数の算出,ネットワークの伝送等において遅延が発生し得る。例えば、カメラ映像が30fps(frames per second)である場合、カメラからのフレーム画像110の出力間隔は33msec(ミリ秒)となる。一方、遅延は、例えば100msec等になる。このため、フィードバック制御は、例えば3フレーム以上の前のフレーム画像110に基づく制御となる。
【0029】
このような遅延が発生すると、動いている物体、すなわち人流の変化にフィードバック制御が追い付けず、フィードバック制御の精度が低下することがある。この場合、
図1に示すシステム100において発生するネットワーク帯域の不足,エッジサーバ130での処理負荷の増加等を解消できない場合がある。
【0030】
〔B〕一実施形態に係るシステムの構成例
図3は、一実施形態に係るシステム1の構成例を示すブロック図である。システム1は、複数のエッジ端末2が取得したフレーム画像11に対する推論処理を複数のエッジサーバ3が行なう、画像処理システム又は画像推論システムの一例である。
【0031】
システム1は、例えば、入力される画像に対して機械学習モデルにより推論処理を行ない、推論結果を利用した種々の処理を実行するシステムに適用されてよい。例えば、システム1は、工場に設置されたカメラで撮影された映像を機械学習モデルにより認識し、不良品の検出や稼働機器の異常検出等を行ない、品質向上と生産性の向上を図るシステムに適用されてもよい。或いは、システム1は、商業施設において人の流れ(人流)をリアルタイムで分析し、分析結果を、マーケティングや作業の効率化、集客施策やコロナ中の密な状態を避ける等の目的に利用するシステム等に適用されてもよい。
【0032】
一実施形態では、推論処理が物体検出処理である場合を例に挙げるが、これに限定されるものではない。
図3に示すように、システム1は、複数のエッジ端末2,複数のエッジサーバ3及び制御サーバ4を備える。
【0033】
複数のエッジ端末2は、入力画像を取得する複数の機器の一例である。エッジ端末2は、カメラ20と接続された端末であり、カメラ20からフレーム画像11を取得する。カメラ20は、撮像装置の一例であり、フレーム画像11は、入力画像の一例である。なお、エッジ端末2の機能は、カメラ20が備える機能、例えば通信機能の一部であってもよい。この場合、カメラ20がエッジ端末2として動作してよい。
【0034】
複数のエッジサーバ3は、複数の入力画像に対する推論処理を行なう複数のサーバの一例である。エッジサーバ3は、例えばクラウドサーバ等のコンピュータであり、エッジ端末2から受信するフレーム画像11に基づく情報に基づき、物体検出処理を行なう。物体検出処理は、推論処理の一例であり、例えば、訓練済みの物体検出モデル等の機械学習モデルに情報を入力することにより実行されてよい。
【0035】
制御サーバ4は、複数のエッジ端末2及び複数のエッジサーバ3の制御を行なう制御装置の一例である。
【0036】
制御サーバ4は、複数のエッジ端末2の各々から、フレーム画像11の特徴量の統計情報を受信し、受信した統計情報と、複数のエッジサーバ3の各々の性能とに基づき、エッジ端末2に割り当てるネットワーク帯域と、送信先のエッジサーバ3とを決定する。
【0037】
送信先のエッジサーバ3とは、エッジ端末2から受信した統計情報の算出元となるフレーム画像11の送信先となるエッジサーバ3である。統計情報としては、例えば、特徴量の分散値が挙げられる。エッジサーバ3の性能としては、例えば、エッジサーバ3の演算パワー、一例として、プロセッサ等のハードウェア資源の処理性能を示す指標が挙げられる。エッジサーバ3は、システム1の運用開始前又は後のタイミング,定期的なタイミング等の所定のタイミングで、性能を示す情報を制御サーバ4に送信してよい。
【0038】
このように、制御サーバ4は、フィードフォワード制御を実行する。なお、
図3に破線で示すように、制御サーバ4は、各エッジサーバ3による解析結果(推論結果)に基づき、各エッジ端末2に対するフィードバック制御を行なってもよい。一例として、制御サーバ4は、以前のフレーム画像11の推論結果に基づく物体の検出数に基づき、各エッジ端末2から取得した統計情報と、複数のエッジサーバ3の各々の性能とに基づくフィードフォワード制御を補正してもよい。
【0039】
〔C〕ソフトウェア構成例
図4は、一実施形態に係るシステム1のソフトウェア構成例を示すブロック図である。
図4の例では、システム1は、N+1台(Nは1以上の整数)のエッジ端末2,M+1台(Mは1以上の整数)のエッジサーバ3及び制御サーバ4を備える。
【0040】
複数のエッジ端末2と複数のエッジサーバ3との間は、ネットワーク(NW)1aにより相互に通信可能に接続されてよい。NW1aは、LAN(Local Area Network)及びインターネットの一方又は双方を含む種々のNWにより形成されてよい。NW1aは、有線NW及び無線NWの一方又は双方を含んでよい。
【0041】
なお、エッジ端末2と制御サーバ4との間、及び、エッジサーバ3と制御サーバ4との間の一方又は双方は、NW1aにより相互に通信可能に接続されてもよいし、NW1aとは異なるNWにより相互に通信可能に接続されてもよい。
【0042】
図4に例示するように、エッジ端末2は、画像取得部21,モデル前段処理部22,分散値算出部23,特徴量符号化部24,量子化部25及び送信部26を備えてよい。
【0043】
画像取得部21は、カメラ20により撮像されたフレーム画像11を取得する。フレーム画像11は、時系列的に連続する複数の画像、例えばカメラ映像等の動画像のうちの1つの画像である。
【0044】
モデル前段処理部22は、フレーム画像11に対する推論処理を行なう訓練済み機械学習モデルのうちの、前段部分における処理を実行し、フレーム画像11の特徴量12を出力する。特徴量12の一例としては、特徴量マップが挙げられる。
【0045】
機械学習モデルの前段部分とは、例えば、機械学習モデルの最初の層から、フレーム画像11の特徴量12が出力される層、例えば畳み込み層までの1以上の層(レイヤ)が挙げられる。換言すれば、モデル前段処理部22は、フレーム画像11を機械学習モデルに入力し、機械学習モデルの中間層の出力データである特徴量12を取得する。
【0046】
機械学習モデルとしては、例えば、YOLO等の物体検出(検知)モデルが挙げられる。一実施形態では、物体検出モデルとして、YOLO v3が用いられる場合を例に挙げるが、これに限定されるものではなく、機械学習モデルとしては、YOLOの他のバージョン、或いは、YOLO以外の種々の物体検出モデルが用いられてもよい。また、物体検出モデルに限らず、機械学習モデルは、種々のDNN(Deep Neural Network)の訓練済みAI(Artificial Intelligence)モデルであってもよい。
【0047】
モデル前段処理部22は、分散値算出部23及び特徴量符号化部24のそれぞれに特徴量12を出力する。
【0048】
分散値算出部23は、特徴量12の分散値13を算出し、算出した分散値13を制御サーバ4に送信する。分散値13は、特徴量12の統計情報の一例である。
【0049】
特徴量符号化部24は、特徴量12を符号化することで、特徴量12の圧縮(データ量の削減)を行なう。符号化処理により、特徴量12に対する丸め処理が行なわれ、特徴量12は浮動小数点データに変換される。特徴量符号化部24による符号化処理は、例えば、特徴量12をオートエンコーダ15に入力し、オートエンコーダ15の中間層からデータを取得することで行なわれてよい。
【0050】
量子化部25は、符号化されたデータに対して、制御サーバ4により決定されたNW帯域17に基づき、送信前処理を実行する。送信前処理には、符号化されたデータの量子化処理、及び、量子化されたデータのエントロピー符号化処理が含まれてよい。量子化処理により、データは整数のデータに変換される。エントロピー符号化処理により、データ量が削減される。
【0051】
送信部26は、送信前処理が行なわれた送信データを、NW1aを介して所定のエッジサーバ3に送信する。所定のエッジサーバ3は、第1サーバの一例であり、例えば、制御サーバ4が決定した送信先18のエッジサーバ3であってよい。
【0052】
図4に例示するように、エッジサーバ3は、受信部31,逆量子化部32,特徴量復号部33,モデル後段処理部34及び格納部35を備えてよい。
【0053】
受信部31は、エッジ端末2からデータを受信する。受信部31が受信するデータは、符号化,量子化及びエントロピー符号化が行なわれた特徴量12であって、フレーム画像11に基づく情報の一例である。
【0054】
逆量子化部32は、受信部31が受信したデータに対して、復号前処理を行なう。復号前処理には、受信したデータの逆エントロピー符号化処理、及び、逆エントロピー符号化されたデータの逆量子化処理が含まれてよい。逆エントロピー符号化処理により、量子化されたデータが取得される。逆量子化処理により、符号化された特徴量12が取得される。
【0055】
特徴量復号部33は、復号前処理が行なわれたデータ、換言すれば符号化(圧縮)された特徴量12を復号することで、特徴量12を復元する。特徴量復号部33による復号処理は、例えば、圧縮された特徴量12をオートエンコーダ15の中間層に入力し、オートエンコーダ15の出力から特徴量12を取得することで行なわれてよい。
【0056】
モデル後段処理部34は、復号された特徴量12に対して、フレーム画像11に対する推論処理を行なう訓練済み機械学習モデルのうちの、後段部分における処理を実行し、推論結果、例えば特徴量12からの物体の検出結果14(解析結果)を出力する。
【0057】
機械学習モデルの後段部分とは、例えば、機械学習モデルのうちの、モデル前段処理部22により実行される層を除いた残りの部分、一例として、特徴量12を出力する層の次の層から、最後の層までの1以上の層(レイヤ)が挙げられる。
【0058】
格納部35は、モデル後段処理部34から出力される検出結果14を格納する。格納部35に格納された検出結果14は、制御サーバ4に送信されてもよい。検出結果14には、例えば、フレーム画像11の特徴量12から検出された物体の位置及び個数、並びに、物体が検出された当該フレーム画像11の識別情報が含まれてよい。識別情報としては、例えば、フレーム番号が挙げられる。また、識別情報には、エッジ端末2(或いはカメラ20)の識別情報が含まれてもよい。
【0059】
このように、
図4に示すシステム1は、推論処理を行なう訓練済み機械学習モデルを、モデル前段処理部22及びモデル後段処理部34に分割して、それぞれをエッジ端末2及びエッジサーバ3に配置する。
【0060】
また、システム1は、モデル前段処理部22から出力され、モデル後段処理部34に入力される、機械学習モデルの中間層の特徴量12を、特徴量符号化部24及び特徴量復号部33により圧縮及び復元する。特徴量符号化部24及び特徴量復号部33は、オートエンコーダ15の一例である。
【0061】
このとき、システム1は、エッジ端末2において、特徴量符号化部24により圧縮されたデータの送信前処理を行ない、エッジサーバ3に送信する。そして、システム1は、エッジサーバ3において、受信したデータに復号前処理を行なって得られたデータを特徴量復号部33により復元する。
【0062】
上述した構成により、システム1は、推論処理の少なくとも一部をエッジ端末2からエッジサーバ3にオフロードすることで、エッジ端末2の処理負荷を軽減できる。また、入力画像よりもサイズを削減したデータがエッジ端末2からエッジサーバ3に送信されるため、NW1aの輻輳を軽減できる。
【0063】
図5は、一実施形態に係る物体検出モデル16の一例を示す図である。
図5に示すように、機械学習モデルの一例である物体検出モデル16は、複数の層16a~16l及び複数の物体検出処理16m~16oを備えてよい。各層16a~16lにおける括弧内のbatch_sizeは、当該層から出力されるデータ(画像)のサイズであり、例えば、batch_size:52,52,256は、出力される画像の高さ,幅,チャネル数がそれぞれ52,52,256であることを示してよい。
【0064】
入力層(Inputs)16aは、フレーム画像11が入力される層である。畳み込み層(Conv)16b,16d,16f,16h,16j,畳み込み層ブロック(Conv Block)16lは、前の層から入力される画像に対して畳み込み演算を行ない、演算結果を次の層に出力する層である。畳み込み演算により、入力される画像のサイズが縮小される。残差ブロック(Residual Block)16c,16e,16g,16i,16kは、前の層から入力される画像に対して複数回の畳み込み演算を行なう層である。
【0065】
小物体検出処理16mは、残差ブロック16gの出力結果に基づき、フレーム画像11に含まれる比較的小さい物体を検出する処理であり、複数の層を含んでよい。中物体検出処理16nは、残差ブロック16i及び畳み込み層16lの出力結果に基づき、フレーム画像11に含まれる比較的中程度の物体を検出する処理であり、複数の層を含んでよい。大物体検出処理16oは、畳み込み層16lの出力結果に基づき、フレーム画像11に含まれる比較的大きい物体を検出する処理である。物体検出処理16m~16oの少なくともいずれか1つの出力結果は、検出結果14の一例である。
【0066】
図5の例において、層16b~16fの各々は、物体検出モデル16の中間層の一例であり、これらの層16b~16fからの出力データは、特徴量12の一例である。
【0067】
また、層16a~16fは、物体検出モデル16の前段部分の処理の一例であり、エッジ端末2のモデル前段処理部22に配置される。さらに、層16g~16l,物体検出処理16m~16oは、物体検出モデル16の後段部分の処理の一例であり、エッジサーバ3のモデル後段処理部34に配置される。
【0068】
図5に例示するように、前段部分の最後の層の一例である畳み込み層16fから出力される特徴量12は、エッジ端末2の特徴量符号化部24に入力される(
図4参照)。また、特徴量符号化部24の符号化処理,エッジ端末2における送信前処理,エッジサーバ3における復号前処理、が行なわれ、特徴量復号部33で復号されて出力される特徴量12は、前段部分の最初の層の一例である残差ブロック16gに入力される。
【0069】
なお、物体検出モデル16において、前段部分と後段部分との境界は、畳み込み層16fと残差ブロック16gとの間に限定されるものではなく、物体検出処理16m~16oよりも前に位置する種々の畳み込み層16b,16d,16fの後であってよい。例えば、境界は、畳み込み層16bと残差ブロック16cとの間であってもよいし、畳み込み層16dと残差ブロック16eとの間であってもよい。
【0070】
図4の説明に戻り、制御サーバ4は、エッジ端末2から受信するフレーム画像11の分散値13と、エッジサーバ3から受信する演算パワーとに基づき、各エッジ端末2に分配するNW帯域17及び送信先18を決定する。
図4に破線で示すように、制御サーバ4は、NW帯域17及び送信先18の決定において、エッジサーバ3から受信する前(過去)のフレーム画像11の物体の検出結果14にさらに基づき、NW帯域17及び送信先18を決定してもよい。
【0071】
図4に例示するように、制御サーバ4は、制御部41,NW帯域決定部42及び送信先決定部43を備えてよい。
【0072】
制御部41は、エッジ端末2から、現在のフレーム画像11の分散値13を受信し、エッジサーバ3から、演算パワーと過去のフレーム画像11の物体の検出結果14とを受信する。現在のフレーム画像11は、第1入力画像の一例であり、過去のフレーム画像11は、第1入力画像よりも時間的に先行する第2入力画像の一例である。過去のフレーム画像11とは、例えば、フィードバック制御の遅延量に応じたフレーム数だけ現在のフレーム画像11よりも前のフレーム画像11であってよく、一例として、現在のフレーム画像11よりも1フレーム以上(例えば3~5フレーム)前であってよい。
【0073】
制御部41は、受信した分散値13及び検出結果14のそれぞれについて、エッジ端末2ごとの少なくとも最新の(直近の)データを、制御サーバ4のメモリ等の記憶領域に保持してよい。
【0074】
なお、制御サーバ4がNW帯域17及び送信先18の決定に物体の検出結果14を利用しない場合、制御部41がエッジサーバ3から検出結果14を受信し保持する処理は、省略されてもよい。
【0075】
また、制御部41は、検出結果14を取得する場合、物体数に基づき、人流予測等のAIアプリケーションとしての処理を行ない、予測結果等の処理結果を出力してよい。
【0076】
NW帯域決定部42は、現在のフレーム画像11の分散値13に基づき、各エッジ端末2に分配するNW帯域17を決定する。また、NW帯域決定部42は、過去のフレーム画像11の物体の検出結果14にさらに基づき、NW帯域17を決定してもよい。
【0077】
例えば、NW帯域決定部42は、下記式(1)に基づき、i番目(iは0~Nの整数)のエッジ端末2に割り当てるNW帯域17を決定してよい。NW帯域17は、レートR1_pred(i)によって表されてよい。
R1_pred(i) = R_total * var(i)/Σvar (1)
【0078】
上記式(1)において、R_totalは、複数の(N+1台の)エッジ端末2の全体に割当可能なNW帯域である。var(i)は、i番目のエッジ端末2から受信した、現在のフレーム画像11の分散値13である。Σvarは、複数の(N+1台の)エッジ端末2のそれぞれから受信した、現在のフレーム画像11の分散値13の合計値である。
【0079】
このように、NW帯域決定部42は、各エッジ端末2から受信した現在のフレーム画像11の分散値13の比率に応じたフィードフォワード制御によって、R_totalを各エッジ端末2に分配してよい。
【0080】
なお、各エッジ端末2では、それぞれの撮像画像がフレーム画像11を出力するタイミングで、逐次に分散値13が算出される。すなわち、制御部41がエッジ端末2から分散値13を受信するタイミングは、エッジ端末2ごとに異なる。
【0081】
このため、NW帯域決定部42は、例えば、i番目のエッジ端末2から分散値13を受信し、R1_pred(i)を算出する場合、他のエッジ端末2の分散値13として、制御サーバ4の記憶領域に保持された最新の分散値13を利用してよい。
【0082】
また、NW帯域決定部42は、NW帯域17の決定に検出結果14を利用する場合、下記式(2)に基づき、検出結果14に基づくNW帯域17として、レートR2_pred(i)を算出してよい。
R2_pred(i) = R_total * num(i)/Σnum (2)
【0083】
上記式(2)において、num(i)は、i番目のエッジ端末2の過去のフレーム画像11から検出された物体数(検出結果14)である。Σnumは、複数の(N+1台の)エッジ端末2のそれぞれの過去のフレーム画像11から検出された物体数(検出結果14)の合計値である。なお、NW帯域決定部42は、上記式(2)の算出に利用する物体数として、制御サーバ4が保持する最新の検出結果14を利用してよい。
【0084】
上記式(2)によれば、NW帯域決定部42は、各エッジ端末2の過去のフレーム画像11に基づき検出された物体数の比率に応じたフィードバック制御によって、R_totalを各エッジ端末2に分配するためのレートR2_pred(i)を算出できる。
【0085】
そして、NW帯域決定部42は、下記式(3)に基づき、分散値13及び検出結果14の双方に基づくNW帯域17として、レートR_pred(i)を算出してよい。
R_pred(i) = (1-k1) * R1_pred(i) + k1 * R2_pred(i) (3)
【0086】
上記式(3)において、k1は、重み係数であり、0以上1以下の値であってよい。NW帯域決定部42は、上記式(3)に基づきNW帯域17を決定する場合、R1_pred(i)とR2_pred(i)との重み付け総和に基づき、レートR_pred(i)を決定してよい。
【0087】
なお、k1=0の場合、上記式(1)と同様に、分散値13及び検出結果14のうちの分散値13のみに基づくNW帯域17が決定され、k1=1の場合、上記式(2)と同様に、分散値13及び検出結果14のうちの検出結果14のみに基づくNW帯域17が決定される。また、0<k1<1の場合、分散値13に基づき決定されるNW帯域17を、検出結果14に基づく過去の物体数に応じて補正することができる。
【0088】
NW帯域決定部42は、上記式(1)又は式(3)に基づき決定したi番目のNW帯域17(R1_pred(i)又はR_pred(i))を、i番目のエッジ端末2に送信する。
【0089】
例えば、i番目のエッジ端末2は、受信したNW帯域17に基づき、量子化部25による量子化処理を実行する。
【0090】
図6は、NW帯域17に基づく量子化処理及び逆量子化処理の一例を説明するための図である。
図6には、システム1における特徴量符号化部24から特徴量復号部33までの一部の構成例を示す。
【0091】
量子化部25は、エッジ端末2が受信したNW帯域17(R_pred)を用いて、下記式(4)に基づき量子化値Qを算出する。
Q = max (1.0, R_act / R_pred) (4)
【0092】
上記式(4)において、R_actは、特徴量符号化部24から出力されたデータyの実際のデータ量であり、maxは、括弧内のカンマ区切りの値のうちの大きい方を出力する関数である。上記式(4)により、実際のデータ量R_actが分配されるNW帯域17よりも小さい場合、量子化量Q=1.0となり、実際のデータ量R_actが分配されるNW帯域17よりも大きい場合は、量子化量Q=R_act/R_predとなる。
【0093】
そして、量子化部25は、量子化処理において、下記式(5)に基づき、特徴量符号化部24から出力される符号化されたデータyを量子化し、量子化されたデータy_encを取得する。
【数1】
【0094】
上記式(5)において、signは、括弧内の値の符号(正負)を出力する関数である。量子化部25は、上記式(5)に従い、算出された量子化値Qを用いて、データyの量子化を行ない、データy_encを出力する。
【0095】
なお、量子化部25では、データy_encに対して、エントロピー符号化処理が行なわれてもよい。
【0096】
また、エッジサーバ3の逆量子化部32は、逆量子化処理において、下記式(6)に基づき、逆エントロピー符号化処理により得られる量子化されたデータy_encを逆量子化し、逆量子化されたデータy_decを取得する。
y_dec = y_enc・Q (6)
【0097】
なお、量子化部25が算出した量子化値Qは、エッジ端末2からエッジサーバ3に送信されてもよい。例えば、量子化値Qは、エッジ端末2から送信されるデータに付加されてもよいし、データy_encに付加されてエントロピー符号化処理等が施されてもよい。
【0098】
送信先決定部43は、現在のフレーム画像11の分散値13と、各エッジサーバ3の演算パワーとに基づき、各エッジ端末2の送信先18を決定する。また、送信先決定部43は、過去のフレーム画像11の物体の検出結果14にさらに基づき、送信先18を決定してもよい。
【0099】
例えば、送信先決定部43は、現在のフレーム画像11の分散値13を用いて、下記式(7)に基づき、i番目のエッジ端末2からの特徴量12に対する推論処理で使用される演算量C1_pred(i)を算出してよい。
C1_pred(i) = C_total * var(i)/Σvar (7)
【0100】
上記式(7)において、C_totalは、複数の(M+1台の)エッジサーバ3の演算パワーの合計値である。
【0101】
また、送信先決定部43は、送信先18の決定に検出結果14を利用する場合、下記式(8)に基づき、i番目のエッジ端末2からの特徴量12に対する推論処理で使用される演算量C2_pred(i)を算出してよい。
C2_pred(i) = C_total * num(i)/Σnum (8)
【0102】
そして、送信先決定部43は、下記式(9)に基づき、分散値13及び検出結果14の双方に基づく演算量C_pred(i)を算出してよい。
C_pred(i) = (1-k2) * C1_pred(i) + k2 * C2_pred(i) (9)
【0103】
上記式(9)において、k2は、重み係数であり、0以上1以下の値であってよい。k2は、k1と同一であってもよいし、異なってもよい。送信先決定部43は、上記式(9)に基づき演算量を算出する場合、C1_pred(i)とC2_pred(i)との重み付け総和に基づき、演算量C_pred(i)を算出してよい。
【0104】
なお、k2=0の場合、上記式(7)と同様に、分散値13及び検出結果14のうちの分散値13のみに基づく演算量が算出され、k2=1の場合、上記式(8)と同様に、分散値13及び検出結果14のうちの検出結果14のみに基づく演算量が算出される。また、0<k2<1の場合、分散値13に基づき決定される演算量を、検出結果14に基づく過去の物体数に応じて補正することができる。
【0105】
送信先決定部43は、演算量C1_pred(i)又はC_pred(i)を算出すると、エッジ端末2ごとに、少なくとも最新の(直近の)演算量を、制御サーバ4のメモリ等の記憶領域に保持してよい。
【0106】
送信先決定部43は、算出した演算量C1_pred(i)又はC_pred(i)と、各エッジサーバ3の演算パワーとに基づき、エッジ端末2ごとに送信先18を決定する。
【0107】
図7は、送信先18の決定処理の一例を説明するための図である。
図7では、各エッジ端末2(エッジ端末#0~#4)について算出された演算量を、簡単のために、C_totalに対する割合がわかるように表記している。例えば、エッジ端末#0の演算量は、1/7*C_totalである。また、簡単のために、複数のエッジサーバ3(エッジサーバ#0~#2)の演算パワーは、互いに同一であるものとする。
【0108】
図7に示すように、送信先決定部43は、演算量の大きさで降順にエッジ端末2を選択し、演算パワーの空きがあるエッジサーバ3に割り当てることで送信先18を決定してよい。
図7の例では、演算量が1/3*C_totalのエッジ端末#3の送信先18が、エッジサーバ#0に決定される。また、演算量が1/6*C_totalのエッジ端末#0及び演算量が1/7*C_totalのエッジ端末#2の送信先18が、エッジサーバ#1に決定される。さらに、演算量が1/12*C_totalのエッジ端末#4及び演算量が1/14*C_totalのエッジ端末#1の送信先18が、エッジサーバ#2に決定される。
【0109】
送信先決定部43は、送信先18として決定したエッジサーバ3の情報を、エッジ端末2に送信する。エッジサーバ3の情報としては、例えば、エッジサーバ3の識別子等の識別情報,エッジサーバ3のアドレス等の情報が挙げられる。アドレスとしては、例えば、IP(Internet Protocol)アドレス等の種々のアドレスが挙げられる。
【0110】
なお、各エッジ端末2について算出された演算量に基づく送信先18の決定処理は、
図7に例示する処理に限定されるものではなく、種々の手法が用いられてよい。
【0111】
このように、送信先決定部43は、各エッジ端末2から受信した現在のフレーム画像11の分散値13の比率に応じて算出した演算量に基づくフィードフォワード制御によって、各エッジ端末2の送信先18を決定してよい。
【0112】
また、送信先決定部43は、各エッジ端末2の過去のフレーム画像11に基づき検出された物体数の比率に応じて算出した演算量に基づくフィードバック制御によって、フィードフォワード制御において算出した演算量を補正することができる。
【0113】
ところで、物体検出処理では、物体検出モデル16に入力される画像に含まれる物体(例えば人物)が多くなるほど、画像の絵柄が複雑になり、物体検出処理におけるデータ量と処理負荷とが高くなる。
【0114】
画像の絵柄の複雑さ、換言すれば、画像に基づく推論処理(解析処理,分析処理)の難易度は、分散値13の大きさに基づき、データ量及び処理負荷を示す指標、例えば、R_pred及びC_predとして、制御サーバ4により推定(算出)される。
【0115】
しかし、仮に、分散値がフレーム画像11そのものから算出され、且つ、フレーム画像11のサイズが大きい場合、分散値の算出に時間がかかり、システム1では、リアルタイムによる物体検出処理の実現が難しくなる場合がある。
【0116】
これに対し、一実施形態に係る手法によれば、分散値算出部23が、モデル前段処理部22によって物体検出モデル16の中間層から出力される特徴量12(中間特徴量)の分散値13を算出する。そして、NW帯域決定部42及び送信先決定部43は、中間特徴量の分散値13に基づいて、データ量及び処理負荷を示す指標の推定を行なう。
【0117】
図8は、フレーム画像11と特徴量12との一例を示す図である。
図8では、フレーム画像11のデータサイズ(高さ×幅)が416*416である場合を示す。
【0118】
図8に例示するように、物体検出モデル16の中間特徴量は、フレーム画像11と比較してサイズが小さいため、分散値13の算出時間が短くなる。
【0119】
例えば、中間特徴量(第1例)が畳み込み層16dから出力される特徴量12である場合(
図5参照)、データサイズは、104*104となり、フレーム画像11のデータサイズの16分の1となる。また、中間特徴量(第2例)が畳み込み層16fから出力される特徴量12である場合(
図5参照)、データサイズは、52*52となり、フレーム画像11のデータサイズの64分の1となる。
【0120】
図5に示す物体検出モデル16等のDNNにおいて、浅い位置のレイヤ、例えばモデル前段処理部22に配置されるレイヤから出力される特徴量12は、エッジ等の抽出によりフレーム画像11の全体情報が残っているため、フレーム画像11に近い情報である。
【0121】
このため、特徴量符号化に用いられるデータ量及び推論(解析)の処理負荷は、フレーム画像11の特徴量12から取得される分散値13の大きさに基づき推定可能である。また、分散値算出部23は、フレーム画像11よりもデータサイズが小さい特徴量12に基づき分散値13を算出するため、フレーム画像11から分散値を算出するよりも算出処理時間を短縮できる。従って、システム1では、物体検出処理をリアルタイムで(或いは低遅延で)実現可能となる。
【0122】
図9は、一実施形態に係るシステム1で実行される各処理のタイミングチャートの一例を示す図である。
図9において、破線で区切った上段は、制御サーバ4による制御が行なわれない場合を示し、破線で区切った下段は、制御サーバ4による制御が行なわれる場合を示す。
【0123】
図9の上段では、タイミングt0において、エッジ端末2のモデル前段処理部22は、フレーム画像11のモデル前段処理Aを実行する。特徴量符号化部24は、モデル前段処理から出力される特徴量12に基づき符号化処理Bを実行する。
【0124】
量子化部25は、符号化された特徴量12に対して量子化処理(及びエントロピー符号化処理)C、すなわち送信前処理を実行する。送信部26は、送信前処理が行なわれた送信データの送信処理Dを実行する。
【0125】
エッジサーバ3の逆量子化部32は、受信部31が受信したデータに対して逆量子化処理Eを実行し、タイミングt1において、符号化されたデータを出力する。なお、
図9の上段及び下段のいずれにおいても、逆量子化処理Eの後に、上述した特徴量復号部33,モデル後段処理部34及び格納部35の処理が実行される。
【0126】
図9の下段では、
図9の上段の処理に加えて、分散値算出部23は、モデル前段処理から出力される特徴量12に基づき分散値13を算出し、制御サーバ4に送信する分散値算出処理Fを、符号化処理Bと並行して実行する。
【0127】
制御サーバ4のNW帯域決定部42は、制御サーバ4が受信した分散値13に基づきNW帯域17を決定し、エッジ端末2に送信するNW分配処理Gを、符号化処理Bと並行して実行する。
【0128】
エッジ端末2の量子化部25は、符号化処理Bの処理結果と、NW分配処理Gで決定されたNW帯域17とに基づき量子化処理Cを実行する。
【0129】
また、送信先決定部43は、分散値13とエッジサーバ3の演算パワーとに基づき送信先18を決定し、エッジ端末2に送信する送信先決定処理Hを、量子化部25と並行して実行する。なお、送信先決定処理Hは、NW分配処理Gと少なくとも一部が並行して実行されてもよい。
【0130】
エッジ端末2の送信部26は、量子化部25の処理結果と、送信先決定処理Hで決定された送信先18とに基づき送信処理Dを実行する。エッジサーバ3の逆量子化部32は、受信部31が受信した送信データに対して逆量子化処理Eを実行し、タイミングt1において、符号化されたデータを出力する。
【0131】
このように、分散値算出部23,NW帯域決定部42及び送信先決定部43による処理F~Hは、符号化処理B,量子化処理C等とパイプライン処理が可能である。このため、処理F~Hの実行による、
図9の上段と比較したシステム1全体の処理遅延を、低遅延(ゼロ或いは短時間)に抑えることができる。
【0132】
以上のように、制御サーバ4によれば、現在のフレーム画像11の統計情報、例えば特徴量12の分散値13に基づく、機械学習処理の推論処理の処理負荷(解析負荷)及びデータ量を推定する制御が行なわれる。そして、制御サーバ4により、推定結果に基づき、各エッジ端末2に分配されるNW帯域17及び送信先18が決定される。
【0133】
このような制御により、現在のフレーム画像11の処理負荷及びデータ量を低遅延で高精度に推定でき、リアルタイムによる推論処理を実現できる。すなわち、システム1において、物体検出処理等の推論処理を、入力されるフレーム画像11に応じて適切に制御することができる。
【0134】
また、制御サーバ4では、過去のフレーム画像11の推論結果(解析結果)に基づき、推論負荷を推定する制御により、分散値13に基づき推定される推論負荷に応じた制御の補正が行なわれる。これにより、フレーム画像11の経時的な内容の変化、例えば物体数の変化に追従して、制御サーバ4による制御の精度を向上させることができる。
【0135】
〔D〕動作例
次に、一実施形態に係るシステム1の動作例を説明する。なお、事前処理として、例えばシステム1の運用開始前の所定のタイミングで、物体検出モデル16を分割して得られる前段部分が複数のエッジ端末2の各々に配置され、後段部分が複数のエッジサーバ3の各々に配置されるものとする。また、事前処理又は定期的な処理として、複数のエッジサーバ3の各々から、エッジサーバ3の演算パワーを示す情報が制御サーバ4に送信されるものとする。
【0136】
〔D-1〕エッジ端末の動作例
図10は、一実施形態に係るエッジ端末2の動作例を説明するフローチャートである。なお、
図10に示す処理は、複数のエッジ端末2の各々において、画像取得部21がフレーム画像11を取得する都度、実行されるものとする。
【0137】
図10に例示するように、エッジ端末2のモデル前段処理部22は、画像取得部21が取得したフレーム画像11を物体検出モデル16の前段部分に入力することで、前段部分の最後のレイヤからフレーム画像11の特徴量12を抽出する(ステップS1)。
【0138】
分散値算出部23は、特徴量12の分散値13を算出し(ステップS2)、算出した分散値13を制御サーバ4に送信する(ステップS3)。
【0139】
特徴量符号化部24は、特徴量12に対して符号化処理を行なう(ステップS4)。ステップS4は、ステップS2及びS3と並行して実行されてよい。
【0140】
エッジ端末2は、制御サーバ4からNW帯域17の情報(例えばR_pred)を受信する(ステップS5)。
【0141】
量子化部25は、割り当てられたNW帯域17に基づき、符号化された特徴量12に対して量子化処理(及びエントロピー符号化処理)等の送信前処理を実行する(ステップS6)。量子化処理では、NW帯域17に基づく量子化値Qの算出と、量子化値Qに基づく量子化とが実行されてよい。
【0142】
エッジ端末2は、制御サーバ4から送信先18の情報を受信する(ステップS7)。ステップS7は、ステップS4~S6の間のいずれのタイミングで行なわれてもよい。
【0143】
送信部26は、量子化されたデータ(送信前処理が行なわれた送信データ)を、指定された送信先18に送信し(ステップS8)、処理が終了する。なお、送信データには、量子化値Qが含まれてよい。
【0144】
〔D-2〕エッジサーバの動作例
図11は、一実施形態に係るエッジサーバ3の動作例を説明するフローチャートである。なお、
図11に示す処理は、複数のエッジサーバ3の各々において、エッジ端末2からデータを受信する都度、実行されるものとする。
【0145】
図11に例示するように、エッジサーバ3の逆量子化部32は、受信部31がエッジ端末2から受信したデータに対して、(逆エントロピー符号化処理及び)逆量子化処理等の復号前処理を実行する(ステップS11)。逆量子化処理では、エッジ端末2から受信した量子化値Qに基づく量子化が実行されてよい。
【0146】
特徴量復号部33は、逆量子化されたデータ(復号前処理が行なわれたデータ)に対して復号処理を実行することで、特徴量12を取得する(ステップS12)。
【0147】
モデル後段処理部34は、復号により取得した特徴量12を物体検出モデル16の後段部分に入力することで、特徴量12から物体を検出する(ステップS13)。
【0148】
格納部35は、物体の検出結果14を保存し、検出結果14を制御サーバ4に送信して(ステップS14)、処理が終了する。
【0149】
〔D-3〕制御サーバの動作例
図12は、一実施形態に係る制御サーバ4の動作例を説明するフローチャートである。なお、
図12に示す処理は、制御サーバ4が複数のエッジ端末2の各々から分散値13を受信する都度、実行されるものとする。
【0150】
図12に例示するように、制御サーバ4の制御部41は、エッジ端末2から現在のフレーム画像11の分散値13を受信し、エッジサーバ3から過去のフレーム画像11における物体の検出結果14を受信する(ステップS21)。
【0151】
NW帯域決定部42は、受信した分散値13と、検出結果14とに基づき、分散値13の送信元であるエッジ端末2に分配する(割り当てる)NW帯域17を決定する(ステップS22)。
【0152】
NW帯域決定部42は、決定したNW帯域17の情報を、当該エッジ端末2に送信する(ステップS23)。
【0153】
送信先決定部43は、受信した分散値13と、検出結果14と、各エッジサーバ3の演算パワーとに基づき、分散値13の送信元であるエッジ端末2を含む複数のエッジ端末2の各々のデータの送信先18を決定する(ステップS24)。
【0154】
送信先決定部43は、決定した送信先18の情報を、各エッジ端末2に送信する(ステップS25)。ステップS24及びS25は、ステップS21よりも前に実行されてもよいし、ステップS24及びS25の処理と少なくとも一部が並行して実行されてもよい。
【0155】
制御部41は、エッジサーバ3から受信した検出結果14に基づき、予測処理等の処理を実行し、処理結果を出力して(ステップS26)、処理が終了する。
【0156】
〔E〕変形例
一実施形態では、分散値算出部23がモデル後段処理部34から出力される特徴量12の分散値13を算出し、制御サーバ4が当該分散値13に基づきNW帯域17及び送信先18を決定するものとして説明したが、これに限定されるものではない。
【0157】
〔E-1〕第1変形例
図13は、第1変形例に係るエッジ端末2のソフトウェア構成例を示すブロック図である。
図13に示すように、第1変形例に係るエッジ端末2は、分散値算出部23に代えて、分散値算出部23Aを備えてよい。
【0158】
分散値算出部23Aは、特徴量符号化部24から出力される圧縮後特徴量12Aの分散値13Aを算出し、算出した分散値13Aを制御サーバ4に送信してよい。
【0159】
第1変形例に係るエッジ端末2によれば、一実施形態と同様の効果を奏することができるほか、特徴量12よりもデータサイズの小さい圧縮後特徴量12Aに基づき分散値13Aが算出されるため、一実施形態よりもエッジ端末2の処理負荷を軽減できる。
【0160】
例えば、エッジ端末2のプロセッサ等の演算パワー(性能)が小さい場合、
図9に例示する符号化処理Bと、分散値算出処理Fとをパイプラインで処理することが困難となり、符号化処理Bと分散値算出処理Fとが逐次処理される場合がある。
【0161】
このような場合、分散値算出部23Aは、分散値算出処理Fにおいて、圧縮後特徴量12Aに基づき分散値13Aを算出することで、特徴量12に基づき分散値13を算出するよりも処理時間を短縮することができる。これにより、システム1の処理遅延を軽減することができる。
【0162】
〔E-2〕第2変形例
カメラ20は、画像を固定位置から撮像する撮像装置、例えば監視カメラ等であってもよい。カメラ20が監視カメラ等である場合、カメラ20が出力するフレーム画像11内の背景画像(背景部分)の経時的な変化量は小さい。
【0163】
第2変形例では、画像取得部21又はモデル前段処理部22は、エッジ端末2のメモリ等の記憶領域に背景画像を保持し、現在のフレーム画像11と背景画像との差分となる差分画像(差分領域の画像)を算出してもよい。
【0164】
この場合、モデル前段処理部22は、差分画像を物体検出モデル16の前段部分に入力することで、差分画像の特徴量12を抽出してよい。また、分散値算出部23は、差分画像の特徴量12の分散値13を算出し、制御サーバ4に送信してよい。さらに、NW帯域決定部42及び送信先決定部43は、当該分散値13に基づき、NW帯域17及び送信先18を決定してよい。
【0165】
なお、特徴量符号化部24,量子化部25及び送信部26は、差分画像の特徴量12に対して、符号化処理,量子化処理(送信前処理)及び送信処理を行なってよい。
【0166】
このように、フレーム画像11のうちの物体が存在する可能性の高い領域が抽出された差分画像の特徴量12が用いられることで、特徴量12から取得される分散値13の大きさに基づき推定した特徴量符号化に用いられるデータ量及び推論(解析)の処理負荷の精度が高くなる。その結果、エッジサーバ3における推論精度(物体の検出精度)を向上させることができる。
【0167】
また、第2変形例は、第1変形例と組み合わせて実施されてもよい。例えば、分散値算出部23Aは、特徴量符号化部24により差分画像の特徴量12が符号化された圧縮後特徴量12Aの分散値13Aを算出してよい。
【0168】
なお、例えば、
図4又は
図13に示すエッジ端末2が備える機能ブロック21~26は、種々の組み合わせで併合してもよく、それぞれ分割してもよい。また、例えば、
図4に示すエッジサーバ3が備える機能ブロック31~35は、種々の組み合わせで併合してもよく、それぞれ分割してもよい。さらに、例えば、
図4に示す制御サーバ4が備える機能ブロック41~43は、種々の組み合わせで併合してもよく、それぞれ分割してもよい。
【0169】
〔F〕ハードウェア構成例
一実施形態に係るエッジ端末2,エッジサーバ3及び制御サーバ4の各々は、仮想サーバ(VM;Virtual Machine)であってもよいし、物理サーバであってもよい。また、エッジ端末2,エッジサーバ3及び制御サーバ4の各々の機能は、1台のコンピュータにより実現されてもよいし、2台以上のコンピュータにより実現されてもよい。
【0170】
以下、エッジ端末2の機能を実現するコンピュータ,エッジサーバ3の機能を実現するコンピュータ及び制御サーバ4の機能を実現するコンピュータとして、代表して
図14に示すコンピュータ10を例に挙げて説明する。
【0171】
図14は、一実施形態に係るコンピュータ10のハードウェア構成例を示すブロック図である。エッジ端末2,エッジサーバ3及び制御サーバ4の各々の機能を実現するHWリソースとして、複数のコンピュータが用いられる場合は、各コンピュータが
図14に例示するHW構成を備えてよい。
【0172】
図14に示すように、コンピュータ10は、HW構成として、例示的に、プロセッサ10a,グラフィック処理装置10b,メモリ10c,記憶部10d,IF(Interface)部10e,IO(Input / Output)部10f及び読取部10gを備えてよい。
【0173】
プロセッサ10aは、種々の制御や演算を行なう演算処理装置の一例である。プロセッサ10aは、コンピュータ10内の各ブロックとバス10jで相互に通信可能に接続されてよい。なお、プロセッサ10aは、複数のプロセッサを含むマルチプロセッサであってもよいし、複数のプロセッサコアを有するマルチコアプロセッサであってもよく、或いは、マルチコアプロセッサを複数有する構成であってもよい。
【0174】
プロセッサ10aとしては、例えば、CPU,MPU,APU,DSP,ASIC,FPGA等の集積回路(IC;integrated circuit)が挙げられる。なお、プロセッサ10aとして、これらの集積回路の2以上の組み合わせが用いられてもよい。CPUはCentral Processing Unitの略称であり、MPUはMicro Processing Unitの略称である。APUはAccelerated Processing Unitの略称である。DSPはDigital Signal Processorの略称であり、ASICはApplication Specific ICの略称であり、FPGAはField-Programmable Gate Arrayの略称である。
【0175】
グラフィック処理装置10bは、IO部10fのうちのモニタ等の出力装置に対する画面表示制御を行なう。また、グラフィック処理装置10bは、機械学習モデルを利用した機械学習処理及び推論処理を実行するアクセラレータとしての構成を有してよい。グラフィック処理装置10bとしては、種々の演算処理装置、例えば、GPU(Graphics Processing Unit),APU,DSP,ASIC又はFPGA等の集積回路(IC)が挙げられる。
【0176】
図4に例示するエッジ端末2のモデル前段処理部22は、エッジ端末2のグラフィック処理装置10bに、フレーム画像11を入力とした物体検出モデル16の前段部分の推論処理を実行させ、グラフィック処理装置10bから特徴量12を取得してよい。
【0177】
図4に例示するエッジサーバ3のモデル後段処理部34は、エッジサーバ3のグラフィック処理装置10bに、特徴量12を入力とした物体検出モデル16の後段部分の推論処理を実行させ、グラフィック処理装置10bから検出結果14を取得してよい。
【0178】
メモリ10cは、種々のデータやプログラム等の情報を格納するHWの一例である。メモリ10cとしては、例えばDRAM(Dynamic Random Access Memory)等の揮発性メモリ、及び、PM(Persistent Memory)等の不揮発性メモリ、の一方又は双方が挙げられる。
【0179】
記憶部10dは、種々のデータやプログラム等の情報を格納するHWの一例である。記憶部10dとしては、HDD(Hard Disk Drive)等の磁気ディスク装置,SSD(Solid State Drive)等の半導体ドライブ装置,不揮発性メモリ等の各種記憶装置が挙げられる。不揮発性メモリとしては、例えば、フラッシュメモリ,SCM(Storage Class Memory),ROM(Read Only Memory)等が挙げられる。
【0180】
エッジ端末2,エッジサーバ3及び制御サーバ4が各種データを保持する記憶領域としては、エッジ端末2,エッジサーバ3及び制御サーバ4のそれぞれのメモリ10c及び記憶部10dの一方又は双方の記憶領域が用いられてよい。
【0181】
記憶部10dは、コンピュータ10の各種機能の全部若しくは一部を実現するプログラム10h(画像処理プログラム)を格納してよい。
【0182】
例えば、エッジ端末2のコンピュータ10において、プロセッサ10aが、記憶部10dに格納されたプログラム10hをメモリ10cに展開して実行することにより、
図4又は
図13に示すブロック21~26としての機能を実現できる。また、エッジサーバ3のコンピュータ10において、プロセッサ10aが、記憶部10dに格納されたプログラム10hをメモリ10cに展開して実行することにより、
図4に示すブロック31~35としての機能を実現できる。さらに、制御サーバ4のコンピュータ10において、プロセッサ10aが、記憶部10dに格納されたプログラム10hをメモリ10cに展開して実行することにより、
図4に示すブロック41~43としての機能を実現できる。
【0183】
IF部10eは、コンピュータ10と他のコンピュータとの間の接続及び通信の制御等を行なう通信IFの一例である。例えば、IF部10eは、イーサネット(登録商標)等のLAN、或いは、FC(Fibre Channel)等の光通信等に準拠したアダプタを含んでよい。当該アダプタは、無線及び有線の一方又は双方の通信方式に対応してよい。
【0184】
例えば、エッジ端末2,エッジサーバ3及び制御サーバ4の各々は、IF部10e及びNW1a又は他のNWを介して、送信データ,分散値13,検出結果14,NW帯域17,送信先18,演算パワー等の種々のデータの通信を行なってよい。なお、プログラム10hは、当該通信IFを介して、ネットワークからコンピュータ10にダウンロードされ、記憶部10dに格納されてもよい。
【0185】
IO部10fは、入力装置、及び、出力装置、の一方又は双方を含んでよい。入力装置としては、例えば、キーボード、マウス、タッチパネル等が挙げられる。出力装置としては、例えば、モニタ、プロジェクタ、プリンタ等が挙げられる。また、IO部10fは、入力装置及び表示装置が一体となったタッチパネル等を含んでもよい。出力装置は、グラフィック処理装置10bに接続されてよい。
【0186】
読取部10gは、記録媒体10iに記録されたデータやプログラムの情報を読み出すリーダの一例である。読取部10gは、記録媒体10iを接続可能又は挿入可能な接続端子又は装置を含んでよい。読取部10gとしては、例えば、USB(Universal Serial Bus)等に準拠したアダプタ、記録ディスクへのアクセスを行なうドライブ装置、SDカード等のフラッシュメモリへのアクセスを行なうカードリーダ等が挙げられる。なお、記録媒体10iにはプログラム10hが格納されてもよく、読取部10gが記録媒体10iからプログラム10hを読み出して記憶部10dに格納してもよい。
【0187】
記録媒体10iとしては、例示的に、磁気/光ディスクやフラッシュメモリ等の非一時的なコンピュータ読取可能な記録媒体が挙げられる。磁気/光ディスクとしては、例示的に、フレキシブルディスク、CD(Compact Disc)、DVD(Digital Versatile Disc)、ブルーレイディスク、HVD(Holographic Versatile Disc)等が挙げられる。フラッシュメモリとしては、例示的に、USBメモリやSDカード等の半導体メモリが挙げられる。
【0188】
上述したコンピュータ10のHW構成は例示である。従って、コンピュータ10内でのHWの増減(例えば任意のブロックの追加や削除)、分割、任意の組み合わせでの統合、又は、バスの追加若しくは削除等は適宜行なわれてもよい。
【0189】
〔G〕付記
以上の実施形態,第1変形例及び第2変形例に関し、さらに以下の付記を開示する。
【0190】
(付記1)
入力画像を取得する複数の機器と、
複数の前記入力画像に対する推論処理を行なう複数のサーバと、
前記複数の機器及び前記複数のサーバの制御を行なう制御装置と、を備え、
前記複数の機器のうちの第1入力画像を取得する第1機器は、
入力される画像に対する推論処理を実行する機械学習モデルの前段の層に、前記第1入力画像を入力して前記第1入力画像の第1特徴量を取得し、
前記第1特徴量の統計情報を算出して前記制御装置に送信し、
前記第1特徴量を、前記制御装置が決定したネットワーク帯域に基づき、前記複数のサーバのうちの前記制御装置が決定した第1サーバに送信し、
前記制御装置は、
前記第1機器から受信した前記統計情報と、前記複数のサーバの各々の性能とに基づき、前記第1機器に割り当てる前記ネットワーク帯域と、前記第1サーバと、を決定し、
前記第1サーバは、
前記機械学習モデルの後段の層に、前記第1機器から受信した前記第1特徴量を入力して推論結果を取得する、
画像処理システム。
【0191】
(付記2)
前記複数のサーバの各々は、
受信した特徴量に基づく推論結果を前記制御装置に送信し、
前記制御装置は、
前記決定する処理において、受信した第1推論結果であって、前記第1入力画像よりも時間的に先行する第2入力画像の第2特徴量に基づく前記第1推論結果にさらに基づき、前記ネットワーク帯域と、前記第1サーバと、を決定する、
付記1に記載の画像処理システム。
【0192】
(付記3)
前記推論処理は、物体の検出処理であり、
前記制御装置は、前記決定する処理において、
前記統計情報と、前記第2入力画像における物体の検出数を示す前記第1推論結果とに基づき、前記第1入力画像における物体の検出数を推定し、
前記統計情報と、前記複数のサーバの各々の性能と、前記第1入力画像における物体の検出数とに基づき、前記ネットワーク帯域と、前記第1サーバと、を決定する、
付記2に記載の画像処理システム。
【0193】
(付記4)
前記第1機器は、前記第1特徴量を送信する処理において、
前記第1特徴量を符号化し、
符号化した前記第1特徴量を、前記制御装置が決定した前記ネットワーク帯域に基づき量子化し、
量子化した前記第1特徴量を前記第1サーバに送信する、
付記1~付記3のいずれか1項に記載の画像処理システム。
【0194】
(付記5)
前記第1機器は、前記統計情報を算出する処理において、
前記符号化した前記第1特徴量の前記統計情報を算出する、
付記4に記載の画像処理システム。
【0195】
(付記6)
前記第1機器は、前記第1特徴量を取得する処理において、
画像を固定位置から撮像する撮像装置により撮像された前記第1入力画像と、前記撮像装置により撮像される画像の背景画像との差分画像を、前記機械学習モデルの前記前段の層に入力して前記第1特徴量を取得する、
付記1~付記5のいずれか1項に記載の画像処理システム。
【0196】
(付記7)
入力画像を取得する複数の機器と、
複数の前記入力画像に対する推論処理を行なう複数のサーバと、
前記複数の機器及び前記複数のサーバの制御を行なう制御装置と、を備える画像処理システムにおける画像処理方法であって、
前記複数の機器のうちの第1入力画像を取得する第1機器は、
入力される画像に対する推論処理を実行する機械学習モデルの前段の層に、前記第1入力画像を入力して前記第1入力画像の第1特徴量を取得し、
前記第1特徴量の統計情報を算出して前記制御装置に送信し、
前記第1特徴量を、前記制御装置が決定したネットワーク帯域に基づき、前記複数のサーバのうちの前記制御装置が決定した第1サーバに送信し、
前記制御装置は、
前記第1機器から受信した前記統計情報と、前記複数のサーバの各々の性能とに基づき、前記第1機器に割り当てる前記ネットワーク帯域と、前記第1サーバと、を決定し、
前記第1サーバは、
前記機械学習モデルの後段の層に、前記第1機器から受信した前記第1特徴量を入力して推論結果を取得する、
画像処理方法。
【0197】
(付記8)
前記複数のサーバの各々は、
受信した特徴量に基づく推論結果を前記制御装置に送信し、
前記制御装置は、
前記決定する処理において、受信した第1推論結果であって、前記第1入力画像よりも時間的に先行する第2入力画像の第2特徴量に基づく前記第1推論結果にさらに基づき、前記ネットワーク帯域と、前記第1サーバと、を決定する、
付記7に記載の画像処理方法。
【0198】
(付記9)
前記推論処理は、物体の検出処理であり、
前記制御装置は、前記決定する処理において、
前記統計情報と、前記第2入力画像における物体の検出数を示す前記第1推論結果とに基づき、前記第1入力画像における物体の検出数を推定し、
前記統計情報と、前記複数のサーバの各々の性能と、前記第1入力画像における物体の検出数とに基づき、前記ネットワーク帯域と、前記第1サーバと、を決定する、
付記8に記載の画像処理方法。
【0199】
(付記10)
前記第1機器は、前記第1特徴量を送信する処理において、
前記第1特徴量を符号化し、
符号化した前記第1特徴量を、前記制御装置が決定した前記ネットワーク帯域に基づき量子化し、
量子化した前記第1特徴量を前記第1サーバに送信する、
付記7~付記9のいずれか1項に記載の画像処理方法。
【0200】
(付記11)
前記第1機器は、前記統計情報を算出する処理において、
前記符号化した前記第1特徴量の前記統計情報を算出する、
付記10に記載の画像処理方法。
【0201】
(付記12)
前記第1機器は、前記第1特徴量を取得する処理において、
画像を固定位置から撮像する撮像装置により撮像された前記第1入力画像と、前記撮像装置により撮像される画像の背景画像との差分画像を、前記機械学習モデルの前記前段の層に入力して前記第1特徴量を取得する、
付記7~付記11のいずれか1項に記載の画像処理方法。
【符号の説明】
【0202】
1 システム
1a ネットワーク(NW)
10 コンピュータ
11 フレーム画像
12 特徴量
12A 圧縮後特徴量
13,13A 分散値
14 検出結果
15 オートエンコーダ
16 物体検出モデル
17 NW帯域
18 送信先
2 エッジ端末
20 カメラ
21 画像取得部
22 モデル前段処理部
23,23A 分散値算出部
24 特徴量符号化部
25 量子化部
26 送信部
3 エッジサーバ
31 受信部
32 逆量子化部
33 特徴量復号部
34 モデル後段処理部
35 格納部
4 制御サーバ
41 制御部
42 NW帯域決定部
43 送信先決定部