(57)【特許請求の範囲】
【請求項１】
商品を陳列するための陳列棚を、主撮像デバイスで撮影して得られた棚画像と、前記商品を単体で既知の撮影距離で撮影して得られた単体画像とを記憶した少なくとも１つの記憶デバイスにアクセス可能な画像処理装置であって、
前記陳列棚までの前記主撮像デバイスからの離間距離を推定し、当該離間距離に基づいて探索距離を決定する決定ユニットと、
前記記憶デバイスに記憶された前記単体画像を、前記決定ユニットにより決定された前記探索距離と前記既知の撮影距離との比に応じた倍率で画素数変換してテンプレート画像を生成する生成ユニットと、
前記記憶デバイスに記憶されたうちの前記主撮像デバイスにより撮影された前記棚画像内の前記テンプレート画像に類似する領域を判定する判定ユニットと、
を具備したことを特徴とする画像処理装置。
【請求項２】
前記少なくとも１つの記憶デバイスは、前記陳列棚を、前記主撮像デバイスを含む複数の撮像デバイスのそれぞれで同時に撮影して得られた複数の棚画像を記憶し、
前記決定ユニットは、前記記憶デバイスに記憶された複数の棚画像のうちの互いに異なる方向から撮影された少なくとも２つに基づいて、前記離間距離を推定する、
ことを特徴とする請求項１に記載の画像処理装置。
【請求項３】
前記決定ユニットは、
前記主撮像デバイスで撮影された棚画像を構成する画素毎に、当該画素が表す物体までの前記主撮像デバイスからの距離を推定し、
さらに、規定画素数以上に渡って水平方向に連続する複数の画素の隣接するものどうしの距離の差がいずれも許容差分値未満である場合に、当該複数の画素のそれぞれの距離の代表値を前記離間距離とする、
ことを特徴とする請求項１または２に記載の画像処理装置。
【請求項４】
前記判定ユニットは、
前記主撮像デバイスで撮影された棚画像のうちで前記決定ユニットにより推定された距離が前記探索距離と等しい画素については当該棚画像における画素値を示し、その他の画素については予め定められた画素値を示した等距離画像を生成し、
前記等距離画像内の前記テンプレート画像に類似する領域を判定する、
ことを特徴とする請求項３に記載の画像処理装置。
【請求項５】
主撮像デバイスと、
商品を陳列するための陳列棚を、前記主撮像デバイスで撮影して得られた棚画像と、前記商品を単体で既知の撮影距離で撮影して得られた単体画像とを記憶した少なくとも１つの記憶デバイスと、
前記陳列棚までの前記主撮像デバイスからの離間距離を推定し、当該離間距離に基づいて探索距離を決定する決定ユニットと、
前記記憶デバイスに記憶された前記単体画像を、前記決定ユニットにより決定された前記探索距離と前記既知の撮影距離との比に応じた倍率で画素数変換してテンプレート画像を生成する生成ユニットと、
前記記憶デバイスに記憶されたうちの前記主撮像デバイスにより撮影された前記棚画像内の前記テンプレート画像に類似する領域を判定する判定ユニットと、
を具備したことを特徴とする陳列状況判定装置。
【請求項６】
商品を陳列するための陳列棚を、主撮像デバイスで撮影して得られた棚画像と、前記商品を単体で既知の撮影距離で撮影して得られた単体画像とを記憶した少なくとも１つの記憶デバイスにアクセス可能な画像処理装置に備えられたコンピュータを、
前記陳列棚までの前記主撮像デバイスからの離間距離を推定し、当該離間距離に基づいて探索距離を決定する決定ユニットと、
前記記憶デバイスに記憶された前記単体画像を、前記決定ユニットにより決定された前記探索距離と前記既知の撮影距離との比に応じた倍率で画素数変換してテンプレート画像を生成する生成ユニットと、
前記記憶デバイスに記憶されたうちの前記主撮像デバイスにより撮影された前記棚画像内の前記テンプレート画像に類似する領域を判定する判定ユニットと、
して機能させるための画像処理プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は、画像処理装置および画像処理プログラムと、陳列状況判定装置に関する。
【背景技術】
【０００２】
店舗における陳列棚での商品の陳列状況をカメラにより撮影した画像によって監視可能とするための画像監視システムは知られている。
【０００３】
しかしながら、この種のシステムは一般に、係員が目視により商品の欠品などをチェックするものであった。
【０００４】
画像に映り込んだ商品を画像処理によって認識するシステムは知られているが、陳列棚における商品の陳列状況の監視に適するものではなかった。
【０００５】
このような事情から、陳列棚を撮影した画像から、その陳列棚における商品の陳列状況を確認するための情報を効率的に得られることが望まれていた。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２０１３−１０９７７３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
本発明が解決しようとする課題は、陳列棚を撮影した画像から、その陳列棚における商品の陳列状況を確認するための情報を効率的に得ることができる画像処理装置および画像処理プログラムと、陳列状況判定装置を提供することである。
【課題を解決するための手段】
【０００８】
実施形態の画像処理装置は、商品を陳列するための陳列棚を、主撮像デバイスで撮影して得られた棚画像と、商品を単体で既知の撮影距離で撮影して得られた単体画像とを記憶した少なくとも１つの記憶デバイスにアクセス可能な画像処理装置であって、決定ユニット、生成ユニットおよび判定ユニットを備える。決定ユニットは、陳列棚までの主撮像デバイスからの離間距離を推定し、当該離間距離に基づいて探索距離を決定する。生成ユニットは、記憶デバイスに記憶された単体画像を、決定ユニットにより決定された探索距離と既知の撮影距離との比に応じた倍率で画素数変換してテンプレート画像を生成する。判定ユニットは、記憶デバイスに記憶されたうちの主撮像デバイスにより撮影された棚画像内のテンプレート画像に類似する領域を判定する。
【図面の簡単な説明】
【０００９】
【図１】一実施形態に係る陳列状況判定装置のブロック図。
【図２】図１中の管理テーブルの記述内容の一例を模式的に示す図。
【図３】撮影距離の情報を含んだ画像ファイルの構成例を示す図。
【図４】図１中の棚割り情報の一例を模式的に示す図。
【図５】図１中の画像処理プログラムを実行することにより実現される図１中のプロセッサの機能のブロック図。
【図６】図１中のプロセッサによる画像処理のフローチャート。
【図７】第１の棚画像の一例を示す図。
【図８】図７に示す第１の棚画像に関して生成された距離画像の一例を示す図。
【図９】図６中の離間距離の推定に関わる図１中のプロセッサの詳細な処理を示すフローチャート。
【図１０】等距離画像の一例を示す図。
【図１１】等距離画像の別例を示す図。
【図１２】テンプレート画像の生成の様子を示す図。
【図１３】図６中のテンプレートマッチングにおける図１中のプロセッサの詳細な処理を示すフローチャート。
【図１４】開始座標（Xs,Ys）および終了座標(Xe,Ye)を表した図。
【発明を実施するための形態】
【００１０】
以下実施の形態の一例を、図面を用いて説明する。
【００１１】
図１は本実施形態に係る陳列状況判定装置１００のブロック図である。
【００１２】
陳列状況判定装置１００は、プロセッサ１、記憶ユニット２、通信・入出力インタフェース（通信・入出力Ｉ／Ｆ）３、ステレオカメラ４、ユーザインタフェース（ユーザＩ／Ｆ）５およびバス６を含む。プロセッサ１と、記憶ユニット２、通信・入出力インタフェース３およびユーザインタフェース５とは、バス６によって接続される。バス６は、アドレスバス、データバスおよび制御信号線等を含む。プロセッサ１および記憶ユニット２は、バス６によって接続されることによってコンピュータを構成する。
【００１３】
プロセッサ１は、上記コンピュータの中枢部分に相当する。プロセッサ１は、記憶ユニット２に記憶されるオペレーティングシステムやアプリケーションプログラムに従って、陳列状況判定装置１００としての各種の機能を実現するべく陳列状況判定装置１００の各部を制御する。
【００１４】
記憶ユニット２は、上記コンピュータの主記憶部分に相当する。記憶ユニット２は、不揮発性のメモリ領域と揮発性のメモリ領域とを含む。記憶ユニット２は、不揮発性のメモリ領域ではオペレーティングシステムやアプリケーションプログラムを記憶する。また記憶ユニット２は、プロセッサ１が各部を制御するための処理を実行する上で必要なデータを不揮発性または揮発性のメモリ領域で記憶する場合もある。揮発性のメモリ領域は、プロセッサ１によってデータが適宜書き換えられるワークエリアとしても機能する。
【００１５】
記憶ユニット２は、上記コンピュータの補助記憶部分に相当する補助記憶デバイスを含んでも良い。当該補助記憶デバイスは、例えばＥＥＰＲＯＭ（electric erasable programmable read-only memory）、ＨＤＤ（hard disc drive）、ＳＳＤ（solid state drive）などである。補助記憶デバイスは、プロセッサ１が各種の処理を行う上で使用するデータや、プロセッサ１での処理によって生成されたデータを保存する。補助記憶デバイスは、アプリケーションプログラムを記憶する場合もある。
【００１６】
通信・入出力インタフェース３は、ネットワークを介したデータ通信および種々の入出力デバイスとの間で行うデータ通信のインタフェースである。通信・入出力インタフェース３としては、例えばインターネットを介したデータ通信を行うための周知のデバイスおよびＵＳＢ（universal serial bus）などの周知のインタフェース規格に準拠した周知のデバイスを利用できる。
【００１７】
ステレオカメラ４は、通信・入出力インタフェース３に接続される。ステレオカメラ４は、２つの撮像デバイス４１，４２を含む。撮像デバイス４１，４２は、同一の物体を異なる方向から撮影できるように、互いに離間して配置されている。撮像デバイス４１，４２は、同期的に撮影を行う。撮像デバイス４１，４２は、撮影した画像を表す画像データをそれぞれ通信・入出力インタフェース３へと出力する。本実施形態においては、撮像デバイス４１を主撮像デバイスとして使用する。
【００１８】
ユーザインタフェース５は、入力デバイスおよび出力デバイスを含む。ユーザインタフェース５は、入力デバイスにおけるユーザ操作に基づいて情報を入力する。ユーザインタフェース５は、出力デバイスによって、ユーザに対して情報を提示する。入力デバイスとしては、例えばキーボード、タッチセンサ、あるいはポインティングデバイスなどが相当する。出力デバイスとしては、例えばディスプレイまたはプリンタなどが相当する。入力デバイスおよび出力デバイスとしては、複数種類のデバイスをそれぞれ含んでいても良い。
【００１９】
プロセッサ１、記憶ユニット２、通信・入出力インタフェース３、ステレオカメラ４およびユーザインタフェース５は、例えば単一の台車に搭載され、一体的な陳列状況判定装置１００を形成する。そして陳列状況判定装置１００は、スーパーマーケットなどの店舗内を、商品を陳列している陳列棚をステレオカメラ４によって撮影しながら移動する。陳列状況判定装置１００の移動は、人力によることが想定されるが、モータなどの動力源が発生する駆動力によっても良い。従ってステレオカメラ４が出力する２つの画像データは、いずれも陳列棚を撮影して得られた棚画像を表す。
【００２０】
プロセッサ１、記憶ユニット２、通信・入出力インタフェース３およびユーザインタフェース５と、ステレオカメラ４とがそれぞれ別々のユニットを構成し、これらのユニットの連携により陳列状況判定装置１００が形成されるものとしても良い。この場合、２つのユニットは、有線または無線の通信回線または通信網を介して互いに接続される。２つのユニットは、通信回線または通信網を介して直接的に画像データを授受しても良いし、例えばサーバ装置などを介して間接的に画像データを授受しても良い。２つのユニットに分離される場合には例えば、一方のユニットがステレオカメラ４を台車に搭載して構成された移動可能なユニットとされ、他方のユニットが固定的に設置される画像処理装置とされる形態が想定される。
【００２１】
記憶ユニット２が記憶するアプリケーションプログラムには、画像処理プログラム２１を含む。画像処理プログラム２１は、後述する各ユニットとしてプロセッサ１を機能させるためのコンピュータプログラムである。この画像処理プログラム２１は、典型的には陳列状況判定装置１００がユーザに譲渡されるのに先立って記憶ユニット２に書き込まれる。しかしながら、画像処理プログラム２１が記憶ユニット２に書き込まれない状態の陳列状況判定装置１００がユーザに譲渡されたのちに、ユーザによる操作に応じて画像処理プログラム２１が記憶ユニット２に書き込まれても良い。
【００２２】
記憶ユニット２の記憶領域の一部は、単体画像データベース(単体画像ＤＢ)２２として使用される。記憶ユニット２は、調整値２３、調整フラグ２４および棚割り情報を保存する。
【００２３】
単体画像データベース２２には、複数の画像ファイルと１つの管理テーブルとが保存される。
【００２４】
複数の画像ファイルはそれぞれ、陳列状況確認の対象となる商品を単体で撮影して得られた画像（以下、単体画像と称する）を表す画像データを含む。単体画像の撮影には、撮像デバイス４１を使用することが望ましい。しかしながら、単体画像の撮影に撮像デバイス４２を使用しても良いし、あるいは撮像デバイス４１，４２とは別の撮像デバイスを使用しても良い。ただし、単体画像の撮影に用いる撮像デバイスは、光学的な倍率および撮像素子の特性などが撮像デバイス４１と極力近いことが好ましい。
【００２５】
管理テーブルは、複数の画像ファイルの個々に関連したデータレコードの集合である。
【００２６】
図２は管理テーブルの記述内容の一例を模式的に示す図である。
【００２７】
管理テーブルが含むデータレコードは、ナンバー（Ｎｏ．）、商品名、画像ファイル名および撮影距離情報の各フィールドを含む。ナンバーのフィールドには、他のデータレコードとは重複しないように割り付けた番号が記述される。商品名のフィールドには、関連する商品の名称が記述される。画像ファイル名のフィールドには、関連する画像データを識別するためのファイル名が記述される。撮影距離情報のフィールドには、単体画像を撮影した際の商品から撮像デバイスまでの離間距離が記述される。従って、単体画像の撮影距離は、このフィールドに記述された情報に基づいて既知となる。
【００２８】
なお、撮影距離の情報を画像ファイル中に含めることにより、管理テーブルから撮影距離情報のフィールドを省いても良い。また、単体画像の撮影距離を予め定めた一定距離とすることをルールとして定めておき、撮影距離情報を省略しても良い。
【００２９】
図３は撮影距離の情報を含んだ画像ファイルの構成例を示す図である。
【００３０】
図３の例では、ヘッダ領域に撮影距離の情報を記述している。
【００３１】
調整値２３は、陳列状況確認の対象となる位置をユーザが調整するためにユーザにより指定される数値である。
【００３２】
調整フラグ２４は、調整値２３を用いた調整を実行するか否かを表す。調整フラグ２４は、ユーザの指示に応じてプロセッサ１によってオン／オフされる。
【００３３】
棚割り情報２５は、どの陳列棚のどの位置にどの商品が陳列されるのかを表すデータレコードの集合である。
【００３４】
図４は棚割り情報２５の一例を模式的に示す図である。
【００３５】
棚割り情報２５が含むデータレコードは、ナンバー（Ｎｏ．）、商品名、棚番号および棚内位置の各フィールドを含む。ナンバーのフィールドには、他のデータレコードとは重複しないように割り付けた番号が記述される。商品名のフィールドには、関連する商品の名称が記述される。棚番号のフィールドには、関連する商品が陳列される陳列棚を識別するための番号が記述される。棚内位置のフィールドには、関連する商品の陳列棚の中での陳列位置が記述される。
【００３６】
図５は画像処理プログラム２１を実行することにより実現されるプロセッサ１の機能のブロック図である。
【００３７】
プロセッサ１は、画像処理プログラム２１に基づく処理を後述するように実行することによって、設定ユニット１１、決定ユニット１２および生成ユニット１３として機能する。
【００３８】
設定ユニット１１は、ユーザインタフェース５におけるユーザによる指示に応じて調整値を設定する。設定ユニット１１は、設定した調整値を記憶ユニット２に書き込む。
【００３９】
決定ユニット１２は、撮像デバイス４１，４２からそれぞれ出力される第１および第２の画像データがそれぞれ表す第１および第２の棚画像に基づいて、検出対象となる商品までの撮像デバイス４１による撮影距離を推定する。
【００４０】
決定ユニット１２としての機能には、生成モジュール１２ａ、推定モジュール１２ｂおよび調整モジュール１２ｃとしての機能をさらに含む。
【００４１】
生成モジュール１２ａは、第１の棚画像を構成する画素毎に、当該画素が表す物体の撮像デバイス４１による撮影距離を推定する。生成モジュール１２ａは、第１の棚画像の各画素を、その画素について推定した撮影距離に応じた画素値に置き換えた距離画像を生成する。
【００４２】
推定モジュール１２ｂは、距離画像において規定数以上に渡って水平方向に連続する同程度の画素値に応じた距離として、第１の棚画像に映り込んだ陳列棚の前面までの離間距離dsを推定する。
【００４３】
調整モジュール１２ｃは、記憶ユニット２に保存された調整フラグがオン状態であるときには、記憶ユニット２に保存された調整値２３を用いて離間距離dsを調整して探索距離d1を得る。調整モジュール１２ｃは、記憶ユニット２に保存された調整フラグがオフ状態であるときには、離間距離dsをそのまま探索距離d1として採用する。そして調整モジュール１２ｃは、探索距離d1を出力する。
【００４４】
生成ユニット１３は、記憶ユニット２に記憶された単体画像を、探索距離d1と当該単体画像の撮影距離d2との比に応じた倍率で画素数変換してテンプレート画像を生成する。
【００４５】
判定ユニット１４は、第１の棚画像内のテンプレート画像に類似する領域を判定する。
【００４６】
判定ユニット１４としての機能には、生成モジュール１４ａおよび照合モジュール１４ｂとしての機能をさらに含む。
【００４７】
生成モジュール１４ａは、第１の棚画像のうちで撮像デバイス４１による撮影距離が撮影距離d1とほぼ等しい画素については第１の棚画像における画素値を示し、その他の画素については予め定められた画素値を示した等距離画像を生成する。
【００４８】
照合モジュール１４ｂは、等距離画像内のテンプレート画像に類似する領域を判定する。
【００４９】
なお、プロセッサ１は、上記の各種の機能による処理に際しては、各種の画像を表したデータおよび各種の数値を記憶ユニット２に保存する。
【００５０】
次に以上のように構成された陳列状況判定装置１００の動作について説明する。
【００５１】
プロセッサ１は画像処理プログラム２１に従って画像処理を実行する。なお、以下に説明する処理の内容は一例であって、同様な結果を得ることが可能な様々な処理を適宜に利用できる。
【００５２】
ユーザは、店舗内で陳列状況判定装置１００を移動させながら、陳列状況を確認したい陳列棚をステレオカメラ４により撮影して行く。プロセッサ１は、ステレオカメラ４にて撮像デバイス４１，４２により得られる第１および第２の棚画像データを、同時に得られたものどうしをセットとして記憶ユニット２に保存する。なお、ステレオカメラ４による撮影タイミングは任意で良いが、典型的には、ユーザによる撮影指示がユーザインタフェース５より入力される毎とする。しかしながら、例えば陳列棚に形成された例えばバーコードなどのマークが撮像デバイス４１の視野内に入った場合などに自動的に撮影しても良い。記憶ユニット２には、第１および第２の棚画像データに関連付けて、撮影の対象となった陳列棚の棚番号を保存しても良い。棚番号は、例えばユーザにより指定されても良いし、上記のバーコードなどからプロセッサ１が判定しても良い。
【００５３】
図６はプロセッサ１による画像処理のフローチャートである。
【００５４】
上記のように陳列棚を撮影するのに並行して、あるいは当該撮影が終了した後の任意のタイミングで、プロセッサ１は画像処理プログラム２１に基づいて図６に示す処理を実行する。
【００５５】
Ａｃｔ１においてプロセッサ１は、上述のようにして保存された第１および第２の棚画像のうちの１セットを記憶ユニット２から取得する。
【００５６】
Ａｃｔ２においてプロセッサ１は、第１および第２の棚画像に基づいて、距離画像を生成する。
【００５７】
図７は第１の棚画像の一例を示す図である。
【００５８】
図７においては、同種の被写体の領域を同一のハッチングで表している。つまり、陳列棚の部材は、全て同一のハッチングで表している。また同種の商品は、全て同一のハッチングで表している。
【００５９】
第１および第２の棚画像は、同じ陳列棚を同時に撮影して得られた画像であるから、ほぼ同じ画像である。ただし、撮像デバイス４１，４２が互いに離間しているから、視差に応じた若干の差異が第１および第２の棚画像の間に生じている。プロセッサ１は、視差を利用する周知の処理により第１の撮像デバイスによる被写体の撮影距離を第１の棚画像の画素毎に推定する。そしてプロセッサ１は、第１の棚画像における各画素の画素値を、その画素について推定した撮影距離に応じた画素値に置き換えて距離画像を生成する。
【００６０】
かくして画像処理プログラムに基づく処理をプロセッサ１が実行することによって、プロセッサ１を中枢部分とするコンピュータは生成モジュール１２ａとして機能する。
【００６１】
図８は図７に示す第１の棚画像に関して生成された距離画像の一例を示す図である。
【００６２】
図８においては、ほぼ同一の画素値を同一のハッチングで表している。
【００６３】
Ａｃｔ３においてプロセッサ１は、第１の棚画像に映り込んだ陳列棚を構成する棚部材までの離間距離dsを推定する。
【００６４】
陳列棚は一般に、水平な天板および棚板を棚部材の１つとして含む。天板および棚板は、陳列される商品よりも水平方向の幅が広い。図７の例では、天板および棚板は、幅W1に渡って水平方向に伸びている。また、天板および棚板の水平方向のさまざまな位置までの撮像デバイス４１からの離間距離は、連続的に変化する。プロセッサ１は、このような性質を利用して離間距離dsを推定する。
【００６５】
かくして画像処理プログラムに基づく処理をプロセッサ１が実行することによって、プロセッサ１を中枢部分とするコンピュータは推定モジュール１２ｂとして機能する。
【００６６】
図９はＡｃｔ３におけるプロセッサ１の詳細な処理を示すフローチャートである。
【００６７】
Ａｃｔ３ａにおいてプロセッサ１は、変数iおよび変数Countにいずれも「１」を代入するとともに、変数Sumに画素値P(i)を代入する。変数iは、距離画像における各画素を識別するための画素番号を表す。変数Countは、連続数のカウント値を表す。変数Sumは、画素値の累積和を表す。画素値P(i)は、画素番号がiである画素の画素値を表す。
【００６８】
Ａｃｔ３ｂにおいてプロセッサ１は、変数iの値を１つ増加する。後述するように、プロセッサ１はＡｃｔ３ｂを繰り返し行う。つまりプロセッサ１は、着目する画素を順次に変更する。
【００６９】
Ａｃｔ３ｃにおいてプロセッサ１は、画素値P(i)が、最小値Clよりも大きく、かつ最大値Cu未満であるかどうかを確認する。ここで最小値Clおよび最大値Cuは、距離画像における棚部材に相当する画素についての画素値として取り得る数値範囲の最小値および最大値を表す。最小値Clおよび最大値Cuは、陳列状況判定装置１００の設計者または画像処理プログラム２１の作成者などによって、予め適切に定められる。例えば、ステレオカメラ４により陳列棚を撮影するに際してのステレオカメラ４と陳列棚との離間距離の許容範囲を、陳列状況判定装置１００を使用する上でのルールとして定める。そして例えば、当該許容範囲の下限値に相当する画素値からマージンを減じた値として最小値Clを定め、上限値に相当する画素値にマージンを加えた値として最大値Cuを定めることが想定される。つまりプロセッサ１は、着目している画素の画素値が、ステレオカメラ４と陳列棚との離間距離としてあり得る距離に相当する値となっているか否かを確認する。そしてプロセッサ１は、ここでＹｅｓと判定したならば、Ａｃｔ３ｄへと進む。
【００７０】
Ａｃｔ３ｄにおいてプロセッサ１は、画素値P(i)から画素値P(i-1)を減じて求まる値の絶対値が許容差分値d未満となっているか否かを確認する。ここで許容差分値dは、距離画像中において水平方向に隣接する２つの画素間において、当該２つの画素がいずれも水平な棚部材に相当する場合における両画素の画素値の差分として許容される値を表す。許容差分値dは、陳列状況判定装置１００の設計者または画像処理プログラム２１の作成者などによって、予め適切に定められる。例えば、前述したように、水平方向の棚部材のさまざまな位置までの撮像デバイス４１からの離間距離は、連続的に変化する。許容差分値dは、そのような変化により隣接する画素どうしに生じ得る画素値の差分の最大値程度の値として定めることが想定される。つまりプロセッサ１は、現在着目している画素における撮像デバイス４１による撮影距離が、１つ前に着目した画素における撮影距離に対して変化した量が、予め定めた許容範囲内であるかどうかを確認する。そしてプロセッサ１は、ここでＹｅｓと判定したならば、Ａｃｔ３ｅへと進む。
【００７１】
Ａｃｔ３ｅにおいてプロセッサ１は、変数Countの値を１つ増加するとともに、変数Sumの値を、それまでの値に画素値P(i)を加えた値に更新する。
【００７２】
Ａｃｔ３ｆにおいてプロセッサ１は、変数Countの値が閾値Cc以上であるか否かを確認する。閾値Ccは、陳列状況判定装置１００の設計者または画像処理プログラム２１の作成者などによって、予め適切に定められる。例えば、水平方向の棚部材の長さに応じた画素数からマージンを減じた画素数を閾値Ccとして設定することが想定される。つまりプロセッサ１は、隣接画素との画素値の差分が許容範囲内となる画素の連続数が、水平方向の棚部材の長さに匹敵する画素数に達したか否かを確認する。そしてプロセッサは、ここでＮｏと判定したならば、Ａｃｔ３ｈへと進む。
【００７３】
ところで、プロセッサ１は、着目している画素の画素値が、ステレオカメラ４と陳列棚との離間距離としてあり得ない距離に相当する値となっているならば、Ａｃｔ３ｃでＮｏと判定する。またプロセッサ１は、現在着目している画素と１つ前に着目した画素とでの画素値の差分が許容範囲外であるならば、Ａｃｔ３ｄでＮｏと判定する。そしてプロセッサ１はこれらの場合に、Ａｃｔ３ｇへと進む。
【００７４】
Ａｃｔ３ｇにおいてプロセッサ１は、変数Countに「１」を代入するとともに、変数Sumに画素値P(i)を代入する。すなわちプロセッサ１は、連続数のカウントを最初からやり直すとともに、画素値の累積和を現在の着目画素の画素値にリセットする。そしてプロセッサ１はこののち、Ａｃｔ３ｈへと進む。
【００７５】
Ａｃｔ３ｈにおいてプロセッサ１は、変数iが総画素数N未満であるか否かを確認する。総画素数Nは、距離画像に含まれる画素の総数である。つまりプロセッサ１は、距離画像に含まれた画素の全てを着目画素としてＡｃｔ３ｃ〜Ａｃｔ３ｇの処理を行い終えたか否かを確認する。そしてプロセッサ１は、ここでＹｅｓと判定したならば、Ａｃｔ３ｂに戻り、それ以降の処理を前述と同様に繰り返す。これによってプロセッサ１は、着目画素を順次に変更しながら、Ａｃｔ３ｃ〜Ａｃｔ３ｇの処理を繰り返す。
【００７６】
プロセッサ１は、水平な棚部材が映り込んでいる水平ラインに位置する画素を順次に着目画素としているときには、Ａｃｔ３ｃおよびＡｃｔ３ｄのいずれでもＹｅｓと判定し続けることになる。従ってプロセッサ１はこの状態では、変数Countを徐々にカウントアップするとともに、各画素の画素値を変数Sumに累積する。そしてプロセッサ１は、変数Countが閾値Cc以上となったことによってＡｃｔ３ｆでＹｅｓと判定すると、Ａｃｔ３ｉへと進む。
【００７７】
Ａｃｔ３ｉにおいてプロセッサ１は、変数Sumの値を変数Countの値で除算することによって離間距離dsを求める。すなわちプロセッサ１は、連続するCc個の画素の画素値の平均値として離間距離dsを求める。そしてプロセッサ１は、これをもって図９に示す処理を終了する。なお、連続するCc個の画素のそれぞれの画素値のうちの最大値または最小値などのような別の代表値を離間距離dsとしても良い。
【００７８】
なおプロセッサ１は、変数Countが閾値Cc以上となることが無いままで変数iが総画素数N以上となったためにＡｃｔ３ｈでＮｏと判定したならば、Ａｃｔ３ｊへと進む。
【００７９】
Ａｃｔ３ｊにおいてプロセッサ１は、最大値Cuを離間距離dsとする。そしてプロセッサ１は、これをもって図９に示す処理、すなわち図６におけるＡｃｔ３の処理を終了する。そしてプロセッサ１はこののち、図６に示すＡｃｔ４へと進む。
【００８０】
Ａｃｔ４においてプロセッサ１は、調整フラグ２４がオンであるか否かを確認する。そしてプロセッサ１は、調整フラグ２４がオンであるためにＹｅｓと判定したならば、Ａｃｔ５へと進む。
【００８１】
Ａｃｔ５においてプロセッサ１は、記憶ユニット２に記憶された調整値２３の値dmを離間距離dsに加えた値として探索距離d1を求める。なお、値dmはマイナス値である場合もある。そしてプロセッサ１はこののちにＡｃｔ７へと進む。かくして画像処理プログラムに基づく処理をプロセッサ１が実行することによって、プロセッサ１を中枢部分とするコンピュータは調整モジュール１２ｃとして機能する。
【００８２】
一方でプロセッサ１は、調整フラグ２４がオフであるためにＡｃｔ４にてＮｏと判定したならば、Ａｃｔ６へと進む。
【００８３】
Ａｃｔ６においてプロセッサ１は、離間距離dsをそのまま探索距離d1とする。そしてプロセッサ１はこののちにＡｃｔ７へと進む。
【００８４】
Ａｃｔ７においてプロセッサ１は、等距離画像を生成する。プロセッサ１は具体的には、距離画像において値がd1である画素値の画素位置を、その画素位置に関する第１の棚画像における画素値とし、その他の画素位置の画素値を予め定めた定数値とした画像として等距離画像を生成する。かくして画像処理プログラムに基づく処理をプロセッサ１が実行することによって、プロセッサ１を中枢部分とするコンピュータは生成モジュール１４ａとして機能する。
【００８５】
図１０は等距離画像の一例を示す図である。
【００８６】
図１０に示す等距離画像は、離間距離dsをそのまま探索距離d1とした場合において図７に示す第１の棚画像および図８に示す距離画像に基づいて生成される画像である。
【００８７】
図７に示す例では、商品Ｃ１，Ｃ２，Ｃ３の撮像デバイス４１による撮影距離は、離間距離dsよりも大きい。図７に示す第１の棚画像に映り込んだ商品のうちの商品Ｃ１，Ｃ２，Ｃ３以外の各商品の撮像デバイス４１による撮影距離はいずれもdsである。このため図１０に示す等距離画像には、商品Ｃ１，Ｃ２，Ｃ３が表されていない。
【００８８】
商品Ｃ１，Ｃ２，Ｃ３以外の商品は、いずれも陳列棚の手前側に並べられており、撮像デバイス４１による撮影距離は離間距離dsとほぼ等しい。厳密には、これらの商品の撮影距離は、離間距離dsよりも若干大きくなることが多い。しかしながら、画素毎の撮影距離の推定に関わる分解能を適切に調整しておくことにより、図１０に示すような等距離画像を生成することができる。あるいは、等距離画像を生成するに当たって、予め定められた範囲内の撮影距離については同一の撮影距離と見なすようにすることによっても、図１０に示すような等距離画像を生成することができる。
【００８９】
図１１は等距離画像の別例を示す図である。
【００９０】
図１１に示す等距離画像は、離間距離dsに値dmを加えた値を探索距離d1とした場合において、図７に示す第１の棚画像および図８に示す距離画像に基づいて生成される画像である。そして値dmは、商品Ｃ１，Ｃ２，Ｃ３の撮像デバイス４１による撮影距離と離間距離dsとの差に等しい。このため図１１に示す等距離画像には、商品Ｃ１，Ｃ２，Ｃ３のみが表されている。
【００９１】
Ａｃｔ８においてプロセッサ１は、単体画像データベース２２に含まれた単体画像のうちから、図６に示す処理の今回の実行中において未選択の１つを選択する。ここで選択した単体画像が表す商品が、検出対象の商品となる。
【００９２】
Ａｃｔ９においてプロセッサ１は、上記の選択した単体画像を画素数変換してテンプレート画像を生成する。プロセッサ１は具体的には、選択した単体画像の撮影距離をd2と表す場合に、倍数をd2／d1として定める。プロセッサ１は、水平方向、垂直方向ともに、単体画像の画素数に上記のように定めた倍数を乗じて求まる画素数とするように、単体画像を画素数変換する。この画素数変換の具体的な処理には、周知の処理を適用できる。そしてプロセッサ１は、この画素数変換により得られた画像をテンプレート画像とする。かくして画像処理プログラムに基づく処理をプロセッサ１が実行することによって、プロセッサ１を中枢部分とするコンピュータは生成ユニット１３として機能する。
【００９３】
図１２はテンプレート画像の生成の様子を示す図である。
【００９４】
単体画像は、商品を単体で撮影することから、その撮影距離は棚画像に比べて小さくなることが想定される。そこで多くの場合は、単体画像は、等距離画像に映り込んだ同種の商品の画像よりも大きい。かくして、図１０に示す等距離画像に、商品Ｃ１１に関連する単体画像をそのまま重ねたとすると、例えば図１２の左側に示す状態となる。しかし、このような状態にある単体画像に対して上述のような画素数変換を行って得られたテンプレート画像を図１０に示す等距離画像に重ねたとすると、図１２の右側に示す状態となる。テンプレート画像は、商品Ｃ１１の画像とほぼ同じ大きさとなっている。
【００９５】
Ａｃｔ１０においてプロセッサ１は、等距離画像とテンプレート画像とを用いてテンプレートマッチングを行う。かくして画像処理プログラムに基づく処理をプロセッサ１が実行することによって、プロセッサ１を中枢部分とするコンピュータは照合モジュール１４ｂとして機能する。
【００９６】
図１３はＡｃｔ１０におけるプロセッサ１の詳細な処理を示すフローチャートである。
【００９７】
Ａｃｔ１０ａにおいてプロセッサ１は、開始座標(Xs,Ys)および終了座標(Xe,Ye)を決定する。プロセッサ１は例えば、等距離画像における左上角の座標を開始座標(Xs,Ys)とする。またプロセッサ１は例えば、等距離画像における右下角の座標から、テンプレート画像における横方向の画素数を水平方向に減ずるとともに、テンプレート画像における縦方向の画素数を垂直方向に減じて求まる座標を終了座標(Xe,Ye)とする。
【００９８】
図１４は上記の例により決定される開始座標(Xs,Ys)および終了座標(Xe,Ye)を表した図である。
【００９９】
なおプロセッサ１は、棚割り情報２５に基づいて、選択中の単体画像に関連する商品の陳列範囲を等距離画像中で特定できる場合には、その領域の左上角および右下角を基準として、上記と同様にして開始座標(Xs,Ys)および終了座標(Xe,Ye)を決定しても良い。プロセッサ１は、このように棚割り情報２５を参照するか否かを、予めユーザの指示に応じて定めておいたモード設定に応じて切り替えても良い。
【０１００】
Ａｃｔ１０ｂにおいてプロセッサ１は、変数xにXsを代入するとともに、変数yにYsを代入する。変数xおよび変数yは、等距離画像上でテンプレート画像の左上角を位置させる座標の水平方向および垂直方向の位置をそれぞれ表すものである。つまり等距離画像上でテンプレート画像の左上角を位置させる座標は(x,y)で表されるのである。そしてプロセッサ１は、この座標の初期値を(Xs,Ys)に、すなわち開始座標に設定するのである。
【０１０１】
Ａｃｔ１０ｃにおいてプロセッサ１は、左上角を座標(x,y)に位置させた状態のテンプレート画像と重なる等距離画像の領域（以下、対象領域と称する）が照合対象であるか否かを確認する。ここで、対象領域に、画素値が定数値である画素が多数含まれる場合には、当該対象領域内の画像とテンプレート画像との類似度は低い。そこでプロセッサ１は、対象領域に含まれる画素値が定数値である画素の数に関して予め定めた条件が成立する場合に、対象領域を照合対象としない。具体的には、対象領域に含まれる画素のうちの画素値が定数値である画素の割合が予め定めた閾値以上である場合に、対象領域を照合対象としないこととすることが考えられる。そしてプロセッサ１は、対象領域が照合対象であるためにＹｅｓと判定したならば、Ａｃｔ１０ｄへと進む。
【０１０２】
Ａｃｔ１０ｄにおいてプロセッサ１は、対象領域内の画像とテンプレート画像との類似度S(x,y)を算出する。プロセッサ１は、類似度S(x,y)を記憶ユニット２に保存する。この類似度S(x,y)の算出には、周知のテンプレートマッチング技術で知られた手法を利用できる。そしてプロセッサ１はこののちにＡｃｔ１０ｅへと進む。
【０１０３】
なおプロセッサ１は、対象領域が照合対象ではないためにＡｃｔ１０ｃでＮｏと判定したならば、Ａｃｔ１０ｄをパスしてＡｃｔ１０ｅへと進む。
【０１０４】
Ａｃｔ１０ｅにおいてプロセッサ１は、変数xの値がXe未満であるか否かを確認する。そしてプロセッサ１は、変数xの値がXe未満であるためにＹｅｓと判定したならば、Ａｃｔ１０ｆへと進む。
【０１０５】
Ａｃｔ１０ｆにおいてプロセッサ１は、変数xの値を１つ増加する。そしてプロセッサ１はこののち、Ａｃｔ１０ｃに戻り、それ以降の処理を前述と同様に繰り返す。つまりプロセッサ１は、テンプレート画像の位置を、図１４に矢印で示すように水平方向に１画素分ずつずらしながら、類似度S(x,y)を繰り返し算出する。そしてプロセッサ１は、変数xの値がXeとなるまでこの処理を繰り返したならば、変数xの値がXe以上であるためにＡｃｔ１０ｅでＮｏと判定することになる。そしてこの場合にプロセッサ１は、Ａｃｔ１０ｇへと進む。
【０１０６】
Ａｃｔ１０ｇにおいてプロセッサ１は、変数yの値がYe未満であるか否かを確認する。そしてプロセッサ１は、変数yの値がYe未満であるためにＹｅｓと判定したならば、Ａｃｔ１０ｈへと進む。
【０１０７】
Ａｃｔ１０ｈにおいてプロセッサ１は、変数xにXsを代入するとともに、変数yの値を１つ増加する。そしてプロセッサ１はこののち、Ａｃｔ１０ｃに戻り、それ以降の処理を前述と同様に繰り返す。
【０１０８】
かくしてプロセッサ１は、Ａｃｔ１０ｃ〜Ａｃｔ１０ｈを繰り返すことによって、テンプレート画像の位置を徐々に変化させながら、照合対象である領域のそれぞれに関する類似度S(x,y)を収集する。
【０１０９】
プロセッサ１は、テンプレート画像の左上角が終了座標(Xe,Ye)に位置しているとき、変数yがYe以上であるから、Ａｃｔ１０ｇにてＮｏと判定する。そしてプロセッサ１はこの場合、Ａｃｔ１０ｉへと進む。
【０１１０】
Ａｃｔ１０ｉにおいてプロセッサ１は、商品領域座標を全て検出する。商品領域座標とは、等距離画像において、テンプレート画像が表す商品と同じ商品が映り込んでいる領域の左上角の座標である。具体的には、採用する類似度の算出方法にもよるが、一例として類似度は、テンプレート画像と、対象領域の画像とが完全に一致する場合に最大となる。そして、両画像の差異が増えるほどに、類似度が低下する。類似度S(x,y)がこのような性質を示す場合、Ａｃｔ１０ｃ〜Ａｃｔ１０ｈを繰り返すことにより収集された類似度S(x,y)は、ある座標に関する値が、その周辺の座標に関する値に対して大きな値となる。そこでプロセッサ１は、収集した類似度S(x,y)の中から極大値となる類似度S(x,y)を選択する。さらにプロセッサ１は、選出した類似度S(x,y)の中から、予め定めた閾値以上である類似度S(x,y)を選出し、この選出した類似度S(x,y)が求められた座標(x,y)を商品領域座標とする。
【０１１１】
Ａｃｔ１０ｊにおいてプロセッサ１は、検出した商品領域座標の全てと、選択中の単体画像が表す商品の識別情報（例えば商品コード）とを含んだ領域情報を生成し、記憶ユニット２に保存する。プロセッサ１は、図１４に示す例では、商品領域座標として(x1,y1)、(x1,y2)、(x2,y1)の３つを検出することになる。そしてプロセッサ１は、これらの座標と商品Ｃ１１の識別情報とを含んだ領域情報を記憶ユニット２に保存する。そしてプロセッサ１は、これをもって図１３に示す処理、すなわち図６におけるＡｃｔ１０の処理を終了する。そしてプロセッサ１はこののち、図６に示すＡｃｔ１１へと進む。なお、プロセッサ１は、テンプレート画像の大きさ等の他の情報を領域情報に含めても良い。
【０１１２】
Ａｃｔ１１においてプロセッサ１は、単体画像データベース２２に含まれた単体画像のうちに、図６に示す処理の今回の実行中において未選択の単体画像が有るか否かを確認する。そしてプロセッサ１は、未選択の単体画像が有るためにＹｅｓと判定したならば、Ａｃｔ８に戻り、それ以降の処理を前述と同様に繰り返す。かくしてプロセッサ１は、単体画像データベース２２に含まれた単体画像のそれぞれから生成したテンプレート画像を用いてのテンプレートマッチングを順次に行う。そしてプロセッサ１は、全ての単体画像を選択し終えたためにＡｃｔ１１にてＮｏと判定したならば、図６に示す画像処理を終了する。
【０１１３】
以上のように陳列状況判定装置１００によれば、テンプレート画像は、探索距離を撮影距離とする状態で撮像デバイス４１により撮影されて第１の棚画像に含まれている商品とほぼ同じ画素数で表された画像となる。このため、テンプレート画像を生成するために使用した単体画像に映り込んだ商品が、探索距離を撮影距離とする状態で第１の棚画像に映り込んでいる場合に、その領域をテンプレート画像に類似する領域として判定することができる。しかも、テンプレート画像は、探索距離を撮影距離とする状態で棚画像に映り込んでいる検出対象の商品をほぼ同じ画素数で示した画像である。このため、テンプレート画像は、検出対象の商品の画像との類似度が非常に大きく、検出対象の商品が映り込んでいる領域を、その他の領域と適確に区別できる。
【０１１４】
また陳列状況判定装置１００は、互いに異なる方向から撮影された少なくとも２つの棚画像から離間距離dsを推定する。このため、離間距離dsを測定するためのセンサなどを備える必要が無い。
【０１１５】
また陳列状況判定装置１００は、棚画像の画素毎に推定した距離に基づいて、棚画像内の水平方向の棚部材に相当する部分を判定し、その部分に含まれる画素のそれぞれの距離の代表値として離間距離dsを求める。このため、距離推定のための仕掛けを陳列棚または商品に施す必要が無い。
【０１１６】
また陳列状況判定装置１００は、離間距離dsを調整値２３で調整して探索距離d1を決定する。このため、離間距離dsを上記のように求めていても、探索距離d1は離間距離dsとは異なる距離に設定することが可能である。
【０１１７】
また陳列状況判定装置１００は、調整値２３をユーザの操作に応じた値に設定する。このため、探索距離d1をユーザが希望する距離にすることが可能である。
【０１１８】
また陳列状況判定装置１００によれば、テンプレート画像と重なる等距離画像の領域に定数値である画素が多数含まれる場合には、照合対象とはしない。このため、画像照合のためのプロセッサ１の処理量を減少し、プロセッサ１の負担を軽減できる。
【０１１９】
この実施形態は、次のような種々の変形実施が可能である。
【０１２０】
３つ以上の撮像デバイスのそれぞれでの撮影により得られた３つ以上の棚画像に基づいて離間距離dsを推定しても良い。
【０１２１】
主撮像デバイスとは別に２つ以上の撮像デバイスを備え、主撮像デバイス以外の撮像デバイスでの撮影により得られた２つ以上の棚画像に基づいて離間距離dsを推定しても良い。
【０１２２】
レーザ距離計などの測定デバイスを用いて離間距離dsを推定しても良い。
【０１２３】
陳列棚に撮像デバイス４１，４２により撮影可能な状態で所定のマークを形成しておき、このマークまでの距離として離間距離dsを推定しても良い。このマークとしては、陳列棚を識別するための前述したバーコードなどを利用することもできる。
【０１２４】
等距離画像を生成せず、第１の棚画像を対象としてテンプレートマッチングを実施しても良い。また、等距離画像をテンプレートマッチングの対象とする場合であっても、Ａｃｔ１０ｃでの判断を省略し、開始座標から終了座標までの全ての位置について類似度を算出しても良い。
【０１２５】
なお、測定デバイスを用いて離間距離dsを推定する場合、または陳列棚に形成したマークの位置により離間距離dsを推定する場合であって、かつ等距離画像を生成しない場合は、距離画像も生成しなくても良い。
【０１２６】
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【符号の説明】
【０１２７】
１…プロセッサ、２…記憶ユニット、２１…画像処理プログラム、２２…単体画像データベース、２３…調整値、２４…調整フラグ、２５…棚割り情報、３…通信・入出力インタフェース、４…ステレオカメラ、５…ユーザインタフェース、６…バス、１１…設定ユニット、１２…決定ユニット、１２ａ…生成モジュール、１２ｂ…推定モジュール、１２ｃ…調整モジュール、１３…生成ユニット、１４…判定ユニット、１４ａ…生成モジュール、１４ｂ…照合モジュール、４１，４２…撮像デバイス、１００…陳列状況判定装置。
【図１】
0006322603.tif 000002
【図２】
0006322603.tif 000003
【図３】
0006322603.tif 000004
【図４】
0006322603.tif 000005
【図５】
0006322603.tif 000006
【図６】
0006322603.tif 000007
【図７】
0006322603.tif 000008
【図８】
0006322603.tif 000009
【図９】
0006322603.tif 000010
【図１０】
0006322603.tif 000011
【図１１】
0006322603.tif 000012
【図１２】
0006322603.tif 000013
【図１３】
0006322603.tif 000014
【図１４】
0006322603.tif 000015