以下、図面を参照して、本発明の実施形態を詳細に説明する。
図1は、本発明の情報処理システムのシステム構成の一例を示すである。
図1(A)は、第1の情報処理システムのシステム構成の一例であり、図1(B)は、第2の情報処理システムのシステム構成の一例である。
まず、第1の情報処理システム(図1(A))について説明する。
図1(A)に示す第1の情報処理システムは、ネットワークカメラ101と、クライアント端末102と、警告手段103と、POSレジシステム106とを備えている。
ネットワークカメラ101と、クライアント端末102と、警告手段103と、POSレジシステム106とは、LAN等のネットワーク104を介して相互に通信可能に接続されている。
ネットワークカメラ101は、例えば、店舗内に設置されており、顧客がレジでの会計を待つエリアを撮影可能に設置されている。
ネットワークカメラ101は、撮影した映像を解析して、エリアで会計を待っている顧客が所定人数以上であると判定された場合には、アラートを警告手段103に出力する機能を備えている。本実施形態において、映像とは、動画、フレーム画像(群)、又は静止画である。
POSレジシステム106は、店舗内の複数のレジスター(単にレジとも言う)と通信可能なシステムであり、当該各レジの稼働状況を示す情報(図9の稼働レジ管理テーブル903)を管理している装置である。ここで、稼働とは、例えば、レジの電源が入っていること、又は、店員がレジを使用するためにレジに対して必要な設定(例えば認証等)が済んだ状態であること、あるいは、店員がレジ前でレジを操作しレジが会計を行うことが可能な状態であることを含む。
クライアント端末102は、ネットワークカメラ101が撮影した映像(動画や静止画)や後述する表示画面801の表示、後述する枠402(人数をカウントするエリア)の設定をユーザ(店員)から受け付ける情報処理装置である。クライアント端末102は、ユーザにより、矩形等の枠402をレジ401に対応するように設定を受け付け、当該設定されたデータを、ネットワークカメラ101に送信する。そして、ネットワークカメラ101は、当該データを受信すると、当該データを図9のレジ対応枠管理テーブル904として設定する。クライアント端末102は、パソコンやタブレットPC等の端末を含む。
後述する枠402は、レジ対応枠管理テーブル904の「レイアウト」に示される配置情報(枠の位置情報)に基づいて、映像に重畳して配置される。そして、当該枠内の人に対して後述の解析処理が行われる。
警告手段103は、ネットワークカメラ101から、アラートを受信すると、警光灯などを光らせて光で店員にアラートを知らせる機能、あるいは、サイレンなどの音で店員にアラートを知らせる機能を備えている。また、この警告手段103は、クライアント端末102が備えているものとしてもよい。クライアント端末102と、警告手段103は、例えば、店員の控室などに設けられている。
後述する図8に示す処理、及び図11に示す処理は、図1(A)に示す第1の情報処理システムのネットワークカメラ101のCPUが実行することができる。
次に、第2の情報処理システム(図1(B))について説明する。
図1(B)に示す第2の情報処理システムは、ネットワークカメラ101と、クライアント端末102と、警告手段103と、サーバ105と、POSレジシステム106とを備えている。
図1(A)に示す第1の情報処理システムとは、サーバ105を備えている点で異なる。そのため、異なる点についてのみ説明する。
図1(B)に示す第2の情報処理システムは、ネットワークカメラ101のCPUではなくサーバ105のCPUが、後述する図8に示す処理、及び図11に示す処理を実行することが可能である。
ネットワークカメラ101と、クライアント端末102と、警告手段103と、サーバ105と、POSレジシステム106とは、LAN等のネットワーク104を介して相互に通信可能に接続されている。
サーバ105は、ネットワークカメラ101が撮影した映像(ライブ映像の動画又は静止画)をネットワークカメラ101から受信すると、その映像を解析して、エリアで会計を待っている顧客が所定人数以上であると判定された場合に、アラートを警告手段103に出力する機能を備えている。
警告手段103は、サーバ105から、アラートを受信すると、警光灯などを光らせて光で店員にアラートを知らせる機能、あるいは、サイレンなどの音で店員にアラートを知らせる機能を備えている。
ネットワークカメラ101、サーバ105は、本発明の情報処理装置の適用例である。
図2は、図1に示すクライアント端末102、サーバ105、及びPOSレジシステム106に適用可能な情報処理装置のハードウェア構成の一例を示すブロック図である。
図2に示すように、情報処理装置は、システムバス204を介してCPU(Central Processing Unit)201、ROM(Read Only Memory)203、RAM(Random Access Memory)202、入力コントローラ205、ビデオコントローラ206、メモリコントローラ207、および通信I/Fコントローラ208が接続される。
CPU201は、システムバス204に接続される各デバイスやコントローラを統括的に制御する。
ROM203あるいは外部メモリ211等の記憶装置は、CPU201が実行する制御プログラムであるBIOS(Basic Input/Output System)やOS(Operating System)や、本情報処理方法を実現するためのコンピュータ読み取り実行可能なプログラムおよび必要な各種データ(データテーブルを含む)を保持している。
RAM202は、CPU201の主メモリ、ワークエリア等として機能する。CPU201は、処理の実行に際して必要なプログラム等をROM203あるいは外部メモリ211からRAM202にロードし、ロードしたプログラムを実行することで各種動作を実現する。
入力コントローラ205は、入力装置209(入力デバイス)からの入力を制御する。入力装置209としては、キーボード、タッチパネル、マウス等のポインティングデバイス等が挙げられる。
なお、入力装置209がタッチパネルの場合、ユーザがタッチパネルに表示されたアイコンやカーソルやボタンに合わせて押下(指等でタッチ)することにより、各種の指示を行うことができることとする。
また、タッチパネルは、マルチタッチスクリーンなどの、複数の指でタッチされた位置を検出することが可能なタッチパネルであってもよい。
ビデオコントローラ206は、ディスプレイ装置210などの外部出力装置への表示を制御する。ディスプレイは本体と一体になったノート型パソコンのディスプレイも含まれるものとする。なお、外部出力装置はディスプレイに限ったものははく、例えばプロジェクタであってもよい。また、前述のタッチ操作により受け付け可能な装置については、入力装置209を提供する。
なおビデオコントローラ206は、表示制御を行うためのビデオメモリ(VRAM)を制御することが可能で、ビデオメモリ領域としてRAM202の一部を利用することもできるし、別途専用のビデオメモリを設けることも可能である。
メモリコントローラ207は、外部メモリ211へのアクセスを制御する。外部メモリとしては、ブートプログラム、各種アプリケーション、フォントデータ、ユーザファイル、編集ファイル、および各種データ等を記憶する外部記憶装置(ハードディスク)、フレキシブルディスク(FD)、或いはPCMCIAカードスロットにアダプタを介して接続されるメモリ等を利用可能である。
通信I/Fコントローラ208は、ネットワークを介して外部機器と接続・通信するものであり、ネットワークでの通信制御処理を実行する。例えば、TCP/IPを用いた通信、Wi-Fi、および3G回線、LTE回線を用いた通信が可能である。
なお、外部メモリ211等の記憶装置は情報を永続的に記憶するための媒体であって、その形態をハードディスク等の記憶装置に限定するものではない。例えば、SSD(Solid State Drive)などの媒体であってもよい。
また本実施形態における通信端末で行われる各種処理時の一時的なメモリエリアとしても利用可能である。
尚、CPU201は、例えばRAM202内の表示情報用領域へアウトラインフォントの展開(ラスタライズ)処理を実行することにより、ディスプレイ装置210上での表示を可能としている。また、CPU201は、ディスプレイ装置210上の不図示のマウスカーソル等でのユーザ指示を可能とする。
次に、図3を用いて、図1に示したネットワークカメラ101(情報処理装置)のハードウェア構成の一例について説明する。
図3は、ネットワークカメラ101のハードウェアの構成を示す構成図である。
CPU301は、システムバス304に接続される各デバイスやコントローラを統括的に制御する。また、ROM302あるいは外部メモリ305には、CPU301の制御プログラムであるBIOS(Basic Input / Output System)やオペレーティングシステムプログラム(以下、OS)や、画像処理サーバ108の実行する機能を実現するために必要な後述する各種プログラム等が記憶されている。RAM303は、CPU301の主メモリ、ワークエリア等として機能する。
CPU301は、処理の実行に際して必要なプログラム等をRAM303にロードして、プログラムを実行することで各種動作を実現するものである。
メモリコントローラ(MC)306は、ブートプログラム、各種のアプリケーション、フォントデータ、ユーザファイル、編集ファイル、各種データ、画像データ等を記憶するハードディスク(HD)やPCMCIAカードスロットにアダプタを介して接続されるスマートメディア(登録商標)等の外部メモリ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によって外部機器へ送信される。
次に、図12を用いて、本発明の情報処理装置が適用可能なネットワークカメラ101、サーバ105が備える機能について説明する。
図12は、ネットワークカメラ101、サーバ105が備える機能を示す機能ブロック図の一例を示す図である。
取得部1201は、撮像手段(撮像部)により撮像された映像を取得する。
また、計数部1202は、取得部1201により取得された映像を解析して、待ち行列として並んでいる人物の人数を計数する。
また、特定部1203は、取得部1201により取得された映像を解析して、待ち行列の途中から割り込んだ人物を特定する。
計数部1202は、特定部1203により特定された人物を、待ち行列として並んでいる人物として計数しないことを特徴とする。
また、人物特定部1204は、取得部1201により取得された映像を解析して、待ち行列として並んでいる最後尾の人物の、待ち行列の先頭方向に対して後方側に新たに並んだ人物を特定する。
計数部1202は、人物特定部1204により特定された人物を、待ち行列として並んでいる人物として計数する。
特定部1203は、取得部1201により取得された映像を解析して、待ち行列として並んでいる最後尾の人物よりも、待ち行列の先頭方向側の位置に新たに入ってきた人物を、待ち行列の途中から割り込んだ人物として特定する。
計数部1202は、取得部1201により取得された映像の所定のエリア内の人数を、待ち行列として並んでいる人物の人数として計数する。
計数部1202は、待ち行列として並んでいる最後尾の人物と、所定のエリア内で、待ち行列の先頭方向に対して後方側に新たに入ってきた人物との間が所定距離以内であることを条件に、当該人物を、待ち行列として並んでいる人物として計数する。
計数部1202は、待ち行列として並んでいる最後尾の人物と、所定のエリア内で、待ち行列の先頭方向に対して後方側に新たに入ってきた人物との間が所定距離以内であり、かつ、当該人物と最後尾の人物との間の距離が所定距離以内の状態で当該人物が所定時間滞留していることを条件に、当該人物を、待ち行列として並んでいる人物として計数する。
計数部1202は、待ち行列として並んでいる最後尾の人物と、所定のエリア内で、待ち行列の先頭方向に対して後方側に新たに入ってきた人物との間が所定距離以内であり、当該人物を、待ち行列として並んでいる人物として計数した後に、当該新たに入ってきた人物と、当該最後尾の人物との間が所定距離よりも離れたとしても、当該新たに入ってきた人物を、待ち行列として並んでいる人物として計数する。
計数部1202は、待ち行列として並んでいる人物を、会計を行う対象の人物として計数する。
また、特定部1203は、取得部1201により取得された映像を解析して、待ち行列として並んでいる最後尾の人物の、待ち行列の先頭方向に対して後方側に新たに並んだ人物を特定する
そして、計数部1202は、特定部1203により特定された人物を、待ち行列として並んでいる人物として計数する。
計数部1202は、待ち行列の途中から割り込んだ人物を、待ち行列として並んでいる人物として計数せずに、特定部1203により特定された人物を、待ち行列として並んでいる人物として計数する。
次に、図8示すフローチャートを用いて、ネットワークカメラ101、又はサーバ105が実行する処理について説明する。
図8は、会計待ち人数に係るアラート出力条件を満たした場合にアラートを出力する処理を示すフローチャートの一例である。
ここでは、ネットワークカメラ101のCPU301が、図8に示す処理を実行するものとして説明する。図8に示す処理を、サーバ105のCPUが実行する処理とする場合には、ネットワークカメラ101をサーバ105と読み替えればよい。ただ、この場合、S801においては、サーバ105が、ネットワークカメラ101が撮影した映像を取得するものとする。また、後述する901、902、904の各テーブルは、サーバ105のメモリ等の記憶手段に記憶されているものとする。
まず、ネットワークカメラ101は、ネットワークカメラ101が撮影した映像を取得する(S801)。
S801は、本発明の取得手段の適用例であり、撮像手段により撮像された映像を取得する。ここで、撮像手段は、カメラ部307、及び/又は画像処理部308の適用例である。
ネットワークカメラ101には、ネットワークカメラ101の画角の中で、予めユーザにより所定のエリアが設定されている。図4は、ネットワークカメラ101が撮影した映像の一例である。図4に示す402は、予めユーザにより設定された枠であり、この枠内が所定のエリアである。
図4の例では、レジ401Aで会計を行う顧客が会計待ちで並ぶ領域(所定のエリア)を402Aの枠で予め設定されている。また、レジ401Bで会計を行う顧客が会計待ちで並ぶ領域(所定のエリア)を402Bの枠で予め設定されている。
また、図4に示す401Aのレジは、稼働しておらず、402Aには顧客が会計待ちで並んでいない様子を示している。図4に示す401Bのレジは、稼働しており、402Bには顧客が会計待ちで並んでいる様子を示している。
次に、ネットワークカメラ101は、S801で取得した映像を解析して、枠402Bで囲まれたエリア(所定のエリア)に顧客(人物)が入ってきたか否かを判定する(S802)。
ネットワークカメラ101は、枠402Bで囲まれたエリア(所定のエリア)に顧客が入ってきたと判定された場合には(S802:YES)、当該入ってきた顧客(人物)の特徴情報を、当該映像を解析して取得し、当該顧客の識別情報としてレジ行列管理テーブル901の「識別情報」の項目に登録する。また、このとき、レジ行列管理テーブル901の「人物No」にも、当該識別情報と対応付けて、当該顧客の番号を採番し登録する。
図4は、レジ行列管理テーブル901の一例を示す図である。
レジ行列管理テーブルは、枠402ごとに、ネットワークカメラ101のメモリに記憶されている情報であり、当該枠内で並んでいる顧客を管理するテーブルである。
レジ行列管理テーブル901は、枠402B内を並んでいる顧客を管理するテーブルである。
レジ行列管理テーブル901は、「人物No」、「識別情報」、「会計対象人物」の項目を備えている。
「人物No」は、ネットワークカメラ101が採番した顧客を示す番号が格納される。「識別情報」は、顧客(人物)を識別する特徴情報が識別情報として格納される。「会計対象人物」は、当該識別情報により識別される人物が、会計待ち人数として算出(特定)する対象の人物であるか否かを示す情報が格納される。会計待ち人数として算出(特定)する対象の人物である場合には「○」が格納され、会計待ち人数として算出(特定)する対象の人物ではない場合には「×」が格納される。
また、ネットワークカメラ101は、枠402Bで囲まれたエリア(所定のエリア)に顧客が入ってきていないと判定された場合には(S802:NO)、処理をS815に移行する。
ネットワークカメラ101は、S801で取得した映像を解析して、具体的には、枠402Bに囲まれたエリア内の映像を解析して、当該エリア内に並んでいる人の行列の最後尾の人の特定を行う(S804)。
ネットワークカメラ101は、例えば、枠402Bに囲まれたエリア内の人物をそれぞれ特定して、図4に示す映像の最も上部側に近い(図4に示す映像の下部側から最も遠い)人物を、行列の最後尾の人として特定する。
また、ネットワークカメラ101は、例えば、枠402Bに囲まれたエリア内の人物をそれぞれ特定して各人により形成された行列を特定し、図4に示す映像の最も上部側に近い(図4に示す映像の下部側から最も遠い)人物を、待ち行列の最後尾の人として特定することもできる。
次に、ネットワークカメラ101は、S801で取得された映像を解析して、S804で特定された最後尾の人(403)よりも前に(最後尾の人より待ち行列の先頭方向側の位置に)、S803で登録された人が割り込んできたか、それとも、S804で特定された最後尾の人の後ろ側(図4に示す映像の上部側)に、S803で登録された人が入ってきたかを判定する(S805)。
具体的には、ネットワークカメラ101は、枠402Bに囲まれたエリア内の人物をそれぞれ特定し、その特定された各人物の間の位置に、S803で登録された人が入ってきたかを判定する。各人物の間の位置に人が入ってきたと判定された場合には、人が割り込んできたと判定する。このようにして、会計の待ち行列の途中から割り込んだ人物を特定する。
また、具体的には、ネットワークカメラ101は、S804で特定された最後尾の人よりも前に(待ち行列の先頭方向側の位置に)、新たに入ってきた人物(S803で登録された人)を、待ち行列の途中から割り込んだ人物として特定する。
S805は、本発明の特定手段の適用例であり、S801の取得手段により取得された映像を解析して、会計の待ち行列の途中から割り込んだ人物を特定する。また、当該映像を解析して、待ち行列として並んでいる最後尾の人物の、待ち行列の先頭方向に対して後方側に新たに並んだ人物を特定する。
S805は、本発明の人物特定手段の適用例であり、S801の取得手段により取得された映像を解析して、S804で特定された最後尾の人の後ろ側(図4に示す映像の上部側)に、S803で登録された人が入ってきたと判定された場合、当該人を、会計の待ち行列として並んでいる最後尾の人物の、待ち行列の先頭方向に対して後方側に新たに並んだ人物として特定する。
そして、ネットワークカメラ101は、S805で、最後尾の人(図4の403)よりも前に人(図4の404B)が割り込んできたと判定された場合には(YES)、処理をS806に移行し、最後尾の人(図4の403)の後ろ側に人(図4の404A)が入ってきたと判定された場合には(NO)、処理をS807に移行する。
図4は、最後尾の人(図4の403)よりも前に割り込んできた人物(図4の404B)と、最後尾の人(図4の403)の後ろ側に入ってきた人(図4の404A)の位置関係を示す映像の一例を示す図である。
ネットワークカメラ101は、S806において、割り込んだ人が会計対象人物ではない設定を行う。具体的には、S803で登録された人物の識別情報に対応して、レジ行列管理テーブル901の「会計対象人物」に「×」を格納する。そして、処理をS811に移行する。
このようにして、S806は、S805の特定手段により特定された人物を、会計の待ち行列として並んでいる人物として、S811で計数しないように制御する。
ネットワークカメラ101は、S807において、枠402Bで囲まれたエリア(所定のエリア)に入ってきた顧客(人物)と、S804で特定された最後尾の人物との間の距離が、所定距離(例えば、70cm)以内であるか否かを判定する。
図6は、枠402Bで囲まれたエリア(所定のエリア)に入ってきた人物601と、S804で特定された最後尾の人物(図6の403)との間の距離が、所定距離よりも離れている状態を示した図の一例である。
図6に示すように、枠402Bで囲まれたエリア(所定のエリア)に入ってきた人物601と、S804で特定された最後尾の人物(図6の403)との間の距離が、所定距離よりも離れている状態であれば、その人物601は、レジ待ちのために当該所定のエリアに入ってきた人物ではなく、単に、当該所定のエリアの近くの商品を見ているだけの人物かもしれない。
そのため、ネットワークカメラ101は、S807において、枠402Bで囲まれたエリア(所定のエリア)に入ってきた顧客(人物)と、S804で特定された最後尾の人物との間の距離が、所定距離以内であると判定された場合には(YES)、処理をS808に進め、一方、所定距離以内ではないと判定された場合には(NO)、当該入ってきて来た人物601を、会計対象人物ではない設定を行う(S810)。具体的には、S803で登録された人物の識別情報に対応して、レジ行列管理テーブル901の「会計対象人物」に「×」を格納する。そして、処理をS801に移行する。そして、ネットワークカメラ101は、S810で「×」が格納された「会計対象人物」に対応してレジ行列管理テーブル901に記憶されている識別情報により識別される人物が、S801で取得した映像の解析の結果、枠402Bで囲まれたエリア(所定のエリア)内にいると判定された場合、当該人物については、S802で、枠402Bで囲まれたエリア(所定のエリア)に入ってきた人物として判定され(S802:YES)、S803の処理をスキップし処理をS804に移行する。また、ネットワークカメラ101は、S801で取得した映像の解析の結果、当該人物が、枠402Bで囲まれたエリア(所定のエリア)から出て行ったと判定された場合(S802:NO、S815:YES)、処理をS816に移行する。
ネットワークカメラ101は、S807において、枠402Bで囲まれたエリア(所定のエリア)に入ってきた人物(例えば601)と、S804で特定された最後尾の人物(例えば403)との間の距離が、所定距離以内であると判定された場合には(YES)、当該所定距離以内の状態でその人物(例えば601)が滞留している時間が所定時間(例えば、30秒)を超えたか否かを判定する(S808)。
そして、ネットワークカメラ101は、入ってきた人物(例えば図7の601)と、最後尾の人物(例えば図7の403)との間の距離が、所定距離以内の状態でその人物(例えば図7の601)が滞留している時間が所定時間(例えば、30秒)を超えたと判定された場合には(S808:YES)、処理S809に移行し、一方、超えていないと判定された場合には(S808:NO)、処理をS810に移行する。
図7の(A)は、入ってきた人物(例えば図7の601)と、最後尾の人物(例えば図7の403)との間の距離が、所定距離以内の状態であることを示す映像の図の一例である。
ネットワークカメラ101は、S809において、入ってきた人物(例えば図7の601)が、会計対象人物である設定を行う。具体的には、S803で登録された人物(例えば図7の601)の識別情報に対応して、レジ行列管理テーブル901の「会計対象人物」に「○」を格納する。
図7は、入ってきた人物(例えば図7の601)と、最後尾の人物(例えば図7の403)との間の距離が所定距離以内の状態にある映像の一例(A)と、その後、当該入ってきた人物(例えば図7の601)が、再度、所定距離よりも離れた状態になった映像の一例(B)を示す図である。
図7の(A)に示すように、入ってきた人物(例えば図7の601)と、最後尾の人物(例えば図7の403)との間の距離が所定距離以内の状態で、その人物(例えば図7の601)が滞留している時間が所定時間を超えた場合には、その人物(例えば図7の601)の、レジ行列管理テーブル901の「会計対象人物」に「○」を格納する。その後に、入ってきた人物(例えば図7の601)が、再度、図7の(B)に示すように、入ってきた人物(例えば図7の601)と、最後尾の人物(例えば図7の403)との間の距離が所定距離よりも離れた状態になったとしても、ネットワークカメラ101は、入ってきた人物(例えば図7の601)が、枠402B内のエリア内にいるのであれば、S802でNOと判定され、S815でNOと判定されるように制御する。
すなわち、S809で、一旦、会計対象人物として設定された人(例えば図7の601)が、最後尾の人(すぐ前の人)(例えば図7の403)と所定距離よりも離れたとしても、非会計対象人物として設定されないように制御することができる。
このようにして、計数手段は、待ち行列として並んでいる最後尾の人物(403)と、所定のエリア(402B)内で、待ち行列の先頭方向に対して後方側に新たに入ってきた人物(601)との間が所定距離以内であり、当該人物(601)を、待ち行列として並んでいる人物として計数した後に、当該新たに入ってきた人物(601)と、当該最後尾の人物(403)との間が所定距離よりも離れたとしても、当該新たに入ってきた人物(601)を、待ち行列として並んでいる人物として計数する。
そのため、会計が進み、人(例えば図7の403)がレジの方向に進み、図7の601の人がレジの方向に進み遅れてしまった場合であっても、図7の601の人が非会計対象人物とはならず、会計対象人物として設定することができ、より適切な人数を推定(特定)することが出来るようになる。
ネットワークカメラ101は、S806又はS809の何れかの処理を実行すると、S811に処理を移行して、会計待ち人数を計測(計数)して特定(推定)する(S811)。
具体的には、ネットワークカメラ101は、レジ行列管理テーブル901の「会計対象人数」が「○」の数をカウントして、当該カウントして得られた数値を、枠402で囲まれたエリアにおいて、会計を行うために待っている人の人数として推定(特定)する。
S802~S811は、本発明の計数手段の適用例であり、S801の取得手段により取得された映像を解析して、待ち行列として並んでいる人物の人数を計数する。
この計数手段は、S805の人物特定手段により特定された人物を、待ち行列として並んでいる人物として計数する。また、計数手段は、待ち行列として並んでいる人物を、会計を行う対象の人物として計数する。
すなわち、計数手段は、S801の取得手段により取得された映像の所定のエリア内の人数を、待ち行列として並んでいる人物の人数として計数するが、S805の人物特定手段により特定された人物を、待ち行列として並んでいる人物として計数する。
この計数手段は、待ち行列として並んでいる最後尾の人物(403)と、所定のエリア内で、待ち行列の先頭方向に対して後方側に新たに入ってきた人物(601)との間が所定距離以内であることを条件に(S807:YES)、当該人物(601)を、待ち行列として並んでいる人物として計数する。
また、この計数手段は、待ち行列として並んでいる最後尾の人物(403)と、所定のエリア内で、待ち行列の先頭方向に対して後方側に新たに入ってきた人物(601)との間が所定距離以内であり(S807:YES)、かつ、当該人物(601)と最後尾の人物(403)との間の距離が所定距離以内の状態で当該人物(601)が所定時間滞留していることを条件に(S808:YES)、当該人物(601)を、待ち行列として並んでいる人物として計数する。
そして、ネットワークカメラ101は、S811で特定された会計待ち人数が、所定人数(例えば3人)以上であるか否かを判定し(S812)、会計待ち人数が、所定人数以上であると判定された場合には(YES)、処理をS813に移行し、会計待ち人数が、所定人数未満であると判定された場合には(NO)、処理をS801に戻す。
ネットワークカメラ101は、S813において、空いているレジがあり、レジの対応が可能な店員(スタッフ)がいるかを判定する。
具体的には、ネットワークカメラ101は、POSレジシステム106のメモリ等の記憶手段に記憶されている稼働レジ管理テーブル903を取得し、当該稼働レジ管理テーブル903に基づいて、稼働していない空いているレジ(非稼働のレジ)があるか否かを判定する。
図9の903は、稼働レジ管理テーブル903の一例を示す図である。
稼働レジ管理テーブル903は、レジを識別する識別情報が格納される「レジ情報」の項目と、当該識別情報により識別されるレジが稼働しているか、稼働していないかを示す情報が格納される「稼働/非稼働」の項目とを備えている。「稼働/非稼働」には、稼働しているレジについては、「○」が格納され、稼働していないレジについては、「×」が格納される。
ネットワークカメラ101は、稼働レジ管理テーブル903の「稼働/非稼働」に「×」が格納されているか否かを判定することにより、非稼働のレジがあるか否かを判定する。また、ネットワークカメラ101は、「稼働/非稼働」に格納されている「×」に対応する「レジ情報」に格納される識別情報により識別されるレジを、非稼働のレジとして特定する。
また、ネットワークカメラ101は、現在時刻のレジの対応が可能な店員(スタッフ)の人数(レジ対応可能スタッフ人数)から、稼働レジ管理テーブル903の「稼働/非稼働」に「○」が格納されている数を減算した値が1以上であるか否かを判定することにより、レジの対応が可能な店員(スタッフ)がいるかを判定する。
図9の902は、レジ対応可能スタッフ人数管理テーブルの一例を示す図である。
レジ対応可能スタッフ人数管理テーブル902は、ネットワークカメラ101のメモリ等の記憶手段に記憶されている。
レジ対応可能スタッフ人数管理テーブル902は、時間帯ごとの、レジの対応が可能な店員(スタッフ)の人数(レジ対応可能スタッフ人数)が記憶されている。
そのため、ネットワークカメラ101は、現在時刻の時間帯に対応して、レジ対応可能スタッフ人数管理テーブル902に記憶されているレジ対応可能スタッフ人数をから、稼働レジ管理テーブル903の「稼働/非稼働」に「○」が格納されている数を減算した値を、レジ対応可能スタッフの人数として、レジの対応が可能な店員(スタッフ)がいるかを判定する。
ネットワークカメラ101は、S813において、空いているレジがあり、レジの対応が可能な店員(スタッフ)がいると判定された場合には(YES)、処理をS814に移行し、一方、空いているレジが無い、又は、レジの対応が可能な店員(スタッフ)がいないと判定された場合には(NO)、処理をS801に移行する。
ネットワークカメラ101は、S814において、アラートを出力する。
具体的には、ネットワークカメラ101は、警告手段103に、空きのレジに店員を行かせて当該レジで会計を行うようにするためのアラート信号を送信(出力)する。
そして、警告手段103は、当該アラート信号を受信すると、例えば、警光灯を光らせて、空いている店員に、空きのレジに店員を行かせて当該レジで会計を行うことを伝える。また、クライアント端末102が警告手段103を備えている場合は、表示部に、空きのレジに店員を行かせて当該レジで会計を行う旨を表示する。また、ネットワークカメラ101は、ネットワークカメラ101が特定した非稼働のレジを示す情報を、アラート信号と共に警告手段103に送信し、警告手段103が、当該非稼働のレジを示す情報を受信すると、当該非稼働のレジを示す情報を当該表示部に表示するようにすることもできる。
そして、ネットワークカメラ101は、S814の処理を実行すると、処理をS801に戻す。
ネットワークカメラ101は、S802において、S801で取得した映像を解析して、枠402Bで囲まれたエリア(所定のエリア)に顧客(人物)が入ってきていないと判定された場合には(NO)、処理をS815に移行する。
そして、ネットワークカメラ101は、S801で取得した映像を解析して、枠402Bで囲まれたエリア(所定のエリア)から顧客(人物)が出て行ったか否かを判定する(S815)。
ネットワークカメラ101は、枠402Bで囲まれたエリア(所定のエリア)から顧客(人物)が出て行ったと判定された場合には(S815:YES)、当該出て行った人を特定する(S816)。具体的には、S801で取得した映像を解析して、当該出て行った顧客(人物)の特徴情報(識別情報)を取得して、当該人物を特定する。
図5は、枠402Bで囲まれたエリア(所定のエリア)から顧客(人物)が出て行っている様子の映像の一例を示す図である。
図5に示すように、図5の404Bの人物は、行列の途中から割り込んで入ってきた人、又は行列の最後尾に並びはじめて途中で、枠402Bで囲まれたエリア(所定のエリア)外に出て行った人を示している。
そして、ネットワークカメラ101は、当該特定された人物の識別情報に対応して、レジ行列管理テーブル901に登録しているレコードを削除する(S817)。このようにして、当該出て行った顧客(人物)の、レジ行列管理テーブル901のレコード(登録内容)を削除する。そして、ネットワークカメラ101は、処理をS811に移行する。
また、ネットワークカメラ101は、枠402Bで囲まれたエリア(所定のエリア)から顧客(人物)が出て行っていないと判定された場合には(S815:NO)、処理をS801に戻す。
次に、図11を用いて、レジ行列管理テーブル901に登録されている内容をユーザ操作により変更する処理について説明する。
図11は、レジ行列管理テーブル901に登録されている内容をユーザ操作により変更する処理のフローチャートの一例を示す図である。
図11に示す各処理は、ネットワークカメラ101、又はサーバ105のいずれかが実行する処理である。
ここでは、ネットワークカメラ101のCPUが実行する処理として説明する。サーバ105のCPUが実行する処理とする場合には、ネットワークカメラ101をサーバ105と読み替えればよい。
ネットワークカメラ101は、ネットワークカメラ101のメモリ等の記憶手段に記憶されているレジ行列管理テーブル901と、レジ対応枠管理テーブル904とを取得する(S1101)。
そして、ネットワークカメラ101は、S1101で取得したレジ行列管理テーブル901と、レジ対応枠管理テーブル904と、ネットワークカメラ101が撮影して取得した映像とを用いて、表示画面801(図10)を生成し、当該表示画面801をクライアント端末102に送信する(S1102)。
図10は、表示画面801の一例を示す図である。
表示画面801には、ネットワークカメラ101が撮影して取得した映像に対して、予めユーザが設定した各枠(402A、402B)が重畳して表示されている。
レジ対応枠管理テーブル904は、レジを示すレジ情報に対応して、枠402(枠402A、枠402B)の配置位置(レイアウト)が記憶されている。
ネットワークカメラ101は、ネットワークカメラ101が撮影して取得した映像に対して、当該配置位置に示される枠402を重畳して表示する表示画面を生成する。また、ネットワークカメラ101は、ネットワークカメラ101が撮影して取得した映像に含まれている人物のうち、レジ行列管理テーブル901の会計対象人物が「×」のレコードに含まれる識別情報(例えば103)により識別される顧客(人物)を、非会計対象人物の人物として識別可能に表示する表示画面を生成する。
図10では、枠線1001で非会計対象人物を識別可能に示すと共に、枠線内に非会計対象人物である旨を表示する。
また、図10に示す表示画面801には、レジ行列管理テーブル901の「会計対象人物」に示される会計対象人物(○)を、非会計対象人物(×)に変更するためのボタン1002と、レジ行列管理テーブル901の「会計対象人物」に示される非会計対象人物(×)を、会計対象人物(○)に変更するためのボタン1003とを受付部として備えている。
ネットワークカメラ101は、生成された表示画面801をクライアント端末102に送信すると、クライアント端末102は、当該表示画面801を受信して表示部に表示する。
クライアント端末102は、ユーザから、表示画面801に表示されている顧客(人物)を選択し、ボタン1002、又はボタン1003のいずれかの選択を受け付けると、当該選択された人物を識別する識別情報と、選択されたボタンに対応する指示内容(非会計対象人物(×)に変更する指示、または会計対象人物(○)に変更する指示)を含む、レジ行列管理テーブル901の修正指示をネットワークカメラ101に送信する。
ネットワークカメラ101は、クライアント端末102から、当該修正指示を受け付けると(S1103:YES)、当該修正指示に含まれる当該識別情報に対応して、レジ行列管理テーブル901に登録された「会計対象人物」の登録内容を、当該修正指示に含まれる当該指示内容の通りに変更する。すなわち、当該指示内容が、非会計対象人物(×)に変更する指示であれば、当該「会計対象人物」の登録内容を「×」に変更し、当該指示内容が、会計対象人物(○)に変更する指示であれば、当該「会計対象人物」の登録内容を「○」に変更する。そして、処理をS1101に戻す。
また、ネットワークカメラ101は、クライアント端末102から、当該修正指示を受け付けていない場合(S1103:NO)、処理をS1101に戻す。
このようにして、ユーザの操作により、ネットワークカメラ101が顧客を、会計対象人物(○)、あるいは非会計対象人物(×)と判定した内容を、ユーザが手作業で変更して、より実態にあう内容に修正(変更)することができる。
以上、本発明によれば、待ち行列として並んでいる人物の人数をより好適に特定することができる。また、会計待ちの顧客の人数をより適切に特定することができる。
本発明は、例えば、システム、装置、方法、プログラムもしくは記録媒体等としての実施態様をとることが可能である。具体的には、複数の機器から構成されるシステムに適用しても良いし、また、一つの機器からなる装置に適用しても良い。
また、本発明におけるプログラムは、図示したフローチャートの処理方法をコンピュータが実行可能なプログラムであり、本発明の記憶媒体は当該処理方法をコンピュータが実行可能なプログラムが記憶されている。なお、本発明におけるプログラムは各装置の処理方法ごとのプログラムであってもよい。
以上のように、前述した実施形態の機能を実現するプログラムを記録した記録媒体を、システムあるいは装置に供給し、そのシステムあるいは装置のコンピュータ(またはCPUやMPU)が記録媒体に格納されたプログラムを読み出し、実行することによっても本発明の目的が達成されることは言うまでもない。
この場合、記録媒体から読み出されたプログラム自体が本発明の新規な機能を実現することになり、そのプログラムを記録した記録媒体は本発明を構成することになる。
プログラムを供給するための記録媒体としては、例えば、フレキシブルディスク、ハードディスク、光ディスク、光磁気ディスク、CD-ROM、CD-R、DVD-ROM、磁気テープ、不揮発性のメモリカード、ROM、EEPROM、シリコンディスク等を用いることが出来る。
また、コンピュータが読み出したプログラムを実行することにより、前述した実施形態の機能が実現されるだけでなく、そのプログラムの指示に基づき、コンピュータ上で稼働しているOS(オペレーティングシステム)等が実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
さらに、記録媒体から読み出されたプログラムが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれた後、そのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるCPU等が実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
また、本発明は、複数の機器から構成されるシステムに適用しても、ひとつの機器から成る装置に適用しても良い。また、本発明は、システムあるいは装置にプログラムを供給することによって達成される場合にも適応できることは言うまでもない。この場合、本発明を達成するためのプログラムを格納した記録媒体を該システムあるいは装置に読み出すことによって、そのシステムあるいは装置が、本発明の効果を享受することが可能となる。
さらに、本発明を達成するためのプログラムをネットワーク上のサーバ、データベース等から通信プログラムによりダウンロードして読み出すことによって、そのシステムあるいは装置が、本発明の効果を享受することが可能となる。なお、上述した各実施形態およびその変形例を組み合わせた構成も全て本発明に含まれるものである。