【実施例1】
【0017】
(ハードウエア構成)
図1は、本実施例の画像解析通信装置のハードウエア構成図である。
画像解析通信装置1001は、CPU(Central Processing Unit)1002、メモリ1003、ストレージ1004、カメラインタフェース1005、イメージセンサ1006、通信インタフェース1007、機器インタフェース1008、表示装置1009そしてこれらを直接または間接的に接続するデータバス1010というハードウエアをそれぞれ少なくとも1つ含んでいる。
【0018】
CPU1002は、メモリ1003やストレージ1004に格納されたプログラムを実行し、他のデバイスと協働して、後で示す画像解析通信装置の機能を実現する。
【0019】
メモリ1003は、後で示すプログラムを格納したり、これらプログラムに係るデータを格納したりすることが可能なCPUの作業領域であり、RAM(Random Access Memory)が採用される。
【0020】
ストレージ1004は、通信プログラムを含む少なくとも1つのシステムプログラムとシステム制御に係るデータを格納するシステムプログラム領域1011、少なくとも1つの画像ブロッキングプログラムと画像ブロッキングに係るルール等を格納する画像ブロッキングプログラム領域1012、そして少なくとも1つの認識プログラムと認識モデルデータ等を格納する認識プログラム領域1013を備えている。
【0021】
本発明に係るプログラムやデータの格納方式は、ここで例示したストレージへの格納に限定されるものではなく、例えば、ROM(Read Only Memory)に格納する方式、特にストレージを設けずメモリに格納する方式などが、本発明の趣旨に沿ったものであれば適宜採用されうる。
【0022】
イメージセンサ1006は、例えば、USB接続可能なWebカメラ、ネットワーク接続可能なネットワークカメラ、デジタルカメラで利用されるイメージセンサ等でよい。また、赤外線センサやレーザーセンサなどの特殊なセンサを用いてもよい。画像解析通信装置1001を設置する場所や画像取得する対象に応じて、イメージセンサのタイプが適宜選択されうる。
カメラインタフェース1005として、イメージセンサとして選択した機器の接続可能なインタフェースが適宜採用される。
イメージセンサ1006としてネットワークカメラを採用した場合、このネットワークカメラは画像解析通信装置が接続するネットワークと同一ネットワーク上にあればよい。
【0023】
通信インタフェース1007は、所定の通信プロトコルをサポートし、CPU1002によって実行された通信プログラムと協働して、画像解析通信装置1001を外部ネットワーク1000に通信接続させる。
ここで、上記通信プロトコルとして、例えばTCP/IPが採用されうる。
【0024】
表示装置1009は、例えば、LED(light emitting diode)ライトでよいし、「画像ブロッキング動作中」等の画面表示する液晶ディスプレイでもよい。また、「画像ブロッキング動作中」であることを示す音声を出力する音声発声装置であってもよい。
【0025】
(論理構成)
図2は、本実施例の画像解析通信装置の論理構成図である。
画像解析通信装置1001の主要な論理構成要素は、通信インタフェースモジュール2001、ユーザインタフェース2002、システム制御モジュール2003、画像ブロッキングバーチャルマシン(以下、画像ブロッキングVMという。)2004、画像ブロッキングVMをリソースとするAPIエンドポイント2005、認識バーチャルマシン(以下、認識VMという。)2006、画像取得モジュール2008、表示モジュール2009である。
【0026】
通信インタフェースモジュール2001は、CPU1002がシステムプログラム領域1011に格納された通信プログラムを実行し、通信インタフェース1007と協働することにより実現された仮想ルーター2010と仮想スイッチ2011から構成される。
仮想ルーター2010は、所定の通信プロトコルによる通信により外部ネットワークとの接続をサポートする。ここで、所定の通信プロトコルとして、例えばTCP/IPが採用されうる。
仮想スイッチ2011は、所定の通信プロトコルによる通信により内部ネットワークをサポートする。ここで、所定の通信プロトコルとして、例えばTCP/IPが採用されうる。
【0027】
ユーザインタフェース2002は、CPU1002がシステムプログラム領域1011に格納されたシステムプログラムを実行することにより、外部ネットワーク1000上のノードからアクセスしてくるユーザシステムあるいはユーザ端末に対して、本画像解析通信装置のシステム制御モジュール2003に係る設定画面を提供する。
【0028】
(画像ブロッキングバーチャルマシン)
画像ブロッキングVM2004は、CPU1002が画像ブロッキングプログラム領域1012に格納された画像ブロッキングプログラムを実行することにより実現された仮想フィルタリング回路である。
この仮想フィルタリング回路は、認識VMの認識によって生成された認識結果データを画像データと分離して受信し、通信インタフェースモジュールに送信するフィルタリング・プロセスを実行する。
【0029】
また、画像ブロッキングVM2004は、所定の認識対象を認識した認識VMからの呼出に対して、認識により画像データから分離された認識結果データのみを通信インタフェースモジュールに送信する画像ブロッキング機能を提供するAPIとして構成される。
ここでは、認識VMの画像認識をトリガとする呼出で機能する方式を採用したが、本願発明の画像ブロッキング機能呼出のトリガはこれに限定されるものではない。例えば、外部ネットワーク1000からの呼出に応じて、認識VMから認識データのみを分離して受信し、通信インタフェースモジュールに送信する方式などが適宜採用されうる。
【0030】
APIエンドポイント2005は、内部ネットワークの認識VMあるいは外部ネットワーク上のノードからのAPI呼出の宛先であり、上記フィルタリング・プロセスにより認識結果データを出力するゲートウェイとなる。画像ブロッキングVMから通信インタフェースモジュール2001へのデータ伝送は、仮想スイッチ2011にサポートされた内部ネットワークを経由して伝送される。説明の便宜のために、この内部ネットワークにより形成される伝送路2016を第1の伝送路と呼ぶこととする。
【0031】
ここで提供されるAPIは、引数を限定した呼出に応じて、認識結果データで構成されたレスポンスデータを通信インタフェースモジュールに送信するストリクトAPIとして提供されている。
このAPIの規定により、レスポンスデータのデータフォーマット及びデータ構造が定められており、外部のユーザ等は勿論のこと、内部関係者がAPIの規定に含まれないデータをレスポンスデータに含ませることもブロッキングされている。
内部関係者が画像解析通信装置内に不正のプログラム等を入れても、APIがブロッキングポイントとなって、画像データが漏洩されることを防ぐ効果がある。
また、引数を限定したAPIは、引数に悪意のコマンドを注入するなどの外部からの攻撃により画像ブロッキング機能が無効化される危険も未然に防ぐ効果を有する。
【0032】
また、上記フィルタリング回路には、表示装置ドライバー2010がバーチャルに備えられており、フィルタリング・プロセスの動作中において、表示モジュール2009に表示命令を送信される。
【0033】
(認識バーチャルマシン)
認識VM2006は、CPU1002が認識プログラム領域1013に格納された認識プログラムを実行することによりエミュレートされた仮想プロセッサ2011、認識命令セット2014及び認識モデルデータ2015を記憶した第2の仮想メモリ2012そしてカメラドライバー2013により動作する。
ここで、認識VM2006は、CPU1002によって実行中のプロセスであるが、他のプログラム領域のプログラムのプロセスとは、論理的に分離独立して存在するバーチャルマシンである。
【0034】
認識VMと画像ブロッキングVMとの間は、プロセス間通信によって接続している。この接続によるデータ伝送路2007を第2の伝送路と呼ぶこととする。
先に説明した第1の伝送路2016と第2の伝送路2007とにより、通信インタフェースモジュールから認識VMへの伝送路が形成されている。そして、第1の伝送路と第2の伝送路の間に画像ブロッキングVMが存在し、2つの伝送路が分離されている。
ここで、プロセス間通信の方式として、例えば、プロセスとしての画像ブロッキングVMと認識VMとのそれぞれに専用のメモリ空間を割り当てる方式が採用されうる。それぞれのバーチャルマシンに係るメモリが分離されるので、バーチャルマシン同士の分離独立性が強くなる。
上記プロセス間通信に代えて、TCP/IP等のプロトコルによるネットワーク通信によって、第2の伝送路2007が構成されるとしてもよい。
【0035】
仮想プロセッサ2011は、認識命令セット2014を実行することにより、認識モデル2015を使って、画像取得モジュール2008から受信した画像データを解析し、その画像データに含まれる対象を認識する。
【0036】
ここで認識モデル2015は、予め設定した認識対象を深層学習させた多層ニューラルネットワークから構成される。この多層ニューラルネットは、認識命令セットの実行による認識プロセスにおいて、認識プロセスから画像データの入力を受けて画像データに含まれる認識対象に係る特徴を解析し、さらに解析結果を判断して認識対象に対する認識結果データを生成し、画像データのメタデータとして、認識プロセスに出力する。
ここで認識として、例えば、認識対象を人や動物として個体数を認識する生体数認識、認識対象を顔や生体部位として個人認証等をする個人認識、認識対象を動作として認識する動作検知など様々なタイプの認識が採用されうる。画像データの認識結果データの構成は、画像解析通信装置を適用する目的に応じて、適宜変更されうる。
【0037】
(画像取得モジュール)
画像取得モジュール2008は、イメージセンサ1006とカメラインタフェース1005から構成され、所定の撮影エリアの画像データを取得し、カメラドライバー2013を介して、画像認識VM2006に送信する。
【0038】
(表示モジュール)
表示モジュール2009は、表示装置1009と機器インタフェース1008から構成され、表示装置ドライバー2010を介して、画像ブロッキングVM2004からの表示命令を受信して、所定の表示動作を実行する。
【0039】
(機能構成)
図3は、本実施例の画像解析通信装置の画像処理に係る機能構成を示したブロック図である。
画像解析通信装置1001は、通信ユニット3001、第1の伝送路3002、画像ブロッキングユニット3003、第2の伝送路3004、認識ユニット3005、撮影ユニット3006そして表示ユニット3007という機能ブロックから構成される。
【0040】
通信ユニット3001は、通信インタフェースモジュール2001とユーザインタフェース2002から構成され、装置外部の外部ネットワーク1000との通信接続を実行し、さらにシステム制御のためのユーザインタフェース機能を提供する。
【0041】
第1の伝送路3002は、先の論理構成の説明で示した通り、通信インタフェースモジュール2001を構成する仮想スイッチ2011にサポートされた、APIエンドポイント2005と仮想スイッチ2011とを結ぶ内部ネットワークの通信で構成される。API呼出を受けて、通信ユニット3001に対して認識結果データを出力する伝送路となる。
通信ユニット側から見ると、画像ブロッキングユニットはAPIとして構成されており、画像ブロッキングユニット内のプロセスは、通信ユニットと分離されている。
【0042】
画像ブロッキングユニット3003は、画像ブロッキングVM2004によって構成され、フィルタリング・プロセスにより画像データから分離された認識結果データのみを認識ユニット3005から受信して通信ユニット3001に伝送する。
フィルタリング・プロセスの実行時において、画像ブロッキングユニット3003は、表示ユニット3007に表示命令を送信する。
本実施例では、画像ブロッキングユニットとして画像ブロッキングVMによる構成が採用されているが、本発明の画像ブロッキングユニットの構成は適宜変更されうる。本発明の画像ブロッキングユニットとして、物理的に構成されたフィルタリング回路等が適宜採用されうる。
【0043】
第2の伝送路3004は、プロセス間通信によって構成される論理的伝送路であり、先の論理構成の説明で示した通りである。認識ユニット3005と画像ブロッキングユニット3003との間のデータ伝送路となる。
また、プロセス間通信に代えて、ネットワーク通信によって第2の伝送路が構成されるとしてもよい。
【0044】
認識ユニット3005は、認識VM2006によって構成される。認識VMによって、撮影ユニット3006が取得した画像データが解析され、所定の認識対象が認識される。認識結果は、APIとして提供された画像ブロッキングユニット3003の機能によってフィルタリングされて、認識結果データのみが通信ユニット3001に送信される。
認識結果データの送信は、認識VM自身よる認識をトリガとする呼出又は外部ネットワークからの呼出をトリガに実行される。
本実施例では、認識ユニットとして認識VMによる構成を採用しているが、本発明の認識ユニットとして物理的プロセッサと物理的メモリによるリアルなコンピュータによる構成を採用するなど、本発明の認識ユニットの構成を適宜変更してもよい。
【0045】
撮影ユニット3006は、画像取得モジュール2008から構成され、予め設定したエリアの画像データを取得し、認識ユニット3005に送信する。
【0046】
表示ユニット3007は、表示モジュール2009から構成され、画像ブロッキングユニットからの表示命令に従って表示動作をする。
【0047】
(画像認識をトリガに認識結果を送信する構成の動作)
図4は、認識VMの画像認識をトリガに認識結果を送信する構成を採用した場合における画像解析通信装置の動作を示したフローチャートである。
画像解析通信装置の動作が開始されると、画像取得ステップ4001となり、認識ユニット3005は、撮影ユニット3006から、所定の間隔で画像データを取得する。
【0048】
解析・認識ステップ4002において、認識ユニット3005は、画像データを解析し、予め設定した認識対象が存在する場合、解析の結果を判断し、画像のメタデータとして認識結果データを生成し、画像データと分離する。
【0049】
認識対象の認識が無い場合、画像解析通信装置の動作は、画像取得ステップ4001に戻る。
認識が有る場合、その動作は、呼出ステップ4003に移る。
【0050】
呼出ステップ4003において、認識ユニット3005は、画像ブロッキングユニット3003に対してAPI呼出をする。
【0051】
画像ブロッキングステップ4004において、画像ブロッキングユニット3003は、認識ユニットにおけるデータから認識結果データのみを分離して、第1の伝送路3002を介し通信ユニット3001に認識結果データを出力する。
【0052】
送信ステップ4005において、通信ユニット3001は、外部ネットワーク1000における所定の送信先に認識結果データを送信する。
【0053】
以上のようなステップに従って、外部ネットワーク1000のユーザが認識結果データのみを取得するように、画像解析通信装置を動作させることができる。
【0054】
ここでは、認識結果データを送信するトリガを装置内部における認識とする構成を採用したが、本願発明の装置の構成として、外部からの呼出をトリガに認識結果を送信する構成も採用されうる。
【0055】
(外部からの呼出をトリガに認識結果を送信する構成の動作)
外部からの呼出をトリガとする場合、画像解析通信装置の動作が開始されると、画像解析通信装置を構成する各ユニットが起動して、外部ネットワークからのAPI呼出を受けられる状態になる。
【0056】
次に、通信ユニット3001がAPI呼出を受信すると、画像ブロッキングユニット3003は、認識ユニット3005に対して認識開始の依頼を送信する。
上記依頼を受信した認識ユニット3005は、撮影ユニット3006から、画像データを取得し、画像データを解析し、解析の結果を判断し、画像のメタデータとして認識結果データを生成し、画像データと分離する。
【0057】
次に、画像ブロッキングユニット3003は、分離された認識結果データのみを第2の伝送路3004を介し認識ユニット3005から受信し、API呼出の返信として認識結果データを通信ユニット3001に出力する。当該データを受けた通信ユニットは、呼出元に当該データを返信する。
【0058】
以上のように、外部ネットワーク1000のユーザが認識結果データのみを取得するように、画像解析通信装置を動作させることもできる。
【0059】
いずれの構成を採用しても、認識ユニットから通信ユニットへのデータ伝送という観点から見ると、認識結果データを送信する伝送路は画像ブロッキングユニット3003によって第1の伝送路3002と第2の伝送路3004とに分離されている。
ここで、撮影ユニットから認識ユニットに送信される画像データは、画像ブロッキングユニットによって認識ユニット側に閉じ込められている。つまり、撮影した画像データが画像ブロッキングユニットの内側に閉じ込められるサンドボックス効果を有する。
【実施例2】
【0060】
(出席管理システムへの適用)
実施例2は、出席管理向けに構成した画像解析通信装置を利用した出席管理システムの例である。
ここでは、実施例1で説明した画像解析通信装置の構成の一部が本システムの目的に沿って最適化され、変形されている。そうした最適化や変形を除く、実施例1と共通する部分については、以下の説明では省略される。
【0061】
図5は、本実施例の画像解析通信装置を適用した出席管理システムを示す模式図である。
会議室5000、会議室の入口5001、入室済みの会議メンバー5002、画像ブロッキング動作中は点灯するLEDライト5003を備えた画像解析通信装置5004、入室しようとする会議メンバー5005、外部ネットワーク5006、出席管理サーバ5007、出席管理者5008そして出席管理者の通信端末5009というシステム構成である。
【0062】
画像解析通信装置5004は、その撮影エリアが入口を入ろうとする人の顔が含まれるように設定されている。また、この画像解析通信装置は、実施例1で説明した画像認識をトリガに認識結果を送信する画像解析通信装置と同様の構成が採用されており、予め深層学習することにより会議メンバーの顔を認識するように作成された学習モデルが組み込まれており、画像データを取得し、画像データに含まれる顔領域から会議メンバーの個人認識をして、画像データのメタデータである認識結果として「認識された会議メンバー」の識別情報を出席管理サーバに送信する。
【0063】
図6は、画像解析通信装置5004に係る深層学習と認識モデルの組み込みの手順を示した模式図である。認識対象となる会議メンバー6001の画像をイメージセンサ6002により複数回取得し、多層ニューラルネットワークを格納するトレーニングコンピュータ6003に、会議メンバーの識別情報と取得画像をペアとした教師データとして読み込ませ、学習する。ここで認識の頑健さを担保するため会議メンバーとは異なる人や事物の画像に係るデータも教師データに含ませるなどの手法を採用してもよい。
【0064】
トレーニングコンピュータ6003における深層学習によって生成された認識モデル6004は、画像解析通信装置5004におけるストレージ6005の認識プログラム領域6006に記憶される。
【0065】
出席管理サーバ5007は、画像解析通信装置5004から送信された認識結果データに対応する会議メンバーの出欠情報を更新する。
出席管理者5008は、通信端末5009によって出席管理サーバ5007にアクセスし、会議メンバーの出欠情報を閲覧し、会議の現場である会議室に居なくても、遠隔で会議の出席状況を把握することができる。
【0066】
図7は、本実施例の出席管理システムの出席管理動作を示したフローチャートである。
画像取得ステップ7001において、画像解析通信装置5004によって、撮影エリアの画像が取得される。
解析・認識ステップ7002において、画像解析通信装置5004によって、取得された画像が解析され、その画像領域に会議メンバーが存在すれば、認識される。
【0067】
認識が無い場合、システムの動作は、画像取得ステップ7001に移り、所定の間隔で画像取得が繰り返される。
認識が有る場合、システムの動作は、認識結果送信ステップ7003に移る。
【0068】
認識結果送信ステップ7003において、画像解析通信装置5004によって、会議メンバーについての個人認識の結果が出席管理サーバ5007に送信される。このとき、LEDライト5003が点灯する。
出欠情報更新ステップ7004において、出席管理サーバ5007によって、出欠管理情報が更新される。
【0069】
以上のような動作フローにより、会議メンバーが認識される毎に出欠管理情報が更新される。出席管理者5008は、通信端末5009により出席管理サーバ5007にアクセスすることにより、最新の出席状況を把握して管理することができる。また、会議メンバーの方でも、出席管理のために取得された自身の画像データがブロッキングされて、個人データがガードされていることを表示ユニットであるLEDライト5003の点灯動作により確認することができる。
【実施例4】
【0076】
(スイッチシステム)
実施例4は、動作検知向けに構成した画像解析通信装置を利用したスイッチシステムの例である。
ここでは、実施例1で説明した画像解析通信装置の構成の一部が本システムの目的に沿って最適化され、変形されている。そうした最適化や変形を除く、実施例1と共通する部分については、以下の説明では省略される。
本実施例のシステムは、画像解析通信装置による認識結果データを部屋の設備をコントロールするスイッチ動作のトリガとして利用する。
【0077】
図10は、本実施例の画像解析通信装置を適用したスイッチシステムを示す模式図である。
室内10000、体の部位の所定の動作10002をするユーザ10001、画像ブロッキング動作中は点灯するLEDライト10003を備えた画像解析通信装置10004、外部ネットワーク10005、室内設備コントローラ10006、ブラインド10007、照明10008そして空調装置10009というシステム構成である。
ユーザ10001は、画像解析通信装置10004に向けて、所定の動作をしているところである。ここで画像解析通信装置10004は、動作中は常に画像撮影し、認識し、認識結果データを、外部ネットワーク10005を介して、室内設備コントローラ10006に送信するように設けられている。
【0078】
ブラインド10007は、例えば、電動式巻き上げ機能を備えたブラインドであり、外部ネットワーク10005を介して接続した室内設備コントローラ10006からの動作命令により動作する。照明機器10008も同様に室内設備コントローラからの命令により点灯/消灯動作する。さらに、正面の壁上部には、空調設備10009が備えられ、同様に室内設備コントローラからの命令により動作する。
【0079】
画像解析通信装置10004の機能を構成する第1の伝送路は、プロセス間通信によって構成されている。通信ユニットは、通信インタフェースモジュールを含むシステム制御バーチャルマシンとして構成され、画像ブロッキングユニットとは、プロセス間通信により内部通信する。
ここで、プロセス間通信に代えて、ネットワーク通信により内部通信が構成されるとしてもよい
認識ユニットにおける認識は手という生体部分についての動作検知であり、撮影ユニットに用いるイメージセンサとして、例えば、赤外線センサを採用してもよい。
赤外線センサを採用することにより、室内が暗い場合でもスイッチ機能を損なわれない効果がある。
ここでは手という人の部位の動作をスイッチシステムで利用する動作として採用しているが、本発明で採用可能な生体部位はこれに限定されるものではない。例えば、首の動作、足の動作あるいは頭の動作などが適宜採用されうる。
【0080】
画像解析通信装置10004は、室内のユーザの動作が撮影エリアに含まれるように設定されている。また、この画像解析通信装置は、実施例1で説明した画像認識をトリガに認識結果を送信する画像解析通信装置と同様の構成が採用されており、予め深層学習することにより所定の動作を認識するように作成された学習モデルが組み込まれており、動作中は常に画像データを取得し、画像データから動作検知をして、画像データのメタデータである認識結果として動作の識別情報を室内設備コントローラに送信する。
【0081】
図11は、画像解析通信装置10004に係る深層学習と認識モデルの組み込みの手順を示した模式図である。認識対象となる動作をする人11001の画像をイメージセンサ11002により複数回取得し、多層ニューラルネットワークを格納するトレーニングコンピュータ11003に、動作の識別情報と取得画像をペアとした教師データとして読み込ませ、学習する。ここで認識の頑健さを担保するため予め設定した動作とは異なる動作の画像に係るデータも教師データに含ませるなどの手法を採用してもよい。
【0082】
トレーニングコンピュータ11003における深層学習によって生成された認識モデル11004は、画像解析通信装置10004におけるストレージ11005の認識プログラム領域11006に記憶される。
【0083】
室内設備コントローラ10006は、画像解析通信装置10004による動作検知による動作の識別情報を受信し、動作の識別情報に対応する「室内設備の動作命令」を送信する。
ユーザ10001は、所定の動作によって室内設備の動作をコントロールすることができる。また、ユーザは、画像ブロッキング動作中は点灯するLEDライト10003によって、画像解析通信装置によって取得された画像データが装置外部に流出しないようにブロッキングしていることを確認することができるので、プライバシーが保護されているという安心感を得ることができる。
【0084】
以上のように装置の利用を図ることにより、会議出席管理システム、混雑管理システム、スイッチシステムあるいは人間の代わりに動物を検知対象とした同様のシステムにおける画像認識により利便性を図る一方で、個人情報等を含む画像データについての情報保護を強化することができる。