特許第6989294号(P6989294)IP Force 特許公報掲載プロジェクト 2022.1.31 β版

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

▶ パナソニックi−PROセンシングソリューションズ株式会社の特許一覧

<>
  • 特許6989294-監視システム及び監視方法 図000002
  • 特許6989294-監視システム及び監視方法 図000003
  • 特許6989294-監視システム及び監視方法 図000004
  • 特許6989294-監視システム及び監視方法 図000005
  • 特許6989294-監視システム及び監視方法 図000006
  • 特許6989294-監視システム及び監視方法 図000007
  • 特許6989294-監視システム及び監視方法 図000008
  • 特許6989294-監視システム及び監視方法 図000009
  • 特許6989294-監視システム及び監視方法 図000010
  • 特許6989294-監視システム及び監視方法 図000011
  • 特許6989294-監視システム及び監視方法 図000012
  • 特許6989294-監視システム及び監視方法 図000013
  • 特許6989294-監視システム及び監視方法 図000014
  • 特許6989294-監視システム及び監視方法 図000015
  • 特許6989294-監視システム及び監視方法 図000016
  • 特許6989294-監視システム及び監視方法 図000017
  • 特許6989294-監視システム及び監視方法 図000018
  • 特許6989294-監視システム及び監視方法 図000019
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】6989294
(24)【登録日】2021年12月6日
(45)【発行日】2022年1月5日
(54)【発明の名称】監視システム及び監視方法
(51)【国際特許分類】
   G06T 7/00 20170101AFI20211220BHJP
   H04N 7/18 20060101ALI20211220BHJP
   H04N 21/235 20110101ALI20211220BHJP
   H04N 21/24 20110101ALI20211220BHJP
【FI】
   G06T7/00 350C
   H04N7/18 D
   H04N21/235
   H04N21/24
