[画像処理システム100の概要]
図1は、本実施の形態に係る画像処理システム100の概要を説明するための図である。画像処理システム100は、人の行動を監視するためのシステムであり、例えば、店舗Sにおける万引きを防止するため、又は店舗Sにいる人(以下、「顧客M」という場合がある。)がどの商品に関心を持っているかを把握するために用いられる。本実施の形態においては、画像処理システム100が店舗Sの顧客の行動を監視する場合を例示するが、画像処理システム100は他の場所の人が撮影された画像を処理するシステムであってもよい。
図1に示す例においては、店舗Sに複数の撮像装置であるカメラCが設置されており、複数のカメラCが店舗内の顧客Mを撮影することにより撮像画像データを生成する。複数のカメラCの視野角は任意であるが、本実施の形態におけるカメラCは、360度方向を撮影可能なカメラであるとする。
複数のカメラCは、通信線を介して画像処理装置1に撮像画像データを送信する。通信線は有線であっても無線であってもよい。本実施の形態においては、撮像画像データが動画像データである場合を例示するが、撮像画像データは静止画像データであってもよい。
画像処理装置1は、撮像画像データの画像処理をするための装置であり、例えばコンピュータである。画像処理装置1は、例えば店舗Sのオフィスに設置されたパーソナルコンピュータであるが、店舗Sと異なる場所に設置されたコンピュータ又はサーバであってもよい。
図2は、店舗Sのレイアウトを示す模式図である。図3は、店舗Sにおける複数のエリアそれぞれのエリアIDであるアドレスを示す図である。複数のエリアのアドレスは、横方向アドレスx1~x8と縦方向アドレスy1~y6の組み合わせにより表されるエリア識別情報である。例えば、左上のエリアのアドレスは(x1,y1)と表される。図3に示す一点鎖線の矢印は、顧客M1が移動してきた経路を示している。
店舗Sには、商品棚T1及び商品棚T2が設置されている。図3に示すように、商品棚T1は、商品棚T11~T22により構成されており、商品棚T2は商品棚T23~T34により構成されている。商品棚T1の上方には、カメラC11~C15が設置されており、商品棚T2の上方には、カメラC21~C25が設置されている。C11~C15及びC21~C25は、カメラCを識別するためのカメラ識別情報(以下、「カメラID」という。)として使用される。
商品棚T1及び商品棚T2の周囲の通路の上方にカメラが設置されていてもよい。来店した顧客(図2においては、M1~M5)は、通路を自由に移動することができる。複数のカメラCは、それぞれの視野の範囲内を撮影することにより、それぞれ異なる撮像画像データを生成する。
画像処理装置1は、複数のカメラCが生成した複数の撮像画像データから選択した2つの撮像画像データを用いて、複数のカメラCの間の距離を視差として用いることにより距離画像データを作成する。距離画像データには深度情報(すなわち、奥行方向の距離を示す情報)が含まれているので、画像処理装置1は距離画像データを解析することで、二次元の撮像画像データのみを用いる場合に比べて高い精度で被写体である顧客Mの行動を解析することができる。
以下、画像処理装置1の構成及び動作を詳細に説明する。
[画像処理装置1の構成]
図4は、画像処理装置1の構成を示す図である。画像処理装置1は、通信部11と、設定受付部12と、記憶部13と、制御部14と、を有する。
通信部11は、外部装置との間でデータを送受信するためのインターフェースであり、例えばLAN(Local Area Network)コントローラ又は無線通信コントローラを有する。通信部11は、複数のカメラCから撮像画像データを受信する。
設定受付部12は、画像処理装置1のユーザ(例えば店舗Sの管理者)による各種の設定を受け付けるためのインターフェースである。設定受付部12は、例えば、キーボード又はマウス等の操作デバイスを含む。設定受付部12は、入力された設定内容を示すデータを記憶部13に記憶させたり制御部14に通知したりする。
記憶部13は、例えば、ROM(Read Only Memory)、RAM(Random Access Memory)又はSSD(Solid State Drive)等の記憶媒体を有する。記憶部13は、制御部14が実行するプログラムを記憶する。また、記憶部13は、撮像画像データに基づく各種の処理を実行するために用いられるデータを記憶する。
記憶部13は、プログラム記憶部131と、設定データ記憶部132と、エリアデータ記憶部133と、検出データ記憶部134と、を有する。プログラム記憶部131は、制御部14が実行するプログラムを記憶する。
設定データ記憶部132は、ユーザが設定した各種のデータを記憶する。設定データ記憶部132は、設定受付部12が受け付けた設定内容を示すデータを記憶する。設定データ記憶部132は、例えば、設定受付部12が受け付けた、撮像画像データから検出する対象となる顧客Mの身体の部位である検出対象部位を示す設定データを記憶する。検出対象部位は、例えば、顔、左手、右手、全身、利き手であり、ユーザが監視をしたい対象の部位に対応する。
設定データ記憶部132は、複数の顧客Mの部位それぞれと一以上のカメラCとを関連付けて記憶してもよい。設定データ記憶部132は、例えば、比較的高い位置を撮影可能なカメラCのカメラIDに関連付けて、頭を撮影可能であることを記憶し、比較的低い位置を撮影可能なカメラCのカメラIDに関連付けて、手を撮影可能であることを記憶する。
顧客Mがいる位置によって、1台のカメラCが写すことができる部位に違いが生じることがある。例えば、カメラC11の近くの(x2,y3)の位置に顧客Mがいる場合、カメラC11が顧客Mの頭しか写すことができないが、カメラC11から少し離れた(x3,y3)の位置に顧客Mがいる場合、カメラC11が顧客Mの全身を写すことができるという場合がある。そこで、設定データ記憶部132は、エリアIDと、カメラIDとに関連付けて、検出可能な人の部位を記憶してもよい。
エリアデータ記憶部133は、複数のエリアそれぞれと2つ以上のカメラCとが関連付けられたエリアデータを関連付けて記憶する。エリアデータ記憶部133は、エリアIDと、エリアIDに対応するエリアに設置された商品棚を識別するための棚識別情報である棚IDとを関連付けて記憶してもよい。棚IDは、例えば図3におけるT11、T12等の文字列である。
図5は、エリアデータの一例を示す図である。図5に示すエリアデータにおいては、エリアのアドレスとカメラIDとが関連付けられている。複数のカメラCが撮影することができないエリアのアドレスには、1台のカメラCのカメラIDのみが関連付けられている。2台以上のカメラCが撮影することができるエリアのアドレスには、2台以上のカメラCのカメラIDが関連付けられている。
検出データ記憶部134は、撮像画像データにおいて検出された顧客Mが存在する複数の撮像画像データと検出された顧客Mとが関連付けられた第1検出データを記憶する。検出データ記憶部134は、例えば、後述する特徴特定部145が特定した特徴に基づいて人特定部146が特定した同一の顧客ごとに、その顧客が写っている撮像画像データを、撮像画像データが生成された日時の順番に時系列に記憶する。
図6は、第1検出データの一例を示す図である。図6は、撮像画像データにおいて検出された3人の顧客(例えば顧客M1、M2、M3)それぞれに対応する第1検出データD01、D02、D03を示しているが、検出データ記憶部134は、より多くの顧客に対応する複数の第1検出データを記憶してもよい。以下の説明において、第1検出データに対応する顧客を識別するためのD01、D02、D03のような情報を特徴IDという場合がある。検出データ記憶部134には、特徴IDに関連付けて、特徴の内容が記憶されていてもよい。
図6に示す第1検出データにおいては、それぞれの第1検出データに対応する顧客Mの画像が写っている撮像画像データが生成された順番に、それぞれの撮像画像データに顧客Mが写っている時間の開始日時及び終了日時と、当該撮像画像データのファイル名と、当該撮像画像データを生成したカメラCのカメラIDとが関連付けられている。画像データ名は、検出データ記憶部134内のアドレスに関連付けられた撮像画像データのファイル名であり、制御部14は、画像データ名を指定することにより撮像画像データにアクセスすることができる。
図6に示す第1検出データは、図3に示した店舗Sにいる顧客M1が店舗Sに入ってからアドレス(x4,y3)の位置まで、一点鎖線で示す経路で移動する間に撮影された複数の撮像画像データに対応している。ここでは、顧客M1が1秒ごとにアドレスを移動している状態が想定されている。
図5のエリアデータが示すように、店舗Sに入った顧客M1がアドレス(x1,y1)、(x1,y2)にいる間は、カメラC11のみが顧客M1を撮影できるので、最初の2秒間(13時45分00秒~13時45分02秒)は、カメラC11のみが顧客M1を撮影している。その後、顧客M1がアドレス(x1,y3)に移動すると、カメラC21も顧客M1を撮影できるようになり、13時45分02秒~13時45分05秒の間は、C21も顧客M1を撮影している。
その後、顧客M1がアドレス(x2,y3)~(x4,y3)にいる13時45分03秒~13時45分06秒の間は、カメラC12、C22が顧客M1を撮影している。顧客M1が13時45分04秒にアドレス(x3,y3)に到達すると、さらにカメラC13、C23も顧客M1を撮影している。このように、第1検出データには、顧客M1が写っている撮像画像データが時系列に記録されているので、画像処理装置1は、効率良く顧客M1の行動を分析することが可能になる。また、顧客Mが写っている画像をユーザが時系列で見ることができるので、ユーザが顧客Mそれぞれの行動を確認したいという場合に好適である。
また、検出データ記憶部134は、距離画像データにおいて検出された人が存在する複数の距離画像データと当該人とが関連付けられた第2検出データを記憶する。検出データ記憶部134は、例えば、顧客Mごとに、その顧客Mが写っている複数の距離画像データを、距離画像データの作成に用いられた2つの撮像画像データが生成された日時の順番に時系列に記憶する。
図7は、第2検出データの一例を示す図である。図7は、撮像画像データにおいて検出された3人の顧客(例えば顧客M1、M2、M3)それぞれに対応する第2検出データD11、D12、D13を示しているが、検出データ記憶部134は、より多くの顧客に対応する複数の第2検出データを記憶してもよい。
図7に示す第2検出データにおいては、それぞれの第2検出データに対応する顧客Mの画像が写っている撮像画像データが生成された順番に、撮像画像データに基づいて生成された距離画像データに顧客Mが含まれている時間の開始日時及び終了日時と、距離画像データのファイル名と、距離画像データの作成に用いられた撮像画像データを生成したカメラのカメラIDとが関連付けられている。距離画像データのファイル名には、距離画像データの作成に用いられた2つの撮像画像データを生成した2台のカメラCのカメラIDが含まれている。
距離画像データの作成には2つの撮像画像データが用いられるので、第2検出データにおいては、距離画像データに2つのカメラIDが関連付けられている。ただし、13時45分00秒~13時45分02秒の間は、カメラC11が生成した撮像画像データにしか顧客M1が写っていないため、この間は、距離画像データではなくカメラC11が生成した撮像画像データしか記録されていない。
顧客M1がアドレス(x1,y3)から(x4,y3)まで移動するまでの間は複数のカメラCにより顧客M1が撮影されているので、2つの撮像画像データに基づいて作成された距離画像データが記録されている。この間、3つ以上のカメラCにより顧客M1が撮影されている時点においては、2つ以上の距離画像データが作成可能である。したがって、例えば13時45分03秒~13時45分05秒の間には、カメラC11とカメラC21の組み合わせ、カメラC11とカメラC12の組み合わせ、カメラC21とカメラC22の組み合わせ及びカメラC12とカメラC22の組み合わせに対応する4つの2組の撮像画像データに基づく4つの距離画像データが作成されている。
制御部14は、プログラム記憶部131に記憶されたプログラムを実行することにより、データ取得部141、検出部142、選択部143、距離画像作成部144、特徴特定部145、人特定部146及び記録処理部147の少なくともいずれかとして機能する。制御部14は、これらの全ての構成部の機能を実行してもよく、これらの一部の構成部の機能を実行してもよい。
データ取得部141は、所定の空間に設置された複数のカメラCが生成した複数の撮像画像データを取得する。上述のとおり、本実施の形態における所定の空間は、例えば店舗S内の空間である。
データ取得部141が取得する撮像画像データは、動画像データであってもよく、静止画像データであってもよい。データ取得部141は、取得した複数の撮像画像データを検出部142に入力する。データ取得部141は、撮像画像データを送信したカメラCのカメラIDに関連付けて複数の撮像画像データを検出データ記憶部134に記憶させてもよい。
検出部142は、店舗S内の顧客Mの位置を検出する。検出部142は、複数の撮像画像データに基づいて、店舗S内の複数のエリアのうちどのエリアに人が滞在しているかを検出する。検出部142は、複数の撮像画像データに基づいて、顧客Mが滞在しているエリアにおけるどの商品棚の前に人が滞在しているかを検出してもよい。
検出部142が顧客Mの位置を検出する方法は任意であるが、検出部142は例えば撮像画像データに基づいて顧客Mの位置を特定する。具体的には、検出部142は、複数の撮像画像データを生成した複数のカメラCがエリアデータ記憶部133において関連付けられたエリアを特定することにより、店舗M内の複数のエリアのうちどのエリアに人が滞在しているかを検出する。
この場合、検出部142は、まずデータ取得部141から入力された複数の撮像画像データにおいて輝度値の変化量が閾値以上である輪郭線を特定し、輪郭線の形状が予め記憶部13に記憶された人間の輪郭線と類似していることにより、顧客Mの画像が含まれている撮像画像データを特定する。検出部142は、エリアデータ記憶部133に記憶されたエリアデータを参照し、顧客Mの画像が含まれていることを特定した撮像画像データを送信したカメラCの位置を特定することにより、顧客Mの位置を検出する。
なお、検出部142は、店舗Sにおける複数の位置に設けられた人感センサー(不図示)からの信号に基づいて顧客Mの位置を検出してもよい。この場合、検出部142は、人を検出したことを示す信号を送信した人感センサーが人を検出する範囲に基づいて、顧客Mの位置を検出する。検出部142は、検出した顧客Mの位置を選択部143に通知する。
検出部142は、顧客Mが滞在しているエリアにおける所定の位置を検出部142が検出した人が向いている時間を検出してもよい。検出部142は、例えば、人が滞在しているエリアにおける商品棚を人が向いている時間を検出する。検出部142は、商品棚から所定の距離以内(例えば商品棚に手が届く距離以内)の同一の位置に顧客Mが滞在している時間を検出してもよい。検出部142は、検出した時間を人特定部146に通知する。検出部142は、顧客Mが向いている商品棚又は顧客Mから最も近い商品棚の棚IDを、検出した時間とともに人特定部146に通知してもよい。
選択部143は、検出部142が検出した顧客Mの位置に基づいて、複数の撮像画像データから2つの撮像画像データを選択する。選択部143は、検出部142が検出した位置が含まれているエリアに関連付けてエリアデータ記憶部133に記憶された2つのカメラCが生成した2つの撮像画像データを選択する。選択部143は、例えば、検出部142が検出した顧客Mの位置に基づいて、店舗Sに設置された複数のカメラCから2つのカメラCを選択し、選択した2つのカメラCが生成した2つの撮像画像データを選択する。
具体的には、選択部143は、図5に示したエリアデータを参照し、検出部142が顧客Mを検出した位置のアドレスに対応する2つのカメラCを選択する。選択部143は、選択した2つのカメラCが生成した2つの撮像画像データを選択する。選択部143は、距離画像作成部144が距離画像データを作成できるように、選択した2つの撮像画像データを距離画像作成部144に入力する。選択部143は、2つの撮像画像データを識別するための情報(例えば画像ファイル名)を距離画像作成部144に通知してもよい。
ところで、図5のエリアデータが示すように、位置によっては3台以上のカメラCが顧客Mを撮影できる場合がある。このような場合、選択部143は、検出部142が検出した顧客Mの位置とカメラCの位置との距離が所定の範囲内の2つの撮像装置が生成した2つの撮像画像データを選択する。所定の範囲は、例えば、距離画像データの作成に適した距離として設定された範囲である。所定の範囲は、検出対象部位を撮影するために適した距離の範囲であってもよい。
一例として、選択部143は、検出部142が検出した顧客Mの位置と複数のカメラCそれぞれとの位置との距離が最も近い2つのカメラCが生成した2つの撮像画像データを選択する。選択部143は、2つのカメラCと顧客Mの位置までの距離の平均値又は中央値が最も小さい2つのカメラCが生成した撮像画像データを選択してもよい。選択部143がこのような2つの撮像画像データを選択することで、顧客Mが大きく写っている距離画像データが作成されるので、顧客Mの行動を特定する精度が高まる。
また、選択部143は、顧客Mの位置と2つのカメラCとの距離のばらつきが、距離画像データの作成に適した距離として設定された範囲内である2つのカメラCを選択してもよい。顧客Mの位置と2つのカメラCとの距離のばらつきが小さいと、2つのカメラCが撮影した顧客Mの大きさが同等になるので、作成される距離画像データの質が高まる。
選択部143は、顧客Mを撮影可能な2つのカメラCの間の距離が、予め記憶部13に記憶された、距離画像データの作成に適した距離の範囲に含まれている2つのカメラCを選択してもよい。一例として、図3に示すアドレス(x3,y3)に顧客Mがいる場合、選択部143は、この位置を撮影可能な6台のカメラCのうち、互いの距離が最も近いカメラC11とカメラC12、又はカメラC12とカメラC13等を選択する。
選択部143は、検出部142が特定した異なる時刻に対応する複数の位置の関係に基づいて、検出部142が検出した顧客Mの進行方向を特定した結果に基づいて、複数の2つ以上の撮像画像データを選択してもよい。選択部143は、例えば図6に示した第1検出データに基づいて、顧客M1が撮像画像データに写っている位置のアドレスを時系列に特定し、時間の経過に伴って位置が変化している向きを特定することで、顧客M1の進行方向を特定する。
選択部143は、例えば顧客Mの顔を記録することができるように、顧客M1が(x3,y3)から(x4,y3)の向きに進んでいることを特定した場合、第1検出データに含まれている複数の撮像画像データのうち、進行方向に直交する方向に並んだ2台のカメラCであるカメラC13及びカメラC23により生成された2つの撮像画像データを選択する。進行方向に直交する方向に並んだ2台のカメラCの組み合わせが複数ある場合、選択部143は、顧客M1が進んでいる側の2台のカメラCにより生成された2つの撮像画像データを選択する。選択部143がこのような2台のカメラCにより生成された2つの撮像画像データを選択することで、顧客M1の顔が写った距離画像データが作成されやすくなる。
選択部143は、設定データ記憶部132が記憶する検出対象部位を撮影可能なカメラCが生成した一以上の撮像画像データを複数の撮像画像データから選択してもよい。この場合、選択部143は、複数の人の部位のうち、検出対象部位に関連付けて設定データ記憶部132に記憶された一以上のカメラCが生成した一以上の撮像画像データを選択する。
一例として、アドレス(x3,y3)の位置において、当該位置に最も近いカメラC12は顧客Mの頭部しか写すことができず、当該位置から離れた位置に設けられたカメラC11及びカメラC13は顧客Mの全身を写すことができる場合、選択部143は、カメラC11、カメラC13、C21、C22又はC23のいずれかを選択する。
選択部143は、顧客Mの進行方向と検出対象部位とに基づいて、複数のカメラC又は複数の撮像画像データを選択してもよい。検出対象部位が手である場合、選択部143は、複数の撮像画像データのうち顧客M1の手を撮影可能なカメラCが生成した撮像画像データを選択する。選択部143は、検出対象部位が右手であり、顧客M1が(x3,y3)から(x4,y3)に進んでいることを特定した場合、第1検出データに含まれている複数の撮像画像データのうち、進行方向の右側に並んだ2台のカメラCであるカメラC22及びカメラC23により生成された2つの撮像画像データを選択する。検出対象部位が顔である場合、上述のように、選択部143は、顧客Mの進行方向側に設けられており、かつ顧客Mの顔を写すことができるカメラC13及びカメラC23を選択する。
選択部143がこのように検出対象部位を撮影可能なカメラCが生成した撮像画像データを選択することで、検出対象部位が含まれていない距離画像データを距離画像作成部144が作成したり、検出対象部位が含まれていない撮像画像データを特徴特定部145が解析したりすることを防げる。
選択部143は、検出対象部位に対応する撮像画像データを選択する際、検出対象部位に対応する数の撮像画像データを選択してもよい。一例として、記憶部13が、検出対象部位が頭部である場合に1つの撮像画像データが必要であり、検出対象部位が手である場合に、距離画像データを作成するための2つの撮像画像データが必要であることを記憶しているとする。この場合、検出対象部位として手が設定されたことに応じて、選択部143は、手が写っている2以上の撮像画像データを選択する。選択部143がこのように動作することで、検出対象部位の解析に適した枚数の撮像画像データを選択部143が選択することができる。
選択部143は、複数の時刻に生成された複数の撮像画像データから、時刻ごとに一以上の撮像画像データを選択する。選択部143は、単位時間(例えば1秒)ごとに一以上の撮像画像データを選択してもよい。一例として、選択部143は、顧客Mが(x1,y3)にいる時刻においては、カメラC11及びカメラC21の撮像画像データを選択し、顧客Mが(x2,y3)にいる時刻においては、カメラC11、カメラC12、カメラC21及びカメラC22の撮像画像データを選択する。選択部143は、時刻ごとに、上述のいずれかの方法により2つの撮像画像データを選択してもよい。
選択部143は、同じ方向が撮影された2つの撮像画像データを選択してもよい。選択部143がこのような2つの撮像画像データを選択することで、距離画像作成部144が作成する距離画像データに含まれる距離情報の精度が向上する。2つのカメラCが360度の範囲で撮影可能である場合、選択部143は、2つのカメラCが作成した撮像画像データのうち、同じ方向に対応しており、かつ同じ顧客Mが写っている領域の画像データを2つの撮像画像データとして選択する。
距離画像作成部144は、選択部143が選択した2つの撮像画像データに基づいて、距離情報を含む距離画像データを作成する。距離情報は、被写体までの深度又は奥行を示す情報である。本実施の形態における距離画像データは、例えば、撮像画像データに含まれている色の情報と距離情報とを含むデータである。
選択部143が選択した2つの撮像画像データを生成した2つのカメラCはステレオカメラを構成すると考えられ、距離画像作成部144は、ステレオカメラが距離画像データを作成する場合と同様の画像処理方法を用いて距離画像データを作成する。距離画像作成部144は、選択部143が選択した2つの撮像画像データに対応する2つのカメラCの間の距離が、ステレオカメラにおける左右のカメラの間の距離であると仮定して、2つのカメラCを結ぶ直線から被写体までの距離を算出することにより距離画像データを作成する。距離画像作成部144が作成した距離画像データは、記録処理部147により検出データ記憶部134に記憶される。
図8は、距離画像作成部144が距離画像データを作成する方法を説明するための図である。図8に示す例では、カメラC11及びカメラC12の焦点距離がF、基線長(カメラ間距離)がBである。距離画像作成部144は、カメラC11が生成した撮像画像データにおける顧客Mの位置とカメラC12が生成した撮像画像データにおける顧客Mの位置との差である視差Sを算出し、顧客Mまでの距離DをD=B×F/Sにより算出する。
特徴特定部145は、撮像画像データ又は距離画像データに含まれる顧客Mの特徴を特定する。特徴特定部145は、例えば、撮像画像データ又は距離画像データに含まれる顧客Mの顔、服装、動き方等の特徴を特定する。特徴特定部145は、第1のカメラCが生成した第1撮像画像データ又は第1動画像データに含まれる顧客Mの特徴と、第2のカメラCにより生成された第2撮像画像データ又は第2動画像データに含まれる顧客Mの特徴と、を特定する。
特徴特定部145は、特定した特徴が複数の撮像画像データ又は複数の距離画像データにおいて一致する顧客Mに対して、同じ特徴IDを付す。特徴IDは、図7に示したD11、D12、D13のような文字列であり、例えば新たな特徴を有する顧客Mが検出されるたびに異なる文字列が割り当てられる。特徴IDは、店舗Sにおいて顧客Mが初めて検出された日時に対応する文字列であってもよい。
特徴特定部145は、複数の種別の特徴を特定し、複数の特徴の組み合わせが一致する顧客Mに対して同じ特徴IDを付してもよい。例えば、特徴特定部145は、赤い服を着ている顧客Mであっても、歩き方の特徴が異なる場合には、それぞれの顧客Mに対して異なる特徴IDを割り当てる。
特徴特定部145は、撮像画像データを識別するための情報(例えばカメラID及び撮影時刻)に関連付けて、特定した特徴又は特徴IDの少なくともいずれかを記録処理部147に通知することにより、記録処理部147が、複数の撮像画像データを顧客Mごとに分類し、第1検出データ及び第2検出データを作成できるようにする。
特徴特定部145は、顧客Mの動き方の特徴を特定する際に、生成された時刻が異なる複数の撮像画像データ、又は生成された時刻が異なる複数の撮像画像データに基づく複数の距離画像データ(すなわち距離動画像データ)を用いる。すなわち、特徴特定部145は、動画画像データに含まれている顧客Mの位置の変化の特徴を動き方の特徴として特定する。
一例として、特徴特定部145は、顧客Mの歩き方の特徴を特定する。この場合、特徴特定部145は、第1時刻に生成された第1動画像データに含まれる顧客Mの頭の高さの変化の特徴を特定し、第1時刻と異なる第2時刻に生成された第2動画像データに含まれる人の頭の高さの変化の特徴を特定することにより、歩き方の特徴を特定する。特徴特定部145は、例えば、顧客Mの歩き方の特徴を特定するために要する所定時間(例えば5秒間)ごとに、所定時間内に撮影された動画像データを解析して、頭の高さの変化の特徴を特定する。
顧客Mによって身長や、歩行時の上下動の大きさが異なる。そこで、特徴特定部145は、例えば、第1動画像データ及び第2動画像データに基づいて特定される顧客Mの頭の高さと上下変動の幅を特徴として特定する。特徴特定部145は、第1動画像データ及び第2動画像データに基づいて特定される顧客Mの頭の高さと上下変動の周期を特徴として特定してもよい。
具体的には、特徴特定部145は、複数の時刻それぞれに生成された複数の撮像画像データ又は複数の距離画像データにおいて、顧客Mの頭の最も上の位置の高さを特定する。特徴特定部145は、特定した高さを時刻ごとにプロットして得られる波形の周期を、顧客Mの頭の上下変動の周期を示す特徴として特定する。特徴特定部145は、特定した高さを時刻ごとにプロットして得られる波形を示すデータを、顧客Mの特徴を示すデータとしてもよい。
特徴特定部145は、複数の時刻それぞれに生成された複数の距離画像データにおいて、顧客Mの頭、肩又は手の奥行方向の位置を特定してもよい。特徴特定部145は、特定した奥行方向の位置を時刻ごとにプロットして得られる波形の周期を、顧客Mの左右方向の変動の周期を示す特徴として特定する。特徴特定部145が左右方向の変動の周期を特徴として特定することで、左右方向に揺れながら歩く癖がある顧客Mの特徴を特定することができる。
特徴特定部145は、第1動画像データ及び第2動画像データに基づいて特定される顧客Mの移動速度を特徴として特定してもよい。特徴特定部145は、複数の時刻に対応する撮像画像データにおける顧客Mの位置、及び撮像画像データを生成したカメラCの位置に基づいて、それぞれの時刻における顧客Mの店舗S内の位置を特定した結果に基づいて顧客Mの移動速度を特定する。
顧客Mは、関心がある商品の近くは速く歩き、関心がない商品の近くはゆっくりと歩く傾向があると考えられる。そこで、特徴特定部145は、店舗S内の位置ごとの顧客Mの移動速度を顧客Mの特徴として特定してもよい。この場合、特徴特定部145は、例えば棚IDと移動速度とが関連付けられた特徴を示すデータを記憶部13に記憶させる。
人特定部146は、撮像画像データ又は距離画像データに基づいて顧客Mの行動の内容を特定する。人特定部146は、顧客Mの行動の内容を特定するために、特徴特定部145が第1動画像データに基づいて特定した特徴と、第2動画像データに基づいて特定した特徴とが一致する場合に、当該特徴が特定された人が同一の顧客Mであることを特定する。人特定部146は、同一の顧客Mが含まれている撮像画像データ又は距離画像データに基づいて、顧客Mの行動の内容を特定する。
人特定部146は、選択部143が選択した複数の時刻に対応する一以上の撮像画像データに含まれている顧客Mの行動の内容を特定する。人特定部146は、距離画像データに含まれている顧客Mの行動の内容を特定してもよい。人特定部146は、例えば図6に示す第1検出データ又は図7に示す第2検出データを参照することにより、顧客Mごとに行動の内容を特定する。
人特定部146は、予め記憶部13に記憶された、動きの特徴と行動の内容とが関連付けられた動き特定用データを参照することにより、撮像画像データ又は距離画像データにおける顧客Mの動きの特徴に対応する行動の内容を特定する。一例として、人特定部146は、顧客Mが手を商品棚の方に移動させる動きを特定した場合、顧客Mが商品を取る行動をしたことを特定する。人特定部146は、顧客Mが商品を手に取った後に、顧客Mが持っている買い物かごに商品が入っていないにもかかわらず顧客Mの手に商品がない場合に、顧客Mが万引きした可能性があることを特定する。
人特定部146は、一以上の撮像画像データに含まれている顧客Mの手の動きに基づいて当該人の利き手を特定してもよい。人特定部146は、例えば、顧客Mが商品を手に取る行動を特定した場合に、商品を取った手が利き手であると特定する。人特定部146は、記録処理部147を介して、顧客Mに対応する特徴IDに関連付けて、特定した利き手を示すデータを検出データ記憶部134に記憶させる。
人特定部146は、顧客Mが同一のエリアに滞在している時間を特定してもよい。人特定部146は、検出部142が所定の時間以上にわたって継続して同一のエリアに滞在していると判定した場合に、検出部142が検出した顧客Mを識別するための特徴IDと当該エリアを識別するための情報(例えば、アドレス又は棚ID)とを関連付けて検出データ記憶部134に記憶させてもよい。
図9は、同じ位置に長時間にわたって滞在している顧客Mと滞在位置とを関連付けたデータの一例である。図9においては、顧客Mに対応する特徴IDごとに、180秒以上にわたって同じ位置に滞在していた場合の滞在時間と、滞在していた商品棚の位置を示す棚IDとが関連付けられている。人特定部146がこのようなデータを作成することで、店舗Sの管理者が、同じ位置での滞在時間が長い顧客Mの行動履歴を確認しやすくなる。
人特定部146は、顧客Mの利き手が所定の時間以上にわたって商品の近くにあることを特定した場合に、顧客Mの特徴IDと滞在位置を示す情報とを検出データ記憶部134に記憶させてもよい。顧客Mが万引きする際には、利き手が商品の近くにある時間が長くなる場合が多いと考えられるので、人特定部146がこのように動作することで、店舗Sの管理者が、万引きが行われた様子が含まれている撮像画像データを確認しやすくなる。
人特定部146は、所定の時間以上にわたって継続して同一のエリアに滞在していることを検出部142が検出した顧客Mの特徴IDと、エリアIDと、当該顧客Mが所定の位置を向いている時間とを関連付けて検出データ記憶部134に記憶させてもよい。人特定部146は、顧客Mが所定の時間以上にわたって継続して同じ商品棚の位置を向いている場合に、当該顧客Mの特徴IDに関連付けて、不審な行動をしていることを示すデータを検出データ記憶部134に記憶させてもよい。
図10は、不審な行動であることを示すデータの一例を示す図である。図10においては、特徴IDと、滞在時間が所定の時間以上であることが特定された位置に対応するエリアIDと、滞在時間と、その時の顧客Mの向きと、不審フラグとが関連付けられている。顧客Mの向きは、商品の向きを0時の方向とし、商品と反対側の向きを6時の方向として表している。
不審フラグは、万引きをしようとしている可能性がある不審な動きをしているか否かを示すフラグである。人特定部146は、商品の向きに相当する11時から1時の範囲を向いて180秒以上滞在している場合には不審であると判定している。このように、人特定部146が、長時間にわたって商品の方を向いている顧客Mに対応する特徴IDに関連付けて不審フラグを含むデータを検出データ記憶部134に記憶させることで、店舗Sの管理者が、不審な顧客Mが写っている撮像画像データを検索して、当該撮像画像データを確認することで万引きをする可能性がある顧客Mの特徴を把握し、同じ特徴を持つ顧客Mが来店した場合に注意を払うことが可能になる。
人特定部146は、所定の時間以上にわたって継続して同一のエリアに滞在していることを検出部142が検出した顧客Mの特徴をさらに特定し、特定した特徴を特徴ID及びエリアIDに関連付けて検出データ記憶部134に記憶させてもよい。顧客Mの特徴を示すデータは、顧客Mの服装の種類や色、髪の長さ、顔の表情、顔の形状、肌の色を示す画像データであってもよく、テキストデータであってもよい。人特定部146が、同一のエリアに所定の時間以上にわたって滞在している顧客Mの特徴を示すデータを検出データ記憶部134に記憶させることで、店舗Sの管理者が撮像画像データを確認することなく、万引きをする可能性がある顧客Mの特徴を把握し、同じ特徴を持つ顧客Mが来店した場合に注意を払うことが可能になる。
人特定部146は、棚IDと顧客Mの滞在時間とを関連付けたデータを作成してもよい。図11は、棚IDと顧客Mの滞在時間とを関連付けたデータの一例を示す図である。図11に示すデータにおいては、棚IDと、滞在人数と、滞在時間と、滞在していた顧客Mの特徴とが関連付けられている。
滞在人数は、1日の間に商品棚の前に所定の時間(例えば10秒)以上にわたって滞在していた人の数である。滞在時間は、1日の間に商品棚の前に所定の時間以上にわたって滞在していた人の滞在時間の合計値(分)である。顧客の特徴には、男女比、年齢層、子連れの割合が含まれている。人特定部146が、顧客Mの行動を特定してこのようなデータを集計することで、店舗Sの管理者が、どの商品棚にどのような商品を配置するかを検討する際に好適である。また、店舗Sの管理者が、どの商品棚に顧客Mが長時間にわたって滞在しやすいかを把握することにより、万引きが行われやすい商品棚を把握したいという場合にも好適である。
記録処理部147は、撮像画像データ及び距離画像データを検出データ記憶部134に記憶させる。記録処理部147は、同一の顧客Mが共通に存在する複数の撮像画像データを当該顧客Mに関連付けて検出データ記憶部134に記憶させることにより、図6に示した第1検出データを作成する。記録処理部147は、撮像画像データに含まれる顧客Mごとに、複数の撮像画像データを分類することにより、図6に示した第1検出データを作成する。具体的には、記録処理部147は、特徴特定部145が割り当てた特徴IDに関連付けて複数の撮像画像データを検出データ記憶部134に記憶させる。
記録処理部147は、複数の撮像画像データにおいて同じ特徴を有する顧客Mを特徴特定部145が検出した場合、検出した顧客Mが写っている複数の撮像画像データを関連付けて検出データ記憶部134に記憶させることにより、図5に示した第1検出データを作成する。
また、記録処理部147は、同一の顧客Mが共通に存在する複数の距離画像データを当該顧客Mに関連付けて検出データ記憶部134に記憶させることにより、図7に示した第2検出データを作成する。記録処理部147は、距離画像データに含まれる顧客Mごとに、複数の距離画像データを分類することにより、図7に示した第2検出データを作成する。
具体的には、記録処理部147は、例えば顧客M1が含まれる2つの撮像画像データを用いて作成した距離画像データを、時系列に並べて検出データ記憶部134に記憶させる。より具体的には、距離画像作成部144は、距離画像データの作成に用いた撮像画像データの開始日時及び終了日時と、撮像画像データを生成したカメラCのカメラIDと、距離画像データのファイル名とが関連付けられた第2検出データを作成し、検出データ記憶部134における画像データ名に対応するアドレスに距離画像データを記憶させる。
[画像処理装置1における処理の流れ]
図12は、画像処理装置1における処理の流れを示すフローチャートである。データ取得部141は、複数のカメラCが生成した撮像画像データを取得する(S1)。検出部142は、複数の撮像画像データそれぞれにおいて顧客Mの画像を特定し、顧客Mの位置を検出する(S2)。
検出部142は、撮像画像データにおいて顧客Mを検出した位置と、当該撮像画像データを生成したカメラCの位置とに基づいて、検出した顧客Mがいるエリアを特定する(S3)。また、検出部142は、生成された時刻が異なる複数の撮像画像データにおいて検出した顧客Mの位置の変化に基づいて、顧客Mの進行方向を特定する(S4)。
続いて、選択部143は、店舗Sに設置された複数のカメラCから、距離画像データに用いる2つのカメラCを選択する(S5)。選択部143は、例えば検出部142が顧客Mを検出した位置における顧客Mの行動を特定するために適した距離画像データを作成するために使用可能な2つの撮像画像データを生成する2つのカメラCを選択する。そして、選択部143は、選択した2つのカメラCが生成した2つの撮像画像データを選択する(S6)。
距離画像作成部144は、選択部143が選択した2つの撮像画像データを用いて距離画像データを作成する(S7)。記録処理部147は、距離画像データを顧客Mごとに検出データ記憶部134に記憶させる(S8)。記録処理部147が距離画像データを検出データ記憶部134に記憶させる処理の詳細は、図13を参照しながら後述する。
人特定部146は、距離画像作成部144が作成した距離画像データを解析して、距離画像データに含まれている顧客Mが同じ位置に滞在している時間が閾値以上であるか否かを判定する(S9)。人特定部146は、滞在時間が閾値以上であると判定した場合(S9においてYES)、異なる時刻に撮影された複数の撮像画像データ(すなわち動画像データ)を解析することにより、顧客Mの行動内容を特定する(S10)。
制御部14は、撮像画像データの解析を終了する指示を受けるまで、又は予め設定された時刻になるまで(S11においてNO)、S1からS10までの処理を繰り返す。
図13は、記録処理部147が距離画像データを検出データ記憶部134に記憶させる処理(S8)の流れを示すフローチャートである。記録処理部147が距離画像データを検出データ記憶部134に記憶させる前に、特徴特定部145は、距離画像データに含まれている顧客Mの特徴を特定する(S101)。
記録処理部147は、ある時刻に撮影された撮像画像データに基づく距離画像データに基づいて特徴特定部145が顧客Mの特徴を特定した場合、過去に同じ特徴に対応する特徴IDが検出データ記憶部134に記録されているか否かを判定する(S102)。記録処理部147は、過去に同じ特徴IDが検出データ記憶部134に記録されている場合(S102においてYES)、記録されている特徴IDに関連付けて距離画像データを検出データ記憶部134に記憶させることで第2検出データを更新する(S103)。
記録処理部147は、同じ特徴に対応する特徴IDが過去の所定の期間内に検出データ記憶部134に記録されていない場合(S102においてNO)、新たな特徴IDに関連付けて距離画像データを検出データ記憶部134に記憶させることで、新たな特徴IDに対応する第2検出データを作成する(S104)。過去の所定の期間は、例えば店舗Sの管理者により設定された期間であり、1日であってもよく1週間であってもよい。
また、記録処理部147は、人特定部146が不審な行動を検出した場合(S105においてYES)、図10に示すように、不審な行動が検出された顧客Mの特徴IDに関連付けて、不審であることを示す不審フラグを検出データ記憶部134に記憶させる(S106)。記録処理部147は、人特定部146が不審な行動を検出していない場合、不審フラグを検出データ記憶部134に記憶させない(S107)。
[画像処理装置1による効果]
以上説明したように、画像処理装置1においては、選択部143が、店舗Sに設置された複数のカメラCが生成した複数の撮像画像データのうち、検出部142が顧客Mを検出した位置に基づいて2つの撮像画像データを選択し、距離画像作成部144が、選択された2つの撮像画像データを用いて距離画像データを作成する。画像処理装置1がこのように構成されていることで、複数のカメラCが生成した複数の撮像画像データを用いて、人特定部146が高い精度で人の行動を特定するために有用な距離画像データを作成できる。
特徴特定部145は、顧客Mの特徴を特定し、人特定部146は、特徴特定部145が第1のカメラCが生成した第1撮像画像データに基づいて特定した特徴と、第2のカメラCが生成した第2撮像画像データに基づいて特定した特徴とが一致する場合に、当該特徴が特定された顧客Mが同一の顧客Mであることを特定する。そして、記録処理部147は、特定した顧客Mごとに、撮像画像データ又は距離画像データの少なくともいずれかを検出データ記憶部134に記憶させる。画像処理装置1がこのように構成されていることで、画像処理装置1が顧客Mごとに行動の内容を特定しやすくなる。また、店舗Sの管理者が、特定の顧客Mの行動を確認できる撮像画像データ又は距離画像データを検索しやすくなる。
また、設定データ記憶部132は、撮像画像データから検出する対象となる顧客Mの部位である検出対象部位を記憶し、選択部143は、設定データ記憶部132が記憶する検出対象部位を撮影可能な一以上のカメラCが生成した一以上の撮像画像データを複数の撮像画像データから選択する。選択部143がこのようにして撮像画像データを選択することで、画像処理装置1は、店舗Sの管理者が監視したい顧客Mの部位の動きを特定するために有用な撮像画像データを解析すればよいので、画像解析処理の効率を向上させることができる。
また、人特定部146は、検出部142が所定の時間以上にわたって継続して同一のエリアに滞在していると判定した場合に、検出部142が検出した顧客Mを識別するための特徴IDとエリアIDとを関連付けて検出データ記憶部134に記憶させる。人特定部146がこのように構成されていることで、画像処理装置1は、店舗Sの管理者に対して、顧客とエリアの関係に関する情報を提供することができる。
また、特徴特定部145は、それぞれのカメラCが生成した動画像データに含まれる人の頭の高さの変化の特徴を特定する。特徴特定部145がこのような特徴を顧客Mの特徴の一つとして特定することで、複数のカメラCが生成した複数の動画像データに共通に含まれている顧客Mを検出する精度が向上する。
なお、以上の説明においては、カメラCが店舗Sに設置されており、制御部14が特徴や行動の内容を特定する対象となる人が店舗Sの顧客Mである場合を例にして説明したが、カメラCが設置されている空間は任意であり、制御部14が特徴や行動の内容を特定する対象となる人も任意である。
以上、本発明を実施の形態を用いて説明したが、本発明の技術的範囲は上記実施の形態に記載の範囲には限定されず、その要旨の範囲内で種々の変形及び変更が可能である。例えば、装置の全部又は一部は、任意の単位で機能的又は物理的に分散・統合して構成することができる。また、複数の実施の形態の任意の組み合わせによって生じる新たな実施の形態も、本発明の実施の形態に含まれる。組み合わせによって生じる新たな実施の形態の効果は、もとの実施の形態の効果を併せ持つ。