(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-11-25
(45)【発行日】2024-12-03
(54)【発明の名称】動作検出システム、動作検出方法、及びプログラム
(51)【国際特許分類】
G06Q 30/06 20230101AFI20241126BHJP
G06Q 50/10 20120101ALI20241126BHJP
G08B 21/00 20060101ALI20241126BHJP
G07G 1/00 20060101ALI20241126BHJP
G07G 1/12 20060101ALN20241126BHJP
【FI】
G06Q30/06
G06Q50/10
G08B21/00 E
G07G1/00 311Z
G07G1/12 331A
(21)【出願番号】P 2023537803
(86)(22)【出願日】2021-07-28
(86)【国際出願番号】 JP2021027844
(87)【国際公開番号】W WO2023007601
(87)【国際公開日】2023-02-02
【審査請求日】2024-01-12
(73)【特許権者】
【識別番号】000004237
【氏名又は名称】日本電気株式会社
(74)【代理人】
【識別番号】100103894
【氏名又は名称】家入 健
(72)【発明者】
【氏名】川合 諒
(72)【発明者】
【氏名】吉田 登
(72)【発明者】
【氏名】劉 健全
(72)【発明者】
【氏名】津田 隼輔
(72)【発明者】
【氏名】鶴岡 佑樹
【審査官】橘 均憲
(56)【参考文献】
【文献】特開2016-224734(JP,A)
【文献】国際公開第2019/124111(WO,A1)
【文献】特開2017-199188(JP,A)
【文献】特開2015-069419(JP,A)
【文献】国際公開第2015/173869(WO,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G06Q 10/00-99/00
(57)【特許請求の範囲】
【請求項1】
ユーザが予め定められた精算機を訪問したことを検出したことに応じて、前記ユーザを撮影した映像データから抽出された骨格情報の少なくとも一部に基づいて、少なくとも1つの動作IDの特定を開始する動作特定手段と、
前記ユーザが持ち出した商品を撮影した映像データに基づいて、商品数を特定する商品数特定手段と、
特定した前記少なくとも1つの動作IDを含む動作シーケンスが、予め登録されている登録動作シーケンス
のうち、前記商品数に応じた登録動作シーケンスに対応するか否かを判定する判定手段と、
判定結果に応じて予め定められた処理を実行する処理制御手段と
を備える動作検出システム。
【請求項2】
前記動作特定手段は、前記ユーザが前記精算機から去ったことを検出したことに応じて、前記少なくとも1つの動作IDの特定を終了する
請求項1に記載の動作検出システム。
【請求項3】
前記動作特定手段は、前記ユーザが前記精算機を訪問したことを検出したことに応じて、前記ユーザを撮影した映像データから抽出された骨格情報の少なくとも一部に基づいて、複数の動作IDの特定を開始し、
前記判定手段は、特定した前記複数の動作IDを時系列で含む動作シーケンスが前記登録動作シーケンスに対応するか否かを判定し、
前記処理制御手段は、前記動作シーケンスが前記登録動作シーケンスに対応しない場合、前記予め定められた処理を実行する
請求項1又は2に記載の動作検出システム。
【請求項4】
前記処理制御手段は、前記動作シーケンスが前記登録動作シーケンスに対応しない場合、前記動作シーケンスに応じて予め定められる情報を出力する
請求項1から
3のいずれか一項に記載の動作検出システム。
【請求項5】
前記動作特定手段は、前記骨格情報の少なくとも一部と、スキャン動作を示す登録動作IDの登録骨格情報との類似度が所定閾値以上である場合であっても、所定の音声を取得しない場合は、前記スキャン動作を示す登録動作IDを、動作IDとして特定しない
請求項1から
4のいずれか一項に記載の動作検出システム。
【請求項6】
人物の所定の動作を示す登録用映像データと、少なくとも1つの登録動作IDとを取得する登録情報取得手段と、
前記登録用映像データに含まれるフレーム画像から抽出された骨格情報を、登録骨格情報として、前記少なくとも1つの登録動作IDに対応付けて登録し、前記少なくとも1つの登録動作IDを含んだ登録動作シーケンスを登録する登録手段と
をさらに備える
請求項1から
5のいずれか一項に記載の動作検出システム。
【請求項7】
前記動作特定手段は、前記映像データに含まれる異なるフレーム画像から抽出された骨格情報の少なくとも一部の差分が所定量以上である場合、前記異なるフレーム画像から抽出された前記骨格情報の少なくとも一部と前記登録骨格情報とを照合して、前記動作IDを特定する
請求項
6に記載の動作検出システム。
【請求項8】
コンピュータが、
ユーザが予め定められた精算機を訪問したことを検出したことに応じて、前記ユーザを撮影した映像データから抽出された骨格情報の少なくとも一部に基づいて、少なくとも1つの動作IDの特定を開始し、
前記ユーザが持ち出した商品を撮影した映像データに基づいて、商品数を特定し、
特定した前記少なくとも1つの動作IDを含む動作シーケンスが、予め登録されている登録動作シーケンス
のうち、前記商品数に応じた登録動作シーケンスに対応するか否かを判定し、
判定結果に応じて予め定められた処理を実行する
動作検出方法。
【請求項9】
ユーザが予め定められた精算機を訪問したことを検出したことに応じて、前記ユーザを撮影した映像データから抽出された骨格情報の少なくとも一部に基づいて、少なくとも1つの動作IDの特定を開始する動作特定処理と、
前記ユーザが持ち出した商品を撮影した映像データに基づいて、商品数を特定する商品数特定処理と、
特定した前記少なくとも1つの動作IDを含む動作シーケンスが、予め登録されている登録動作シーケンス
のうち、前記商品数に応じた登録動作シーケンスに対応するか否かを判定する判定処理と、
判定結果に応じて予め定められた処理を実行する処理制御処理と
をコンピュータに実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、動作検出システム、動作検出方法、及び非一時的なコンピュータ可読媒体に関する。
【背景技術】
【0002】
近年、顧客が商品のバーコードをスキャンして会計をする形態のセルフレジが普及している。スタッフが少ない又はいない店舗においては、セルフレジの操作者の不正行為を自動で検出することが求められている。尚、操作者の不正行為を自動検出したいというニーズは、セルフレジだけでなく、金銭を取り扱うその他の装置においても同様である。
【0003】
例えば特許文献1では、キャッシュセンタのソータの操作者の動作と不正行為パターンの動画とを比較することで不正行為が発生していないか判定し、検知された不正の事実と、その証拠とを管理者端末に送信する監視システムが開示されている。監視システムの管理サーバは、保存された動画ファイルを解析し、不正行為パターンに該当する画像データが動画ファイルに含まれているかをチェックする。
【先行技術文献】
【特許文献】
【0004】
【発明の概要】
【発明が解決しようとする課題】
【0005】
ここで、操作者の不正行為をリアルタイムで検出したい場合、監視カメラからの映像を常に解析して、不正行為の有無を確認する必要がある。しかし、解析処理を継続的に実行すると、処理負荷が高くなり、処理するデータ量が膨大になるという問題があった。
【0006】
本開示の目的は、上述した課題に鑑み、精算機に関連する不正行為を好適に検出する動作検出システム、動作検出方法、及び非一時的なコンピュータ可読媒体を提供することにある。
【課題を解決するための手段】
【0007】
本開示の一態様にかかる動作検出システムは、
ユーザが予め定められた精算機を訪問したことを検出したことに応じて、前記ユーザを撮影した映像データから抽出された骨格情報の少なくとも一部に基づいて、少なくとも1つの動作IDの特定を開始する動作特定手段と、
特定した前記少なくとも1つの動作IDを含む動作シーケンスが、予め登録されている登録動作シーケンスに対応するか否かを判定する判定手段と、
判定結果に応じて予め定められた処理を実行する処理制御手段と
を備える。
【0008】
本開示の一態様にかかる動作検出方法は、
ユーザが予め定められた精算機を訪問したことを検出したことに応じて、前記ユーザを撮影した映像データから抽出された骨格情報の少なくとも一部に基づいて、少なくとも1つの動作IDの特定を開始し、
特定した前記少なくとも1つの動作IDを含む動作シーケンスが、予め登録されている登録動作シーケンスに対応するか否かを判定し、
判定結果に応じて予め定められた処理を実行する。
【0009】
本開示の一態様にかかる非一時的なコンピュータ可読媒体は、
ユーザが予め定められた精算機を訪問したことを検出したことに応じて、前記ユーザを撮影した映像データから抽出された骨格情報の少なくとも一部に基づいて、少なくとも1つの動作IDの特定を開始する動作特定処理と、
特定した前記少なくとも1つの動作IDを含む動作シーケンスが、予め登録されている登録動作シーケンスに対応するか否かを判定する判定処理と、
判定結果に応じて予め定められた処理を実行する処理制御処理と
をコンピュータに実行させるためのプログラムが格納される。
【発明の効果】
【0010】
本開示により、精算機に関連する不正行為を好適に検出する動作検出システム、動作検出方法、及び非一時的なコンピュータ可読媒体を提供できる。
【図面の簡単な説明】
【0011】
【
図1】実施形態1にかかる動作検出システムの構成を示すブロック図である。
【
図2】実施形態1にかかる動作検出方法の流れを示すフローチャートである。
【
図3】実施形態2にかかる動作検出システムの全体構成を示す図である。
【
図4】実施形態2にかかるサーバ及び端末装置の構成を示すブロック図である。
【
図5】実施形態2にかかる映像データに含まれるフレーム画像から抽出された骨格情報を示す図である。
【
図6】実施形態2にかかる映像データに含まれるフレーム画像から抽出された骨格情報を示す図である。
【
図7】実施形態2にかかる端末装置による映像データの送信方法の流れを示すフローチャートである。
【
図8】実施形態2にかかるサーバによる登録動作ID及び登録動作シーケンスの登録方法の流れを示すフローチャートである。
【
図9】実施形態2にかかる登録動作を説明するための図である。
【
図10】実施形態2にかかる正常動作シーケンスを説明するための図である。
【
図11】実施形態2にかかる不正動作シーケンスを説明するための図である。
【
図12】実施形態2にかかるサーバによる動作検出方法の流れを示すフローチャートである。
【
図13】実施形態3にかかるサーバ及び端末装置の構成を示すブロック図である
【
図14】実施形態3にかかる不正動作シーケンスを説明するための図である。
【
図15】実施形態4にかかるサーバ及び端末装置の構成を示すブロック図である
【
図16】実施形態4にかかるサーバによる動作検出方法の流れを示すフローチャートである。
【発明を実施するための形態】
【0012】
以下、実施形態を通じて本開示を説明するが、請求の範囲にかかる開示を以下の実施形態に限定するものではない。また、実施形態で説明する構成の全てが課題を解決するための手段として必須であるとは限らない。各図面において、同一の要素には同一の符号が付されており、必要に応じて重複説明は省略されている。
【0013】
<実施形態1>
まず、本開示の実施形態1について説明する。
図1は、実施形態1にかかる動作検出システム10の構成を示すブロック図である。動作検出システム10は、店舗の精算機を訪問したユーザによる、精算機に関連する不正行為を検出するコンピュータシステムである。精算機は、操作者の操作に基づいて金銭処理を実行する装置である。動作検出システム10は、動作特定部18と、判定部20と、処理制御部21とを備える。
【0014】
動作特定部18は、動作特定手段とも呼ばれる。動作特定部18は、ユーザが予め定められた精算機を訪問したことを検出したことに応じて、ユーザを撮影した映像データから抽出された骨格情報に基づいて、動作IDの特定を開始する。動作IDは、動作を識別する情報である。1の動作IDは、「かごから商品を出す」、「商品をスキャンする」又は「商品をかごに入れる」といった個別動作を識別してよい。また1の動作IDは、「かごから商品を出し、商品をスキャンし、商品をかごに入れる」という、複数の個別動作が組み合わさった一連の動作を識別してもよい。そして動作特定部18が映像データから特定する動作IDは、1つであってもよいし、複数であってもよい。尚、動作特定部18は、映像データから抽出された骨格情報の全てに基づいて動作IDを特定してもよいし、一部に基づいて動作IDを特定してもよい。
【0015】
ここで「ユーザが精算機を訪問したこと」は、開始トリガとも呼ばれる。開始トリガの検出は、精算機周辺の風景を撮影するカメラの映像から人物領域を検出したことであってよい。特に、開始トリガの検出は、同一人物として認識される人物領域を所定時間検出したことであってよい。また、開始トリガは、所定の載置台に商品を入れたかごが置かれたことを、カメラの映像又は荷重センサの計測値から検出したことであってもよい。また、開始トリガの検出は、精算開始ボタンが押されたことを示す操作信号を検出したことであってもよい。また、開始トリガの検出は、精算開始の音声を取得したことであってもよい。
【0016】
そして、動作特定部18は、ユーザが精算機から去ったことを検出したことに応じて、動作IDの特定を終了してよい。「ユーザが精算機から去ったこと」は、終了トリガとも呼ばれる。終了トリガの検出は、精算機の周辺の風景を撮影するカメラの映像から人物領域が検出されなくなったことであってよい。特に、終了トリガの検出は、開始トリガ以降、同一人物として認識されていた人物領域が所定時間検出されなくなったことであってよい。また、終了トリガの検出は、所定の載置台に置かれたかごからスキャン前商品がなくなったことを、カメラの映像又は荷重センサの計測値から検出したことであってもよい。また、終了トリガの検出は、精算終了ボタンが押されたことを示す操作信号を検出したことであってもよい。また、終了トリガの検出は、精算完了の音声を取得したことであってもよい。
【0017】
判定部20は、判定手段とも呼ばれる。判定部20は、特定した少なくとも1つの動作IDを含む動作シーケンスが、登録動作シーケンスに対応するか否かを判定する。登録動作シーケンスは、精算機に関連する正常行為を定めたものであり、その構成は、動作シーケンステーブル(不図示)に予め登録されている。登録動作シーケンスは、動作データベース(DB)(不図示)に予め登録されている動作IDである登録動作IDを1又は複数含む。尚、登録動作シーケンスが複数の登録動作IDを含む場合は、登録動作シーケンスは、登録動作IDの組み合わせと、各登録動作IDが行われる時系列順序の情報とを含む。例えば、登録動作シーケンスは、複数の登録動作IDを時系列で含んで構成される。
【0018】
処理制御部21は、処理制御手段とも呼ばれる。処理制御部21は、上記判定の結果に応じて予め定められた処理を実行する。予め定められた処理とは、ユーザに警告情報を報知することであってもよいし、店舗のスタッフに警告情報を報知することであってもよいし、上記動作シーケンスが登録動作シーケンスに対応しなかった旨を記録することであってもよい。
【0019】
図2は、実施形態1にかかる動作検出方法の流れを示すフローチャートである。まず動作検出システム10は、ユーザが精算機を訪問したか否かを判定する(S10)。つまり、動作検出システム10は、開始トリガを検出したか否かを判定する。そしてユーザが精算機を訪問したと判定した場合(S10でYes)、動作特定部18は、映像データから抽出された骨格情報に基づく動作IDの特定を開始する(S11)。判定部20は、S11で特定した動作IDを含む動作シーケンスが登録動作シーケンスに対応するか否かを判定する(S12)。判定部20は、上記動作シーケンスが登録動作シーケンスに対応すると判定した場合(S12でYes)、正常行為が行われたとして、処理を終了する。一方、判定部20は、上記動作シーケンスが登録動作シーケンスに対応すると判定しなかった場合(S12でNo)、不正行為が行われたとして、処理をS13に進める。そして処理制御部21は、所定の処理を実行して(S13)、処理を終了する。
【0020】
このように実施形態1によれば、動作検出システム10は、精算機を訪問したユーザの動作の流れが正常か否かを判定することにより、精算機に関連する不正行為を検出する。したがって、スタッフが少ない又はいない店舗においても、ユーザの不正行為を自動検出できる。
【0021】
ここで、動作検出システム10では、動作の特定は、ユーザが精算機を訪問することを待って行われるため、処理負荷を軽減し、処理するデータ量を軽減できる。また、動作検出システム10は、ユーザが精算機から去った場合に動作の特定を終了するため、上述した効果がさらに顕著に得られる。これにより、動作検出システム10は、精算機に関連する不正行為を好適に検出できる。
【0022】
尚、動作検出システム10では、動作の特定に骨格情報を用いるため、具体的な画素情報を保持する必要がない。したがって、プライバシー性を確保することができる。
【0023】
<実施形態2>
次に、本開示の実施形態2について説明する。
図3は、実施形態2にかかる動作検出システム1の全体構成を示す図である。動作検出システム1は、精算機50を訪問したユーザUを監視し、不正行為を検出したことに応じて、所定の処理を実行するコンピュータシステムである。
【0024】
一例として、ユーザUが店舗の精算機50で会計をする場合の正常の流れは以下の通りである。
(1)まずユーザUは、店舗の商品棚から持ち出した商品をかごに入れ、会計時に精算機50を訪問する。(2)ユーザUは、スキャン前かご60の載置台にかごを置く。(3)ユーザUは、スキャン前かご60から商品を取り出す。(4)精算機50のハンドスキャナSを商品のバーコードにかざして、商品をスキャンする。(5)ユーザUは、スキャンした商品を、スキャン済かご70に入れる。(6)ユーザUは、スキャン前かご60からスキャン前の商品がなくなるまで、(3)~(5)の動作を繰り返す。(7)スキャン終了後、ユーザUはスキャン終了ボタンを押す。(8)ユーザUは、スキャンした商品について会計を行う。
尚、スキャンした商品を入れる場所は、スキャン済かご70に限らない。例えばユーザUは、スキャンした商品を、個人のかばん(いわゆるマイバッグ)に入れてもよいし、任意の空きスペースに入れてもよい。またユーザUは、スキャンした商品をスキャン前かご60に戻してもよい。
【0025】
ここで、動作検出システム1は、サーバ100と、端末装置200と、骨格用カメラ300とを備える。サーバ100及び端末装置200は、ネットワークNを介して通信可能に接続されている。ネットワークNは、有線であっても無線であってもよい。
【0026】
骨格用カメラ300は、精算機50の前に立ったユーザUを撮影し、ユーザUを監視するカメラである。骨格用カメラ300は、精算機50の前に立ったユーザUの身体の少なくとも一部を撮影できる位置及び角度に配設されている。本実施形態2では、骨格用カメラ300は、ユーザUの上半身を撮影するように構成される。
【0027】
端末装置200は、骨格用カメラ300から映像データを取得し、映像データを、ネットワークNを介してサーバ100に送信する。また端末装置200は、サーバ100がユーザUの不正行為を検出したことを示す警告情報を受信し、警告情報を表示部203又は音声出力部204を用いて出力する。端末装置200の表示部203は、ユーザU又は店舗のスタッフが視認しやすい位置に設置されてよい。また端末装置200の音声出力部204は、ユーザU又は店舗のスタッフが音声を聞き取りやすい位置に設置されてよい。
【0028】
サーバ100は、端末装置200から受信した映像データに基づいて、ユーザUによる、精算機50に関連する不正行為を検出するコンピュータ装置である。サーバ100は、不正行為を検出した場合、ネットワークNを介して、端末装置200に警告情報を送信する。
【0029】
図4は、実施形態2にかかるサーバ100及び端末装置200の構成を示すブロック図である。
【0030】
(端末装置200)
端末装置200は、通信部201と、制御部202と、表示部203と、音声出力部204とを備える。
【0031】
通信部201は、通信手段とも呼ばれる。通信部201は、ネットワークNとの通信インタフェースである。また、通信部201は、骨格用カメラ300と接続されており、骨格用カメラ300から所定の時間間隔で映像データを取得する。
【0032】
制御部202は、制御手段とも呼ばれる。制御部202は、端末装置200が有するハードウェアの制御を行う。例えば、制御部202は、開始トリガを検出した場合、骨格用カメラ300から取得した映像データをサーバ100に送信し始める。開始トリガの検出は、上述の「ユーザが精算機を訪問したことを検出した」ことを指す。また例えば、制御部202は、終了トリガを検出した場合、骨格用カメラ300から取得した映像データをサーバ100に送信することを終了する。終了トリガの検出は、上述の「ユーザUが精算機50から去ったことを検出した」ことを指す。
【0033】
そして制御部202は、通信部201がサーバ100から警告情報を受信した場合、警告情報を表示部203に表示させる。また制御部202は、警告情報を音声出力部204に出力させてもよい。
【0034】
表示部203は、表示装置である。音声出力部204は、スピーカを含む音声出力装置である。
【0035】
(サーバ100)
サーバ100は、登録情報取得部101、登録部102、動作DB103、動作シーケンステーブル104、画像取得部105、抽出部107、動作特定部108、生成部109、判定部110、及び処理制御部111を備える。
【0036】
登録情報取得部101は、登録情報取得手段とも呼ばれる。登録情報取得部101は、端末装置200からの動作登録要求により、又はサーバ100の管理者の操作により、複数の登録用映像データを取得する。本実施形態2では、各登録用映像データは、人物の正常行為又は不正行為に含まれる個別動作(例えば、かごから商品を出す動作)を示す映像データである。尚、本実施形態2では、登録用映像データは、複数のフレーム画像を含む動画であるが、静止画(1のフレーム画像)であってもよい。
【0037】
また登録情報取得部101は、端末装置200からのシーケンス登録要求により、又はサーバ100の管理者の操作により、複数の登録動作ID及び一連の行為においてその動作が行われる時系列順序の情報を取得する。
【0038】
登録情報取得部101は、これら取得した情報を、登録部102に供給する。
【0039】
登録部102は、登録手段とも呼ばれる。まず登録部102は、動作登録要求に応じて、動作登録処理を実行する。具体的には、登録部102は、後述する抽出部107に登録用映像データを供給し、登録用映像データから抽出された骨格情報を登録骨格情報として抽出部107から取得する。そして登録部102は、取得した登録骨格情報を、登録動作IDに対応付けて動作DB103に登録する。
【0040】
次に登録部102は、シーケンス登録要求に応じてシーケンス登録処理を実行する。具体的には、登録部102は、登録動作IDを、時系列順序の情報に基づいて時系列順に並べて、登録動作シーケンスを生成する。このとき登録部102は、シーケンス登録要求が正常動作にかかる場合、生成した登録動作シーケンスを、正常動作シーケンスNSとして動作シーケンステーブル104に登録する。一方、登録部102は、シーケンス登録要求が不正動作にかかる場合、生成した登録動作シーケンスを、不正動作シーケンスISとして動作シーケンステーブル104に登録する。
【0041】
動作DB103は、正常行為に含まれる動作の各々に対応する登録骨格情報を、登録動作IDに対応付けて記憶する記憶装置である。また動作DB103は、不正行為に含まれる動作の各々に対応する登録骨格情報を、登録動作IDに対応付けて記憶してもよい。
【0042】
動作シーケンステーブル104は、正常動作シーケンスNSと、不正動作シーケンスISとを記憶する。本実施形態2では、動作シーケンステーブル104は、複数の正常動作シーケンスNSと、複数の不正動作シーケンスISとを記憶する。
【0043】
画像取得部105は、画像取得手段とも呼ばれる。画像取得部105は、精算機50の運用時に、端末装置200から、骨格用カメラ300が撮影した映像データを取得する。つまり、画像取得部105は、開始トリガが検出されたことに応じて、映像データを取得する。画像取得部105は、取得した映像データに含まれるフレーム画像を抽出部107に供給する。
【0044】
抽出部107は、抽出手段とも呼ばれる。抽出部107は、映像データに含まれるフレーム画像から人物の身体の画像領域(身体領域)を検出し、身体画像として抽出する(例えば、切り出す)。そして抽出部107は、機械学習を用いた骨格推定技術を用いて、身体画像において認識される人物の関節等の特徴に基づき人物の身体の少なくとも一部の骨格情報を抽出する。骨格情報は、関節等の特徴的な点である「キーポイント」と、キーポイント間のリンクを示す「ボーン(ボーンリンク)」とから構成される情報である。抽出部107は、例えばOpenPose等の骨格推定技術を用いてよい。抽出部107は、抽出した骨格情報を動作特定部108に供給する。
【0045】
動作特定部108は、上述した動作特定部18の一例である。動作特定部108は、運用時に取得した映像データから抽出した骨格情報を、動作DB103を用いて動作IDに変換する。これにより動作特定部108は、動作を特定する。具体的には、まず動作特定部108は、動作DB103に登録される登録骨格情報の中から、抽出部107で抽出した骨格情報との類似度が所定閾値以上である登録骨格情報を特定する。そして動作特定部108は、特定した登録骨格情報に対応付けられた登録動作IDを、取得したフレーム画像に含まれる人物に対応する動作IDとして特定する。
【0046】
ここで、動作特定部108は、1のフレーム画像に対応する骨格情報に基づいて1の行動IDを特定してもよいし、複数のフレーム画像の各々に対応する骨格情報の時系列データに基づいて1の行動IDを特定してもよい。動作特定部108は、複数のフレーム画像を用いて1の行動IDを特定する場合、動きが大きい骨格情報だけを抽出し、抽出した骨格情報と動作DB103の登録骨格情報とを照合してよい。動きが大きい骨格情報だけを抽出するとは、所定期間内に含まれる異なるフレーム画像の骨格情報の差分が所定量以上の骨格情報を抽出することであってよい。このように少ない照合で済むため、計算負荷を軽減することができるとともに、登録骨格情報の量も少なくて済む。また人によって動作の持続時間が異なるところ、動きが大きい骨格情報だけを照合対象とするため、動作検出にロバスト性を持たせることができる。
【0047】
尚、動作IDの特定には、上述した方法の他に、様々な方法が考えられる。例えば動作IDで正解付けされた映像データを学習データとして学習させた動作推定モデルを用いて、対象となる映像データから動作IDを推定する方法が挙げられる。しかしながら、この学習データを集めることが困難であり、コストも高い。これに対して本実施形態2では、動作IDの推定に骨格情報を用い、動作DB103を活用して予め登録された骨格情報と比較する。したがって本実施形態2では、サーバ100は、より容易に動作IDを特定することができる。
【0048】
生成部109は、生成手段とも呼ばれる。生成部109は、動作特定部108で特定された複数の動作IDに基づいて動作シーケンスを生成する。動作シーケンスは、複数の動作IDを時系列で含むように構成される。生成部109は、生成した動作シーケンスを、判定部110に供給する。
【0049】
判定部110は、上述した判定部20の一例である。判定部110は、生成した動作シーケンスが、動作シーケンステーブル104に登録された正常動作シーケンスNSのいずれかと一致(対応)するかを判定する。
【0050】
処理制御部111は、上述した処理制御部21の一例である。処理制御部111は、生成された動作シーケンスが、正常動作シーケンスNSのいずれにも対応しないと判定された場合、端末装置200に警告情報を出力する。
【0051】
尚、判定部110は、上記動作シーケンスが正常動作シーケンスNSのいずれにも対応しないと判定した場合、不正動作シーケンスのいずれに対応するかを判定してよい。この場合、処理制御部111は、不正動作シーケンスの種別に応じて予め定められる情報を、端末装置200に出力してよい。一例として、不正動作シーケンスの種別に応じて、警告情報を表示する場合の表示態様(文字のフォント、色、若しくは太さ又は点滅等)を変えてもよいし、警告情報を音声出力する場合の音量又は音声自体を変えてもよい。これにより、店舗のスタッフは、不正行為の内容を認識し、不正行為に対して迅速かつ適切に対処できる。また処理制御部111は、不正動作が行われた時刻、場所、及び映像を、不正動作シーケンスの種別の情報とともに履歴情報として記録してもよい。これにより、店舗のスタッフは、不正行為の内容を認識し、不正行為に対する予防策を適切に講じることが可能となる。
【0052】
図5は、実施形態2にかかる映像データに含まれるフレーム画像400から抽出された骨格情報を示す図である。フレーム画像400には、ハンドスキャナSを用いて商品P1のスキャン動作を行うユーザUを正面から撮影した場合のユーザUの上半身の画像領域が含まれている。また
図5に示す骨格情報には、上半身から検出された、複数のキーポイント及び複数のボーンが含まれている。一例として、
図5では、キーポイントとして、右耳A11、左耳A12、右目A21、左目A22、鼻A3、首A4、右肩A51、左肩A52、右肘A61、左肘A62、右手A71、及び左手A72が示されている。
【0053】
サーバ100は、このような骨格情報と、上半身に対応する登録骨格情報とを比較し、これらが類似するか否かを判定することで、各動作を特定する。例えばスキャン動作の特定は、右手及び左手が接近したかが重要となり、「かごから商品を出す」又は「商品をかごに入れる」動作は、フレーム画像400における右手及び左手の位置が重要となる。したがってサーバ100は、右手A71及び左手A72の位置に重みをつけて類似度を算出してよい。またサーバ100は、右手A71及び左手A72に加えて、右肩A51、左肩A52、右肘A61及び左肘A62に重みをつけて類似度を算出してもよい。
【0054】
尚、骨格用カメラ300は、ユーザUの少なくとも手領域を上面から撮影するものであってもよい。
図6は、実施形態2にかかるフレーム画像500から抽出された骨格情報を示す図である。フレーム画像500は、ハンドスキャナSを用いて商品P1のスキャン動作を行うユーザUを上面から撮影した場合のユーザUの手領域の画像領域が含まれている。そして一例として、
図6では、キーポイントとして、右手A71及び左手A72が示されている。そしてサーバ100は、フレーム画像500から抽出した骨格情報と、手領域に対応する登録骨格情報とを比較して、これらが類似するか否かを判定することで、各動作を判定してもよい。
【0055】
図7は、実施形態2にかかる端末装置200による映像データの送信方法の流れを示すフローチャートである。まず端末装置200の制御部202は、開始トリガを検出したか否かを判定する(S20)。制御部202は、開始トリガを検出したと判定した場合(S20でYes)、サーバ100への、骨格用カメラ300から取得した映像データの送信を開始する(S21)。一方、制御部202は、開始トリガを検出したと判定しない場合(S20でNo)、S20に示す処理を繰り返す。
【0056】
次に、端末装置200の制御部202は、終了トリガを検出したか否かを判定する(S22)。制御部202は、終了トリガを検出したと判定した場合(S22でYes)、サーバ100への、骨格用カメラ300から取得した映像データの送信を終了する(S23)。一方、制御部202は、終了トリガを検出したと判定しない場合(S22でNo)、映像データの送信を実行しながら、S22に示す処理を繰り返す。
【0057】
このように、映像データの送信期間を、所定の開始トリガと終了トリガの間に限定することで、通信データ量を最低限に抑えることができる。また期間外においては、サーバ100における動作検出処理を省略できるため、計算リソースを節約できる。
【0058】
図8は、実施形態2にかかるサーバ100による登録動作ID及び登録動作シーケンスの登録方法の流れを示すフローチャートである。まずサーバ100の登録情報取得部101は、登録用映像データ及び登録動作IDを含む動作登録要求を端末装置200から受信する(S30)。次に、登録部102は、登録用映像データを抽出部107に供給する。登録用映像データを取得した抽出部107は、登録用映像データに含まれるフレーム画像から身体画像を抽出する(S31)。次に、抽出部107は、身体画像から骨格情報を抽出する(S32)。次に、登録部102は、抽出部107から骨格情報を取得し、取得した骨格情報を登録骨格情報として、登録動作IDに対応付けて動作DB103に登録する(S33)。尚、登録部102は、身体画像から抽出された全ての骨格情報を登録骨格情報としてもよいし、一部の骨格情報(例えば肩、肘及び手の骨格情報)のみを登録骨格情報としてもよい。
【0059】
図9は、実施形態2にかかる登録動作を説明するための図である。一例として、動作DB103には、「A」~「E」の登録動作IDを有する5つの登録動作の登録骨格情報が記憶されていてよい。登録動作「A」は、スキャン前かご60から商品を取り出す動作である。登録動作「B」は、ハンドスキャナSを用いて商品をスキャンする動作である。登録動作「C」は、スキャン済かご70に商品を入れる動作である。登録動作「D」は、スキャン終了ボタンを押す動作である。登録動作「E」は、精算機に数量を入力する動作である。
【0060】
図8に戻り、説明を続ける。次に、登録情報取得部101は、複数の登録動作ID及び各動作の時系列順序の情報を含むシーケンス登録要求を端末装置200から受信する(S34)。次に、登録部102は、時系列順序の情報に基づいて登録動作IDを並べた登録動作シーケンス(正常動作シーケンスNS又は不正動作シーケンスIS)を、動作シーケンステーブル104に登録する(S35)。そしてサーバ100は、処理を終了する。
【0061】
図10は、実施形態2にかかる正常動作シーケンスNSを説明するための図である。一例として、動作シーケンステーブル104には、「11」~「14」の正常動作シーケンスIDを有する4つの正常動作シーケンスNSが少なくとも含まれていてよい。正常動作シーケンス「11」は、1回スキャンしてスキャンが終了するシーケンス(A→B→C→D)である。正常動作シーケンス「12」は、2回スキャンしてスキャンが終了するシーケンス(A→B→C→A→B→C→D)である。正常動作シーケンス「13」は、1回スキャンして、数量を入力するシーケンス(A→B→C→E→D)である。正常動作シーケンス「14」は、1回スキャンして数量を入力した後、もう1回スキャンして、スキャンが終了するシーケンス(A→B→C→E→A→B→C→D)である。
【0062】
図11は、実施形態2にかかる不正動作シーケンスISを説明するための図である。動作シーケンステーブル104には、「21」~「22」の不正動作シーケンスIDを有する2つの不正動作シーケンスNSが少なくとも含まれていてよい。不正動作シーケンス「21」は、商品をスキャンしないで、スキャン前かご60からスキャン済かご70に入れる動作を含むシーケンス(?→A→C→?)である。尚、「?」は、任意の動作を示す。また、不正動作シーケンス「22」は、開始トリガと終了トリガとの間に、登録動作IDのいずれも特定されなかったシーケンスであり、例えばユーザUが精算機50を立ち寄ったが何もせず立ち去った場合を示している。
【0063】
図12は、実施形態2にかかるサーバ100による動作検出方法の流れを示すフローチャートである。まずサーバ100の画像取得部105は、端末装置200から映像データの取得を開始した場合(S40でYes)、抽出部107は、映像データに含まれるフレーム画像から身体画像を抽出する(S41)。次に抽出部107は、身体画像から骨格情報を抽出する(S42)。動作特定部108は、抽出した骨格情報の少なくとも一部と、動作DB103に登録されている各登録骨格情報との間の類似度を算出し、類似度が所定閾値以上の登録骨格情報に対応付けられた登録動作IDを、動作IDとして特定する(S43)。次に、生成部109は、動作IDを動作シーケンスに追加する。具体的には、生成部109は、初回サイクルでは、S43で特定した動作IDを動作シーケンスとし、次回以降のサイクルでは、S43で特定した動作IDを、既に生成した動作シーケンスに追加する。そしてサーバ100は、スキャンが終了したか、又は映像データの取得が終了したか否かを判定する(S45)。尚、サーバ100は、現サイクルのS43で特定された動作が登録動作ID「D」の動作である場合、スキャンが終了したと判定してよい。サーバ100は、スキャンが終了したか、又は映像データの取得が終了したと判定した場合(S45でYes)、処理をS46に進め、そうでない場合(S45でNo)、S41に戻し、動作シーケンスの追加処理を繰り返す。
【0064】
S46において、判定部110は、動作シーケンスが動作シーケンステーブル104のいずれかの正常動作シーケンスNSに対応するか否かを判定する。判定部110は、動作シーケンスが正常動作シーケンスNSに対応する場合(S46でYes)、処理をS49に進め、対応しない場合(S46でNo)、処理をS47に進める。
【0065】
S47において、判定部110は、動作シーケンスが動作シーケンステーブル104の不正動作シーケンスISのいずれに対応するかを判定することにより、不正動作の種別を判定する。そして処理制御部111は、不正動作の種別に応じた警告情報を、端末装置200に送信する(S48)。そしてサーバ100は、処理をS49に進める。
【0066】
S49において、サーバ100は、映像データの取得が終了したか否かを判定する。サーバ100は、映像データの取得が終了したと判定した場合(S49でYes)、処理を終了する。一方、サーバ100は、映像データの取得が終了したと判定しない場合(S49でNo)、処理をS41に戻し、動作シーケンスの追加処理を繰り返す。処理をS41に戻すことで、スキャン終了後からユーザUが精算機50を去るまでの間の動作を監視することができる。
【0067】
このように実施形態2によれば、サーバ100は、精算機50を訪問したユーザUの動作の流れを示した動作シーケンスを、正常動作シーケンスNSと比較することで、ユーザUの動作が正常か否かを判定する。これにより、精算機50を用いた操作の流れに即した複数の正常動作シーケンスNSを事前に登録しておくことで、実態に即した不正動作の検出が実現できる。尚、実施形態2についても、実施形態1と同様の効果を奏する。
【0068】
<実施形態3>
次に、本開示の実施形態3について説明する。実施形態3は、所定の動作の特定に、映像データに加えて音声データを用いることに特徴を有する。例えば、所定の動作はスキャン動作である。
【0069】
図13は、実施形態3にかかるサーバ100a及び端末装置200aの構成を示すブロック図である。端末装置200aは、収音部205を含む点で端末装置200と相違する。収音部205は、精算機50の周辺の音声を収集する。制御部202は、映像データをサーバ100aに送信する場合、音声データもサーバ100aに送信する。
【0070】
サーバ100aは、動作特定部108に代えて、音声取得部112及び動作特定部108aを備える。音声取得部112は、端末装置200から音声データを取得し、動作特定部108aに供給する。
【0071】
動作特定部108aは、抽出部107で抽出された骨格情報、動作DB103における登録骨格情報、及び音声取得部112が取得した音声データに基づいて、動作IDを特定する。例えば動作特定部108aは、抽出部107で抽出された骨格情報と、所定の動作を示す登録動作IDの登録骨格情報との類似度が所定閾値以上である場合、音声データに所定の音声が含まれるか否かを判定する。そして動作特定部108aは、音声データに所定の音声が含まれる場合は、上記動作を示す登録動作IDを、動作IDとして特定する。一方、動作特定部108aは、所定の音声が含まれない場合は、上記動作を示す登録動作IDを、動作IDとして特定しない。
【0072】
例えば所定の動作とは、商品をスキャンする動作であってよい。この場合、動作特定部108aは、抽出した骨格情報と、スキャン動作の登録骨格情報との類似度が所定閾値以上である場合、正常にスキャンされた場合に発生する電子音が音声データに含まれるか否かを判定する。そして動作特定部108aは、電子音が含まれなかった場合は、スキャン動作の登録動作IDを動作IDとして特定しない。この場合、動作特定部108aは、ユーザUがスキャンのフリだけして実際にはスキャンしていない動作「B’」を特定してよい。この動作は、例えば商品のバーコードが無い面にハンドスキャナSをかざす動作が含まれる。
【0073】
図14は、実施形態3にかかる不正動作シーケンスを説明するための図である。
図14は、不正動作シーケンス「21」~「22」に加えて、不正動作シーケンス「23」が追加されている。不正動作シーケンス「23」は、ユーザUがスキャンのフリだけして実際にはスキャンしていない動作「B’」を含むシーケンス(?→A→B’→C→?)である。
【0074】
このようにサーバ100aが骨格情報と音声とを組み合わせて動作を特定することで、検出したい不正動作のバリエーションを増やすことができる。
【0075】
<実施形態4>
次に、本開示の実施形態4について説明する。実施形態4は、サーバが、ユーザUが持ち出した商品の点数(商品数)に基づいて動作シーケンスを判定することに特徴を有する。
【0076】
図15は、実施形態4にかかるサーバ100b及び端末装置200の構成を示すブロック図である。端末装置200は、骨格用カメラ300に加えて、商品用カメラ350からも映像データを取得する。商品用カメラ350は、ユーザUが持ち出した商品を撮影するカメラである。例えば商品用カメラ350は、スキャン前かご60及びスキャン済かご70の少なくとも一方を上方から撮影できる位置に配設されてよい。
【0077】
サーバ100bは、判定部110に代えて、商品数特定部113及び判定部110bを備える点でサーバ100と相違する。
【0078】
商品数特定部113は、商品数特定手段とも呼ばれる。商品数特定部113は、商品用カメラ350の映像を端末装置200から取得し、商品用カメラ350の映像に基づいて、物体検出手法により商品数を特定する。例えば商品用カメラ350がスキャン前かご60の上方から撮影するカメラである場合、商品数特定部113は、開始トリガに応じて取得した商品用カメラ350の映像から、商品数を特定してよい。また例えば商品用カメラ350がスキャン済かご70の上方から撮影するカメラである場合、商品数特定部113は、終了トリガに応じて取得した商品用カメラ350の映像から、商品数を特定してよい。この場合、商品数特定部113は、終了トリガに代えて、スキャン前かご60の重量が所定閾値未満となった場合に取得した商品用カメラ350の映像を、商品数の特定に用いてもよい。
【0079】
判定部110bは、生成部109が生成した動作シーケンスが、登録動作シーケンスのうち、商品数に応じた登録動作シーケンスに対応するか否かを判定する。例えば、商品数が2であれば、生成した動作シーケンスと、商品数2に応じた正常動作シーケンスNS(
図10の正常動作シーケンス「12」又は「13」)とを比較し、生成した動作シーケンスに対応する正常動作シーケンスNSがあるか否かを判定する。
【0080】
図16は、実施形態4にかかるサーバ100bによる動作検出方法の流れを示すフローチャートである。
図16に示すステップは、
図12に示すS46に代えて、S50~S51を含む。
【0081】
S45においてサーバ100bは、スキャンが終了したか、又は映像データの取得が終了したと判定した場合(S45でYes)、処理をS50に進める。S50において、商品数特定部113は、商品用カメラ350の映像に基づいて商品数を特定し、動作シーケンステーブル104に含まれる正常動作シーケンスNSのうち、特定した商品数に応じた正常動作シーケンスNSを特定する。そしてS51において、判定部110bは、動作シーケンスが、特定した正常動作シーケンスNSに対応するか否かを判定する。判定部110bは、動作シーケンスが、特定した正常動作シーケンスNSに対応する場合(S51でYes)、処理をS49に進め、対応しない場合(S51でNo)、処理をS47に進める。
【0082】
このように実施形態4によれば、サーバ100bは、動作シーケンスの判定に商品数を用いるため、より詳細な判定が可能となり、判定精度が向上する。これにより、例えば、ユーザUが複数の商品を手に持って1点のみをスキャンした場合にも、不正動作として検出することが可能となる。
【0083】
なお、本開示は上記実施形態に限られたものではなく、趣旨を逸脱しない範囲で適宜変更することが可能である。例えば実施形態3と実施形態4を組み合わせることも可能である。
【0084】
また例えば、上述の実施形態2~4では、登録情報取得部101は、動作登録時に個別動作を示す登録用映像データを取得し、登録部102は、登録用映像データごとに骨格情報と動作IDとを動作DB103に登録した。しかし、登録情報取得部101は、複数の個別動作を含む一連の動作(例えば、かごから商品を出し、商品をスキャンし、商品をかごに入れる動作)を示す登録用映像データと、各個別動作の出現順序の情報とを取得してよい。そして登録部102は、登録用映像データに含まれる各個別動作について、骨格情報を抽出し、骨格情報を、各個別動作に対応する動作IDとともに動作DB103に登録してよい。
【0085】
また、上述の実施形態2~4では、サーバ100,100a,100bが抽出処理、動作特定処理、シーケンス生成処理、及び判定処理を行うとした。しかし、処理の一部又は全部を、端末装置200が行ってもよいし、ネットワークNに接続された外部装置(不図示)が行ってもよい。
【0086】
上述の実施形態では、ハードウェアの構成として説明したが、これに限定されるものではない。本開示は、任意の処理を、プロセッサにコンピュータプログラムを実行させることにより実現することも可能である。
【0087】
上述の例において、プログラムは、コンピュータに読み込まれた場合に、実施形態で説明された1又はそれ以上の機能をコンピュータに行わせるための命令群(又はソフトウェアコード)を含む。プログラムは、非一時的なコンピュータ可読媒体又は実体のある記憶媒体に格納されてもよい。限定ではなく例として、コンピュータ可読媒体又は実体のある記憶媒体は、random-access memory(RAM)、read-only memory(ROM)、フラッシュメモリ、solid-state drive(SSD)又はその他のメモリ技術、CD-ROM、digital versatile disc(DVD)、Blu-ray(登録商標)ディスク又はその他の光ディスクストレージ、磁気カセット、磁気テープ、磁気ディスクストレージ又はその他の磁気ストレージデバイスを含む。プログラムは、一時的なコンピュータ可読媒体又は通信媒体上で送信されてもよい。限定ではなく例として、一時的なコンピュータ可読媒体又は通信媒体は、電気的、光学的、音響的、またはその他の形式の伝搬信号を含む。
【符号の説明】
【0088】
1,1b,10 動作検出システム
18 動作特定部
20 判定部
21 処理制御部
50 精算機
60 スキャン前かご
70 スキャン済かご
100,100a,100b サーバ
101 登録情報取得部
102 登録部
103 動作DB
104 動作シーケンステーブル
105 画像取得部
107 抽出部
108,108a 動作特定部
109 生成部
110,110b 判定部
111 処理制御部
112 音声取得部
113 商品数特定部
200,200a 端末装置
201 通信部
202 制御部
203 表示部
204 音声出力部
205 収音部
300 骨格用カメラ
350 商品用カメラ
400,500 フレーム画像
S ハンドスキャナ
N ネットワーク