本発明による位置情報表示システム及び方法の実施の形態を、図面を参照しながら詳細に説明する。
図1は、本発明による位置情報表示システムの実施の形態のブロック図である。図1に示す位置情報表示システムは、位置検出パターンを有する二次元コードである識別コードを読み出すとともに当該識別コードの位置情報を表示するシステムであり、図書館の書籍管理、(病院、銀行等の書類が多い場面で有用な)文書フォルダ管理、薬品管理、工場の材料管理等に用いられる。このために、図1に示す位置情報表示システムは、端末1と、ネットワーク(通信経路)2と、サーバ3と、を備える。
本実施の形態では、四つの位置検出パターンを有する二次元コードを識別コードとして用いる場合について説明する。位置検出パターンの座標は、例えば、撮影画像を解析することによって検出可能である。
端末1は、カメラ機能付きスマートホン、カメラが接続されたパーソナルコンピュータ(PC)等として実現され、撮影手段としてのカメラ(撮影部)1Aと、識別コード認識手段としてのコンピュータ(識別コード認識部)1Bと、表示手段としてのディスプレイ1Cと、通信インタフェース1Dと、を有する。
カメラ1Aは、画像として読取可能な識別コードが付された物品を撮影する。このために、カメラ1Aは、レンズ1aと、イメージセンサ1bと、アナログ・デジタル変換器(AD)1cと、を有し、撮影した識別コードのデジタル画像データをコンピュータ1Bに出力する。
コンピュータ1Bは、端末1の動作を制御する。本実施の形態では、コンピュータ1Bは、カメラ1Aが撮影した画像中の識別コードを認識し、認識した識別コードを識別コード情報に変換し、変換した識別コード情報を、通信インタフェース1D及びネットワーク2を介してサーバ3に送信する。
ディスプレイ1Cは、後に説明するようにしてネットワーク2及び通信インタフェース1Dを介してサーバ3から提供された照合結果としてのオーバーレイ情報を、ディスプレイ1Cの表示画面に表示する。
サーバ3は、データベース3Aと、情報生成手段、照合手段及び情報登録手段としてのコンピュータ(情報生成部、照合部及び情報登録部)3Bと、通信インタフェース3Cと、を備える。データベース3Aは、画像として読取可能な識別コードが付された複数の物品の予め決定された基準位置関係を示す基準位置関係情報を記憶する。以下では、画像に含まれる識別コードが物品ごとに異なる場合について主に説明するが、画像に含まれる識別コードの一部が同一である場合にも本発明を適用することができる。
コンピュータ3Bは、サーバ3の動作を制御する。本実施の形態では、コンピュータ3Bは、識別コード情報を、通信インタフェース1D、ネットワーク2及び通信インタフェース3Cを介してコンピュータ1Bから受信する。そして、コンピュータ3Bは、撮影した画像中の識別コードが付された複数の物品の位置関係を示す撮影物品位置関係情報を、コンピュータ1Bが認識した識別コードを解析して得られた位置座標としての識別コードの中心座標に基づいて生成する。
本実施の形態では、コンピュータ1Bは、ディスプレイ1Cの画面内の撮影画像をラスター走査する際に撮影画像から抽出される識別コードの数を判断することによって、ディスプレイ1Cの画面内に存在する単数又は複数の識別コードを認識する。
また、本実施の形態では、コンピュータ3Bは、基準位置関係情報と撮影物品位置関係情報を照合し、照合結果を表すオーバーレイ情報を生成する。更に詳しく説明すると、撮影物品位置関係情報が基準位置関係情報に対応する場合には、コンピュータ3Bは、照合結果として、コンピュータ1Bが抽出した複数の識別コードに対応する物品を表すオーバーレイ情報を生成する。そして、生成したオーバーレイ情報は、ディスプレイ1Cの画面内の複数の識別コードに対応付けて表示される。それに対し、撮影物品位置関係情報が基準位置関係情報に対応しない場合には、コンピュータ3Bは、照合結果として、コンピュータ1Bが抽出した複数の識別コードに対応する物品を表すオーバーレイ情報及び基準位置関係から撮影物品位置関係への変化についての位置関係変化情報としての他のオーバーレイ情報を生成する。生成したオーバーレイ情報は、ディスプレイ1Cの画面内の複数の識別コードに対応付けて表示され、生成された他のオーバーレイ情報は、ディスプレイ1Cの画面内の物品が表示されている範囲以外の部分に表示される。
さらに、本実施の形態では、カメラ1Aは、基準位置関係にある識別コードが付された複数の物品を撮影し、コンピュータ3Bは、コンピュータ1Bが認識した識別コードの中心座標に基づいて基準位置関係情報を生成し、生成した基準位置関係情報をデータベース3Aに登録する。
図2は、図1に示す位置情報表示システムで用いられる識別コードの一例を示す図である。図2に示す識別コード11は、35×35セルの大きさを有し、9×9のブロックに分割され、隣接するブロック間に1セルの明の分離スペース23を有する二次元コードである。したがって、分離スペースは、8×8列の1セル幅のブロック間隔の格子状パターンになる。右下の3×3ブロック及び3×3分離スペースの部分には第1位置検出パターン12Aが、左上の2×2ブロック及び2×2分離スペースの部分には第2位置検出パターン12Dが、右上の3(横)×2(縦)ブロック及び3×2分離スペースの部分には第3位置検出パターン12Bが、左下の2(横)×3(縦)ブロック及び2×3分離スペースの部分には第4位置検出パターン12Cが、それぞれ設けられている。したがって、識別コード11の第1から第4位置検出パターン以外のブロックに、第1から第4位置検出パターン以上のパターンが出現することはない。
識別コード11のコード部分の最小単位はセルである。識別コード11は、通常正方形又は長方形の形状をとる。他の形状も可能だが、二次元コードの多くは四角形であり、第1実施形態の二次元コードも正方形であるが、これに限定されるものではなく、長方形でも他の形状でもよい。
一般に、二次元コードは明暗のセルでデータを表し、識別コード11もコード部は明暗のセルでデータを表す。さらに、識別コード11は、35×35セルの正方形であるが、これよりサイズの大きなコードや、長方形のような縦横の大きさを変えた形状にすることも可能である。35×35セルの正方形の二次元コードを、これをバージョン2×2と呼ぶ。ここで、最小のバージョンは1×1であり、この時のセルサイズは27×27となる。絵柄の埋込は、縦横のバージョンが共に2以上の場合に可能とする。バージョンが1×1の際に絵柄を埋め込まない理由は、データ量が少ないにも関わらず、絵柄を埋め込むと、さらにデータ量が少なくなり、認識してもほとんどデータが得られないことになるため、上記のような制限を加えた。識別コード11は、縦方向及び横方向にそれぞれ伸張できる。横バージョンが2、縦バージョンが3の場合、バージョン2×3と表記する。バージョンが1上がるごとに、セルサイズが8大きくなり、ブロック数が2大きくなる。よって、バージョン3×4では、セルサイズは43×51になる。バージョンは1から20まで選択可能であるが、これに限定されるものではない。
第1位置検出パターン12Aは、暗セルの部分が、8×8セルの1セル幅の正方形枠と、正方形枠の中心の2×2の正方形と、を有する。第2位置検出パターン12Dは、暗セルの部分が、4×4セルの1セル幅の正方形枠を有する。第3位置検出パターン12Bは、暗セルの部分が、8×4セルの1セル幅の長方形枠を有する、横長の長方形枠である。第4位置検出パターン12Cは、暗セルの部分が、4×8セルの1セル幅の長方形枠を有する、縦長の長方形枠である。
識別コード11では、正方形の二次元コードの4隅に4個の異なる位置検出パターンを配置する。なお、位置検出パターンが異なるというのは、形状、大きさ、二次元コード上での配置方向が異なる場合であり、線幅の比率が異なる場合も含まれる。ただし、撮影条件等の影響を受けるため、色の違いは対象とせず、明暗の二値画像を対象とする。
識別コード11では、位置検出パターンは、正方形又は長方形の各頂点付近に配置する。これは、1箇所に配置する場合より、できるだけ離れて配置する方が汚れの影響を分散できるためである。ただし、位置検出パターンの配置位置は、4隅に限定されるものではない。識別コード11のように、位置検出パターンとして、正方形だけでなく、長方形のものを用いることで、形状・傾き・大きさの区別が容易にできるため、高速に認識できる。また中抜きした長方形は、他の写り込みと区別するのが容易であり、データの無駄が少ない。
4個の位置検出パターンを配置する理由は、解析において精度高くデータの座標のマッピングを計算するのに用いる二次元の射影変換では、コードのセルと、そのセルに対応する撮影画像の座標を計算するために、4組の座標の組をパラメータとして与える必要があるからである。位置検出パターン数が2個又は3個しかない場合でも、座標を補間することで、4点を算出した上で射影変換を行うことは可能であるが、ななめからの撮影や、歪み、ぼけなどで正確な座標が得にくく、データ抽出の精度に大きく影響するため、識別コード11では4個の位置検出パターンを配置している。
また、位置検出パターンが異なる理由は、見つからない位置検出パターンがあった場合でも、見つからなかった位置検出パターンが確実に特定でき、見つからなかった位置検出パターンの座標の予測が可能になり、位置検出パターンの訂正が可能になる。すべて同じ位置検出パターンを用いた場合、見つからなかった位置検出パターンの特定は、すべて異なる位置検出パターンを用いた場合ほど容易ではなく、位置検出パターンの訂正が困難になる。
識別コード11の4個の位置検出パターン以外の56ブロックは、データ部であり、実データブロック、誤り訂正符号ブロック、バージョン情報ブロック、フォーマット情報ブロック、及び絵柄埋込情報ブロックと、を含む。
上記のように、データ部は3×3セルを1ブロックとし、ブロック単位でデータを埋め込む。データ部は、バージョン情報ブロック15及び16と、フォーマット情報ブロック17と、絵柄埋込情報ブロック18A、18B、19A及び19Bと、を有し、残りのブロックが実データブロック22である。識別コード11では、実データブロック22の一部を、誤り訂正符号と、位置補正パターンとして利用する。
したがって、位置検出パターン、バージョン情報ブロック、フォーマット情報ブロック、絵柄埋込情報ブロック、位置補正パターンを設けるブロック、さらに誤り訂正符号ブロックを除いた、残りのブロック22が、実データブロックである。もし、絵柄の埋め込みが行われる場合には、絵柄埋込情報ブロックが指示する絵柄埋め込みブロックも実データブロックから除く。実データは、実データブロックに属するブロックについて、左上から右に順にデータを敷き詰め、敷き詰め終わったら1ブロック下の左から敷き詰めるという具合に順に記録する。
ブロックは、3×3セルを有し、各セルは明と暗の1ビットを表すので、1ブロックは最大9ビットの情報を持つ(9ビット表現)が、ここでは画像のぼけ・ぶれに対する耐性を高めるため、1ブロック当たりのデータ量を9ビットのデータ量より小さく設定できるようにしている。なお、識別コード11では、ブロックを3×3セルのサイズとしたが、ブロックサイズはこれに限定されるものではなく、最小である1×1セルのサイズや、縦と横のセルサイズが異なるなどのブロックサイズも可能である。
バージョン情報ブロックは、識別コード11のサイズに関する情報を記録し、縦バージョン情報ブロック15と、横バージョン情報ブロック16の2種類存在し、それぞれ対応するバージョン情報が記録される。縦バージョン情報ブロック15及び横バージョン情報ブロック16は、それぞれ同じ情報を記憶した2個のブロックを離れた2箇所に配置することにより、汚れ等で欠損するリスクを分散させる。バージョン情報として、バージョン数(縦横各1から20)までの数値を表すブロックを配置する。
フォーマット情報ブロック17は、絵柄埋込フラグ(1ビット)と、データブロック種別データ(2ビット)からなるフォーマット情報を記録し、同じ情報を記憶した3個のブロックを離れた3箇所に配置する。絵柄埋込フラグは、絵柄埋込の有無、すなわち絵柄埋込領域が設けられているか否かを示す。絵柄埋込が有の場合、絵柄埋込情報ブロックが設けられる。データブロック種別データは、データブロックの種別を示し、データブロックの種別とは、1ブロック当たりのデータ容量であり、6、7、9ビット/ブロックのいずれかを選択する。データ量は9ビット>7ビット>6ビット表現の順に少なくなるが、データの読み取りのしやすさは、6ビット>7ビット>9ビットの順であり、ぼけやぶれの発生具合と、データ量を勘案して、選択する。これについては後述する。
埋め込まれる絵柄は、ブロック単位で埋め込まれ、隣接した複数のブロックが絵柄埋込領域である場合には、その間の分離スペースも絵柄埋込領域に含まれる。埋め込まれる絵柄の外形は四角形であり、絵柄の画像は、セル単位の2値画像に限定されず、どのようなものでもよい。また、絵柄を埋め込む四角形のブロックは、複数個あってもよい。例えば、絵柄は、セルより高分解能の多値画像でも、カラー画像でもよく、もちろんセル単位の2値画像でもよい。第1実施形態では、絵柄埋め込みの制限として、コード上側ブロック2行、左側ブロック2列、下側ブロック3行、右ブロック3列には絵柄を埋め込まないものとする。この範囲は二次元コードの仕様により、絵柄の埋め込み範囲外の部分に画像の情報を持つ絵柄埋込情報ブロックを配置する。
絵柄埋込情報ブロックは、絵柄を埋め込む領域のサイズ及びブロック位置に関する情報を縦横それぞれで記録し、縦埋込情報ブロック18A及び18Bと、横埋込情報ブロック19A及び19Bの2種類存在し、それぞれ対応するバージョン情報が記録される。縦埋込情報ブロック18A及び18Bは、絵柄埋め込み高さ(3ビット又は6ビット)及び絵柄埋込オフセット高さ(3ビット又は6ビット)を記録する。横埋込情報ブロック19A及び19Bは、絵柄埋込幅(3ビット又は6ビット)及び絵柄埋込オフセット幅(3ビット又は6ビット)を指定する。なお、3ビット又は6ビットにするかは、後述するようにバージョン情報に関係し、バージョンが2〜4の場合には3ビット、バージョンが5〜20の場合には6ビット必要であり、バージョン2〜4の場合には、縦埋込情報ブロック18B及び横埋込情報ブロック19Bは不要である。
絵柄埋込情報ブロックは、フォーマット情報ブロックで絵柄埋込フラグが立っていた場合のみ存在する。識別コード11は、埋込絵柄の個数が1つのみの場合を想定しており、複数の埋込絵柄を複数領域に埋め込むことを想定した場合には、フォーマット情報ブロックで絵柄埋込フラグのビット数を増加させて絵柄埋込領域数を示すようにすると共に、上記の絵柄埋込情報ブロックを絵柄枚数分設ける。絵柄のサイズと絵柄の埋込開始位置は、ブロック単位で指定する。ブロックの座標を左上隅のブロックを原点として(n,m)と表現し、横ブロック数をblW個、縦ブロック数をblH個とする。第1実施形態では、絵柄の埋め込み領域は、左上(2,2)、右下((blW−4,blH−4)からなる矩形の領域に限定される。絵柄の最大横ブロック数はblW−5個、最大縦ブロック数はblH−5個となる。
絵柄の位置は、始点(左上)となるブロック座標と、ブロックサイズの情報を絵柄埋込情報ブロックとしてコード内に埋め込むことで、コード解析時にどの位置に絵柄が入っているかを認識できるようにする。バージョン情報ブロックと同様に、横と縦で別々に扱う。横はblW−5が8未満の時(横バージョン2〜4)と、それ以外の場合(横バージョン5〜20)でデータ量を分け、縦も同様にする。blWと、blHの値は、横と縦のバージョンを解析することで求められる。
blWが13未満の時、横のブロックサイズは最小1、最大8ブロックであり、8通りは3ビットで表すことができ、同様に横のオフセットブロック数は2から8まで7通りあり、これも3ビットで表せるため、合計が6ビットとなる。そのため、ブロックを6ビット表現し、これらは1ブロックで表現可能である。縦も同様にする。blWが13以上の時、横のブロックサイズは6ビットで表し、同様に横のオフセットブロック数も6ビットで表す。よって、2ブロックを使って表現することになる。縦も同様にする。
横埋込情報ブロック19A及び19Bは、左上及び右下の横バージョン情報ブロックの外側(上側及び下側)に、縦埋込情報ブロック18A及び18Bは、左下及び右下の縦バージョン情報ブロックの外側(左側及び右側)に配置する。
絵柄を埋め込まない場合、すなわちフォーマット情報ブロックの絵柄埋込フラグが「無し」を示す場合、絵柄埋込情報ブロック及び絵柄埋め込みの領域が不要になるため、コードが効率的になる。
位置補正パターンは、実データブロック、誤り訂正符号ブロック、絵柄が埋め込まれている場合には絵柄埋込情報ブロックの座標補正に用いる目的のパターンである。識別コード11における概ねの座標は位置検出パターンから取得できるが、紙のよれ、曲がり、レンズの歪み、位置検出パターン取得時のズレによりデータ部の座標に誤差がでるので、これを修正する目的で設ける。位置補正パターンは、位置検出パターンと異なり、他のノイズと区別する必要がなく、位置検出パターンが算出できれば位置補正パターンの位置は容易に判明する。したがって、位置補正パターンは細かな座標補正がしやすい形状が望ましい。
識別コード11では、位置補正パターンは、決められたセルの組合せからなるブロック(位置補正ブロック)を実データの代わりに等間隔に配置する。ブロックの中心1セルを暗、その周囲を明にしたブロックを、ブロック座標(7n,7m)(n,mは0以上の整数)がデータ部であれば配置する。ただし、その座標に、位置検出ブロック、バージョン情報ブロック、フォーマット情報ブロック、絵柄埋込情報ブロック及び絵柄が存在すべき時は、配置しない。ここでは、ブロック座標は、ブロックの左上の座標基準座標を(0,0)とし、右隣のブロックを(1,0)と表現している。なお、位置補正パターンを設けるブロックは、上記に限られない。
実データは、メッセージと、メッセージを修飾するヘッダー(メッセージ種類(メッセージのエンコード)・メッセージサイズ)を合わせたセグメントを、メッセージ数だけ並べる。また特殊なセグメントとして、メッセージを含まない、終端フラグだけが入ったセグメントを用意し、実データの容量が余った場合に終端フラグのセグメントを配置し、その後に埋め草を配置する。実データはデータブロック種別データが示す1ブロック当たりのデータ容量に従い、ブロック単位に分割する。同様に誤り訂正符号も、ブロック単位に分割する。
誤り訂正符号にリードソロモン符号を使った場合、誤り訂正はワード単位で行われるため、1ワードを1ブロックとすることが望ましい。1ワードが複数のブロックにまたがる場合、1つのブロックに汚れが発生した場合でも、そのブロックが関係する全てのワードが誤り訂正の対象となり、訂正の効率が悪くなる。訂正原因となる汚れや、スポットライトによる色とびは、1箇所に集中することが多いが、ブロックにすることにより同時に訂正対象となるデータを1箇所にまとめる効果があり、効率的な訂正を可能にし、コードを認識させる可能性を高める。
図3は、図1の位置情報表示システムにおける基準位置関係情報の登録のフローチャートである。ここでは、識別コードが付された複数の物品としての四つの収納箱A,B,C,Dにそれぞれ貼り付けられた四つの識別コードを撮影した撮影画像に基づいて生成した基準位置関係情報を登録する場合について説明する。
先ず、カメラ1Aが物品を撮影する(ステップS1)。カメラ1Aが撮影した物品を含む画像を、ディスプレイ1Cの画面に表示することができる。図4は、基準位置関係情報を生成するために用いられる撮影画像の表示例を示す図である。図4において、画面30に表示される一つの撮影画像30’に含まれる物品31,32,33,34は、収納箱A,B,C,Dにそれぞれ対応し、印刷された識別コード31A,32A,33A,34Aが物品31,32,33,34にそれぞれ貼り付けられる。
識別コード31A,32A,33A,34Aはそれぞれ、収納箱A,B,C,Dのそれぞれの情報を画像としてコンピュータ1Bにより読取可能である。図4に示す例において画面30(撮影画像30’)の幅及び長さをそれぞれw,hとし、左上のコーナーの座標を原点O(すなわち、(0,0))とした場合、右上のコーナーAの座標、右下のコーナーBの座標及び左下のコーナーCの座標はそれぞれ、(w−1,0),(w−1,h−1)及び(0,h−1)で表される。
次に、コンピュータ1Bは、カメラ1Aが撮影した画像中の識別コード31A,32A,33A,34Aを認識し、認識した識別コード31A,32A,33A,34Aをそれぞれ識別コード情報に変換する。そして、コンピュータ1Bは、変換した識別コード情報に基づいて、識別コード31A,32A,33A,34Aの中心座標CA1(cxa1,cya1),CB1(cxb1,cyb1),CC1(cxc1,cyc1),CD1(cxd1,cyd1)をそれぞれ計算する(ステップS2)。図5は、識別コードの中心座標の算出を説明するための図である。図5に示す識別コードXは、図2に示す識別コードと同一の形式を有し、識別コード31A,32A,33A,34Aにそれぞれ対応する。
コンピュータ1Bは、撮影画像30’を解析することによって、識別コードXの位置検出パターンX0のコーナーP0の座標(px0,py0)、位置検出パターンXのコーナーP1の座標(px1,py1)、位置検出パターンX2のコーナーP2の座標(px2,py2)及び位置検出パターンX3のコーナーP3の座標(px3,py3)を取得することができる。
位置検出パターンXの中心座標C(cx,cy)を、コーナーP0,P1,P2,P3の座標、識別コードXの対角線上にあるコーナーP0,P2の座標、又は識別コードXの対角線上にあるコーナーP1,P3の座標から求めることができる。中心座標C(cx,cy)をコーナーP0,P1,P2,P3の座標から求める場合、中心座標Cのx座標cxは、(px0+px1+px2+px3)/4となり、中心座標Cのy座標cyは、(py0+py1+py2+py3)/4となる。また、中心座標C(cx,cy)を識別コードXの対角線上にあるコーナーP0,P2の座標から求める場合、中心座標Cのx座標cxは、(px0+px2)/2となり、中心座標Cのy座標cyは、(py0+py2)/2となる。
次に、コンピュータ1Bは、識別コード31A,32A,33A,34Aの中心座標CA1(cxa1,cya1),CB1(cxb1,cyb1),CC1(cxc1,cyc1),CD1(cxd1,cyd1)をそれぞれ、識別コード情報と同一のフォーマットの位置座標情報に変換し、識別コード情報及び位置座標情報をサーバ3に送信する(ステップS3)。
次に、コンピュータ3Bは、識別コード情報及び位置座標情報をコンピュータ1Bから受信する(ステップS4)。次に、コンピュータ3Bは、識別コード31A,32A,33A,34Aの中心座標CA1(cxa1,cya1),CB1(cxb1,cyb1),CC1(cxc1,cyc1),CD1(cxd1,cyd1)に基づいて基準位置関係情報を生成し(ステップS5)、生成した基準位置関係情報をデータベース3Aに登録し(ステップS6)、処理フローを終了する。
図6は、基準位置関係情報の一部の一例を示す図である。図6に示すように、基準位置関係情報は、識別コード、物品名及び中心座標との関係を表す表を有する。また、図6に示す表は、コンピュータ3Bにより識別コード情報及び位置座標情報に基づいて作成される。
本実施の形態では、基準位置関係情報は、図6に示す表の他に、基準位置関係にある識別コード31A,32A,33A,34Aが付された複数の物品31,32,33,34を撮影した画像に含まれる識別コード31A,32A,33A,34Aの中心座標CA1(cxa1,cya1),CB1(cxb1,cyb1),CC1(cxc1,cyc1),CD1(cxd1,cyd1)に基づいて決定される距離及び角度を有する。
図7は、基準位置関係にある物品の識別コードの中心座標に基づいて決定される距離を説明するための図である。コンピュータ3Bは、識別コード31Aの中心座標CA1(cxa1,cya1)と識別コード32Aの中心座標CB1(cxb1,cyb1)との距離ABを、以下の式に基づいて計算する。
また、コンピュータ3Bは、識別コード31Aの中心座標CA1(cxa1,cya1)と識別コード33Aの中心座標CC1(cxc1,cyc1)との距離ACを、以下の式に基づいて計算する。
さらに、コンピュータ3Bは、識別コード31Aの中心座標CA1(cxa1,cya1)と識別コード34Aの中心座標CD1(cxd1,cyd1)との距離ADを、以下の式に基づいて計算する。
図7に示す例において、距離AB、距離AC及び距離ADとの間には、AC<AB<ADの関係が成立する。
図8は、基準位置関係にある物品の識別コードの中心座標に基づいて決定される角度を説明するための図である。コンピュータ3Bは、水平線Hと識別コード31Aの中心座標CA1(cxa1,cya1)及び識別コード32Aの中心座標CB1(cxb1,cyb1)を結ぶ直線とが成す角度θABを、以下の式に基づいて計算する。
また、コンピュータ3Bは、水平線Hと識別コード31Aの中心座標CA1(cxa1,cya1)及び識別コード33Aの中心座標CC1(cxc1,cyc1)を結ぶ直線とが成す角度θACを、以下の式に基づいて計算する。
さらに、水平線Hと識別コード31Aの中心座標CA1(cxa1,cya1)及び識別コード34Aの中心座標CD1(cxd1,cyd1)を結ぶ直線とが成す角度θADを、以下の式に基づいて計算する。
図8に示す例において、角度θAB、角度θAC及び角度θADとの間には、θAB<θAD<θACの関係が成立する。
図9及び図10は、図1の位置情報表示システムの動作のフローチャートである。ここでは、識別コードが付された複数の物品としての四つの収納箱A,B,C,Dにそれぞれ貼り付けられた四つの識別コードを撮影した撮影画像に基づいて撮影物品位置関係情報を生成する場合について説明する。
先ず、カメラ1Aが物品を撮影する(ステップS11)。次に、カメラ1Aが撮影した物品を含む画像をディスプレイ1Cの画面に表示する(ステップS12)。図11は、撮影物品位置関係情報を生成するために用いられる撮影画像の表示例を示す図である。図11において、画面30に表示される一つの撮影画像30aには、印刷された識別コード31A,32A,33A,34Aがそれぞれ貼り付けられた物品31,32,33,34が含まれる。
次に、コンピュータ1Bは、カメラ1Aが撮影した画像中の識別コード31A,32A,33A,34Aを認識し、認識した識別コード31A,32A,33A,34Aをそれぞれ識別コード情報に変換する。そして、コンピュータ1Bは、変換した識別コード情報に基づいて、識別コード31A,32A,33A,34Aの中心座標CA1’(cxa1’,cya1’),CB1’(cxb1’,cyb1’),CC1’(cxc1’,cyc1’),CD1’(cxd1’,cyd1’)をそれぞれ計算する(ステップS13)。
次に、コンピュータ1Bは、識別コード31A,32A,33A,34Aの中心座標CA1’(cxa1’,cya1’),CB1’(cxb1’,cyb1’),CC1’(cxc1’,cyc1’),CD1’(cxd1’,cyd1’)をそれぞれ、識別コード情報と同一のフォーマットの位置座標情報に変換し、識別コード情報及び位置座標情報をサーバ3に送信する(ステップS14)。
次に、コンピュータ3Bは、識別コード情報及び位置座標情報をコンピュータ1Bから受信する(ステップS15)。次に、コンピュータ3Bは、識別コード31A,32A,33A,34Aの中心座標CA1’(cxa1’,cya1’),CB1’(cxb1’,cyb1’),CC1’(cxc1’,cyc1’),CD1’(cxd1’,cyd1’)に基づいて撮影物品位置関係情報を生成する(ステップS16)。
図12は、撮影物品位置関係情報の一部の一例を示す図である。図12に示すように、撮影物品位置関係情報は、識別コード、物品名及び中心座標との関係を表す表を有する。また、図12に示す表は、コンピュータ3Bにより識別コード情報及び位置座標情報に基づいて作成される。
本実施の形態では、撮影物品位置関係情報は、図12に示す表の他に、撮影物品位置関係にある識別コード31A,32A,33A,34Aが付された複数の物品31,32,33,34を撮影した画像に含まれる識別コード31A,32A,33A,34Aの中心座標CA1’(cxa1’,cya1’),CB1’(cxb1’,cyb1’),CC1’(cxc1’,cyc1’),CD1’(cxd1’,cyd1’)に基づいて決定される距離及び角度を有する。
図13は、撮影物品位置関係にある物品の識別コードの中心座標に基づいて決定される距離を説明するための図である。コンピュータ3Bは、識別コード31Aの中心座標CA1’(cxa1’,cya1’)と識別コード32Aの中心座標CB1’(cxb1’,cyb1’)との距離AB’を、以下の式に基づいて計算する。
また、コンピュータ3Bは、識別コード31Aの中心座標CA1’(cxa1’,cya1’)と識別コード33Aの中心座標CC1’(cxc1’,cyc1’)との距離AC’を、以下の式に基づいて計算する。
さらに、コンピュータ3Bは、識別コード31Aの中心座標CA1’(cxa1’,cya1’)と識別コード34Aの中心座標CD1’(cxd1’,cyd1’)と距離AD’を、以下の式に基づいて計算する。
図13に示す例において、距離AB’、距離AC’及び距離ADとの間には、AC’<AB’<AD’の関係が成立する。
図14は、撮影物品位置関係にある物品の識別コードの中心座標に基づいて決定される角度を説明するための図である。コンピュータ3Bは、水平線Hと識別コード31Aの中心座標CA1’(cxa1’,cya1’)及び識別コード32Aの中心座標CB1’(cxb1’,cyb1’)を結ぶ直線とが成す角度θAB’を、以下の式に基づいて計算する。
また、コンピュータ3Bは、水平線Hと識別コード31Aの中心座標CA1’(cxa1’,cya1’)及び識別コード33Aの中心座標CC1’(cxc1’,cyc1’)を結ぶ直線とが成す角度θAC’を、以下の式に基づいて計算する。
さらに、水平線Hと識別コード31Aの中心座標CA1’(cxa1’,cya1’)及び識別コード34Aの中心座標CD1’(cxd1’,cyd1’)を結ぶ直線とが成す角度θAD’を、以下の式に基づいて計算する。
図14に示す例において、角度θAB’、角度θAC’及び角度θAD’との間には、θAB’<θAD’<θAC’の関係が成立する。
次に、コンピュータ3Bは、基準位置関係情報に含まれる距離AB,AC,ADの関係及び角度θAB,θAC,θADの関係と撮影物品位置関係情報に含まれる距離AB’,AC’,AD’ の関係及び角度θAB’,θAC’,θAD’ の関係を照合し、照合結果を表すオーバーレイ情報を生成する(ステップS17)。更に詳しく説明すると、AC’<AB’<AD’の関係及びθAB’<θAD’<θAC’の関係が成立する場合には、コンピュータ3Bは、照合結果として、コンピュータ1Bが抽出した識別コード31A,32A,33A,34Aに対応する物品31,32,33,34がそれぞれ収納箱A、収納箱B、収納箱C及び収納箱Dを表すオーバーレイ情報を生成する。それに対し、AC’<AB’<AD’の関係又はθAB’<θAD’<θAC’の関係が成立しない場合には、コンピュータ1Bが抽出した識別コード31A,32A,33A,34Aに対応する物品31,32,33,34がそれぞれ収納箱A、収納箱B、収納箱C及び収納箱Dを表すオーバーレイ情報及び基準位置関係から撮影物品位置関係への変化を表すオーバーレイ情報を生成する。
次に、コンピュータ3Bは、オーバーレイ情報をコンピュータ1Bに送信する(ステップS18)。次に、コンピュータ1Bは、物品のオーバーレイ情報をコンピュータ3Bから受信する(ステップS19)。コンピュータ1Bは、物品のオーバーレイ情報を撮影画像30aに重畳して表示し(ステップS20)、処理フローを終了する。
図15は、基準位置関係情報と撮影物品位置関係情報を照合後にオーバーレイ情報を重畳した撮影画像の表示例を示す図である。図15に示す表示画面30には、物品31が収納箱Aであることを示すオーバーレイ情報31B、物品32が収納箱Bであることを示すオーバーレイ情報32B、物品33が収納箱Cであることを示すオーバーレイ情報33B及び物品34が収納箱Dであることを示すオーバーレイ情報34Bが、識別コード31A,32A,33A,34Aにそれぞれ対応付けて表示される。
図16は、基準位置関係情報と撮影物品位置関係情報を照合後にオーバーレイ情報を重畳した撮影画像の他の表示例を示す図である。図16に示す表示画面30に表示された撮影画像30bには、物品31,32,33,34が含まれ、撮影画像30bに含まれる物品31及び物品32の配置は、基準位置関係情報によって表される物品31及び物品32の配置とは異なる。
この場合、コンピュータ3Bは、AD’<AB’<AC’の関係及びθAB’<θAC’<θAD’の関係に基づいて、撮影画像30bに含まれる物品31及び物品32の配置が基準位置関係情報によって表される物品31及び物品32の配置とは異なると判断し、収納箱Aと収納箱Bの配置が違う旨の表示及び矢印からなるオーバーレイ情報35を生成し、生成したオーバーレイ情報35が、表示画面30に表示される。
図17は、基準位置関係情報と撮影物品位置関係情報を照合後にオーバーレイ情報を重畳した撮影画像の他の表示例を示す図である。図17に示す表示画面30に表示された撮影画像30cには、物品31,33,34が含まれる。
この場合、コンピュータ3Bは、AD’<AC’の関係及びθAC’<θAD’の関係に基づいて、撮影画像30cに物品32が含まれないと判断し、収納箱Bが不足している旨の表示及び矢印からなるオーバーレイ情報36を生成し、生成したオーバーレイ情報36が、表示画面30に表示される。
図18は、リスト形式の基準位置関係情報の一例を示す図である。図18に示す基準位置関係情報は、基準位置関係を示すリストとしての一つの棚に書籍1、書籍2、書籍3、書籍4及び書籍5が並べられるリストであり、コンピュータ1Bによって作成され、作成されたリストは、データベース3Aに登録される。
図19は、リスト形式の基準位置関係情報に関連して撮影物品位置関係情報を生成するために用いられる撮影画像の表示例を示す図である。図19において、画面30に表示される一つの撮影画像30dには、印刷された識別コード41A,42A,43A,44A,45Aがそれぞれ貼り付けられた物品41,42,43,44,45が含まれ、物品41,42,43,44,45は、図18に示すリストの書籍1、書籍2、書籍3、書籍4及び書籍5にそれぞれ対応する。
識別コード41A,42A,43A,44A,45Aの中心座標をそれぞれCA2’(cxa2’,cya2’),CB2’(cxb2’,cyb2’),CC2’(cxc2’,cyc2’),CD2’(cxd2’,cyd2’),CE2’(cxe2’,cye2’)とし、識別コード41Aの中心座標CA2’と識別コード42Aの中心座標CB2’との間の距離、識別コード41Aの中心座標CA2’と識別コード43Aの中心座標CC2’との間の距離、識別コード41Aの中心座標CA2’と識別コード44Aの中心座標CD2’との間の距離、及び識別コード41Aの中心座標CA2’と識別コード45Aの中心座標CE2’との間の距離をそれぞれA,B,C,Dとした場合、図19に示す撮影画像10dにおいては、図18に示す基準位置関係情報に対応するA<B<C<Dの関係が成立する。
図20は、リスト形式の基準位置関係情報と撮影物品位置関係情報を照合後にオーバーレイ情報を重畳した撮影画像の表示例を示す図である。図20に示す表示画面30には、物品41が書籍1であることを示すオーバーレイ情報41B、物品42が書籍2であることを示すオーバーレイ情報42B、物品43が書籍3であることを示すオーバーレイ情報43B、物品44が書籍4であることを示すオーバーレイ情報44B及び物品45が書籍5であることを示すオーバーレイ情報45Bが、識別コード41A,42A,43A,44A,45Aにそれぞれ対応付けて表示される。
図21は、リスト形式の基準位置関係情報と撮影物品位置関係情報を照合後にオーバーレイ情報を重畳した撮影画像の表示例を示す図である。図21に示す表示画面30に表示された撮影画像30eには、物品41,42,43,44,45が含まれ、撮影画像30bに含まれる物品44及び物品45の配置は、図18に示す基準位置関係情報によって表される物品44及び物品45の配置とは異なる。
この場合、コンピュータ3Bは、A<B<C<E<Dの関係に基づいて、撮影画像30eに含まれる物品44及び物品45の配置が図18に示す基準位置関係情報によって表される物品44及び物品45の配置とは異なると判断し、書籍4と書籍5の配置が違う旨の表示のオーバーレイ情報46A及び矢印からなるオーバーレイ情報46B,46Cを生成し、生成したオーバーレイ情報46A,46B,46Cが、表示画面10に表示される。
図22は、基準位置関係情報を生成するために用いられる撮影画像の他の表示例を示す図である。図22において、画面30に表示される一つの撮影画像30fに含まれる物品51,52,53は、歯車A、歯車B及び歯車Cにそれぞれ対応し、印刷された識別コード51A,52A,53Aが物品51,52,53にそれぞれ貼り付けられる。
この場合、コンピュータ3Bは、撮影画像30fに含まれる識別コード51A,52A,53Aの中心座標CA3(cxa3,cya3),CB3(cxb3,cyb3),CC3(cxc3,cyc3)に基づいて、識別コード51Aの中心座標CA3と識別コード52Aの中心座標CB3との間の距離A’、識別コード52Aの中心座標CB3と識別コード53Aの中心座標CC3との間の距離B’及び識別コード53Aの中心座標CC3と識別コード51Aの中心座標CA3との間の距離C’を計算し、計算した距離A’,B’,C’を、基準位置関係情報に含ませる。ここで、距離A’,B’,C’は互いに異なる値を有するものとする。
図23は、図22に示す撮影画像を用いて生成した基準位置関係情報に関連して撮影物品位置関係情報を生成するために用いられる撮影画像の表示例を示す図である。図23において、画面30に表示される一つの撮影画像30gに含まれる物品51,52,53は、歯車A、歯車B及び歯車Cにそれぞれ対応し、印刷された識別コード51A,52A,53Aが物品51,52,53にそれぞれ貼り付けられる。
この場合、コンピュータ3Bは、撮影画像30gに含まれる識別コード51A,52A,53Aの中心座標CA3’(cxa3’,cya3’),CB3’(cxb3’,cyb3’),CC3’(cxc3’,cyc3’)に基づいて、識別コード51Aの中心座標CA3’と識別コード52Aの中心座標CB3’との間の距離A”、識別コード52Aの中心座標CB3’と識別コード53Aの中心座標CC3’との間の距離B”及び識別コード53Aの中心座標CA3’と識別コード51Aの中心座標CA3’との間の距離C”を計算し、計算した距離A”,B”,C”を、撮影物品位置関係情報に含ませる。
そして、コンピュータ3Bは、距離A’,B’,C’がそれぞれ距離A”,B”,C”と一致するか否か判断する。距離A’,B’,C’がそれぞれ距離A”,B”,C”と一致する場合、図24に示すように、表示画面30には、物品51が歯車Aであることを示すオーバーレイ情報51B、物品52が歯車Bであることを示すオーバーレイ情報52B及び物品53が歯車Cであることを示すオーバーレイ情報53Bが、識別コード51A,52A,53Aにそれぞれ対応付けて表示される。また、歯車A,B,Cが一致する旨を表すオーバーレイ情報54も表示画面30に表示される。
距離A’,B’,C’がそれぞれ距離A”,B”,C”と一致しない場合、例えば、距離A’,B’,C’がそれぞれ距離A”,C”,B”と一致する場合、図25に示すように、コンピュータ3Bは、撮影画像30hに含まれる物品51及び物品52の配置が基準位置関係情報によって表される物品51及び物品52の配置とは異なると判断し、歯車A,B,Cが一致しない旨を表すオーバーレイ情報54A、歯車Aと歯車Bの配置が違う旨を表すオーバーレイ情報54B及び矢印からなるオーバーレイ情報54Cを生成し、生成したオーバーレイ情報54A,54B,54Cが、表示画面30に表示される。
本実施の形態によれば、コンピュータ3Bは、識別コードが付された複数の物品の予め決定された基準位置関係と撮影した画像中の識別コードが付された複数の物品の撮影物品位置関係の両方を把握している。したがって、コンピュータ3Bは、画像として読取可能な識別コードが付された複数の物品の位置関係を表示部の画面上で簡単に把握することができる。
また、画像として読取可能な識別コードが付された複数の物品の予め決定された基準位置関係を示す基準位置関係情報に基づいて複数の物品の位置関係を管理することができるので、複数の物品を棚等の正確な位置に配置できなくても複数の物品を正確に管理することができる。
また、RFIDタグを用いた管理システムのようにRFIDタグ、アンテナ等を使う必要も大規模な設備を設ける必要がないので、位置情報表示システムを廉価に構成することができる。
また、識別コードに含まれる情報と識別コードの位置情報からなる基準位置関係情報を一括して登録することができ、かつ、正しく配置されていない物品の正しい配置を表示することができる。
さらに、基準位置関係情報に含まれる距離と撮影物品位置関係情報に含まれる距離を照合した場合には、識別コードを付した物品が回転等しているときでも照合が可能になる。
本発明は、上記実施の形態に限定されるものではなく、幾多の変更及び変形が可能である。例えば、データベースをサーバの代わりに端末に設けることもできる。また、基準位置関係情報を、2列以上のリスト又は撮影画像それ自体とすることもできる。
また、照合の際には、識別コードを解析して得られた位置座標、当該位置座標に基づいて決定される距離及び当該位置情報に基づいて決定される角度のうちの少なくとも一方を用いればよい。照合の際に位置座標を用いる場合には、基準位置関係情報に含まれる所定の位置座標(例えば、一つの識別コードに含まれる位置検出パターンの四つのコーナーの座標)が撮影物品位置関係情報に含まれる対応する位置座標に完全に一致するように撮影物品位置関係情報に含まれる位置座標の座標変換を行う。この場合、基準位置関係情報に含まれる位置座標が撮影物品位置関係情報に含まれる対応する位置座標に完全に一致するときの他に、基準位置関係情報に含まれる位置座標に対する撮影物品位置関係情報に含まれる対応する位置座標の誤差が所定の値未満(例えば、5%未満)であるときには物品が正しい位置にあると判断してもよい。
また、照合の際に距離を用いる場合には、基準位置関係情報に含まれる距離が撮影物品位置関係情報に含まれる対応する距離に完全に一致するときの他に、基準位置関係情報に含まれる距離に対する撮影物品位置関係情報に含まれる対応する距離の誤差が所定の値未満(例えば、5%未満)であるときには物品が正しい位置にあると判断してもよい。
また、照合の際に角度を用いる場合には、基準位置関係情報に含まれる角度が撮影物品位置関係情報に含まれる対応する角度に完全に一致するときの他に、基準位置関係情報に含まれる角度に対する撮影物品位置関係情報に含まれる対応する角度の誤差が所定の値未満(例えば、5%未満)であるときには物品が正しい位置にあると判断してもよい。
識別コードを解析して得られた位置座標として、識別コードの中心座標の代わりに、識別コードに含まれる位置検出パターンの任意の位置(例えば、位置検出パターンのコーナー)の座標、識別コードの上端から所定の距離(例えば、10画素)離れた位置の座標等を用いることができる。識別コードを解析して得られた位置座標の数は単数でも複数でもよい。