以下、図面を参照して、本発明の実施形態を詳細に説明する。なお、以下説明する実施形態は、本発明を具体的に実施した場合の一例を示すもので、特許請求の範囲に記載した構成の具体的な実施形態の1つである。
図1は、本発明の実施形態における画像処理システムのシステム構成の一例を示すシステム構成図である。
本発明の実施形態における画像処理システム(情報処理システム)は、サーバ100、クライアントPC101、撮像装置であるネットワークカメラ102が、無線(または有線)LAN120を介して通信接続可能に接続されている。尚、図1のシステム構成は一例であり、用途や目的に応じて様々な構成例がある。
サーバ100は、ネットワークカメラ102において撮影された画像データを記憶管理する。また、サーバ100は、当該サーバ100で記憶管理する画像データを解析し、画像データに含まれるユーザの人数のカウントや、所定の領域を通過した人数のカウントを行う機能を有する。
本発明の実施形態における画像管理システムは、ネットワークカメラ102を複数[ネットワークカメラ102(A)や(B)]含み、また、TCP/IPプロトコルで通信を行っており、各ネットワークカメラ102には、固定のIPアドレスが独自に割り当てられると共に、ネットワーク群毎に割り当てられた外部ポート番号が割り当てられている。
従って、サーバ100では、受信した画像データが何れのネットワークカメラ102から送信されたものなのかを識別することが可能であり、受信した画像データと何れのネットワークカメラ102から送信されたものなのかを対応づけて記憶管理することが可能である。
ネットワークカメラ102は、例えば、企業の建物のフロアの打ち合わせスペースや催し物会場(以下、「所定の領域」ともいう)ごとに設けられ、例えばネットワークカメラ102(A)は所定の領域全体の静止画または動画を撮影し、ネットワークカメラ102(B)はそこで撮影された人物を特定するための静止画または動画の撮影を行ったりする。
所定の領域の例としては、領域の全体を示す領域106、領域A103、領域B104などである。領域A103と領域B104の間に設けられた位置105は、当該位置105を通過したユーザ(USER)の人数をカウントする場合の基準位置である。すなわち、本位置は、領域A103と領域B104とを区分けする境界である。本位置は、線状に設定されてもよいし、円状に設定されてもよいし、矩形で設定されてもよい。
クライアントPC101は、サーバ100で管理する画像データ(ネットワークカメラ102の映像)をユーザが閲覧するために用いられる。ユーザは、クライアントPC101を介して、モニタリングシステムにログインすることにより、画像データの閲覧が可能となる。
次に、図2を用いて、図1に示したサーバ100、クライアントPC101に適用可能な情報処理装置のハードウェア構成の一例について説明する。
図2は、本発明の実施形態における画像処理システムのサーバ100、クライアントPC101に適用可能な情報処理装置のハードウェア構成の一例を示す図である。
図2において、201はCPUで、システムバス204に接続される各デバイスやコントローラを統括的に制御する。また、ROM202あるいは外部メモリ211には、CPU201の制御プログラムであるBIOS(Basic Input / Output System)やオペレーティングシステムプログラム(以下、OS)や、PCの実行する機能を実現するために必要な後述する各種プログラム等が記憶されている。
203はRAMで、CPU201の主メモリ、ワークエリア等として機能する。CPU201は、処理の実行に際して必要なプログラム等をROM202あるいは外部メモリ211からRAM203にロードして、ロードしたプログラムを実行することで各種動作を実現するものである。
また、205は入力コントローラで、キーボード(KB)209等のポインティングデバイス等からの入力を制御する。206はビデオコントローラで、CRTディスプレイ(CRT)210等の表示器への表示を制御する。なお、図2では、CRT210と記載しているが、表示器はCRTだけでなく、液晶ディスプレイ等の他の表示器であってもよい。
207はメモリコントローラで、ブートプログラム、各種のアプリケーション、フォントデータ、ユーザファイル、編集ファイル、各種データ等を記憶する外部記憶装置(ハードディスク(HD))や、フレキシブルディスク(FD)、或いはPCMCIAカードスロットにアダプタを介して接続されるCFメモリ等の外部メモリ211へのアクセスを制御する。
208は通信I/Fコントローラで、ネットワークを介して外部機器と接続・通信するものであり、ネットワークでの通信制御処理を実行する。例えば、TCP/IPを用いた通信等が可能である。
なお、CPU201は、例えばRAM203内の表示情報用領域へアウトラインフォントの展開(ラスタライズ)処理を実行することにより、CRT210上での表示を可能としている。また、CPU201は、CRT210上の不図示のマウスカーソル等でのユーザ指示を可能とする。
本発明を実現するための後述する各種プログラムは、外部メモリ211に記録されており、必要に応じてRAM203にロードされることによりCPU201によって実行されるものである。さらに、上記プログラムの実行時に用いられる設定ファイル等も外部メモリ211に格納されており、これらについての詳細な説明も後述する。以上で、図2の説明を終了する。
次に、図3を用いて、図1に示したネットワークカメラ102のハードウェア構成の一例について説明する。
図3は、本発明の実施形態におけるネットワークカメラ102のハードウェアの構成の一例を示す図である。
CPU301は、システムバス304に接続される各デバイスやコントローラを統括的に制御する。また、ROM302あるいは外部メモリ305には、CPU301の制御プログラムであるBIOS(Basic Input / Output System)やオペレーティングシステムプログラム(以下、OS)や、画像処理サーバ108の実行する機能を実現するために必要な後述する各種プログラム等が記憶されている。RAM303は、CPU301の主メモリ、ワークエリア等として機能する。
CPU301は、処理の実行に際して必要なプログラム等をRAM303にロードして、プログラムを実行することで各種動作を実現するものである。
メモリコントローラ(MC)306は、ブートプログラム、各種のアプリケーション、フォントデータ、ユーザファイル、編集ファイル、各種データ、画像データ等を記憶するハードディスク(HD)やPCMCIAカードスロットにアダプタを介して接続されるCFメモリやスマートメディア(登録商標)等の外部メモリ305へのアクセスを制御する。
カメラ部307は、画像処理部308と接続されており、監視対象に対して向けられたレンズを透過して得られた光をCCDやCMOS等の受光セルによって光電変換を行った後、RGB信号や補色信号を画像処理部308に対して出力する。
画像処理部308は、RGB信号や捕色信号に基づいて、ホワイトバランス調整、ガンマ処理、シャープネス処理を行い、更に、YC信号処理を施して輝度信号Yとクロマ信号(以下、YC信号)を生成し、YC信号を所定の圧縮形式(例えばJPEGフォーマット、あるいはMotionJPEGフォーマット等)で圧縮し、この圧縮されたデータは、画像データとして外部メモリ305へ一時保管される。
通信I/Fコントローラ(通信I/FC)309は、ネットワークを介して、外部機器と接続・通信するものであり、ネットワークでの通信制御処理を実行しており、外部メモリ305に記憶された画像データは、通信I/Fコントローラ309によって外部機器へ送信される。以上で、図3の説明を終了する。
図4は、本発明の実施形態における画像処理システムの機能構成の一例を示す機能構成図である。
本実施形態に係る画像処理システムは、サーバ100が、画像取得部411、人数カウント部412、人物認識部413、人物除外部414、および結果画面表示制御部415の各機能を有する。なお、サーバ100は、図4に図示した機能構成に限られず、例えば、カウント除外対象であると判定された人物を記憶する記憶部、人物が所定の位置を通過した方向を示す通過方向情報を取得する通過方向取得部、人物が所定の領域に滞在している時間を算出する滞在時間算出手段等、その他の種々の機能構成を有していてもよい。
画像取得部411は、図7で説明するようにネットワークカメラ102で撮影した画像を取得する。画像には静止画および動画が含まれる。実施例では、ネットワークカメラ102(A)は、所定の領域を撮影し、ネットワークカメラ102(B)は、識別された人物を認識し(例えば顔認証)、個人の特定を行うために利用する。
人数カウント部412は、ネットワークカメラ102(A)で撮影された画像を利用して、図9で説明するように所定の領域に写っている人物の人数カウントや、図8で説明するように所定の位置を通過した人物の人数カウントを行う。
人物認識部413は、ネットワークカメラ102(B)で撮影された画像を利用して、画像に写っている人物の認証を行う。認証処理の一例については、図10にて説明する。
人物除外部414は、画像取得部411により取得された画像に基づき、画像に写った人物が、人数カウント部412による人数のカウントから除外するカウント除外対象であるか否かを判定する。人物除外部414は、人数カウント部412による人数カウントから除外する人物を特定したり、認証された人物を図12に示す人物テーブルや通過人物テーブルに保存したりする処理を行う。人物除外部414は、例えば、画像に写った人物が所定の位置を通過した通過方向を示す通過方向情報に基づき、所定の位置を通過した人物がカウント除外対象であるか否かを判定する。また、人物除外部414は、画像に写った人物の所定の領域における滞在時間に基づき、画像に写った人物がカウント除外対象であるか否かを判定する。
結果画面表示制御部415は、ユーザの要求に従って、画像処理結果をユーザの端末に表示するよう制御する処理を行う。
図5は、本発明の実施形態における人数カウントに利用される画像の一例を示す図である。
画像A501は、ある場所における所定の領域が撮影された画像であり、画像B502は、画像Aと同じ地点・同じ領域を異なる時刻に撮影された画像である。これらの画像は比較対象となる画像として管理される。
図5では、画像AにAさんからEさんまでの5名が写っていていて、例えば5分後の画像である画像Bには、同じ5名であっても、DさんとEさんがいなくなり、FさんとGさんが写っているという例である。ここで、例えばAさん、Bさん、及びCさんは、5分前の画像Bにも写っていたユーザであるので、人数カウントから除外される。すなわち、人物除外部414は、所定の領域501における滞在時間が5分以上であるAさん、Bさん、及びCさんを、カウント除外対象として判定する。そして、人数カウント部412は、人物除外部414によりカウント除外対象であると判定された人物を除外して人数カウントをおこなう。
また、例えば係員のためAさんは人数カウントから除外するという設定も可能である。すなわち、人物除外部414は、既定の人物であることに基づきAさんをカウント除外対象であると判定してもよい。なお、人数カウント部412は、人物除外部414によりカウント除外対象であると判定された人物に限られず、予め管理者等によって設定された人物を除外して人数カウントをおこなってもよい。
本実施形態では、ここで写っている人の変化状況を図13で示す画面にて表示可能に構成されている。
図6は、本発明の実施形態における通過人数カウントに利用される画像の一例を示す図である。
ある場所における所定の領域が撮影された画像であり、それぞれ画像A601→画像B602→画像C602の順に時間が経過したものである。
ここでは、所定の位置604を基準に領域Aから領域Bへ移動(またはその逆の領域Bから領域Aへ移動)した人数のカウントを行い、同じ方向に複数回移動する同一人物や既定のユーザをカウントから除外可能にするものである。ここで、同じ方向とは、ある一点からある一点に向かう直線上の全く同じ方向に限られず、例えば第一領域から第二領域に向かう方向として同じ方向であることをいう。便宜的に、領域Aを基準として、領域Bに人物が移動した場合を「OUT」、領域Bから領域Aに人物が移動した場合を「IN」とカウントすることとして説明する。この場合、同じ方向とは、何れも「OUT」(又は何れも「IN」)であることをいう。
画像Aでは、Cさんが、領域Aから領域Bに移動(所定の位置604を領域Aから領域Bに移動)している様子を示している(OUT)。
画像Bでは、Cさんが領域Bから領域Aに移動し、Dさんが領域Bから領域Aに移動した様子を示している(IN)。
画像Cでは、Cさんが再度領域Aから領域Bに移動し、Aさんが領域Aから領域Bに移動した様子を示している(OUT)。ここで、Cさんは同じ方向への2度目の移動となるので、人数カウントから除外される。すなわち、人物除外部414は、同じ通過方向に所定の位置604を複数回通過するCさんを、カウント除外対象であると判定する。そして、人数カウント部412は、人物除外部414によりカウント除外対象であると判定された人物を除外して人数カウントをおこなう。
また、Aさんは予め除外されることが既定されているので、初めての移動であっても除外される。すなわち、人物除外部414は、既定の人物であることに基づきAさんをカウント除外対象であると判定してもよい。なお、人数カウント部412は、人物除外部414によりカウント除外対象であると判定された人物に限られず、予め管理者等によって設定された人物を除外して人数カウントをおこなってもよい。
図7は、本発明の実施形態における画像処理システムの画像保存処理の一例を示すフローチャートである。
本処理は、ネットワークカメラ102によって撮影された画像をサーバ100に送信して保存する処理である。
ステップS701では、ネットワークカメラ102は、監視エリア(領域106)を撮影し、ステップS702で撮影した画像をサーバに送信する。
ステップS703でサーバ100は、ネットワークカメラ102から画像を受信し、ステップS704で、録画ファイルとして受信した画像をサーバの外部メモリ211などに保存し処理を終了する。
ここで保存した画像を利用して本画像処理システムは、画像に写っているユーザの人数又は通過人数をカウントする。
図8は、本発明の実施形態における画像処理システムの通過人数カウント処理の一例を示すフローチャートである。
本処理は、所定の領域(例えば601)に設定された所定の位置(例えば604)を何人のユーザが通過したのかをカウントする処理であって、サーバに保存された画像から所定時間の画像を対象として処理を行う。
ステップS801では、ユーザや管理者に指定された所定時間繰り返し処理を行う。本実施例では、9:00から9:05の5分間が指定されたものとして説明する。また、実際には、5分間分を動画にするには多数の画像から構成されるが、本実施例では、便宜的に3枚の画像を利用して説明する。
画像601は9:00、画像602は9:03、画像603は9:05に撮影されたものとする。
ステップS802では、ライン通過検知エリア情報を読み取る。具体的には、所定の位置604を通過した人物がいたかどうかの判定を行う。
ステップS803で、人物が識別(認識)できた場合はステップS804に進み、識別(認識)できなかった場合ステップS811に進み、ループの判定(所定時間経過したどうか)を行う。
ステップS804では、画像解析処理等により、ステップS802で所定の位置を通過したと判定された人物が、所定の位置を通過した方向を示す通過方向情報を取得する(通過方向取得手段)。通過方向情報とは、領域Aから領域Bへ向かう第一方向と、領域Bから領域Aへ向かう第二方向との何れかを示す情報であって、ここでは、領域Aから領域Bへの移動(第一方向)を「OUT」、領域Bから領域Aへの移動(第二方向)を「IN」とする(逆でも構わない)。
ステップS805では、ステップS803において認識した人物を特定する処理を行う。本処理については、図10にて説明するが、認識した人物を特定する処理である(人物特定手段)。この処理により、識別された人物のうち不要な人物を人数カウントから除外することができるようになる。
ステップS806は、ステップS803において認識された人物がカウント除外対象であるか否かを判定する。ステップS806で対象の人物がカウント除外対象であると判定された場合は、ステップS808に進み、当該人物の移動をカウント除外対象として記憶し(記憶手段)人数カウントに反映されないようにし、ステップS809に進む。ステップS806で対象の人物がカウント除外対象でないと判定された場合は、ステップS807に進み、IN/OUTの移動カウントをインクリメントし、ステップS809に進む。
ステップS809では、ステップS803で認識した人物の全ての処理が終了したかの確認を行い、終了していない場合はステップS804に戻り次の人物についての処理を行い、全人物に対する処理が完了した場合は、ステップS810に進む。
ステップS810では、本フローで処理した内容を結果テーブルに保存し、処理を終了する。なお、本処理は、本ステップでまとめて保存してもよいし、フローチャートの各ステップで都度保存するようにしてもよい。
次に図12を利用して本フローチャートで保存される結果テーブル(人物テーブル)について説明する。
図12は、本発明の実施形態における画像処理システムの人物DBの一例を示す図である。人物DB1200は、図9で説明する人数カウント処理の結果が保存された結果テーブルである。人物DB1200には、画像Aおよび画像Bで認識されたユーザのユーザ名およびそのユーザの種別が保存されている。詳細については後述する。
通過人物DB1210は、図8のライン通過カウント処理にて保存される結果テーブルである、通過人物DBの一例である。
通過人物DB1210には、画像1211、その画像の撮影された時刻1212、通過方向1213、ユーザ1214、およびカウンタ1215が対応付いて記憶されている。
画像1211は、画像名であり、例えば画像のファイル名である。画像A〜画像Cは、それぞれ図6の画像A601〜画像C603に対応しており、それぞれ、9時0分、9時3分、9時5分に撮影されたものである。
通過方向1213は、ステップS804で検知された方向が記憶されており、ユーザ1214は、ステップS805で特定されたユーザが記憶される。
カウンタ1215は、ステップS807のIN/OUTカウンタとなっており、INユーザおよびOUTユーザの人数のカウンタである。例えば、OUTは2名、INは1名カウントされたことが分かる。
また、画像CのCさんが除外となっている。これは、「所定時間内の同じ方向への同一ユーザの移動はカウントから除外」する設定による。すなわち、人物除外部414によって、所定時間内の同じ方向へ移動する同一ユーザがカウント除外対象であると判定され、その判定結果が結果テーブルに保存されている。
また、画像CのAさんが除外となっている。これは、図6に示すように、「Aさんは既定で(除外)」する設定による。すなわち、人物除外部414によって、既定のユーザがカウント除外対象者であると判定され、その判定結果が結果テーブルに保存される。設定は本設定以外にも予め管理者によって設定することが可能になっている。
図9は、本発明の実施形態における画像処理システムの人数カウント処理の一例を示すフローチャートである。
本処理は、所定の領域(例えば501)に何人のユーザが写っているのかをカウントする処理であって、サーバに保存された画像を対象とする。
例えば、画像A501にも画像B502にも5名写っているが、2枚の画像を比較して、同じユーザを除外したり、所定のユーザを除外したり、新しいユーザの人数だけを表示したりする処理を行うことができる。すなわち、予め設定された除外対象者に限られず、画像に基づき、当該人物がカウント除外対象であるか否かを判定し、カウント除外対象であると判定された人物を人数カウントから除外する処理を行うことができる。
また、本処理は、画像の比較を行うので、セットされた所定の枚数の人数カウントを行うようになっており、本実施例では、画像Aと画像Bとで2枚が所定の枚数となる。
ステップS901で、エリア情報を読み取る。エリア情報とは例えば図1の領域106のことであり、ネットワークカメラ102でプリセットされて撮影された領域の画像に対応する。
ステップS902で、領域内で人物を識別(認識)したかどうかの判定を行い、識別した場合は、ステップS903に進み、人物特定処理を行う。人物特定処理は図10にて説明するが、人物特定処理により、当該認識された人物が除外対象かどうか決定される。
ステップS904では、ステップS902で認識された人物が除外対象かどうかの判定を行い、当該人物が除外対象であると判定された場合はステップS906に進み、当該人物が除外対象でないと判定された場合はステップS905に進む。
ステップS906では、除外対象であると判定された人物を人数カウントに反映されないようにし、ステップS907に進む。ステップS905では、ステップS902で認識された人物の人数をカウントし、ステップS907へ進む。
ステップS907では、全画像(ここでは2枚)についての処理が完了したかどうかの判定を行い、処理が完了していない場合は、ステップS903に戻り、処理が完了した場合は、ステップS908に進み、結果テーブルに処理の内容を保存して処理を終了する。なお、本処理は、本ステップでまとめて保存してもよいし、フローチャートの各ステップで都度保存するようにしてもよい。
本フローチャートで保存される結果テーブルについて、図12の人物DB1200を利用して説明する。画像Aは9時0分に撮影された画像で、画像Bは9時5分に撮影された画像である。
人物DB1200は、それぞれの画像について、認識されたユーザの人数と、そのユーザが除外対象なのかどうかと、を管理している。
画像Aに対応する人物DB1200には、ユーザ種別1201とユーザ名が記憶されている。当該人物DB1200には、ユーザ名1202として、図5の画像501に基づき認識されたユーザA〜Eさんの5人の情報が格納されている。また、既定で除外対象とされるユーザAさんのユーザ種別1201が「既定」とされている。。
画像Bに対応する人物DB1200には、ユーザ名1204として、ユーザA〜C、F、Gさの5人の情報が格納されている。画像Aには存在しないユーザ(新規)であるユーザF、Gさんのユーザ種別1203は空白となっている。
またユーザAさんのユーザ種別1204が「既定」とされている他、画像Aでも特定されたユーザA〜Cさんのユーザ種別1204は、「特定済」として(特定済・A)として記憶されている。すなわち、人物除外部414によって、所定時間経過後も同じフロアに位置する同一ユーザがカウント除外対象であると判定され、その判定結果を結果テーブルに保存する。ここでは、特定済のユーザや既定のユーザを除外対象として扱うものとする。
図10は、本発明の実施形態における画像処理システムの顔認識処理の一例を示すフローチャートである。
この顔認識処理は、図8のS805および図9のステップS903の人物特定処理に対応する。本実施例では、顔認識による人物特定処理について説明するが、人物が特定できれば顔認識処理に限られず何の技術を用いてよい。
ステップS1001では、画像で認識された人物イメージを受信し、ステップS1002では、当該人物の特徴点を切り出して個人特定を行う。この人物の特徴点を切り出して個人特定を行う処理は、既に提案されている技術を利用するものとする。
ステップS1003では、特定された人物が結果テーブル(図8の場合は、通過人物DB1210、図9の場合は、人物DB1200)に登録されているかどうかを確認し、登録済の場合は、ステップS1006に進み、登録済でない場合は、ステップS1004に進む。
ステップS1006では、結果テーブルに登録済みの人物を、除外人物(除外対象)として返信する。登録済とは、人物DB1200の場合は、ユーザ種別1201,1203が除外対象として登録されているかどうかによって判定する。具体的には、画像Aの場合はAさんが、ユーザ種別が既定なので除外対象となり、画像Bの場合は、既定のAさん、および特定済のA〜Cさんが除外人物(除外対象)として返信され、処理が終了する。
また、通過人物DB1210の場合は、既定のAさん、および、同じ方向に2度目の移動(複数回移動)となる画像CのCさん(OUT)が除外人物(除外対象)として返信され、処理が終了する。
ステップS1004では、ステップS1003で登録済でないと判定された人物を結果テーブルに(除外として)登録する。例えば、人物DB1200においては、画像Aに対応する人物DB1200において特定済であることに基づく登録がなされていないA〜Cさんが、画像Bに対応する人物DB1200において、画像Aで特定済であることが登録される。
また、通過人物DB1210においては、同一ユーザが同一方向への移動である場合で登録されていないケースである画像CのCさん(OUT)および、既定ユーザである場合の画像CのAさん(OUT・既定)が除外対象として登録される。続いて、ステップS1005では、ステップS1004で登録された人物が非除外人物(非除外対象)として返信され、処理を終了する。
図11は、本発明の実施形態における画像処理システムの閲覧処理の一例を示すフローチャートである。
本処理は、画像処理された結果をユーザからの指示によりユーザの端末へ表示制御する処理である。
ステップS1101では、表示するカメラの選択を行う。例えばネットワークカメラ102(A)のシリアル番号や名称を選択し、ステップS1102で選択したカメラで撮影された画像の要求を行う。この画像は、静止画形式であっても動画形式であってもLIVE動画であっても構わない。
ステップS1103で、要求する画像が、人数カウント(図5)なのかライン通過人数カウント(図6)なのかの判定を行い、人数カウントの場合はステップS1104に進み、LINE通過の場合はステップS1105に進む。
ステップS1104では、人数情報として図13に示す人数カウントの閲覧画面を表示すべく処理をする。ステップS1105では、図14に示す通過人数カウントの閲覧画面を表示すべく処理をする。閲覧画面の詳細についは、図13および図14を利用して後述する。
ステップS1106では、表示すべき項目を閲覧画面に画像合成する処理を行い、ステップS1107でクライアントの画面に表示すべく画面の表示制御を行い、処理を終了する。
図13は、本発明の実施形態における人数カウントの閲覧画面の一例を示す図である。
人数カウント閲覧画面1301および人数カウント閲覧画面1310の二つの例について説明する。
人数カウント閲覧画面1301では、現在の画像1302、認識した人数(5名)1303、既定の除外対象(1名)1304、個人特定済の除外対象(3名)1305、および当該画面にて新たに認識された人物および人数(2名)1306が表示される。
人数カウント閲覧画面1310は、1301の別の閲覧画面例であり、1301の表示内容を含んで表示することも可能である。
除外対象者を除いたカウント人数、既定の除外対象人数1311および、取得した画像が表示される。
また、カウントした人物を太枠などの枠線で囲って表示することで視認性を高めてもよく、また、既定の除外対象者であるAさんを異なる色や線で他のユーザと識別可能に表示してもよい。
また、人物特定処理において個人特定できたユーザにはユーザ名(例えばAさんやBさんなど)を合成して表示し、個人特定できなかったユーザには何も表示しないなど、表示を異ならせることも有効である。
図14は、本発明の実施形態における通過人数カウントの閲覧画面の一例を示す図である。
通過人数カウント閲覧画面1401および通過人数カウント閲覧画面1410の二つの例について説明する。
通過人数カウント閲覧画面1401では、所定のライン(位置)を通過した人数および方向1402、既定の除外対象(1名)1403、および2度通過することによる除外者および人数1404が表示される。
通過人数カウント閲覧画面1410は、1401の別の閲覧画面例であり、1401の表示内容を含んで表示することも可能である。
通過人数/方向/除外数1411および、取得した画像が表示される。実施例では、IN(1名)、OUT(2名)、除外数(2名)となっているが、この除外数は、1403および1404の両方の除外対象を含んだものである。
画像には、ライン通過によりカウントされた人物を太枠などの枠線で囲って表示することで視認性を高めてもよく、また、既定の除外対象者であるAさんを異なる色や線で他のユーザと識別可能に表示してもよい。また、ライン通過されなかったユーザ1412には枠線などの協調表示をせず(便宜上点線で示しているが、何も表示しなくてもよい)通過した人物と識別可能に表示することも可能である。
また、人物特定処理において個人特定できたユーザにはユーザ名(例えばAさんやBさんなど)を合成して表示し、個人特定できなかったユーザには何も表示しないなど、表示を異ならせることも有効である。
次に、通過人数カウント処理を行う場合に適用可能な別の実施形態に係る画像処理システムについて説明する。当該別の実施形態では、人物除外部414が、境界ラインを越えた人物が、境界ライン上をうろうろする人物、すなわち所定の位置を所定時間(例えば5分程度)内で繰り返し通過する(跨ぐ)人物であるか否かに基づき、カウント除外対象であるか否かを判定する点が、上記実施形態とは異なる。以下、この判定を、「うろうろ除外判定」ともいう。
以下、図15を参照して、当該別の実施形態について詳述する。図15は、別の実施形態に係る画像処理システムの通過人数カウント処理の一例を示すフローチャートである。
本処理は、所定の領域(例えば画像601に写った領域)に設定された所定の境界ライン(例えば位置604)を何人のユーザが通過したのかをカウントする通過人数カウント処理において、所定時間内に境界ライン上をうろうろと繰り返し通過する人物を人数カウントから除外する処理である。本処理は、画像処理システムのサーバ100が行う。
本処理は、例えば、本処理を開始するための開始指示がユーザによって入力された場合に開始する。また、本処理は、例えば、後述するステップS1504で全ての人物について解析したと判定された場合、ユーザによる終了指示が入力された場合、又は、予め設定された処理時間が完了した場合等に、終了する。
まず、ステップS1501では、境界ライン情報、および、うろうろ見なし間隔時間を取得する。境界ライン情報、および、うろうろ見なし時間間隔は、例えば予めユーザ等によって設定された設定情報から取得される。
境界ライン情報は、境界ラインの位置情報であって、例えば画像601の左上端を基準とするピクセル座標で示される。うろうろ見なし間隔時間は、同一人物が境界ラインを複数回通過するタイミングの間隔を、領域Aから領域B(又は領域Bから領域A)に移動するために境界ラインを通過しているのではなく単に境界ライン上をうろうろと徘徊しているものと見なす時間であって、例えば5分と設定される。
続いて、ステップS1502では、画像取得部411が、ネットワークカメラ102により撮影された画像を取得する。画像取得部411は、例えば所定の時間内で撮影された画像を取得する。
続いて、ステップS1503では、人物認識部413が、ステップS1503で取得した画像に写っている全人物とその位置を認識して、全人物とその位置のリストをメモリ上に作成する。
続いて、ステップS1504では、ステップS1503で作成したリスト上に、解析をしていない人物がいるか否かを判定する。ここで、解析とは、後述するステップS1505以降のステップの処理を行うことをいう。
解析をしていない人物がいないと判定された場合(ステップS1504;NO)、すなわち全ての人物について解析をした場合には、処理を終了する。なお、この場合に、処理を終了せずにステップS1503の処理に戻り、再度画像を取得してステップS1504以降の処理を繰り返してもよい。
解析していない人物がいると判定された場合には(ステップS1504;YES)、ステップS1505の処理へ進む。すなわち、全ての人物について解析が完了するまで、ステップS1505以降の処理を繰り返す。
続いて、ステップS1505では、ステップS1503で作成したリスト上の解析をしていない未処理の人物のうち、次に解析をする人物情報を取得する。
続いて、ステップS1506では、人物認識部413が、ステップS1505で取得された次に解析をする人物情報が示す人物と同一の人物を認識する。
続いて、ステップS1507では、人物認識部413が、ステップS1506で同一人物と認識した人物の位置情報をキャッシュする。具体的には、図16に示されるような人物位置情報DB1600として保存する。図16は、人物位置情報DB1600の一例を示す図である。
図16に示されるように、人物位置情報DB1600には、タイムスタンプ1601、人物ID1602、カメラID1603、および位置情報1604が、互いに対応付けられて格納されている。
タイムスタンプ1601は、人物が認識された画像をネットワークカメラで撮影した日時を示す文字列である。図16の例では、タイムスタンプ1601の日時が時系列で上から順に並ぶように格納されている。例えば、タイムスタンプ1601として「2018.07.27 12:00:01:00」の次に、タイムスタンプ1601として「2018.07.27 12:00:00:00」が格納されている。すなわち、タイムスタンプ1601が「2018.07.27 12:00:00:00」である日時と、タイムスタンプ1601が「2018.07.27 12:00:01:00」である日時とは、時系列的に互いに前後関係にある。以下、このような前後関係にある日時のうち、タイムスタンプ1601が「2018.07.27 12:00:00:00」である前の時間を単に「前時間」ともいい、タイムスタンプ1601が「2018.07.27 12:00:01:00」である後の時間を単に「後時間」ともいう。
なお、図16の例では、図示を省略しているが、実際には、図示したタイムスタンプ1601の日時よりも前の日時を含む所定時間のタイムスタンプ1601に対応付けられたデータが格納されている。
人物ID1602は、ステップS1506で認識した人物を示す識別情報である。カメラID1603は、ステップS1506で認識した人物を撮影したネットワークカメラ102を示す識別情報である。位置情報1604は、ステップS1506で認識した人物の位置情報であって、例えば画像601の左上端を基準とするピクセル座標で示される。位置情報1604aは、X座標で示される位置情報であって、位置情報1604bは、Y座標で示される位置情報である。
再度図15を参照し、続くステップS1508では、ステップS1506で同一人物と認識した人物について、人物位置情報DB1600に基づき、例えば1時間等の所定時間内での移動位置および移動方向を算出する。
移動位置は、同一人物が所定時間内に移動した位置である。移動位置は、例えば同一の人物ID1602かつ所定時間内のタイムスタンプ1601に対応付けられた位置情報1604が示す各位置として算出される。
移動方向は、同一人物が所定時間内に移動した方向である。移動方向は、例えば、算出した各位置に基づき、前時間での位置から後時間での位置に向かう方向を示すベクトルとして算出される。
続いて、ステップS1509では、ステップS1501で取得された境界ライン情報と、ステップS1508で算出された移動位置および移動方向とに基づき、同一人物が境界ラインを通過したか否かを判定する。
同一人物が境界ラインを通過していないと判定された場合(ステップS1509;NO)、ステップS1504に戻り、解析をしていない人物がいるか否かの判定が行われる。同一人物が境界ラインを通過したと判定された場合(ステップS1509;YES)、ステップS1510に進む。
ステップS1510では、ステップS1509において境界ラインを通過したと判定された人物について、境界ラインの通過情報をキャッシュする。具体的には、境界ラインの通過情報を、図17に示されるような境界越え情報DB1700として保存する。図17は、境界越え情報DB1700の一例を示す図である。
図17に示されるように、境界越え情報DB1700には、タイムスタンプ1701、人物ID1702、カメラID1703、および境界越え方向1704が、互いに対応付けられて格納されている。
タイムスタンプ1701は、同一人物が境界ラインを通過したときの時間を示す文字列である。人物ID1702は、ステップS1509で境界ラインを通過したと判定された人物を示す識別情報である。カメラID1703は、ステップS1509で境界ラインを通過したと判定された人物を撮影したネットワークカメラ102を示す識別情報である。
境界越え方向1704は、ステップS1509で境界ラインを通過したと判定された人物の境界ラインを越えた方向を示す情報であって、前述した「IN」又は「OUT」で示される。境界越え方向1704は、例えば、ステップS1508で算出された移動位置および移動方向と、ステップS1501で取得された境界ライン情報とに基づき算出され(通過方向情報取得手段)、記憶される。
続いて、ステップS1511では、ステップS1510で記憶された境界越え情報DB1700を参照し、同一人物が、所定の時間(例えば、1時間)内に境界ラインを通過した情報を複数検索する。
続いて、ステップS1512では、ステップS1511で検索された情報に基づき、境界ラインをうろうろ通過しているか否かを判定する。例えば、ステップS1501で取得したうろうろ見なし間隔時間(例えば、5分)内において、反対方向への移動(「IN」から「OUT」、又は、「OUT」から「IN」への移動)が1回以上あった場合には、境界ラインをうろうろ通過していると判定する。
ステップS1512において境界ラインをうろうろ通過していると判定された場合(ステップS1512;YES)には、ステップS1513に進む。ステップS1513では、人物除外部414が、境界ラインを通過した人物をカウント除外対象であると判定し、人数カウント部412が、カウント除外対象と判定された人物の人数をカウントから除外する。ステップS1513の後は、ステップS1504に戻り、解析をしていない人物がいるか否かの判定が再度行われる。
なお、本明細書において、カウントから除外するとは、人数のカウントをインクリメントしない場合だけでなく、一度インクリメントしたカウントをデクリメントする場合も含む。
ステップS1512において境界ラインをうろうろ通過していないと判定された場合(ステップS1512;NO)には、ステップS1514に進み、通常の人数カウント処理と同様の処理を行う。具体的には、まずステップS1514において、テップS1511で検索された情報に基づき、同一人物が同じ方向へ複数回移動したか否かを判定する。
ステップS1514において同じ方向へ複数回移動したと判定された場合(ステップS1514;YES)、ステップS1515へ進み、人物除外部414が、境界ラインを通過した人物をカウント除外対象であると判定し、人数カウント部412が、カウント除外対象と判定された人物の人数をカウントから除外する。ステップS1514の後は、ステップS1504に戻り、解析をしていない人物がいるか否かの判定が再度行われる。
ステップS1514において同じ方向へ複数回移動していないと判定された場合(ステップS1514;NO)、ステップS1516へ進み、IN/OUTの通過方向毎に、境界ラインを通過した人数のカウントをインクリメントする。ステップS1516の後は、ステップS1504に戻り、解析をしていない人物がいるか否かの判定が再度行われる。
ステップS1516においてインクリメントされた人数カウントの結果は、例えば図18に示されるようなラインカウンタDB1800として保存される。図18は、ラインカウンタDB1800の一例を示す図である。
図18に示されるように、ラインカウンタDB1800には、タイムスタンプ1801、カメラID1802、およびカウント数1803が、互いに対応付けられて格納されている。
タイムスタンプ1801は、人数カウントがインクリメントされた直近の日時を示す文字列である。カメラID1802は、人数カウントがインクリメントされた人物を撮影したネットワークカメラ102を示す識別情報である。カウント数1803は、カメラIDおよび通過方向毎にインクリメントされた人数であって、ある始点からの総加算人数である。カウント数1803aは、「IN」方向へ通過した人数であり、カウント数1803bは、「OUT」方向へ通過した人数である。
図18に示されるように、ステップS1506においては、カメラIDおよび通過方向毎にカウントされた人数が記憶される。
以上、本実施形態によれば、人物が境界ラインを通過した通過方向に基づき、同一人物が第一方向(例えば「IN」)に移動した後、所定のうろうろ見なし間隔時間内に、第二方向(例えば「OUT」)に移動した場合には、当該同一人物が通過カウントから除外される。よって、領域Aから領域B(又は領域Bから領域A)に移動するために境界ラインを通過しているのではなく、単に境界ライン上をうろうろと徘徊しているような人物を、通過人数カウントのノイズとして除去することができる。
次に、画像に写った人数のカウント処理を行う場合に適用可能な別の実施形態に係る画像処理システムについて説明する。当該別の実施形態では、人物除外部414が、所定の領域における長時間滞在者および短時間滞在者の少なくとも一方をカウント除外対象と判定する点が、上記実施形態とは異なる。
以下、図19を参照して、当該別の実施形態について詳述する。図19は、別の実施形態に係る画像処理システムにおける画像に写った人数のカウント処理の一例を示すフローチャートである。
本処理は、画像に含まれる人物の人数をカウントする人数カウント処理において、所定の領域(例えば領域601内の一部の領域)における長時間滞在者および短時間滞在者の少なくとも何れかを人数カウントから除外する処理である。本処理は、画像処理システムのサーバ100が行う。
本処理は、例えば、本処理を開始するための開始指示がユーザによって入力された場合に開始する。また、本処理は、例えば、後述するステップS1904で全ての人物について解析したと判定された場合、ユーザによる終了指示が入力された場合、又は、予め設定された処理時間が完了した場合等に、終了する。
まず、ステップS1901では、滞在領域の位置情報、および、滞在判定時間を取得する。所定の領域の位置情報、および、滞在判定時間は、例えば予めユーザ等によって設定された設定情報から取得される。
滞在領域、例えば領域601中の一部の所定の領域であって、矩形や円形等の所定の形状を呈するように囲まれた領域である。滞在領域の位置情報は、例えば、領域601を写す画像の左上端を基準とするピクセル座標で示される。滞在判定時間は、滞在領域に同一人物が滞在する時間が長時間であるか短時間であるかを判定するための時間である。滞在判定時間は、例えば、長時間であるか否かを判定するための長時間滞在判定時間(例えば1時間)と、短時間であるか否かを判定するための短時間滞在判定時間(例えば10分)と、を含む。
続くステップS1902〜ステップS1907の処理は、前述した図15におけるステップS1502〜ステップS1507の処理と同様であるため、その説明を省略する。
ステップS1907に続くステップS1908では、ステップS1901で取得された滞在領域の位置情報と、ステップS1907でキャッシュされた人物の位置情報とに基づき、ステップS1906で認識された同一人物が滞在領域に入っているか否かを判定する。
ステップS1908において同一人物が滞在領域に入っていないと判定された場合(ステップS1908;NO)、ステップS1904に戻り、解析をしていない人物がいるか否かの判定が行われる。ステップS1908において同一人物が滞在領域に入っていると判定された場合(ステップS1908;YES)、ステップS1909に進む。
ステップS1909では、ステップS1908で滞在領域に入っていると判定された同一人物の滞在時間を算出する。具体的には、ステップS1907で記憶した人物位置情報DB1600に基づき、滞在領域に入っていると判定された同一人物に紐づく最新の時間帯を検索し、当該時間帯の中で最も古い時刻と最も新しい時刻との差分を算出することで、同一人物の滞在時間を算出する。
続いて、ステップS1910では、ステップS1909で算出した滞在時間が、ステップS1901で取得した長時間滞在判定時間以上であるか否かを判定する。すなわち、認識された同一人物が滞在領域において所定の時間(例えば、1時間)以上滞在している長時間滞在者であるか否かを判定する。
ステップS1910において滞在時間が長時間滞在判定時間以上であると判定された場合(ステップS1910;YES)、ステップS1911に進む。ステップS1911では、人物除外部414が、長時間滞在者と判定された人物をカウント除外対象であると判定し、人数カウント部412が、カウント除外対象と判定された人物の人数をカウントから除外する。ステップS1911の後は、ステップS1904に戻り、解析をしていない人物がいるか否かの判定が再度行われる。
ステップS1911においてカウント除外された人物は、カウント除外されるタイミングで、長時間滞在によるカウント除外対象として記憶される。また、ステップS1911においてカウント除外された人数は、カウント除外されるタイミングで、長時間滞在によるカウント除外人数としてインクリメントされる。
ステップS1910において滞在時間が長時間滞在判定時間以上でないと判定された場合(ステップS1910;NO)、ステップS1912に進む。ステップS1912では、ステップS1909で算出した滞在時間が、ステップS1901で取得した短時間滞在判定時間以上であるか否かを判定する。すなわち、認識された同一人物が滞在領域において所定の時間(例えば、10分)未満しか滞在していない短時間滞在者であるか否かを判定する。
ステップS1912において滞在時間が短時間滞在判定時間未満であると判定された場合(ステップS1912;YES)、ステップS1913に進む。ステップS1913では、人物除外部414が、短時間滞在者と判定された人物をカウント除外対象であると判定し、人数カウント部412が、カウント除外対象と判定された人物の人数をカウントから除外する。ステップS1913の後は、ステップS1904に戻り、解析をしていない人物がいるか否かの判定が再度行われる。
ステップS1913においてカウント除外された人物は、カウント除外されるタイミングで、短時間滞在によるカウント除外対象として記憶される。また、ステップS1913においてカウント除外された人数は、カウント除外されるタイミングで、短時間滞在によるカウント除外人数としてインクリメントされる。
ステップS1912において滞在時間が短時間滞在判定時間未満でないと判定された場合(ステップS1912;NO)、ステップS1914に進み、人数カウンタをインクリメントする。すなわち滞在時間が短時間判定時間以上でかつ長時間判定時間未満の人物だけをカウントすることができる。以下、短時間判定時間以上でかつ長時間判定時間未満の時間を「適正時間」ともいい、滞在時間が適正時間である人物を「適正時間滞在者」ともいう。ステップS1914の後は、ステップS1904に戻り、解析をしていない人物がいるか否かの判定が再度行われる。
本実施形態において、結果画面表示制御部415は、人数カウントの結果を閲覧する閲覧画面として例えば図20で示される画面を表示する。
図20は、人数カウントの閲覧画面の一例を示す図である。図20に示されるように、閲覧画面においては、カウント除外対象を除外してカウントしたカウント人数2001と、カウント除外対象としてカウント除外された人数2002と、が表示される。
また、カウント除外対象としてカウント除外された人数2002のうち、長時間滞在者としてカウント除外された人数2003と、短時間滞在者としてカウント除外された人数2004と、が、それぞれ識別可能に表示される。
また、一点鎖線で示される滞在領域2005に滞在している人物のうち、長時間滞在者、短時間滞在者、および適正滞在者が、それぞれ識別可能に表示される。
例えば、長時間滞在者が実線の矩形枠2006で囲って表示され、短時間滞在者が破線の矩形枠2007で囲って表示され、適正滞在者は、何も囲まれない状態で表示される。また、各人物の滞在領域2005における滞在時間が表示されてもよい。
以上、本実施形態によれば、滞在領域における長時間滞在者および短時間滞在者がカウントから除外されるので、滞在領域における長時間滞在者でも短時間滞在者でもない適正時間滞在者だけをカウントすることができる。適正時間は、長時間滞在判定時間や短時間判定時間を適宜設定変更することにより、ユーザの所望の時間に設定することができる。よって、ユーザが所望する適正時間だけ滞在している人物をカウントすることができる。
また、本実施形態によれば、長時間滞在者、短時間滞在者、および適正滞在者とその人数とが、それぞれ識別可能に表示される。よって、滞在領域に滞在している人物が、滞在領域にどの程度滞在し続けている状態なのかを容易に把握することができる。
なお、本実施形態では、滞在領域における長時間滞在者および短時間滞在者をカウントから除外する例について説明したが、これに限られず、滞在領域における長時間滞在者および短時間滞在者の何れか一方をカウントから除外してもよい。例えば、長時間滞在者だけをカウントから除外する場合は、短時間判定時間を0とすればよい。また、短時間滞在者だけをカウントから除外する場合は、長時間判定時間を非常に大きな値とすればよい。
以上、実施形態について説明したが、本発明は、例えば、システム、装置、方法、プログラム若しくは記憶媒体等としての実施形態も可能であり、具体的には、複数の機器から構成されるシステムに適用してもよいし、また、1つの機器からなる装置に適用してもよい。
なお、本発明は、前述した実施形態の機能を実現するソフトウェアのプログラムを、システム或いは装置に直接、或いは遠隔から供給するものを含む。そして、そのシステム或いは装置のコンピュータが前記供給されたプログラムコードを読み出して実行することによっても達成される場合も本発明に含まれる。
したがって、本発明の機能処理をコンピュータで実現するために、前記コンピュータにインストールされるプログラムコード自体も本発明を実現するものである。つまり、本発明は、本発明の機能処理を実現するためのコンピュータプログラム自体も含まれる。
その場合、プログラムの機能を有していれば、オブジェクトコード、インタプリタにより実行されるプログラム、OSに供給するスクリプトデータ等の形態であってもよい。
プログラムを供給するための記録媒体としては、例えば、フレキシブルディスク、ハードディスク、光ディスク、光磁気ディスク、MO、CD−ROM、CD−R、CD−RWなどがある。また、磁気テープ、不揮発性のメモリカード、ROM、DVD(DVD−ROM,DVD−R)などもある。
その他、プログラムの供給方法としては、クライアントコンピュータのブラウザを用いてインターネットのホームページに接続する。そして、前記ホームページから本発明のコンピュータプログラムそのもの、若しくは圧縮され自動インストール機能を含むファイルをハードディスク等の記録媒体にダウンロードすることによっても供給できる。
また、本発明のプログラムを構成するプログラムコードを複数のファイルに分割し、それぞれのファイルを異なるホームページからダウンロードすることによっても実現可能である。つまり、本発明の機能処理をコンピュータで実現するためのプログラムファイルを複数のユーザに対してダウンロードさせるWWWサーバも、本発明に含まれるものである。
また、本発明のプログラムを暗号化してCD−ROM等の記憶媒体に格納してユーザに配布し、所定の条件をクリアしたユーザに対し、インターネットを介してホームページから暗号化を解く鍵情報をダウンロードさせる。そして、ダウンロードした鍵情報を使用することにより暗号化されたプログラムを実行してコンピュータにインストールさせて実現することも可能である。
また、コンピュータが、読み出したプログラムを実行することによって、前述した実施形態の機能が実現される。その他、そのプログラムの指示に基づき、コンピュータ上で稼動しているOSなどが、実際の処理の一部又は全部を行い、その処理によっても前述した実施形態の機能が実現され得る。
さらに、記録媒体から読み出されたプログラムが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれる。その後、そのプログラムの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるCPUなどが実際の処理の一部又は全部を行い、その処理によっても前述した実施形態の機能が実現される。
なお、前述した実施形態は、本発明を実施するにあたっての具体化の例を示したものに過ぎず、これらによって本発明の技術的範囲が限定的に解釈されてはならないものである。即ち、本発明はその技術思想、又はその主要な特徴から逸脱することなく、様々な形で実施することができる。