(57)【要約】【課題】３種類の高さの並びでデータを担持させ読み取りを行う高低差コードを新たに提案するものである。特に、高低差コードの周囲にノイズがある場合や、コード部分が傾いている場合でも、正確に切り出し、読み取りを行うことができる高低差コードを新たに提案するものである。【解決手段】連続的に配列されている複数の立体的形状領域（凹凸）からなる光学式自動認識コードにおいて、高さ方向の共通の仮想基準平面が設定され、立体的形状領域の前記仮想基準平面に対する高さの配列によりデータを表す。【選択図】図１
2011103032.tif 000002
【特許請求の範囲】
【請求項１】
連続的に配列されている複数の立体的形状領域からなる光学式自動認識コードにおいて、
高さ方向の共通の仮想基準平面が設定され、
前記立体的形状領域の前記仮想基準平面に対する高さの配列によりデータを表すことを特徴とする光学式自動認識コード。
【請求項２】
連続的に配列されている複数の立体的形状領域からなる光学式自動認識コードにおいて、
高さ方向の共通の仮想基準平面が設定され、
前記立体的形状領域は、傾きを有する面を有し、
前記立体的形状領域の配列方向に対する、前記傾きを有する面の傾き方向の配列によりデータを表すことを特徴とする光学式自動認識コード。
【請求項３】
連続的に配列されている複数の立体的形状領域からなる光学式自動認識コードにおいて、
前記立体的形状領域は、傾きを有する面を有し、
高さ方向の共通の仮想基準平面が設定され、
前記立体的形状領域の前記仮想基準平面に対する高さ、及び、前記傾きを有する面の傾き方向の配列によりデータを表すことを特徴とする光学式自動認識コード。
【請求項４】
請求項１から３のいずれか１項に記載の光学式自動認識コードにおいて、
前記仮想基準平面を示す実体的な基準平面指示形状を有することを特徴とする光学式自動認識コード。  
【請求項５】
請求項１から３のいずれか１項に記載の光学式自動認識コードにおいて、
前記立体的形状領域を示す、切り出し基準形状を有することを特徴とする光学式自動認識コード。
【請求項６】
請求項１から３に記載の光学式自動認識コードにおいて、
前記仮想基準平面を示す実体的な基準平面指示形状と、
前記立体的形状領域を示す、切り出し基準形状と、
を有することを特徴とする光学式自動認識コード。
【請求項７】
請求項１に記載の光学式自動認識コードにおいて、
前記立体的形状領域の高さの種類が３種以上であることを特徴とする光学式自動認識コード。  
【請求項８】
請求項２に記載の光学式自動認識コードにおいて、
前記立体的形状領域の面の傾きの方向が４方向以上であることを特徴とする光学式自動認識コード。
【請求項９】
請求項３に記載の光学式自動認識コードにおいて、
前記立体的形状領域の高さの種類が３種以上であり、かつ、前記立体的形状領域の面の傾きの方向が４方向以上であることを特徴とする光学式自動認識コード。
【請求項１０】
請求項４に記載の光学式自動認識コードを読み出し、前記データを復元する読み取り方法において、
前記基準平面指示形状を検知し、前記基準平面指示形状から前記仮想基準平面を設定する基準平面設定ステップを含むことを特徴とする光学式自動認識コード読み取り方法。
【請求項１１】
請求項５に記載の光学式自動認識コードを読み出し、前記データを復元する光学式自動認識コード読み取り方法において、
前記切り出し基準形状を検知し、前記切り出し基準形状が示す領域の中に前記立体的形状領域があると想定し、前記切り出し基準形状が示す領域の中に存在する立体的形状が、前記データを表す前記立体的形状領域であるとして検知する立体的形状領域検知ステップ、
を含むことを特徴とする光学式自動認識コード読み取り方法。
【請求項１２】
請求項１から９のいずれか１項に記載の光学式自動認識コードを付した物品。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、光学式自動認識コード及びその読み取り方法に関する。特に、立体的形状の基準面に対する「高さ」の並びによってデータを表す光学式自動認識コード及びその読み取り方法に関する。
【背景技術】
【０００２】
バーコードに代表される光学式自動認識コードは、製品情報等を表す手段として種々活用されている。これらの光学式自動認識コードを対象物にマーキングする方法としては、例えば、光学式自動認識コードを印刷したシールを貼付する方法や、プリンタ等を用いて対象物に光学式自動認識コードを直接印刷する方法等が知られている。このような方法で付された光学式自動認識コードは、劣悪な環境下（例えば、霜や水滴がつきやすい冷凍庫内など）においては、シールが剥がれてしまったり、マーキングした部分のインク落ちが生じてしまう等により、データの読み取りに支障が生じる場合がある。
【０００３】
一方、このような問題に対して、以下の先行技術文献には、凹凸パターンを有する型を用いてバーコードを立体的に成形する方法及びその読み取り装置が開示されている。これによれば、耐環境性に優れた立体的なバーコードを実現することができる。しかしながら、ここで開示されているバーコードは、従来のバーコードを単に立体的に表したものに過ぎず、その情報量は、従来のバーコードと同程度の情報量しか保持し得ないものである。
【０００４】
また、この特許文献１に記載の立体バーコードを読み取るには、この凹凸パターンを光センサで走査して、凸部表面からの反射のみを受光して従来のバーコード同様に読み取ることが特許文献１には開示されている。
【０００５】
このように、特許文献１に記載されている立体バーコードは、「立体」と言っても、従来のバーコードを凹凸パターンで表現したものであるので、結局のところ、立体上に、ある程度平滑であって、ある程度の広さを有する面が必要となる。例えば、上述した冷凍庫内においてこの立体バーコードを用いる場合は、一定の平滑な平面が必要となり、利用できる物品や場所に制限が生じる可能性がある。  
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開平０９−０６９１３１
【発明の概要】
【発明が解決しようとする課題】
【０００７】
上述のように、劣悪な環境下（例えば、霜や水滴がつきやすい冷凍庫内など）においても、マーキング部分の剥がれや滲み等の影響を受けずに、かつ、マーキングや読み取りを簡便に行うことができる光学式自動認識コードはこれまで知られていない。
【０００８】
そこで、本発明は、本願発明者等がこれまでに提案してきた「色彩配列コード」の考え方を応用して、３種類の高さの並びでデータを担持させ読み取りを行う光学式自動認識コード（以下、「高低差コード」という）を新たに提案するものである。また、当該光学式自動認識コードの周囲にノイズがある場合や、コード部分が傾いている場合でも、正確に切り出し、読み取りを行うことができる、光学式自動認識コード及びその読み取り方法を新たに提案するものである。
【課題を解決するための手段】
【０００９】
（１）本発明は、上記目的を達成するために、連続的に配列されている複数の立体的形状領域からなる光学式自動認識コードにおいて、高さ方向の共通の仮想基準平面が設定され、前記立体的形状領域の前記仮想基準平面に対する高さの配列によりデータを表すことを特徴とする光学式自動認識コードである。
【００１０】
（２）また、本発明は、連続的に配列されている複数の立体的形状領域からなる光学式自動認識コードにおいて、高さ方向の共通の仮想基準平面が設定され、前記立体的形状領域は、傾きを有する面を有し、前記立体的形状領域の配列方向に対する、前記傾きを有する面の傾き方向の配列によりデータを表すことを特徴とする光学式自動認識コード。
【００１１】
（３）連続的に配列されている複数の立体的形状領域からなる光学式自動認識コードにおいて、前記立体的形状領域は、傾きを有する面を有し、高さ方向の共通の仮想基準平面が設定され、前記立体的形状領域の前記仮想基準平面に対する高さ、及び、前記傾きを有する面の傾き方向の配列によりデータを表すことを特徴とする光学式自動認識コードである。
【００１２】
（４）また、本発明は、（１）から（３）のいずれかに記載の光学式自動認識コードにおいて、前記仮想基準平面を示す実体的な基準平面指示形状を有することを特徴とする光学式自動認識コードである。  
（５）また、本発明は、（１）から（３）のいずれかに記載の光学式自動認識コードにおいて、前記立体的形状領域を示す、切り出し基準形状を有することを特徴とする光学式自動認識コードである。
【００１３】
（６）また、本発明は、（１）から（３）に記載の光学式自動認識コードにおいて、前記仮想基準平面を示す実体的な基準平面指示形状と、前記立体的形状領域を示す、切り出し基準形状と、を有することを特徴とする光学式自動認識コードである。
【００１４】
（７）また、本発明は、（１）に記載の光学式自動認識コードにおいて、前記立体的形状領域の高さの種類が３種以上であることを特徴とする光学式自動認識コードである。  
（８）また、本発明は、（２）に記載の光学式自動認識コードにおいて、前記立体的形状領域の面の傾きの方向が４方向以上であることを特徴とする光学式自動認識コードである。
【００１５】
（９）また、本発明は、（３）に記載の光学式自動認識コードにおいて、前記立体的形状領域の高さの種類が３種以上であり、かつ、前記立体的形状領域の面の傾きの方向が４方向以上であることを特徴とする光学式自動認識コードである。
【００１６】
（１０）また、本発明は、（４）に記載の光学式自動認識コードを読み出し、前記データを復元する読み取り方法において、前記基準平面指示形状を検知し、前記基準平面指示形状から前記仮想基準平面を設定する基準平面設定ステップを含むことを特徴とする光学式自動認識コード読み取り方法である。
【００１７】
（１１）また、本発明は、（５）に記載の光学式自動認識コードを読み出し、前記データを復元する光学式自動認識コード読み取り方法において、前記切り出し基準形状を検知し、前記切り出し基準形状が示す領域の中に前記立体的形状領域があると想定し、前記切り出し基準形状が示す領域の中に存在する立体的形状が、前記データを表す前記立体的形状領域であるとして検知する立体的形状領域検知ステップ、を含むことを特徴とする光学式自動認識コード読み取り方法である。
【００１８】
（１２）また、本発明は、（１）から（９）のいずれかに記載の光学式自動認識コードを付した物品である。
【発明の効果】
【００１９】
以上述べたように、本発明は、基準面に対する「高さの並び」（高低差）でデータを担持させる「高低差コード」及びその読み取り方法であり、冷凍庫内など霜や水滴の影響を受けやすい劣悪な環境下でも、確実にデータを読み取ることができる。
【図面の簡単な説明】
【００２０】
【図１】高低差コードの説明図である
【図２】図１における高低差コードを、「コードを形成する凹凸配列」の配列方向に対して垂直な方向から見た場合の説明図である。
【図３】複数の平面を有する物体の説明図である。
【図４】高低差コードの「コードを形成する凹凸配列」の１つの高さを、切り出し基準面の高さと同一にした場合の説明図である。
【図５】図４における高低差コードを、「コードを形成する凹凸配列」の配列方向に対して垂直な方向から見た場合の説明図である。
【図６】コードを形成する凹凸配列が、対象物の端部に位置する場合の説明図である。
【図７】高低差コードの周囲に水平基準面を設け、その周囲に切り出し基準面を設けた場合の説明図である。
【図８】「水平基準指標形状」を用いた場合の説明図である。
【図９】「切り出し基準形状」を用いた場合の説明図である。
【図１０】斜面コードの説明図である。
【図１１】斜面型高低差コードの説明図である。
【発明を実施するための形態】
【００２１】
実施の形態１（高低差コード）
１  「高低差コード」について
本願発明に係る「高低差コード」は、本願発明者等がこれまでに提案してきた「色彩配列コード」の考え方を応用したものである。
【００２２】
「色彩配列コード」は、色彩の配列のみでデータを表す光学式認識コードであり、本願発明者が独自に開発したものである。これらは、いずれも対象物上にマーキングされた３色の色彩を付した領域で構成され、色彩領域の配列順序にのみ依存してデータを担持するため、コードに含まれるその領域の形状や寸法に依存しないという特徴を持っている。これによれば、色彩配列コードが変形してもデータに影響はなく、正確にデコードすることができるのである。
【００２３】
しかしながら、この色彩配列コードを、霜や水滴の影響が大きい冷凍庫内に応用しようとすると、「色彩」は水滴や汚れに影響を受けやすいため、退色や汚れ等により色彩の検知が難しいという問題点が生じてしまう。そのため、このような環境下に応用するためには別のパラメータを用いてデータを表すことが望まれた。そこで、本願出願人は、以下のような検討することにより、色彩配列コードの考え方を応用して、「高さの並び」でデータを表す「高低差コード」の発明に至ったものである。
【００２４】
色彩配列コードは、「色彩の配列」にデータを担持させているが、実は、平面（画像）を少なくとも３つの領域に区分けできれば、基本的に同様の考え方（データの担持方法）を適用できる。すなわち、領域を１、２、３と区別するとすれば、「１−３−２−１−３−１−２−３−」の様に、「領域が現れる順番」だけで多くのデータを担持させることができる。色彩配列コードにおいては、この１、２、３を、例えばＲ、Ｇ、Ｂとすることで、「Ｒ−Ｂ−Ｇ−Ｒ−Ｂ−Ｒ−Ｇ−Ｂ−」のような並びによってデータを表す。
【００２５】
これに対して、仮に領域が１、２の２種の場合は、「１−２−１−２−１−２−」のように、表せるデータは極めて少数になってしまう。従って、色彩配列コードのデータ担持方法を応用する場合は、平面を少なくとも３つの領域に分けることが好ましいと言える。  どのような要素で「領域」を区別するかは、その光学式自動認識コードが用いられる環境により選択することが好ましい。ここでは、冷凍庫内等の霜や水滴が想定される場面を考慮して、色落ちやかすれの心配のないパラメータが好ましい。そこで、本願発明者はまず「立体的形状」で領域を区別することが適していると考えた。次に、３種以上の区分けをするために、「高さ」が、低、中、高、の３種類の立体的形状を連続的に配列し、その並びでデータを表せば、より多くの情報を表すことが可能となることを想到するに至ったのである。例えば、上の例において、領域１、２、３を、高、中、低とし、「高−低−中−高−低−高−中−低」のような並びでデータを表すのである。このような光学式自動認識コードを「高低差コード」と呼ぶ。
【００２６】
このような検討により、本願発明者は「立体的形状」かつ「３種類以上の高さの並び」でデータを表すという斬新な「高低差コード」を、本発明により初めて実現したのである。
【００２７】
この「高低差コード」は、「高さの並び」でデータを表しているから、凹凸の広さ、面積、形状等はデータに影響を及ぼさない。この特徴を有するからこそ、上述の冷凍庫内のような劣悪な環境下においても有効に利用できるのである。なお、上述の特許文献１に記載された発明は、従来のバーコードと同様に、凹凸の幅や形状でデータを表しているから、凹凸の形状等の自由度は非常に限られたものとなっている。
【００２８】
また、本願発明者は、読み取りの際に用いる撮像装置についての検討も行った。色彩配列コードは、「色彩」を検知する必要があることから、読み取りに際しては、ＣＣＤカメラ等を用いて撮像する。一方、「高低差コード」は、「高さ」を検知する必要があるところ、ＣＣＤカメラ等では「高さ」を正確に測定することはやや困難である。そのため、高低差コードの読み取りに際しては、立体的形状の「高さ」を測定することができる三次元測定器を用いることが好ましい。
【００２９】
三次元測定器に類する技術はすでに知られているところ、ここでは例として、赤外光の位相を利用した三次元測定器を「３次元キャプチャカメラ」として想定する。本技術は、変調赤外光の反射をエリアセンサの各画素がそれぞれ対応する箇所からの反射を受け取り、その位相に基づき測定器から対応部位までの距離を検知するものであり、一瞬にしてある領域の三次元形状（各位置における測定器からの距離）を検出する仕組みである（例えば、スイス  ｍｅｓａ社製Ｓｗｉｓｓｒａｎｇｅｒ等  ｈｔｔｐ：／／ｗｗｗ．ｊ−ｃｌａｖｉｓ．ｃｏ．ｊｐ／Ｍｅｓａ−ｓｒ／ｉｎｄｅｘ．ｈｔｍｌ）。この技術を応用すれば、ＣＣＤカメラでは知ることができなかった、立体的形状の「高さ（高低差）」を一瞬で測定することができるのである。このように、本発明に係る高低差コードは、光学的に認識することができるから、光学式自動認識コードの一であるといえよう。
【００３０】
以下、本発明の好適な実施の形態を図面に基づき説明する。
【００３１】
図１には、「高」「中」「低」の３種の高さの配列にデータを担持させた高低差コードの例が示されており、図２には、図１の高低差コードを、「コードを形成する凹凸配列」の配列方向に対して垂直な方向から見た場合の説明図が示されている。なお、「高さの配列」とは「高、中、低」の高さの並び（変化）のことをいう。この凹凸配列における各凹凸パターンが、特許請求の範囲における「立体的形状領域」の好適な一例であり、データを胆持する各凹凸パターンが「連続的に複数配列」されている状態が、上の「コードを形成する凹凸配列」である。すなわち、この「コードを形成する凹凸配列」は、特許請求の範囲における「連続的に配列されている複数の立体的形状領域」の好適な一例である。なお、「連続的に」配列されている状態は、各立体的形状領域が隙間なく配列されている状態に加えて、ある一定間隔以下で、「連続しているとみなされる」状態で配列されている場合も含む。
【００３２】
ここで、領域の「高さ」は、相対的な高さによって区別することができるから、ある基準面を想定して、その基準面からの高さによって低、中、高を区別すればよい。そこで、「コードを形成する凹凸配列」の一番低い部分を「仮想的に」凹凸基準面として想定し、「仮想凹凸基準面１０」とする。「高低差コード」は、この「仮想凹凸基準面１０」を基準とした「高さ」の並びでデータを表すのである。なお、この「仮想凹凸基準面」は、特許請求の範囲における、「仮想基準平面」の好適な一例である。
【００３３】
図２におけるａは「高」を、ｂは「中」を、ｃは「低」を、ｏは高低差コードの周囲の面を表す。なお、図２においてｃは、「コードを形成する凹凸配列」の一番低い部分に相当するから、仮想凹凸基準面１０と同一となっている。このように、仮想凹凸基準面１０を「高さ」の１つとして利用すれば（ここでは「低」として利用している）、より少ない凹凸の種類で高低差コードを形成することができる。
【００３４】
高低差コードにおいて、データは「高さの並び」で表すから、例えば「ａ→ｂ」「ｂ→ｃ」「ｃ→ａ」の並びが１を表し、「ａ→ｃ」「ｃ→ｂ」「ｂ→ａ」の並びが０を表す場合（２進法）を想定すると、図１及び２の高低差コードは、「１００００１０１１０１１」を表している。ここでは２進法について説明したが、「高さの並び」ではなく「高さ」自体にデータを担持させることもでき、その場合は「高」「中」「低」の３種類により３進法のデータを表すこともできる。なお、この場合は、同じ値が連続する場合にデータの境目の判断が難しくなる可能性がある。そのような場合は、凹凸の幅を決めておく、必ず０に戻る、等予め決めておくことでデータの境目の検知を容易とすることができる。
【００３５】
このように、高低差コードは、連続する（もしくは連続しているとのみなされる）複数の立体的形状領域の高さの並びでデータを表す光学式自動認識コードである。
【００３６】
２  高低差コードの切り出し・読み取りについて
本願発明者らは、上述の色彩配列コードの「読み取りアルゴリズム」に関してもこれまでに種々提案している（例えば、特願２００７−１３０５０４、特願２００７−１６４２８６等）。これらのアルゴリズムの特徴は、対象画像の中から、領域の形状や寸法に依存しないで色彩配列コードを効率的に切り出すことができる点である。
【００３７】
一方、本実施の形態に係る高低差コードは、上述したように、色彩配列コードと同様に、「高さの並び」によってのみデータが表現され、各領域の面積（広さ）や形状には依存しないという特徴を有している。このような特徴を有するため、霜や水滴が付着するような劣悪な環境下でもデータを担持することができるものである。
【００３８】
従って、本実施の形態に係る高低差コードにおいても、上述した色彩配列コードの読み取りの原理をそのまま応用して、読み取り方法を構築することが好ましいと考えられる。しかし、撮像画像の中から高低差コードを切り出し、読み取る過程においては、以下のような高低差コードに特有の問題点がある。
【００３９】
ノイズの問題
これまで述べた「高低差コード」は、立体的形状に単純に高低差を付けて「コードを形成する凹凸配列」を形成することによって当然実現することができる。しかし、三次元キャプチャカメラ等の撮像装置の撮像範囲内には、高低差コード以外の様々な高低パターン（ノイズパターン）が存在する場合がある。すなわち、撮像装置の画面内（読み取り範囲内）には、高低差コード以外に様々な物体が存在する可能性があり、その場合、それぞれ測定器までの距離を有している。これらがノイズとなり、正規の高低差コード以外に色々な高低パターンを測定器に返すこととなる。この中から目的の凹凸配列（コードを形成する凹凸配列）を発見し、その範囲を特定する（切り出す）ためには、単に高低差を付けるだけでなく、何らかの工夫が必要となる。
【００４０】
傾きの問題
また、対象物上の高低差コードが傾いている場合も、正確な読み取りに支障が生じると予想される。具体的には、目的の「コードを形成する凹凸配列」が測定器に対して正対しているとは限らず、通常、何らかの傾きを持っている場合が多い。このような場合、同じ値を返すべき高さも配列の位置によって返す値が異なってくる恐れがある。これらは高低差コードの傾きを予め知ることで校正できるものの、高低差コード自体を切り出せなければ、結局、傾きを知ることはできない。まして、前述したように周囲にノイズがある中で傾きを知ることは一層困難となると思料される。そのため、高低差コードが傾いている場合でも正確な読み取りを行うための何らかの工夫が必要となる。
【００４１】
このような問題点に対して、本願発明者は鋭意研究を重ね、「高低差コード」に以下のような工夫を施すことにより、これらの問題点を解消することに成功したのである。
【００４２】
３  実施例について
これまで述べた、高低差コード、すなわち、高さ（の変化）にデータを担持させたコードに関し、上述の問題を解決する方法について説明する。
【００４３】
実施例１  「切り出し基準面」の利用
本実施の形態では、高低差コードに「切り出し基準面２０」を設けることにより、上述のノイズの問題を解消する方法について説明する。この「切り出し基準面２０」は、高低差コードの「コードを形成する凹凸配列４０」の周囲（全周）に、「仮想凹凸基準面１０」に対して平行、かつ平面となるように設ける。ここで、「平面」とは、面積がある基準値以上の広さを有する領域をいう。この「平面」は、全く凹凸のない面に限られず、高低差コードの「コードを形成する凹凸配列４０」の段差（凹凸）に比べて極めて小さい段差（凹凸）であれば、凹凸を有している面であってもよい。このように、切り出し基準面２０を、コードを形成する凹凸配列４０の「全周」に設けることで、一定の平面に囲まれていない凹凸パターン（ノイズパターン）とコードを形成する凹凸配列４０とを区別して切り出しを行うことができる。また、コードを形成する凹凸配列４０の周りが一定広さを有するの平面となるから、高低差コードの近辺にノイズパターンをなくすことができ、正確なデータの読み取りが可能となる。そのため、切り出し基準面２０を設けることにより、上述のノイズの問題を解消できるのである。
【００４４】
なお、この「切り出し基準面２０」は、特許請求の範囲における「立体的形状領域を示す、切り出し基準形状」の好適な一例である。
【００４５】
この場合の高低差コードの切り出しは以下のようなアルゴリズムで行うことができる。
【００４６】
切り出し・読み取りのアルゴリズム
高低差コードの切り出し及び読み取りについて、図３に基づいて説明する。図３には、平面ａ〜ｆを有する物体が示されている。この場合、三次元キャプチャカメラで得られたデータ（三次元高低データ）でコードを探す工程において、
（１）撮像データ全体から、一定の広がりを持つ「平面」を探す。
【００４７】
（２）上記「平面」のうち、その平面に包含される凹凸パターンを持つ平面を「切り出し基準面候補」とする。図３では、平面Ａ〜Ｆのうち、凹凸パターンを持つ平面Ｄ が「切り出し基準面候補」となる。
【００４８】
（３）各「切り出し基準面候補」を、それぞれ包含される凹凸パターンを一体的に、３次元キャプチャカメラの光軸に対して垂直な面に回転移動換算し、
（４）包含される凹凸パターンの高さを予め与えられたパラメータに量子化する。
【００４９】
（５）上記量子化したパラメータを予め与えられたルールに沿ってデータ化（デコード）し、原データを得る。
【００５０】
（６）当然、上記工程でデータ化できない平面は「非コード範囲」として、これを含む平面ごと除外する。
【００５１】
このアルゴリズムでは、「凹凸パターンを持つ平面」を切り出し基準面候補とし、その面に包含される凹凸パターンについて切り出し・読み取りを行っている（上記（３）参照）。そのため、「平面に包含されている凹凸パターン」であれば、「コードを形成する凹凸配列」以外の凹凸（ノイズパターン）であっても切り出しをされることとなる。しかし、このような場合でも、予め与えられたパラメータにより量子化できないものについては
「非コード範囲」として除外されるから（上記（４）（５）参照）、読み取りの際に影響を受けることはほとんどない。例えば、予め定められた基準より、深すぎる（低すぎる）凹部があるものは量子化の対象とすることはできない。このような凹凸パターンについては、上記（４）において量子化が失敗し、読み取り対象から外される。
【００５２】
また、所定のデータを表すために凹凸パターンには予めフォーマットを定めることが好ましい。例えば、スタートビットやエンドビットに一定のパターンを設けるなどのフォーマットを設け、そのようなフォーマットのルールに基づかないものについてはデコードの対象から外すことが好適である。このようにして、デコード対象ではない、いわゆるノイズを対象から外すことにで、より正確な読み取りが可能となる。  
なお、図１及び２では、高低差コードの「コードを形成する凹凸配列４０」と、「切り出し基準面２０」とは異なる高さで形成されている。すなわち、高低差コードのコードを形成する凹凸配列４０は、３種類の高さ、ａ点、ｂ点ｃ点から構成されている。これに対して切り出し基準面２０は、高さｏに位置している（図２参照）。
【００５３】
一方、図４及び図５に示すように、「コードを形成する凹凸配列４０」の１つの高さ（ここでは「高」を表すａ）を、切り出し基準面２０の高さｏと同一にすることも好適である。この場合は、「コードを形成する凹凸配列」は、いくつかに分断されて切り出し基準面２０に内包されている。そのため、高低差コードの「コードを形成する凹凸配列４０」がどの範囲なのか、始点と終点が不明確となる可能性がある。従って、高低差コードのフォーマットに所定の条件を予め定めておくことで、コードを形成する凹凸配列４０の存在をより確実に検出することができるようにすることが好ましい。
【００５４】
このような条件としては、コードを形成する凹凸配列４０について、これらが直線状に配列されていること、コードを形成する凹凸配列４０の先端と終端が決められた１つのの凹凸パターンであること等の条件を定めておくことが好ましい。
【００５５】
切り出し基準面２０は、上述のように高低差コードの「全周」に設ける。この状態は、言い換えれば、切り出し基準面２０に「コードを形成する凹凸配列４０」を「内包」させているとも言える。すなわち、これまで述べたように、切り出し基準面２０にコードを形成する凹凸配列４０を「内包」させることにより、データを表す凹凸以外の凹凸（ノイズ）と区別することが容易となるのである。これに対して、コードを形成する凹凸配列４０が切り出し基準面２０に「内包」されていない場合、すなわち、コードを形成する凹凸配列４０が対象物の端部に位置するような場合は（図６参照）、コードを形成する凹凸配列４０の近辺にノイズとなる凹凸部分が存在する可能性があり、その影響を受けて切り出しが困難となったり、誤ったデータを読み取ってしまう可能性が出てくる。そのため、上述の図１及び図４のように、高低差コードの「コードを形成する凹凸配列４０」は切り出し基準面に「内包」されるように、対象物の端部以外の位置に形成することが好ましい。
【００５６】
実施例２  「水平基準面」の追加
上述の実施例１においては、高低差コードに「切り出し基準面２０」を設けることで、ノイズが存在する場合でも高低差コードの切り出し・読み取りを容易とすることを説明した。
【００５７】
本実施の形態では、上述の「傾きの問題」を解決するために、さらに、「水平基準面３０」を設ける例について説明する。すなわち、「切り出し基準面２０」に加え、さらに、「水平基準面３０」を設けることにより、上述のノイズの問題に加えて、傾きの問題を解決することもできるのである。
【００５８】
この場合も、「データを形成する凹凸配列４０」は、異なる３種以上の高さ（例えば、高、中、低）によって形成することが好ましい。本形態において特徴的なことは、「切り出し基準面２０」に加えて、さらに、「水平基準面３０」を設けることである。具体的には、高低差コードの「コードを形成する凹凸配列４０」の周囲（全周）に仮想凹凸基準面１０に対して平行、かつ平面の「水平基準面３０」を設け、さらにその水平基準面３０の周囲に、平面の「切り出し基準面２０」を設ける。但し、本実施の形態においては、切り出し基準面２０は、水平基準面３０と平行である必要はない。図７に、高低差コードの周囲に水平基準面３０を設け、その周囲に切り出し基準面２０を設けた場合の例を示す。
【００５９】
高低差コードは、仮想凹凸基準面１０を基準とした「高さ」の並びでデータを表すものである。従って、高低差コードの傾きは、仮想凹凸基準面１０の傾きと同一となる。本実施の形態では、水平基準面３０は、仮想凹凸基準面１０に対して「平行」に設けられるから、この水平基準面３０に基づいて仮想凹凸基準面１０の傾きを検知することができ、その結果高低差コードの傾きを校正することができることとなるのである。
【００６０】
この「水平基準面３０」は、特許請求の範囲における「仮想基準平面を示す実体的な基準平面指示形状」の好適な一例である。
【００６１】
なお、上述の実施例１においては、切り出し基準面２０を、仮想凹凸基準面１０と「平行」に設けているから、同時に「水平基準面」の役割も果たしていることとなる。すなわち、図１及び図４に示すように、「切り出し基準面２０」と「水平基準面３０」とを同一平面とすることも好適である。
【００６２】
このように、本実施の形態においては、切り出し基準面２０に加えて、水平基準面３０も設けたので、ノイズパターンの存在に加え、さらに高低差コードが傾いている場合でも、高低差コードの切り出し及び読み取りを円滑に行うことができる。このような動作のアルゴリズムを以下順次説明する。
【００６３】
切り出し・読み取りのアルゴリズム
この場合、三次元キャプチャカメラで得られたデータ（三次元高低データ）で高低差コードを探す工程は、以下のようになる。
【００６４】
（１）撮像データ全体から、一定の広がりを持つ「平面１」を探す。
【００６５】
（２）上記「平面１」に包含される別の「平面２」の存在の有無を確認する。
【００６６】
（３）「平面２」に包含される凹凸パターンの存在の有無を確認する。
【００６７】
（４）上記平面１及び２、凹凸パターンの包含関係が確認できた平面２を水平基準面候補とする。
【００６８】
（５）上記水平基準面候補を「３次元キャプチャカメラ」光軸に対して垂直な面に回転移動換算し、
（６）包含される凹凸パターンの高さを予め与えられたパラメータに量子化する。
【００６９】
（７）上記量子化したパラメータを予め与えられたルールに従ってデータ化（デコード）し、原データを得る。
【００７０】
なお、図７においては、高低差コードの凹凸パターンの形状は、図１及び図４のような「矩形」ではなく、「長円形状」としている。これは、エンドミル等で加工した場合を想定したものである。このように、高低差コードの凹凸パターンの形状、寸法、配列方向、さらには各凹凸パターンの隙間はどのようなものであっても良いのである。なぜなら、高低差コードは、「高さ」にのみデータを担持させていることから、凹凸パターンの形状、寸法、配列方向、各凹凸パターンの隙間等は、その表すデータに影響を与えないという特徴を有するからである。この特徴は、本願発明者が既に提案している「色彩配列コード」と同様の特徴である。すなわち、「色彩配列コード」は、「色彩の配列」にのみデータを担持させているため、色彩が描かれる形状や大きさ等はどのようなものであっても、データに影響を及ぼさない。本願発明に係る「高低差コード」も同様に、仮想凹凸基準面１０に対する「高さの並び」にのみデータを担持させるものであるから、「高さ」を表す凹凸の形状や寸法等は、データに直接的には影響を及ぼさないのである。
【００７１】
ここでは、対象物にエンドミル等で穴をあけて高低差コードをマーキングすることを述べたが、もちろん、対象物の製造段階で金型を用いて成形（マーキング）できる場合は、そのような方法を用いても良い。また、エンドミルなどの堀削手段の他に、各種のエッチング手段によって対象物を削ることによって高低差コードをマーキングすることも好ましい。また、逆に、対象物の上に所定の部材を積み重ねることによって高低差を表現し、コードを形成することも好ましい。その他、高低差を対象物の上に表現することができる手法であれば、どのようなマーキング方法であっても構わない。
【００７２】
実施例３  「水平基準指標形状３５」の利用
ここまで述べた「水平基準面３０」は、平面により構成しているが、「高低差コードの傾きを知るために仮想凹凸基準面の傾きを示す」との目的を達成できるものであれば、２本以上の線分を表す形状である「水平基準指標形状３５」を用いてもよい。この「水平基準指標形状３５」は、例えば、２つ以上の曲面や稜線等によって形成することもできる。
【００７３】
本実施例３においては、２個の水平基準指標形状３５ａ、３５ｂを用いて、水平基準面３０と平行な線分を表している。この水平基準指標形状３５ａ及び３５ｂは、それぞれ異なる線分を表すことにより、水平基準面３０たる平面を表している。ここでは、２種の方向の異なる線分を用いたが、上で述べたように、曲面や稜線などの種々の形状を用いることもできる。
【００７４】
なお、この「水平基準指標形状３５」は、特許請求の範囲における「仮想基準平面を示す実体的な基準平面指示形状」の好適な一例である。
【００７５】
図８に、「水平基準指標形状３５」を用いた場合の例を示す。図８においては、水平基準指標形状３５ａ及び３５ｂの稜線５０ａ、５０ｂを仮想凹凸基準面１０と平行にすることで、水平基準面を表し、上記目的を達成している。なお、ここでいう稜線とは、水平基準指標形状の最上部を結ぶ線をいう。
【００７６】
実施例４  「切り出し基準形状２５」の利用
「切り出し基準面２０」についても、ここまでは平面により構成する場合について説明してきたが、「コードを形成する凹凸配列４０と、水平基準面３０又は水平基準指標形状３５を明示する」との目的を達成することができれば、一定の形状の「切り出し基準形状２５」を用いても良い。図９には、「三角形」の形状により「コードを形成する凹凸配列４０」を指し示す「切り出し基準形状２５ａ及び２５ｂ」を用いた場合の例を示す。この場合、高低差コードの切り出し工程においては、三角形を探し、その三角形の間に配置されている凹凸パターンのみを読み取り対象とすることで、ノイズパターンと区別することができるのである。
【００７７】
また、図９においては、切り出し基準形状２５ａ、ｂの表面の高さが、仮想凹凸基準面と平行に形成されている。このようにすれば、切り出し基準形状２５ａ、ｂを水平基準指標３５として利用することができる。すなわち、切り出し工程において、三角形を探し、この高さから傾きを修正して高低差コードを読み取ることができるのである。
【００７８】
図９においては、切り出し基準形状２５ａ及び２５ｂを結ぶ直線と平行な平面が仮想凹凸基準面１０と平行であると想定し、この仮想凹凸基準面１０に基づきコードを形成する凹凸配列４０の高さの変化を読み取るのである。
【００７９】
この時、切り出し基準形状２５ａ及び２５ｂの大きさが小さい場合には、これらの間を結ぶ線と平行な平面を一位に特定しにくい場合も考えられる。その場合には、切り出し基準形状２５ｃを新たに設け、合計３個の切り出し基準形状２５ａ、２５ｂ、２５ｃを用いて、それらの間を結ぶ線分が仮想凹凸基準面１０と平行であると認定することも好ましい。また、さらに、切り出し基準形状２５が十分に大きく、ある程度広い頭頂部の面積を有する場合には、この切り出し基準形状２５の頭頂部の平面がそのまま仮想凹凸基準面１０を表す。この場合であっても、より正確に仮想凹凸基準面１０を認識するために、複数個の切り出し基準形状２５ａ、２５ｂを設けておき、これらの頭頂部の平面部の傾きから仮想凹凸基準面１０の面の傾きを認定することも好ましい。
【００８０】
図９では、切り出し基準形状２５が、コードを形成する凹凸配列４０を示すと同時に、傾きを修正する水平基準指標３５ともなっており、２つの機能を持たせている。しかし、この２つの機能を分けて、切り出し基準形状２５と、上述の水平基準面３０又は水平基準指標形状３５とをそれぞれ設けても好適である。
【００８１】
なお、この「切り出し基準形状２５」は、特許請求の範囲における「立体的形状領域を示す、切り出し基準形状」の好適な一例である。
【００８２】
ここまで述べてきた、高低差コードの切り出しのための条件を改めて整理すると、高低差コードを形成する際には、以下の２つの条件を備えることが好ましい。
【００８３】
Ａ  傾き補正のための「仮想凹凸基準面」を示すことのできる「水平基準面」、または、「水平基準面」を表すことのできる２本以上の線分を表す形状である「水平基準指標形状」（２つ以上の曲面や稜線等）を有すること
Ｂ  「コードを形成する凹凸配列」と、「水平基準面」又は「水平基準指標形状」と、を明示できる「切り出し基準面」又は「切り出し基準形状」が存在すること
もちろん、ノイズの傾きが生じ得ない環境下においては、Ｂの条件を満たさなくてもよいし、傾きの問題が生じ得ない環境下においては、Ａの条件を満さなくてもよい。さらに、いずれの問題も生じ得ない環境下においては、ＡＢいずれの条件も満たさなくても（すなわち、単純な凹凸パターンで高低差コードを形成するだけで）高低差コードの切り出し・読み取りを正確に行うことができる。
【００８４】
実施の形態２（「面の傾き」の並びにデータを担持させる）
上述の第一の実施の形態においては、高さ（の変化）にデータを担持させる「高低差コード」に関し、ノイズの問題・傾きの問題を解決する方法について説明してきた。本実施の形態においては、「高低差コード」の考え方をさらに応用し、各立体的形状領域の面を斜面として、その「面の傾き方向の並び」にデータを担持させた「斜面コード」について説明する。
【００８５】
ここまで述べた高低差コードは、三次元キャプチャカメラを用いて「高低の変化の連続」をデータ化することにより、読み取りを行う。本願発明者は、この三次元キャプチャカメラを活用すれば、「高さの配列」ではなく、「面の傾き方向の配列（コードを形成する傾き方向の配列）」をデータ化することができると考えた。すなわち、三次元キャプチャカメラは、測定器から対応部位までの距離を検知することができるのであるから、対象物の「高さ」だけでなく、基準となる方向に対する「面の傾き方向」を検知することも可能である。このような考えに基づき、本願発明者は、立体的形状領域の面を斜面とすることで、「高低差コード」を応用した、「面の傾き方向の配列」にデータを担持させる「斜面コード」を実現するに至ったのである。なお、「面の傾き方向の配列」とは、立体的形状領域の配列方向に対する面の傾き方向の並び（変化）のことをいう。
【００８６】
例えば、図１０（２）に、一定の傾き（斜面）を有する立体的形状領域を連続的に配列した「斜面コード」を形成した場合の例を示す。ここでは、図１０（１）に示すように、面の傾き方向を、配列方向を基準に「正逆上下」の４つの方向で区別する。このようにすれば、傾きの大きさが１種類であっても各傾きの方向に４つの値（すなわち、正逆上下）を割り当てることができることとなる。この並びでデータを表す場合、仮に、「正→逆」「逆→上」「上→下」「下→正」「正→上」「逆→下」の並びを０、「正→下」「下→上」「上→逆」「逆→正」「上→正」「下→逆」の並びを１とすれば、図１０（２）の高低差コードは、「００００１００１」を表すこととなる。
【００８７】
このように、「斜面コード」は、連続する（もしくは連続しているとのみなされる）複数の立体的形状領域の面の傾き方向の並びでデータを表す光学式自動認識コードである。
【００８８】
なお、この「斜面コード」においては、各パターン（立体的形状領域）の「高さ」はデータに影響を与えないから、どのような高さで形成しても良い。
【００８９】
また、図１０においては、ノイズの問題を解決するために、上述の実施の形態１における場合と同様に、コードを形成する凹凸配列１４０の周囲に切り出し基準面１２０を設けている。もちろん、切り出し基準面１２０に代えて、切り出し基準形状１２５を用いることも好適である。反対に、ノイズの問題が生じ得ない場合は、これらは形成しなくても良い。
【００９０】
さらに、図１０においては、傾きの問題を解決するために、コードを形成する各立体的形状領域の稜線１５０を仮想凹凸基準面１１０と平行としている。これにより、稜線１５０を水平基準指標形状１３５の代わりとすることができ、その結果、斜面型高低差コードの傾きを検知することができるのである。
【００９１】
稜線とは、各立体的形状領域の最上部の近傍に位置する線をいい、少なくとも、仮想凹凸基準面の傾きを表すことができる程度の長さを持った「線」であることが好ましい。そのため、稜線１５０を用いて傾きを補正するためには、立体的形状領域の最上部が「線」を形成するように、「角柱」であることが好ましい。「円柱」とする場合は、最上部の近傍は「点」となり、稜線で傾きを補正することは困難となる場合がある。そのような場合は、別途水平基準面１３０や水平基準指標形状１３５を設けることが好ましい。
【００９２】
ここでは、稜線１５０によって傾き補正を行ったが、もちろん、上述の実施の形態１と同様に、水平基準面１３０や水平基準指標形状１３５によって傾きを補正することも好適である。反対に、傾きの問題が生じ得ない場合はこれらを形成しなくても良い。
【００９３】
「斜面コード」は、データの担持方法を「面の傾き方向の配列」としたことを除いて、基本的な構造は上述の「高低差コード」と同様である。従って、この斜面コードの切り出し・読み取りは、上述の高低差コード（実施の形態１）の場合と同様に行うことができる。
【００９４】
実施の形態３（「面の傾き及び高さ」の並びでデータを表す）
上の第二の実施の形態では、「面の傾き」の並びにのみデータを担持させた例を示したが、本実施例においては、「面の傾き及び高さ」の並びにデータを担持させる場合の例について説明する。このような光学式自動認識コードを「斜面型高低差コード」と呼ぶ。本実施の形態のように「傾き」と「高さ」の両方でデータを表せば、パターン（面）を増やさなくてもより多くの情報を表すことができ、情報密度を上げることが可能となる。
【００９５】
仮に、高さとして「高、中、低」の３種類、傾きとして「前、後、上、下」の４種類にデータを担持させれば、各面１２水準の種類にデータを担持させることができる。例えば、図１１に示すように１１面構成とした場合において、各面に０から９の１０種類のデータのいずれかを担持させれば、単純計算で約１０１１通りの異なったデータを表すことが可能となるのである。
【００９６】
このように、「斜面型高低差コード」は、連続する（もしくは連続しているとみなされる）複数の立体的形状領域の「面の傾き及び高さ」の並びでデータを表す光学式自動認識コードである。
【００９７】
図１１においては、コードを形成する凹凸配列のみが示されているが、これまで述べてきたように、ノイズの問題や傾きの問題を解決するために、切り出し基準面（又は切り出し基準形状）や水平基準面（又は水平基準指標形状）を用いることも好適である。
【００９８】
また、本実施の形態における「斜面型高低差コード」も、基本的な構造は「高低差コード」と同様であるから、切り出し・読み取りは、述の高低差コード（実施の形態１）の場合と同様に行うことができる。
【符号の説明】
【００９９】
１０、１１０  仮想凹凸基準面
２０、１２０  切り出し基準面
２５、１２５  切り出し基準形状
３０、１３０  水平基準面
３５ａ、３５ｂ、１３５  水平基準指標形状
４０、１４０  データを表す凹凸配列
５０ａ、５０ｂ、１５０  稜線
ｏ  高低差コードの周囲の高さ
ａ  高さ「高」
ｂ  高さ「中」
ｃ  高さ「低」
Ａ  平面
Ｂ  平面
Ｃ  平面
Ｄ  平面
Ｅ  平面
Ｆ  平面
Ｈ  高さ
Ｌ  傾き方向
【図１】
2011103032.tif 000003
【図２】
2011103032.tif 000004
【図３】
2011103032.tif 000005
【図４】
2011103032.tif 000006
【図５】
2011103032.tif 000007
【図６】
2011103032.tif 000008
【図７】
2011103032.tif 000009
【図８】
2011103032.tif 000010
【図９】
2011103032.tif 000011
【図１０】
2011103032.tif 000012
【図１１】
2011103032.tif 000013