(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-01-23
(45)【発行日】2024-01-31
(54)【発明の名称】情報処理システム、情報処理システムの制御方法、プログラム
(51)【国際特許分類】
G06T 7/60 20170101AFI20240124BHJP
B65G 1/137 20060101ALI20240124BHJP
G06Q 10/087 20230101ALI20240124BHJP
【FI】
G06T7/60 110
B65G1/137 B
G06Q10/087
(21)【出願番号】P 2021197819
(22)【出願日】2021-12-06
(62)【分割の表示】P 2019170936の分割
【原出願日】2019-09-19
【審査請求日】2022-09-16
(31)【優先権主張番号】P 2018192906
(32)【優先日】2018-10-11
(33)【優先権主張国・地域又は機関】JP
(73)【特許権者】
【識別番号】390002761
【氏名又は名称】キヤノンマーケティングジャパン株式会社
(73)【特許権者】
【識別番号】592135203
【氏名又は名称】キヤノンITソリューションズ株式会社
(74)【代理人】
【識別番号】100189751
【氏名又は名称】木村 友輔
(72)【発明者】
【氏名】布施 竜一
(72)【発明者】
【氏名】高見澤 亮
【審査官】伊知地 和之
(56)【参考文献】
【文献】特開2015-058995(JP,A)
【文献】米国特許出願公開第2014/0355829(US,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G06T 7/60
B65G 1/137
G06Q 10/087
(57)【特許請求の範囲】
【請求項1】
撮像部と通信可能な情報処理システムであって、
前記撮像部により撮像する棚の前方方向の撮像画像に所定のエリアを設定し、該撮像部により撮像した画像に基づき、前記所定のエリアにおいて、物品を検出する検出手段と、
前記検出手段により前記所定のエリアにおいて物品を検出する場合、前記物品が予め設定された検出ラインを通過して第1の条件を満たすことにより、前記棚から出入りした物品の数の増減の結果を出力する出力手段
を有し、
前記検出手段は、前記物品の高さ情報を取得し、
前記検出ラインは、高さの異なる棚毎に複数設定されており、
前記出力手段は、前記検出手段により取得された物品の高さ情報により、前記複数の高さの異なる棚毎に設定された検出ラインを選択し、該物品が選択された検出ラインを通過した際に、前記複数の高さの異なる棚から該当する棚に出入りした物品の数として増減の結果を出力すること
を特徴とする情報処理システム。
【請求項2】
前記検出ラインは、前記高さの異なる棚毎に検出ラインの長さが異なること
を特徴とする請求項
1に記載の情報処理システム。
【請求項3】
前記第1の条件とは、前記物品が前記検出ラインから取り出す方向に所定の閾値以上移動した場合であること
を特徴とする請求項1
又は2に記載の情報処理
システム。
【請求項4】
前記第1の条件を満たすと、物品の数を減らす結果を出力すること
を特徴とする請求項
3に記載の情報処理システム
。
【請求項5】
前記出力手段は、前記検出手段で検出された物品が前記検出ラインから前記所定のエリアに入って、前記検出ラインから出た場合は、前記棚から出入りした物品の数を増減しないこと
を特徴とする請求項1乃至
4のいずれか1項に記載の情報処理システム。
【請求項6】
前記出力手段は、前記物品が前記所定のエリアに入って第2の条件を満たすと、物品の数を増やす結果を出力すること
を特徴とする請求項1乃至
5に記載の情報処理システム。
【請求項7】
前記第2の条件とは、前記物品が前記検出ラインを通過して、前記所定のエリアを出ること
を特徴とする請求項
6に記載の情報処理システム。
【請求項8】
前記出力手段は、前記検出手段で検出された物品が前記所定のエリアに入って前記第2の条件を満たさない場合は、前記棚から出入りした物品の数を増減しないこと
を特徴とする請求項
6又は
7に記載の情報処理システム。
【請求項9】
前記検出ラインは前記撮像画像上の前記棚の出入口に設定すること
を特徴とする請求項1乃至
8のいずれか1項に記載の情報処理システム。
【請求項10】
前記出力手段は、複数の列で構成される前記棚の物品の数を、前記検出ラインを通過した時に、前記棚の列毎の物品の数を増減すること
を特徴とする請求項1乃至
9のいずれか1項に記載の情報処理システム。
【請求項11】
撮像部と通信可能な情報処理システムにおける制御方法であって、
前記撮像部により撮像する棚の前方方向の撮像画像に所定のエリアを設定し、該撮像部により撮像した画像に基づき、前記所定のエリアにおいて、物品を検出する検出ステップと、
前記検出ステップにより前記所定のエリアにおいて物品を検出する場合、前記物品が予め設定された検出ラインを通過して第1の条件を満たすことにより、前記棚から出入りした物品の数の増減の結果を出力する出力ステップ
を有し、
前記検出ステップは、前記物品の高さ情報を取得し、
前記検出ラインは、高さの異なる棚毎に複数設定されており、
前記出力ステップは、前記検出ステップにより取得された物品の高さ情報により、前記複数の高さの異なる棚毎に設定された検出ラインを選択し、該物品が選択された検出ラインを通過した際に、前記複数の高さの異なる棚から該当する棚に出入りした物品の数として増減の結果を出力することを特徴とする情報処理システムの制御方法。
【請求項12】
複数の段を有する棚における物品の取り出し口の前方を撮影範囲として撮影手段で撮影した画像を取得する画像取得手段と、
前記画像取得手段で取得した画像のうち、前記取り出し口の前方に設定された所定の範囲における物品の位置を検出する検出手段と、
前記画像取得手段で取得した画像から検出された前記物品の前記段の方向の深度を取得する深度取得手段と、
前記深度取得手段によって取得した深度に基づいて、前記複数の段のそれぞれに対応して設定された幅の異なる複数の検出ラインのうちいずれかを選択する選択手段と、
前記選択手段で選択された検出ラインを前記物品が通過したことが検出され、その後、前記物品が前記所定の範囲のうち前記取り出し口に近い第1の側から前記取り出し口から遠い第2の側に向かう方向へ所定条件を満たすように移動したことに応じて、前記物品が前記棚から取り出されたことに対応する情報を出力するように制御する制御手段と、
を有することを特徴とする情報処理システム。
【請求項13】
前記所定条件は、前記物品が前記所定の範囲のうち前記取り出し口に近い第1の側から前記取り出し口から遠い第2の側に向かう方向へ閾値以上移動することである
ことを特徴とする請求項1
2に記載の情報処理システム。
【請求項14】
前記制御手段は、前記選択手段で選択された検出ラインを前記物品が通過したことが検出され、その後、前記物品が前記所定の範囲のうち前記取り出し口に近い第1の側から前記取り出し口から遠い第2の側に向かう方向へ移動しても、前記所定条件を満たさない場合には前記物品が前記棚から取り出されたことに対応する情報を出力しないことを特徴とする請求項1
2または1
3に記載の情報処理システム。
【請求項15】
前記制御手段は、前記物品が前記所定の範囲で検出され、その後、前記物品が前記所定の範囲のうち前記第2の側から前記第1の側に向かう方向へ第2の条件を満たすように移動したことに応じて、前記物品が前記棚に入ったことに対応する情報を出力するように制御することを特徴とする請求項1
2に記載の情報処理システム。
【請求項16】
前記制御手段は、前記選択手段で選択された検出ラインを通過した際の前記物品の前記段の方向の深度に基づく情報を出力するように制御することを特徴とする請求項1
2乃至1
5のいずれか1項に記載の情報処理システム。
【請求項17】
前記複数の検出ラインはそれぞれ、前記取り出し口に沿った方向の幅が異なることを特徴とする請求項1
3乃至
16のいずれか1項に記載の情報処理システム。
【請求項18】
複数の段を有する棚における物品の取り出し口の前方を撮影範囲として撮影手段で撮影した画像を取得する画像取得ステップと、
前記画像取得ステップで取得した画像のうち、前記取り出し口の前方に設定された所定の範囲における物品の位置を検出する検出ステップと、
前記画像取得ステップで取得した画像から検出された前記物品の前記段の方向の深度を取得する深度取得ステップと、
前記深度取得ステップによって取得した深度に基づいて、前記複数の段のそれぞれに対応して設定された幅の異なる複数の検出ラインのうちいずれかを選択する選択ステップと、
前記選択ステップで選択された検出ラインを前記物品が通過したことが検出され、その後、前記物品が前記所定の範囲のうち前記取り出し口に近い第1の側から前記取り出し口から遠い第2の側に向かう方向へ所定条件を満たすように移動したことに応じて、前記物品が前記棚から取り出されたことに対応する情報を出力するように制御する制御ステップと、
を有することを特徴とする情報処理システムの制御方法。
【請求項19】
少なくとも1つのコンピュータを、請求項1乃至1
0、1
2乃至1
7のいずれか1項に記載の情報処理システムの各手段として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、撮像部により棚の在庫を管理する情報処理装置、情報処理方法、及びプログラムに関する。
【背景技術】
【0002】
近年、小売、物流などのロジスティック業界において、人材不足や物流効率化の観点で、これまで以上に精緻かつ効率的な在庫管理が求められている。特に商品在庫を保管している棚においては現状の在庫数のカウントは現在も人手中心で行われている。
【0003】
こうした課題を解決する手段として、RFIDが知られている。RFIDは商品在庫一つずつにRFタグと呼ばれるICチップを取り付け、無線通信により商品在庫をカウントする仕組みである。
【0004】
しかし実際の運用においては、商品一つずつにRFタグを取り付けるための物理コストや人的コストが発生し、大抵の小売・物流現場において運用に見合うだけのコストパフォーマンスを得られないというのが現状である。
【0005】
また棚に重量センサを取り付けて商品数をカウントする技術も知られている。しかしながら棚一つずつに重量センサを取り付けるコストが見合わないことや、商品による重さのばらつきにより正確な在庫数がカウントできないという問題がある。
【0006】
こうした中、コンピュータビジョン(画像処理)技術を使って棚の在庫管理を行う技術が考案されている。特許文献1には、材料取扱施設を有する在庫場所における物品の除去または配置を追跡するシステムが開示されている。
【先行技術文献】
【特許文献】
【0007】
【発明の開示】
【発明が解決しようとする課題】
【0008】
特許文献1には、顧客が商品棚から商品を取る際の画像から顧客の手の位置を検出することでどの商品が棚から取られたかを判断する技術が記載されている。
【0009】
しかしながら、上記の技術の場合、在庫場所を撮像する撮像装置かあるいは在庫状況を検出する存在検出装置が必要になる。棚の一段毎、或いは、棚の一列毎に撮像装置か存在検出装置を配置しなければならないため、コストが高くなってしまう課題がある。
【0010】
そこで、本発明は、撮像部を用いて、棚からの出し入れにかかる物品の管理をすることを目的とする。
【課題を解決するための手段】
【0011】
撮像部と通信可能な情報処理システムであって、
前記撮像部により撮像する棚の前方方向の撮像画像に所定のエリアを設定し、該撮像部により撮像した画像に基づき、前記所定のエリアにおいて、物品を検出する検出手段と、
前記検出手段により前記所定のエリアにおいて物品を検出する場合、前記物品が予め設定された検出ラインを通過して第1の条件を満たすことにより、前記棚から出入りした物品の数の増減の結果を出力する出力手段を有し、
前記検出手段は、前記物品の高さ情報を取得し、
前記検出ラインは、高さの異なる棚毎に複数設定されており、
前記出力手段は、前記検出手段により取得された物品の高さ情報により、前記複数の高さの異なる棚毎に設定された検出ラインを選択し、該物品が選択された検出ラインを通過した際に、前記複数の高さの異なる棚から該当する棚に出入りした物品の数として増減の結果を出力することを特徴とする。
【発明の効果】
【0012】
本発明によれば、撮像部を用いて、棚からの出し入れにかかる物品の管理ができるという効果を奏する。
【図面の簡単な説明】
【0013】
【
図1】本発明の実施形態に係る在庫管理システムの概略を示す構成図である。
【
図2】本発明の実施形態に係る情報処理装置102、各種サーバのハードウェアの構成を示す構成図である。
【
図3】本発明の実施形態に係るネットワークカメラ101のハードウェアの構成を示す構成図である。
【
図4】本発明の実施形態に係る情報処理装置102における在庫管理を行う処理概要を示すフローチャートである。
【
図5】本発明の実施形態に係る情報処理装置102における商品在庫追従の処理概要を示すフローチャートである。
【
図6】本発明の実施形態に係る情報処理装置102における商品取り出しの処理概要を示すフローチャートである。
【
図7】本発明の実施形態に係る情報処理装置102における商品戻しの処理概要を示すフローチャートである。
【
図8】本発明の実施形態における商品棚と商品を取り出す領域(仮想グリッド領域)のイメージを説明する模式図である。
【
図9】本発明の実施形態における商品棚と商品取り出し開始時の処理イメージを説明する模式図である。
【
図10】本発明の実施形態における商品棚と商品取り出し中の処理イメージを説明する模式図である。
【
図11】本発明の実施形態における商品棚と商品取り出し終了時の処理イメージを説明する模式図である。
【
図12】本発明の実施形態における商品棚と商品戻し開始時の処理イメージを説明する模式図である。
【
図13】本発明の実施形態における商品棚と商品戻し中の処理イメージを説明する模式図である。
【
図14】本発明の実施形態における商品棚と商品戻し終了時の処理イメージを説明する模式図である。
【
図15】本発明の実施形態における商品を取り出す領域(仮想グリッド領域)内で別の種類の商品を検出するイメージを説明する模式図である。
【
図16】本発明の実施形態における商品を取り出す領域(仮想グリッド領域)内で同一種類の別の商品を検出するイメージを説明する模式図である。
【
図17】本発明の実施形態における高さ方向がある商品棚と商品を取り出す領域(仮想グリッド領域)のイメージを説明する模式図である。
【
図18】本発明の実施形態における情報処理装置が有する、商品の検出される仮想グリッドの座標と深度との関係から入出庫される棚を特定するためのデータの一例である。
【
図19】本発明の実施形態における商品棚の在庫数を記憶するデータテーブルの一例である。
【
図20】本発明の実施形態に係る情報処理装置102における在庫管理を行う第2の実施形態の処理概要を示すフローチャートである。
【
図21】本発明の実施形態に係る情報処理装置102における商品在庫追従の第2の実施形態の処理概要を示すフローチャートである。
【
図22】本発明の実施形態における高さ方向に複数の棚を有する商品棚と商品を取り出す領域(検出エリア)のイメージを説明する模式図である。
【
図23】本発明の実施形態に係る情報処理装置102に記憶されている一連の商品画像の例である。
【発明を実施するための形態】
【0014】
<第1の実施形態>
以下、図面を参照して、本発明の実施形態について説明する。
【0015】
図1は、本発明の実施形態に係る在庫管理システムの概略を示す構成図である。
【0016】
在庫監視システム105は、ネットワークカメラ101とカメラで撮像した画像を処理する情報処理装置102が接続されており、ネットワークカメラ101は商品棚103の取り出し口を上から下へ向かって撮像する。商品棚103には商品104が陳列されている。なお、ネットワークカメラ101は取り出し口を上から下へ向かって撮像する例で記載しているが、取り出し口を横から撮像してもよいし、斜め上から撮像してもよい。本実施形態では、取り出し口を上から下へ向かって撮像する例で説明する。
【0017】
在庫監視システム105により監視された商品の状況は、ネットワーク106を介して、たとえばクラウド上の在庫管理サーバ107で計数され、在庫状況をユーザに提供する。なお、
図1では、在庫管理サーバ107を情報処理装置102と別筐体で説明しているが、それぞれを1つの筐体としてもよい。すなわち、情報処理装置102内に在庫管理サーバ107の機能を備えていてもよく、また、在庫管理サーバ107に情報処理装置102の有する撮像画像を処理する機能を有していてもよい。
【0018】
情報処理装置102は、
図1のように1台のネットワークカメラ101から情報を取得して在庫管理サーバ107に送信してもよいし、複数台のネットワークカメラ101に接続され複数のネットワークカメラ101の情報を収集して在庫管理サーバ107に送信してもよい。
【0019】
次に
図2を用いて、情報処理装置102のハードウェアの概略構成を説明する。
【0020】
図2は、本発明の実施形態に係る情報処理装置102、各種サーバのハードウェアの構成を示す構成図である。
【0021】
CPU201は、システムバス204に接続される各デバイスやコントローラを統括的に制御する。
【0022】
また、ROM202あるいは外部メモリ211には、CPU201の制御プログラムであるBIOS(Basic Input / Output System)やオペレーティングシステムプログラム(以下、OS)や、画像処理サーバ108の実行する機能を実現するために必要な後述する各種プログラム等が記憶されている。RAM203は、CPU201の主メモリ、ワークエリア等として機能する。
【0023】
CPU201は、処理の実行に際して必要なプログラム等をRAM203にロードして、プログラムを実行することで各種動作を実現するものである。
【0024】
また、入力コントローラ(入力C)205は、入力部209としてのキーボードや不図示のマウス等のポインティングデバイスからの入力を制御する。
【0025】
ビデオコントローラ(VC)206は、表示部210としてのCRTディスプレイ(CRT)等の表示器への表示を制御する。表示器はCRTだけでなく、液晶ディスプレイでも構わない。これらは必要に応じて管理者が使用するものである。本発明には直接関係があるものではない。
【0026】
メモリコントローラ(MC)207は、ブートプログラム、ブラウザソフトウエア、各種のアプリケーション、フォントデータ、ユーザファイル、編集ファイル、各種データ等を記憶するハードディスク(HD)やフロッピーディスク(登録商標 FD)或いはPCMCIAカードスロットにアダプタを介して接続されるコンパクトフラッシュ(登録商標)メモリ等の外部メモリ211へのアクセスを制御する。
【0027】
通信I/Fコントローラ(通信I/FC)208は、ネットワークを介して、外部機器と接続・通信するものであり、ネットワークでの通信制御処理を実行する。例えば、TCP/IPを用いたインターネット通信等が可能である。また、ネットワークカメラ101とネットワークを介して接続できる通信I/Fコントローラの機能をも有する。
【0028】
なお、CPU201は、例えばRAM203内の表示情報用領域へアウトラインフォントの展開(ラスタライズ)処理を実行することにより、表示部210上での表示を可能としている。また、CPU201は、表示部210上の不図示のマウスカーソル等でのユーザ指示を可能とする。
【0029】
本発明を実現するためのプログラムは、外部メモリ211に記録されており、必要に応じてRAM203にロードされることによりCPU201によって実行されるものである。さらに、本発明に係わるプログラムが用いる定義ファイル及び各種情報テーブルは、外部メモリ211に格納されており、これらについての詳細な説明は後述する。
【0030】
次に
図3を用いて、ネットワークカメラ101のハードウェアの概略構成を説明する。
【0031】
図3は、ネットワークカメラ101のハードウェアの構成を示す構成図である。
【0032】
CPU301は、システムバス304に接続される各デバイスやコントローラを統括的に制御する。
【0033】
また、ROM302には、CPU301の制御プログラムであるBIOS(Basic Input / Output System)やオペレーティングシステムプログラム(以下、OS)や、情報処理装置102に送信するデータを生成する機能を実現するために必要な各種プログラム等が記憶されている。RAM303は、CPU301の主メモリ、ワークエリア等として機能する。
【0034】
CPU301は、処理の実行に際して必要なプログラム等をRAM303にロードして、プログラムを実行することで各種動作を実現するものである。
【0035】
RGBカメラ部307は、画像処理部308と接続されており、監視対象に対して向けられたレンズを透過して得られた光をCCDやCMOS等の受光セルによって光電変換を行った後、RGB信号や補色信号を画像処理部308に対して出力する。
【0036】
画像処理部308は、RGB信号や捕色信号に基づいて、ホワイトバランス調整、ガンマ処理、シャープネス処理を行い、更に、YC信号処理を施して輝度信号Yとクロマ信号(以下、YC信号)を生成し、YC信号を所定の圧縮形式(例えばJPEGフォーマット、あるいはMotionJPEGフォーマット等)で圧縮し、この圧縮されたデータは、画像データとしてRAM303へ一時保管される。
【0037】
TOFセンサ305は、TOF(Time-of-Flight)方式で対象物までの距離を測定するイメージセンサであり、光(赤外線レーザーまたはLED)が被写体で反射してセンサに戻るのに要する時間を深度計測部306とともに測定することによって、被写体の距離を計測する。なお、商品の深度を測定する手段としては、RGBカメラ307を二台構成しステレオカメラによって深度を測定してもよいし、画像処理や深層学習を用いた二次元画像解析結果から深度を推定する方式をとっても良い。
【0038】
通信I/Fコントローラ(通信I/FC)309は、ネットワークを介して、外部機器と接続・通信するものであり、ネットワークでの通信制御処理を実行しており、RAM303に記憶された画像データは、通信I/Fコントローラ309によって外部機器である情報処理装置102へ送信される。
【0039】
次に、
図4~
図7を参照して、本願発明の第1の実施形態の在庫管理処理の流れを説明する。
【0040】
図4は、本発明の実施形態に係る情報処理装置102における在庫管理を行う処理概要を示すフローチャートであり、図中のS401~S407は各ステップを示す。各ステップの処理は、情報処理装置102の外部メモリ211に格納されたアプリケーションプログラムを、それぞれのシステムのCPU201がRAM203上にロードして実行することにより実現される。
【0041】
図4のフローチャートは、ネットワークカメラ101と情報処理装置102が起動されると開始される処理の流れである。なお、以後のフローチャートにおいて、情報処理装置102は、ネットワークカメラ101からネットワークを通じて随時データを取得することができるものとする。
【0042】
図4のフローチャートの処理に入る前に、まず情報処理装置102のCPU201は、ネットワークカメラ101のRGBカメラ307により得られる商品棚の取り出し口部分の撮像画像を取得する。
【0043】
次に、ステップS401において、情報処理装置102のCPU201は、取得した撮像画像を元に、商品棚のレーンに合わせた仮想グリッドが設定される。
図8、
図17、
図18を参照して、仮想グリッド設定の一例を説明する。
【0044】
図8は、本発明の実施形態における商品棚と商品を取り出す領域(仮想グリッド領域)のイメージを説明する模式図である。
【0045】
図8の103が商品棚、104が商品の例であり、撮像範囲である404が、商品取り出し口に該当する。以後の
図8~
図17は、商品棚からの取り出し口を上方から撮像しているイメージで説明するが、商品棚からの取り出し口を横から撮像しているイメージでも構わない。その場合、後述する
図18は、商品の座標と深度が入れ替わることになる。
【0046】
図8の商品棚103には商品毎に配置されているレーン410があり、そのレーンの境となる位置405や406が存在する。
【0047】
境の位置405や406を撮像範囲404に延長した境目を407、408と設定し、それぞれを区切る仮想グリッド401が撮像範囲404に作成される。すなわち、各商品棚のレーン毎に取り出しレーンとして、仮想グリッドを設定している。
【0048】
これらの処理を複数段の棚に対して行った結果が
図17である。
【0049】
図17は、本発明の実施形態における高さ方向がある商品棚と商品を取り出す領域(仮想グリッド領域)のイメージを説明する模式図である。
【0050】
図17の商品棚103は複数段から構成されており、
図17では3段の棚が存在する例である。
【0051】
図17の3段の棚の仮想グリッドは、段数によって異なり、一段目の商品のレーンの境は1204、二段目のレーンの境は1205、三段目のレーンの境は1206である。それぞれの段での仮想グリッドの境は、一段目のそれが1207、二段目のそれが1208、三段目のそれが1209と設定されている。
【0052】
図17のように3段の棚の仮想グリッドを設定し、それぞれの棚の位置を関係づけたデータを
図18を参照して説明する。
【0053】
図18は、本発明の実施形態における情報処理装置が有する、商品の検出される仮想グリッドの座標と深度との関係から出入りする棚を特定するためのデータの一例である。
【0054】
図18の1800は深度計測部306から得られる深度1801とRGBカメラにより取得する商品位置の座標1802から、出入りする商品棚の位置を特定するデータであり、たとえば、深度が20cmの高さで出入りした商品でグリッド座標(
図17の左右方向の座標で、中心を原点としている)が70の位置だった場合、一段目のグリッドC(すなわちグリッドC-1)から出入りしたと判断する。また、深度が80cmの高さで出入りした商品でグリッド座標が-60の位置であった場合、三段目のグリッドA(すなわちグリッドA-3)から出入りしたと判断する。なお、出入りの向きに関しては次のステップS402で後述する。
【0055】
図18のように、商品の出入りする棚の位置を記憶するテーブルを有している。このテーブルはユーザにより手動で入力されてもよいし、ステップS401の処理の前に撮像された画像の商品棚の境(仕切り)などから自動的に設定されても良い。
図4のフローチャートの説明に戻る。
【0056】
次の
図4のステップS402において、情報処理装置102のCPU201は、仮想グリッド内を移動する商品の向きから、商品が取り出されている方向を設定する。
図8を参照して説明する。
【0057】
図8において、商品棚103の位置が図面の下にあり、取り出し口側(仮想グリッド側)404は図面の上側にあるので、商品の取り出し方向は座標軸420のY軸方向に+向きである402のように上向き方向と設定される。この取り出し方向の設定は、ユーザが手動で設定してもよく、また撮像画面上(
図8)での商品棚103の位置を指定することで設定されても良い。
図4のフローチャートの説明に戻る。
【0058】
次に、
図4のステップS403において、情報処理装置102のCPU201は、ステップS401により設定された仮想グリッドに対応する商品棚のレーンの在庫数の入力を受け付ける。
図8と
図19を参照して説明する。
【0059】
図8の仮想グリッドが設定されている場合の各仮想グリッドに対応する商品棚のレーンの在庫がたとえば、グリッドAが10個(411)、グリッドBが5個(412)、グリッドCが1個(413)であった場合、ユーザは情報処理装置102の入力部209から在庫数を入力してそれぞれのレーンの在庫数を設定する。設定された在庫数を記憶するデータの例を
図19を参照して説明する。
【0060】
図19は、本発明の実施形態における商品棚の在庫数を記憶するデータテーブルの一例である。
【0061】
図19のテーブルには、
図8の一段目における在庫数が設定されており、それぞれグリッドAに10個、グリッドBに5個、グリッドCに1個というデータが登録されている。なお、
図19のテーブルは情報処理装置102で記憶していてもよいし、在庫管理サーバ107で記憶していても良い。
図4のフローチャートの説明に戻る。
【0062】
次の
図4のステップS404において、情報処理装置102のCPU201は、ネットワークカメラ101に撮像(画像キャプチャ)を開始する命令を送信して、撮像を開始する。
【0063】
次のステップS405において、情報処理装置102のCPU201は、撮像された仮想グリッド401内で商品を検出したかを判定する。商品の検出は、たとえば
図8のようにネットワークカメラを上部に取り付けている場合は、予め記憶されている商品の上からの形状を記憶しておき、SIFT(Scale-Invariant Feature Transform)アルゴリズムによる画像マッチングで検出してもよい。また、予め商品の上からの様々な画像を学習データとして登録して機械学習させ、画像認識AIを使って商品を検出しても良い。
【0064】
ステップS405において、商品を検出した場合は、ステップS406へと処理を移行し、商品を検出しない場合はステップS407へと処理を移行する。
【0065】
ステップS406へと処理を移行すると、情報処理装置102のCPU201は、ステップS405で検出した商品の在庫状況を把握するための商品追従処理を行う。ステップS406の処理内容を
図5を参照して説明する。
【0066】
図5は、本発明の実施形態に係る情報処理装置102における商品在庫追従の処理概要を示すフローチャートであり、図中のS501~S514は各ステップを示す。各ステップの処理は、情報処理装置102の外部メモリ211に格納されたアプリケーションプログラムを、それぞれのシステムのCPU201がRAM203上にロードして実行することにより実現される。
【0067】
図5のフローチャートは、
図4のフローチャートのステップS406へと遷移した際に開始される処理の流れである。
【0068】
まず、
図5のステップS501において、情報処理装置102のCPU201は、ネットワークカメラ101から取得した撮像画像(キャプチャ)から、検出された商品の場所(座標)を取得し、開始座標として記憶する。具体的な商品イメージを参照した説明は
図9~
図14で後述する。
【0069】
次に、ステップS502において、情報処理装置102のCPU201は、ネットワークカメラ101が備えるTOFセンサ305により、検出された商品の高さ(深度)を取得し、開始深度として記憶する。
【0070】
次に、ステップS503において、情報処理装置102のCPU201は、ネットワークカメラ101から次の撮像画像(キャプチャ)を取得する。
【0071】
次に、ステップS504において、情報処理装置102のCPU201は、ステップS503において撮像された仮想グリッド401内で前回と同じ種類の商品を検出したかどうかを判断する。同じ種類の商品を検出した場合はステップS505に遷移し、同じ種類の商品を検出しない場合はステップS509へと処理を遷移する。なお、ステップS503で撮像された仮想グリッド401内で前回と異なる種類の商品を検出した場合(
図15のような場合)は、異なる種類の商品について、
図5のフローチャートをステップS501から実施する。
【0072】
ステップS505の処理へ遷移した場合、情報処理装置102のCPU201は、ステップS503で撮像された撮像画像(キャプチャ)から、検出された商品の場所(座標)を取得し、現在座標として記憶する。また、1回前に取得した現在座標と商品の種類も「1つ前に取得した現在座標」と前回の商品の種類として記憶しておく。
【0073】
次に、ステップS506において、情報処理装置102のCPU201は、ステップS503で撮像された際に検出した商品の高さ(深度)を取得し、現在深度として記憶する。
【0074】
次に、ステップS507において、情報処理装置102のCPU201は、「1つ前に取得した現在座標」と、ステップS505で新たに取得した現在座標との距離を比較し、距離が所定の閾値以上の商品しかない場合、ステップS510に遷移する。一方、「1つ前に取得した現在座標」とステップS505で新たに取得した現在座標との距離が閾値以内にある商品があれば、ステップS508へと処理を遷移する。具体的な例は、
図16を参照して後述する。
【0075】
ステップS507の判断分岐は、同じ種類の商品が仮想グリッド401内に同時に複数個入ってきた場合に発生する判断分岐であり、2つの距離が閾値以上とは、すなわちそれぞれの個体が別のものであると判断された場合を意味する。2つの距離が閾値以内であれば、「1つ前に取得した現在座標」の商品と新たにステップS505で検出した商品は同じ個体として認識する(ステップS508の処理)。
【0076】
ステップS508の処理の後はステップS503へと処理を戻し、仮想グリッド401内の撮像画像を取得する処理から繰り返す。
【0077】
一方、ステップS504において、仮想グリッド401内で前回と同じ種類の商品を検出しない場合はステップS509へと処理を遷移する。
【0078】
ステップS509に遷移すると、情報処理装置102のCPU201は、所定回数以上、同じ商品が検出できなかったかの判断を行う。所定回数以上同じ商品を検出できなければ、ステップS510へと処理を遷移し、所定回数以内に同じ商品を検出できた場合は、ステップS503へと処理を戻す。
【0079】
ステップS509の判断分岐は、仮想グリッド401内に商品があるにもかかわらず、撮像部での撮像画像が残像や光の外乱などにより一時的に商品検出できない場合でも、商品が仮想グリッド401外に出たと判断しないための判断分岐になる。
【0080】
次のステップS510には、ステップS509で現在座標が1回以上記憶されている(ステップS509でYES)か、ステップS507で「1つ前に取得した現在座標」と新たにステップS505で検出した現在座標との距離が閾値以上離れている場合に遷移する。
【0081】
ステップS510において、情報処理装置102のCPU201は、ステップS501で取得した商品の最初の検出位置である開始座標と、ステップS505で最後に取得した商品の検出位置である「最後の現在座標」とから、商品の移動の向きを算出する。
【0082】
次に、ステップS511において、情報処理装置102のCPU201は、ステップS510で算出された向きにより処理を分ける。
【0083】
開始座標と「最後の現在座標」との向きが同じ場合、たとえば、
図8の座標軸420のY軸方向の仮想グリッドの中心からの向きが一緒の場合は、
図5のフローチャートの処理を終える。この判断は、商品が仮想グリッド内に入ったが、出入りはしなかった場合(たとえば、顧客が棚から商品を出して購入を検討したが、やはり購入を止めて棚に戻した場合など)の判断分岐になる。
【0084】
また、ステップS511において、商品の移動の向きが取り出す向き402であった場合は、ステップS512へと処理を遷移する。
【0085】
一方、ステップS511において、商品の移動の向きが戻す向き(取り出す向きと反対)であった場合は、ステップS513へと処理を遷移する。
【0086】
ステップS512へと処理を遷移すると、情報処理装置102のCPU201は、商品取り出し処理を行い、ステップS514へと処理を遷移する。詳細な処理は
図6で後述する。
【0087】
また、ステップS513へと処理を遷移すると、情報処理装置102のCPU201は、商品戻し処理を行い、ステップS514へと処理を遷移する。詳細な処置は
図7で後述する。
【0088】
ステップS514へと処理を遷移すると、情報処理装置102のCPU201は、ステップS512やステップS513で特定された棚の在庫数を変更するべく、在庫管理サーバに報知して、
図5のフローチャートを終える。
図4のフローチャートの説明に戻る。
【0089】
ステップS406において、ステップS405で検出した商品の在庫状況を把握するための商品追従処理を行った後、次のステップS407において、商品在庫の確認のためのネットワークカメラ101の撮像処理を終了するかどうか判断する。撮像処理を継続する場合は、ステップS404へと処理を戻し、ステップS404からの処理を繰り返す。一方、撮像処理を終了するとユーザから指示があった場合は撮像処理を中止して本発明の処理を終了する。
【0090】
次に、
図6を参照して、商品を取り出す棚の位置を特定する処理を説明する。
【0091】
図6は、本発明の実施形態に係る情報処理装置102における商品取り出しの処理概要を示すフローチャートであり、図中のS601~S602は各ステップを示す。各ステップの処理は、情報処理装置102の外部メモリ211に格納されたアプリケーションプログラムを、それぞれのシステムのCPU201がRAM203上にロードして実行することにより実現される。
【0092】
図6のフローチャートは、
図5のフローチャートのステップS512へと遷移した際に開始される処理の流れである。
【0093】
まず、
図6のステップS601において、情報処理装置102のCPU201は、ステップS502で取得した開始深度から取り出した棚の段数を特定する。具体的に
図18を参照して説明すると、たとえばステップS502で取得した商品の深度が20cmであれば、1801と1803のデータから、取り出された棚の高さは一段目であることを特定する。
【0094】
次に、ステップS602において、情報処理装置102のCPU201は、ステップS501で取得した開始座標から取り出した棚の位置を特定する。具体的に
図18を参照して説明すると、たとえば、ステップS501で取得した商品のグリッド座標が80であれば、1802のデータから、一段目のグリッド座標が80であるC-1、すなわち一段目のCの棚であることが特定される。
【0095】
上記の例では、一段目のCの棚から商品が取り出されたことが特定される。
【0096】
以上の処理により、顧客が商品を取り出した棚の位置を特定することができる。
【0097】
次に、
図7を参照して、商品を戻した棚の位置を特定する処理を説明する。
【0098】
図7は、本発明の実施形態に係る情報処理装置102における商品取り出しの処理概要を示すフローチャートであり、図中のS701~S702は各ステップを示す。各ステップの処理は、情報処理装置102の外部メモリ211に格納されたアプリケーションプログラムを、それぞれのシステムのCPU201がRAM203上にロードして実行することにより実現される。
【0099】
図7のフローチャートは、
図5のフローチャートのステップS513へと遷移した際に開始される処理の流れである。
【0100】
まず、
図7のステップS701において、情報処理装置102のCPU201は、ステップS506で取得した最後の現在深度から戻された棚の段数を特定する。具体的に
図18を参照して説明すると、たとえばステップS502で取得した商品の深度が80cmであれば、1801と1803のデータから、戻された棚は三段目であることを特定する。
【0101】
次に、ステップS702において、情報処理装置102のCPU201は、ステップS505で取得した最後の現在座標から取り出した棚の位置を特定する。具体的に
図18を参照して説明すると、たとえば、ステップS501で取得した商品のグリッド座標が80であれば、1802のデータから、三段目のグリッド座標が80であるC-3、すなわち三段目のCの棚であることが特定される。
【0102】
上記の例では、三段目のCの棚に商品が戻されたことが特定される。
【0103】
以上の処理により、顧客が商品を戻した棚の位置を特定することができる。
【0104】
次に、
図9~
図14を参照して具体的に商品が棚から出入りするイメージより商品の出入りの棚の位置を特定する処理を説明する。
【0105】
図9は、本発明の実施形態における商品棚と商品取り出し開始時の処理イメージを説明する模式図である。
【0106】
図9において、商品104が仮想グリッド内401において801のように検出される(ステップS405の処理)と、まず、商品の開始座標802を特定する(ステップS501の処理)。続いて、商品の開始深度も特定し(ステップS502の処理)、それぞれの値を記憶する。
【0107】
図10は、本発明の実施形態における商品棚と商品取り出し中の処理イメージを説明する模式図である。
【0108】
図10において、商品104が仮想グリッド内を移動する際に仮想グリッドから存在しなくなるまで、現在座標802~804の現在座標を取得し続ける(ステップS505の処理)。
【0109】
図11は、本発明の実施形態における商品棚と商品取り出し終了時の処理イメージを説明する模式図である。
【0110】
図11において、商品104の現在座標が805のように仮想グリッドから存在しなくなった場合(ステップS504の判断分岐のNOへ遷移)、最後の仮想グリッド内の現在座標として、804が設定される(ステップS510の処理)。
【0111】
続いて、商品の開始座標801と最後の現在座標804の情報から商品の移動の向き806を算出する。
図11の場合は
図8の402の取り出し方向と同じなので、取り出す向きと特定する(ステップS510の処理)。
【0112】
図9から
図11のイメージのように商品が移動した場合、ステップS511では取り出す向きに移動したと判断し、ステップS512の処理(すなわち、
図6の処理)へと遷移する。
【0113】
図11の場合は、開始座標801と同じ時に取得した開始深度から取り出した棚の位置を特定する(
図6のステップS601、S602の処理)。
図11では、グリッドB(中央の棚)から1つ商品が取り出されているので、807のように在庫数を5から4に減らしている。この在庫数を減らす情報を在庫管理サーバ107に送信する(ステップS514の処理)。
【0114】
以上のイメージで示すように、棚の取り出し口を撮像することで、商品の取り出し状況を把握することができる。
【0115】
次に、商品が棚に戻される場合の処理イメージを
図12~
図14を参照して説明する。
【0116】
図12は、本発明の実施形態における商品棚と商品戻し開始時の処理イメージを説明する模式図である。
【0117】
図12において、商品104が仮想グリッド内401において901のように最初に検出される(ステップS405の処理)と、まず、商品の開始座標901を特定する(ステップS501の処理)。続いて、商品の開始深度も特定し(ステップS502の処理)、それぞれの値を記憶する。
【0118】
図13は、本発明の実施形態における商品棚と商品戻し中の処理イメージを説明する模式図である。
【0119】
図13において、商品104が仮想グリッド内を移動する際に仮想グリッドから存在しなくなるまで、現在座標902~905の現在座標を取得し続ける(ステップS505の処理)。続いて、現在深度の値も取得し続ける。
【0120】
図14は、本発明の実施形態における商品棚と商品戻し終了時の処理イメージを説明する模式図である。
【0121】
図14において、商品104の現在座標が906のように仮想グリッドから存在しなくなった場合(ステップS504の判断分岐のNOへ遷移)、最後の仮想グリッド内の現在座標として、905が設定される(ステップS510の処理)。
【0122】
続いて、商品の開始座標901と最後の現在座標905の情報から商品の移動の向き907を算出する。
図14の場合、商品の移動の向き907は
図8の402の取り出し方向と反対なので、戻す向きと特定する(ステップS510の処理)。
【0123】
図12から
図14のイメージのように商品が移動した場合、ステップS511では戻す向きに移動したと判断し、ステップS513の処理(すなわち、
図7の処理)へと遷移する。
【0124】
図14の場合は、最後の現在座標905と同じ時に取得した開始深度から取り出した棚の位置を特定する(
図7のステップS701、S702の処理)。
図14の例では、グリッドA(左の棚)に1つ商品が戻されているので、908のように在庫数を当初の10から11に増やしている。この在庫数を増やす情報を在庫管理サーバ107に送信する(ステップS514の処理)。
【0125】
以上のイメージで示すように、棚の取り出し口を撮像することで、商品の戻し状況を把握することができる。
【0126】
次に、
図16を参照して、ステップS507およびステップS508の処理のイメージを説明する。
【0127】
図16は、本発明の実施形態における商品を仮想グリッド領域401内で同一種類の別の商品を検出するイメージを説明する模式図である。
【0128】
図16のイメージは、商品104を1102において検出した(ステップS501)後で、次の撮像処理(ステップS503)において、同じ商品が1103と1104で検出された場合の例である。
【0129】
図16において、商品の移動を示す閾値が1101の場合、開始座標1102と現在座標1104とは距離が閾値以上に離れており(1106)、一方現在座標1103は閾値以内である(1105)ので、開始座標1102から移動した商品は1103へ移動したと判断する。閾値は顧客が商品を移動させる速度と撮像処理を行う時間間隔から設定される。この閾値は、商品棚のレーン間隔(
図8の405と406の間の距離)よりも短い必要があるので、顧客の商品移動速度との関係で、撮像処理を行う時間間隔を設定するようにしても良い。
【0130】
以上の処理により、撮像のフレームレートが遅く、商品を追跡する速度に限度がある場合に、2つの商品が認識されても閾値1101以上離れていれば、2つの商品を識別して棚の出し入れを管理することができる。
<第2の実施形態>
第1の実施形態では、撮像部(ネットワークカメラ)101による撮像画像から商品を識別後に商品の追跡を行っている。第2の実施形態では、商品の識別を商品の追跡後に行うことにより、撮像画像からの商品識別の手順を撮像時毎に行う処理を省き、撮像部のフレームレートを上げることができる。すなわち、第2の実施形態では、商品が検出エリア(仮想グリッド)401から出ると、蓄積した画像からまとめて商品の識別処理を行うことにより、撮像時毎の商品識別処理を防ぎ、撮像部のフレームレートを上げている。
図20、
図21を参照して、本願発明の第2の実施形態の在庫管理処理の流れを説明する。
【0131】
図20は、本発明の実施形態に係る情報処理装置102における在庫管理を行う第2の実施形態の処理概要を示すフローチャートであり、図中のS2001~S2003は各ステップを示す。各ステップの処理は、情報処理装置102の外部メモリ211に格納されたアプリケーションプログラムを、それぞれのシステムのCPU201がRAM203上にロードして実行することにより実現される。
【0132】
図20のフローチャートは、撮像部101と情報処理装置102が起動されると開始される処理の流れである。なお、以後のフローチャートにおいて、情報処理装置102は、ネットワークカメラ101からネットワークを通じて随時データを取得することができるものとする。
【0133】
図20のフローチャートの処理に入る前に、まず情報処理装置102のCPU201は、撮像部101のRGBカメラ307により得られる商品棚の取り出し口部分の撮像画像を取得する。
【0134】
次に、ステップS2001において、情報処理装置102のCPU201は、取得した撮像画像を元に、商品棚のレーンや高さに合わせた検出エリア401が設定を受け付ける。検出エリアの設定方法は、
図8、
図17、
図18と同様なので説明を省略する。なお、第1の実施形態では、撮像部のフレームレートが低いことを想定しているため、検出エリア401の商品の取り出し方向(Y軸方向)の幅は
図8や
図17、
図18のように広めに確保しているが、第2の実施形態では、撮像部のフレームレートが高いため、検出エリア401の商品の取り出し方向(Y軸方向)の幅は
図22の検出エリア2210のようにより狭く設定できる。
【0135】
次に、ステップS2002において、情報処理装置102のCPU201は、取得した撮像画像を元に、商品棚の出入口にあたる検出ラインの設定を受け付ける。検出ラインの設定を
図22を参照して説明する。
【0136】
図22は、本発明の実施形態における高さ方向に複数の棚を有する商品棚と商品を取り出す領域(検出エリア)のイメージを説明する模式図である。
【0137】
図22の103が商品棚、104が商品の例であり、撮像範囲である404が、商品取り出し口に該当する。なお、各棚の横方向(レーン毎)の検出は第1の実施形態と同様なので、以後の説明では省略する、
図22の例では、商品棚103は3段の棚が存在する例である。
【0138】
図22の検出エリア2210に、3段の棚毎に検出ライン2201~2203が設定される。なお、
図22では検出ライン2201~2203は理解を助けるために異なる位置で記載しているが、検出ラインは検出エリア2210の端(
図22の場合、検出エリア2210の矩形の下辺部分)に設定されており、それぞれの棚によって横幅が異なっている。横幅のサイズは、たとえば
図18で設定されている幅である。この検出ラインを通過したかによって、該当の棚から商品が出入りしたのかを判別でき、隣の棚で出入りした商品の誤検出を防ぐ、もしくは検出エリアを偶々通った商品(たとえば、顧客が商品を持って検出エリアを右から左に横切った場合)などの誤検出を防ぐことができる。なお、実施例では、一つの在庫監視システム105で説明しているが、撮像部101付きの在庫監視システム105が複数設置されていて、それぞれの在庫監視システム105のラックで商品検知を行っている場合も考えられる。その場合、横のラックの商品を誤検出することを防ぐことができる。
図20のフローチャートの説明に戻る。
【0139】
次に
図20のステップS2003へと処理を移行すると、情報処理装置102のCPU201は、商品在庫を管理する処理を開始する。ステップS2003の処理内容を
図21を参照して説明する。
【0140】
図21は、本発明の実施形態に係る情報処理装置102における商品在庫追従の第2の実施形態の処理概要を示すフローチャートであり、図中のS2101~S2118は各ステップを示す。各ステップの処理は、情報処理装置102の外部メモリ211に格納されたアプリケーションプログラムを、それぞれのシステムのCPU201がRAM203上にロードして実行することにより実現される。
【0141】
図21のフローチャートは、
図20のフローチャートのステップS2003へと遷移した際に開始される処理の流れである。
【0142】
まず、
図21のステップS2101において、情報処理装置102のCPU201は、撮像部101から撮像画像(キャプチャ)を取得する。この撮像画像の取得は
図21のフローチャートの処理中は常時行われても良い。なお、ステップS2101の処理は撮像画像の取得と同時にTOFセンサ305による物体検出を行っても良い。
【0143】
次に、ステップS2102において、情報処理装置102のCPU201は、撮影エリア404内の検出エリア2210内で商品もしくは手などの物体を検出したか判断する。物体を検出した場合はステップS2103へと処理を遷移し、物体を検出しなかった場合はステップS2101へと処理を戻し、物体を検出するまで処理を繰り返す。物体を検出したかどうかは、TOFセンサによる物体検出でも良いし、画像の差分情報による検出でもよく、またステレオカメラによる物体検出であっても良い。
【0144】
次に、ステップS2103において、情報処理装置102のCPU201は、TOFセンサなどで物体を検出した位置を特定する。この位置情報は随時取得しておき、位置情報を常にトラッキングすることができる。
【0145】
次に、ステップS2104において、情報処理装置102のCPU201は、物体を検出した位置の周りの画像を記憶する。記憶した画像の一例を
図23を参照して説明する。
【0146】
図23は、本発明の実施形態に係る情報処理装置102に記憶されている一連の商品画像の例である。
【0147】
図23の2301から2312まで、検出された物体順に時系列で記憶されている画像を表示している。
図23は具体的には、ペットボトルの商品が顧客の手によって棚に戻される場合の一連の画像群である。この処理のように、撮像して記憶する範囲を限定して記憶、もしくは商品特定に利用することにより、第1の実施形態のように画像全体から物体を特定する手法より、画像記憶メモリの削減や、商品特定の際の画像処理時間の短縮が可能となる。。
図21のフローチャートの説明に戻る。
【0148】
次に、
図21のステップS2105において、情報処理装置102のCPU201は、TOFセンサもしくはステレオカメラから、物体の高さ情報(深度情報)を取得する。
【0149】
次に、ステップS2106において、情報処理装置102のCPU201は、ステップS2103で取得したトラッキング情報から、物体が検出ライン2201~2203を通過したかを判断する。検出ラインを通過するかは、ステップS2105で取得した物体の高さ情報とステップS2103で取得したトラッキング情報から判断する。たとえば、物体の高さ情報が1段目の高さと検出された場合(
図18の例では、20cm)、1段目の棚の検出ラインは、
図18の場合、画面上のサイズで『-150~150』である。同様に、物体の高さ情報が3段目の高さと検出された場合(
図18の例では、80cm)、3段目の棚の検出ラインは、
図18の場合、画面上のサイズで『-90~90』である。これらの間を物体が通過した場合は、検出ラインを通過したと判断する。すなわち、棚と棚の前との領域で、商品もしくは手が出入りしたことを意味する。一方、物体の高さ情報が3段目の高さと検出され、検出ラインの横方向が例えば『110』の位置を通過した場合は、隣の棚への物体の出し入れと判断し、該当の検出ラインを通過したとはみなさない。
【0150】
ステップS2106において、物体が検出ラインを通過したと判断された場合は、検出ラインを通過したという図示しないフラグ立てて、ステップS2108へと処理を遷移する。同時に高さ情報を記憶する。以後、検出ライン通過フラグが立っている間はステップS2106では、Yesの処理へと遷移する。一方、検出ラインを通過していないと判断された場合は、ステップS2107へと処理を遷移する。
【0151】
ステップS2107へと処理を遷移すると、情報処理装置102のCPU201は、トラッキングしている物体が検出エリア2210から出た(OUT)かどうかを判断する。検出エリア2210を出たと判断された場合は、検出ラインを通過せず検出エリアを出たことを意味する(つまり、棚の中を触っていない)ため、記憶している画像や高さ情報を削除する処理(ステップS2118)を実行して、最初の処理へと戻る。一方、物体が検出エリアから出ていない場合は、物体が検出エリア内にあることを意味するため、記憶画像を削除せず、最初の処理へと戻る。
【0152】
ステップS2108へと処理を遷移した場合、すなわち物体が一度でも検出ラインを通過した場合、情報処理装置102のCPU201は、物体が検出エリアから検出ラインと逆方向に出たかどうかを判断する。検出ラインと逆方向に物体が出た場合は、ステップS2111へと処理を遷移し、検出ラインと逆方向に物体が出ていない場合は、ステップS2109の処理へ遷移する。検出ラインと逆方向に出るとは、
図22の例では、2211のような上方向の領域方向に向かって物体が検出エリアを出るかどうかで判断される。すなわち、ステップS2108の処理は、棚から商品または手が取り出されたかどうかを判断している処理である。
【0153】
ステップS2109へと処理を遷移した場合、情報処理装置102のCPU201は、物体が検出エリアから検出ラインを通過して出たかどうかを判断する。検出ラインから物体が出た場合は、ステップS2110へと処理を遷移し、検出ラインから物体が出ていない場合は、ステップS2117の処理へ遷移する。検出ラインから物体が出たかどうかは、
図22の例では、2201~2203の検出ラインを通過して検出エリアを出たかどうかで判断される。すなわち、ステップS2109の処理は、棚に商品または手が入ったかどうかを判断している処理である。
【0154】
なお、検出ラインから物体が出る場合でも、同じ検出ラインから入って追跡されている物体の場合は、Noの処理へと遷移し、ステップS2117の判断分岐へと遷移する。Noへと遷移するのは、たとえば、商品を顧客が棚から取り出して、検出エリアから出すことなく棚に戻した場合に商品がカウントアップされることを防ぐためである。
【0155】
ステップS2110へと処理を遷移すると、情報処理装置102のCPU201は、物体が商品である場合に在庫を増やす処理を実行するため、図示しないカウントアップフラグを立てる。その後、ステップS2112へと処理を遷移する。
【0156】
一方、ステップs2111へと処理を遷移した場合、情報処理装置100のCPU201は、物体が商品である場合に在庫を減らす処理を実行するためのため、図示しないカウントダウンフラグを立てる。その後、ステップS2112へと処理を遷移する。
【0157】
ステップS2112へと処理を遷移すると、情報処理装置100のCPU201は、ステップS2104で記憶している複数の撮像画像を読み込み、画像を取得する。
【0158】
次に、ステップS2113において、情報処理装置100のCPU201は、AIによる画像認識により、商品を特定する処理を行う。具体的には、AIの教師データとして数千枚の画像(
図23のような画像を推論する場合はペットボトルの様々な角度の数千枚の画像)を登録して、たとえばVGGやMobileNetなどのディープラーニングのアルゴリズムを用い学習させる。学習させた学習済モデルにたとえば、
図23のような複数の画像2301~2312を入力し、推論されるペットボトルの商品を特定する。このように、物体周辺の画像複数枚により1つの商品を推論するため、第1の実施形態のように1枚の全体画像から商品を特定する処理よりも画像解析のスピードが上がり、撮像部のフレームレートを上げることができる。なお、商品の特定にはAIを利用せず、商品につけられたタグを撮像して識別しマッチングさせることにより特定しても良い。また、複数の画像を記憶しておいて、単なるマッチング条件によって商品を特定しても良く、それら場合も物体周辺の画像を複数枚使って判断することができ、画像解析の処理を上げ、処理速度を上げることができる。
【0159】
次に、ステップS2114において、情報処理装置100のCPU201は、ステップS2113で特定された物体が商品かそうでないかを判断する。商品の場合はステップS2115へと処理を遷移し、商品ではなく手である、もしくは商品を特定できない場合は、ステップっS2118へと処理を遷移する。
【0160】
ステップS2118へと処理を遷移すると、情報処理装置100のCPU201は、記憶画像や物体の高さ情報、検出ライン通過フラグ、在庫増減数などを削除する。ステップS2118へと遷移する場合は、検出エリアから物体が出た場合であり、かつ検出した物体が手もしくは識別不可能な商品の場合、もしくは、棚内に手を入れることなく検出エリアを出た場合を指すので、記憶画像、物体の高さ情報、検出ライン通過フラグ、在庫増減数は不要になるため、これらのデータを削除する。その後、このフローチャートの最初の処理に戻る。なお、ステップS2113でユーザの手と認識不可能な商品とを識別可能であれば、認識不可能な商品が棚に入れられた場合、アラートを出して、認識不可能な商品があることを店舗の商品管理者に伝える構成があっても良い。
【0161】
一方、ステップS2114の判断分岐の結果、ステップS2115へと処理を遷移すると、情報処理装置100のCPU201は、ステップS2114で推論された商品を、ステップS2106で記憶した高さの棚に対して、ステップS2110もしくはステップS2111の在庫増減数だけ在庫を増減させる情報を設定する。
【0162】
次に、ステップS2116において、情報処理装置100のCPU201は、ステップS2115で設定された棚と商品と増減情報を在庫管理サーバ107に送信して、ステップS2117へと処理を遷移する。
【0163】
ステップS2117へと処理を遷移すると、本実施形態のフローチャートを終了するかユーザから受け付け(不図示)ユーザから終了を受け付けると処理を終了し、ユーザからの終了指示を受け付けない場合は、フローチャートの最初の処理へと戻す。
【0164】
以上の処理のように、まず、物体検出とトラッキングを先の実行し、検出エリアから物体が出ると、撮像している画像を使って商品を特定して在庫情報を管理するにより、撮像毎に画像全体から商品識別を行う処理を省き、撮像部のフレームレートを上げて、細かなトラッキングが可能となる効果を有する。
【0165】
なお、第2の実施形態では、検出ラインを通過したかによって、商品が棚から出し入れされたかを判断しているが、商品が取り出し方向(Y座標)に所定の閾値以上移動した際に、棚から出し入れされたと判断しても良い。その際、商品が出し入れされる棚の高さ情報は、検出ライン通過時の高さ(ステップ2106)から設定する。
【0166】
以上の処理により、本発明は、複数の列からなる商品棚を少ない撮像装置で、かつ在庫場所の撮影の有無を問わず商品の出入りが管理できる効果を有する。
【0167】
また、在庫管理の他に、棚の高さや横の位置毎のデータを逐次取得できるため、棚割を適切に割り当てるための情報を取得することができる効果も有する。
【0168】
また、商品の配置場所と出入を特定できるため、売上を伸ばすために適した棚割を容易に行うための情報を取得することができる。
【0169】
また、在庫管理するためには物品の種類を特定する必要があるが、取得した画像から毎回物品の種類を特定すると、処理が遅延しフレームレートを低下させてしまう。そのため、物品の検出タイミングが遅れ、物品の追跡が難しいという課題を解決できる。
【0170】
さらに、画像により特定された{位置/高さ/商品画像}に基づき、商品の配置場所を特定できるため、ユーザによる商品配置場所のメンテナンスを省力化することができ、在庫管理や商品棚卸情報をより正確に行うことができる。
【0171】
また、本発明におけるプログラムは、各処理方法をコンピュータが実行可能(読取可能)なプログラムであり、本発明の記憶媒体は、各処理方法をコンピュータが実行可能なプログラムが記憶されている。
【0172】
なお、本発明におけるプログラムは、各装置の処理方法ごとのプログラムであってもよい。
【0173】
以上のように、前述した実施形態の機能を実現するプログラムを記録した記録媒体を、システムあるいは装置に供給し、そのシステムあるいは装置のコンピュータ(またはCPUやMPU)が記録媒体に格納されたプログラムを読取り実行することによっても、本発明の目的が達成されることは言うまでもない。
【0174】
この場合、記録媒体から読み出されたプログラム自体が本発明の新規な機能を実現することになり、そのプログラムを記憶した記録媒体は本発明を構成することになる。プログラムを供給するための記録媒体としては、例えば、フレキシブルディスク,ハードディスク,光ディスク,光磁気ディスク,CD-ROM,CD-R,DVD-ROM,磁気テープ,不揮発性のメモリカード,ROM,EEPROM,シリコンディスク等を用いることができる。
【0175】
また、コンピュータが読み出したプログラムを実行することにより、前述した実施形態の機能が実現されるだけでなく、そのプログラムの指示に基づき、コンピュータで稼働しているOS等が実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【0176】
さらに、記録媒体から読み出されたプログラムが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれた後、そのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるCPU等が実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【0177】
また、本発明は、システムあるいは装置にプログラムを供給することによって達成される場合にも適応できることは言うまでもない。この場合、本発明を達成するためのプログラムを格納した記録媒体を該システムあるいは装置に読み出すことによって、そのシステムあるいは装置が、本発明の効果を享受することが可能となる。
【0178】
さらに、本発明を達成するためのプログラムをネットワーク上のサーバ,データベース等から通信プログラムによりダウンロードして読み出すことによって、そのシステム、あるいは装置が、本発明の効果を享受することが可能となる。なお、上述した各実施形態およびその変形例を組み合わせた構成も全て本発明に含まれるものである。
【符号の説明】
【0179】
101 ネットワークカメラ
102 情報処理装置
103 商品棚
104 商品
105 在庫監視システム
106 ネットワーク
107 在庫管理サーバ
201 CPU
202 ROM
203 RAM
204 システムバス
205 入力コントローラ
206 ビデオコントローラ
207 メモリコントローラ
208 通信I/Fコントローラ
209 入力部
210 表示部
211 外部メモリ
301 CPU
302 ROM
303 RAM
304 システムバス
305 TOFセンサ
306 深度計測部
307 RGBカメラ部
308 画像処理部
309 通信I/Fコントローラ