●第1の実施形態
まずは、本発明の第1の実施形態について説明する。
〔全体概略〕
以下、図面を用いて、本発明の一実施形態の全体の概略について説明する。本実施形態は、エッジコンピューティングを実現する通信システムを開示している。即ち、本実施形態は、サービス提供サーバ8での処理及び画像取得端末2での処理の協同により、画像取得端末2でサービス提供サーバ8から提供されるサービスを実現する発明を開示している。
<<実施形態の全体構成>>
図1は、本実施形態に係る通信システムの概略図である。図1に示されているように、本実施形態の通信システムは、実時間データ処理端末3a、近端末データ処理装置5、分散データ処理端末6、集中データ処理サーバ7、サービス提供サーバ8、及び認証サーバ9a,9b,9cによって構築されている。なお、実時間データ処理端末3a、近端末データ処理装置5、及び分散データ処理端末6によって、分散処理システム100が構築されている。
近端末データ処理装置5は、イントラネット200を介して分散データ処理端末6と通信可能に接続されている。分散データ処理端末6は、インターネット600を介して、集中データ処理サーバ7、サービス提供サーバ8、及び認証サーバ9a,9b,9cと通信可能に接続されている。なお、認証サーバ9は、認証サーバ9a,9b,9cの総称である。
これらのうち、実時間データ処理端末3aは、撮像画像のデータを得るための実時間処理(リアルタイムの処理)を行なう端末である。実時間データ処理端末3aには、CMOS(Complementary Metal Oxide Semiconductor)センサやCCD(Charge Coupled Device)センサなどの被写体を撮像する画像センサを備えた撮像ユニット40が着脱自在に接続される。これにより、実時間データ処理端末3aは、撮像ユニット40から入力された撮像画像のデータ(以下、「撮像画像データ」という)をデジタル化し、実時間(たとえば1/60秒ごと)で物体(ここでは、顔)の画像を検出する。実時間データ処理端末3aは、撮像画像のうちの物体部分の領域である部分画像のデータ(以下、「部分画像データ」という)を近端末データ処理装置5に送信する。
近端末データ処理装置5は、実時間データ処理端末3aに最も近いところに配置され、例えばハードウェア的にも密接にデータバスやUSB(Universal Serial Bus)等で1対1に接続されている。近端末データ処理装置5は、実時間データ処理端末3aから受信した部分画像データをJPEG(Joint Photographic Experts Group)などの汎用的なフォーマットに符号化した後、顔画像の照合が行なわれる場合の被照合データとして、イントラネット200を介して分散データ処理端末6に送信する。なお、通常、実時間データ処理端末3aと近端末データ処理装置5は接続されて一体になっており、ここでは、実時間データ処理端末3aと近端末データ処理装置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乃至図6を用いて、本実施形態の通信システムの各ハードウェア構成について説明する。
<実時間データ処理端末のハードウェア構成>
図2は、実時間データ処理端末のハードウェア構成図である。実時間データ処理端末3aは、CPU301、ROM302、RAM303、EEPROM304、CMOSセンサ305、加速度・方位センサ306、メディアI/F308、GPS受信部309を備えている。
これらのうち、CPU301は、実時間データ処理端末3a全体の動作を制御する。ROM302は、CPU301の駆動に用いられるプログラムを記憶する。RAM303は、CPU301のワークエリアとして使用される。EEPROM304は、CPU301の制御にしたがって、実時間データ処理端末用プログラム等の各種データの読み出し又は書き込みを行う。CMOSセンサ305は、CPU301の制御に従って被写体(主に撮像ユニット40の死角)を撮像して、撮影画像データを得る。加速度・方位センサ306は、地磁気を検知する電子磁気コンパスやジャイロコンパス、加速度センサ等の各種センサである。メディアI/F308は、フラッシュメモリ等の記録メディア307に対するデータの読み出し又は書き込み(記憶)を制御する。GPS受信部309は、GPS衛星からGPS信号を受信する。
また、実時間データ処理端末3aは、撮像ユニット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を押下することで、実時間データ処理端末3aを操作する入力手段の一種である。
また、実時間データ処理端末3aは、バスライン310を備えている。バスライン310は、図2に示されているCPU301等の各構成要素を電気的に接続するためのアドレスバスやデータバス等である。
<撮像ユニットのハードウェア構成>
図3は、撮像ユニットのハードウェア構成図である。特に、図3(a)は、撮像ユニット40のうち、単眼の撮像ユニット40aのハードウェア構成図である。図3(b)は、撮像ユニット40のうち、複眼の撮像ユニット40bのハードウェア構成図である。なお、撮像ユニット40は、撮像素子の数が異なる複数種類の撮像ユニット(撮像ユニット40a、40b等)の総称である。
図3(a)に示されているように、撮像ユニット40aは、CMOSやCCD等の撮像素子401a、レンズ402a、及び実時間データ処理端末3aの撮像ユニットI/F313に電気的に接続するための接続I/F408aを有している。撮像ユニット40aが実時間データ処理端末3aの撮像ユニットI/F313に接続された場合には、撮像素子401aは、撮像ユニットI/F313から接続I/F408aを介して送られて来た撮像制御信号により撮像を行い、接続I/F408aを介して撮像ユニットI/F313に撮像画像データを送信する。
また、図3(b)に示されているように、撮像ユニット40bは、CMOSやCCD等の撮像素子401b1,401b2、レンズ402b1,402b2、及び実時間データ処理端末3aの撮像ユニットI/F313に電気的に接続するための接続I/F408bを有している。レンズ402b1,402b2は、例えば、魚眼レンズである。撮像ユニット40aが実時間データ処理端末3aの撮像ユニットI/F313に接続された場合には、撮像素子401aは、撮像ユニットI/F313から接続I/F408aを介して送られて来た撮像制御信号により撮像を行い、接続I/F408bを介して撮像ユニットI/F313に、複数の撮像画像データを送信する。
図3(a)に示されている撮像ユニット40aは、一般の平面画像を得るが、図3(b)に示されている撮像ユニット40bは、全天球画像を得ることができる。ここで、図4を用いて、撮像ユニット40bで撮像された画像から正距円筒射影画像ECが作成されるまでの処理の概略を説明する。なお、図4(a)は撮像ユニット40bで撮影された半球画像(前側)、図4(b)は撮像ユニット40bで撮影された半球画像(後側)、図4(c)は正距円筒図法により表された画像(以下、「正距円筒射影画像」という)を示した図である。
図4(a)に示されているように、撮像素子401b1によって得られた画像は、レンズ402b1によって湾曲した半球画像(前側)となる。また、図4(b)に示されているように、撮像素子403bによって得られた画像は、レンズ402b2によって湾曲した半球画像(後側)となる。そして、半球画像(前側)と、180度反転された半球画像(後側)とは合成され、図4(c)に示されているように、正距円筒射影画像ECが作成される。
<近端末データ処理装置、分散データ処理端末のハードウェア構成>
図5は、近端末データ処理装置又は分散データ処理端末のハードウェア構成図である。ここでは、近端末データ処理装置5と分散データ処理端末6とは、同じハードウェア構成を備えている場合を示しているため、近端末データ処理装置5について説明し、分散データ処理端末6の説明は省略する。
図5に示されているように、近端末データ処理装置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は、図5に示されているCPU501等の各構成要素を電気的に接続するためのアドレスバスやデータバス等である。
<集中データ処理サーバ、サービス提供サーバ、認証サーバのハードウェア構成>
図6は、集中データ処理サーバ、サービス提供サーバ、又は認証サーバのハードウェア構成図である。ここでは、集中データ処理サーバ7、サービス提供サーバ8、及び認証サーバ9は、同じハードウェア構成を備えている場合を示しているため、集中データ処理サーバ7について説明し、サービス提供サーバ8及び認証サーバ9の説明は省略する。
図6は、集中データ処理サーバのハードウェア構成図である。集中データ処理サーバ7は、コンピュータによって構築されており、図6に示されているように、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は、図6に示されているCPU701等の各構成要素を電気的に接続するためのアドレスバスやデータバス等である。
<<ソフトウェア構成>>
図7は、画像取得端末における実時間データ処理端末及び近端末データ処理装置のソフトウェア構成図である。
図7に示されているように、実時間データ処理端末3aは、OS300、及び画像認識アプリケーション(以下、「アプリケーション」は「アプリ」と示す)AP1を有している。画像認識アプリAP1は、実時間データ処理端末3aのRAM303の作業上で動作する。このうち、OS300は、基本的な機能を提供し、実時間データ処理端末3a全体を管理する基本ソフトウェアである。画像認識アプリAP1は、撮像画像から人物や動物等の顔を認識するためのアプリである。
また、近端末データ処理装置5は、OS500、及び通信アプリAP2を有している。通信アプリAP2は、近端末データ処理装置5のRAM503の作業上で動作する。このうち、OS500は、基本的な機能を提供し、近端末データ処理装置5全体を管理する基本ソフトウェアである。通信アプリAP2は、分散データ処理端末6等の他の端末(装置)と通信を行うためのアプリである。
このように、画像取得端末2では、実時間データ処理端末3aが画像認識を行うのに対して、近端末データ処理装置5がイントラネット200を介して分散データ処理端末6と通信を行なうことで、分散処理を行なうことができる。
なお、実時間データ処理端末3a及び近端末データ処理装置5は、OSだけでなく、ドライバ、ソフトウェア開発キット(SDK)、またはアプリケーションプログラミングインタフェース(API)を搭載しており、それぞれが異なっていてもよい。
続いて、図面を用いて、本発明の一実施形態の機能構成及び処理について説明する。
<<実施形態の機能構成>>
まず、図8乃至図18を用いて、本実施形態に係る通信システムを構成する端末、装置、及びサーバの各機能構成について説明する。図8は、実施形態に係る通信システムの機能ブロック図である。図8は、特に画像取得端末2の機能ブロックを示している。
<実時間データ処理端末の機能構成>
図8に示されているように、実時間データ処理端末3aは、算出部31、判断部33、画像処理部34、物体検出部35、イベント生成部36、表示制御部37、接続部38、記憶・読出部39、及び通信部48を有している。これら各部は、図2に示されている各構成要素のいずれかが、EEPROM304からRAM303上に展開されたプログラムに従ったCPU301からの命令によって、動作することで実現される機能又は手段である。
また、実時間データ処理端末3aは、図2に示されているROM302、RAM303、及びEEPROM304によって構築される記憶部3000を有している。記憶部3000には、後述の形状モデルデータが記憶されている。更に、記憶部3000には、撮像素子情報管理DB3001、サイクル値管理DB3002、画像取得プログラム管理DB3003、合成処理プログラム管理DB3004、歪み補正プログラム管理DB3005、及びサービスプログラム管理DB3006が構築されている。
撮像素子情報管理DB3001は、後述の撮像素子情報管理テーブルによって構成されている。サイクル値管理DB3002は、後述のサイクル値管理テーブルによって構成されている。画像取得プログラム管理DB3003は、後述の画像取得プログラム管理テーブルによって構成されている。合成処理プログラム管理DB3004は、後述の合成処理プログラム管理テーブルによって構成されている。歪み補正プログラム管理DB3005は、後述の歪み補正プログラム管理テーブルによって構成されている。サービスプログラム管理DB3006は、後述のサービスプログラム管理テーブルによって構成されている。
(撮像素子情報管理テーブル)
図10(a)は、撮像素子情報管理テーブルを示す概念図である。この撮像素子情報管理テーブルでは、撮像ユニット40の型番、及び撮像ユニット40が有する撮像素子の数、及びこの撮像素子に使われるレンズの種類が関連付けて管理されている。なお、型番は、撮像素子の数及びこの撮像素子に使われるレンズの種類の違いに応じた撮像ユニットの種類を示す種類情報の一例である。
(サイクル値管理テーブル)
図10(b)は、サイクル値管理テーブルを示す概念図である。このサイクル値管理テーブルでは、撮像ユニット40が有する撮像素子の数、及び後述の物体認識の処理のサイクル値(Frames Per Second)が関連付けて管理されている。
図11に示されている各テーブルは、各プログラムが、実時間データ処理端末3aにインストールされているか否かを管理するためのテーブルである。
(画像取得プログラム管理テーブル)
図11(a)は、画像取得プログラム管理テーブルを示す概念図である。この画像取得プログラム管理テーブルでは、撮像ユニット40が有する撮像素子の数、及び画像取得プログラム(又はこの名称)が関連付けて管理されている。例えば、撮像素子の数「1」の場合の画像取得プログラムが実時間データ処理端末3aにインストールされている場合には、プログラム「ProgC01 (1系統の画像取得)」が関連付けて管理されている。撮像素子の数「2」の場合の画像取得プログラムが実時間データ処理端末3aにインストールされている場合には、プログラム「ProgC02 (2系統の画像取得)」が関連付けて管理されている。
(合成処理プログラム管理テーブル)
図11(b)は、合成処理プログラム管理テーブルを示す概念図である。この合成処理プログラム管理テーブルでは、撮像ユニット40が有する撮像素子の数、及び合成処理プログラムの名称が関連付けて管理されている。
(歪み補正プログラム管理テーブル)
図11(c)は、歪み補正プログラム管理テーブルを示す概念図である。この歪み補正プログラム管理テーブルでは、撮像ユニット40が有するレンズの種類、及び歪み補正プログラム(又はこの名称)が関連付けて管理されている。例えば、レンズの種類「広角」の場合の歪み補正プログラムが実時間データ処理端末3aにインストールされている場合には、プログラム「ProgW01(広角歪み補正)」が関連付けて管理されている。レンズの種類「魚眼」の場合の歪み補正プログラムが実時間データ処理端末3aにインストールされている場合には、プログラム「ProgW02(魚眼歪み補正)」が関連付けて管理されている。
(サービスプログラム管理テーブル)
図11(d)は、サービスプログラム管理テーブルを示す概念図である。このサービスプログラム管理テーブルでは、認証サーバを識別するための認証サーバID、及び画像取得端末2が提供されるサービスを実行するためのサービスプログラムの名称が関連付けて管理されている。例えば、認証サーバID「a01」の場合のサービスプログラムが実時間データ処理端末3aにインストールされている場合には、プログラム「ProgD01 (物体検出)」が関連付けて管理されている。また、認証サーバID「a02」の場合のサービスプログラムが実時間データ処理端末3aにインストールされている場合には、プログラム「ProgD02 (物体計数)」が関連付けて管理されている。
(物体情報管理テーブル)
図14は、物体情報管理テーブルを示す概念図である。この物体情報管理テーブルでは、(整理)番号、後述の検出可能範囲Pにおける矩形の部分画像の位置、部分画像の幅、部分画像の高さ、及び終了フラグ(ここでは、「*」)が関連付けて管理されている。部分画像の位置は、矩形の画像の左上端の座標の位置を示している。
(物体変位管理テーブル)
図15は、物体変位管理テーブルを示す概念図である。この物体変位管理テーブルでは、部分画像を識別するための部分画像ID、この部分画像の検出可能範囲Pにおける位置、部分画像の幅、部分画像の高さ、この部分画像が集中データ処理サーバ7で照合される進捗状況を示した照合進捗状況、部分画像で示された人物の名前、及び終了フラグ(ここでは、「*」)が関連付けて管理されている。これらのうち、部分画像の検出可能範囲Pにおける位置、部分画像の幅、及び部分画像の高さは、物体情報管理テーブル(図14参照)から移行された物体特定情報である。即ち、物体情報管理テーブルにおける情報(位置、幅、高さ)は現在の部分画像を特定するための部分画像特定情報であり、物体変位管理テーブルにおける情報(位置、幅、高さ)は過去の部分画像を特定するための部分画像特定情報である。なお、過去の部分画像は、第1の時点における物体の部分画像である。現在の部分画像は、第1の時点より所定時間後の第2の時点における物体の部分画像である。
また、物体情報管理テーブル(図14参照)における「終了フラグ」は、物体情報管理テーブルにおける任意のレコード内の物体の現在の位置が、物体変位管理テーブル(図15参照)の各レコード内における物体の過去の位置と所定距離(閾値)内であるかが判断された場合に、判断が終了したことを示すために付される。一方、物体変位管理テーブルにおける「終了フラグ」は、物体情報管理テーブルから移行された部分画像特定情報がある場合に、この部分画像特定情報を含むレコードに付される。
(実時間データ処理端末の各機能構成)
次に、図8を用いて、実時間データ処理端末3aの各機能構成について更に詳細に説明する。
実時間データ処理端末3aの算出部31は、CPU301の処理によって実現され、物体の最新の位置と、物体の過去の位置との距離を算出する。
判断部33は、CPU301の処理によって実現され、各種判断を行なう。例えば、判断部33は、撮像ユニット40から送られて来る型番に基づき、撮像素子情報管理DB3001を参考にして、撮像素子の数を判断する。
画像処理部34は、CPU301の処理によって実現され、図11に示されている各プログラム(画像取得プログラム、画像合成プログラム、歪み補正プログラム、及びサービスプログラム)の実行により、各種画像処理を行なう。具体的には、画像処理部34は、取得するために認証が不要な第1のプログラム(例えば、画像取得プログラム、画像合成プログラム、及び歪み補正プログラム)を実行することで、画像データに対して第1の画像処理(例えば、画像取得、画像合成、歪み補正)を行なう。また、画像処理部34は、取得するために認証が必要な第2のプログラム(例えば、サービスプログラム)を実行することで、画像データに対して第2の画像処理(例えば、物体検出処理、物体計数処理)を行なう。
物体検出部35は、CPU301の処理によって実現され、画像処理部34で取得された撮像画像のデータにおいて、顔などの予め決められた特定の物体の候補となる特徴点を検出し、顔などの予め定められた特定の物体の形状モデルを示す形状モデルデータを参照して、撮像画像の中の物体の位置を検出する。
イベント生成部36は、CPU301の処理によって実現され、物体検出部35で物体の位置が検出された旨の検出情報(イベント情報)を生成する。
表示制御部37は、CPU301の処理によって実現され、表示手段の一例であるディスプレイ317に各種画面を表示させる。
接続部38は、撮像ユニットI/F313、及びCPU301の処理によって実現され、撮像ユニット40を実時間データ処理端末3aに機械的及び電気的に接続するためのインターフェースである。
記憶・読出部39は、CPU301の処理によって実現され、記憶部3000に各種データ(または情報)を記憶したり、記憶部3000から各種データ(または情報)を読み出したりする。
通信部48は、外部機器接続I/F318、及びCPU301の処理によって実現され、1対1の通信を介して近端末データ処理装置5の後述の通信部58と各種データ(または情報)の送受信を行う。なお、この通信は有線だけでなく無線であってもよい。
<近端末データ処理装置の機能構成>
図8に示されているように、近端末データ処理装置5は、送受信部51、データ検出部56、表示制御部57、通信部58、及び記憶・読出部59を有している。これら各部は、図5に示されている各構成要素のいずれかが、近端末データ処理装置5において、EEPROM504からRAM503上に展開されたプログラムに従ったCPU501からの命令によって、動作することで実現される機能又は手段である。
また、近端末データ処理装置5は、図5に示されているROM502、RAM503、及びEEPROM504によって構築される記憶部5000を有している。
(近端末データ処理装置の各機能構成)
次に、図8を用いて、近端末データ処理装置5の各機能構成について更に詳細に説明する。
近端末データ処理装置5の送受信部51は、遠距離通信回路511、アンテナ511a、及びCPU501の処理によって実現され、通信ネットワーク(ここでは、イントラネット200)を介して、分散データ処理端末6との間で各種データ(または情報)の送受信を行う。
データ検出部56は、CPU501の処理によって実現され、実時間データ処理端末3aからのデータを受信するべきイベントが発生しているか否か、データの受信が完了したか否かを検出する。
表示制御部57は、CPU501の処理によって実現され、表示手段の一例であるディスプレイ517に各種画面を表示させる。
通信部58は、外部機器接続I/F518、及びCPU501の処理によって実現され、1対1の通信を介して実時間データ処理端末3aの通信部48と各種データ(または情報)の送受信を行う。なお、この通信は有線だけでなく、無線であってもよい。
記憶・読出部59は、CPU501の処理によって実現され、記憶部5000に各種データ(または情報)を記憶したり、記憶部5000から各種データ(または情報)を読み出したりする。
<分散データ処理端末の機能構成>
図9に示されているように、分散データ処理端末6は、送受信部61、受付部62、判断部63、表示制御部67、及び記憶・読出部69を有している。これら各部は、図5に示されている各構成要素のいずれかが、分散データ処理端末6において、EEPROM504からRAM503上に展開されたプログラムに従ったCPU501からの命令によって、動作することで実現される機能又は手段である。
また、分散データ処理端末6は、図5に示されている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に記憶して登録させる。
<集中データ処理サーバの機能構成>
図9に示されているように、集中データ処理サーバ7は、送受信部71、受付部72、判断部73、特徴量生成部74、照合部75、及び記憶・読出部79を有している。これら各部は、図6に示されている各構成要素のいずれかが、分散データ処理端末6において、HD704からRAM703上に展開されたプログラムに従ったCPU701からの命令によって、動作することで実現される機能又は手段である。
また、集中データ処理サーバ7は、図6に示されているROM702、RAM703、及びHD704によって構築される記憶部7000を有している。記憶部7000には、後述の照合側の特徴量データが記憶されている。この記憶部7000には、照合データが記憶されている。更に、記憶部7000には、照合データ管理DB7001が構築されている。照合データ管理DB7001は、後述の照合データ管理テーブルによって構成されている。なお、照合データは、集中データ処理サーバ7以外の他のデータ管理サーバ等で記憶してもよい。
(照合データ管理テーブル)
図12は、照合データ管理テーブルを示す概念図である。この照合データ管理テーブルでは、照合データのファイル名を示す画像ファイル、及びこの画像ファイルに係る照合画像で示される人物の名前が関連付けて管理されている。なお、人物の名前は、人物特定情報の一例である。人物特定情報は、漢字だけでなく、英数字や、記号などによって示されても良い。例えば、人物特定情報には、従業員番号、学籍番号、運転免許書番号、日本の制度で使われているマイナンバー等が含まれる。
(集中データ処理サーバの各機能構成)
集中データ処理サーバ7の送受信部71は、ネットワークI/F709、及びCPU701の処理によって実現され、通信ネットワーク(ここでは、インターネット600)を介して、分散データ処理端末6と各種データ(または情報)の送受信を行う。送受信部71は、照合データと被照合データとの照合要求を分散データ処理端末6から受信したり、分散データ処理端末6に対して照合結果を示す照合結果情報を送信したりする。
受付部72は、キーボード711、マウス712、及びCPU701の処理によって実現され、利用者の各種操作を受け付ける。
判断部73は、集中データ処理サーバ7におけるCPU501の処理によって実現され、各種判断を行なう。
特徴量生成部74は、CPU701の処理によって実現され、送受信部71によって受信された被照合データ(部分画像データ)及び照合データから特徴量のパラメータを生成する。
照合部75は、CPU701の処理によって実現され、特徴量生成部74で生成された特徴量を用いて照合データ側の特徴量と被照合データ側の特徴量とを照合し、類似度を示す得点(ポイント)を算出する。
記憶・読出部79は、CPU701の処理によって実現され、記憶部7000に各種データ(または情報)を記憶したり、記憶部7000から各種データ(または情報)を読み出したりする。
<サービス提供サーバの機能構成>
次に、図9、図13乃至図17を用いて、サービス提供サーバ8の各機能構成について詳細に説明する。図9に示されているように、サービス提供サーバ8は、送受信部81、判断部82、取出部87、及び記憶・読出部89を有している。これら各部は、図6に示されている各構成要素のいずれかが、HD704からRAM703上に展開されたサービス提供サーバ8用プログラムに従ったCPU701からの命令によって動作することで実現される機能又は手段である。
また、サービス提供サーバ8は、図6に示されているRAM703、及びHD704によって構築される記憶部8000を有している。この記憶部8000には、分散データ処理端末6又は認証サーバ9から送られて来る各種データが記憶される。また、記憶部8000には、図11で示されている各プログラムが全て記憶されており、サービス提供サーバ8は、実時間データ処理端末3aの要求に応じて、要求対象のプログラムを送信することができる。
更に、記憶部8000には、セッション管理DB8001、及び認証サーバ管理DB8002が構築されている。このうち、セッション管理DB8001は、後述のセッション管理テーブルによって構成されている。認証サーバ管理DB8002は、後述の認証サーバ管理テーブルによって構成されている。以下、各テーブルについて詳細に説明する。
(セッション管理テーブル)
図13は、セッション管理テーブルを示す概念図である。このセッション管理テーブルでは、分散データ処理端末6にサービスを提供するために、分散データ処理端末6と確立する通信セッションを識別するためのセッションID、分散データ処理端末6の利用者を識別するための端末ID、及び端末IDで示される利用者の分散データ処理端末6のIPアドレスが関連付けて記憶されて管理されている。
図16(a)、(b)、(c)は、端末ID(identification)の一例として、電子メールアドレスを示しており、それぞれ認証対象部分と認証対象外部分によって構成されている。認証対象部分は、認証サーバ9によって認証される際に利用される利用者IDである。認証対象外部分は、認証サーバ9によって認証される際に利用されない部分である。
このうち、図16(a)に示されている第1のパターンでは、認証対象部分は、アカウント名”asai”、ホスト名”myhost”、及びドメイン名の前段部分“ricoo.com”によって構成されている。一方、認証対象外部分は、ドメイン名の後段部分”theta1”によって構成されている。この場合、取出部87は、”/”によって、認証対象部分と認証対象外部分を区別する。
また、図16(b)も第1のパターンを示しているが、認証対象外部分が図16(a)と異なる。即ち、認証サーバ9は、図16(a)に示されている端末IDと、図16(b)に示されている端末IDでは、認証対象部分が同じであるため、同じIDとして認証する。
なお、端末IDは、図16(c)に示されている第2のパターンであってもよい。この第2のパターンでは、認証対象部分は、アカウント名の前段部分”asai”によって構成されている。一方、認証対象外部分は、アカウント名の後段部分”theta2”、ホスト名”myhost”、及びドメイン名“ricoo.com”によって構成されている。この場合、取出部87は、”+”によって、認証対象部分と認証対象外部分を区別する。
(認証サーバ管理テーブル)
図17は、認証サーバ管理テーブルを示す概念図である。この認証サーバ管理テーブルでは、各認証サーバ9を識別するための認証サーバID毎に、各認証サーバ9にアクセスするためのURL(Uniform Resource Locator)が関連付けて記憶されて管理されている。
(サービス提供サーバの各機能構成)
次に、図9を用いて、サービス提供サーバ8の各機能構成について詳細に説明する。
サービス提供サーバ8の送受信部81は、主に、図6に示されているCPU701からの命令、及びネットワークI/F709によって実現され、インターネット600を介して、分散データ処理端末6、又は認証サーバ9と各種データ(または情報)の送受信を行う。
判断部82は、主に、図6に示されているCPU701からの命令によって実現され、例えば、分散データ処理端末6にサービスを提供するための通信セッションが既に確立されているか否かを判断する。
取出部87は、主に、図6に示されているCPU701からの命令によって実現され、端末IDから、図16に示されているようなrID(認証対象部分)を取り出す処理を行う。
記憶・読出部89は、主に、図6に示されているCPU701からの命令、及びHDD705によって実現され、記憶部8000に各種データを記憶したり、記憶部8000から各種データを読み出したりする。
<認証サーバの機能構成>
次に、図9及び図18を用いて、認証サーバ9の機能構成について詳細に説明する。認証サーバ9は、送受信部91、認証部92、及び、記憶・読出部99を有している。これら各部は、図6に示されている各構成要素のいずれかが、HD704からRAM703上に展開された認証サーバ9用プログラムに従ったCPU701からの命令によって動作することで実現される機能又は手段である。
また、認証サーバ9は、図6に示されているRAM703、及びHD704によって構築される記憶部9000を有している。この記憶部9000には、分散データ処理端末6又はサービス提供サーバ8から送られて来る各種データが記憶される。
更に、記憶部9000には、認証管理DB9001が構築されている。認証管理DB9001は、後述の認証管理テーブルによって構成されている。以下、このテーブルについて詳細に説明する。
(認証管理テーブル)
図18(a)は認証サーバ9aが有する認証管理テーブルを示す概念図、図18(b)は認証サーバ9bが有する認証管理テーブルを示す概念図、図18(c)は認証サーバ9cが有する認証管理テーブルを示す概念図である。
各認証管理テーブルでは、端末IDのうちの利用者ID(認証対象部分)とパスワードとが関連付けて記憶されて管理されている。
(認証サーバの各機能構成)
次に、図9を用いて、認証サーバ9の各機能構成について詳細に説明する。
認証サーバ9の送受信部91は、主に、図6に示されているCPU701からの命令、及びネットワークI/F709によって実現され、インターネット600を介して分散データ処理端末6及びサービス提供サーバ8と各種データ(または情報)の送受信を行う。
認証部92は、主に、図6に示されているCPU701からの命令によって実現され、認証要求を送信した画像取得端末2に、サービスを受けられる正当な権限があるか否かを判断することで、IDの認証を行なう。
記憶・読出部99は、主に、図6に示されているCPU701からの命令、及びHDD705によって実現され、記憶部9000に各種データ(または情報)を記憶したり、記憶部9000から各種データ(または情報)を読み出したりする。
<<本実施形態の処理又は動作>>
続いて、図19乃至図32を用いて、本実施形態の処理又は動作について説明する。
<認証処理>
まずは、図19乃至図22を用いて、認証処理について説明する。図19及び図20は、認証処理を示したシーケンス図である。図21及び図22は、分散データ処理端末の画面例を示す図である。
図19に示されているように、分散データ処理端末6の送受信部61からサービス提供サーバ8に対して、認証先選択画面の要求を送信する(ステップS21)。この要求には、分散データ処理端末6の端末IDが含まれている。また、この際、送受信部61は、自端末のIPアドレスを送信する。これにより、サービス提供サーバ8の送受信部81は、認証先選択画面の要求、及び分散データ処理端末6のIPアドレスを受信する。
次に、サービス提供サーバ8の判断部82は、セッション管理テーブル(図13参照)に、ステップS21で受信された端末IDが所定のセッションIDと関連づけて管理されているか否かを判断する(ステップS22)。以降、端末IDが管理されていなかった場合について説明する。
サービス提供サーバ8の送受信部81は分散データ処理端末6に対して、認証先選択画面のデータを送信する(ステップS23)。これにより、分散データ処理端末6の送受信部61は、認証先選択画面のデータを受信する。
次に、分散データ処理端末6の表示制御部67はディスプレイ517に対して、図21に示されているような認証先選択画面s1を表示させる(ステップS24)。図21では、分散データ処理端末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を検索キーとして、認証サーバ管理テーブル(図17参照)を検索することにより、対応する認証サーバの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(認証対象部分)及びパスワードの組を検索キーとし、認証管理テーブル(図18参照)において同じ組の認証対象部分及びパスワードを検索した結果を用いて、認証部92が認証を行なう(ステップS30)。認証部92は、同じ組が管理されている場合には、分散データ処理端末6はサービス提供サーバ8からサービスを受けるための正当な端末であると判断し、同じ組が管理されていない場合には、分散データ処理端末6はサービス提供サーバ8からサービスを受けるための正当な端末でないと判断する。
なお、ステップS28では、取出部87が端末IDから認証対象部分を取り出したが、これに限るものではない。例えば、サービス提供サーバ8は取出部87を有しておらず、ステップS29において、送受信部81が、パスワード及びURLの他に、端末IDのうち利用者ID(認証対象部分)のみを送信するようにしてもよい。
続いて、図20に示されているように、認証サーバ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は、セッション管理テーブル(図13参照)において、新たにセッションIDを割り当てるとともに、このセッションIDに対して、ステップS26で受信された端末ID及びIPアドレスを関連付けて管理する(ステップS48)。そして、送受信部81は、分散データ処理端末6に対してサービス提供画面のデータを送信する(ステップS49)。これにより、分散データ処理端末6の送受信部61は、サービス提供画面のデータを受信する。
次に、分散データ処理端末6の表示制御部67は、ディスプレイ517上に、図22に示されているようなサービス提供画面s2を表示させる(ステップS50)。図22では、分散データ処理端末6の画面例が示されている。ここでは、サービス提供例として、分散データ処理端末6から画像取得端末2に対する遠隔操作を実現させるための遠隔操作サービスについて説明する。図22に示されているサービス提供画面s2には、遠隔操作対象を特定するためのIPアドレスの入力欄c1、及び「遠隔操作開始」ボタンc2が表示されている。
<画像認識の準備処理>
続いて、図23乃至図25を用いて、画像認識の準備処理について説明する。図23は、画像認識の開始要求の処理を示したシーケンス図である。
図23に示されているように、分散データ処理端末6では、受付部62が利用者から画像認識の開始要求を受け付ける(ステップS61)。この場合、分散データ処理端末6のGUI(Graphical User Interface)が利用される。これにより、分散データ処理端末6の送受信部61は、近端末データ処理装置5に対して、画像認識の開始要求を示す画像認識の開始要求情報を送信する(ステップS62)。この開始要求情報には、上述の認証処理(図19及び図20参照)で認証を行なった認証サーバ9を識別するための認証サーバIDが含まれている。これにより、近端末データ処理装置5の送受信部51は、画像認識の開始要求情報を受信する。そして、通信部58は、実時間データ処理端末3aに対して、画像認識の開始要求情報を送信する(ステップS63)。これにより、実時間データ処理端末3aの通信部48は、画像認識の開始要求情報を受信する。このように、ユーザーインタフェースを実時間データ処理端末3aから分離することで、分散データ処理端末6から遠隔(リモート)操作が可能となる。
図24は、実時間データ処理端末の実時間処理の準備処理を示したシーケンス図である。
図24に示されているように、実時間データ処理端末3aの接続部38は、撮像ユニット40から、この撮像ユニット40の型番を取得する(ステップS71)。この場合、接続部38から撮像ユニット40に型番を要求し、撮像ユニット40がこの要求に応じて自ユニットの型番を送信する。
次に、記憶・読出部39は、ステップS71によって取得された型番を検索キーとして、撮像素子情報管理DB3001(図10(a)参照)を検索することにより、対応する撮像素子の数、及びレンズの種類を読み出す(ステップS72)。更に、記憶・読出部39は、ステップS72によって読み出された撮像素子の数を検索キーとして、サイクル値管理DB3002(図10(b)参照)を検索することにより、対応するサイクル値を読み出す(ステップS73)。
次に、記憶・読出部39は、ステップS72によって読み出された撮像素子の数を検索キーとして、画像取得プログラム管理DB3003(図11(a)参照)で管理されている画像取得プログラムを検索する(ステップS74)。次に、記憶・読出部39は、ステップS72によって読み出された撮像素子の数を検索キーとして、合成処理プログラム管理DB3004(図11(b)参照)で管理されている合成処理プログラムを検索する(ステップS75)。次に、記憶・読出部39は、ステップS72によって読み出されたレンズの種類を検索キーとして、歪み補正プログラム管理DB3005(図11(c)参照)で管理されている歪み補正プログラムを検索する(ステップS76)。次に、記憶・読出部39は、ステップS72によって読み出されたレンズの種類を検索キーとして、サービスプログラム管理DB3006(図11(d)参照)で管理されているサービスプログラムを検索する(ステップS77)。
次に、判断部33は、上記ステップS74~S77の検索結果に基づき、実行するプログラムが管理されているか否かにより、実行するプログラムが全てインストール済みか否かを判断する(ステップS78)。例えば、ステップS74で、記憶・読出部39が画像処理プログラムを検索した結果、画像処理プログラムが管理されている場合には、判断部33は、インストール済みと判断し、管理されていない場合には、判断部33は、インストール済みではないと判断する。
そして、判断部33によって、4つ全てのプログラムが管理されていると判断された場合には(ステップS78;YES)、図24に示されている処理は終了する。一方、判断部33によって、4つのプログラムのうち、少なくとも1つのプログラムがインストールされていないと判断された場合には(ステップS78;NO)、後述のステップS91へ進む。
図25は、プログラムの取得処理を示したシーケンス図である。ここでは、実時間データ処理端末3aが、図24に示されている処理によってインストールされていないと判明したプログラムを、サービス提供サーバ8から取得する処理を示している。
まず、図25に示されているように、実時間データ処理端末3aの通信部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は、実時間データ処理端末3aの通信部48に対して、プログラム名を含めたプログラムを送信する(ステップS97)。
次に、実時間データ処理端末3aの記憶・読出部39は、通信部48によって取得されたプログラムをインストールするとともに、図11に示されている各テーブルのうち、インストールするプログラム名を管理する(ステップS98)。
次に、記憶・読出部39は、画像認識処理に必要な全てのプログラムを起動させる(ステップS99)。これにより、実時間データ処理端末3aが、起動されたプログラムを実行することで、以下に示されている実時間処理を開始する。
<画像認識処理>
ここでは、図21に示される「物体検出処理サービスへのログイン」ボタンb1が押下されて、サービス提供サーバ8が、画像認識処理のサービスのうち、物体検出処理のサービスを実行する場合について説明する。図26は、画像認識処理を示したシーケンス図である。まず、実時間データ処理端末3aは、実時間処理を行なう(ステップS111)。
(物体検出処理)
ここで、図27を用いて、実時間処理のうち物体検出の処理について説明する。図27は、実時間処理のうちの物体検出の処理を示したフローチャートである。
まず、判断部33は、接続されている撮像ユニット40における撮像素子の数が1つであるか否かを判断する(ステップS201)。この場合、判断部33は、上述のステップS72の処理によって読み出された撮像素子の数に基づいて判断する。そして、撮像素子の数が1つの場合には(ステップS201;YES)、画像処理部34が、処理を繰り返すサイクル値を1/60秒に設定する(ステップS202)。この場合、画像処理部34は、上述のステップS73の処理によって読み出されたサイクル値に設定する。
次に、接続部38は、撮像ユニット40から1系統である撮像画像データを取得する(ステップS203)。この撮像画像データは、デジタル画像データであり、たとえば4K画像(幅3840画像×高さ2160画素)のデータである。この場合、接続部38は、図11(a)に示されている画像取得プログラム(ProgC01 (1系統))により処理を実行する。
次に、物体検出部35が、撮像画像データにおいて、物体の候補となる特徴点を検出することで、物体を検出する(ステップS204)。この場合、画像処理部34は、図11(d)に示されているサービスプログラム(ProgD01 (物体検出処理))により処理を実行する。画像処理部34は、予め記憶部3000に記憶されている物体の形状モデルデータと比較しながら撮像画像の端から矩形を探索し、もっともらしい物体の特徴点の位置を選択する。なお、ステップS204の処理については、例えば、「顔認識技術とその応用:パブリックセーフティを支える要素技術・ソリューション特集 ; バイオメトリクス認証, NEC技報, Vol.63, no.3, pp.26-30, 2010-09」で開示されているような、既知技術を用いることができる。
次に、画像処理部34が、検出された物体の画像の歪みを補正する(ステップS205)。
この場合、画像処理部34は、図11(c)に示されている画像処理プログラム(ProgW01(広角歪み補正))により処理を実行する。
一方、上記ステップS201において、撮像素子の数が1つではない場合には(ステップS201;NO)、画像処理部34は、実時間処理を繰り返すサイクル値を1/30秒に設定する(ステップS206)。この場合、画像処理部34は、上述のステップS73の処理によって読み出されたサイクル値に設定する。サイクル値を1/30秒とすることで、1入力と比較して、サイクル値を大きく取ることにより、後述の画像合成処理が間に合わなくなることを防ぐことが出来る。
次に、接続部38は、撮像ユニット40から2系統である2つの撮像画像データを取得する(ステップS207)。2つの撮像画像データは、それぞれ図4(a)、(b)に示されているような半球画像のデータである。この場合、接続部38は、図11(a)に示されている画像取得プログラム(ProgC02 (2系統))により処理を実行する。
そして、画像処理部34は、2つの撮像画像データを合成して、図4(c)に示されているような正距円筒射影画像ECを作成する(ステップS208)。この場合、画像処理部34は、図11(b)に示されている合成処理プログラム(ProgS02 (合成処理))により処理を実行する。そして、ステップS204に進み、物体検出部35は、正距円筒射影画像ECのデータにおいて、物体の候補となる特徴点を検出することで、物体を検出する。
次に、ステップS205によって、画像処理部34が、検出された物体の画像の歪みを補正する。この場合、画像処理部34は、図11(c)に示されている画像処理プログラム(ProgW02(魚眼歪み補正))により処理を実行する。
以上により、図26に示されているように、実時間データ処理端末3aの通信部48は、近端末データ処理装置5の通信部58へ撮像画像データを送信する(ステップS112)。そして、近端末データ処理装置5の送受信部51は、ステップS112で受信された撮像画像データを、分散データ処理端末6の送受信部61へ送信する(ステップS113)。これにより、分散データ処理端末6の表示制御部67は、ディスプレイ517に、図32に示されているような撮像画像をリアルタイムで表示させる(ステップS114)。図32は、分散データ処理端末における撮像画像の表示例を示した図である。この撮像画像には、物体検出(ここでは、顔検出)された矩形を示す枠が表示されている。ステップS112~S114は、ストリーミングの処理である。
(イベント生成処理)
次に、図28及び図29を用いて、実時間処理のうちイベント生成の処理を説明する。図28及び図29は、実時間処理のうちのイベント生成の処理を示したフローチャートである。
ステップS204の処理によって、物体検出部35が、物体(ここでは、顔)を検出しなかった場合には(S211;NO)、所定時間(設定されているサイクル値)待機後に(S212)、再びステップS211の処理に戻る。例えば、検出は1秒間に30回行われる。
これに対し、上述のステップS204の処理によって、物体検出部35が、物体(ここでは、顔)を検出した場合には(S211;YES)、ステップS213の処理へ進む。そして、検出された物体の位置が照合可能範囲Qにない(照合可能範囲Q外にある)場合にも(S211;NO)、ステップS212の処理に進む。
ステップS213では、記憶・読出部39が、ステップS204で検出された物体に関する物体情報を、物体情報管理テーブル(図14参照)に新たなレコードとして記憶する。この場合、記憶・読出部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)、記憶・読出部39は、当該終了フラグが付されていないレコードを削除して(S221)、図29に示されているステップ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)。
ここで、図32に、文字が画像を合成した例を示す。図32は、ある部屋に画像取得端末を設置した場合の撮像ユニットによる撮影範囲を示した図である。画像処理部34は、位置(x2,y2)の部分画像に対しては照合中であることを示すために”!”で表される待機状態マークm1を合成する。また、画像処理部34は、位置(x3,y3)の部分画像に対して照合結果を示すために名前を参照して部分画像の対応位置に、”Kato”で表される名前情報m2を合成する。この名前情報m2は、物体変位管理DB3008から読み出された情報である。なお、合成後の画像データは、図26に示されているステップ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の利用者は照合の進捗状況を迅速に知ることができる。
以上により、実時間処理のうちのイベント生成の処理が終了する。
続いて、図26に戻り、実時間データ処理端末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を受信する。部分画像データは、後ほど被照合データとして利用される。
(照合処理)
続いて、図30乃至図32を用いて、照合処理について説明する。生成の処理を示したフローチャートである。図30は、照合する処理を示したシーケンス図である。図31は、照合処理を示したフローチャートである。図32は、ある部屋に画像取得端末を設置した場合の撮像ユニットによる撮影範囲を示した図である。
まず、利用者は、照合データを登録するために、分散データ処理端末6から集中データ処理サーバ7にアクセスすることで、集中データ処理サーバ7に照合データの登録を行う(S311)。具体的には、記憶・読出部79は、記憶部7000照合データを記憶するとともに、照合データ管理DB7001に対して、ファイル名及び名前を関連付けて記憶する。
次に、集中データ処理サーバ7では、特徴量生成部74が、ステップS311によって登録された照合データをビットマップデータに復号化する変換を行ない、照合データに係る顔画像の目鼻の凹凸や傾き等の個人を識別するための特徴量のパラメータを生成する(S312)。
次に、上述のステップS121の処理により、分散データ処理端末6の送受信部61が、被照合データとしての部分画像データ及び部分画像IDを受信すると、送受信部61は、集中データ処理サーバ7に対して、照合要求を示す照合要求情報を送信する(S313)。この照合要求情報には、被照合データ及び部分画像IDが含まれている。これにより、集中データ処理サーバ7の送受信部71は、照合要求情報を受信する。
次に、集中データ処理サーバ7は、照合処理を行う(S314)。ここで、図31を用いて、照合処理について説明する。図31は、照合処理を示したシーケンス図である。
図31に示されているように、集中データ処理サーバ7の特徴量生成部74が、ステップS313によって受信された被照合データをビットマップデータに復号化する変換を行ない、被照合データに係る顔画像の目鼻の凹凸や傾き等の個人を識別するための特徴量のパラメータを生成する(S401)。
次に、記憶・読出部79は、照合データ管理DB7001を検索することで、登録されている照合データが残っているか否かを判断する(S402)。そして、残っていると判断された場合には、照合部75は、両データ(照合データ及び被照合データ)に係る特徴量のパラメータを比較して類似度を算出する(S403)。そして、記憶・読出部79が、ステップS312で登録された照合データに付けられている「名前」と、ステップS403で算出された「類似度」とを組にして一時的に記憶部7000に記憶する(S404)。その後、図12に示されている照合データ管理テーブルにおいて、照合データを次のレコードへ変更して、ステップS402の処理が再度行なわれる。
一方、ステップS402において、照合データが残っていない(全くない場合も含む)と判断された場合には、ステップS405の処理に進む。そして、判断部73は、記憶部7000に一時的に記憶していた各類似度のうち最大の類似度が閾値より大きいか否かを判断する(S405)。
そして、ステップS405において、判断部73が、最大の類似度が閾値よりも大きいと判断した場合には(YES)、記憶・読出部79は、照合データ管理DB7001から最大の類似度の照合データに付けられた「名前」を読み出す(S409)。閾値は、例えば「80%」である。これにより、類似度が低い場合には、「名前」が読み出されない。
一方、ステップS405において、判断部73が、記憶部7000に一時的に記憶していた各類似度のうち最大の類似度が閾値以下であると判断した場合には(NO)、記憶・読出部79は、記憶部7000から、“Unknown”を示す情報を読み出す(S407)。これにより、ステップS314の照合処理は終了する
続いて、図30に戻り、集中データ処理サーバ7の送受信部71は、分散データ処理端末6に対して、照合結果を示す照合結果情報を送信する(S315)。この照合結果情報には、ステップS406で読み出された「名前」又はステップS407で読み出された情報、及び、ステップS313で受信された部分画像IDが含まれている。これにより、分散データ処理端末6の送受信部61は、照合結果情報を受信する。
次に、分散データ処理端末6では、表示制御部67が、図32に示されているような照合結果を表示させる(S316)。ここで、図32を用いて、照合結果の表示について具体的に説明する。
検出可能範囲Pは、撮像ユニット40の撮影範囲が物体(ここでは、顔)を検出することができる範囲である。この検出可能範囲P内に、物体(ここでは、顔)の画像を照合可能な照合可能範囲Qと、この照合可能範囲Q外であって照合不可能な照合不可能範囲Rが含まれる。図32において、マージンa、マージンbは、検出可能範囲Pにおいて、それぞれx方向の左右端、y方向の上下端に設けられた所定の値である。これらの値は、実時間データ処理端末3aが、図25に示されているステップS97で取得したサービスプログラム内に記憶されている。
このように、検出可能範囲Pとは別に照合可能範囲Qを設けたのは、検出可能範囲Pは撮像素子401a等の撮像範囲として固定されているため、任意の部屋又は領域の大きさに合った範囲で物体の検出を行うことができるようにするためである。また、これにより、物体が検出可能範囲Pに入った後、照合可能範囲Q内に入る前に検出可能範囲Pから外に出てしまった場合に、実時間データ処理端末3aは、近端末データ処理装置5及び分散データ処理端末6を介して、集中データ処理サーバ7に被照合データを送信しなくて済むため、無駄な通信料を削減することができる。
上述のステップS204の処理による顔検出は、撮影範囲である検出可能範囲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”の場合に行われる。
<<実施形態の主な効果>>
以上説明したように本実施形態によれば、実時間データ処理端末3aで同じ物体が撮影された場合には、実時間データ処理端末3aから近端末データ処理装置5及び分散データ処理端末6を介して、集中データ処理サーバ7に、撮影画像データ及び照合要求の送信を行わない。これにより、実時間データ処理端末3aの利用者に対して、必要以上に通信料金の請求が行われることを抑制することができるという効果を奏する。
●第2の実施形態
続いて、図33乃至図35を用いて、本発明の第2の実施形態について説明する。なお、本実施形態では、算出部31の機能が増えた以外は、第1の実施形態と同じであるため、ハードウェア構成及び算出部31以外の機能構成については、説明を省略する。
<<実施形態の機能構成>>
算出部31は、更に、物体が照合可能範囲Qに一旦入った後であって照合可能範囲Qから出た場合に、照合可能範囲Qに入った人数をカウントするために、カウントのアップを行う。
<<本実施形態の処理又は動作>>
続いて、図33乃至図35を用いて、本実施形態の処理又は動作について説明する。本実施形態の処理又は動作は、図28に示されている第1の実施形態のイベント生成の処理の変形例として説明する。なお、図33は、図28に示された処理の変形例を示したフローチャートである。図34は、表示更新要求の処理を示したシーケンス図である。図35は、図32に示された表示例の変形例である。
図28のステップS220において、物体変位管理テーブルに、終了フラグが付されていないレコードが残っている場合には(S220;YES)、算出部31は、照合可能範囲Qに入った物体の数をカウントするため、カウントのアップを行う(S2201a)。そして、実時間データ処理端末3aの通信部48は、近端末データ処理端末5に対して表示更新要求情報を送信する(S2202a)。この表示更新要求情報は、分散データ処理端末6のディスプレイ517に表示されている画像を更新するための要求を示し、算出部31でアップされたカウント数が含まれている。これにより、近端末データ処理端末5の通信部58は、表示更新要求情報を受信する。
次に、近端末データ処理端末5の送受信部51は、通信部58で受信された表示更新要求情報(カウント数を含む)を、分散データ処理端末6に送信する(S2203a)。これにより、分散データ処理端末6の送受信部61は、表示更新要求情報を受信する。そして、分散データ処理端末6の表示制御部67は、図32に示されているような照合結果を表示している場合に、更に、図35に示されているように、カウント数m3を表示させるように、表示を変更させる(S2204a)。図35では、カウントを介してしてから現在までに、3名が照合可能範囲Qに入ったことが示されている。
<<実施形態の主な効果>>
以上説明したように本実施形態によれば、図35に示されているように、照合結果だけでなく、照合可能範囲Qに入った延べ人数を表示することで、第1の実施形態の効果に加え、表示内容の有用性を向上させることができるという効果を奏する。
●第3の実施形態
続いて、図36乃至図41を用いて、本発明の第3の実施形態について説明する。
第3の実施形態では、第1の実施形態で示された撮像ユニット40a,40b、及び実時間データ処理端末3aに代えて、本実施形態では、撮像ユニット40c,40d、及び実時間データ処理端末3bが用いられる。そのため、以下では、撮像ユニット40c,40dのハードウェア構成、及び実時間データ処理端末3bの機能構成について説明する。なお、実時間データ処理端末3aと実時間データ処理端末3bのハードウェア構成は同様であるため、説明を省略する。
本実施形態では、図3に示されている第1の実施形態の撮像ユニット40a,40bに対して、LiDAR(Light Detection and Ranging)の技術を追加することで、画像処理と光検出による測距を併用することで、物体検出の精度を高める。LiDARは、光を用いたリモートセンシング技術の一つで、パルス状に発光するレーザー照射に対する散乱光を測定し、遠距離にある物体までの距離やその物体の性質を分析する技術である。
<<ハードウェア構成>>
次に、図36を用いて、本実施形態の撮像ユニットのハードウェア構成を説明する。図36(a)は、図3(a)にLiDARの機構を搭載した撮像ユニットのハードウェア構成図である。図36(b)は、図3(b)にLiDARの機構を搭載した撮像ユニットのハードウェア構成図である。なお、撮像ユニット40は、撮像素子の数が異なる複数種類の撮像ユニット(撮像ユニット40c、40d)の総称である。
まずは、図36(a)に示されている撮像ユニット40cについて説明する。図36(a)に示されているように、撮像ユニット40cは、CMOSやCCD等の撮像素子401c、レンズ402c、及び実時間データ処理端末3bの撮像ユニットI/F313に電気的に接続するための接続I/F408cを有している。撮像ユニット40cが実時間データ処理端末3bの撮像ユニットI/F313に接続された場合には、撮像素子401cは、撮像ユニットI/F313から接続I/F408cを介して送られて来た撮像制御信号により撮像を行い、接続I/F408cを介して撮像ユニットI/F313に撮像画像データを送信する。
更に、撮像ユニット40cは、LiDARの機構403cを有している。LiDARの機構403cには、光源404c、レンズ405c、受光素子406c、レンズ407cが含まれている。光源404cは、例えば、レーザダイオードにより構成されている。LiDARの機構403cは、少なくとも撮像素子401cの検出可能範囲P内に光を照射することができる。
光源404cは、物体である測定対象に向けて光を出射する。出射される光は、電磁波である波長領域が800nm~950nmの近赤外光である。また、光源404cには、接続I/F408cを介して実時間データ処理端末3bから供給された電圧を規定の電圧まで昇圧する駆動回路が設けられている。この駆動回路は、光源404cから光を出射させるための発振信号を生成する。光源404cは、発振信号により、変調光としてパルス幅が数ナノ秒から数100ナノ秒程度の短パルス光を周期的に出射する。
レンズ405cは、光源404cから出射された光を透過させ、出射光の出射方向や出射角などの状態を制御する。また、レンズ405cは、光源404cから出射された光を平行光(ほぼ平行光も含む)にコリメートする。このため、LiDARの機構403cは、検出対象の微小領域に対しても距離測定を行うことができる。
受光素子406cは、シリコンPIN(P-Intrinsic-N)フォトダイオードや、アバランシェフォトダイオード(APD:Avalanche Photo Diode)などの各種フォトダイオードを用いて構成されている。また、受光素子406cには、受光した信号を増幅させる受光信号増幅回路が設けられている。受光信号増幅回路は、受光素子406cから出力される電気信号を増幅し、接続I/F408cを介して実時間データ処理端末3bに反射信号として送出する。
光源404cから出射された光のうち、レンズ407cを通過して測定対象で反射された光(以下「反射光」という。)を受光して電気的信号に変換し、接続I/F408cを介して実時間データ処理端末3bに電気的信号を送信する。ここで、反射光は、光源404cから出射された電磁波である近赤外光が測定対象で反射されたもの(反射波)である。
レンズ407cは、反射光を通過させ、反射光の入射方向や入射角などの状態を制御する。
次に、図36(b)に示されている撮像ユニット40dについて説明する。図36(b)に示されているように、撮像ユニット40dは、CMOSやCCD等の撮像素子401d1,401d2、レンズ402d1,402d2、及び実時間データ処理端末3bの撮像ユニットI/F313に電気的に接続するための接続I/F408bを有している。
更に、撮像ユニット40dは、LiDARの機構403d1,403d2を有している。LiDARの機構403d1には、光源404d1、レンズ405d1、受光素子406d1、及びレンズ407d1が含まれている。LiDARの機構403d1は、撮像素子401d1側に設けられており、少なくとも撮像素子401d1の検出可能範囲Pにおいて撮像素子401d1による検出可能範囲内に光を照射することができる。
なお、光源404d1、レンズ405d1、受光素子406d1、及びレンズ407d1は、それぞれ、光源404c、レンズ405c、受光素子406c、及びレンズ407cと同様の構成であるため説明を省略する。
また、LiDARの機構403d2には、光源404d2、レンズ405d2、受光素子406d2、及びレンズ407d2が含まれている。LiDARの機構403d2は、撮像素子401d2側に設けられており、少なくとも撮像素子401d2の検出可能範囲Pにおいて撮像素子401d2による検出可能範囲内に光を照射することができる。
なお、光源404d2、レンズ405d2、受光素子406d2、及びレンズ407d2は、それぞれ、光源404c、レンズ405c、受光素子406c、及びレンズ407cと同様の構成であるため説明を省略する。
続いて、図面を用いて、本実施形態の機能構成及び処理について説明する。
<<実施形態の機能構成>>
続いて、図37を用いて、本実施形態の実時間データ処理端末3bの機能構成について説明する。なお、図37は、通信システムの機能ブロック図のうちの実時間データ処理端末の変形例である。
本実施形態の実時間データ処理端末3bは、第1の実時間データ処理端末3aに対して、更に、発行制御部41及び距離計測部42を有しているため、発行制御部41及び距離計測部42の機能についてのみ説明し、これら以外の機能構成の説明を省略する。なお、発行制御部41、及び距離計測部42は、図2に示されている各構成要素のいずれかが、EEPROM304からRAM303上に展開されたプログラムに従ったCPU301からの命令によって、動作することで実現される機能又は手段である。
発光制御部41は、光源404c(又は光源404d1,404d2)の発光制御を行う。
距離計測部42は、上述の駆動回路で信号を生成した時から開始された時間の計測処理を、反射光を変換した信号を生成した時に停止させて、出射された信号が受光されるまでの時間を計測することで、撮像ユニット40cから測定対象である物体までの距離を計測する。即ち、光源404cから光が出射されてから、この光の反射光が受光されるまでの時間により、撮像ユニット40cを含めた画像取得端末2から測定対象である物体までの距離が計測される。
以上の構成により、撮像ユニット40cが実時間データ処理端末3bに接続された場合、発光制御部41により変調されて光源404cから出射された光は、レンズ405cを介して微小な広がり角を有する光ビームとなる。光源404cから出射された光ビームは、測定対象としての物体(例えば、顔)に照射される。測定対象に照射された光ビームは、測定対象の反射点において一様な方向に散乱して反射される反射光となる。反射光のうち、測定対象に照射された光ビームと同様の光路を経て反射する光成分のみが、光源404cとほぼ同軸に配置されたレンズ407cを介して受光素子406cに入光する。受光素子406cに入光された反射光は、受光素子406cによって反射信号として検出される。これにより、距離計測部42は、光源404cの出射時刻と反射光の受光時刻との時間差を計測することで、測定対象までの距離を計算することができる。
また、撮像ユニット40dが実時間データ処理端末3bに接続された場合、発光制御部41により変調されて光源404d1,404d2から出射された光は、それぞれレンズ405d1,405d2を介して微小な広がり角を有する光ビームとなる。光源404cから出射された光ビームは、測定対象としての物体(例えば、顔)に照射される。測定対象に照射された光ビームは、測定対象の反射点において一様な方向に散乱して反射される反射光となる。反射光のうち、測定対象に照射された光ビームと同様の光路を経て反射する光成分のみが、それそれ光源404d1,404d2とほぼ同軸に配置されたレンズ407d1,407d2を介して、受光素子406d1,406d2に入光する。受光素子406d1,406d2に入光された反射光は、それぞれ受光素子406d1,406d2によって反射信号として検出される。これにより、距離計測部42は、それぞれ光源404d1,404d2の出射時刻と反射光の受光時刻との時間差を計測することで、測定対象までの距離を計算することができる。
<<本実施形態の処理又は動作>>
続いて、図38乃至図41を用いて、本実施形態の処理又は動作について説明する。なお、本実施形態の処理又は動作は、図28に示されている第1の実施形態のイベント生成の処理の変形例として説明する。図38は、図28に示された処理の変形例を示したフローチャートである。図39は、図32に示された表示例の変形例である。図40は、図32に示された表示例の変形例であり、LiDARの機能を併用しない場合の表示例である。図41は、図32に示された表示例の変形例であり、LiDARの機能を併用する場合の表示例である。ここでは、撮像ユニット40cが実時間データ処理端末3bに接続されている場合について説明するが、撮像ユニット40dが実時間データ処理端末3bに接続されている場合も同様の処理であるため、説明を省略する。
図28のステップS220において、物体変位管理テーブルに、終了フラグが付されていないレコードが残っている場合には(S220;YES)、発光制御部41が、撮像ユニット40の光源404cに対して発光制御を行う(S2201b)。そして、距離計測部42が、出射された信号が受光されるまでの時間を計測することで、撮像ユニット40cから測定対象である物体までの距離を計測する(S2202b)。
次に、判断部33が、距離計測部42による計測結果に基づき、物体検出部35で一つであると認識していた物体において所定の距離差が生じているか否かにより、物体が1つであるか否かを判断する(S2203b)。所定の距離差は例えば20cmである。鼻の先と頬との間の距離は数cmであるため、この程度の差であれば、判断部33は、物体(ここでは、顔)は1つであると判断する(S2203b;YES)。例えば、図39に示されているように、物体それぞれが認識される。ここでは、照合可能範囲Q内に、左上隅の座標が(x2,y2)、(x4,y4)である部分画像データで示される男女の顔が示されている。ここでは、男女は検出可能範囲P内において離れた位置に存在している。この場合、ステップS221の処理に進む。
ところが、図40に示されているように、男女二人が重なることで(例えば、男性の後ろに女性が位置する)、物体検出部35が男女を一つの物体として検出してしまうと、正確な人数カウントができない。ここでは、照合可能範囲Q内に、左上隅の座標が(x5,y5)である部分画像データで示される男女が重なって一体となった顔が示されている。
そこで、本実施形態では、たとえ物体検出部35が一つの物体として検出した場合でも、一つとして検出された物体において、所定の距離差がある場合には、物体が重なっているとみなし、物体(ここでは、顔)は一つではない(複数である)と判断する(S2203b;NO)。ここでは、照合可能範囲Q内に、左上隅の座標が(x2,y2)、(x6,y6)である部分画像データで示される男女の顔がそれぞれ示されている。ここでは、男女は検出可能範囲P内において重なった位置に存在している。この場合、ステップS221の処理が実行されずに、図29に示されるステップS231の処理に進む。
このようにして、判断部33が、物体が照合可能範囲Qから抜けたと判断したタイミングで、直ぐにステップS221の処理を行わず、LiDARの技術を利用することで、本当に物体が照合可能範囲Qから抜けたか否かを判断する。
これにより、現在(第2の時点)における重なった男女(第2の物体)において所定距離以上の差が生じた場合には、第2の物体は複数の物体であるとして、複数の物体(男女)のそれぞれの現在における位置とこれら複数の物体のそれぞれの過去(第1の時点)における物体の位置との距離の少なくとも一方が、所定以下又は所定未満である場合には、送受信部51は、男女の少なくとも一方に係る所定部分の画像データを送信しない。
また、省エネルギーのため、ステップS220後に、実時間データ処理端末2bは、発光制御(S2201b参照)及び距離計算(S2202b参照)を行っている。但し、ステップS220処理の前からLiDARの技術を利用してもよい。
なお、図39乃至図41では、第2の実施形態と同様に、カウント数m3が表示されているが、第1の実施形態のように、カウント数m3が表示されなくてもよい。
<<実施形態の主な効果>>
以上説明したように本実施形態によれば、判断部33が、物体が画像処理により照合可能範囲Qから抜けたと一旦判断しても、LiDARの技術を利用して、物体の重なりを判断することで、第1の実施形態よりも更に正確に物体認証を行うことができるという効果を奏する。
〔補足〕
上記実施形態では、ステップ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、及び従来の回路モジュール等のデバイスを含む。
〔その他〕
本実施形態は以下に示すような発明を開示している。
〔付記項1〕(S218参照)
物体の所定部分の画像データを送信することで、他の装置に画像の照合を行わせる通信端末であって、第1の時点における第1の物体の所定部分の画像データを前記他の装置へ送信する送信手段を有し、前記第1の時点における第1の物体の位置を示す第1の位置と、前記第1の時点より所定時間後の第2の時点における第2の物体の位置を示す第2の位置との間の距離が、所定以下又は所定未満である場合には、前記送信手段は、前記第2の物体の所定部分の画像データを送信しないことを特徴とする通信端末。
〔付記項2〕(S220,S221参照)
前記第2の時点における前記第2の物体の位置が、照合可能範囲外になった場合には、前記送信手段は、前記第2の物体の所定部分の画像データを送信しないことを特徴とする付記項1に記載の通信端末。
〔付記項3〕(S231,S232参照)
前記第1の時点における前記第1の物体の位置が、照合可能範囲内に入った場合に、前記送信手段は、前記第1の物体の所定部分の画像データを送信することを特徴とする付記項1又は2に記載の通信端末。
〔付記項4〕(S234参照)
前記送信手段は、前記物体の所定部分のデータを符号化した前記画像データを送信することを特徴とする付記項1乃至3のいずれか一項に記載の通信端末。