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