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