(58)【調査した分野】(Int.Cl.,DB名)
【発明を実施するための形態】
【0013】
以下、本発明の実施の形態について、図面を用いて説明する。尚、すべての図面において、同様な構成要素には同様の符号を付し、適宜説明を省略する。また、特に説明する場合を除き、各ブロック図において、各ブロックは、ハードウエア単位の構成ではなく、機能単位の構成を表している。
【0014】
以下の説明において、特に説明しない限り、各種の基準値や所定値は、これらを利用する機能構成部からアクセス可能な記憶装置に予め記憶させておく。
【0015】
[実施形態1]
<概要>
図1は、実施形態1に係る情報処理システム4000の動作を概念的に例示する図である。ここで、
図1を用いて説明する情報処理システム4000の動作は、情報処理システム4000の理解を容易にするための例示であり、情報処理システム4000の動作を限定するものではない。情報処理システム4000の動作の詳細やバリエーションについては後述する。
【0016】
情報処理システム4000は、第1情報処理装置2000と第2情報処理装置3000を有する。第1情報処理装置2000は、物品が陳列されている陳列場所が撮像された撮像画像の生成に利用される。
図1では、第1情報処理装置2000に設けられているカメラ10によって陳列場所20が撮像された結果、撮像画像12が生成されている。撮像画像12には、陳列場所20及び陳列場所20に陳列されている物品が含まれている。例えば物品は、商品棚に陳列される商品や、自動販売機に陳列されている商品サンプルなどである。なお、前者の場合には商品棚が陳列場所20となり、後者の場合には自動販売機が陳列場所20となる。
【0017】
第1情報処理装置2000が対象とする陳列場所は、物品が陳列される場所であればよく、
図1に示されるような複数の段を持つものに限定されない。例えば、机に商品が平積みにされるようなケースでは、この机が陳列場所として扱われる。
【0018】
第1情報処理装置2000は、撮像画像12を出力する。第2情報処理装置3000は、第1情報処理装置2000から出力された撮像画像12に対してオブジェクト認識処理を行う。これにより、第2情報処理装置3000は、陳列場所20に陳列されている物品を認識する。ここで、「物品の認識」とは、その物品が何であるか(例えば物品の識別子)を特定することを意味する。
【0019】
オブジェクト認識処理の手法の一つとして、画像から検出される特徴点を利用してオブジェクト認識を行う手法がある。例えば特徴点は、コーナー、エッジ、又はブロブなどである。例えば、データベースに予め登録されている物品の特徴点群と、撮像画像12から検出される特徴点群とのマッチングを行うことで、撮像画像12から検出された特徴点群がその物品を表しているかどうかの判定が行われる。そして、データベースに登録されている物品の中に、その特徴点群と撮像画像12から検出される特徴点群とが十分にマッチするものがある場合、撮像画像12からその物品が認識される。
【0020】
ここで、撮像画像12に物品が含まれているにもかかわらず、撮像画像12に対して特徴点を利用したオブジェクト認識処理を行っても、その物品を認識できないことがある。このような事態が生じる原因には、例えば、撮像画像12においてぶれ、ボケ、白とび、又は黒つぶれなどが生じているといった原因がある。ぶれやボケが生じている画像領域からは、ぶれやボケなどが生じていない画像領域と比較し、検出できる特徴点の数が少なくなる。その結果、前述した特徴点のマッチングによる物品の認識が難しくなる。
【0021】
撮像画像12から物品を認識できないという事態が生じないように、第2情報処理装置3000が利用する撮像画像12は、オブジェクト認識処理に適したものであることが好適である。すなわち、第1情報処理装置2000には、オブジェクト認識処理に適した撮像画像12を出力することが求められる。
【0022】
そこで第1情報処理装置2000は、撮像画像12がオブジェクト認識処理に適したものであるか否かを判定する機能を有する。具体的には、第1情報処理装置2000は、撮像画像12から特徴点を検出し、検出した特徴点の数が所定の条件を満たすか否かを判定する。そして、特徴点の数が所定の条件を満たさない場合、第1情報処理装置2000は所定の通知40を出力する。通知40は、撮像画像12がオブジェクト認識処理に適した画像でないことを第1情報処理装置2000のユーザが把握できるようにするための通知である。例えば通知40は、撮影のやり直しを促す通知である。通知40の出力先は、例えば、情報処理装置2000に設けられているディスプレイ装置である。
【0023】
一方、特徴点の数が所定の条件を満たす場合、第1情報処理装置2000は撮像画像12を出力する。第2情報処理装置3000は、この撮像画像12について、特徴点を用いたオブジェクト認識処理を行うことにより、物品の認識を行う。撮像画像12から検出される特徴点の数が所定の条件を満たしているため、撮像画像12から検出される特徴点の数が所定の条件を満たさない場合と比較し、撮像画像12から物品を認識できる蓋然性が高くなる。
【0024】
<作用効果>
本実施形態の情報処理システム4000は、撮像画像12から検出される特徴点の数が所定の条件を満たしているかを判定し、所定の条件が満たされていない場合には通知40を出力する。これにより、撮像画像12がオブジェクト認識処理に適したものでない場合に、そのことを第1情報処理装置2000のユーザが把握できるようになる。
【0025】
ここで、撮像画像12の画質を評価する指標として、撮像画像12の輝度の分布に着目したり、輝度の分布から導き出される明るさやコントラストに着目したりする方法も考えられる。これに対し、情報処理システム4000は、撮像画像12から検出される特徴点の数に着目している。このように、特徴点という物品の認識に直接利用される情報に着目して撮像画像12を評価することにより、撮像画像12が物品の認識に適したものであるか否かをより高い精度で判定できる。すなわち、情報処理システム4000によれば、画像解析(物品の認識)に利用される撮像画像12の画質を高い精度で評価することができる。
【0026】
また、情報処理システム4000には、物品を管理する作業の効率を高くするという利点もある。撮像画像12を利用して物品を管理する方法として、カメラ10が陳列場所20を生成したタイミングで第2情報処理装置3000に物品認識を行わせ、第2情報処理装置3000が撮像画像12から物品を認識できたことを確認してから次の撮像を行うという方法が考えられる。しかしながらこの方法では、第2情報処理装置3000が物品の認識を完了するまで陳列場所20を撮像する作業が遅延する。そのため、作業全体に要する時間が長くなる。
【0027】
その他の方法として、撮像の際には撮像画像12の画質をチェックせず、複数の撮像画像12について後でまとめて(例えば、夜間のバッチ処理で)第2情報処理装置3000による物品認識を行うという方法も考えられる。しかしながらこの方法では、第2情報処理装置3000が撮像画像12から物品を認識できなかった場合に、陳列場所20の撮像をやり直すという手戻りが発生する。作業における手戻りの発生は、作業効率を下げる要因となる。特に、店舗にラウンダー等の作業員が出向して陳列場所20を撮像する作業を行う場合、後日再度ラウンダーがその店舗に出向しなければならない事態が生じ、作業効率が大きく下がる。
【0028】
これに対し、本実施形態の情報処理システム4000では、第1情報処理装置2000が撮像画像12の画質をチェックして出力し、チェック後の撮像画像12を第2情報処理装置3000が利用する。ここで、第1情報処理装置2000が行う処理は特徴点の検出及びその数のチェックであり、物品を認識する処理と比較して処理に要する時間が短い。よって、第1情報処理装置2000による撮像画像12のチェックが完了するのを待っても、陳列場所20の撮像を行う作業に与える影響は小さいと言える。また、撮像画像12の特徴点の数が所定の条件を満たさなければ通知40が出力されるため、第1情報処理装置2000のユーザはその場で陳列場所20の撮像をやり直すことができる。そのため、作業の手戻りが発生することを防ぐことができる。
【0029】
このように、情報処理システム4000によれば、特徴点の数のチェックという比較的短い時間で完了する処理で撮像画像12の画質をチェックすることにより、陳列場所20を撮像する作業に遅延が生じることを避けつつ、作業の手戻りの発生を防ぐことができる。よって、物品の管理作業全体の効率が高くなる。
【0030】
以下、情報処理システム4000についてより詳細に説明する。
【0031】
<機能構成の例>
図2は、情報処理システム4000の機能構成を例示する図である。情報処理システム4000は、第1情報処理装置2000及び第2情報処理装置3000を有する。第1情報処理装置2000は、検出部2020、判定部2040、及び出力部2060を有する。検出部2020は、撮像画像12から特徴点を検出する。判定部2040は、検出された特徴点が所定の条件を満たすか否かを判定する。出力部2060は、検出された特徴点が所定の条件を満たさない場合、通知40を出力する。一方で、出力部2060は、検出された特徴点が所定の条件を満たす場合、撮像画像12を出力する。
【0032】
第2情報処理装置3000は、第1情報処理装置2000によって出力された撮像画像12を取得する。そして、第2情報処理装置3000は、撮像画像12から検出される特徴点を用いてオブジェクト認識処理を行うことで、撮像画像12に含まれる物品の認識を行う。
【0033】
<第1情報処理装置2000のハードウエア構成の例>
第1情報処理装置2000の各機能構成部は、各機能構成部を実現するハードウエア(例:ハードワイヤードされた電子回路など)で実現されてもよいし、ハードウエアとソフトウエアとの組み合わせ(例:電子回路とそれを制御するプログラムの組み合わせなど)で実現されてもよい。以下、第1情報処理装置2000の各機能構成部がハードウエアとソフトウエアとの組み合わせで実現される場合について、さらに説明する。
【0034】
図3は、第1情報処理装置2000を実現する計算機1000の構成を例示する図である。計算機1000は種々の計算機である。例えば計算機1000は、タブレット端末、スマートフォン、又なヘッドマウントディスプレイなどの可搬型の計算機である。計算機1000は、第1情報処理装置2000を実現するために設計された専用の計算機であってもよいし、汎用の計算機であってもよい。
【0035】
計算機1000は、バス1020、プロセッサ1040、メモリ1060、ストレージデバイス1080、入出力インタフェース1100、及びネットワークインタフェース1120を有する。バス1020は、プロセッサ1040、メモリ1060、ストレージデバイス1080、入出力インタフェース1100、及びネットワークインタフェース1120が、相互にデータを送受信するためのデータ伝送路である。ただし、プロセッサ1040などを互いに接続する方法は、バス接続に限定されない。プロセッサ1040は、CPU (Central Processing Unit) や GPU (Graphics Processing Unit) などで実現されるプロセッサである。メモリ1060は、RAM (Random Access Memory) などで実現される主記憶装置である。ストレージデバイス1080は、ハードディスク、SSD (Solid State Drive)、メモリカード、又は ROM (Read Only Memory) などで実現される補助記憶装置である。
【0036】
入出力インタフェース1100は、計算機1000と入出力デバイスとを接続するためのインタフェースである。例えば入出力インタフェース1100には、キーボードなどの入力装置や、ディスプレイ装置などの出力装置が接続される。その他にも例えば、入出力インタフェース1100には、カメラ10が接続される。
【0037】
ネットワークインタフェース1120は、計算機1000をネットワークに接続するためのインタフェースである。この通信網は、例えば LAN(Local Area Network)や WAN(Wide Area Network)である。ネットワークインタフェース1120がネットワークに接続する方法は、無線接続であってもよいし、有線接続であってもよい。
【0038】
ストレージデバイス1080は第1情報処理装置2000の各機能を実現するプログラムモジュールを記憶している。プロセッサ1040は、これら各プログラムモジュールを実行することで、そのプログラムモジュールに対応する各機能を実現する。
【0039】
<カメラ10について>
カメラ10は、撮像を行い、撮像結果を表す画像を生成することができる任意の撮像装置である。例えば第1情報処理装置2000がスマートフォン等の可搬型の端末で実現される場合、カメラ10には、第1情報処理装置2000と一体として設けられるカメラを利用することができる。ただし、カメラ10は、第1情報処理装置2000と別体として設けられてもよい。
【0040】
<第2情報処理装置3000のハードウエア構成の例>
第2情報処理装置3000の各機能構成部は、各機能構成部を実現するハードウエア(例:ハードワイヤードされた電子回路など)で実現されてもよいし、ハードウエアとソフトウエアとの組み合わせ(例:電子回路とそれを制御するプログラムの組み合わせなど)で実現されてもよい。以下、第2情報処理装置3000の各機能構成部がハードウエアとソフトウエアとの組み合わせで実現される場合について、さらに説明する。
【0041】
図4は、第2情報処理装置3000を実現する計算機5000の構成を例示する図である。計算機5000は種々の計算機である。例えば計算機5000は、Personal Computer(PC)やサーバマシンなどである。計算機5000は、第2情報処理装置3000を実現するために設計された専用の計算機であってもよいし、汎用の計算機であってもよい。
【0042】
計算機5000は、バス5020、プロセッサ5040、メモリ5060、ストレージデバイス5080、入出力インタフェース5100、及びネットワークインタフェース5120を有する。バス5020、プロセッサ5040、メモリ5060、ストレージデバイス5080、入出力インタフェース5100、及びネットワークインタフェース5120が有する機能はそれぞれ、バス1020、プロセッサ1040、メモリ1060、ストレージデバイス1080、入出力インタフェース1100、及びネットワークインタフェース1120が有する機能と同様である。
【0043】
ただし、ストレージデバイス5080には、第2情報処理装置3000の各機能を実現するためのプログラムモジュールが記憶される。プロセッサ5040は、これら各プログラムモジュールを実行することで、そのプログラムモジュールに対応する各機能を実現する。
【0044】
<処理の流れ>
図5は、実施形態1の情報処理システム4000によって実行される処理の流れを例示するフローチャートである。検出部2020は、撮像画像12を取得する(S102)。検出部2020は、撮像画像12から特徴点を検出する(S104)。出力部2060は、撮像画像12から検出された特徴点の数が所定の条件を満たすか否かを判定する(S106)。所定の条件が満たされない場合(S106:NO)、出力部2060は通知40を出力する(S108)。一方、所定の条件が満たされる場合(S106:YES)、出力部2060は、撮像画像12を出力する(S110)。
【0045】
第2情報処理装置3000は、出力部2060によって出力された撮像画像12を取得する(S112)。第2情報処理装置3000は、撮像画像12から検出される特徴点を用いて、撮像画像12に含まれる物品を認識する(S114)。
【0046】
第1情報処理装置2000が
図5に示す一連の処理を実行する契機は様々である。例えば、カメラ10が撮像画像12を生成したことに応じて検出部2020がこの撮像画像12を取得することにより、上記一連の処理が実行される。その他にも例えば、撮像画像12を指定する入力操作を受け付け、指定された撮像画像12について
図5に示す一連の処理を実行してもよい。この場合、第1情報処理装置2000は、ユーザから入力操作を受け付けたことを契機として、
図5に示す一連の処理を実行する。
【0047】
第2情報処理装置3000が
図5に示す一連の処理を実行する契機は様々である。例えば第2情報処理装置3000は、第1情報処理装置2000によって撮像画像12が出力されたことに応じ、その撮像画像12を対象として、上記
図5に示す処理を実行する。その他にも例えば、第2情報処理装置3000は、所定のタイミングで、1つ以上の撮像画像12を対象に、上記一連の処理を実行してもよい。この場合、例えば、第1情報処理装置2000から出力される1つ以上の撮像画像12を記憶装置に記憶させておき、第2情報処理装置3000がこの記憶装置から撮像画像12を読み出すようにする。すなわち、記憶装置に記憶されている1つ以上の撮像画像12が、所定のタイミングでバッチ処理される。
【0048】
<撮像画像12の取得:S102>
検出部2020は、撮像画像12を取得する(S102)。例えば検出部2020は、撮像画像12が記憶されている記憶装置から撮像画像12を取得する。撮像画像12が記憶されている記憶装置は、検出部2020の内部に設けられていてもよいし、外部に設けられていてもよい。その他にも例えば、検出部2020は、ユーザによる入力操作によって入力される撮像画像12を取得する。その他にも例えば、検出部2020は、他の装置によって送信される撮像画像12を受信することで、撮像画像12を取得する。
【0049】
ここで、検出部2020が取得する撮像画像12は、カメラ10によって生成された撮像画像そのものであってもよいし、カメラ10によって生成された撮像画像に何らかの処理が施されたものであってもよい。後者の場合、例えば、カメラ10によって生成された撮像画像に対してトリミングを行って不要な画像領域を取り除いたり、カメラ10によって生成された撮像画像に対して手ぶれ補正や色調補正を施したりすることで、撮像画像12が生成される。
【0050】
<特徴点の検出:S104>
検出部2020は、撮像画像12から特徴点を検出する(S104)。ここで、画像からエッジ、コーナー、又はブロブなどの特徴点を検出する技術には、既存の技術を利用することができる。
【0051】
<判定部2040による判定:S106>
判定部2040は、撮像画像12から検出された特徴点の数が所定の条件を満たすか否かを判定する(S106)。ここで、概念的には、所定の条件は、撮像画像12が物品の認識に利用することに適しているものである場合に満たされる条件である。以下、そのような条件のバリエーションについて例示する。
【0052】
<<撮像画像12全体における特徴点の数>>
例えば所定の条件は、「撮像画像12全体から検出される特徴点の数が基準値以上である」という条件である。この場合、検出部2020は、撮像画像12全体について、特徴点を検出する処理を行う。そして、判定部2040は、撮像画像12全体から検出された特徴点の数が基準値以上であるか否かを判定する。検出された特徴点の数が基準値以上であれば所定の条件が満たされていることになり、検出された特徴点の数が基準値未満であれば所定の条件が満たされていないことになる。
【0053】
<<撮像画像12の特定の領域から検出される特徴点の数>>
例えば所定の条件は、「撮像画像12に含まれる部分領域から検出される特徴点の数が基準値以上である」という条件である。検出部2020は、撮像画像12内の部分領域について、特徴点を検出する処理を行う。そして判定部2040は、部分領域から検出された特徴点の数が基準値以上であるか否かを判定する。
【0054】
特徴点検出の対象とする部分領域は、ユーザによって指定されてもよいし、予め定められていてもよい。以下、それぞれのケースについて説明する。
【0055】
<<<部分領域をユーザが指定するケース>>>
例えば第1情報処理装置2000は、第1情報処理装置2000に設けられているディスプレイ装置に撮像画像12を表示させ、このディスプレイ装置に表示された撮像画像12に対して部分領域を指定する入力を受け付ける。指定できる部分領域は1つであってもよいし、複数であってもよい。
【0056】
図6は、部分領域を指定する入力を受け付ける様子を例示する図である。
図6において、第1情報処理装置2000に設けられているディスプレイ装置30には、タッチパネルが備えられている。
【0057】
図6の上段の例において、ユーザは、ディスプレイ装置30をタップしている。第1情報処理装置2000は、タップされた位置を中心とする所定サイズの領域を、部分領域14として定義する。一方、
図6の下段の例において、ユーザは、ディスプレイ装置30をドラッグしている。例えば、第1情報処理装置2000は、ドラッグ位置の始点から終点まで所定サイズの領域を移動させた場合にその領域が通過する範囲全体を、部分領域14として定義する。
【0058】
ここで、部分領域14は、物品を含む領域であることが好ましい。撮像画像12から物品を認識できるためには、物品を含む領域において十分な数の特徴点が検出されることが必要であるため、特徴点の数についての検証は、物品を含む領域を対象として行われることが好適である。
【0059】
そこでユーザは、入力操作において物品を含む領域を指定することが好適である。例えば
図6の上段の例では、ユーザは、物品の位置をタップすることで、物品が含まれる領域を指定している。また、
図6の下段の例では、ユーザは、商品棚のうち、物品が陳列される領域をドラッグすることで、物品が含まれる領域を指定している。
【0060】
<<<部分領域が予め決められているケース>>>
検出部2020は、予め定められている部分領域14から特徴点を検出する。部分領域14を定義する情報は、検出部2020からアクセス可能な記憶装置に予め記憶させておく。
【0061】
部分領域14は、任意の領域とすることができる。
図7は、部分領域が予め定められているケースを例示する図である。左側の例では、部分領域14が1つあり、撮像画像12の中央に位置する。中央の例では、部分領域14が3つあり、それぞれ撮像画像12の左上、中央、及び右下に位置する。右側の例では、部分領域14が3つあり、それぞれ撮像画像12において物品が陳列されると推測される領域である。
【0062】
ここで、撮像画像12において物品が陳列される領域を推測する方法について説明する。前提として、第1情報処理装置2000のユーザは、横方向に位置をずらしながら陳列場所20を繰り返し撮像することで、陳列場所20に陳列されている物品を撮像していくとする。
図8は、横方向に位置をずらしながら行う撮像を概念的に例示する図である。
図8では、横方向に長い陳列場所20が、横方向に位置を5回ずらして撮像される。なお、撮像されない物品がないように、撮像範囲を一部重複させている。
【0063】
このように横方向に位置をずらしながら撮像する場合、2回目以降に生成される撮像画像12において物品が陳列される高さ方向の位置は、1回目の撮像画像12と同じであると推測できる。そこで、第1情報処理装置2000は、1回目の撮像画像12について、ユーザから、物品が陳列されている領域を指定する入力を受け付ける。例えばこの入力は、
図6の下段に示した入力と同様である。そして、第1情報処理装置2000は、以降に生成される撮像画像12については自動的に、上記指定された領域と同じ領域を部分領域14として設定する。
【0064】
<<物品の種類ごとの基準値>>
撮像画像12全体や部分領域14について定められる基準値は、陳列される物品の種類に応じて異なっていてもよい。形状や模様が複雑な物品ほど、物品の認識に必要となる基準値が多くなる傾向があるためである。例えば、物品の種類と基準値とを対応づけた情報を、予め記憶装置に記憶させておく。情報処理装置2000は、陳列場所20に陳列されている物品の種類を指定する入力を受け付け、指定された種類に対応する基準値を記憶装置から取得し、この基準値を利用する。
【0065】
<<複数存在する部分領域14の基準値について>>
部分領域14が複数存在する場合、基準値は、各部分領域14から検出される特徴点の合計数について定められていてもよいし、個々の部分領域14から検出される特徴点の数について定められていてもよい。前者の場合、所定の条件は、「各部分領域14から検出される特徴点の合計数が基準値以上である」という条件となる。例えば判定部2040は、各部分領域14に含まれる画素を合計した値に単位基準値を乗じることで得られる値を基準値とする。
【0066】
各部分領域14から検出される特徴点の合計数について基準値を定めることには、検出される特徴点の数が少ない部分領域14があったとしても、他の部分領域14から十分な数の特徴点が検出されれば、所定の条件が満たされることになるという利点がある。例えば
図7の真ん中の例のように、予め定められた部分領域14から特徴点を検出する場合、複数の部分領域14の中に、物品が含まれない領域(例えば商品棚の枠)が存在しうる。このように物品が含まれない領域は、物品が含まれる領域と比較し、検出される特徴点の数が少ない蓋然性が高い。しかしながら、物品が含まれる領域から十分な数の特徴点が得られれば物品の認識には支障がないため、このように物品が含まれない領域から検出される特徴点の数は少なくてもよい。そこで、部分領域14から検出される特徴点の合計数について基準値を定めておくことにより、物品を内部に含まない部分領域14があったとしても、他の部分領域14から十分な数の特徴点が検出されれば、所定の条件が満たされるようにしておく。
【0067】
個々の部分領域14から検出される特徴点の数について基準値を定める場合、例えば判定部2040は、特徴点の数が基準値未満である部分領域14が1つでも存在すれば、通知40を出力する。すなわち、「全ての部分領域14において、特徴点の数が基準値以上である」を所定の条件とする。例えばユーザが物品の位置を複数指定することで複数の部分領域14が定められた場合、これらの部分領域14はいずれも物品の認識に利用できる必要がある。そこで、全ての部分領域14について十分な数の特徴点が検出されるようにする。
【0068】
ただし、特徴点の数が基準値以上となる部分領域14の数にも、基準値を設けるようにしてもよい。具体的には、判定部2040は、特徴点の数が基準値以上である部分領域14の数が所定数未満である場合に、通知40を出力する。すなわち、「所定数以上の部分領域14において、特徴点の数が基準値以上である」を所定の条件とうる。
【0069】
なお、個々の部分領域14から検出される特徴点の数について基準値を定める場合、例えば判定部2040は、各部分領域14の基準値を、その部分領域14に含まれる画素の数に単位基準値を乗じることで得られる値とする。
【0070】
<<複数の撮像画像12の一部を重複させるケースについて>>
図8に示したように、第1情報処理装置2000のユーザが、横方向に位置をずらしながら陳列場所20を繰り返し撮像することで、陳列場所20に陳列されている物品を撮像していくケースがある。そしてこの場合、
図8に示すように、隣接する撮像範囲を一部重複させることが好適である。
【0071】
ここで、隣接する撮像範囲を一部重複させると、或る撮像画像12とその次に生成される撮像画像12とにおいて、一部の領域が、略同一の場所を撮像した領域となる。以下、この領域を、共通領域と呼ぶ。これら2つの撮像画像12がいずれもブレなどがない適切な画像であれば、共通領域から検出される特徴点の数の差は小さいと考えられる。
【0072】
そこで、このように横方向に位置をずらしながら撮像を行うという方法で第1情報処理装置2000を運用する場合、第1情報処理装置2000は、部分領域14の一つとして前述した共通領域を設定してもよい。ただし、共通領域を部分領域14として設定できるのは、2回目以降の撮像で生成される撮像画像12である。
【0073】
この場合、共通領域に対応する部分領域14から検出される特徴点の数については、基準値を、前の撮像画像12の共通領域から検出された特徴点の数に基づいて設定してもよい。例えば、前の撮像画像12の共通領域から検出された特徴点の数 N に所定の係数αを乗じたαN を基準値とする。α=1の場合、前の撮像画像12の共通領域から検出された特徴点の数を基準値とすることになる。一方、α<1の場合、前の撮像画像12の共通領域から検出された特徴点の数よりも小さい値を基準値とすることになる。αを1に近い1未満の値(例えば、0.9など)に設定することにより、特徴点の数の多少の減少を許容することができる。
【0074】
<通知40の出力:S108>
出力部2060は、撮像画像12から検出される特徴点の数が所定の条件を満たさない場合に(S106:NO)、通知40を出力する(S108)。通知40は、撮像画像12が物品認識に適していないものであることを第1情報処理装置2000のユーザに把握させるための通知である。
【0075】
例えば前述したように、通知40は、撮像のやり直しをユーザに促す通知である。この通知により、ユーザは、撮像のやり直し(すなわち、撮像画像12の生成のやり直し)をすべきことを把握することができる。ユーザは、第1情報処理装置2000を操作してカメラ10による撮像を再度行う。第1情報処理装置2000は、この結果として生成される撮像画像を新たに撮像画像12として扱って、一連の処理を実行する。
【0076】
図9は、撮像のやり直しを促す通知を例示する図である。
図9では、第1情報処理装置2000に設けられているディスプレイ装置30に、撮像のやり直しを促す通知40が表示されている。ユーザによって通知40に含まれる「カメラ起動」というボタンを押されると、第1情報処理装置2000は、カメラ10による撮像を行える状態に切り替わる。
【0077】
その他にも例えば、所定の通知は、撮像画像12が適切なものであるか否かをチェックするように促す通知である。
図10は、撮像画像12のチェックを促す通知である。問題があると判断した場合、ユーザは、「カメラ起動」というボタンを押すことで撮像をやり直す。一方、第1情報処理装置2000のユーザは、撮像画像12を目で見て確認し、問題がないと判断したら「問題なし」というボタンを押す。この場合、出力部2060は、撮像画像12の出力を行う。
【0078】
撮像画像12が適切なものであるか否かをチェックするように促す通知を利用する形態には、例えば次のような利点がある。まず、複数設定されている部分領域14の中に、物品が含まれていない部分領域14があるとする。この場合、その部分領域14から検出される特徴点の数は少なくなるため、特徴点の数が所定の条件を満たさない可能性がある。しかしながらこの場合、物品が含まれる他の部分領域14から検出される特徴点の数が十分多ければ、撮像画像12は問題なく物品認識に利用できる蓋然性が高いと考えられる。
【0079】
そこで、撮像画像12が適切なものであるか否かをチェックするように促す通知を出力するようにすれば、ユーザが各部分領域14を確認して、上述したように撮像画像12が問題なく物品認識に利用できるものであるかどうかを確認することができる。そして、撮像画像12が問題なく物品認識に利用できるならば「問題なし」ボタンを押すようにすることで、撮像のやり直しを避けることができる。
【0080】
ここで、判定部2040が部分領域14について判定を行った場合、出力部2060は、特徴点の数が基準値未満である部分領域14を強調表示することが好適である。
図11は、特徴点の数が基準値未満である部分領域14が強調表示される様子を例示する図である。
【0081】
図11の上段では、枠50により、特徴点の数が基準値未満である部分領域14が強調表示されている。また、
図11の下段では、特徴点の数が基準値未満である部分領域14を拡大して表示(符号60)することにより、この部分領域14を強調表示している。なお、実際には、部分領域14を表す点線は表示されなくてもよい。
【0082】
強調表示の方法は、上述した方法に限定されない。例えば、マークを付したり色を変えたりするといった様々な方法を採用することができる。
【0083】
<撮像画像12の出力:S110>
出力部2060は、撮像画像12から検出される特徴点の数が所定の条件を満たす場合に(S106:YES)、撮像画像12を出力する(S110)。ここで出力される撮像画像12は第2情報処理装置3000によって利用されるため、撮像画像12は、第2情報処理装置3000が利用可能な態様で出力される必要がある。
【0084】
例えば出力部2060は、第2情報処理装置3000からアクセス可能な所定の記憶装置(例えば、第1情報処理装置2000と第2情報処理装置3000の双方と通信可能に接続されている NAS(Network Attached Storage))に、撮像画像12を記憶させる。その他にも例えば、出力部2060は、第2情報処理装置3000に対して撮像画像12を送信してもよい。
【0085】
<第2情報処理装置3000による撮像画像12の取得:S108>
第2情報処理装置3000は、出力部2060によって出力された撮像画像12を取得する(S108)。例えば出力部2060が撮像画像12を記憶装置に記憶させる場合、第2情報処理装置3000は、この記憶装置から撮像画像12を読み出すことで、撮像画像12を取得する。その他にも例えば、第1情報処理装置2000が第2情報処理装置3000に対して撮像画像12を送信する場合、第2情報処理装置3000は、この撮像画像12を受信することで、撮像画像12を取得する。
【0086】
<物品の認識:S110>
第2情報処理装置3000は、撮像画像12から検出された特徴点を用いて、物品の認識を行う(S110)。特徴点を用いたオブジェクト認識には、既存の技術を利用することができる。
【0087】
第2情報処理装置3000は、検出部2020によって撮像画像12から検出された特徴点を物品の認識に利用してもよい。この場合、出力部2060は、撮像画像12に対応づけて、撮像画像12から検出された特徴点を表す情報を出力する。こうすることで、撮像画像12から特徴点を検出する処理を重複して実行することがなくなるため、情報処理システム4000全体の処理を効率化できる。ただし、検出部2020によって特徴点が検出された領域が撮像画像12の一部である場合、第2情報処理装置3000は、少なくとも残りの領域については、特徴点の検出を行う。
【0088】
第2情報処理装置3000は、検出部2020によって撮像画像12から検出された特徴点を用いなくてもよい。この場合、第2情報処理装置3000は、撮像画像12から特徴点を検出する処理を行う。第2情報処理装置3000でも特徴点の検出を行う場合、第1情報処理装置2000が特徴点検出に利用するアルゴリズムと、第2情報処理装置3000が特徴点検出に利用するアルゴリズムとは、互いに同一であることが好適である。これらのアルゴリズムを異なるものにすると、第1情報処理装置2000で検出された特徴点が第2情報処理装置3000において検出されなくなり、第2情報処理装置3000において特徴点の数が不足する可能性があるためである。
【0089】
ただし、第2情報処理装置3000で検出される特徴点の数が第1情報処理装置2000で検出される特徴点の数より多くなればよいため、そのように第1情報処理装置2000と第2情報処理装置3000のそれぞれで利用する特徴点検出のアルゴリズムを決めてもよい。
【0090】
以上、図面を参照して本発明の実施形態について述べたが、これらは本発明の例示であり、上記以外の様々な構成を採用することもできる。
【0091】
例えば、上述した情報処理システム4000は第1情報処理装置2000と第2情報処理装置3000を有しているが、第1情報処理装置2000が第2情報処理装置3000の役割も担うようにしてもよい。すなわち、撮像画像12から物品を認識する処理を第1情報処理装置2000が行うようにしてもよい。この場合、情報処理システム4000は第1情報処理装置2000のみを有すればよく、第2情報処理装置3000を有する必要はない。
【0092】
上記の実施形態の一部又は全部は、以下の付記のようにも記載されうるが、以下には限られない。
1. 物品の陳列場所を撮像することで生成された撮像画像から特徴点を検出する検出部と、
前記検出された特徴点の数が所定の条件を満たすか否かを判定する判定部と、
前記検出された特徴点の数が所定の条件を満たさない場合、所定の通知を出力する出力部と、を有する情報処理装置。
2. 前記所定の条件は、前記撮像画像全体から検出された特徴点の数が基準値以上であることである、1.に記載の情報処理装置。
3. 前記検出部は、前記撮像画像に含まれる1つ以上の各部分領域から特徴点を検出し、
前記所定の条件は、
複数の部分領域それぞれから検出された特徴点の数の合計が基準値以上であることであること、
複数の部分領域それぞれから検出された特徴点の数がいずれも基準値以上であること、又は、
複数の部分領域のうち、所定数以上の部分領域において検出された特徴点の数がいずれも基準値以上であることである、1.に記載の情報処理装置。
4. 前記撮像画像に含まれる物品の種類の入力を受け付け、
前記判定部は、物品の種類に対応づけて前記特徴点の数の基準値を記憶している記憶装置から、前記入力された物品の種類に対応する前記特徴点の数の基準値を取得し、前記取得した基準値を用いて、前記検出された特徴点の数が前記所定の条件を満たすか否かを判定する、2.又は3.に記載の情報処理装置。
5. 前記所定の通知は、前記陳列場所を再度撮像することを促す通知を含む、1.乃至4.いずれか一つに記載の情報処理装置。
6. 前記所定の通知は、検出された特徴点の数が基準値未満である部分領域を表す表示を含む、1.乃至5.いずれか一つに記載の情報処理装置。
7. 前記所定の通知は、検出された特徴点の数が基準値未満である部分領域を拡大した表示を含む、6.に記載の情報処理装置。
8. 前記出力部は、前記検出された特徴点の数が所定の条件を満たす場合に前記撮像画像を出力し、
前記出力された撮像画像から検出される特徴点を用いて、その撮像画像に含まれる物品の認識が行われる、1.乃至7.いずれか一つに記載の情報処理装置。
【0093】
9. 第1情報処理装置と第2情報処理装置を有する情報処理システムであって、
前記第1情報処理装置は、
物品の陳列場所を撮像することで生成された撮像画像から特徴点を検出する検出部と、
前記検出された特徴点の数が所定の条件を満たすか否かを判定する判定部と、
前記検出された特徴点の数が所定の条件を満たさない場合には所定の通知を出力し、前記検出された特徴点が所定の条件を満たさない場合には前記撮像画像を出力する出力部と、を有し、
前記第2情報処理装置は、前記第1情報処理装置によって出力された撮像画像から検出される特徴点を用いて、その撮像画像に含まれる物品の認識を行う、情報処理システム。
10. 前記所定の条件は、前記撮像画像全体から検出された特徴点の数が基準値以上であることである、9.に記載の情報処理システム。
11. 前記検出部は、前記撮像画像に含まれる1つ以上の各部分領域から特徴点を検出し、
前記所定の条件は、
複数の部分領域それぞれから検出された特徴点の数の合計が基準値以上であることであること、
複数の部分領域それぞれから検出された特徴点の数がいずれも基準値以上であること、又は、
複数の部分領域のうち、所定数以上の部分領域において検出された特徴点の数がいずれも基準値以上であることである、9.に記載の情報処理システム。
12. 前記撮像画像に含まれる物品の種類の入力を受け付け、
前記判定部は、物品の種類に対応づけて前記特徴点の数の基準値を記憶している記憶装置から、前記入力された物品の種類に対応する前記特徴点の数の基準値を取得し、前記取得した基準値を用いて、前記検出された特徴点の数が前記所定の条件を満たすか否かを判定する、10.又は11.に記載の情報処理システム。
13. 前記所定の通知は、前記陳列場所を再度撮像することを促す通知を含む、9.乃至12.いずれか一つに記載の情報処理システム。
14. 前記所定の通知は、検出された特徴点の数が基準値未満である部分領域を表す表示を含む、9.乃至13.いずれか一つに記載の情報処理システム。
15. 前記所定の通知は、検出された特徴点の数が基準値未満である部分領域を拡大した表示を含む、14.に記載の情報処理システム。
【0094】
16. コンピュータによって実行される制御方法であって、
物品の陳列場所を撮像することで生成された撮像画像から特徴点を検出する検出ステップと、
前記検出された特徴点の数が所定の条件を満たすか否かを判定する判定ステップと、
前記検出された特徴点の数が所定の条件を満たさない場合、所定の通知を出力する出力ステップと、を有する制御方法。
17. 前記所定の条件は、前記撮像画像全体から検出された特徴点の数が基準値以上であることである、16.に記載の制御方法。
18. 前記検出ステップにおいて、前記撮像画像に含まれる1つ以上の各部分領域から特徴点を検出し、
前記所定の条件は、
複数の部分領域それぞれから検出された特徴点の数の合計が基準値以上であることであること、
複数の部分領域それぞれから検出された特徴点の数がいずれも基準値以上であること、又は、
複数の部分領域のうち、所定数以上の部分領域において検出された特徴点の数がいずれも基準値以上であることである、16.に記載の制御方法。
19. 前記撮像画像に含まれる物品の種類の入力を受け付け、
前記判定ステップにおいて、物品の種類に対応づけて前記特徴点の数の基準値を記憶している記憶装置から、前記入力された物品の種類に対応する前記特徴点の数の基準値を取得し、前記取得した基準値を用いて、前記検出された特徴点の数が前記所定の条件を満たすか否かを判定する、17.又は18.に記載の制御方法。
20. 前記所定の通知は、前記陳列場所を再度撮像することを促す通知を含む、16.乃至19.いずれか一つに記載の制御方法。
21. 前記所定の通知は、検出された特徴点の数が基準値未満である部分領域を表す表示を含む、16.乃至20.いずれか一つに記載の制御方法。
22. 前記所定の通知は、検出された特徴点の数が基準値未満である部分領域を拡大した表示を含む、21.に記載の制御方法。
23. 前記出力ステップにおいて、前記検出された特徴点の数が所定の条件を満たす場合に前記撮像画像を出力し、
前記出力された撮像画像から検出される特徴点を用いて、その撮像画像に含まれる物品の認識が行われる、16.乃至22.いずれか一つに記載の制御方法。
【0095】
24. 16.乃至23.いずれか一つに記載の制御方法の各ステップをコンピュータに実行させるプログラム。
【解決手段】情報処理システム4000は、第1情報処理装置2000と第2情報処理装置3000を有する。第1情報処理装置2000は、撮像画像12から特徴点を検出し、検出した特徴点の数が所定の条件を満たすか否かを判定する。そして、特徴点の数が所定の条件を満たさない場合、第1情報処理装置2000は所定の通知40を出力する。第2情報処理装置3000は、この撮像画像12について、特徴点を用いたオブジェクト認識処理を行うことにより、物品の認識を行う。