(57)【要約】【課題】  本発明は、撮像部を用いて、棚からの出し入れにかかる物品の管理をすることを目的とする。【解決手段】  上記の目的を達成するために本発明は、撮像部と通信可能な情報処理装置であって、前記撮像部により棚の前方方向を撮像した画像に基づき、物品の移動の向きを特定する移動向特定手段と、前記移動向特定手段により特定される向きにより、物品の出または入を特定する出入特定手段と、物品位置検出部により検出された物品の位置、および前記出入特定手段により特定された出入に基づき、前記棚における物品に係る数を管理する管理手段とを有することを特徴とする。【選択図】図１
2020063154.tif 000002
【特許請求の範囲】
【請求項１】
撮像部と通信可能な情報処理装置であって、
前記撮像部により棚の前方方向を撮像した画像に基づき、物品の移動の向きを特定する移動向特定手段と、
前記移動向特定手段により特定される向きにより、物品の出または入を特定する出入特定手段と、
物品位置検出部により検出された物品の位置、および前記出入特定手段により特定された出入に基づき、前記棚における物品に係る数を管理する管理手段と
を有することを特徴とする情報処理装置。
【請求項２】
前記物品位置検出部による物品の位置は、前記撮像部から得られた画像に基づき特定される出入りする物品の高さを含みであって、
前記管理手段は、前記高さを含む位置および前記出入特定手段により特定された出入に基づき、前記棚の位置に対応する当該物品に係る数を管理することを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記棚は複数の列の棚であって、
前記撮像部から得られた画像と、前記物品位置検出部による物品の位置に基づいて、前記棚の何れの列に対する物品の出入りかを特定する棚特定手段とを備え、
前記管理手段は、前記棚特定手段による列に対応して前記物品に係る数を管理することを特徴とする請求項１又は２に記載の情報処理装置。
【請求項４】
前記棚は複数の段の棚であって、
棚特定手段は、前記撮像部から得られた画像と、前記物品位置検出部による物品の位置に基づいて、前記棚の何れの段に対する物品の出入りかを特定し、
前記管理手段は、前記棚特定手段による段に対応して前記物品に係る数を管理することを特徴とする請求項３に記載の情報処理装置。
【請求項５】
前記移動向特定手段により特定される物品の移動の向きは、前記棚から物品が入る向き又は前記棚から物品が出る向きとすることを特徴とする請求項４に記載の情報処理装置。
【請求項６】
前記棚の位置に対応する物品の種別を記憶する記憶手段を更に備え、
前記数管理手段は、物品位置検出部により検出された物品の位置、および前記出入特定手段により特定された出入に基づき、前記物品の種別の数を管理することを特徴とする請求項１乃至５の何れか１項に記載の情報処理装置。
【請求項７】
撮像部と通信可能な情報処理装置の情報処理方法であって、
前記撮像部により棚の前方方向を撮像した画像に基づき、物品の移動の向きを特定する移動向特定ステップと、
前記移動向特定ステップにより特定される向きにより、物品の出または入を特定する出入特定ステップと、
物品位置検出部により検出された物品の位置、および前記出入特定ステップにより特定された出入に基づき、前記棚における物品に係る数を管理する管理ステップと
を含むことを特徴とする情報処理方法。
【請求項８】
撮像部と通信可能な情報処理装置のプログラムであって、
前記情報処理装置を
前記撮像部により棚の前方方向を撮像した画像に基づき、物品の移動の向きを特定する移動向特定手段と、
前記移動向特定手段により特定される向きにより、物品の出または入を特定する出入特定手段と、
物品位置検出部により検出された物品の位置、および前記出入特定手段により特定された出入に基づき、前記棚における物品に係る数を管理する管理手段
として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、撮像部により棚の在庫を管理する情報処理装置、情報処理方法、及びプログラムに関する。
【背景技術】
【０００２】
近年、小売、物流などのロジスティック業界において、人材不足や物流効率化の観点で、これまで以上に精緻かつ効率的な在庫管理が求められている。特に商品在庫を保管している棚においては現状の在庫数のカウントは現在も人手中心で行われている。
【０００３】
こうした課題を解決する手段として、ＲＦＩＤが知られている。ＲＦＩＤは商品在庫一つずつにＲＦタグと呼ばれるＩＣチップを取り付け、無線通信により商品在庫をカウントする仕組みである。
【０００４】
しかし実際の運用においては、商品一つずつにＲＦタグを取り付けるための物理コストや人的コストが発生し、大抵の小売・物流現場において運用に見合うだけのコストパフォーマンスを得られないというのが現状である。
【０００５】
また棚に重量センサを取り付けて商品数をカウントする技術も知られている。しかしながら棚一つずつに重量センサを取り付けるコストが見合わないことや、商品による重さのばらつきにより正確な在庫数がカウントできないという問題がある。
【０００６】
こうした中、コンピュータビジョン（画像処理）技術を使って棚の在庫管理を行う技術が考案されている。特許文献１には、材料取扱施設を有する在庫場所における物品の除去または配置を追跡するシステムが開示されている。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特表２０１６−５３２９３２
【発明の開示】
【発明が解決しようとする課題】
【０００８】
特許文献１には、顧客が商品棚から商品を取る際の画像から顧客の手の位置を検出することでどの商品が棚から取られたかを判断する技術が記載されている。
【０００９】
しかしながら、上記の技術の場合、在庫場所を撮像する撮像装置かあるいは在庫状況を検出する存在検出装置が必要になる。棚の一段毎、或いは、棚の一列毎に撮像装置か存在検出装置を配置しなければならないため、コストが高くなってしまう課題がある。
【００１０】
そこで、本発明は、撮像部を用いて、棚からの出し入れにかかる物品の管理をすることを目的とする。
【課題を解決するための手段】
【００１１】
上記の目的を達成するために本発明は、撮像部と通信可能な情報処理装置であって、前記撮像部により棚の前方方向を撮像した画像に基づき、物品の移動の向きを特定する移動向特定手段と、前記移動向特定手段により特定される向きにより、物品の出または入を特定する出入特定手段と、物品位置検出部により検出された物品の位置、および前記出入特定手段により特定された出入に基づき、前記棚における物品に係る数を管理する管理手段とを有することを特徴とする。
【発明の効果】
【００１２】
本発明によれば、撮像部を用いて、棚からの出し入れにかかる物品の管理ができるという効果を奏する。
【図面の簡単な説明】
【００１３】
【図１】本発明の実施形態に係る在庫管理システムの概略を示す構成図である。
【図２】本発明の実施形態に係る情報処理装置１０２、各種サーバのハードウェアの構成を示す構成図である。
【図３】本発明の実施形態に係るネットワークカメラ１０１のハードウェアの構成を示す構成図である。
【図４】本発明の実施形態に係る情報処理装置１０２における在庫管理を行う処理概要を示すフローチャートである。
【図５】本発明の実施形態に係る情報処理装置１０２における商品在庫追従の処理概要を示すフローチャートである。
【図６】本発明の実施形態に係る情報処理装置１０２における商品取り出しの処理概要を示すフローチャートである。
【図７】本発明の実施形態に係る情報処理装置１０２における商品戻しの処理概要を示すフローチャートである。
【図８】本発明の実施形態における商品棚と商品を取り出す領域（仮想グリッド領域）のイメージを説明する模式図である。
【図９】本発明の実施形態における商品棚と商品取り出し開始時の処理イメージを説明する模式図である。
【図１０】本発明の実施形態における商品棚と商品取り出し中の処理イメージを説明する模式図である。
【図１１】本発明の実施形態における商品棚と商品取り出し終了時の処理イメージを説明する模式図である。
【図１２】本発明の実施形態における商品棚と商品戻し開始時の処理イメージを説明する模式図である。
【図１３】本発明の実施形態における商品棚と商品戻し中の処理イメージを説明する模式図である。
【図１４】本発明の実施形態における商品棚と商品戻し終了時の処理イメージを説明する模式図である。
【図１５】本発明の実施形態における商品を取り出す領域（仮想グリッド領域）内で別の種類の商品を検出するイメージを説明する模式図である。
【図１６】本発明の実施形態における商品を取り出す領域（仮想グリッド領域）内で同一種類の別の商品を検出するイメージを説明する模式図である。
【図１７】本発明の実施形態における高さ方向がある商品棚と商品を取り出す領域（仮想グリッド領域）のイメージを説明する模式図である。
【図１８】本発明の実施形態における情報処理装置が有する、商品の検出される仮想グリッドの座標と深度との関係から入出庫される棚を特定するためのデータの一例である。
【図１９】本発明の実施形態における商品棚の在庫数を記憶するデータテーブルの一例である。
【図２０】本発明の実施形態に係る情報処理装置１０２における在庫管理を行う第２の実施形態の処理概要を示すフローチャートである。
【図２１】本発明の実施形態に係る情報処理装置１０２における商品在庫追従の第２の実施形態の処理概要を示すフローチャートである。
【図２２】本発明の実施形態における高さ方向に複数の棚を有する商品棚と商品を取り出す領域（検出エリア）のイメージを説明する模式図である。
【図２３】本発明の実施形態に係る情報処理装置１０２に記憶されている一連の商品画像の例である。
【発明を実施するための形態】
【００１４】
＜第１の実施形態＞
以下、図面を参照して、本発明の実施形態について説明する。
【００１５】
図１は、本発明の実施形態に係る在庫管理システムの概略を示す構成図である。
【００１６】
在庫監視システム１０５は、ネットワークカメラ１０１とカメラで撮像した画像を処理する情報処理装置１０２が接続されており、ネットワークカメラ１０１は商品棚１０３の取り出し口を上から下へ向かって撮像する。商品棚１０３には商品１０４が陳列されている。なお、ネットワークカメラ１０１は取り出し口を上から下へ向かって撮像する例で記載しているが、取り出し口を横から撮像してもよいし、斜め上から撮像してもよい。本実施形態では、取り出し口を上から下へ向かって撮像する例で説明する。
【００１７】
在庫監視システム１０５により監視された商品の状況は、ネットワーク１０６を介して、たとえばクラウド上の在庫管理サーバ１０７で計数され、在庫状況をユーザに提供する。なお、図１では、在庫管理サーバ１０７を情報処理装置１０２と別筐体で説明しているが、それぞれを１つの筐体としてもよい。すなわち、情報処理装置１０２内に在庫管理サーバ１０７の機能を備えていてもよく、また、在庫管理サーバ１０７に情報処理装置１０２の有する撮像画像を処理する機能を有していてもよい。
【００１８】
情報処理装置１０２は、図１のように１台のネットワークカメラ１０１から情報を取得して在庫管理サーバ１０７に送信してもよいし、複数台のネットワークカメラ１０１に接続され複数のネットワークカメラ１０１の情報を収集して在庫管理サーバ１０７に送信してもよい。
【００１９】
次に図２を用いて、情報処理装置１０２のハードウェアの概略構成を説明する。
【００２０】
図２は、本発明の実施形態に係る情報処理装置１０２、各種サーバのハードウェアの構成を示す構成図である。
【００２１】
ＣＰＵ２０１は、システムバス２０４に接続される各デバイスやコントローラを統括的に制御する。
【００２２】
また、ＲＯＭ２０２あるいは外部メモリ２１１には、ＣＰＵ２０１の制御プログラムであるＢＩＯＳ（Ｂａｓｉｃ  Ｉｎｐｕｔ  ／  Ｏｕｔｐｕｔ  Ｓｙｓｔｅｍ）やオペレーティングシステムプログラム（以下、ＯＳ）や、画像処理サーバ１０８の実行する機能を実現するために必要な後述する各種プログラム等が記憶されている。ＲＡＭ２０３は、ＣＰＵ２０１の主メモリ、ワークエリア等として機能する。
【００２３】
ＣＰＵ２０１は、処理の実行に際して必要なプログラム等をＲＡＭ２０３にロードして、プログラムを実行することで各種動作を実現するものである。
【００２４】
また、入力コントローラ（入力Ｃ）２０５は、入力部２０９としてのキーボードや不図示のマウス等のポインティングデバイスからの入力を制御する。
【００２５】
ビデオコントローラ（ＶＣ）２０６は、表示部２１０としてのＣＲＴディスプレイ（ＣＲＴ）等の表示器への表示を制御する。表示器はＣＲＴだけでなく、液晶ディスプレイでも構わない。これらは必要に応じて管理者が使用するものである。本発明には直接関係があるものではない。
【００２６】
メモリコントローラ（ＭＣ）２０７は、ブートプログラム、ブラウザソフトウエア、各種のアプリケーション、フォントデータ、ユーザファイル、編集ファイル、各種データ等を記憶するハードディスク（ＨＤ）やフロッピーディスク（登録商標  ＦＤ）或いはＰＣＭＣＩＡカードスロットにアダプタを介して接続されるコンパクトフラッシュ（登録商標）メモリ等の外部メモリ２１１へのアクセスを制御する。
【００２７】
通信Ｉ／Ｆコントローラ（通信Ｉ／ＦＣ）２０８は、ネットワークを介して、外部機器と接続・通信するものであり、ネットワークでの通信制御処理を実行する。例えば、ＴＣＰ／ＩＰを用いたインターネット通信等が可能である。また、ネットワークカメラ１０１とネットワークを介して接続できる通信Ｉ／Ｆコントローラの機能をも有する。
【００２８】
なお、ＣＰＵ２０１は、例えばＲＡＭ２０３内の表示情報用領域へアウトラインフォントの展開（ラスタライズ）処理を実行することにより、表示部２１０上での表示を可能としている。また、ＣＰＵ２０１は、表示部２１０上の不図示のマウスカーソル等でのユーザ指示を可能とする。
【００２９】
本発明を実現するためのプログラムは、外部メモリ２１１に記録されており、必要に応じてＲＡＭ２０３にロードされることによりＣＰＵ２０１によって実行されるものである。さらに、本発明に係わるプログラムが用いる定義ファイル及び各種情報テーブルは、外部メモリ２１１に格納されており、これらについての詳細な説明は後述する。
【００３０】
次に図３を用いて、ネットワークカメラ１０１のハードウェアの概略構成を説明する。
【００３１】
図３は、ネットワークカメラ１０１のハードウェアの構成を示す構成図である。
【００３２】
ＣＰＵ３０１は、システムバス３０４に接続される各デバイスやコントローラを統括的に制御する。
【００３３】
また、ＲＯＭ３０２には、ＣＰＵ３０１の制御プログラムであるＢＩＯＳ（Ｂａｓｉｃ  Ｉｎｐｕｔ  ／  Ｏｕｔｐｕｔ  Ｓｙｓｔｅｍ）やオペレーティングシステムプログラム（以下、ＯＳ）や、情報処理装置１０２に送信するデータを生成する機能を実現するために必要な各種プログラム等が記憶されている。ＲＡＭ３０３は、ＣＰＵ３０１の主メモリ、ワークエリア等として機能する。
【００３４】
ＣＰＵ３０１は、処理の実行に際して必要なプログラム等をＲＡＭ３０３にロードして、プログラムを実行することで各種動作を実現するものである。
【００３５】
ＲＧＢカメラ部３０７は、画像処理部３０８と接続されており、監視対象に対して向けられたレンズを透過して得られた光をＣＣＤやＣＭＯＳ等の受光セルによって光電変換を行った後、ＲＧＢ信号や補色信号を画像処理部３０８に対して出力する。
【００３６】
画像処理部３０８は、ＲＧＢ信号や捕色信号に基づいて、ホワイトバランス調整、ガンマ処理、シャープネス処理を行い、更に、ＹＣ信号処理を施して輝度信号Ｙとクロマ信号（以下、ＹＣ信号）を生成し、ＹＣ信号を所定の圧縮形式（例えばＪＰＥＧフォーマット、あるいはＭｏｔｉｏｎＪＰＥＧフォーマット等）で圧縮し、この圧縮されたデータは、画像データとしてＲＡＭ３０３へ一時保管される。
【００３７】
ＴＯＦセンサ３０５は、ＴＯＦ（Ｔｉｍｅ−ｏｆ−Ｆｌｉｇｈｔ）方式で対象物までの距離を測定するイメージセンサであり、光（赤外線レーザーまたはＬＥＤ）が被写体で反射してセンサに戻るのに要する時間を深度計測部３０６とともに測定することによって、被写体の距離を計測する。なお、商品の深度を測定する手段としては、ＲＧＢカメラ３０７を二台構成しステレオカメラによって深度を測定してもよいし、画像処理や深層学習を用いた二次元画像解析結果から深度を推定する方式をとっても良い。
【００３８】
通信Ｉ／Ｆコントローラ（通信Ｉ／ＦＣ）３０９は、ネットワークを介して、外部機器と接続・通信するものであり、ネットワークでの通信制御処理を実行しており、ＲＡＭ３０３に記憶された画像データは、通信Ｉ／Ｆコントローラ３０９によって外部機器である情報処理装置１０２へ送信される。
【００３９】
次に、図４〜図７を参照して、本願発明の第１の実施形態の在庫管理処理の流れを説明する。
【００４０】
図４は、本発明の実施形態に係る情報処理装置１０２における在庫管理を行う処理概要を示すフローチャートであり、図中のＳ４０１〜Ｓ４０７は各ステップを示す。各ステップの処理は、情報処理装置１０２の外部メモリ２１１に格納されたアプリケーションプログラムを、それぞれのシステムのＣＰＵ２０１がＲＡＭ２０３上にロードして実行することにより実現される。
【００４１】
図４のフローチャートは、ネットワークカメラ１０１と情報処理装置１０２が起動されると開始される処理の流れである。なお、以後のフローチャートにおいて、情報処理装置１０２は、ネットワークカメラ１０１からネットワークを通じて随時データを取得することができるものとする。
【００４２】
図４のフローチャートの処理に入る前に、まず情報処理装置１０２のＣＰＵ２０１は、ネットワークカメラ１０１のＲＧＢカメラ３０７により得られる商品棚の取り出し口部分の撮像画像を取得する。
【００４３】
次に、ステップＳ４０１において、情報処理装置１０２のＣＰＵ２０１は、取得した撮像画像を元に、商品棚のレーンに合わせた仮想グリッドが設定される。図８、図１７、図１８を参照して、仮想グリッド設定の一例を説明する。
【００４４】
図８は、本発明の実施形態における商品棚と商品を取り出す領域（仮想グリッド領域）のイメージを説明する模式図である。
【００４５】
図８の１０３が商品棚、１０４が商品の例であり、撮像範囲である４０４が、商品取り出し口に該当する。以後の図８〜図１７は、商品棚からの取り出し口を上方から撮像しているイメージで説明するが、商品棚からの取り出し口を横から撮像しているイメージでも構わない。その場合、後述する図１８は、商品の座標と深度が入れ替わることになる。
【００４６】
図８の商品棚１０３には商品毎に配置されているレーン４１０があり、そのレーンの境となる位置４０５や４０６が存在する。
【００４７】
境の位置４０５や４０６を撮像範囲４０４に延長した境目を４０７、４０８と設定し、それぞれを区切る仮想グリッド４０１が撮像範囲４０４に作成される。すなわち、各商品棚のレーン毎に取り出しレーンとして、仮想グリッドを設定している。
【００４８】
これらの処理を複数段の棚に対して行った結果が図１７である。
【００４９】
図１７は、本発明の実施形態における高さ方向がある商品棚と商品を取り出す領域（仮想グリッド領域）のイメージを説明する模式図である。
【００５０】
図１７の商品棚１０３は複数段から構成されており、図１７では３段の棚が存在する例である。
【００５１】
図１７の３段の棚の仮想グリッドは、段数によって異なり、一段目の商品のレーンの境は１２０４、二段目のレーンの境は１２０５、三段目のレーンの境は１２０６である。それぞれの段での仮想グリッドの境は、一段目のそれが１２０７、二段目のそれが１２０８、三段目のそれが１２０９と設定されている。
【００５２】
図１７のように３段の棚の仮想グリッドを設定し、それぞれの棚の位置を関係づけたデータを図１８を参照して説明する。
【００５３】
図１８は、本発明の実施形態における情報処理装置が有する、商品の検出される仮想グリッドの座標と深度との関係から出入りする棚を特定するためのデータの一例である。
【００５４】
図１８の１８００は深度計測部３０６から得られる深度１８０１とＲＧＢカメラにより取得する商品位置の座標１８０２から、出入りする商品棚の位置を特定するデータであり、たとえば、深度が２０ｃｍの高さで出入りした商品でグリッド座標（図１７の左右方向の座標で、中心を原点としている）が７０の位置だった場合、一段目のグリッドＣ（すなわちグリッドＣ−１）から出入りしたと判断する。また、深度が８０ｃｍの高さで出入りした商品でグリッド座標が−６０の位置であった場合、三段目のグリッドＡ（すなわちグリッドＡ−３）から出入りしたと判断する。なお、出入りの向きに関しては次のステップＳ４０２で後述する。
【００５５】
図１８のように、商品の出入りする棚の位置を記憶するテーブルを有している。このテーブルはユーザにより手動で入力されてもよいし、ステップＳ４０１の処理の前に撮像された画像の商品棚の境（仕切り）などから自動的に設定されても良い。図４のフローチャートの説明に戻る。
【００５６】
次の図４のステップＳ４０２において、情報処理装置１０２のＣＰＵ２０１は、仮想グリッド内を移動する商品の向きから、商品が取り出されている方向を設定する。図８を参照して説明する。
【００５７】
図８において、商品棚１０３の位置が図面の下にあり、取り出し口側（仮想グリッド側）４０４は図面の上側にあるので、商品の取り出し方向は座標軸４２０のＹ軸方向に＋向きである４０２のように上向き方向と設定される。この取り出し方向の設定は、ユーザが手動で設定してもよく、また撮像画面上（図８）での商品棚１０３の位置を指定することで設定されても良い。図４のフローチャートの説明に戻る。
【００５８】
次に、図４のステップＳ４０３において、情報処理装置１０２のＣＰＵ２０１は、ステップＳ４０１により設定された仮想グリッドに対応する商品棚のレーンの在庫数の入力を受け付ける。図８と図１９を参照して説明する。
【００５９】
図８の仮想グリッドが設定されている場合の各仮想グリッドに対応する商品棚のレーンの在庫がたとえば、グリッドＡが１０個（４１１）、グリッドＢが５個（４１２）、グリッドＣが１個（４１３）であった場合、ユーザは情報処理装置１０２の入力部２０９から在庫数を入力してそれぞれのレーンの在庫数を設定する。設定された在庫数を記憶するデータの例を図１９を参照して説明する。
【００６０】
図１９は、本発明の実施形態における商品棚の在庫数を記憶するデータテーブルの一例である。
【００６１】
図１９のテーブルには、図８の一段目における在庫数が設定されており、それぞれグリッドＡに１０個、グリッドＢに５個、グリッドＣに１個というデータが登録されている。なお、図１９のテーブルは情報処理装置１０２で記憶していてもよいし、在庫管理サーバ１０７で記憶していても良い。図４のフローチャートの説明に戻る。
【００６２】
次の図４のステップＳ４０４において、情報処理装置１０２のＣＰＵ２０１は、ネットワークカメラ１０１に撮像（画像キャプチャ）を開始する命令を送信して、撮像を開始する。
【００６３】
次のステップＳ４０５において、情報処理装置１０２のＣＰＵ２０１は、撮像された仮想グリッド４０１内で商品を検出したかを判定する。商品の検出は、たとえば図８のようにネットワークカメラを上部に取り付けている場合は、予め記憶されている商品の上からの形状を記憶しておき、ＳＩＦＴ（Ｓｃａｌｅ−Ｉｎｖａｒｉａｎｔ  Ｆｅａｔｕｒｅ  Ｔｒａｎｓｆｏｒｍ）アルゴリズムによる画像マッチングで検出してもよい。また、予め商品の上からの様々な画像を学習データとして登録して機械学習させ、画像認識ＡＩを使って商品を検出しても良い。
【００６４】
ステップＳ４０５において、商品を検出した場合は、ステップＳ４０６へと処理を移行し、商品を検出しない場合はステップＳ４０７へと処理を移行する。
【００６５】
ステップＳ４０６へと処理を移行すると、情報処理装置１０２のＣＰＵ２０１は、ステップＳ４０５で検出した商品の在庫状況を把握するための商品追従処理を行う。ステップＳ４０６の処理内容を図５を参照して説明する。
【００６６】
図５は、本発明の実施形態に係る情報処理装置１０２における商品在庫追従の処理概要を示すフローチャートであり、図中のＳ５０１〜Ｓ５１４は各ステップを示す。各ステップの処理は、情報処理装置１０２の外部メモリ２１１に格納されたアプリケーションプログラムを、それぞれのシステムのＣＰＵ２０１がＲＡＭ２０３上にロードして実行することにより実現される。
【００６７】
図５のフローチャートは、図４のフローチャートのステップＳ４０６へと遷移した際に開始される処理の流れである。
【００６８】
まず、図５のステップＳ５０１において、情報処理装置１０２のＣＰＵ２０１は、ネットワークカメラ１０１から取得した撮像画像（キャプチャ）から、検出された商品の場所（座標）を取得し、開始座標として記憶する。具体的な商品イメージを参照した説明は図９〜図１４で後述する。
【００６９】
次に、ステップＳ５０２において、情報処理装置１０２のＣＰＵ２０１は、ネットワークカメラ１０１が備えるＴＯＦセンサ３０５により、検出された商品の高さ（深度）を取得し、開始深度として記憶する。
【００７０】
次に、ステップＳ５０３において、情報処理装置１０２のＣＰＵ２０１は、ネットワークカメラ１０１から次の撮像画像（キャプチャ）を取得する。
【００７１】
次に、ステップＳ５０４において、情報処理装置１０２のＣＰＵ２０１は、ステップＳ５０３において撮像された仮想グリッド４０１内で前回と同じ種類の商品を検出したかどうかを判断する。同じ種類の商品を検出した場合はステップＳ５０５に遷移し、同じ種類の商品を検出しない場合はステップＳ５０９へと処理を遷移する。なお、ステップＳ５０３で撮像された仮想グリッド４０１内で前回と異なる種類の商品を検出した場合（図１５のような場合）は、異なる種類の商品について、図５のフローチャートをステップＳ５０１から実施する。
【００７２】
ステップＳ５０５の処理へ遷移した場合、情報処理装置１０２のＣＰＵ２０１は、ステップＳ５０３で撮像された撮像画像（キャプチャ）から、検出された商品の場所（座標）を取得し、現在座標として記憶する。また、１回前に取得した現在座標と商品の種類も「１つ前に取得した現在座標」と前回の商品の種類として記憶しておく。
【００７３】
次に、ステップＳ５０６において、情報処理装置１０２のＣＰＵ２０１は、ステップＳ５０３で撮像された際に検出した商品の高さ（深度）を取得し、現在深度として記憶する。
【００７４】
次に、ステップＳ５０７において、情報処理装置１０２のＣＰＵ２０１は、「１つ前に取得した現在座標」と、ステップＳ５０５で新たに取得した現在座標との距離を比較し、距離が所定の閾値以上の商品しかない場合、ステップＳ５１０に遷移する。一方、「１つ前に取得した現在座標」とステップＳ５０５で新たに取得した現在座標との距離が閾値以内にある商品があれば、ステップＳ５０８へと処理を遷移する。具体的な例は、図１６を参照して後述する。
【００７５】
ステップＳ５０７の判断分岐は、同じ種類の商品が仮想グリッド４０１内に同時に複数個入ってきた場合に発生する判断分岐であり、２つの距離が閾値以上とは、すなわちそれぞれの個体が別のものであると判断された場合を意味する。２つの距離が閾値以内であれば、「１つ前に取得した現在座標」の商品と新たにステップＳ５０５で検出した商品は同じ個体として認識する（ステップＳ５０８の処理）。
【００７６】
ステップＳ５０８の処理の後はステップＳ５０３へと処理を戻し、仮想グリッド４０１内の撮像画像を取得する処理から繰り返す。
【００７７】
一方、ステップＳ５０４において、仮想グリッド４０１内で前回と同じ種類の商品を検出しない場合はステップＳ５０９へと処理を遷移する。
【００７８】
ステップＳ５０９に遷移すると、情報処理装置１０２のＣＰＵ２０１は、所定回数以上、同じ商品が検出できなかったかの判断を行う。所定回数以上同じ商品を検出できなければ、ステップＳ５１０へと処理を遷移し、所定回数以内に同じ商品を検出できた場合は、ステップＳ５０３へと処理を戻す。
【００７９】
ステップＳ５０９の判断分岐は、仮想グリッド４０１内に商品があるにもかかわらず、撮像部での撮像画像が残像や光の外乱などにより一時的に商品検出できない場合でも、商品が仮想グリッド４０１外に出たと判断しないための判断分岐になる。
【００８０】
次のステップＳ５１０には、ステップＳ５０９で現在座標が１回以上記憶されている（ステップＳ５０９でＹＥＳ）か、ステップＳ５０７で「１つ前に取得した現在座標」と新たにステップＳ５０５で検出した現在座標との距離が閾値以上離れている場合に遷移する。
【００８１】
ステップＳ５１０において、情報処理装置１０２のＣＰＵ２０１は、ステップＳ５０１で取得した商品の最初の検出位置である開始座標と、ステップＳ５０５で最後に取得した商品の検出位置である「最後の現在座標」とから、商品の移動の向きを算出する。
【００８２】
次に、ステップＳ５１１において、情報処理装置１０２のＣＰＵ２０１は、ステップＳ５１０で算出された向きにより処理を分ける。
【００８３】
開始座標と「最後の現在座標」との向きが同じ場合、たとえば、図８の座標軸４２０のＹ軸方向の仮想グリッドの中心からの向きが一緒の場合は、図５のフローチャートの処理を終える。この判断は、商品が仮想グリッド内に入ったが、出入りはしなかった場合（たとえば、顧客が棚から商品を出して購入を検討したが、やはり購入を止めて棚に戻した場合など）の判断分岐になる。
【００８４】
また、ステップＳ５１１において、商品の移動の向きが取り出す向き４０２であった場合は、ステップＳ５１２へと処理を遷移する。
【００８５】
一方、ステップＳ５１１において、商品の移動の向きが戻す向き（取り出す向きと反対）であった場合は、ステップＳ５１３へと処理を遷移する。
【００８６】
ステップＳ５１２へと処理を遷移すると、情報処理装置１０２のＣＰＵ２０１は、商品取り出し処理を行い、ステップＳ５１４へと処理を遷移する。詳細な処理は図６で後述する。
【００８７】
また、ステップＳ５１３へと処理を遷移すると、情報処理装置１０２のＣＰＵ２０１は、商品戻し処理を行い、ステップＳ５１４へと処理を遷移する。詳細な処置は図７で後述する。
【００８８】
ステップＳ５１４へと処理を遷移すると、情報処理装置１０２のＣＰＵ２０１は、ステップＳ５１２やステップＳ５１３で特定された棚の在庫数を変更するべく、在庫管理サーバに報知して、図５のフローチャートを終える。図４のフローチャートの説明に戻る。
【００８９】
ステップＳ４０６において、ステップＳ４０５で検出した商品の在庫状況を把握するための商品追従処理を行った後、次のステップＳ４０７において、商品在庫の確認のためのネットワークカメラ１０１の撮像処理を終了するかどうか判断する。撮像処理を継続する場合は、ステップＳ４０４へと処理を戻し、ステップＳ４０４からの処理を繰り返す。一方、撮像処理を終了するとユーザから指示があった場合は撮像処理を中止して本発明の処理を終了する。
【００９０】
次に、図６を参照して、商品を取り出す棚の位置を特定する処理を説明する。
【００９１】
図６は、本発明の実施形態に係る情報処理装置１０２における商品取り出しの処理概要を示すフローチャートであり、図中のＳ６０１〜Ｓ６０２は各ステップを示す。各ステップの処理は、情報処理装置１０２の外部メモリ２１１に格納されたアプリケーションプログラムを、それぞれのシステムのＣＰＵ２０１がＲＡＭ２０３上にロードして実行することにより実現される。
【００９２】
図６のフローチャートは、図５のフローチャートのステップＳ５１２へと遷移した際に開始される処理の流れである。
【００９３】
まず、図６のステップＳ６０１において、情報処理装置１０２のＣＰＵ２０１は、ステップＳ５０２で取得した開始深度から取り出した棚の段数を特定する。具体的に図１８を参照して説明すると、たとえばステップＳ５０２で取得した商品の深度が２０ｃｍであれば、１８０１と１８０３のデータから、取り出された棚の高さは一段目であることを特定する。
【００９４】
次に、ステップＳ６０２において、情報処理装置１０２のＣＰＵ２０１は、ステップＳ５０１で取得した開始座標から取り出した棚の位置を特定する。具体的に図１８を参照して説明すると、たとえば、ステップＳ５０１で取得した商品のグリッド座標が８０であれば、１８０２のデータから、一段目のグリッド座標が８０であるＣ−１、すなわち一段目のＣの棚であることが特定される。
【００９５】
上記の例では、一段目のＣの棚から商品が取り出されたことが特定される。
【００９６】
以上の処理により、顧客が商品を取り出した棚の位置を特定することができる。
【００９７】
次に、図７を参照して、商品を戻した棚の位置を特定する処理を説明する。
【００９８】
図７は、本発明の実施形態に係る情報処理装置１０２における商品取り出しの処理概要を示すフローチャートであり、図中のＳ７０１〜Ｓ７０２は各ステップを示す。各ステップの処理は、情報処理装置１０２の外部メモリ２１１に格納されたアプリケーションプログラムを、それぞれのシステムのＣＰＵ２０１がＲＡＭ２０３上にロードして実行することにより実現される。
【００９９】
図７のフローチャートは、図５のフローチャートのステップＳ５１３へと遷移した際に開始される処理の流れである。
【０１００】
まず、図７のステップＳ７０１において、情報処理装置１０２のＣＰＵ２０１は、ステップＳ５０６で取得した最後の現在深度から戻された棚の段数を特定する。具体的に図１８を参照して説明すると、たとえばステップＳ５０２で取得した商品の深度が８０ｃｍであれば、１８０１と１８０３のデータから、戻された棚は三段目であることを特定する。
【０１０１】
次に、ステップＳ７０２において、情報処理装置１０２のＣＰＵ２０１は、ステップＳ５０５で取得した最後の現在座標から取り出した棚の位置を特定する。具体的に図１８を参照して説明すると、たとえば、ステップＳ５０１で取得した商品のグリッド座標が８０であれば、１８０２のデータから、三段目のグリッド座標が８０であるＣ−３、すなわち三段目のＣの棚であることが特定される。
【０１０２】
上記の例では、三段目のＣの棚に商品が戻されたことが特定される。
【０１０３】
以上の処理により、顧客が商品を戻した棚の位置を特定することができる。
【０１０４】
次に、図９〜図１４を参照して具体的に商品が棚から出入りするイメージより商品の出入りの棚の位置を特定する処理を説明する。
【０１０５】
図９は、本発明の実施形態における商品棚と商品取り出し開始時の処理イメージを説明する模式図である。
【０１０６】
図９において、商品１０４が仮想グリッド内４０１において８０１のように検出される（ステップＳ４０５の処理）と、まず、商品の開始座標８０２を特定する（ステップＳ５０１の処理）。続いて、商品の開始深度も特定し（ステップＳ５０２の処理）、それぞれの値を記憶する。
【０１０７】
図１０は、本発明の実施形態における商品棚と商品取り出し中の処理イメージを説明する模式図である。
【０１０８】
図１０において、商品１０４が仮想グリッド内を移動する際に仮想グリッドから存在しなくなるまで、現在座標８０２〜８０４の現在座標を取得し続ける（ステップＳ５０５の処理）。
【０１０９】
図１１は、本発明の実施形態における商品棚と商品取り出し終了時の処理イメージを説明する模式図である。
【０１１０】
図１１において、商品１０４の現在座標が８０５のように仮想グリッドから存在しなくなった場合（ステップＳ５０４の判断分岐のＮＯへ遷移）、最後の仮想グリッド内の現在座標として、８０４が設定される（ステップＳ５１０の処理）。
【０１１１】
続いて、商品の開始座標８０１と最後の現在座標８０４の情報から商品の移動の向き８０６を算出する。図１１の場合は図８の４０２の取り出し方向と同じなので、取り出す向きと特定する（ステップＳ５１０の処理）。
【０１１２】
図９から図１１のイメージのように商品が移動した場合、ステップＳ５１１では取り出す向きに移動したと判断し、ステップＳ５１２の処理（すなわち、図６の処理）へと遷移する。
【０１１３】
図１１の場合は、開始座標８０１と同じ時に取得した開始深度から取り出した棚の位置を特定する（図６のステップＳ６０１、Ｓ６０２の処理）。図１１では、グリッドＢ（中央の棚）から１つ商品が取り出されているので、８０７のように在庫数を５から４に減らしている。この在庫数を減らす情報を在庫管理サーバ１０７に送信する（ステップＳ５１４の処理）。
【０１１４】
以上のイメージで示すように、棚の取り出し口を撮像することで、商品の取り出し状況を把握することができる。
【０１１５】
次に、商品が棚に戻される場合の処理イメージを図１２〜図１４を参照して説明する。
【０１１６】
図１２は、本発明の実施形態における商品棚と商品戻し開始時の処理イメージを説明する模式図である。
【０１１７】
図１２において、商品１０４が仮想グリッド内４０１において９０１のように最初に検出される（ステップＳ４０５の処理）と、まず、商品の開始座標９０１を特定する（ステップＳ５０１の処理）。続いて、商品の開始深度も特定し（ステップＳ５０２の処理）、それぞれの値を記憶する。
【０１１８】
図１３は、本発明の実施形態における商品棚と商品戻し中の処理イメージを説明する模式図である。
【０１１９】
図１３において、商品１０４が仮想グリッド内を移動する際に仮想グリッドから存在しなくなるまで、現在座標９０２〜９０５の現在座標を取得し続ける（ステップＳ５０５の処理）。続いて、現在深度の値も取得し続ける。
【０１２０】
図１４は、本発明の実施形態における商品棚と商品戻し終了時の処理イメージを説明する模式図である。
【０１２１】
図１４において、商品１０４の現在座標が９０６のように仮想グリッドから存在しなくなった場合（ステップＳ５０４の判断分岐のＮＯへ遷移）、最後の仮想グリッド内の現在座標として、９０５が設定される（ステップＳ５１０の処理）。
【０１２２】
続いて、商品の開始座標９０１と最後の現在座標９０５の情報から商品の移動の向き９０７を算出する。図１４の場合、商品の移動の向き９０７は図８の４０２の取り出し方向と反対なので、戻す向きと特定する（ステップＳ５１０の処理）。
【０１２３】
図１２から図１４のイメージのように商品が移動した場合、ステップＳ５１１では戻す向きに移動したと判断し、ステップＳ５１３の処理（すなわち、図７の処理）へと遷移する。
【０１２４】
図１４の場合は、最後の現在座標９０５と同じ時に取得した開始深度から取り出した棚の位置を特定する（図７のステップＳ７０１、Ｓ７０２の処理）。図１４の例では、グリッドＡ（左の棚）に１つ商品が戻されているので、９０８のように在庫数を当初の１０から１１に増やしている。この在庫数を増やす情報を在庫管理サーバ１０７に送信する（ステップＳ５１４の処理）。
【０１２５】
以上のイメージで示すように、棚の取り出し口を撮像することで、商品の戻し状況を把握することができる。
【０１２６】
次に、図１６を参照して、ステップＳ５０７およびステップＳ５０８の処理のイメージを説明する。
【０１２７】
図１６は、本発明の実施形態における商品を仮想グリッド領域４０１内で同一種類の別の商品を検出するイメージを説明する模式図である。
【０１２８】
図１６のイメージは、商品１０４を１１０２において検出した（ステップＳ５０１）後で、次の撮像処理（ステップＳ５０３）において、同じ商品が１１０３と１１０４で検出された場合の例である。
【０１２９】
図１６において、商品の移動を示す閾値が１１０１の場合、開始座標１１０２と現在座標１１０４とは距離が閾値以上に離れており（１１０６）、一方現在座標１１０３は閾値以内である（１１０５）ので、開始座標１１０２から移動した商品は１１０３へ移動したと判断する。閾値は顧客が商品を移動させる速度と撮像処理を行う時間間隔から設定される。この閾値は、商品棚のレーン間隔（図８の４０５と４０６の間の距離）よりも短い必要があるので、顧客の商品移動速度との関係で、撮像処理を行う時間間隔を設定するようにしても良い。
【０１３０】
以上の処理により、撮像のフレームレートが遅く、商品を追跡する速度に限度がある場合に、２つの商品が認識されても閾値１１０１以上離れていれば、２つの商品を識別して棚の出し入れを管理することができる。
＜第２の実施形態＞
第１の実施形態では、撮像部（ネットワークカメラ）１０１による撮像画像から商品を識別後に商品の追跡を行っている。第２の実施形態では、商品の識別を商品の追跡後に行うことにより、撮像画像からの商品識別の手順を撮像時毎に行う処理を省き、撮像部のフレームレートを上げることができる。すなわち、第２の実施形態では、商品が検出エリア（仮想グリッド）４０１から出ると、蓄積した画像からまとめて商品の識別処理を行うことにより、撮像時毎の商品識別処理を防ぎ、撮像部のフレームレートを上げている。図２０、図２１を参照して、本願発明の第２の実施形態の在庫管理処理の流れを説明する。
【０１３１】
図２０は、本発明の実施形態に係る情報処理装置１０２における在庫管理を行う第２の実施形態の処理概要を示すフローチャートであり、図中のＳ２００１〜Ｓ２００３は各ステップを示す。各ステップの処理は、情報処理装置１０２の外部メモリ２１１に格納されたアプリケーションプログラムを、それぞれのシステムのＣＰＵ２０１がＲＡＭ２０３上にロードして実行することにより実現される。
【０１３２】
図２０のフローチャートは、撮像部１０１と情報処理装置１０２が起動されると開始される処理の流れである。なお、以後のフローチャートにおいて、情報処理装置１０２は、ネットワークカメラ１０１からネットワークを通じて随時データを取得することができるものとする。
【０１３３】
図２０のフローチャートの処理に入る前に、まず情報処理装置１０２のＣＰＵ２０１は、撮像部１０１のＲＧＢカメラ３０７により得られる商品棚の取り出し口部分の撮像画像を取得する。
【０１３４】
次に、ステップＳ２００１において、情報処理装置１０２のＣＰＵ２０１は、取得した撮像画像を元に、商品棚のレーンや高さに合わせた検出エリア４０１が設定を受け付ける。検出エリアの設定方法は、図８、図１７、図１８と同様なので説明を省略する。なお、第１の実施形態では、撮像部のフレームレートが低いことを想定しているため、検出エリア４０１の商品の取り出し方向（Ｙ軸方向）の幅は図８や図１７、図１８のように広めに確保しているが、第２の実施形態では、撮像部のフレームレートが高いため、検出エリア４０１の商品の取り出し方向（Ｙ軸方向）の幅は図２２の検出エリア２２１０のようにより狭く設定できる。
【０１３５】
次に、ステップＳ２００２において、情報処理装置１０２のＣＰＵ２０１は、取得した撮像画像を元に、商品棚の出入口にあたる検出ラインの設定を受け付ける。検出ラインの設定を図２２を参照して説明する。
【０１３６】
図２２は、本発明の実施形態における高さ方向に複数の棚を有する商品棚と商品を取り出す領域（検出エリア）のイメージを説明する模式図である。
【０１３７】
図２２の１０３が商品棚、１０４が商品の例であり、撮像範囲である４０４が、商品取り出し口に該当する。なお、各棚の横方向（レーン毎）の検出は第１の実施形態と同様なので、以後の説明では省略する、
図２２の例では、商品棚１０３は３段の棚が存在する例である。
【０１３８】
図２２の検出エリア２２１０に、３段の棚毎に検出ライン２２０１〜２２０３が設定される。なお、図２２では検出ライン２２０１〜２２０３は理解を助けるために異なる位置で記載しているが、検出ラインは検出エリア２２１０の端（図２２の場合、検出エリア２２１０の矩形の下辺部分）に設定されており、それぞれの棚によって横幅が異なっている。横幅のサイズは、たとえば図１８で設定されている幅である。この検出ラインを通過したかによって、該当の棚から商品が出入りしたのかを判別でき、隣の棚で出入りした商品の誤検出を防ぐ、もしくは検出エリアを偶々通った商品（たとえば、顧客が商品を持って検出エリアを右から左に横切った場合）などの誤検出を防ぐことができる。なお、実施例では、一つの在庫監視システム１０５で説明しているが、撮像部１０１付きの在庫監視システム１０５が複数設置されていて、それぞれの在庫監視システム１０５のラックで商品検知を行っている場合も考えられる。その場合、横のラックの商品を誤検出することを防ぐことができる。図２０のフローチャートの説明に戻る。
【０１３９】
次に  図２０のステップＳ２００３へと処理を移行すると、情報処理装置１０２のＣＰＵ２０１は、商品在庫を管理する処理を開始する。ステップＳ２００３の処理内容を図２１を参照して説明する。
【０１４０】
図２１は、本発明の実施形態に係る情報処理装置１０２における商品在庫追従の第２の実施形態の処理概要を示すフローチャートであり、図中のＳ２１０１〜Ｓ２１１８は各ステップを示す。各ステップの処理は、情報処理装置１０２の外部メモリ２１１に格納されたアプリケーションプログラムを、それぞれのシステムのＣＰＵ２０１がＲＡＭ２０３上にロードして実行することにより実現される。
【０１４１】
図２１のフローチャートは、図２０のフローチャートのステップＳ２００３へと遷移した際に開始される処理の流れである。
【０１４２】
まず、図２１のステップＳ２１０１において、情報処理装置１０２のＣＰＵ２０１は、撮像部１０１から撮像画像（キャプチャ）を取得する。この撮像画像の取得は図２１のフローチャートの処理中は常時行われても良い。なお、ステップＳ２１０１の処理は撮像画像の取得と同時にＴＯＦセンサ３０５による物体検出を行っても良い。
【０１４３】
次に、ステップＳ２１０２において、情報処理装置１０２のＣＰＵ２０１は、撮影エリア４０４内の検出エリア２２１０内で商品もしくは手などの物体を検出したか判断する。物体を検出した場合はステップＳ２１０３へと処理を遷移し、物体を検出しなかった場合はステップＳ２１０１へと処理を戻し、物体を検出するまで処理を繰り返す。物体を検出したかどうかは、ＴＯＦセンサによる物体検出でも良いし、画像の差分情報による検出でもよく、またステレオカメラによる物体検出であっても良い。
【０１４４】
次に、ステップＳ２１０３において、情報処理装置１０２のＣＰＵ２０１は、ＴＯＦセンサなどで物体を検出した位置を特定する。この位置情報は随時取得しておき、位置情報を常にトラッキングすることができる。
【０１４５】
次に、ステップＳ２１０４において、情報処理装置１０２のＣＰＵ２０１は、物体を検出した位置の周りの画像を記憶する。記憶した画像の一例を図２３を参照して説明する。
【０１４６】
図２３は、本発明の実施形態に係る情報処理装置１０２に記憶されている一連の商品画像の例である。
【０１４７】
図２３の２３０１から２３１２まで、検出された物体順に時系列で記憶されている画像を表示している。図２３は具体的には、ペットボトルの商品が顧客の手によって棚に戻される場合の一連の画像群である。この処理のように、撮像して記憶する範囲を限定して記憶、もしくは商品特定に利用することにより、第１の実施形態のように画像全体から物体を特定する手法より、画像記憶メモリの削減や、商品特定の際の画像処理時間の短縮が可能となる。。図２１のフローチャートの説明に戻る。
【０１４８】
次に、図２１のステップＳ２１０５において、情報処理装置１０２のＣＰＵ２０１は、ＴＯＦセンサもしくはステレオカメラから、物体の高さ情報（深度情報）を取得する。
【０１４９】
次に、ステップＳ２１０６において、情報処理装置１０２のＣＰＵ２０１は、ステップＳ２１０３で取得したトラッキング情報から、物体が検出ライン２２０１〜２２０３を通過したかを判断する。検出ラインを通過するかは、ステップＳ２１０５で取得した物体の高さ情報とステップＳ２１０３で取得したトラッキング情報から判断する。たとえば、物体の高さ情報が１段目の高さと検出された場合（図１８の例では、２０ｃｍ）、１段目の棚の検出ラインは、図１８の場合、画面上のサイズで『−１５０〜１５０』である。同様に、物体の高さ情報が３段目の高さと検出された場合（図１８の例では、８０ｃｍ）、３段目の棚の検出ラインは、図１８の場合、画面上のサイズで『−９０〜９０』である。これらの間を物体が通過した場合は、検出ラインを通過したと判断する。すなわち、棚と棚の前との領域で、商品もしくは手が出入りしたことを意味する。一方、物体の高さ情報が３段目の高さと検出され、検出ラインの横方向が例えば『１１０』の位置を通過した場合は、隣の棚への物体の出し入れと判断し、該当の検出ラインを通過したとはみなさない。
【０１５０】
ステップＳ２１０６において、物体が検出ラインを通過したと判断された場合は、検出ラインを通過したという図示しないフラグ立てて、ステップＳ２１０８へと処理を遷移する。同時に高さ情報を記憶する。以後、検出ライン通過フラグが立っている間はステップＳ２１０６では、Ｙｅｓの処理へと遷移する。一方、検出ラインを通過していないと判断された場合は、ステップＳ２１０７へと処理を遷移する。
【０１５１】
ステップＳ２１０７へと処理を遷移すると、情報処理装置１０２のＣＰＵ２０１は、トラッキングしている物体が検出エリア２２１０から出た（ＯＵＴ）かどうかを判断する。検出エリア２２１０を出たと判断された場合は、検出ラインを通過せず検出エリアを出たことを意味する（つまり、棚の中を触っていない）ため、記憶している画像や高さ情報を削除する処理（ステップＳ２１１８）を実行して、最初の処理へと戻る。一方、物体が検出エリアから出ていない場合は、物体が検出エリア内にあることを意味するため、記憶画像を削除せず、最初の処理へと戻る。
【０１５２】
ステップＳ２１０８へと処理を遷移した場合、すなわち物体が一度でも検出ラインを通過した場合、情報処理装置１０２のＣＰＵ２０１は、物体が検出エリアから検出ラインと逆方向に出たかどうかを判断する。検出ラインと逆方向に物体が出た場合は、ステップＳ２１１１へと処理を遷移し、検出ラインと逆方向に物体が出ていない場合は、ステップＳ２１０９の処理へ遷移する。検出ラインと逆方向に出るとは、図２２の例では、２２１１のような上方向の領域方向に向かって物体が検出エリアを出るかどうかで判断される。すなわち、ステップＳ２１０８の処理は、棚から商品または手が取り出されたかどうかを判断している処理である。
【０１５３】
ステップＳ２１０９へと処理を遷移した場合、情報処理装置１０２のＣＰＵ２０１は、物体が検出エリアから検出ラインを通過して出たかどうかを判断する。検出ラインから物体が出た場合は、ステップＳ２１１０へと処理を遷移し、検出ラインから物体が出ていない場合は、ステップＳ２１１７の処理へ遷移する。検出ラインから物体が出たかどうかは、図２２の例では、２２０１〜２２０３の検出ラインを通過して検出エリアを出たかどうかで判断される。すなわち、ステップＳ２１０９の処理は、棚に商品または手が入ったかどうかを判断している処理である。
【０１５４】
なお、検出ラインから物体が出る場合でも、同じ検出ラインから入って追跡されている物体の場合は、Ｎｏの処理へと遷移し、ステップＳ２１１７の判断分岐へと遷移する。Ｎｏへと遷移するのは、たとえば、商品を顧客が棚から取り出して、検出エリアから出すことなく棚に戻した場合に商品がカウントアップされることを防ぐためである。
【０１５５】
ステップＳ２１１０へと処理を遷移すると、情報処理装置１０２のＣＰＵ２０１は、物体が商品である場合に在庫を増やす処理を実行するため、図示しないカウントアップフラグを立てる。その後、ステップＳ２１１２へと処理を遷移する。
【０１５６】
一方、ステップｓ２１１１へと処理を遷移した場合、情報処理装置１００のＣＰＵ２０１は、物体が商品である場合に在庫を減らす処理を実行するためのため、図示しないカウントダウンフラグを立てる。その後、ステップＳ２１１２へと処理を遷移する。
【０１５７】
ステップＳ２１１２へと処理を遷移すると、情報処理装置１００のＣＰＵ２０１は、ステップＳ２１０４で記憶している複数の撮像画像を読み込み、画像を取得する。
【０１５８】
次に、ステップＳ２１１３において、情報処理装置１００のＣＰＵ２０１は、ＡＩによる画像認識により、商品を特定する処理を行う。具体的には、ＡＩの教師データとして数千枚の画像（図２３のような画像を推論する場合はペットボトルの様々な角度の数千枚の画像）を登録して、たとえばＶＧＧやＭｏｂｉｌｅＮｅｔなどのディープラーニングのアルゴリズムを用い学習させる。学習させた学習済モデルにたとえば、図２３のような複数の画像２３０１〜２３１２を入力し、推論されるペットボトルの商品を特定する。このように、物体周辺の画像複数枚により１つの商品を推論するため、第１の実施形態のように１枚の全体画像から商品を特定する処理よりも画像解析のスピードが上がり、撮像部のフレームレートを上げることができる。なお、商品の特定にはＡＩを利用せず、商品につけられたタグを撮像して識別しマッチングさせることにより特定しても良い。また、複数の画像を記憶しておいて、単なるマッチング条件によって商品を特定しても良く、それら場合も物体周辺の画像を複数枚使って判断することができ、画像解析の処理を上げ、処理速度を上げることができる。
【０１５９】
次に、ステップＳ２１１４において、情報処理装置１００のＣＰＵ２０１は、ステップＳ２１１３で特定された物体が商品かそうでないかを判断する。商品の場合はステップＳ２１１５へと処理を遷移し、商品ではなく手である、もしくは商品を特定できない場合は、ステップっＳ２１１８へと処理を遷移する。
【０１６０】
ステップＳ２１１８へと処理を遷移すると、情報処理装置１００のＣＰＵ２０１は、記憶画像や物体の高さ情報、検出ライン通過フラグ、在庫増減数などを削除する。ステップＳ２１１８へと遷移する場合は、検出エリアから物体が出た場合であり、かつ検出した物体が手もしくは識別不可能な商品の場合、もしくは、棚内に手を入れることなく検出エリアを出た場合を指すので、記憶画像、物体の高さ情報、検出ライン通過フラグ、在庫増減数は不要になるため、これらのデータを削除する。その後、このフローチャートの最初の処理に戻る。なお、ステップＳ２１１３でユーザの手と認識不可能な商品とを識別可能であれば、認識不可能な商品が棚に入れられた場合、アラートを出して、認識不可能な商品があることを店舗の商品管理者に伝える構成があっても良い。
【０１６１】
一方、ステップＳ２１１４の判断分岐の結果、ステップＳ２１１５へと処理を遷移すると、情報処理装置１００のＣＰＵ２０１は、ステップＳ２１１４で推論された商品を、ステップＳ２１０６で記憶した高さの棚に対して、ステップＳ２１１０もしくはステップＳ２１１１の在庫増減数だけ在庫を増減させる情報を設定する。
【０１６２】
次に、ステップＳ２１１６において、情報処理装置１００のＣＰＵ２０１は、ステップＳ２１１５で設定された棚と商品と増減情報を在庫管理サーバ１０７に送信して、ステップＳ２１１７へと処理を遷移する。
【０１６３】
ステップＳ２１１７へと処理を遷移すると、本実施形態のフローチャートを終了するかユーザから受け付け（不図示）ユーザから終了を受け付けると処理を終了し、ユーザからの終了指示を受け付けない場合は、フローチャートの最初の処理へと戻す。
【０１６４】
以上の処理のように、まず、物体検出とトラッキングを先の実行し、検出エリアから物体が出ると、撮像している画像を使って商品を特定して在庫情報を管理するにより、撮像毎に画像全体から商品識別を行う処理を省き、撮像部のフレームレートを上げて、細かなトラッキングが可能となる効果を有する。
【０１６５】
なお、第２の実施形態では、検出ラインを通過したかによって、商品が棚から出し入れされたかを判断しているが、商品が取り出し方向（Ｙ座標）に所定の閾値以上移動した際に、棚から出し入れされたと判断しても良い。その際、商品が出し入れされる棚の高さ情報は、検出ライン通過時の高さ（ステップ２１０６）から設定する。
【０１６６】
以上の処理により、本発明は、複数の列からなる商品棚を少ない撮像装置で、かつ在庫場所の撮影の有無を問わず商品の出入りが管理できる効果を有する。
【０１６７】
また、在庫管理の他に、棚の高さや横の位置毎のデータを逐次取得できるため、棚割を適切に割り当てるための情報を取得することができる効果も有する。
【０１６８】
また、商品の配置場所と出入を特定できるため、売上を伸ばすために適した棚割を容易に行うための情報を取得することができる。
【０１６９】
また、在庫管理するためには物品の種類を特定する必要があるが、取得した画像から毎回物品の種類を特定すると、処理が遅延しフレームレートを低下させてしまう。そのため、物品の検出タイミングが遅れ、物品の追跡が難しいという課題を解決できる。
【０１７０】
さらに、画像により特定された｛位置／高さ／商品画像｝に基づき、商品の配置場所を特定できるため、ユーザによる商品配置場所のメンテナンスを省力化することができ、在庫管理や商品棚卸情報をより正確に行うことができる。
【０１７１】
また、本発明におけるプログラムは、各処理方法をコンピュータが実行可能（読取可能）なプログラムであり、本発明の記憶媒体は、各処理方法をコンピュータが実行可能なプログラムが記憶されている。
【０１７２】
なお、本発明におけるプログラムは、各装置の処理方法ごとのプログラムであってもよい。
【０１７３】
以上のように、前述した実施形態の機能を実現するプログラムを記録した記録媒体を、システムあるいは装置に供給し、そのシステムあるいは装置のコンピュータ（またはＣＰＵやＭＰＵ）が記録媒体に格納されたプログラムを読取り実行することによっても、本発明の目的が達成されることは言うまでもない。
【０１７４】
この場合、記録媒体から読み出されたプログラム自体が本発明の新規な機能を実現することになり、そのプログラムを記憶した記録媒体は本発明を構成することになる。プログラムを供給するための記録媒体としては、例えば、フレキシブルディスク，ハードディスク，光ディスク，光磁気ディスク，ＣＤ−ＲＯＭ，ＣＤ−Ｒ，ＤＶＤ−ＲＯＭ，磁気テープ，不揮発性のメモリカード，ＲＯＭ，ＥＥＰＲＯＭ，シリコンディスク等を用いることができる。
【０１７５】
また、コンピュータが読み出したプログラムを実行することにより、前述した実施形態の機能が実現されるだけでなく、そのプログラムの指示に基づき、コンピュータで稼働しているＯＳ等が実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【０１７６】
さらに、記録媒体から読み出されたプログラムが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれた後、そのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるＣＰＵ等が実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【０１７７】
また、本発明は、システムあるいは装置にプログラムを供給することによって達成される場合にも適応できることは言うまでもない。この場合、本発明を達成するためのプログラムを格納した記録媒体を該システムあるいは装置に読み出すことによって、そのシステムあるいは装置が、本発明の効果を享受することが可能となる。
【０１７８】
さらに、本発明を達成するためのプログラムをネットワーク上のサーバ，データベース等から通信プログラムによりダウンロードして読み出すことによって、そのシステム、あるいは装置が、本発明の効果を享受することが可能となる。なお、上述した各実施形態およびその変形例を組み合わせた構成も全て本発明に含まれるものである。
【符号の説明】
【０１７９】
１０１    ネットワークカメラ
１０２    情報処理装置
１０３    商品棚
１０４    商品
１０５    在庫監視システム
１０６    ネットワーク
１０７    在庫管理サーバ
２０１    ＣＰＵ
２０２    ＲＯＭ
２０３    ＲＡＭ
２０４    システムバス
２０５    入力コントローラ
２０６    ビデオコントローラ
２０７    メモリコントローラ
２０８    通信Ｉ／Ｆコントローラ
２０９    入力部
２１０    表示部
２１１    外部メモリ
３０１    ＣＰＵ
３０２    ＲＯＭ
３０３    ＲＡＭ
３０４    システムバス
３０５    ＴＯＦセンサ
３０６    深度計測部
３０７    ＲＧＢカメラ部
３０８    画像処理部
３０９    通信Ｉ／Ｆコントローラ
【図１】
2020063154.tif 000003
【図２】
2020063154.tif 000004
【図３】
2020063154.tif 000005
【図４】
2020063154.tif 000006
【図５】
2020063154.tif 000007
【図６】
2020063154.tif 000008
【図７】
2020063154.tif 000009
【図８】
2020063154.tif 000010
【図９】
2020063154.tif 000011
【図１０】
2020063154.tif 000012
【図１１】
2020063154.tif 000013
【図１２】
2020063154.tif 000014
【図１３】
2020063154.tif 000015
【図１４】
2020063154.tif 000016
【図１５】
2020063154.tif 000017
【図１６】
2020063154.tif 000018
【図１７】
2020063154.tif 000019
【図１８】
2020063154.tif 000020
【図１９】
2020063154.tif 000021
【図２０】
2020063154.tif 000022
【図２１】
2020063154.tif 000023
【図２２】
2020063154.tif 000024
【図２３】
2020063154.tif 000025