(57)【要約】【課題】撮影画像の色を補正して商品を認識することができる画像処理装置及び画像処理方法を提供する。【解決手段】実施形態によれば、画像処理装置は、取得部と、生成部と、補正部と、認識部と、を備える。取得部は、複数の色のブロックから構成されるプレートと商品が配置される領域とを含む撮影領域の撮影画像を取得する。生成部は、前記撮影画像におけるプレートの画像に基づいて、前記撮影画像の色を補正する補正値を生成する。補正部は、前記補正値に基づいて前記撮影画像を補正する。認識部は、前記補正部が補正した前記撮影画像から商品を認識する。【選択図】      図１
2018106268.tif 000002
【特許請求の範囲】
【請求項１】
複数の色のブロックから構成されるプレートと商品が配置される領域とを含む撮影領域の撮影画像を取得する取得部と、
前記撮影画像におけるプレートの画像に基づいて、前記撮影画像の色を補正する補正値を生成する生成部と、
前記補正値に基づいて前記撮影画像を補正する補正部と、
前記補正部が補正した前記撮影画像から商品を認識する認識部と、
を備える画像処理装置。
【請求項２】
前記生成部は、前記補正値として、予め登録された前記プレートの基準色情報と前記撮影画像から得られる前記プレートの前記画像の色情報とに基づいて、前記撮影画像のドットのＲ、Ｇ及びＢに積算して色を補正する補正行列を生成する、
前記請求項１に記載の画像処理装置。
【請求項３】
前記プレートは、少なくとも９個のブロックから構成される、
前記請求項１又は２に記載の画像処理装置。
【請求項４】
カメラを運び、所定の停止位置に移動し停止する自走部と、
前記カメラからの画像におけるプレートの画像に基づいて前記自走部の停止位置を調整する調整部と、を備え、
前記取得部は、前記調整部が前記自走部の停止位置を調整すると、前記カメラを用いて前記撮影画像を取得する、
前記請求項１乃至３の何れか１項に記載の画像処理装置。
【請求項５】
複数の色のブロックから構成されるプレートと商品が配置される領域とを含む撮影領域の撮影画像を取得し、
前記撮影画像におけるプレートの画像に基づいて、前記撮影画像の色を補正する補正値を生成し、
前記補正値に基づいて前記撮影画像を補正し、
補正された前記撮影画像から商品を認識する
画像処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は、画像処理装置及び画像処理方法に関する。
【背景技術】
【０００２】
画像処理装置には、商品が配置された商品棚などの撮影画像を取得し、撮影画像から商品を認識するものがある。撮影画像における商品の色は、撮影画像を撮影するカメラの位置並びに特性、及び、商品棚周辺の照明などの要因によって、登録された商品画像の色と異なることがある。
【０００３】
特開２０１２−０８９１７４号公報によれば、移動ロボットの自己位置認識機能の低下を防止するためには環境地図を外界の環境に合わせるように再作成することが必要であるとの記載がある。
【０００４】
しかしながら、環境地図を外界の環境に合わせるように再作成したとしても停止位置の誤差は生じ、必ず同じ位置の画像が得られるわけではなく、色の違いに起因する商品認識の低下を補うものではない。
【０００５】
登録された商品画像の色と異なる色の撮影画像を取得した場合、従来、画像処理装置は、商品の認識率が低下するという課題がある。
【０００６】
また、画像処理装置を自律走行ロボットに搭載して商品が配置された商品棚を撮像する際、推定自己位置に基づいて、定められた経路に従って走行することにより、移動ロボットは、必要な位置へ移動することができる。しかし、移動ロボットが保有する環境地図と実際の外界の環境とが異なった場合には、移動ロボットの自己位置認識機能が低下し、停止位置に誤差を生じる。停止位置の誤差のために所望する商品が画像中に映らなくなる課題がある。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開２０１２−０８９１７４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００８】
上記の課題を解決するために、正確な位置から撮影し、撮影画像の色を補正して商品を認識することができる画像処理装置及び画像処理方法を提供する。
【課題を解決するための手段】
【０００９】
実施形態によれば、画像処理装置は、取得部と、生成部と、補正部と、認識部と、を備える。取得部は、複数の色のブロックから構成されるプレートと商品が配置される領域とを含む撮影領域の撮影画像を取得する。生成部は、前記撮影画像におけるプレートの画像に基づいて、前記撮影画像の色を補正する補正値を生成する。補正部は、前記補正値に基づいて前記撮影画像を補正する。認識部は、前記補正部が補正した前記撮影画像から商品を認識する。
【図面の簡単な説明】
【００１０】
【図１】図１は、実施形態に係る画像処理システムの構成例を示すブロック図である。
【図２】図２は、実施形態に係る辞書画像保存装置の動作例を示す図である。
【図３】図３は、実施形態に係るキャリブレーションプレートの構成例を示す図である。
【図４】図４は、実施形態に係る商品テーブルの構成例を示す図である。
【図５】図５は、実施形態に係る地図情報の構成例を示す図である。
【図６】図６は、実施形態に係るルートテーブルの構成例を示す図である。
【図７】図７は、実施形態に係るロボット装置の動作例を示す図である。
【図８】図８は、実施形態に係るロボット装置の動作例を示す図である。
【図９】図９は、実施形態に係る辞書画像保存装置の動作例を示す図である。
【図１０】図１０は、実施形態に係る辞書画像保存装置の動作例を示すフローチャートである。
【図１１】図１１は、実施形態に係る辞書画像保存装置の動作例を示すフローチャートである。
【図１２】図１２は、実施形態に係る画像処理装置の動作例を示すフローチャートである。
【図１３】図１３は、実施形態に係る画像処理装置の動作例を示すフローチャートである。
【発明を実施するための形態】
【００１１】
以下、実施形態について、図面を参照して説明する。  
実施形態に係る画像処理システムは、商品が配置された商品棚などの画像に基づいて商品棚に配置された商品を認識する。たとえば、画像処理システムは、店舗などに配置される。画像処理システムは、店舗に設置される商品棚などの画像に基づいて商品を認識する。
【００１２】
図１は、画像処理システム１の構成例を示すブロック図である。  
図１が示すように、画像処理システム１は、画像処理装置１０と辞書画像保存装置２０と地図情報装置３０と欠品認識装置４０とを備える。
【００１３】
画像処理装置１０は、商品棚などの撮影画像に基づいて商品を認識する。  
辞書画像保存装置２０は、画像処理装置１０が商品を認識するために必要な商品の画像（辞書画像）を保存する。
【００１４】
地図情報装置３０は、画像処理システム１が設置される店舗内の地図を示す地図情報を画像処理装置１０に提供する。  
欠品認識装置４０は、画像処理装置１０が認識した商品に基づいて商品の欠品を認識する。たとえば、欠品認識装置４０は、商品棚に本来ある商品と認識された商品とに基づいて欠品した商品を認識する。
【００１５】
まず、画像処理装置１０について説明する。  
図１が示すように、画像処理装置１０は、商品認識部１０１、自走ロボット１０２、カメラ１０３及び操作部１０４などを備える。商品認識部１０１は、ＣＰＵ１１と、ＲＡＭ１２と、ＮＶＭ１３と、インターフェース１４乃至１９とを備える。商品認識部１０１の各部は、データバスなどを介して互いに接続する。なお、商品認識部１０１は、図１が示すような構成の他に、必要に応じた構成を具備したり特定の構成を除外したりしてもよい。
【００１６】
ＣＰＵ１１は、商品認識部１０１全体の動作を制御する機能を有する。ＣＰＵ１１は、内部キャッシュおよび各種のインターフェースなどを備えても良い。ＣＰＵ１１は、内部メモリ又はＮＶＭ１３が予め記憶するプログラムを実行することにより種々の処理を実現する。ＣＰＵ１１は、たとえば、プロセッサである。
【００１７】
なお、ＣＰＵ１１がプログラムを実行することにより実現する各種の機能のうちの一部は、ハードウエア回路により実現されるものであっても良い。この場合、ＣＰＵ１１は、ハードウエア回路により実行される機能を制御する。
【００１８】
ＲＡＭ１２は、揮発性のメモリである。ＲＡＭ１２は、ＣＰＵ１１の処理中のデータなどを一時的に格納する。ＲＡＭ１２は、ＣＰＵ１１からの命令に基づき種々のアプリケーションプログラムを格納する。また、ＲＡＭ１２は、アプリケーションプログラムの実行に必要なデータ及びアプリケーションプログラムの実行結果などを格納してもよい。
【００１９】
ＮＶＭ１３は、データの書き込み及び書き換えが可能な不揮発性のメモリである。ＮＶＭ１３は、例えば、ハードディスク、ＳＳＤ、ＥＥＰＲＯＭ（登録商標）又はフラッシュメモリなどにより構成される。ＮＶＭ１３は、商品認識部１０１の運用用途に応じて制御プログラム、アプリケーション、及び種々のデータを格納する。  
ＮＶＭ１３は、基準カラーテーブルを格納する記憶領域１３ａ及びルートテーブルを格納する記憶領域１３ｂなどを備える。基準カラーテーブル及びルートテーブルについては後述する。
【００２０】
インターフェース１４は、辞書画像保存装置２０とデータを送受信するためのインターフェースである。たとえば、ＣＰＵ１１は、インターフェース１４を通じて辞書画像保存装置２０から辞書画像などを取得する。
【００２１】
インターフェース１５は、自走ロボット１０２とデータを送受信するためのインターフェースである。たとえば、ＣＰＵ１１は、インターフェース１５を通じて自走ロボット１０２に停止位置などを設定する。
【００２２】
インターフェース１６は、地図情報装置３０とデータを送受信するためのインターフェースである。たとえば、ＣＰＵ１１は、インターフェース１６を通じて地図情報装置３０から地図情報を取得する。
【００２３】
インターフェース１７は、カメラ１０３とデータを送受信するためのインターフェースである。たとえば、ＣＰＵ１１は、インターフェース１７を通じてカメラ１０３から撮影画像を取得する。
【００２４】
インターフェース１８は、操作部１０４とデータを送受信するためのインターフェースである。たとえば、ＣＰＵ１１は、インターフェース１８を通じて操作部１０４に入力された操作を取得する。
【００２５】
インターフェース１９は、欠品認識装置４０とデータを送受信するためのインターフェースである。たとえば、ＣＰＵ１１は、インターフェース１９を通じて欠品認識装置４０へ認識した商品を示す情報を送信する。
【００２６】
インターフェース１４乃至１９は、無線接続又は有線接続をサポートする。たとえば、インターフェース１４乃至１９は、ＬＡＮ接続又はＵＳＢ接続をサポートするものであってもよい。
【００２７】
自走ロボット１０２（自走部）は、カメラ１０３を運ぶ移動体である。たとえば、自走ロボット１０２は、本体、モータ及びタイヤなどから構成される。自走ロボット１０２は、モータの駆動力を用いてタイヤを回転させて移動する。自走ロボット１０２は、カメラ１０３を所定の位置に設置した状態で移動可能に構成される。また、自走ロボット１０２は、カメラ１０３の位置及び角度を変更する機構を備えてもよい。自走ロボット１０２は、自身の位置を特定するセンサなどを備えてもよい。
【００２８】
自走ロボット１０２は、商品認識部１０１からの信号に基づいて移動する。たとえば、自走ロボット１０２は、商品認識部１０１から停止位置を示す情報を受信する。自走ロボット１０２は、当該停止位置まで移動して停止する。
【００２９】
なお、自走ロボット１０２は、後述するキャリブレーションプレートを基準に停止位置を判定してもよい。たとえば、自走ロボット１０２は、カメラ１０３が撮影した画像に基づいてキャリブレーションプレートを検出する。自走ロボット１０２は、検出されたキャリブレーションプレートの位置などに基づいて停止位置を調整してもよい。
【００３０】
カメラ１０３は、商品を撮影する。たとえば、カメラ１０３は、商品を配置された商品棚を撮影する。カメラ１０３は、自走ロボット１０２に所定の高さに固定される。たとえば、カメラ１０３は、所定の商品棚が撮影可能な高さに設置される。
【００３１】
カメラ１０３は、商品認識部１０１からの信号に従って、画像を撮影してもよい。また、カメラ１０３は、自走ロボット１０２が停止位置に停止すると画像を撮影してもよい。カメラ１０３は、撮影した画像を商品認識部１０１へ送信する。  
カメラ１０３は、たとえば、ＣＣＤカメラなどである。
【００３２】
操作部１０４は、オペレータによって、種々の操作指示が入力される。操作部１０４は、操作者に入力された操作指示を示す信号を商品認識部１０１へ送信する。操作部１０４は、たとえば、キーボード、テンキー、及び、タッチパネルなどである。
【００３３】
次に、辞書画像保存装置２０について説明する。  
図１が示すように、辞書画像保存装置２０は、ＣＰＵ２１、ＲＡＭ２２、ＮＶＭ２３、及び、インターフェース２４並びに２５などを備える。辞書画像保存装置２０の各部は、データバスなどを介して互いに接続する。なお、辞書画像保存装置２０は、図１が示すような構成の他に、必要に応じた構成を具備したり特定の構成を除外したりしてもよい。また、辞書画像保存装置２０は、カメラ２６と接続する。
【００３４】
ＣＰＵ２１は、辞書画像保存装置２０全体の動作を制御する機能を有する。ＣＰＵ２１は、内部キャッシュおよび各種のインターフェースなどを備えても良い。ＣＰＵ２１は、内部メモリ又はＮＶＭ２３が予め記憶するプログラムを実行することにより種々の処理を実現する。ＣＰＵ２１は、たとえば、プロセッサである。
【００３５】
なお、ＣＰＵ２１がプログラムを実行することにより実現する各種の機能のうちの一部は、ハードウエア回路により実現されるものであっても良い。この場合、ＣＰＵ２１は、ハードウエア回路により実行される機能を制御する。
【００３６】
ＲＡＭ２２は、揮発性のメモリである。ＲＡＭ２２は、ＣＰＵ２１の処理中のデータなどを一時的に格納する。ＲＡＭ２２は、ＣＰＵ２１からの命令に基づき種々のアプリケーションプログラムを格納する。また、ＲＡＭ２２は、アプリケーションプログラムの実行に必要なデータ及びアプリケーションプログラムの実行結果などを格納してもよい。
【００３７】
ＮＶＭ２３は、データの書き込み及び書き換えが可能な不揮発性のメモリである。ＮＶＭ２３は、例えば、ハードディスク、ＳＳＤ、ＥＥＰＲＯＭ（登録商標）又はフラッシュメモリなどにより構成される。ＮＶＭ１３は、辞書画像保存装置２０の運用用途に応じて制御プログラム、アプリケーション、及び種々のデータを格納する。  
ＮＶＭ２３は、基準カラーテーブルを格納する記憶領域２３ａ及び商品テーブルを格納する記憶領域２３ｂなどを備える。基準カラーテーブル及び商品テーブルについては後述する。
【００３８】
インターフェース２４は、商品認識部１０１とデータを送受信するためのインターフェースである。たとえば、ＣＰＵ２１は、インターフェース２４を通じて商品認識部１０１へ辞書画像などを送信する。
【００３９】
インターフェース２５は、カメラ２６とデータを送受信するためのインターフェースである。たとえば、ＣＰＵ２１は、インターフェース２５を通じてカメラ２６から撮影画像などを取得する。
【００４０】
インターフェース２４及び２５は、無線接続又は有線接続をサポートする。たとえば、インターフェース２４及び２５は、ＬＡＮ接続又はＵＳＢ接続をサポートするものであってもよい。
【００４１】
カメラ２６は、商品を撮影する。たとえば、カメラ２６は、オペレータが操作して商品を撮影する構成である。カメラ２６は、オペレータからの操作に従って、画像を撮影する。カメラ２６は、撮影した画像を辞書画像保存装置２０へ送信する。なお、カメラ２６は、画像を撮影する度に、画像を辞書画像保存装置２０へ送信してもよい。また、カメラ２６は、所定の間隔で、又は、所定の枚数の画像を撮影すると、画像を辞書画像保存装置２０へ送信してもよい。また、カメラ２６は、取り外し可能なメモリに画像を格納するものであってもよい。辞書画像保存装置２０は、当該メモリから画像を取得してもよい。  
カメラ２６は、たとえば、ＣＣＤカメラなどである。
【００４２】
次に、辞書画像保存装置２０のＣＰＵ２１が実現する機能について説明する。  
まず、ＣＰＵ２１は、カメラ２６を用いてキャリブレーションプレートと商品が配置される領域とを含む撮影領域の撮影画像を取得する機能を有する。  
たとえば、ＣＰＵ２１は、カメラ２６から撮影画像を取得する。また、ＣＰＵ２１は、カメラ２６が撮影画像を格納した取り外し可能なメモリから撮影画像を取得してもよい。
【００４３】
図２は、ＣＰＵ２１が撮影画像を取得する動作例を示す。  
図２が示すように、カメラ２６は、商品５０とキャリブレーションプレート６０とを撮影する。商品５０とキャリブレーションプレート６０とは、一枚の撮影画像に収まるように隣接して配置される。商品５０とキャリブレーションプレート６０との位置関係は、特定の構成に限定されるものではない。
【００４４】
次に、キャリブレーションプレート６０について説明する。  
キャリブレーションプレート６０は、互いに異なる複数の色のブロックから構成されるプレートである。
【００４５】
図３は、キャリブレーションプレート６０の構成例を示す。  
図３が示すように、キャリブレーションプレート６０は、ブロック６０１乃至６１８から構成される。各ブロック６０１乃至６１８は、互いに異なる色を有する。たとえば、ブロック６０１乃至６１８は、それぞれ独立した部材から構成されてもよい。また、ブロック６０１乃至６１８は、キャリブレーションプレート６０に所定の色のインクを塗装した領域であってもよい。
【００４６】
図３が示す例では、キャリブレーションプレート６０は、１８個のブロックから構成される。たとえば、キャリブレーションプレート６０は、３個又は９個以上のブロックから構成されてもよい。キャリブレーションプレート６０を構成するブロックの個数は、特定の個数に限定されるものではない。
【００４７】
また、ＣＰＵ２１は、撮影画像のキャリブレーションプレート６０に基づいて補正行列（補正値）を生成する機能を有する。  
補正行列は、撮影画像の色を補正する。たとえば、補正行列は、撮影された色を実際の色に補正するための行列である。たとえば、補正行列は、撮影画像の色に作用させることでカメラ特性又は外光などの影響をキャンセルすることができるものである。
【００４８】
ＣＰＵ２１は、撮影画像からキャリブレーションプレート６０の画像を抽出する。たとえば、ＣＰＵ２１は、パターン検出など用いて撮影画像からキャリブレーションプレート６０の画像を抽出する。
【００４９】
キャリブレーションプレート６０の画像を抽出すると、ＣＰＵ２１は、抽出した画像からキャリブレーションプレート６０の各ブロックの色情報を抽出する。たとえば、ＣＰＵ２１は、抽出した画像から各ブロックの位置を特定する。ＣＰＵ２１は、特定した位置の色情報を抽出する。ここでは、色情報は、ＲＧＢ形式で色を示す。
【００５０】
色情報を抽出すると、ＣＰＵ２１は、キャリブレーションプレート６０の各ブロックの基準色情報を取得する。  
たとえば、ＣＰＵ１１は、記憶領域２３ａが格納する基準カラーテーブルから基準色情報を取得する。
【００５１】
ここで、基準カラーテーブルについて説明する。  
基準カラーテーブルは、キャリブレーションプレート６０のブロックの基準色を示す基準色情報をブロックごとに格納する。基準色は、予め登録されるブロックの色（たとえば、実際の色）を示す。たとえば、基準色は、所定の条件で撮影されるブロックの色である。
【００５２】
たとえば、基準カラーテーブルは、ブロックを示す情報（たとえば、ブロックの位置又は番号）と、当該ブロックの基準色を示す基準色情報とを対応付けて格納する。
【００５３】
基準色情報は、たとえば、ＲＧＢ形式で色を示す。たとえば、基準色情報は、Ｒｓ、Ｇｓ及びＢｓから構成される。  
記憶領域２３ａは、予め基準カラーテーブルを格納する。  
なお、記憶領域１３ａが格納する基準カラーテーブルも同様である。
【００５４】
各ブロックの基準色情報を取得すると、ＣＰＵ１１は、各ブロックの色情報及び基準色情報に基づいて補正行列を算出する。  
たとえば、ＣＰＵ２１は、以下の式を満たす補正行列を算出する。
【００５５】
【数１】
2018106268.tif 000003
【００５６】
ここで、Ｒｓ、Ｇｓ及びＢｓは、キャリブレーションプレート６０のある１つのブロックの基準色情報である。Ｒ、Ｓ及びＧは、抽出された画像から抽出された当該ブロックの色情報である。Ａは、補正行列である。
【００５７】
たとえば、Ａは、以下の式（２）で表される。
【００５８】
【数２】
2018106268.tif 000004
【００５９】
ここで、ａ１１乃至ａ３３は、補正行列Ａの要素としての補正値である。
【００６０】
ＣＰＵ２１は、各ブロックの基準色情報及び色情報を用いて式（１）の補正行列を算出する。ＣＰＵ２１は、各ブロックの基準色情報及び色情報が式（１）を満たすような補正行列を算出する。たとえば、ＣＰＵ２１は、最小自乗法などを用いて、補正行列を算出する。
【００６１】
また、ＣＰＵ２１は、補正行列を用いて補正した商品画像を辞書画像として格納する機能を有する。  
たとえば、ＣＰＵ２１は、撮影画像から商品５０の商品領域を特定する。たとえば、ＣＰＵ２１は、撮影画像からエッジなどを検出して商品５０の商品領域を特定する。商品５０の商品領域を特定すると、ＣＰＵ２１は、補正行列を用いて商品領域の画像（商品画像）を補正する。
【００６２】
たとえば、ＣＰＵ２１は、補正行列に商品画像の各ドットのＲ、Ｇ及びＢを積算して得られたＲ、Ｇ及びＢを補正後の商品画像の各ドットのＲ、Ｇ及びＢとする。
【００６３】
たとえば、ＣＰＵ２１は、以下の式に従って商品画像の色を補正する。
【００６４】
【数３】
2018106268.tif 000005
【００６５】
Ｒｎ、Ｇｎ及びＢｎは、補正後のドットの色を示す。Ｒ、Ｇ及びＢは、補正前のドットの色を示す。  
ＣＰＵ２１は、所定のファイル名を付与して、補正された商品画像を辞書画像としてＮＶＭ２３に格納する。
【００６６】
また、ＣＰＵ２１は、商品に関する情報を格納する商品テーブルを格納する機能を有する。  
図４は、商品テーブルの構成例を示す。  
図４が示すように、商品テーブルは、「商品名」、「商品コード」及び「辞書画像ファイル名」を対応付けて格納する。  
「商品名」は、商品の名称である。  
「商品コード」は、当該商品を特定する識別子である。「商品コード」は、数値、文字列、記号又はそれらの組合せなどである。
【００６７】
「辞書画像ファイル名」は、商品画像を補正行列で補正して生成された当該商品の辞書画像のファイル名である。
【００６８】
図４が示す例では、たとえば、商品テーブルは、「商品名」、「商品コード」及び「辞書画像ファイル名」として「お茶」、「００００」及び「ｉｍａｇ＿００００」を格納する。
【００６９】
たとえば、ＣＰＵ２１は、商品５０の商品名及び商品コードを取得する。たとえば、ＣＰＵ２１は、操作部などを通じてオペレータからの入力を受け付ける。
【００７０】
商品５０の商品名及び商品コードを取得すると、ＣＰＵ２１は、商品５０の商品名、商品コード、及び、辞書画像（商品５０の商品画像から生成した辞書画像）のファイル名とを対応付けて商品テーブルに追加する。
【００７１】
次に、商品認識部１０１のＣＰＵ１１が実現する機能について説明する。  
まず、ＣＰＵ１１は、自走ロボット１０２を所定の停止位置に移動させ停止させる機能を有する。
【００７２】
たとえば、ＣＰＵ１１は、地図情報装置３０から地図情報を取得する。地図情報は、店舗内において商品棚に対応する撮影位置を示す。撮影位置は、自走ロボット１０２に設置されたカメラ１０３が対応する商品棚を撮影することができる位置である。
【００７３】
図５は、地図情報の構成例を示す。  
図５が示すように、地図情報は、通路Ａ上にある撮影位置（Ａ０乃至Ａ７）と、通路Ｂ上にある撮影位置（Ｂ０乃至Ｂ７）と、を示す。
【００７４】
通路Ａは、商品棚列７０１と商品棚列７０２との間に形成される。通路Ｂは、商品棚列７０２と商品棚列７０３との間に形成される。商品棚列７０１乃至７０３は、それぞれ複数の商品棚から構成される。
【００７５】
たとえば、ＣＰＵ１１は、ルートテーブルと撮影位置とに基づいて自走ロボット１０２の停止位置を決定する。  
ここで、記憶領域１３ｂが格納するルートテーブルについて説明する。
【００７６】
ルートテーブルは、自走ロボット１０２の停止位置を示す。たとえば、ルートテーブルは、停止位置として複数の撮影位置を示す。たとえば、ルートテーブルは、複数の撮影位置に順に停止することを示す。
【００７７】
図６は、ルートテーブルの構成例を示す。  
図６が示すように、ルートテーブルは、「ルート名」と「停止位置」とを対応付けて格納する。
【００７８】
「ルート名」は、ルートを識別する名称である。  
「停止位置」は、自走ロボット１０２が停止する撮影位置である。「停止位置」は、複数の撮影位置を含む。たとえば、「停止位置」は、自走ロボット１０２を順に撮影位置に停止させることを示す。
【００７９】
図６が示す例において、たとえば、ルートテーブルは、「ルート１」がＡ０乃至Ａ７を停止位置とすることを示す。たとえば、ルートテーブルは、「ルート１」が自走ロボット１０２をＡ０乃至Ａ７に順に停止させることを示す。
【００８０】
ＣＰＵ１１は、ルートテーブルからルートを選択する。たとえば、ＣＰＵ１１は、オペレータが操作部１０４に入力した操作に基づいてルートを選択する。また、ＣＰＵ１１は、所定の条件に従ってルートを設定してもよい。
【００８１】
ＣＰＵ１１は、選択したルートに従って自走ロボット１０２を停止位置に停止させる。たとえば、ＣＰＵ１１は、当該ルートが示す最初の停止位置に自走ロボット１０２を移動させ停止させる。ＣＰＵ１１は、順にルートが示す停止位置に自走ロボット１０２を移動させ停止させる。
【００８２】
図７及び図８は、ＣＰＵ１１が自走ロボット１０２を所定の停止位置（ここでは、Ａ４）に停止させる動作例を示す。図７は、店舗を上部から見た図である。また、図８は、店舗を水平に見た図である。
【００８３】
ここでは、ＣＰＵ１１は、ルートテーブルの「ルート１」を選択したものとする。ＣＰＵ１１は、自走ロボット１０２がＡ３にある状態において、自走ロボット１０２にＡ４に移動し停止することを指示する信号を送信する。  
自走ロボット１０２は、当該信号に従ってＡ４に移動し停止する。
【００８４】
また、ＣＰＵ１１は、カメラ１０３を用いて商品とキャリブレーションプレート６０とを含む撮影画像に基づいて撮影位置を調整する機能を有する（調整部）。  
たとえば、ＣＰＵ１１は、自走ロボット１０２を所定の位置に停止させると、カメラ１０３に画像を撮影する信号を送信する。カメラ１０３は、当該信号に従って画像を撮影する。カメラ１０３は、撮影した画像（撮影画像）をＣＰＵ１１へ送信する。ＣＰＵ１１は、カメラ１０３から撮影画像を取得する。
【００８５】
図９は、ＣＰＵ１１が商品とキャリブレーションプレート６０とを含む撮影画像を取得する動作例を示す。  
図９が示すように、商品棚７０には、複数の商品が配置される。商品棚７０に配置される商品及び個数は、特定の構成に限定されるものではない。
【００８６】
キャリブレーションプレート６０は、商品棚７０の所定の位置に設置される。図９が示す例では、キャリブレーションプレート６０は、商品棚７０の上部に設置される。キャリブレーションプレート６０は、商品棚７０の近傍に設置されてもよい。キャリブレーションプレート６０の設置場所は、特定の構成に限定されるものではないが商品棚のあらかじめ決められた所定の位置に配置されている。
【００８７】
ＣＰＵ１１は、所定の位置（ここでは、Ａ４）に自走ロボット１０２を停止させると、カメラ１０３を用いて撮影画像を取得する。たとえば、ＣＰＵ１１は、自走ロボットがＡ４に停止したことを検知すると、カメラ１０３に画像を撮影する信号を送信する。カメラ１０３は、当該信号に従って画像を撮影する。ここでは、カメラ１０３は、商品棚７０とキャリブレーションプレート６０とを含む画像を撮影する。カメラ１０３は、撮影した画像（撮影画像）をＣＰＵ１１へ送信する。ＣＰＵ１１は、カメラ１０３から撮影画像を取得する。
【００８８】
ＣＰＵ１１は、撮影画像からキャリブレーションプレート６０の画像を抽出する。たとえば、ＣＰＵ１１は、パターン検出など用いて撮影画像からキャリブレーションプレート６０の画像を抽出する。
【００８９】
キャリブレーションプレート６０の画像を抽出すると、ＣＰＵ１１は、抽出した画像からキャリブレーションプレート６０の画像内の位置を検出する。ＣＰＵ１１は、商品棚のあらかじめ決められた所定の位置に設置されているキャリブレーションプレート６０が画像内の所定の画素位置に映る様に自走ロボット１０２の停止位置を調整する。たとえば、ＣＰＵ１１は、自走ロボットに前進・後退・回転動作の指示を出し、キャリブレーションプレート６０が所定の画素位置に映るまで自走ロボット１０２を制御する。
【００９０】
また、ＣＰＵ１１は、カメラ１０３を用いて商品とキャリブレーションプレート６０とを含む撮影画像を取得する機能を有する（取得部）。  
たとえば、ＣＰＵ１１は、自走ロボット１０２の位置の調整が完了すると、再度、カメラ１０３を用いて撮影画像を取得する。
【００９１】
また、ＣＰＵ１１は、撮影画像のキャリブレーションプレート６０に基づいて補正行列を生成する機能を有する（生成部）。  
たとえば、ＣＰＵ１１は、再度撮影された撮影画像からキャリブレーションプレート６０の画像を抽出する。たとえば、ＣＰＵ１１は、パターン検出など用いて撮影画像からキャリブレーションプレート６０の画像を抽出する。
【００９２】
キャリブレーションプレート６０の画像を抽出すると、ＣＰＵ１１は、各ブロックの色情報を抽出する。たとえば、ＣＰＵ１１は、抽出した画像から各ブロックの位置を特定する。ＣＰＵ１１は、特定した位置の色情報を抽出する。ここでは、色情報は、ＲＧＢ形式で色を示す。
【００９３】
色情報を抽出すると、ＣＰＵ１１は、記憶領域１３ａが格納する基準カラーテーブルが備える基準色情報と撮影画像から抽出した色情報とに基づいて補正行列を算出する。  
ＣＰＵ１１が補正行列を生成する方法は、ＣＰＵ２１が補正行列を生成する方法と同様であるため詳細な説明を省略する。
【００９４】
また、ＣＰＵ１１は、補正行列を用いて撮影画像を補正する機能を有する（補正部）。
たとえば、ＣＰＵ１１は、補正行列を用いて撮影画像の色を補正する。ＣＰＵ１１は、補正行列に撮影画像の各ドットのＲ、Ｇ及びＢを積算して得られたＲ、Ｇ及びＢを各ドットのＲ、Ｇ及びＢとする。  
たとえば、ＣＰＵ１１は、上記の式（３）従って撮影画像の色を補正する。
【００９５】
また、ＣＰＵ１１は、補正された撮影画像に基づいて商品を認識する機能を有する（認識部）。  
たとえば、ＣＰＵ１１は、辞書画像保存装置２０から辞書画像を取得する。ＣＰＵ１１は、辞書画像を用いて、補正された撮影画像から商品を認識する。たとえば、ＣＰＵ１１は、辞書情報から画像特徴量を算出する。ＣＰＵ１１は、辞書画像から算出した画像特徴量を用いて、補正された撮影画像において特徴量マッチングを行う。
【００９６】
ＣＰＵ１１は、特徴量マッチングの一致率を示すスコアが所定の閾値を超えた領域を検索する。たとえば、ＣＰＵ１１は、ラスタスキャンなどによって当該領域を検索する。ＣＰＵ１１は、当該領域を発見すると、当該領域の位置に辞書画像の商品を認識する。
【００９７】
ＣＰＵ１１は、補正された撮影画像において当該領域をマスクして、さらに特徴量マッチングを行う。ＣＰＵ１１は、スコアが所定の閾値を超える領域を発見できない場合、当該辞書画像の商品認識を終了する。
【００９８】
ＣＰＵ１１は、他に辞書画像がある場合には、他の辞書画像で同様の動作を行う。ＣＰＵ１１は、辞書画像保存装置２０が格納する辞書画像を用いて同様の動作を繰り返し行い、商品を認識する。
【００９９】
なお、ＣＰＵ１１は、辞書画像保存装置２０から辞書画像を逐次取得してもよいし、まとめて複数の辞書画像を取得してもよい。  
また、ＣＰＵ１１が商品を認識する方法は、特定の構成に限定されるものではない。
【０１００】
また、ＣＰＵ１１は、辞書画像保存装置２０が格納する商品テーブルを参照して、認識した商品の商品名及び商品コードを取得してもよい。ＣＰＵ１１は、取得した商品名及び商品コードを欠品認識装置４０へ送信してもよい。
【０１０１】
次に、辞書画像保存装置２０のＣＰＵ２１の動作例について説明する。  
まず、ＣＰＵ２１が辞書画像を格納する動作例について説明する。  
図１０は、ＣＰＵ２１が辞書画像を格納する動作例について説明するためのフローチャートである。
【０１０２】
まず、ＣＰＵ２１は、カメラ２６を用いて商品とキャリブレーションプレート６０とを含む撮影画像を取得する（ＡＣＴ１１）。撮影画像を取得すると、ＣＰＵ２１は、撮影画像に基づいて補正行列を生成する（ＡＣＴ１２）。
【０１０３】
補正行列を生成すると、ＣＰＵ２１は、撮影画像から商品画像を抽出する（ＡＣＴ１３）。商品画像を抽出すると、ＣＰＵ２１は、商品画像を補正行列で補正する（ＡＣＴ１４）。商品画像を補正行列で補正すると、ＣＰＵ２１は、補正された商品画像を辞書画像としてＮＶＭ１３に格納する（ＡＣＴ１５）。
【０１０４】
補正された商品画像を辞書画像としてＮＶＭ１３に格納すると、ＣＰＵ２１は、辞書画像の商品の商品名、商品コード及び辞書画像ファイル名を対応付けて商品リストに追加する（ＡＣＴ１６）。
【０１０５】
商品リストに追加すると、ＣＰＵ２１は、動作を終了する。  
なお、撮影画像を複数取得した場合、ＣＰＵ２１は、撮影画像ごとにＳ１１乃至１６の動作を行う。  
また、ＣＰＵ２１は、Ｓ１３の後にＳ１２を実行してもよい。
【０１０６】
次に、ＣＰＵ２１が補正行列を生成する動作例（ＡＣＴ１２）について説明する。  
図１１は、ＣＰＵ２１が補正行列を生成する動作例（ＡＣＴ１２）について説明するためのフローチャートである。
【０１０７】
まず、ＣＰＵ２１は、撮影画像からキャリブレーションプレート６０の画像を抽出する（ＡＣＴ２２）。キャリブレーションプレート６０の画像を抽出すると、ＣＰＵ２１は、当該画像からキャリブレーションプレート６０の各ブロックの色情報を取得する（ＡＣＴ２３）。
【０１０８】
各ブロックの色情報を取得すると、ＣＰＵ２１は、基準カラーテーブルから各ブロックの基準色情報を取得する（ＡＣＴ２３）。各ブロックの基準色情報を取得すると、ＣＰＵ２１は、色情報と基準色情報とに基づいて補正行列を算出する（ＡＣＴ２４）。
【０１０９】
補正行列を算出すると、ＣＰＵ２１は、算出した補正行列をＲＡＭ１２又はＮＶＭ１３に格納する（ＡＣＴ２５）。補正行列を格納すると、ＣＰＵ２１は、動作を終了する。  
なお、ＣＰＵ２１は、Ｓ２３の後にＳ２２を実行してもよい。
【０１１０】
次に、画像処理装置１０のＣＰＵ１１の動作例について説明する。  
まず、ＣＰＵ１１が商品を認識する動作例について説明する。  
図１２は、ＣＰＵ１１が商品を認識する動作例について説明するためのフローチャートである。
【０１１１】
まず、ＣＰＵ１１は、画像処理装置１０を初期化する（ＡＣＴ３１）。画像処理装置１０を処理化すると、ＣＰＵ１１は、ルートテーブルからルートを選択する（ＡＣＴ３２）。  
ルートを選択すると、ＣＰＵ１１は、撮影が終了したか判定する（ＡＣＴ３３）。たとえば、ＣＰＵ１１は、選択されたルートが示す各停止位置において撮影が完了したか判定する。
【０１１２】
撮影が完了していないと判定すると（ＡＣＴ３３、ＮＯ）、ＣＰＵ１１は、自走ロボット１０２に停止位置を指示する（ＡＣＴ３４）。自走ロボット１０２に停止位置を指示すると、ＣＰＵ１１は、自走ロボット１０２が停止位置に停止したか判定する（ＡＣＴ３５）。
【０１１３】
自走ロボット１０２が停止位置に停止していないと判定すると（ＡＣＴ３５、ＮＯ）、ＣＰＵ１１は、Ｓ３５に戻る。  
自走ロボット１０２が停止位置に停止したと判定すると（ＡＣＴ３５、ＹＥＳ）、ＣＰＵ１１は、カメラ１０３を用いて撮影画像を取得し、自走ロボット１０２の位置を調整する（ＡＣＴ３６）。自走ロボット１０２の位置を調整すると、ＣＰＵ１１は、カメラ１０３を用いて画像を撮影する（ＡＣＴ３７）。画像を撮影すると、ＣＰＵ１１は、撮影した画像（撮影画像）に基づいて補正行列を生成する（ＡＣＴ３８）。
【０１１４】
補正行列を生成すると、ＣＰＵ１１は、補正行列を用いて撮影画像を補正する（ＡＣＴ３９）。撮影画像を補正すると、ＣＰＵ１１は、補正された撮影画像に基づいて商品を認識する（ＡＣＴ４０）。
【０１１５】
商品を認識すると、ＣＰＵ１１は、ＡＣＴ３３に戻る。  
撮影が完了したと判定すると（ＡＣＴ３３、ＹＥＳ）、ＣＰＵ１１は、自走ロボット１０２を初期位置に移動させる（ＡＣＴ４１）。自走ロボット１０２を初期位置に移動させると、ＣＰＵ１１は、動作を終了する。
【０１１６】
ＣＰＵ１１が補正行列を生成する動作例（ＡＣＴ３８）については、図１１と同様であるため説明を省略する。  
次に、ＣＰＵ１１が商品を認識する動作例について説明する。  
図１２は、ＣＰＵ１１が商品を認識する動作例について説明するためのフローチャートである。
【０１１７】
まず、ＣＰＵ１１は、最初の辞書画像を設定する（ＡＣＴ５１）。たとえば、ＣＰＵ１１は、辞書画像保存装置２０から辞書画像を取得する。最初の辞書画像を設定すると、ＣＰＵ１１は、辞書画像の特徴量を算出する（ＡＣＴ５２）。特徴量を算出すると、ＣＰＵ１１は、補正された撮影画像から特徴量マッチングの一致率を示すスコアが所定の閾値を超えた領域を検索する（ＡＣＴ５３）。
【０１１８】
特徴量マッチングの一致率を示すスコアが所定の閾値を超えた領域を発見すると（ＡＣＴ５４、ＹＥＳ）、ＣＰＵ１１は、当該領域の位置に辞書画像の商品を認識する（ＡＣＴ５５）。当該領域の位置に辞書画像の商品を認識すると、ＣＰＵ１１は、補正された撮影画像の当該領域をマスクする（ＡＣＴ５６）。補正された撮影画像の当該領域をマスクすると、ＣＰＵ１１は、ＡＣＴ５３に戻る。
【０１１９】
特徴量マッチングの一致率を示すスコアが所定の閾値を超えた領域を発見できないと（ＡＣＴ５４、ＮＯ）、ＣＰＵ１１は、他に辞書画像があるか判定する（ＡＣＴ５７）。他に辞書画像があると判定すると（ＡＣＴ５７、ＹＥＳ）、ＣＰＵ１１は、他の辞書画像を設定する（ＡＣＴ５８）。他の辞書画像を設定すると、ＣＰＵ１１は、ＡＣＴ５２に戻る。  
他に辞書画像がないと判定すると（ＡＣＴ５７、ＮＯ）、ＣＰＵ１１は、動作を終了する。
【０１２０】
なお、自走ロボット１０２は、商品認識部１０１を搭載してもよい。  
また、画像処理装置１０は、自走ロボット１０２を備えなくともよい。たとえば、ＣＰＵ１１は、オペレータがカメラ１０３を用いて撮影した画像に基づいて商品を認識してもよい。  
また、画像処理装置１０と辞書画像保存装置２０とは、一体的に構成されてもよい。
【０１２１】
以上のように構成された画像処理システムは、撮影画像のキャリブレーションプレートの画像に基づいて、カメラ特定又は外光などの影響を軽減する補正行列を生成する。画像処理システムは、補正行列を用いて撮影画像を補正する。画像処理システムは、補正された撮影画像から商品を認識する。そのため、画像処理システムは、カメラ特性又は外光などによる影響が少ない撮影画像に基づいて商品を認識する。その結果、画像処理システムは、商品の認識処理がカメラ特性又は外光などの影響によって商品の認識精度が低下することを防止することができる。従って、画像処理システムは、効果的に商品を認識することができる。
【０１２２】
また、カメラが撮影する商品棚は、キャリブレーションプレートを備える。その結果、自走ロボットは、キャリブレーションプレートを基準に停止位置を調整することができる。
【０１２３】
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【符号の説明】
【０１２４】
１…画像処理システム、１０…画像処理装置、１１…ＣＰＵ、１３…ＮＶＭ、１３ａ及び１３ｂ…記憶領域、１４乃至１９…インターフェース、２０…辞書画像保存装置、２１…ＣＰＵ、２３…ＮＶＭ、２３ａ及び２３ｂ…記憶領域、２４及び２５…インターフェース、２６…カメラ、１０１…商品認識部、１０２…自走ロボット、１０３…カメラ。
【図１】
2018106268.tif 000006
【図２】
2018106268.tif 000007
【図３】
2018106268.tif 000008
【図４】
2018106268.tif 000009
【図５】
2018106268.tif 000010
【図６】
2018106268.tif 000011
【図７】
2018106268.tif 000012
【図８】
2018106268.tif 000013
【図９】
2018106268.tif 000014
【図１０】
2018106268.tif 000015
【図１１】
2018106268.tif 000016
【図１２】
2018106268.tif 000017
【図１３】
2018106268.tif 000018