(57)【要約】【課題】  カメラ位置姿勢を推定する上で効果の高い正方形の形状を持った２次元コードで、その２次元コードに対してほぼ正対する方向からだけではなく、任意の方向から検出することを可能とする２次元コードへ、ビット情報の埋め込み量をより高密度化にする。【解決手段】  背景と明度または色によって識別可能な正方形の外形形状をもち、その内部の外周に一定の間隔をおいてその内部を特定のサイズに分割し、分割された各領域のそれぞれの明度または色によって、情報を表現する２次元コードにおいて、その２次元コードの内部を分割する各領域を縦横の長さが等しい六角形とする。【選択図】  図１
2007172596.tif 000002
【特許請求の範囲】
【請求項１】
背景と明度または色によって識別可能な多角形の外形形状と、該外形形状の内部の外周に一定の間隔をおいて配置された内部領域とを有し、前記内部領域を特定のサイズに分割し、該分割領域それぞれの明度または色によって、情報を表現する２次元コードであって、
前記分割領域が縦横の長さが等しい六角形であること特徴とする２次元コード。
【請求項２】
前記外形形状は四角形であることを特徴とする請求項１記載の２次元コード。
【請求項３】
前記四角形の外形形状の４頂点のそれぞれに近接する６角形の形状を有する４つの分割領域は、前記２次元コードの回転方向を決定するために使用されることを特徴とする請求項１記載の２次元コード。
【請求項４】
画像から２次元コードの外形形状を検出する外形形状検出工程と、
前記検出された外形形状に応じて、内部のビット領域の位置を特定するビット領域特定工程と、
前記特定されたビット領域の明度または色に基づいてビット値を取得するビット値取得工程とを有し、
前記２次元コードは、背景と明度または色によって識別可能な多角形の外形形状と、該外形形状の内部の外周に一定の間隔をおいて配置された内部領域とを有し、該内部領域は、縦横の長さが等しい六角形の形状を有する複数のビット領域が配置されていることを特徴とする２次元コード検出方法。
【請求項５】
前記外形形状は四角形であることを特徴とする請求項４記載の２次元コード検出方法。
【請求項６】
さらに、四角形の外形形状の４頂点のそれぞれに近接する６角形の形状を有する４つのビット領域のビット値に基づき、前記２次元コードの回転方向を決定する回転方向決定工程を有することを特徴とする請求項４記載の２次元コード検出方法。
【請求項７】
前記ビット領域特定工程は、前記外形形状検出工程において検出された外形形状と物理的な外形形状との間の関係から、２次元射影変換に相当する情報を算出し、該２次元射影変換相当の情報からビット領域の画像における位置を計算することを特徴とする請求項４に記載の２次元コード検出方法。
【請求項８】
コンピュータに、請求項４乃至７のいずれかに記載の２次元コード検出方法を実行させるためのコンピュータプログラム。
【請求項９】
請求項８記載のコンピュータプログラムを、コンピュータ読み取り可能に格納した記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像から検出できる２次元コードの構成、２次元コードを画像から検出する方法および装置に関するものである。
【背景技術】
【０００２】
［従来技術１］
図９に示すＭａｘｉＣｏｄｅと呼ばれる二次元コードが従来から知られている。この二次元コードは、中心部に同心円状に半径の異なる帯状の黒領域と白領域があり、その部位を基準に、周囲に微小な正六角形領域が規則正しく並んでいる構造となっている。各正六角形を黒または白とすることによって、２値の情報を表現し、それをカメラで撮影することによって情報を読み出す。以下では、これを２次元コード１と呼ぶ。
【０００３】
また、図１０や図１１に示す二次元コードも従来から知られている。これらの二次元コードは、背景と明度によって分離できる正方形領域をもち、その内部を均等に区分した各々の小正方形領域の明暗によって情報を表現する。通常、これらのコードはカメラによって撮影され、背景からこの２次元コードの外形を識別・検出し、内部に割り当てられた各区分領域の明度に基づいて情報が読み出される。以下では、この種の２次元コードを２次元コード２と呼ぶ。
【０００４】
２次元コード１と２次元コード２は、物品等に貼り付けておき、その物品の情報、例えば、製品番号、個体番号、製造日などの製造に関わる情報や、発送元、発送先、発送日時などの輸送に関わる情報などを管理するために利用されるのが通例である。これらのコードは、コードが貼り付けられている面に対して、ほぼ正対する方向からカメラによって撮像されるのが通例であり、その撮像装置の撮像面に対して十分に大きく映るように撮影されることで認識ができることを前提としている。
【０００５】
［従来技術２］
現実空間に仮想物体を重畳表示する複合現実感（以下ＭＲ）技術において、仮想画像を描画するために以下のような処理が行われる。現実空間にある正方形のマーカを用い、そのマーカを基準とする現実カメラの位置姿勢を推定する。そして、得られた現実カメラの位置姿勢を基にして仮想カメラのパラメータを設定することによって仮想物体を描画する。
【０００６】
その代表的な例として、非特許文献１の中に示されているＡＲＴｏｏｌＫｉｔがある。ＡＲＴｏｏｌＫｉｔでは、図１２に示すようなマーカを利用する。このマーカは、その外形となる正方形が画像に撮影されて形成される四角形を画像から検出する。そして、その四角形が３次元空間中では正方形である元来の形に対してどのように変形しているか（透視投影の影響によって歪んでいるか）を情報源として、カメラの位置姿勢を推定する。さらに、複数のマーカを同時に利用された場合に、個々のマーカを識別するために、各マーカの内部はそれぞれ異なる図形パターンによって塗り分けられている。このマーカの識別は、画像から得られた四角形の内部の模様が予め用意されたパターンとの間でパターンマッチング技術を用いて行われる。以下ではこれを２次元コード３と呼ぶ。
【０００７】
また、ＭＲ用のマーカとしては、非特許文献１の中で示されている図１３のようなマーカもある。このマーカでは、内部を４ｘ４の格子状に区切り、各格子点を中心とする円を黒くするか否かによって、個別に識別する機能を実現している点が、２次元コード３と異なる。しかしながら、その外形である正方形を基準として、カメラの位置姿勢を推定する点に関しては二次元コード３と同様である。これを２次元コード４と呼ぶ。
【０００８】
ＭＲ分野においては、他にも様々な正方形外形を持つマーカが提案されている。例えば、図１４に示すようなマーカがある。このマーカは、正方形の外部に正方形の面内での回転方向と特定するための複数の小正方形領域を持っている。内部は、４ｘ４領域に分割され、それぞれが小さな正方形となっており、各小正方形の明度によって個別の識別情報を表現している。これを２次元コード５と呼ぶ。
【０００９】
以上の２次元コード３、２次元コード４、２次元コード５のようなＭＲに利用されているマーカは、外形として正方形を有している点が共通の特徴である。
【非特許文献１】Ｘ．Ｚｈａｎｇ，Ｓ．Ｆｒｏｎｚ，Ｎ．Ｎａｖａｂ：  Ｖｉｓｕａｌ  ｍａｒｋｅｒ  ｄｅｔｅｃｔｉｏｎ  ａｎｄ  ｄｅｃｏｄｉｎｇ  ｉｎ  ＡＲ  ｓｙｓｔｅｍｓ：Ａ  ｃｏｍｐａｒａｔｉｖｅ  ｓｔｕｄｙ，  Ｐｒｏｃ．ｏｆ  Ｉｎｔｅｒｎａｔｉｏｎａｌ  Ｓｙｍｐｏｓｉｕｍ  ｏｎ  Ｍｉｘｅｄ  ａｎｄ  Ａｕｇｍｅｎｔｅｄ  Ｒｅａｌｉｔｙ  （ＩＳＭＡＲ’０２），２００２．
【発明の開示】
【発明が解決しようとする課題】
【００１０】
従来技術１で述べた２次元コード１は、その全体の領域の中心部分に同心円があり、その周囲を小さな正六角形領域が取り囲んでいる。各正六角形領域は、それぞれお互いに隙間なく接合しており、白か黒かによって塗り分けられている。この白または黒によって２値を表現しており、カメラによって撮影され読み出される。そのとき、中心の同心円を基準とし、６０度の角度毎のラインを基準として、各正六角形領域の場所を特定している。言い換えると、２次元コード１にほぼ正対して撮影する場合（２次元コードの貼り付けられた面の法線とほぼ等しい光軸をもつカメラによって撮影する場合）にしか、指標を検出することができない。これは２次元コード２においても同様であり、従来技術１の２次元コードは、指標にほぼ正対した状態で撮影することを前提としたものであって、正対しない任意の方向からの撮影を考慮したものではない。
【００１１】
従来技術２で開示されている２次元コード３、４、５は、いずれも明度の高い背景に対して、明度の低い正方形を外形の形状として持っている。従来技術２では、画像における外形の正方形の変形の仕方を情報源として、２次元コードに対するカメラの位置姿勢を推定計算する。外形の正方形が画像に捉えられたときの変形は、カメラの撮影工程で行われる、３次元空間を２次元の画像に投影する射影変換の影響によって引き起こされる。すなわち、従来技術２の指標は、指標に対してほぼ正対する向きから撮影することを前提としておらず、むしろ逆に指標の法線方向とは異なる視軸方向から撮影されることを前提とする指標である。
【００１２】
２次元コード３に関しては、指標の個体識別を行うために、正方形領域内部の任意のパターンをパターンマッチングの技術によって識別する。指標の内部のパターンは、パターンマッチングで使用するために予め別途保存されている。そして、撮影画像から指標の内部を切り出した画像を正規化した後に、保存されていたパターンとの比較を行い、似ているか否かによって個体を識別する。この方法には、利用するパターンの種類と一度に撮影される指標の数が増えてくると、パターンマッチングしなければならない組み合わせが増えてしまうため、計算時間が膨大になってしまうという問題がある。また、パターン数を増やすと、必然的に似通ったパターンが増えてしまうため、誤認識を引き起こしてしまう問題があり、実質上一度に利用できるパターンの数は数十個程度である。
【００１３】
それに対して、２次元コード４と２次元コード５は、正方形内部を等間隔で区切った小さな正方形領域とし、その明度（白黒）によって１ビットを表現する方法である。この方法であれば、２次元コード３で生じる問題は発生しない。しかし、以下に示すような改善の余地があった。
【００１４】
２次元コードにできるだけ多くの情報を載せるためには、ビット領域を多くする必要がある。しかし、ビット領域は画像から認識される必要があるため、一つあたりの大きさを小さくすることに限界がある。逆に言えば、一つあたりのビット領域が画像に撮像・投影されたときの大きさによって、その２次元コードが認識可能であるか否かが決定される。一般に、ＭＲ用途においては、できるだけ小さな２次元コードが利用できることが望ましい。しかし、２次元コードに載せる情報を増やすと画面上で十分に大きく映るように物理的にも大きな２次元コードとしなければならない。よって、２次元コードの大きさと載せられる情報量はトレードオフの関係にある。そのため、できるだけ全体の大きさを小さく、かつ、情報量を多くするためには、２次元コード内のビット領域を細密に配置することが望ましい。
【００１５】
２次元コード４は、内部のビット領域を円形としている。そして、ビット領域である円形領域が、正方格子状に配置されている。この方法では、一つの円形領域が小さく映った場合に円形領域間の隙間が問題となる。例えば、あるひとつの領域が黒で塗られていたときに、その円形領域が画像において一画素幅相当近くまで小さくなったとき、画像上では周囲の隙間の白い領域と混在した中間明度として観測されることとなってしまう。これは、ビット読み出しの際に誤りを増やしてしまうことを意味する。すなわち、内部の領域は隙間を設けることなく隣接して並んでいることが望ましい。
【００１６】
２次元コード５では、内部のビット領域は正方形として区切られていて隣接しているため、その問題は発生しない。この指標は必ずしも指標に対して正対していない方向から撮影されていても検出できることを特徴としている。正方形の内部を等間隔で区切った小さな正方形は、画像上ではどのような向きとして撮影されるのかが不定である。言い換えると、どのような形の四角形の投影像となるのかが不定である。２次元コード５は、画像上に捉えられた個々の小さな四角形領域の明度を基にして、ビット値に変換する処理を行うものであることから、明度を読み出すときにはその個々の小四角形中心点を基準として、その位置の明度を読み出すこととなる。そのとき、正しく明度を読み出すためには、どのような向きで撮影されようとも、画像中の投影された小正方形領域が読み出し位置中心に十分な一定距離を持っているように撮影されなければならない。この条件を言い換えると、元来の指標上での小領域が画像に映ったときに、その小領域の投影像が読み出し位置を中心として画像面上で円形状に近いほど、指標上での小領域の面積を小さくできることを意味する。個々のビットを表現する小領域の面積が小さいほど、指標全体の面積に占めるビット割り当て数を大きくすることができるためである。それに対して、個々の小領域が正方形であると、投影像は角の立った四角形となっていることから、必ずしも効率よく密度高く配置されているとはいえない。一方、２次元コード４は、個々の領域は円形状であるものの、領域間には無駄な隙間が存在しており、ビット領域は高密度には配置されているとはいえない。
【００１７】
これらのことから、２次元コード４と２次元コード５には、ビット領域の高密度化に対する改善の余地があった。
【課題を解決するための手段】
【００１８】
本願請求項１記載の２次元コードは、背景と明度または色によって識別可能な多角形の外形形状と、該外形形状の内部の外周に一定の間隔をおいて配置された内部領域とを有し、前記内部領域を特定のサイズに分割し、該分割領域それぞれの明度または色によって、情報を表現する２次元コードであって、前記分割領域が縦横の長さが等しい六角形であること特徴とする。
【００１９】
また、本願請求項４記載の２次元コード検出方法は、画像から２次元コードの外形形状を検出する外形形状検出工程と、前記検出された外形形状に応じて、内部のビット領域の位置を特定するビット領域特定工程と、前記特定されたビット領域の明度または色に基づいてビット値を取得するビット値取得工程とを有し、前記２次元コードは、背景と明度または色によって識別可能な多角形の外形形状と、該外形形状の内部の外周に一定の間隔をおいて配置された内部領域とを有し、該内部領域は、縦横の長さが等しい六角形の形状を有する複数のビット領域が配置されていることを特徴とする。
【発明の効果】
【００２０】
本発明によれば、２次元コードに対してほぼ正対する方向からだけではなく、任意の方向からその２次元コードを検出することを可能としながら、高密度にビット情報を埋め込むことが可能となり、かつ、指標からカメラ位置姿勢を推定する上で効果の高い正方形の形状を持った指標とすることができる。
【発明を実施するための最良の形態】
【００２１】
以下、添付図面を参照して、本発明をその好適な実施形態に従って詳細に説明する。
【００２２】
［第１の実施形態］
図１は、本実施形態における２次元コードである。図１（ａ）の１０１は２次元コードの背景となる黒い背景であって、１０２のようにその上に白い正方形外形として２次元コードが形成されている。その外枠からある距離をおいて内部を縦横の長さの等しい互いに隣接し合う六角形に区分する領域を設け、それぞれが黒ないしは白に塗り分けられている。
【００２３】
各区分された領域と外形正方形との関係は図１（ｂ）に示す通りである。図１（ｃ）に示すものが、個々の縦横の長さの等しい六角形である。この図に示すように、ひとつの六角形の縦と横の長さは、それぞれ共にｓであり、右辺左辺のそれぞれ中間点に頂点をもち、上辺下辺上の右辺左辺からｓ／４の距離の位置に頂点をもつ。図１（ｄ）に示す１０３、１０４、１０５、１０６は、後述するステップＳ３０３からＳ３０６で利用する正方形外形の４頂点に近接する４つの小六角形領域である。それぞれ、あらかじめ定めた白、黒、黒、黒の順で塗り分けられている。
【００２４】
この２次元コードを読み取る２次元コード検出装置の好適な構成例に関して以下に説明する。図２は、図１で示した２次元コードを検出する２次元コード検出装置の構成例を示すブロック図である。
【００２５】
図２の２０１はカメラであり、図１で示した２次元コードを撮像する。撮像画像は、２０２の画像取り込み部を通して２０４のバスコントローラの調停のもと、２０５のメモリに書き込まれる。また、２０５のメモリには、本実施形態の処理手順が記憶されていて、２０３がその処理手順に従って処理を行うＣＰＵである。２０４は、２０３のＣＰＵ、２０２の画像取り込み部、２０５のメモリ間でデータの入出力と調停を行うバスコントローラである。
【００２６】
この図２で示したブロック図で構成される２次元コード検出装置の処理手順を示すフローチャートを図３に示し、図３を用いて処理手順を説明する。
【００２７】
まず、ステップＳ３０１にて図１に示した２次元コードを２０１のカメラで撮影し、撮影した画像を２０２の画像取り込み部を通して取得する。得られた画像からステップＳ３０２にて、画像に映った２次元コードの外形形状である四角形を検出する。カメラでの撮影は指標に正対する姿勢で撮影されるとは限らない（むしろＭＲ用途で利用する場合、様々な角度から撮影されることになる）上に、画像の横軸縦軸と指標の外形である正方形の辺の向きもそろっていない。
【００２８】
このステップＳ３０２の外形形状を検出する処理を図４を用いて説明する。図４（ａ）は指標を正対する位置から見た様子であり、内部のビット領域を省略して描いたものである。ここでは、一旦、内部のビット領域に関しては無視をして説明をする。この指標を実際のカメラで撮影すると例えば図４（ｂ）のような画像を得ることとなる。指標が図形として正方形であっても、カメラで撮影される際には正対した位置からの撮影を行わない限り、このように正方形ではない凸四角形として観察されることとなり、かつその向きは任意の向きを採り得る。さらに、図形上での白領域と黒領域は、それぞれ明度の高低として捉えられることとなり、境界領域では中間調の明度として得られる。そこで、図４（ｂ）の画像を二値化することによって図４（ｃ）のように二値画像化する。二値化の方法はどのような方法でも構わないが、単純な閾値処理によって実現できる。この二値画像から、白領域の外周を形成している画素を追跡検出すると、図４（ｄ）のような一画素幅で閉ループをなす画素の並びを得ることができる。この画素の並びに対して、折れ線近似処理を行うと、図４（ｅ）に示す四角形が得られる。このとき、元の図形が四角形以外の図形である場合、折れ線近似の結果折れ点が４点とはならないため、元の図形が四角形であったか否かを判別することができる。また、以上のＳ３０２の説明において、指標の内部のビット領域に関して無視をしたが、内部のビット領域と正方形外形との間には間隔が設けてあるため、指標が画像中で占める大きさがある一定以上ある場合（その間隔が画像上で１画素幅以上ある状態で撮影されている場合）には、このＳ３０２の処理に関して内部の領域は影響しない。
【００２９】
次にステップＳ３０３にて、検出された四角形外形形状を基準として、図１（ｄ）の１０３、１０４、１０５、１０６に示す２次元コードの４頂点に近接する小六角形領域の画像面上での中心位置を計算する。これを図５を用いて説明する。図５に示すように、指標元来の図形形状である正方形の各頂点を（Ｘｎ、Ｙｎ）（ｎ＝０、１、２、３）と表し、画面中で検出された外形形状である四角形の各頂点を（ｘｎ、ｙｎ）と表すと、それらの間には以下の式に示す２次元射影変換の関係が成り立つ。
【００３０】
【数１】
2007172596.tif 000003
【００３１】
この関係式は、以下のように同次変換により行列演算によって記述することも可能である。
【００３２】
【数２】
2007172596.tif 000004
【００３３】
このとき、行列
【００３４】
【数３】
2007172596.tif 000005
【００３５】
は、ホモグラフィ行列と呼ばれる。（Ｘｎ、Ｙｎ）と（ｘｎ、ｙｎ）とは、対応する点が４点あるため、数１あるいは数２に示す関係式が４つ成り立つ。言い換えると連立方程式を解くことによって、数３に示すホモグラフィ行列、あるいは、数１のＨ１１、Ｈ１２、Ｈ１３、Ｈ２１、Ｈ２２、Ｈ２３、Ｈ３１、Ｈ３２の８つのパラメータをその４点の関係から求めることができる。
【００３６】
以上により、一旦数１あるいは数２の関係式が得られれば、空間（Ｘ、Ｙ）上の任意の点を空間（ｘ、ｙ）上の点へと写像することが可能となる。すなわち、指標の内部の任意の点が、画像に映った際に画像上でどの位置に投影されているのかを求めることができる。ここで、１０３、１０４、１０５、１０６の中心点は、正方形の対角線上にあることが重要となる。上下の辺と左右の辺との間の間隔は均等である。そのため、２次元コードの外形正方形がどのような向きで画面に撮影されていようとも、検出された四角形の外形を基準として、画像上での４つの小六角形領域の中心点を求めることができる。ただし、それぞれを外形四角形のみから区別することはできない。言い換えると、ステップＳ３０３では、１０３、１０４、１０５、１０６のそれぞれを区別することはしないまま、４つの小六角形領域の中心点を求める処理を行う。
【００３７】
次にステップＳ３０４にて、得られた４つの小六角形領域の中心位置の明度値を取得する。ステップＳ３０３にて得られている４点の位置は、撮像された四角形の外形形状を基にして、正方形が撮像されるときに起こる射影変換によって計算されたものであるため、整数値とはならない。したがって、対応する画素を直接的に表すものではない。そこで、その位置の明度を最近傍となる画素値とするか、もしくは、近傍４画素の値を基にして線形補間などの方法によって内挿することによって求める。これを図６を用いて説明する。ステップＳ３０３で得られている小領域の画像上での中心位置が６０１であるとする。６０１の座標値は整数値とはならないので、画像の画素の中心ではない。その６０１の点の明度値を求める処理というのが、ステップＳ３０４の処理である。最近傍点の画素値とするという処理とは、６０２にその中心点が最も近い画素である画素６０２の画素値によって６０１の明度値を代用するという意味である。近傍４画素の画素値から線形補間などの方法によって内挿するという処理とは、画素６０２、６０３、６０４、６０５の画素値から、６０１の明度値を内挿計算するという意味である。
【００３８】
次にステップＳ３０５にて、得られた明度値を白か黒かの二値に変換する。最も簡便な方法は、予め定めておいた閾値との比較によって、白か黒かを判定する方法である。予め定めておいた閾値として、ステップＳ３０２で行った画像の二値化の時に利用した閾値を利用してもよいし、他のいかなる方法を用いても構わない。以上のステップＳ３０３からステップＳ３０５までの処理により、２次元コードの４頂点に近接する４つの小六角形領域の白黒の判定が行えた。この結果を基にして、ステップＳ３０６にて、２次元コードの画像面内での回転方向を決定する。これは、１０３、１０４、１０５、１０６はあらかじめ白、黒、黒、黒、で塗り分けられていることを利用して、ステップＳ３０４の処理結果と照合して、それぞれを特定する処理である。
【００３９】
以上によって、２次元コードが画像面内にどのように射影変換によって変形して撮影されているか、および、画像面内でどのような回転方向となっているのかを特定できた。この結果を基にして、内部のビット領域の読み出し処理に移る。ステップＳ３０７では、図１（ｂ）に示す個々のいずれかビット領域（図１（ｄ）の１０３、１０４、１０５、１０６以外）の中心点を数１もしくは数２を用いて、画像上での位置を計算する。次に、ステップＳ３０８にて、その画像上での中心点の位置の明度値を取得する。この明度値を取得する処理は、ステップＳ３０４で行っている処理と同様である。得られた明度値を、ステップＳ３０９にてビット値に変換する。これは、ステップＳ３０５にて、４つの小六角形の明度値を二値に変換したときと同様な処理であり、閾値との大小判定などによって達成される。ステップＳ３１０で、すべてのビット領域の処理が終わったかどうかを判定し、ステップＳ３０７からステップＳ３０９までの処理をすべてのビット領域に対して処理がなされるまで繰り返す。また、ステップＳ３０９をステップＳ３０８とステップＳ３１０との間ではなく、ステップＳ３１０にてすべてのビット領域での処理が終わった後の工程に組み入れても良い。その場合、ステップＳ３０７、Ｓ３０８、Ｓ３１０にて、すべての内部ビット領域に渡って各内部のビット領域の明度値が取得されている状態となっているので、その後得られている明度値の分布を基準にして、それぞれをビット値への変換するといった処理を行うことも可能である。
【００４０】
以上により、本実施形態における正方形を外形形状とし、内部を互いに隣接する縦横の長さの等しい小六角形領域で区分した２次元コードからビット値を読み出す処理の説明を行った。正方形外形から内部の縦横の長さの等しい六角形の検出装置および検出方法に関して説明を行ったが、このような２次元コードが従来技術にある課題を解決できる理由を図７を用いて以下に詳細に説明する。
【００４１】
図７（ａ）は、図１（ｂ）と同じ図であり、本実施形態で利用する正方形外形の内部に縦横の長さが等しい互いに隣接し合う六角形のビット領域が配置されている図である。これに対して、図７（ｂ）は、従来技術２の２次元コード５と同様な方法でビット領域を設けた場合であり、内部が互いに隣接し合う正方形で構成されている。それぞれ１つのビット領域をハッチングしている。一見すると図７（ａ）の一つの領域は、図７（ｂ）の一つの領域に比較して小さく見えるが、図７（ｃ）に示す通り、重ねて描くと図７（ｂ）の正方形の周囲に若干の隙間があるだけである。これらの２次元コードは、上述したように任意の向きからカメラによって撮影されることとなるので、カメラで撮像されたときのそれぞれの像を重ねて描くと、例えば、図７（ｄ）に示すようになる。ここで、カメラは通常、格子状に並んだ画素を持っていて、それぞれの画素の画素値として外界の明度や色を取得するものであるので、図６を利用してステップＳ３０３およびステップＳ３０７の説明で述べたように、この投影領域の中心を基準として、最近傍点や４近傍点の画素値から、このビット領域の明度や色を取得することとなる。この図７（ｄ）に示すように、ビット領域が正方形であった場合に、ビット領域が六角形であった場合と比較して画像上で面積が増える領域は、中心から離れた四角形の頂点付近となる。これは、中心の明度値や色を取得するときに、ほとんど影響を与えないことを意味する。２次元コードはカメラに対して様々な角度で撮影されることを前提としているため、中心点から一定の距離を一つのビット領域とすること、すなわち、できるだけ円に近い方が、一つあたりのビット領域の面積を少なくすることが可能である。言い換えれば、図７（ａ）と図７（ｂ）の２次元コードは、様々な角度から撮影されることを前提とした場合、全体外形がカメラに映った大きさが等しいとしたときのビットを正しく読み出すことが可能な下限のサイズがほぼ等しい。それにも関わらず、図７（ａ）には、１８個のビット領域があるのに対して、図７（ｂ）には１６個のビット領域しかない。このように本発明によれば、２次元コードの最小認識サイズを悪化させることなく、多くのビットを記録することを可能とすることができる。
【００４２】
また、内部の六角形の縦横の長さを等しくすることにも以下のような利点がある。ＭＲ用途でこのような２次元コードを指標として利用するとき、その形状が正方形であることには重要な意味がある。正方形であれば、カメラの位置姿勢を推定するときに、その正方形を観察する向きに特定の指向性が発生せず、様々な角度から観察することが可能となる。そこで、正方形の外形のまま、もしも、内部の六角形を正六角形とした場合、正方形外形に対して周囲の隙間を均等にしながら内部に隣接して配置することが困難になる。例えば、図１５のように、上下の隙間が左右の隙間に比較して広い配置とすることとなる。言い換えると、正方形頂点に近接する小六角形領域の中心点が、図１（ｄ）と異なり正方形の頂点を基準としたときに上下方向と左右方向とで対称な位置とならない（対角線上にない）。そのため、ステップＳ３０３からステップＳ３０６の処理によって、四角形外形の検出結果から四角形の画像面上での回転方向を決定することはできない。各ビット領域の位置は、正方形外形の上下方向と左右方向とで対称な配置ではないため、画像面内での回転方向を決定した後でなければ、外形形状の検出結果のみから各ビット領域の中心点を求めることはできない。それに対して、縦横の長さが等しい六角形を用いる場合、図１（ｄ）に示す通り、外形の正方形に対して、正方形頂点に最も隣接するビット領域の中心点の位置を、正方形の頂点を基準としたときに上下方向と左右方向とで対称な位置とすることができる。それ以外のビット領域に関しては、その４つのビット領域によって四角形の回転方向を決定した後に、中心点を計算すればよい。なお、従来技術２で述べた２次元コード５のように、正方形外形とは別にその外部に指標を設けることによって、正方形の画面上での回転方向を決定することも可能であるが、その場合、指標の全体サイズが大きくなってしまう。そのような大きな面積を指標に割り当てることができるのであれば、より大きな正方形とすることが可能であり、本発明によればより多くのビットを割り当てることが可能になる。
【００４３】
また、より多くのビットを表現したい場合には、図１６に示すようにより多くのビット領域を配置してもよい。このように、内部のビット領域を縦横の長さが等しい六角形とすることによって、正方形に配置することが容易となる。
【００４４】
［変形例］
本発明の好適な実施形態として、個々のビット領域は白黒に塗り分けられていて、その明度を閾値判定することによって１／０である二値に変換する方法を説明したが、複数の明度を利用してｎ値に変換する方法であってもよいし、個々のビット領域を複数の色によって塗り分けても良い。その場合であっても、ニアレストネイバー法、あるいは双一次補間法などの近傍画素からの補間法によって、個々の領域の色を取得できることに変わりはない。得られた色を複数（ｍ個）の登録済み色候補の中から最も確からしいものとして選択することによって、ｍ個の状態に変換することができる。
【００４５】
また、背景から分離する外形形状である正方形の地を白とし、内部のビット領域を白黒によって表現する場合に関して説明を行ったが、地は黒であってもよいし、他の明度や色であってもよい。さらには、図８に示すように、地を白とした２次元コードと地を黒とした２次元コードを混在利用し、地の色により１ビットを追加表現するようにしてもよい。
【００４６】
また、２次元コードの回転方向を決定するための１０３、１０４、１０５、１０６を、それぞれ白、黒、黒、黒として説明を行ったが、これは、黒、白、白、白などの他のパターンでもよい。さらには、白、黒、黒、黒の２次元コードと、黒、白、白、白の２次元コードを混在利用し、その違いによって１ビットを追加表現するようにしてもよい。
【００４７】
［他の実施例］
また、上述の実施形態で説明した指標識別装置と同等の機能を複数の機器から構成されるシステムによって実現しても良い。
【００４８】
尚、前述した実施形態の機能を実現するソフトウェアのプログラムを、記録媒体から直接、或いは有線／無線通信を用いて当該プログラムを実行可能なコンピュータを有するシステム又は装置に供給し、そのシステム或いは装置のコンピュータが該供給されたプログラムを実行することによって同等の機能が達成される場合も本発明に含む。
【００４９】
従って、本発明の機能処理をコンピュータで実現するために、該コンピュータに供給、インストールされるプログラムコード自体も本発明を実現するものである。つまり、本発明の機能処理を実現するためのコンピュータプログラム自体も本発明に含まれる。
【００５０】
その場合、プログラムの機能を有していれば、オブジェクトコード、インタプリタにより実行されるプログラム、ＯＳに供給するスクリプトデータ等、プログラムの形態を問わない。
【００５１】
プログラムを供給するための記録媒体としては、例えば、フレキシブルディスク、ハードディスク、磁気テープ等の磁気記録媒体、ＭＯ、ＣＤ−ＲＯＭ、ＣＤ−Ｒ、ＣＤ−ＲＷ、ＤＶＤ−ＲＯＭ、ＤＶＤ−Ｒ、ＤＶＤ−ＲＷ等の光／光磁気記憶媒体、不揮発性の半導体メモリなどがある。
【００５２】
有線／無線通信を用いたプログラムの供給方法としては、コンピュータネットワーク上のサーバに本発明を形成するコンピュータプログラムそのもの、もしくは圧縮され自動インストール機能を含むファイル等、クライアントコンピュータ上で本発明を形成するコンピュータプログラムとなりうるデータファイル（プログラムデータファイル）を記憶し、接続のあったクライアントコンピュータにプログラムデータファイルをダウンロードする方法などが挙げられる。この場合、プログラムデータファイルを複数のセグメントファイルに分割し、セグメントファイルを異なるサーバに配置することも可能である。
【００５３】
つまり、本発明の機能処理をコンピュータで実現するためのプログラムデータファイルを複数のユーザに対してダウンロードさせるサーバ装置も本発明に含む。
【００５４】
また、本発明のプログラムを暗号化してＣＤ−ＲＯＭ等の記憶媒体に格納してユーザに配布し、所定の条件を満たしたユーザに対して暗号化を解く鍵情報を、例えばインターネットを介してホームページからダウンロードさせることによって供給し、その鍵情報を使用することにより暗号化されたプログラムを実行してコンピュータにインストールさせて実現することも可能である。
【００５５】
また、コンピュータが、読み出したプログラムを実行することによって、前述した実施形態の機能が実現される他、そのプログラムの指示に基づき、コンピュータ上で稼動しているＯＳなどが、実際の処理の一部または全部を行ない、その処理によっても前述した実施形態の機能が実現され得る。
【００５６】
さらに、記録媒体から読み出されたプログラムが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれた後、そのプログラムの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるＣＰＵなどが実際の処理の一部または全部を行ない、その処理によっても前述した実施形態の機能が実現され得る。
【図面の簡単な説明】
【００５７】
【図１】第１の実施形態の２次元コードの構成図である。
【図２】第１の実施形態の２次元コード検出装置を表すブロック図である。
【図３】第１の実施形態の２次元コード検出装置が行う処理のフローチャートである。
【図４】２次元コードの外形正方形を検出する方法を説明するための模式図である。
【図５】元来の２次元コードの外形正方形と、それが画像映ったときの形状との対応を示し、その間の射影変換を説明するための模式図である。
【図６】２次元コード面上でのある特定のビット領域の中心点とその近傍画素との関係を示す模式図である。
【図７】第一の実施形態の２次元コードと従来技術の２次元コードの一つあたりのビット領域の比較を説明する模式図である。
【図８】２次元コードとして、白い地の色の上にビット領域をもつ場合と、黒い地の色の上にビット領域とをもつ場合を示す図である。
【図９】従来利用されていた正方形形状を基本とした指標の例であり、２次元コードの一種である。
【図１０】従来利用されていた正方形形状を基本とした指標の例であり、２次元コードの一種である。
【図１１】従来利用されていた正方形形状を基本とした指標の例であり、２次元コードの一種である。
【図１２】従来利用されていた正方形形状を基本とした指標の例であり、２次元コードの一種である。
【図１３】従来利用されていた正方形形状を基本とした指標の例であり、２次元コードの一種である。
【図１４】従来利用されていた正方形形状を基本とした指標の例であり、２次元コードの一種である。
【図１５】正方形外形に正六角形のビット領域を配置した場合の構成図である。
【図１６】多ビット化したの２次元コードの構成例を示す図である。
【図１】
2007172596.tif 000006
【図２】
2007172596.tif 000007
【図３】
2007172596.tif 000008
【図４】
2007172596.tif 000009
【図５】
2007172596.tif 000010
【図６】
2007172596.tif 000011
【図７】
2007172596.tif 000012
【図８】
2007172596.tif 000013
【図９】
2007172596.tif 000014
【図１０】
2007172596.tif 000015
【図１１】
2007172596.tif 000016
【図１２】
2007172596.tif 000017
【図１３】
2007172596.tif 000018
【図１４】
2007172596.tif 000019
【図１５】
2007172596.tif 000020
【図１６】
2007172596.tif 000021