以下に添付図面を参照しながら、本発明の好適な実施の形態について詳細に説明する。なお、本明細書及び図面において、実質的に同一の機能構成を有する構成要素については、同一の符号を付することにより重複説明を省略する。
また、本明細書及び図面において、実質的に同一の機能構成を有する複数の構成要素を、同一の符号の後に異なるアルファベットを付して区別する場合もある。ただし、実質的に同一の機能構成を有する複数の構成要素の各々を特に区別する必要がない場合、同一符号のみを付する。
<<1.概要>>
<1−1.背景>
現在、街のいたるところに監視カメラが設置されており、監視カメラの数は増加傾向にある。また、監視カメラの多くはネットワークに接続され、ネットワークを介して監視カメラから得られる画像(静止画像、または動画像)を用いた多様な応用が考えられる。
例えば、特許文献1には、監視カメラの撮像により得られた撮像画像を、ネットワークを介してサーバへ送信し、当該サーバにおいて必要な処理を行うことで、防犯等に活用する技術が提案されている。また、特許文献1には、処理を監視カメラ及び複数のサーバで分担させることにより、リアルタイム性を保つことも記載されている。
しかし、上記特許文献1に記載の技術では、撮像画像から人物検出を行って人物候補画像を抽出する処理を監視カメラで行うため、監視カメラが係る処理をリアルタイムに行うための性能を有していない場合には、リアルタイム性を保つことが出来ない。リアルタイム性を保つため、例えばフレームレート(時間分解能)を減らしたり、解像度(空間分解能)を減らしたりすることも可能であるが、係る場合には人物検出の精度が低下する恐れがある。したがって、処理をより細かい単位で分担させることが可能な仕組みが望まれていた。
また、上記特許文献1の技術では、監視カメラからサーバへ、人物の映った画像が送信され得る。したがって、もし監視カメラとサーバとの間の通信内容が盗み取られてしまった場合には、画像を目視することで、当該人物がいつどこにいたのか、当該人物が何をしていたのか、といった情報が把握され、当該人物のプライバシーが侵害される恐れがあった。
<1−2.基本構成>
以上、本発明の実施形態の背景について説明した。本件発明者は、上述した事情を一着眼点にして本発明の実施形態を創作するに至った。
以下、本発明の各実施形態に共通する監視システム900の基本構成について、図1を参照して説明を行う。図1は、本発明の各実施形態に共通する監視システム900の概略構成を説明するための説明図である。図1に示すように、監視システム900は、監視カメラ1と、中間サーバ2と、認識サーバ3と、通信ネットワーク5Aと、通信ネットワーク5Bとを有する。
図1に示すように、監視カメラ1と中間サーバ2とは、通信ネットワーク5Aを介して接続され、中間サーバ2と認識サーバ3とは、通信ネットワーク5Bを介して接続される。
通信ネットワーク5A、及び通信ネットワーク5Bは、それぞれ通信ネットワーク5A、及び通信ネットワーク5Bに接続されている装置、またはシステムから送信される情報の有線、または無線の伝送路である。例えば、通信ネットワーク5(通信ネットワーク5A、及び通信ネットワーク5B)は、インターネット、電話回線網、衛星通信網等の公衆回線網や、Ethernet(登録商標)を含む各種のLAN(Local Area Network)、WAN(Wide Area Network)等を含んでもよい。また、通信ネットワーク5は、IP−VPN(Internet Protocol-Virtual Private Network)等の専用回線網を含んでもよい。
監視システム900は、監視カメラ1の撮像により得られた画像データに含まれる人物の顔(物体の一例)を認識するために、ニューラルネットワークを用いたニューラルネットワーク処理を行う。顔認識を実現するためのニューラルネットワークは、例えば上記の非特許文献1、または非特許文献2のような手法で生成することが可能である。また、ニューラルネットワークを用いたニューラルネットワーク処理は、ニューラルネットワークパラメータにより特定することが可能である。
例えば、監視システム900が行うニューラルネットワーク処理は、画像データから人物の顔を見つけ出す顔検出処理と、検出された顔が誰であるかを照合する顔認証処理とを含み得る。ただし、監視システム900が行うニューラルネットワーク処理は、顔検出処理と顔認証処理とが明確に区別されているとは限らない。
ニューラルネットワークは、脳機能に見られるいくつかの特性を計算機上のシミュレーションによって表現することを目指した数学モデルである。例えば、ニューラルネットワークは、多数の層から構成され、入力データの特徴量を抽出する処理や、抽出された特徴量を識別する処理等を係る多数の層により行うことが可能である。
本発明の各実施形態に係る監視システム900は、ニューラルネットワークの層単位で処理を分割し、分割された処理を監視カメラ1、中間サーバ2、認識サーバ3のうち少なくとも2つの装置に分担させる。係る構成により、細かい単位で処理を分担させることが可能であり、より高い解像度、より高いフレームレートで撮像が行われる場合であっても、リアルタイム性を保ちやすい。
また、後述する第2の実施形態、及び、第3の実施形態では、装置間で画像データは送信されず、各装置に分担された各段階の処理結果である出力値が送信されるため、万一通信内容が盗み取られてしまった場合であっても、プライバシーが侵害され難い。
以上、本発明の各実施形態に共通する監視システム900の基本構成について説明した。以下では、上述した効果を実現する本発明の各実施形態について、順次詳細に説明する。
<<2.各実施形態の詳細な説明>>
<2−1.第1の実施形態>
(概要)
まず、本発明の第1の実施形態に係る監視システム900の概要について説明する。なお、以下では、本発明の第1の実施形態に係る監視システム900を監視システム900−1と呼称し、監視システム900−1が有する監視カメラ1、中間サーバ2、及び認識サーバ3をそれぞれ監視カメラ1−1、中間サーバ2−1、及び認識サーバ3−1と呼称する。
図2は、本発明の第1の実施形態の概要を説明するための説明図である。図2には、本実施形態に係る監視システム900−1が用いるニューラルネットワークNN1が示されている。図2に示すように、ニューラルネットワークNN1は、n層で構成されたニューラルネットワークである。なお、本実施形態において、nは少なくとも2以上の整数であるものとする。
また、図2に示すニューラルネットワークNN1は、各層の出力値が、当該層の次の(右の)層に入力されるニューラルネットワークである。なお、各層の出力値は、スカラー値に限られず、例えばベクトル値であってもよい。以下、図2に示すように、本実施形態に係るニューラルネットワークNN1を構成する各層を左から順に第1層L1、第2層L2、第3層L3、・・・、第n層Lnと呼称する。
本実施形態に係る監視システム900−1は、ニューラルネットワークNN1を用いたニューラルネットワーク処理を、中間サーバ2−1と、認識サーバ3−1とで分担させる。図2に示す例では、中間サーバ2−1が第1層L1〜第k層Lkのニューラルネットワーク処理を担当し、認識サーバ3−1が、第k+1層Lk+1〜第n層Lnのニューラルネットワーク処理を担当する。ここで、kは1以上n−1以下の整数であり、中間サーバ2−1と認識サーバ3−1の(より正確には、後述するように中間サーバ2−1と認識サーバ3−1がそれぞれ有する処理部の)処理分担境界を示している。
本実施形態において、中間サーバ2−1と認識サーバ3−1の処理分担境界を示す整数kは予め設定された値であってもよい。例えば整数kは、中間サーバ2−1と認識サーバ3−1の処理性能や、監視カメラ1−1のフレームレートや解像度等を考慮し、要求される処理時間を満たすようにユーザにより設定されてもよい。なお、本実施形態において、ニューラルネットワークNN1は、顔検出処理と顔認証処理とが明確に区別されていてもよいし、明確に区別されていなくてもよい。ニューラルネットワークNN1において顔検出処理と顔認証処理とが明確に区別されていた場合であっても、中間サーバ2−1と認識サーバ3−1の処理分担境界を示す整数kは、顔検出処理と顔認証処理の境界とは依存せずに設定され得る。さらに言えば、中間サーバ2−1と認識サーバ3−1の処理分担境界を示す整数kは、ニューラルネットワークNN1の各層がいかなる処理のための層であるかに依存せずに設定されてもよい。係る構成により、処理をより細かい単位で中間サーバ2−1と認識サーバ3−1に分担させることが可能である。
(構成例)
以上、本実施形態に係る監視システム900−1の概要を説明した。続いて、本実施形態に係る監視システム900−1の構成例について、より詳細に説明する。図3は、本実施形態に係る監視システム900−1の構成例を示すブロック図である。
監視カメラ1−1は、図3に示すように、撮像部111、及び通信インタフェース部120を備える。
撮像部111は、画像データ(センシングデータの一例)を撮像(センシングの一例)により取得するカメラモジュールである。例えば、撮像部111は、は、CCD(Charge Coupled Device)またはCMOS(Complementary Metal Oxide Semiconductor)等の撮像素子を用いて周囲の実空間を撮像することにより、光を電気信号に変換し、画像データを生成する。撮像部111は、画像データを通信インタフェース部120へ提供する。
通信インタフェース部120は、監視カメラ1−1による他の装置との間の通信を仲介する。通信インタフェース部120は、任意の無線通信プロトコルまたは有線通信プロトコルをサポートし、通信ネットワーク5Aを介して、あるいは直接に他の装置との間の通信接続を確立する。通信インタフェース部120は、図3に示すように変換部122、及び通信部124を含む。
変換部122は、データを通信部124が送信可能な形式のデータ(通信用データ)に変換する。例えば、変換部122は、撮像部111から提供された画像データを通信用画像データに変換し、通信部124へ提供する。
通信部124は、通信ネットワーク5Aを介して、あるいは直接に他の装置へ通信用データを送信し、または他の装置から通信用データを受信する。例えば、通信部124は、変換部122から提供された通信用画像データを通信ネットワーク5Aへ送信する。なお、本実施形態では、通信用画像データが通信ネットワーク5Aを介して監視カメラ1−1から中間サーバ2−1へ送信されるため、通信ネットワーク5Aは高いセキュリティを有する通信ネットワークであることが望ましい。
中間サーバ2−1は、図3に示すように、通信インタフェース部220、処理部231、及び記憶部240を備える情報処理装置である。
通信インタフェース部220は、中間サーバ2−1による他の装置との間の通信を仲介する。通信インタフェース部220は、任意の無線通信プロトコルまたは有線通信プロトコルをサポートし、通信ネットワーク5A、または通信ネットワーク5Bを介して、あるいは直接に他の装置との間の通信接続を確立する。通信インタフェース部220は、図3に示すように変換部222、及び通信部224を含む。
変換部222は、通信部224が受信した通信用データを処理部231や記憶部240が扱うためのデータに変換(逆変換)し、処理部231や記憶部240へ提供する。例えば、変換部222は、通信部224が通信ネットワーク5Aから受信した通信用画像データを画像データ(本実施形態における入力データ)に変換し、処理部231へ提供する。
また、変換部222は、データを通信部224が送信可能な形式のデータ(通信用データ)に変換する。例えば、変換部222は、本実施形態における第1の変換部として機能し、後述する処理部231から出力されるニューラルネットワークNN1の第k層出力値を通信用第k層出力値に変換し、通信部224へ提供する。
通信部224は、通信ネットワーク5Aを介して、または通信ネットワーク5Bを介して、あるいは直接に他の装置へ通信用データを送信し、または他の装置から通信用データを受信する。例えば、通信部224は、本実施形態における第1の送信部として機能し、変換部222から提供された通信用第k層出力値を通信ネットワーク5B(本実施形態における第1の通信ネットワーク)へ送信する。また、通信部224は、監視カメラ1−1が送信した通信用画像データを通信ネットワーク5Aから受信する。
処理部231は、ニューラルネットワーク処理を行う。処理部231が行うニューラルネットワーク処理は、例えば、記憶部240に記憶されるニューラルネットワークパラメータによって特定され得る。なお、記憶部240に記憶されるニューラルネットワークパラメータは、ニューラルネットワークNN1全体に対応するパラメータであってもよいし、ニューラルネットワークNN1のうち第1層L1から第k層Lkまでに対応するパラメータであってもよい。処理部231と後述する認識サーバ3−1が有する処理部331の処理分担境界を示す整数kが記憶部240に記憶されていてもよい。
処理部231は、本実施形態における第1のニューラルネットワーク処理部として機能し、画像データを入力とし、図2に示したニューラルネットワークNN1のうち第1層L1から第k層Lkまでを用いたニューラルネットワーク処理を行う。また、処理部231は、本実施形態における第1のニューラルネットワーク処理部として機能し、第k層Lkの出力値である第k層出力値を通信インタフェース部220へ出力する。
記憶部240は、中間サーバ2−1の動作に用いられるプログラム及びデータを記憶する。また、記憶部240はニューラルネットワークNN1に関するニューラルネットワークパラメータを記憶する。
認識サーバ3−1は、図3に示すように、通信インタフェース部320、処理部331、及び記憶部340を備える情報処理装置である。
通信インタフェース部320は、認識サーバ3−1による他の装置との間の通信を仲介する。通信インタフェース部320は、任意の無線通信プロトコルまたは有線通信プロトコルをサポートし、通信ネットワーク5Bを介して、あるいは直接に他の装置との間の通信接続を確立する。通信インタフェース部320は、図3に示すように変換部322、及び通信部324を含む。
変換部322は、通信部324が受信した通信用データを処理部331や記憶部340が扱うためのデータに変換(逆変換)し、処理部331や記憶部340へ提供する。例えば、変換部322は、本実施形態における第2の変換部として機能し、通信部324が通信ネットワーク5B(本実施形態における第1の通信ネットワーク)から受信した通信用第k層出力値を第k層出力値に変換し、処理部331へ提供する。
通信部324は、通信ネットワーク5Bを介して、あるいは直接に他の装置へ通信用データを送信し、または他の装置から通信用データを受信する。例えば、通信部324は、本実施形態における第1の受信部として機能し、中間サーバ2−1が送信した通信用第k層出力値を通信ネットワーク5Bから受信する。
処理部331は、ニューラルネットワーク処理を行う。処理部331が行うニューラルネットワーク処理は、例えば、記憶部340に記憶されるニューラルネットワークパラメータによって特定され得る。なお、記憶部340に記憶されるニューラルネットワークパラメータは、ニューラルネットワークNN1全体に対応するパラメータであってもよいし、ニューラルネットワークNN1のうち第k+1層Lk+1から第n層Lnまでに対応するパラメータであってもよい。中間サーバ2−1が有する処理部231と処理部331の処理分担境界を示す整数kが記憶部340に記憶されていてもよい。
処理部331は、本実施形態における第2のニューラルネットワーク処理部として機能し、第k層出力値を入力とし、図2に示したニューラルネットワークNN1のうち第k+1層Lk+1から第n層Lnまでを用いたニューラルネットワーク処理を行う。処理部331は、第n層Lnの出力値である第n層出力値を出力し、例えば記憶部340へ記憶させてもよい。あるいは、処理部331により出力された第n層出力値は、不図示の表示部に表示されてもよいし、変換部322により通信用データに変換された後に通信部324により他の装置へ送信されてもよい。なお、上述したように、本実施形態に係るニューラルネットワークNN1は、顔認識のためのニューラルネットワークであり、第n層出力値は、例えば監視カメラ1−1が撮像した画像に誰の顔が含まれるか、という情報を含み得る。
記憶部340は、認識サーバ3−1の動作に用いられるプログラム及びデータを記憶する。また、記憶部340はニューラルネットワークNN1に関するニューラルネットワークパラメータを記憶する。
(動作例)
以上、本発明の第1の実施形態に係る監視システム900−1の構成例について説明した。続いて、本実施形態の動作例について、図4を参照して説明する。図4は、本実施形態に係る監視システム900−1の処理フローを示すシーケンス図である。
図4に示すように、まず監視カメラ1−1は、撮像部111の撮像により画像データを取得する(S102)。続いて、監視カメラ1−1の変換部122が、画像データを通信用画像データに変換する(S106)。さらに、監視カメラ1−1の通信部124が、通信用画像データを通信ネットワーク5Aへ送信し、中間サーバ2−1の通信部224が当該通信用画像データを通信ネットワーク5Aから受信する(S108)。
続いて、中間サーバ2−1の変換部222が、ステップS108で受信された通信用画像データを画像データに変換する(S110)。さらに、中間サーバ2−1の処理部231が、当該画像データを入力とし、ニューラルネットワークNN1のうち第1層L1から第k層Lkまでを用いたニューラルネットワーク処理を行って第k層出力値を出力する(S112)。
続いて、中間サーバ2−1の変換部222が第k層出力値を通信用第k層出力値に変換する(S114)。さらに、中間サーバ2−1の通信部224が、通信用第k層出力値を通信ネットワーク5Bへ送信し、認識サーバ3−1の通信部324が当該通信用第k層出力値を通信ネットワーク5Bから受信する(S116)。
続いて、認識サーバ3−1の変換部322が、ステップS116で受信された通信用第k層出力値を第k層出力値に変換する(S118)。さらに、認識サーバ3−1の処理部331が、当該第k層出力値を入力とし、ニューラルネットワークNN1のうち第k+1層Lk+1から第n層Lnまでを用いたニューラルネットワーク処理を行って第n層出力値を出力する(S120)。
(効果)
以上、本発明の第1の実施形態について説明した。本実施形態によれば、監視カメラ1−1の撮像により取得された画像データを入力としたニューラルネットワーク処理が、中間サーバ2−1と認識サーバ3−1とで分担される。また、上述したように、中間サーバ2−1と認識サーバ3−1との処理分担境界を示す整数kは、各層に係る処理に依存せず設定され得るため、処理をより細かい単位で中間サーバ2−1と認識サーバ3−1に分担させることが可能である。さらに、中間サーバ2−1と認識サーバ3−1との間では、画像データに係る通信が行われず、通信用第k層出力値が通信される。係る構成により、仮に通信ネットワーク5Bを介した中間サーバ2−1と認識サーバ3−1との間の通信内容が盗み取られてしまった場合であっても、プライバシーが侵害され難い。
<2−2.第2の実施形態>
(概要)
上記第1の実施形態では、ニューラルネットワーク処理を中間サーバ2−1と認識サーバ3−1の2つの装置で分担させる例を説明したが、ニューラルネットワーク処理を3つ以上の装置で分担させることも可能である。以下では、ニューラルネットワーク処理を監視カメラ1、中間サーバ2、及び認識サーバ3の3つの装置で分担させる例について、本発明に係る第2の実施形態として説明する。なお、以下では、本発明の第2の実施形態に係る監視システム900を監視システム900−2と呼称し、監視システム900−2が有する監視カメラ1、中間サーバ2、及び認識サーバ3をそれぞれ監視カメラ1−2、中間サーバ2−2、及び認識サーバ3−2と呼称する。
図5は、本発明の第2の実施形態の概要を説明するための説明図である。図5には、本実施形態に係る監視システム900−2が用いるニューラルネットワークNN2が示されている。図5に示すように、ニューラルネットワークNN2は、n層で構成されたニューラルネットワークである。なお、本実施形態において、nは少なくとも3以上の整数であるものとする。
また、図5に示すニューラルネットワークNN2は、各層の出力値が、当該層の次の(右の)層に入力されるニューラルネットワークである。なお、各層の出力値は、スカラー値に限られず、例えばベクトル値であってもよい。以下、図5に示すように、本実施形態に係るニューラルネットワークNN2を構成する各層を左から順に第1層L1、第2層L2、第3層L3、・・・、第n層Lnと呼称する。
本実施形態に係る監視システム900−2は、ニューラルネットワークNN2を用いたニューラルネットワーク処理を、監視カメラ1−2、中間サーバ2−2、及び認識サーバ3−2で分担させる。図5に示す例では、監視カメラ1−2が第1層L1〜第k層Lkのニューラルネットワーク処理を担当する。また、中間サーバ2−2が第k+1層Lk+1〜第m層Lmのニューラルネットワーク処理を担当する。また、認識サーバ3−2が、第m+1層Lm+1〜第n層Lnのニューラルネットワーク処理を担当する。ここで、kは1以上m−1以下の整数であり、監視カメラ1−2と中間サーバ2−2の(より正確には、後述するように監視カメラ1−2と中間サーバ2−2がそれぞれ有する処理部の)処理分担境界を示している。また、mはk+1以上n−1以下の整数であり、中間サーバ2−2と認識サーバ3−2の(より正確には、後述するように中間サーバ2−2と認識サーバ3−2がそれぞれ有する処理部の)処理分担境界を示している。
本実施形態において、監視カメラ1−2と中間サーバ2−2の処理分担境界を示す整数k、及び中間サーバ2−2と認識サーバ3−2の処理分担境界を示す整数mはそれぞれ予め設定された値であってもよい。例えば整数k、及び整数mは、監視カメラ1−2、中間サーバ2−2、及び認識サーバ3−2の処理性能や、監視カメラ1−2のフレームレートや解像度等を考慮し、要求される処理時間を満たすようにユーザにより設定されてもよい。なお、本実施形態において、ニューラルネットワークNN2は、顔検出処理と顔認証処理とが明確に区別されていてもよいし、明確に区別されていなくてもよい。ニューラルネットワークNN2において顔検出処理と顔認証処理とが明確に区別されていた場合であっても、整数k、及び整数mは、顔検出処理と顔認証処理の境界とは依存せずに設定され得る。さらに言えば、整数k、及び整数mは、ニューラルネットワークNN2の各層がいかなる処理のための層であるかに依存せずに設定されてもよい。係る構成により、処理をより細かい単位で監視カメラ1−2、中間サーバ2−2、及び認識サーバ3−3に分担させることが可能である。
(構成例)
以上、本実施形態に係る監視システム900−2の概要を説明した。続いて、本実施形態に係る監視システム900−2の構成例について、より詳細に説明する。図6は、本実施形態に係る監視システム900−2の構成例を示すブロック図である。なお、本実施形態に係る監視システム900−2は、一部において第1の実施形態に係る監視システム900−1と同様の構成を有するため、適宜省略しながら説明を行う。
監視カメラ1−2は、図6に示すように、撮像部112、処理部132、記憶部140、及び通信インタフェース部170を備える情報処理装置である。
撮像部112は、図3を参照して説明した撮像部111と同様に画像データ(センシングデータの一例)を撮像(センシングの一例)により取得するカメラモジュールである。ただし、本実施形態に係る撮像部112は、画像データ(本実施形態における入力データ)を処理部132へ提供する点において、図3を参照して説明した撮像部111と異なる。
処理部132は、ニューラルネットワーク処理を行う。処理部132が行うニューラルネットワーク処理は、例えば、記憶部140に記憶されるニューラルネットワークパラメータによって特定され得る。なお、記憶部140に記憶されるニューラルネットワークパラメータは、ニューラルネットワークNN2全体に対応するパラメータであってもよいし、ニューラルネットワークNN2のうち第1層L1から第k層Lkまでに対応するパラメータであってもよい。処理部132と後述する中間サーバ2−2が有する処理部232の処理分担境界を示す整数kが記憶部140に記憶されていてもよい。
処理部132は、本実施形態における第1のニューラルネットワーク処理部として機能し、撮像部112から提供される画像データを入力とし、図5に示したニューラルネットワークNN2のうち第1層L1から第k層Lkまでを用いたニューラルネットワーク処理を行う。また、処理部132は、本実施形態における第1のニューラルネットワーク処理部として機能し、第k層Lkの出力値である第k層出力値を通信インタフェース部170へ出力する。
記憶部140は、監視カメラ1−2の動作に用いられるプログラム及びデータを記憶する。また、記憶部140はニューラルネットワークNN2に関するニューラルネットワークパラメータを記憶する。
通信インタフェース部170は、図3を参照して説明した通信インタフェース部120と同様に、監視カメラ1−2による他の装置との間の通信を仲介する。通信インタフェース部170は、任意の無線通信プロトコルまたは有線通信プロトコルをサポートし、通信ネットワーク5Aを介して、あるいは直接に他の装置との間の通信接続を確立する。通信インタフェース部170は、図6に示すように変換部172、及び通信部174を含む。
変換部172は、データを通信部174が送信可能な形式のデータ(通信用データ)に変換する。例えば、変換部172は、本実施形態における第1の変換部として機能し、処理部132から出力されるニューラルネットワークNN2の第k層出力値を通信用第k層出力値に変換し、通信部174へ提供する。
通信部174は、通信ネットワーク5Aを介して、あるいは直接に他の装置へ通信用データを送信し、または他の装置から通信用データを受信する。例えば、通信部174は、変換部172から提供された通信用第k層出力値を通信ネットワーク5A(本実施形態における第1の通信ネットワーク)へ送信する。
通信部174は、通信ネットワーク5Aを介して、あるいは直接に他の装置へ通信用データを送信し、または他の装置から通信用データを受信する。例えば、通信部174は、本実施形態における第1の送信部として機能し、変換部172から提供された通信用第k層出力値を通信ネットワーク5A(本実施形態における第1の通信ネットワーク)へ送信する。
中間サーバ2−2は、図6に示すように、処理部232、記憶部240、及び通信インタフェース部270を備える情報処理装置である。図6に示す記憶部240の機能は図3を参照して説明した記憶部240の機能と同様であるため、説明を省略する。
処理部232は、ニューラルネットワーク処理を行う。処理部232が行うニューラルネットワーク処理は、例えば、記憶部240に記憶されるニューラルネットワークパラメータによって特定され得る。なお、本実施形態において記憶部240に記憶されるニューラルネットワークパラメータは、ニューラルネットワークNN2全体に対応するパラメータであってもよいし、ニューラルネットワークNN2のうち第k+1層Lk+1から第m層Lmまでに対応するパラメータであってもよい。また、監視カメラ1−2が有する処理部132と処理部232の処理分担境界を示す整数k、及び処理部232と後述する認識サーバ3−1が有する処理部332の処理分担境界を示す整数mが記憶部240に記憶されていてもよい。
処理部232は、本実施形態における第2のニューラルネットワーク処理部として機能し、第k層出力値を入力とし、図5に示したニューラルネットワークNN2のうち第k+1層Lk+1から第m層Lmまでを用いたニューラルネットワーク処理を行う。また、処理部232は、本実施形態における第2のニューラルネットワーク処理部として機能し、第m層Lmの出力値である第m層出力値を通信インタフェース部270へ出力する。
通信インタフェース部270は、図3を参照して説明した通信インタフェース部220と同様に、中間サーバ2−2による他の装置との間の通信を仲介する。通信インタフェース部270は、任意の無線通信プロトコルまたは有線通信プロトコルをサポートし、通信ネットワーク5A、または通信ネットワーク5Bを介して、あるいは直接に他の装置との間の通信接続を確立する。通信インタフェース部270は、図6に示すように変換部272、及び通信部274を含む。
変換部272は、通信部274が受信した通信用データを処理部232や記憶部240が扱うためのデータに変換(逆変換)し、処理部232や記憶部240へ提供する。例えば、変換部272は、本実施形態における第2の変換部として機能し、通信部274が通信ネットワーク5Aから受信した通信用第k層出力値を第k層出力値に変換し、処理部232へ提供する。
また、変換部272は、データを通信部274が送信可能な形式のデータ(通信用データ)に変換する。例えば、変換部272は、本実施形態における第3の変換部として機能し、処理部232から出力されるニューラルネットワークNN2の第m層出力値を通信用第m層出力値に変換し、通信部274へ提供する。
通信部274は、通信ネットワーク5Aを介して、または通信ネットワーク5Bを介して、あるいは直接に他の装置へ通信用データを送信し、または他の装置から通信用データを受信する。例えば、通信部274は、本実施形態における第1の受信部として機能し、監視カメラ1−1が送信した通信用第k層出力値を通信ネットワーク5Aから受信する。また、通信部274は、本実施形態における第2の送信部として機能し、変換部272から提供された通信用第m層出力値を通信ネットワーク5B(本実施形態における第2の通信ネットワーク)へ送信する。
認識サーバ3−2は、図6に示すように、処理部332、記憶部340、及び通信インタフェース部370を備える情報処理装置である。図6に示す記憶部340の機能は図3を参照して説明した記憶部340の機能と同様であるため、説明を省略する。
処理部332は、ニューラルネットワーク処理を行う。処理部332が行うニューラルネットワーク処理は、例えば、記憶部340に記憶されるニューラルネットワークパラメータによって特定され得る。なお、本実施形態において記憶部340が記憶するニューラルネットワークパラメータは、ニューラルネットワークNN2全体に対応するパラメータであってもよいし、ニューラルネットワークNN2のうち第m+1層Lm+1から第n層Lnまでに対応するパラメータであってもよい。また、中間サーバ2−2が有する処理部232と処理部332の処理分担境界を示す整数mが記憶部340に記憶されていてもよい。
処理部332は、本実施形態における第3のニューラルネットワーク処理部として機能し、第m層出力値を入力とし、図5に示したニューラルネットワークNN2のうち第m+1層Lm+1から第n層Lnまでを用いたニューラルネットワーク処理を行う。処理部332により出力される第n層Lnの出力値である第n層出力値は、記憶部340に記憶されてもよいし、不図示の表示部に表示されてもよいし、変換部372により通信用データに変換された後に通信部374により他の装置へ送信されてもよい。
通信インタフェース部370は、認識サーバ3−2による他の装置との間の通信を仲介する。通信インタフェース部370は、任意の無線通信プロトコルまたは有線通信プロトコルをサポートし、通信ネットワーク5Bを介して、あるいは直接に他の装置との間の通信接続を確立する。通信インタフェース部370は、図6に示すように変換部372、及び通信部374を含む。
変換部372は、通信部374が受信した通信用データを処理部332や記憶部340が扱うためのデータに変換(逆変換)し、処理部332や記憶部340へ提供する。例えば、変換部372は、本実施形態における第4の変換部として機能し、通信部374が通信ネットワーク5B(本実施形態における第2の通信ネットワーク)から受信した通信用第m層出力値を第m層出力値に変換し、処理部332へ提供する。
通信部374は、通信ネットワーク5Bを介して、あるいは直接に他の装置へ通信用データを送信し、または他の装置から通信用データを受信する。例えば、通信部374は、本実施形態における第2の受信部として機能し、中間サーバ2−2が送信した通信用第m層出力値を通信ネットワーク5Bから受信する。
(動作例)
以上、本発明の第2の実施形態に係る監視システム900−2の構成例について説明した。続いて、本実施形態の動作例について、図7を参照して説明する。図7は本実施形態に係る監視システム900−2の処理フローを示すシーケンス図である。
図7に示すように、まず監視カメラ1−2は、撮像部112の撮像により画像データを取得する(S202)。続いて、監視カメラ1−2の処理部132が、当該画像データを入力とし、ニューラルネットワークNN2のうち第1層L1から第k層Lkまでを用いたニューラルネットワーク処理を行って第k層出力値を出力する(S204)。
続いて、監視カメラ1−2の変換部172が、第k層出力値を通信用第k層出力値に変換する(S206)。さらに、監視カメラ1−2の通信部174が、通信用第k層出力値を通信ネットワーク5Aへ送信し、中間サーバ2−2の通信部274が当該通信用第k層出力値を通信ネットワーク5Aから受信する(S208)。
続いて、中間サーバ2−2の変換部272が、ステップS208で受信された通信用第k層出力値を第k層出力値に変換する(S210)。さらに、中間サーバ2−2の処理部232が、当該第k層出力値を入力とし、ニューラルネットワークNN2のうち第k+1層Lk+1から第m層Lmまでを用いたニューラルネットワーク処理を行って第m層出力値を出力する(S212)。
続いて、中間サーバ2−2の変換部272が第m層出力値を通信用第m層出力値に変換する(S214)。さらに、中間サーバ2−2の通信部274が、通信用第m層出力値を通信ネットワーク5Bへ送信し、認識サーバ3−2の通信部374が当該通信用第m層出力値を通信ネットワーク5Bから受信する(S216)。
続いて、認識サーバ3−2の変換部372が、ステップS216で受信された通信用第m層出力値を第m層出力値に変換する(S218)。さらに、認識サーバ3−2の処理部332が、当該第m層出力値を入力とし、ニューラルネットワークNN2のうち第m+1層Lm+1から第n層Lnまでを用いたニューラルネットワーク処理を行って第n層出力値を出力する(S220)。
(効果)
以上、本発明の第2の実施形態について説明した。本実施形態によれば、監視カメラ1−2の撮像により取得された画像データを入力としたニューラルネットワーク処理が、監視カメラ1−2、中間サーバ2−2、及び認識サーバ3−2の、3つの装置で分担される。また、上述したように、監視カメラ1−2と中間サーバ2−2の処理分担境界を示す整数k、及び中間サーバ2−2と認識サーバ3−2の処理分担境界を示す整数mは、各層に係る処理に依存せず設定され得るため、処理をより細かい単位で分担させることが可能である。さらに、各装置間では、画像データに係る通信が行われず、通信用第k層出力値または、通信用第m層出力値が通信される。係る構成により、仮に通信ネットワーク5Aを介した監視カメラ1−2と中間サーバ2−2との間の通信内容、または通信ネットワーク5Bを介した中間サーバ2−2と認識サーバ3−2との間の通信内容が盗み取られてしまった場合であっても、プライバシーが侵害され難い。
なお、上記第2の実施形態では、ニューラルネットワーク処理が、3つの装置で分担される例を説明したが、本発明は係る例に限定されず、ニューラルネットワーク処理は4つ以上の装置で分担されてもよい。
<2−3.第3の実施形態>
(概要)
上記第1の実施形態、及び第2の実施形態では、装置間の処理分担境界を示す整数k、及び整数mが予め設定される例を説明したが、処理分担境界を動的に決定することも可能である。以下では、処理分担境界が動的に決定される例について、本発明に係る第3の実施形態として説明する。なお、以下では、本発明の第3の実施形態に係る監視システム900を監視システム900−3と呼称し、監視システム900−3が有する監視カメラ1、中間サーバ2、及び認識サーバ3をそれぞれ監視カメラ1−3、中間サーバ2−3、及び認識サーバ3−3と呼称する。
図8は、本発明の第3の実施形態の概要を説明するための説明図である。図8には、本実施形態に係る監視システム900−3が用いるニューラルネットワークNN3が示されている。図8に示すように、ニューラルネットワークNN3は、n層で構成されたニューラルネットワークである。なお、本実施形態において、nは少なくとも3以上の整数であるものとする。
また、図8に示すニューラルネットワークNN3は、各層の出力値が、当該層の次の(右の)層に入力されるニューラルネットワークである。なお、各層の出力値は、スカラー値に限られず、例えばベクトル値であってもよい。以下、図8に示すように、本実施形態に係るニューラルネットワークNN3を構成する各層を左から順に第1層L1、第2層L2、第3層L3、・・・、第n層Lnと呼称する。
本実施形態において、ニューラルネットワークNN3に含まれる各層は、図8に示すように顔検出処理と顔認証処理とが明確に区別されている。図8に示すように、ニューラルネットワークNN3においては、第1層L1〜第q層Lqが顔検出処理に対応し、第q+1層Lq+1〜第n層Lnが顔認証処理に対応する。つまり、第q層Lqの出力値である第q層出力値は、顔検出結果に関する情報を含む。なお、ここでqは1以上n−1以下の整数である。
本実施形態に係る監視システム900−3は、第2の実施形態に係る監視システム900−2と同様に、ニューラルネットワークNN3を用いたニューラルネットワーク処理を、監視カメラ1−3、中間サーバ2−3、及び認識サーバ3−3で分担させる。図8に示す例では、監視カメラ1−3が第1層L1〜第k層Lkのニューラルネットワーク処理を担当する。また、中間サーバ2−3が第k+1層Lk+1〜第m層Lmのニューラルネットワーク処理を担当する。また、認識サーバ3−3が、第m+1層Lm+1〜第n層Lnのニューラルネットワーク処理を担当する。ここで、kは1以上q−1以下の整数であり、監視カメラ1−3と中間サーバ2−3の(より正確には、後述するように監視カメラ1−3と中間サーバ2−3がそれぞれ有する処理部の)処理分担境界を示している。また、mはq+1以上n−1以下の整数であり、中間サーバ2−3と認識サーバ3−3の(より正確には、後述するように中間サーバ2−3と認識サーバ3−3がそれぞれ有する処理部の)処理分担境界を示している。
本実施形態において、監視カメラ1−3と中間サーバ2−3の処理分担境界を示す整数k、及び中間サーバ2−3と認識サーバ3−3の処理分担境界を示す整数mは動的に変化し得る。整数k及び整数mの決定方法の詳細については後述するが、上述したようにkは1以上q−1以下の範囲で、mはq+1以上n−1以下の範囲で決定される。係る構成により、中間サーバ2−3は、常に第q層Lqを用いたニューラルネットワーク処理を行うこととなる。そのため中間サーバ2−3は、現在のフレームの画像データ(第1の入力データ)を入力とした顔検出処理の結果に関する情報を含む第q層出力値を得ることが可能である。そして、中間サーバ2−3は当該第q層出力値に基づいて、次のフレームの画像データ(第2の入力データ)の撮像(センシング)に係る分解能や、次のフレームの画像データを入力としたニューラルネットワーク処理の処理分担境界を決定する。係る構成により、例えば要求される処理時間を満たすように処理を分担しつつ、より高精度な顔認識を行うことが可能となる。
(構成例)
以上、本実施形態に係る監視システム900−3の概要を説明した。続いて、本実施形態に係る監視システム900−3の構成例について、より詳細に説明する。図9は、本実施形態に係る監視システム900−3の構成例を示すブロック図である。なお、本実施形態に係る監視システム900−3は、一部において第1の実施形態に係る監視システム900−1や第2の実施形態に係る監視システム900−2と同様の構成を有するため、適宜省略しながら説明を行う。
監視カメラ1−3は、図9に示すように、撮像部113、処理部133、記憶部140、処理制御部163、及び通信インタフェース部180を備える情報処理装置である。図9に示す記憶部140の機能は図6を参照して説明した記憶部140の機能と同様であるため、説明を省略する。
撮像部113は、図6を参照して説明した撮像部112と同様に画像データ(センシングデータの一例)を撮像(センシングの一例)により取得するカメラモジュールである。ただし、本実施形態に係る撮像部113は、後述する処理制御部163の制御に従ったフレームレート(時間分解能)、及び解像度(空間分解能)で撮像を行う点で、図6を参照して説明した撮像部112と異なる。
処理部133は、ニューラルネットワーク処理を行う。処理部133が行うニューラルネットワーク処理は、例えば、記憶部140に記憶されるニューラルネットワークパラメータによって特定され得る。なお、記憶部140に記憶されるニューラルネットワークパラメータは、ニューラルネットワークNN3全体に対応するパラメータであってもよいし、ニューラルネットワークNN3のうち第1層L1から第q層Lqまでに対応するパラメータであってもよい。
処理部133は、本実施形態における第1のニューラルネットワーク処理部として機能し、撮像部113から提供される画像データを入力とし、図8に示したニューラルネットワークNN3のうち第1層L1から第k層Lkまでを用いたニューラルネットワーク処理を行う。また、処理部133は、本実施形態における第1のニューラルネットワーク処理部として機能し、第k層Lkの出力値である第k層出力値を通信インタフェース部180へ出力する。
上述したように、処理部133と後述する中間サーバ2−3が有する処理部233の処理分担境界を示す整数kは動的に変化し得る。例えば、処理部133は、後述する処理制御部163の制御に従って第1層L1から第k層Lkまでを用いたニューラルネットワーク処理を行う。
処理制御部163は、後述する通信インタフェース部180から提供される処理制御情報に基づいて、撮像部113、及び処理部133を制御する。通信インタフェース部180から処理制御部163に提供される処理制御情報には、例えば撮像部113の撮像(センシングの一例)に係るフレームレート(時間分解能)、及び解像度(空間分解能)の情報が含まれていてもよい。そして、処理制御部163は、処理制御情報に基づいて、撮像部113のフレームレート(時間分解能)、及び解像度(空間分解能)の設定を変更してもよい。また、通信インタフェース部180から処理制御部163に提供される処理制御情報には、処理部133と後述する中間サーバ2−3が有する処理部233の処理分担境界を示す整数kの情報(値)が含まれていてもよい。
通信インタフェース部180は、監視カメラ1−3による他の装置との間の通信を仲介する。通信インタフェース部180は、任意の無線通信プロトコルまたは有線通信プロトコルをサポートし、通信ネットワーク5Aを介して、あるいは直接に他の装置との間の通信接続を確立する。通信インタフェース部180は、図9に示すように変換部182、及び通信部184を含む。
変換部182は、データを通信部184が送信可能な形式のデータ(通信用データ)に変換する。例えば、変換部178は、本実施形態における第1の変換部として機能し、処理部133から出力されるニューラルネットワークNN3の第k層出力値を通信用第k層出力値に変換し、通信部184へ提供する。
また、変換部182は、通信部184が受信した通信用データを処理部133や記憶部140、処理制御部163が扱うためのデータに変換(逆変換)し、処理部133や記憶部140、処理制御部163へ提供する。例えば、変換部182は、通信部184が通信ネットワーク5Aから受信した通信用処理制御情報を処理制御情報に変換し、処理制御部163へ提供する。
通信部184は、通信ネットワーク5Aを介して、あるいは直接に他の装置へ通信用データを送信し、または他の装置から通信用データを受信する。例えば、通信部184は、変換部182から提供された通信用第k層出力値を通信ネットワーク5A(本実施形態における第1の通信ネットワーク)へ送信する。通信部184は、中間サーバ2−3が送信した通信用処理制御情報を通信ネットワーク5Aから受信する。
中間サーバ2−3は、図9に示すように、処理部233、記憶部240、決定部253、処理制御部263、及び通信インタフェース部280を備える情報処理装置である。図9に示す記憶部240の機能は図3を参照して説明した記憶部240の機能と同様であるため、説明を省略する。
処理部233は、ニューラルネットワーク処理を行う。処理部233が行うニューラルネットワーク処理は、例えば、記憶部240に記憶されるニューラルネットワークパラメータによって特定され得る。なお、本実施形態において記憶部240に記憶されるニューラルネットワークパラメータは、ニューラルネットワークNN3全体に対応するパラメータであってもよい。
処理部233は、本実施形態における第2のニューラルネットワーク処理部として機能し、第k層出力値を入力とし、図8に示したニューラルネットワークNN3のうち第k+1層Lk+1から第m層Lmまでを用いたニューラルネットワーク処理を行う。また、処理部233は、本実施形態における第2のニューラルネットワーク処理部として機能し、第m層Lmの出力値である第m層出力値を通信インタフェース部280へ出力する。
上述したように、監視カメラ1−3が有する処理部133と処理部233の処理分担境界を示す整数k、及び処理部232と後述する認識サーバ3−1が有する処理部332の処理分担境界を示す整数mは動的に変化し得る。例えば、処理部233は、後述する処理制御部263の制御に従って第k+1層Lk+1から第m層Lmまでを用いたニューラルネットワーク処理を行う。
決定部253は、処理分担決定部として機能し、処理部133と処理部233の処理分担境界を示す整数kの値、及び処理部232と処理部332の処理分担境界を示す整数mの値を決定する。例えば、決定部253は、現在のフレームの画像データ(第1の入力データ)を入力としたニューラルネットワーク処理における第q層出力値に基づいて、次以降のフレームの画像データ(第2の入力データ)を入力としたニューラルネットワーク処理における整数kの値、及び整数mの値を決定してもよい。
また、決定部253は、分解能決定部として機能し、監視カメラ1−3が有する撮像部113の撮像に係る分解能(フレームレート、及び解像度)を決定する。例えば、決定部253は、現在のフレームの画像データ(第1の入力データ)を入力としたニューラルネットワーク処理における第q層出力値に基づいて、次以降のフレームの画像データ(第2の入力データ)の撮像に係る分解能を決定してもよい。
ここで、上述したように、第q層出力値は、顔検出の結果を示す情報を含み、例えば、決定部253は第q層出力値に基づいて、顔検出されたか否かを判定することが可能である。したがって、決定部253は、顔検出結果に基づいて、整数kの値、整数mの値、及び上記分解能を決定し得る。
図10は、決定部253による整数k、整数m、及び分解能(フレームレート、及び解像度)の決定の一例を示す表である。図10において、初期設定におけるkの値であるpは1以上q以下の整数、初期設定におけるmの値であるrはq以上n−1以下の整数であり、例えばそれぞれ予め設定されていてもよい。
図10に示すように、決定部253は、顔検出時には、より高精度に顔認識処理が行われるように、分解能決定部として、分解能(フレームレート、及び解像度)が高くなるように分解能を設定してもよい。ただし、係る場合、全体の処理負荷も高くなってしまうため、処理分担を変更しないと要求される処理時間で処理を完了することが出来ない恐れがある。そのため、決定部253は、分解能としてより高い値を決定する場合に、処理部133と処理部233のうち、より低い処理性能を有する方の処理負荷が、より小さくなるように、kの値を決定してもよい。
例えば、本実施形態において、監視カメラ1−3の処理部133よりも、中間サーバ2−3の処理部233の方が高い処理性能を有するものとする。そのため、図10に示す例では、フレームレート、及び解像度が高い値に決定される顔検出時には、kの値は初期設定のpよりも小さい値に決定される。また、同様に、中間サーバ2−3の処理部233よりも、認識サーバ3−3の処理部333の方が高い処理性能を有してもよい。そのため、図10に示す例では、フレームレート、及び解像度が高い値に決定される顔検出時には、mの値は初期設定のrよりも小さい値に決定される。
また、図10に示すように、決定部253は、顔未検出時には、処理負荷を低減させるため、分解能決定部として、分解能(フレームレート、及び解像度)が低くなるように分解能を設定してもよい。係る場合、全体の処理負荷も低くなるため、処理分担を変更し、要求される処理時間を満たす範囲で可能な限り処理部133に処理を分担させることで、後段の処理部233、及び処理部333の処理負荷をより軽減することが可能となる。そこで、図10に示す例では、フレームレート、及び解像度が低い値に決定される顔未検出時には、kの値は初期設定のp以上であり、qより小さい値に決定される。また、図10に示す例では、フレームレート、及び解像度が低い値に決定される顔未検出時には、mの値は初期設定のr以上であり、nよりも小さい値に決定される。
以上、図10を参照して決定部253による整数kの値、整数mの値、及び分解能の決定方法について説明したが、図10に示したのは一例であって、係る例に限定されない、例えば、決定部253は、検出された顔の数に応じて、より多段階で整数kの値、整数mの値、及び分解能を決定してもよい。
決定部253は、決定した整数kの値、整数mの値、及び分解能の情報を含む処理制御情報を生成し、処理制御部263、及び通信インタフェース部280へ提供する。
図9に戻って説明を続ける。処理制御部263は、決定部253から提供された処理制御情報に含まれる整数kの値、整数mの値に基づいて処理部233を制御する。決定部253から処理制御部263に提供される処理制御情報には、整数k、及び整数mの情報(値)が含まれていてもよい。
通信インタフェース部280は、図3を参照して説明した通信インタフェース部220と同様に、中間サーバ2−3による他の装置との間の通信を仲介する。通信インタフェース部280は、任意の無線通信プロトコルまたは有線通信プロトコルをサポートし、通信ネットワーク5A、または通信ネットワーク5Bを介して、あるいは直接に他の装置との間の通信接続を確立する。通信インタフェース部280は、図9に示すように変換部282、及び通信部284を含む。
変換部282は、通信部284が受信した通信用データを処理部233や記憶部240が扱うためのデータに変換(逆変換)し、処理部233や記憶部240へ提供する。例えば、変換部282は、本実施形態における第2の変換部として機能し、通信部284が通信ネットワーク5Aから受信した通信用第k層出力値を第k層出力値に変換し、処理部233へ提供する。
また、変換部282は、データを通信部284が送信可能な形式のデータ(通信用データ)に変換する。例えば、変換部282は、本実施形態における第3の変換部として機能し、処理部233から出力されるニューラルネットワークNN3の第m層出力値を通信用第m層出力値に変換し、通信部284へ提供する。また、本実施形態に係る変換部282は、決定部253から提供された処理制御情報を通信用処理制御情報に変換し、通信部284へ提供する。
通信部284は、通信ネットワーク5Aを介して、または通信ネットワーク5Bを介して、あるいは直接に他の装置へ通信用データを送信し、または他の装置から通信用データを受信する。例えば、通信部284は、本実施形態における第1の受信部として機能し、監視カメラ1−1が送信した通信用第k層出力値を通信ネットワーク5Aから受信する。また、通信部284は、本実施形態における第2の送信部として機能し、変換部282から提供された通信用第m層出力値を通信ネットワーク5B(本実施形態における第2の通信ネットワーク)へ送信する。また、本実施形態に係る通信部284は、変換部282から提供された通信用処理制御情報を通信ネットワーク5A、及び通信ネットワーク5Bへ送信する。
認識サーバ3−3は、図6に示すように、処理部333、記憶部340、及び通信インタフェース部380を備える情報処理装置である。図9に示す記憶部340の機能は図3を参照して説明した記憶部340の機能と同様であるため、説明を省略する。
処理部333は、ニューラルネットワーク処理を行う。処理部333が行うニューラルネットワーク処理は、例えば、記憶部340に記憶されるニューラルネットワークパラメータによって特定され得る。なお、本実施形態において記憶部340が記憶するニューラルネットワークパラメータは、ニューラルネットワークNN3全体に対応するパラメータであってもよいし、ニューラルネットワークNN3のうち第q+1層Lq+1から第n層Lnまでに対応するパラメータであってもよい。
処理部333は、本実施形態における第3のニューラルネットワーク処理部として機能し、第m層出力値を入力とし、図8に示したニューラルネットワークNN3のうち第m+1層Lm+1から第n層Lnまでを用いたニューラルネットワーク処理を行う。処理部333により出力される第n層Lnの出力値である第n層出力値は、記憶部340に記憶されてもよいし、不図示の表示部に表示されてもよいし、変換部382により通信用データに変換された後に通信部384により他の装置へ送信されてもよい。
上述したように、中間サーバ2−3が有する処理部232と処理部332の処理分担境界を示す整数mは動的に変化し得る。例えば、処理部333は、後述する処理制御部363の制御に従って第m+1層Lm+1から第n層Lnまでを用いたニューラルネットワーク処理を行う。
処理制御部363は、後述する通信インタフェース部380から提供される処理制御情報に基づいて、及び処理部333を制御する。通信インタフェース部380から処理制御部363に提供される処理制御情報には処理部233と、処理部333の処理分担境界を示す整数mの情報(値)が含まれていてもよい。
通信インタフェース部380は、認識サーバ3−3による他の装置との間の通信を仲介する。通信インタフェース部380は、任意の無線通信プロトコルまたは有線通信プロトコルをサポートし、通信ネットワーク5Bを介して、あるいは直接に他の装置との間の通信接続を確立する。通信インタフェース部380は、図9に示すように変換部382、及び通信部384を含む。
変換部382は、通信部384が受信した通信用データを処理部333や記憶部340が扱うためのデータに変換(逆変換)し、処理部333や記憶部340へ提供する。例えば、変換部382は、本実施形態における第4の変換部として機能し、通信部384が通信ネットワーク5B(本実施形態における第2の通信ネットワーク)から受信した通信用第m層出力値を第m層出力値に変換し、処理部333へ提供する。また、変換部382は、通信部384が通信ネットワーク5Bから受信した通信用処理制御情報を処理制御情報に変換し、処理制御部363へ提供する。
通信部384は、通信ネットワーク5Bを介して、あるいは直接に他の装置へ通信用データを送信し、または他の装置から通信用データを受信する。例えば、通信部384は、本実施形態における第2の受信部として機能し、中間サーバ2−3が送信した通信用第m層出力値を通信ネットワーク5Bから受信する。また通信部384は、中間サーバ2−3が送信した通信用処理制御情報を通信ネットワーク5Bから受信する。
(動作例)
以上、本発明の第3の実施形態に係る監視システム900−3の構成例について説明した。続いて、本実施形態の動作例について、図11を参照して説明する。図11は、本実施形態に係る監視システム900−3の処理フローを示すシーケンス図である。
図11に示すように、まず監視カメラ1−3は、撮像部113の撮像により画像データを取得する(S302)。続いて、監視カメラ1−3の処理部133が、当該画像データを入力とし、ニューラルネットワークNN3のうち第1層L1から第k層Lkまでを用いたニューラルネットワーク処理を行って第k層出力値を出力する(S304)。
続いて、監視カメラ1−3の変換部182が、第k層出力値を通信用第k層出力値に変換する(S206)。さらに、監視カメラ1−3の通信部184が、通信用第k層出力値を通信ネットワーク5Aへ送信し、中間サーバ2−3の通信部284が当該通信用第k層出力値を通信ネットワーク5Aから受信する(S308)。
続いて、中間サーバ2−3の変換部282が、ステップS308で受信された通信用第k層出力値を第k層出力値に変換する(S310)。さらに、中間サーバ2−3の処理部233が、当該第k層出力値を入力とし、ニューラルネットワークNN3のうち第k+1層Lk+1から第q層Lqまでを用いたニューラルネットワーク処理を行って第q層出力値を出力する(S314)。
続いて、中間サーバ2−3の決定部253が顔検出結果を示す第q層出力値に基づいて、整数kの値、整数mの値、及び分解能を決定し、整数kの値、整数mの値、及び分解能の情報を含む処理制御情報を生成する(S314)。さらに、中間サーバ2−3の変換部282が処理制御情報を通信用処理制御情報に変換する(S316)。そして、中間サーバ2−2の通信部274が、通信用処理制御情報を通信ネットワーク5Aへ送信し、監視カメラ1−3の通信部184が当該通信用処理制御情報を通信ネットワーク5Aから受信する(S318)。
続いて、監視カメラ1−3の変換部182が、通信用処理制御情報を処理制御情報に変換する(S320)。さらに、監視カメラ1−3の処理制御部163が、処理制御情報に基づいて、撮像部113の画像取得(撮像)に係る分解能の設定を変更する(S322)。
続いて、中間サーバ2−3の処理部233が、ニューラルネットワークNN3のうち第q+1層Lq+1から第m層Lmまでを用いたニューラルネットワーク処理を行って第m層出力値を出力する(S324)。
さらに、中間サーバ2−3の変換部282が第m層出力値を通信用第m層出力値に変換する(S326)。さらに、中間サーバ2−3の通信部284が、通信用処理制御情報と通信用第m層出力値を通信ネットワーク5Bへ送信し、認識サーバ3−3の通信部384が当該通信用処理制御情報と当該通信用第m層出力値を通信ネットワーク5Bから受信する(S328)。
続いて、認識サーバ3−3の変換部382が、ステップS328で受信された通信用処理制御情報と通信用第m層出力値をそれぞれ処理制御情報と第m層出力値に変換する(S330)。さらに、認識サーバ3−3の処理部333が、当該第m層出力値を入力とし、ニューラルネットワークNN3のうち第m+1層Lm+1から第n層Lnまでを用いたニューラルネットワーク処理を行って第n層出力値を出力する(S332)。
なお、上述したステップS302〜S332の処理は、適宜、または必要に応じて繰り返されてもよい。そして、次のフレームの撮像は、ステップS322で設定された分解能で行われ、次のフレームの画像データを入力としたニューラルネットワーク処理は、ステップS314で決定された新たな処理分担境界に基づいて分担されるように制御される。
(効果)
以上、本発明の第3の実施形態について説明した。本実施形態によれば、監視カメラ1−3の撮像により取得された画像データを入力としたニューラルネットワーク処理が、監視カメラ1−3、中間サーバ2−3、及び認識サーバ3−3の、3つの装置で分担される。また、上述したように、監視カメラ1−3と中間サーバ2−3の処理分担境界を示す整数k、及び中間サーバ2−3と認識サーバ3−3の処理分担境界を示す整数mが動的に決定されるため、より柔軟に処理を分担させることが可能である。また、上述したように、監視カメラ1−3による撮像に係る分解能を制御することで、より高精度に顔認識を行うことが可能である。
<<3.変形例>>
以上、本発明の第1の実施形態、第2の実施形態、及び第3の実施形態について説明した。以下では、上記各実施形態の幾つかの変形例を説明する。なお、以下に説明する各変形例は、単独で各実施形態に適用されてもよいし、組み合わせで各実施形態に適用されてもよい。また、各変形例は、各実施形態で説明した構成に代えて適用されてもよいし、各実施形態で説明した構成に対して追加的に適用されてもよい。
<3−1.変形例1>
上記実施形態では、監視システム900に1つの監視カメラ1と、1つの中間サーバ2と、1つの認識サーバ3が含まれる例を説明したが、本技術は係る例に限定されない。監視システム900は各装置を複数含んでもよく、例えば、1つの認識サーバ3に対して、複数の中間サーバ2が対応していてもよいし、1つの中間サーバ2に対して、複数の監視カメラ1が対応していてもよい。係る構成の場合、上述した第3の実施形態では、顔未検出時には中間サーバ2や認識サーバ3の処理負荷を低減させることが可能であるため、処理リソースを効率的に利用可能となる。
<3−2.変形例2>
上記実施形態では、各層の出力値が、当該層の次の番号(順番)を有する層に入力されるニューラルネットワークを用いたニューラルネットワーク処理を例に説明を行ったが、本技術は係る例に限定されない。例えば、本技術は、複数の層の出力が1の層へ入力され、または1の層の出力が複数の層へ入力されるニューラルネットワークを用いたニューラルネットワーク処理においても適用可能である。係る場合には、出力値を入力される側(受け取る側)の層の番号が出力値を出力する側の層の番号よりも大きくなるように、番号が設定されてよい。
<3−3.変形例3>
上記実施形態では、記憶部140、記憶部240、及び記憶部340に予めニューラルネットワークパラメータが記憶される例を説明したが、本技術は係る例に限定されない。例えば、1つの装置の記憶部にのみニューラルネットワークパラメータが記憶されていて、他の装置は、当該1つの装置からニューラルネットワークパラメータを受信してもよい。
<3−4.変形例4>
上記第3の実施形態では、顔検出結果を示す第q層出力値に基づいて処理分担境界を示す整数k、及び整数mが決定される例を説明したが、本技術は係る例に限定されない。例えば、決定部253は、第q層出力値に代えて、または加えて、通信状況や、現在の各処理部のリソース状況等に基づいて、処理分担境界を決定してもよい。
<<4.ハードウェア構成例>>
以上、本発明の各実施形態を説明した。上述したニューラルネットワーク処理、分担決定処理、分解能決定処理等の情報処理は、ソフトウェアと、監視カメラ1、中間サーバ2、認識サーバ3のハードウェアとの協働により実現される。以下では、本発明の実施形態に係る情報処理装置である監視カメラ1、中間サーバ2、認識サーバ3のハードウェア構成例として、情報処理装置1000のハードウェア構成について説明する。
図12は、本発明の実施形態に係る情報処理装置1000のハードウェア構成を示す説明図である。図12に示したように、情報処理装置1000は、CPU(Central Processing Unit)1001と、ROM(Read Only Memory)1002と、RAM(Random Access Memory)1003と、入力装置1004と、出力装置1005と、ストレージ装置1006と、通信装置1007とを備える。
CPU1001は、演算処理装置及び制御装置として機能し、各種プログラムに従って情報処理装置1000内の動作全般を制御する。また、CPU1001は、マイクロプロセッサであってもよい。ROM1002は、CPU1001が使用するプログラムや演算パラメータなどを記憶する。RAM1003は、CPU1001の実行において使用するプログラムや、その実行において適宜変化するパラメータなどを一時記憶する。これらはCPUバスなどから構成されるホストバスにより相互に接続されている。主に、CPU1001、ROM1002及びRAM1003とソフトウェアとの協働により、例えば、処理部132、133、231、232、233、331、332、333、決定部253、処理制御部163、263、363等の機能が実現される。
入力装置1004は、マウス、キーボード、タッチパネル、ボタン、マイクロフォン、スイッチ及びレバーなどユーザが情報を入力するための入力手段と、ユーザによる入力に基づいて入力信号を生成し、CPU1001に出力する入力制御回路などから構成されている。情報処理装置1000のユーザは、該入力装置1004を操作することにより、情報処理装置1000に対して各種のデータを入力したり処理動作を指示したりすることができる。
出力装置1005は、例えば、液晶ディスプレイ(LCD)装置、OLED装置及びランプなどの表示装置を含む。さらに、出力装置1005は、スピーカ及びヘッドホンなどの音声出力装置を含む。例えば、表示装置は、撮像された画像や生成された画像などを表示する。一方、音声出力装置は、音声データなどを音声に変換して出力する。
ストレージ装置1006は、データ格納用の装置である。ストレージ装置1006は、記憶媒体、記憶媒体にデータを記録する記録装置、記憶媒体からデータを読み出す読出し装置及び記憶媒体に記録されたデータを削除する削除装置などを含んでもよい。ストレージ装置1006は、CPU1001が実行するプログラムや各種データを格納する。なお、ストレージ装置1006は、記憶部140、240、340に対応する。
通信装置1007は、例えば、通信網に接続するための通信デバイスなどで構成された通信インタフェースである。また、通信装置1007は、無線LAN(Local Area Network)対応通信装置、LTE(Long Term Evolution)対応通信装置、有線による通信を行うワイヤー通信装置、またはブルートゥース(登録商標)通信装置を含んでもよい。なお、通信装置1007は、通信インタフェース部120、170、180、220、270、280、320、370、380、に対応する。
<<5.むすび>>
以上説明したように、本発明の実施形態によれば、処理をより細かい単位で分担させることが可能である。そのため、要求される処理時間を満たすことがより容易となり、例えばより容易に処理のリアルタイム性を保つことが可能となる。
以上、添付図面を参照しながら本発明の好適な実施形態について詳細に説明したが、本発明はかかる例に限定されない。本発明の属する技術の分野における通常の知識を有する者であれば、特許請求の範囲に記載された技術的思想の範疇内において、各種の変更例または修正例に想到し得ることは明らかであり、これらについても、当然に本発明の技術的範囲に属するものと了解される。
例えば、上記実施形態では、監視システム900が通信ネットワーク5Aと通信ネットワーク5Bを有する例を説明したが、本発明はかかる例に限定されない。例えば、通信ネットワーク5Aと通信ネットワーク5Bは同一の通信ネットワークであってもよい。
また、上記実施形態におけるシーケンス図では、監視カメラ1から一連の処理が開始されていたが、認識サーバ3から監視カメラ1へ処理開始のためのアクセスが行われて、一連の処理が開始されてもよい。
また、上記実施形態における各ステップは、必ずしもシーケンス図として記載された順序に沿って時系列に処理される必要はない。例えば、上記実施形態の処理における各ステップは、シーケンス図として記載した順序と異なる順序で処理されても、並列的に処理されてもよい。
また、上記実施形態によれば、CPU1001、ROM1002、及びRAM1003などのハードウェアを、上述した監視カメラ1、中間サーバ2、認識サーバ3の各構成と同様の機能を発揮させるためのコンピュータプログラムも提供可能である。また、該コンピュータプログラムが記録された記録媒体も提供される。