【請求項の数】21
【全頁数】29
(21)【出願番号】特願2017-108164(P2017-108164)
(22)【出願日】2017年5月31日
(65)【公開番号】特開2018-205900(P2018-205900A)
(43)【公開日】2018年12月27日
【審査請求日】2020年3月12日
(73)【特許権者】
【識別番号】320008672
【氏名又は名称】パナソニックi−PROセンシングソリューションズ株式会社
(74)【代理人】
【識別番号】110002000
【氏名又は名称】特許業務法人栄光特許事務所
(72)【発明者】
【氏名】篠原 利章
(72)【発明者】
【氏名】東澤 義人
(72)【発明者】
【氏名】寺田 徹
【審査官】 秦野 孝一郎
(56)【参考文献】
【文献】 特開2016−191973(JP,A)
【文献】 特開2016−15116(JP,A)
【文献】 特開2012−89929(JP,A)
【文献】 国際公開第2016/136196(WO,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G06T 7/00−7/90
H04N 7/18
H04N 21/00−21/858
(57)【特許請求の範囲】
【請求項1】
サーバと、監視エリアに設置された複数のカメラとが互いに通信可能に接続された監視システムであって、
前記サーバは、
それぞれの前記カメラの学習モデルを生成する処理能力に対する空きリソースの量に関する情報と、それぞれの前記カメラにより前記監視エリアの撮像により得られた撮像画像とを保持するメモリを有し、
前記カメラの前記空きリソースの量に関する情報に基づいて、それぞれの前記カメラにより得られる撮像画像に出現する少なくとも1つのオブジェクトの検出に関して前記カメラが実行する処理を前記カメラごとに決定し、決定された前記処理の実行指示を前記カメラごとに送信し、
それぞれの前記カメラは、前記サーバから送信された前記処理の実行指示に基づいて、前記実行指示に対応する処理を実行する、
監視システム。
【請求項2】
前記処理は、前記撮像画像に出現する少なくとも1つのオブジェクトの検出に用いるパラメータを学習する学習である、
請求項1に記載の監視システム。
【請求項3】
前記サーバは、前記複数のカメラに対し、前記学習の実行指示をそれぞれ送信し、
前記複数のカメラは、それぞれ前記学習の実行指示に従って、前記学習を実行し、
前記サーバは、前記複数のカメラにより実行された前記学習の結果を受信する、
請求項2に記載の監視システム。
【請求項4】
前記サーバは、前記学習を実行するとともに、前記複数のカメラに対し、前記学習の実行指示をそれぞれ送信し、
前記複数のカメラは、それぞれ前記学習の実行指示に従って、前記学習を実行し、
前記サーバは、前記複数のカメラにより実行された前記学習の結果を受信する、
請求項2に記載の監視システム。
【請求項5】
前記サーバは、前記学習の結果を、前記複数のカメラにそれぞれ送信し、
前記複数のカメラは、前記サーバから送信された前記学習の結果を共有する、
請求項3又は4に記載の監視システム。
【請求項6】
前記複数のカメラのうち一部の複数のカメラは、同一の設置状況で設置され、
前記サーバは、前記学習の結果を、前記一部の複数のカメラにそれぞれ送信し、
前記一部の複数のカメラは、前記サーバから送信された前記学習の結果を共有する、
請求項5に記載の監視システム。
【請求項7】
前記サーバは、前記カメラにより検出された前記オブジェクトの検出数に応じて、前記学習の処理量を制御する、
請求項2に記載の監視システム。
【請求項8】
前記サーバは、前記カメラにより検出された前記オブジェクトの検出の正報の数に応じて、前記カメラにおける前記学習の処理量を制御する、
請求項7に記載の監視システム。
【請求項9】
前記サーバは、前記カメラにより検出された前記オブジェクトの検出の誤報の数に応じて、前記カメラにおける前記学習の処理量を制御する、
請求項7に記載の監視システム。
【請求項10】
前記サーバは、前記カメラの前記空きリソースの量に関する情報に応じて、前記カメラにおける前記学習の処理量を制御する、
請求項2に記載の監視システム。
【請求項11】
前記サーバは、前記監視システムを構成する前記サーバ及び前記複数のカメラのそれぞれの前記空きリソースの量に関する情報を前記メモリに保持し、前記サーバ及び前記複数のカメラのそれぞれの前記空きリソースの量に関する情報に応じて、前記学習の処理量を制御する、
請求項2に記載の監視システム。
【請求項12】
前記処理は、前記撮像画像に出現する少なくとも1つのオブジェクトの検出に用いるパラメータを学習する学習と、前記撮像画像に出現する少なくとも1つのオブジェクトを検出する検出と、前記検出によって検出された少なくとも1つのオブジェクトを分析する分析と、を含む、
請求項1に記載の監視システム。
【請求項13】
前記サーバは、前記複数のカメラのうち、他のカメラと比べて相対的に前記空きリソースの量の多い少なくとも1つのカメラに対し、前記メモリに保持される前記撮像画像を送信し、前記学習の実行指示を行う、
請求項12に記載の監視システム。
【請求項14】
前記サーバは、前記複数のカメラのうち、他のカメラと比べて相対的に前記空きリソースの量の多い少なくとも1つのカメラに対し、前記メモリに保持される前記撮像画像を送信し、前記検出の実行指示を行う、
請求項12に記載の監視システム。
【請求項15】
前記サーバは、前記複数のカメラのうち、他のカメラと比べて相対的に前記空きリソースの量の多い少なくとも1つのカメラに対し、前記メモリに保持される前記撮像画像を送信し、前記分析の実行指示を行う、
請求項12に記載の監視システム。
【請求項16】
前記処理は、前記撮像画像に出現する少なくとも1つのオブジェクトを検出する検出であり、
前記サーバは、前記検出の結果を、前記複数のカメラにそれぞれ送信し、
前記複数のカメラは、前記検出の結果を共有する、
請求項1に記載の監視システム。
【請求項17】
前記サーバは、前記複数のカメラにより実行された学習の結果を統合する、
請求項2に記載の監視システム。
【請求項18】
前記複数のカメラのうち一部の複数のカメラは、同一の設置状況で設置され、
前記サーバは、前記一部の複数のカメラにより実行された学習の結果を統合する、
請求項17に記載の監視システム。
【請求項19】
前記サーバは、前記一部の複数のカメラから、それぞれの前記カメラの設置状況に関する情報の通知を受信し、前記一部の複数のカメラにより実行された学習の結果を統合する、
請求項18に記載の監視システム。
【請求項20】
前記サーバ及び前記複数のカメラが、前記複数のカメラの前記空きリソースの量に関する情報と前記複数のカメラの単価コストに関する情報とを共有する、
請求項1に記載の監視システム。
【請求項21】
サーバと、監視エリアに設置された複数のカメラとが互いに通信可能に接続された監視システムを用いた監視方法であって、
前記サーバは、
それぞれの前記カメラの学習モデルを生成する処理能力に対する空きリソースの量に関する情報と、それぞれの前記カメラにより前記監視エリアの撮像により得られた撮像画像とをメモリに保持し、
前記カメラの前記空きリソースの量に関する情報に基づいて、それぞれの前記カメラにより得られる撮像画像に出現する少なくとも1つのオブジェクトの検出に関して前記カメラが実行する処理を前記カメラごとに決定し、決定された前記処理の実行指示を前記カメラごとに送信し、
それぞれの前記カメラは、前記サーバから送信された前記処理の実行指示に基づいて、前記実行指示に対応する処理を実行する、
監視方法。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、サーバと監視エリアに設置された複数のカメラとが互いに通信可能に接続された監視システム及び監視方法に関する。
【背景技術】
【0002】
現在、カメラの演算処理能力は、0.3T(テラ)ops(オプス)と言われている。T(テラ)は、10の12乗を示す値である。ops(オプス)は、演算処理能力を示す単位として知られている。今後、ゲーム機等に搭載される高性能なGPU(Graphics Processing Unit)やFPGA(Field Programmable Gate Array)がカメラの演算処理装置に利用されるべく採用されることが考えられている。その場合、例えば1年後には、カメラの演算処理能力が10倍以上の約2.6Topsに飛躍的に向上することが期待されている。
【0003】
また、カメラが機械学習の一例としてのディープラーニングを用いて画像認識処理を行う場合、カメラの演算処理能力には、1.3Topsが要求されるとの指摘がある。この演算処理能力の高さから、従来では、カメラがディープラーニングを用いて画像認識処理を行うことは難しいと考えられていたが、1年後のカメラの演算処理能力では、ディープラーニングを用いて画像認識処理を行うことが十分に可能と考えられる。
【0004】
一方、カメラで撮像された高画質(例えば4K)の撮像画像データをサーバに転送し、サーバが画像認識処理を行う場合、撮像画像データのサイズの増大に伴ってネットワーク上で伝送される通信量(トラフィック)も必然的に増大し、結果的に通信効率が下がって遅延が発生するようになる。このため、高画質(例えば4K)の撮像画像データを転送することなく、カメラは、自装置でディープラーニングを用いて画像認識処理を行うことが期待される。
【0005】
一般に、ディープラーニングを用いて画像認識処理を行う場合、カメラ等のデバイスは、撮像画像データに含まれる対象物(つまり、被画像認識対象物)を学習し、画像認識処理において用いられるモデルパラメータ(例えば重み係数やしきい値)を変更することで学習モデルを更新する。カメラ等のデバイスは、この更新された学習モデルを基に、撮像画像データに含まれる対象物(つまり、被画像認識対象物)を検出する精度を向上させる。
【0006】
カメラにより撮像される撮像画像データを用いて物体を認識し、物体動き情報を取得する先行技術として、例えば特許文献1の物体追跡装置が提案されている。この物体追跡装置は、物体を撮影可能なカメラから取得される時系列の画像群を用いて、取得された画像に係る画像情報と、その物体の実空間での位置に係る位置情報を含む物体動き情報であって正解とされる情報とを含む教師データセットによって学習する。更に、物体追跡装置は、物体追跡対象の画像毎に、その画像に係る画像情報を入力することで少なくともその物体の実空間での正解とされる位置情報を出力する追跡用識別器を用い、その物体の実空間での刻々の位置情報を取得する。
【先行技術文献】
【特許文献】
【0007】
【特許文献1】特開2016−206795号公報
【発明の概要】
【発明が解決しようとする課題】
【0008】
今後、カメラが取り扱う撮像画像データは例えば4Kや8K等の高精細かつ大容量となってデータサイズが増大することが予想されている。このような撮像画像データのサイズの増大に伴い、撮像画像データの検出に用いたパラメータの学習をカメラではなくサーバで行う場合、サーバにおいて処理負荷が集中してしまい、更に、大容量のデータを逐一サーバに送信することで、ネットワーク上のトラフィックが増大し、データ通信時に相応の遅延が生じるという課題が生じてしまう。このような課題に対する技術的対策について、特許文献1のような従来技術では特段の考慮はなされてはいなかった。
【0009】
本開示は、上述した従来の事情に鑑みて案出され、監視エリアに設置された複数のカメラにおいて撮像されたそれぞれの撮像画像内の少なくとも1つのオブジェクトの検出に際し、その検出に用いるパラメータの学習等の処理を複数のカメラ間で分散し、ネットワーク上のトラフィックの増大を抑制し、複数のカメラに接続されるサーバの処理負荷の軽減を支援する監視システム及び監視方法を提供することを目的とする。
【課題を解決するための手段】
【0010】
本開示は、サーバと、監視エリアに設置された複数のカメラとが互いに通信可能に接続された監視システムであって、前記サーバは、それぞれの前記カメラの学習モデルを生成する処理能力に対する空きリソースの量に関する情報と、それぞれの前記カメラにより前記監視エリアの撮像により得られた撮像画像とを保持するメモリを有し、前記カメラの前記空きリソースの量に関する情報に基づいて、それぞれの前記カメラにより得られる撮像画像に出現する少なくとも1つのオブジェクトの検出に関して前記カメラが実行する処理を前記カメラごとに決定し、決定された前記処理の実行指示を前記カメラごとに送信し、前記それぞれのカメラは、前記サーバから送信された前記処理の実行指示に基づいて、前記実行指示に対応する処理を実行する、監視システムを提供する。
【0011】
また、本開示は、サーバと、監視エリアに設置された複数のカメラとが互いに通信可能に接続された監視システムを用いた監視方法であって、前記サーバは、それぞれの前記カメラの学習モデルを生成する処理能力に対する空きリソースの量に関する情報と、それぞれの前記カメラにより前記監視エリアの撮像により得られた撮像画像とをメモリに保持し、前記カメラの前記空きリソースの量に関する情報に基づいて、それぞれの前記カメラにより得られる撮像画像に出現する少なくとも1つのオブジェクトの検出に関して前記カメラが実行する処理を前記カメラごとに決定し、決定された前記処理の実行指示を前記カメラごとに送信し、前記それぞれのカメラは、前記サーバから送信された前記処理の実行指示に基づいて、前記実行指示に対応する処理を実行する、監視方法を提供する。
【発明の効果】
【0012】
本開示によれば、監視エリアに設置された複数のカメラにおいて撮像されたそれぞれの撮像画像内の少なくとも1つのオブジェクトの検出に際し、その検出に用いるパラメータの学習等の処理を複数のカメラ間で分散し、ネットワーク上のトラフィックの増大を抑制し、複数のカメラに接続されるサーバの処理負荷の軽減を支援することができる。
【図面の簡単な説明】
【0013】
図1】実施の形態1の監視システムのシステム構成の一例を示すブロック図
図2】学習及び検出の概要例の説明図
図3】実施の形態1のカメラの内部構成の一例を詳細に示すブロック図
図4】実施の形態1のサーバの内部構成の一例を詳細に示すブロック図
図5】デバイスにおける学習の概要例の説明図
図6】カメラの検出の概要例の説明図
図7】監視システムにおける複数のカメラを用いた学習時の分散を行う時の処理概要例の説明図
図8】監視システムにおけるリソース管理の概要例の説明図
図9】実施の形態1においてサーバがカメラに処理の実行指示を行う動作手順の一例を詳細に示すシーケンス図
図10】実施の形態1においてサーバがモデルパラメータのフィードバック量を制御する動作手順の一例を詳細に示すシーケンス図
図11】監視システムにおける学習結果の共有の概要例の説明図
図12】ローカル学習時に表示されるUI画面の一例を示す図
図13】統合学習時にサーバの表示部に表示されるUI画面の一例を示す図
図14】実施の形態2のカメラの処理実行部の内部構成の一例を詳細に示すブロック図
図15】カメラのローカル学習の動作手順の一例を詳細に示すフローチャート
図16】監視システムにおける学習結果の共有の概要例の説明図
図17】ローカル学習時に表示されるUI画面の一例を示す図
図18】統合学習時にサーバの表示部に表示されるUI画面の一例を示す図
【発明を実施するための形態】
【0014】
(第1の実施の形態に至る経緯)
今後、カメラが取り扱う撮像画像データは例えば4Kや8K等の高精細かつ大容量となってデータサイズが増大することが予想されている。このような撮像画像データのサイズの増大に伴い、撮像画像データの検出に用いたパラメータの学習をカメラではなくサーバで行う場合、サーバにおいて処理負荷が集中してしまい、更に、大容量のデータを逐一サーバに送信することで、ネットワーク上のトラフィックが増大し、データ通信時に相応の遅延が生じるという課題が生じてしまう。このような課題に対する技術的対策について、特許文献1のような従来技術では特段の考慮はなされてはいなかった。
【0015】
そこで、実施の形態1では、監視エリアに設置された複数のカメラにおいて撮像されたそれぞれの撮像画像内の少なくとも1つのオブジェクトの検出に際し、その検出に用いるパラメータの学習等の処理を複数のカメラ間で分散し、ネットワーク上のトラフィックの増大を抑制し、複数のカメラに接続されるサーバの処理負荷の軽減を支援する監視システム及び監視方法の例を説明する。
【0016】
(実施の形態1)
図1は、実施の形態1の監視システム5のシステム構成の一例を示すブロック図である。
【0017】
監視システム5は、例えば防犯用の監視システムであって、銀行、店舗、企業、施設等の屋内、又は、駐車場や公園等の屋外に設置される。銀行、店舗、企業、施設等の屋内、又は、駐車場や公園等の屋外は、監視システム5の監視エリアとなる。本実施の形態の監視システム5は、人工知能(AI:Artificial Intelligence)技術を利用し、撮像画像に出現する少なくとも1つの対象物(言い換えると、オブジェクト)を認識する少なくとも1つのカメラ10と、サーバ30と、レコーダ50とを含む構成を有する。少なくとも1つのカメラ10と、サーバ30と、レコーダ50とは、ネットワークNWを介して互いに通信可能に接続される。
【0018】
以下、複数のカメラ10をそれぞれ区別する必要がある場合には、カメラ10A,10B,10C,…と表記する。複数のカメラ10は、監視エリアとして、例えば建物内の同じ場所に設置されてもよいし、一部のカメラ10が他のカメラ10とは異なる場所に設置されてもよい。ここでは、監視エリアとして異なる場所に設置されたカメラ10A,10B,10Cの設置状況(例えば設置角度やカメラの画角)が同じであることを想定している。例えば、カメラ10A,10B,10Cは、いずれも自動ドアが設置された出入口の上方に位置するように壁面に取り付けられ、出入口を出入りする人物をやや上方から見下ろすように撮像する。なお、カメラ10A,10B,10Cの設置状況は、自動ドアが設置された出入口の情報に位置する場合に限定されない。
【0019】
先ず始めに、人工知能(AI)技術の機械学習の一例としてのディープラーニングに用いられるニューラルネットワーク(言い換えると、学習モデル)を生成するための学習、及び学習済みの学習モデル(以下、「学習済みモデル」という)にデータを入力して結果を出力する検出(つまり、推論)について、その概要を説明する。
【0020】
図2は、学習及び検出の概要例の説明図である。
【0021】
学習処理(以下、単に「学習」という)は、例えば人工知能(AI)技術の機械学習の一例としてのディープラーニングによって行われる処理である。言い換えると、機械学習の1つとして、近年注目されているニューラルネットワーク(以下、「NN」と略記する)におけるディープラーニング(つまり、深層学習)を用いて学習が行われる。ディープラーニングによる機械学習では、教師データを用いた「教師有り学習」と、教師データを用いない「教師無し学習」とが行われる。機械学習の結果、学習済みモデルが生成される。一方、検出は、生成された学習済みモデルにデータを入力して結果を得る処理である。
【0022】
学習は、リアルタイムで行われてもよいが、多くの演算処理を必要とするので、通常、オフライン(つまり、非同期)で行われる。一方、検出処理(以下、単に「検出」という)は、通常リアルタイムで行われる。また、学習が行われるデバイスは、例えばカメラ10、サーバ30、レコーダ50のいずれであってもよく、ここでは、カメラ10において学習される場合を示す。一方、検出は、カメラ10において行われる。なお、カメラ10により撮像された撮像画像データをサーバ30やレコーダ50に転送しても、ネットワークNW上のトラフィックが発生しない場合には、サーバ30やレコーダ50が検出を行ってもよい。
【0023】
学習時、デバイス150は、多くの学習データ(例えばカメラ10で撮像された画像データ)を入力する。デバイス150は、入力された学習データを基に、機械学習(例えば、ディープラーニングの処理)を行い、学習モデルであるニューラルネットワーク(NN140)のモデルパラメータPを更新する。モデルパラメータPは、NN140を構成する複数のそれぞれのニューロンにおいて設定される重み付け係数(つまり、バイアス)やしきい値等である。デバイス150は、機械学習(例えばディープラーニングの処理)を行う際、教師データを用い、学習データごとに正誤を取得するか、或いは評価値(つまり、スコア)を算出する。デバイス150は、学習データの正誤或いはスコアの高低に応じて、モデルパラメータPの学習度合いを変更する。学習後、NN140は、学習済みモデルとして、デバイス150における検出に用いられる。
【0024】
検出時(つまり、推論時)、デバイス150は、入力データ(例えばカメラ10でリアルタイムに撮像された撮像画像データ)を入力し、NN140において推論を実行し、その実行により得られた推論結果(つまり、検出されたオブジェクトの判定結果)を出力する。判定結果は、例えば、撮像画像データに含まれる対象物の有無に応じた正報や誤報に関する情報、及び、対象物の評価値を示すスコアに関する情報を含む。正報とは、対象物の検出時に高い確度で正しく検出されたことを示すレポートである。誤報とは、対象物の検出時に高い確度で誤って検出されたことを示すレポートである。
【0025】
図3は、実施の形態1のカメラ10の内部構成の一例を詳細に示すブロック図である。
【0026】
カメラ10は、例えば監視エリアの被写体像を撮像して撮像画像データを取得する。具体的には、カメラ10は、レンズ11と、イメージセンサ12と、信号処理部13と、処理実行部14と、リソース監視部15と、クロップエンコード部17と、ネットワークI/F16とを含む構成である。
【0027】
カメラ10は、監視エリアSAからの被写体像を入射可能に配されたレンズ11を介して、監視エリアSAからの入射された被写体像をイメージセンサ12に結像し、イメージセンサ12において被写体像(つまり、光学像)を電気信号に変換して撮像する。少なくともレンズ11及びイメージセンサ12により、カメラ10の撮像部が構成される。カメラ10は、イメージセンサ12において得られた電気信号を用いて、信号処理部13においてRGB信号を生成したり、ホワイトバランスやコントラスト調整等の既定の各種の画像処理を行うことで、撮像画像データを生成して出力する。
【0028】
処理実行部14は、例えばGPU(Graphics Processing Unit)又はFPGA(Field Programmable Gate Array)を用いて構成される。今後、高性能で演算処理能力の高いGPU又はFPGAがカメラ10のプロセッサとして採用されてくると、カメラ10の演算処理能力は飛躍的に向上し、カメラ10においてディープラーニングの処理が十分に実行可能であると期待される。処理実行部14は、GPU又はFPGAにおける処理実行によって生成又は更新されたNN140としての学習モデル又は学習済みモデルを含み、入力された撮像画像データに対し、撮像画像に現れる少なくとも1つの対象物(つまり、オブジェクト)の判定結果を出力する。
【0029】
リソース監視部15は、処理実行部14内のGPU或いはFPGAやメモリ等の使用状況を基に、カメラ10の処理能力に関する情報(例えば空きリソースの量)を監視する。
【0030】
クロップエンコード部17は、検出時、撮像画像データに現れる対象物(つまり、オブジェクト)の一部を切り出し、処理すべき撮像画像データ或いはサムネイルのデータとして出力する。
【0031】
ネットワークI/F16は、ネットワークNWとの接続を制御する。カメラ10は、ネットワークI/F16を介して、サーバ30やレコーダ50に対し、処理実行部14から出力される対象物(つまり、オブジェクト)の判定結果、リソース監視部15によって監視された空きリソースの量、サムネイルのデータ等を送信する。また、カメラ10は、ネットワークI/F16を介して、サーバ30やレコーダ50、他のカメラ10から、学習の結果であるモデルパラメータPを受信する。
【0032】
図4は、実施の形態1のサーバ30の内部構成の一例を詳細に示すブロック図である。
【0033】
サーバ30は、プロセッサ(例えばCPU(Central Processing Unit)、MPU(Micro Processing Unit)又はDSP(Digital Signal Processor))31と、メモリ32と、通信部33と、操作部36と、表示部37と、学習用DB(データベース)34と、テーブルメモリ35とを含む構成である。プロセッサ31は、メモリ32と協働して、サーバ30の各部の処理や制御を統括的に実行する。メモリ32は、不揮発メモリ及び揮発メモリを有する。不揮発メモリには、例えば複数のカメラ10A,10B,10Cから通知された、それぞれのカメラ10A,10B,10Cの単価コストに関する情報(例えばカメラ10A,10B,10Cの電力コストに関する情報)が記憶される。電力コストに関する情報とは、詳細は後述するが、例えばカメラ10A,10B,10Cがどのくらい使用されれば結果的にどの程度の電力量(つまり、コスト)がかかるかを示す指標値である。
【0034】
プロセッサ31は、サーバ30が機械学習(例えば、ディープラーニングの処理)を行う場合、不揮発メモリに記憶されたプログラムを実行し、学習モデル(ニューラルネットワーク:NN)を生成する。また、サーバ30は、複数のカメラ10から学習の結果であるモデルパラメータPを受信し、監視エリアSAに設置されたそれぞれのカメラ10の設置状況(つまり、設置角度や画角等の設置環境)が同一であるモデルパラメータPを統合する。
【0035】
学習用DB(データベース)34には、複数のカメラ10から送信されてサーバ30において受信された学習の結果であるモデルパラメータP(例えば重み付け係数やしきい値)が保存される。
【0036】
テーブルメモリ35は、複数のカメラ10の処理能力に関する情報(例えば空きリソースの量)が登録されたテーブルを記憶する。
【0037】
操作部36は、ユーザが操作可能な学習ボタンbt5(例えば図13参照)等、各種ボタンを有し、ユーザの入力操作を受け付ける。
【0038】
表示部37は、サーバ30における統合学習の処理結果を提示するUI(ユーザインタフェース)画面310(例えば図12又は図13参照)を表示する。
【0039】
図5は、デバイス150における学習の概要例の説明図である。
【0040】
ここでは、デバイス150が撮像画像に出現する「車」を対象物objとして学習する場合を例示して説明する。前述したように、学習は、通常オフライン(非同期)で行われる処理であり、カメラ10、サーバ30、レコーダ50のいずれで行われてもよい。本実施の形態では、デバイス150の一例として、カメラ10が学習を行う。デバイス150は、処理実行部164と、リソース監視部165と、ネットワークI/F166と、パラメータ勾配算出部168とを含む構成である。
【0041】
ネットワークI/F166は、ネットワークNWとの接続を制御し、学習データを、ネットワークNWを介して受信する。ここでは、学習データは、車を対象物objとする撮像画像データgz1,gz2である。各撮像画像データgz1,gz2は、それぞれスコア(評価値)と正報或いは誤報を付加した教師データである。例えば、撮像画像データgz1は、対象物となる「車」を含む撮像画像であり、高いスコア或いは正報を持つ教師データである。一方、撮像画像データgz2は、対象物となる車ではない「木」の画像であり、低いスコア或いは誤報を持つ教師データである。
【0042】
処理実行部164は、ネットワークI/F166を介して入力された、これらの教師データを基に推論を実行することで、学習モデルのモデルパラメータP(例えば重み付け係数やしきい値等)を更新する。また、処理実行部164は、更新されモデルパラメータPを、ネットワークI/F166を介して、カメラ10、サーバ30、レコーダ50等、他のデバイスに送信する。このように、「教師有り学習」を行うことで、学習能力が高まり、処理実行部164は、高品質な学習モデルを生成できる。
【0043】
パラメータ勾配算出部168は、教師データの撮像画像に出現する対象物の勾配を算出する。例えば、横からカメラにより撮像された撮像画像と正面からカメラにより撮像された撮像画像とでは、同じ対象物であっても撮像画像は異なる。つまり、カメラの設置状況(例えば設置角度や画角)に応じて、同じ対象物を検出する際に用いられる学習モデルのモデルパラメータPも異なってくる。このため、パラメータ勾配算出部168は、撮像方向を表す勾配(以下、「パラメータ勾配」という)を算出し、ネットワークI/F166を介して、パラメータ勾配Ptをカメラ10、サーバ30、レコーダ50等、他のデバイスに送信する。パラメータ勾配Ptは、モデルパラメータと一緒に或いは別に送信されてもよい。いずれにせよ、カメラの設置状況は頻繁に変更されないので、パラメータ勾配Ptは少なくとも1回送信されればよい。パラメータ勾配Ptを用いることで、カメラの設置状況毎に異なる学習モデルが利用可能となる。
【0044】
リソース監視部165は、処理実行部164内のGPUやメモリ等の使用状況を基に、空きリソースの量を監視する。なお、デバイス150がカメラ10である場合には、図5に示す処理実行部164及びパラメータ勾配算出部168は図3の処理実行部14に対応し、図5に示すリソース監視部165は図3に示すリソース監視部15に対応し、図5に示すネットワークI/F166は図3に示すネットワークI/F16に対応する。
【0045】
図6は、カメラ10の検出の概要例の説明図である。
【0046】
ここでは、カメラ10が撮像画像に出現する「車」を対象物として検出する場合を例示して説明する。カメラ10の処理実行部14は、機械学習(例えばディープラーニングの処理)が行われた後の学習モデル(つまり、学習済みモデル)を有する。処理実行部14は、レンズ11を通して撮像された被写体の撮像画像ogを入力し、学習済みモデルを用いて検出(つまり、撮像画像ogに出現するオブジェクトの推論)を行い、その検出結果(つまり、推論結果)を出力する。クロップエンコード部17は、被写体の撮像画像ogに含まれる、対象物となる画像を切り出し、検出の結果として切り出し画像を出力する。
【0047】
ここでは、クロップエンコード部17によって切り出された、「車」の切り出し画像tg2と、「木」の切り出し画像tg1が出力される。「車」の切り出し画像tg2は、対象物となる車の撮像画像を含むので、高いスコアと正報を有する。一方、「木」の切り出し画像tg1は、対象物となる車の撮像画像を含まないので、低いスコアと誤報を有する。
【0048】
次に、本実施の形態の監視システム5の具体的な動作について、図面を参照して説明する。
【0049】
図7は、監視システム5における複数のカメラを用いた学習時の分散を行う時の処理概要例の説明図である。
【0050】
前述したように、学習では、人工知能(AI)技術の機械学習の一例としてのディープラーニングの処理を用いて生成される学習モデル(つまり、ニューラルネットワーク)のモデルパラメータPを更新する処理が行われる。一例として、学習を行うデバイスとして、3つのカメラ10A,10B,10Cが学習を行う場合を示す。なお、学習を行うデバイスは、カメラに限らず、サーバ、レコーダでもよい。各カメラ10A,10B,10Cは、それぞれ入力した撮像画像データに対し、例えば「教師なし学習」を行う。教師なし学習では、カメラ10は、学習モデルのモデルパラメータが収束しない場合、アラームを発生する。このとき、ユーザは、アラームを解除して、「教師あり学習」を行う。教師あり学習では、ユーザは、画像データの正報或いは誤報を入力する。なお、教師データの入力では、画像データの正報或いは誤報を入力する代わりに、正報或いは誤報とともにスコア(評価値)を入力してもよい。スコアは、撮像画像データが対象物を含む撮像画像データであることを評価する値であり、例えば80点,10点等の点数や、50%,20%等の確率で表現される。
【0051】
3つのカメラ10A,10B,10Cは、それぞれ学習の結果であるモデルパラメータPをサーバ30に送信する。また、送信されるモデルパラメータPには、前述したパラメータ勾配Ptが付加される。
【0052】
サーバ30は、3つのカメラ10A,10B,10Cから送信されたモデルパラメータPを基に、学習モデルのモデルパラメータPを更新する。このとき、パラメータ勾配Ptが同じであるモデルパラメータ、つまり、カメラの設置状況が同じであるモデルパラメータを統合する。従って、パラメータ勾配が同じである学習モデルのモデルパラメータが更新される。ここでは、カメラ10A,10B,10Cの設置状況はいずれも同じであり、サーバ30は、カメラ10A,10B,10Cの、更新された各モデルパラメータを統合する。
【0053】
サーバ30は、統合したモデルパラメータを3つのカメラ10A,10B,10Cにフィードバック送信する。これにより、3つのカメラ10A,10B,10Cに記憶されるモデルパラメータは、同じになる。なお、3つのカメラ10A,10B,10Cからサーバ30へのモデルパラメータの送信は、非同期で行われる。
【0054】
図8は、監視システム5におけるリソース管理の概要例の説明図である。
【0055】
3つのカメラ10A,10B,10Cでは、リソース監視部15は、それぞれ学習モデルを生成するGPU或いはFPGA等の処理能力に対し、空きリソースの量(言い換えると、処理能力の余り度合いを示す余力)を監視している。3つのカメラ10A,10B,10Cは、リソース監視部15によって監視された空きリソースの量を非同期で又は周期的にサーバ30に通知する。空きリソースの量は、処理能力の百分率(%)で表される。一例として、カメラ10Aの空きリソースの量が90%であり、カメラ10Bの空きリソースの量が20%であり、カメラ10Cの空きリソースの量が10%である場合、サーバ30は、空きリソースの量が多いカメラ10Aに優先的に学習させるように、つまり、学習量を増やすように、このカメラ10Aに学習の指示を出力する。
【0056】
また、サーバ30は、ネットワークNWの帯域が広い、或いはネットワークNWが空いている場合には、空きリソースの量が10%と少ないカメラ10Cで撮像された撮像画像データ(正報或いは誤報の情報付き)を受信すると、空きリソースの量が90%と多いカメラ10Aにその撮像画像データを送信して学習を指示してもよい。これにより、カメラ間で偏った処理の負荷がかかることなく、適正な学習が実現可能となる。
【0057】
また、サーバ30は、空きリソース量の少ないカメラで撮像された撮像画像データを、空きリソース量の多いカメラに直接に転送して、学習を行うように指示してもよい。これにより、監視システム内で学習を分散させることができ、特定のカメラに大きな負荷をかけることなく、効率の良い学習が可能である。
【0058】
また、サーバ30は、空きリソース量の少ないカメラで撮像された撮像画像データを、空きリソース量の多いカメラに直接に転送して、検出を行うように指示してもよい。これにより、監視システム内で検出を分散させることができ、特定のカメラに大きな負荷をかけることなく、効率の良い検出が可能である。
【0059】
また、サーバ30は、空きリソース量の少ないカメラで撮像された撮像画像データを、空きリソース量の多いカメラに直接に転送して、分析を行うように指示してもよい。ここで、分析とは、撮像画像に出現する対象物(つまり、オブジェクト)objを追尾する、或いは、対象物が不審人物に該当するか否かを認識する、等の処理であり、分析の内容は本実施の形態では特に限定されない。これにより、監視システム内で分析を分散させることができ、特定のカメラに大きな負荷をかけることなく、効率の良い分析が可能である。
【0060】
また、サーバ30は、監視システム5の全体の処理能力を監視し、システム全体の空きリソースの量が多い場合、各カメラ10に対し、学習量を増やすように指示し、一方、システム全体の空きリソースの量が少ない場合、各カメラ10に対し、学習量を減らすように指示してもよい。これにより、監視システム全体に大きな負荷をかけることなく、適正な学習が可能となる。
【0061】
また、サーバ30は、各カメラ10による検出の結果を全てのカメラ10に共有するように、指示してもよい。これにより、各カメラ10に検出の結果を分散させることができ、次回以降の検出に用いることで検出精度の向上を図ることができる。
【0062】
また、サーバ30は、カメラ10の空きリソースの量が多い場合、このカメラ10に送信する統合学習の結果のフィードバック量(例えばフィードバック回数)を増やすように指示し、一方、カメラ10の空きリソースの量が少ない場合、このカメラ10に送信する、統合学習の結果のフィードバック量(例えばフィードバック回数)を減らすように指示してもよい。これにより、カメラに大きな負荷をかけることなく、適正な量の学習の結果をカメラにフィードバックする(戻す)ことができる。
【0063】
また、3つのカメラ10A,10B,10Cは、それぞれ単価コストに関する情報(例えば電力コストに関する情報)をサーバ30に通知する。電力コストは、カメラ固有の値であり、例えばワット/フレーム(W/frame)の単位で表現される。一例として、カメラ10Aでは1/200、カメラ10Bでは1/200、カメラ10Cでは1/400が挙げられる。なお、電力コストは、通常カメラの使用状況によって大きく変化しないので、1回の通知で充分である。また、電力コストの単位は、フレーム/ワット(frame/W)で表現されてもよい。
【0064】
サーバ30は、カメラ10Aとカメラ10Bの電力コストが同じように高い場合、電力コストの低いカメラ10Cに対し、優先的に学習を割り当てる。
【0065】
サーバ30は、カメラ10A,10B,10Cの空きリソースの量が同じ或いは同程度である場合、例えばカメラ10Aの空きリソースの量が10%であり、カメラ10B,10Cの空きリソースの量がいずれも45%である場合、電力コストのかからないカメラ10Cで優先的に学習するように、このカメラ10Cに学習の指示を出力する。
【0066】
なお、カメラの空きリソースの多寡に拘わらず、サーバ30は、コスト優先で電力コストの低いカメラで学習を実行するように指示してもよい。また、各デバイスの空きリソース及び電力コストの管理を、サーバ30が行っていたが、各カメラやレコーダが管理してもよく、その場合、空きリソース及び電力コストを監視システム5内の全てデバイス150で共有できる。従って、空きリソース及び電力コストを考慮して、各デバイスは、処理の指示実行を行うことも可能となり、多様な運用が可能となる。
【0067】
図9は、実施の形態1においてサーバ30がカメラ10に処理の実行指示を行う動作手順の一例を詳細に示すシーケンス図である。
【0068】
図9の動作手順では、サーバ30は、カメラ10の空きリソースの情報を基に、複数のカメラ10の中から、分散処理の対象となるカメラ10を決定し、該当するカメラ10に処理実行を指示する。カメラの台数Nは、任意の台数でよく、ここでは、説明を簡単にするために2台(カメラ10A,10B)を例示する。なお、サーバ30の代わりに、レコーダ50が処理実行を指示するカメラ10を決定してもよい。
【0069】
カメラ10Aは、リソース監視部15によって監視された空きリソースの情報を繰り返し(例えば常時、又は周期的に)サーバ30に通知する(T1)。同様に、カメラ10Bは、リソース監視部15によって監視された空きリソースの情報を繰り返し(例えば常時、又は周期的に)サーバ30に通知する(T2)。
【0070】
サーバ30は、カメラ10A,10Bの空きリソースの情報をテーブルメモリ35に登録して管理する(T3)。サーバ30は、所定値(例えば70%)以上の空きリソースを有する少なくとも1台のカメラの有無を判別する(T4)。ここでは、カメラ10Bだけが所定値以上の空きリソースを有すると想定する。
【0071】
所定値以上の空きリソースを有するカメラがある場合(T4、YES)、サーバ30は、該当するカメラに対する検出と学習との両方の実行指示を生成する(T5)。サーバ30は、カメラ10Bに対し、ネットワークNWを経由して、検出と学習との両方の実行指示を送信する(T6)。カメラ10Bは、該当する処理を実行する(T7)。
【0072】
一方、手順T4で所定値以上の空きリソースを有するカメラが無い場合(T4、NO)、サーバ30は、全てのカメラ(ここでは、カメラ10A,10B)に対する検出の実行指示を生成する(T8)。カメラ10A,10Bは、学習を実行できる程の空きリソースを有していないので、検出のみを行うことになる。サーバ30は、検出の実行指示を全てのカメラ(ここでは、カメラ10A,10B)に送信する(T9)。カメラ10A,10Bは、それぞれ該当する処理を実行する(T10,T11)。
【0073】
手順T7でカメラ10Bが該当する処理を実行した場合、カメラ10Bは、学習結果を生成し(T12)、生成した学習結果をサーバ30に送信する(T13)。
【0074】
図10は、実施の形態1においてサーバ30がモデルパラメータのフィードバック量を制御する動作手順の一例を詳細に示すシーケンス図である。
【0075】
図10の動作手順では、サーバ30は、カメラ10の空きリソースの情報を基に、モデルパラメータのフィードバック量を制御する。カメラの台数Nは、任意の台数でよく、ここでは、説明を簡単にするために2台(カメラ10A,10B)である。なお、サーバ30の代わりに、レコーダ50がモデルパラメータをフィードバックするカメラ10を決定してもよい。
【0076】
サーバ30は、カメラ10A,10Bからそれぞれ学習結果であるモデルパラメータを受信し、学習用DB34に蓄積する(T21)。サーバ30は、各カメラ10A,10Bの空きリソースの量に応じて、学習結果である多くのモデルパラメータの中から、推論(検出)処理時に用いる学習モデルのモデルパラメータのフィードバック量をカメラごとに算出する(T22)。
【0077】
サーバ30は、カメラ10Bに対し、算出されたフィードバック量分のモデルパラメータのデータを送信する(T23)。同様に、サーバ30は、カメラ10Aに対し、算出されたフィードバック量分のモデルパラメータのデータを送信する(T24)。カメラ10Bは、サーバ30から受信したモデルパラメータを、処理実行部14のメモリに追加登録して蓄積する(T25)。同様に、カメラ10Aは、サーバ30から受信したモデルパラメータを、処理実行部14のメモリに追加登録して蓄積する(T26)。
【0078】
なお、ここでは、フィードバック量は、各カメラの空きリソースの情報を基に、サーバ30により決定されたが、空きリソースに限らず、教師データに基づく正報検出数や教師データに基づく誤報検出数に応じて、決定されてもよい。
【0079】
図11は、監視システム5における学習結果の共有の概要例の説明図である。
【0080】
各カメラ10(10A,10B,10C)は、撮像により得られた撮像画像データを用いてローカル学習を行い、モデルパラメータを更新する。また、各カメラ10は、正報が得られた撮像画像データだけを用いて学習を行うことができ、学習の結果であるモデルパラメータの精度を向上できる。また、カメラ10は、オプションとして接続された表示器19に、ローカル学習において、撮像画像データを評価するためのUI画面320(図12参照)を表示可能である。また、カメラ10は、ローカル学習時のUI画面320をサーバ30の表示部37に表示させることも可能である。
【0081】
図12は、ローカル学習時に表示されるUI画面320を示す図である。
【0082】
UI画面320は、例えばカメラ10のローカル学習時に、カメラ10と通信可能に接続されたサーバ30の表示部37又はPC(図示略)の表示部において表示され、具体的には、撮像画像データから切り出された学習データごとに、正誤の判定、カメラID、リジェクトボタンbxを表示する。なお、撮像画像データのサムネイルは、カメラ10が元の撮像画像データを記憶しているので、ここでは表示されないが、表示されるようにしてもよい。検出の対象物(オブジェクト)objは「人」である。
【0083】
サーバ30は、正誤の判定処理において、撮像画像データに対象物objを検出できた場合に正報と判定し、撮像画像データに対象物objを検出できなかった場合に誤報と判定する。なお、ユーザが、サーバ30の表示部37に表示されたUI画面320に対して入力することで、サーバ30は、正報或いは誤報を判定してもよい。
【0084】
カメラIDは、学習データを得るために撮像したカメラの識別情報である。
【0085】
リジェクトボタンbxは、ユーザにより選択され、チェックマークが表示される。リジェクトボタンbxにチェックマークが付加された学習データは、ユーザが学習ボタンbt5を押下すると、学習に用いられなくなる。
【0086】
カメラ10は、自動的に、誤報の撮像画像データを採用する学習に用いず、正報の撮像画像データを採用する学習に用いたが、カメラ10の代わりに、ユーザがリジェクトボタンbxを用いて撮像画像データを指示してもよい。例えば、ユーザは、誤報の撮像画像データを採用する学習に用いず、正報の撮像画像データを採用する学習に用いるように指示してもよい。これにより、誤報の撮像画像データを用いて学習することができる。また、カメラ10は、正報の撮像画像データと誤報の撮像画像データとを組み合わせて学習に用いてもよい。これにより、撮像画像データの品質に照らして、学習に用いる撮像画像データを選別できる。
【0087】
サーバ30は、各カメラ10(10A,10B,10C)から送信されたモデルパラメータPを受信し、受信した各モデルパラメータPを合算する統合学習を行い、合算したモデルパラメータPを学習用DB34に追加する。ここで、統合されるモデルパラメータは、設置状況が同じカメラで撮像された画像データを基に得られたモデルパラメータである。一方、設置状況が異なるカメラで撮像された画像データを基に得られるモデルパラメータは、合算されず、別々の学習モデルに対するモデルパラメータとして個別に登録される。
【0088】
図13は、統合学習時にサーバ30の表示部37に表示されるUI画面310を示す図である。
【0089】
サーバ30は、表示部37に、統合学習時のUI画面310(図13参照)を表示可能である。UI画面310は、撮像画像データから切り出された学習データごとに、正誤の判定、サムネイル、カメラID、リジェクトボタンbxを表示する。ここでは、検出の対象物(オブジェクト)が「人」である場合を示す。
【0090】
サーバ30は、正誤の判定処理では、撮像画像データに対象物objを検出できた場合に正報と判定し、撮像画像データに対象物objを検出できなかった場合に誤報と判定する。なお、ユーザが、サーバ30の表示部37に表示されたUI画面310に対して入力することで、サーバ30は、正報或いは誤報を判定してもよい。
【0091】
サムネイルは、学習データの縮小画像である。サムネイルであるので、カメラ10からサーバ30に送信される際、データ転送量は抑えられる。カメラIDは、学習データを得るために撮像したカメラの識別情報である。
【0092】
リジェクトボタンbxは、ユーザにより選択され、チェックマークが表示される。リジェクトボタンbxにチェックマークが付加された学習データは、ユーザが学習ボタンbt5を押下すると、学習に用いられなくなる。
【0093】
サーバ30は、自動的に正報の撮像画像データを採用するように学習し(つまり、正報の撮像画像データの検出に用いたモデルパラメータを蓄積するように学習し)、誤報の撮像画像データを排除するように学習する(つまり、誤報の撮像画像データの検出に用いたモデルパラメータを蓄積しないように学習する)。但し、学習に用いる撮像画像データの選択について、ユーザが主体的にリジェクトボタンbxを用いて、学習に用いる撮像画像データが指示されてもよい。また、ユーザは、誤報の撮像画像データを排除する学習を行わず、正報の撮像画像データを採用する学習を行うように指示してもよい。
【0094】
このように、サーバ30がモデルパラメータを統合学習することで、モデルパラメータの学習の精度が向上する。サーバ30は、統合学習の結果である更新されたモデルパラメータを、該当するカメラ10にフィードバック送信する。これにより、各カメラ10で得られる撮像画像データの正報が多くなるほど、カメラの検出精度が高くなる。
【0095】
また、サーバ30は、統合学習の結果である更新されたモデルパラメータPを、各カメラ10にフィードバック送信する際、各カメラ10の正報の数に応じて、フィードバック量を制御する。つまり、サーバ30は、誤報の数が多いカメラ10に対し、フィードバック量(例えばフィードバック回数)が多くなるように、更新済みモデルパラメータを送信する。これにより、正報の数が増加し、カメラの検出精度が向上する。
【0096】
一方、サーバ30は、正報の数が多いカメラ10に対し、フィードバック量(例えばフィードバック回数)が少なくなるように、更新済みモデルパラメータを送信する。これにより、カメラの処理負荷を軽減できる。なお、サーバ30は、設置環境が同じであるカメラに対し、同一の更新済みのモデルパラメータを送信して共有させることは、前述した通りである。
【0097】
また、サーバ30は、各カメラ10に対し、学習の実行指示を行う際、各カメラ10の正報の数に応じて、学習の量を指示する。誤報の数が多いカメラ10に対し、学習量が多くなるように、学習の実行指示を行う。これにより、正報の数が増加し、カメラの検出精度が向上する。一方、サーバ30は、正報の数が多いカメラ10に対し、学習量が少なくなるように、学習の実行指示を行う。これにより、カメラの処理負荷を軽減できる。
【0098】
また、サーバ30は、各カメラ10で撮像された撮像画像に出現する対象物を検出する検出の結果を統合して管理してもよい。検出の結果を統合する場合、対象物の動きをベクトルで表し、ベクトルで検出の結果を管理してもよい。
【0099】
以上により、第1の実施形態の監視システム5では、サーバ30と、監視エリアSAに設置された複数のカメラ10とが互いに通信可能に接続される。サーバ30は、それぞれのカメラ10の空きリソース(つまり、処理能力に関する情報)と、それぞれのカメラ10により監視エリアSAの撮像により得られた撮像画像のデータとを保持するテーブルメモリ35を有する。サーバ30は、カメラ10の処理能力に関する情報に基づいて、それぞれのカメラ10により得られる撮像画像に出現する少なくとも1つの対象物(オブジェクト)objの検出に関してカメラ10が実行する処理をカメラ10ごとに決定し、決定された処理の実行指示をカメラ10ごとに送信する。それぞれのカメラ10は、サーバ30から送信された処理の実行指示に基づいて、実行指示に対応する処理を実行する。
【0100】
これにより、監視システム5は、監視エリアSAに設置された複数のカメラ10において撮像されたそれぞれの撮像画像内の少なくとも1つのオブジェクトの検出に際し、その検出に用いるパラメータの学習等の処理を複数のカメラ10間で分散でき、ネットワーク上のトラフィックの増大を抑制し、複数のカメラ10に接続されるサーバ30の処理負荷の軽減を支援することができる。
【0101】
また、上述した処理は、撮像画像に出現する少なくとも1つの対象物(オブジェクト)objの検出に用いるモデルパラメータPを学習する学習である。これにより、監視システム5は、負荷の大きな学習を複数のカメラ10に分散させることができる。
【0102】
また、サーバ30は、複数のカメラ10に対し、学習の実行指示をそれぞれ送信する。複数のカメラ10は、それぞれ学習の実行指示に従って、学習を実行する。サーバ30は、複数のカメラ10により実行された学習の結果を受信する。これにより、サーバ30は、例えば自装置で学習することなく、複数のカメラ10から学習の結果を得ることができる。
【0103】
また、サーバ30は、自身で学習を実行するとともに、複数のカメラ10に学習の実行指示をそれぞれ送信する。複数のカメラ10は、それぞれ学習の実行指示に従い、学習を実行する。サーバ30は、複数のカメラ10により実行された学習の結果を受信する。これにより、サーバ30は、複数のカメラ10から得た学習の結果に、自装置の学習結果を加えることができ、次回以降の学習の効率化を図ることができる。
【0104】
また、サーバ30は、学習の結果を複数の前記カメラに送信する。複数のカメラ10は、学習の結果を共有する。これにより、複数のカメラは、同じ学習の結果を利用できる。
【0105】
また、複数のカメラ10のうち一部の複数のカメラ10は同一の設置状況で設置される。サーバ30は、学習の結果を、設置状況が同じである一部の複数のカメラ10にそれぞれ送信する。設置状況が同じである一部の複数のカメラ10は、サーバ30から送信された学習の結果を共有する。これにより、監視システム5は、設置状況が同じである複数のカメラ10によるオブジェクトの検出精度を高めることができる。
【0106】
また、サーバ30は、カメラ10により検出された対象物(オブジェクト)objの検出数に応じて、学習の処理量を制御する。これにより、サーバ30は、オブジェクトの検出数が多くて、処理の負荷が大きいカメラに対し、負荷を増加させるような、学習の量を減らすことができる。一方、サーバ30は、オブジェクトの検出数が多くて、処理の負荷が小さいカメラに対し、学習の量を増やすことができる。従って、カメラの処理の負荷を均一化に繋がる。
【0107】
また、サーバ30は、カメラ10により検出された対象物(オブジェクト)objの検出の正報の数に応じて、カメラ10における学習の処理量を制御する。これにより、サーバ30は、正報の学習の結果を多く用いることで、学習の結果の精度(言い換えると、次回以降の検出の精度)を向上できる。
【0108】
また、サーバ30は、カメラ10により検出された対象物(オブジェクト)objの検出の誤報の数に応じて、カメラ10における学習の量を制御する。これにより、サーバ30は、誤報の学習の結果を用いないようにすることで、結果的に学習の結果の精度(言い換えると、次回以降の検出の精度)を向上できる。
【0109】
また、サーバ30は、カメラ10の処理能力の量に応じて、カメラ10における学習の処理量を制御する。これにより、サーバ30は、特定のカメラに大きな負荷をかけることなく、複数のカメラに学習を分散させることができ、効率の良い学習の実現が可能である。
【0110】
また、サーバ30は、監視システム5を構成するサーバ30及び複数のカメラ10のそれぞれの処理能力に関する情報をテーブルメモリ35に保持する。サーバ30は、サーバ30及び複数のカメラ10のそれぞれの処理能力の量に応じて、学習の処理量を制御する。これにより、サーバ30は、監視システムの特定のデバイスに大きな負荷をかけることなく、複数のデバイスに学習を分散させることができ、効率の良い学習の実現が可能である。
【0111】
また、上記処理は、撮像画像ogに出現する少なくとも1つの対象物(オブジェクト)objの検出に用いるモデルパラメータPを学習する学習と、撮像画像ogに出現する少なくとも1つの対象物(オブジェクト)objを検出する検出と、検出によって検出された少なくとも1つの対象物(オブジェクト)objを分析する分析と、を含む。これにより、サーバ30は、学習の他、検出と分析においても、複数のカメラ10に処理を分散させることができる。
【0112】
また、サーバ30は、複数のカメラ10のうち、他のカメラと比べて相対的に処理能力の高い少なくとも1つのカメラ10に対し、テーブルメモリ35に保持される撮像画像のデータを送信し、学習の実行指示を行う。これにより、サーバ30は、ネットワークの帯域が広い場合或いはネットワークが空いている時等において、他の処理能力の高いカメラに撮像画像データを送信することも可能であり、結果的に学習のスピードを向上させることができる。
【0113】
また、サーバ30は、複数のカメラ10のうち、他のカメラと比べて相対的に処理能力の高い少なくとも1つのカメラ10に対し、テーブルメモリ35に保持される撮像画像のデータを送信し、検出の実行指示を行う。これにより、サーバ30は、ネットワークの帯域が広い場合或いはネットワークが空いている時等において、他の処理能力の高いカメラに撮像画像データを送信することも可能であり、結果的に検出のスピードを向上させることができる。
【0114】
また、サーバ30は、複数のカメラ10のうち、他のカメラと比べて相対的に処理能力の高い少なくとも1つのカメラ10に対し、テーブルメモリ35に保持される撮像画像のデータを送信し、分析の実行指示を行う。これにより、サーバ30は、ネットワークの帯域が広い場合或いはネットワークが空いている時等において、他の処理能力の高いカメラに撮像画像データを送信することも可能であり、結果的に分析のスピードを向上させることができる。
【0115】
また、上記処理は、撮像画像ogに出現する少なくとも1つの対象物(オブジェクト)objを検出する検出である。サーバ30は、検出の結果を複数のカメラ10にそれぞれ送信する。複数のカメラ10は、検出の結果を共有する。これにより、サーバ30は、特定のカメラに大きな負荷をかけることなく、複数のカメラに検出を分散させることができ、検出の効率を高めることができる。
【0116】
また、サーバ30は、複数のカメラ10により実行された学習の結果を統合する。これにより、監視システム5は、サーバ30における統合によって集約された学習の結果の精度を向上できる。
【0117】
また、複数のカメラ10のうち一部の複数のカメラ10は、同一の設置状況で設置される。サーバ30は、カメラ10の設置状況が同じである、複数のカメラ10により実行された学習の結果を統合する。これにより、サーバ30は、同じ設置状況のカメラによるオブジェクトの検出精度を高めることができる。
【0118】
サーバ30は、設置状況が同一の一部の複数のカメラ10から、それぞれのカメラの設置状況に関する情報の通知を受信し、その一部の複数のカメラ10により実行された学習の結果を統合する。これにより、サーバ30は、同じ設置状況のカメラによる学習の結果を統合し易くなる。
【0119】
また、サーバ30及び複数のカメラ10が、複数のカメラ10の処理能力に関する情報と複数のカメラ10の単価コストに関する情報(例えば個々のカメラ10の電力コストの情報)とを共有する。これにより、サーバ30は、空きリソース及び電力コストを考慮して、サーバ及び複数のカメラ等の各デバイスは、処理の指示実行を行うことも可能となり、多様な運用が可能となる。
【0120】
(第2の実施の形態に至る経緯)
上述した特許文献1のような従来技術では、撮像画像内において追跡対象となる物体の正解となる物体動き情報を得るために、その物体に関する評価関数のスコアを用いることは開示されている。しかし、物体の検出精度を示すスコアに応じて、物体の検出において必要なパラメータの学習量をコントロールすることについては特段の考慮がなされていなかった。このため、例えば本来学習が必要ではない、検出に用いるパラメータを学習してしまうことでパラメータの学習精度にばらつきが生じ、物体の検出精度に影響を及ぼすことが懸念される。
【0121】
そこで、実施の形態2では、監視エリアに設置されたカメラにおいて撮像された撮像画像内の少なくとも1つのオブジェクトの検出に得られた、そのオブジェクトの検出精度を示すスコアに応じて、検出に用いるパラメータの学習量を適切に制御し、カメラにおける学習精度を向上する監視システム及び監視方法の例、並びに、カメラ及びパラメータ登録方法を説明する。
【0122】
(実施の形態2)
実施の形態2の監視システム5のシステム構成は、上述した実施の形態1の監視システム5のシステム構成と同一であるので、同一の符号を用いることで、その説明を簡略化又は省略し、異なる内容について説明する。
【0123】
図14は、実施の形態2のカメラ10の処理実行部14の内部構成の一例を詳細に示すブロック図である。
【0124】
カメラ10の主要な構成である処理実行部14は、ニューラルネットワーク(つまり、NN140)の他、教師データセットメモリ151及びパラメータメモリ152を含む。
【0125】
NN140は、オブジェクト推論機能141と、スコア導出機能142と、正誤判定機能143と、パラメータ学習機能144との各機能を有する。
【0126】
検出部の一例としてのオブジェクト推論機能141では、NN140は、モデルパラメータに従い、撮像画像に出現する対象物が何であるかを推論(つまり、検出)する。
【0127】
導出部の一例としてのスコア導出機能142では、NN140は、推論時に対象物の検出精度を示すスコア(評価値)を、教師データセットメモリ151に登録された教師データを用いて導出し、そのスコアを出力する。
【0128】
正誤判定機能143では、NN140は、推論時に対象物の正誤の判定を、教師データセットメモリ151に登録された教師データを用いて導出し、その判定結果を出力する。
【0129】
パラメータ学習部の一例としてのパラメータ学習機能144では、NN140は、スコアが高い対象物の推論に用いられたモデルパラメータを採用するように学習する。また、パラメータ学習機能144では、NN140は、スコアが低い対象の推論に用いられたモデルパラメータを排除するように学習する。NN140は、学習したモデルパラメータをパラメータメモリ152に登録して蓄積する。パラメータメモリ152に登録された第1所定値(例えば80点)よりスコアが高い対象物の推論に用いられたモデルパラメータは、後述する学習結果の共有において、サーバ30に送信され、統合学習において利用される。
【0130】
図15は、カメラ10のローカル学習の動作手順の一例を詳細に示すフローチャートである。
【0131】
図15において、カメラ10は、イメージセンサ12において被写体像から対象物を撮像し(S1)、撮像画像データを生成する(S2)。
【0132】
処理実行部14は、撮像画像データを入力し、撮像画像に現れる少なくとも1つの対象物(つまり、オブジェクト)を推論(検出)する(S3)。処理実行部14は、推論(検出)時に少なくとも1つのオブジェクトのスコアリング処理を行う(S4)。このスコアリング処理では、処理実行部14は、教師データセットメモリ151に登録された教師データを用いて、オブジェクトのスコア(評価値)を出力する。
【0133】
処理実行部14は、スコアリング処理の結果、第1所定値(例えば80点)より上位スコアのオブジェクトの推論に用いたモデルパラメータ、及び第2所定値(例えば10点)下位スコアのオブジェクトの推論に用いたモデルパラメータを用いて、NN140のモデルパラメータを学習する(S5)。また、ステップS5において、処理実行部14は、第1所定値より上位スコアのモデルパラメータをパラメータメモリ152に登録して蓄積する。この後、カメラ10は、図15に示す処理を終了する。
【0134】
上位スコアは、例えば80点〜100点である。下位スコアは、例えば0点〜10点である。処理実行部14は、例えば上位スコアのモデルパラメータを採用し、下位スコアのモデルパラメータを排除する。
【0135】
上位スコアのオブジェクトは正報の可能性が高いオブジェクトであり、下位スコアのオブジェクトは誤報の可能性が高いオブジェクトである。従って、上位スコアのオブジェクトの推論(検出)に用いたモデルパラメータを採用するように学習することで、正報の可能性が高いオブジェクトの推定に適用されたモデルパラメータが用いられるようになり、モデルパラメータの学習精度を向上させることができる。
【0136】
また、下位スコアのオブジェクトの推論に用いたモデルパラメータを排除するように学習することで、誤報の可能性が高いオブジェクトの推定に適用されたモデルパラメータが用いられなくなり、モデルパラメータの学習精度を向上させることができる。
【0137】
また、処理実行部14は、上位スコアのオブジェクトの推論に用いたモデルパラメータと、下位スコアのオブジェクトの推論に用いたモデルパラメータとを組み合わせて、学習してもよい。このように、上位スコアのオブジェクトの推論に用いたモデルパラメータと、下位スコアのオブジェクトの推論に用いたモデルパラメータとを組み合わせて学習することで、モデルパラメータの学習精度をより一層向上させることができる。
【0138】
図16は、監視システム5における学習結果の共有の概要例の説明図である。
【0139】
各カメラ10(10A,10B,10C)は、撮像により得られた撮像画像データを用いてローカル学習を行う。ローカル学習において、各カメラ10は、撮像画像データの中で検出した対象物の検出精度に関するスコアリング処理を実行し、得られたスコアに応じて、NN140のモデルパラメータを学習する。また、各カメラ10は、上位スコアのオブジェクトの推論(検出)に用いたモデルパラメータのみ採用して学習する。これにより、モデルパラメータの学習精度を向上できる。
【0140】
また、ローカル学習では、撮像画像データを評価するためのUI画面340(図17参照)が表示可能である。例えば、カメラ10は、カメラ10にオプションとして接続された表示器(図示略)にUI画面340を表示させてもよいし、サーバ30の表示部37に転送してUI画面340を表示させることも可能である。
【0141】
図17は、ローカル学習時に表示されるUI画面340の一例を示す図である。
【0142】
UI340は、撮像画像データから切り出された学習データごとに、スコア、カメラID、リジェクトボタンbxを表示する。なお、画像データのサムネイルは、カメラ10が元の撮像画像データを記憶しているので、ここでは表示されないが、表示されるようにしてもよい。検出の対象(オブジェクト)は「人」である。
【0143】
スコアは、0点〜100点の範囲で数値化される。なお、スコアは、各カメラ10がスコアリング処理することで算出されたが、ユーザがUI320から入力することで取得されてもよい。カメラIDは、学習データを得るために撮像したカメラの識別情報である。リジェクトボタンbxは、ユーザにより選択された場合、チェックマークが表示される。リジェクトボタンbxにチェックマークが付加された学習データは、ユーザが学習ボタンbt5を押下すると、学習に用いられなくなる。
【0144】
カメラ10は、自動的に、下位スコアの撮像画像データを採用する学習を行わず、上位スコアの撮像画像データを採用する学習を行った。但し、例えばカメラ10の代わりに、ユーザが、リジェクトボタンbxを用いて学習に用いる撮像画像データを指示してもよい。例えば、ユーザは、下位スコアの撮像画像データを排除する学習を行わず、上位スコアの撮像画像データを採用する学習を行うように指示してもよい。
【0145】
また、各カメラ10は、上位スコアの撮像画像データのみ採用する学習を行ったが、例えば下位スコアの撮像画像データのみ排除する学習を行うように指示してもよい。これにより、下位スコアの撮像画像データが排除された撮像画像データを用いて学習を行うことができる。また、上位スコアの撮像画像データと下位スコアの撮像画像データとを組み合わせて用いるように設定されてもよい。これにより、撮像画像データの品質に照らして、学習に用いる画像データを、カメラ或いはユーザが個別に選別できる。
【0146】
サーバ30は、各カメラ10(10A,10B,10C)から送信されたモデルパラメータを受信し、受信した各モデルパラメータを合算する統合学習を行い、合算したモデルパラメータを学習用DB34に追加する。ここで、統合されるモデルパラメータは、設置状況が同じカメラで撮像された画像データを基に得られたモデルパラメータである。一方、設置状況が異なるカメラで撮像された画像データを基に得られるモデルパラメータは、合算されず、別々の学習モデルに対するモデルパラメータとして個別に登録される。
【0147】
図18は、統合学習時にサーバ30の表示部37に表示されるUI画面350の一例を示す図である。
【0148】
サーバ30は、表示部37に、統合学習時のUI310(図18参照)を表示可能である。UI350は、撮像画像データから切り出された学習データ毎に、スコア、サムネイル、カメラID、リジェクトボタンbxを表示する。ここでは、検出の対象(オブジェクト)が「人」である場合を示す。
【0149】
スコアは、0点〜100点の範囲で数値化される。例えば、対象が「人」である場合、人が写っている画像データの点数は、80点〜100点と高くなる。一方、人でなく「木」が写っている画像データの点数は、10点と低くなる。サムネイルは、学習データの縮小画像である。サムネイルであるので、カメラ10からサーバ30に送信される際、データ転送量は抑えられる。カメラIDは、学習データを得るために撮像したカメラの識別情報である。リジェクトボタンbxは、ユーザにより選択され、チェックマークが表示される。リジェクトボタンbxにチェックマークが付加された学習データは、ユーザが学習ボタンbt5を押下すると、学習に用いられなくなる。
【0150】
サーバ30は、自動的に上位スコアの撮像画像データを採用する学習を行わず、下位スコアの撮像画像データを排除する学習を行う。但し、例えばユーザが、リジェクトボタンbxを用いて学習に用いる撮像画像データを指示してもよい。例えば、ユーザは、下位スコアの撮像画像データを排除する学習を行わず、上位スコアの撮像画像データを採用する学習を行うように指示してもよい。
【0151】
このように、サーバ30がモデルパラメータを統合学習することで、モデルパラメータの学習の精度が向上する。サーバ30は、統合学習の結果である更新されたモデルパラメータを、該当するカメラ10にフィードバック送信する。これにより、各カメラ10で得られる画像データの正報が多くなるほど、カメラの検出精度が高くなる。
【0152】
また、サーバ30は、統合学習の結果である、更新されたモデルパラメータを、各カメラ10にフィードバック送信する際、各カメラ10の正報の数に応じて、フィードバック量を制御する。つまり、サーバ30は、誤報の数が多いカメラ10に対し、フィードバック量(例えばフィードバック回数)が多くなるように、更新済みモデルパラメータを送信する。これにより、正報の数が増加し、カメラの検出精度が向上する。
【0153】
一方、サーバ30は、正報の数が多いカメラ10に対し、フィードバック量(例えばフィードバック回数)が少なくなるように、更新済みモデルパラメータを送信する。これにより、カメラの処理の負荷を軽減できる。なお、サーバ30は、設置環境が同じであるカメラに対し、同一の更新済みのモデルパラメータを送信して共有させることは、前述した通りである。
【0154】
また、サーバ30は、各カメラ10に対し、学習の実行指示を行う際、各カメラ10の正報の数に応じて、学習の処理量を指示する。誤報の数が多いカメラ10に対し、学習量が多くなるように、学習の実行指示を行う。これにより、正報の数が増加し、カメラの検出精度が向上する。一方、サーバ30は、正報の数が多いカメラ10に対し、学習量が少なくなるように、学習の実行指示を行う。これにより、カメラの処理の負荷を軽減できる。
【0155】
また、サーバ30は、各カメラ10で撮像された画像に出現する対象を検出する検出の結果を統合して管理してもよい。検出の結果を統合する場合、対象の動きをベクトルで表し、ベクトルで検出の結果を管理してもよい。
【0156】
以上により、実施の形態2のカメラ10は、監視エリアSAに設置され、サーバ30と互いに通信可能に接続された監視システム5に用いられるカメラである。カメラ10は、イメージセンサ12において、監視エリアSAからの被写体光を撮像する。カメラ10は、検出部の一例としてのオブジェクト推論機能141において、被写体光の撮像に基づく撮像画像ogを用いて、撮像画像に出現する少なくとも1つのオブジェクトを検出する。カメラ10は、オブジェクトの種別ごとに用意された教師データセットを教師データセットメモリ151において保持する。カメラ10は、導出部の一例としてのスコア導出機能142において、教師データセットを用いて、検出されたオブジェクトの検出精度を示すスコアを導出する。カメラ10は、パラメータ学習部の一例としてのパラメータ学習機能144において、導出されたスコアに応じて、オブジェクトの検出に用いるモデルパラメータを学習する。カメラ10は、パラメータ学習機能144において、モデルパラメータの学習結果をパラメータメモリ152に登録して蓄積する。
【0157】
これにより、カメラ10は、監視エリアに設置されたカメラにおいて撮像された撮像画像内の少なくとも1つのオブジェクトの検出によって得られた、そのオブジェクトの検出精度を示すスコアに応じて、検出に用いるパラメータの学習量を適切に制御し、カメラにおける学習精度を向上させることができる。
【0158】
また、パラメータ学習機能144は、第1所定値より上位のスコアが導出されたモデルパラメータを採用するように学習する。このように、カメラ10は、上位スコアのオブジェクトの推論に用いたモデルパラメータを採用するように学習することで、正報の可能性が高いオブジェクトの推定に適用されたモデルパラメータが用いられるようになり、モデルパラメータの学習精度を向上させることができる。
【0159】
また、パラメータ学習機能144は、第2所定値より下位のスコアが導出されたモデルパラメータを排除するように学習する。このように、カメラ10は、下位スコアのオブジェクトの推論に用いたモデルパラメータを排除するように学習することで、誤報の可能性が高いオブジェクトの推定に適用されたモデルパラメータが用いられなくなり、モデルパラメータの学習精度を向上させることができる。
【0160】
また、パラメータ学習機能144は、第1所定値より上位のスコアが導出されたモデルパラメータを採用するように学習し、かつ、第2所定値より下位のスコアが導出されたモデルパラメータを排除するように学習する。このように、カメラ10は、上位スコアのオブジェクトの推論に用いたモデルパラメータと、下位スコアのオブジェクトの推論に用いたモデルパラメータとを組み合わせて学習することで、モデルパラメータの学習精度をより一層向上させることができる。
【0161】
以上、図面を参照しながら各種の実施形態について説明したが、本発明はかかる例に限定されないことは言うまでもない。当業者であれば、特許請求の範囲に記載された範疇内において、各種の変更例又は修正例に想到し得ることは明らかであり、それらについても当然に本発明の技術的範囲に属するものと了解される。また、発明の趣旨を逸脱しない範囲において、上述実施の形態における各構成要素を任意に組み合わせてもよい。
【0162】
例えば、上述した実施の形態では、監視システムは、泥棒等の不審者を発見・追跡する、防犯用の監視システムに適用される場合を示したが、無人自動化(FA化)された製造ラインにおける製品検査用の監視システム等に適用されてもよい。
【産業上の利用可能性】
【0163】
本開示は、ネットワーク上のトラフィックの増大を抑制し、複数のカメラに接続されるサーバの処理負荷の軽減を支援することができる監視システムとして有用である。
【符号の説明】
【0164】
5 監視システム
10,10A,10B,10C カメラ
11 レンズ
12 イメージセンサ
13 信号処理部
14 処理実行部
15 リソース監視部
16 ネットワークI/F
17 クロップエンコード部
30 サーバ
31 プロセッサ
32 メモリ
33 通信部
34 学習用DB
35 テーブルメモリ(メモリ)
36 操作部
37 表示部
50 レコーダ
150 デバイス
NW ネットワーク
P モデルパラメータ
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13
図14
図15
図16
図17
図18