〔全体概略〕
以下、図面を用いて、本発明の一実施形態の全体の概略について説明する。本実施形態は、エッジコンピューティングを実現する通信システムを開示している。即ち、本実施形態は、サービス提供サーバ8での処理及び画像取得端末2での処理の協同により、画像取得端末2でサービス提供サーバ2から提供されるサービスを実現する発明を開示している。
〔実施形態の全体構成〕
図1は、本実施形態に係る通信システムの概略図である。図1に示されているように、本実施形態の通信システムは、実時間データ処理端末3、近端末データ処理装置5、分散データ処理端末6、集中データ処理サーバ7、サービス提供サーバ8、及び認証サーバ9a,9b,9cによって構築されている。なお、実時間データ処理端末3、近端末データ処理装置5、及び分散データ処理端末6によって、分散処理システム100が構築されている。
近端末データ処理装置5は、イントラネット200を介して分散データ処理端末6と通信可能に接続されている。分散データ処理端末6は、インターネット600を介して、集中データ処理サーバ7、サービス提供サーバ8、及び認証サーバ9a,9b,9cと通信可能に接続されている。なお、認証サーバ9は、認証サーバ9a,9b,9cの総称である。
これらのうち、実時間データ処理端末3は、撮像画像のデータを得るための実時間処理(リアルタイムの処理)を行なう端末である。実時間データ処理端末3には、CMOS(Complementary Metal Oxide Semiconductor)センサやCCD(Charge Coupled Device)センサなどの被写体を撮像する画像センサを備えた撮像ユニット40が着脱自在に接続される。これにより、実時間データ処理端末3は、撮像ユニット40から入力された撮像画像のデータ(以下、「撮像画像データ」という)をデジタル化し、実時間(たとえば1/60秒ごと)で物体(ここでは、顔)の画像を検出する。実時間データ処理端末3は、撮像画像のうちの物体部分の領域である部分画像のデータ(以下、「部分画像データ」という)を近端末データ処理装置5に送信する。
近端末データ処理装置5は、実時間データ処理端末3に最も近いところに配置され、例えばハードウェア的にも密接にデータバスやUSB(Universal Serial Bus)等で1対1に接続されている。近端末データ処理装置5は、実時間データ処理端末3から受信した部分画像データをJPEG(Joint Photographic Experts Group)などの汎用的なフォーマットに符号化した後、顔画像の照合が行なわれる場合の被照合データとして、イントラネット200を介して分散データ処理端末6に送信する。なお、通常、実時間データ処理端末3と近端末データ処理装置5は接続されて一体になっており、ここでは、実時間データ処理端末3と近端末データ処理装置5とで画像取得端末2を構成している。
分散データ処理端末6は、近端末データ処理装置5に比較的近い位置で利用者によって利用され、利用者の各種操作を受け付けることが可能なコンピュータである。分散データ処理端末6は、予め、顔画像の照合が行なわれる場合の照合データを登録して保存している。分散データ処理端末6は、インターネット600を介して、集中データ処理サーバ7に、照合データと被照合データとの照合を要求することができる。この場合、分散データ処理端末6は、近端末データ処理装置5から受信した被照合データ、及び予め登録している照合データも送信する。更に、分散データ処理端末6は、集中データ処理サーバ7から、照合結果を示す照合結果情報を応答として受信することができる。また、分散データ処理端末6は、グラフィックインターフェースを介して照合結果を表示させることができる。
集中データ処理サーバ7は、近端末データ処理装置5から比較的遠い位置に設置されており、分散データ処理端末6とはインターネット600等の通信ネットワークを介して通信することができる。集中データ処理サーバ7は、照合要求を示す照合要求情報並びに照合データ及び被照合データを受信した場合、照合データ及び被照合データの照合を行い、類似度を判断する。そして、集中データ処理サーバ7は、分散データ処理端末6に対して、類似度を含んだ照合結果を示す照合結果情報を送信する。
サービス提供サーバ8は、画像取得端末2に対して、各種サービスを提供するサーバである。
認証サーバ9aは、画像取得端末2がサービス提供システム8からサービスを受けられる正当な権限があるか否かを判断するためにIDの認証を行なう。認証サーバ9b,9cも同様である。
〔ハードウェア構成〕
次に、図2乃至図10を用いて、本実施形態の通信システムの各ハードウェア構成について説明する。
<実時間データ処理端末のハードウェア構成>
図2は、実時間データ処理端末のハードウェア構成図である。実時間データ処理端末3は、CPU301、ROM302、RAM303、EEPROM304、CMOSセンサ305、加速度・方位センサ306、メディアI/F308、GPS受信部309を備えている。
これらのうち、CPU301は、実時間データ処理端末3全体の動作を制御する。ROM302は、CPU301の駆動に用いられるプログラムを記憶する。RAM303は、CPU301のワークエリアとして使用される。EEPROM304は、CPU301の制御にしたがって、実時間データ処理端末用プログラム等の各種データの読み出し又は書き込みを行う。CMOSセンサ305は、CPU301の制御に従って被写体(主に撮影ユニット40の死角)を撮像して、撮影画像データを得る。加速度・方位センサ306は、地磁気を検知する電子磁気コンパスやジャイロコンパス、加速度センサ等の各種センサである。メディアI/F308は、フラッシュメモリ等の記録メディア307に対するデータの読み出し又は書き込み(記憶)を制御する。GPS受信部309は、GPS衛星からGPS信号を受信する。
また、実時間データ処理端末3は、撮像ユニットI/F313、マイク314、スピーカ315、音入出力I/F316、ディスプレイ317、外部機器接続I/F318、及びタッチパネル321を備えている。
これらのうち、撮像ユニットI/F313は、外付けの撮像ユニット40が接続された場合に、撮像ユニット40の駆動を制御する回路である。マイク314は、音声を入力する内蔵型の集音手段の一種である。音入出力I/F316は、CPU301の制御に従ってマイク314及びスピーカ315との間で音信号の入出力を処理する回路である。ディスプレイ317は、被写体の画像や各種アイコン等を表示する液晶や有機ELなどの表示手段の一種である。外部機器接続I/F318は、各種の外部機器を接続するためのインターフェースである。タッチパネル321は、利用者がディスプレイ317を押下することで、実時間データ処理端末3を操作する入力手段の一種である。
また、実時間データ処理端末3は、バスライン310を備えている。バスライン310は、図2に示されているCPU301等の各構成要素を電気的に接続するためのアドレスバスやデータバス等である。
<撮像ユニットのハードウェア構成>
図3は、撮像ユニットのハードウェア構成図である。特に、図3(a)は、撮像ユニット40のうち、単眼の撮像ユニット40aのハードウェア構成図である。図3(b)は、撮像ユニット40のうち、複眼の撮像ユニット40bのハードウェア構成図である。なお、撮像ユニット40は、撮像素子の数が異なる複数種類の撮像ユニット(撮像ユニット40a、40b等)の総称である。
図3(a)に示されているように、撮像ユニット40aは、CMOSやCCD等の撮像素子401a、レンズ402a、及び実時間データ処理端末3の撮像ユニットI/F313に電気的に接続するための接続I/F408aを有している。撮像ユニット40aが実時間データ処理端末3の撮像ユニットI/F313に接続された場合には、撮像素子401aは、撮像ユニットI/F313から接続I/F408aを介して送られて来た撮像制御信号により撮像を行い、接続I/F408aを介して撮像ユニットI/F313に撮像画像データを送信する。
また、図3(b)に示されているように、撮像ユニット40bは、CMOSやCCD等の撮像素子401b1,401b2、レンズ402b1,402b2、及び実時間データ処理端末3の撮像ユニットI/F313に電気的に接続するための接続I/F408bを有している。レンズ402b1,402b2は、例えば、魚眼レンズである。撮像ユニット40bが実時間データ処理端末3の撮像ユニットI/F313に接続された場合には、撮像素子401b1,401b2は、撮像ユニットI/F313から接続I/F408bを介して送られて来た撮像制御信号により撮像を行い、接続I/F408bを介して撮像ユニットI/F313に、複数の撮像画像データを送信する。
図3(a)に示されている撮像ユニット40aは、一般の平面画像を得るが、図3(b)に示されている撮像ユニット40bは、全天球画像を得ることができる。ここで、図4乃至図8を用いて、撮像ユニット40bで撮像された画像から正距円筒射影画像EC及び全天球画像CEが作成されるまでの処理の概略を説明する。なお、図4(a)は撮像ユニット40bで撮影された半球画像(前側)、図4(b)は撮像ユニット40bで撮影された半球画像(後側)、図4(c)は正距円筒図法により表された画像(以下、「正距円筒射影画像」という)を示した図である。図5(a)は正距円筒射影画像で球を被う状態を示した概念図、図5(b)は全天球画像を示した図である。
図4(a)に示されているように、撮像素子401b1によって得られた画像は、レンズ402b1によって湾曲した半球画像(前側)となる。また、図4(b)に示されているように、撮像素子403bによって得られた画像は、レンズ402b2によって湾曲した半球画像(後側)となる。そして、半球画像(前側)と、180度反転された半球画像(後側)とは合成され、図4(c)に示されているように、正距円筒射影画像ECが作成される。
そして、OpenGL ES(Open Graphics Library for Embedded Systems)が利用されることで、図5(a)に示されているように、正距円筒射影画像が球面を覆うように貼り付けられ、図5(b)に示されているような全天球画像CEが作成される。このように、全天球画像CEは、正距円筒射影画像ECが球の中心を向いた画像として表される。なお、OpenGL ESは、2D(2-Dimensions)および3D(3-Dimensions)のデータを視覚化するために使用するグラフィックスライブラリである。なお、全天球画像CEは、静止画であっても動画であってもよい。
以上のように、全天球画像CEは、球面を覆うように貼り付けられた画像であるため、人間が見ると違和感を持ってしまう。そこで、全天球画像CEの一部の所定領域(以下、「所定領域画像」という)を湾曲の少ない平面画像として表示することで、人間に違和感を与えない表示をすることができる。これに関して、図6及び図7を用いて説明する。
なお、図6は、全天球画像を三次元の立体球とした場合の仮想カメラ及び所定領域の位置を示した図である。仮想カメラICは、三次元の立体球として表示されている全天球画像CEに対して、その画像を見るユーザの視点の位置に相当するものである。また、図7(a)は図6の立体斜視図、図7(b)はディスプレイに表示された場合の所定領域画像を表す図である。また、図7(a)では、図5に示されている全天球画像CEが、三次元の立体球CSで表わされている。このように生成された全天球画像CEが、立体球CSであるとすると、図6に示されているように、仮想カメラICが全天球画像CEの内部に位置している。全天球画像CEにおける所定領域Tは、仮想カメラICの撮影領域であり、全天球画像CEを含む三次元の仮想空間における仮想カメラICの撮影方向と画角を示す所定領域情報によって特定される。
そして、図7(a)に示されている所定領域画像Qは、図7(b)に示されているように、所定のディスプレイに、仮想カメラICの撮影領域の画像として表示される。図7(b)に示されている画像は、初期設定(デフォルト)された所定領域情報によって表された所定領域画像である。以下では、仮想カメラICの撮影方向(ea,aa)と画角(α)を用いて説明する。
図8を用いて、所定領域情報と所定領域Tの画像の関係について説明する。なお、図8は、所定領域情報と所定領域Tの画像の関係との関係を示した図である。図8に示されているように、「ea」はelevation angle、「aa」はazimuth angle、「α」は画角(Angle)を示す。即ち、撮影方向(ea,aa)で示される仮想カメラICの注視点が、仮想カメラICの撮影領域である所定領域Tの中心点CPとなるように、仮想カメラICの姿勢を変更することになる。所定領域画像Qは、全天球画像CEにおける所定領域Tの画像である。fは仮想カメラICから中心点CPまでの距離である。Lは所定領域Tの任意の頂点と中心点CPとの距離である(2Lは対角線)。そして、図8では、一般的に以下の(式1)で示される三角関数が成り立つ。中心点CPは、撮影方向(ea,aa)及び距離fで特定できるため、結果的に、所定領域情報は、中心点CP及び画角αで表すことができる。
L/f=tan(α/2)・・・(式1)
<近端末データ処理装置、分散データ処理端末のハードウェア構成>
図9は、近端末データ処理装置又は分散データ処理端末のハードウェア構成図である。ここでは、近端末データ処理装置5と分散データ処理端末6とは、同じハードウェア構成を備えている場合を示しているため、近端末データ処理装置5について説明し、分散データ処理端末6の説明は省略する。
図9に示されているように、近端末データ処理装置5は、CPU501、ROM502、RAM503、EEPROM504、CMOSセンサ505、加速度・方位センサ506、メディアI/F508、GPS受信部509を備えている。
これらのうち、CPU501は、近端末データ処理装置5全体の動作を制御する。ROM502は、CPU501の駆動に用いられるプログラムを記憶する。RAM503は、CPU501のワークエリアとして使用される。EEPROM504は、CPU501の制御にしたがって、近端末データ処理装置用プログラム等の各種データの読み出し又は書き込みを行う。CMOSセンサ505は、CPU501の制御に従って被写体(主に近端末データ処理装置5を操作するユーザの自画像)を撮像し、撮影画像データを得る。加速度・方位センサ506は、地磁気を検知する電子磁気コンパスやジャイロコンパス、加速度センサ等の各種センサである。メディアI/F508は、フラッシュメモリ等の記録メディア507に対するデータの読み出し又は書き込み(記憶)を制御する。GPS受信部509は、GPS衛星からGPS信号を受信する。
また、近端末データ処理装置5は、遠距離通信回路511、遠距離通信回路511のアンテナ511a、カメラ512、撮像素子I/F513、マイク514、スピーカ515、音入出力I/F516、ディスプレイ517、外部機器接続I/F518、近距離通信回路519、近距離通信回路519のアンテナ519a、及びタッチパネル521を備えている。
これらのうち、遠距離通信回路511は、イントラネット200を介して、他の機器と通信する回路である。カメラ512は、CPU501の制御に従って被写体を撮像して、撮影画像データを得る内蔵型の撮像手段の一種である。撮像素子I/F513は、カメラ512の駆動を制御する回路である。マイク514は、音声を入力する内蔵型の集音手段の一種である。音入出力I/F516は、CPU501の制御に従ってマイク514及びスピーカ515との間で音信号の入出力を処理する回路である。ディスプレイ517は、被写体の画像や各種アイコン等を表示する液晶や有機ELなどの表示手段の一種である。外部機器接続I/F518は、各種の外部機器を接続するためのインターフェースである。近距離通信回路519は、NFC(Near Field Communication)やBluetooth(登録商標)等の通信回路である。タッチパネル521は、利用者がディスプレイ517を押下することで、近端末データ処理装置5を操作する入力手段の一種である。
また、近端末データ処理装置5は、バスライン510を備えている。バスライン510は、図9に示されているCPU501等の各構成要素を電気的に接続するためのアドレスバスやデータバス等である。
<集中データ処理サーバ、サービス提供サーバ、認証サーバのハードウェア構成>
図10は、集中データ処理サーバ、サービス提供サーバ、又は認証サーバのハードウェア構成図である。ここでは、集中データ処理サーバ7、サービス提供サーバ8、及び認証サーバ9は、同じハードウェア構成を備えている場合を示しているため、集中データ処理サーバ7について説明し、サービス提供サーバ8及び認証サーバ9の説明は省略する。
図10は、集中データ処理サーバのハードウェア構成図である。集中データ処理サーバ7は、コンピュータによって構築されており、図10に示されているように、CPU701、ROM702、RAM703、HD704、HDD(Hard Disk Drive)705、記録メディア706、メディアI/F707、ディスプレイ708、ネットワークI/F709、キーボード711、マウス712、CD-RWドライブ714、及び、バスライン710を備えている。なお、集中データ処理サーバ7は、サーバとして機能するため、キーボード711やマウス712等の入力装置や、ディスプレイ708等の出力装置はなくてもよい。
これらのうち、CPU701は、集中データ処理サーバ7全体の動作を制御する。ROM702は、CPU701の駆動に用いられるプログラムを記憶する。RAM703は、CPU701のワークエリアとして使用される。HD704は、プログラム等の各種データを記憶する。HDD705は、CPU701の制御にしたがってHD704に対する各種データの読み出し又は書き込みを制御する。メディアI/F707は、フラッシュメモリ等の記録メディア706に対するデータの読み出し又は書き込み(記憶)を制御する。ディスプレイ708は、カーソル、メニュー、ウィンドウ、文字、又は画像などの各種情報を表示する。ネットワークI/F709は、インターネット600を利用してデータ通信をするためのインターフェースである。キーボード711は、文字、数値、各種指示などの入力のための複数のキーを備えた入力手段の一種である。マウス712は、各種指示の選択や実行、処理対象の選択、カーソルの移動などを行う入力手段の一種である。CD-RWドライブ714は、着脱可能な記録媒体の一例としてのCD-RW(Compact Disc-ReWritable)713に対する各種データの読み出し等を制御する。
また、集中データ処理サーバ7は、バスライン710を備えている。バスライン710は、図10に示されているCPU701等の各構成要素を電気的に接続するためのアドレスバスやデータバス等である。
〔ソフトウェア構成〕
図11は、画像取得端末における実時間データ処理端末及び近端末データ処理装置のソフトウェア構成図である。
図11に示されているように、実時間データ処理端末3は、OS300、及び画像認識アプリケーション(以下、「アプリケーション」は「アプリ」と示す)AP1を有している。画像認識アプリAP1は、実時間データ処理端末3のRAM303の作業上で動作する。このうち、OS300は、基本的な機能を提供し、実時間データ処理端末3全体を管理する基本ソフトウェアである。画像認識アプリAP1は、撮像画像から人物や動物等の顔を認識するためのアプリである。
また、近端末データ処理装置5は、OS500、及び通信アプリAP2を有している。通信アプリAP2は、近端末データ処理装置5のRAM503の作業上で動作する。このうち、OS500は、基本的な機能を提供し、近端末データ処理装置5全体を管理する基本ソフトウェアである。通信アプリAP2は、分散データ処理端末6等の他の端末(装置)と通信を行うためのアプリである。
このように、画像取得端末2では、実時間データ処理端末3が画像認識を行うのに対して、近端末データ処理装置5がイントラネット200を介して分散データ処理端末6と通信を行なうことで、分散処理を行なうことができる。
なお、実時間データ処理端末3及び近端末データ処理装置5は、OSだけでなく、ドライバ、ソフトウェア開発キット(SDK)、またはアプリケーションプログラミングインタフェース(API)を搭載しており、それぞれが異なっていてもよい。
続いて、図面を用いて、本発明の一実施形態の機能構成及び処理について説明する。
〔実施形態の機能構成〕
まず、図12乃至図22を用いて、本実施形態に係る通信システムを構成する端末、装置、及びサーバの各機能構成について説明する。図12は、実施形態に係る通信システムの機能ブロック図である。図12は、特に画像取得端末2の機能ブロックを示している。
<実時間データ処理端末の機能構成>
図12に示されているように、実時間データ処理端末3は、算出部31、判断部33、画像処理部34、物体検出部35、イベント生成部36、表示制御部37、接続部38、記憶・読出部39、及び通信部48を有している。これら各部は、図2に示されている各構成要素のいずれかが、EEPROM304からRAM303上に展開されたプログラムに従ったCPU301からの命令によって、動作することで実現される機能又は手段である。
また、実時間データ処理端末3は、図2に示されているROM302、RAM303、及びEEPROM304によって構築される記憶部3000を有している。記憶部3000には、後述の形状モデルデータが記憶されている。更に、記憶部3000には、撮像素子情報管理DB3001、サイクル値管理DB3002、画像取得プログラム管理DB3003、合成処理プログラム管理DB3004、歪み補正プログラム管理DB3005、サービスプログラム管理DB3006、物体情報管理DB3007、及び物体変位管理DB3008が構築されている。
撮像素子情報管理DB3001は、後述の撮像素子情報管理テーブルによって構成されている。サイクル値管理DB3002は、後述のサイクル値管理テーブルによって構成されている。画像取得プログラム管理DB3003は、後述の画像取得プログラム管理テーブルによって構成されている。合成処理プログラム管理DB3004は、後述の合成処理プログラム管理テーブルによって構成されている。歪み補正プログラム管理DB3005は、後述の歪み補正プログラム管理テーブルによって構成されている。サービスプログラム管理DB3006は、後述のサービスプログラム管理テーブルによって構成されている。
更に、物体情報管理DB3007は、後述の物体情報管理テーブルによって構成されている。物体変位管理DB3008は、後述の物体変位管理テーブルによって構成されている。
(撮像素子情報管理テーブル)
図14(a)は、撮像素子情報管理テーブルを示す概念図である。この撮像素子情報管理テーブルでは、撮像ユニット40の型番、及び撮像ユニット40が有する撮像素子の数、及びこの撮像素子に使われるレンズの種類が関連付けて管理されている。なお、型番は、撮像素子の数及びこの撮像素子に使われるレンズの種類の違いに応じた撮像ユニットの種類を示す種類情報の一例である。
(サイクル値管理テーブル)
図14(b)は、サイクル値管理テーブルを示す概念図である。このサイクル値管理テーブルでは、撮像ユニット40が有する撮像素子の数、及び後述の物体認識の処理のサイクル値(Frames Per Second)が関連付けて管理されている。
図15に示されている各テーブルは、各プログラムが、実時間データ処理端末3にインストールされているか否かを管理するためのテーブルである。
(画像取得プログラム管理テーブル)
図15(a)は、画像取得プログラム管理テーブルを示す概念図である。この画像取得プログラム管理テーブルでは、撮像ユニット40が有する撮像素子の数、及び画像取得プログラム(又はこの名称)が関連付けて管理されている。例えば、撮像素子の数「1」の場合の画像取得プログラムが実時間データ処理端末3にインストールされている場合には、プログラム「ProgC01 (1系統の画像取得)」が関連付けて管理されている。撮像素子の数「2」の場合の画像取得プログラムが実時間データ処理端末3にインストールされている場合には、プログラム「ProgC02 (2系統の画像取得)」が関連付けて管理されている。
(合成処理プログラム管理テーブル)
図15(b)は、合成処理プログラム管理テーブルを示す概念図である。この合成処理プログラム管理テーブルでは、撮像ユニット40が有する撮像素子の数、及び合成処理プログラムの名称が関連付けて管理されている。
(歪み補正プログラム管理テーブル)
図15(c)は、歪み補正プログラム管理テーブルを示す概念図である。この歪み補正プログラム管理テーブルでは、撮像ユニット40が有するレンズの種類、及び歪み補正プログラム(又はこの名称)が関連付けて管理されている。例えば、レンズの種類「広角」の場合の歪み補正プログラムが実時間データ処理端末3にインストールされている場合には、プログラム「ProgW01(広角歪み補正)」が関連付けて管理されている。レンズの種類「魚眼」の場合の歪み補正プログラムが実時間データ処理端末3にインストールされている場合には、プログラム「ProgW02(魚眼歪み補正)」が関連付けて管理されている。
(サービスプログラム管理テーブル)
図15(d)は、サービスプログラム管理テーブルを示す概念図である。このサービスプログラム管理テーブルでは、認証サーバを識別するための認証サーバID、及び画像取得端末2が提供されるサービスを実行するためのサービスプログラムの名称が関連付けて管理されている。例えば、認証サーバID「a01」の場合のサービスプログラムが実時間データ処理端末3にインストールされている場合には、プログラム「ProgD01 (物体検出)」が関連付けて管理されている。また、認証サーバID「a02」の場合のサービスプログラムが実時間データ処理端末3にインストールされている場合には、プログラム「ProgD02 (物体計数)」が関連付けて管理されている。
(物体情報管理テーブル)
図16は、物体情報管理テーブルを示す概念図である。この物体情報管理テーブルでは、(整理)番号、後述の検出可能範囲Pにおける矩形の部分画像の位置、部分画像の幅、部分画像の高さ、及び終了フラグ(ここでは、「*」)が関連付けて管理されている。部分画像の位置は、矩形の画像の左上端の座標の位置を示している。
(物体変位管理テーブル)
図17は、物体変位管理テーブルを示す概念図である。この物体変位管理テーブルでは、部分画像を識別するための部分画像ID、この部分画像の照合可能範囲Qにおける初期位置(座標)、この部分画像の検出可能範囲Pにおける最新位置(座標)、部分画像の幅、部分画像の高さ、この部分画像が集中データ処理サーバ7で照合される進捗状況を示した照合進捗状況、部分画像で示された人物の名前、及び終了フラグ(ここでは、「*」)が関連付けて管理されている。これらのうち、部分画像の検出可能範囲Pにおける位置、部分画像の幅、及び部分画像の高さは、物体情報管理テーブル(図16参照)から移行された物体特定情報である。即ち、物体情報管理テーブルにおける情報(位置、幅、高さ)は現在の部分画像を特定するための部分画像特定情報であり、物体変位管理テーブルにおける情報(位置、幅、高さ)は過去の部分画像を特定するための部分画像特定情報である。
なお、初期位置は第1の時点における物体の第1の位置の一例である。最新位置は現在の物体の位置である。なお、検出可能範囲Pから物体が出る場合、出る直前の検出可能範囲Pにおける物体の最終位置は第2の時点における物体の第2の位置の一例である。
また、人物の名前は、人物特定情報の一例である。人物特定情報は、漢字だけでなく、英数字や、記号などによって示されても良い。例えば、人物特定情報には、従業員番号、学籍番号、運転免許書番号、日本の制度で使われているマイナンバー等が含まれる。更に、照合できずに、名前が“Unknown”と判断された場合に特定された“Unknown”も含まれる。
また、物体情報管理テーブル(図16参照)における「終了フラグ」は、物体情報管理テーブルにおける任意のレコード内の物体の現在の位置が、物体変位管理テーブル(図17参照)の各レコード内における物体の過去の位置と所定距離(閾値)内であるかが判断された場合に、判断が終了したことを示すために付される。一方、物体変位管理テーブルにおける「終了フラグ」は、物体情報管理テーブルから移行された部分画像特定情報がある場合に、この部分画像特定情報を含むレコードに付される。
(実時間データ処理端末の各機能構成)
次に、図12を用いて、実時間データ処理端末3の各機能構成について更に詳細に説明する。
実時間データ処理端末3の算出部31は、CPU301の処理によって実現され、物体の最新の位置と、物体の過去の位置との距離を算出する。
判断部33は、CPU301の処理によって実現され、各種判断を行なう。例えば、判断部33は、撮像ユニット40から送られて来る型番に基づき、撮像素子情報管理DB3001を参考にして、撮像素子の数を判断する。
画像処理部34は、CPU301の処理によって実現され、図15に示されている各プログラム(画像取得プログラム、画像合成プログラム、歪み補正プログラム、及びサービスプログラム)の実行により、各種画像処理を行なう。具体的には、画像処理部34は、取得するために認証が不要な第1のプログラム(例えば、画像取得プログラム、画像合成プログラム、及び歪み補正プログラム)を実行することで、画像データに対して第1の画像処理(例えば、画像取得、画像合成、歪み補正)を行なう。また、画像処理部34は、取得するために認証が必要な第2のプログラム(例えば、サービスプログラム)を実行することで、画像データに対して第2の画像処理(例えば、物体検出処理、物体計数処理)を行なう。
物体検出部35は、CPU301の処理によって実現され、画像処理部34で取得された撮像画像のデータにおいて、顔などの予め決められた特定の物体の候補となる特徴点を検出し、顔などの予め定められた特定の物体の形状モデルを示す形状モデルデータを参照して、撮像画像の中の物体の位置を検出する。
イベント生成部36は、CPU301の処理によって実現され、物体検出部35で物体の位置が検出された旨の検出情報(イベント情報)を生成する。
表示制御部37は、CPU301の処理によって実現され、表示手段の一例であるディスプレイ317に各種画面を表示させる。
接続部38は、撮像ユニットI/F313、及びCPU301の処理によって実現され、撮像ユニット40を実時間データ処理端末3に機械的及び電気的に接続するためのインターフェースである。
記憶・読出部39は、CPU301の処理によって実現され、記憶部3000に各種データ(または情報)を記憶したり、記憶部3000から各種データ(または情報)を読み出したりする。
通信部48は、外部機器接続I/F318、及びCPU301の処理によって実現され、1対1の通信を介して近端末データ処理装置5の後述の通信部58と各種データ(または情報)の送受信を行う。なお、この通信は有線だけでなく無線であってもよい。
<近端末データ処理装置の機能構成>
図12に示されているように、近端末データ処理装置5は、送受信部51、データ検出部56、表示制御部57、通信部58、及び記憶・読出部59を有している。これら各部は、図9に示されている各構成要素のいずれかが、近端末データ処理装置5において、EEPROM504からRAM503上に展開されたプログラムに従ったCPU501からの命令によって、動作することで実現される機能又は手段である。
また、近端末データ処理装置5は、図9に示されているROM502、RAM503、及びEEPROM504によって構築される記憶部5000を有している。
(近端末データ処理装置の各機能構成)
次に、図12を用いて、近端末データ処理装置5の各機能構成について更に詳細に説明する。
近端末データ処理装置5の送受信部51は、遠距離通信回路511、アンテナ511a、及びCPU501の処理によって実現され、通信ネットワーク(ここでは、イントラネット200)を介して、分散データ処理端末6との間で各種データ(または情報)の送受信を行う。
データ検出部56は、CPU501の処理によって実現され、実時間データ処理端末3からのデータを受信するべきイベントが発生しているか否か、データの受信が完了したか否かを検出する。
表示制御部57は、CPU501の処理によって実現され、表示手段の一例であるディスプレイ517に各種画面を表示させる。
通信部58は、外部機器接続I/F518、及びCPU501の処理によって実現され、1対1の通信を介して実時間データ処理端末3の通信部48と各種データ(または情報)の送受信を行う。なお、この通信は有線だけでなく、無線であってもよい。
記憶・読出部59は、CPU501の処理によって実現され、記憶部5000に各種データ(または情報)を記憶したり、記憶部5000から各種データ(または情報)を読み出したりする。
<分散データ処理端末の機能構成>
図13に示されているように、分散データ処理端末6は、送受信部61、受付部62、判断部63、表示制御部67、及び記憶・読出部69を有している。これら各部は、図9に示されている各構成要素のいずれかが、分散データ処理端末6において、EEPROM504からRAM503上に展開されたプログラムに従ったCPU501からの命令によって、動作することで実現される機能又は手段である。
また、分散データ処理端末6は、図9に示されているROM502、RAM503、及びEEPROM504によって構築される記憶部6000を有している。
(分散データ処理端末の各機能構成)
分散データ処理端末6の送受信部61は、分散データ処理端末6における、遠距離通信回路511、アンテナ511a、及びCPU501の処理によって実現され、通信ネットワーク(ここでは、インターネット600)を介して、集中データ処理サーバ7と各種データ(または情報)の送受信を行う。例えば、送受信部61は、照合データと被照合データとの照合要求を集中データ処理サーバ7に対して送信したり、集中データ処理サーバ7から送られて来た照合結果に対する処理を行ったりする。
受付部62は、分散データ処理端末6における、タッチパネル521、及びCPU501の処理によって実現され、利用者の各種操作を受け付ける。
判断部63は、分散データ処理端末6におけるCPU501の処理によって実現され、各種判断を行なう。
表示制御部67は、分散データ処理端末6におけるCPU501の処理によって実現され、表示手段の一例であるディスプレイ517に各種画面を表示させる。
記憶・読出部69は、分散データ処理端末6におけるCPU501の処理によって実現され、記憶部6000に各種データ(または情報)を記憶したり、記憶部6000から各種データ(または情報)を読み出したりする。例えば、記憶・読出部69は、受付部62で受け付けられた登録要求により、照合データ(ここでは、顔画像データ)を記憶部6000に記憶して登録させる。
<集中データ処理サーバの機能構成>
図13に示されているように、集中データ処理サーバ7は、送受信部71、受付部72、判断部73、特徴量生成部74、照合部75、計数部76、及び記憶・読出部79を有している。これら各部は、図10に示されている各構成要素のいずれかが、分散データ処理端末6において、HD704からRAM703上に展開されたプログラムに従ったCPU701からの命令によって、動作することで実現される機能又は手段である。
また、集中データ処理サーバ7は、図10に示されているROM702、RAM703、及びHD704によって構築される記憶部7000を有している。記憶部7000には、後述の照合側の特徴量データが記憶されている。この記憶部7000には、照合データが記憶されている。更に、記憶部7000には、照合データ管理DB7001が構築されている。照合データ管理DB7001は、後述の照合データ管理テーブルによって構成されている。なお、照合データは、集中データ処理サーバ7以外の他のデータ管理サーバ等で記憶してもよい。また、記憶部7000には、移動情報管理DB7002が構築されている。移動情報管理DB7002は、後述の移動情報管理テーブルによって構成されている。
(照合データ管理テーブル)
図18(a)は、照合データ管理テーブルを示す概念図である。この照合データ管理テーブルでは、照合データのファイル名を示す画像ファイル、及びこの画像ファイルに係る照合画像で示される人物の名前が関連付けて管理されている。
(移動情報管理テーブル)
図18(b)は、移動情報管理テーブルを示す概念図である。この移動情報管理テーブルでは、受信日時、方向情報、及び人物の名前が関連付けて管理されている。これらのうち、受信日時は、集中データ処理サーバ7が分散データ処理端末6から移動情報記憶要求を受信(S306参照)した日時を示す。方向情報は、人物としての物体が移動した方向を示す情報である。例えば、「LtoR」は左から右に移動した旨を示し、「RtoL」は右から左に移動した旨を示す。人物の名前は、照合データ管理テーブルにおける人物の名前と同様である。
(集中データ処理サーバの各機能構成)
集中データ処理サーバ7の送受信部71は、ネットワークI/F709、及びCPU701の処理によって実現され、通信ネットワーク(ここでは、インターネット600)を介して、分散データ処理端末6と各種データ(または情報)の送受信を行う。送受信部71は、照合データと被照合データとの照合要求を分散データ処理端末6から受信したり、分散データ処理端末6に対して照合結果を示す照合結果情報を送信したりする。
受付部72は、キーボード711、マウス712、及びCPU701の処理によって実現され、利用者の各種操作を受け付ける。
判断部73は、集中データ処理サーバ7におけるCPU501の処理によって実現され、各種判断を行なう。
特徴量生成部74は、CPU701の処理によって実現され、送受信部71によって受信された被照合データ(部分画像データ)及び照合データから特徴量のパラメータを生成する。
照合部75は、CPU701の処理によって実現され、特徴量生成部74で生成された特徴量を用いて照合データ側の特徴量と被照合データ側の特徴量とを照合し、類似度を示す得点(ポイント)を算出する。
計数部76は、CPU701の処理によって実現され、移動情報管理DB7002に記憶されている移動情報における単位時間毎(本実施形態では1時間毎)に各方向、人物の名前の組合せでレコード数を計数する。
記憶・読出部79は、CPU701の処理によって実現され、記憶部7000に各種データ(または情報)を記憶したり、記憶部7000から各種データ(または情報)を読み出したりする。
<サービス提供サーバの機能構成>
次に、図13、図19乃至図21を用いて、サービス提供サーバ8の各機能構成について詳細に説明する。図13に示されているように、サービス提供サーバ8は、送受信部81、判断部82、取出部87、及び記憶・読出部89を有している。これら各部は、図10に示されている各構成要素のいずれかが、HD704からRAM703上に展開されたサービス提供サーバ8用プログラムに従ったCPU701からの命令によって動作することで実現される機能又は手段である。
また、サービス提供サーバ8は、図10に示されているRAM703、及びHD704によって構築される記憶部8000を有している。この記憶部8000には、分散データ処理端末6又は認証サーバ9から送られて来る各種データが記憶される。また、記憶部8000には、図15で示されている各プログラムが全て記憶されており、サービス提供サーバ8は、実時間データ処理端末3の要求に応じて、要求対象のプログラムを送信することができる。
更に、記憶部8000には、セッション管理DB8001、及び認証サーバ管理DB8002が構築されている。このうち、セッション管理DB8001は、後述のセッション管理テーブルによって構成されている。認証サーバ管理DB8002は、後述の認証サーバ管理テーブルによって構成されている。以下、各テーブルについて詳細に説明する。
(セッション管理テーブル)
図19は、セッション管理テーブルを示す概念図である。このセッション管理テーブルでは、分散データ処理端末6にサービスを提供するために、分散データ処理端末6と確立する通信セッションを識別するためのセッションID、分散データ処理端末6の利用者を識別するための端末ID、及び端末IDで示される利用者の分散データ処理端末6のIPアドレスが関連付けて記憶されて管理されている。
図20(a)、(b)、(c)は、端末ID(identification)の一例として、電子メールアドレスを示しており、それぞれ認証対象部分と認証対象外部分によって構成されている。認証対象部分は、認証サーバ9によって認証される際に利用される利用者IDである。認証対象外部分は、認証サーバ9によって認証される際に利用されない部分である。
このうち、図20(a)に示されている第1のパターンでは、認証対象部分は、アカウント名”asai”、ホスト名”myhost”、及びドメイン名の前段部分“ricoo.com”によって構成されている。一方、認証対象外部分は、ドメイン名の後段部分”theta1”によって構成されている。この場合、取出部87は、”/”によって、認証対象部分と認証対象外部分を区別する。
また、図20(b)も第1のパターンを示しているが、認証対象外部分が図20(a)と異なる。即ち、認証サーバ9は、図20(a)に示されている端末IDと、図20(b)に示されている端末IDでは、認証対象部分が同じであるため、同じIDとして認証する。
なお、端末IDは、図20(c)に示されている第2のパターンであってもよい。この第2のパターンでは、認証対象部分は、アカウント名の前段部分”asai”によって構成されている。一方、認証対象外部分は、アカウント名の後段部分”theta2”、ホスト名”myhost”、及びドメイン名“ricoo.com”によって構成されている。この場合、取出部87は、”+”によって、認証対象部分と認証対象外部分を区別する。
(認証サーバ管理テーブル)
図21は、認証サーバ管理テーブルを示す概念図である。この認証サーバ管理テーブルでは、各認証サーバ9を識別するための認証サーバID毎に、各認証サーバ9にアクセスするためのURL(Uniform Resource Locator)が関連付けて記憶されて管理されている。
(サービス提供サーバの各機能構成)
次に、図13を用いて、サービス提供サーバ8の各機能構成について詳細に説明する。
サービス提供サーバ8の送受信部81は、主に、図10に示されているCPU701からの命令、及びネットワークI/F709によって実現され、インターネット600を介して分散データ処理端末6、又は認証サーバ9と各種データ(または情報)の送受信を行う。
判断部82は、主に、図10に示されているCPU701からの命令によって実現され、例えば、分散データ処理端末6にサービスを提供するための通信セッションが既に確立されているか否かを判断する。
取出部87は、主に、図10に示されているCPU701からの命令によって実現され、端末IDから、図20に示されているような利用者ID(認証対象部分)を取り出す処理を行う。
記憶・読出部89は、主に、図10に示されているCPU701からの命令、及びHDD705によって実現され、記憶部8000に各種データを記憶したり、記憶部8000から各種データを読み出したりする。
<認証サーバの機能構成>
次に、図13及び図22を用いて、認証サーバ9の機能構成について詳細に説明する。認証サーバ9は、送受信部91、認証部92、及び、記憶・読出部99を有している。これら各部は、図10に示されている各構成要素のいずれかが、HD704からRAM703上に展開された認証サーバ9用プログラムに従ったCPU701からの命令によって動作することで実現される機能又は手段である。
また、認証サーバ9は、図10に示されているRAM703、及びHD704によって構築される記憶部9000を有している。この記憶部9000には、分散データ処理端末6又はサービス提供サーバ8から送られて来る各種データが記憶される。
更に、記憶部9000には、認証管理DB9001が構築されている。認証管理DB9001は、後述の認証管理テーブルによって構成されている。以下、このテーブルについて詳細に説明する。
(認証管理テーブル)
図22(a)は認証サーバ9aが有する認証管理テーブルを示す概念図、図22(b)は認証サーバ9bが有する認証管理テーブルを示す概念図、図22(c)は認証サーバ9cが有する認証管理テーブルを示す概念図である。
各認証管理テーブルでは、端末IDのうちの利用者ID(認証対象部分)とパスワードとが関連付けて記憶されて管理されている。
(認証サーバの各機能構成)
次に、図13を用いて、認証サーバ9の各機能構成について詳細に説明する。
認証サーバ9の送受信部91は、主に、図10に示されているCPU701からの命令、及びネットワークI/F709によって実現され、インターネット600を介して分散データ処理端末6及びサービス提供サーバ8と各種データ(または情報)の送受信を行う。
認証部92は、主に、図10に示されているCPU701からの命令によって実現され、認証要求を送信した画像取得端末2に、サービスを受けられる正当な権限があるか否かを判断することで、IDの認証を行なう。
記憶・読出部99は、主に、図10に示されているCPU701からの命令、及びHDD705によって実現され、記憶部9000に各種データ(または情報)を記憶したり、記憶部9000から各種データ(または情報)を読み出したりする。
〔本実施形態の処理又は動作〕
続いて、図23乃至図44を用いて、本実施形態の処理又は動作について説明する。
<認証処理>
まずは、図23乃至図26を用いて、認証処理について説明する。図23及び図24は、認証処理を示したシーケンス図である。図25及び図26は、分散データ処理端末の画面例を示す図である。
図23に示されているように、分散データ処理端末6の送受信部61からサービス提供サーバ8に対して、認証先選択画面の要求を送信する(ステップS21)。この要求には、分散データ処理端末6の端末IDが含まれている。また、この際、送受信部61は、自端末のIPアドレスを送信する。これにより、サービス提供サーバ8の送受信部81は、認証先選択画面の要求、及び分散データ処理端末6のIPアドレスを受信する。
次に、サービス提供サーバ8の判断部82は、セッション管理テーブル(図19参照)に、ステップS21で受信された端末IDが所定のセッションIDと関連づけて管理されているか否かを判断する(ステップS22)。以降、端末IDが管理されていなかった場合について説明する。
サービス提供サーバ8の送受信部81は分散データ処理端末6に対して、認証先選択画面のデータを送信する(ステップS23)。これにより、分散データ処理端末6の送受信部61は、認証先選択画面のデータを受信する。
次に、分散データ処理端末6の表示制御部67はディスプレイ517に対して、図25に示されているような認証先選択画面s1を表示させる(ステップS24)。図25では、分散データ処理端末6としての画面例が示されている。この認証先選択画面s1には、端末IDの入力欄b1、パスワードの入力欄b2、及びログイン要求(認証要求)するためのログインボタンb3が表示されている。更に、認証先選択画面s1には、認証サーバ9a,9b,9cをそれぞれ選択するための認証サーバ選択ボタンa1,a2,a3が表示されている。例えば、認証サーバ選択ボタンa1は、利用者が物体検出処理のサービスを受ける場合のボタンである。認証サーバ選択ボタンa2は、利用者が物体計数処理のサービスを受ける場合のボタンである。
ここで、利用者が、入力欄b1に自己の端末ID、入力欄b2に自己のパスワードを入力し、認証サーバ選択ボタンa1,a2,a3のうち所望のボタンを押下し、ログインボタンb3を押下すると、受付部62が各入力及び選択を受け付ける(ステップS25)。ここでは、認証サーバ選択ボタンa1が選択されることで、画像認識処理のうち、物体検出処理プログラムProgD01により物体検出処理が実行される場合について説明する。
送受信部61はサービス提供サーバ8に対して、ID(ここでは、端末ID又は利用者ID)の認証要求を送信する(ステップS26)。この認証要求には、ステップS25で受け付けられた端末ID及びパスワード、並びに認証サーバ9の選択結果及び分散データ処理端末6のURLが含まれている。この認証結果は、認証サーバ9を識別するための認証サーバIDを示している。これにより、サービス提供サーバ8の送受信部81は、IDの認証要求を受信する。
次に、サービス提供サーバ8の記憶・読出部89は、ステップS26で受信された選択結果としての認証サーバIDを検索キーとして、認証サーバ管理テーブル(図21参照)を検索することにより、対応する認証サーバのURLを読み出す(ステップS27)。
次に、取出部87は、ステップS26で受信された端末IDのうち、利用者ID(認証対象部分)のみを取り出す(ステップS28)。そして、送受信部81は、ステップS27で読み出されたURLで示される認証サーバ9に対して、IDの認証要求を送信する(ステップS29)。このIDの認証要求には、ステップS28で取り出された利用者ID(認証対象部分)、ステップS26で受信されたパスワード、及びステップ26で受信された分散データ処理端末6のURLが含まれている。これにより、認証サーバ9の送受信部71は、利用者の認証要求を受信する。
次に、認証サーバ9の記憶・読出部99は、ステップS29によって受信された利用者ID(認証対象部分)及びパスワードの組を検索キーとし、認証管理テーブル(図22参照)において同じ組の認証対象部分及びパスワードを検索した結果を用いて、認証部92が認証を行なう(ステップS30)。認証部92は、同じ組が管理されている場合には、分散データ処理端末6はサービス提供サーバ8からサービスを受けるための正当な端末であると判断し、同じ組が管理されていない場合には、分散データ処理端末6はサービス提供サーバ8からサービスを受けるための正当な端末でないと判断する。
なお、ステップS28では、取出部87が端末IDから認証対象部分を取り出したが、これに限るものではない。例えば、サービス提供サーバ8は取出部87を有しておらず、ステップS29において、送受信部81が、パスワード及びURLの他に、端末IDのうち利用者ID(認証対象部分)のみを送信するようにしてもよい。
続いて、図24に示されているように、認証サーバ9の認証部92は、トークン(送信権)の暗号化を行なう(ステップS41)。そして、送受信部91は、ステップS29によって受信された分散データ処理端末6のURLに基づいて、この分散データ処理端末6に認証結果を送信する(ステップS42)。この認証結果は、分散データ処理端末6が正当であるか否かを示すとともに、ステップS41によって暗号化されたトークンが含まれている。これにより、分散データ処理端末6の送受信部61は、利用者の認証結果を受信する。以降、利用者が正当な権限を有する場合について説明する。
分散データ処理端末6の送受信部61は、サービス提供サーバ8に対して、セッション確立要求を送信する(ステップS43)。このセッション確立要求には、端末ID、及びステップS42で受信された暗号化されているトークンが含まれている。これにより、サービス提供サーバ8の送受信部81は、セッション確立要求を受信する。
次に、サービス提供サーバ8は、セッション確立要求を送信した分散データ処理端末6が、ステップS30で正当であると判断されたことを確認するため、送受信部81は認証サーバ9に対してトークンの認証要求を送信する(ステップS44)。このトークンの認証要求には、ステップS43で受信された暗号化されているトークンが含まれている。これにより、認証サーバ9の送受信部91は、トークンの認証要求を受信する。
次に、認証部92は、ステップS44によって受信された、暗号化されているトークンを復号化する(ステップS45)。そして、認証部92は、ステップS41で暗号化する前のトークンと、ステップS45で復号化した後のトークンを比較することで、トークンの認証を行なう(ステップS46)。そして、認証サーバ9の送受信部91は、サービス提供サーバ8に対して、ステップS46の認証結果を送信する(ステップS47)。これにより、サービス提供サーバ8の送受信部81は、認証結果を受信する。以降、ステップS46において、トークンが正当であると判断された場合について説明する。
次に、サービス提供サーバ8の記憶・読出部89は、セッション管理テーブル(図19参照)において、新たにセッションIDを割り当てるとともに、このセッションIDに対して、ステップS26で受信された端末ID及びIPアドレスを関連付けて管理する(ステップS48)。そして、送受信部81は、分散データ処理端末6に対してサービス提供画面のデータを送信する(ステップS49)。これにより、分散データ処理端末6の送受信部61は、サービス提供画面のデータを受信する。
次に、分散データ処理端末6の表示制御部67は、ディスプレイ517上に、図26に示されているようなサービス提供画面s2を表示させる(ステップS50)。図26では、分散データ処理端末6の画面例が示されている。ここでは、サービス提供例として、分散データ処理端末6から画像取得端末2に対する遠隔操作を実現させるための遠隔操作サービスについて説明する。図26に示されているサービス提供画面s2には、遠隔操作対象を特定するためのIPアドレスの入力欄c1、「遠隔操作開始」ボタンc2、及び「検出領域設定」ボタンc3が表示されている。
<検出領域の設定>
続いて、図27乃至図29、及び図34(a)を用いて、検出領域の設定処理について説明する。図27及び図28は、検出領域の設定処理を示したシーケンス図である。
まず、図27に示されているように、分散データ処理端末6の受付部62は、図26に示す「検出領域設定」ボタンc3の押下により、利用者から検出領域の設定要求を受け付ける(ステップS41)。そして、送受信部61は、検出領域の設定要求を近端末データ処理装置5に送信する(ステップS42)。これにより、近端末データ処理装置5の送受信部51は、検出領域の設定要求を受信する。
次に、近端末データ処理装置5の通信部58は、ステップS42で受信された検出領域の設定要求を実時間データ処理端末3の通信部48へ出力する(ステップS43)。これにより、実時間データ処理端末3の通信部48は、検出領域の設定要求を入力する。
次に、実時間データ処理端末3は、実時間処理のうち検出領域設定における物体検出の処理を実行する(ステップS44)。
(検出領域設定における物体検出処理)
ここで、図34(a)を用いて、実時間処理のうち検出領域設定における物体検出の処理について説明する。図34(a)は、実時間処理のうち検出領域設定における物体検出の処理を示したフローチャートである。
まず、判断部33は、接続されている撮像ユニット40における撮像素子の数が1つであるか否かを判断する(ステップS201)。この場合、判断部33は、上述のステップS72の処理によって読み出された撮像素子の数に基づいて判断する。そして、撮像素子の数が1つの場合には(ステップS201;YES)、画像処理部34が、処理を繰り返すサイクル値を1/60秒に設定する(ステップS202)。この場合、画像処理部34は、上述のステップS73の処理によって読み出されたサイクル値に設定する。
次に、接続部38は、撮像ユニット40から1系統である撮像画像データを取得する(ステップS203)。この撮像画像データは、デジタル画像データであり、たとえば4K画像(幅3840画像×高さ2160画素)のデータである。この場合、接続部38は、図15(a)に示されている画像取得プログラム(ProgC01 (1系統))により処理を実行する。
一方、上記ステップS201において、撮像素子の数が1つではない場合には(ステップS201;NO)、画像処理部34は、実時間処理を繰り返すサイクル値を1/30秒に設定する(ステップS204)。この場合、画像処理部34は、上述のステップS73の処理によって読み出されたサイクル値に設定する。サイクル値を1/30秒とすることで、1入力と比較して、サイクル値を大きく取ることにより、後述の画像合成処理が間に合わなくなることを防ぐことが出来る。
次に、接続部38は、撮像ユニット40から2系統である2つの撮像画像データを取得する(ステップS205)。2つの撮像画像データは、それぞれ図4(a)、(b)に示されているような半球画像のデータである。この場合、接続部38は、図15(a)に示されている画像取得プログラム(ProgC02 (2系統))により処理を実行する。
そして、画像処理部34は、2つの撮像画像データを合成して、図4(c)に示されているような正距円筒射影画像ECを作成する(ステップS206)。この場合、画像処理部34は、図15(b)に示されている合成処理プログラム(ProgS02 (合成処理))により処理を実行する。
以上により、ステップS44の検出領域設定における物体検出の処理処理が終了する。
続いて、実時間データ処理端末3の通信部48は、近端末データ処理装置5の通信部58へ撮像画像データを出力する(ステップS45)。これにより、近端末データ処理装置5の通信部58は、撮像画像データを入力する。そして、近端末データ処理装置5の記憶・読出部59は、記憶部5000から、所定領域情報(中心点CP及び画角α)を読み出す(ステップS46)。
次に、近端末データ処理装置5の送受信部51は、分散データ処理端末6に対して、ステップS45で受信された撮影画像データ、及びステップS46で読み出された中心点CP及び画角αを示す情報を送信する(ステップS47)。これにより、分散データ処理端末6の送受信部61は、撮影画像データ、並びに中心点CP及び画角αを示す情報を受信する。
次に、分散データ処理端末6の表示制御部67は、ステップS47で受信された撮像画像データのうち、ディスプレイ517上に図29に示されているような検出領域設定画面を表示させる。図29は、検出領域設定画面を示した図である。図29に示されているように、検出領域設定画面には、検出可能範囲P、設定ボタンd1、及びキャンセルボタンd2が表示されている。検出可能範囲Pには、建物のエントランスが表されており、左側にドア11が表されている。このドア11の左側が屋外で、このドア11の右側が屋内である。
検出可能範囲Pは、撮像ユニット40の撮影範囲が物体(顔等)を検出することができる範囲である。この検出可能範囲P内に、物体の画像を照合可能な照合可能範囲Qと、この照合可能範囲Q外であって照合不可能な照合不可能範囲Rが含まれる。図29において、マージンa、マージンbは、検出可能範囲Pにおいて、それぞれx方向の左右端、y方向の上下端に設けられた所定の値であり、予め定められている。
このように、検出可能範囲Pとは別に照合可能範囲Qを設けたのは、検出可能範囲Pは撮像素子401a等の撮像範囲として固定されているため、任意の部屋又は領域の大きさに合った範囲で物体の検出を行うことができるようにするためである。また、これにより、物体が検出可能範囲Pに入った後、照合可能範囲Q内に入る前に検出可能範囲Pから外に出てしまった場合に、実時間データ処理端末3aは、近端末データ処理装置5及び分散データ処理端末6を介して、集中データ処理サーバ7に被照合データを送信しなくて済むため、無駄な通信料を削減することができる。
「設定」ボタンd1は、検出領域を確定する場合に利用者によって押下されるボタンである。「キャンセル」ボタンd2は、検出領域の確定を止める場合に利用者によって押下されるボタンである。
また、検出可能範囲Pは、所定領域T(図7参照)と同じ範囲を示す。そのため、検出可能範囲Pを設定することは、所定領域Tを設定することになる。なお、検出可能範囲Pと所定領域Tの縦横比が異なる場合は、表示制御部67は、所定領域Tの縦横比を維持したまま、拡大又は縮小して検出可能範囲Pのサイズに合わせて表示する。例えば、検出可能範囲Pの縦横比が9:16であって、所定領域Tの縦横比が3:4である場合、表示制御部67は、所定領域Tの横が検出可能範囲P内で最大となるように表示する。
この検出可能範囲Pは、分割データ処理端末6で利用者によって変更可能である。この変更や設定に関し、図28を用いて説明する。
まず、分散データ処理端末6の受付部62は、利用者からタッチパネル521等によって入力を受け付ける(S51)。入力の種類は、図29に示される検出領域設定画面において、スワイプ、ピンチイン若しくはピンチアウトによる検出可能範囲Pの変更、「設定」ボタンd1の押下、又は「キャンセル」ボタンd2の押下である。検出可能範囲Pの変更には、図7(a)において、スワイプにより立体球CS内で別の所定領域を表示させる場合(移動)、ピンチインにより所定領域Tを含めた広範囲の所定領域を表示させる場合(縮小)、ピンチアウトにより所定領域T内で狭範囲の所定領域を表示させる場合(拡大)が含まれる。
ここで、入力の種類が検出可能範囲Pの変更である場合には(S52;変更)、表示制御部67は、ピンチイン若しくはピンチアウトの操作量に応じて、検出可能範囲Pを変更して表示する(S53)。そして、ステップS51の処理に戻る。
また、入力の種類が「設定」ボタンd1の押下により、検出領域の確定である場合には(S52;確定)、送受信部61は、近端末データ処理装置5に対して、確定要求を送信する(S54)。この確定要求には、ステップS51,S52で確定した検出可能範囲P(所定領域T)を特定するための中心点CP及び画角αを示す所定領域情報が含まれている。なお、ステップS51,S52で検出可能範囲P(所定領域T)が変更された後に確定された場合には、変更後の中心点CP及び画角αを示す所定領域情報が含まれている。これにより、近端末データ処理装置5の送受信部51は、確定要求を受信する。
次に、近端末データ処理装置5では、記憶・読出部59が、記憶部5000に、確定された所定領域情報を記憶する(S55)。
また、入力の種類が「キャンセル」ボタンd2の押下により、検出領域の設定を中止する場合には(S52;中止)、送受信部61は、近端末データ処理装置5に対して、撮影を停止するための撮影停止要求を送信する(S56)。これにより、近端末データ処理装置5の送受信部51は、撮影停止要求を受信する。そして、近端末データ処理装置5の通信部58は、実時間データ処理端末3の通信部48に対して、撮影停止要求を出力する(S57)。これにより、実時間データ処理端末3の通信部48は、撮影停止要求を入力する。そして、実時間データ処理端末3では、接続部38が撮像ユニット40に対して撮影を停止させる(S58)。なお、ステップS59の処理後、表示制御部67は、図30の領域役割設定画面の表示に戻らせる(S59)。
以上により、検出領域の設定処理が終了する。
<画像認識の準備処理>
続いて、図30乃至図32を用いて、画像認識の準備処理について説明する。図30は、画像認識の開始要求の処理を示したシーケンス図である。
図30に示されているように、分散データ処理端末6では、受付部62が利用者から画像認識の開始要求を受け付ける(ステップS61)。この場合、分散データ処理端末6のGUI(Graphical User Interface)が利用される。これにより、分散データ処理端末6の送受信部61は、近端末データ処理装置5に対して、画像認識の開始要求を示す画像認識の開始要求情報を送信する(ステップS62)。この開始要求情報には、上述の認証処理(図23及び図24参照)で認証を行なった認証サーバ9を識別するための認証サーバIDが含まれている。これにより、近端末データ処理装置5の送受信部51は、画像認識の開始要求情報を受信する。そして、通信部58は、実時間データ処理端末3に対して、画像認識の開始要求情報を送信する(ステップS63)。これにより、実時間データ処理端末3の通信部48は、画像認識の開始要求情報を受信する。このように、ユーザーインタフェースを実時間データ処理端末3から分離することで、分散データ処理端末6から遠隔(リモート)操作が可能となる。
図31は、実時間データ処理端末の実時間処理の準備処理を示したシーケンス図である。
図31に示されているように、実時間データ処理端末3の接続部38は、撮像ユニット40から、この撮像ユニット40の型番を取得する(ステップS71)。この場合、接続部38から撮像ユニット40に型番を要求し、撮像ユニット40がこの要求に応じて自ユニットの型番を送信する。
次に、記憶・読出部39は、ステップS71によって取得された型番を検索キーとして、撮像素子情報管理DB3001(図14(a)参照)を検索することにより、対応する撮像素子の数、及びレンズの種類を読み出す(ステップS72)。更に、記憶・読出部39は、ステップS72によって読み出された撮像素子の数を検索キーとして、サイクル値管理DB3002(図14(b)参照)を検索することにより、対応するサイクル値を読み出す(ステップS73)。
次に、記憶・読出部39は、ステップS72によって読み出された撮像素子の数を検索キーとして、画像取得プログラム管理DB3003(図15(a)参照)で管理されている画像取得プログラムを検索する(ステップS74)。次に、記憶・読出部39は、ステップS72によって読み出された撮像素子の数を検索キーとして、合成処理プログラム管理DB3004(図15(b)参照)で管理されている合成処理プログラムを検索する(ステップS75)。次に、記憶・読出部39は、ステップS72によって読み出されたレンズの種類を検索キーとして、歪み補正プログラム管理DB3005(図15(c)参照)で管理されている歪み補正プログラムを検索する(ステップS76)。次に、記憶・読出部39は、ステップS72によって読み出されたレンズの種類を検索キーとして、サービスプログラム管理DB3006(図15(d)参照)で管理されているサービスプログラムを検索する(ステップS77)。
次に、判断部33は、上記ステップS74~S77の検索結果に基づき、実行するプログラムが管理されているか否かにより、実行するプログラムが全てインストール済みか否かを判断する(ステップS78)。例えば、ステップS74で、記憶・読出部39が画像処理プログラムを検索した結果、画像処理プログラムが管理されている場合には、判断部33は、インストール済みと判断し、管理されていない場合には、判断部33は、インストール済みではないと判断する。
そして、判断部33によって、4つ全てのプログラムが管理されていると判断された場合には(ステップS78;YES)、図31に示されている処理は終了する。一方、判断部33によって、4つのプログラムのうち、少なくとも1つのプログラムがインストールされていないと判断された場合には(ステップS78;NO)、後述のステップS91へ進む。
図32は、プログラムの取得処理を示したシーケンス図である。ここでは、実時間データ処理端末3が、図31に示されている処理によってインストールされていないと判明したプログラムを、サービス提供サーバ8から取得する処理を示している。
まず、図32に示されているように、実時間データ処理端末3の通信部48が、近端末データ処理装置5の通信部58に対して、インストールされていないプログラムの要求を示す要求情報を送信する(ステップS91)。この要求情報には、要求するプログラム名が含まれている。
次に、近端末データ処理装置5の送受信部51は、通信部58によって受信された要求情報を、分散データ処理端末6の送受信部61に送信する(ステップS92)。そして、分散データ処理端末6の送受信部61は、サービス提供サーバ8の送受信部81に要求情報を送信する(ステップS93)。
次に、サービス提供サーバ8では、記憶・読出部89が、要求情報に含まれているプログラム名で示されるプログラムを読み出す(ステップS94)。そして、送受信部81が、読み出されたプログラムを分散データ処理端末6の送受信部61に送信する(ステップS95)。この際、プログラム名も送信される。
次に、分散データ処理端末6の送受信部61は、近端末データ処理装置5の送受信部51に、プログラム名を含めたプログラムを送信する(ステップS96)。そして、近端末データ処理装置5の通信部58は、実時間データ処理端末3の通信部48に対して、プログラム名を含めたプログラムを送信する(ステップS97)。
次に、実時間データ処理端末3の記憶・読出部39は、通信部48によって取得されたプログラムをインストールするとともに、図15に示されている各テーブルのうち、インストールするプログラム名を管理する(ステップS98)。
次に、記憶・読出部39は、画像認識処理に必要な全てのプログラムを起動させる(ステップS99)。これにより、実時間データ処理端末3が、起動されたプログラムを実行することで、以下に示されている実時間処理を開始する。
<画像認識処理>
ここでは、図25に示される「物体検出処理サービスへのログイン」ボタンb1が押下されて、サービス提供サーバ8が、画像認識処理のサービスのうち、物体検出処理のサービスを実行する場合について説明する。図33は、画像認識処理を示したシーケンス図である。まず、実時間データ処理端末3は、実時間処理を行なう(ステップS111)。
(物体検出処理)
ここで、図34(a)、(b)を用いて、実時間処理のうち物体検出の処理について説明する。なお、ここでは、図34(a)の処理後に図34(b)の処理が行われるが、図34(a)の処理は、既に説明したため、図34(b)の処理を説明する。
ステップS203の処理後、物体検出部35が、撮像画像データにおいて、物体の候補となる特徴点を検出することで、物体を検出する(ステップS207)。この場合、画像処理部34は、図15(d)に示されているサービスプログラム(ProgD01 (物体検出処理))により処理を実行する。画像処理部34は、予め記憶部3000に記憶されている物体の形状モデルデータと比較しながら撮像画像の端から矩形を探索し、もっともらしい物体の特徴点の位置を選択する。なお、ステップS207の処理については、例えば、「顔認識技術とその応用:パブリックセーフティを支える要素技術・ソリューション特集 ; バイオメトリクス認証, NEC技報, Vol.63, no.3, pp.26-30, 2010-09」で開示されているような、既知技術を用いることができる。
次に、画像処理部34が、検出された物体の画像の歪みを補正する(ステップS208)。
この場合、画像処理部34は、図15(c)に示されている画像処理プログラム(ProgW01(広角歪み補正))により処理を実行する。
なお、ステップS206の処理後は、ステップS207に進み、物体検出部35は、正距円筒射影画像ECのデータにおいて、物体の候補となる特徴点を検出することで、物体を検出する。次に、ステップS208によって、画像処理部34が、検出された物体の画像の歪みを補正する。この場合、画像処理部34は、図15(c)に示されている画像処理プログラム(ProgW02(魚眼歪み補正))により処理を実行する。
以上により、図33に示されているように、実時間データ処理端末3の通信部48は、近端末データ処理装置5の通信部58へ撮像画像データを送信する(ステップS112)。そして、近端末データ処理装置5の送受信部51は、ステップS112で受信された撮像画像データを、分散データ処理端末6の送受信部61へ送信する(ステップS113)。これにより、分散データ処理端末6の表示制御部67は、ディスプレイ517に、図41に示されているような撮像画像をリアルタイムで表示させる(ステップS114)。図41は、分散データ処理端末における撮像画像の表示例を示した図である。この撮像画像には、物体検出(ここでは、顔検出)された矩形を示す枠が表示されている。ステップS112~S114は、ストリーミングの処理である。
(イベント生成処理)
次に、図35及び図36を用いて、実時間処理のうちイベント生成の処理を説明する。図35及び図36は、実時間処理のうちのイベント生成の処理を示したフローチャートである。
ステップS207の処理によって、物体検出部35が、物体(ここでは、顔)を検出しなかった場合には(S211;NO)、所定時間(設定されているサイクル値)待機後に(S212)、再びステップS211の処理に戻る。例えば、検出は1秒間に30回行われる。
これに対し、上述のステップS207の処理によって、物体検出部35が、物体(ここでは、顔)を検出した場合には(S211;YES)、ステップS213の処理へ進む。そして、検出された物体の位置が照合可能範囲 Qにない(照合可能範囲Q外にある)場合にも(S211;NO)、ステップS212の処理に進む。
ステップS213では、記憶・読出部39が、ステップS207で検出された物体に関する物体情報を、物体情報管理テーブル(図16参照)に新たなレコードとして記憶する。こ の場合、記憶・読出部39が、既に物体情報管理テーブルに記憶されているレコードに対しては、リセットのために終了フラグを消去する。
次に、記憶・読出部39は、物体変位管理テーブルに記憶されている終了フラグを初期化するため、物体変位管理テーブルにおける全てのレコードに対して終了フラグを消去する(S214)。なお、終了フラグは、後述のステップS216で付加されるフラグである。
次に、物体変位管理テーブルにおいて、読み出すレコードが残っている場合は(S215;YES)、記憶・読出部39は、物体変位管理テーブルから1レコードのデータを読み出す(S216)。一方、全てのレコードを読み出し済みである場合は(S215;NO)、後述のステップS220へ進む。
次に、算出部31は、ステップS213で記憶された最新(現在)の物体の検出位置と、ステップS216で記憶された過去の物体の検出位置(ここでは座標(x, y)とする)との距離を算出する(S217)。そして、判断部33は、ステップS217で算出された距離が所定の閾値よりも短い(未満)か否かを判断する(S218)。本実施形態では、(式1)に示されている平方ユークリッド距離を用いて算出される。なお、判断部33は、所定の閾値以下か否かを判断してもよい。
平方ユークリッド距離は、より離れた対象ほど大きな重みをもつため、距離が近い過去の物体の位置を見つけ易いという利点がある。なお、他のよく知られた距離の算出方法であってもよく、たとえば、市街地距離や特定の方向(x方向、またはy方向)のみにずれた画素数をカウントする、といった処理を用いることができる。
次に、ステップS217で算出された距離が所定の閾値よりも短い場合には(S218;YES)、現在の物体の位置と物体変位管理テーブルで管理されている残りのレコードの過去の位置との間の距離が算出されずに、ステップS219に進む。ステップS217で算出された距離が所定の閾値よりも短くない(同じ又は長い)場合には(S218;NO)、上記ステップS215の処理に戻る。
次に、記憶・読出部39は、物体変位管理テーブルにおいて、距離が閾値より短いと判断された過去の物体の位置を示す位置情報を、距離が閾値より短いと判断された最新の物体の位置を示す位置情報に置き換えることで、物体変位管理テーブルを更新する(S219)。この場合、記憶・読出部39は、物体情報管理テーブルと物体変位管理テーブルにおいて、それぞれ置き換えに使われた位置情報を含むレコードの終了フラグ欄に「終了フラグ」を付す。
次に、物体変位管理テーブルにおいて、終了フラグが付されていないレコードが残っている場合には(S220;YES)、実時間データ処理端末3は、物体の移動方向を考慮して、建物のエントランスの出入りをカウントする処理を行う(S221)。ここで、図37を用いて、物体の移動方向を考慮して、建物のエントランスの出入りをカウントする処理を説明する。図37は、物体の移動方向を考慮して、建物のエントランスの出入りをカウントする処理を示したフローチャートである。
物体変位管理DB3008において、終了フラグが付されていないレコードが残っている場合には(S220;YES)、図37に示されているように、判断部33は、当レコードで物体(人物等)が特定されているかを判断する(S221-1)。なお、“Kato”等のように具体的に名前を特定することができる場合だけでなく、“Unknown”のように名前を特定できないが物体の存在を特定できた場合も、物体が特定された場合に含まれる。
そして、物体が特定されている場合には(S221-1,YES)、判断部33は、物体変位管理テーブルのそれぞれのレコードにおいて、初期位置(x座標)と最後の最新位置(最終位置(x座標))のそれぞれが、検出可能範囲Pの右半分に含まれるか又は左半分に含まれるかに基づき、物体の移動方向を判断する(S221-2)。例えば、初期位置(x座標)が検出可能範囲Pの左半分の領域に含まれ、最終位置(x座標)が検出可能範囲Pの右半分の領域に含まれている場合には、初期位置を基準にした最終位置の方向に基づき、物体がエントランスの左側から入って右側に移動したと判断される。また、初期位置(x座標)が検出可能範囲Pの右半分の領域に含まれ、最新位置(x座標)が検出可能範囲Pの左半分の領域に含まれている場合には、物体がエントランスの右側から入って左側に移動したと判断される。
そして、物体が左側から右側に移動したと判断された場合には(S221-3;左から右)、
算出部31は、物体が左側から右側へ移動した回数をカウントアップする(S221-4)。一方、物体が右側から左側に移動したと判断された場合には(S221-3;右から左)、算出部31は、物体が右側から左側へ移動した回数をカウントアップする(S221-5)。
続いて、ステップS221-4,5の処理後、図38に示されているように、実時間データ処理端末3の通信部48は、近端末データ処理装置5の通信部58に対して、表示変更要求を出力する(S301)。この表示変更要求には、移動方向毎に合計の移動回数を示す情報が含まれている。この情報は、例えば、「LtoR2回及びRtoL2回」を示す。そして、次に、LtoRがカウントアップされると、「LtoR3回及びRtoL2回」を示す情報が出力される。これにより、近端末データ処理装置5の通信部58は、表示変更要求を入力する。そして、送受信部51は、分散データ処理端末6に対して、表示変更要求を送信(転送)する(S302)。これにより、分散データ処理端末6の送受信部61は、表示変更要求を受信する。
次に、分散データ処理端末6では、表示制御部67が、後述の図41に示されている移動方向別回数表示領域m3の表示内容を変更する(S303)。図41では、前回の「LtoR2回及びRtoL2回」の場合から、今回の「LtoR3回及びRtoL2回」の場合に変更された状態が示されている。この場合、「1」は、LtoRの回数とRtoLの回数の差分が示され、表示制御部67が差分を計算して表示させる。
なお、初期位置(x座標)と最新位置(x座標)を利用して、左右方向の移動を検出するだけでなく、初期位置(y座標)と最新位置(y座標)を利用して、上下方向の移動を検出してもよい。
また、ステップS221-4,5の処理後、図38に示されているように、実時間データ処理端末3の通信部48は、近端末データ処理装置5の通信部58に対して、移動情報を記憶させるための移動情報記憶要求を出力する(S304)。この移動情報記憶要求には、物体の最新位置の検出日時、物体の移動方向、及び物体の名前を示す情報が含まれている。物体の最新位置は、検出可能範囲Pから物体が抜け出す直前の物体の位置を示し、検出可能範囲P内で物体検出された最後の位置を示す。移動方向は「LtoR」または「RtoL」を示す情報である。物体の名前には、“Kato”等のように具体的な名前だけでなく、名前を特定できないが人物の存在を特定できた場合の“Unknown”も含まれる。
次に、送受信部51は、分散データ処理端末6に対して、移動情報記憶要求を送信(転送)する。これにより、分散データ処理端末6の送受信部61は、移動情報記憶要求を受信する。
更に、送受信部61は、集中データサーバ7に対して、移動情報記憶要求を送信(転送)する。これにより、集中データサーバ7の送受信部71は、移動情報記憶要求を受信する。
次に、集中データサーバ7では、記憶・読出部79が、移動情報管理DB7002(図18(b)参照)に対して、物体の最新位置の検出日時、物体の移動方向、及び物体の名前を示す情報を関連付けて1レコードとして記憶する(S307)。
なお、物体の最新位置の検出日時、物体の移動方向、及び物体の名前を示す情報が関連付けられた1レコードは、記憶から一定期間(例えば、3ヶ月)経過後に削除するようにしてもよい。
続いて、図35に戻り、ステップS221の処理後、記憶・読出部39は、当該終了フラグが付されていないレコードを削除して(S222)、図36に示されているステップS231の処理に進む。この処理は、物体変位管理テーブルにおいて終了フラグが付されずに残っている場合には、既に物体(ここでは、人)が後述の照合可能範囲Qから出てしまったと推測できるため、物体変位管理テーブルからレコードを削除して、今後の比較対象から除くようにするための処理である。
一方、物体変位管理テーブルにおいて、終了フラグが付されていないレコードが残っていない場合には(S220;NO)、上記ステップS221の処理は省略されて、ステップS231の処理に進む。
次に、物体情報管理テーブルにおいて、終了フラグが付加されていないレコードが残っている場合には(S231;YES)、記憶・読出部39は、この残ったレコードの位置情報を物体変位管理テーブルに新たなレコードとして追加する(S232)。この場合、記憶・読出部39は、追加したレコードにおいて、照合進捗状況を「0(認識前)」で管理する。この処理は、後述の検知可能範囲Pに新しく物体(ここでは、人)が入って来たと推測できるので、その後の変位を管理するための処理である。
また、この場合、記憶・読出部39は、追加したレコードにおけるID欄には、前回追加したIDの値に「+1」して記憶する。なお、記憶・読出部39は、ステップS221でレコードを削除した時にIDのリナンバリングはしない。このようにすることで、照合進捗状況が「1(照合中)」のレコードに対して正しい結果を保存することができる。
一方、物体情報管理テーブルにおいて、終了フラグが付加されていないレコードが残っていない場合には(S231;NO)、後述のステップS236の処理に進む。
次に、ステップS232の処理後、判断部33は、物体変位管理テーブルにおいて、照合進捗状況「0(照合前)」の物体が、照合可能範囲Q内にあるか否かを判断する(S233)。この判断は、物体の位置情報に基づいて行われる。そして、ステップS233により、照合可能範囲Qにあると判断された場合には(S233;YES)、画像処理部34は、物体変位管理テーブルのうち、照合可能範囲Q内にある物体の位置、幅、及び高さを参照し、これらの値で定まる部分画像データを切り出して、JPEGなどの汎用形式で符号化する(S234)。この場合、記憶・読出部39は、物体変位管理テーブルの対応するレコードの照合進捗状況を「1(照合中)」に変更する。
一方、ステップS233において、照合可能範囲Q内にないと判断された場合には(S233;NO)、ステップS236の処理に進む。
次に、イベント生成部36は、近端末データ処理装置5に対して部分画像データと部分画像データに関連付けられた部分画像IDを送信することを通知するイベントメッセージを生成する(S235)。具体的には、イベント生成部36は、”Send”といったイベントメッセージを生成する。
続いて、画像処理部34は、表示されている文字画像をクリアしてから、物体変位管理テーブルの照合進捗状況が「1(照合中)」または「2(照合完了)」に関連付けられている位置を参照し、撮像画像の対応する位置に文字画像を合成する(S236)。
ここで、図41に、文字が画像を合成した例を示す。図41は、ある部屋(ここでは、建物のエントランス)で画像取得端末を設置した場合の撮像ユニットによる撮影範囲を示した図である。画像処理部34は、位置(x2,y2)の部分画像に対しては照合中であることを示すために”!”で表される待機状態マークm1を合成する。また、画像処理部34は、位置(x3,y3)の部分画像に対して照合結果を示すために名前を参照して部分画像の対応位置に、”Kato”で表される名前情報m2を合成する。この名前情報m2は、物体変位管理DB3008から読み出された情報である。なお、合成後の画像データは、図33に示されているステップS112,S113によって分散データ処理端末6まで送信され、ステップS114で表示される。
次に、通信部48が、後述のステップS318による照合結果を受信していない場合は(S237;NO)、ステップS212の処理へ進む。
一方、通信部48が照合結果(名前と部分画像ID)を受信した場合は(S237;YES)、記憶・読出部39が物体変位管理テーブルにおいて、受信された部分画像IDと関連付けられている名前欄に、受信された名前を記憶する(S238)。この場合、記憶・読出部39は、照合進捗状況を「1(照合中)」から「2(照合完了)」に変更する。そして、画像処理部34は、表示されている文字画像をクリアしてから、受信された部分画像IDに関連付けられた物体変位管理テーブルの位置を参照し、撮像画像の対応する位置に受信した名前で文字画像を合成する(S239)。そして、ステップS212の処理へ戻る。ステップS239により、表示制御部37は、照合中であった”!”の表示を”Kato”のように名前の表示に更新する。これにより、分散データ処理端末6の利用者は照合の進捗状況を迅速に知ることができる。
以上により、実時間処理のうちのイベント生成の処理が終了する。
続いて、図33に戻り、実時間データ処理端末3aの通信部48は、近端末データ処理装置5の通信部58に対して、物体(ここでは、顔)の部分画像データ及び部分画像IDを送信する(S115)。
次に、近端末データ処理装置5では、データ検出部56が、通信部58によって”Send”のイベントメッセージの受信の有無を検出する(S116)。そして、イベントメッセージの受信が検出された場合には(S116;YES)、通信部58は、イベントメッセージと共に送信された部分画像データ及び部分画像IDを受信する(S117)。そして、記憶・読出部59が、記憶部5000に部分画像データを一時的に記憶する(S118)。
次に、データ検出部56は、部分画像データの受信が完了したか否かを監視する(S119)。このステップS119の処理は、1つのイベントメッセージにつき、全ての部分画像データ及び部分画像IDが受信されるまで繰り返される(S119;NO)。そして、部分画像データの受信が完了した場合には(S119;YES)、記憶・読出部59は、記憶部5000から1つのイベントメッセージと共に送られ、記憶部5000に一時的に記憶されている全ての部分画像データ及び部分画像IDを読み出す(ステップS120)。その後、送受信部51は、イントラネット200を介して、分散データ処理端末6の送受信部61に対して、ステップS120で読み出された全ての部分画像データ及び部分画像IDを送信する(S121)。これにより、分散データ処理端末6の送受信部61は、全ての部分画像データ及び部分画像IDを受信する。部分画像データは、後ほど被照合データとして利用される。
(照合処理)
続いて、図39乃至図41を用いて、照合処理について説明する。生成の処理を示したフローチャートである。図39は、照合する処理を示したシーケンス図である。図40は、照合処理を示したフローチャートである。図41は、ある部屋に画像取得端末を設置した場合の撮像ユニットによる撮影範囲を示した図である。
まず、利用者は、照合データを登録するために、分散データ処理端末6から集中データ処理サーバ7にアクセスすることで、集中データ処理サーバ7に照合データの登録を行う(S311)。具体的には、記憶・読出部79は、記憶部7000照合データを記憶するとともに、照合データ管理DB7001に対して、ファイル名及び名前を関連付けて記憶する。
次に、集中データ処理サーバ7では、特徴量生成部74が、ステップS311によって登録された照合データをビットマップデータに復号化する変換を行ない、照合データに係る顔画像の目鼻の凹凸や傾き等の個人を識別するための特徴量のパラメータを生成する(S312)。
次に、上述のステップS121の処理により、分散データ処理端末6の送受信部61が、被照合データとしての部分画像データ及び部分画像IDを受信すると、送受信部61は、集中データ処理サーバ7に対して、照合要求を示す照合要求情報を送信する(S313)。この照合要求情報には、被照合データ及び部分画像IDが含まれている。これにより、集中データ処理サーバ7の送受信部71は、照合要求情報を受信する。
次に、集中データ処理サーバ7は、照合処理を行う(S314)。ここで、図40を用いて、照合処理について説明する。図40は、照合処理を示したシーケンス図である。
図40に示されているように、集中データ処理サーバ7の特徴量生成部74が、ステップS313によって受信された被照合データをビットマップデータに復号化する変換を行ない、被照合データに係る顔画像の目鼻の凹凸や傾き等の個人を識別するための特徴量のパラメータを生成する(S401)。
次に、記憶・読出部79は、照合データ管理DB7001を検索することで、登録されている照合データが残っているか否かを判断する(S402)。そして、残っていると判断された場合には、照合部75は、両データ(照合データ及び被照合データ)に係る特徴量のパラメータを比較して類似度を算出する(S403)。そして、記憶・読出部79が、ステップS312で登録された照合データに付けられている「名前」と、ステップS403で算出された「類似度」とを組にして一時的に記憶部7000に記憶する(S404)。その後、図18(a)に示されている照合データ管理テーブルにおいて、照合データを次の行へ変更して、ステップS402の処理が再度行なわれる。
一方、ステップS402において、照合データが残っていない(全くない場合も含む)と判断された場合には、ステップS405の処理に進む。そして、判断部73は、記憶部7000に一時的に記憶していた各類似度のうち最大の類似度が閾値より大きいか否かを判断する(S405)。
そして、ステップS405において、判断部73が、最大の類似度が閾値よりも大きいと判断した場合には(YES)、記憶・読出部79は、照合データ管理DB7001から最大の類似度の照合データに付けられた「名前」を読み出す(S409)。閾値は、例えば「80%」である。これにより、類似度が低い場合には、「名前」が読み出されない。
一方、ステップS405において、判断部73が、記憶部7000に一時的に記憶していた各類似度のうち最大の類似度が閾値以下であると判断した場合には(NO)、記憶・読出部79は、記憶部7000から、“Unknown”を示す情報を読み出す(S407)。これにより、ステップS314の照合処理は終了する
続いて、図39に戻り、集中データ処理サーバ7の送受信部71は、分散データ処理端末6に対して、照合結果を示す照合結果情報を送信する(S315)。この照合結果情報には、ステップS406で読み出された「名前」又はステップS407で読み出された情報、及び、ステップS313で受信された部分画像IDが含まれている。これにより、分散データ処理端末6の送受信部61は、照合結果情報を受信する。
次に、分散データ処理端末6では、表示制御部67が、図41に示されているような照合結果を表示させる(S316)。ここで、図41を用いて、照合結果の表示について具体的に説明する。図41は、照合結果表示画面を示す図である。
図29に示されている検出領域設定画面と同じように、照合結果表示画面の検出可能範囲Pは、撮像ユニット40の撮影範囲が物体(ここでは、顔)を検出することができる範囲である。この検出可能範囲P内に、物体(ここでは、顔)の画像を照合可能な照合可能範囲Qと、この照合可能範囲Q外であって照合不可能な照合不可能範囲Rが含まれる。図41において、マージンa、マージンbは、検出可能範囲Pにおいて、それぞれx方向の左右端、y方向の上下端に設けられた所定の値である。これらの値は、予め定められた値である。
このように、検出可能範囲Pとは別に照合可能範囲Qを設けたのは、検出可能範囲Pは撮像素子401a等の撮像範囲として固定されているため、任意の部屋又は領域の大きさに合った範囲で物体の検出を行うことができるようにするためである。また、これにより、物体が検出可能範囲Pに入った後、照合可能範囲Q内に入る前に検出可能範囲Pから外に出てしまった場合に、実時間データ処理端末3aは、近端末データ処理装置5及び分散データ処理端末6を介して、集中データ処理サーバ7に被照合データを送信しなくて済むため、無駄な通信料を削減することができる。
上述のステップS207の処理による顔検出は、撮影範囲である検出可能範囲Pの全体に渡って行われる。物体が、マージンa,bで決まる矩形の範囲外にある場合は、物体は照合可能範囲Q内にない。この場合、物体は検出可能範囲P内で検出されるが、照合可能範囲Q内では検出されないため、結果的に、物体は、検出可能範囲P内の照合可能範囲Q以外の範囲である照合不可能範囲Rに存在していることになる。
ここで、(x1,y1)は、照合不可能範囲R内に存在する物体が検出された場合の部分画像データの左上隅の座標を示す。
(x2,y2)は、照合可能範囲Q内に存在する物体が検出された場合の部分画像データの左上隅の座標を示す。また、ここでは、“!”で表された待機状態マークm1が表示されている。この待機状態マークm1は、分散データ処理端末6が照合要求情報を送信後(S313)、集中データ処理サーバ7から照合結果情報を受信する(S315)までの間に表示されている。
(x3,y3)は、照合可能範囲Q内に存在する物体が検出された場合の部分画像データの左上隅の座標を示す。また、ここでは、“Kato”で表された名前情報m2が表示されている。この名前情報は、ステップS315によって集中データ処理サーバ7から受信された「名前」である。このように、照合可能範囲Qに入った物体は、最初は待機状態マークm1が表示されるが、1~2秒後には、名前情報m2が表示される。これにより、閲覧者は、表示されている物体(ここでは、顔)が誰であるかを認識(特定)することができる。なお、名前が不明な場合は、“Unknown”と表示される。この表示は、上記ステップ407の処理が実行され、ステップS315によって受信された「名前」が“Unknown”の場合に行われる。
更に、照合結果表示画面の右上には、上述のように、移動方向別回数表示領域m3が表示されている。これにより、エントランスに入った人が3名、エントランスから出た人が2名、建物に残っている人が1名であるということが容易に分かる。また、例えば、社員証等の入館証による入室管理システムが既に導入されていたとしても、友連れした場合は、正確な入退室を把握できない。しかしながら、本実施形態によれば、確実に人物の出入りを管理することができる。
また、照合結果表示画面の右下には、「移動情報表示」ボタンe1が表示されている。「移動情報表示」ボタンe1は、後述の図43又は図44に示す移動情報を表示するためのボタンである。
(移動情報の表示)
続いて、図42乃至図44を用いて、移動情報の表示の処理について説明する。図42は、移動情報の表示の処理を示すシーケンス図である。図43は、移動結果表示画面を示す図である。
まず、利用者が「移動情報表示」ボタンe1を押下すると、分散データ処理端末6の受付部62は、移動情報の表示を受け付ける(S501)。そして、送受信部61は、集中データ処理サーバ7に対して、移動情報を要求するための移動情報要求を送信する(S502)。この移動情報には、現在の日時が含まれている。これにより、集中データ処理サーバ7の送受信部71は、移動情報要求を受信する。
次に、集中データ処理サーバ7では、記憶・読出部79が、移動情報管理DB7002から、受信された現在の日付に基づいて所定の移動情報を読み出す(S503)。例えば、現在の日時が2019年4月18日であった場合には、記憶・読出部79は、移動情報管理DB7002の日時欄(図18(b)参照)を参照し、同じ「日」の全てのレコードを読み出す。
次に、計数部76は、単位時間毎(本実施形態では1時間毎)に各方向、人物の名前の組合せでレコード数を計数する(S504)。本実施形態では、計数部76は、2種類の移動方向(LtoR, RtoL)、及び、2種類の人物の名前(Unknown, Kato)の組み合わせ4種類で計数する。
次に、集中データ処理サーバ7の送受信部71は、分散データ処理端末6に対して、移動情報を送信する(S505)。この移動情報には、ステップS504で計数された1時間ごとで4種類の計数データが含まれている。
次に、分散データ処理端末6では、表示制御部67が、ステップS505によって受信された移動情報をディスプレイ517上に、図43に示されているような棒グラフで表された移動結果表示画面を表示させる(S506)。図43の例では、正数、負数はそれぞれ左から右、右から左へ移動した人の数を示し、各棒グラフはKatoとUnknown(それ以外の人)を積み上げて表示している。このように単位時間ごとにグラフ表示することで、入退室の様子が一目瞭然となる。また、特定の人物(例えば、Kato)に対しては、いつ移動したのかについても可視化できる。
なお、図43の移動結果表示画面では、現在日であるため、「記録表示」ボタンを押下した時点よりも先の時刻(例えば、18時以降)については表示されない。また、グラフ上部の日付の右に配置されている矢印は翌日の結果を表示できるが、表示例1では、現在日であるため、押下しても反応しないことを淡い表示で示している。その一方で、日付の左側の矢印を押下すれば、図42の処理が再度実施されることで、一日前のグラフが表示される。この場合は24時間すべての結果が表示されるとともに、日付の右側の矢印が濃い表示になり、翌日の結果について再表示することができる。また、受付部62が右下の「OK」ボタンf1の押下を受け付けることで、表示制御部67は、図43の移動結果表示画面から図41の照合結果表示画面に切り替える。
図44は、他の移動結果表示画面を示す図である。この場合、図42におけるステップS504において、上述のステップS504における計数部76の処理に替えて、計数部76は、特定の人物(ここでは、名前)ごとに、移動方向(LtoR, RtoL)を計数し、LtoRの計数結果からRtoLの計数結果を差し引く。この場合、ステップS505において、送受信部505が送信する移動情報は、計数部76によって、LtoRの計数結果からRtoLの計数結果を差し引かれた場合に、差分が0でない人物の名前を示す。
これにより、ステップS506において、分散データ処理端末6では、表示制御部67が、ディスプレイ517上に、図44に示されているような人物の名前が表された移動結果表示画面を表示させる。図44の例では、表示された名前は、現在時点で建物内に残っている人の名前である。また、受付部62が、利用者によって、日付欄(ここでは、2019-04-19)又は時刻欄(ここでは、17:12:37)の変更、及び「再表示」ボタンg1の押下を受け付けると、図44の表示のためのステップS501~S506が再度実行される。但し、「再表示」ボタンg1が押下された場合のステップS503の処理は、入力された日付の0時0分0秒から入力された時刻までが読み出される移動情報の範囲となる。また、受付部62が右下の「OK」ボタンg2の押下を受け付けることで、表示制御部67は、図44の移動結果表示画面から図41の照合結果表示画面に切り替える。
〔実施形態の主な効果〕
以上説明したように本実施形態によれば、実時間データ処理端末3は、第1の位置を基準にした第2の位置の方向を判断することで、物体の移動方向を求めることができるという効果を奏する。
また、実時間データ処理端末3で同じ物体が撮影された場合には、実時間データ処理端末3から近端末データ処理装置5及び分散データ処理端末6を介して、集中データ処理サーバ7に、撮影画像データ及び照合要求の送信を行わない。これにより、実時間データ処理端末3の利用者に対して、必要以上に通信料金の請求が行われることを抑制することができるという効果を奏する。
〔補足〕
上記実施形態では、ステップS217,S218において、最新の物体の検出位置と過去の物体の検出位置との距離だけを判断材料としたが、これに限るものではない。例えば、最新の物体の部分画像と過去の物体の部分画像との面積差も判断材料にしてもよい。具体的には、以下の2つの条件である(条件1)及び(条件2)を満たしたときに、ステップS219に進むようにしてもよい。この判断によれば、現在の物体の検出位置が過去の検出位置に近かったとしても、不自然に検出領域の大きさに差があれば、同じ物体(ここでは、人)であると認定しないこととすることができる。これによって、本来、照合要求が不要であるべき送信(S115,S121)を更に減らすことができる。
(条件1)過去の物体と最新の物体との距離が所定の閾値未満(又は以下)(ステップS218と同じ)
(条件2)過去の物体と最新の物体との面積差の絶対値が所定の閾値未満(又は以下)
なお、条件2の面積差は、算出部31によって、部分画像の高さと幅から算出された各面積(width*height)の差である。
また、上記実施形態では、待機状態マークm1が”!”で表されているが、これに限るものではない。例えば、砂時計のアイコンや、「照合中」又は「認証中」等のコメントであってもよい。
また、撮像画像データについて説明したが、これに限らず、撮影されずに利用者によって作成された作成画像データであってもよい。この場合、撮影画像データ及び作成画像データは、「画像データ」の一例である。また。画像取得端末2は、通信端末の一例であり、画像データを外部から取得せず、自端末で作成してもよい。更に、通信端末は、集音により音データを取得してもよいし、温度センサにより温度データを取得してもよいし、湿度センサにより湿度データを取得してもよい。
また、各CPU301,501,701等の各構成要素は、単一であってもよく複数であってもよい。また、画像取得端末2、分散データ処理端末6、及び集中データ処理サーバ7は、それぞれ複数あってもよい。更に、分散データ処理端末6はサーバであってもよい。
また、上述の実施形態における各機能は、一又は複数の処理回路によって実現することが可能である。ここで、本実施形態における「処理回路」は、電子回路により実装されるプロセッサのようにソフトウェアによって各機能を実行するようプログラミングされたプロセッサや、上述した各機能を実行するよう設計されたASIC(Application Specific Integrated Circuit)、DSP(digital signal processor)、FPGA(field programmable gate array)、SOC(System on a chip)、GPU、及び従来の回路モジュール等のデバイスを含む。