以下、図面を適宜参照して、本発明の実施の形態について、詳細に説明する。但し、必要以上に詳細な説明は省略する場合がある。例えば、既によく知られた事項の詳細説明や実質的に同一の構成に対する重複説明を省略する場合がある。これは、以下の説明が不必要に冗長になるのを避け、当業者の理解を容易にするためである。
なお、添付図面および以下の説明は、当業者が本開示を十分に理解するために、提供されるのであって、これらにより特許請求の範囲に記載の主題を限定することは意図されていない。
(第1の実施の形態)
図1は、第1の実施の形態に係る監視カメラシステムの一例を示した図である。図1に示すように、監視カメラシステムは、監視カメラ1と、端末装置2と、発報装置3と、を有している。
図1には、監視カメラシステムの他に、構造物A1の一部と、端末装置2を使用するユーザU1と、が示してある。構造物A1は、例えば、建物の外壁または内壁である。または、構造物A1は、田畑等に設置された支柱等である。ユーザU1は、監視カメラ1を購入した購入者であってもよい。また、ユーザU1は、監視カメラ1を構造物A1に設置する施工業者等であってもよい。
監視カメラ1は、例えば、構造物A1に設置され、構造物A1の周囲を撮影する。監視カメラ1は、人工知能を搭載しており、搭載した人工知能を用いて、撮影する映像から検知対象(所定の映像)を検知する。以下では、人工知能を単にAIと呼ぶことがある。
検知対象には、例えば、人の検知(人であるか否かの区別)がある。また、検知対象には、例えば、特定の人物の検知(顔認証)がある。また、検知対象には、例えば、自転車、自動車、オートバイ等の車両の検知(車両であるか否かの区別)がある。また、検知対象には、例えば、自動車の車種またはオートバイの車種の検知がある。また、検知対象には、例えば、動物の検知(動物であるか否かの区別)がある。また、検知対象には、例えば、熊、狸、鹿、馬、猫、犬、カラス等の動物の種類の検知がある。また、検知対象には、例えば、昆虫の検知(昆虫であるか否かの区別)がある。また、検知対象には、例えば、スズメバチ、蝶、毛虫等の昆虫の種類の検知がある。また、検知対象には、例えば、花の開花の検知がある。
ユーザU1は、端末装置2を用いて、監視カメラ1の検知対象を設定できる。例えば、ユーザU1は、監視カメラ1を用いて、駐車場に駐車される自動車を検知したいとする。この場合、ユーザU1は、駐車場を撮影できる場所に監視カメラ1を設置し、端末装置2を用いて、監視カメラ1の検知対象を自動車に設定する。また、例えば、ユーザU1は、監視カメラ1を用いて、田畑に出没する猪を検知したいとする。この場合、ユーザU1は、田畑を撮影できる場所に監視カメラ1を設置し、端末装置2を用いて、監視カメラ1の検知対象を猪に設定する。
監視カメラ1は、検知結果を端末装置2および発報装置3のいずれか一方または両方に通知する。例えば、監視カメラ1は、駐車場を撮影する映像から自動車を検知すると、自動車を検知したことを示す情報を端末装置2に送信する。また、例えば、監視カメラ1は、田畑を撮影する映像から猪を検知すると、発報装置3に猪を検知したことを示す情報を送信する。
端末装置2は、例えば、パーソナルコンピュータ、スマートフォン、またはタブレット端末等の情報処理装置である。端末装置2は、有線または無線によって、監視カメラ1と通信する。
端末装置2は、例えば、ユーザU1によって所有される。端末装置2は、ユーザU1の操作に応じて、監視カメラ1の検知対象を設定する。また、端末装置2は、監視カメラ1の検知結果を受信する。端末装置2は、例えば、検知結果を表示装置に表示し、または、検知結果をスピーカ等で音声出力する。
発報装置3は、例えば、監視カメラ1が設置された構造物A1に設置される。発報装置3は、監視カメラ1が設置された構造物A1とは別の構造物に設置されてもよい。発報装置3は、有線または無線によって、監視カメラ1と通信する。
発報装置3は、例えば、スピーカである。発報装置3は、例えば、監視カメラ1から通知される検知結果に応じて音声を出力する。例えば、発報装置3は、監視カメラ1から猪を検知したことを示す情報を受信した場合、田畑から猪を追い出すための音を発する。
発報装置3は、スピーカに限られない。発報装置3は、例えば、投光器等であってもよい。例えば、発報装置3(投光器)は、監視カメラ1が侵入者を検知した場合、侵入者を警告するため、発光してもよい。
図1の監視カメラシステムの概略動作例について説明する。
図2は、監視カメラシステムの概略動作例を説明する図である。図2において、図1と同じものには同じ符号が付してある。
端末装置2には、学習モデルM1が記憶されている。学習モデルM1は、監視カメラ1に搭載されているAIの機能を特徴付けるパラメータ群である。すなわち、学習モデルM1は、監視カメラ1に搭載されているAIの検知対象を決定するパラメータ群である。監視カメラ1のAIは、学習モデルM1が変更されることによって、検知対象を変更できる。
学習モデルM1は、例えば、監視カメラ1のニューラルネットワークN1の構造を決定するパラメータ群であってもよい。監視カメラ1のニューラルネットワークN1の構造を決定するパラメータ群には、例えば、ニューラルネットワークN1のユニット間の接続関係を示す情報または重み係数などが含まれる。なお、学習モデルは、学習済モデル、AIモデル、または検知モデル等と称されてもよい。
端末装置2は、ユーザU1の操作に応じて、学習モデルM1を生成する。つまり、ユーザU1は、端末装置2を用いて、監視カメラ1によって検知したい検知対象を設定(選択)できる。
例えば、ユーザU1は、駐車場の自動車を監視カメラ1で検知したい場合、端末装置2を用いて、自動車を検知する学習モデルM1を生成する。また、例えば、ユーザU1は、田畑に出現する猪を監視カメラ1で検知したい場合、端末装置2を用いて、猪を検知する学習モデルM1を生成する。学習モデルの生成については、以下で詳述する。
ユーザU1は、端末装置2を用いて学習モデルを生成すると、生成した学習モデルM1を監視カメラ1に送信する。監視カメラ1は、端末装置2から送信された学習モデルM1に基づいたAIを構築(形成)する。つまり、監視カメラ1は、学習モデルM1に基づいて、学習済みのAIを形成する。
例えば、監視カメラ1は、端末装置2から受信した学習モデルM1が、自動車を検知する学習モデルである場合、映像から自動車を検知するニューラルネットワークを形成する。また、例えば、監視カメラ1は、端末装置2から受信した学習モデルM1が、猪を検知する学習モデルである場合、映像から猪を検知するニューラルネットワークを形成する。
このように、監視カメラ1は、端末装置2から、検知対象を検知するAIを構築するための学習モデルM1を受信する。そして、監視カメラ1は、受信した学習モデルM1に基づいたAIを形成し、映像から検知対象を検知する。
これにより、ユーザU1は、監視カメラ1に対し、検知したい検知対象をフレキシブルに設定できる。例えば、ユーザU1は、監視カメラ1で自動車を検知したい場合、端末装置2を用いて自動車を検知する学習モデルM1を生成し、監視カメラ1に送信すればよい。また、例えば、ユーザU1は、監視カメラ1で猪を検知したい場合、端末装置2を用いて猪を検知する学習モデルM1を生成し、監視カメラ1に送信すればよい。
なお、学習モデルM1は、端末装置2によって生成されるとしたがこれに限られない。例えば、学習モデルM1は、端末装置2とは別の情報処理装置によって生成されてもよい。情報処理装置が生成した学習モデルM1は、監視カメラ1と通信する端末装置2に転送され、端末装置2から監視カメラ1に送信されてもよい。
図3は、監視カメラ1のブロック構成例を示した図である。図3には、監視カメラ1の他に、監視カメラ1に挿抜される外部記憶媒体31も示してある。外部記憶媒体31は、例えば、SDカード(登録商標)等の記憶媒体である。
図3に示すように、監視カメラ1は、レンズ11と、撮像素子12と、映像処理部13と、制御部14と、記憶部15と、外部信号出力部16と、AI処理部17と、通信部18と、TOF(Time of Flight)センサ19と、マイク20と、USBI/F(USB:Universal Serial Bus、I/F:Interface)部21と、外部記憶媒体I/F部22と、を有している。
レンズ11は、撮像素子12の受光面に被写体の像を結像する。レンズ11には、監視カメラ1の設置場所または撮影用途等に応じて、様々な焦点距離または撮影範囲のレンズを用いることができる。
撮像素子12は、受光面に受けた光を電気信号に変換する。撮像素子12は、例えば、CCD(Charge Coupled Device)又はCMOS(Complementary Metal Oxide Semiconductor)等のイメージセンサである。撮像素子12は、受光面に受けた光に応じた電気信号(アナログ信号)を映像処理部13に出力する。
映像処理部13は、撮像素子12から出力されるアナログ信号をデジタル信号(デジタルの映像信号)に変換する。映像処理部13は、デジタルの映像信号を制御部14およびAI処理部17に出力する。レンズ11、撮像素子12、および映像処理部13は、撮像部と捉えてもよい。
制御部14は、監視カメラ1全体を制御する。制御部14は、例えば、CPU(Central Processing Unit)またはDSP(Digital signal Processer)によって構成されてもよい。
記憶部15は、制御部14およびAI処理部17が動作するためのプログラムが記憶される。また、記憶部15には、制御部14およびAI処理部17が計算処理を行うためのデータ、または、制御部14およびAI処理部17が各部を制御するためのデータ等が記憶される。また、記憶部15には、監視カメラ1が撮影した映像データが記憶される。記憶部15は、RAM(Random Access Memory)、ROM(Read Only Memory)、フラッシュメモリ、およびHDD(Hard Disk Drive)などの記憶装置によって構成されてもよい。
外部信号出力部16は、映像処理部13から出力される映像信号を外部に出力する出力端子である。
AI処理部17は、映像処理部13から出力される映像信号の映像の中から、検知対象を検知する。AI処理部17は、例えば、CPUまたはDSPによって構成されてもよい。また、AI処理部17は、例えば、FPGA(Field-Programmable Gate Array)等のPLD(Programmable Logic Device)によって構成されてもよい。
AI処理部17は、AI演算エンジン17aと、復号エンジン17bと、学習モデル記憶部17cと、を有している。
AI演算エンジン17aは、学習モデル記憶部17cに記憶された学習モデルM1に基づいたAIを形成する。例えば、AI演算エンジン17aは、学習モデルM1に基づいたニューラルネットワークを形成する。AI演算エンジン17aには、映像処理部13から出力される映像信号が入力される。AI演算エンジン17aは、学習モデルM1に基づいたニューラルネットワークによって、入力された映像信号の映像の中から、検知対象を検知する。
端末装置2は、以下で詳述するが、学習モデルM1を生成する。端末装置2は、生成した学習モデルM1を暗号化して監視カメラ1に送信する。復号エンジン17bは、通信部18を介して、端末装置2から送信される学習モデルM1を受信し、受信した学習モデルM1を復号して、学習モデル記憶部17cに記憶する。
学習モデル記憶部17cには、復号エンジン17bによって復号された学習モデルM1が記憶される。学習モデル記憶部17cは、RAM、ROM、フラッシュメモリ、およびHDDなどの記憶装置によって構成されてもよい。
通信部18は、データ送信部18aと、データ受信部18bと、を有している。データ送信部18aは、例えば、Wi−Fi(登録商標)またはブルートゥース(登録商標)等の近距離無線通信によって、端末装置2に対し、データを送信する。データ受信部18bは、例えば、Wi−Fiまたはブルートゥース等の近距離無線通信によって、端末装置2から送信されるデータを受信する。
なお、データ送信部18aは、例えば、イーサネット(登録商標)ケーブル等のネットワークケーブル(有線)によって、端末装置2に対し、データを送信してもよい。データ受信部18bは、例えば、イーサネットケーブル等のネットワークケーブルによって、端末装置2から送信されるデータを受信してもよい。
TOFセンサ19は、例えば、検知対象との距離を計測する。TOFセンサ19は、計測した距離の信号(デジタル信号)を制御部14に出力する。
マイク20は、音声を電気信号(アナログ信号)に変換する。マイク20は、アナログ信号をデジタル信号に変換し、制御部14に出力する。
USBI/F部21には、USBコネクタを介して、USBメモリまたは情報処理装置等の装置が接続される。USBI/F部21は、USBI/F部21に接続された装置から送信される信号を制御部14に出力する。また、USBI/F部21は、制御部14から出力される信号を、USBI/F部21に接続された装置に送信する。
外部記憶媒体I/F部22には、SDカード等の外部記憶媒体31が挿抜される。
なお、学習モデルM1は、端末装置2から外部記憶媒体31に記憶されてもよい。復号エンジン17bは、外部記憶媒体I/F部22に装着された外部記憶媒体31から、学習モデルM1を取得し、取得した学習モデルM1を復号して、学習モデル記憶部17cに記憶してもよい。
また、学習モデルM1は、端末装置2からUSBメモリに記憶されてもよい。復号エンジン17bは、USBI/F部21に装着されたUSBメモリから、学習モデルM1を取得し、取得した学習モデルM1を復号して、学習モデル記憶部17cに記憶してもよい。USBメモリも外部記憶部媒体と捉えてもよい。
図4は、端末装置2のブロック構成例を示した図である。図4に示すように、端末装置2は、制御部41と、表示部42と、入力部43と、通信部44と、I/F部45と、記憶部46と、を有している。
制御部41は、端末装置2全体を制御する。制御部41は、例えば、CPUによって構成されてもよい。
表示部42は、表示装置(図示せず)に接続されている。表示部42は、制御部41から出力される画像データを表示装置に出力する。
入力部43は、例えば、キーボートまたは表示装置の画面上に重畳されたタッチパネル等の入力装置(図示せず)に接続されている。また、入力部43は、例えば、マウス等の入力装置に接続されている。入力部43は、入力装置から出力された、ユーザの操作に応じた信号を受信し、制御部41に出力する。
通信部44は、監視カメラ1と通信を行う。通信部44は、例えば、Wi−Fiまたはブルートゥース等の近距離無線通信によって、監視カメラ1と通信を行ってもよい。また、通信部44は、例えば、イーサネットケーブル等のネットワークケーブルによって、監視カメラ1と通信を行ってもよい。
I/F部45には、例えば、外部記憶媒体31が挿抜される。また、I/F部45には、例えば、USBメモリが挿抜される。
記憶部46には、制御部41が動作するためのプログラムが記憶される。また、記憶部46には、制御部41が計算処理を行うためのデータ、または、制御部41が各部を制御するためのデータ等が記憶される。また、記憶部46には、監視カメラ1の映像データが記憶される。記憶部46は、RAM、ROM、フラッシュメモリ、およびHDDなどの記憶装置によって構成されてもよい。
図5は、学習モデルの生成および学習モデルの監視カメラ1への設定の一例を説明する図である。図5において、図1と同じものには同じ符号が付してある。監視カメラ1は、例えば、駐車場を撮影するように、構造物A1に設置されている。
1.端末装置2は、ユーザU1の操作に応じて、学習モデルを生成するアプリケーションを起動する。端末装置2(起動された学習モデルを生成するアプリケーション)は、ユーザU1の操作に応じて、監視カメラ1から映像データを受信する。受信する映像データは、ライブデータであってもよいし、録画データであってもよい。
2.端末装置2は、監視カメラ1から受信した映像データの映像を表示装置に表示する。ユーザU1は、端末装置2の表示装置に表示されている映像から、監視カメラ1で検知したい検知対象を含む映像を探す。
例えば、ユーザU1は、監視カメラ1で自動車を検知したいとする。この場合、ユーザU1は、監視カメラ1から受信した駐車場の映像から、自動車を含む映像を探し、探した映像の静止画像を作成する。静止画像は、複数枚作成されるのが望ましい。作成された静止画像は、記憶部46に記憶される。
3.端末装置2は、ユーザU1の操作に応じて、記憶部46に記憶した静止画像から、学習モデルを生成する。例えば、端末装置2は、監視カメラ1が自動車を検知するための学習モデルを生成する。学習モデルの生成については、以下で詳述する。
4.端末装置2は、ユーザU1の操作に応じて、生成した学習モデルを監視カメラ1に送信(設定)する。監視カメラ1は、端末装置2から送信された、自動車を検知する学習モデルに従って、ニューラルネットワークを形成する。監視カメラ1は、形成したニューラルネットワークに基づいて、撮像素子12が撮影する映像データの映像から、自動車を検知する。
なお、図5では、自動車を検知する学習モデルを生成する例について説明したが、他の検知対象を検知する学習モデルも同様に生成できる。例えば、監視カメラ1は、田畑を撮影するように構造物A1に設置されているとする。ユーザU1は、監視カメラ1で猪を検知したいとする。この場合、ユーザU1は、監視カメラ1が撮影した映像データの映像から、猪を含む映像の静止画像を生成する。端末装置2は、ユーザU1の操作に応じて、記憶部46に記憶した静止画像から、猪を検知する学習モデルを生成する。そして、端末装置2は、生成した学習モデルを監視カメラ1に送信する。
図6は、学習モデルの生成の一例を説明する図である。図6に示す画面51は、端末装置2の表示装置に表示される。
図5でも説明したように、端末装置2(学習モデルを生成するアプリケーション)は、監視カメラ1から受信した映像データの映像を表示装置に表示する。ユーザは、端末装置2を操作し、端末装置2の表示装置に表示されている映像から、監視カメラ1で検知したい検知対象を含む画像を探し、探した映像の静止画像を作成する。
図6の画面51の画像一覧51aには、ユーザが監視カメラ1の映像から作成した静止画像のファイル名が表示されている。図6の例では、静止画像ファイルは、6つ生成されている。
端末装置2は、ユーザの操作に応じて、画像一覧51aから静止画像ファイルが選択されると、選択された静止画像ファイルの画像を、端末装置2の表示装置に表示する。図6に示す静止画像51bは、ユーザによって選択された静止画像ファイル「0002.jpg」の画像を示している。
ユーザは、静止画像51bから、監視カメラ1で検知したい検知対象を選択する。例えば、ユーザは、監視カメラ1で自動車を検知したいとする。この場合、ユーザは、静止画像51b上において、自動車を選択(マーキング)する。例えば、ユーザは、端末装置2を操作して、自動車を枠51c,51dで囲む。
ユーザは、例えば、画像一覧51aに表示されている静止画像ファイルの全てまたは一部において自動車をマーキングする。ユーザは、静止画像ファイルの全てまたは一部において自動車をマーキングすると、「検知モデルを生成」のアイコン51eをクリックする。
端末装置2は、アイコン51eがクリックされると、静止画像ファイルでマーキングされた画像(枠51c,51dで囲まれた画像)にラベルを付与する画面に遷移する。すなわち、端末装置2は、静止画像ファイルでマーキングされた画像が検知対象(自動車)であることを教示する画面に遷移する。
図7は、学習モデルの生成の一例を説明する図である。図7に示す画面52は、端末装置2の表示装置に表示される。画面52は、図6に示したアイコン51eがクリックされると、端末装置2の表示装置に表示される。
画面52には、ラベル52aが表示されている。ユーザは、ラベル52aの左横に表示されているチェックボックスを選択して、静止画像でマーキングした検知対象にラベルを付与する。
図6の例では、ユーザは、静止画像51bにおいて、自動車をマーキングしている。従って、ユーザは、図7の画面52において、車(自動車)のラベル52aに対応するチェックボックスを選択する。
ユーザは、ラベルを選択すると、ボタン52bをクリックする。端末装置2は、ボタン52bがクリックされると、学習モデルを生成する。
例えば、端末装置2は、ボタン52bがクリックされると、静止画像でマーキングされた画像と、ラベルとによって学習を行う。端末装置2は、静止画像でマーキングされた画像と、ラベルとの学習により、例えば、監視カメラ1のニューラルネットワークの構造を決定するパラメータ群を生成する。すなわち、端末装置2は、監視カメラ1のAIの機能を特徴づける学習モデルを生成する。
図8は、学習モデルの生成の一例を説明する図である。図8に示す画面53は、端末装置2の表示装置に表示される。画面53は、図7に示したボタン52bがクリックされ、学習モデルが生成されると端末装置2の表示装置に表示される。
ユーザは、画面53において、端末装置2が生成した学習モデルにファイル名を付与できる。図8の例では、ファイル名は、「車.model」となっている。ユーザは、学習モデルにファイル名を付与すると、ボタン53aをクリックする。端末装置2は、ボタン53aがクリックされると、生成した学習モデルを記憶部46に記憶する。
端末装置2は、ユーザの操作に応じて、記憶部46に記憶した学習モデルを監視カメラ1に送信(設定)する。
図9は、学習モデルの設定の一例を説明する図である。図6〜図8の画面例では、端末装置2の画面を、パーソナルコンピュータの画面を想定して説明したが、図9では、スマートフォンの画面を想定して説明する。図9の画面54は、学習モデルを生成するアプリケーションを起動すると表示される。
学習モデル54aは、端末装置2の記憶部46に記憶されている学習モデルのファイル名を示している。学習モデル54aは、画面54のアイコン54bがタップされると、端末装置2の表示装置に表示される。
ユーザは、監視カメラ1に設定したい学習モデルを選択する。例えば、ユーザは、学習モデル54aの左横に表示されているチェックボックスを選択して、監視カメラ1に設定する学習モデルを選択する。図9の例では、ユーザは、ファイル名「車.model」を選択している。
ユーザは、学習モデルを選択すると、ボタン54cをタップする。端末装置2は、ボタン54cがタップされると、ユーザが選択した学習モデルを監視カメラ1に送信する。監視カメラ1は、学習モデルを受信すると、受信した学習モデルに従ったニューラルネットワークを形成する。
図10は、端末装置2の学習モデル生成の動作例を示したフローチャートである。端末装置2の制御部41は、監視カメラ1の映像データを取得する(ステップS1)。映像データは、ライブデータであってもよいし、録画データであってもよい。端末装置2の制御部41は、監視カメラ1の映像を録画したレコーダから、監視カメラ1の映像データを取得してもよい。
なお、ユーザは、端末装置2を操作して、監視カメラ1の映像から、検知対象を含む映像を探し、検知対象を含む静止画像を作成する。
端末装置2の制御部41は、ユーザから、検知対象にマーキングする静止画像の選択を受付ける(ステップS2)。例えば、端末装置2の制御部41は、図6の画像一覧51aから、検知対象にマーキングする静止画像の選択を受付ける。
端末装置2の制御部41は、ユーザから、検知対象に対するマーキング操作を受付ける。例えば、端末装置2の制御部41は、図6に示した枠51c,51dによるマーキング操作を受付ける。端末装置2の制御部41は、ユーザがマーキングした静止画像を、記憶部46に記憶する(ステップS3)。
端末装置2の制御部41は、ユーザから、学習モデルの生成指示があったか否かを判定する(ステップS4)。例えば、端末装置2の制御部41は、図6のアイコン51eがクリックされたか否かを判定する。端末装置2の制御部41は、ユーザから、学習モデルの生成指示がないと判定した場合(S4の「No」)、処理をステップS2に移行する。
一方、端末装置2の制御部41は、ユーザから、学習モデルの生成指示があったと判定した場合(S4の「Yes」)、ユーザからラベリングの操作を受付ける(図7を参照)。そして、端末装置2の制御部41は、記憶部46に記憶した静止画像と、機械学習アルゴリズムとにより、学習モデルを生成する(ステップS5)。機械学習アルゴリズムは、例えば、ディープラーニングであってもよい。
端末装置2の制御部41は、ユーザの操作に応じて、生成した学習モデルを監視カメラ1に送信する(ステップS6)。
図11は、監視カメラ1の動作例を示したフローチャートである。監視カメラ1のAI処理部17は、監視カメラ1の起動に伴って、検知対象の検知動作を開始する(ステップS11)。例えば、監視カメラ1のAI処理部17は、端末装置2から送信された学習モデルに基づいたニューラルネットワークを形成し、検知対象の検知動作を開始する。
監視カメラ1の撮像素子12は、映像を1枚(1フレーム)撮像する(ステップS12)。
監視カメラ1の制御部14は、ステップS12にて撮像された映像をAI処理部17に入力する(ステップS13)。
監視カメラ1のAI処理部17は、ステップS13にて入力された映像に、検知対象が含まれるか否かを判定する(ステップS14)。
監視カメラ1の制御部14は、ステップS14にて、検知対象が含まれないと判定された場合(S14の「No」)、処理をステップS12に移行する。
一方、監視カメラ1の制御部14は、ステップS14にて、検知対象が含まれると判定された場合(S14の「Yes」)、発報条件を満たすか否かを判定する(ステップS15)。
発報条件には、例えば、駐車場の自動車の駐車の検知がある。例えば、監視カメラ1の制御部14は、AI処理部17にて自動車が検知されると、発報条件を満たしたと判定してもよい。
また、発報条件には、例えば、害獣である猪の検知がある。例えば、監視カメラ1の制御部14は、AI処理部17にて猪が検知されると、発報条件を満たしたと判定してもよい。
また、発報条件には、例えば、来訪者の人数等がある。例えば、監視カメラ1の制御部14は、AI処理部17にて検知された人の数をカウントし、カウントした人数が予め設定された人数に達すると、発報条件を満たしたと判定してもよい。
また、発報条件には、例えば、特定の人物の検知がある。例えば、監視カメラ1の制御部14は、AI処理部17にて特定の人物(特定の人物の顔)が検知されると、発報条件を満たしたと判定してもよい。
また、発報条件には、例えば、花の開花の検知がある。例えば、監視カメラ1の制御部14は、AI処理部17にて花の開花が検知されると、発報条件を満たしたと判定してもよい。
監視カメラ1の制御部14は、ステップS15にて、発報条件を満たさないと判定した場合(S15の「No」)、処理をステップS12に移行する。
一方、監視カメラ1の制御部14は、ステップS15にて、発報条件を満たすと判定した場合(S15の「Yes」)、発報装置3を用いて、例えば、音等を発報する(ステップS16)。
以上説明したように、監視カメラ1の通信部18は、検知対象に関連する学習モデルを端末装置2から受信する。監視カメラ1のAI処理部17は、通信部18が受信した学習モデルに基づいてAIを構築し、構築したAIを用いて、撮像素子12が撮影する映像から、検知対象を検知する。これにより、ユーザは、監視カメラ1に対し、検知したい検知対象をフレキシブルに設定できる。
また、学習モデルは、構造物A1に設置された監視カメラ1が撮影した映像を用いて生成される。これにより、監視カメラ1は、監視カメラ1で撮影した映像から学習して生成された学習モデルに基づいてAIを構築するので、検知対象の精度のよい検知が可能となる。
(変形例)
監視カメラ1の制御部14は、検知結果を外部記憶媒体I/F部22に挿入された外部記憶媒体14に記憶してもよい。監視カメラ1の制御部14は、検知結果をUSBI/F部21に挿入されたUSBメモリに記憶してもよい。監視カメラ1の制御部14は、検知結果を記憶部15に記憶し、記憶部15に記憶した検知結果を、外部記憶媒体I/F部22に挿入された外部記憶媒体31またはUSBI/F部21に挿入されたUSBメモリに転送してもよい。端末装置2の制御部41は、外部記憶部媒体またはUSBメモリに記憶された検知結果を、I/F部45を介して取得し、取得した検知結果の統計を取り、統計結果を解析してもよい。端末装置2の制御部41は、解析結果を学習モデルの作成に用いてもよい。
また、監視カメラ1の制御部14は、通信部18を介して、検知結果端末装置2に送信してもよい。端末装置2の制御部41は、監視カメラ1から送信された検知結果の統計を取り、統計結果を解析してもよい。端末装置2の制御部41は、解析結果を学習モデルの作成に用いてもよい。
(第2の実施の形態)
第1の実施の形態では、端末装置2において、学習モデルを生成した。第2の実施の形態では、インターネット等の公衆ネットワークに接続されたサーバに学習モデルが記憶されている場合について説明する。
図12は、第2の実施の形態に係る監視カメラシステムの一例を示した図である。図12において、図1と同じものには同じ符号が付してある。以下では、第1の実施の形態と異なる部分について説明する。
図12の監視カメラシステムは、図1の監視カメラシステムに対し、サーバ61を有する。サーバ61は、例えば、図4に示したブロック構成と同様のブロック構成を有してもよい。ただし、サーバ61の通信部は、例えば、有線によってネットワーク62に接続される。サーバ61は、情報処理装置と称されてもよい。
ネットワーク62は、例えば、インターネット等の公衆ネットワークである。サーバ61は、例えば、ネットワーク62を介して、端末装置2と通信する。端末装置2の通信部44は、例えば、有線によってネットワーク62に接続されてもよいし、例えば、携帯電話等の無線通信ネットワークを介して、ネットワーク62に接続されてもよい。
サーバ61は、学習モデルを生成するアプリケーションを実装している。サーバ61は、監視カメラ1の映像から、学習モデルを生成し、記憶部に記憶する。
サーバ61は、例えば、監視カメラ1を製造する製造メーカによって管理されてもよい。例えば、監視カメラ1の製造メーカは、監視カメラ1を購入した購入者から、映像データの提供を受ける。監視カメラ1の製造メーカは、サーバ61を用いて、監視カメラ1の購入者から提供された映像データから、学習モデルを生成する。監視カメラ1の購入者は、監視カメラ1を用いて、様々な検知対象を撮影すると考えられ、監視カメラ1の製造メーカは、様々な検知対象を撮影した映像データから、様々な種類の学習モデルを生成できる。また、監視カメラ1の製造メーカは、多くの映像データから学習モデルを生成でき、検出精度のよい学習モデルを生成できる。
また、サーバ61は、例えば、監視カメラ1を構造物A1に設置する施工業者によって管理されてもよい。監視カメラ1の施工業者は、製造メーカと同様に、監視カメラ1の購入者から映像データの提供を受ける。監視カメラ1の施工業者は、様々な検知対象を撮影した映像データから、様々な種類の学習モデルを生成できる。また、監視カメラ1の施工業者は、多くの映像データから学習モデルを生成でき、検出精度のよい学習モデルを生成できる。
監視カメラ1の施工業者は、例えば、特定の検知対象の検知を専門として、監視カメラ1を構造物A1に設置してもよい。例えば、監視カメラ1の施工業者は、害獣検知を専門として、監視カメラ1を構造物A1に設置してもよい。この場合、監視カメラ1の施工業者は、監視カメラ1の購入者から、害獣に関する映像データの提供を受けるため、害獣検知に特化した学習モデルを生成できる。
端末装置2は、ユーザU1の操作に応じて、サーバ61にアクセスし、サーバ61から学習モデルを受信する。端末装置2は、サーバ61から受信した学習モデルを、例えば、Wi−Fiまたはブルートゥース等の近距離無線通信を介して、監視カメラ1に送信する。また、端末装置2は、サーバ61から受信した学習モデルを、例えば、ネットワークケーブルを介して、監視カメラ1に送信してもよい。
また、端末装置2は、ユーザU1の操作に応じて、サーバ61から受信した学習モデルを、I/F部45を介して、外部記憶媒体31に記憶してもよい。ユーザU1は、外部記憶媒体31を監視カメラ1の外部記憶媒体I/F部22に挿入し、外部記憶媒体31に記憶された学習モデルを、監視カメラ1に設定してもよい。
図13は、サーバ61における学習モデルの選択の一例を説明する図である。図13の画面71は、端末装置2の表示装置に表示される。画面71は、学習モデルを生成するアプリケーションを起動すると表示される。
画面71の学習モデル71aは、サーバ61に記憶されている学習モデルの名称を示している。学習モデル71aは、画面71のアイコン71bがタップされると、端末装置2の表示装置に表示される。
ユーザは、監視カメラ1に設定したい学習モデルを選択する。例えば、ユーザは、学習モデル71aの左横に表示されているチェックボックスを選択して、監視カメラ1に設定する学習モデルを選択する。図13の例では、ユーザは、学習モデル名「犬」を選択している。
ユーザは、学習モデルを選択すると、ボタン71cをタップする。端末装置2は、ボタン71cがタップされると、ユーザが選択した学習モデルをサーバ61から受信し、受信した学習モデルを監視カメラ1に送信する。監視カメラ1は、学習モデルを受信すると、受信した学習モデルに基づいたニューラルネットワークを形成する。
図14は、端末装置2における学習モデルの監視カメラ1への設定動作例を示したフローチャートである。
端末装置2の制御部41は、ユーザの操作に応じて、学習モデルを監視カメラ1に設定するアプリケーションを起動する(ステップS21)。
端末装置2の制御部41は、ユーザの操作に応じて、学習モデルを設定する監視カメラ1に接続する(ステップS22)。
端末装置2の制御部41は、ユーザの操作に応じて、ネットワーク62に接続されたサーバ61に接続する(ステップS23)。
端末装置2の制御部41は、サーバ61に記憶されている学習モデルのうち、ステップS22にて接続した監視カメラ1に対応する学習モデルの名称を、表示装置に表示する(ステップS24)。例えば、端末装置2の制御部41は、図13の学習モデル71aに示すように、学習モデルの名称を、表示装置に表示する。
なお、サーバ61には、様々なタイプの監視カメラに対応した学習モデルが記憶されている。端末装置2の制御部41は、様々なタイプの監視カメラに対応した学習モデルのうち、ステップS22に接続した監視カメラ1に対応する学習モデルの名称を、表示装置に表示する。
端末装置2の制御部41は、ユーザから、監視カメラ1に設定する学習モデルを受付ける(ステップS25)。例えば、端末装置2の制御部41は、図13の学習モデル71aの左横に表示されているチェックボックスにより、監視カメラ1に設定する学習モデルを受付ける。
端末装置2の制御部41は、ステップS25にて受け付けた学習モデルをサーバ61から受信し、受信した学習モデルを監視カメラ1に送信する(ステップS26)。
以上説明したように、サーバ61は、様々な監視カメラの映像データから、学習データを生成し、記憶してもよい。端末装置2は、サーバ61に記憶された学習データを取得し、監視カメラ1に設定してもよい。これにより、監視カメラ1は、様々な種類の学習モデルに基づいたAIを構築できる。
(変形例)
上記では、端末装置2の制御部41は、サーバ61から受信した学習モデルを、近距離無線通信、外部記憶媒体31、またはネットワークケーブルを介して監視カメラ1に送信したがこれに限られない。端末装置2の制御部41は、ネットワーク62を介して、サーバ61から受信した学習モデルを監視カメラ1に送信してもよい。
図15は、監視カメラシステムの変形例を示した図である。図15において、図12と同じものには同じ符号が付してある。
図15では、監視カメラ1の通信部18は、ネットワーク62に接続されている。監視カメラ1の通信部18は、例えば、ネットワークケーブル等の有線を介してネットワーク62に接続されてもよいし、例えば、携帯電話等の無線通信ネットワークを介してネットワーク62に接続されてもよい。
端末装置2の制御部41は、図15の矢印B1に示すように、ネットワーク62を介して、サーバ61から学習モデルを受信する。端末装置2の制御部41は、図15の矢印B2に示すように、ネットワーク62を介して、サーバ61から受信した学習モデルを監視カメラ1に送信する。
このように、端末装置2の制御部41は、サーバ61から受信した学習モデルを、ネットワーク62を介して、監視カメラ1に送信してもよい。
なお、端末装置2の制御部41は、サーバ61に対し、学習モデルを監視カメラ1に送信するよう指示してもよい。すなわち、監視カメラ1は、端末装置2を経由せずに、サーバ61から学習データを受信してもよい。
(第3の実施の形態)
第3の実施の形態では、監視カメラ1は、発報条件を満足すると、予め設定されたアドレスにメールを送信する。すなわち、監視カメラ1は、発報条件を満足すると、ユーザにメールで発報条件を満たしたことを通知する。
図16は、第3の実施の形態に係る監視カメラシステムの一例を示した図である。図16において、図15と同じものには同じ符号が付してある。
図16では、メールサーバ81が示してある。メールサーバ81は、ネットワーク62に接続されている。
監視カメラ1の制御部14は、発報条件を満足すると、矢印A11に示すように、端末装置2宛のメールをメールサーバ81に送信する。メールには、発報条件を満たしたことを示す内容と、監視カメラ1が検知した検知対象の画像とが含まれてもよい。
メールサーバ81は、監視カメラ1からメールを受信したことを端末装置2に通知する。メールサーバ81は、メールの受信通知を受信した端末装置2からの要求に応じて、監視カメラ1から送信されたメールを、矢印A12に示すように、端末装置2に送信する。
なお、監視カメラ1は、端末装置2によって、メールの送信先アドレスが設定されてもよい。メールの送信先アドレスは、端末装置2以外の端末装置のアドレスが設定されてもよい。例えば、メールの送信先アドレスは、ユーザU1が使用する端末装置2以外の端末装置のアドレスが設定されてもよい。また、メールの送信先アドレスは、複数であってもよい。
このように、監視カメラ1は、発報条件を満足すると、メールによって、発報条件を満たしたことをユーザに通知してもよい。これにより、ユーザは、例えば、監視カメラ1によって、検知対象が検知されたことを認識できる。
(第4の実施の形態)
上記の各実施の形態では、1台の監視カメラ1に学習モデルを設定する例について説明した。第4の実施の形態では、複数台の監視カメラに学習モデルを設定する例について説明する。
図17は、第4の実施の形態に係る監視カメラシステムの一例を示した図である。図17に示すように、監視カメラシステムは、監視カメラ91a〜91dと、端末装置92と、レコーダ93と、メールサーバ94と、を有している。監視カメラ91a〜91d、端末装置92、レコーダ93、およびメールサーバ94はそれぞれ、LAN(Local Area Network)95に接続されている。
監視カメラ91a〜91dは、図3に示した監視カメラ1の機能ブロックと同様の機能ブロックを有している。端末装置92は、図4に示した端末装置2と同様の機能ブロックを有している。監視カメラ91a〜91dには、同じ学習モデルが設定されてもよいし、異なる学習モデルが設定されてもよい。
レコーダ93は、監視カメラ91a〜91dの映像データを記憶する。端末装置92は、監視カメラ91a〜91dのライブ映像データから、監視カメラ91a〜91dの学習モデルを生成してもよい。また、端末装置92は、レコーダ93に記憶された監視カメラ91a〜91dの録画映像データから、監視カメラ91a〜91dの学習モデルを生成してもよい。端末装置92は、生成した学習モデルを、LAN95を介して、監視カメラ91a〜91dに送信する。
監視カメラ91a〜91dは、発報条件を満足すると、端末装置92宛のメールをメールサーバ94に送信する。メールサーバ94は、端末装置2からの要求に応じて、監視カメラ1から送信されたメールを、端末装置2に送信する。
このように、複数の監視カメラ91a〜91d、端末装置92、およびメールサーバ94は、LAN95によって接続されてもよい。そして、端末装置92は、複数の監視カメラ91a〜91dの学習モデルを生成し、監視カメラ91a〜91dに送信(設定)してもよい。これにより、ユーザは、複数の監視カメラ91a〜91dによって、検知対象を検知できる。
なお、監視カメラ91a〜91dの各AI(AI演算エンジン)は、監視カメラ91a〜91dの各々において、タイプが異なる場合がある。この場合、端末装置92は、監視カメラ91a〜91dの各々におけるAIのタイプに合った学習モデルを生成する。
(変形例)
上記では、端末装置92が学習モデルを生成したが、インターネット等の公衆ネットワークに接続されたサーバに学習モデルが記憶されていてもよい。
図18は、監視カメラシステムの変形例を示した図である。図18において、図17と同じものには同じ符号が付してある。図18の監視カメラシステムは、サーバ101を有している。サーバ101は、例えば、インターネット等の公衆ネットワークであるネットワーク103と、ゲートウェイ102と、を介してLAN95に接続されている。
サーバ101は、図12で説明したサーバ61と同様の機能を有している。サーバ101は、監視カメラ91a〜91d以外の様々な監視カメラの映像データに基づいて学習モデルを生成し、記憶している。端末装置92は、サーバ101にアクセスして、サーバ101に記憶された学習データを取得し、監視カメラ91a〜91dに設定してもよい。
(第5の実施の形態)
第5の実施の形態では、監視カメラ1が複数の学習モデルを記憶する。そして、監視カメラ1は、端末装置2の指示に応じて、複数の学習モデルのうちの1つを選択し、選択した学習モデルに基づいて、検知対象を検知する。以下では、第1の実施の形態と異なる部分について説明する。
図19は、第5の実施の形態に係る監視カメラ1の動作例を示したフローチャートである。監視カメラ1の学習モデル記憶部17cには、複数の学習モデルが記憶されている。
監視カメラ1は、例えば、電源投入により起動する(ステップS31)。
監視カメラ1のAI処理部17は、学習モデル記憶部17cに記憶されている複数の学習モデルのうちの1つの学習モデルを、AI演算エンジン17aにセットする(ステップS32)。
なお、監視カメラ1のAI処理部17は、例えば、学習モデル記憶部17cに記憶されている複数の学習モデルのうち、前回の起動時にセットしていた学習モデルをAI演算エンジン17aにセットしてもよい。また、監視カメラ1のAI処理部17は、例えば、学習モデル記憶部17cに記憶されている複数の学習モデルのうち、端末装置2によって初期設定された学習モデルをAI演算エンジン17aにセットしてもよい。
監視カメラ1のAI処理部17は、端末装置2から、学習モデルの切替えの指示があったか否かを判定する(ステップS33)。
監視カメラ1のAI処理部17は、学習モデルの切替えの指示があったと判定した場合(S33の「Yes」)、学習モデル記憶部17cに記憶されている複数の学習モデルのうち、端末装置2から指示された学習モデルを、AI演算エンジン17aにセットする(ステップS34)。
AI演算エンジン17aは、セットされた学習モデルにより(セットされた学習モデルに従ってニューラルネットを形成し)、映像データの映像から検知対象を検知する(ステップS35)。
なお、監視カメラ1のAI演算エンジン17aは、ステップS33において、学習モデルの切替えの指示がないと判定された場合(S33の「No」)、学習モデルを切替えず、すでにセットされている学習モデルにより、映像データの映像から検知対象を検知する(ステップS35)。
図20は、学習モデルの切替えによる検知対象の検知例を説明する図である。監視カメラ1の学習モデル記憶部17cには、学習モデルAと、学習モデルBと、学習モデルCと、が記憶されているとする。学習モデルAは、映像処理部13から出力される映像から、人を検知する学習モデルである。学習モデルBは、映像処理部13から出力される映像から、犬を検知する学習モデルである。学習モデルCは、映像処理部13から出力される映像から、猪を検知する学習モデルである。
AI処理部17は、端末装置2から、学習モデルAの使用を指示する通知を受信する。AI処理部17は、端末装置2からの指示に応じて、学習モデル記憶部17cに記憶されている学習モデルAをAI演算エンジン17aに設定する。これにより、AI演算エンジン17aは、例えば、図20の「学習モデルA使用時」に示すように、映像処理部13から出力される映像から、人を検知する。
AI処理部17は、端末装置2から、学習モデルBの使用を指示する通知を受信する。AI処理部17は、端末装置2からの指示に応じて、学習モデル記憶部17cに記憶されている学習モデルBをAI演算エンジン17aに設定する。これにより、AI演算エンジン17aは、例えば、図20の「学習モデルB使用時」に示すように、映像処理部13から出力される映像から、犬を検知する。
AI処理部17は、端末装置2から、学習モデルCの使用を指示する通知を受信する。AI処理部17は、端末装置2からの指示に応じて、学習モデル記憶部17cに記憶されている学習モデルCをAI演算エンジン17aに設定する。これにより、AI演算エンジン17aは、例えば、図20の「学習モデルC使用時」に示すように、映像処理部13から出力される映像から、猪を検知する。
AI処理部17は、端末装置2から、学習モデルA,B,Cの使用を指示する通知を受信する。AI処理部17は、端末装置2からの指示に応じて、学習モデル記憶部17cに記憶されている学習モデルA,B,CをAI演算エンジン17aに設定する。これにより、AI演算エンジン17aは、例えば、図20の「学習モデルA+学習モデルB+学習モデルC使用時」に示すように、映像処理部13から出力される映像から、人、犬、猪を検知する。
図21は、学習モデルの設定の一例を説明する図である。図21において、図9と同じものには同じ符号が付してある。
ユーザは、監視カメラ1に送信したい学習モデルを選択する。例えば、ユーザは、学習モデル54aの左横に表示されているチェックボックスを選択して、監視カメラ1に設定する学習モデルを選択する。図21の例では、ユーザは、3つの学習モデルを選択している。
ユーザは、3つの学習モデルを選択すると、ボタン54cをタップする。端末装置2は、ボタン54cがタップされると、ユーザが選択した3つの学習モデルを監視カメラ1に送信する。監視カメラ1は、3つの学習モデルを受信すると、受信した3つの学習モデルを学習モデル記憶部17cに記憶する。
ユーザは、3つの学習モデルを監視カメラ1に送信した後、AI演算エンジン17aに設定する学習モデルを監視カメラ1に対し指示する。監視カメラ1のAI処理部17は、学習モデル記憶部17cに記憶されている3つの学習モデルのうち、端末装置2から指示された学習モデルをAI演算エンジン17aに設定する。
なお、端末装置2は、ユーザの操作に応じて、学習モデル記憶部17cに記憶される学習モデルを追加、変更、または更新できる。また、端末装置2は、ユーザの操作に応じて、学習モデル記憶部17cに記憶される学習モデルを削除できる。
このように、監視カメラ1は、複数の学習モデルを記憶してもよい。そして、監視カメラ1は、端末装置2の指示に応じて、複数の学習モデルのうちの1つを選択し、選択した学習モデルに基づいたAIを形成してもよい。これにより、ユーザは、監視カメラ1の検知対象を容易に変更できる。
上記の実施の形態の説明に用いた各機能ブロックは、典型的には集積回路であるLSIとして実現される。これらは個別に1チップ化されてもよいし、一部または全てを含むように1チップ化されてもよい。ここでは、LSIとしたが、集積度の違いにより、IC、システムLSI、スーパーLSI、ウルトラLSIと呼称されることもある。
また、集積回路化の手法はLSIに限るものではなく、専用回路または汎用プロセッサで実現してもよい。LSI製造後に、プログラムすることが可能なFPGA(Field Programmable Gate Array)、又は、LSI内部の回路セルの接続や設定を再構成可能なリコンフィギュラブル・プロセッサを利用してもよい。
さらには、半導体技術の進歩または派生する別技術によりLSIに置き換わる集積回路化の技術が登場すれば、当然、その技術を用いて機能ブロックの集積化を行ってもよい。バイオ技術の適用等が可能性としてありえる。また、各実施の形態は組み合わされてもよい。