(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2022187215
(43)【公開日】2022-12-19
(54)【発明の名称】動作判別プログラム、動作判別方法および動作判別装置
(51)【国際特許分類】
G06T 7/20 20170101AFI20221212BHJP
【FI】
G06T7/20 300Z
【審査請求】未請求
【請求項の数】15
【出願形態】OL
(21)【出願番号】P 2021095110
(22)【出願日】2021-06-07
(71)【出願人】
【識別番号】000005223
【氏名又は名称】富士通株式会社
(74)【代理人】
【識別番号】110002918
【氏名又は名称】弁理士法人扶桑国際特許事務所
(72)【発明者】
【氏名】石田 諒
(72)【発明者】
【氏名】村瀬 有一
【テーマコード(参考)】
5L096
【Fターム(参考)】
5L096BA02
5L096CA04
5L096FA16
5L096FA59
5L096FA67
5L096FA69
5L096HA02
5L096HA11
5L096JA11
5L096KA04
(57)【要約】
【課題】人物が物体に対して行う動作が正常か否かを高精度に判別する。
【解決手段】動作判別装置1は、人物3aの動作を撮影した撮影画像2を取得する。すると、動作判別装置1は、取得した撮影画像2から、人物3aに関係する物体3bの位置を検出する。これとともに、動作判別装置1は、取得した撮影画像2から、人物3aの骨格情報を検出する。動作判別装置1は、検出された物体3bの位置と、検出された骨格情報とに基づいて、人物3aが物体3bに対して行う動作が正常か否かを判別する。これにより、この動作が正常か否かを高精度に判別できる。
【選択図】
図1
【特許請求の範囲】
【請求項1】
コンピュータに、
人物の動作を撮影した撮影画像を取得し、
取得した前記撮影画像から、前記人物に関係する物体の位置と、前記人物の骨格情報とを検出し、
前記物体の位置と前記骨格情報とに基づいて、前記人物が前記物体に対して行う動作が正常か否かを判別する、
処理を実行させる動作判別プログラム。
【請求項2】
前記判別では、
前記撮影画像における第1のフレームから検出された前記物体の位置および前記骨格情報に基づいて、第1の特徴量を算出し、
前記第1の特徴量を、前記第1のフレームの次の第2のフレームにおける特徴量を予測する予測器に入力することで、前記第2のフレームにおける特徴量の予測値を算出し、
前記第2のフレームから検出された前記物体の位置および前記骨格情報に基づいて、第2の特徴量を算出し、
前記第2の特徴量と前記予測値との距離に基づいて、前記人物が前記物体に対して行う動作が正常か否かを判別する、
請求項1記載の動作判別プログラム。
【請求項3】
前記予測器は、過去に撮影された複数の過去画像のそれぞれから検出された前記第1の特徴量を学習データとして用いた学習によって生成される、
請求項2記載の動作判別プログラム。
【請求項4】
前記複数の過去画像のそれぞれは、前記人物が前記物体に対して行う動作が正常に行われた状態を撮影した画像である、
請求項3記載の動作判別プログラム。
【請求項5】
前記判別では、前記人物が前記物体を手に持ち、前記物体に付加された商品情報をキャッシュレジスタに搭載されたスキャナに読み取らせる動作が、正常に行われたか否かを判別する、
請求項1乃至4のいずれか1項に記載の動作判別プログラム。
【請求項6】
前記判別では、
前記撮影画像から検出された前記物体の位置および前記骨格情報に基づいて、第1の特徴量を算出し、
前記第1の特徴量を識別器に入力することで、前記人物が前記物体に対して行う動作が正常動作か、または複数種類の異常動作のいずれかであるかを識別する、
請求項2記載の動作判別プログラム。
【請求項7】
前記識別器は、過去に撮影された複数の過去画像のそれぞれから検出された前記第1の特徴量と、前記複数の過去画像のそれぞれに付加された、前記正常動作と前記複数種類の異常動作のうちのいずれかを示すラベルとを、学習データとして用いた学習によって生成される、
請求項6記載の動作判別プログラム。
【請求項8】
前記判別では、
前記物体の位置に基づく第1の特徴量ベクトルと、前記骨格情報に基づく、前記人物の関節ごとの第2の特徴量ベクトルとを算出し、
前記第1の特徴量ベクトルと前記第2の特徴量ベクトルとを前記関節ごとに統合することで、前記第1の特徴量を算出する、
請求項2,3,4,6,7のいずれか1項に記載の動作判別プログラム。
【請求項9】
前記撮影画像に設定される複数の画像領域を示す領域情報が、前記コンピュータが有する記憶部に記憶され、
前記判別では、
前記骨格情報に基づいて前記複数の画像領域の前記撮影画像における設定位置を補正し、
前記設定位置が補正された前記複数の画像領域と、前記物体の位置との間の時系列的な関係に基づいて、前記人物が前記物体に対して行う動作が異常か否かを判別する、
請求項1記載の動作判別プログラム。
【請求項10】
前記判別では、前記人物が前記物体を手に持ち、前記物体に付加された商品情報をキャッシュレジスタに搭載されたスキャナに読み取らせるスキャン動作が、正常に行われたか否かを判別する、
請求項9記載の動作判別プログラム。
【請求項11】
前記複数の画像領域として、前記撮影画像において前記人物が位置し得る領域から前記キャッシュレジスタの方向に対して隣接して配置される2つの画像領域が設定され、
前記設定位置の補正では、
前記骨格情報に基づいて、前記撮影画像における前記人物の特定の2つの関節間の距離を算出し、
前記距離に基づいて、前記2つの画像領域の間の境界線の位置を変更する、
請求項10記載の動作判別プログラム。
【請求項12】
前記コンピュータに、
前記判別によって前記スキャン動作が正常に行われたと判定された第1の回数と、前記キャッシュレジスタによって前記スキャン動作が行われたと通知された第2の回数とをカウントし、
前記第1の回数と前記第2の回数とが一致しない場合に所定の警告情報を出力する、
処理をさらに実行させる、
請求項10または11記載の動作判別プログラム。
【請求項13】
前記コンピュータに、
前記撮影画像の中に前記人物が相互作用を与える1以上の物体があるときに、前記人物と前記1以上の物体のそれぞれとの間の相互作用の種類を検出し、
検出された前記種類に基づいて、前記1以上の物体の中から前記人物に関係する前記物体を特定する、
処理をさらに実行させる請求項1記載の動作判別プログラム。
【請求項14】
コンピュータが、
人物の動作を撮影した撮影画像を取得し、
取得した前記撮影画像から、前記人物に関係する物体の位置と、前記人物の骨格情報とを検出し、
前記物体の位置と前記骨格情報とに基づいて、前記人物が前記物体に対して行う動作が正常か否かを判別する、
動作判別方法。
【請求項15】
人物の動作を撮影した撮影画像を取得し、
取得した前記撮影画像から、前記人物に関係する物体の位置と、前記人物の骨格情報とを検出し、
前記物体の位置と前記骨格情報とに基づいて、前記人物が前記物体に対して行う動作が正常か否かを判別する、処理部、
を有する動作判別装置。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、動作判別プログラム、動作判別方法および動作判別装置に関する。
【背景技術】
【0002】
画像から特定の物体を認識する画像認識技術は、広く普及している。この技術では、例えば、画像における特定の物体の領域がバウンディングボックスとして特定される。また、物体の画像認識を機械学習を用いて行う技術も存在する。そして、このような画像認識技術は、例えば、店舗における顧客の購買動作の監視や、工場における作業者の作業管理に応用することが考えられている。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特開2020-53019号公報
【特許文献2】特開2014-132501号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
ところで、人物が物体に対して行う動作が正常か否かを画像から判別する際には、物体の位置とともに人物の位置や動きを画像から認識することで、正常時と異常時における人物の動きの細かい違いを判別できるようになる。しかし、特定の物体を認識する上記の画像認識技術では、画像から物体を認識できるのみであり、物体とともに人物を認識することはできない。また、画像から人物を認識する技術として、姿勢推定(Pose Estimation)技術があるが、この技術では物体を認識することはできない。
【0005】
1つの側面では、本発明は、人物が物体に対して行う動作が正常か否かを高精度に判別可能な動作判別プログラム、動作判別方法および動作判別装置を提供することを目的とする。
【課題を解決するための手段】
【0006】
1つの案では、コンピュータに、人物の動作を撮影した撮影画像を取得し、取得した撮影画像から、人物に関係する物体の位置と、人物の骨格情報とを検出し、物体の位置と骨格情報とに基づいて、人物が物体に対して行う動作が正常か否かを判別する、処理を実行させる動作判別プログラムが提供される。
【0007】
また、1つの案では、上記の動作判別プログラムに基づく処理と同様の処理をコンピュータが実行する動作判別方法が提供される。
さらに、1つの案では、上記の動作判別プログラムに基づく処理と同様の処理を実行する動作判別装置が提供される。
【発明の効果】
【0008】
1つの側面では、人物が物体に対して行う動作が正常か否かを高精度に判別できる。
【図面の簡単な説明】
【0009】
【
図1】第1の実施の形態に係る動作判別装置について示す図である。
【
図2】第2の実施の形態に係る顧客監視システムの構成例を示す図である。
【
図3】監視装置のハードウェア構成例を示す図である。
【
図4】HOIDによる人物と物体の認識についての比較例を示す図である。
【
図5】飲料缶およびパッケージ商品の例を示す図である。
【
図6】誤った購買動作が行われた場合の画像の例を示す図である。
【
図7】第1、第2の比較例を用いた認識処理例とその応用について示す図である。
【
図8】監視装置が備える処理機能の構成例を示す図である。
【
図9】画像特徴抽出部および骨格情報抽出部で生成されるデータの例を示す図である。
【
図10】購買動作抽出部の内部構成例を示す図である。
【
図11】予測器としての判定部の処理について説明するための図である。
【
図12】予測器(判定部)の学習処理手順を示すフローチャートの例である。
【
図13】予測器を用いた判定処理手順を示すフローチャートの例である。
【
図14】識別器(判定部)の学習処理手順を示すフローチャートの例である。
【
図15】識別器を用いた判定処理手順を示すフローチャートの例である。
【
図16】第4の実施の形態に係る監視装置が備える処理機能の構成例を示す図である。
【
図17】正常な購買動作が行われた否かを判定する判定ルールについて説明するための図である。
【
図18】環境差補正部による補正処理例を示す図である。
【
図19】人物差補正部の内部構成例を示す図である。
【
図20】人物差補正部による補正処理について説明するための図である。
【
図21】判定ルールに基づく判定処理手順を示すフローチャートの例(その1)である。
【
図22】判定ルールに基づく判定処理手順を示すフローチャートの例(その2)である。
【
図23】スキャン点数のカウント処理の手順を示すフローチャートの例である。
【発明を実施するための形態】
【0010】
以下、本発明の実施の形態について図面を参照して説明する。
〔第1の実施の形態〕
図1は、第1の実施の形態に係る動作判別装置について示す図である。
図1に示す動作判別装置1は、人物が物体に対して行う動作が正常か否かを判別する装置である。動作判別装置1は、パーソナルコンピュータ、サーバ装置などのコンピュータとして実現される。
【0011】
動作判別装置1は、人物の動作を撮影した撮影画像2を取得する(ステップS1)。この撮影画像2には、人物3aが物体3bに対して動作を行っている様子が写っている。
図1に示す撮影画像2には、例として、人物3aが物体3bを手に持って読み取り装置3cに近づけ、物体3bの表面に付加された識別情報を読み取り装置3cに読み取らせる動作が写っているものとする。
【0012】
動作判別装置1は、取得した撮影画像2から、人物3aに関係する物体3bの位置を検出する(ステップS2a)。この検出では、例えば、撮影画像2から人物3aが認識されるとともに、認識された人物3aとの間で相互作用がある物体3bが認識され、これらの人物3aおよび物体3bの位置が検出される。
図1では例として、人物3aを内包する画像領域4aと、物体3bを内包する画像領域4bとが検出されている。このような検出は、例えば、HOID(Human Object Interaction Detection)を用いて実現することができる。
【0013】
HOIDは、与えられた1枚の画像から人物と物体が認識され、その人物がその物体と相互作用があるときに、人物と物体と相互作用の種類とを検出するものである。したがって、HOIDが適用された場合、例えば、撮影画像2の中に人物が相互作用を与える物体があるときに、人物、物体および相互作用の種類が検出される。そして、人物、物体および相互作用の種類に基づいて、人物(人物3aに対応)に関係する物体(物体3bに対応)が特定される。例えば、あるユーザが本を把持したときに、ユーザ、本、および本を把持していることが検出される。なお、相互作用としては、直接的にユーザの意識、無意識、接触、非接触にかかわらず、画像から認識できるすべての相互作用が含まれる。
【0014】
これとともに、動作判別装置1は、取得した撮影画像2から、人物3aの骨格情報を検出する(ステップS2b)。この検出では、例えば、人物3aが有する所定の複数の関節の位置が検出される。
図1では例として、人物3aの関節として左右の肩、肘および手首の位置が検出されている、骨格線5aは、右肩の位置と右肘の位置とを結んだ線を示し、骨格線5bは、右肘の位置と右手首の位置とを結んだ線を示す。また、骨格線6aは、左肩の位置と左肘の位置とを結んだ線を示し、骨格線6bは、左肘の位置と左手首の位置とを結んだ線を示す。
【0015】
動作判別装置1は、このようにして検出された物体3bの位置および骨格情報に基づいて、人物3aが物体3bに対して行う動作が正常か否かを判別する(ステップS3)。
図1の例では、人物3aが物体3bに付加された識別情報を読み取り装置3cに読み取らせる動作が、正常に行われたか否かが判別される。
【0016】
以上の処理では、人物3aが物体3bに対して行う動作が正常か否かを、精度よく判別することができる。
例えば、本実施の形態では、撮影画像2から単に物体の位置が認識されるのではなく、人物に関係する物体の位置が認識される。これにより、
図1の例のように人物が手に持っている物体を確実に認識でき、人物と関係のない物体が写っていたとしても、それを認識しない。例えば、画像から特定の物体を認識する画像認識技術では、このように人物に関係する物体のみを抽出して認識することはできない。
【0017】
さらに、本実施の形態では、物体の位置とともに人体の骨格情報が用いられることで、正常時と異常時における人物の動きの細かい違いを判別できるようになる。例えば、物体3bに付加された識別情報を読み取り装置3cに読み取らせる動作が正常に行われた場合と、そうでない場合では、物体3bの位置の推移や、人物3aの各関節の位置の推移が異なる。この動作が正常に行われない場合としては、例えば、物体3bを読み取り装置3cに近づけたときの物体3bの角度が、正常時とは異なる場合が考えられる。この場合、物体3bを持っている手の関節の状態(例えば関節間の相対位置)も、正常時とは異なると考えられる。本実施の形態では、骨格情報が用いられることで、このような人物の動きの細かい違いを判別できるようになる。
【0018】
〔第2の実施の形態〕
次に、第2の実施の形態として、動作判別装置1の処理を店舗における顧客監視システムに適用した場合について説明する。
【0019】
図2は、第2の実施の形態に係る顧客監視システムの構成例を示す図である。
図2に示す顧客監視システムは、商品が販売される店舗における顧客の購買動作を監視するためのシステムであり、監視装置100と、監視装置100に接続されたカメラ101とを含む。なお、監視装置100は、
図1に示した動作判別装置1の一例である。
【0020】
カメラ101は、キャッシュレジスタ50が設置された店舗内に設置される。キャッシュレジスタ50は、POS(Point Of Sale)システムに含まれるPOS端末である。また、キャッシュレジスタ50は、顧客自身が精算操作を行うセルフ方式のキャッシュレジスタであり、「セルフレジ」と呼ばれることもある。
【0021】
キャッシュレジスタ50は、バーコードスキャナ51、ディスプレイ52および入出金部53を備える。バーコードスキャナ51は、商品に付加された、商品コードを示すバーコードを読み取る。ディスプレイ52は、バーコードが読み取られた商品の価格や、購入対象の商品の合計金額、お釣りの金額などを表示する。入出金部53は、顧客からの入金の受け付けや、お釣りの出金を行う。
【0022】
顧客は、例えば、購入対象の商品が入れられた店内用のカゴを持ってキャッシュレジスタ50に接近し、カゴの中の商品を順にバーコードスキャナ51に近づけてバーコードを読み取らせる「スキャン操作」を行う。顧客は、すべての商品についてのスキャン操作が終了すると、精算を要求する「精算操作」を行う。例えば、ディスプレイ52がタッチパネルである場合、顧客は、タッチパネル上の精算ボタンの押下によって清算操作を行うことができる。精算操作を行った顧客は、ディスプレイ52の表示情報にしたがって入出金部53に購入金額を投入し、お釣りがある場合にはそれを入出金部53から受け取る。
【0023】
カメラ101は、キャッシュレジスタ50を用いた顧客の購買動作が写るように、キャッシュレジスタ50の前面(特に、バーコードスキャナ51の周辺)を撮影する。監視装置100は、カメラ101による撮影画像から、顧客が正しい購買動作を行ったか否かを判定し、異常な購買動作を行ったと判定された場合には警告を発することができる。
【0024】
図3は、監視装置のハードウェア構成例を示す図である。監視装置100は、例えば、
図3に示すようなコンピュータとして実現される。
図3に示す監視装置100は、プロセッサ111、RAM(Random Access Memory)112、HDD(Hard Disk Drive)113、GPU(Graphics Processing Unit)114、入力インタフェース(I/F)115、読み取り装置116、ネットワークインタフェース(I/F)117および通信インタフェース(I/F)118を有する。
【0025】
プロセッサ111は、監視装置100全体を統括的に制御する。プロセッサ111は、例えば、CPU(Central Processing Unit)、MPU(Micro Processing Unit)、DSP(Digital Signal Processor)、ASIC(Application Specific Integrated Circuit)またはPLD(Programmable Logic Device)である。また、プロセッサ111は、CPU、MPU、DSP、ASIC、PLDのうちの2以上の要素の組み合わせであってもよい。
【0026】
RAM112は、監視装置100の主記憶装置として使用される。RAM112には、プロセッサ111に実行させるOS(Operating System)プログラムやアプリケーションプログラムの少なくとも一部が一時的に格納される。また、RAM112には、プロセッサ111による処理に必要な各種データが格納される。
【0027】
HDD113は、監視装置100の補助記憶装置として使用される。HDD113には、OSプログラム、アプリケーションプログラム、および各種データが格納される。なお、補助記憶装置としては、SSD(Solid State Drive)などの他の種類の不揮発性記憶装置を使用することもできる。
【0028】
GPU114には、表示装置114aが接続されている。GPU114は、プロセッサ111からの命令にしたがって、画像を表示装置114aに表示させる。表示装置としては、液晶ディスプレイや有機EL(ElectroLuminescence)ディスプレイなどがある。
【0029】
入力インタフェース115には、入力装置115aが接続されている。入力インタフェース115は、入力装置115aから出力される信号をプロセッサ111に送信する。入力装置115aとしては、キーボードやポインティングデバイスなどがある。ポインティングデバイスとしては、マウス、タッチパネル、タブレット、タッチパッド、トラックボールなどがある。
【0030】
読み取り装置116には、可搬型記録媒体116aが脱着される。読み取り装置116は、可搬型記録媒体116aに記録されたデータを読み取ってプロセッサ111に送信する。可搬型記録媒体116aとしては、光ディスク、光磁気ディスク、半導体メモリなどがある。
【0031】
ネットワークインタフェース117は、ネットワーク117aを介して他の装置との間でデータの送受信を行う。
通信インタフェース118は、カメラ101との間でデータの送受信を行う。
【0032】
以上のようなハードウェア構成によって、監視装置100の処理機能を実現することができる。
ところで、セルフ方式のキャッシュレジスタは、人口減少による人手不足への対処や、混雑解消、ウィルス感染対策などの目的のために、急速に普及が進んでいる。セルフ方式のキャッシュレジスタでは、顧客が誤った購買動作を行うことがあり、それによって未払金が発生してしまうという問題がある。このような誤った購買動作は、過失の場合もあれば故意の場合もあり、以下のように様々な種類の動作がある。
【0033】
過失による誤った購買動作としては、例えば、顧客が商品のスキャン操作を忘れて、店内用のカゴから顧客の袋に直接商品を移動させてしまう「スキャン漏れ」がある。また、店内用のカゴをショッピングカートの上側と下側とに設置できる場合に、顧客が下側のカゴに入っている商品のスキャン操作を忘れてしまう「カゴ漏れ」もある。
【0034】
一方、故意による誤った購買動作としては、例えば、顧客がバーコードだけを指で隠しながら、スキャン操作のフリをする「バーコード隠し」がある。また、パッケージ内に同一商品が複数個セットになっている場合に、パッケージ上のバーコードでなく、パッケージから露出している1つの商品のバーコードのスキャン操作を行う「バーコードスキャン誤り」もある。
【0035】
これらの誤った購買動作では、種類によって商品の見え方や身体の動きが異なるので、すべての種類の動作を誤った購買動作として自動認識することは、技術的な難易度が高いといえる。そこで、例えば、複数種類のセンサや、単一種類のセンサを複数個用いて購買動作を認識する方法が考えられる。しかし、この方法は機材の導入コストが高いので、単一のカメラだけを用いて認識できることが望まれる。
【0036】
ここで、カメラによる撮影画像から特定の商品を認識する技術は、一般的に普及している。この技術では、例えば、画像における商品の領域(例えばバウンディングボックス)が特定される。また、このような商品の画像認識を機械学習を用いて行う技術も存在する。しかし、これらの技術では、商品の1つ1つについてのテンプレートや学習データをあらかじめ用意しなければならない。このため、これらの技術を、多数の商品が存在し、新規の商品が頻繁に導入される店舗において使用することは現実的でない。また、この技術ではあくまで特定の商品の画像領域が特定されるのみであり、人物との関係性を認識することはできない。
【0037】
一方、人物については、画像データを収集しやすく、画像中のサイズが大きいことが多いという性質がある。このため、人物は、例えばニューラルネットワーク(Neural Network:NN)を用いた機械学習により、人物以外の物体と比較して容易に認識できる。そこで、まず画像から人物を認識し、次に、人物の身体部位の位置(例えば手の位置)に注目して物体を認識することで、人物に関係する物体を認識する難易度を下げることができる。このような考え方により人物とそれに関係する物体とを認識する技術として、HOIDがある。
【0038】
図4は、HOIDによる人物と物体の認識についての比較例を示す図である。HOIDでは、画像上の人物の情報を利用して物体が認識される。画像上の物体のうち、人物と相互作用がある物体のみが認識され、相互作用がない物体は無視される。
【0039】
図4に例示した画像200には、人物201が何らかの物体202を手に持っている様子が写っている。この画像200をHOIDによって学習された学習モデルに投入すると、例えば、人物の位置情報と、その人物との間で相互作用がある物体の位置情報と、物体のクラス名と、相互作用のクラス名と、そのクラス名についての信頼度スコアとが出力される。
【0040】
人物および物体の位置情報は、例えばそれらの領域に外接する長方形領域を示すバウンディングボックスとして出力される。
図4に例示した画像200aは、画像200から人物201の位置を示すバウンディングボックス203と物体202の位置を示すバウンディングボックス204とが検出されている。なお、この例の場合、相互作用のクラス名としては「持つ」ことを示すクラス名が出力される。信頼度スコアは、実際には、人物の領域と物体の領域とがあるときに、物体がある物体クラス名に属し、かつ、その物体と人物の間にある相互作用のクラス名の関係があることの信頼度スコア(確率値)を表してもよい。
【0041】
このHOIDを応用することで、背景や手と同化しない外観の商品であれば、商品画像を事前に登録しておくことなく、画像から人物に関係する商品を認識することが可能になる。すなわち、画像から任意の物体をSomething(事前に登録された物体か否かが不明である、人物以外の何らかの物体)として認識し、その物体の領域を示すバウンディングボックスを推定できる。以下、このような人物および物体の認識処理を「第1の比較例」と記載する。
【0042】
一方、画像から人物を認識する技術として、姿勢推定技術がある。姿勢推定技術は、人体の骨格情報を検出することで人体の姿勢を推定する技術である。骨格情報としては、例えば、人体に含まれる所定の複数の関節についての画像上の位置が検出される。以下、骨格検出による人物の認識処理を「第2の比較例」と記載する。
【0043】
ここで、セルフ方式のキャッシュレジスタ50を用いた誤った購買動作の例を示し、この購買動作を第1、第2の比較例を用いて認識する場合の処理について示す。ここでは、誤った購買動作として、前述の「バーコードスキャン誤り」を例示する。また、購買対象の商品としては、飲料缶とそのパッケージ商品とを例示する。
【0044】
図5は、飲料缶およびパッケージ商品の例を示す図である。
図5に示す飲料缶211は、ビールなどの飲料が入った缶である。飲料缶211の側面には、商品コードを示すバーコード212が付加されている。また、
図5に示すパッケージ商品213は、飲料缶211が複数本セット販売された商品であり、外装の内部に複数本の飲料缶211が収納されている。外装面には、パッケージ商品213の商品コードを示すバーコード214が付加されている。
【0045】
このようなパッケージ商品213の多くは、両端部などの外装の一部が開口しており、その開口部から内部の飲料缶211の一部が露出している。このため、
図5に示すように、パッケージ商品213の外装から露出した飲料缶211に付加されているバーコード215を、顧客が故意にキャッシュレジスタ50のバーコードスキャナ51にスキャンさせる場合がある。この場合、複数本の飲料缶が1本分の金額で不正に購入されてしまう。
【0046】
例えば、不正な購買動作を検出する方法として、スキャンされた商品の数と持ち出された商品の数とを照合する方法がある。しかし、このような「バーコードスキャン誤り」の購買動作が行われた場合、スキャンされた商品の数と持ち出された商品の数とが一致してしまうので、不正動作を容易に検出できない。
【0047】
図6は、誤った購買動作が行われた場合の画像の例を示す図である。
図6に示す画像221,222には、上記のようにパッケージ商品213について「バーコードスキャン誤り」の購買動作が行われたときの状況が写っている。
【0048】
画像221は、顧客が店内用のカゴ216からパッケージ商品213を手に持って取り出した状態を示している。画像222は、その後に顧客が、手に持ったパッケージ商品213をバーコードスキャナ51に近づけてスキャン操作を行っている状態を示している。ただし、画像222において顧客は、パッケージ商品213に付加されたバーコードではなく、パッケージ商品213内の飲料缶に付加されたバーコードをバーコードスキャナ51にスキャンさせようとしている。このようなスキャン操作を行う場合、顧客は、手に持ったパッケージ商品213を回転させて飲料缶のバーコードのスキャンが可能となる位置まで移動させるという、正常な購買動作時とは異なる動作を行う。例えば、パッケージ商品213を回転させるために、腕や指(親指)などが正常時とは異なる特有の動きをする。
【0049】
したがって、顧客によるこのような動作を、少なくとも正常時とは異なる動作として画像から認識できれば、そのような動作が行われたときに警告を発することができるようになる。しかしながら、次の
図7に示すように、HOIDを用いた上記の第1の比較例や、骨格検出を用いた上記の第2の比較例を用いた場合、上記動作を誤った購買動作として認識することは難しい。
【0050】
図7は、第1、第2の比較例を用いた認識処理例とその応用について示す図である。
図7の上側に示す画像221a,222aは、
図6の画像221,222を基に第1の比較例を適用して、商品の位置を認識した場合を示している。この場合、HOIDにより、まず人物の領域を示すバウンディングボックス(図示せず)が検出され、次に、この人物と相互関係がある商品の領域を示すバウンディングボックス217が検出される。実際には、商品は、人物が手に持っている何らかの物体(Something)として認識されるが、キャッシュレジスタ50の前で人物が手に持っていることから、物体が商品であると特定できる。
【0051】
このように、HOIDを用いた第1の比較例を適用した場合、撮影画像から商品の位置を検出可能である。このため、顧客が商品をバーコードスキャナ51に近づけたことは認識可能である。しかし、顧客の身体の動きを検出できないので、パッケージ商品213を回転させる際の身体の特有の動き(例えば指の動き)を認識することはできない。このため、上記のような顧客の購買動作を正常な購買動作と区別することはできない。
【0052】
一方、
図7の下側に示す画像221b,222bは、
図6の画像221,222を基に第2の比較例を適用して、人物の動きを認識した場合を示している。この場合、骨格検出により人物の関節の位置が検出される。画像221b,222bでは、手首と親指の関節とを結んだ線を太線218a~218cで表している。
【0053】
このように、骨格検出を用いた第2の比較例を適用した場合、撮影画像から、不正なスキャン操作のために商品を回転する際の身体の特有の動き(例えば指の動き)を検出可能である。しかし、商品の位置を検出できないので、検出された身体の動きを商品と関連付けて「商品を持った状態での動き」として認識することができない。
【0054】
そこで、本実施の形態の監視装置100は、HOIDを用いた第1の比較例の技術と、骨格検出を用いた第2の比較例の技術とを組み合わせることで、商品の位置と身体の特有の動きの両方を検出できるようにする。これにより、監視装置100は、事前に多数の商品の画像を登録しておくことなく、キャッシュレジスタ50の前で顧客が手に持っている商品を認識できる。そして、監視装置100は、その商品の移動軌跡や画像内の見え方に加え、その商品を持ってスキャン操作を行う顧客の身体の動きを正確に認識できる。その結果、監視装置100は、上記の「バーコードスキャン誤り」をはじめとする各種の誤った購買動作を、正常な購買動作と区別して認識できるようになる。
【0055】
図8は、監視装置が備える処理機能の構成例を示す図である。
図8に示すように、監視装置100は、画像取得部121、画像特徴抽出部122、骨格情報抽出部123、購買動作抽出部124、学習部125、判定部126、画像記憶部131および学習モデル記憶部132を備える。監視装置100は、画像取得部121、画像特徴抽出部122、骨格情報抽出部123、購買動作抽出部124、学習部125および判定部126の処理は、例えば、監視装置100が備えるプロセッサ111が所定のプログラムを実行することで実現される。画像記憶部131および学習モデル記憶部132は、RAM112やHDD113など、監視装置100が備える記憶装置の記憶領域によって実現される。
【0056】
画像取得部121は、カメラ101によって撮影された動画像のデータを取得する。学習時においては、取得された動画像のデータは学習データとして画像記憶部131に格納された後、画像記憶部131から読み出された画像特徴抽出部122と骨格情報抽出部123とに入力される。一方、購買動作の判定時においては、取得された動画像のデータは画像特徴抽出部122と骨格情報抽出部123に順次入力される。
【0057】
画像特徴抽出部122は、入力された動画像をHOIDの学習モデル(ここではNNとする)に投入して、人物の情報と、その人物と相互作用がある商品の情報とを抽出する。具体的には、商品の外観情報と、人物および商品の位置情報とが抽出される。
【0058】
骨格情報抽出部123は、入力された動画像から骨格検出を行い、人物の骨格情報を抽出する。
購買動作抽出部124は、画像特徴抽出部122および骨格情報抽出部123によって動画像から抽出された情報に基づいて、購買動作を示す特徴量を生成する。
【0059】
学習部125は、学習データとしての多数の動画像から購買動作抽出部124によって抽出された特徴量を用いて、正常な購買動作と異常な購買動作とを識別するための識別器を学習する。本実施の形態では、NNを用いたディープラーニングが実行されるものとする。学習部125は、学習によって得られた学習モデル(NN)を示すデータを、学習モデル記憶部132に格納する。
【0060】
判定部126は、学習モデル記憶部132に格納された学習モデルのデータに基づく識別器として動作する。判定部126は、カメラ101によって撮影された動画像から購買動作抽出部124によって抽出された特徴量を用いて、正常な購買動作と異常な購買動作とを識別し、異常な購買動作を検出した場合には警告を発する。
【0061】
本実施の形態では、実際の購買動作を録画して得られた動画像が、ラベル付けされずに学習データとして利用される。このような動画像のうち、大多数は正常な購買動作が行われたときの動画像であり、ごく少数は異常な購買動作が行われたときの動画像となる。ただし、理想的には、正常な購買動作が行われた場合の動画像のみが利用されてもよい。学習部125は、識別器の一例として、このような動画像に基づき、ある時刻の特徴量から次の時刻の特徴量を予測する予測器を学習するものとする。したがって、判定部126は、このような予測器として動作する。
【0062】
図9は、画像特徴抽出部および骨格情報抽出部で生成されるデータの例を示す図である。画像特徴抽出部122および骨格情報抽出部123は、フレームのデータが入力されるたびに次のようなデータを生成する。
【0063】
画像特徴抽出部122は、フレームをHOIDの学習モデル(NN)に入力することでHOID情報を出力する。HOID情報には、フレームから認識された人物と物体との相互作用を示す情報が含まれる。相互作用を示す情報には、例えば、人物を識別する人物IDと、その人物と相互作用がある物体を識別する物体IDと、その物体に対する人物の動作の種別を示す動作IDとが含まれる。
【0064】
本実施の形態において、画像特徴抽出部122は、動作の種別として「物体を持つ」ことを示す動作IDを含むHOID情報を出力する。例えば、撮影画像から、互いに相互作用がある人物と物体との組み合わせが複数組抽出された場合、動作IDが「物体を持つ」ことを示す組み合わせについてのHOID情報のみが出力される。
【0065】
また、HOID情報には、人物に関する情報と物体に関する情報とがさらに含まれる。人物に関する情報には、人物IDと、人物領域の位置情報とが含まれる。物体に関する情報には、物体IDと、物体領域の位置情報と、物体の種別を示す物体種別IDとが含まれる。なお、人物領域および物体領域の位置情報としては、例えば、人物領域および物体領域をそれぞれ示すバウンディングボックスの位置を示す情報(例えば、四隅の座標)が用いられる。
【0066】
画像特徴抽出部122は、上記のHOID情報から、物体についての外観情報および位置情報を生成して購買動作抽出部124に出力する。物体についての外観情報には、フレームから物体領域を切り出した画像が含まれる。この外観情報には、例えば、物体の色や形状、大きさを示す情報が含まれてもよい。物体についての位置情報には、物体領域(バウンディングボックス)の位置情報が含まれる。この位置情報としては、例えば、物体領域の四隅の座標が含まれる。また、外観情報には、さらに、物体領域と人物領域との相対的な位置関係を示す情報が含まれてもよい。
【0067】
なお、実際には、HOIDにより物体として商品が正確に認識されるような補足的な処理が実行されることが望ましい。例えば、撮影画像内の所定位置にROI(Region Of Interest)が設定され、認識された物体とROIとの位置関係に基づいて物体として商品が正確に認識されるようにする。一例として、キャッシュレジスタ50の前において、商品が店内用のカゴから取り出されたときに位置する領域や、商品が仮置きされる領域がROIとして設定される。画像特徴抽出部122は、HOIDによって新たに認識された物体の位置がROI内である場合、その物体を商品と認識する一方、新たに認識された物体の位置が人物のバウンディングボックス内である場合、その物体は商品でない(例えば、財布などの顧客の私物)と認識する。また、画像特徴抽出部122は、ROIに物体が進入する前後におけるROI内の画像変化(背景差分など)に基づいて、物体として商品を見分けるようにしてもよい。
【0068】
一方、骨格情報抽出部123は、フレームから人物の骨格情報を生成して購買動作抽出部124に出力する。骨格情報には、関節点(関節の中心点)を識別する関節点IDと、関節点の位置情報(座標)との組み合わせが、検出された関節点ごとに含められる。また、骨格情報には、関節点ごとの情報として、関節点の信頼度スコアが含まれてもよい。
【0069】
なお、人物の骨格情報は、例えば、各関節点の位置と、画像特徴抽出部122で検出された人物領域または物体領域の位置との比較結果から、画像特徴抽出部122で検出された人物または物体と関連付けられる。画像特徴抽出部122で検出された人物のバウンディングボックス内に、骨格情報抽出部123によって検出された関節点(例えば所定数以上の関節点)が含まれる場合に、バウンディングボックスに対応する人物と関節点に対応する人物とが同一人物と判定される。この場合、関節点のデータに対して、バウンディングボックスに対応する人物の人物IDが付加される。
【0070】
図10は、購買動作抽出部の内部構成例を示す図である。
図10に示すように、購買動作抽出部124は、環境差補正部141、特徴量算出部142および時系列情報処理部143を備える。
【0071】
環境差補正部141は、画像特徴抽出部122から入力された物体の外観情報および位置情報と、骨格情報抽出部123から入力された人物の骨格情報とを、カメラ101による撮影環境に応じて補正する。例えば、カメラ101とキャッシュレジスタ50との相対距離や、撮影画像の画素数に基づき、撮影空間内の基準位置(例えば、キャッシュレジスタ50の表面の所定箇所)における距離と画像上の画素数とが常に一定になるように、物体の外観情報および位置情報と人物の骨格情報とが補正される。
【0072】
特徴量算出部142は、物体の外観情報、物体の位置情報、人物の骨格情報のそれぞれから特徴量ベクトルを算出し、それらの特徴量ベクトルを1つの特徴量ベクトルに統合する。この特徴量算出部142は、外観特徴抽出部151、物体位置特徴抽出部152、骨格特徴抽出部153および特徴量ベクトル統合部154を備える。
【0073】
外観特徴抽出部151は、補正後の物体の外観情報を特徴量ベクトル化して、外観特徴量ベクトルを算出する。例えば、ROI Align法により外観情報(撮影画像から切り出された部分画像)から特徴量ベクトルが生成される。
【0074】
物体位置特徴抽出部152は、補正後の物体の位置情報を特徴量ベクトル化して、物体位置特徴量ベクトルを算出する。例えば、物体領域(バウンディングボックス)の中心座標、横幅、高さ、大きさ、アスペクト比、人体領域に対する物体領域の大きさの比率、人体領域と物体領域との重複率(Intersection over Union:IoU)、人体領域の中心と物体領域の中心との距離、物体領域と撮影空間上の基準位置(例えば、キャッシュレジスタ50の横で商品が一時的に置かれる台)との相対座標のうちの少なくとも1つが、ベクトル化される。そして、生成されたベクトルを線形変換することで、物体位置特徴量ベクトルが生成される。
【0075】
骨格特徴抽出部153は、補正後の人物の骨格情報を特徴量ベクトル化して、骨格位置特徴量ベクトルを算出する。例えば、各関節点の座標、各関節点の信頼度スコア、ある関節点と他の関節点との相対座標、各関節点と撮影空間上の基準位置との相対座標、各関節点と物体領域の中心との相対座標のうちの少なくとも1つが、ベクトル化される。そして、生成されたベクトルを線形変換することで、骨格位置特徴量ベクトルが生成される。
【0076】
特徴量ベクトル統合部154は、算出された外観特徴量ベクトル、物体位置特徴量ベクトルおよび骨格位置特徴量ベクトルを統合して、統合特徴量ベクトルを算出する。このベクトル統合では、各特徴量ベクトルが関節点ごとに統合される。すなわち、1つの関節点についての骨格位置特徴量ベクトルと物体位置特徴量ベクトルおよび外観特徴量ベクトルとが統合されて、その関節点についての統合特徴量ベクトルが算出され、このような統合特徴量ベクトルが関節点ごとに算出される。これにより、各関節点の動きを正確に学習することが可能な学習データとしての特徴量ベクトルが生成されるようにする。
【0077】
特徴量ベクトル統合部154は、例えば、コンカチネーション(Concatenation)によりそれぞれ複数次元の特徴量ベクトルを合計次元数の特徴量ベクトルに統合し、線形変換や非線形変換を行うことで統合特徴量ベクトルを算出する。例えば、外観特徴量ベクトルをx1、物体位置特徴量ベクトルをx2、関節点iの骨格位置特徴量ベクトルをyiとしたとき、関節点iの統合特徴量ベクトルziは次の式(1)で表される。
zi=W2*σ(W1*[x1,x2,yi]) ・・・(1)
なお、式(1)において、W1,W2は所定の重み係数を表し、[]はコンカチネーションを表し、σは非線形変換を表し、*は内積を表す。
【0078】
以上の手順により生成された関節点ごとの統合特徴量ベクトルは、そのまま学習部125や判定部126に入力されてもよい。一方、本実施の形態では、これらの統合特徴量ベクトルは時系列情報処理部143で処理された後、学習部125や判定部126に入力される。時系列情報処理部143は、生成された関節点ごとの統合特徴量ベクトルを時間的な連続性にしたがって処理することで、購買動作全体を表す特徴量ベクトルを生成する。この処理は、例えば、ST-GCN(Spatial Temporal-Graph Convolutional Networks)を用いて実行される。ST-GCNでは、関節点ごとの統合特徴量ベクトルから、関節点の位置に基づく空間パターンと時間パターンの両方が学習される。
【0079】
次に、学習部125および判定部126について説明する。前述のように、本実施の形態では、判定部126は、ある時刻の特徴量から次の時刻の特徴量を予測する予測器として動作する。学習部125は、このような予測器を学習する。
【0080】
図11は、予測器としての判定部の処理について説明するための図である。
図11に示す特徴量空間231は、購買動作抽出部124から出力される統合特徴量ベクトルの各次元を有する座標空間を、二次元の座標空間として簡易的に表したものである。ここでは、フレーム周期を単位時間として、ある時刻Tと時刻(T+1)との間の特徴量の変化について考える。時刻Tのフレームが現フレームの場合、時刻(T+1)のフレームは次フレームとなる。
【0081】
学習部125は、実際の購買動作を録画して得られた動画像から生成された統合特徴量ベクトルを基に、時刻Tから時刻(T+1)の特徴量を予測する予測器を学習する。このような学習は、例えば、学習モデルとしてRNN(Recurrent Neural Network)を用いて実行される。
【0082】
ここで、学習部125に入力される学習データとしての統合特徴量ベクトルには、正常・異常を示すラベルは付加されなくてよい。ただし、このような動画像の大多数は正常な購買動作が行われたときの動画像であり、異常な購買動作が行われたときの動画像はごく少数である。このため、学習部125は、正常な購買動作が行われたときの特徴量を予測する予測器を学習することになる。
【0083】
そして、このようにして学習された予測器は、時刻Tの特徴量が入力されたとき、正常な購買動作が行われた場合における時刻(T+1)の特徴量を予測する。例えば、予測器は、時刻Tにおいて商品や指の関節がある位置にある場合、正常な購買動作であれば時刻(T+1)において商品や指の関節がどの位置に移動するかを予測できる。逆に、予測器は、時刻Tの特徴量が入力されたとき、異常な購買動作が行われた場合における時刻(T+1)の特徴量を予測することはできない。
【0084】
例えば、
図11に示す特徴量空間231において、時刻Tの特徴量F
Tが予測器に入力されたとき、予測器は、正常動作の特徴量群の中から時刻(T+1)の特徴量F’
T+1を予測する。しかし、入力された特徴量F
Tが異常な購買動作が行われた場合の特徴量である場合、予測された時刻(T+1)の特徴量F’
T+1と、時刻(T+1)における実際の特徴量F
T+1との間の特徴量空間231における距離Dが離れる。したがって、判定部126は、このように予測された特徴量F’
T+1と実際の特徴量F
T+1との間の空間的な距離Dが所定の閾値より大きい場合に、異常な購買動作が行われたと判定することができる。
【0085】
このような処理によれば、前述の「バーコードスキャン誤り」のように、商品や関節の動きが正常の場合とは異なる動作を顧客がとった場合に、異常な購買動作が行われたと判定することが可能となる。
【0086】
次に、
図12は、予測器(判定部)の学習処理手順を示すフローチャートの例である。
[ステップS11]画像取得部121は、カメラ101によって購買動作が撮影された動画像を収集する。これらの動画像には、正常な購買動作が行われたときの動画像が相対的に多数含まれ、異常な購買動作が行われたときの動画像が少数含まれる。ただし、正常な購買動作が行われたときの動画像のみが収集されてもよい。画像取得部121は、収集された各動画像のデータを画像記憶部131に格納する。
【0087】
[ステップS12]画像記憶部131に格納された各動画像に対して、ステップS18までの特徴量生成ループの処理が実行される。
[ステップS13]動画像に含まれる各フレームに対して、ステップS17までのフレーム処理ループが実行される。
【0088】
[ステップS14]画像特徴抽出部122は、動画像のデータをHOIDの学習モデル(NN)に入力してHOID情報を算出する。画像特徴抽出部122は、HOID情報に基づき、特徴量として物体の外観情報および位置情報を抽出する。また、骨格情報抽出部123は、動画像から骨格検出を行い、特徴量として人物の骨格情報を抽出する。
【0089】
[ステップS15]購買動作抽出部124の環境差補正部141は、抽出された特徴量(外観情報、位置情報および骨格情報)を撮影環境に応じて補正する。
[ステップS16]補正後の特徴量に基づいて、特徴量ベクトルが算出される。
【0090】
具体的には、外観特徴抽出部151は、物体の外観情報に基づいて外観特徴量ベクトルを算出する。また、物体位置特徴抽出部152は、物体の位置情報に基づいて物体位置特徴量ベクトルを算出する。さらに、骨格特徴抽出部153は、人物の骨格情報に基づいて骨格位置特徴量ベクトルを算出する。そして、特徴量ベクトル統合部154は、外観特徴量ベクトル、物体位置特徴量ベクトルおよび骨格位置特徴量ベクトルを統合して、関節点ごとに統合特徴量ベクトルを算出する。時系列情報処理部143は、関節点ごとの統合特徴量ベクトルを時間的な連続性にしたがって処理することで、購買動作全体を表す特徴量ベクトルを生成する。
【0091】
[ステップS17]動画像に含まれる全フレームに対してステップS14~S16の処理が実行されると、フレーム処理ループの処理が終了し、処理がステップS18に進められる。
【0092】
[ステップS18]画像記憶部131に格納された全動画像に対してステップS13~S17の処理が実行されると、特徴量生成ループの処理が終了し、処理がステップS19に進められる。
【0093】
[ステップS19]学習部125は、購買動作全体を表す特徴量ベクトルに基づいて、時刻Tの特徴量から時刻(T+1)の特徴量を予測する予測器を学習する。この学習によって生成された学習モデル(NN)のデータは、学習モデル記憶部132に格納される。
【0094】
図13は、予測器を用いた判定処理手順を示すフローチャートの例である。
[ステップS21]画像取得部121は、カメラ101によって撮影された動画像のフレームを取得する。
【0095】
[ステップS22]画像特徴抽出部122は、フレームのデータをHOIDの学習モデル(NN)に入力してHOID情報を算出する。このフレームは、直前のステップS21またはステップS29で取得されたフレームである。画像特徴抽出部122は、HOID情報に基づき、特徴量として物体の外観情報および位置情報を抽出する。また、骨格情報抽出部123は、動画像から骨格検出を行い、特徴量として人物の骨格情報を抽出する。
【0096】
[ステップS23]購買動作抽出部124の環境差補正部141は、抽出された特徴量(外観情報、位置情報および骨格情報)を撮影環境に応じて補正する。
[ステップS24]補正後の特徴量に基づいて、特徴量ベクトルが算出される。
【0097】
具体的には、外観特徴抽出部151は、物体の外観情報に基づいて外観特徴量ベクトルを算出する。また、物体位置特徴抽出部152は、物体の位置情報に基づいて物体位置特徴量ベクトルを算出する。さらに、骨格特徴抽出部153は、人物の骨格情報に基づいて骨格位置特徴量ベクトルを算出する。そして、特徴量ベクトル統合部154は、外観特徴量ベクトル、物体位置特徴量ベクトルおよび骨格位置特徴量ベクトルを統合して、関節点ごとに統合特徴量ベクトルを算出する。時系列情報処理部143は、関節点ごとの統合特徴量ベクトルを時間的な連続性にしたがって処理することで、購買動作全体を表す特徴量ベクトルを生成する。
【0098】
[ステップS25]判定部126は、生成された特徴量ベクトルを、学習モデル記憶部132に格納された学習モデルのデータに基づく予測器に入力して、次フレームの特徴量ベクトルを予測する。判定部126は、次フレームの特徴量ベクトルの予測結果を、RAM112に一時的に保存する。
【0099】
[ステップS26]前フレームの特徴量ベクトルに基づいて予測された、現フレームの特徴量ベクトルの予測結果がRAM112に保存されている場合、ステップS26~S28の処理が実行される。この予測結果は、前フレームについてのステップS25の処理によってRAM112に保存されたものである。判定部126は、この予測結果をRAM112から取得し、この予測結果が示す特徴量ベクトルと、ステップS24で現フレームから算出された特徴量ベクトルとの間の距離を算出する。
【0100】
[ステップS27]判定部126は、算出された距離と所定の閾値とを比較する。距離が閾値を超えた場合、処理がステップS28に進められ、距離が閾値以下の場合、処理がステップS29に進められる。
【0101】
[ステップS28]距離が閾値を超えた場合、異常な購買動作が行われたと判定される。判定部126は、異常な購買動作が発生したことを警告する処理を実行する。
例えば、判定部126は、異常な購買動作が発生したことを示す画像情報を表示装置114aに表示させる。監視装置100がキャッシュレジスタ50と通信可能な場合、判定部126は、このような画像情報をキャッシュレジスタ50のディスプレイ52に表示させてもよい。
【0102】
また、音声による警告が行われてもよい。例えば、判定部126は、異常な購買動作が発生したことを警告する警告音声を、監視装置100に接続されたスピーカに出力させる。また、店員が無線通信を介して音声を聴取可能なイヤホンを装着している場合、判定部126は、異常な購買動作が発生したことを警告する音声情報を送信し、イヤホンに音声を出力させて、店員に異常発生を通知してもよい。
【0103】
[ステップS29]画像取得部121は、カメラ101によって撮影された次のフレームを取得する。
[ステップS30]画像特徴抽出部122または骨格情報抽出部123により、前フレームと同一の人物が検出されているかが判定される。同一の人物が検出されている場合、処理がステップS22に進められる。一方、同一の人物が検出されていない場合(その人物が撮影領域外に移動した場合)には、
図13の判定処理が終了する。
【0104】
以上の第2の実施の形態では、HOIDによる商品の検出結果と人物の骨格情報の検出結果を基に学習することで、正しい購買動作が行われたか否かを高精度に判定可能な判定部126を実現できる。特に、上記のバーコードスキャン誤りのように、商品のバーコードのスキャン操作が実際に行われているような不正な購買動作を、正しい購買動作でないと判定できるようになる。
【0105】
〔第3の実施の形態〕
第3の実施の形態では、第2の実施の形態における監視装置100の処理の一部が変形される。第2の実施の形態では、判定部126が、時刻Tの特徴量から時刻(T+1)の特徴量を予測する予測器として動作し、時刻(T+1)での特徴量の予測値と実際の特徴量との差分から、異常動作が発生したか否かを判定した。これに対して、第3の実施の形態では、正常動作か異常動作かを示すラベルが付加された動画像が学習データとして用いられて、正常動作と異常動作とを明示的に識別する識別器が学習される。そして、判定部126の処理は、このような識別器として動作するように変形される。
【0106】
図14は、識別器(判定部)の学習処理手順を示すフローチャートの例である。
図14では、
図12と同じ処理内容の処理ステップには同じステップ番号を付して示している。
図14に示す識別器の学習処理では、
図12のステップS11とステップS12との間にステップS41が実行され、
図12のステップS19の代わりにステップS42が実行される。
【0107】
[ステップS41]ステップS11で収集されて画像記憶部131に格納された各動画像に対するアノテーションが行われる。例えば、識別器が正常動作と異常動作とを識別する場合、正常動作を示す正常ラベルと異常動作を示す異常ラベルのいずれかが動画像のデータに付加される。好ましくは、動画像のうち、異常な購買動作が行われている期間のフレームにのみ異常ラベルが付加され、それ以外の期間のフレームに正常ラベルが付加される。例えば、
図6、
図7で説明した、パッケージ商品213についての「バーコードスキャン誤り」の動作が写った動画像では、顧客がパッケージ商品213を手に持ってバーコードスキャナ51に近づける過程で、パッケージ商品213を回転させ始めてから、飲料缶のバーコードがスキャンされるまでの期間のフレームに対して、異常ラベルが付加されればよい。
【0108】
また、識別器がさらに異常動作の種類も識別する場合には、異常ラベルとして異常動作の種類ごとのラベルが動画像に付加される。例えば、前述した「スキャン漏れ」「カゴ漏れ」「バーコード隠し」「バーコードスキャン誤り」の4種類の異常動作を識別させる場合には、4種類の異常ラベルが用いられる。この場合、動画像のフレームには、正常ラベルと4種類の異常ラベルという5つのラベルのいずれかが付加されることになる。
【0109】
なお、ステップS11では、
図12の場合と異なり、異常な購買動作が行われたときの動画像が一定数以上収集されることが望ましい。特に、上記のように異常動作の種類を識別可能にする場合には、異常動作の種類ごとに、該当する種類の異常動作が行われたときの動画像が一定数収集されることが望ましい。
【0110】
[ステップS42]学習部125に対しては、購買動作抽出部124によって算出された各動画像の特徴量ベクトルが、上記のラベルが付加された状態で入力される。学習部125は、入力された特徴量ベクトルとラベルとに基づいて、購買動作を識別する識別器を学習する。この学習によって生成された学習モデル(NN)のデータは、学習モデル記憶部132に格納される。
【0111】
図15は、識別器を用いた判定処理手順を示すフローチャートの例である。
図15では、
図13と同じ処理内容の処理ステップには同じステップ番号を付して示している。
図15に示す判定処理では、
図13のステップS25~S28の代わりにステップS51~S53が実行される。
【0112】
[ステップS51]判定部126は、生成された特徴量ベクトルを、学習モデル記憶部132に格納された学習モデルのデータに基づく識別器に入力して、正常動作か異常動作かを判定する。
【0113】
[ステップS52]異常動作が行われた場合、処理がステップS53に進められ、正常動作が行われた場合、処理がステップS29に進められる。
[ステップS53]判定部126は、異常な購買動作が発生したことを警告する処理を実行する。警告の仕方は、
図13のステップS28と同様とすることができる。
【0114】
ここでは、識別器によって異常動作の種類も識別されたものとする。この場合、異常動作の種類に応じた警告を行うこともできる。例えば、
図13のステップS28のように表示情報や音声で警告を行う場合、表示情報や音声によって異常動作の種類が通知される。また、異常動作の種類によって警告の方法を変えることもできる。例えば、「スキャン漏れ」や「カゴ漏れ」のように顧客の過失による異常動作が行われた場合には、キャッシュレジスタ50のディスプレイ52や音声出力によって顧客に警告を発して、スキャン操作のやり直しを促す。一方、「バーコード隠し」や「バーコードスキャン誤り」のように顧客の故意による異常動作が行われた場合には、表示情報や音声によって店員に対して警告を発する。
【0115】
また、顧客とのトラブルを防ぐために、故意による異常動作が行われた場合には、顧客に気づかれるような警告を行わずに、現在時刻やキャッシュレジスタ50の識別番号、異常動作の種類などの情報を記憶装置に保存する、あるいは、撮影された動画像のデータを証拠として記憶装置に保存するなどの処理が行われてもよい。
【0116】
以上の第3の実施の形態では、HOIDによる商品の検出結果と人物の骨格情報の検出結果を基に学習することで、商品や手の関節が特有の動きをする異常な購買動作を識別可能な識別器を生成できる。特に、学習データに対して異常動作の種類ごとにラベル付けされた場合には、複数種類の異常動作を明示的に識別可能な識別器を生成できる。HOIDによる商品の検出結果と人物の骨格情報の検出結果とが利用されることで、購買動作の細かな違いを判別できるようになり、複数種類の異常動作を高精度に識別可能な識別器を生成できる。
【0117】
〔第4の実施の形態〕
第4の実施の形態では、第2の実施の形態における監視装置100の処理の一部が変形される。具体的には、画像特徴抽出部122によって検出された物体(商品)の画像上の位置に基づく所定の判定ルールにしたがって、正常な購買動作が行われたか否かが判定される。また、骨格情報抽出部123によって検出された骨格情報に基づき、判定ルールの内容が顧客の体格や立ち位置に応じて補正される。
【0118】
図16は、第4の実施の形態に係る監視装置が備える処理機能の構成例を示す図である。
図16では、
図8と同じ処理を実行する処理機能には同じ符号を付して示している。
図16に示す監視装置100aは、
図8に示した画像取得部121、画像特徴抽出部122および骨格情報抽出部123に加えて、判定ルール記憶部161、環境差補正部162、人物差補正部163、顧客操作認識部164および購買動作判定部124aを備える。
【0119】
判定ルール記憶部161は、監視装置100aが備える記憶装置の記憶領域として実現される。判定ルール記憶部161は、正常な購買動作が行われたか否かを判定するための判定ルールを示す情報(判定ルール情報)が記憶される。例えば、判定ルール情報として、顧客が特定の動作を行ったことを商品の位置から認識するために画像上に設定される複数の判定領域を示す情報が記憶される。
【0120】
環境差補正部162、人物差補正部163、顧客操作認識部164および購買動作判定部124aの処理は、例えば、監視装置100aが備えるプロセッサが所定のプログラムを実行することで実現される。
【0121】
環境差補正部162は、判定ルールを正しく適用できるように、画像取得部121によって取得された画像を撮影環境に応じて補正する。
人物差補正部163は、判定ルール記憶部161に記憶された判定ルール情報を、骨格情報抽出部123によって検出された骨格情報に基づいて補正する。この補正により、判定ルール情報が顧客の体格や立ち位置に応じて補正される。
【0122】
顧客操作認識部164は、キャッシュレジスタ50を用いた顧客の操作を認識する。例えば、顧客の操作として、商品のスキャン操作や、スキャン操作の完了後に行われる精算開始操作が認識される。
【0123】
顧客操作認識部164は、例えば、カメラ101による撮影画像に基づいてこれらの操作を認識する。例えば、スキャン操作や精算開始操作が行われたときに、キャッシュレジスタ50に搭載されたランプが点灯する場合がある。操作ごとに異なるランプが点灯する場合や、操作ごとに異なる色でランプが点灯する場合もある。このような場合、顧客操作認識部164は、撮影画像からランプの点灯や点灯されたときの色を検出することで、上記の操作が行われたことを認識できる。
【0124】
また、顧客操作認識部164は、各操作に応じてキャッシュレジスタ50のディスプレイ52の表示内容に変化が生じることを撮影画像から認識することで、各操作を認識してもよい。
【0125】
さらに、例えば、キャッシュレジスタ50から操作ごとに異なる通知音が発生する場合には、顧客操作認識部164は、マイクを介してそれらの通知音の発生を検出することで、上記の操作が行われたことを認識できる。また、監視装置100aとキャッシュレジスタ50とが通信可能である場合、顧客操作認識部164は、上記の操作が行われたときにその旨を示す通知をキャッシュレジスタ50から受け付けてもよい。
【0126】
購買動作判定部124aは、画像特徴抽出部122から出力された物体(商品)の位置情報に基づき、人物差補正部163によって補正された判定ルール情報が示す判定ルールにしたがって、正常な購買動作が行われた否かを判定する。また、購買動作判定部124aは、判定結果に基づいてスキャン操作が行われた回数をカウントするとともに、顧客操作認識部164によって認識されたスキャン操作の回数をカウントする。購買動作判定部124aは、顧客によって精算開始操作が行われたときに両者のカウント値を照合し、一致していない場合には、正しい購買動作が行われていないことを警告する処理を実行する。
【0127】
図17は、正常な購買動作が行われた否かを判定する判定ルールについて説明するための図である。
図17に示す画像241は、画像取得部121が取得する撮影画像の一例である。この画像241は、キャッシュレジスタ50の上方から、キャッシュレジスタ50の前面(バーコードスキャナ51が搭載された面)付近を撮影した画像である。また、画像241には、画像特徴抽出部122から出力されるHOID情報によって示される、商品213についての商品領域(バウンディングボックス)242が例示されている。さらに、商品領域242の中心位置243も併せて示されている。
【0128】
判定ルールでは、例えば、顧客がそれぞれ特定の動作を行ったことを認識するための複数の判定領域が利用される。この場合、判定ルール記憶部161に記憶される判定ルール情報には、これらの各判定領域の位置を示す情報が含められる。ここでは例として、取り出し領域R1と持ち出し領域R2という2か所の判定領域が設定されるものとする。
図17に示す画像241aは、画像241上に取り出し領域R1と持ち出し領域R2を重畳して示したものである。
【0129】
取り出し領域R1は、顧客がスキャン操作を行うために商品を手に取る動作を検出するための領域である。多くの場合、顧客は購入対象の商品を店内用のカゴ216に入れた状態でキャッシュレジスタ50に近づき、商品を1つずつカゴ216から取り出してスキャン操作を行う。この場合、取り出し領域R1は、顧客がスキャン操作を行うために商品をカゴ216から取り出したことを検出するための領域である。そこで、以下の説明では、取り出し領域R1に基づいて検出しようとする上記の動作を「取り出し動作」と記載する。ここでは、商品領域242の中心位置243が取り出し領域R1に新たに入った場合に、取り出し動作が開始されたと判定され、中心位置243が取り出し領域R1の外側に移動した場合に、取り出し動作が終了したと判定されるものとする。
【0130】
取り出し領域R1は、キャッシュレジスタ50の前面から一定程度離れた位置に設定される。これに加えて、
図17の例では、キャッシュレジスタ50の前面に近接する領域のうち、バーコードスキャナ51が配置された領域とカゴ216が載置される領域との間にも設定されている。
【0131】
ただし、取り出し領域R1は、カゴ216が載置される領域を含まないように設定される。例えば、カゴ216の中では複数の商品が近接していることが多い。このため、HOIDの処理によれば、顧客がカゴ216を持ち運んでいる状態では、カゴ216の中の複数の商品を顧客が持っていると検出されてしまう場合がある。また、カゴ216を置いて商品を取り出す際にも、ある商品の下敷きになっていた別の商品を取り出す場合には、取り出しの対象でない上側の商品を顧客が持ったと誤検出される場合もある。カゴ216が載置される領域を含まないように取り出し領域R1が設定されることで、このような誤検出を防ぐことができる。
【0132】
一方、持ち出し領域R2は、顧客が手に取った商品のスキャン操作を行う動作を検出するための領域であり、バーコードスキャナ51に近接する位置に設定される。この持ち出し領域R2は、顧客が手に取った商品を店舗外に持ち出すための正常な動作を行ったことを検出するための領域ということもできる。なお、持ち出し領域R2は、境界線の少なくとも1つが取り出し領域R1の境界線と接するように設定される。具体的には、持ち出し領域R2の境界線のうち、顧客とキャッシュレジスタ50との間を分ける境界線(キャッシュレジスタ50側の境界線であり、キャッシュレジスタ50の前面と平行な境界線)が、取り出し領域R1の境界線と接するように設定される。
【0133】
このような取り出し領域R1および持ち出し領域R2と、商品領域242の中心位置243との関係から、例えば次のような判定ルールによって正常な購買動作が行われたか否かが判定される。購買動作判定部124aは、中心位置243が取り出し領域R1内に移動すると、商品が1つ取り出された(取り出し動作が行われた)と認識する。購買動作判定部124aは、その状態から中心位置243が取り出し領域R1から持ち出し領域R2内に移動すると、スキャン操作が行われた(正しい持ち出し動作が行われた)と認識する。このような一連の動作が検出された場合に、正常な購買動作が行われたと判定される。
【0134】
一方、中心位置243が持ち出し領域R2内に移動しなかった場合には、正常な購買動作が行われていないと判定される。例えば、中心位置243が、取り出し領域R1内から、持ち出し領域R2に移動することなく取り出し領域R1外に移動した場合には、顧客が商品をスキャンせずにポケットやバッグに入れたことが想定される。このような場合には、購買動作判定部124aは、異常な購買動作が行われたと認識して、警告を発する処理を実行することができる。
【0135】
なお、上記の判定の間、連続する複数のフレーム間で同一の商品が手に持たれていることを認識する方法としては、例えば、商品の位置の軌跡に基づいて認識する方法や、商品領域の画像情報に基づいて認識する方法などを用いることができる。画像情報を用いる方法としては、例えば、バウンディングボックス内の輝度または色のヒストグラムを比較することで認識する方法を用いることができる。
【0136】
また、上記の例では画像上の設定領域と商品の位置との関係から購買動作を判定しているが、例えばさらに、設定領域に商品が進入する前後における設定領域内の画像変化(背景差分)も用いて、購買動作を判定するようにしてもよい。例えば、取り出し領域R1の画像変化を検出することで、認識された物体が商品であることを正確に判別して、商品の移動軌跡をトレースできるようになる。
【0137】
図18は、環境差補正部による補正処理例を示す図である。
図18(A)は第1の補正処理例を示し、
図18(B)は第2の補正処理例を示す。
環境差補正部162は、判定ルールを正しく適用して判定処理を実行できるように、画像取得部121によって取得された画像を撮影環境に応じて補正する。
【0138】
例えば、環境差補正部162は、カメラ101による撮影環境を示す情報が記録された撮影環境情報に基づいて、撮影画像を補正する。撮影環境情報には、例えば、カメラ101による撮影画像の画素数、カメラ101の撮影方向、カメラ101と現実空間上の基準位置(例えば、キャッシュレジスタ50の前面の所定位置)との距離などが記録される。判定ルール記憶部161には、撮影環境情報に記録される情報に関する基準値が登録されており、環境差補正部162は、撮影環境情報と基準値とを比較することで、撮影画像の画素数や撮影方向、基準位置との距離が基準値に合うように撮影画像を補正する。
【0139】
また、環境差補正部162は、このような補正を、撮影環境情報の代わりに、現実空間上に設置した複数のマーカを用いて実行してもよい。この場合、判定ルール記憶部161には、撮影画像上のマーカ間の位置関係(マーカ間距離および相対位置)についての基準値が登録される。環境差補正部162は、撮影画像に写った各マーカの位置を検出し、撮影画像上のマーカ間の位置関係が、判定ルール記憶部161に登録された基準値と一致するように、撮影画像を補正する。
【0140】
例えば、
図18(A)では、撮影画像251上のマーカ間距離が基準値より小さい場合の例を示している。この例では、現実空間上にマーカM1~M4が設置され、これらのマーカM1~M4が撮影画像251に写っている。
【0141】
ここで、判定ルール情報において、取り出し領域R1の境界線のうち顧客とキャッシュレジスタ50との間を分ける境界線L1が、画像の上端から300画素の位置に設定されていたとする。カメラ101による撮影画像251上のマーカ間距離が基準値より小さい場合、判定ルール情報に設定された境界線L1の位置をそのまま用いてしまうと、取り出し領域R1に商品が位置するか否かの判定を正しく実行できない。このため、環境差補正部162は、マーカ間距離が基準値と一致するように撮影画像251を拡大する補正を行う。補正後(拡大後)の撮影画像251aを用いて判定処理が実行されることで、判定処理を正確に実行できるようになる。
【0142】
また、マーカを用いた場合には、
図18(B)に示すように、撮影画像を回転させる補正を行うこともできる。
図18(B)に示す撮影画像252では、マーカM1~M4の間の位置関係と判定ルール記憶部161に登録された基準値との比較から、レンズ光軸に対してカメラ101が回転していることがわかる。このような場合、環境差補正部162は、マーカ間の角度の関係が基準値と一致するように撮影画像252を回転した上で、マーカ間距離が基準値と一致するような画像領域253を、回転された撮影画像252から切り出す。このような補正により、補正後の撮影画像252aが得られる。
【0143】
図19は、人物差補正部の内部構成例を示す図である。
図19に示すように、人物差補正部163は、個体差補正部171と人物位置補正部172を備える。
個体差補正部171は、骨格情報抽出部123によって検出された骨格情報から人物の体格を推定し、人物による体格差に関係なく正確な判定を実行できるように、判定ルール記憶部161に記憶された判定ルール情報を補正する。
【0144】
人物位置補正部172は、画像特徴抽出部122によって検出された人物の位置情報、または骨格情報抽出部123によって検出された骨格情報に基づいて、人物が立っている位置(立ち位置)を認識する。人物位置補正部172は、人物の立ち位置に関係なく正確な判定を実行できるように、認識された立ち位置に基づいて判定ルール記憶部161に記憶された判定ルール情報を補正する。
【0145】
図20は、人物差補正部による補正処理について説明するための図である。前述のように、購買動作判定部124aは、商品の位置が取り出し領域R1に進入することで取り出し動作を検出し、その後に商品の位置が持ち出し領域R2に進入することでスキャン操作の実行を検出する。例えば、人物の関節点間の長さ(特に、肘から手首までの腕の長さ)や、人物の立ち位置によって、正常な取り出し動作が実行される位置と正常なスキャン操作が実行される位置は概ね定まる。そこで、取り出し動作とスキャン操作との識別に事実上用いられる、取り出し領域R1と取り出し領域R2との境界線を、撮影画像における人物の所定の関節点間の長さや人物の立ち位置に応じて適正化することで、正確な動作判定を行うことができるようになる。
【0146】
図20に示す撮影画像261には、取り出し領域R1と持ち出し領域R2とが例示されている。また、取り出し領域R1と持ち出し領域R2との境界線L2は、顧客とキャッシュレジスタ50との間を分けるように撮影画像261上で水平に設定されている。人物差補正部163は、人物の所定の関節点間の長さや人物の立ち位置に応じて、境界線L2の垂直方向における位置を補正する。
【0147】
例えば、個体差補正部171は、骨格情報抽出部123によって検出された骨格情報に基づいて、人物の腕の長さを算出する。人物の腕が長い場合、商品の持ち出し動作を正しく行ったときの垂直方向の範囲は下方向(キャッシュレジスタ50の方向)に広くなり得る。そこで、個体差補正部171は、人物の腕が所定の閾値より長い場合、境界線L2を画像上の下方向に補正し、人物の腕が閾値以下の場合、境界線L2を画像上の上方向に補正する。補正量は、例えば、腕の長さと閾値との差分に応じて決定されればよい。
【0148】
また、人物位置補正部172は、撮影画像261における人物の立ち位置を検出する。例えば、画像特徴抽出部122によって検出された人物の位置情報から、人物の立ち位置を検出可能である。あるいは、骨格情報抽出部123によって人物の足の関節点(例えば、足首、膝など)が検出されている場合には、その関節点の位置を人物の立ち位置として検出することもできる。
【0149】
人物の立ち位置が画像上の下方向にあるほど、商品の持ち出し動作を正しく行ったときの垂直方向の範囲は下方向(キャッシュレジスタ50の方向)に広くなり得る。そこで、人物位置補正部172は、人物の立ち位置を示すy座標(垂直方向の座標)が所定の基準垂直座標より大きい場合(下方向に位置する場合)、境界線L2を画像上の下方向に補正し、人物の立ち位置を示すy座標が基準垂直座標以下の場合、境界線L2を画像上の上方向に補正する。補正量は、例えば、人物の立ち位置を示すy座標と基準垂直座標との差分に応じて決定されればよい。
【0150】
次に、第4の実施の形態に係る監視装置100aの処理について、フローチャートを用いて説明する。
図21、
図22は、判定ルールに基づく判定処理手順を示すフローチャートの例である。この
図21、
図22では、正しい購買動作が行われたかが判定される。これとともに、その判定によってバーコードのスキャン操作が行われたと認識された回数と、キャッシュレジスタ50においてスキャン操作が行われた実際の回数とが比較され、比較結果に応じた通知や警告の処理が実行される。
【0151】
[ステップS61]まず、判定処理に対する前処理として、環境差補正部162で使用される補正パラメータの設定処理が実行される。このとき、撮影範囲内の所定位置に複数のマーカが設置され、各マーカを含む撮影範囲がカメラ101によって撮影される。撮影画像を画像取得部121が取得すると、環境差補正部162は、撮影画像上の各マーカの位置関係と、判定ルール記憶部161に登録された各マーカの位置関係の基準値とを比較することで、撮影画像を補正するための補正パラメータを決定する。補正パラメータとしては、例えば、画像の拡大・縮小率、画像の回転角度などが決定される。環境差補正部162は、決定された補正パラメータをHDD113などの記憶装置に保存する。
【0152】
なお、カメラ101の撮影環境を示す撮影環境情報が与えられる場合には、カメラ101による撮影が行われずに、撮影環境情報と、撮影環境情報に含まれる各情報の基準値とが比較されることで、補正パラメータが決定されればよい。
【0153】
以上のようにして補正パラメータが設定されると、実際の判定処理を実行するためのカメラ101による撮影が開始される。このとき、マーカは撮影範囲から除去される。
[ステップS62]カメラ101によって撮影された画像が、環境差補正部162により、ステップS61で設定された補正パラメータに基づいて補正されて、画像特徴抽出部122および骨格情報抽出部123に入力される。これ以後、撮影画像が取得されるたびに、環境差補正部162による補正が行われ、補正後の撮影画像が画像特徴抽出部122および骨格情報抽出部123に入力される。
【0154】
[ステップS63]購買動作判定部124aは、画像特徴抽出部122によって、人物と、その人物と相互作用を有する物体(商品)とが認識されたかを判定する。人物が認識されたが物体は認識されていない場合や、人物が認識されていない場合には、待ち状態となり、次のフレームについてステップS63の処理が再実行される。一方、人物と物体とが認識された場合、処理がステップS64に進められる。
【0155】
次のステップS64~S69の処理は、フレームごとに実行される。
[ステップS64]人物差補正部163は、判定ルール記憶部161に記憶された判定ルール情報を、骨格情報抽出部123によって検出された骨格情報に基づいて補正する。例えば、
図20で説明したように、人物の所定関節点間の長さや人物の立ち位置に応じて、取り出し領域R1および持ち出し領域R2の範囲が調整される。
【0156】
[ステップS65]購買動作判定部124aは、ステップS64で補正された判定ルール情報を用いて、商品点数のカウント処理を実行する。この処理では、購買動作判定部124aによってスキャン操作が正しく実行されたと判定された回数が、商品点数としてカウントされる。なお、ステップS65の処理内容については、後の
図23で詳しく説明する。
【0157】
[ステップS66]購買動作判定部124aは、キャッシュレジスタ50において商品のバーコードのスキャンが実行された回数を、スキャン点数としてカウントする。この処理では、顧客操作認識部164によってバーコードがスキャンされたことが認識された場合に、スキャン点数がカウントアップされる。
【0158】
[ステップS67]購買動作判定部124aは、商品点数がスキャン点数より少ないかを判定する。商品点数がスキャン点数より少ない場合、処理がステップS68に進められ、商品点数とスキャン点数とが一致している場合、処理がステップS69に進められる。
【0159】
[ステップS68]購買動作判定部124aは、顧客に訂正操作を促す通知を行う。例えば、誤りがあることを示す音声が出力される。または、誤りがあることを示す表示情報が、キャッシュレジスタ50のディスプレイ52に表示される。すると、顧客による訂正操作が行われる。例えば、顧客によってキャッシュレジスタ50に対してスキャン操作をやり直すための入力が行われる。また、顧客は、直前に手に持っていた商品を再度持ち直す。購買動作判定部124aは、例えば顧客操作認識部164によってスキャン操作をやり直すための入力操作が検知されると、スキャン点数をカウントダウン(インクリメント)する。その後、処理がステップS64に進められる。
【0160】
[ステップS69]購買動作判定部124aは、顧客が精算処理を行うかを判定する。例えば、顧客操作認識部164により、顧客が精算処理を要求するための操作をキャッシュレジスタ50に対して行ったことが検知されると、顧客が精算処理を行うと判定される。顧客が精算処理を行うと判定されなかった場合、処理がステップS64に進められる。一方、顧客が精算処理を行うと判定された場合、処理が
図22のステップS71に進められる。
【0161】
以下、
図22を参照して説明を続ける。
[ステップS71]キャッシュレジスタ50によって精算処理が実行される。例えば、キャッシュレジスタ50のディスプレイ52に、スキャンされた商品の合計金額が表示される。
【0162】
[ステップS72]購買動作判定部124aは、商品点数がスキャン点数より少ないかを判定する。商品点数がスキャン点数より少ない場合、処理がステップS73に進められる。一方、商品点数とスキャン点数とが一致している場合、精算処理が継続され、精算処理が完了する(すなわち、支払いが終了する)と処理がステップS75に進められる。
【0163】
[ステップS73]購買動作判定部124aは、スキャンされた商品の個数が足りないことを警告する処理を実行する。例えば、警告情報がキャッシュレジスタ50のディスプレイ52に表示される。あるいは、店員が装着するイヤホンに対して警告情報の音声が出力される。
【0164】
[ステップS74]顧客による訂正操作が行われる。例えば、顧客によってキャッシュレジスタ50に対してスキャン操作をやり直すための入力が行われ、精算処理が再度要求される。精算処理が完了すると、処理がステップS75に進められる。
【0165】
[ステップS75]判定処理を終了するかが判定される。判定処理を継続する場合、処理が
図21のステップS63に進められ、新たな人物および物体の認識処理が実行される。一方、判定処理を終了する場合、処理が終了となる。
【0166】
図23は、スキャン点数のカウント処理の手順を示すフローチャートの例である。この
図23の処理は、
図21のステップS65の処理に対応する。また、
図23の処理では、新たに認識された物体を示す情報(物体情報)がRAM112に順次記録されていく。この物体情報には、スキャンを実行済みか否かを示すフラグ情報が付加されている。
【0167】
[ステップS81]購買動作判定部124aは、物体領域(バウンディングボックス)の中心位置が取り出し領域R1内にあるかを判定する。中心位置が取り出し領域R1内にある場合、処理がステップS82に進められ、中心位置が取り出し領域R1内にない場合、処理がステップS86に進められる。
【0168】
[ステップS82]購買動作判定部124aは、ステップS81で取り出し領域R1内にあると判定された物体が、すでに記録済みの物体かを判定する。記録済みの物体とは、当該物体についての物体情報が、最も新しい物体情報としてRAM112に記録されていることを示す。記録済みの物体である場合、物体が取り出し領域R1内に位置する状態が前フレームから続いており、
図23の処理は終了する。一方、記録済みの物体でない場合、処理がステップS83に進められる。
【0169】
[ステップS83]購買動作判定部124aは、ステップS81で取り出し領域R1内にあると判定された物体の物体情報を、RAM112に新規に登録する。このとき、スキャンが未実行であることを示すフラグ情報が物体情報に付加される。
【0170】
[ステップS84]購買動作判定部124aは、ステップS83で新規に登録された物体情報より1つ前に登録された物体情報(すなわち、取り出し領域R1内に位置すると判定された1つ前の物体の物体情報)を参照する。購買動作判定部124aは、この物体情報に付加されたフラグ情報に基づいて、この物体情報に対応する物体がスキャン未実行であるかを判定する。この物体がスキャン未実行である場合、処理がステップS85に進められ、この物体がスキャン実行済みである場合、
図23の処理が終了する。
【0171】
[ステップS85]ステップS84でYesと判定されたケースは、1つ前の物体が取り出し領域R1から持ち出し領域R2に移動することなく、取り出し領域R1の範囲外に移動したケースである。この場合、商品がスキャンされずに持ち出された可能性がある。そこで、購買動作判定部124aは、例えば、スキャンが正しく行われなかったことを顧客に警告するための処理を実行する。例えば、スキャンが正しく行われなかったことを示す音声が出力される。または、スキャンが正しく行われなかったことを示す表示情報が、キャッシュレジスタ50のディスプレイ52に表示される。この後、
図23の処理が終了する。
【0172】
なお、ステップS85では、例えば、警告を発する処理の代わりに、異常な購買動作が行われたことを示す情報がRAM112に記録されてもよい。この場合、記録された情報に基づき、
図21のステップS67や
図22のステップS72で商品点数とスキャン点数とが同数と判定された場合に、異常があることを警告する処理が実行されてもよい。
【0173】
[ステップS86]購買動作判定部124aは、物体領域(バウンディングボックス)の中心位置が持ち出し領域R2内にあるかを判定する。この処理では、中心位置が持ち出し領域R2内にあり、かつ、対応する物体がRAM112に記録済みの物体である場合に、処理がステップS87に進められる。この場合、物体が取り出し領域R1から持ち出し領域R2に移動したことを意味する。一方、中心位置が持ち出し領域R2の外にある場合、および、中心位置が持ち出し領域R2内にあるが、対応する物体の物体情報がRAM112に記録されていない場合には、
図23の処理が終了する。
【0174】
[ステップS87]購買動作判定部124aは、商品点数をカウントアップする。
[ステップS88]購買動作判定部124aは、該当物体をスキャン済みの物体として記録する。すなわち、購買動作判定部124aは、該当物体の物体情報に付加されたフラグ情報を、スキャン済みを示すように更新する。
【0175】
以上の第4の実施の形態によれば、人物に関係する商品が検出され、この商品の位置に基づいて正しい購買動作が行われたかが判定される。これとともに、購買動作の判定のために用いられる判定ルール情報が、骨格情報の検出結果に基づいて最適化される。これにより、商品ごとのテンプレートや学習データを用いることなく、また、人物の体格や撮影範囲における人物の位置に関係なく、人物が正しい購買動作を行ったか否かを精度よく判定できる。
【0176】
なお、上記の各実施の形態に示した装置(例えば、動作判別装置1、監視装置100)の処理機能は、コンピュータによって実現することができる。その場合、各装置が有すべき機能の処理内容を記述したプログラムが提供され、そのプログラムをコンピュータで実行することにより、上記処理機能がコンピュータ上で実現される。処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体としては、磁気記憶装置、光ディスク、半導体メモリなどがある。磁気記憶装置には、ハードディスク装置(HDD)、磁気テープなどがある。光ディスクには、CD(Compact Disc)、DVD(Digital Versatile Disc)、ブルーレイディスク(Blu-ray Disc:BD、登録商標)などがある。
【0177】
プログラムを流通させる場合には、例えば、そのプログラムが記録されたDVD、CDなどの可搬型記録媒体が販売される。また、プログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することもできる。
【0178】
プログラムを実行するコンピュータは、例えば、可搬型記録媒体に記録されたプログラムまたはサーバコンピュータから転送されたプログラムを、自己の記憶装置に格納する。そして、コンピュータは、自己の記憶装置からプログラムを読み取り、プログラムにしたがった処理を実行する。なお、コンピュータは、可搬型記録媒体から直接プログラムを読み取り、そのプログラムにしたがった処理を実行することもできる。また、コンピュータは、ネットワークを介して接続されたサーバコンピュータからプログラムが転送されるごとに、逐次、受け取ったプログラムにしたがった処理を実行することもできる。
【符号の説明】
【0179】
1 動作判別装置
2 撮影画像
3a 人物
3b 物体
3c 読み取り装置
4a,4b 画像領域
5a,5b,6a,6b 骨格線