JP7663178B2 - 無人店舗の商品を管理する管理サーバ及び管理方法 - Google Patents
無人店舗の商品を管理する管理サーバ及び管理方法 Download PDFInfo
- Publication number
- JP7663178B2 JP7663178B2 JP2021093705A JP2021093705A JP7663178B2 JP 7663178 B2 JP7663178 B2 JP 7663178B2 JP 2021093705 A JP2021093705 A JP 2021093705A JP 2021093705 A JP2021093705 A JP 2021093705A JP 7663178 B2 JP7663178 B2 JP 7663178B2
- Authority
- JP
- Japan
- Prior art keywords
- product
- information
- customer
- weight
- hand
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q30/00—Commerce
- G06Q30/06—Buying, selling or leasing transactions
-
- G—PHYSICS
- G16—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR SPECIFIC APPLICATION FIELDS
- G16Y—INFORMATION AND COMMUNICATION TECHNOLOGY SPECIALLY ADAPTED FOR THE INTERNET OF THINGS [IoT]
- G16Y40/00—IoT characterised by the purpose of the information processing
- G16Y40/10—Detection; Monitoring
Landscapes
- Business, Economics & Management (AREA)
- Finance (AREA)
- Engineering & Computer Science (AREA)
- Accounting & Taxation (AREA)
- Economics (AREA)
- Development Economics (AREA)
- Computing Systems (AREA)
- Marketing (AREA)
- Strategic Management (AREA)
- Physics & Mathematics (AREA)
- General Business, Economics & Management (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Description
また、関連する背景技術として、国際公開第2015/173869号(特許文献2)がある。この公報には、「検出部(52)は、商品の位置に応じて設定された第1の領域内で人の手を検知した後に、第1の領域と同じ領域又は第1の領域を包含する第2の領域内で人の手が検知されず、かつ、位置に応じて設定された商品の検知領域内で商品が検知されない場合に、商品がピックアップされたことを検出する。」と記載されている(要約参照)。
しかしながら、これらの特許文献では、算出された特徴点を用いるのみで、精度の高い商品ピックアップ判定を行うことができなかった。
上記した以外の課題、構成及び効果は、以下の実施形態の説明により明らかにされる。
本実施例は、無人店舗の商品を管理する商品管理システム1を想定する。顧客は、店舗に入店する際に、顧客のモバイル端末に表示された2次元バーコードや非接触型ICチップを入店管理端末にかざすことにより入店記録を行う。店舗内の商品棚に陳列された商品を手に取ることで、手に取った商品の情報や数が顧客のモバイル端末に表示され、店舗の外に出ることによって、商品の決済が完了する。
なお、無人であっても実施可能な仕組みの提供を想定するが、店舗は有人であっても構わない。
商品管理システム1は、店舗内の商品棚設置用フレーム2100内又は周辺に設置されたサイネージ端末103、位置検出用カメラセンサユニット104、骨格検出用カメラセンサユニット104a、重量センサユニット105、入店管理端末106を備え、管理サーバ101、決済処理サーバ107にネットワークを介して接続されている。この商品管理システム1にネットワーク介してモバイル端末102からアクセスを行う。なお、ネットワークは有線、無線を問わず、それぞれの端末はネットワークを介して情報を送受信することができる。
モバイル端末102は、顧客が保有するスマートフォン、タブレット、ウェアラブル端末などのモバイル端末であり、顧客が手に取った商品の情報が表示される。
カメラセンサユニット104は、複数のカメラデバイス506が接続されたカメラ管理端末530を有し、店舗内の顧客の移動軌跡(例えば歩行軌跡)を取得する。
カメラセンサユニット104aは、複数のカメラデバイス506aが接続されたカメラ管理端末530aを有し、店舗内の顧客の骨格の特徴部を取得する。なお、カメラ管理端末530とカメラ管理端末530aは別の端末としたが、1つの端末が両方の機能を備える構成であってもよい。
入店管理端末106は、顧客の保有するモバイル端末に表示された2次元バーコードや非接触型ICチップを読み取り、顧客のユーザ情報を特定する。
決済処理サーバ107は、管理サーバ101から顧客の取得した商品に対する決済処理依頼を受信し、顧客のユーザ情報に対応付けられた決済方法により決済処理を実行する。
本明細書では、各モジュールが、処理を行う主体(主語)として記載をしているが、実際には各種プログラムやアプリケーションなど(モジュール)を処理するプロセッサが処理を実行する。
管理サーバ101は、例えばクラウド上に配置されたサーバで構成される。
主記憶装置201には、各種モジュール(プログラムやアプリケーション)210が記憶されており、これらのプログラムやアプリケーションをプロセッサ203が実行することで管理サーバ101の各機能要素が実現される。
それぞれのモジュール及びその処理については後述する。
マスタDB220は、ユーザマスタ情報1400や商品マスタ情報1300等を記憶する。
各種情報記憶DB221は、カメラセンサユニット104、カメラセンサユニット104a、重量センサユニット105、及び入店管理端末106から送信される情報を記憶する、又は管理サーバ101内で処理、加工された各種情報を記憶する。
それぞれ記憶される情報については後述する。
モバイル端末102は、例えばスマートフォン、タブレット等の端末で構成される。
主記憶装置301には、商品購入管理モジュール310等のプログラムやアプリケーションが記憶されており、これらのプログラムやアプリケーションをプロセッサ303が実行することでモバイル端末102の各機能要素が実現される。
補助記憶装置302は、モバイル端末102に記憶されているユーザ管理情報320を記憶する。
サイネージ端末103は、例えばスマートフォン、タブレット、ノートPC、デスクトップPC、マイクロコンピュータ、シングルボードコンピュータ等の端末で構成される。シングルボードコンピュータとしては、例えばRaspberry Piを用いることができる。
主記憶装置401には、サイネージ情報表示モジュール410等のプログラムやアプリケーションが記憶されており、これらのプログラムやアプリケーションをプロセッサ403が実行することでサイネージ端末103の各機能要素が実現される。
サイネージ情報表示モジュール410は、管理サーバ101のサイネージ処理モジュール1202から表示指示を受信し、表示指示に対応するサイネージ情報420をディスプレイや電子ペーパー等の出力装置405に表示する。
又は、管理サーバ101から送信されるサイネージ情報を受信して表示する構成であってもよい。
複数のカメラデバイス506がネットワークを介してカメラ管理端末530と接続されている。カメラ管理端末530は、例えばデスクトップPC、マイクロコンピュータ、シングルボードコンピュータ、クラウド上のサーバ等で構成される。
主記憶装置501には、軌跡管理モジュール510等のプログラムやアプリケーションが記憶されており、これらのプログラムやアプリケーションをプロセッサ503が実行することでカメラ管理端末530の各機能要素が実現される。
図5の(B)は、骨格検出用カメラセンサユニット104aのハードウェア構成の例である。
複数のカメラデバイス506aがネットワークを介してカメラ管理端末530aと接続されている。カメラ管理端末530aは、例えばデスクトップPC、マイクロコンピュータ、シングルボードコンピュータ、クラウド上のサーバ等で構成される。
主記憶装置501aには、骨格検出モジュール510a等のプログラムやアプリケーションが記憶されており、これらのプログラムやアプリケーションをプロセッサ503aが実行することでカメラ管理端末530aの各機能要素が実現される。
また、複数のToFセンサやカメラを用いることにより、対象物の形状や3次元的な重なりをより高精度に判定することが可能となる。例えば、複数の顧客が同時に店舗内にいる場合のそれぞれの人物の重なりを判定したり、手の移動を検知したりすることができる。
また、この距離情報を時系列に蓄積することにより、センサ取得範囲における顧客の移動軌跡を取得し、軌跡情報520に蓄積する。具体的には、軌跡管理モジュール510は、複数のカメラデバイス506が軌跡を検知し始めた場合に、検知した人物に対して人物IDを付し、この人物の各時刻における位置情報を時系列に軌跡情報520に記憶する。これらの時系列情報を繋ぎ合わせることにより、特定の人物IDに対応する人物の移動軌跡を取得することができる。
骨格検出モジュール510aは、複数のカメラデバイス506aから取得した画像情報に対して画像解析を行って、人体の骨格モデルに基づいて特徴部を抽出し、特徴部情報520aに蓄積する。さらに、骨格検出モジュール510aは、検出した特徴部に基づいて、他の特徴部を演算により求めて、特徴部情報520aに蓄積してもよい。
骨格検出モジュール510aは、顧客の特徴部の情報を管理サーバ101に直接送信してもよい。または、骨格検出モジュール510aは、顧客の特徴部の情報をカメラ管理端末530の軌跡管理モジュール510に送信し、軌跡管理モジュール510側で検出した情報と顧客の特徴部の情報とを統合した後、カメラ管理端末530の軌跡管理モジュール510が管理モジュール管理サーバ101に送信してもよい。
複数の重量センサデバイス608がマイコン(マイクロコントローラ)710を介してデータ集約送信器630と接続されている。データ集約送信器630は、例えばデスクトップPC、マイクロコンピュータ、シングルボードコンピュータ、クラウド上のサーバ等で構成される。シングルボードコンピュータとしては、例えばRaspberry Piを用いることができる。
主記憶装置601には、マイコン710から受信した重量情報を処理し、管理サーバ101に送信するための各種モジュール610等のプログラムやアプリケーションが記憶されており、これらのプログラムやアプリケーションをプロセッサ603が実行することでデータ集約送信器630の各機能要素が実現される。
補助記憶装置602は、データ集約送信器630やマイコン710、重量センサデバイス608の設定情報や管理情報等のIoT機器管理情報620を記憶する。
商品棚には複数の重量センサデバイス608が設置されており、それぞれ重量センサデバイス608の上には商品カゴが設置されている。重量センサデバイス608は、商品カゴに乗せられた商品等の重量を測定し、またその重量の変化を検知するデバイスである。取得された重量データはA/D変換器720によりデジタル情報に変換され、マイコン710に送信される。
マイコン710は、受信した重量情報をBluetooth(登録商標)等の無線通信を利用してデータ集約送信器630に送信する。
重量情報2000は、項目2020に示す各項目の情報を有しており、フィールド名2030として例えばサンプル値2040のような値を有している。
重量情報2000は、商品カゴID2001、データ種別、重量2002、送信回数、状態2003、起動後経過時間、前回重量2004、遅延時間2005、状態変化有無2006等の項目を有する。
重量2002は商品カゴの中の重量をグラム単位で表示する。測定値からは商品カゴの重量が除かれた、内容物の重量を表示し、内容物が無い状態では0を示す。但し、商品カゴの重量が含まれる構成としても構わない。
送信回数は、マイコン710起動からのデータの送信回数を示す。送信回数を逐次カウントアップし、メモリがオーバーフローした場合には値を0に戻す。
起動後経過時間は、マイコン710起動時からの経過時間をミリ秒単位で表示する。1ミリ秒毎にカウントアップし、メモリがオーバーフローした場合には値を0に戻す。
前回重量2004は、前回測定時の重量をグラム単位で表示する。遅延時間2004は、状態2003がUNSTABLEからSTABLEに変化するまでの時間をミリ秒単位で表示する。
状態変化有無2006は、前回の測定から状態2003が変化したかどうかを示すフラグである。前回の測定から状態2003が変化した場合は1を、変化していない場合は0を示す。
マイコン710は、重量センサデバイス608からの重量データを常時受信するが、重量に変化が無い場合(変化量が閾値を超えない場合)には、10秒毎など定期的に重量データをデータ集約送信器630に送信する。この場合には、状態2003に「STABLE状態」を示す1をセットし、状態変化有無2006が「無し」を示す0をセットした重量2002を含む重量情報2000をデータ集約送信器630に送信する。
ここで、平均値からの偏差を用いる場合の他、単に前回重量と最新の重量との間の差分が、所定の閾値、例えば5gを超えた場合を状態が変化した場合としてもよい。
また、同様に、単に前回重量と最新の重量との間の差分が所定の閾値、例えば5g以下の場合に、重量データが安定しているSTABLE状態であると判定してもよい。
また、商品を取り上げた場合など、重量に変化が生じた場合には、そのタイミングで第1回目の重量情報2000が送信され、その重量が安定した後に第2回目の重量情報が送信されるようにしている。
また、商品を取り上げた瞬間に重量が安定するわけではなく、重量の値が振動し、数ミリ秒から数秒してから重量の値が安定する。
本実施例では、このように重量の変化が発生した時刻と、その値が安定する時刻との間に遅延が発生することを考慮し、重量情報を2回送ることで2段階の処理を実施することを可能にする。
一方、重量が安定した後の数値に基づく2回目の重量情報2000の送信に応じて、商品判定処理2800を実行することで、手に取った商品の数を正しく計測することができる。
例えば、本実施例では商品のあるべき場所と数量を把握しているため、商品が無くなりそうになれば欠品予報を送信しバックヤードのスタッフに商品補充を促す、商品があるべき位置にない場合はレイアウトアラートを送信しバックヤードのスタッフに再配置を促す
、等の在庫管理が可能となる。
また、商品カゴ内に10個など所定の数の商品を配置して販売を開始し、例えば3個等の所定の数以下となった場合に、商品ID(又は商品カゴID)と共に現在の個数3個と最初の個数10個との差分の7個を通知し、この通知に基づいてその商品を7個ロボットやコンベア等の仕組みにより自動的に補充する仕組みとしてもよい。
各重量情報2000には時刻情報を付加することもできる。この場合に、データ集約送信器630がデータを送信する時刻情報を重量情報2000に含めて送信してもよいし、マイコン710が重量情報2000をデータ集約送信器630に送信する際に、時刻情報を含める構成としてもよい。
ここで、重量情報2000に含まれる時刻情報でデータを並べることで重量時系列データを生成することができる。
マイコン710は複数の重量センサデバイス608とA/D変換器720を介して有線で接続されている。また、マイコンはデータ集約送信器630とも優先で接続されており、CAN(Controller Area Network)により通信を行う。
トランシーバ730、731は、互いにCAN方式でデータの送受信を行い、デイジーチェーンで接続されたコントローラ740がCAN方式による通信を制御する。
図7と同様に、マイコンは重量情報2000をデータ集約送信器630に送信し、データ集約送信器630は制御情報をマイコン710に送信する。
有線接続では、無線接続により通信が不安定になることや、通信の遅延が発生することを避けることができる。
入店管理端末106は、例えばスマートフォン、タブレット等の端末や、2次元バーコードや非接触型ICチップを読み取る専用端末で構成される。
主記憶装置901には、入店管理モジュール910等のプログラムやアプリケーションが記憶されており、これらのプログラムやアプリケーションをプロセッサ903が実行することで入店管理端末106の各機能要素が実現される。
入店管理モジュール910は、ユーザが入店した情報としてユーザ特定情報を管理サーバ101に送信する。この際、ユーザ特定情報を受信した日時を入店時刻として、管理サーバ101に送信してもよい。
補助記憶装置902は、入店管理端末管理情報920を記憶する。ここには、入店処理を行った場合に取得したユーザ特定情報や時刻情報を記憶してもよい。
この場合、入店の仕方によって退店時の退店ゲートでの動作を変えることが可能である。例えば、モバイル端末102上のアプリの2次元バーコードや非接触型ICチップによる入店の場合には、退店ゲートが自動で開いてアプリ上のクレジットカード決済が実行される。
退店時に手に取った商品に関して2次元バーコードを印刷し、この印刷物を自動決済機で読み取らせることで、ゲストユーザもクレジットカードや電子マネーや現金で決済できるようにしてもよい。
決済処理サーバ107は、例えばクラウド上に配置されたサーバで構成される。
主記憶装置1001には、決済処理実行モジュール1010が記憶されており、これらのプログラムやアプリケーションをプロセッサ1003が実行することで決済処理サーバ107の各機能要素が実現される。
補助記憶装置1002は、決済処理に必要な個人情報やユーザ情報、クレジットカード情報や、決済履歴等の決済処理情報1020を記憶する。
管理サーバ101は、重量情報処理モジュール1101、位置情報処理モジュール1102、骨格検出処理モジュール1102a、入退店管理モジュール1103、商品判定モジュール1104、顧客個数判定モジュール1105、見積表示モジュール1106、支払管理モジュール1107、モバイル購入管理モジュール1108、等のプログラムやアプリケーションである各種モジュール210を記憶しており、各種処理を実行する。
また、管理サーバ101は、各種センサから受信した情報や、管理サーバ101で生成した情報を記憶するセグメント情報1500、取得判定範囲情報1600、位置追跡情報1700、骨格検出情報1700a、棚イベント情報1800、見積管理情報1900、入店情報1111等を有する。
また、各種情報も、クラウド上のそれぞれ別の記憶装置上に記憶する構成としてもよいし、これらのうちの一部のグループ毎に、クラウド上に配置する構成としてもよい。
重量情報蓄積処理フローについては図24で後述する。
位置情報処理モジュール1102は、受信した位置情報に基づき、人物が滞在した範囲を特定し、特定した滞在範囲の情報を時刻情報と共に蓄積する。
位置情報蓄積処理フローについては図25で後述する。
骨格検出処理モジュール1102aは、人物の上半身の所定の特徴点(手の推定点)を演算により求めることができる。この情報を用いることで、管理サーバ101は、手の推定点と商品棚の位置との対応関係を判定することができる。
骨格検出処理フローについては図42で後述する。
なお、顧客のモバイル端末102に表示されたバーコードを読み取った時刻又は非接触型ICチップから非接触通信により情報を取得した時刻を、情報を受信した時刻情報の代わりに又は併せて記憶してもよい。
入店処理フローについては図27で後述する。
商品判定処理フローについては図28で後述する。
顧客個数判定処理フローについては図29で後述する。
見積表示処理フローについては図30で後述する。
支払処理フローについては図31で後述する。
モバイル購入管理モジュール1108は、ユーザから商品の選択、個数の選択を受け付けると、商品マスタ情報1300に基づいて、合計金額を算出し、モバイル端末102に表示する。
その後、注文の依頼を受け付けると、支払管理モジュール1107が、合計金額及び対応するユーザID等のユーザ情報を決済処理サーバ107に送信し、決済処理サーバ107が決済処理を実行する。
管理サーバ101のIoT情報処理モジュール1201は、MQTTフォーマットに従って送信された重量情報を受信する。なお、IoT情報処理モジュール1201は図11の重量情報処理モジュール1101の前段に配置されている。安定状態から重量の変化が発生した場合に、データ集約送信器630により重量が変化した第1時刻と、その値が安定した第2の時刻の2回に分けて重量情報が送信される。
IoT情報処理モジュール1201は、2回目の重量情報を受信した場合に、その重量情報を商品や商品数の特定のために図11の重量情報処理モジュール1101に転送する。
なお、IoT情報処理モジュール1201がそれぞれの重量情報を振り分ける構成であるが、1回目の重量情報はサイネージ処理モジュール1202及び重量情報処理モジュール1101の両方に送信し、棚イベント情報1800にいずれの重量情報も記憶する構成としてもよい。
この場合、例えば、状態変化有無2006が「変化有」で状態2003が「不安定」になった場合には1回目の重量情報であると判断する。状態変化有無2006が「変化有」で状態2003が「安定」になった場合には2回目の重量情報であると判断する。
又は、重量の変化が生じたことを示すフラグである状態変化有無2006のみに基づいて判断してもよい。例えば状態変化有無2006が重量の変化が生じたことを示す「変化有」になった場合に、第1回目の情報であるとして重量情報をサイネージ処理モジュール1202に重量情報を送付することとしてもよい。
図13は、商品マスタ情報1300の例である。
商品マスタ情報1300は、項目1320に示す各項目の情報を有しており、フィールド名1330として例えばサンプル値1340のような値を有している。
商品マスタ情報1300は、在庫有無、商品イメージ、商品ID1301、商品名1302、価格1303、優先度、原価、税額、販売タイプ、重量1304、サイネージ情報1305等の項目を有する。
商品ID1301はキーとして使われ、商品名1302を特定するためや、商品ID1301に対応するサイネージ情報1305を表示するために使用することができる。
重量1304は、重量センサユニット105が取得した重量の変化量に対して、その商品が何個分商品カゴから取り上げられたのかを計算する際に使用される。
ユーザマスタ情報1400は、項目1420に示す各項目の情報を有しており、フィールド名1430として例えばサンプル値1440のような値を有している。
ユーザマスタ情報1400は、ユーザID1401、ユーザ表示ID、名前、メールアドレス、生年月日、性別、ユーザ特定情報1402等の項目を有する。
ユーザID1401は、ユーザを特定する情報であり、このユーザID1401に対応付けて各ユーザのモバイル端末102が管理されており、ユーザID1401に基づいて当該ユーザのモバイル端末102上に購入商品の見積もり情報等を表示することができる。
ユーザ特定情報1402は、ユーザを特定する際に用いられる情報で、例えば、セキュリティを考慮して定期的に更新されるトークン(ハッシュ値)等の値である。
セグメント情報1500は、項目1520に示す各項目の情報を有しており、フィールド名1530として例えばサンプル値1540のような値を有している。
セグメント情報1500は、商品カゴID1501と商品ID1502とを対応付ける情報である。
このセグメント情報1500によって、重量センサユニット105から受信した重量情報に含まれる商品カゴIDから、商品IDを特定し、どの商品を取り上げたことによって重量が変化したのかを把握することができる。
重量センサユニット105は、商品1つの重量を取得し、管理サーバ101に送信する。管理サーバ101の商品判定モジュール1104は、商品マスタ情報1300に登録されている複数の商品から、重量1304が測定した重量に近い候補を近い順に商品棚のそばにあるサイネージ端末103にリスト表示し、「リストから商品カゴに載せた商品を選択してください」というようなインストラクションを表示する。
リストから選択する形ではなく、自動的に重さが最も近い商品と対応付ける構成としてもよい。
次に、サイネージ端末103に「3つの商品を商品カゴに載せてください」というようなインストラクションを表示する。3つの商品の重量情報から平均重量を算出し、商品判定モジュール1104は、商品増減時の重み誤差を自動で設定する。
取得判定範囲情報1600は、項目1620に示す各項目の情報を有しており、フィールド名1630として例えばサンプル値1640のような値を有している。
取得判定範囲情報1600は、商品カゴ毎に、商品カゴから商品を取れる範囲を規定する情報である。
取得判定範囲情報1600は、商品カゴID1601、判定エリア1602、判定滞在範囲1603を有する。
商品カゴID1601は、重量センサユニット105の重量センサデバイス608と対応付けられており、どの商品カゴから商品を取った結果、重量に変化があったのかを特定することができる。
判定エリア1602は、商品カゴID1601に対応付けられた商品を取れる範囲を商品棚設置用フレーム2100の中の座標で示したものである(図21参照)。
判定滞在範囲1603は、商品カゴID1601に対応付けられた商品を取れる範囲をあらかじめ区切った区画単位で示したものである。
図21は、商品棚設置用フレームの構成例である。
本実施例は、あらかじめ寸法を決めた商品棚設置用フレームにカメラや商品棚を設置したうえで、あらかじめ登録されたいくつかのシステム初期設定を自動で実行することで、無人店舗の設置の際の店舗ごとの作り込みによる労力や時間、コストを削減することができる。
商品棚設置用フレーム2100は、例えば、縦横2.5m、高さ3mの櫓状のフレームである。4本の支柱2101又はその近傍(例えば梁2102)のあらかじめ決められた位置にカメラデバイス506が設置されている。もしくは、この位置にカメラデバイス506を設置できるようにカメラデバイス506の取付部を有していてもよい。
この中の所定の位置に商品棚を設置することで、カメラセンサユニット104、重量センサユニット105の設定を半自動化する。
商品棚を正面から見た図22の2200において、一つの商品棚2201には、3×3個の商品カゴ2202が設置されている。このそれぞれの商品カゴの下には重量センサデバイス608が設置され、それぞれの商品カゴの中の重量を測定している。
商品棚のサイズは横幅×奥行き×高さが450×500×1500mmのサイズを想定する。本実施例ではこのサイズ以外にもあらかじめいくつかの商品棚のサイズが準備されており、この規定のサイズから商品棚を選択することで、管理サーバ101から設定情報がカメラセンサユニット104及び重量センサユニット105に送付され、設定が半自動的に完了する仕組みになっている。
商品棚を左横から見た図22の2250において、商品棚2251の前には商品を取得できる仮想の取得エリア2252を設定する。仮想の取得エリアは顧客が商品に手を伸ばせる範囲と同じ商品棚の先端から760mmを規定している。
商品棚設置用フレーム2100を上から見た図23の2300には、図21と同じ座標が表示されており、左下の支柱2101の座標を(0,0)とし、右上の支柱2101を(2500,2500)とする。
図23の手前部分にはAS01~AS04の4つの商品棚2301が設置されている。商品棚の先端からy軸方向に760mmであって、x軸方向に商品棚2301の幅450mm毎の範囲を、1つの領域とすると、ある商品棚の正面の1つ及び左側2つと右側2つまでの領域を顧客が商品を取得できる範囲、つまり取得判定範囲として規定する。
商品取得範囲は、本実施例ではx、y軸の平面範囲内としているが、商品カゴIDは、例えばAS02_Aが商品棚の1番上の段、AS02_Bが2番目の段、AS03_Cが3番目の段、というようにz軸方向にも商品カゴを特定することができ、これに応じて、判定エリアもz軸方向の値を入れても構わない。
位置追跡情報1700は、項目1720に示す各項目の情報を有しており、フィールド名1730として例えばサンプル値1740のような値を有している。
位置追跡情報1700は、店舗内のどこに誰がいたかを時間順に記憶する情報である。位置情報記憶部又は位置情報記憶手段と呼ぶこともある。
位置追跡情報1700は、期限1705、滞在範囲1701、人物ID1702、店舗ID1703、タイムスタンプ1704等の項目を有する。
滞在範囲1701は、図16と同様に店舗内または商品棚設置用フレーム2100内をあらかじめ区切った区画が記憶されており、カメラセンサユニット104から送信される位置情報から特定された顧客が滞在した場所を記憶する。
骨格検出情報1700aは、項目1720aに示す各項目の情報を有しており、フィールド名1730aとして例えばサンプル値1740aのような値を有している。
骨格検出情報1700aは、店舗内の顧客の撮影画像に対して骨格検出モジュールを適用することで検出された特徴部に関する情報である。
この情報は、骨格検出用カメラセンサユニット104aの骨格検出モジュール510aによって検出された人体の上半身の所定の特徴部(例えば、頭部、左右の肩、左右の肘、左右の手首)の位置座標に関する。さらに、これら特徴部の位置座標を用いて、演算によって求められた人体の他の部位の特徴部(例えば、左右の手の推定点等)の位置座標を同様に含めることができる。
上半身の所定の特徴部と手の推定点の情報は、位置追跡情報1700の検出した情報と統合することができる。
さらに、骨格検出情報1700aでは、位置追跡情報1700の場合と同様に、期限やタイムスタンプなどを含めることができる。
店舗ID1703は、どの店舗での出来事かを記憶する。
タイムスタンプでは、カメラセンサユニット104から送信されるデータを例えばUNIX(登録商標)タイムスタンプ(秒単位)で記憶する。
また、これらのレコードは期限1705で指定された期限を超えると削除される、もしくは別の安価なストレージ領域に移行される。
棚イベント情報1800は、項目1820に示す各項目の情報を有しており、フィールド名1830として例えばサンプル値1840のような値を有している。
棚イベント情報1800は、重量センサユニット105から送信される重量情報に基づいて、商品棚で発生した重量変化などのイベントを記憶する。重量情報記憶部又は重量情報記憶手段と呼ぶこともある。
棚イベント情報1800は、イベントID、商品カゴID1801、前回重量1802、店舗ID、タイムスタンプ1803、タイプ、重量1804、重量変化量1805等の項目を有する。
商品カゴID1801は、重量センサユニット105から送信された重量の変化した商品カゴID2001に対応する値が記憶される。
重量変化量1805は、現在の重量1804と前回重量1802との差分の値が記憶される。
タイムスタンプ1803には、イベントの発生した時刻が記憶される。重量情報処理モジュール1101が重量情報を受信した時刻が記憶されるが、データ集約送信器630が重量情報を送信した時刻を使用してもよいし、マイコン710が重量情報を送信した時刻や、マイコン710が重量の値を取得した時刻、重量センサデバイス608が重量の値を取得した時刻を使用してもよい。
見積管理情報1900は、項目1920に示す各項目の情報を有しており、フィールド名1930として例えばサンプル値1940のような値を有している。
見積管理情報1900は、見積表示モジュール1106が特定したユーザID1901、人物ID1902、商品ID1903及び商品の個数1904、タイムスタンプ1905を記憶する。つまり、誰がいつ何を何個商品棚から取り上げたのかの判定結果を記録する情報である。
図24は、重量情報蓄積処理フロー2400の例である。
重量情報処理モジュール1101は、重量センサユニット105から送信された重量情報を受信する(ステップ2410)。
重量情報処理モジュール1101は、受信した時間の時刻情報を取得する(ステップ2420)。また、棚イベント情報1800に記憶されるその他の情報を取得もしくは算出する。
なお、時刻情報は、重量情報処理モジュール1101が重量情報を受信した時刻としたが、データ集約送信器630が重量情報を送信した時刻を使用してもよいし、マイコン710が重量情報を送信した時刻や、マイコン710が重量の値を取得した時刻、重量センサデバイス608が重量の値を取得した時刻を使用してもよい。
位置情報処理モジュール1102は、カメラセンサユニット104から送信された人物IDと時刻情報と当該時刻における位置情報とを受信する(ステップ2510)。
位置情報処理モジュール1102は、位置情報に基づいて、人物IDで示される人物が滞在した滞在範囲を特定する(ステップ2520)。滞在範囲は、店舗内または商品棚設置用フレーム2100内をあらかじめ区切った区画の情報と対応付けて、どこの区画に属するのかを特定する。また、位置追跡情報1700に示される項目1720のその他の情報を取得もしくは算出する。
位置情報処理モジュール1102は、特定した滞在範囲の情報、人物ID、時刻情報及びその他の情報を対応付けて位置追跡情報1700に記憶する(ステップ2530)。
なお、人物が滞在した場所は、滞在範囲1701のサンプル値1740のA1,A2等、あらかじめ規定された区画の情報が記憶されるが、位置情報として受信した座標情報を記憶する構成としてもよし、複数の位置情報をまとめた軌跡情報を記憶する構成としてもよい。
骨格検出処理モジュール1102aは、撮影画像上で骨格検出モジュールを適用することで検出された人体の上半身の特徴点(例えば、頭部、右肩、左肩、右肘、左肘、右手首、左手首)を受信する(ステップ4210)。この特徴点は、骨格検出用カメラセンサユニット104aの骨格検出モジュール510aにより求められる。
次に、上記人体の上半身の特徴点を用いて、手の推定点を演算により求める(ステップ4220)。この手の推定点は、骨格検出用カメラセンサユニット104aの骨格検出モジュール510aにより求められる。この際、首部等、人体の他の部位の位置座標を合わせて求めてもよい。
位置情報処理モジュール1102によって取得した位置情報と、骨格検出処理モジュール1102aによって取得した位置情報とは、互いに位置座標を対応付けることができる。
なお、骨格検出用カメラセンサユニット104aがこの骨格検出処理フロー4200を実行し、特徴点情報や、その特徴点情報から算出された手の推定位置座標等を、管理サーバ101に送信してもよい。または、管理サーバ101側で、撮影画像に基づいて、ステップ4210、ステップ4220及びステップ4230の各フローを実行してもよい。
顧客が店舗に入店し、入店管理端末106で入店処理を行うと、入退店管理モジュール1103が入店処理2700を実行する(ステップ2610)。
顧客が店舗内を移動する移動軌跡に関する情報は逐次位置追跡情報1700に記憶され、商品棚から商品を取得した情報は棚イベント情報1800に記憶されている。
商品判定モジュール1104は、記憶された棚イベント情報1800に基づいて、顧客が取り上げた商品の内容及び個数を特定する商品判定処理2800を実行する(ステップ2620)。
見積表示モジュール1106は、入店処理2700、商品判定処理2800及び顧客判定処理2900の処理結果を突き合わせ、どのユーザがどの商品を何個手に取ったのかを算出し、ユーザのモバイル端末102に見積もり情報を表示する見積表示処理3000を実行する(ステップ2640)。
図27は、入店処理フロー2700の例である。
入退店管理モジュール1103は、入店管理端末106の入店管理モジュール910から、顧客のユーザ特定情報を受信し(ステップ2710)、受信した時間の時刻情報を入店時刻として取得する(ステップ2720)。
入退店管理モジュール1103は、受信したユーザ特定情報と、記憶しているユーザマスタ情報1400のユーザ特定情報1402とを照合し、対応するユーザID1401を取得することで、どのユーザが入店したかを特定する(ステップ2730)。
入退店管理モジュール1103は、特定したユーザID1401と、入店時刻を入店情報1111に記憶する(ステップ2740)。
商品判定モジュール1104は、重量の変化が発生した時刻(イベント発生時刻)の情報を棚イベント情報1800から取得する(ステップ2810)。
商品判定モジュール1104は、棚イベント情報1800から重量の変化が発生した商品カゴIDと重量変化量とを取得する(ステップ2820)。
商品判定モジュール1104は、重量変化量と商品マスタ情報1300に記憶された商品の重量1304とに基づいて、顧客が取り上げた商品の個数を算出する(ステップ2840)。
商品判定モジュール1104は、取得した商品情報及び算出した商品の個数情報を出力する(ステップ2850)。
この判定結果は、演算により求められた手の推定点と商品棚の位置との相互関係の判定結果を突き合わせることにより、判定精度の低下を防ぐのが好ましい。
顧客個数判定モジュール1105は、棚イベント情報1800から、イベントが発生した時刻を取得する(ステップ2910)。
顧客個数判定モジュール1105は、棚イベント情報1800及び入店情報1111、位置追跡情報1700から、イベントが発生した場所の近辺に滞在した人物の人物IDを特定する(ステップ2920)。
顧客個数判定モジュール1105は、特定した人物IDを出力する(ステップ2930)。
次に、取得判定範囲情報1600の商品カゴID1601に対応する判定滞在範囲1603と、位置追跡情報1700の人物ID1702に対応する滞在範囲1701とを突き合わせることにより、重量の変化が発生した商品カゴから商品を取得可能な範囲にイベント発生時刻に滞在した顧客の人物IDを特定する。
次に、入店情報1111の人物IDと、位置追跡情報1700の位置情報(滞在範囲1701)及び人物ID1702とを突き合わせすることにより、入店時点に入店管理端末106のそばに滞在した顧客の人物IDを特定する。
棚イベント情報1800は、1回目の重量情報に対応する前記重量の変化が生じた第1の時間と重量の変化が安定した第2の時間との差分時間を記憶することもでき、この場合には、1回目の重量情報を記憶しない構成であっても、2回目の重量情報に対応する第2の時間から差分時刻を引いた時間に基づいて、当該時間の人物IDを特定することができる。つまり重量の変化が安定した第2の時間と上記差分時間とに基づいて、商品の個数と顧客とを対応付け、顧客のモバイル端末102に前記商品の個数を表示することができる。
例えば、重量の変化が発生した時刻のタイムスタンプ1803と、その前1秒と後1秒の合計3秒間の位置追跡情報1700から、対応する人物IDを特定する。ここで対応する人物IDを特定できなかった場合には、範囲をタイムスタンプ1803と、その前後2秒ずつの合計5秒間に拡大し、人物IDが特定できるか確認する。このように順次判定時間を段階的に広めて、人物が特定できるところまで処理を繰り返す。
このように、重量の変化が発生した時刻などのイベント発生時刻において、商品棚設置用フレーム2100や店舗内に滞在する顧客数に応じて、人物を特定する判定時間範囲を動的に変更することで、判定のスピードや精度を高めることが可能となる。
見積表示モジュール1106は、入店処理2700、商品判定処理2800及び顧客判定処理2900の処理結果を取得し、これらの突き合わせを行う(ステップ3010)。
見積表示モジュール1106は、イベント発生時刻に対応するユーザID、商品情報、商品の個数情報を取得し、記憶する(ステップ3020)。例えば、商品判定処理2800により特定された重量の変化が発生した時刻における商品情報、商品の個数情報と、顧客判定処理2900により特定された重量の変化が発生した時刻における人物IDとを対応付ける。また、顧客判定処理2900により特定された上記人物IDの人物が入店管理端末106のそばに滞在した時刻のあたりに入店した人物のユーザIDを対応付ける。
見積表示モジュール1106は、対応付けられたユーザID、人物ID、商品ID、個数、タイムスタンプを見積管理情報1900に記憶する。
カメラセンサユニット104から送信された顧客の位置情報と、この位置情報に対応する第2の時間情報とが位置追跡情報1700に時系列に蓄積されており、
カメラセンサユニット104aから送信された顧客の骨格の位置情報と、この位置情報に対応する第3の時間情報とが骨格検出情報1700aに時系列に蓄積されており、
顧客の入店時の第4の時間情報が入店情報1111に時系列に蓄積されており、
これら第1の時間情報と第2の時間情報と第3の時間情報と第4の時間情報とに基づいて蓄積情報を突き合わせることにより、商品の個数と顧客とユーザ情報とを対応付け、ユーザ情報により特定された顧客のモバイル端末102に商品の個数情報を表示することができる。
なお、棚イベント情報1800、位置追跡情報1700、骨格検出情報1700a、入店情報1111は、それぞれ又は一部が異なる記憶手段に記憶されていてもよいし、全てが同一の記憶手段に記憶されていてもよい。
見積表示モジュール1106は、顧客が退店するまでに商品カゴから取り出した商品の合計金額を算出し、顧客のモバイル端末102に表示する(ステップ3040)。
例えば、重量の変化量の検知が怪しい場合や、カメラデバイス506からの位置情報の検知、カメラデバイス506aからの撮影画像に基づく手の推定点の演算が旨く行かない場合や、映像が隠れてしまい判別できていない場合等のイレギュラーな事象が発生する場合、最終的に人間によるチェックを行うための要チェックリストに情報を記憶する。これにより、管理サーバ101で判別しきれない場合には、後から人間が補佐を行うことで精度の高い買い物体験を実現することができる。決済処理自体は退店後に実行されるため利用者の顧客体験は損なわれることはない。
また、全てのセンサが独立して動作しており、それぞれの情報を時系列で蓄積すれば様々な分析や顧客判定制度を高めることが可能となるため、例えば後から利用者の性別や年齢を推定するセンサを追加することも容易である。
支払管理モジュール1107は、顧客が退店エリアの外に一定時間、例えば10秒以上出たことを示す情報を受信する(ステップ3110)。退店エリアの外に出たかどうかは、カメラセンサユニット104が、あらかじめ定めた座標の範囲から顧客が外に出たかどうかを検知することにより判定する。図21及び図23の商品棚設置用フレーム2100を使用した例では、座標(0,0)、(0,2500)、(2500,2500)、(2500,0)で囲われた範囲が退店エリアである。
商品棚設置用フレーム2100を使用しない構成においては、店舗の内部または近辺で退店エリアの座標を任意に設定しておけばよい。
支払管理モジュール1107は、当該商品を商品カゴから手に取ったユーザID及び合計金額を決済処理サーバ107に送信し、決済処理サーバ107がユーザIDに対応する決済処理情報1020に基づいて決済処理を実行する(ステップ3130)。
ことで、返品時の手数料の支払いを無くしている。
サイネージ処理モジュール1202は、IoT情報処理モジュール1201から、重量センサユニット105で計測した重量値が安定状態から不安定状態に変化が発生したタイミングの1回目の重量情報を受信する(ステップ3210)。なお、IoT情報処理モジュール1201により重量情報が振り分けられて受信される構成でなく、データ集約送信器630から重量情報を受信する構成であってもよい。
サイネージ処理モジュール1202は、セグメント情報1500及び商品マスタ情報1300から商品カゴIDに対応する商品IDの商品名1302や価格1303等の商品情報及びサイネージ情報1305を取得する(ステップ3230)。
サイネージ端末103は、例えばタブレット端末であり、自身の有するディスプレイにサイネージ情報を表示する構成であってもよいし、例えばRaspberry Piななどのシングルボードコンピュータやコンピュータが、外付けのディスプレイにサイネージ情報を表示する構成であってもよい。
通常、無人店舗を実現しようとした場合、店舗の構造や商品配置に応じて店舗ごとに複数のカメラセンサの位置や個数などを個別に設定する必要があり、設定のための労力や時間、コストがかかることとなる。
また、商品棚設置用フレーム2100を並べていくことで、店舗のサイズに応じて商品管理システム1のサイズを簡単に調整することが可能である。
インスタンスファミリー3301は、無人店舗やモバイルオーダーの構成を示す。インスタンスタイプ3302は、クラウドサービスにおけるIaaS(Infrastructure as a Service)の様に、各構成を示すタイプを示す。
イメージ3303は、各インスタンスタイプを設置する場合に想定される店舗形式を示す。
複数名対応3305は、複数の顧客を判別できるかどうかを示す。
屋内3306及び屋外3307は、屋内向けの店舗化、屋外向けの店舗化を示す。
サイズ概算は、この商品管理システム1のサイズを示す。
例えば複数名対応3305が「無し」であり顧客が一人のみの簡易型の商品管理システム1では、重量センサユニット105のみを使用し、カメラセンサユニット104及び/またはカメラセンサユニット104aを設置しないことで、省スペースかつ安価にシステムを構築することができる。
管理サーバ101は、送信されたIDや機器情報で特定された各機器やデバイスに対し、選択されたインスタンスタイプ3302で指定された構成に基づくそれぞれのデバイスや機器に対応したセットアップデータや、セットアッププログラム等を送信し、セットアップ手順を実行する。
管理サーバ101の見積表示モジュール1106は、ユーザの注文履歴を管理する。
注文管理画面3400では、商品を手に取った履歴3401と、その商品を再び商品カゴに戻した履歴3402が表示されており、チョコチップクッキーを1つとり、1つ戻した(-1した)ことが分かる。またキャラメルワッフルを手に取った履歴3403があり、それらの合計金額3404が162円である旨が表示されている。
商品カゴから商品を手に取った顧客に対応付けられたユーザIDで特定されたモバイル端末102に表示される画面の例である。
画面3500はキャンディを2つ商品カゴからとったことが検知され、表示される画面の例である。商品3501にホワイトチョコ1つとキャンディ2つが表示されている。画面3550はその後キャンディを1つ商品カゴに戻したことが検知され、表示される画面の例である。商品3502にはホワイトチョコ1つとキャンディ1つが表示されている。
また、電子値札を組み合わせると、顧客ごとに、クーポン価格を適用した割引金額を電子値札に表示したり、見積表示モジュール1106により表示される金額を割引価格とするなど、ダイナミックプライシングやダイナミックオファーを行うことも可能となる。
重量センサデバイス608は、あらかじめ、商品棚の棒または板または商品かごに何も置かれていない状態の重さを、初期値として検出し、管理サーバ101に送信する。ただし、初期値は、0gに限定されない。
一つは、店舗内の顧客の位置を検出するカメラとして機能するカメラ(第1のカメラセンサ)である。このカメラは、実施例1の位置検出用カメラセンサユニット104のカメラデバイス506でもよい。カメラデバイス506は、店舗内の顧客の移動軌跡(例えば歩行軌跡)を所定間隔で周期的に取得して、管理サーバ101に送信する。
さらに、カメラセンサユニット104aの骨格検出モジュール510aは、上記特徴点に基づいて、手の推定点などを演算に求めて、その値を管理サーバ101に送信してもよい。または、管理サーバ101の骨格検出処理モジュール1102aは、送信された上記撮影画像または特徴点に基づいて、手の推定点などを演算により求めてもよい。
なお、上記「位置座標」には、カメラのパラメータとして、3次元空間内の位置(x、y、z)と、回転情報(θ、φ、ψ)との双方を含むことができるものとする。
従って、管理サーバ101には、これらカメラの撮影画像に基づいて、各顧客の移動軌跡と、各顧客の骨格モデルに基づく特徴点が、互いに関連付けられるように、周期的に送信されている(図11参照)。これらの情報は、管理サーバ101と関連付けられた任意の記憶装置内に記憶することができる。
例えば、骨格検出用カメラセンサユニット104aが骨格の特徴部、手の推定位置座標情報を位置検出用カメラセンサユニット104に送信する。その後、位置検出用カメラセンサユニット104がこれらの情報を座標変換し、人物の座標情報と対応付け、これらの情報を管理サーバ101に送信することとしてもよい。
各カメラデバイス506、506aは、静止画(写真)として被写体を撮影して、その静止画データを取得、記録または出力してもよい。または、各カメラは、動画形式として被写体を撮影して、その動画形式のファイルから静止画を取得、記録または出力してもよい。動画は、複数の静止画を時系列的に並べたものとして理解することができるため、以下、各カメラによって静止画を電子的に取得するものとする。
さらに、撮影画像に基づいて骨格検出モデルを適用する際、上から撮影した画像と映っている骨格座標(正解データ)を与えて学習させる。この際、所謂、深層学習の転移学習・ファインチューニングと呼ばれる手法を用いることができる。加えて、後述のように、骨格検出モデルの適用をできるだけ簡潔に行うための工夫を加える。これによって、各カメラデバイス506、506aが上方から下方を見下ろすように撮影した画像に基づいて、比較的に高い精度で骨格検出が行えるようにしている。
ただし、各カメラデバイス506、506aは、店舗内で、側方または下方または他の位置から顧客の様子を撮影することは可能である。
本実施例では、商品のピックアップに寄与する人体の動きは上半身に限られ、下半身の動きは実質的に無視できることを利用する。この結果、本実施例では、骨格検出モジュールの適用対象を半減することにより、事前のラーニング処理をより容易にし、実際の作業の時間をより迅速化し、かつエラーの発生を抑えて、出力の信頼性を高めることができる。
本実施例では、上半身の一部の特徴点(例えば、肩、肘、手首)を取得することができれば、人体の骨格構造に基づいて、手の位置を推測できることを利用する。
そこで、棚と重なる手や指の位置情報は使用せず、棚と重ならない手首、肘または腕の任意の部分の位置座標情報から、手の位置を演算して求めることとしている。
この結果、事前のラーニング処理をより容易にし、実際の作業の時間をより迅速化し、かつエラーの発生を抑えて、出力の信頼性を高めることができる。
好適には、カメラセンサユニット104aのカメラデバイス506aが撮影した画面上で、骨格検出モジュールを適用することにより、顧客の上半身のうち、左右の肘、左右の手首の4つの位置について特徴点を検出し、手や指等の他の特徴点については、これらの位置に基づいて演算により求める。
より好適には、カメラセンサユニット104aのカメラデバイス506aが撮影した画面上で、骨格検出モジュールを適用することにより、顧客の上半身のうち、頭部、左右の肩、左右の肘、左右の手首の計7つの位置に限定して特徴点を検出し、手や指等の他の特徴点については、これらの位置に基づいて演算により求める。
より好適には、カメラセンサユニット104aのカメラデバイス506aが撮影した画面上で、骨格検出モジュールを適用することにより、顧客の上半身のうち、頭部、首部、左右の肩、左右の肘、左右の手首の計8つの位置に限定して特徴点を検出し、手や指等の他の特徴点については、これらの位置に基づいて演算により求める。
図37の(B)を参照すると、本実施例における、人体の上半身の特徴点が例示されている。この例では、好適には、人体のうち、最大で、頭部(1)、首部(2)、左右の肩(3、6)、左右の肘(4、7)、左右の手首(5、8)の8つの位置(太線部)を検出して、人体の他の部位(手、首等)の位置を演算により求めることができる。
好ましくは、各特長点は、撮影画像中のピクセル座標に基づく。
好ましくは、抽出した特徴部(頭部(1)、左右の肩(3、6)、左右の肘(4、7)、左右の手首(5、8))の位置に基づいて、首(2)の位置を演算により求める。
好ましくは、抽出した特徴部(頭部(1)、左右の肩(3、6)、左右の肘(4、7)、左右の手首(5、8))の位置に基づいて、左右の手首(5、8)から先の左右の手の位置(手の推定点)を演算により求める。
好ましくは、胸や背中の胴体の位置は検出対象から除外するが、人体の前後方向を検出または演算により求めることは可能である。
この際、「腕」とは、人体のうち、肩(3、6)から手首(5、8)までの部分を指すものとする。
また、「前腕」とは、人体のうち、肘(4、7)を境に腕を2つの区間に分けて、手首(5、8)に近い方を指すものとする。
また、「上腕」とは、人体のうち、肘(4、7)を境に腕を2つの区間に分けて、肩(3、6)に近い方を指すものとする。
「前腕」と「上腕」は、肩(3、6)、肘(4、7)、手首(5、8)の三次元空間内の位置座標に基づいて、直線状に求めることができる。
好ましくは、人体の骨格構造に基づいて、「前腕」と「上腕」について、単純な直線状として求める。ただし、人体の骨格構造に基づいて、「前腕」と「上腕」について、円弧状または曲線状として求めることは可能である。
同様に、肘(4、7)から肩(3、6)までの上腕の長さを二等分する中心の位置として、「上腕中心点」を演算により求めることは可能である。
ただし、商品の購入プロセスで重要な役割を果たすのは、手や指の側の部位である。このため、本実施例では、特に、「前腕」と「前腕中心点」とを演算により求める。
なお、「前腕中心点」を求める替わりに、肘(4、7)から手首(5、8)までの前腕の長さを三等分して、手首(5、8)に近い方を演算により求めてもよい。
また、「前腕中心点」を求める替わりに、肘(4、7)から手首(5、8)までの前腕の長さを三等分して、肩(3、6)に近い方を演算により求めてもよい。
また、「前腕中心点」を求める替わりに、肘(4、7)から手首(5、8)までの前腕の長さを複数の区間に分割して、任意の区間を演算により求めてもよい。
「手首(5、8)」とは、人体の腕と手の掌とをつなぐ部分を指すものとする。
「手」とは、人体のうち、手首(5、8)から指先までの部分を指すものとする。腕の末端にある器官である手は、腕には含まれないものとする。
本実施例では、撮影画像上で行った画像解析により直接的に求めた肘(4、7)や手首(5、8)等の位置に基づいて、手の推定点を演算により求めることができる。
前腕に沿って、手首から先に所定倍数で延長された位置に「手の推定点」を定めることにより、実際に、顧客が商品棚に向って腕を伸ばして、商品を掴もうとする状態での手の略中心点(または手の先端)を取得する。このため、手首や指等の様々な動きにかかわらず、統一的に、商品を掴もうとする手の基準となる位置を取得する。
例えば、手の推定点は、肘(4、7)を基準にして、前腕の方向に沿って、肘(4、7)から手首(5、8)までの前腕の長さを「4/3」倍に延長した位置である。
例えば、手の推定点は、肘(4、7)を基準にして、前腕の方向に沿って、肘(4、7)から手首(5、8)までの前腕の長さを「1.33」倍に延長した位置である。
例えば、手の推定点は、肘(4、7)を基準にして、前腕の方向に沿って、肘(4、7)から手首(5、8)までの前腕の長さを「1.3」倍に延長した位置である。
また、手の推定点は、「前腕中心点」から手首までの長さが、所定の倍数(例えば、8/3倍、2.67倍、2.7倍等)で延長されることで、求められてもよい。
つまり、例えば肘から前腕中心点までを1、肘から手首までを2、手首から手までを0.67(肘から手首/3)としたとき、肘から手までを2.67とする。
これらの場合、所定の倍数と、その修正の割合は、前腕の長さを延長する場合と同様に求めることができる。
さらに、手の推定点は、3次元空間内の1点として求められる他、3次元空間内の任意の広がり(幅/大きさ)として求められてもよい。例えば、手の推定点は、手の指先から掌の中心までの広がりとして求められてもよい。
即ち、解剖学的には、男性と女性の間の差異は、骨格に関しては小さいとされている。同じ身長であれば、男女の区別なく、肩幅や手の大きさは、ほとんど同一であるとされている。従って、本実施例は、顧客の男女の相違にかかわらず「手の推定点」を求めることができる。
従って、本実施例では、人体の上半身に限定して検出された特徴点に基づいて、「手の推定点」を求めるため、車椅子で来店する顧客に対しても、通常に歩行する他の顧客と同様に、「手の推定点」を求めることができる。
従って、本実施例は、通常の歩行をする健常者と、車椅子で移動する障碍者との相違によって影響を受けることなく、顧客の「手の推定点」を求めることができる。
従って、本実施例は、通常の歩行をする健常者と、松葉杖を使って移動する障碍者との相違によって影響を受けることなく、顧客の「手の推定点」を求めることができる。
従って、本実施例は、実質的にほとんどの状況下で、統一的に顧客の「手の推定点」を求めることができる。
図38の(A)では、撮影画像上で骨格検出モデルを適用するとき、人体の骨格の特徴に基づいて、全身から複数の特徴点(例えば、18個)を検出している(図37の(A)参照)。特にこの例では、足元で検出精度が大きな乱れが生じているのがわかる。また、手首から先の手や指の細かい部位については、検出が困難であることがわかる。
前腕の方向で、手首の位置までしか検出されない場合、商品との間の距離が大き過ぎることになる。この結果、従来技術では、手首の位置に基づいて、商品のピックアップの判定を行う場合、検出誤差や設定ミスが発生しやすくなる。その結果、近くにいる他の顧客との間で、間違った商品のピックアップの判定を行うリスクが生じやすくなっていた。
本実施例では、手の推定点を演算により求めるため、そのようなリスクの発生を最小にしている。
図40の(A)を参照すると、骨格検出モデルの適用時に、手首より先の部位が商品棚の天板によって隠される場合を例示している。
この状態で手首の位置を検出しようとすると、図40の(B)に例示するように、商品棚の一部(天板等)の上に誤って手首が検出されることが起こり得る。その結果、手首の位置座標を取得するため、その画像上のピクセルの位置で高さ方向(Z軸方向)の位置座標を取得しようとすると、検出対象にずれが生じることが起こり得る。
このように、カメラが天井から斜め下を撮影した場合の3次元空間内で、特にZ軸座標(奥行の情報)では、手首の位置座標ではなく、商品棚の一部(天板等)の位置情報が誤って取得されることがある。その場合、手首の位置座標を正確に求めることができない虞がある。
例えば、肘から手首までの前腕の長さを二等分する中心の位置として、「前腕中心点」を求めて、その位置でデプス(奥行き)を取得してもよい。
従って、本実施例では、例えば、顧客が商品棚に近づく場合、手首の位置情報(特にデプス)として「前腕中心点」の位置を求めてもよい。
例えば、肘から手首までの前腕の長さを三等分して、手首に近い側または肩に近い側の位置を求めて、その位置でZ軸方向の位置を取得してもよい。
または、肘から手首までの前腕の長さのうち、任意の位置を求めて、その位置でZ軸方向の位置を取得してもよい。
従って、本実施例では、商品棚の任意の段の中に手を入れた場合、その上方の天板等のため、商品を掴もうとする手首より先が隠されたとしても、そのZ軸方向の位置を比較的に正確に求めることができる。
まず、骨格検出モジュール510aが、カメラデバイス506aの撮影画像を入力として受信する(ステップS1)。この撮影画像は、例えば、RGB画像である。
次に、骨格検出モジュール510aは、肘、手首の(X,Y座標)に基づいて、「前腕中心点」の(X,Y座標)を演算により求める(ステップS3)。
次に、骨格検出モジュール510aは、「前腕中心点」及び/または肘の位置におけるデプス(Z座標等)を取得する(ステップS4)。
次に、骨格検出モジュール510aは、肘と「前腕中心点」のZ座標(デプス)を取得し(ステップS6)、これを同様に2.67倍することで、「手の推定点」のZ座標を演算により求める。
このように、骨格検出モジュール510aは、肘と「前腕中心点」の座標から「手の推定点」の3次元空間内の位置座標(X、Y、Z座標)を演算により求める。
最初からZ座標を含めたX,Y,Z座標により手の推定点を算出することも可能であるが、こうすると棚の中に手が入っている状態では、天井から撮影したカメラからでは手のZ座標(またはデプス)を正確に算出することができず、誤差が発生してしまう。
従って、本実施例では、手が棚の中に入っていても撮影されている肘と「前腕中心点」のZ座標(またはデプス)を取得し、それらの間の長さを延長することで、手のX,Y,Z座標を算出する。
撮影画像上で適用される骨格検出モデルについては、事前に様々な学習作業(ラーニングまたはトレーニング)が行われる。
この際、本実施例では、人体の動きを考慮する。例えば、人体は、腰を曲げたり、体を反らしたり、腕を上下させたり、腕を前後させたり、腕を組んだり等、様々な動作を行うことができる。本実施例では、店舗内で想定される人の動きに集中して学習作業を行うことで、その運用を容易にしている。例えば、店舗内での通常の歩行姿勢や、背中を丸めた姿勢等を主体として学習し、宙返り等の特殊な動作はあらかじめ学習内容から除外する。
この際、骨格検出モジュール510aは、受信した静止画に対して、ピクセル毎またはピクセル集合毎で、画像を分類化してもよい。そして、ピクセル毎またはピクセル集合毎で、形状、図形、輪郭、線、頂点、色等の識別を行うことで、頭部、肩、肘、手首に関する特徴的な物標を特定してもよい。
トレーニングでは、様々な時間帯における店舗内の様子を勘案してもよい。例えば、店舗内に光が差し込む日中や、店舗内の照明だけが用いられる夜中における、影の映り方の相違などを学習してもよい。また、店舗内に人がいないとき、数人だけがいるとき、大勢の人がいるときなどの、様々な店舗内の様子について学習してもよい。
この判定モデルに新たな静止画を入力することで、出力として特徴的な物標が得られるようにしてもよい。
例えば、事前に学習した位置とほぼ等しい割合(約100%や、約99%程度)で検出位置が一致したとき、高い信頼度の情報を付与してもよい。また、事前に学習した位置と比較して、検出位置のズレが大きくなる程、より低い信頼度の情報を付与してもよい。
そこで、1つのカメラデバイス506aからの撮影画像だけでは、ある顧客の上半身の所定の骨格が十分に検出できない場合には、骨格検出モジュール510aは、他のカメラデバイス506aからの撮影画像を援用して、その欠けている部分を補うようにしてもよい。
図43の(A)では、商品棚に対して正対する顧客の様子が正面側から撮影されており、一方の腕を下している様子が示されている。
図43の(B)では、商品棚に対して正対する顧客の様子が側方から撮影されており、一方の腕を下し、他方の腕を曲げている様子が示されている。
理想的には、商品棚に対して正対した顧客を正面から撮影する図42の(A)が好ましいが、顧客の立ち位置や向き等によっては、必ずしも顧客の上半身の全体が撮影されないことが起こり得る。その場合、同一顧客をほぼ同時に撮影した他のカメラデバイス506aの撮影画像を補助的に用いてもよい。
例えば、図43の(A)で撮影された人物の骨格の特徴を基準とし、欠けている部分(例えば、一方の腕側の特徴部は検出できたが、他方の腕側の特徴部が検出できなかった場合)については、骨格検出モジュール510aは、図43の(B)で撮影された人物の骨格の特徴を援用する。その際、図43の(B)の特徴部の位置座標を、図43の(A)における位置座標に変換して、図43の(A)の3次元空間内で2つの撮影画像の特徴部の位置を重ね合わせてもよい。
その際、2つのカメラデバイス506aから取得された頭部の位置座標が互いに所定の閾値内で重ね合うとき、例えば、100%から99%までの範囲内、または100%から95%までの範囲内、または100%から90%までの範囲内の重なり合いが得られてとき、双方を互いに紐づける。首、肩、肘、手首などについても同様である。
この際、骨格検出モジュール510aは、2つの3次元空間内の位置座標を1つに集約する時、あらかじめ、優先する順位を定めておく。例えば、商品棚に対して正面から撮影した静止画像に基づく特徴部の方を、商品棚に対して角度を付けて(例えば、横から)撮影した静止画像に基づく特徴部に対して、優先させてもよい。
このようにして、本実施例では、一方のカメラデバイス506aのPOV/FOVから完全に撮影できなかった部分が、他方のカメラデバイス506aのPOV/FOVから撮影できた場合には、骨格検出モジュール510aは、その撮影された部分によって足りない部分を補完することができる。
または、本実施例では、図41で例示したプロセスでは、骨格検出モジュール510aは、2つまたは複数のカメラデバイス506aから得られた2つまたは複数の撮影画像の組み合わせに基づいて骨格検出モジュールを適用することによって、顧客の上半身の特徴を検出して、「手の推定点」を演算により求めてもよい。
従って、本実施例では、様々な状況下で、顧客が商品をピックアップするときの基準となる「手の推定点」を取得することができる。
なお、「ピックアップ」とは、顧客の手によって、店舗内の商品棚に陳列されていた1つまたは複数の商品が取り上げられることをいう。そのときの手の形状や指の位置等は任意であり、また、取り上げられる方向または高さ等は任意である。
カメラ管理端末530aの骨格検出モジュール510aが取得した「手の推定点」の位置座標は、管理サーバ101に送信される。または、その情報は、カメラ管理端末530の位置検出モジュール510が取得した情報と統合された後、管理サーバ101に送信されてもよい。
管理サーバ101は、「手の推定点」の位置を取得することにより、3次元空間内で、既に知られている商品棚の位置(商品の位置)と、「手の推定点」の位置との相対関係を判定することができる。
例えば、商品棚の位置(商品の位置)に対して、100%から90%までの範囲内、または100%から95%までの範囲内、または100%から99%までの範囲内で「手の推定点」の位置が重なっていることが判定された場合、商品棚の商品の近くに手が存在することを判定することができる。
または、例えば、商品棚の各商品と関連付けられた所定の閾値に対して、その閾値を超えて「手の推定点」が検出された場合、その商品の近くに手が存在することを判定することができる。
これらの場合、管理サーバ101の顧客個数判定モジュール1105は、商品がピックアップされるイベントの発生を推定/仮定することができる。
上述のように、商品棚と関連付けられている重量センサデバイス608の出力は、管理サーバ101の顧客個数判定モジュール1105に送信されている。従って、管理サーバ101は、さらに重量センサデバイス608からの出力値を組み合わせて用いることで、実際に商品がピックアップされるイベントが発生しているか否かについて、高い精度で判定することができる。
「手の推定点」が商品棚の商品の位置に重なった時点またはその前後で、該当する商品棚の重さに変化が生じたとする(例えば、100gの値が50gの値に変化する)。その場合、管理サーバ101の顧客個数判定モジュール1105は、それら2つのデータに基づいて、その「手の推定点」と関連付けられた顧客によって、重さの変化が生じた商品(50g=100g-50g)がピックアップされたと判定することができる。
上述のように、商品棚の近くにはカメラデバイス506、506aが設けられており、定期的に(ループ処理で)商品棚の周囲の様子を撮影することができる。
重量センサデバイス608が重さを検出する周期と、カメラデバイス506、506aが画像を撮影する周期とは、一致する必要はないが、店舗内の人の動きを逐次追跡するために十分に短いものとする。
または、カメラデバイス506aは、商品棚の近くに人物が接近したことを検知したとき、その出力をトリガとして、その人物の画像を撮影してもよい。
または、カメラデバイス506aは、商品棚の近くに人物が接近して、かつ商品棚の方に腕を指し伸ばしたことを検知したとき、その出力をトリガとして、その人物の画像を撮影してもよい。
カメラ管理端末530aまたは管理サーバ101は、各場合で、カメラデバイス506aから送信される撮影画像の入力の受信をトリガとして、上記「手の推定点」の三次元空間内の位置座標(X、Y、Z座標)を演算により求めてもよい。
顧客個数判定モジュール1105は、事前に、平均的な顧客の手の位置と、商品棚中の商品セグメントまたは商品との間の距離(または、商品に対して手が接近したと判定できる閾値)を測定または算出し、その値を記憶する(前処理)。
顧客個数判定モジュール1105は、位置検出用カメラセンサユニット104のカメラデバイス506によって、店舗内の各顧客の位置を追跡した撮影画像を受信する。
顧客個数判定モジュール1105は、骨格検出用カメラセンサユニット104aのカメラデバイス506aによって、店舗内の各顧客の様子を撮影した撮影画像を受信する。
顧客個数判定モジュール1105は、カメラデバイス506aからの撮影画像上で骨格検出処理モジュールが適用されて、検出された顧客の上半身の所定の特徴部に基づいて演算により求められた手の推定点の位置座標を取得する。
さらに、顧客個数判定モジュール1105は、位置追跡情報中の各顧客の位置と、骨格検出情報中の各顧客の位置を突き合わせて、骨格検出情報中の顧客の人物IDを決定してもよい。
さらに、顧客個数判定モジュール1105は、商品を展示する各商品棚の重量時系列データを受信し、継続的に、商品の重量の時系列変化を分析する。
骨格検出用カメラセンサユニット104aは、店舗内を撮影することで、RGB画像とDepth画像(深さ画像)とを取得する。これら画像は、エッジデバイス側で、骨格検出モジュール510aによって処理することができる。
まず、ステップX1で、RGB画像に対して、骨格検出モデルを適用することで、人体の骨格モデルに基づいて、所定の特徴部(頭部、首部、両肩、両肘、両手首のうちの全てまたは任意の一部、以下同様)のX、Y座標を取得することができる。
さらに、ステップX4で、この結果に対して座標変換歪み補正を適用することで、RGB画像上でのX、Y座標の歪みを補正できる。この結果、カメラ座標として、所定の特徴部のX、Y座標とDepth情報(Z座標)とを取得することができる。さらに、ステップX5で、この位置情報に基づいて、所定の演算を行うことで、手の推定位置の座標を求めることができる。従って、最終的に、骨格の所定の特徴部と手の推定点のX、Y、Zのカメラ座標を取得することができる。
管理サーバ101の顧客個数判定モジュール1105は、予め取得している店舗内の商品棚の商品の位置と、位置検出用カメラセンサユニット104から取得した人物(顧客)のID、頭部、手の推定点のToF座標としてのX、Y、Z座標と、重量センサデバイス608から取得した時系列的な重さのデータとを受信する。従って、これらデータを組み合わせて用いることで、顧客の商品のピックアップの判定を行うことができる。
よって、本実施例では、複数の顧客が、同時またはほぼ同時に、互いに近接する単数または複数の商品をピックアップするとき、どの顧客が、どの商品を幾つピックアップしたのかを判定することができる。
以下、重量センサデバイス608の出力と手の推定点とを用いて、商品のピックアップの判定について、より具体的に説明する。
図45の上方には、各商品棚の重量時系列データの例がグラフで示されている。このグラフの横軸には、時間(ms)が取られ、縦軸には、重量センサデバイス608が記録した値(g)が取られている。
なお、各ユーザには、それぞれ、1と2の人物ID(識別番号)が付与されている。
t2からt4(ms)までの間で、重量センサデバイス608の出力の低下が記録されている。この期間、最終的に、50gの重量センサデバイス608の出力の低下が記録されている。従って、顧客個数判定モジュール1105は、この差分の重さ(50g)に相当する1つまたは複数の商品がピックアップされたことを推測できる。
なお、グラフでは、重量センサデバイス608の出力が簡略化して直線状に示されている。実際には、商品棚の棒にフック状にかけられている商品がピックアップされるとき、棒に負荷が加わるため、重量センサの出力は直線にはならない。商品棚の板や商品かごの上に商品が置かれている場合も同様である。
この例では、ユーザ1は、時刻t1付近までは、手の推定点が商品棚から離れていたが、時刻t1付近からt5付近までの間では、手の推定点が商品棚に近づいているのがわかる。
なお、時刻t1とは、ユーザ1が手を商品棚に向って指し伸ばし始めた後、手と棚との間の距離が所定の閾値を下まわり(または上まわり)、商品セグメントまで手を近づけたと判定されたときの時刻である。
なお、グラフでは、手の推定点の出力が簡略化して直線状に示されている。実際には、まっすぐな軌跡にはならないことを理解されたい。
なお、時刻t3とは、ユーザ1が手を商品棚に向って指し伸ばし始めた後、手と棚との間の距離が所定の閾値を下まわり(または上まわり)、商品セグメントまで手を近づけたと判定されたときの時刻である。
なお、ユーザ1とユーザ2のグラフ上の縦軸の大きさの相違は、各顧客と商品棚との間の距離の相違に基づく。
なお、閾値は、商品棚の構成、商品の大きさ等を考慮して、任意の値として設定することができる。
ただし、顧客個数判定モジュール1105は、この期間中、その商品の近くに、ユーザ1の手の推定点と、ユーザ2の手の推定点とが存在していたことを理解できる。
従って、顧客個数判定モジュール1105は、ユーザ1とユーザ2のいずれかによってその商品のピックアップが行われたのかを判定するための処理を行う。
即ち、顧客個数判定モジュール1105は、ユーザごとに手伸ばしの区間を推定し、その両端の重量変化を取得する。
例えば、顧客個数判定モジュール1105は、重量の変化が生じた期間として、時刻t2と時刻t4とを取得する。
また、ユーザ2について、商品のピックアップを可能とする手の移動が生じた期間(手伸ばしの区間)として、時刻t3と時刻t6とを取得する。
管理サーバ101は、これら情報を時系列的にまとめて、対比して、ユーザごとの動きがより明確になるように、期間(時刻t2から時刻t4まで)を分割する。
また、顧客個数判定モジュール1105は、時刻t3から時刻t4までの期間は、主にユーザ1とユーザ2の手の動きが問題になると判定する。
従って、顧客個数判定モジュール1105は、重量の変化が起きた期間(t2からt4まで)を、各ユーザの手の動きに基づいて、第1の区間(t2からt3まで)と、第2の区間(t3からt4まで)とに分割する。
そして、顧客個数判定モジュール1105は、第1の期間(t2からt3まで)では、主にユーザ1の手の動きが、重量変化に寄与していると推測する。
また、顧客個数判定モジュール1105は、第2の期間(t3からt4まで)では、主にユーザ1とユーザ2の手の動きが、重量変化に寄与していると推測する。
例えば、顧客個数判定モジュール1105は、第1の区間については、全体で50gとしたとき、35g相当の重さの変化が生じたことを算出する。さらに、この重さの変化(35g)を、ユーザ1だけに紐づける。
また、顧客個数判定モジュール1105は、第2の区間については、全体で50gとしたとき、15g相当の重さの変化が生じたことを算出する。さらに、この重さの変化(15g)を、ユーザ1とユーザ2の双方に紐づける。
例えば、顧客個数判定モジュール1105は、第1の期間(t2からt3まで)では、重量センサの変化分(35g)は、ユーザ1だけに紐づけられている。この期間については、管理サーバ101は、ユーザ1とユーザ2とに場合分けする必要がない。
しかし、第2の期間(t3からt4まで)では、重量センサの変化分(15g)は、ユーザ1とユーザ2に紐づけられている。この期間については、顧客個数判定モジュール1105は、その重量がユーザ1とユーザ2のどちらに起因するのかについて、場合分けして検討する必要がある。
また、顧客個数判定モジュール1105は、仮定2として、第2の期間(t3からt4まで)では、ユーザ2によって15g相当の重さがピックアップされたと仮定する。この場合、最終的に、ユーザ1によって(35g=35g+0g)の商品がピックアップされ、ユーザ2によって(15g=0g+15g)の商品がピックアップされたと仮定する。
仮定1については、顧客個数判定モジュール1105は、ユーザ1によって、1.0個分(=50g/50g)の商品がピックアップされるとともに、ユーザ2によって0.0個分(=0g/50g)の商品がピックアップされたことを判定する。
仮定2については、顧客個数判定モジュール1105は、ユーザ1によって、0.7個分(=35g/50g)の商品がピックアップされるとともに、ユーザ2によって0.3個分(=15g/50g)の商品がピックアップされたことを判定する。
仮定1については、ユーザ1、2の双方について、許容誤差の範囲内にあることを判定できる。
仮定2については、ユーザ1、2の双方について、許容誤差の範囲外にあることを判定できる。
従って、顧客個数判定モジュール1105は、最終的に、ユーザ1によって、1個当たり50gの商品がピックアップされ、ユーザ2によっては、商品はピックアップされなかったものと判定できる。
例えば、重量変化が100gであって、2個分の許容誤差(50×2±10×2)内にある場合(2.0個分)、ピックアップされた商品の個数を2個として確定してもよい。
また、重量変化が105gであって、2個分の許容誤差(50×2±10×2)内にある場合(2.1個分)、ピックアップされた商品の個数を2個として確定してもよい。
また、重量変化が125gであって、2個分の許容誤差(50×2±10×2)内にない場合(2.5個分)、ピックアップされた商品の個数を2個として確定しないで、不確定としてもよい。
また、重量変化が160gであって、3個分の許容誤差(50×3±10×3)内にある場合(3.2個分)、ピックアップされた商品の個数を3個として確定してもよい。
重量センサデバイス608の特性として、一般に、重量変化の幅が大きいほど、誤差が相対的に小さくなる傾向がある。そこで、本実施例では、重量センサデバイス608からの重量変化が大きいときは、許容する誤差を相対的に小さくしてもよい。例えば、図46を参照すると、商品1個あたりの重量が100gとした場合の、重量変化がマイナス(商品が取られた)の場合について、1個から9個までの各値の変化を例示している。この値は、上記顧客個数判定モジュール1105の判定処理で援用されるものとする。
まず、ステップ6310で、顧客個数判定モジュール1105は、ユーザごとに手伸ばしの区間を取得する。
例えば、ユーザ1については、商品に手を近づけた手伸ばしの区間として、時刻t1と時刻t5との間の区間を取得する。ユーザ2については、商品に手を近づけた手伸ばしの区間として、時刻t3と時刻t6との間の区間を取得する。
次に、ステップ6320で、ユーザごとに紐づけられる手伸ばしの区間の場合分けをする。
例えば、時刻t1と時刻t3との間の区間1は、ユーザ1にだけ紐づけることができる。また、時刻t3と時刻t5との間の区間2は、ユーザ1とユーザ2に重複して紐づけることができる。また、時刻t5と時刻t6との間の区間3は、ユーザ2にだけ紐づけることができる。
例えば、区間1については、35gの重量変化を取得する。区間2については、15gの重量変化を取得する。区間3については、0gの重量変化を取得する。
次に、ステップ6340で、複数のユーザに紐づけられた区間について、その重量変化を各ユーザに振り分けた場合の仮定を行う。
例えば、区間1については、ユーザ1についてだけ35gの重量変化を取得する。区間2については、ユーザ1、2について15gの重量変化を取得するので、各ユーザ1,2について15gの重量変化が振り分けられたと仮定する(上記仮定1、仮定2を参照)。
例えば、仮定1については、ユーザ1にのみ50gの商品が振り分けられるので、商品1個の重さ50gとの対比から、妥当であると判定する。また、仮定2については、ユーザ1に35gの商品が振り分けられ、ユーザ2に15gの商品が振り分けられるので、商品1個の重さ50gとの対比から、妥当でないと判定する。
例えば、図64を参照すると、顧客個数判定モジュール1105の判定のフロー6400の他の例について簡略化して示している。
この例では、まず、ステップ6410で、顧客個数判定モジュール1105は、ユーザごとに手伸ばしの区間を取得する。
次に、ステップ6430で、顧客個数判定モジュール1105は、ユーザごとに商品1個あたりに占める重量変化の割合を取得する。
次に、ステップ6440で、顧客個数判定モジュール1105は、すべてのユーザについて重量変化の割合を比較する。
この例では、店舗内のある商品(150g相当)の近くに3人の顧客がいて、それぞれ、#1、#2、#3のIDが付与されている。
顧客ごとにその商品の近くに手を伸ばしていた期間を求め、その期間に対応する重量変化量の割合を求めている。
例えば、1つあたり150gの商品に対して、顧客#1については20g分の重量変化量が求められ、顧客#2については120g分の重量変化量が求められ、顧客#3については10g分の重量変化量が求められている。
図65に示すように、ユーザごとに手伸ばし区間の重量変化分をグラフ状に表示することで、その視覚的な対比を容易にしてもよい。この出力は、ユーザ端末の画面等に表示してもよい。表示態様は図65に限定されず、他、円グラフ等で表示してもよい。
本実施例では、どのユーザが、どの商品を幾つピックアップしたかについて、顧客個数判定モジュール1105で行われる判定は、図63、図64のフローに限定されない。図63、図64に例示したフローについては、様々な修正、変更が可能である。
例えば、顧客個数判定モジュール1105は、重量の変化量の検知が怪しい場合や、カメラデバイス506からの位置情報の検知、カメラデバイス506aからの撮影画像に基づく手の推定点の演算が旨く行かない場合や、映像が隠れてしまい判別できていない場合等のイレギュラーな事象が発生する場合、最終的に人間によるチェックを行うための要チェックリストに情報を記憶する。これにより、顧客個数判定モジュール1105側で判別しきれない場合には、後から人間が補佐を行うことで精度の高い買い物体験を実現することができる。決済処理自体は退店後に実行されるため利用者の顧客体験は損なわれることを最小にする。
例えば、顧客個数判定モジュール1105が十分な判定できなかった商品については、店員によって、問題の生じたユーザに問い合わせをして、どの商品をピックアップしたかについて問い合わせを行うためのインストラクションを表示してもよい。
このように、顧客個数判定モジュール1105が商品のピックアップについて十分な判定ができなかった場合には、ユーザの協力を求めて、その問題を解決するのが好ましい。ユーザの協力を求めるためのインストラクションの表示は、様々に行うことができる。例えば、判定できなかった商品については、「確認中です」等と端末に表示して、ユーザに確認してもらってもよい。
図45の例では、1つの商品がピックアップされている。実際の商品の購入プロセスでは、複数の商品が連続的にピックアップされることが起こり得る。そのような場合であっても、本実施例では、取った商品の個数を計算することを可能にしている。
なお、図47の例では、図45、図46、図63、図64を参照して上述した判定内容をすべて備えることができる。
同図には、各商品棚の重量時系列データの例がグラフで示されている。このグラフの横軸には、時間(ms)が取られ、左側の縦軸には、重量センサが記録した値(g)が取られている。
なお、各ユーザには、それぞれ、AとBの人物ID(識別番号)が付与されている。
図47を参照すると、凡そ、1500msから2500msまでの間では、重量センサデバイス608の出力に変化はなく、このため、顧客個数判定モジュール1105は、商品棚の商品には変化が起きていないことが推測できる。
2500msから3800msまでの間で、重量センサデバイス608の出力の低下を記録している。このため、顧客個数判定モジュール1105は、商品棚の商品をピックアップしたこと(またはピックアップしようとしたこと)を推測できる。
この期間、最終的に、凡そ、300gから80gまで重量センサデバイス608の出力が低下している。このため、顧客個数判定モジュール1105は、この差分の重さ(220g程度)の1つまたは複数の商品がピックアップされたことを推定できる。
そこで、顧客個数判定モジュール1105は、各ユーザA、Bの手セグメント距離と重量時系列データの時刻を合わせる。そして、手セグメント距離情報から、各顧客が該当するセグメントに手を伸ばしている期間(手伸ばしの区間)を決定する。その際、各ユーザA、Bについて、所定の閾値を超えて、手の動きがあったか否かの判定を行う。
例えば、顧客個数判定モジュール1105は、ユーザAについては、凡そ、2200msから3100msまでの期間内、その商品棚の商品の近くに、手の推定点が位置していることがわかる。
また、顧客個数判定モジュール1105は、顧客Bについては、凡そ、3600msから4500msまでの期間内、その商品棚の商品の近くに、手の推定点が位置していることがわかる。
次に、顧客個数判定モジュール1105は、各期間で、両端の重量の差を計算し、関連するユーザが取った重量として紐付ける。
この際、顧客個数判定モジュール1105は、ユーザごとに重量を合計し、(予め登録されている)商品の重量と比較して、商品の個数に変換する
顧客個数判定モジュール1105は、あらかじめ、商品1個あたりの重量と、許容する誤差の割合を設定して、記憶装置内に該当するデータを保存している。例えば、商品1個あたりの重量が50gの場合、許容する誤差の割合を0.2個分(10g)として設定する。
次に、顧客個数判定モジュール1105は、商品棚に組み合わせた重量センサデバイス608によって、商品がピックアップされたとき、その重量の変化を示す数値(g)を受信する。
次に、顧客個数判定モジュール1105は、上記演算結果を、あらかじめ記憶しているその商品の誤差の割合と対比する。
上記対比の結果、許容誤差割合以内であることが導かれた場合、顧客個数判定モジュール1105は、その個数を確定する。
また、顧客個数判定モジュール1105は、時刻t13から時刻t14までの期間では、主にユーザBの手の動きを問題とする。さらに、この期間では、約120g(200g-80g)の重さの変化があったことを知得する。
そこで、顧客個数判定モジュール1105は、その商品セグメントにある商品の記憶されている重さによって、上記仮定の検証を行う。
上記検証の結果、許容誤差から外れたことが導かれた場合、顧客個数判定モジュール1105は、その個数を不確定とし、逆の場合には確定とする。
さらに、本実施例では、管理サーバ101の顧客個数判定モジュール1105は、重量センサデバイス608の出力に基づく重量変化が理想的な場合から外れていても、商品のピックアップの判定を可能にするための工夫を行っている。
これら図に示された例では、図45、図47と同様に、重量センサの出力の変化と、2人のユーザの手の推定点の変化が重ねて示されている。
なお、図48、図49の例では、図45、図46、図47、図63、図64を参照して上述した判定内容をすべて備えることができるが、記載の重複を避けるため、重複部分についての説明は割愛する。
図49の例では、一度に1つの商品をピックアップしただけにも関わらず、重量が上がったり下がったりしている。 図48、図49に示すように、重量センサデバイス608の出力は、必ずしも、重量変化が理想的なものとはならない。
商品棚の棒、板、商品かご等にセンサ(重量センサデバイス608等)を組み込んで、その重さを測定または算出するとき、そのピックアップ時に棒、板、商品かご等に負荷がかかり、重さの数値には変動が生じ得る。その結果、重量センサデバイス608の出力の重さの変化に時間がかかることがある。また、重さの変化に上下の変動が生じることがある。
これらの場合、従来技術では、重量センサデバイス608の重量情報のみでは、どの時刻に、いくつの商品がピックアップされたかについての判別が難しい場合があった。
手伸ばしの区間を推定し、その両端の重量変化を取得することで、そのような重さの変化に対応することができる。
また、図49に例示するように、重量の変化に変動が生じる場合でも、各ユーザの
手伸ばしの区間を推定し、その両端の重量変化を取得することで、そのような重さの変化に対応することができる。
従って、顧客個数判定モジュール1105は、重量センサデバイス608の出力が理想的でなくても、ピックアップされた商品の個数を判定することができる。
そこで、本実施例では、管理サーバ101の顧客個数判定モジュール1105が商品のピックアップが生じているか否かについてより良好に判定するために、さらなる工夫を行うことができる。
例えば、実際にユーザが商品棚に向って手を伸ばして、商品をつかもうとする時間と、実際に重量センサデバイス608が商品の重さの変動について出力する時間との間には、わずかながら差が生じ得る。実際に商品をピックアップした瞬間と前後して、重量センサデバイス608の出力の変化が得られることがあるためである。
図50の(A)から理解できるように、時刻T1で、ユーザは商品に向って手を伸ばして、その手と商品との間の距離が閾値を超えて近づいている。さらに、時刻T2で、ユーザは商品から離れるように手を戻して、その手と商品との間の距離が閾値を超えて離れている。
このユーザの手の動きから幾分遅れて、時刻TaとTbとの間で、重量センサデバイス608の出力の落ち込みが検出されている。
このように、ユーザの手の動きに基づく時間と、重量センサデバイス608の出力に基づく時間との間にズレがあると、管理サーバ101は、ユーザの手の推定点の動きと、重量センサデバイス608の出力の変化との間で、正確な対応関係が得られない虞がある。
図50の(B)から理解できるように、管理サーバ101の顧客個数判定モジュール1105は、ユーザの手の動きに基づく時間と、重量センサデバイス608の出力に基づく時間との間にズレがあることを検出した場合、いずれか一方の時間を前後にずらすことで、双方の対応関係がより明瞭になるような補正をしている。
例えば、この図では、顧客個数判定モジュール1105は、実際の重量センサデバイス608の出力に基づく時刻TaとTbを、それぞれ幾分前にずらしている(時刻Ta’とTb’を参照)。
または、この補正時間(Ta-Ta’またはTb-Tb’)は、変動可能な値として予め定めておくことができる。この場合、ユーザの手の動きに基づく時間と、重量センサデバイス608の出力に基づく時間との間にズレがあることを検出した場合、そのズレの大きさに対応した大きさで、いずれか一方の時間を前後にずらす。
なお、補正時間を導入する前提条件として、ユーザの手の動きに基づく時間と、重量センサデバイス608の出力に基づく時間との間のずれが、所定の大きさよりも小さいか否かの判定を行うのが好ましい。
例えば、実際に顧客が商品棚に向って手を伸ばして、商品をつかもうとする際、撮影画像に基づく骨格検出時には、実際の特徴部の位置と演算により求められた特徴部の位置との間には、わずかながらずれが生じ得る。このずれが大きい場合には、実際には、商品をピックアップしようとして手を伸ばしているにもかかわらず、手がのばされていないと検出される虞がある。
図51の(A)から理解できるように、時刻T1で、ユーザは商品に向って手を伸ばして、その手と商品との間の距離が閾値を超えて近づいている。さらに、時刻T2で、ユーザは商品から離れるように手を戻して、その手と商品との間の距離が閾値を超えて離れている。
さらに、この期間中、時刻TaとTbとの短期間の間で、そのユーザが手を戻して、また手を伸ばしていることが検出されている。このため、顧客個数判定モジュール1105は、時刻TaとTbとの間では、そのユーザの手の動きに対して、重量センサデバイス608の出力の変化とを対応付けることができない(その期間、そのユーザは商品のピックアップをしていないと判定する)。
例えば、図51の(A)では、実際には、ユーザが時刻T1とT2との間で連続して商品に向って手を伸ばしているにもかかわらず、時刻TaとTbとの間では、その手の動きに切れ目があると検出されている。仮に、この切れ目の動きが、不正確な手の推定点の位置の演算に起因する場合、顧客個数判定モジュール1105は、商品のピックアップの判定を正しく行うことができない。
即ち、顧客個数判定モジュール1105は、人物IDに紐づけられた手の推定点の位置を常時監視する。
ある人物IDに紐づけられた手の推定点が、所定の閾値を超えたとき、その手が商品棚の中の商品をピックアップ可能な位置に到達したことを推定する(例えば、時刻T1)。
その後、同一の人物IDに紐づけられた手の推定点が、再度、所定の閾値を超えたとき、その手が商品棚の中の商品をピックアップ可能な位置に到達したことを推定する(例えば、時刻Tb)。
その後、同一の人物IDに紐づけられた手の推定点が、所定の閾値を下回ったとき、その手が商品棚の中の商品をピックアップ可能な位置から遠ざかったことを推定する(例えば、時刻T2)。
検出されたその切れ目の前後で、商品をピックアップ可能な位置にある手の人物IDが同一であるか否かの判定を行う。
上記判定で、切れ目の前後の人物IDが同一である場合、さらに、その切れ目が生じた時間間隔(時刻TaとTbとの間)が、所定の閾値よりも下回っているか否かの判定を行う。
例えば、顧客個数判定モジュール1105は、時刻TaとTbとの間を、時刻Tcで例示するように最小にするか、ゼロにする。それによって、ユーザの手の動きに切れ目が生じたとしても、それによって、商品のピックアップの判定に狂いが生じることを回避させている。
このように、本実施例では、実際の商品のピックアップの判定中に、ユーザが単独で存在していて、その手伸ばしの期間中に生じた切れ目の長さが短く、かつその期間の両側で手を伸ばしているユーザの人物IDが同一の場合には、その切れ目の間においても、そのユーザが手を伸ばしていたと判定して、上書きする。
図52の(A)を参照すると、上方に重量センサデバイス608の出力の変化を示し、下方にその商品に関するユーザ1、ユーザ2の手の推定点の距離の変化を示している。
図52の(A)から理解できるように、時刻T1で、ユーザ1は商品に向って手を伸ばして、その手と商品との間の距離が閾値を超えて近づいている。さらに、時刻T2で、ユーザ1は商品から離れるように手を戻して、その手と商品との間の距離が閾値を超えて離れている。
これら2人のユーザ1、2の動きの間には切れ目があり、時刻T2からT3にかけて、どちらのユーザ1、2も商品に向って手を指し伸ばしていないことが検出されている。
これらユーザ1、2の手の動きに対して、重量センサデバイス608の出力は幾分ずれて(時間差を伴って)検出されている。
手の推定点は、撮影画像に基づいて検出されているが、骨格検出した位置や重量センサデバイス608の時間はブレる場合がある。その結果、重量センサデバイス608の出力の変化を、ユーザ1、2に対して正しく対応付けることができないことが起こり得る。図52の(A)に示したように、重量変化が少し遅かったり、時間差がずれた結果、誰も手を伸ばしてない区間が存在した場合、その区間の重量の変化をユーザと紐づけすることができないことがある。
また、時間T4以降では、ユーザ1、2の手は商品から遠ざかっていると検出されるため、この期間に生じた重量変化は、ユーザ1、2のいずれにも関連付けることができない。
これらの場合、顧客個数判定モジュール1105は、商品のピックアップの判定を正しく行うことができない。
例えば、顧客個数判定モジュール1105は、重量センサデバイス608の出力の変化が生じた前後に、2人または複数のユーザ1、2の手の動きがあって、各ユーザ1、2の動きの間に切れ目があったことを検出したとする(例えば、時間T2とT3の間や、時間T4以降の所定期間)。
無視することができないと判定した場合、顧客個数判定モジュール1105は、各ユーザ1、2の動きを所定時間だけ前後に拡大して、その切れ目の大きさ(例えば、時間T2とT3の間や、時間T4以降の所定期間)を減らすような補正を行う。
それによって、各ユーザ1、2の動きと、重量センサの出力の変化とのより良好に対応付けるようにする。
例えば、ユーザ1が手を商品棚に向って指し伸ばした時間T1を、所定時間の大きさ(例えば、時間Ta)で前にずらす。
例えば、ユーザ1が手を商品棚から戻した時間T2を、所定時間の大きさ(例えば、時間Tb)で後にずらす。
例えば、ユーザ2が手を商品棚に向って指し伸ばした時間T3を、所定時間の大きさ(例えば、時間Tc)で前にずらす。
例えば、ユーザ2が手を商品棚から戻した時間T4を、所定時間の大きさ(例えば、時間Td)で後にずらす。
従って、顧客個数判定モジュール1105は、各ユーザ1、2の手の動きを前後に拡大することで、誰も手を伸ばしてない区間をより短くまたは最小にして、重量の変化をユーザ1、2と紐づけすることを容易にする。
例えば、ある商品の周囲で複数のユーザが同時に手を伸ばしている区間において、その商品の重量変化が検出された場合、どのユーザがいくつの商品をピックアップしたのかについて、十分な判定ができない虞が起こり得る。
本実施例では、そのようなユーザ/個数が不確定になりやすい場合では、上記の手が重なった時の判定ロジックを導入して対応してもよい。
従って、本実施例では、「手の推定点」を用いて実際に商品をピックアップするイベントが生じているか否かの判定について、実際の運用をより容易にして、その判定精度を高めるための工夫を行う。
顧客ごとに、演算により求められた手の推定点と、商品棚(商品)の位置との間の相互関係を判定する。特に、顧客ごとに商品の近くに手を伸ばしている時間間隔を求める。
重量センサの出力の変化を判定する。特に、重量センサの取得する重さの時系列データのうち、顧客ごとに上記時間間隔に対応する商品の重量変化量を求める。
顧客ごとに、商品棚から商品がピックアップされたか否かを判定する。特に、商品1つあたりの重さに対して占める、顧客ごとの上記時間間隔に対応する商品の重量変化量の割合を求める。
例えば、本実施例では、どのユーザが、どの商品を何個取ったのかについて判定することができる。
特に、本実施例は、商品をとったユーザと、商品の個数とを正しく判定することを可能にする。特に、ユーザの人物IDごとに、商品のピックアップを判定する。
さらに、本実施例は、ユーザの人物IDごとに、個数/種類を含めた商品のピックアップを判定する。特に、重量センサが分離できないくらいの時間間隔で、連続で商品を取得した場合であっても、対応することができる
また、本実施例では、「ユーザAが商品aを2つ取り、ユーザBが商品aを1つ取った」、ということを出力できる
また、本実施例では、「ユーザAが商品aを1つ取り、ユーザBが商品bを1つ取った」、ということを出力できる。
従って、本実施例では、どのユーザが、どの商品を、いくつ取ったのかについて判定することができる。このため、従来技術と比べて、商品のピックアップの判定をより高い精度で行うことを可能にする。
また、従来技術では、同じ位置の商品が連続して複数ピックアップされる場合(ピックアップされる各商品の時間が近い場合)、判定が困難になる傾向があった。
また、従来技術では、同時に隣接する商品が複数ピックアップされる場合(ピックアップされる各商品の位置が近い場合)、判定が困難になる傾向があった。
また、従来技術では、同時に複数個の商品がピックアップされた場合、判定が困難になる傾向があった。
また、従来技術では、商品をピックアップする顧客の動きを判定する際、その重量情報の変化の生じた時刻において、1人顧客のみが商品を取ったことを前提としていた。
また、従来技術では、重量センサの近くにいるユーザがその商品を取ったと判定して、出力していた。このため、その近くに複数のユーザが存在する場合、十分な判定できないものとして、出力することがあった。
本実施例では、このような従来技術の問題を解決するための好適な手段を提供している。
DNNでは、判定する商品の種類が限られている。これに対して、公知なように、一般的な商店等で販売されている商品は、新商品の開発がほぼ途切れなく継続されている。例えば、スーパーやコンビニ等では、常時、新しい商品が導入されている。
DNNでは、判定する商品の種類を増やそうとする場合、モデルの構成を変え、モデルを再度学習する必要がある。新商品が導入される間隔が短い場合、十分な学習期間を確保できず、運用面で課題が残る。
通常、店舗内には、複数の商品棚が設置されている(図36の(A)、(B)参照)。そのため、ほぼ同時刻に、同じ顧客の動作を複数のカメラ(例えば、カメラデバイス506、カメラデバイス506a等)によって撮影されることが起こり得る。撮影画像の品質を良好に保つためには、予め、想定される使用状況に基づいて、各カメラの優先順位を設定しておくのが好ましい。
図55から理解できるように、エリアの設定では、棚の前(商品がおいてある位置と、少し手前側)を囲むように設定してもよい。
例えば、複数のカメラの撮影画像が利用可能であることが前もって推測できる場合、横から撮影した画像だと位置の精度が落ちるので、正面から撮影できる画像が利用可能な場合には、後者を優先的に利用する。
例えば、優先度は、各カメラ506、506aの位置と、商品棚及び/またはエリアの位置との間の距離を基準にしてもよい。
例えば、優先度は、各カメラ506、506aのPOV/FOVと、商品棚及び/またはエリアの周囲に存在可能な人との対応関係を基準にしてもよい。
例えば、優先度は、各カメラ506、506aの撮影画像と、被写体の向きとの対応関係を基準にしてもよい。
例えば、優先度は、各カメラ506、506aの撮影画像と、被写体との間の障害物の有無を基準にしてもよい。
例えば、優先度は、各カメラ506、506aの撮影画像と、それに基づく骨格検出の精度を基準にしてもよい。
さらに、優先度に関連して、各エリアの大きさ、形状等を様々に設定することができる。
このように、管理サーバ101は、予めどのカメラの撮影画像を用いるかについて優先度を設定することで、画像解析の品質が所定の基準を満たすようにしてもよい。
図56から理解できるように、店舗内の様子は、複数(例えば、8つ)の撮影画像として取得可能である。これら撮影画像のうち、どの撮影画像を利用するかによって、店舗内を移動する顧客の追跡が変化し得る。
管理サーバ101は、顧客の位置の変化や、顧客の動きの変化などに従って、想定可能な複数(例えば、8つ)の撮影画像のうち、どの撮影画像を利用するのが好ましいかについて、予め優先度を決めておいてもよい。
同図では、右上から左下にかけて、符号0236、0108、0227、0357、0570、0390、0391、0138で示された8つのカメラが例示されている。これらカメラは、カメラセンサユニット104のカメラデバイス506と、カメラセンサユニット104aのカメラデバイス506aの双方またはいずれかでもよい。
人物ID「837」が小さく表示されている方は、カメラセンサユニット104のカメラデバイス506の撮影画像(ToF)に基づいて出力された人物IDに相当している。人物ID「837」が大きく表示されている方は、カメラセンサユニット104aのカメラデバイス506aの撮影画像に基づいて骨格と位置が紐付けられた結果、フロア内に存在すると推定されたユーザの人物IDに相当している。
このことは、顧客の位置検出用カメラセンサユニット104のカメラデバイス506と、顧客骨格検出用カメラセンサユニット104aのカメラデバイス506aとの双方について当てはめることができる。
しかしながら、ある商品棚の付近の様子を良好に撮影するためには、予め設定されたPOV/FOVでは適当でない場合、管理サーバ101は、カメラ506、506aのPOV/FOVを変更させてもよい。
従って、管理サーバ101は、各カメラ506、506aについて優先度を予め設定するとともに、実際の運用状況に応じて、各カメラ506、506aのPOV/FOVに修正を加えることは可能である。
このように、本実施例では、顧客の動きを連続して追跡できるように工夫している。
例えば、従来技術では、店舗内の顧客の移動の仕方によっては、カメラセンサユニット104のカメラデバイス506またはカメラセンサユニット104aのカメラデバイス506aによって、顧客を完全に追跡することができない場合があった。顧客の位置情報を正確に追跡できない場合には、その後の商品のピックアップの判定を十分に行うことができないため、問題となる。
図58から理解できるように、店舗内を二人のユーザが存在している。この例では、それぞれ、人物IDとして、0と1とが割り当てられている。各ユーザ0、1は、同一または異なるカメラによって追跡されている。同図の(1)から(2)に例示するように、二人の顧客の位置が互いに接近すると、双方を明確に識別できない事態が起こり得る。図では、急接近した二人の顧客に対して、その後、同図の(2)から(3)に例示するように、それぞれの人物ID0、1が入れ替えられている。
このように、追跡情報(人物情報)において、顧客の人物IDが入れ替わると、その後の顧客の追跡や骨格検出などがすべて連鎖的に誤る虞がある。
本実施例では、カメラセンサユニット104のカメラデバイス506またはカメラセンサユニット104aのカメラデバイス506aによって撮影されたRGB画像から、顧客の肩の座標の色を取得することで、服装の色を判別してもよい。
なお、頭部が左右に動くことで、頭部の位置と肩の位置とが一部重なることが起こり得る。そのため、両肩の座標のうち、頭から遠い方の肩の座標を採用するのが好ましい。これにより、ユーザが映る角度によっては、頭が肩に重なることが起こり得るが、そのような事態を回避できる。図59では、頭部の位置と、左右の肩の位置とを対比して、頭部からより離れている右肩の方を採用し、左肩の方は不採用としてもよい。
例えば、顧客が店舗内の予め設定された出現エリア(入場口近辺)に来たら、各顧客に独自の人物IDを付与して、追跡を開始する。人物IDは、数字及び/または文字等を用いて構成されてもよい。例えば、人物IDは、来店する顧客ごとに通し番号として付与されてもよい。
また、例えば、人物IDは、日時/時間の組み合わせとして付与されてもよい。例えば、2021年5月30日午前7時10分30秒に来店した顧客に対しては、20210530071030の識別番号を付与してもよい。同一の日時/時間に複数の顧客が現れたときには、末尾にa、b、c等の符号を付けて互いに区別してもよい。
従来技術では、顧客が店舗内の所定の消失エリアに来ていないにも関わらず、その人物IDが消えることがあった(人物IDのロスト)。その場合、以降、そのユーザの追跡情報が出力されなくなるという問題があった。
また、その顧客が改めて店舗内の所定の出現エリア(入場口近辺)に来たら、新たにその顧客に別の人物IDが付与されることがあった(意図しない人物IDの再出現)。その場合、以降、その顧客は、あたかも他の顧客(別人)として判定されることになるという問題があった。
例えば、本実施例では、顧客の人物IDを一時的に消失する事態が生じたとしても、カメラセンサユニット104のカメラデバイス506またはカメラセンサユニット104aのカメラデバイス506aの撮影画像から検出される骨格の情報や、服装の色の情報に基づいて、その顧客を追跡することができる。
従って、骨格の情報及び/または服装の色の情報に基づいて追跡される顧客については、その人物IDを継続して維持することができる。また、その顧客が改めて店舗内の所定の出現エリア(入場口近辺)に来たとしても、その顧客に対して新しい人物IDを付与することを回避/訂正することができる。
本実施例では、位置情報、骨格情報及び/または服装の色情報に基づいて、例えば、顧客個数判定モジュール1105は、カメラセンサユニット104のカメラデバイス506によって追跡している顧客の人物IDを保持する。従って、図60の(1)から(2)に例示したように、互いに近接する顧客を識別することができる。
さらに、図60の(3)に例示したように、顧客の位置が消失エリアに入らないまま、その追跡が一時的に終了した場合(符号Aの点線参照)、例えば、顧客個数判定モジュール1105は、その顧客が店内にとどまっているものと仮定して、その人物IDを保持することができる。
例えば、顧客個数判定モジュール1105は、店舗内にいる顧客全員のうち、余った骨格情報及び/または服装の色情報が見つかった場合、店舗内にとどまっていると仮定した顧客(一時的に追跡が消えた顧客)が、その骨格情報及び/または服装の色情報が見つかった位置にいるものとして仮定して、その位置から追跡を再開してもよい。
このように、従来技術では、一度人物IDの追跡が途切れると、その人物に対しては別の人物IDが付与されていた。
例えば、顧客個数判定モジュール1105は、カメラの撮影した画像に対して骨格検出モデルを適用することにより、さらに人体の肩部の付近の色の情報を検出してもよい。例えば、顧客個数判定モジュール1105は、この検出した肩の色の情報を基準にして、その肩の所有者に対して人物IDを付与してもよい。
従って、本実施例では、店舗内の顧客の動きをより正確に追跡することを可能にする。その結果、店舗内における顧客の商品のピックアップの判定を正確に行うことを可能にする。
また、本実施例では、カメラセンサユニット104には、ToFセンサ・モジュールによる位置の追跡を行うことができる。ただし、他の実施例では、カメラセンサユニット104による位置の追跡モジュール自体を削除することができる。他の実施例では、複数のカメラセンサユニット104aからの撮影画像間でユーザの特定・マッチングを行ってもよい。このように、顧客の位置の追跡と骨格情報の取得の双方を複数のカメラセンサユニット104aだけで行うことは可能である。
他の実施例では、判定用の動画を撮影するカメラをキャリブレーションすることで、各カメラの位置・姿勢(カメラパラメータ)を計算することができる。さらに、このパラメータを利用して、商品の位置や、ユーザの位置が、画面上でどの点になるか計算し、その動画内にアノテーションすることで、判定員がよりわかりやすくなるようにしてもよい。
なお、上述の実施例は少なくとも特許請求の範囲に記載の構成を開示している。
Claims (15)
- 商品を管理する管理システムであって、
商品棚に設置された重量センサから送信された重量情報を取得する手段と、
第1のカメラセンサにより撮影された画像から顧客の位置情報を取得する手段と、
第2のカメラセンサにより撮影された画像から骨格検出モデルを適用することによって前記顧客の人体の特徴点を取得するとともに、前記人体の特徴点を用いて手の推定点を算出する手段と、
前記顧客の位置情報と、前記算出された手の推定点と前記商品棚の位置との間の相互関係と、前記重量センサの出力の変化と、に基づいて、商品のピックアップを判定する手段と、を有し、
前記商品のピックアップを判定する手段は、
前記手の推定点と前記商品棚の位置との間の相互関係に基づいて、前記顧客が商品のピックアップを可能とする手の移動が生じた期間である手伸ばしの期間を求め、
前記重量センサの出力の変化に基づいて、複数の前記顧客のそれぞれに対し、前記手伸ばしの期間の両端での重量変化量を求め、
複数の前記顧客のそれぞれに対して算出された前記重量変化量に基づいて、商品をピックアップした前記顧客を判定する、
管理システム。 - 前記第2のカメラセンサは、骨格検出用カメラセンサユニットであって、撮影された画像に対して前記骨格検出モデルを適用することにより、前記人体の肘と手首の特徴点を検出し、
前記検出した特徴点の位置を用いて、前記肘と前記手首との間の長さである前腕の長さを所定の倍数で延長した位置を、前記手の推定点として算出する、
請求項1に記載の管理システム。 - 前記骨格検出用カメラセンサユニットは、前記前腕の長さを4/3倍の±25%の範囲内、1.33倍の±25%の範囲内または1.3倍の±25%の範囲内のいずれか1つで延長した位置を、前記手の推定点として算出する、
請求項2に記載の管理システム。 - 前記骨格検出用カメラセンサユニットは、
前記前腕の長さを二等分する中心の位置を、前腕中心点として算出し、
前記前腕の方向に沿って、前記肘から前記前腕中心点までの長さを所定の倍数で延長した位置を、前記手の推定点として算出する、
請求項2に記載の管理システム。 - 前記骨格検出用カメラセンサユニットは、
前記肘と前記手首との間の水平方向の2次元座標から、前記前腕中心点を算出し、
前記肘から前記前腕中心点までの3次元座標による長さを所定の倍数で延長した位置を、前記手の推定点として算出する
請求項4に記載の管理システム。 - 前記骨格検出用カメラセンサユニットは、前記人体のうち、頭部、左右の肩、左右の肘、左右の手首の7つの特徴点を検出する、
請求項2から5のいずれか1項に記載の管理システム。 - 前記第1のカメラセンサは、前記顧客の位置を追跡する位置追跡用カメラセンサユニットであって、前記顧客までの距離を測定するカメラセンサである、
請求項1から6のいずれか1項に記載の管理システム。 - 前記第1のカメラセンサは、前記顧客の位置を追跡する位置追跡用カメラセンサユニットであって、前記第2のカメラセンサから送信された前記特徴点と前記手の推定点の情報を、前記顧客の位置情報と同一の座標空間内に座標変換して、統合する、
請求項1から7のいずれか1項に記載の管理システム。 - 前記第1のカメラセンサと前記第2のカメラセンサの少なくとも一方は、さらに前記顧客の前記人体の肩の付近の色、形状、模様、及び/または特徴量の情報を検出し、
前記検出した肩の色、形状、模様、及び/または特徴量の情報を用いて、その肩に対応する前記顧客に対して識別情報を付与する、
請求項1から8のいずれか1項に記載の管理システム。 - 前記商品のピックアップを判定する手段は、
商品1つあたりの重量情報を取得し、複数の前記顧客のそれぞれに対して算出された前記重量変化量が、前記商品1つあたりの重量情報の整数倍に近い前記顧客を、前記商品をピックアップした前記顧客であるとして判定する
請求項1に記載の管理システム。 - 前記商品のピックアップを判定する手段は、
前記重量センサの出力の変化の時間と前記手の推定点の位置の変化の時間とのいずれかについて、時間を前後にずらす補正を行う、
請求項1から10のいずれか1項に記載の管理システム。 - 前記商品のピックアップを判定する手段は、
前記商品の近くにいる前記顧客の数が一人であると判定した場合に、前記顧客の前記手伸ばしの期間の中に途切れが存在した場合、その途切れを排除または最小にする補正を行う、
請求項1、10、又は11に記載の管理システム。 - 前記商品のピックアップを判定する手段は、
前記商品の近くにいる前記顧客が複数であると判定した場合に、複数の前記顧客の手伸ばしの期間の間に途切れが存在した場合、その途切れを排除または最小にするように、その途切れの前後の顧客の手の動きを拡大する補正を行う、
請求項1から10のいずれか1項に記載の管理システム。 - 管理サーバにより実行される、商品を管理する管理方法であって、
商品棚に設置した重量センサから送信された重量情報を取得し、
第1のカメラセンサにより撮影されたた画像から顧客の位置情報を取得し、
第2のカメラセンサにより撮影された画像から骨格検出モデルを適用することによって前記顧客の人体の特徴点を取得するとともに、前記人体の特徴点を用いて手の推定点を演算により求め、
前記顧客の位置情報と、前記手の推定点と前記商品棚の位置と、の間の相互関係に基づいて、前記顧客が商品のピックアップを可能とする手の移動が生じた期間である手伸ばしの期間を求め、
前記重量センサの出力の変化に基づいて、複数の前記顧客のそれぞれに対し、前記手伸ばしの期間の両端での重量変化量を求め、
複数の前記顧客のそれぞれに対して算出された前記重量変化量に基づいて、商品をピックアップした前記顧客を判定する、
処理を実行することを特徴とする管理方法。 - 管理サーバに請求項14に記載の方法の各ステップを実行させるためのプログラム。
Priority Applications (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2021093705A JP7663178B2 (ja) | 2021-06-03 | 2021-06-03 | 無人店舗の商品を管理する管理サーバ及び管理方法 |
| PCT/JP2022/016902 WO2022254958A1 (ja) | 2021-06-03 | 2022-03-31 | 無人店舗の商品を管理する管理システム、管理方法及びプログラム |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2021093705A JP7663178B2 (ja) | 2021-06-03 | 2021-06-03 | 無人店舗の商品を管理する管理サーバ及び管理方法 |
Publications (3)
| Publication Number | Publication Date |
|---|---|
| JP2022185837A JP2022185837A (ja) | 2022-12-15 |
| JP2022185837A5 JP2022185837A5 (ja) | 2024-05-30 |
| JP7663178B2 true JP7663178B2 (ja) | 2025-04-16 |
Family
ID=84323120
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP2021093705A Active JP7663178B2 (ja) | 2021-06-03 | 2021-06-03 | 無人店舗の商品を管理する管理サーバ及び管理方法 |
Country Status (2)
| Country | Link |
|---|---|
| JP (1) | JP7663178B2 (ja) |
| WO (1) | WO2022254958A1 (ja) |
Families Citing this family (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP7318680B2 (ja) * | 2021-07-30 | 2023-08-01 | 富士通株式会社 | 情報処理プログラム、情報処理方法、および情報処理装置 |
| JP7708735B2 (ja) * | 2022-12-26 | 2025-07-15 | 株式会社日立製作所 | 無人店舗運営支援装置及び無人店舗運営支援方法 |
| JP7667365B1 (ja) | 2024-09-27 | 2025-04-22 | 株式会社サイバーエージェント | スマートグリップ |
Citations (5)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| WO2019181499A1 (ja) | 2018-03-20 | 2019-09-26 | 日本電気株式会社 | 店舗管理装置および店舗管理方法 |
| US20200193347A1 (en) | 2018-12-17 | 2020-06-18 | Beijing Baidu Netcom Science Technology Co., Ltd. | Vehicle passenger flow statistical method, apparatus, device, and storage medium |
| CN111831673A (zh) | 2020-06-10 | 2020-10-27 | 上海追月科技有限公司 | 货品识别系统、货品识别方法及电子设备 |
| JP2021012518A (ja) | 2019-07-05 | 2021-02-04 | クラスメソッド株式会社 | 無人店舗の商品を管理する管理サーバ及び管理方法 |
| CN112434566A (zh) | 2020-11-04 | 2021-03-02 | 深圳云天励飞技术股份有限公司 | 客流统计方法、装置、电子设备及存储介质 |
-
2021
- 2021-06-03 JP JP2021093705A patent/JP7663178B2/ja active Active
-
2022
- 2022-03-31 WO PCT/JP2022/016902 patent/WO2022254958A1/ja not_active Ceased
Patent Citations (5)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| WO2019181499A1 (ja) | 2018-03-20 | 2019-09-26 | 日本電気株式会社 | 店舗管理装置および店舗管理方法 |
| US20200193347A1 (en) | 2018-12-17 | 2020-06-18 | Beijing Baidu Netcom Science Technology Co., Ltd. | Vehicle passenger flow statistical method, apparatus, device, and storage medium |
| JP2021012518A (ja) | 2019-07-05 | 2021-02-04 | クラスメソッド株式会社 | 無人店舗の商品を管理する管理サーバ及び管理方法 |
| CN111831673A (zh) | 2020-06-10 | 2020-10-27 | 上海追月科技有限公司 | 货品识别系统、货品识别方法及电子设备 |
| CN112434566A (zh) | 2020-11-04 | 2021-03-02 | 深圳云天励飞技术股份有限公司 | 客流统计方法、装置、电子设备及存储介质 |
Non-Patent Citations (2)
| Title |
|---|
| Yosuke Miyajima,Cubemosの骨格検知SDKとRealSenseを使って人が棚に手を伸ばしたことを検知してみた[オンライン],2020年05月18日,[検索日 2022.05.13],インターネット:<URL:https://dev.classmethod.jp/articles/detecting-human-hands-entering-a-shelf-using-cubemos-skeleton-tracking-sdk-and-realsense-d435i/> |
| 丸山 瑞己ほか,局所領域に着目したMulti-stream Neural Networksによる手話単語認識,電子情報通信学会技術研究報告 IEICE Technical Report,日本,一般社団法人電子情報通信学会 The Institute of Ele,2021年02月25日,第120巻,第409号,第53~58頁 |
Also Published As
| Publication number | Publication date |
|---|---|
| JP2022185837A (ja) | 2022-12-15 |
| WO2022254958A1 (ja) | 2022-12-08 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| RU2727084C1 (ru) | Устройство и способ определения информации о заказе | |
| US10290031B2 (en) | Method and system for automated retail checkout using context recognition | |
| JP7663178B2 (ja) | 無人店舗の商品を管理する管理サーバ及び管理方法 | |
| US20200202163A1 (en) | Target positioning system and target positioning method | |
| US10417878B2 (en) | Method, computer program product, and system for providing a sensor-based environment | |
| US9842255B2 (en) | Calculation device and calculation method | |
| US11373160B2 (en) | Monitoring shopping activities using weight data in a store | |
| CN109726759B (zh) | 无人售货方法、装置、系统、电子设备及计算机可读介质 | |
| US11475657B2 (en) | Machine learning algorithm trained to identify algorithmically populated shopping carts as candidates for verification | |
| US20180253708A1 (en) | Checkout assistance system and checkout assistance method | |
| JP7565023B2 (ja) | 無人店舗の商品を管理する管理サーバ及び管理方法 | |
| US9563914B2 (en) | Using head mountable displays to provide real-time assistance to employees in a retail environment | |
| CN104487994A (zh) | 电子设备及方法 | |
| JP7318680B2 (ja) | 情報処理プログラム、情報処理方法、および情報処理装置 | |
| JP2005309951A (ja) | 販売促進支援システム | |
| JP2017130061A (ja) | 画像処理システム、画像処理方法およびプログラム | |
| US12462565B2 (en) | Computer-readable recording medium, estimation method, and estimation device | |
| EP4125056B1 (en) | Information processing program, information processing method, and information processing device | |
| WO2021240904A1 (ja) | 情報処理装置、情報処理方法及びプログラム | |
| JP7732526B2 (ja) | 購買分析装置、購買分析方法、及びプログラム | |
| US20240320701A1 (en) | Wearable device, information processing method, non-transitory computer readable recording medium storing information processing program, and information providing system | |
| TW202244803A (zh) | 智能商品貨架管理系統及運作方法 | |
| JPWO2023112519A5 (ja) | ||
| JP7754210B2 (ja) | 管理装置、管理方法及びプログラム | |
| JP2026019417A (ja) | 情報提供システム、情報処理方法及びプログラム |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20240521 |
|
| A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20240521 |
|
| RD02 | Notification of acceptance of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7422 Effective date: 20240521 |
|
| A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20241112 |
|
| A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20250110 |
|
| TRDD | Decision of grant or rejection written | ||
| A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20250225 |
|
| A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20250326 |
|
| R150 | Certificate of patent or registration of utility model |
Ref document number: 7663178 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |