〔全体概略〕
以下、図面を用いて、本発明の一実施形態の全体の概略について説明する。本実施形態は、エッジコンピューティングを実現する通信システムを開示している。即ち、本実施形態は、サービス提供サーバ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及び画角αで表すことができる。
<近端末データ処理装置、分散データ処理端末のハードウェア構成>
図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、DVD-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は、各種指示の選択や実行、処理対象の選択、カーソルの移動などを行う入力手段の一種である。DVD-RWドライブ714は、着脱可能な記録媒体の一例としてのDVD-RW(Digital Versatile 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と通信を行なうことで、分散処理を行なうことができる。なお、画像取得端末2、イントラネット200及び分散データ処理端末6を含む分散処理システム100は、処理システムの一例である。
また、実時間データ処理端末3及び近端末データ処理装置5は、OSだけでなく、ドライバ、ソフトウェア開発キット(SDK)、またはアプリケーションプログラミングインタフェース(API)を搭載しており、それぞれが異なっていてもよい。
続いて、図面を用いて、本発明の一実施形態の機能構成及び処理について説明する。
〔実施形態の機能構成〕
まず、図12乃至図23を用いて、本実施形態に係る通信システムを構成する端末、装置、及びサーバの各機能構成について説明する。図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、この部分画像の照合可能範囲Cにおける位置(座標)、部分画像の幅、部分画像の高さ、この部分画像が集中データ処理サーバ7で照合される進捗状況を示した照合進捗状況、部分画像で示された物体(ここでは、人物)を識別するための物体ID、及び終了フラグ(ここでは、「*」)が関連付けて管理されている。これらのうち、部分画像の検出可能範囲Pにおける位置、部分画像の幅、及び部分画像の高さは、物体情報管理テーブル(図16参照)から移行された物体特定情報である。即ち、物体情報管理テーブルにおける情報(位置、幅、高さ)は現在の部分画像を特定するための部分画像特定情報であり、物体変位管理テーブルにおける情報(位置、幅、高さ)は過去の部分画像を特定するための部分画像特定情報である。
なお、物体IDは、物体を識別するための物体識別情報の一例である。物体識別情報には、例えば、従業員番号、学籍番号、運転免許書番号、日本の制度で使われているマイナンバー等が含まれる。
また、物体情報管理テーブル(図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、算出部65、表示制御部67、及び記憶・読出部69を有している。これら各部は、図9に示されている各構成要素のいずれかが、分散データ処理端末6において、EEPROM504からRAM503上に展開されたプログラムに従ったCPU501からの命令によって、動作することで実現される機能又は手段である。
また、分散データ処理端末6は、図9に示されているROM502、RAM503、及びEEPROM504によって構築される記憶部6000を有している。記憶部6000には、物体存在管理DB6001、及び表示領域管理DB6002が構築されている。
物体存在管理DB6001は、後述の物体存在管理テーブルによって構成されている。表示領域管理DB6002は、表示領域管理テーブルによって構成されている。
(物体存在管理テーブル)
図18(a)は、物体存在管理DB6001に設けられた物体存在管理テーブルを示す概念図である。この物体存在管理テーブルでは、人物等の物体を識別するための物体IDが管理されている。これにより、物体IDで示される物体が、店舗内の任意の領域(後述の図31に示す領域a1~a4)に存在していることを管理することができる。
(表示領域管理テーブル)
図18(b)は、表示領域管理DB6002に設けられた表示領域管理テーブルを示す概念図である。この表示領域管理テーブルでは、後述の図30に示される各検出領域表示欄d11~d14に表示される店舗内の領域が管理されている。
(分散データ処理端末の各機能構成)
分散データ処理端末6の送受信部61は、分散データ処理端末6における、遠距離通信回路511、アンテナ511a、及びCPU501の処理によって実現され、通信ネットワーク(ここでは、インターネット600)を介して、集中データ処理サーバ7と各種データ(または情報)の送受信を行う。例えば、送受信部61は、照合データと被照合データとの照合要求を集中データ処理サーバ7に対して送信したり、集中データ処理サーバ7から送られて来た照合結果に対する処理を行ったりする。
受付部62は、分散データ処理端末6における、タッチパネル521、及びCPU501の処理によって実現され、利用者の各種操作を受け付ける。
判断部63は、分散データ処理端末6におけるCPU501の処理によって実現され、各種判断を行なう。
算出部65は、分散データ処理端末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、7002,7003が構築されている。照合データ管理DB7001は、後述の照合データ管理テーブルによって構成されている。なお、照合データは、集中データ処理サーバ7以外の他のデータ管理サーバ等で記憶してもよい。また、記憶部7000には、物体位置管理DB7002が構築されている。物体位置管理DB7002は、後述の物体位置管理テーブルによって構成されている。更に、記憶部7000には、計数管理DB7003が構築されている。計数管理DB7003は、後述の計数管理テーブルによって構成されている。
(照合データ管理テーブル)
図19(a)は、照合データ管理DB7001に設けられた照合データ管理テーブルを示す概念図である。この照合データ管理テーブルでは、照合データのファイル名を示す画像ファイル、及びこの画像ファイルに係る照合画像で示される人物等の物体を識別するための物体IDが関連付けて管理されている。
(物体位置管理テーブル)
図19(b)は、物体位置管理DB7002に設けられた物体位置管理テーブルを示す概念図である。この物体位置管理テーブルでは、受信日時、領域番号、及び物体IDが関連付けて管理されている。これらのうち、受信日時は、集中データ処理サーバ7が分散データ処理端末6から移動情報記憶要求を受信(S306参照)した日時を示す。領域番号は、人物としての物体が存在した店舗内の領域を示す情報である。例えば、領域番号「1」の場合、人物は図31に示されている店舗内の領域a1に存在(位置)していた旨を示す。物体IDは、照合データ管理テーブルにおける物体IDと同様である。
(計数管理テーブル)
図19(c)は、計数管理DB7003に設けられた計数管理テーブルを示す概念図である。この計数管理テーブルでは、店舗における日時帯(例えば、1時間)毎に、移動領域(左、上、右、下)に移動した人物等の物体の数が関連付けて管理されている。
(集中データ処理サーバの各機能構成)
集中データ処理サーバ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時間毎)に各方向、物体IDの組合せでレコード数を計数する。
記憶・読出部79は、CPU701の処理によって実現され、記憶部7000に各種データ(または情報)を記憶したり、記憶部7000から各種データ(または情報)を読み出したりする。
<サービス提供サーバの機能構成>
次に、図13、図20乃至図22を用いて、サービス提供サーバ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は、後述の認証サーバ管理テーブルによって構成されている。以下、各テーブルについて詳細に説明する。
(セッション管理テーブル)
図20は、セッション管理DB8001に設けられたセッション管理テーブルを示す概念図である。このセッション管理テーブルでは、分散データ処理端末6にサービスを提供するために、分散データ処理端末6と確立する通信セッションを識別するためのセッションID、分散データ処理端末6の利用者を識別するための端末ID、及び端末IDで示される利用者の分散データ処理端末6のIPアドレスが関連付けて記憶されて管理されている。
図21(a)、(b)、(c)は、端末ID(identification)の一例として、電子メールアドレスを示しており、それぞれ認証対象部分と認証対象外部分によって構成されている。認証対象部分は、認証サーバ9によって認証される際に利用される利用者IDである。認証対象外部分は、認証サーバ9によって認証される際に利用されない部分である。
このうち、図21(a)に示されている第1のパターンでは、認証対象部分は、アカウント名”asai”、ホスト名”myhost”、及びドメイン名の前段部分“ricoo.com”によって構成されている。一方、認証対象外部分は、ドメイン名の後段部分”theta1”によって構成されている。この場合、取出部87は、”/”によって、認証対象部分と認証対象外部分を区別する。
また、図21(b)も第1のパターンを示しているが、認証対象外部分が図21(a)と異なる。即ち、認証サーバ9は、図21(a)に示されている端末IDと、図21(b)に示されている端末IDでは、認証対象部分が同じであるため、同じIDとして認証する。
なお、端末IDは、図21(c)に示されている第2のパターンであってもよい。この第2のパターンでは、認証対象部分は、アカウント名の前段部分”asai”によって構成されている。一方、認証対象外部分は、アカウント名の後段部分”theta2”、ホスト名”myhost”、及びドメイン名“ricoo.com”によって構成されている。この場合、取出部87は、”+”によって、認証対象部分と認証対象外部分を区別する。
(認証サーバ管理テーブル)
図22は、認証サーバ管理テーブルを示す概念図である。この認証サーバ管理テーブルでは、各認証サーバ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から、図21に示されているような利用者ID(認証対象部分)を取り出す処理を行う。
記憶・読出部89は、主に、図10に示されているCPU701からの命令、及びHDD705によって実現され、記憶部8000に各種データを記憶したり、記憶部8000から各種データを読み出したりする。
<認証サーバの機能構成>
次に、図13及び図23を用いて、認証サーバ9の機能構成について詳細に説明する。認証サーバ9は、送受信部91、認証部92、及び、記憶・読出部99を有している。これら各部は、図10に示されている各構成要素のいずれかが、HD704からRAM703上に展開された認証サーバ9用プログラムに従ったCPU701からの命令によって動作することで実現される機能又は手段である。
また、認証サーバ9は、図10に示されているRAM703、及びHD704によって構築される記憶部9000を有している。この記憶部9000には、分散データ処理端末6又はサービス提供サーバ8から送られて来る各種データが記憶される。
更に、記憶部9000には、認証管理DB9001が構築されている。認証管理DB9001は、後述の認証管理テーブルによって構成されている。以下、このテーブルについて詳細に説明する。
(認証管理テーブル)
図23(a)は認証サーバ9aが有する認証管理テーブルを示す概念図、図23(b)は認証サーバ9bが有する認証管理テーブルを示す概念図、図23(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から各種データ(または情報)を読み出したりする。
〔本実施形態の処理又は動作〕
続いて、図24乃至図48を用いて、本実施形態の処理又は動作について説明する。
<認証処理>
まずは、図24乃至図27を用いて、認証処理について説明する。図24及び図25は、認証処理を示したシーケンス図である。図26及び図27は、分散データ処理端末の画面例を示す図である。
図24に示されているように、分散データ処理端末6の送受信部61からサービス提供サーバ8に対して、認証先選択画面の要求を送信する(ステップS21)。この要求には、分散データ処理端末6の端末IDが含まれている。また、この際、送受信部61は、自端末のIPアドレスを送信する。これにより、サービス提供サーバ8の送受信部81は、認証先選択画面の要求、及び分散データ処理端末6のIPアドレスを受信する。
次に、サービス提供サーバ8の判断部82は、セッション管理テーブル(図20参照)に、ステップS21で受信された端末IDが所定のセッションIDと関連づけて管理されているか否かを判断する(ステップS22)。以降、端末IDが管理されていなかった場合について説明する。
サービス提供サーバ8の送受信部81は分散データ処理端末6に対して、認証先選択画面のデータを送信する(ステップS23)。これにより、分散データ処理端末6の送受信部61は、認証先選択画面のデータを受信する。
次に、分散データ処理端末6の表示制御部67はディスプレイ517に対して、図26に示されているような認証先選択画面s1を表示させる(ステップS24)。図26では、分散データ処理端末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を検索キーとして、認証サーバ管理テーブル(図22参照)を検索することにより、対応する認証サーバの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(認証対象部分)及びパスワードの組を検索キーとし、認証管理テーブル(図23参照)において同じ組の認証対象部分及びパスワードを検索した結果を用いて、認証部92が認証を行なう(ステップS30)。認証部92は、同じ組が管理されている場合には、分散データ処理端末6はサービス提供サーバ8からサービスを受けるための正当な端末であると判断し、同じ組が管理されていない場合には、分散データ処理端末6はサービス提供サーバ8からサービスを受けるための正当な端末でないと判断する。
なお、ステップS28では、取出部87が端末IDから認証対象部分を取り出したが、これに限るものではない。例えば、サービス提供サーバ8は取出部87を有しておらず、ステップS29において、送受信部81が、パスワード及びURLの他に、端末IDのうち利用者ID(認証対象部分)のみを送信するようにしてもよい。
続いて、図25に示されているように、認証サーバ9の認証部92は、トークン(送信権)の暗号化を行なう(ステップS31)。そして、送受信部91は、ステップS29によって受信された分散データ処理端末6のURLに基づいて、この分散データ処理端末6に認証結果を送信する(ステップS32)。この認証結果は、分散データ処理端末6が正当であるか否かを示すとともに、ステップS31によって暗号化されたトークンが含まれている。これにより、分散データ処理端末6の送受信部61は、利用者の認証結果を受信する。以降、利用者が正当な権限を有する場合について説明する。
分散データ処理端末6の送受信部61は、サービス提供サーバ8に対して、セッション確立要求を送信する(ステップS33)。このセッション確立要求には、端末ID、及びステップS32で受信された暗号化されているトークンが含まれている。これにより、サービス提供サーバ8の送受信部81は、セッション確立要求を受信する。
次に、サービス提供サーバ8は、セッション確立要求を送信した分散データ処理端末6が、ステップS30で正当であると判断されたことを確認するため、送受信部81は認証サーバ9に対してトークンの認証要求を送信する(ステップS34)。このトークンの認証要求には、ステップS33で受信された暗号化されているトークンが含まれている。これにより、認証サーバ9の送受信部91は、トークンの認証要求を受信する。
次に、認証部92は、ステップS34によって受信された、暗号化されているトークンを復号化する(ステップS35)。そして、認証部92は、ステップS31で暗号化する前のトークンと、ステップS35で復号化した後のトークンを比較することで、トークンの認証を行なう(ステップS36)。そして、認証サーバ9の送受信部91は、サービス提供サーバ8に対して、ステップS36の認証結果を送信する(ステップS37)。これにより、サービス提供サーバ8の送受信部81は、認証結果を受信する。以降、ステップS36において、トークンが正当であると判断された場合について説明する。
次に、サービス提供サーバ8の記憶・読出部89は、セッション管理テーブル(図20参照)において、新たにセッションIDを割り当てるとともに、このセッションIDに対して、ステップS26で受信された端末ID及びIPアドレスを関連付けて管理する(ステップS38)。そして、送受信部81は、分散データ処理端末6に対してサービス提供画面のデータを送信する(ステップS39)。これにより、分散データ処理端末6の送受信部61は、サービス提供画面のデータを受信する。
次に、分散データ処理端末6の表示制御部67は、ディスプレイ517上に、図27に示されているようなサービス提供画面s2を表示させる(ステップS40)。図27では、分散データ処理端末6の画面例が示されている。ここでは、サービス提供例として、分散データ処理端末6から画像取得端末2に対する遠隔操作を実現させるための遠隔操作サービスについて説明する。図27に示されているサービス提供画面s2には、遠隔操作対象を特定するためのIPアドレスの入力欄c1、「遠隔操作開始」ボタンc2、及び「表示領域管理」ボタンc3が表示されている。
<検出領域の設定>
続いて、図28乃至図32、及び図38(a)を用いて、検出領域の設定処理について説明する。図28及び図29は、検出領域の設定処理を示したシーケンス図である。
まず、図28に示されているように、分散データ処理端末6の受付部62は、図27に示す「検出領域設定」ボタンc3の押下により、利用者から検出領域の設定要求を受け付ける(ステップS41)。そして、送受信部61は、検出領域の設定要求を近端末データ処理装置5に送信する(ステップS42)。これにより、近端末データ処理装置5の送受信部51は、検出領域の設定要求を受信する。
次に、近端末データ処理装置5の通信部58は、ステップS42で受信された検出領域の設定要求を実時間データ処理端末3の通信部48へ出力する(ステップS43)。これにより、実時間データ処理端末3の通信部48は、検出領域の設定要求を入力する。
次に、実時間データ処理端末3は、実時間処理のうち表示領域管理における物体検出の処理を実行する(ステップS44)。
(表示領域管理における物体検出処理)
ここで、図38(a)を用いて、実時間処理のうち表示領域管理における物体検出の処理について説明する。図38(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上に図30に示されているような表示領域設定画面を表示させる(ステップS48)。図30は、表示領域設定画面を示した図である。図30に示されているように、表示領域設定画面には、左側に検出領域表示画面d1が表示され、右側に領域設定画面d2が表示されている。ここで、ディスプレイ517は表示手段の一例であり、表示制御部67は複数の領域を含む画面をディスプレイ517上に表示させる表示制御手段の一例である。図31(a)は、実際の店舗内において検出領域の位置を示した図であり、図31(b)は、店舗内の検出領域の位置と所定領域情報との関係を示した図である。
更に、図30の検出領域表示画面d1には、複数(ここでは、4つ)の検出領域表示欄d11~d14が含まれている。検出領域表示欄d11~d14には、店舗内が撮影されることで得られた1つの全天球画像(撮影画像の一例)のうち、4つの所定領域T1~T4で示される4つの所定領域画像Q11~Q14が表示される。
また、領域設定画面d2には、中央部に注目領域設定欄d20が表示されている。この注目領域設定欄d20の左側、上側、右側、及び下側には、それぞれ移動領域設定欄d21~d24が表示されている。利用者は、各欄d20~d24には、各検出領域表示欄d11~d14の右下に表示される番号「1」~「4」を入力する。これにより、受付部62が入力を受け付けることで、注目領域に対する移動領域の表示位置を設定する。ここでは、検出領域表示欄d11が注目領域設定欄d20に設定されている。また、検出領域表示欄d12,d13,d14が、それぞれ移動領域設定欄d21,d22,d23に設定されている。これにより、検出領域表示欄d11に表示される所定領域画像Q11を基準として、表示制御部67は、所定領域画像Q11で表示される店舗内の領域a1の左側の領域a2を検出領域表示欄d12に表示させる。また、表示制御部67は、検出領域表示欄d11に表示した所定領域画像Q11を基準として、所定領域画像Q11で表示する店舗内の領域a1の奥側の領域a3を検出領域表示欄d13に表示させる。更に、表示制御部67は、検出領域表示欄d11に表示した所定領域画像Q11を基準として、所定領域画像Q11で表示した店舗内の領域a1の右側の領域a4を検出領域表示欄d14に表示させる。
ここで、図32を用いて、検出領域表示欄で表示される店舗内の領域を変更する処理について説明する。図32は、検出範囲設定画面を示した図である。利用者が、図30で示されている所定の検出領域表示欄(ここでは、検出領域表示欄d11)に表示されている所定領域画像Q11をタップ等により選択すると、受付部62が選択を受け付ける。これにより、表示制御部67が、分散データ処理端末6のディスプレイ515上に、図32に示されているような表示領域設定画面を表示させる。
図32に示されているように、検出範囲設定画面には、検出可能範囲P、設定ボタンd8、及びキャンセルボタンd9が表示されている。検出可能範囲Pには、実際には選択された検出領域表示欄d11の所定領域画像Q11が表示される。
検出可能範囲Pは、撮像ユニット40の撮影範囲が物体(顔等)を検出することができる範囲である。この検出可能範囲P内に、物体の画像を照合可能な照合可能範囲Cと、この照合可能範囲C外であって照合不可能な照合不可能範囲Rが含まれる。図32において、マージンa、マージンbは、検出可能範囲Pにおいて、それぞれx方向の左右端、y方向の上下端に設けられた所定の値であり、予め定められている。
このように、検出可能範囲Pとは別に照合可能範囲Cを設けたのは、検出可能範囲Pは撮像素子401a等の撮像範囲として固定されているため、マージンa及びマージンbを変更することで、照合可能範囲C側を変更することができるようにして、任意の部屋又は領域の大きさに合った範囲で物体の検出を行うことができるようにするためである。また、これにより、物体が検出可能範囲Pに入った後、照合可能範囲C内に入る前に検出可能範囲Pから外に出てしまった場合に、実時間データ処理端末3aは、近端末データ処理装置5及び分散データ処理端末6を介して、集中データ処理サーバ7に被照合データを送信しなくて済むため、無駄な通信料を削減することができる。
「設定」ボタンd8は、検出領域を確定する場合に利用者によって押下されるボタンである。「キャンセル」ボタンd9は、検出領域の確定を止める場合に利用者によって押下されるボタンである。
また、検出可能範囲Pは、所定領域T(図7参照)と同じ範囲を示す。そのため、検出可能範囲Pを設定することは、所定領域Tを設定することになる。なお、検出可能範囲Pと所定領域Tの縦横比が異なる場合は、表示制御部67は、所定領域Tの縦横比を維持したまま、拡大又は縮小して検出可能範囲Pのサイズに合わせて表示する。例えば、検出可能範囲Pの縦横比が9:16であって、所定領域Tの縦横比が3:4である場合、表示制御部67は、所定領域Tの横が検出可能範囲P内で最大となるように表示する。この検出可能範囲Pは、分散データ処理端末6で利用者によって変更可能である。この変更や設定に関し、図29を用いて説明する。
まず、分散データ処理端末6の受付部62は、利用者からタッチパネル521等によって入力を受け付ける(S51)。入力の種類は、図32に示される検出範囲設定画面において、スワイプ、ピンチイン若しくはピンチアウトによる検出可能範囲P内の所定領域画像の変更、「設定」ボタンd8の押下、又は「キャンセル」ボタンd9の押下である。検出可能範囲Pの変更には、図7(a)において、スワイプにより立体球CS内で別の所定領域を表示させる場合(移動)、ピンチインにより所定領域Tを含めた広範囲の所定領域を表示させる場合(縮小)、ピンチアウトにより所定領域T内で狭範囲の所定領域を表示させる場合(拡大)が含まれる。
ここで、図33を用いて、検出可能範囲Pで表示される所定領域画像の変更の例を説明する。図33(a)は検出可能範囲Pにおける変更前の所定領域画像Q11を示した図、図33(b)は検出可能範囲Pにおける変更後の所定領域画像Q111を示した図、図33(c)は検出可能範囲Pにおける変更後の所定領域画像Q112に対する警告表示の一例を示した図である。
図33(a)に示されているように、利用者が手h1を右側にスワイプすると、受付部62が検出可能範囲Pの変更を受け付ける。これにより、表示制御部67が検出領域表示欄d11に表示されている所定領域画像Q11を所定領域画像Q111に変更表示させる。そして、利用者が「設定」ボタンd8を押下すると、受付部62が設定を受け付け、表示制御部67は、図30に示される表示領域設定画面を表示させる。この場合、検出領域表示欄d11には、図33(b)で示された所定領域画面Q111が表示されることになる。
更に、図33(b)の状態で利用者が手h1を右側にスワイプすることで、表示制御部67が、検出可能範囲P上に所定領域画像Q12と同じ画像(所定領域画像Q112)を表示するに至った場合には、図30に示される検出領域表示画面d1の各所定領域画像Q11~Q14と領域設定画面d2の各領域番号「1」~「4」との位置関係が合わなくなってしまう。そこで、図33(c)に示されているように、表示制御部67が、所定領域画像Q112に対してマスキング画像(例えば、半透明の赤色の背景色の画像)を重畳させることで警告表示を行う。
ここで、表示制御部67が警告表示を行う際の処理について更に詳細に説明する。図31(b)は、店舗内の検出領域の位置と所定領域情報との関係を示した図である。図8に示した仮想カメラICが円Cの中心に設置され、図8の仰角(elevation angle)「ea」を固定しておくものとすれば、各領域の中心点CPは、図31(b)に示す通り水平角(azimuth angle)「aa」で規定することができる。なお、図31(b)において、店舗内の領域a1,a2に対する中心点を便宜上●で示す。
本実施形態では、一例として、警告表示を行う表示制御部67が、注目領域a1と移動領域a2,a3,a4のazimuth angleを比較することにより、利用者が図30の領域設定画面で設定した配置条件を満たしているか否かを判定する方法について説明する。例えば、図31(b)に示した店舗内の領域a1のazimuth angle「aa1」を起点(0度)とし、反時計回りに角度が増えるものとする。利用者が設定した店舗内の領域a1,a2,a3,a4の配置関係が図31(b)であり、店舗内の領域a2,a3,a4のazimuth angleをそれぞれaa2,aa3,aa4とすれば、この配置を満たす条件は、aa1 < aa2 < aa3 < aa4である。図31(b)の場合と同様に、a2,a3,a4のいずれかの移動領域の所定画像を変更したときに上述した条件が満たされない場合に、表示制御部67は、図33(c)に示されているような警告表示をする。
なお、表示制御部67が警告表示を行う場合の判断は、上述した例に限らない。例えば、配置を満たす条件をaa1 < aa2 < aa3 < aa4とする代わりに、水平角aaに対して所定の閾値を各領域a1,a2,a3,a4毎に設けて、各閾値を超えるか否かで警告表示をするか否かを判断するようにしてもよい。さらに、上述した閾値を各領域a1,a2,a3,a4で共通の値として設定し、判断方法(判断条件)を変えて警告表示をするか否かを処理するようにしてもよい。
続いて、図29に戻り、入力の種類が検出可能範囲Pの変更である場合には(S52;変更)、表示制御部67は、ピンチイン若しくはピンチアウトの操作量に応じて、検出可能範囲Pを変更して表示する(S53)。そして、ステップS51の処理に戻る。
また、入力の種類が「設定」ボタンd8の押下により、検出領域の確定である場合には(S52;確定)、送受信部61は、近端末データ処理装置5に対して、確定要求を送信する(S54)。この確定要求には、ステップS51,S52で確定した検出可能範囲P(所定領域T)を特定するための中心点CP及び画角αを示す所定領域情報が含まれている。なお、ステップS51,S52で検出可能範囲P(所定領域T)が変更された後に確定された場合には、変更後の中心点CP及び画角αを示す所定領域情報が含まれている。これにより、近端末データ処理装置5の送受信部51は、確定要求を受信する。
次に、近端末データ処理装置5では、記憶・読出部59が、記憶部5000に、確定された所定領域情報を記憶する(S55)。
また、入力の種類が「キャンセル」ボタンd9の押下により、検出領域の設定を中止する場合には(S52;中止)、送受信部61は、近端末データ処理装置5に対して、撮影を停止するための撮影停止要求を送信する(S56)。これにより、近端末データ処理装置5の送受信部51は、撮影停止要求を受信する。そして、近端末データ処理装置5の通信部58は、実時間データ処理端末3の通信部48に対して、撮影停止要求を出力する(S57)。これにより、実時間データ処理端末3の通信部48は、撮影停止要求を入力する。そして、実時間データ処理端末3では、接続部38が撮像ユニット40に対して撮影を停止させる(S58)。なお、ステップS56の処理後、表示制御部67は、図30の検出範囲設定画面の表示に戻らせる(S59)。
以上により、検出領域の設定処理が終了する。
<画像認識の準備処理>
続いて、図34乃至図36を用いて、画像認識の準備処理について説明する。図34は、画像認識の開始要求の処理を示したシーケンス図である。
図34に示されているように、分散データ処理端末6では、受付部62が利用者から画像認識の開始要求を受け付ける(ステップS61)。この場合、分散データ処理端末6のGUI(Graphical User Interface)が利用される。これにより、分散データ処理端末6の送受信部61は、近端末データ処理装置5に対して、画像認識の開始要求を示す画像認識の開始要求情報を送信する(ステップS62)。この開始要求情報には、上述の認証処理(図24及び図25参照)で認証を行なった認証サーバ9を識別するための認証サーバIDが含まれている。これにより、近端末データ処理装置5の送受信部51は、画像認識の開始要求情報を受信する。そして、通信部58は、実時間データ処理端末3に対して、画像認識の開始要求情報を送信する(ステップS63)。これにより、実時間データ処理端末3の通信部48は、画像認識の開始要求情報を受信する。このように、ユーザーインタフェースを実時間データ処理端末3から分離することで、分散データ処理端末6から遠隔(リモート)操作が可能となる。
図35は、実時間データ処理端末の実時間処理の準備処理を示したシーケンス図である。
図35に示されているように、実時間データ処理端末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)、図35に示されている処理は終了する。一方、判断部33によって、4つのプログラムのうち、少なくとも1つのプログラムがインストールされていないと判断された場合には(ステップS78;NO)、後述のステップS91へ進む。
図36は、プログラムの取得処理を示したシーケンス図である。ここでは、実時間データ処理端末3が、図35に示されている処理によってインストールされていないと判明したプログラムを、サービス提供サーバ8から取得する処理を示している。
まず、図36に示されているように、実時間データ処理端末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が、起動されたプログラムを実行することで、以下に示されている実時間処理を開始する。
<画像認識処理>
ここでは、図26に示される「物体検出処理サービスへのログイン」ボタンb1が押下されて、サービス提供サーバ8が、画像認識処理のサービスのうち、物体検出処理のサービスを実行する場合について説明する。図37は、画像認識処理を示したシーケンス図である。まず、実時間データ処理端末3は、実時間処理を行なう(ステップS111)。
(物体検出処理)
ここで、図38(a)、(b)を用いて、実時間処理のうち物体検出の処理について説明する。なお、ここでは、図38(a)の処理後に図38(b)の処理が行われるが、図38(a)の処理は、既に説明したため、図38(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(魚眼歪み補正))により処理を実行する。
以上により、図37に示されているように、実時間データ処理端末3の通信部48は、近端末データ処理装置5の通信部58へ撮像画像データを送信する(ステップS112)。そして、近端末データ処理装置5の送受信部51は、ステップS112で受信された撮像画像データを、分散データ処理端末6の送受信部61へ送信する(ステップS113)。これにより、分散データ処理端末6の表示制御部67は、ディスプレイ517に、図45に示されているような撮像画像をリアルタイムで表示させる(ステップS114)。図45は、分散データ処理端末における撮像画像の表示例を示した図である。この撮像画像には、物体検出(ここでは、顔検出)された矩形を示す枠が表示されている。ステップS112~S114は、ストリーミングの処理である。
(イベント生成処理)
次に、図39及び図40を用いて、実時間処理のうちイベント生成の処理を説明する。図39及び図40は、実時間処理のうちのイベント生成の処理を示したフローチャートである。
ステップS207の処理によって、物体検出部35が、物体(ここでは、顔)を検出しなかった場合には(S211;NO)、所定時間(設定されているサイクル値)待機後に(S212)、再びステップS211の処理に戻る。例えば、検出は1秒間に30回行われる。
これに対し、上述のステップS207の処理によって、物体検出部35が、物体(ここでは、顔)を検出した場合には(S211;YES)、ステップS213の処理へ進む。そして、検出された物体の位置が照合可能範囲Cにない(照合可能範囲C外にある)場合にも(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)。本実施形態では、以下の(式2)に示されている平方ユークリッド距離を用いて算出される。なお、判断部33は、所定の閾値以下か否かを判断してもよい。
平方ユークリッド距離は、より離れた対象ほど大きな重みをもつため、距離が近い過去の物体の位置を見つけ易いという利点がある。なお、他のよく知られた距離の算出方法であってもよく、たとえば、市街地距離や特定の方向(x方向、またはy方向)のみにずれた画素数をカウントする、といった処理を用いることができる。
次に、ステップS217で算出された距離が所定の閾値よりも短い場合には(S218;YES)、現在の物体の位置と物体変位管理テーブルで管理されている残りのレコードの過去の位置との間の距離が算出されずに、ステップS219に進む。ステップS217で算出された距離が所定の閾値よりも短くない(同じ又は長い)場合には(S218;NO)、上記ステップS215の処理に戻る。
次に、記憶・読出部39は、物体変位管理テーブルにおいて、距離が閾値より短いと判断された過去の物体の位置を示す位置情報を、距離が閾値より短いと判断された最新の物体の位置を示す位置情報に置き換えることで、物体変位管理テーブルを更新する(S219)。この場合、記憶・読出部39は、物体情報管理テーブルと物体変位管理テーブルにおいて、それぞれ置き換えに使われた位置情報を含むレコードの終了フラグ欄に「終了フラグ」を付す。
次に、物体変位管理テーブルにおいて、終了フラグが付されていないレコードが残っている場合には(S220;YES)、実時間データ処理端末3の通信部48は、近端末データ処理装置5の通信部58に対して、表示変更を要求する旨を示す表示変更要求を出力する(S211)。
ここで、図41を用いて、移動のカウント数の表示及び移動情報の記憶の処理を説明する。図41は、入退出のカウント数の表示及び移動情報の記憶の処理を示すシーケンス図である。
まず、実時間データ処理端末3の通信部48は、近端末データ処理装置5の通信部58に対し、上記ステップS221として、表示変更を要求する旨を示す表示変更要求を送信する。この表示変更要求には、人物としての物体が存在した店舗内の領域を示す領域番号、及び物体IDが含まれている。これにより、近端末データ処理装置5の通信部58が、表示変更要求を入力する。そして、送受信部51は、分散データ処理端末6に対して、表示変更要求を送信(転送)する(S302)。これにより、分散データ処理端末6の送受信部61は、表示変更要求を受信する。
次に、分散データ処理端末6は、変更表示処理を行う(S303)。ここで、図42を用いて、ステップS303の処理を詳細に説明する。
分散データ処理端末6の記憶・読出部69は、ステップS302で受信された物体IDを検索キーとして物体存在管理DB6001(図18(a)の物体存在管理テーブル参照)を検索する(S303-1)。そして、判断部63は、検索キーの物体IDと同じ物体IDが物体存在管理DB6001に記憶されているか否かを判断する(S303-2)。
そして、物体存在管理テーブルに物体IDが記憶されていない場合には(S303-2;NO)、更に、記憶・読出部69は、表示領域管理DB6002(図18(b)の表示領域管理テーブル参照)から「注目領域」の番号を読み出す(S303-3)。
次に、判断部63は、ステップS302で受信された領域番号が、ステップS303-3で読み出された注目領域の番号と一致しているか否かを判断する(S303-4)。そして、一致していない場合には(S303-4;NO)、図42の処理が終了する。一方、一致している場合には(S303-4;YES)、物体存在管理DB6001の物体存在管理テーブルへ、新しいレコードを追加し、受信した人物の番号を記憶する(S303-5)。なお、本実施形態では、店舗等の入口の領域番号「1」を注目領域としているが、店舗等の配置やカウント対象となる領域に応じた表示領域管理テーブルを記憶することによって、異なる領域番号を注目領域にすることができる。ステップS303-5の処理後、図42の処理が終了する。
続いて、上記ステップS303-2で、物体存在管理テーブルに物体IDが記憶されている場合には(S303-2;YES)、記憶・読出部69が、表示領域管理DB6002の注目領域の番号を読み出す(S303-6)。
次に、判断部63は、ステップS302で受信された領域番号が、ステップS303-6で読み出された注目領域の番号と異なるか否かを判断する(S303-7)。そして、領域番号が注目領域の番号と異ならない(同じ)場合には(S303-7;NO)、図42の処理は終了する。なお、領域番号と注目領域の番号が一致していた場合の人物の動きは、一旦、注目領域「1」で示される店舗内の領域a1から出たものの、図31に示される店舗内の他の領域a2等へは移動せずに、再び領域a1へ戻った場合の動作である。なお、本実施形態では、上述した注目領域「1」を第1の領域を識別するための第1の領域識別情報とし、その他の注目領域の番号を第2の領域を識別するための第2の領域識別情報として扱う。
一方、領域番号が注目領域の番号と異なる場合には(S303-7;YES)、記憶・読出部69は、ステップS302で受信された領域番号を検索キーとして表示領域管理DB6002を検索することにより、対応する移動領域情報(左、上、右、下)を読み出す(S303-8)。そして、移動領域が「左」の場合には(S303-9;左)、算出部65は、左へ移動した旨のカウントアップを行う(S303-10)。また、移動領域が「上」の場合には(S303-9;上)、算出部65は、上へ移動した旨のカウントアップを行う(S303-11)。更に、移動領域が「右」の場合には(S303-9;右)、算出部65は、右へ移動した旨のカウントアップを行う(S303-12)。なお、この例の場合には、注目領域よりも下は店舗から出てしまうので、カウントアップされない。
次に、表示制御部67は、図45に示されているように、照合結果表示画面の右上部分のカウント表示領域m3の表示を変更させる(S303-13)。この例では、領域番号1を基準(出発領域)とし、現在までに、左の領域a2へ移動した人物が1人、上(奥)の領域a3へ移動した人が2人、右へ移動した人物が3人であることが表示されている。なお、照合結果表示画面の右下に表示されている「移動情報表示」ボタンe1は、単位時間当たりのカウント数を表示するためのボタンであり、後述する。
以上により、ステップS303(図42参照)の処理が終了する。
続いて、図41に戻り、分散データ処理端末6の送受信部61は、集中データ処理サーバ7に対して、人物等の物体の位置を記憶させる要求を示す物体位置記憶要求を送信する(S304)。この物体位置記憶要求には、ステップS302で受信された領域番号及び物体IDに加え、分散データ処理端末が物体位置記憶要求を送信する日時の情報も含まれている。これにより、集中データ処理サーバ7の送受信部71は、物体位置記憶要求を受信する。
次に、集中データ処理サーバ7では、記憶・読出部79が、物体位置管理DB7002(図19(b)参照)に対して、ステップS304で受信された、日時、領域番号、及び物体IDを示す情報を関連付けて1レコードとして記憶する(S305)。
なお、日時、領域番号、及び物体IDが関連付けられた1レコードは、記憶から一定期間(例えば、3ヶ月)経過後に削除するようにしてもよい。
続いて、図39に戻り、ステップS221の処理後、記憶・読出部39は、当該終了フラグが付されていないレコードを削除して(S222)、図40に示されているステップS231の処理に進む。この処理は、物体変位管理テーブルにおいて終了フラグが付されずに残っている場合には、既に物体(ここでは、人)が後述の照合可能範囲Cから出てしまったと推測できるため、物体変位管理テーブルからレコードを削除して、今後の比較対象から除くようにするための処理である。
一方、物体変位管理テーブルにおいて、終了フラグが付されていないレコードが残っていない場合には(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(照合前)」の物体が、照合可能範囲C内にあるか否かを判断する(S233)。この判断は、物体の位置情報に基づいて行われる。そして、ステップS233により、照合可能範囲Cにあると判断された場合には(S233;YES)、画像処理部34は、物体変位管理テーブルのうち、照合可能範囲C内にある物体の位置、幅、及び高さを参照し、これらの値で定まる部分画像データを切り出して、JPEGなどの汎用形式で符号化する(S234)。この場合、記憶・読出部39は、物体変位管理テーブルの対応するレコードの照合進捗状況を「1(照合中)」に変更する。
一方、ステップS233において、照合可能範囲C内にないと判断された場合には(S233;NO)、ステップS236の処理に進む。
次に、イベント生成部36は、近端末データ処理装置5に対して部分画像データと部分画像データに関連付けられた部分画像の画像IDを送信することを通知するイベントメッセージを生成する(S235)。具体的には、イベント生成部36は、”Send”といったイベントメッセージを生成する。
続いて、画像処理部34は、表示されている文字画像をクリアしてから、物体変位管理テーブルの照合進捗状況が「1(照合中)」または「2(照合完了)」に関連付けられている位置を参照し、撮像画像の対応する位置に文字画像を合成する(S236)。
ここで、図45に、文字が画像を合成した例を示す。図45は、ある部屋(ここでは、建物のエントランス)で画像取得端末を設置した場合の撮像ユニットによる撮影範囲を示した図である。画像処理部34は、位置(x2,y2)の部分画像に対しては照合中であることを示すために”!”で表される待機状態マークm1を合成する。また、画像処理部34は、位置(x3,y3)の部分画像に対して照合結果を示すために名前を参照して部分画像の対応位置に、”Kato”で表される物体ID情報m2を合成する。この物体ID情報m2は、物体変位管理DB3008から読み出された情報である。なお、合成後の画像データは、図37に示されているステップS112,S113によって分散データ処理端末6まで送信され、ステップS114で表示される。
次に、通信部48が、後述のステップS318による照合結果を受信していない場合は(S237;NO)、ステップS212の処理へ進む。
一方、通信部48が照合結果(物体IDと部分画像の画像ID)を受信した場合は(S237;YES)、記憶・読出部39が物体変位管理テーブルにおいて、受信された部分画像の画像IDと関連付けられている名前欄に、受信された名前を記憶する(S238)。この場合、記憶・読出部39は、照合進捗状況を「1(照合中)」から「2(照合完了)」に変更する。そして、画像処理部34は、表示されている文字画像をクリアしてから、受信された部分画像の画像IDに関連付けられた物体変位管理テーブルの位置を参照し、撮像画像の対応する位置に受信した名前で文字画像を合成する(S239)。そして、ステップS212の処理へ戻る。ステップS239により、表示制御部37は、照合中であった”!”の表示を”Kato”のように名前の表示に更新する。これにより、分散データ処理端末6の利用者は照合の進捗状況を迅速に知ることができる。
以上により、実時間処理のうちのイベント生成の処理が終了する。
続いて、図37に戻り、実時間データ処理端末3aの通信部48は、近端末データ処理装置5の通信部58に対して、イベントメッセージ、物体(ここでは、顔)の部分画像データ及び部分画像の画像IDを送信する(S115)。
次に、近端末データ処理装置5では、データ検出部56が、通信部58によって”Send”のイベントメッセージの受信の有無を検出する(S116)。そして、イベントメッセージの受信が検出された場合には(S116;YES)、通信部58は、イベントメッセージと共に送信された部分画像データ及び部分画像の画像IDを受信する(S117)。そして、記憶・読出部59が、記憶部5000に部分画像データ及び部分画像の画像IDを一時的に記憶する(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を受信する。部分画像データは、後ほど被照合データとして利用される。
(照合処理)
続いて、図43乃至図45を用いて、照合処理について説明する。図43は、照合する処理を示したシーケンス図である。図44は、照合処理を示したフローチャートである。図45は、ある部屋に画像取得端末を設置した場合の撮像ユニットによる撮影範囲を示した図である。
まず、上述のステップS121の処理により、分散データ処理端末6の送受信部61が、被照合データとしての部分画像データ及び部分画像で示された物体を識別するための物体ID(部分画像に係る物体ID)を受信すると、送受信部61は、集中データ処理サーバ7に対して、照合要求を示す照合要求情報を送信する(S313)。この照合要求情報には、被照合データ及び部分画像に係る物体IDが含まれている。これにより、集中データ処理サーバ7の送受信部71は、照合要求情報を受信する。
次に、集中データ処理サーバ7は、照合処理を行う(S314)。ここで、図44を用いて、照合処理について説明する。
図44に示されているように、集中データ処理サーバ7の特徴量生成部74が、ステップS313によって受信された被照合データをビットマップデータに復号化する変換を行ない、被照合データに係る顔画像の目鼻の凹凸や傾き等の個人を識別するための特徴量のパラメータを生成する(S401)。
次に、記憶・読出部79は、照合データ管理DB7001を検索することで、登録されている照合データが残っているか否かを判断する(S402)。そして、残っていると判断された場合には、照合部75は、両データ(照合データ及び被照合データ)に係る特徴量のパラメータを比較して類似度を算出する(S403)。そして、記憶・読出部79が、照合データに付けられている物体IDと、ステップS403で算出された「類似度」とを組にして一時的に記憶部7000に記憶する(S404)。その後、図19(a)に示されている照合データ管理テーブルにおいて、照合データを次の行へ変更して、ステップS402の処理が再度行なわれる。
一方、ステップS402において、照合データが残っていない(全くない場合も含む)と判断された場合には、ステップS405の処理に進む。そして、判断部73は、記憶部7000に一時的に記憶していた各類似度のうち最大の類似度が閾値より大きいか否かを判断する(S405)。
そして、ステップS405において、判断部73が、最大の類似度が閾値よりも大きいと判断した場合には(YES)、記憶・読出部79は、照合データ管理DB7001から最大の類似度の照合データに付けられた物体IDを読み出す(S406)。閾値は、例えば「80%」である。これにより、類似度が低い場合には、物体IDが読み出されない。
一方、ステップS405において、判断部73が、記憶部7000に一時的に記憶していた各類似度のうち最大の類似度が閾値以下であると判断した場合には(NO)、記憶・読出部79は、被照合データを照合データとして登録する(S407)。既に照合データが登録されている場合は、記憶・読出部79は、「現在の照合データの数+1」を物体IDとし、この物体IDと関連付けて照合データを登録する。次に、特徴量生成部74は、登録した照合データの特徴量を生成する(S408)。そして、記憶・読出部79は、ステップS407で関連付けた物体IDを読み出す(S409)。
以上により、図44の処理が終了する。
続いて、図43に戻り、集中データ処理サーバ7の送受信部71は、分散データ処理端末6に対して、照合結果を示す照合結果情報を送信する(S315)。この照合結果情報には、ステップS406又はステップS409で読み出された物体ID又はステップS407で読み出された情報、及び、ステップS313で受信された部分画像に係る物体IDが含まれている。これにより、分散データ処理端末6の送受信部61は、照合結果情報を受信する。
次に、分散データ処理端末6では、表示制御部67が、図45に示されているような照合結果を表示させる(S316)。ここで、図45を用いて、照合結果の表示について具体的に説明する。図45は、照合結果表示画面を示す図である。
図32に示されている検出範囲設定画面と同じように、照合結果表示画面の検出可能範囲Pは、撮像ユニット40の撮影範囲が物体(ここでは、顔)を検出することができる範囲である。この検出可能範囲P内に、物体(ここでは、顔)の画像を照合可能な照合可能範囲Cと、この照合可能範囲C外であって照合不可能な照合不可能範囲Rが含まれる。図45において、マージンa、マージンbは、検出可能範囲Pにおいて、それぞれx方向の左右端、y方向の上下端に設けられた所定の値である。これらの値は、予め定められた値である。
このように、検出可能範囲Pとは別に照合可能範囲Cを設けたのは、検出可能範囲Pは撮像素子401a等の撮像範囲として固定されているため、任意の部屋又は領域の大きさに合った範囲で物体の検出を行うことができるようにするためである。また、これにより、物体が検出可能範囲Pに入った後、照合可能範囲C内に入る前に検出可能範囲Pから外に出てしまった場合に、実時間データ処理端末3aは、近端末データ処理装置5及び分散データ処理端末6を介して、集中データ処理サーバ7に被照合データを送信しなくて済むため、無駄な通信料を削減することができる。
上述のステップS207の処理による顔検出は、撮影範囲である検出可能範囲Pの全体に渡って行われる。物体が、マージンa,bで決まる矩形の範囲外にある場合は、物体は照合可能範囲C内にない。この場合、物体は検出可能範囲P内で検出されるが、照合可能範囲C内では検出されないため、結果的に、物体は、検出可能範囲P内の照合可能範囲C以外の範囲である照合不可能範囲Rに存在していることになる。
ここで、(x1,y1)は、照合不可能範囲R内に存在する物体が検出された場合の部分画像データの左上隅の座標を示す。
(x2,y2)は、照合可能範囲C内に存在する物体が検出された場合の部分画像データの左上隅の座標を示す。また、ここでは、“!”で表された待機状態マークm1が表示されている。この待機状態マークm1は、分散データ処理端末6が照合要求情報を送信後(S313)、集中データ処理サーバ7から照合結果情報を受信する(S315)までの間に表示されている。
(x3,y3)は、照合可能範囲C内に存在する物体が検出された場合の部分画像データの左上隅の座標を示す。また、ここでは、“S001”で表された物体ID情報m2が表示されている。この物体ID情報は、ステップS315によって集中データ処理サーバ7から受信された「部分画像の物体ID」である。このように、照合可能範囲Cに入った物体は、最初は待機状態マークm1が表示されるが、1~2秒後には、物体ID情報m2が表示される。これにより、閲覧者は、表示されている物体(ここでは、顔)を認識することができる。
更に、照合結果表示画面の右上には、上述のように、カウント表示領域m3が表示されている。これにより、図31において、店舗の出入口から入った人物が領域a1から領域a2に移動した人物が1名、領域a1から領域a3に移動した人物が2名、領域a1から領域a4に移動した人物が3名であるということが容易に分かる。
続いて、図43に戻り、分散データ処理端末6の送受信部61は、近端末データ処理装置5に対して、照合結果を送信(転送)する(S317)。この照合結果には、上記ステップS315と同様の情報が含まれている。これにより、近端末データ処理装置5の送受信部51は、照合結果を受信する。
次に、近端末データ処理装置5の通信部58が実時間データ処理端末3の通信部48に対して、照合結果を送信(転送)する(S318)。この照合結果には、上記ステップS317と同様の情報が含まれている。これにより、実時間データ処理端末3の通信部48は、照合結果を受信する。
(移動情報の表示)
続いて、図46乃至図48を用いて、移動情報の表示の処理について説明する。図46は、移動情報の表示の処理を示すシーケンス図である。図47は、物体の移動方向を考慮して、建物内の所定領域(例えば、図31の領域a1~a4)への移動をカウントする処理を示したフローチャートである。図48は、移動結果表示画面を示す図である。
まず、利用者が「移動情報表示」ボタンe1を押下すると、分散データ処理端末6の受付部62は、移動情報の表示を受け付ける(S501)。そして、送受信部61は、集中データ処理サーバ7に対して、移動情報を要求するための移動情報要求を送信する(S502)。この移動情報には、現在の日時と表示領域管理テーブルが含まれている。これにより、集中データ処理サーバ7の送受信部71は、移動情報要求を受信する。
次に、集中データ処理サーバ7の計数部76は、単位時間毎(本実施形態では1時間毎)に移動した店舗内の領域を示す領域番号、物体IDの組合せでレコード数を計数する(S504)。ここで、図47を用いて、ステップS504の処理について詳細に説明する。
まず、記憶・読出部79は、物体位置管理DB7002の物体位置管理テーブルの領域番号欄を参照し、ステップS502によって受信された表示領域管理DB601の注目領域欄の番号と一致する領域番号が管理されているレコードを上の一列目から下に向けて検索を開始する(S504-1)。そして、検索されたレコードの日時欄の日時が読み出す範囲内でなければ(又は範囲外であれば)(S504-2;NO)、図47の処理は終了する。例えば、受信した現在の日時が2019年4月18日であった場合には、同じ「日」を範囲内、異なる「日」を範囲外とする。一方、検索したレコード(第1のレコードの一例)における日時が読み出す範囲内であれば(S504-2;YES)、記憶・読出部79は、検索したレコードの物体IDを読み出し、以降のレコードで一致する物体IDが管理されているレコード(第2のレコードの一例)検索する(S504-3)。一致する物体IDが管理されているレコードがあり、かつ、このレコードで管理されている日時が読み出す範囲内にある場合は(S504-4;YES)、ステップS504-5に進む。一方、一致する物体IDが管理されているレコードがない、又は、一致する物体IDが管理されているレコードがあるが、このレコードで管理されている日時が読み出す範囲内にない場合は(S504-4;NO)、ステップS504-1に戻る。
次に、一致する物体IDが管理されているレコードがあり、かつ、このレコードで管理されている日時が読み出す範囲内にある場合は(S504-4;YES)、記憶・読出部79は、上記ステップS504-3で検索したレコードで管理されている日時に基づき、計数管理DB7003の時間帯欄を検索し、計数対象となるレコードを特定する(S504-5)。本実施形態では1時間おきに時間帯のレコードがあり、例えば、検索したレコードの時間帯が午前8時台であれば、計数管理DB7003で管理されている時間帯欄が2019-04-16 08を含むレコードが特定される。
次に、記憶・読出部79は、分散データ処理端末6からステップS502で受信された表示領域管理DB6001内のデータに対して、上記ステップS504-3で検索したレコード内の領域番号を検索キーとして、人物等の物体の移動領域情報(左、上、右、下)を抽出する(S504-6)。そして、移動領域が「左」の場合には(S504-7;左)、計数部76は、左へ移動した旨のカウントアップ(「+1」)を行う(S504-8)。また、移動領域が「上」の場合には(S504-7;上)、計数部76は、上へ移動した旨のカウントアップ(「+1」)を行う(S504-9)。更に、移動領域が「右」の場合には(S504-7;右)、算出部65は、右へ移動した旨のカウントアップ(「+1」)を行う(S504-10)。なお、この例の場合には、注目領域よりも下は店舗から出てしまうので、カウントアップされない。そして、ステップS504-8,9,10の処理後、上記ステップS504-1の処理に戻る。
以上により、図47に示されている処理が終了する。
続いて、図46に戻り、集中データ処理サーバ7の送受信部71は、分散データ処理端末6に対して、移動情報を送信する(S505)。この移動情報には、ステップS504で計数された結果のデータである計数データが含まれている。
次に、分散データ処理端末6では、表示制御部67が、ステップS505によって受信された移動情報をディスプレイ517上に、図48に示されているような棒グラフで表された移動結果表示画面を表示させる(S506)。図48では、計数結果をグラフ化した場合の表示例が示されている。各棒グラフは方向ごとの計数結果を積み上げて表示している。
このように単位時間ごとにグラフ表示することで、人物がどちらの方向へ移動していったかを可視化できる。なお、図48の例では、現在日であるため、移動情報表示ボタンe1を押下した時点よりも先の時刻(例えば20時以降)については表示されない。また、グラフ上部の日付の右に配置されている矢印は翌日の結果を表示できるが、図48では、現在日であるため、押下しても反応しないことを淡い表示で示している。ここで、日付の左側の矢印を押下すれば、一日前のグラフが、図46の処理に従って更新及び表示される。この場合は24時間すべての結果が表示されるとともに、日付の右側の矢印が濃い表示になり、当日の結果について再表示することができる。なお、受付部62が図48の右下の「OK」ボタンf1の押下を受け付けると、表示制御部67は、図48の移動結果表示画面から図45の照合結果表示画面に切り替える。
〔実施形態の主な効果〕
以上説明したように本実施形態によれば、単一の全天球画像における所定領域を設定することで、この所定領域の画像である所定領域画像が全天球画像のうち物体の検出が可能な検出可能範囲として設定することができる。即ち、所定領域画像と検出可能範囲の画像が同じである。これにより、撮影画像のうち所望の所定領域を物体の検出可能範囲として容易に設定することができるという効果を奏する。
また、分散処理システム100は、集中データ処理サーバ7に対して所定の物体の部分の領域である部分画像データを送信し(S313)、集中データ処理サーバ7が照合した結果、付与された物体を識別するための物体IDを集中データ処理サーバ7から受信し(S315)、単一の撮像ユニット40によって撮像された領域に含まれる複数の領域のうち第1の領域を識別するための第1の領域番号と、第1の領域に存在する物体の物体IDと、を関連付けて集中データ処理サーバ7に送信する(S304)。これにより、単一の撮像ユニットによって複数の領域に分割されている場合でも、特定の物体を検出することができるという効果を奏する。さらに、上述した送信を繰り返すことにより、特定の物体が移動し、特定の物体の動きが複数の領域にまたがった場合でも、単一の撮像ユニットを用いて特定の物体を検出及び追跡することができるという効果を奏する。
また、実時間データ処理端末3で同じ物体が撮影された場合には、実時間データ処理端末3から近端末データ処理装置5及び分散データ処理端末6を介して、集中データ処理サーバ7に、撮影画像データ及び照合要求の送信を行わない。これにより、実時間データ処理端末3の利用者に対して、必要以上に通信料金の請求が行われることを抑制することができるという効果を奏する。
〔補足〕
なお、領域2,3,4を変更する場合に、注目領域「1」に対する位置関係が、図30の領域設定画面で設定した位置関係から外れる領域に変更している間は、表示制御部67が警告表示をすることによって、変更ミスを防ぐことができる。例えば、図30のように領域設定されていて、領域2の画像を変更する場合、注目領域の位置よりも右の領域に変更されている間は、半透明の赤色の背景色を画面に重畳させるようにしてもよい。
上記実施形態では、ステップ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、及び従来の回路モジュール等のデバイスを含む。