(57)【要約】【課題】より高速な認識処理が可能な光学シンボルを提供する。【解決手段】実施形態に係る光学シンボルは、第１のセル列を有する主コード部と、第２のセル列を有する副コード部とを含んで構成される。主コード部において、第１のセル列は、複数の主コードセルが１次元に接続される。副コード部において、第２のセル列は、複数の副コードセルが１次元に接続された第２のセル列を有する。第２のセル列は、複数の主コードセルのうち、第１のセル列の端部のセルを除く複数の主コードセルの何れか１つのセルに接続される。【選択図】図２
2019185828.tif 000002
【特許請求の範囲】
【請求項１】
複数の主コードセルが１次元に接続された第１のセル列を有する主コード部と、
複数の副コードセルが１次元に接続された第２のセル列を有する副コード部と、を含む光学シンボルであって、
前記第２のセル列は、前記複数の主コードセルのうち、前記第１のセル列の端部のセルを除く該複数の主コードセルの何れか１つのセルに接続される光学シンボル。
【請求項２】
前記副コード部は、前記第２のセル列を複数有する
請求項１記載の光学シンボル。
【請求項３】
前記第２のセル列は、それぞれ異なる前記主コードセルに接続され、前記第２のセル列同士は所定以上の間隔を有する
請求項２記載の光学シンボル。
【請求項４】
前記主コードセルおよび前記副コードセルは、隣接して接続されるセルと異なる色が割り当てられる
請求項１乃至請求項３の何れか１項に記載の光学シンボル。
【請求項５】
前記主コードセルおよび前記副コードセルは、
複数の色から選択された色がそれぞれ割り当てられる
請求項１乃至請求項４の何れか１項に記載の光学シンボル。
【請求項６】
前記第１のセル列は、
２種類の色の前記主コードセルが交互に配置されることにより成り、該第１のセル列の一方の端部および他方の端部の前記主コードセルの色が互いに異なる
請求項１乃至請求項５の何れか１項に記載の光学シンボル。
【請求項７】
前記第２のセル列は、
予め定められたサイズであり、前記副コードセルは、属するセル列に含まれる副コードセルの総数に応じたサイズを有する
請求項１乃至請求項６の何れか１項に記載の光学シンボル。
【請求項８】
前記第２のセル列は、
予め定められたサイズであり、予め定められた個数の前記副コードセルを含む
請求項１乃至請求項６の何れか１項に記載の光学シンボル。
【請求項９】
前記副コード部は、
隣接して接続される前記副コードセル間の色の遷移を用いて値が表現される
請求項１乃至請求項８の何れか１項に記載の光学シンボル。
【請求項１０】
前記主コード部は、
前記主コードセルに接続される前記副コードセルを含む前記副コード部に表現される前記値の位置を表現する
請求項９に記載の光学シンボル。
【請求項１１】
前記主コードセル同士が接続される方向と、前記副コードセル同士が接続される方向が異なる
請求項１乃至請求項１０の何れか１項に記載の光学シンボル。
【請求項１２】
請求項１乃至請求項１１の何れか１項に記載の光学シンボルが表示された表示媒体。
【請求項１３】
請求項１２に記載の表示媒体が外面に添付された物品。
【請求項１４】
請求項１乃至請求項１１の何れか１項に記載の光学シンボルを生成する生成装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、光学シンボル、表示媒体、物品および生成装置に関する。
【背景技術】
【０００２】
ＱＲコード（登録商標）といった２値情報に基づく２次元コードは、カメラで撮像することでＩＤなどの情報を得られるため、多くの場面で利用されている。また、より多くの情報を記憶するために、例えばモノクロの２値情報ではなく、複数色を用いて単位面積当たりの記憶容量を向上させた２次元コードも開発されている。この複数色を用いた２次元コード（カラーコードと呼ぶ）の一つとして、色の配置ではなく隣接する領域間での色の遷移をコード化することで歪み耐性を向上させたカラーコードが知られている（特許文献１）。
【発明の概要】
【発明が解決しようとする課題】
【０００３】
しかしながら、従来技術によるカラーコードは、歪みに強い一方で、認識処理を並列処理より実行することが困難であり、認識処理の処理速度を向上させることが難しいという問題点があった。
【０００４】
本発明は、上記に鑑みてなされたもので、より高速な認識処理が可能な光学シンボルを提供することを目的とする。
【課題を解決するための手段】
【０００５】
上述した課題を解決するために、本発明は、複数の主コードセルが１次元に接続された第１のセル列を有する主コード部と、複数の副コードセルが１次元に接続された第２のセル列を有する副コード部と、を含む光学シンボルであって、第２のセル列は、複数の主コードセルのうち、第１のセル列の端部のセルを除く複数の主コードセルの何れか１つのセルに接続される。
【発明の効果】
【０００６】
本発明によれば、より高速な認識処理が可能な光学シンボルを提供可能となるという効果を奏する。
【図面の簡単な説明】
【０００７】
【図１】図１は、第１の実施形態に係る光学シンボルの利用形態の例を概略的に示す図である。
【図２】図２は、第１の実施形態に係る光学シンボルの基本的な構成例を示す図である。
【図３】図３は、第１の実施形態に係る光学シンボルにコード化するための情報の例を示す図である。
【図４】図４は、第１の実施形態に適用可能な、２進数を表現可能なコード化ルールについて説明するための図である。
【図５】図５は、第１の実施形態に係る、コード化された主コード部および副コード部における色の配列の例を示す図である。
【図６】図６は、第１の実施形態に係る光学シンボルの例を示す図である。
【図７】図７は、第１の実施形態に係る、４色を用いた場合のコード化ルールの例を示す図である。
【図８】図８は、第１の実施形態に係る光学シンボルの各セルに割り当てる色数を４色とした場合のより具体的な例について説明するための図である。
【図９】図９は、第１の実施形態に係る光学シンボルの各セルに割り当てる色数を４色とした場合のより具体的な例について説明するための図である。
【図１０】図１０は、第１の実施形態に適用可能なコード生成システムの一例の構成を示すブロック図である。
【図１１】図１１は、第１の実施形態に係るコード生成装置のハードウェア構成の例を示すブロック図である。
【図１２】図１２は、第１の実施形態に係るコード生成装置の機能を説明するための機能ブロック図である。
【図１３】図１３は、第１の実施形態に係る光学シンボルの生成方法を示す一例のフローチャートである。
【図１４】図１４は、第１の実施形態に係る、副コード部に含まれる各セル列に含まれるセルの個数固定する例を示す図である。
【図１５】図１５は、第１の実施形態に係る、副コード部の各セル列に含まれるセルの大きさが各セル列毎に異なり、且つ、各セル列の長さが一定である光学シンボルの例を示す図である。
【図１６】図１６は、第１の実施形態に係る、開始セルおよび終了セルを用いた光学シンボルの例を示す図である。
【図１７】図１７は、第１の実施形態に係る光学シンボルにコード化するための情報の例を示す図である。
【図１８】図１８は、第１の実施形態に係る、光学シンボル、および、光学シンボルが表示された表示媒体の例を示す図である。
【図１９】図１９は、第１の実施形態に係る光学シンボルが表示された表示媒体の使用例を概略的に示す図である。
【図２０】図２０は、第１の実施形態に適用可能なコード認識システムの一例の構成を示すブロック図である。
【図２１】図２１は、第１の実施形態に適用可能なコード認識装置のハードウェア構成の例を示すブロック図である。
【図２２】図２２は、第１の実施形態に係るコード認識装置の機能を説明するための一例の機能ブロック図である。
【図２３】図２３は、第１の実施形態に係る、カメラにより撮像され、コード認識装置の画像取得部に取得される撮像画像の例を示す図である。
【図２４】図２４は、第１の実施形態に係る光学シンボルの認識およびデコード処理を示す一例のフローチャートである。
【図２５】図２５は、第１の実施形態に係る副コード認識部による認識処理を示す一例のフローチャートである。
【図２６】図２６は、第１の実施形態に係る、合成部による接続情報に基づく合成処理について説明するための図である。
【図２７】図２７は、第１の実施形態に適用可能なテンプレートの例を示す図である。
【図２８】図２８は、第１の実施形態に係る第１の切り出し処理を示す一例のフローチャートである。
【図２９】図２９は、第１の実施形態に係る第１の切り出し処理により切り出した光学シンボルの画像から、各セルの色を取得する方法の例を示す図である。
【図３０】図３０は、第１の実施形態に係る第２の切り出し処理を示す一例のフローチャートである。
【図３１】図３１は、第１の実施形態の変形例に係る光学シンボルの一例の構成を示す図である。
【図３２】図３２は、第２の実施形態に係るコード管理システムおよび搬送システムを概略的に示す図である。
【発明を実施するための形態】
【０００８】
以下に添付図面を参照して、光学シンボル、表示媒体、物品および生成装置の実施形態を詳細に説明する。
【０００９】
（第１の実施形態）
図１は、第１の実施形態に係る光学シンボルの利用形態の例を概略的に示す。図１において、各物品５０に対して、第１の実施形態に係る光学シンボル３０が表示された表示媒体４０がそれぞれ添付される。表示媒体４０は、例えば光学シンボル３０が印刷された印刷媒体である。これに限らず、表示媒体４０は、光学シンボル３０が表示された、ＬＣＤ(Liquid  Crystal  Display)などの表示デバイスでもよい。
【００１０】
詳細は後述するが、光学シンボル３０は、それぞれセルと呼ばれる複数の小領域を含み、各セルが、隣接するセルと色を異ならせて配列されて構成される。光学シンボル３０は、セル間の色の遷移を用いて情報を表現する。すなわち、光学シンボル３０は、色を用いて情報をコード化したコード（カラーコード）である。
【００１１】
コード認識装置１０は、カメラ１１により撮像された撮像画像から光学シンボル３０を認識し、認識された光学シンボル３０をデコードする。より具体的には、コード認識装置１０は、光学シンボル３０の認識により光学シンボル３０に含まれる各セルの色の遷移を検出し、検出された色の遷移に基づきデコードを行う。コード認識装置１０は、光学シンボル３０からデコードされた情報を出力する。
【００１２】
（第１の実施形態に係る光学シンボルの詳細）
図２は、第１の実施形態に係る光学シンボル３０の基本的な構成例を示す。図２に示されるように、光学シンボル３０は、幹と、一端が幹に接続される枝とを含んで構成される。幹は、順次隣接する複数のセルが１次元に配列されたセル列（第１の配列）により構成される。すなわち、幹は、複数のセルが分岐および交差せずに配列される。枝は、幹の１つのセルに接続されるセルを含む１以上のセルが、幹の配列方向と異なる方向に向けて、順次隣接して１次元に配列されたセル列（第２の配列）により構成される。枝は、複数のセルを含む場合、幹と同様に、複数のセルが分岐および交差せずに配列される。また、枝同士は、接触しない。
【００１３】
幹および枝を構成する各セルは、色が割り当てられる。このとき、各セルに割り当てる色は、隣接するセル同士で同一色とならないように選択される。また、各セルに割り当てる色は、予め定めた複数の色から選択される。セルに割り当てるための複数の色は、当該複数の色から任意に選択した２色を隣接させた場合に、この２色を識別容易な色の組み合わせとすることが好ましい。
【００１４】
第１の実施形態に係る光学シンボル３０は、隣接するセル間での色の遷移に基づき情報を表現する。換言すれば、光学シンボル３０は、色の遷移を用いて情報をコード化する。光学シンボル３０は、幹の各セル、および、枝の各セルにより、それぞれ異なる情報をコード化して表現することができる。幹の各セル（主コードセル）によりコード化された情報を主コードと呼び、枝の各セル（副コードセル）によりコード化された情報を副コードと呼ぶ。以下、特に記載の無い限り、幹および枝を、それぞれ主コード部３００および副コード部３０１と呼ぶ。副コード部３０１は、複数の枝を含むことができる。
【００１５】
図２において、主コード部３００は、一端のセルを開始セル３０２とし（図中で「Ｓ」とも記載）、他端のセルを終了セル３０３とする（図中で「Ｅ」とも記載）。主コード部３００の各セルの色の遷移は、図中に矢印にて示されるように、開始セル３０２から終了セル３０３に向けて検出されるものとする。また、副コード部３０１の各セルの色の遷移は、図中に矢印にて示されるように、主コード部３００と接続される端から、他端に向けて検出されるものとする。
【００１６】
なお、開始セル３０２および終了セル３０３は、省略することができる。この場合、主コード部３００の先頭および後端の各セルが、それぞれ開始セル３０２および終了セル３０３の役割を兼用することができる。
【００１７】
以下では、光学シンボル３０を用いてコード化する情報が文字列であるものとする。文字列は、例えば「０」〜「９」の数字である。これに限らず、光学シンボル３０は、「ａ」〜「ｚ」、または、小文字の「ａ」〜「ｚ」に大文字の「Ａ」〜「Ｚ」を加えたアルファベットによる文字列や、さらに記号を含めた文字列をコード化することもできる。
【００１８】
図３は、第１の実施形態に係る光学シンボル３０にコード化するための情報の例を示す。図３において、主コード部３００’および副コード部３０１’は、それぞれ、コード化後の光学シンボル３０における主コード部３００および副コード部３０１に対応する。また、図３において、主コード部３００’および副コード部３０１’に含まれる各マスを、光学シンボル３０の各セルに倣って、便宜上、セルと呼ぶ。
【００１９】
図３は、コード化を行う文字列が数字である場合の例である。主コード部３００’のセル列の各セル「ｄ１」、「ｄ２」、「ｄ３」、…が、文字列の各桁を表現している。図３における左端のセル「ｄ１」が文字列の第１桁目を表し、セル「ｄ１」を起点として順次隣接する各セル「ｄ２」、「ｄ３」、…において、表現される桁が順次移動する。すなわち、主コード部３００’のセル列の各セル「ｄ１」、「ｄ２」、「ｄ３」、…は、文字列における位置に対応している。
【００２０】
図３の例では、当該各セル「ｄ１」、「ｄ２」、「ｄ３」、…は、１０進数の各桁を表しているものとする。具体的には、先端セルである左端のセル「ｄ１」が「１００」の桁を示し、以降、各セル「ｄ２」、「ｄ３」、…は、順次、「１０１」、「１０２」、…の桁を表す。
【００２１】
また、図３の例において、副コード部３０１’は、端が接続される主コード部３００’のセル「ｄ１」、「ｄ２」、「ｄ３」、…における値を、２進数で表している。図３の例では、副コード部３０１’の各セル列において、主コード部３００’に接続されるセルが最下位ビットとされ、主コード部３００’のセル「ｄ１」、「ｄ２」および「ｄ３」に接続される各セル列がそれぞれ値「ｂ００１０」、値「ｂ０１１０」および値「ｂ１０００」とされている。したがって、図３の光学シンボル３０は、「１００」、「１０１」および「１０２」の桁の値が、それぞれ１０進数で「２」、「６」および「８」である文字列を表している。なお、値の表記において先頭の「ｂ」は、続く数字が２進数による値であることを示している。
【００２２】
第１の実施形態では、上述したように、主コード部３００’および副コード部３０１’において表現される情報を、セル間の色の遷移を用いてコード化する。ここで、主コード部３００’は、表現される情報が予め定められている。したがって、主コード部３００’がコード化された光学シンボル３０における主コード部３００は、各セルの色が、隣接するセル同士で異なっていることが分かればデコードできる。例えば、主コード部３００に含まれるセルの数が既知であれば、セル間の色の遷移の回数を計数することで、主コード部３００をデコードできる。
【００２３】
一方、副コード部３０１’は、コード化する情報に応じて異なる値を表現する必要がある。そのため、副コード部３０１’は、色の遷移と表現可能な値とを予め関連付けた変換テーブルを用いてコード化を行う。
【００２４】
図４を用いて、第１の実施形態に適用可能な、２進数を表現可能なコード化ルールについて説明する。隣接する異なる色のセル間での色の遷移により２値を表現するためには、少なくとも３色が必要となる。図４は、赤色（Ｒ）、緑色（Ｇ）および青色（Ｂ）の３色を用いて２値を表現する場合のコード化ルールの例を示している。例えば、図４（ａ）に例示されるように、時計回り、すなわち、Ｒ色からＢ色、Ｂ色からＧ色、および、Ｇ色からＲ色への各遷移により値「０」を表現する。また、反時計回り、すなわち、Ｒ色からＧ色、Ｇ色からＢ色、および、Ｂ色からＲ色の各遷移により値「１」を表現する。
【００２５】
例えば、図４（ｂ）に示されるように、Ｇ色、Ｂ色、Ｇ色、Ｒ色の順に各セルが順次隣接されたセル列において、図中で左から右に向けて各セルの色遷移を見た場合について考える。この場合、Ｇ色からＢ色への遷移が値「１」、Ｂ色からＧ色への遷移が値「０」、Ｇ色からＲ色への遷移が値「０」をそれぞれ表す。したがって、図４（ｂ）の配列は、値「ｂ００１」、すなわち１０進数の値「１」を表す。
【００２６】
また例えば、図４（ｃ）に示されるように、図４（ｂ）の各セルの配列に対し、図４（ｂ）とは逆方向に向けて色遷移を見た場合について考える。この場合、Ｒ色からＧ色への遷移が値「１」、Ｇ色からＢ色への遷移が値「１」、Ｂ色からＧ色への遷移が値「０」をそれぞれ表す。したがって、図４（ｃ）の配列は、値「０１１」、すなわち、１０進数の値「３」を表す。
【００２７】
図４（ｄ）は、図４（ａ）に示したコード化ルールに従った色遷移と値とを関連付ける変換テーブルの例を示す。図４（ｄ）の変換テーブルにおいて、左端の列は、直前のセル（遷移元のセル）の色を示し、上端の行は、表現したい値を示す。例えば、遷移元のセルの色がＲ色で、値「１」を表現したい場合、遷移元のセルに隣接する遷移先のセルの色をＧ色とする。同様に、遷移元のセルの色がＢ色で値「１」を表現したい場合、遷移先のセルの色をＲ色とする。
【００２８】
図５は、第１の実施形態に係る、コード化された主コード部３００および副コード部３０１における色の配列の例を示す。図５（ａ）は、主コード部３００のセル列における各セルの色の配列の例を示す。図５（ａ）の例では、主コード部３００のセル列は、第１色（この例ではＲ色）のセルと、第２色（この例ではＢ色）の２色のセルを交互に配置して構成している。また、主コード部３００のセル列は、２Ｎ個（Ｎは１以上の整数）のセルにより構成している。これにより、主コード部３００のセル列の先端のセルの色を第１色に固定することで、後端のセルの色が第２色に一意に決定されるため、主コード部３００のセル列の先端および後端の認識が容易となる。
【００２９】
図５（ｂ）は、副コード部３０１のセル列における色の配列の例を示す。副コード部３０１のセル列は、各セルに対して、上述した２値を表現するための３色が、隣接するセルの色が異なるように割り当てられる。また、副コード部３０１のセル列は、当該セル列が接続される主コード部３００のセルを最初の遷移元のセルとして、上述したコード化ルールに従ったコード化がなされる。
【００３０】
副コード部３０１のセル列は、表現する値によっては、当該３色のうち割り当てられない色が発生する場合がある。これに対して、主コード部３００は、セル列に含まれる各セルに割り当てる所定の２色を、副コード部３０１において２値を表現するために用いる３色から選択し、この２色を各セルに交互に割り当ててセル列を構成している。したがって、主コード部３００のセル列は、各セルに、主コード部３００に用いるように定められた各色が必ず割り当てられる。そのため、例えば当該光学シンボル３０を含む画像から当該光学シンボル３０を切り出す場合に、主コード部３００の各セルに割り当てられている色の情報のみを検出することで、容易に光学シンボル３０を切り出すことが可能である。
【００３１】
図６は、第１の実施形態に係る、図３に例示した情報を、図４を用いて説明したコード化ルールに従いコード化した光学シンボル３０の例を示す。この例では、コード化された主コード部３００のセル列は、偶数個のセルを含み、先端のセルをＲ色として、Ｒ色およびＢ色が交互に配置されて構成されている。
【００３２】
また、コード化された副コード部３０１は、例えば左端のセル列において、当該セル列の端のセルが接続される、主コード部３００のセルのＲ色を最初の遷移元の色として、各セルの色が割り当てられる。この例では、当該セル列の各セルに対して、値「０」、「１」、「０」、「０」に従い、図４（ｄ）の変換テーブルを参照して、Ｂ色、Ｒ色、Ｂ色、Ｇ色がそれぞれ割り当てられる。
【００３３】
図６に示されるように、第１の実施形態に係る光学シンボル３０は、幹（主コード部３００のセル列）の伸長方向と異なる一方向に対し、複数の枝（副コード部３０１の各セル列）が、主コード部３００のセル列の各セルにそれぞれ接続される。且つ、第１の実施形態に係る光学シンボル３０は、カメラ１１にて光学シンボル３０を撮像した撮像画像から光学シンボル３０を認識する際の認識精度を良好とするため、副コード部３０１の各セル列が、隣り合うセル列に対して所定の間隔を開けて配置される。このように、第１の実施形態に係る光学シンボル３０は、幹と複数の枝とによる櫛型の形状として構成される。
【００３４】
光学シンボル３０を櫛型形状とすることで、例えば光学シンボル３０が含まれる画像において、光学シンボル３０の形状の当該画像に含まれる他の形状との区別や、光学シンボル３０の当該画像内での向き（角度）などの認識が容易となる。これにより、例えば後述するテンプレートを用いた光学シンボル３０の切り出し処理を、高精度に実行可能となる。
【００３５】
上述では、光学シンボル３０の各セルに割り当てる色数を３色として、情報を２値により表現したが、これはこの例に限定されず、各セルに割り当てる色数を４色以上としてもよい。各セルに割り当てる色数を多くすることで、同じセル数でより多くの情報を表現可能となる。
【００３６】
図７は、第１の実施形態に係る、Ｒ色、Ｇ色およびＢ色と、Ｋ色（黒色）との４色を用いた場合のコード化ルールの例を示す。４色を用いる場合、３値すなわち３進数での表現が可能である。例えば、図７（ａ）に例示されるように、時計回り、すなわち、Ｒ色からＫ色、Ｋ色からＢ色、Ｂ色からＧ色、Ｇ色からＲ色への各遷移により値「０」を表現する。また、反時計回り、すなわち、Ｒ色からＧ色、Ｇ色からＢ色、Ｂ色からＫ色、Ｋ色からＲ色への各遷移により値「１」を表現する。さらに、対角線上、すなわち、Ｒ色とＢ色との間の双方向の遷移、および、Ｋ色とＧ色との間の双方向の遷移により、それぞれ値「２」を表現する。
【００３７】
例えば、図７（ｂ）に示されるように、Ｇ色、Ｒ色、Ｂ色、Ｋ色、Ｇ色の順に各セルが順次接続されたセル列において、図中で左から右に向けて各セルの色遷移を見た場合について考える。この場合、Ｇ色からＲ色への遷移が値「０」、Ｒ色からＢ色への遷移が値「２」、Ｂ色からＫ色への遷移が値「１」、Ｋ色からＧ色への遷移が値「２」をそれぞれ表す。したがって、図７（ｂ）の配列は、値「３ｄ２１２０」、すなわち１０進数の値「６９」を表す。なお、値の表記において先頭の「３ｄ」は、続く数字が３進数による値であることを示している。
【００３８】
また例えば、図７（ｃ）に示されるように、図７（ｂ）の各セルの配列に対し、図７（ｂ）とは逆方向に向けて色遷移を見た場合について考える。この場合、Ｇ色からＫ色への遷移が値「２」、Ｋ色からＢ色への遷移が値「０」、Ｂ色からＲ色への遷移が値「２」、Ｒ色からＧ色への遷移が値「１」をそれぞれ表す。したがって、図７（ｃ）の配列は、値「３ｄ１２０２」、すなわち１０進数の値「４７」を表す。
【００３９】
４色の色遷移を用いたコード化ルールは、図７（ａ）に示した例に限定されない。図７（ｄ）は、第１の実施形態に適用可能な、４色の色遷移を用いたコード化ルールの別の例を示す。この別の例では、Ｒ色とＫ色と間の遷移が双方向それぞれで値「０」を表し、Ｒ色とＧ色との間の遷移が双方向それぞれで値「１」を表し、Ｇ色とＢ色との間の遷移が双方向それぞれで値「２」を表す。また、Ｂ色からＲ色への遷移、および、Ｋ色からＧ色への遷移が値「１」をそれぞれ表す。さらに、Ｇ色からＫ色への遷移が値「０」を、Ｒ色からＢ色への遷移が値「２」をそれぞれ表す。
【００４０】
図７（ｅ）は、図７（ｄ）に示したコード化ルールに従った色遷移と値とを関連付ける変換テーブルの例を示す。図７（ｅ）に変換テーブルにおける列および行の意味は、上述した図４（ｄ）の変換テーブルと同様であるので、ここでの説明を省略する。図７（ｅ）において、例えば、遷移元のセルの色がＲ色で、値「２」を表現したい場合、遷移元のセルに隣接する遷移先のセルの色をＢ色とする。同様に、遷移元のセルの色がＫ色で値「１」を表現したい場合、遷移先のセルの色をＧ色とする。
【００４１】
図８および図９を用いて、第１の実施形態に係る、光学シンボル３０の各セルに割り当てる色数を４色とした場合のより具体的な例について説明する。一例として、図８に示すように、主コード部３００’の各セル「ｄ１」、「ｄ２」、「ｄ３」および「ｄ４」に接続される、副コード部３０１’の各セル列がそれぞれ値「３ｄ０１２１」、「３ｄ２１０１」、「３ｄ２２１２」および「３ｄ０２２０」とされている。
【００４２】
図９は、図８に例示した情報を、図７を用いて説明したコード化ルールに従いコード化した光学シンボル３０の例を示す。この例では、主コード部３００のセル列は、偶数個のセルを含み、先端のセルをＲ色として、Ｒ色およびＫ色が交互に配置されて構成されている。
【００４３】
また、副コード部３０１は、図６と同様にして、例えば左端のセル列において、当該セル列の端のセルが接続される、主コード部３００のセルのＲ色を最初の遷移元の色として、各セルの色が割り当てられる。この例では、当該セル列の各セルに対して、値「１」、「２」、「１」、「０」に従い、図７（ｄ）の変換テーブルを参照して、Ｇ色、Ｂ色、Ｒ色、Ｋ色がそれぞれ割り当てられている。
【００４４】
（第１の実施形態に適用可能な装置構成）
次に、第１の実施形態に係る光学シンボル３０を生成するための構成について説明する。図１０は、第１の実施形態に適用可能なコード生成システムの一例の構成を示す。図１０において、コード生成システムは、コード生成装置２０と、コード生成装置２０に対して例えばネットワーク２２を介して接続されるプリンタ２１とを含む。
【００４５】
コード生成装置２０は、入力された情報を上述したコード化ルールに従いコード化して、光学シンボル３０を生成する。プリンタ２１は、コード生成装置２０により生成された光学シンボル３０を印刷媒体に印刷し、光学シンボル３０が表示される表示媒体４０を作成する。作成された表示媒体４０は、例えば、図１を用いて説明したように、物品５０に貼付される。
【００４６】
図１１は、第１の実施形態に係るコード生成装置２０のハードウェア構成の例を示す。図１１において、コード生成装置２０は、ＣＰＵ(Central  Processing  Unit)２０００と、ＲＯＭ(Read  Only  Memory)２００１と、ＲＡＭ(Random  Access  Memory)２００２と、グラフィクスＩ／Ｆ２００３と、ストレージ２００５と、データＩ／Ｆ２００６と、通信Ｉ／Ｆ２００９とを含み、これら各部がバス２０１０により互いに通信可能に接続される。このように、第１の実施形態に係るコード生成装置２０は、一般的なコンピュータを用いて実現できる。
【００４７】
ストレージ２００５は、ハードディスクドライブやフラッシュメモリといった不揮発性の記憶媒体であって、プログラムやデータが記憶される。ＣＰＵ２０００は、ストレージ２００５やＲＯＭ２００１に記憶されるプログラムに従い、ＲＡＭ２００２をワークメモリとして用いて、コード生成装置２０の全体の動作を制御する。
【００４８】
グラフィクスＩ／Ｆ２００３は、ディスプレイ２００４が接続され、ＣＰＵ２０００によりプログラムに従い生成された表示制御情報に基づき、ディスプレイ２００４が表示可能な表示信号を生成する。データＩ／Ｆ２００６は、コード生成装置２０の外部から供給される外部データに対するインタフェースである。また、データＩ／Ｆ２００６は、マウスといったポインティングデバイス２００７や、キーボード２００８を接続することができる。データＩ／Ｆ２００６としては、例えばＵＳＢ(Universal  Serial  Bus)を適用することができる。
【００４９】
コード化対象のデータは、外部からデータＩ／Ｆ２００６に供給される。これに限らず、ユーザがポインティングデバイス２００７やキーボード２００８を操作して、コード化対象のデータをコード生成装置２０に入力してもよい。
【００５０】
通信Ｉ／Ｆ２００９は、ネットワーク２２と接続され、ネットワーク２２を介した通信を行う。ネットワーク２２は、ＬＡＮ(Local  Area  Network)であってもよいし、インターネットであってもよい。また、ネットワーク２２は、有線通信および無線通信の何れを用いて接続されるものでもよい。
【００５１】
図１２は、第１の実施形態に係るコード生成装置２０の機能を説明するための機能ブロック図である。図１２において、コード生成装置２０は、データ入力部２００と、分解部２０１と、変換部２０２と、色割当部２０３と、テーブル記憶部２０４と、出力部２０５とを含む。
【００５２】
これらのうち、データ入力部２００、分解部２０１、変換部２０２、色割当部２０３および出力部２０５は、ＣＰＵ２０００上で動作するプログラムにより構成される。これに限らず、データ入力部２００、分解部２０１、変換部２０２、色割当部２０３および出力部２０５の一部または全部を、互いに協働して動作するハードウェア回路により構成してもよい。また、テーブル記憶部２０４は、ストレージ２００５またはＲＡＭ２００２における所定の記憶領域により構成される。
【００５３】
データ入力部２００は、データＩ／Ｆ２００６を介して入力されたコード化対象のデータを受け付ける。この場合、上述したように、コード化対象のデータは、文字列であるものとする。分解部２０１は、データ入力部２００に受け付けられた文字列を、各桁の値に分解する。変換部２０２は、分解部２０１で分解された各桁の値を、光学シンボル３０の各セルに割り当てる色数に応じた値に変換する。例えば、変換部２０２は、各セルに割り当てる色数が４色であれば、各桁の値を３進数による値に変換する。
【００５４】
テーブル記憶部２０４は、図４（ｄ）や図７（ｄ）で説明したような、各セルに割り当てる色数に応じた変換テーブルを予め記憶する。色割当部２０３は、変換部２０２で変換された値と、遷移元の色とに基づきテーブル記憶部２０４に記憶される変換テーブルを参照して、光学シンボル３０の各セルに色を割り当てる。なお、色割当部２０３は、主コード部３００のセル列における各セルの色の配列を示す情報を予め記憶しているものとする。
【００５５】
出力部２０５は、色割当部２０３で色が割り当てられたセルおよび色の情報を記憶する。出力部２０５は、光学シンボル３０の全てのセルに対して色が割り当てられたと判定した場合に、光学シンボル３０の各セルに割り当てられた色を示す情報を、各セルの情報に関連付けて出力する。
【００５６】
なお、色割当部２０３は、副コード部３０１における１つのセル列のコード化において、直前にコード化したセルの色を、出力部２０５から取得することができる。
【００５７】
第１の実施形態に係るコード生成装置２０の各機能を実現するためのコード生成プログラムは、インストール可能な形式または実行可能な形式のファイルでＣＤ(Compact  Disk)、フレキシブルディスク（ＦＤ）、ＤＶＤ(Digital  Versatile  Disk)などのコンピュータで読み取り可能な記録媒体に記録して提供される。これに限らず、コード生成プログラムを、インターネットなどのネットワークに接続されたコンピュータ上に格納し、当該ネットワークを介してダウンロードさせることにより提供してもよい。また、コード生成プログラムをインターネットなどのネットワークを経由して提供または配布するように構成してもよい。
【００５８】
コード生成プログラムは、上述した各部（データ入力部２００、分解部２０１、変換部２０２、色割当部２０３および出力部２０５）を含むモジュール構成となっている。実際のハードウェアとしては、ＣＰＵ２０００がストレージ２００５などの記憶媒体から当該コード生成プログラムを読み出して実行することにより、上述した各部がＲＡＭ２００２などの主記憶装置上にロードされ、データ入力部２００、分解部２０１、変換部２０２、色割当部２０３および出力部２０５が主記憶装置上に生成されるようになっている。
【００５９】
図１３は、第１の実施形態に係る光学シンボル３０の生成方法を示す一例のフローチャートである。ステップＳ１００で、データ入力部２００により、コード化対象のデータが受け付けられる。ここで、データ入力部２００に受け付けられたデータは、ｋ桁の文字列であるものとする。次のステップＳ１０１で、分解部２０１は、データ入力部２００に受け付けられたｋ桁のデータを、桁毎の値ｖ（ｉ）に分解する。なお、変数ｉは、処理対象の桁の文字列における位置を示すループ変数であって、（０≦ｉ≦ｋ）の整数である。
【００６０】
次のステップＳ１０２で、変数ｉが値「０」に初期化され、次のステップＳ１０３で、変数ｉに値「１」が加算される。
【００６１】
次のステップＳ１０４で、変換部２０２は、分解部２０１により分解されたｋ桁のデータのｉ桁目の値ｖ（ｉ）を、ｎ進数のｐ桁の値ｕ（ｑ）に変換する。なお、値ｎは、予め定められた、２以上の整数である。また、変数ｑは、副コード部３０１のセル列内のセルの位置を示すループ変数であって、（０≦ｑ≦ｐ）の整数であり、値ｐは、副コード部３０１における処理対象のセル列に含まれるセル数を示す。
【００６２】
次のステップＳ１０５で、変数ｑが値「０」に初期化され、次のステップＳ１０６で、変数ｑに値「１」が加算される。
【００６３】
次のステップＳ１０７で、色割当部２０３は、出力部２０５から、現在色を割り当てようとしているセルに対する直前（遷移元）のセルの色を取得する。なお、ステップＳ１０７において、色割当部２０３は、変数ｑの値が「１」である場合には、主コード部３００のセル列におけるｉ桁目に対応するセルの色を取得する。
【００６４】
次のステップＳ１０８で、色割当部２０３は、ステップＳ１０７で取得したセルの色と、値ｕ（ｑ）とに基づき、テーブル記憶部２０４に記憶される変換テーブルを参照して、副コード部３０１におけるｉ桁目のセル列におけるｑ番目のセルの色を取得する。
【００６５】
次のステップＳ１０９で、色割当部２０３は、変数ｑが値ｐと一致するか否かを判定する。一致しないと判定した場合（ステップＳ１０９、「Ｎｏ」）、色割当部２０３は、処理をステップＳ１０６に戻す。また、一致すると判定した場合（ステップＳ１０９、「Ｙｅｓ」）、色割当部２０３は、処理をステップＳ１１０に移行させる。
【００６６】
ステップＳ１１０で、変換部２０２は、変数ｉが値ｋと一致するか否かを判定する。一致しないと判定した場合（ステップＳ１１０、「Ｎｏ」）、変換部２０２は、処理をステップＳ１０３に戻す。また、一致すると判定した場合（ステップＳ１１０、「Ｙｅｓ」）、変換部２０２は、ステップＳ１００で受け付けられたデータの光学シンボル３０へのコード化が終了したとして、図１３のフローチャートにおける一連の処理を終了させる。
【００６７】
なお、図１３のフローチャートの処理では、副コード部３０１に含まれる各セル列に含まれるセルの個数が制限されない。これはこの例に限られず、副コード部３０１に含まれる各セル列に含まれるセルの個数を一定数としてもよい。図１４は、第１の実施形態に係る、副コード部３０１に含まれる各セル列に含まれるセルの個数をＭ個に固定する例を示す。
【００６８】
このように、副コード部３０１に含まれる各セル列に含まれるセルの個数を一定数とすることで、後述する、光学シンボル３０に対するデコード処理を容易とすることができる。また、さらに、各セルの大きさも一定とすると、後述するテンプレートを用いた光学シンボル３０の切り出し処理が容易となり好ましい。
【００６９】
また、第１の実施形態では、隣接するセル間での色の遷移を用いて情報のコード化を行っている。そのため、光学シンボル３０を構成する各セルの大きさが異なっていてもよい。この場合、副コード部３０１に含まれる各セル列の長さを一定とすると、後述するテンプレートを用いた光学シンボル３０の切り出し処理が容易となり好ましい。
【００７０】
図１５は、第１の実施形態に係る、副コード部３０１の各セル列に含まれるセルの大きさが各セル列毎に異なり、且つ、各セル列の長さが一定である光学シンボル３０の例を示す。図１５の例では、副コード部３０１の左端のセル列がＰ個のセルを含み、真中のセル列が左端のセル列のセルより大きいセルを、Ｐ個より少ないＱ個含む。また、図１５における副コード部３０１の右端のセル列は、真中のセル列のセルより大きいセルを、Ｑ個より少ないＲ個含む。この例では、各セル列に含まれるセルのサイズは、それぞれが属するセル列に含まれるセルの総数（Ｐ個、Ｑ個、Ｒ個）に応じたサイズとなる。
【００７１】
上述では、光学シンボル３０において、図２に示した開始セル３０２および終了セル３０３を省略したものとして説明したが、開始セル３０２および終了セル３０３を用いることで、後述する光学シンボル３０のデコード処理の際の、各セルの認識処理が容易となり好ましい。
【００７２】
図１６は、第１の実施形態に係る、上述した開始セル３０２および終了セル３０３を用いた光学シンボル３０の例を示す。図１６に示されるように、主コード部３００のセル列において、開始セル３０２および終了セル３０３には副コード部３０１のセル列が接続されない。また、主コード部３００のセル列は、開始セル３０２および終了セル３０３に挟まれる各セルには副コード部３０１の各セル列が必ず接続される構成となっている。
【００７３】
このような構成において、各セルに接続される他のセルの個数を示す接続数に基づき、主コード部３００と副コード部３０１とを認識することができる。すなわち、開始セル３０２および終了セル３０３と、副コード部３０１の各セル列の終端のセル（主コード部３００のセル列のセルに接続されていない側のセル）は、それぞれ接続数が「１」である。一方、副コード部３０１の各セル列の終端以外の各セルの接続数が「２」であるのに対し、主コード部３００のセル列の、開始セル３０２および終了セル３０３以外の各セルは、接続数が「３」である。したがって、接続数「３」のセルに接続される接続数「１」のセルが開始セル３０２または終了セル３０３であると判定できる。
【００７４】
開始セル３０２および終了セル３０３を用いることで、主コード部３００のセル列の先端のセルの色を決めなくても、デコード時に主コード部３００のセル列を容易に認識できる。また、主コード部３００のセル列の先端のセルの色を決める必要が無いため、主コード部３００のセル列にも情報を埋め込むことが可能となり、光学シンボル３０が含む情報量を増加させることが可能となる。
【００７５】
（第１の実施形態に係る光学シンボルの具体的な例）
次に、第１の実施形態に係る光学シンボル３０のより具体的な例について説明する。ここでは、光学シンボル３０におけるセルの色をＲ色、Ｇ色、Ｂ色およびＫ色の４色とし、コード化対象の情報（文字列）の各桁を３進数で表すものとする。
【００７６】
ここで、副コード部３０１において、数値と文字とを対応付けたコード表を用いて各桁の情報を表現することができる。コード表を用いることで、数字以外の文字や記号を表現可能となる。
【００７７】
このようなコード表の例として、ＡＳＣＩＩ(American  Standard  Code  for  Information  Interchange)コードがある。ＡＳＣＩＩコードは、７ビットの値で表現され、コード「０」〜「３１」に制御文字、コード「３２」に空白、コード「３３」〜「４７」、「５８」〜「６４」、「９１」〜「９６」および「１２３」〜「１２６」に記号、コード「４８」〜「５７」に数字、コード「６５」〜「９０」にアルファベットの大文字、コード「９７」〜「１２２」にアルファベットの小文字、コード「１２７」に「削除」がそれぞれ割り当てられている。
【００７８】
例えば、副コード部３０１の各セル列に含まれるセル数を４個とした場合、３進数では、「０」〜「８０」の値を表現できる。したがって、この値をそのままＡＳＣＩＩコードに適用した場合、大文字のアルファベットの途中までを表現可能である。また、副コード部３０１の各セル列により表現する４桁の３進数の値を、例えばオフセット値「３２」を与えてシフトさせることで、ＡＳＣＩＩコードで表現される、すべての文字と、空白など一部の記号を除く記号とを表現可能である。
【００７９】
なお、数値と文字との対応付けは、このＡＳＣＩＩコードによるコード表を利用した例に限定されない。すなわち、第１の実施形態では、文字や記号と、副コード３０１のセル列により表現可能な数値とを１対１に関連付けることができれば、任意の形式のコード表を適用することができる。以下では、説明のため、副コード部３０１の各セル列により表現する４桁の３進数の値を、そのままＡＳＣＩＩコードに適用させるものとする。
【００８０】
図１７は、第１の実施形態に係る光学シンボル３０にコード化するための情報の例を示す。ここでは、コード化対象の情報を、８桁の文字列「ＣＢＡ００２８３」とする。また、図１７において、この８桁の各桁を、桁の小さい方から順にセル「ｄ１」、「ｄ２」、…、「ｄ８」として示している。図１３のフローチャートのステップＳ１００では、この文字列「ＣＢＡ００２８３」の入力がデータ入力部２００により受け付けられる。ステップＳ１０１で、分解部２０１は、この文字列「ＣＢＡ００２８３」を桁毎の値に分解する。このとき、分解部２０１は、ＡＳＣＩＩコードのコード表を用いて、この文字列「ＣＢＡ００２８３」の各桁を、それぞれ「６７」、「６６」、「６５」、「４８」、「４８」、「５０」、「５６」、「５１」の各値に変換する。
【００８１】
これら各値をさらに３進数に変換すると、それぞれ「３ｄ２１１１」、「３ｄ２１１０」、「３ｄ２１０２」、「３ｄ１２１０」、「３ｄ１２１０」、「３ｄ１２１２」、「３ｄ２００２」、「３ｄ１２２０」となる。これらの３進数の各桁の値が、副コード部３０１’のセル列における各セルで表現される値となる。変換部２０２は、図１３のフローチャートのステップＳ１０４において、この変換処理を、桁毎に実行している。
【００８２】
図１８は、第１の実施形態に係る、図１７に例示した情報を、図７を用いて説明したコード化ルールに従いコード化した光学シンボル３０、および、光学シンボル３０が表示された表示媒体４０の例を示す。この例では、主コード部３００のセル列は、開始セル３０２および終了セル３０３を含む１０個のセルで構成され、開始セル３０２をＲ色として、Ｒ色およびＫ色を交互に配置して構成されている。
【００８３】
色割当部２０３は、図１３のフローチャートのステップＳ１０６〜ステップＳ１０９において、テーブル記憶部２０４に記憶される変換テーブルと、遷移元のセルの色とを参照して、上述した文字列の各桁が変換された３進数の桁毎に、色を割り当てる。例えば、図１７のセル「ｄ１」に対応する桁は、３進数の値が「３ｄ１２２０」である。
【００８４】
副コード部３０１のセル列において、３進数の最も小さい桁（「３０」の桁）が主コード部３００に接続されるセル（先端セル）に割り当てられるものとする。この場合、色割当部２０３は、先ず、主コード部３００のセル列の当該桁に対応するＫ色を遷移元のセルの色として変換テーブルを参照して、当該セル列の先端セルに割り当てる色を取得する。以降、色割当部２０３は、直前に色を割り当てたセルを遷移元のセルとして、当該セル列の各セルに順次色を割り当てる。
【００８５】
図１８の例では、図１７のセル「ｄ１」に対応する主コード部３００のセルに接続される副コード部３０１のセル列における各セルは、先端セル側から、「Ｒ色」、「Ｂ色」、「Ｇ色」、「Ｒ色」がそれぞれ割り当てられている。色割当部２０３は、当該セル列の終端のセルへの色の割当が終了すると、副コード部３０１の次のセル列への色割り当て処理を実行する。
【００８６】
コード生成装置２０は、上述のようにして生成した光学シンボル３０を、表示媒体４０上に表示させる。例えば、コード生成装置２０は、生成した光学シンボル３０を、プリンタ２１を用いて表示媒体４０としての印刷媒体に印刷する。
【００８７】
図１９は、第１の実施形態に係る光学シンボル３０が表示された表示媒体４０の使用例を概略的に示す。図１９の例では、光学シンボル３０が表示された表示媒体４０が、物品５０の外面に添付されている。一例として、光学シンボル３０にコード化するコード化対象の文字列を、物品５０を識別する識別情報とすることができる。表示媒体４０をカメラにより撮像し、撮像画像に含まれる光学シンボル３０を認識してデコードすることで、物品５０からの作用無しに、物品５０の識別情報を取得できる。
【００８８】
（第１の実施形態に係る光学シンボルの認識処理）
次に、第１の実施形態に係る光学シンボル３０の認識処理について説明する。図２０は、第１の実施形態に適用可能なコード認識システムの一例の構成を示す。図２０において、コード認識システムは、コード認識装置１０と、カメラ１１と、コード管理装置１２とを含み、コード認識装置１０とコード管理装置１２とがネットワーク１３を介して互いに通信可能に接続される。また、カメラ１１は、コード認識装置１０に接続される。
【００８９】
コード認識装置１０は、図１を用いて説明したように、カメラ１１で撮像された撮像画像に含まれる光学シンボル３０の画像を認識し、光学シンボル３０のデコードを行う。コード管理装置１２は、コード認識装置１０が光学シンボル３０をデコードして得た情報を管理する。
【００９０】
図２１は、第１の実施形態に適用可能なコード認識装置１０のハードウェア構成の例を示す。コード認識装置１０は、ＣＰＵ１０００と、ＲＯＭ１００１と、ＲＡＭ１００２と、ストレージ１００３と、カメラＩ／Ｆ１００４と、通信Ｉ／Ｆ１００５とを含み、これら各部がバス１０１０により互いに通信可能に接続されて構成される。このように、第１の実施形態に係るコード認識装置１０は、一般的なコンピュータを用いて実現できる。なお、コード認識装置１０は、キーボードやポインティングデバイスといった入力手段や、グラフィクスＩ／Ｆおよびディスプレイといった表示手段は、省略することができる。
【００９１】
ストレージ１００３は、ハードディスクドライブやフラッシュメモリといった不揮発性の記憶媒体であって、プログラムやデータが記憶される。ＣＰＵ１０００は、ストレージ１００３やＲＯＭ１００１に記憶されるプログラムに従い、ＲＡＭ１００２をワークメモリとして用いて、コード認識装置１０の全体の動作を制御する。
【００９２】
カメラＩ／Ｆ１００４は、カメラ１１が接続される。ＣＰＵ１０００は、カメラ１１で撮像された撮像画像を、カメラＩ／Ｆ１００４を介して取得することができる。また、ＣＰＵ１０００は、カメラＩ／Ｆ１００４を介してカメラ１１の撮像動作などを制御することも可能である。
【００９３】
通信Ｉ／Ｆ１００５は、ネットワーク１３と接続され、ネットワーク１３を介した通信を行う。ネットワーク１３は、ＬＡＮ(Local  Area  Network)であってもよいし、インターネットであってもよい。また、ネットワーク１３は、有線通信および無線通信の何れを用いて接続されるものでもよい。
【００９４】
図２２は、第１の実施形態に係るコード認識装置１０の機能を説明するための一例の機能ブロック図である。図２２において、コード認識装置１０は、画像取得部１００と、切出処理部１０１と、認識部１０２と、デコード部１０３と、テーブル記憶部１０４とを含む。
【００９５】
これらのうち、画像取得部１００、切出処理部１０１、認識部１０２およびデコード部１０３は、ＣＰＵ１０００上で動作するプログラムにより構成される。これに限らず、画像取得部１００、切出処理部１０１、認識部１０２およびデコード部１０３の一部または全部を、互いに協働して動作するハードウェア回路により構成してもよい。また、テーブル記憶部１０４は、ストレージ１００３またはＲＡＭ１００２における所定の記憶領域により構成される。
【００９６】
画像取得部１００は、カメラ１１により撮像された撮像画像を取得する。切出処理部１０１は、画像取得部１００により取得された撮像画像から、光学シンボル３０の画像を切り出す。認識部１０２は、切出処理部１０１で切り出された光学シンボル３０の画像に対する認識処理を行う。すなわち、認識部１０２は、光学シンボル３０の画像から各セルの画像を検出し、検出した画像の色情報に基づき各セルの接続関係から得られる情報、または、その色情報自身が持つ情報を認識する。認識部１０２は、この認識結果に基づき、光学シンボル３０が持つシンボル情報を作成する。
【００９７】
より具体的には、認識部１０２は、主コード認識部１０２０と、副コード認識部１０２１と、合成部１０２２とを含む。主コード認識部１０２０は、光学シンボル３０の画像から主コード部３００のセル列を構成するセルの色を示す色情報を認識する。副コード認識部１０２１は、光学シンボル３０の画像から、副コード部３０１に含まれる各セル列を構成するセルの色情報を認識する。このとき、副コード認識部１０２１は、副コード部３０１に含まれる各セルの色情報を認識する認識処理を、各セルについて並列的に実行する。合成部１０２２は、主コード認識部１０２０および副コード認識部１０２１でそれぞれ認識して得られた情報を合成し、光学シンボル３０が持つシンボル情報として作成する。シンボル情報は、例えば、光学シンボル３０の主コード部３００および副コード部３０１が含む各セル列内の各セルの色情報と、各セル間の接続関係の情報とを含む。
【００９８】
テーブル記憶部１０４は、図４（ｄ）や図７（ｅ）で説明したような、各セルに割り当てる色数に応じた変換テーブルを予め記憶する。デコード部１０３は、認識部１０２で作成されたシンボル情報をデコードし、光学シンボル３０にコード化された情報を復元する。
【００９９】
第１の実施形態に係るコード認識装置１０の各機能を実現するためのコード認識プログラムは、インストール可能な形式または実行可能な形式のファイルでＣＤ(Compact  Disk)、フレキシブルディスク（ＦＤ）、ＤＶＤ(Digital  Versatile  Disk)などのコンピュータで読み取り可能な記録媒体に記録して提供される。これに限らず、コード認識プログラムを、インターネットなどのネットワークに接続されたコンピュータ上に格納し、当該ネットワークを介してダウンロードさせることにより提供してもよい。また、コード認識プログラムをインターネットなどのネットワークを経由して提供または配布するように構成してもよい。
【０１００】
コード認識プログラムは、上述した各部（画像取得部１００、切出処理部１０１、認識部１０２およびデコード部１０３）を含むモジュール構成となっている。実際のハードウェアとしては、ＣＰＵ１０００がストレージ１００３などの記憶媒体から当該コード認識プログラムを読み出して実行することにより、上述した各部がＲＡＭ１００２などの主記憶装置上にロードされ、画像取得部１００、切出処理部１０１、認識部１０２およびデコード部１０３が主記憶装置上に生成されるようになっている。
【０１０１】
（第１の実施形態に係る光学シンボルの認識処理の詳細）
次に、第１の実施形態に係る光学シンボル３０の認識およびデコード処理について、より詳細に説明する。以下では、図１８を用いて説明した光学シンボル３０を用いるものとして説明を行う。
【０１０２】
すなわち、以下の説明に用いる光学シンボル３０は、開始セル３０２および終了セル３０３を含み、開始セル３０２および終了セル３０３に挟まれた８個のセルを含む主コード部３００と、主コード部３００の開始セル３０２および終了セル３０３に挟まれた８個のセルにそれぞれ接続される８本のセル列を含む副コード部３０１とを備える。主コード部３００において、開始セル３０２の色がＲ色とされ、Ｒ色とＫ色とが交互に配置されて構成される。副コード部３０１において、各セル列は、４色を用いて３進数を表す４個のセルをそれぞれ含む。コード認識装置１０は、この光学シンボル３０の構造を、予め知っているものとする。
【０１０３】
図２３は、第１の実施形態に係る、カメラ１１により撮像され、コード認識装置１０の画像取得部１００に取得される撮像画像６０の例を示す。図２３の例では、撮像画像６０は、表示媒体４０と、表示媒体４０上に表示された光学シンボル３０との組の画像を複数含んでいる。コード認識装置１０は、この撮像画像６０から光学シンボル３０の画像をそれぞれ切り出して、切り出した光学シンボル３０の画像に基づき、光学シンボル３０に含まれる各セルの色情報および各セルの接続関係を認識し、認識結果に基づき光学シンボル３０のデコードを行う。
【０１０４】
図２４は、第１の実施形態に係るコード認識装置１０における光学シンボル３０の認識およびデコード処理を示す一例のフローチャートである。図２４において、ステップＳ４００で、コード認識装置１０は、認識部１０２により、光学シンボル３０に対して認識処理を行い、主コード部３００のセルが認識されたか否かを判定する。
【０１０５】
より詳細には、ステップＳ４００において、コード認識装置１０は、切出処理部１０１により撮像画像６０から光学シンボル３０の画像の切り出しを行う。認識部１０２は、主コード認識部１０２０により、切り出された画像から主コード部３００のセルの認識処理を行い、主コード部３００における開始セル３０２および終了セル３０３以外のセルが認識されたか否かを判定する。認識されていないと判定した場合、認識部１０２は、処理をステップＳ４００に戻し（ステップＳ４００、「Ｎｏ」）、主コード部３００のセルの認識処理を続行する。
【０１０６】
ステップＳ４００で、主コード部３００のセルが認識されていると判定した場合（ステップＳ４００、「Ｙｅｓ」）、認識部１０２は、認識されたセルの色と接続情報とを取得し、処理をステップＳ４０１およびステップＳ４０２に移行させる。
【０１０７】
なお、接続情報は、例えば、認識されたセルを示す情報と、認識されたセルに隣接する、認識済みのセルを示す情報とを含む。認識部１０２は、例えば、主コード認識部１０２０および副コード認識部１０２１においてセルが認識された順序に応じた識別情報（例えば通し番号）を、そのセルを示す情報として用いる。
【０１０８】
ステップＳ４０１で、認識部１０２において主コード認識部１０２０は、主コード部３００のセル列の全てのセルを認識したか否かを判定する。認識していないと判定した場合（ステップＳ４０１、「Ｎｏ」）、認識部１０２は、処理をステップＳ４００に戻し、主コード部３００のセルの認識処理を続行する。
【０１０９】
一方、ステップＳ４０１で、主コード部３００のセル列の全てのセルを認識したと判定した場合（ステップＳ４０１、「Ｙｅｓ」）、認識部１０２は、処理をステップＳ４０３に移行させる。
【０１１０】
例えば、主コード部３００に含まれるセル列が、２種類の色情報のセルが交互に配置されて構成され、且つ、当該セル列に含まれるセルの個数が既知であるとする。この場合、主コード認識部１０２０は、当該セル列におけるセル間の色情報の遷移の回数を計数することで、主コード部３００のセル列の全てのセルを認識したと判定できる。また、主コード認識部１０２０は、この主コード部３００のセル列におけるセル間の色情報の遷移の回数を、主コード部３００のセル列により表現される情報であると認識できる。
【０１１１】
上述した図１７および図１８を例に取ると、主コード部３００において、開始セル３０２および終了セル３０３を含めて、９回の色情報の遷移が計数されると、主コード部３００のセル列の全てのセルを認識したと判定できる。また、色情報の遷移回数から１を減じた値が、主コード部３００のセル列の、開始セル３０２および終了セル３０３を除いたセルにより表現される情報すなわち桁数であると認識できる。
【０１１２】
また、ステップＳ４０２で、認識部１０２は、副コード認識部１０２１により、副コード部３０１のセルに対する認識処理を行う。より詳細には、副コード認識部１０２１は、ステップＳ４００で主コード認識部１０２０により認識されたセルに接続される、副コード部３０１のセル列を処理対象として、この処理対象のセル列について、各セルの認識処理を行う。
【０１１３】
図２５は、第１の実施形態に係る、このステップＳ４０２による副コード認識部１０２１による認識処理を示す一例のフローチャートである。ステップＳ４０２０で、副コード認識部１０２１は、例えば主コード部３００で認識されたセルに対して接続される副コード部３０１のセルを認識する。ここで認識されたセルが含まれるセル列が、処理対象のセル列となる。副コード認識部１０２１は、認識されたセルの色と接続情報とを取得する。次のステップＳ４０２１で、副コード認識部１０２１は、処理対象のセル列における色の遷移に基づき、直前の処理で認識されたセルに隣接するセルを認識する。副コード認識部１０２１は、認識されたセルの色と接続情報とを取得する。
【０１１４】
次のステップＳ４０２２で、副コード認識部１０２１は、ステップＳ４０２１で認識されたセルが、処理対象のセル列の終端セルであるか否かを判定する。終端セルではないと判定した場合（ステップＳ４０２２、「Ｎｏ」）、副コード認識部１０２１は、処理をステップＳ４０２１に戻し、直前のステップＳ４０２１の処理において認識されたセルに隣接するセルの認識処理を行う。一方、副コード認識部１０２１は、終端セルであると判定した場合（ステップＳ４０２２、「Ｙｅｓ」）、図２５のフローチャートによる一連の処理を終了させる。
【０１１５】
なお、副コード認識部１０２１は、例えば、ステップＳ４０２１において予め定められた回数の色の遷移を認識した場合に、ステップＳ４０２２において、認識されたセルが処理対象のセル列の終端セルであると判定する。これに限らず、副コード認識部１０２１は、ステップＳ４０２１において認識されたセルに隣接するセルの接続数に基づきステップＳ４０２２の終端セルの判定を行ってもよい。
【０１１６】
この図２５のフローチャートによる処理は、副コード部３０１に含まれる複数のセル列に対して、並列的に実行される。例えば、副コード認識部１０２１は、図２４のステップＳ４００において主コード認識部１０２０によりセルが認識される毎に、ステップＳ４０２の処理、すなわち、図２５のフローチャートによる処理を実行させる。
【０１１７】
図２４のフローチャートの説明に戻り、認識部１０２は、ステップＳ４０３で、主コード部３００のセル列に接続される、副コード部３０１の全てのセル列に対する処理が終了したか否かを判定する。例えば、認識部１０２は、主コード認識部１０２０におけるステップＳ４００およびステップＳ４０１の処理と、副コード認識部１０２１におけるステップＳ４０２の処理とを監視する。認識部１０２は、ステップＳ４００およびステップＳ４０１において最後に認識された主コード部３００のセルに接続される副コード部３０１のセル列に対するステップＳ４０２の処理が終了したか否かを判定する。終了していないと判定した場合（ステップＳ４０３、「Ｎｏ」）、認識部１０２は、処理をステップＳ４０３に戻して、処理の終了を待機する。
【０１１８】
一方、認識部１０２は、ステップＳ４０３で、主コード部３００のセル列に接続される、副コード部３０１の全てのセル列に対する処理が終了したと判定した場合（ステップＳ４０３、「Ｙｅｓ」）、処理をステップＳ４０４に移行させる。
【０１１９】
ステップＳ４０４で、認識部１０２は、合成部１０２２により、主コード部３００のセル列を読み取って得られた情報と、副コード部３０１に含まれる複数のセル列を読み取って得られた情報とを合成し、各情報が合成された情報を、光学シンボル３０が持つシンボル情報として作成する。より具体的には、合成部１０２２は、上述のステップＳ４００およびステップＳ４０１、ならびに、ステップＳ４０２で取得された各セルの接続情報に基づき、主コード部３００に含まれる情報と、副コード部３０１に含まれる情報との合成処理を行う。
【０１２０】
図２６を用いて、第１の実施形態に係る、合成部１０２２による接続情報に基づく合成処理について説明する。なお、ここでは、説明のため、主コード部３００のセル列は、図２６（ｄ）に示されるように、開始セル３０２および終了セル３０３と、開始セル３０２および終了セル３０３に挟まれた３個のセル（それぞれラベルを丸で囲んで示す）を含むものとする。また、副コード部３０１の各セル列は、２個のセルを含むものとする。
【０１２１】
なお、図２６（ｄ）において、各セルに付された数字は、例えば各セルが認識された順番に応じて各セルに与えられた識別情報（ラベル）である。開始セル３０２および終了セル３０３のラベルは、それぞれ「Ｓ」および「Ｅ」とされている。
【０１２２】
図２６（ａ）は、各セル間の接続情報をラベルを用いて示している。図２６（ａ）において、括弧「（）」内に併記される２つのセルが接続されていることを示し、例えばラベル＃１のセルと、ラベル＃２のセルとが接続されることが示されている。同様に、ラベル＃５およびラベル＃２の各セル、ラベル＃３およびラベル＃９の各セル、ラベル＃１およびラベル＃３の各セル、ラベル＃１およびラベル＃Ｓの各セル、ラベル＃８およびラベル＃４の各セル、ラベル＃３およびラベル＃６の各セル、ラベル＃６およびラベル＃７の各セル、ラベル＃９およびラベル＃４の各セル、ラベル＃９およびラベル＃Ｅの各セルがそれぞれ接続されることが示されている。
【０１２３】
合成部１０２２は、図２６（ａ）に示される各セル間の接続情報に基づき、各セルに接続される他のセルの個数である接続数を求める。図２６（ｂ）は、ラベル＃１〜＃９の各セルの接続数を示す。ラベル＃１、＃３および＃９の各セルが接続数「３」であり、ラベル＃２、＃４および＃６の各セルが接続数「２」であり、ラベル＃５、＃７および＃８の各セルが接続数「１」となっている。
【０１２４】
合成部１０２２は、図２６（ａ）で示した各セルの接続情報と、図２６（ｂ）で示した各セルの接続数とに基づき、各セルの接続の組を求める。すなわち、図１６を用いて説明したように、接続数「３」のセルは、主コード部３００のセル列のセルである。接続数「２」のセルは、副コード部３０１における各セル列の、終端以外のセルである。また、接続数「１」のセルは、副コード部３０１における各セル列の終端のセルである。なお、開始セル３０２および終了セル３０３も、接続数「１」となるが、開始セル３０２および終了セル３０３は、ラベル＃Ｓおよび＃Ｅとして他のセルと区別されているので、ここで考慮する必要は無い。
【０１２５】
合成部１０２２は、これらの情報と、図２６（ａ）のセルの接続情報とから、図２６（ｃ）に接続組として示されるように、ラベル＃１、＃３および＃９の各セルによる接続の組により、幹すなわち主コード部３００のセル列における各セルの接続関係を作成する。また、ラベル＃２および＃５、ラベル＃４および＃８、ならびに、ラベル＃６および＃７の各接続の組により、それぞれ枝すなわち副コード部３０１の各セル列における各セルの接続関係を作成する。さらに、合成部１０２２は、幹の各セルの接続関係と、枝の各セルの接続関係とに基づき、副コード部３０１の各セル列を、主コード部３００のセル列における各セルに接続する。
【０１２６】
合成部１０２２は、副コード部３０１の各セル列が、主コード部３００のセル列における各セルに接続された構成に基づき、主コード部３００のセル列に含まれる情報と、副コード部３０１の各セル列に含まれる各情報とを取得する。合成部１０２２は、取得された各情報を合成し、合成した情報を、光学シンボル３０が持つシンボル情報として作成する。上述したように、シンボル情報は、光学シンボル３０の主コード部３００および副コード部３０１が含む各セル列内の各セルの色情報と、各セル間の接続関係の情報とを含む。
【０１２７】
説明は図２４のフローチャートに戻り、ステップＳ４０４で合成部１０２２により主コード部３００のセル列に基づく情報と副コード部３０１の各セル列に基づく情報とが合成されて光学シンボル３０が持つシンボル情報が作成されると、処理がステップＳ４０５に移行される。ステップＳ４０５で、デコード部１０３は、ステップＳ４０４で作成されたシンボル情報のデコード処理を行い、元の情報を復元する。
【０１２８】
より詳細には、デコード部１０３は、ステップＳ４０４で合成部１０２２により作成されたシンボル情報に基づき、テーブル記憶部１０４に記憶される変換テーブルを参照する。デコード部１０３は、シンボル情報に基づき、光学シンボル３０の副コード部３０１の各セル列における隣接する２つのセルについて、主コード部３００のセル列に近い側のセルを遷移元のセルとして、各セルの色情報に従い変換テーブルを参照して値を取得する。
【０１２９】
デコード部１０３は、副コード部３０１の１本のセル列の各セルについて値が取得されると、取得された各値を３進数の桁に応じて加算して、当該セル列の値を求める。デコード部１０３は、求めたセル列の値に基づき、例えばコード表を参照して、元の文字を復元する。この処理を、副コード部３０１の全てのセル列に対して実行し、光学シンボル３０にコード化された元の文字列をデコードする。
【０１３０】
ステップＳ４０５のデコード処理が終了すると、図２４のフローチャートによる一連の処理が終了される。
【０１３１】
このように、第１の実施形態に係る光学シンボル３０は、主コード部３００のセル列に対して、副コード部３０１の複数のセル列が接続されている。そのため、副コード部３０１の複数のセル列に対するデコード処理を並列的に実行することができ、デコード処理を高速化できる。
【０１３２】
（第１の実施形態に係る光学シンボルの切り出し処理）
次に、第１の実施形態に係る光学シンボル３０を撮像画像から切り出す切り出し処理について説明する。第１の実施形態では、この切り出し処理として、（１）テンプレートを用いたテンプレートマッチングによる第１の切り出し処理と、（２）画素の色の連続性を用いた第２の切り出し処理とのうち、何れかを適用する。
【０１３３】
（第１の切り出し処理）
先ず、（１）の、第１の切り出し処理について説明する。第１の切り出し処理では、光学シンボル３０の形状を既知とし、光学シンボル３０の形状に対応する形状のテンプレートを用意する。図２７は、第１の実施形態に適用可能なテンプレートの例を示す。図２７（ａ）は、形状が既知の光学シンボル３０の例を示す。
【０１３４】
図２７（ｂ）は、２値化画像によるテンプレート７０ａの例を示す。テンプレート７０ａは、例えば、図２７（ａ）に示される光学シンボル３０に対して、当該光学シンボル３０を輝度値に対する所定の閾値に基づき２値化して作成する。図２７（ｃ）は、エッジ検出により作成したテンプレート７０ｂの例を示す。テンプレート７０ｂは、例えば、図２７（ａ）に示される光学シンボル３０をグレースケールの画像に変換し、このグレースケールの画像に対して既知の方法によりエッジ検出処理を施し、検出されたエッジ情報を用いて作成する。
【０１３５】
第１の切り出し処理は、これらテンプレート７０ａおよび７０ｂの何れを用いて実行してもよい。以下では、２値化画像によるテンプレート７０ａを用いるものとして説明を行う。
【０１３６】
図２８は、第１の実施形態に係る第１の切り出し処理を示す一例のフローチャートである。この図２８のフローチャートによる処理は、上述した図２４のフローチャートにおけるステップＳ４００の処理に対応する。
【０１３７】
ステップＳ２００で、コード認識装置１０は、切出処理部１０１により、撮像画像６０（図２３参照）に対して、既知の技術を用いてエッジ検出処理を施す。次のステップＳ２０１で、切出処理部１０１は、用いるテンプレート７０ａのサイズおよび形状を選択する。すなわち、撮像画像６０に含まれる光学シンボル３０の画像は、撮像時のカメラ１１と光学シンボル３０との距離や、カメラ１１の画角、撮像の角度などにより、向きや大きさが変化する。そのため、切出処理部１０１は、複数のサイズのテンプレート７０ａを用意する。
【０１３８】
次のステップＳ２０２で、切出処理部１０１は、ステップＳ２０１で選択されたテンプレート７０ａを用いて、撮像画像６０に対して既知の技術を用いてテンプレートマッチング処理を施し、類似度を求める。例えば、切出処理部１０１は、ステップＳ２０１で選択したテンプレート７０ａを撮像画像６０内でスキャンさせて、各位置での類似度を求める。
【０１３９】
次のステップＳ２０３で、切出処理部１０１は、ステップＳ２０２で求めた類似度に基づき、閾値以上の類似度の有無を判定する。このとき、上述したように、光学シンボル３０が櫛型形状とされているため、撮像画像６０に含まれる、光学シンボル３０の画像と、光学シンボル３０以外の画像との区別が容易であり、類似度に基づく判定を高精度に実行可能である。閾値以上の類似度が無いと判定した場合（ステップＳ２０３、「Ｎｏ」）、切出処理部１０１は、処理をステップＳ２０１に戻し、別のサイズ、形状のテンプレート７０ａを選択して再びテンプレートマッチング処理を行う。
【０１４０】
ステップＳ２０３で、閾値以上の類似度があると判定した場合（ステップＳ２０３、「Ｙｅｓ」）、切出処理部１０１は、処理をステップＳ２０４に移行させる。ステップＳ２０４で、切出処理部１０１は、撮像画像６０から、類似度が閾値以上と判定された撮像画像６０上の位置におけるテンプレート７０ａの領域の画像を切り出す。次のステップＳ２０５で、コード認識装置１０は、認識部１０２の主コード認識部１０２０により、ステップＳ２０４で切り出した画像から、主コード部３００のセル列を構成するセルの色情報を認識する。
【０１４１】
主コード部３００のセル列構成するセルの色情報が認識されると、図２８のフローチャートによる一連の処理が終了される。
【０１４２】
図２９は、第１の実施形態に係る第１の切り出し処理により切り出した光学シンボル３０の画像から、各セルの色情報を取得する方法の例を示す。図２９（ａ）は、各セルにおける所定の位置の画素から色情報を取得する例を示す。図２９（ｂ）は、セル列をセルの接続方向にスキャンして、位置が連続する複数の画素から色情報を取得する例を示す。
【０１４３】
図２９（ａ）に示す取得方法は、光学シンボル３０における各セルが一定の大きさを有し、且つ、撮像画像６０に歪みが少ない場合に、高速に色の取得を行うことが可能である。一方、図２９（ｂ）に示す取得方法は、図２９（ａ）の取得方法に比べて処理に時間を要する一方で、各セルの大きさが一定ではない場合や、撮像画像６０に歪みが多い場合であっても、高精度に色の取得を行うことが可能である。また、図２９（ｂ）に示す取得方法は、撮像画像６０における色ムラに強いという利点もある。
【０１４４】
これら図２９（ａ）に示す取得方法と、図２９（ｂ）に示す取得方法は、撮像画像６０の撮像条件などに応じて適宜選択できるようにすると、好ましい。
【０１４５】
（第２の切り出し処理）
次に、（２）の、第２の切り出し処理について説明する。第２の切り出し処理では、撮像画像６０の画素毎に色を認識し、注目画素に隣接する隣接画素と注目画素とが同一色である場合に、注目画素と当該隣接画素とを一纏めにしてラベリングする。
【０１４６】
図３０は、第１の実施形態に係る第２の切り出し処理を示す一例のフローチャートである。この図３０のフローチャートによる処理は、上述した図２４のフローチャートにおけるステップＳ４００の処理に対応させることができる。
【０１４７】
ステップＳ３００で、コード認識装置１０は、切出処理部１０１により、撮像画像６０からランダムに画素を注目画素として選択する。なお、ステップＳ３００では、撮像画像６０の所定画素を注目画素として選択するようにしてもよい。
【０１４８】
次のステップＳ３０１で、切出処理部１０１は、注目画素の色を認識する。次のステップＳ３０２で、切出処理部１０１は、注目画素の色情報が、光学シンボル３０の構成色（例えばＲ色、Ｇ色、Ｂ色およびＫ色の何れか）の色情報と対応するか否かを判定する。一例として、切出処理部１０１は、ある色情報に係る色を示す値が、他の色情報に係る色を示す値に対して所定の範囲内に収まっている場合に、当該ある色情報が当該他の色情報に対応していると判定する。切出処理部１０１は、注目画素の色情報が光学シンボル３０の構成色の色情報と対応しないと判定した場合（ステップＳ３０２、「Ｎｏ」）、処理をステップＳ３００に戻し、別の画素を新たな注目画素として選択する。
【０１４９】
一方、切出処理部１０１は、ステップＳ３０２で、注目画素の色情報が光学シンボル３０の構成色の色情報に対応すると判定した場合（ステップＳ３０２、「Ｙｅｓ」）、処理をステップＳ３０３に移行する。ステップＳ３０３は、注目画素の色情報と、注目画素に隣接する隣接画素の色情報とに基づき各画素をラベリングする処理である。換言すれば、ステップＳ３０３は、光学シンボル３０に含まれるセルを特定するための処理である。ステップＳ３０３は、ステップＳ３０３０〜ステップＳ３０３７の一連の処理を含む。
【０１５０】
ステップＳ３０３において、ステップＳ３０３０で、切出処理部１０１は、注目画素に対して固有のラベルを付与するラベリングを行う。ラベリングは、ラベリング対象の画素（注目画素）の撮像画像６０上の座標情報と、注目画素の色情報と、所定のラベルとを関連付けることで行う。切出処理部１０１は、ラベリングを行った画素の情報を、例えばＲＡＭ１００２に記憶する。
【０１５１】
次のステップＳ３０３１で、切出処理部１０１は、色情報の認識に用いるパラメータを調整する。例えば、切出処理部１０１は、Ｒ色、Ｇ色、Ｂ色およびＫ色をそれぞれ認識するための閾値を、ステップＳ３０３１で調整する。
【０１５２】
次のステップＳ３０３２で、切出処理部１０１は、注目画素に隣接する隣接画素のうち、未処理の隣接画素が有るか否かを判定する。切出処理部１０１は、判定対象の隣接画素の座標に基づき当該隣接画素にラベルが付与されているか否かを調べ、ラベルが付与されていない場合に、当該隣接画素が未処理画素であると判定する。切出処理部１０１は、未処理の隣接画素が無いと判定した場合（ステップＳ３０３２、「Ｎｏ」）、処理を後述するステップＳ３０３４に移行する。
【０１５３】
一方、切出処理部１０１は、ステップＳ３０３２で、未処理の隣接画素があると判定した場合（ステップＳ３０３２、「Ｙｅｓ」）、処理をステップＳ３０３３に移行する。ステップＳ３０３３で、切出処理部１０１は、未処理の隣接画素の座標を、座標記憶部に記憶する。座標記憶部は、例えばＲＡＭ１００２やストレージ１００３の所定領域が用いられる。このステップＳ３０３３の処理では、光学シンボル３０の構成色の色情報と対応しない色情報の未処理の隣接画素も、座標記憶部に記憶される。
【０１５４】
次のステップＳ３０３４で、切出処理部１０１は、未処理の隣接画素の座標が座標記憶部に記憶されているか否かを判定する。切出処理部１０１は、未処理の隣接画素の座標が座標記憶部に記憶されていると判定した場合（ステップＳ３０３４、「Ｙｅｓ」）、処理をステップＳ３０３５に移行させる。ステップＳ３０３５で、切出処理部１０１は、未処理の隣接画素のうち１つの画素を選択する。このとき、切出処理部１０１は、注目画素と同一の色の画素を優先して選択する。
【０１５５】
次のステップＳ３０３６で、切出処理部１０１は、ステップＳ３０３５で選択した未処理の隣接画素の色情報を認識する。次のステップＳ３０３７で、切出処理部１０１は、ステップＳ３０３６で認識された色情報が、光学シンボル３０の構成色の色情報と対応するか否かを判定する。
【０１５６】
切出処理部１０１は、認識された色情報が光学シンボル３０の構成色の色情報と対応すると判定した場合（ステップＳ３０３７、「Ｙｅｓ」）、処理をステップＳ３０３０に戻し、当該未処理の隣接画素を新たな注目画素としてラベリングを行う。
【０１５７】
このラベリングにおいて、切出処理部１０１は、当該新たな注目画素の色情報が、直前の処理における注目画素の色情報に対応する場合、当該新たな注目画素に、当該直前の処理における注目画素と同一のラベルを付与する。一方、切出処理部１０１は、当該新たな注目画素の色情報が、直前の処理における注目画素の色情報と異なる色情報である場合、当該新たな注目画素に、当該直前の処理における注目画素と異なるラベルを付与する。すなわち、切出処理部１０１は、ステップＳ３０３０のラベリング処理により、座標が連続し、且つ、互いに対応する色情報を有する一塊の画素群に対して、固有のラベルを付与する。
【０１５８】
一方、ステップＳ３０３７で、切出処理部１０１は、ステップＳ３０３６で認識された色情報が、光学シンボル３０の構成色の色情報に対応しないと判定した場合（ステップＳ３０３７、「Ｎｏ」）、処理をステップＳ３０３４に戻す。切出処理部１０１は、ステップＳ３０３４で未処理の隣接画素の座標が座標記憶部に記憶されていると判定した場合（ステップＳ３０３４、「Ｙｅｓ」）、次のステップＳ３０３５で、直前の処理で選択した未処理の隣接画素と異なる未処理の隣接画素を選択する。
【０１５９】
上述したステップＳ３０３４で、未処理の隣接画素の座標が座標記憶部に記憶されていないと判定した場合（ステップＳ３０３４、「Ｎｏ」）、ステップＳ３０３の一連の処理を抜け、処理がステップＳ３０４に移行される。すなわち、ステップＳ３０３２で未処理の隣接画素が無く、且つ、ステップＳ３０３４で座標記憶部に未処理の隣接画素の座標が記憶されていない場合に、ステップＳ３０３の一連の処理を抜けることになる。
【０１６０】
ステップＳ３０４で、コード認識装置１０において、主コード認識部１０２０は、ステップＳ３０３におけるラベリングによりそれぞれ固有のラベルが付与された各画素群による構成が、主コード部３００のセルの接続情報と一致するか否かを判定する。
【０１６１】
すなわち、このステップＳ３０４では、ステップＳ３０３のラベリング処理によりそれぞれ固有のラベルが付与された画素群が複数あり、且つ、これら複数の画素群間の接続関係が、主コード部３００のセル列における各セルの接続情報と完全一致する接続関係を含むか否かを判定する。画素群間の接続関係は、例えば、ラベリングされた各画素の座標および色に基づき知ることができる。
【０１６２】
主コード認識部１０２０は、ステップＳ３０４で、それぞれ固有のラベルが付与された各画素群による構成が、主コード部３００のセルの接続情報と一致しないと判定した場合（ステップＳ３０４、「Ｎｏ」）、処理をステップＳ３００に戻す。すなわち、この場合は、ステップＳ３００で選択された画素が、光学シンボル３０を構成する画素ではなかったことになる。
【０１６３】
一方、主コード認識部１０２０は、ステップＳ３０４で、それぞれ固有のラベルが付与された各画素群による構成が、主コード部３００のセルの接続情報と一致すると判定した場合（ステップＳ３０４、「Ｙｅｓ」）、図３０のフローチャートによる一連の処理を終了させる。この場合、少なくとも光学シンボル３０の主コード部３００の切り出し処理が完了している。
【０１６４】
なお、主コード認識部１０２０は、上述のステップＳ３０３のラベリング処理において、固有のラベルが付与された画素群と、この画素群に接続される他の画素群との接続関係に基づき、当該画素群が主コード部３００のセルであると認識することが可能である。画素群が主コード部３００のセルであると認識された場合、図２４のステップＳ４００の判定に従い処理をステップＳ４０２に移行させ（ステップＳ４００、「Ｙｅｓ」）、副コード部３０１のセルの処理を実行する。
【０１６５】
この場合、例えば、コード認識装置１０は、図３０のフローチャートの処理を別途実行することで、副コード部３０１のセル列の切り出し処理を実行することができる。一例として、切出処理部１０１は、ステップＳ３００における画素の選択を、主コード部３００のセルであると認識した画素群に隣接する画素に対して行う。また、ステップＳ３０４の判定処理は、例えば、副コード認識部１０２１により、副コード部３０１のセルの接続情報と一致するか否かを判定する。
【０１６６】
コード認識装置１０は、主コード認識部１０２０により主コード部３００のセルが認識される毎に、図３０のフローチャートの処理を別途、並列的に実行できる。これにより、処理の高速化が可能である。
【０１６７】
なお、図３０のフローチャートのステップＳ３０３では、注目画素に隣接する隣接画素の色実行が光学シンボル３０の構成色の色情報と対応する場合、当該隣接画素を新たな注目画素として処理を行い、順次、ラベルを付与する領域を拡大していく。このとき、光学シンボル３０の構成色以外の色の隣接画素への領域の拡大を行わない。このように、ラベリング処理を行う領域を限定的とすることで、ラベリング処理をより高速に実行することが可能である。
【０１６８】
（第１の実施形態の変形例）
次に、第１の実施形態の変形例について説明する。第１の実施形態では、光学シンボル３０を、セルが直線状に配列されたセル列による主コード部３００と、主コード部３００の開始セル３０２および終了セル３０３を除く各セルに接続される、それぞれセルが直線状に配列された複数のセル列による副コード部３０１とにより構成した。光学シンボル３０の形状は、この例に限定されず、主コード部３００および副コード部３０１の各セル列をそれぞれ直線状に配列しない形状も可能である。
【０１６９】
図３１は、第１の実施形態の変形例に係る光学シンボル３０’の一例の構成を示す。第１の実施形態の変形例では、光学シンボル３０’を、図３１（ａ）に例示されるように、各セルの大きさをそれぞれ異ならせると共に、各セル間の接続を、各セルの任意の辺に対して行い、３以上のセルが直線状に配列されないように構成している。なお、図３１（ａ）のセル内のアルファベットは、そのセルに付与されるラベルを示している。
【０１７０】
図３１（ｂ）は、図３１（ａ）の光学シンボル３０’の構成を整理して示している。なお、図３１（ｂ）では、ラベルを丸で囲んでセルを示している。図３１（ｂ）において、セル「ａ」、「ｂ」、「ｇ」、「ｋ」、「ｐ」および「ｑ」が主コード部３００のセル列となる。この例では、セル「ａ」および「ｑ」がそれぞれ開始セル３０２および終了セル３０３であり、セル「ａ」および「ｑ」に挟まれる各セル「ｂ」、「ｇ」、「ｋ」および「ｐ」は、３以上のセルが接続されている。
【０１７１】
また、セル「ｃ」、「ｄ」および「ｅ」、セル「ｉ」および「ｊ」、セル「ｌ」、「ｍ」、「ｎ」および「ｏ」、ならびに、セル「ｒ」および「ｓ」は、それぞれ主コード部３００のセル「ｂ」、「ｇ」、「ｋ」および「ｐ」に接続される、副コード部３０１のセル列である。また、図３１（ｂ）の例では、セル「ｆ」および「ｈ」も、それぞれ副コード部３０１のセル列として構成されている。この場合、例えばセル「ｆ」は、主コード部３００のセル「ｂ」に対して、セル「ｃ」、「ｄ」および「ｅ」によるセル列とは異なる方向に接続される。セル「ｈ」も同様である。また、これらセル「ｆ」および「ｈ」は、それぞれ、副コード部３０１におけるセル列の終端セルでもある。
【０１７２】
このような構成であっても、主コード部３００の各セルに対して副コード部３０１の各セル列がそれぞれ接続されるため、副コード部３０１の各セル列に対する処理を並列的に実行でき、処理の高速化が可能である。
【０１７３】
（第２の実施形態）
次に、第２の実施形態について説明する。第２の実施形態は、第１の実施形態に係る光学シンボル３０を、コード管理システムおよび搬送システムに適用させた例である。図３２は、第２の実施形態に係るコード管理システムおよび搬送システムを概略的に示す。なお、図３２において、上述した図１、図１０および図２０などと共通する部分には同一の符号を付して、詳細な説明を省略する。
【０１７４】
図３２において、コード管理システムは、互いにネットワーク１３で接続されるコード認識装置１０、コード管理装置１２、コード生成装置２０およびプリンタ２１を含む。また、搬送システムは、このコード管理システムの構成に対して、さらに、搬送制御装置１４を含む。搬送制御装置１４は、搬送装置５１の駆動制御を行うことができる。例えば、搬送制御装置１４は、位置情報を入力することで、入力された位置情報に対応する位置の搬送装置５１を駆動制御し、移動させることができる。
【０１７５】
図３２の例では、各搬送装置５１に対して、それぞれ物品５０が積載されている。物品５０には、第１の実施形態に係る光学シンボル３０が表示される表示媒体４０が、外面（この例では上面）に添付される。各物品５０に添付される表示媒体４０に表示される各光学シンボル３０は、それぞれ、各物品５０を識別するための識別情報がコード化されたものである。
【０１７６】
コード生成装置２０は、各物品５０を識別する各識別情報が入力される。コード生成装置２０は、入力された各識別情報を、例えば図１３に示される手順に従いコード化して、各物品５０にそれぞれ対応する各光学シンボル３０を生成する。コード生成装置２０は、生成した各光学シンボル３０を、それぞれ表示媒体４０に印刷する。光学シンボル３０が印刷された各表示媒体４０は、光学シンボル３０にコード化された識別情報に対応する物品５０に添付される。
【０１７７】
コード認識装置１０は、カメラ１１により撮像された撮像画像６０から、図２３〜図３０を用いて説明した方法に従い、各光学シンボル３０の切り出しを行う。すなわち、コード認識装置１０は、光学シンボル３０を含む撮像画像６０を取得する画像取得部として機能する。コード認識装置１０は、さらに、切り出した各光学シンボル３０をデコードし、光学シンボル３０にコード化された識別情報を復元する。すなわち、コード認識装置１０は、光学シンボル３０にコード化された識別情報を取得する識別情報取得部としても機能する。また、コード認識装置１０は、例えば光学シンボル３０の切り出し処理の際に取得した画素の座標に基づき、撮像画像６０内における各光学シンボル３０の位置を取得する。すなわち、コード認識装置１０は、光学シンボル３０の位置を取得する位置取得部としても機能する。
【０１７８】
コード認識装置１０は、各光学シンボル３０をデコードして復元した各識別情報と、各光学シンボル３０の位置を示す位置情報とをコード管理装置１２に送信する。コード管理装置１２は、コード認識装置１０から送信された各識別情報と、各位置情報とを関連付けて管理する。ここで、撮像画像６０の撮像範囲と、各物品５０が配置される領域の座標とが予め関連付けられているものとする。
【０１７９】
搬送制御装置１４は、例えば、外部から、特定の物品５０の識別情報と、当該物品５０を移動させる移動指示が入力される。搬送制御装置１４は、入力された識別情報をコード管理装置１２に送信し、当該識別装置に関連付けられた位置情報を、コード管理装置１２に要求する。コード管理装置１２は、この要求に応じて、管理される情報から識別情報に関連付けられた位置情報を取得して、搬送制御装置１４に送信する。搬送制御装置１４は、コード管理装置１２から送信された位置情報に対応する搬送装置５１の動作を制御して、当該搬送装置５１を移動させる。
【０１８０】
このように、第２の実施形態に係るコード管理システムおよび搬送システムは、各物品５０に添付された表示媒体４０に表示される各光学シンボル３０をカメラ１１により撮像して、各光学シンボル３０にコード化された各識別情報を一括して取得および管理できる。そのため、各物品５０の出庫管理などを容易に実行することが可能である。
【０１８１】
なお、上述の実施形態は、本発明の好適な実施の例ではあるがこれに限定されるものではなく、本発明の要旨を逸脱しない範囲において種々の変形による実施が可能である。
【符号の説明】
【０１８２】
１０  コード認識装置
１１  カメラ
１２  コード管理装置
１４  搬送制御装置
２０  コード生成装置
２１  プリンタ
３０，３０’  光学シンボル
４０  表示媒体
５０  物品
５１  搬送装置
６０  撮像画像
７０ａ，７０ｂ  テンプレート
１００  画像取得部
１０１  切出処理部
１０２  認識部
１０３  デコード部
１０４，２０４  テーブル記憶部
２０１  分解部
２０２  変換部
２０３  色割当部
３００，３００’  主コード部
３０１，３０１’  副コード部
３０２  開始セル
３０３  終了セル
１０２０  主コード認識部
１０２１  副コード認識部
１０２２  合成部
【先行技術文献】
【特許文献】
【０１８３】
【特許文献１】特許第４４０４２２４号公報
【図１】
2019185828.tif 000003
【図２】
2019185828.tif 000004
【図３】
2019185828.tif 000005
【図４】
2019185828.tif 000006
【図５】
2019185828.tif 000007
【図６】
2019185828.tif 000008
【図７】
2019185828.tif 000009
【図８】
2019185828.tif 000010
【図９】
2019185828.tif 000011
【図１０】
2019185828.tif 000012
【図１１】
2019185828.tif 000013
【図１２】
2019185828.tif 000014
【図１３】
2019185828.tif 000015
【図１４】
2019185828.tif 000016
【図１５】
2019185828.tif 000017
【図１６】
2019185828.tif 000018
【図１７】
2019185828.tif 000019
【図１８】
2019185828.tif 000020
【図１９】
2019185828.tif 000021
【図２０】
2019185828.tif 000022
【図２１】
2019185828.tif 000023
【図２２】
2019185828.tif 000024
【図２３】
2019185828.tif 000025
【図２４】
2019185828.tif 000026
【図２５】
2019185828.tif 000027
【図２６】
2019185828.tif 000028
【図２７】
2019185828.tif 000029
【図２８】
2019185828.tif 000030
【図２９】
2019185828.tif 000031
【図３０】
2019185828.tif 000032
【図３１】
2019185828.tif 000033
【図３２】
2019185828.tif 000034
【手続補正書】
【提出日】令和1年8月21日(2019.8.21)
【手続補正１】
【補正対象書類名】明細書
【補正対象項目名】０００５
【補正方法】変更
【補正の内容】
【０００５】
上述した課題を解決するために、本発明は、光学シンボルであって、複数の主コードセルが１次元に接続された第１のセル列を有する主コード部と、複数の副コードセルが１次元に接続された第２のセル列を有する副コード部と、を備え、前記主コードセルおよび前記副コードセルは、複数の色から選択された色がそれぞれ割り当てられ前記第１のセル列は、２Ｎ個（Ｎは１以上の整数）のセルにより構成され、２種類の色の前記主コードセルが交互に配置され、該第１のセル列の一方の端部および他方の端部の前記主コードセルの色が互いに異なり、前記第２のセル列は、前記複数の主コードセルのうち、少なくとも何れか１つのセルに接続される。
【手続補正２】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
光学シンボルであって、
複数の主コードセルが１次元に接続された第１のセル列を有する主コード部と、
複数の副コードセルが１次元に接続された第２のセル列を有する副コード部と、を備え、
前記主コードセルおよび前記副コードセルは、複数の色から選択された色がそれぞれ割り当てられ
前記第１のセル列は、
２Ｎ個（Ｎは１以上の整数）のセルにより構成され、
２種類の色の前記主コードセルが交互に配置され、該第１のセル列の一方の端部および他方の端部の前記主コードセルの色が互いに異なり、
前記第２のセル列は、前記複数の主コードセルのうち、少なくとも何れか１つのセルに接続される光学シンボル。
【請求項２】
前記副コード部は、前記第２のセル列を複数有する
請求項１に記載の光学シンボル。
【請求項３】
前記第２のセル列は、それぞれ異なる前記主コードセルに接続され、前記第２のセル列同士は所定以上の間隔を有する
請求項２に記載の光学シンボル。
【請求項４】
前記主コードセルおよび前記副コードセルは、隣接して接続されるセルと異なる色が割り当てられる
請求項１乃至請求項３の何れか１項に記載の光学シンボル。
【請求項５】
前記第２のセル列は、
予め定められたサイズであり、前記副コードセルは、属するセル列に含まれる副コードセルの総数に応じたサイズを有する
請求項１乃至請求項４の何れか１項に記載の光学シンボル。
【請求項６】
前記第２のセル列は、
予め定められたサイズであり、予め定められた個数の前記副コードセルを含む
請求項１乃至請求項４の何れか１項に記載の光学シンボル。
【請求項７】
前記副コード部は、
隣接して接続される前記副コードセル間の色の遷移を用いて値が表現される
請求項１乃至請求項６の何れか１項に記載の光学シンボル。
【請求項８】
前記主コード部は、
前記主コードセルに接続される前記副コードセルを含む前記副コード部に表現される前記値の位置を表現する
請求項７に記載の光学シンボル。
【請求項９】
前記主コードセル同士が接続される方向と、前記副コードセル同士が接続される方向が異なる
請求項１乃至請求項８の何れか１項に記載の光学シンボル。
【請求項１０】
請求項１乃至請求項９の何れか１項に記載の光学シンボルが表示された表示媒体。
【請求項１１】
請求項１０に記載の表示媒体が外面に添付された物品。
【請求項１２】
請求項１乃至請求項９の何れか１項に記載の光学シンボルを生成する生成装置。