(57)【要約】  情報処理装置（２０００）は、変換部（２０２０）及び算出部（２０４０）を有する。変換部（２０２０）は、カメラ画像（１０）から複数のマーカを検出する。変換部（２０２０）は、検出されたマーカを、対応するサブ識別子情報に変換する。算出部（２０４０）は、変換部（２０２０）によって変換された複数のサブ識別子を用いて、識別子を算出する。
2018037666.tif 000002
【特許請求の範囲】
【請求項１】
画像の中から、第１識別子を表すマーカを複数検出し、各前記マーカを前記第１識別子に変換する変換手段と、
複数の前記第１識別子から第２識別子を算出する算出手段と、を有する情報処理装置。
【請求項２】
前記画像に含まれる複数のマーカをグループに分けるグルーピング手段を有し、
前記算出手段は、前記グループごとに、そのグループに含まれる複数の前記第１識別子から前記第２識別子を算出する、請求項１に記載の情報処理装置。
【請求項３】
前記グルーピング手段は、相対位置が所定の関係にある複数の前記マーカを同じグループに含める、請求項２に記載の情報処理装置。
【請求項４】
前記グルーピング手段は、相対距離が所定距離以下である複数の前記マーカを同じグループに含める、請求項３に記載の情報処理装置。
【請求項５】
前記グルーピング手段は、前記マーカ間の距離及び各前記マーカの向きに基づいて、同じグループに含める複数の前記マーカを決定する、請求項３に記載の情報処理装置。
【請求項６】
前記グルーピング手段は、各前記マーカについて、そのマーカから所定方向に所定距離離れた位置を算出し、前記算出された位置が互いに所定の関係を満たす複数の前記マーカを同じグループに含める、請求項５に記載の情報処理装置。
【請求項７】
各マーカには方向を特定できる方向情報が対応づけられており、
前記方向情報は前記画像に含まれており、
前記グルーピング手段は、前記方向情報を用いて各前記マーカの向きを特定する、請求項５又は６に記載の情報処理装置。
【請求項８】
前記方向情報は前記マーカに含まれる、請求項７に記載の情報処理装置。
【請求項９】
前記相対位置は、所定形状の辺又は頂点である、請求項３に記載の情報処理装置。
【請求項１０】
前記画像は、マーカのグループ分けを示すグループ分け情報を含み、
前記グルーピング手段は、前記グループ分け情報を用いて複数の前記マーカをグループに分ける、請求項２に記載の情報処理装置。
【請求項１１】
前記グループ分け情報は、同じグループに所属すべき前記マーカを囲む枠である、請求項１０に記載の情報処理装置。
【請求項１２】
前記枠は前記マーカの構成要素である、請求項１１に記載の情報処理装置。
【請求項１３】
前記グループ分け情報は、同じグループに所属すべき複数の前記マーカそれぞれの内部又は付近に設けられている共通のサブマーカである、請求項１０に記載の情報処理装置。
【請求項１４】
前記画像から検出される第１の前記マーカには、前記画像から検出される第２の前記マーカから変換される前記第１識別子に誤りがあるか否かを検出するための誤り検出情報が対応づけられており、
前記算出手段は、第１の前記マーカに対応づけられている前記誤り検出情報を用いて、第２の前記マーカから変換される前記第１識別子の誤りを検出する、請求項１乃至１３いずれか一つに記載の情報処理装置。
【請求項１５】
第１の前記マーカには、第２の前記マーカから検出される前記第１識別子の誤りを訂正するための誤り訂正情報が対応づけられており、
前記算出手段は、第１の前記マーカに対応づけられている前記誤り訂正情報を用いて、第２の前記マーカから変換される前記第１識別子の誤りを訂正する、請求項１４に記載の情報処理装置。
【請求項１６】
コンピュータによって実行される制御方法であって、
画像の中から、第１識別子を表すマーカを複数検出し、各前記マーカを前記第１識別子に変換する変換ステップと、
複数の前記第１識別子から第２識別子を算出する算出ステップと、を有する制御方法。
【請求項１７】
前記画像に含まれる複数のマーカをグループに分けるグルーピングステップを有し、
前記算出ステップにおいて、前記グループごとに、そのグループに含まれる複数の前記第１識別子から前記第２識別子を算出する、請求項１６に記載の制御方法。
【請求項１８】
前記グルーピングステップにおいて、相対位置が所定の関係にある複数の前記マーカを同じグループに含める、請求項１７に記載の制御方法。
【請求項１９】
前記グルーピングステップにおいて、相対距離が所定距離以下である複数の前記マーカを同じグループに含める、請求項１８に記載の制御方法。
【請求項２０】
前記グルーピングステップにおいて、前記マーカ間の距離及び各前記マーカの向きに基づいて、同じグループに含める複数の前記マーカを決定する、請求項１８に記載の制御方法。
【請求項２１】
前記グルーピングステップにおいて、各前記マーカについて、そのマーカから所定方向に所定距離離れた位置を算出し、前記算出された位置が互いに所定の関係を満たす複数の前記マーカを同じグループに含める、請求項２０に記載の制御方法。
【請求項２２】
各マーカには方向を特定できる方向情報が対応づけられており、
前記方向情報は前記画像に含まれており、
前記グルーピングステップにおいて、前記方向情報を用いて各前記マーカの向きを特定する、請求項２０又は２１に記載の制御方法。
【請求項２３】
前記方向情報は前記マーカに含まれる、請求項２２に記載の制御方法。
【請求項２４】
前記相対位置は、所定形状の辺又は頂点である、請求項１８に記載の制御方法。
【請求項２５】
前記画像は、マーカのグループ分けを示すグループ分け情報を含み、
前記グルーピングステップにおいて、前記グループ分け情報を用いて複数の前記マーカをグループに分ける、請求項１７に記載の制御方法。
【請求項２６】
前記グループ分け情報は、同じグループに所属すべき前記マーカを囲む枠である、請求項２５に記載の制御方法。
【請求項２７】
前記枠は前記マーカの構成要素である、請求項２６に記載の制御方法。
【請求項２８】
前記グループ分け情報は、同じグループに所属すべき複数の前記マーカそれぞれの内部又は付近に設けられている共通のサブマーカである、請求項２５に記載の制御方法。
【請求項２９】
前記画像から検出される第１の前記マーカには、前記画像から検出される第２の前記マーカから変換される前記第１識別子に誤りがあるか否かを検出するための誤り検出情報が対応づけられており、
前記算出ステップにおいて、第１の前記マーカに対応づけられている前記誤り検出情報を用いて、第２の前記マーカから変換される前記第１識別子の誤りを検出する、請求項１６乃至１８いずれか一つに記載の制御方法。
【請求項３０】
第１の前記マーカには、第２の前記マーカから検出される前記第１識別子の誤りを訂正するための誤り訂正情報が対応づけられており、
前記算出ステップにおいて、第１の前記マーカに対応づけられている前記誤り訂正情報を用いて、第２の前記マーカから変換される前記第１識別子の誤りを訂正する、請求項２９に記載の制御方法。
【請求項３１】
請求項１６乃至３０いずれか一つに記載の制御方法の各ステップをコンピュータに実行させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置、制御方法、及びプログラムに関する。
【背景技術】
【０００２】
カメラ画像からマーカを検出する技術が開発されている。例えば AR（Augmented Reality）の分野では、「カメラ画像から AR マーカを検出し、カメラ画像に対してその AR マーカに対応する仮想オブジェクトを重畳させてディスプレイに表示する」といった処理が行われる。【０００３】
カメラ画像からマーカを検出する処理には、オブジェクト検出処理が利用される。オブジェクト検出処理では、例えばテンプレートマッチングや特徴量マッチングなどの技術が用いられる。テンプレートマッチングでは、マーカを表すテンプレート画像にマッチする画像領域をカメラ画像から検出することにより、マーカの検出が行われる。また、特徴量マッチングでは、マーカの特徴量にマッチする特徴量を持つ画像領域をカメラ画像から検出することにより、マーカの検出が行われる。【０００４】
カメラ画像からマーカを検出する技術は、例えば特許文献１に開示されている。特許文献１の表示装置は、テンプレートマッチングを用いて、撮影画像からマーカ画像を検出する。さらに、表示装置は、検出されたマーカ画像に関連づけられている仮想オブジェクトを撮像画像に重ねて表示する。【０００５】
マーカは、物の識別にも利用されている。例えば特許文献２は、紙メディアの紙面上にその紙メディアの識別子を表すマーカを付しておくことにより、マーカを用いて紙メディアを識別する技術を開示している。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２０１５−１５３０４６号公報
【特許文献２】特開２０１６−１２２２７１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
マーカを用いて物を識別する場合、識別したい物の数に比例してマーカの種類が多くなる。例えば、１００個の製品をマーカで識別したい場合には、互いに異なる１００種類のマーカが必要となる。一方、１０００個の製品をマーカで識別したい場合には、互いに異なる１０００種類のマーカが必要となる。【０００８】
そして、マーカの種類が多くなると、カメラ画像からマーカを検出する処理の負荷が高くなる。これは、カメラ画像に対し、複数のマーカそれぞれの検出を試みる処理が行われるためである。例えば、マーカが１０００種類ある場合に、テンプレートマッチングを用いてカメラ画像に含まれるマーカを認識する処理を実行するとする。この場合、１０００個のテンプレート画像それぞれについて、テンプレート画像にマッチする領域をカメラ画像から検出する処理が実行される。【０００９】
本発明は、上記の課題に鑑みてなされたものである。本発明の目的の一つは、カメラ画像からマーカを検出する処理の負荷を軽減する技術を提供することである。
【課題を解決するための手段】
【００１０】
本発明の情報処理装置は、（１）画像の中から、第１識別子を表すマーカを複数検出し、各前記マーカを前記第１識別子に変換する変換手段と、（２）複数の前記第１識別子から第２識別子を算出する算出手段と、を有する。【００１１】
本発明の制御方法は、コンピュータによって実行される。
当該制御方法は、（１）画像の中から、第１識別子を表すマーカを複数検出し、各前記マーカを前記第１識別子に変換する変換ステップと、（２）複数の前記第１識別子から第２識別子を算出する算出ステップと、を有する。【００１２】
本発明のプログラムは、本発明の制御方法の各ステップをコンピュータに実行させる。
【発明の効果】
【００１３】
本発明によれば、カメラ画像からマーカを検出する処理の負荷を軽減する技術が提供される。
【図面の簡単な説明】
【００１４】
上述した目的、およびその他の目的、特徴および利点は、以下に述べる好適な実施の形態、およびそれに付随する以下の図面によってさらに明らかになる。【００１５】
【図１】実施形態１の情報処理装置を例示するブロック図である。
【図２】情報処理装置によって実行される処理を概念的に説明するための図である。
【図３】情報処理装置を実現するための計算機を例示する図である。
【図４】実施形態１の情報処理装置によって実行される処理の流れを例示するフローチャートである。
【図５】マーカ間のスペースが図２のケースよりも小さい例を例示する図である。
【図６】マーカの間のスペースを有効活用する例を示す図である。
【図７】マーカがトレーの４隅に配置されるケースを例示する図である。
【図８】情報量が異なる２つのマーカによって１つの識別子を表すケースを例示する図である。
【図９】テンプレートマッチングに利用されるサブ識別子情報をテーブル形式で表す図である。
【図１０】特徴量マッチングに利用されるサブ識別子情報をテーブル形式で表す図である。
【図１１】マーカの付近にサブ識別子の結合順序を示す数値が示されている様子を例示する図である。
【図１２】実施形態２の情報処理装置を例示するブロック図である。
【図１３】実施形態２の情報処理装置によって扱われるカメラ画像を例示する図である。
【図１４】距離に基づいてマーカをグループに分ける方法を例示する第１の図である。
【図１５】距離に基づいてマーカをグループに分ける方法を例示する第２の図である。
【図１６】マーカ間の距離及びマーカの向きに基づくグループ分けを例示する第１の図である。
【図１７】マーカ間の距離及びマーカの向きに基づくグループに分けを例示する第２の図である。
【図１８】マーカ間の距離及びマーカの向きに基づくグループ分けを例示する第３の図である。
【図１９】マーカの付近に設けられている方向情報を例示する図である。
【図２０】向きの特定が可能なマーカを例示する図である。
【図２１】マーカの位置を頂点として扱うことで所定の形状が構成される例を示す図である。
【図２２】マーカで特定される辺によって所定の形状が構成される例を示す図である。
【図２３】枠を表すグループ分け情報を用いてグループ分けを行う方法を例示する図である。
【図２４】マーカの構成要素が他のマーカを囲む枠となるケースを例示する図である。
【図２５】マーカの内部に設けられたサブマーカを用いてマーカのグループ分けを行う方法を例示する図である。
【図２６】実施形態２の情報処理装置によって実行される処理の流れを例示するフローチャートである。
【図２７】マーカと誤り検出情報との対応付けを例示する図である。
【発明を実施するための形態】
【００１６】
以下、本発明の実施の形態について、図面を用いて説明する。尚、すべての図面において、同様な構成要素には同様の符号を付し、適宜説明を省略する。また各ブロック図において、特に説明がない限り、各ブロックは、ハードウエア単位の構成ではなく機能単位の構成を表している。
【００１７】
［実施形態１］
図１は、実施形態１の情報処理装置２０００を例示するブロック図である。情報処理装置２０００は、カメラ画像の中から、第１識別子を表すマーカを検出する。カメラ画像は、カメラによって撮像された景色を含む画像である。マーカは、カメラで撮像することができる任意の印である。そして、情報処理装置２０００は、検出された各マーカによって表される第１識別子を用いて、１つの第２識別子を算出する。以下、第１識別子をサブ識別子と表記する。また、第２識別子を単に識別子と表記する。
【００１８】
図２は、情報処理装置２０００によって実行される処理を概念的に説明するための図である。カメラ画像１０は、情報処理装置２０００によって扱われるカメラ画像である。この例において、マーカはバーコード２０である。バーコード以外のマーカの例については後述する。カメラ画像１０には、３つのバーコード２０が含まれる。各バーコード２０は、１から９のいずれかのサブ識別子を表すものであるとする。なお、図２においてバーコード２０を囲んでいる点線は、説明のために図示されているものであり、実際にはカメラ画像１０に含まれていない。この点線については、以降の図においても同様である。
【００１９】
バーコード２０−１からバーコード２０−３は、その組み合わせによって１つの識別子を表す。この例では、バーコード２０−１に対応するサブ識別子、バーコード２０−２に対応するサブ識別子、及びバーコード２０−３に対応するサブ識別子をこの順に結合することにより、１つの識別子が算出されるとする。
【００２０】
まず情報処理装置２０００は、カメラ画像１０から、バーコード２０−１、バーコード２０−２、及びバーコード２０−３をそれぞれ検出する。さらに情報処理装置２０００は、これらのマーカによって表されるサブ識別子を用いて、１つの識別子を算出する。ここで、バーコード２０−１によって表されるサブ識別子が「１」であり、バーコード２０−２によって表されるサブ識別子が「５」であり、バーコード２０−３によって表されるサブ識別子が「６」であるとする。すると、情報処理装置２０００は、「１５６」という識別子を算出する。
【００２１】
ここで、上述の例は、情報処理装置２０００に関する理解を容易にするための例示であり、情報処理装置２０００の動作は上述の例に限定されない。
【００２２】
情報処理装置２０００は、変換部２０２０及び算出部２０４０を有する。変換部２０２０は、カメラ画像１０からマーカを検出する。変換部２０２０は、検出されたマーカを、対応するサブ識別子に変換する。
【００２３】
算出部２０４０は、複数のサブ識別子を用いて識別子を算出する。識別子は、複数のサブ識別子に基づいて算出可能な識別子である。例えば識別子は、複数のサブ識別子を所定の順序で結合することで算出される。図２の例の場合、「１」、「５」、及び「６」というサブ識別子をこの順序で結合することにより、「１５６」という識別子が算出される。
【００２４】
なお、サブ識別子から識別子を算出する方法は、上記の方法に限定されない。識別子の算出方法の詳細については後述する。
【００２５】
＜作用・効果＞
このように、本実施形態の情報処理装置２０００が扱う識別子は、複数のマーカそれぞれによって表されるサブ識別子の組み合わせを用いて算出される。言い換えれば、１つの識別子に対し、複数のマーカの組み合わせが対応する。こうすることで、１つの識別子を１つのマーカで表す場合と比較し、カメラ画像１０からマーカを検出する処理の負荷が小さくなる。
【００２６】
例えば、マーカを使って１０００個の製品を識別したいとする。この場合に、各製品の識別子に対して１つのマーカを対応づけるとする。つまり、１０００種類のマーカを使って製品の識別が行われる。この場合、カメラ画像１０からマーカを検出する装置は、１０００種類のマーカそれぞれの検出を試みる。例えばテンプレートマッチングを用いてカメラ画像１０からマーカを検出するためには、１０００個のテンプレート画像それぞれについて、テンプレートマッチングの処理が必要となる。
【００２７】
一方、１０００個の製品それぞれの識別子を、３つのマーカを使って表すとする。例えば「００」〜「０９」のいずれかを表すマーカ、「１０」〜「１９」のいずれかを表すマーカ、及び「２０」〜「２９」のいずれかを表すマーカを利用する。この３つのマーカの組み合わせを用いれば、「１０通り×１０通り×１０通り＝１０００通り」の識別子を表現できる。つまり、３０種類のマーカで１０００個の製品を識別することができる。
【００２８】
このように、複数のマーカの組み合わせで１つの識別子を表すことにより、識別に必要なマーカの総数を減らすことができる。そのため、１つのマーカで１つの識別子を表す場合と比較し、マーカを検出する処理の負荷が小さくなる。
【００２９】
例えば上述の例の場合、カメラ画像１０からマーカを検出するために必要な処理は、３０個のテンプレート画像それぞれについてのテンプレートマッチングである。よって、１０００個のテンプレート画像それぞれについてテンプレートマッチングを行わなければならない場合よりも、マーカを検出する処理の負荷が小さい。
【００３０】
また、マーカの総数を減らせることには、マーカの事前登録に要する手間を削減できるというメリットもある。例えばテンプレートマッチングでマーカを検出する場合、各マーカのテンプレート画像を予めデータベースなどに登録しておく必要がある。マーカの総数が減れば、テータベースなどへ登録しておかなければならないマーカの総数も減る。よって、マーカの事前登録に要する手間が少なくなる。
【００３１】
以下、本実施形態についてさらに詳細を述べる。
【００３２】
＜情報処理装置２００００を実現するハードウエアの例＞
情報処理装置２０００の各機能構成部は、各機能構成部を実現するハードウエア（例：ハードワイヤードされた電子回路など）で実現されてもよいし、ハードウエアとソフトウエアとの組み合わせ（例：電子回路とそれを制御するプログラムの組み合わせなど）で実現されてもよい。
【００３３】
図３は、情報処理装置２０００を実現するための計算機１０００を例示する図である。計算機１０００は任意の計算機である。例えば計算機１０００は、携帯端末（タブレット端末やスマートフォン）、Personal Computer（PC）、又はサーバマシンなどである。計算機１０００は、情報処理装置２０００を実現するために設計された専用の計算機であってもよいし、汎用の計算機であってもよい。
【００３４】
計算機１０００は、バス１０２０、プロセッサ１０４０、メモリ１０６０、ストレージデバイス１０８０、入出力インタフェース１１００、及びネットワークインタフェース１１２０を有する。バス１０２０は、プロセッサ１０４０、メモリ１０６０、ストレージデバイス１０８０、入出力インタフェース１１００、及びネットワークインタフェース１１２０が、相互にデータを送受信するためのデータ伝送路である。ただし、プロセッサ１０４０などを互いに接続する方法は、バス接続に限定されない。
【００３５】
プロセッサ１０４０は、CPU（Central Processing Unit）や GPU（Graphics Processing Unit）などの演算処理装置である。メモリ１０６０は、RAM（Random Access Memory）などを用いて実現されるメモリである。ストレージデバイス１０８０は、ハードディスク、SSD（Solid State Drive）、ROM（Read Only Memory）、又はフラッシュメモリなどを用いて実現されるストレージデバイスである。
【００３６】
入出力インタフェース１１００は、計算機１０００を周辺デバイスと接続するためのインタフェースである。ネットワークインタフェース１１２０は、計算機１０００を通信網に接続するためのインタフェースである。ネットワークインタフェース１１２０が通信網に接続する方法は、無線接続であってもよいし、有線接続であってもよい。
【００３７】
ストレージデバイス１０８０は、情報処理装置２０００の各機能を実現するためのプログラムモジュールを記憶している。プロセッサ１０４０は、このプログラムモジュールをメモリ１０６０に読み出して実行することで、情報処理装置２０００の各機能を実現する。
【００３８】
＜処理の流れ＞
図４は、実施形態１の情報処理装置２０００によって実行される処理の流れを例示するフローチャートである。変換部２０２０は、カメラ画像１０を取得する（Ｓ１０２）。変換部２０２０は、カメラ画像１０から複数のマーカを検出する（Ｓ１０４）。変換部２０２０は、各マーカをサブ識別子に変換する（Ｓ１０６）。算出部２０４０は、複数のサブ識別子から識別子を算出する（Ｓ１０８）。
【００３９】
＜カメラ画像１０について＞
カメラ画像１０は、カメラによって撮像された景色を含む画像である。カメラ画像１０は、カメラによって生成された非圧縮のカメラ画像であってもよいし、カメラによって生成された非圧縮のカメラ画像を圧縮することによって生成されたカメラ画像であってもよい。上記圧縮処理は、カメラによって行われてもよいし、カメラ以外の装置によって行われてもよい。
【００４０】
＜カメラ画像１０の取得：Ｓ１０２＞
変換部２０２０はカメラ画像１０を取得する（Ｓ１０２）。変換部２０２０がカメラ画像１０を取得する方法は任意である。例えば変換部２０２０は、カメラ画像１０が記憶されている記憶装置にアクセスして、カメラ画像１０を取得する。カメラ画像１０が記憶されている記憶装置は、カメラ画像１０を生成した装置（例えばカメラ）の内部に設けられていてもよいし、外部に設けられていてもよい。また変換部２０２０は、カメラ画像１０を生成した装置などによって送信されるカメラ画像１０を受信することで、カメラ画像１０を取得してもよい。
【００４１】
＜マーカについて＞
カメラ画像１０において、サブ識別子はマーカによって表されている。マーカは、カメラで撮像することができる任意の印である。例えばマーカは、サブ識別子を表す文字列（数値列を含む）である。この場合、マーカは、サブ識別子をそのまま表す文字列であってもよいし、サブ識別子とは異なる文字列であってもよい。
【００４２】
また例えば、マーカは、サブ識別子が符号化されたコードである。例えばこのコードは、バーコードや QR コード（登録商標）である。図２の例において、マーカはバーコードである。また例えば、マーカは、任意の記号や模様であってもよい。なお、マーカは、AR 技術で利用される AR マーカであってもよいし、それ以外のマーカであってもよい。
【００４３】
マーカによって表される情報には、サブ識別子以外の情報も含まれてよい。例えばマーカは、マーカが設けられる物の識別子を構成するサブ識別子に加え、その物のサイズや値段に関する情報などを含みうる。
【００４４】
マーカを設ける場所としては、任意の場所を採用することができる。例えばマーカは、製品（例えば電化製品）、製品の部品、食品、服飾品、書籍、又は文書（ポスターなど）の種々の動産に設けられる。またマーカは、上述した種々の動産を製造するための機械やこれらの動産の入れ物（包装や容器）に設けられてもよい。また例えば、マーカは、人の身体に描画されていてもよい。また例えば、マーカは、壁、床、又は柱などの不動産に設けられてもよい。
【００４５】
１つの識別子を表すために設けられる複数のマーカは、これらを互いに区別できる程度のスペースを空けて配置されればよく、そのスペースの大きさは任意である。図５は、マーカ間のスペースが図２のケースよりも小さい例を例示する図である。図５では、バーコード２０−１からバーコード２０−３によって１つの識別子が表されている。
【００４６】
図５の例のようにマーカ間のスペースを小さくすると、限られたスペースの中で各マーカを大きくできる。マーカが大きいと、カメラでマーカを撮像する際に、マーカから比較的離れた位置で撮像を行うことができる。また、マーカの撮像に用いるカメラに要求される解像度が低くなるため、マーカの撮像に必要なカメラを安価にすることができる。
【００４７】
一方で、マーカの間のスペースが大きくすると、マーカの間のスペースを有効活用できる。図６は、マーカの間のスペースを有効活用する例を示す図である。図６（ａ）では、１つの識別子を表す３つのマーカが、紙の隅に設けられている。このようにすることで、この紙に文書などを印字することができる。
【００４８】
図６（ｂ）では、１つの識別子を表すマーカが、トレーの縁に設けられている。そのため、このトレーに物が載せられている状態であっても、マーカを撮像することができる。
【００４９】
図６（ｂ）のトレーを利用するケースの例として、工場のラインにおいて部品を入れたトレーをベルトコンベアーで運搬するケースについて説明する。トレー単位で部品を管理するために、各トレーには識別子が与えられる。この際、各トレーの識別子を、トレーの縁に印字された複数のマーカで表すようにする。こうすれば、トレーに部品が入っている時（例えば、部品を入れたトレーがベルトコンベアーで運搬されている時）であっても、トレーを撮像してカメラ画像１０を生成することができる。
【００５０】
なお、トレーの縁にマーカを配置する方法の他の例として、例えば図７に示す配置なども採用しうる。図７は、マーカがトレーの４隅に配置されるケースを例示する図である。このようにマーカをトレーの隅に配置することで、図６（ｂ）のケースよりもマーカが目立ちにくくなっている。
【００５１】
一方、図６（ｂ）のケースでは、トレーの辺の部分にマーカを配置することで、図７のケースよりもマーカが大きくなっている。こうすることで、カメラ画像１０にマーカが大きく写るため、マーカの検出精度が高くなる。
【００５２】
１つの識別子を表すために利用されるマーカの数（サブ識別子の数）は任意である。例えば図６（ａ）では、１つの識別子を表すために３個のマーカが利用されている。一方で、図６（ｂ）の例では、１つの識別子を表すために４個のマーカが利用されている。
【００５３】
１つの識別子を表すために利用される複数のマーカそれぞれの情報量は、同じであってもよいし、異なっていてもよい。ここでいうマーカの情報量は、マーカによって表されるサブ識別子を用いて識別可能な物の数を意味する。マーカの情報量は、サブ識別子の情報量とも表現できる。
【００５４】
例えば、サブ識別子が１桁の数値（０から９）であるとする。この場合、サブ識別子によって識別できる物の数は１０個である。一方、サブ識別子が２桁の数値（００から９９）であるとする。この場合、サブ識別子によって識別できる物の数は１００個である。よって、後者のサブ識別子の方が前者のサブ識別子よりも情報量が多い。
【００５５】
マーカの大きさは、マーカの情報量が多いほど大きくすることが好適である。図８は、情報量が異なる２つのマーカによって１つの識別子を表すケースを例示する図である。ここで、バーコード２０−１によって表されるサブ識別子は１２３という３桁の数値である。一方、バーコード２０−２によって表されるサブ識別子は２５という２桁の数値である。よって、バーコード２０−１の情報量はバーコード２０−２の情報量よりも多い。そこで図８では、バーコード２０−１の大きさを、バーコード２０−２の大きさよりも大きくしている。
【００５６】
ただし、マーカの大きさとマーカの情報量との関係は、上述の関係に限定されない。例えば、マーカの情報量が多いほど、マーカの大きさを小さくするようにしてもよい。また、情報量にかかわらずマーカの大きさを同じにしてもよい。
【００５７】
＜マーカの検出とサブ識別子への変換：Ｓ１０４、Ｓ１０６＞
変換部２０２０は、カメラ画像１０の中からマーカを検出する（Ｓ１０４）。そして変換部２０２０は、検出されたマーカをサブ識別子に変換する（Ｓ１０６）。
【００５８】
例えば変換部２０２０は、サブ識別子情報を用いて、マーカの検出及びサブ識別子への変換を行う。サブ識別子情報は、マーカとサブ識別子とを対応づける情報である。サブ識別子情報の詳細については後述する。
【００５９】
マーカの検出には、例えばテンプレートマッチングや特徴量マッチングが利用される。以下、テンプレートマッチングと特徴量マッチングのそれぞれについて、具体的に説明する。
【００６０】
＜＜テンプレートマッチングについて＞＞
テンプレートマッチングを行う変換部２０２０は、テンプレート画像とサブ識別子とを対応づけたサブ識別子情報を利用する。図９は、テンプレートマッチングに利用されるサブ識別子情報をテーブル形式で表す図である。図９のテーブルをテーブル２００と呼ぶ。テーブル２００は、テンプレート画像２０２とサブ識別子２０４という２つの列を有する。
【００６１】
変換部２０２０は、カメラ画像１０に含まれる画像領域と、テンプレート画像２０２に示されるテンプレート画像とのマッチングを行うことで、テンプレート画像にマッチするマーカを検出する。そして、変換部２０２０は、検出されたマーカを、対応するサブ識別子に変換する。マーカに対応するサブ識別子は、検出されたマーカにマッチするテンプレート画像２０２と対応づけられているサブ識別子２０４である。
【００６２】
例えば図９のテーブル２００の１行目のレコードは、図２のバーコード２０−１を表すテンプレート画像に対して、「１」というサブ識別子を対応づけている。そのため、図２のカメラ画像１０について、図９のテーブル２００を用いてマーカの検出を行うと、バーコード２０−１が検出される。そこで変換部２０２０は、検出されたバーコード２０−１を「１」というサブ識別子に変換する。
【００６３】
＜＜特徴量マッチングについて＞＞
特徴量マッチングを行う変換部２０２０は、マーカの特徴量とサブ識別子とを対応づけたサブ識別子情報を利用する。マーカの特徴量は、マーカの外観の特徴を表す１つ以上のスカラ値やベクトル値などで表される。図１０は、特徴量マッチングに利用されるサブ識別子情報をテーブル形式で表す図である。図１０のテーブルをテーブル３００と呼ぶ。テーブル３００は、特徴量３０２とサブ識別子３０４という２つの列を有する。
【００６４】
変換部２０２０は、カメラ画像１０に含まれる画像領域と、特徴量３０２に示される特徴量とのマッチングを行うことで、マーカの検出を行う。そして、変換部２０２０は、検出されたマーカを、対応するサブ識別子に変換する。マーカに対応するサブ識別子は、検出されたマーカを表す特徴量３０２に対応付けられているサブ識別子３０４である。
【００６５】
サブ識別子情報は、情報処理装置２０００の内部又は外部に設けられている記憶装置に記憶されている。変換部２０２０は、この記憶装置に記憶されているサブ識別子情報を取得して利用する。
【００６６】
＜識別子の算出：Ｓ１０８＞
算出部２０４０は、複数のサブ識別子を用いて１つの識別子を算出する（Ｓ１０８）。サブ識別子から識別子を算出する方法には、様々な方法を採用することができる。例えば、算出部２０４０は、サブ識別子の組み合わせを識別子として扱う。また例えば、算出部２０４０は、サブ識別子を所定の順序で結合することで識別子を算出する。また例えば、算出部２０４０は、サブ識別子から識別子を算出するための所定の演算式に各サブ識別子を入力することで、識別子を算出する。以下、それぞれの方法について具体的に説明する。
【００６７】
＜＜方法１：サブ識別子の組み合わせ＞＞
算出部２０４０は、サブ識別子の組み合わせを、そのまま識別子として扱う。例えば、３つのマーカからそれぞれ、０１、２５、及び３２というサブ識別子が算出されたとする。この場合、算出部２０４０は、サブ識別子の集合「０１、２５、３２」を識別子として扱う。
【００６８】
＜＜方法２：サブ識別子の結合＞＞
算出部２０４０は、サブ識別子を所定の順序で結合することで識別子を算出する。例えば図２の例では、「１」、「５」、及び「６」というサブ識別子をこの順序で結合することにより、「１５６」という識別子が算出されている。
【００６９】
ここで、サブ識別子を結合する所定の順序を定める方法は様々である。例えば所定の順序は、カメラ画像１０における各マーカの位置関係によって定められる。例えば、図２の例において、「マーカが存在しない空白領域を始点として反時計回り」という所定の順序を定めておく。こうすると、サブ識別子の結合順序は、「バーコード２０−１に対応するサブ識別子、バーコード２０−２に対応するサブ識別子、バーコード２０−３に対応するサブ識別子」という順序になる。
【００７０】
また例えば、所定の順序を定めるための情報がマーカの付近に示されていてもよい。図１１は、マーカの付近にサブ識別子の結合順序を示す数値が示されている様子を例示する図である。図１１において、バーコード２０−１、バーコード２０−２、及びバーコード２０−３の付近にそれぞれ、「３」、「１」、及び「２」という数値が示されている。この場合、サブ識別子の結合順序は、「バーコード２０−２に対応するサブ識別子、バーコード２０−３に対応するサブ識別子、バーコード２０−１に対応するサブ識別子」となる。
【００７１】
このようにマーカの付近に結合順序を定める情報が示されている場合、算出部２０４０は、マーカが検出された画像領域の周辺にある画像領域から、結合順序を定める情報を抽出する。この周辺領域は、例えばマーカが検出された画像領域から所定距離離れた位置を含む画像領域である。
【００７２】
また、サブ識別子の値に基づいてサブ識別子の結合順序が分かるように、サブ識別子が定められていてもよい。この方法は、１つの識別子を構成する各サブ識別子の値が互いに重複しないようにすることで実現できる。例えば１つの識別子が、（１）００から０９のいずれかの値をとるサブ識別子、（２）１０から１９のいずれかの値をとるサブ識別子、及び（３）２０から２９のいずれかの値をとるサブ識別子をこの順で結合することで構成されるとする。この場合、カメラ画像１０から検出される３つのマーカはそれぞれ、（１）から（３）のいずれかに変換される。そして算出部２０４０は、（１）に該当するサブ識別子、（２）に該当するサブ識別子、及び（３）に該当するサブ識別子という順序で結合することで、識別子を算出する。
【００７３】
＜＜方法３：演算式を用いた算出＞＞
算出部２０４０は、サブ識別子を所定の演算式に入力することで識別子を算出する。数式（１）は、サブ識別子から識別子を算出する演算式の例である。I は識別子を表し、sub_k は k 番目のサブ識別子を表す。なお数式（１）において、サブ識別子及び識別子は共に数値である。
【数１】
2018037666.tif 000003
【００７４】
例えば、１つの識別子が３つのサブ識別子で表されるとする。また、３つのサブ識別子がそれぞれ、十の位と一の位が０である３桁の数値（０００、１００、２００、・・・、又は９００）、一の位が０である２桁の数値（００、１０、２０、・・・、又は９０）、及び１桁の数値（０、１、２、・・・、９）であるとする。この場合、変換部２０２０は、数式（１）に３つのサブ識別子を入力することで、これらサブ識別子の和を計算する。こうすることで、３桁の数値で表される識別子が算出される。この方法によれば、識別子は、３桁の任意の数値とすることができる。
【００７５】
［実施形態２］
図１２は、実施形態２の情報処理装置２０００を例示するブロック図である。下記で説明する点を除き、実施形態２の情報処理装置２０００は、実施形態１の情報処理装置２０００と同様の機能を有する。
【００７６】
本実施形態では、カメラ画像１０を用いて複数の識別子が算出される。言い換えれば、カメラ画像１０において、或る識別子の算出に利用されるマーカと、別の識別の算出に利用されるマーカとが混在している。
【００７７】
そこで実施形態２の情報処理装置２０００は、グルーピング部２０６０を有する。グルーピング部２０６０は、複数のマーカをグループに分割する。算出部２０４０は、グループごとに、そのグループに含まれる各マーカによって表されるサブ識別子を用いて、１つの識別子を算出する。
【００７８】
図１３は、実施形態２の情報処理装置２０００によって扱われるカメラ画像１０を例示する図である。図１３のカメラ画像１０には、図２のカメラ画像１０に含まれるバーコード２０−１からバーコード２０−３に加え、バーコード２０−４からバーコード２０−６が含まれる。
【００７９】
図１３の例において、グルーピング部２０６０は、バーコード２０−１からバーコード２０−３の３つをグループ１に含める。また、グルーピング部２０６０は、バーコード２０−４からバーコード２０−６の３つを、グループ２に含める。なお、マーカをグループに分ける具体的な方法については後述する。
【００８０】
算出部２０４０は、グループ１とグループ２のそれぞれから識別子を算出する。ここで、バーコード２０−１からバーコード２０−６によって表されるサブ識別子はそれぞれ、「１」、「５」、「６」、「７」、「８」、及び「９」であるとする。
【００８１】
まず算出部２０４０は、グループ１について、バーコード２０−１からバーコード２０−３によって表されるサブ識別子を結合して「１５６」という識別子を算出する。さらに算出部２０４０は、グループ２について、バーコード２０−４からバーコード２０−６によって表されるサブ識別子を結合して「７８９」という識別子を算出する。このように、カメラ画像１０に含まれる複数のバーコード２０から、２つの識別子が算出される。
【００８２】
グルーピング部２０６０がマーカをグループに分ける方法は様々である。例えば、（１）カメラ画像１０における各マーカの相対位置に基づいてグループ分けを行う方法、及び（２）マーカのグループ分けを表す情報に基づいてグループ分けを行う方法などがある。以下、それぞれの方法について具体的に説明する。
【００８３】
＜マーカの相対位置に基づくグループ分け＞
相対位置に基づいてマーカをグループに分ける方法には、様々な方法がある。例えば、（１）マーカ間の距離に基づく方法、（２）マーカ間の距離及びマーカの向きに基づく方法、及び（３）マーカによって構成される形状に基づく方法などがある。以下、その方法を例示する。
【００８４】
＜＜マーカ間の距離に基づくグループ分け＞＞
グルーピング部２０６０は、マーカ間の距離に基づいて、マーカをグループに分ける。より具体的には、グルーピング部２０６０は、互いに近くに位置する所定個のマーカを同じグループに含める。
【００８５】
図１４は、距離に基づいてマーカをグループに分ける方法を例示する第１の図である。この例において、識別子は３つのサブ識別子の組み合わせで算出される。まず変換部２０２０は、カメラ画像１０の中から、バーコード２０−１からバーコード２０−９を検出する。次にグルーピング部２０６０は、バーコード２０−１の中心から各バーコード２０までの距離を算出する。そしてグルーピング部２０６０は、バーコード２０−１の中心からの距離が最も短いバーコード２０及び２番目に短いバーコード２０を特定する。図１４において、前者はバーコード２０−２、後者はバーコード２０−３である。そこでグルーピング部２０６０は、バーコード２０−１からバーコード２０−３を同じグループ（グループ１）に含める。
【００８６】
次にグルーピング部２０６０は、バーコード２０−４の中心から、所属するグループが決定していない他のバーコード２０（バーコード２０−５からバーコード２０−９）までの距離を算出する。そしてグルーピング部２０６０は、バーコード２０−４の中心からの距離が最も短いバーコード２０及び２番目に短いバーコード２０を特定する。前者はバーコード２０−５、後者はバーコード２０−６である。そこでグルーピング部２０６０は、バーコード２０−４からバーコード２０−６を同じグループ（グループ２）に含める。
【００８７】
最後にグルーピング部２０６０は、所属するグループが決定していない３つのバーコード２０を同じグループ（グループ３）に含める。
【００８８】
ここで上述の例において、グルーピング部２０６０は、最初にバーコード２０−１を処理対象とし、次にバーコード２０−４を処理対象としている。しかし、処理対象とするマーカの順序は任意である。例えばグルーピング部２０６０は、変換部２０２０によって検出された時点が早いマーカから順に処理対象とする。また例えば、グルーピング部２０６０は、サブ識別子の値が小さいマーカから順に処理対象とする。
【００８９】
また例えば、各グループの代表とするマーカ（以下、代表マーカ）を予め定めておき、代表マーカをグルーピング部２０６０の処理対象としてもよい。グルーピング部２０６０は、各代表マーカとの間の距離に基づいて、代表マーカ以外のマーカが所属するグループを決定する。
【００９０】
例えば図１４の例において、バーコード２０−１、バーコード２０−４、及びバーコード２０−７を代表マーカとする。この場合、各バーコード２０は、バーコード２０−１を含むグループ、バーコード２０−４を含むグループ、及びバーコード２０−７を含むグループのいずれかに所属する。グルーピング部２０６０は、代表マーカとの間の距離に基づいて、代表マーカ以外のマーカをいずれかのグループに含める。
【００９１】
代表マーカは、代表マーカ以外のマーカと判別可能に設けられている。例えば代表マーカの付近又は代表マーカの内部には、所定の印（文字列、記号、又は模様など）が設けられる。代表マーカの定義は、予めグルーピング部２０６０に設定されていてもよいし、グルーピング部２０６０からアクセス可能な記憶装置に記憶されていてもよい。
【００９２】
グルーピング部２０６０の処理対象とするマーカの順番を決める方法や、代表マーカを定めておくという方法については、後述する他のグループ分けの方法においても同様に適用できる。
【００９３】
このようにマーカの間の距離のみに着目してマーカをグループに分ける場合、マーカの向きなどを考慮する必要がない。そのため、マーカをグループに分ける処理の負荷が小さくなる。また、製品などに手動でマーカを設置する場合に、マーカの距離を考慮するだけでよく、マーカの向きなどを考慮しなくてよい。そのため、マーカを設置する作業が容易になる。
【００９４】
なお、互いに近くに位置するマーカを同じグループに含める方法は、上述の方法に限定されない。例えばグルーピング部２０６０は、「或るマーカＡから所定距離以内の場所に位置するマーカを、マーカＡと同じグループに含める」という方法でマーカをグループに分けてもよい。
【００９５】
図１５は、距離に基づいてマーカをグループに分ける方法を例示する第２の図である。この例では、所定距離を r とする。図１５において、バーコード２０−１の中心からの距離が所定距離 r 以下の場所に位置しているバーコード２０は、バーコード２０−２及びバーコード２０−３である。そこでグルーピング部２０６０は、バーコード２０−１からバーコード２０−３を同じグループ（グループ１）に含める。所定距離 r は、例えばバーコード２０の大きさ（例えば横幅）に対する相対的な長さで定義される。
【００９６】
なお、この方法の場合、グループに含まれるマーカの数は固定であってもよいし、固定でなくてもよい。前者の場合に、同じグループに含まれるマーカの数が所定個よりも多い場合、例えばグルーピング部２０６０は、エラー出力を行う。この場合、例えばマーカの撮像やマーカの設置においてミスがあったと考えられる。
【００９７】
＜＜マーカ間の距離及びマーカの向きに基づくグループ分け＞＞
グルーピング部２０６０は、マーカ間の距離及びマーカの向きに基づいて、マーカをグループに分ける。以下、その方法をいくつか例示する。なお、マーカの向きの特定方法については後述する。
【００９８】
＜＜＜方法１＞＞＞
例えばグルーピング部２０６０は、「或るマーカＡの中心から見て所定方向に位置する各マーカのうち、マーカＡからの距離が短い順に所定個のマーカを、マーカＡと同じグループに含める」という方法でマーカをグループに分ける。
【００９９】
図１６は、マーカ間の距離及びマーカの向きに基づくグループ分けを例示する第１の図である。この例において、識別子は３つのサブ識別子の組み合わせによって算出される。つまり、上記所定個は２個である。また、所定方向は上方向である。
【０１００】
まずグルーピング部２０６０は、バーコード２０−１の中心よりも上方向にあるバーコード２０を特定する。ここでは、バーコード２０−２からバーコード２０−６が特定される。次にグルーピング部２０６０は、バーコード２０−２からバーコード２０−６について、バーコード２０−１の中心からの距離を算出する。グルーピング部２０６０は、バーコード２０−１からの距離がもっとも短いバーコード２０として、バーコード２０−３を特定する。さらにグルーピング部２０６０は、バーコード２０−１からの距離が２番目に短いバーコード２０として、バーコード２０−２を特定する。そこでグルーピング部２０６０は、バーコード２０−１からバーコード２０−３を同じグループに含める。バーコード２０−４からバーコード２０−９も同様の方法でグループに分けられる。
【０１０１】
＜＜＜方法２＞＞＞
また例えば、グルーピング部２０６０は、「或るマーカＡの中心から見て所定方向に位置するマーカのうち、マーカＡからの距離が所定距離以下であるマーカを、マーカＡと同じグループに含める」という方法でマーカをグループに分けてもよい。図１７は、マーカ間の距離及びマーカの向きに基づくグループに分けを例示する第２の図である。この例においても、識別子は３つのサブ識別子の組み合わせによって算出される。また、所定方向は上方向であり、所定距離は r である。所定距離 r は、例えばバーコード２０−Ａの大きさ（例えば横幅）に対する相対的な距離で定義される。
【０１０２】
図１７の例において、バーコード２０−１の中心よりも上方向にあるバーコード２０は、バーコード２０−２からバーコード２０−６である。さらに、バーコード２０−２からバーコード２０−６のうち、バーコード２０−１からの距離が所定距離 r 以下であるバーコード２０は、バーコード２０−２及びバーコード２０−３である。そこで、グルーピング部２０６０は、バーコード２０−１からバーコード２０−３を同じグループに含める。
【０１０３】
＜＜＜方法３＞＞＞
また例えば、グルーピング部２０６０は、「マーカの中心から所定方向に所定距離離れた位置（以下、基準点）が互いに近いマーカ同士を同じグループに含める」という方法でマーカをグループに分けてもよい。図１８は、マーカ間の距離及びマーカの向きに基づくグループ分けを例示する第３の図である。この例においても、識別子は３つのサブ識別子の組み合わせによって算出される。また、所定方向は上方向であり、所定距離は r である。所定距離 r は、例えばバーコード２０−Ａの大きさ（例えば横幅）に対する相対的な距離で定義される。
【０１０４】
まずグルーピング部２０６０は、各バーコード２０について、バーコード２０の中心から上方向に距離 r 離れた位置である基準点２２を算出する。そして、各基準点２２の間の距離に基づいて、バーコード２０をグループに分ける。例えばグルーピング部２０６０は、バーコード２０−１に対応する基準点２２−１から最も近い基準点及び２番目に近い基準点２２を特定する。ここでは、前者としてバーコード２０−２に対応する基準点２２−２が特定され、後者としてバーコード２０−３に対応する基準点２２−３が特定される。そこでグルーピング部２０６０は、バーコード２０−１からバーコード２０−３を同じグループに含める。同様に、グルーピング部２０６０は、バーコード２０−４からバーコード２０−６を同じグループに含める。
【０１０５】
なお、グルーピング部２０６０は、上記基準点２２間の距離が所定距離 r2 以下である場合に、それらの基準点２２に対応するバーコード２０を同じグループに含めるようにしてもよい。
【０１０６】
ここで、図１５、図１６、及び図１８の例において、マーカの距離のみに着目してみる。例えば図１５と図１６の場合、バーコード２０−７やバーコード２０−８の方が、バーコード２０−２やバーコード２０−３よりも、バーコード２０−１に近くに位置する。そのため、近い距離にあるバーコード２０を同じグループに含めるという方法を採用すると、バーコード２０−１と同じグループに含まれるのはバーコード２０−７とバーコード２０−８となる。しかし、マーカの向きを考慮することにより、バーコード２０−７とバーコード２０−８は、バーコード２０−１と同じグループに含められない。
【０１０７】
図１８の場合、バーコード２０−２とバーコード２０−５が近くに配置されている。しかし、マーカの向きを考慮したグループ分けにより、これらのバーコード２０は同じグループに含まれていない。
【０１０８】
このようにマーカの向きを考慮したグループ分けを行うと、異なるグループに所属させるマーカを近接して配置することが可能となる。つまり、マーカを密集させて配置することができる。よって、マーカを配置する場所のスペースを有効活用できるようになる。
【０１０９】
＜＜＜マーカの向きの特定方法＞＞＞
グルーピング部２０６０がマーカの向きを特定する方法は様々である。例えば、マーカの向きの特定に利用できる情報（方向情報）がマーカの付近に設けられているとする。この場合、グルーピング部２０６０は、マーカの付近に設けられている方向情報を検出し、この方向情報を利用してマーカの向きを特定する。
【０１１０】
方向情報は、文字列、記号、又は模様などの任意の印である。方向情報の定義は、予めグルーピング部２０６０に設定されていてもよいし、グルーピング部２０６０からアクセス可能な記憶装置に記憶されていてもよい。
【０１１１】
図１９は、マーカの付近に設けられている方向情報を例示する図である。図１９において、マーカはバーコード２０である。また図１９において、方向情報は、バーコード２０の下に付されている文字列６０である。
【０１１２】
グルーピング部２０６０は、カメラ画像１０からバーコード２０を検出し、さらに検出したバーコード２０の付近から文字列６０を検出する。そして、グルーピング部２０６０は、バーコード２０と文字列６０との位置関係に基づいて、バーコード２０の向きを特定する。例えば図１９において、グルーピング部２０６０は、「方向３０が下方となる向き」をバーコード２０の向きとして特定する。
【０１１３】
なお、カメラ画像１０にマーカが複数含まれていると、方向情報である文字列６０も複数含まれている。そこで、例えばグルーピング部２０６０は、バーコード２０と、そのバーコード２０の最も近くに配置されている文字列６０とを対応づける。そして、グルーピング部２０６０は、バーコード２０と、そのバーコード２０に対応する文字列６０との位置関係に基づいて、バーコード２０の向きを特定する。
【０１１４】
また、マーカの向きは、マーカ自体によって特定可能であってもよい。これは、マーカを非対称な印にすることで可能となる。図２０は、向きの特定が可能なマーカを例示する図である。図２０（ａ）のマーカ７０−１は、下方にのみ文字列を含む。図２０（ｂ）のマーカ７０−２は、上辺が下辺よりも短い台形の形状をしている。図２０（ｃ）のマーカ７０−３は、枠線で囲われており、なおかつ枠線内の上方のスペースが下方のスペースよりも狭い。
【０１１５】
図２０のマーカは、いずれも上下が非対称な図形である。グルーピング部２０６０は、このようなマーカの非対称性を利用して、マーカの向きを特定する。例えば図２０の各マーカ７０の向きはいずれも、「方向３０がマーカ７０の下方となる向き」である。
【０１１６】
＜＜マーカによって構成される形状に基づくグループ分け＞＞
グルーピング部２０６０は、１つの所定の形状の辺又は頂点を構成する複数のマーカを１つのグループに含める。図２１は、マーカの位置を頂点として扱うことで所定の形状が構成される例を示す図である。図２１（ａ）において、バーコード２０−１からバーコード２０−３の各中心は、正三角形８０の頂点に位置している。言い換えれば、バーコード２０−１からバーコード２０−３は、１つの正三角形８０を構成している。そこで図２１の例の場合、グルーピング部２０６０は、１つの正三角形８０の各頂点を表す３つのバーコード２０を、１つのグループに含める。
【０１１７】
図２１（ｂ）において、カメラ画像１０には６つのバーコード２０が含まれている。まずグルーピング部２０６０は、各バーコード２０について中心を検出する。そしてグルーピング部２０６０は、検出した各中心を、正三角形８０の頂点を構成する３つの中心ごとにグループ分けする。この例では、バーコード２０−１からバーコード２０−３の各中心によって１つの正三角形８０−１が構成されている。また、バーコード２０−４からバーコード２０−６の各中心によって正三角形８０−２が構成されている。そこでグルーピング部２０６０は、バーコード２０−１からバーコード２０−３を１つのグループに含める。またグルーピング部２０６０は、バーコード２０−４からバーコード２０−６を、他の１つのグループに含める。
【０１１８】
図２２は、マーカで特定される辺によって所定の形状が構成される例を示す図である。図２２（ａ）において、各バーコード２０の中心を通る長手方向の直線が、正方形９０の各辺を構成している。言い換えれば、バーコード２０−１からバーコード２０−４は、１つの正方形９０を構成している。そこで図２２（ａ）の例の場合、グルーピング部２０６０は、１つの正方形９０の各辺を表す４つのバーコード２０−１からバーコード２０−９を、１つのグループに含める。
【０１１９】
図２２（ｂ）において、カメラ画像１０には８つのバーコード２０が含まれている。まずグルーピング部２０６０は、各バーコード２０について中心を検出する。次に、グルーピング部２０６０は、各バーコード２０について、バーコード２０の中心を通り、なおかつバーコード２０の長手方向に延びる直線１００を算出する。そしてグルーピング部２０６０は、１つの正方形を構成する４つの直線１００を特定し、その４つの直線１００に対応するバーコード２０を同じグループに含める。
【０１２０】
図２２（ｂ）では、直線１００−１から直線１００−４によって１つの正方形９０が構成されている。そこでグルーピング部２０６０は、直線１００−１から直線１００−４に対応するバーコード２０−１からバーコード２０−４を、１つのグループに含める。同様に、直線１００−５から直線１００−８によって１つの正方形９０が構成されている。そこでグルーピング部２０６０は、直線１００−５から直線１００−８に対応するバーコード２０−５からバーコード２０−８を１つのグループに含める。
【０１２１】
以上のように、所定の形状を構成するマーカを同じグループに含める方法を採用する場合においても、異なるグループに属するマーカを近くに配置することが可能である。例えば図２１（ｂ）において、バーコード２０−３とバーコード２０−４は近くに配置され絵いる。このように、異なるグループに属するマーカを近くに配置できることで、マーカを配置するスペースを有効活用することができるようになる。
【０１２２】
＜グループ分けを表す情報に基づくグループ分け＞
グルーピング部２０６０は、カメラ画像１０の中から、マーカのグループ分けを表す情報（以下、グループ分け情報）を検出する。そしてグルーピング部２０６０は、グループ分け情報に基づいてマーカのグループ分けを行う。以下、グループ分け情報についていくつか例示する。
【０１２３】
＜＜グループ分け情報の例１＞＞
グループ分け情報は、例えば同じグループに所属すべきマーカを囲む枠である。この場合、グルーピング部２０６０は、カメラ画像１０から、複数のマーカを囲む枠を検出する。そして、グルーピング部２０６０は、この枠線で囲われている各マーカを同じグループに含める。
【０１２４】
図２３は、枠を表すグループ分け情報を用いてグループ分けを行う方法を例示する図である。図２３において、バーコード２０−１からバーコード２０−３は枠線５０−１で囲われている。また、バーコード２０−４からバーコード２０−６は枠線５０−２で囲われている。
【０１２５】
そこでグルーピング部２０６０は、バーコード２０−１からバーコード２０−３を１つのグループに含める。またグルーピング部２０６０は、バーコード２０−４からバーコード２０−６を他の１つのグループに含める。
【０１２６】
ここで、同じグループに所属すべきマーカを囲む枠は、マーカの構成要素であってもよい。図２４は、マーカの構成要素が他のマーカを囲む枠となるケースを例示する図である。図２４において、マーカ７０−１は、内部が中空となっている。そして、その中空部分に、マーカ７０−２及びマーカ７０−３が入っている。つまり、マーカ７０−２とマーカ７０−３が、マーカ７０−１の構成要素である枠によって囲われている。グルーピング部２０６０は、マーカ７０−１の中空部分に位置しているマーカ７０−２及びマーカ７０−３を、マーカ７０−１と同じグループに含める。
【０１２７】
このように、同じグループに含めるマーカを囲う枠をマーカの構成要素で実現することにより、マーカを検出する処理と、枠を検出する処理を同時に行うことができる。よって、グループ分け情報の検出に要する処理の負荷が小さくなる。
【０１２８】
＜＜グループ分け情報の例２＞＞
グループ分け情報は、例えばマーカの内部又はマーカの付近に設けられる任意の印（以下、サブマーカ）である。サブマーカは、例えば文字列、記号、又は模様などである。図２５は、マーカの内部に設けられたサブマーカを用いてマーカのグループ分けを行う方法を例示する図である。図２５において、同じグループに所属すべきマーカ７０には、共通の数値を表すサブマーカ１１０が設けられている。
【０１２９】
マーカ７０−１からマーカ７０−３の内部には、いずれも「０」というサブマーカ１１０が含まれている。一方、マーカ７０−４からマーカ７０−６の内部には、いずれも「１」というサブマーカ１１０が含まれている。
【０１３０】
そこでグルーピング部２０６０は、「０」というサブマーカ１１０を有するマーカ７０−１からマーカ７０−３を１つのグループに含める。また、グルーピング部２０６０は、「１」というサブマーカ１１０を有するバーコード２０−４からバーコード２０−６を、他の１つのグループに含める。
【０１３１】
サブマーカ１１０を用いてマーカ７０のグループ分けを表す方法によれば、同じグループに所属すべき複数のマーカ７０それぞれを、カメラの画角に収まる任意の場所に設置することができる。よって、マーカ７０の設置場所の自由度が高くなる。
【０１３２】
なお、マーカ７０の内部にサブマーカ１１０を含めておくと、マーカ７０の検出とサブマーカ１１０の検出を同時に行うことができる。よって、グループ分け情報の検出に要する処理の負荷が小さくなる。
【０１３３】
グループ分け情報を用いてグループ分けを行う方法を採用すると、マーカのグループを人の目で容易に判断できる。よって、手動でマーカを設置する際に、その作業が容易になる。また、マーカの設置場所に誤りがないかどうかを容易に判断することができる。
【０１３４】
グループ分け情報の定義は、予めグルーピング部２０６０に設定されていてもよいし、グルーピング部２０６０からアクセス可能な記憶装置に記憶されていてもよい。
【０１３５】
＜処理の流れ＞
図２６は、実施形態２の情報処理装置２０００によって実行される処理の流れを例示するフローチャートである。図２２のＳ１０２からＳ１０６において実行される処理は、図４のＳ１０２からＳ１０６において実行される処理と同様である。
【０１３６】
Ｓ２０２において、グルーピング部２０６０は、マーカをグループに分ける。Ｓ２０４において、算出部２０４０は、グループごとに、グループに含まれる各マーカによって表されるサブ識別子から、１つの識別子を算出する。
【０１３７】
＜ハードウエア構成の例＞
実施形態２の情報処理装置２０００のハードウエア構成は、例えば実施形態１の情報処理装置２０００と同様に、図３で表される。実施形態２のストレージデバイス１０８０には、実施形態２の情報処理装置２０００の各機能を実現するプログラムモジュールがさらに含まれる。
【０１３８】
＜作用・効果＞
本実施形態の情報処理装置２０００によれば、カメラ画像１０の中に、互いに異なる識別子の算出に利用されるマーカ（異なるグループに属するマーカ）が含まれてもよい。そのため、互いに異なる識別子の算出に利用されるマーカがカメラ画像１０に含まれてはいけない場合と比較し、より狭い範囲に多くのマーカを設置できる。その結果、識別対象の物をより密集して配置できるようになる。
【０１３９】
［実施形態３］
実施形態３の情報処理装置２０００は、実施形態１の情報処理装置２０００と同様に図１で表されるか、又は実施形態２の情報処理装置２０００と同様に図１２で表される。下記で説明する点を除き、実施形態１の情報処理装置２０００又は実施形態２の情報処理装置２０００と同様の機能を有する。
【０１４０】
実施形態３の算出部２０４０は、サブ識別子の誤り検出を行う。具体的には、或るマーカから得られる情報に、他のマーカから得られるべきサブ識別子の誤り検出に用いる情報（以下、誤り検出情報）を含めておく。誤り検出情報は、例えばパリティビットである。
【０１４１】
例えば、情報処理装置２０００が、３つのマーカＡ、Ｂ、及びＣのそれぞれから、サブ識別子Ｘ、Ｙ、及びＺを得て、１つの識別子を算出するとする。この場合、例えば、マーカＡから得られるサブ識別子Ｘの誤り検出情報を、マーカＢに対応づけておく。具体的には、サブ識別子情報において、マーカＢに、サブ識別子Ｘの誤り検出情報を対応づけておく。算出部２０４０は、この誤り検出情報を用いることで、マーカＡから得られたサブ識別子Ｘについて誤り検出を行う。
【０１４２】
この例において、サブ識別子Ｘの誤り検出情報は、マーカＢに対応付けられているサブ識別子Ｙの一部であってもよい。例えば、サブ識別子Ｙの末尾の１ビットを、サブ識別子Ｘのパリティビットとしておく。
【０１４３】
或るサブ識別子の誤り検出情報は、他の１つのマーカだけでなく、他の複数のマーカに対応づけられていてよい。例えば上述の例では、マーカＡから得られるサブ識別子Ｘの誤り検出情報を、マーカＢとマーカＣの双方に対応づけておく。
【０１４４】
どのサブ識別子の誤り検出情報をどのマーカに対応づけておくかは任意である。図２７は、マーカと誤り検出情報との対応付けを例示する図である。図２７では、バーコード２０から得られるサブ識別子の誤りを検出するための誤り検出情報を、そのバーコード２０から見て反時計回りに隣接しているバーコード２０に対して対応づけている。例えば、バーコード２０−１から得られるサブ識別子の誤りを検出するための誤り検出情報は、バーコード２０−２と対応づけられている。
【０１４５】
なお、誤り検出情報は、前述したパリティビットに限定されない。データの誤りを検出する技術自体には、既存の種々の技術を利用できる。
【０１４６】
サブ識別子について誤りが検出された場合の処理は任意である。例えば情報処理装置２０００は、エラー情報を出力して、識別子を算出する処理を終了する。例えばエラー情報は、情報処理装置２０００に接続されているディスプレイ装置に表示されるテキストメッセージや、情報処理装置２０００に接続されているスピーカから出力される音声メッセージなどである。
【０１４７】
算出部２０４０は、誤りが検出されたサブ識別子について誤り訂正を行う機能をさらに有していてもよい。この場合、マーカから得られる情報に、誤り検出情報だけでなく、誤り訂正に用いる情報（誤り訂正情報）をさらに含めておく。
【０１４８】
例えば前述の例において、マーカＡから得られるサブ識別子Ｘを２つに分割することで、ｘ１とｘ２という２つのデータが得られるとする。この場合、例えばこれらｘ１とｘ２を誤り訂正情報として用いる。例えばサブ識別子情報において、マーカＢに対してｘ１を対応づけておき、マーカＣに対してｘ２を対応づけておく。そして、サブ識別子Ｘについて誤りが検出された場合、算出部２０４０は、マーカＢに対応づけられているｘ１とマーカＣに対応づけられているｘ２とを用いて、サブ識別子Ｘを復旧する。
【０１４９】
なお、誤り訂正の方法は上述の例に限定されない。データの誤りを訂正する技術自体には、既存の種々の技術を利用できる。
【０１５０】
＜ハードウエア構成の例＞
実施形態３の情報処理装置２０００のハードウエア構成は、例えば実施形態１の情報処理装置２０００と同様に、図３で表される。実施形態３のストレージデバイス１０８０には、実施形態２の情報処理装置２０００の各機能を実現するプログラムモジュールがさらに含まれる。
【０１５１】
＜作用・効果＞
カメラ画像１０に含まれるマーカから得られたサブ識別子が、本来そのマーカから得られるべき識別子（サブ識別子情報においてそのマーカと対応づけられているサブ識別子）とは異なっていることがありうる。例えばこのようなことは、マーカが汚れていたり、環境光などの影響でカメラ画像１０の一部が白飛びしていたりするような場合に起こりうる。
【０１５２】
本実施形態によれば、或るマーカから得られるサブ識別子の誤り検出に用いる情報が、他のマーカから得られる情報に含まれている。こうすることで、情報処理装置２０００は、或るマーカから得られたサブ識別子が正しいものであるか否かを判断することができる。よって、カメラ画像１０から誤ったサブ識別子が得られること、ひいてはカメラ画像１０から誤った識別子が得られることを防ぐことができる。
【０１５３】
さらに、サブ識別子の誤り検出に加え、誤り訂正が行われてもよい。誤り訂正を行うことで、或るマーカから得られたサブ識別子に誤りがあったとしても、その誤りを訂正することで、正しいサブ識別子を得ることができる。
【０１５４】
以上、図面を参照して本発明の実施形態について述べたが、これらは本発明の例示であり、上記各実施形態の組み合わせ、又は上記以外の様々な構成を採用することもできる。
【０１５５】
この出願は、２０１６年８月２４日に出願された日本出願特願２０１６−１６３５７８号を基礎とする優先権を主張し、その開示の全てをここに取り込む。
【図１】
2018037666.tif 000004
【図２】
2018037666.tif 000005
【図３】
2018037666.tif 000006
【図４】
2018037666.tif 000007
【図５】
2018037666.tif 000008
【図６】
2018037666.tif 000009
【図７】
2018037666.tif 000010
【図８】
2018037666.tif 000011
【図９】
2018037666.tif 000012
【図１０】
2018037666.tif 000013
【図１１】
2018037666.tif 000014
【図１２】
2018037666.tif 000015
【図１３】
2018037666.tif 000016
【図１４】
2018037666.tif 000017
【図１５】
2018037666.tif 000018
【図１６】
2018037666.tif 000019
【図１７】
2018037666.tif 000020
【図１８】
2018037666.tif 000021
【図１９】
2018037666.tif 000022
【図２０】
2018037666.tif 000023
【図２１】
2018037666.tif 000024
【図２２】
2018037666.tif 000025
【図２３】
2018037666.tif 000026
【図２４】
2018037666.tif 000027
【図２５】
2018037666.tif 000028
【図２６】
2018037666.tif 000029
【図２７】
2018037666.tif 000030
【手続補正書】
【提出日】平成30年9月19日(2018.9.19)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
画像の中から、第１識別子を表すマーカを複数検出し、各前記マーカを前記第１識別子に変換する変換手段と、
複数の前記第１識別子から第２識別子を算出する算出手段と、
前記画像に含まれる複数のマーカをグループに分けるグルーピング手段と、を有し、
前記算出手段は、前記グループごとに、そのグループに含まれる複数の前記第１識別子から前記第２識別子を算出する、情報処理装置。
【請求項２】
前記グルーピング手段は、相対位置が所定の関係にある複数の前記マーカを同じグループに含める、請求項１に記載の情報処理装置。
【請求項３】
前記グルーピング手段は、相対距離が所定距離以下である複数の前記マーカを同じグループに含める、請求項２に記載の情報処理装置。
【請求項４】
前記画像は、マーカのグループ分けを示すグループ分け情報を含み、
前記グルーピング手段は、前記グループ分け情報を用いて複数の前記マーカをグループに分ける、請求項１に記載の情報処理装置。
【請求項５】
前記グループ分け情報は、同じグループに所属すべき前記マーカを囲む枠である、請求項４に記載の情報処理装置。
【請求項６】
前記枠は前記マーカの構成要素である、請求項５に記載の情報処理装置。
【請求項７】
前記グループ分け情報は、同じグループに所属すべき複数の前記マーカそれぞれの内部又は付近に設けられている共通のサブマーカである、請求項４に記載の情報処理装置。
【請求項８】
前記画像から検出される第１の前記マーカには、前記画像から検出される第２の前記マーカから変換される前記第１識別子に誤りがあるか否かを検出するための誤り検出情報が対応づけられており、
前記算出手段は、第１の前記マーカに対応づけられている前記誤り検出情報を用いて、第２の前記マーカから変換される前記第１識別子の誤りを検出する、請求項１乃至７いずれか一つに記載の情報処理装置。
【請求項９】
第１の前記マーカには、第２の前記マーカから検出される前記第１識別子の誤りを訂正するための誤り訂正情報が対応づけられており、
前記算出手段は、第１の前記マーカに対応づけられている前記誤り訂正情報を用いて、第２の前記マーカから変換される前記第１識別子の誤りを訂正する、請求項８に記載の情報処理装置。
【請求項１０】
コンピュータによって実行される制御方法であって、
画像の中から、第１識別子を表すマーカを複数検出し、各前記マーカを前記第１識別子に変換する変換ステップと、
複数の前記第１識別子から第２識別子を算出する算出ステップと、
前記画像に含まれる複数のマーカをグループに分けるグルーピングステップと、を有し、
前記算出ステップにおいて、前記グループごとに、そのグループに含まれる複数の前記第１識別子から前記第２識別子を算出する、制御方法。
【請求項１１】
前記グルーピングステップにおいて、相対位置が所定の関係にある複数の前記マーカを同じグループに含める、請求項１０に記載の制御方法。
【請求項１２】
前記グルーピングステップにおいて、相対距離が所定距離以下である複数の前記マーカを同じグループに含める、請求項１１に記載の制御方法。
【請求項１３】
前記画像は、マーカのグループ分けを示すグループ分け情報を含み、
前記グルーピングステップにおいて、前記グループ分け情報を用いて複数の前記マーカをグループに分ける、請求項１０に記載の制御方法。
【請求項１４】
前記グループ分け情報は、同じグループに所属すべき前記マーカを囲む枠である、請求項１３に記載の制御方法。
【請求項１５】
前記枠は前記マーカの構成要素である、請求項１４に記載の制御方法。
【請求項１６】
前記グループ分け情報は、同じグループに所属すべき複数の前記マーカそれぞれの内部又は付近に設けられている共通のサブマーカである、請求項１３に記載の制御方法。
【請求項１７】
前記画像から検出される第１の前記マーカには、前記画像から検出される第２の前記マーカから変換される前記第１識別子に誤りがあるか否かを検出するための誤り検出情報が対応づけられており、
前記算出ステップにおいて、第１の前記マーカに対応づけられている前記誤り検出情報を用いて、第２の前記マーカから変換される前記第１識別子の誤りを検出する、請求項１０乃至１６いずれか一つに記載の制御方法。
【請求項１８】
第１の前記マーカには、第２の前記マーカから検出される前記第１識別子の誤りを訂正するための誤り訂正情報が対応づけられており、
前記算出ステップにおいて、第１の前記マーカに対応づけられている前記誤り訂正情報を用いて、第２の前記マーカから変換される前記第１識別子の誤りを訂正する、請求項１７に記載の制御方法。
【請求項１９】
請求項１０乃至１８いずれか一つに記載の制御方法の各ステップをコンピュータに実行させるプログラム。
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】００１０
【補正方法】変更
【補正の内容】
【００１０】
本発明の情報処理装置は、（１）画像の中から、第１識別子を表すマーカを複数検出し、各前記マーカを前記第１識別子に変換する変換手段と、（２）複数の前記第１識別子から第２識別子を算出する算出手段と、（３）前記画像に含まれる複数のマーカをグループに分けるグルーピング手段と、を有する。前記算出手段は、前記グループごとに、そのグループに含まれる複数の前記第１識別子から前記第２識別子を算出する。
【手続補正３】
【補正対象書類名】明細書
【補正対象項目名】００１１
【補正方法】変更
【補正の内容】
【００１１】
本発明の制御方法は、コンピュータによって実行される。
当該制御方法は、（１）画像の中から、第１識別子を表すマーカを複数検出し、各前記マーカを前記第１識別子に変換する変換ステップと、（２）複数の前記第１識別子から第２識別子を算出する算出ステップと、（３）  前記画像に含まれる複数のマーカをグループに分けるグルーピングステップと、を有する。前記算出ステップにおいて、前記グループごとに、そのグループに含まれる複数の前記第１識別子から前記第２識別子を算出する。
【手続補正４】
【補正対象書類名】明細書
【補正対象項目名】０１５５
【補正方法】変更
【補正の内容】
【０１５５】
この出願は、２０１６年８月２４日に出願された日本出願特願２０１６−１６３５７８号を基礎とする優先権を主張し、その開示の全てをここに取り込む。
上記の実施形態の一部又は全部は、以下の付記のようにも記載されうるが、以下には限られない。
１．  画像の中から、第１識別子を表すマーカを複数検出し、各前記マーカを前記第１識別子に変換する変換手段と、
複数の前記第１識別子から第２識別子を算出する算出手段と、を有する情報処理装置。
２．  前記画像に含まれる複数のマーカをグループに分けるグルーピング手段を有し、
前記算出手段は、前記グループごとに、そのグループに含まれる複数の前記第１識別子から前記第２識別子を算出する、１．に記載の情報処理装置。
３．  前記グルーピング手段は、相対位置が所定の関係にある複数の前記マーカを同じグループに含める、２．に記載の情報処理装置。
４．  前記グルーピング手段は、相対距離が所定距離以下である複数の前記マーカを同じグループに含める、３．に記載の情報処理装置。
５．  前記グルーピング手段は、前記マーカ間の距離及び各前記マーカの向きに基づいて、同じグループに含める複数の前記マーカを決定する、３．に記載の情報処理装置。
６．  前記グルーピング手段は、各前記マーカについて、そのマーカから所定方向に所定距離離れた位置を算出し、前記算出された位置が互いに所定の関係を満たす複数の前記マーカを同じグループに含める、５．に記載の情報処理装置。
７．  各マーカには方向を特定できる方向情報が対応づけられており、
前記方向情報は前記画像に含まれており、
前記グルーピング手段は、前記方向情報を用いて各前記マーカの向きを特定する、５．又は６．に記載の情報処理装置。
８．  前記方向情報は前記マーカに含まれる、７．に記載の情報処理装置。
９．  前記相対位置は、所定形状の辺又は頂点である、３．に記載の情報処理装置。
１０．  前記画像は、マーカのグループ分けを示すグループ分け情報を含み、
前記グルーピング手段は、前記グループ分け情報を用いて複数の前記マーカをグループに分ける、２．に記載の情報処理装置。
１１．  前記グループ分け情報は、同じグループに所属すべき前記マーカを囲む枠である、１０．に記載の情報処理装置。
１２．  前記枠は前記マーカの構成要素である、１１．に記載の情報処理装置。
１３．  前記グループ分け情報は、同じグループに所属すべき複数の前記マーカそれぞれの内部又は付近に設けられている共通のサブマーカである、１０．に記載の情報処理装置。
１４．  前記画像から検出される第１の前記マーカには、前記画像から検出される第２の前記マーカから変換される前記第１識別子に誤りがあるか否かを検出するための誤り検出情報が対応づけられており、
前記算出手段は、第１の前記マーカに対応づけられている前記誤り検出情報を用いて、第２の前記マーカから変換される前記第１識別子の誤りを検出する、１．乃至１３．いずれか一つに記載の情報処理装置。
１５．  第１の前記マーカには、第２の前記マーカから検出される前記第１識別子の誤りを訂正するための誤り訂正情報が対応づけられており、
前記算出手段は、第１の前記マーカに対応づけられている前記誤り訂正情報を用いて、第２の前記マーカから変換される前記第１識別子の誤りを訂正する、１４．に記載の情報処理装置。
１６．  コンピュータによって実行される制御方法であって、
画像の中から、第１識別子を表すマーカを複数検出し、各前記マーカを前記第１識別子に変換する変換ステップと、
複数の前記第１識別子から第２識別子を算出する算出ステップと、を有する制御方法。
１７．  前記画像に含まれる複数のマーカをグループに分けるグルーピングステップを有し、
前記算出ステップにおいて、前記グループごとに、そのグループに含まれる複数の前記第１識別子から前記第２識別子を算出する、１６．に記載の制御方法。
１８．  前記グルーピングステップにおいて、相対位置が所定の関係にある複数の前記マーカを同じグループに含める、１７．に記載の制御方法。
１９．  前記グルーピングステップにおいて、相対距離が所定距離以下である複数の前記マーカを同じグループに含める、１８．に記載の制御方法。
２０．  前記グルーピングステップにおいて、前記マーカ間の距離及び各前記マーカの向きに基づいて、同じグループに含める複数の前記マーカを決定する、１８．に記載の制御方法。
２１．  前記グルーピングステップにおいて、各前記マーカについて、そのマーカから所定方向に所定距離離れた位置を算出し、前記算出された位置が互いに所定の関係を満たす複数の前記マーカを同じグループに含める、２０．に記載の制御方法。
２２．  各マーカには方向を特定できる方向情報が対応づけられており、
前記方向情報は前記画像に含まれており、
前記グルーピングステップにおいて、前記方向情報を用いて各前記マーカの向きを特定する、２０．又は２１．に記載の制御方法。
２３．  前記方向情報は前記マーカに含まれる、２２．に記載の制御方法。
２４．  前記相対位置は、所定形状の辺又は頂点である、１８．に記載の制御方法。
２５．  前記画像は、マーカのグループ分けを示すグループ分け情報を含み、
前記グルーピングステップにおいて、前記グループ分け情報を用いて複数の前記マーカをグループに分ける、１７．に記載の制御方法。
２６．  前記グループ分け情報は、同じグループに所属すべき前記マーカを囲む枠である、２５．に記載の制御方法。
２７．  前記枠は前記マーカの構成要素である、２６．に記載の制御方法。
２８．  前記グループ分け情報は、同じグループに所属すべき複数の前記マーカそれぞれの内部又は付近に設けられている共通のサブマーカである、２５．に記載の制御方法。
２９．  前記画像から検出される第１の前記マーカには、前記画像から検出される第２の前記マーカから変換される前記第１識別子に誤りがあるか否かを検出するための誤り検出情報が対応づけられており、
前記算出ステップにおいて、第１の前記マーカに対応づけられている前記誤り検出情報を用いて、第２の前記マーカから変換される前記第１識別子の誤りを検出する、１６．乃至１８．いずれか一つに記載の制御方法。
３０．  第１の前記マーカには、第２の前記マーカから検出される前記第１識別子の誤りを訂正するための誤り訂正情報が対応づけられており、
前記算出ステップにおいて、第１の前記マーカに対応づけられている前記誤り訂正情報を用いて、第２の前記マーカから変換される前記第１識別子の誤りを訂正する、２９．に記載の制御方法。
３１．  １６．乃至３０．いずれか一つに記載の制御方法の各ステップをコンピュータに実行させるプログラム。
【国際調査報告】
2018037666.tif 000031
2018037666.tif 000032
2018037666.tif 000033