2次元コード復元プログラム、及び、復元サーバ
【課題】
2次元コードに表現されたビット列を、多様な状況に対応しながら復元することを可能にする。
【解決手段】
2次元コードの復元に適用される値を変更可能なパラメータを有すること、及び、前記パラメータの値は、復元プロセスにおいて、予め用意された複数の値から選択されて適用されること、により実現する。
2次元コードに表現されたビット列を、多様な状況に対応しながら復元することを可能にする。
【解決手段】
2次元コードの復元に適用される値を変更可能なパラメータを有すること、及び、前記パラメータの値は、復元プロセスにおいて、予め用意された複数の値から選択されて適用されること、により実現する。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、画像表示装置のディスプレイに表示された、もしくは、画像形成装置からシート状記録媒体や固形物表面に出力された2次元コードを、撮像装置により撮像して画像データを取得した後、コンピュータを用いて解析することで、前記2次元コードに表現されたビット列を復元することを可能とした、2次元コード復元プログラム、及び、当該プログラムを実行する2次元コード復元サーバ、に関する。
【背景技術】
【0002】
2次元コードは、一般に、格子状に配列した複数のセルと、その周囲に配置した位置決めシンボルによって構成され、平面上にビット列を表現する。通常、セルは白色の平面上に想定され、黒色のデータマークが印されたマークセルと、データマークが印されずに白色が露出した空白セルの2種類で構成される。これにより、セルの表示によって配置のパターンを形成してビット列を表現する。例えば、マークセルを1に、空白セルを0に対応させて、1と0によるビット列を表現する。
このように表示された2次元コードに対し、光学的な撮像装置を用いて画像データを取得し、当該画像データを解析することでビット列を復元することが可能となる。解析にはコンピュータを用い、画像データ上のセルの位置を求め、その位置でセルの表示を判定する。これにより、明らかになったセルの表示を基に、2次元コードに表現された前記ビット列を復元することができる。
【0003】
セルの位置は、特定の位置に固定して表示された位置決めシンボルや位置決めマークを基準にして算出することができる。例えば、検出された2以上の位置決めシンボル/位置決めマーク間の距離と角度から、画像データ中の2次元コードのサイズと傾きを求め、これを基に各セルの位置を算出する方法が知られている(非特許文献1、特許文献3)。
セルの表示は、セルの概ね中心位置における諧調(又は濃度)の値から判定する方法が知られている(非特許文献1)。この方法では、セルの中心画素の諧調を事前に用意されたしきい値と比較して、しきい値より諧調が高い(濃度が高い)セルをマークセル、諧調が低い(濃度が低い)セルを空白セルと見なすことができる。
しきい値は、所定の領域に参照用の画像を表示しておき、その画像の諧調を基に算出する方法が知られている(特許文献1)。この方法を用いると、しきい値の信頼性が上がるため判定精度が向上する。
【0004】
近年、従来のモノクロ2次元コードを発展させたものとしてカラー2次元コードが提案されている(特許文献1)。カラー2次元コードでは、セルの表示を複数種類の色彩で表現することにより、白色と黒色の2種類だけからなるモノクロ2次元コードに比べ、ビット列を高密度に表示することが可能となる。
【0005】
2次元コードでは、従来のバーコードに比べ、ビット列の表示密度を向上させることが可能となった。すなわち、限られた表示範囲において、所望の容量を持つビット列が表示できるようになった。この特徴から、近年、2次元コードは多方面で利用されている。
例えば、文字情報、画像情報、音声情報、暗号情報、コンピュータ上の命令コード、等のデジタル情報を、2次元コードとして画像表示装置上に表示し、撮像装置で読み取ることに使われる。また、前記デジタル情報を、用紙などのシート状記録媒体や、電子部品などの固形物表面に記録すること、等に使われる。
【0006】
2次元コードを効率的に利用する方法として、データベースのレコード番号に対応して用意されたビット列を表現する技術が公開されている(特許文献2)。この場合、対象とするデジタル情報は、2次元コードに埋め込まれるのではなく、前記ビット列に関連付け、サーバを介してネットワーク上で保存・管理される。これにより、扱うことが可能な容量は、2次元コードの表示面積に制限されなくなり、上記のデジタル情報の他、動画情報等を含む大容量な情報を対象とすることが可能となる。
また、2次元コードに表現されるビット列に対し、所定の変換を施す技術が公開されている(特許文献2)。すなわち、例えば、暗号化処理を施すことで、第三者による不正な読み取りを防止できる。また、誤り訂正符号を用いることで、セル表示の誤判定により生じる読取エラーを抑制できる。
【0007】
【特許文献1】WO2004/097717
【特許文献2】特開2007−026427号公報
【特許文献3】特開2007−026428号公報
【非特許文献1】JIS X0510 2次元コードシンボル−QRコード−基本仕様書
【発明の開示】
【発明が解決しようとする課題】
【0008】
コンピュータの処理速度の向上や、記憶媒体の容量増加などの技術進歩により、近年、従来に比べて大容量のデジタル情報が扱われるようになった。また、通信技術の進歩にともない、デジタル情報を簡便に送受信できるネットワーク環境が整ってきた。特に、携帯機器を用いた無線通信において、通信速度の向上とその普及率の増加は目覚しいものがある。これにより、時間的、及び、地理的な条件に縛られることなく、様々な場面において情報をやり取りすることが可能となってきた。
上述の背景により、2次元コードに対してもビット列を高密度に表示することが求められている。同時に、多様な状況に対応しながら、確実にビット列を復元することが求められている。
上記により、我々の周囲に存在するデジタル情報を、より簡便に、更に快適に取り扱うことが望まれている。
【0009】
2次元コードを高密度に表示するため単位面積あたりのセル数を増加すると、個々のセルのサイズが小さくなり、セルの表示が不明確になり易い。この場合、セル表示の誤判定による復元エラーが生じ易くなる。
また、セルの表示にカラーを用いると、表示の種類が増える代わり、マーク有無の2種類だけを判定するモノクロの場合に比べて誤判定が生じ易くなる。その要因は複数考えられるが、その一例としては、複数の色成分の組合せによりセルの表示を構成する場合に、2次元コード復元時に得られる画像データ中の各々の色成分において、他の色成分の作用を受けて色彩が変動する現象が挙げられる。
2次元コードを復元する際に取得する画像データ中の2次元コードは、入出力条件に起因して乱れを含む可能性があり、その場合、復元エラーが生じ易くなる。画像の乱れの原因としては、2次元コード出力時において、例えば、出力装置による出力位置のずれ、出力濃度のずれ、表示面の湾曲、等がある。また、2次元コード入力時において、例えば、入力装置が持つ光学的な歪み、入力諧調のずれ、入力時の撮像角度の傾き、焦点ぼけ、等がある。
【0010】
本発明は、上記の点に鑑みてなされたものであり、2次元コードに表現されたビット列を、多様な状況に対応しながら確実に復元することを可能にした、2次元コード復元プログラム、及び、復元サーバ、を提供する。これにより、我々の周囲に存在するデジタル情報を、簡便・快適に取り扱うことを可能にする。
【課題を解決するための手段】
【0011】
本発明に係る請求項1に記載の2次元コード復元プログラムは、
2次元的に配置した複数のセルに対する色成分の組み合わせによりビット列が表現された2次元コードに関し、当該2次元コードを含む画像データから前記ビット列を復元する2次元コード復元プログラムであって、
前記画像データを構成する複数の色成分を同時に利用して、セルの表示を構成する各々の色成分の有無を個別に判定すること、
を特徴とする。
セルのカラー表示は、当該表示を構成する複数の色成分のうち何れかの色成分に一定範囲の諧調が割り当てられていても良い。例えば、何れの色成分も含まない表示(白色)において、全ての色成分(シアン、マゼンタ、イエロー)に5%〜20%程度の諧調を付与すると良い。この場合、他の色成分の影響で生じる諧調変動の範囲(5%〜20%程度)で諧調が付与されることで、復元精度が向上する。
【0012】
本発明に係る請求項2に記載の2次元コード復元プログラムは、
請求項1に記載の2次元コード復元プログラムにおいて、
予め定めた色彩で表示された複数の参照セルから、当該参照セルの色彩に関する情報を取得すること、
判定を行う各々の色成分において、当該色成分の有無によって分類された参照セルの情報を利用してセルの表示を判定すること、
を特徴とする。
参照セルに表示される色彩は、セルの表示に利用される全ての表示に対して用意されることが好ましい。例えば、シアン、マゼンタ、イエローの色成分の組合せで各セルが表示される場合、白色、シアン、マゼンタ、イエロー、レッド、グリーン、ブルー、黒色、の参照セルを用意すると良い。その際、黒色で表示された位置決め用のマーク等、他の用途で利用されるセルと兼ねていても良い。
【0013】
本発明に係る請求項3に記載の2次元コード復元プログラムは、
請求項1に記載の2次元コード復元プログラムにおいて、
セルごとに周囲を空白領域で囲まれて表示されたマークの位置を、当該マークの領域と周囲の空白領域とのコントラストを基に特定し、当該位置において色彩の情報を取得してセルの表示を判定すること、
を特徴とする。
各セルにおける位置の特定と、当該位置における色彩の情報の取得とは、個別に実施すると良い。その際、位置の特定と色彩情報の取得は、各々に適した異なる画像データを対象として解析を行うと良い。例えば、位置の特定に対する画像データを、色成分を統合する等によって変換すると良い。この場合、各画素の値を位置決めに適したものにしたり、画素の値が減ることで計算負荷を抑制したり、することが可能となる。
【0014】
本発明に係る請求項4に記載の2次元コード復元プログラムは、
2次元的に配置した複数のセルの表示によりビット列が表現された2次元コードに関し、当該2次元コードを含む画像データから前記ビット列を復元する2次元コード復元プログラムであって、
2次元コードの解読に係わるパラメータに適用される値が、前記画像データに応じて予め用意された複数の水準から選定されること、
を特徴とする。
セルの判定において、画像データを構成する複数の色成分を同時に利用して、セルの表示を構成する各々の色成分の有無を個別に判定する場合に、当該判定に対して前記パラメータを適用し、複数の水準から選定すると良い。パラメータとしては、例えば、判定に利用される判定式の係数を用いると良い。
また、セルの表示を判定する各々の色成分において、当該色成分の有無によって分類された参照セルの情報を利用する場合に適用すると良い。この場合、参照セルの色彩にずれが存在しても、適切な判定を実施することが可能となる。
【0015】
本発明に係る請求項5に記載の2次元コード復元プログラムは、
請求項4に記載の2次元コード復元プログラムにおいて、
前記セルの判定に利用される指標は、当該セルにおけるマーク領域の諧調を、周囲の空白領域の諧調を用いて補正した値であること、
前記パラメータとして、諧調の補正に係わる複数の水準を用意すること、
を特徴とする。
判定に利用される指標としては、マーク領域の諧調Dmと空白領域の諧調Dvの差を利用すると良い。また、前記パラメータとしては、差を求める式の係数を用いて、それらの比重をを指定すると良い。例えば、指標を(Dm−P・Dv)として、パラメータPに複数の水準(0〜1.0)を用意すると良い。
【0016】
本発明に係る請求項6に記載の2次元コード復元プログラムは、
請求項4に記載の2次元コード復元プログラムにおいて、
予め定めた色彩で表示された複数の参照セルから、当該参照セルの色彩に関する情報を取得すること、
前記参照セルの情報を検証することで、解読プロセスで生じたエラーを検出すること、
前記エラーが検出された場合に、パラメータの値を変更して再び解読プロセスを繰り返すこと、
を特徴とする。
参照セルの検証は、各参照セルの色彩の情報を、想定される色成分の有無を基に比較して行うと良い。例えば、各々の色成分において、当該色成分を含む参照セルと含まない参照セルの諧調の差を取る等により、色成分を含まないセルの方が諧調が大きい場合にエラーと判断すると良い。
エラーが検出された場合は、解読プロセスを中断してパラメータの値を変更すると良い。この場合、必要のない処理を施さないことで計算負荷を抑制できる。一方、エラーが検出されない場合は、解読プロセスを中断しなくて良い。解読プロセスが一定回数以上繰り返された場合には、プロセスを中断してエラーを出力すると良い。
参照セルの色彩を評価することで、乱れ状態が許容できない画像を排除しても良く、この場合、解読したビット列に誤りが含まれる確率を低減できる。
パラメータとしては、セルの位置の特定に関するものに適用すると良い。例えば、位置決め用のマークを検出する際に利用する判定式の係数に適用すると良い。また、例えば、セル領域を抽出する際に利用する判定式の係数に適用すると良い。
【0017】
本発明に係る請求項7に記載の2次元コード復元プログラムは、
請求項4に記載の2次元コード復元プログラムにおいて、
2次元コードが表現する前記ビット列は、誤り検出を可能とする冗長ビットが付与されていること、
2次元コードを解読して得られるビット列に対して誤り検出を行い、解読プロセスで生じたエラーを検出すること、
前記エラーが検出された場合に、パラメータの値を変更して再び解読プロセスを繰り返すこと、
を特徴とする。
誤り検出には、公知の符号化技術である誤り訂正符号を利用すると良い。例えば、BCH符号や拡張BCH符号、リードソロモン符号等を用いると良い。この場合、2次元コードを解読して得られるビット列に誤りが含まれても、一定範囲であれば訂正可能である。
また、元データにおいて、所定のビットに固定した値(固定ビット)を設けておくことで、復元で得られるデータを検証して誤りを検出しても良い。例えば、元データの最初の数ビットを全て0に固定すると良い。この場合、固定ビットのビット数を増やすほど検出レベルが向上する。例えば、固定ビットとして、4〜20ビット程度のビット数を割り当てると良い。
エラーが検出された場合は、解読プロセスを中断してパラメータの値を変更すると良い。エラーが検出されない場合は、解読プロセスを中断しなくて良い。解読プロセスが一定回数以上繰り返された場合には、プロセスを中断してエラーを出力すると良い。
パラメータとしては、セルの表示の判定に関するものに適用すると良い。例えば、各々のセルにおける各色成分の有無の判定に利用される判定式の係数に適用すると良い。また、例えば、セルの判定に利用される指標として、セルのマーク領域の諧調を周囲の空白領域の諧調で補正する際の係数に適用すると良い。
【0018】
本発明に係る請求項8に記載の2次元コード復元サーバは、
2次元的に配置した複数のセルの表示によりビット列が表現された2次元コードに関し、当該2次元コードを含む画像データから前記ビット列を復元する、ネットワークに接続されたサーバであって、
ネットワークに接続されたクライアント端末から2次元コードの画像データを受信する画像データ受信手段と、
前記2次元コードの画像データから、2次元コードに表現されたビット列を解読する2次元コード解読手段と、
前記2次元コードの解読プロセスにおいて生じたエラーを検出するエラー検出手段と、
前記エラーが検出された場合に、エラーを解析するエラー解析手段と、
前記エラー解析手段で得られたエラー情報を、前記クライアント端末に送信するエラー送信手段と、
を有することを特徴とする。
【0019】
本発明に係る請求項9に記載の2次元コード復元サーバは、
請求項8に記載の2次元コード復元サーバにおいて、
前記エラー解析手段で得られたエラー情報に、ユーザがクライアント端末に接続されたカメラを用いて2次元コードを撮像する際の撮像アドバイスが含まれること、
を特徴とする。
【0020】
本発明の構成要素は、コンピュータ上で実行されるプログラム、すなわちソフトウェアであることが好ましい。また、これを実現するために用意された専用のハードウェアであっても良く、更には、これらソフトウェアとハードウェアの組み合せであっても良い。
プログラムを実行するコンピュータとしては、一般的に普及したもので良く、パーソナルコンピュータ、ワークステーション、メインフレームなどのコンピュータの他、携帯電話やPDAなどの電子機器に搭載したコンピュータであってもよい。また、このプログラムを実行するために特別に用意されたコンピュータであってもよい。
本発明の別の構成要素は、ネットワークに接続されたサーバであって、クライアント端末からの要求に応じて所定の動作を実行する。当該サーバとしては、一般的に普及したもので良く、セキュリティやバックアップ等、一般にサーバに期待される機能を備えていることが好ましい。
【発明の効果】
【0021】
本発明に係る請求項1に記載の2次元コード復元プログラムによれば、判定の対象となる色成分以外の色成分の諧調を判定に適用することで、他の色成分を有することによる作用を含めてカラー表示を判定する。これにより、カラー2次元コードにおいて、ビット列を正確に復元することが可能となる。
また、色成分ごとに判定を行うことで、画像データの色空間に関する変換等の処理をしなくても良く、解析に掛かる計算負荷を抑制できる。これにより、ユーザの待ち時間が低減する等の利点を有する。
【0022】
本発明に係る請求項2に記載の2次元コード復元プログラムによれば、入出力条件の変動により画像に乱れが存在する場合でも、画像変動に応じたセルの判定を適用することで、カラー2次元コードにおいて、ビット列を更に正確に復元することが可能となる。
【0023】
本発明に係る請求項3に記載の2次元コード復元プログラムによれば、精度の高い位置の特定とセルの判定とを両立することが可能となり、ビット列を正確に復元することが可能となる。
【0024】
本発明に係る請求項4に記載の2次元コード復元プログラムによれば、解読に適用されるパラメータの値を複数の水準から選択し、解読条件を画像データに応じて動的に変動させることで、画像の状態に適した解読が可能となる。これにより、ビット列を正確に復元することが可能となる。
【0025】
本発明に係る請求項5に記載の2次元コード復元プログラムによれば、判定に適用されるセルの補正条件を複数の水準から選択することにより、画像の状態に適した判定が可能となる。
例えば、画像面内に濃淡分布(端領域が暗くなる等)が存在する場合、周囲の空白領域による補正を強くすることで、分布の影響を低減できる。一方、画像のピントのずれ等によりセル上のマークの輪郭がぼけている場合、前記補正を弱くすることで、補正により生じる感度低下を抑制できる。
【0026】
本発明に係る請求項6に記載の2次元コード復元プログラムによれば、特定されたセル位置の誤りを検出することが可能となり、パラメータの値の変更により適切な位置を特定することでビット列を解読することが可能となる。また、プロセスの途中でエラーを検出することで、プロセスの繰り返しにおける計算負荷を抑制できる。
【0027】
本発明に係る請求項7に記載の2次元コード復元プログラムによれば、解読されたビット列の誤りを検出することが可能となり、パラメータの値の変更により画像に適した判定を行うことでビット列を解読することが可能となる。また、プロセスの途中でエラーを検出することで、プロセスの繰り返しにおける計算負荷を抑制できる。
【0028】
本発明に係る請求項8に記載の2次元コード復元サーバによれば、クライアント端末にエラー情報を送信することで、ユーザはエラー要因を推定することが可能となる。これにより、ユーザは前記エラー要因を排除した後、再び2次元コードの復元を試みることで、エラー回避の確率を向上させることができる。
また、ユーザは、エラー要因を理解することで安心感を得ることができ、システムに対する不満を低減することが可能となる。
【0029】
本発明に係る請求項9に記載の2次元コード復元サーバによれば、ユーザは2次元コード撮像の際のアドバイスを得ることで、好適な2次元コード画像を取得することが可能となる。これにより、再び2次元コードの復元を試みることで、エラー回避の確率を向上させることができる。
【発明を実施するための最良の形態】
【0030】
以下、本発明を実現するための好適な形態について記述する。ただし、以下の記述は、本発明の一形態であってこれに限定されるものではない。
【0031】
<装置構成>
本形態を実現する装置は、図1に示されるように、サーバM01、コンテンツ登録装置M02、2次元コード取得装置M03、で構成される。これらの装置は、ネットワークへの通信手段を備える。
サーバM01、コンテンツ登録装置M02、2次元コード取得装置M03としては、一般に利用されている既存の装置を用いると良い。本形態において、コンテンツ登録装置M02として、PC(Personal Computer)を用いた。また、2次元コード取得装置M03として、撮像機能を有する携帯端末(カメラ付携帯端末)を用いた。ただし、コンテンツ登録装置M02として携帯端末を用いていも良い。また、2次元コード取得装置M03として画像入力機能を備えたPCを用いても良い。
サーバM01は、複数のユーザからの要求に応じて、複数の動作を同時に処理することが可能である。本形態において、サーバM01は、1台のサーバ装置によって、複数の役割(2次元コードの発行、復元、データベースの管理、等)を実行した。ただし、複数のサーバ装置を用意して、複数の役割を分散させて実現しても良い。すなわち、本発明のサーバは、2台以上のサーバ装置で構成されたサーバ群を含む。
【0032】
<想定される使用形態>
本形態において、2次元コードを利用して、ネットワーク上で複数のユーザが電子データからなるコンテンツを共有する。例えば、ユーザAがコンテンツをサーバに登録すると同時に2次元コードを発行し、後に、別のユーザBが2次元コードを復元することで前記コンテンツを特定して取得する。
ユーザA、Bは上記の場合に限定されるものではなく、例えば、ある状況では、複数のユーザBがサーバに登録された同一のコンテンツを取得する。また、他の状況では、ユーザA、Bは同一人物であり、自分で登録したコンテンツを後に取得する。
【0033】
<対象とするコンテンツ>
本形態におけるコンテンツは、文字情報、画像情報(静止画及び動画)、音声情報、等の限定されない形式による電子データを対象とする。
文字情報としては、例えばURL(Uniform Resouce Locator)、個人データ(住所・氏名・電話番号)、メモ書き、メール文書、等の任意の書式で記述されたテキストデータを指す。テキストデータは、EUCコードや、ShiftJisコード、ユニコード、等の文字コードで表される。
画像情報としては、例えば、jpegやビットマップ等のデータ形式の静止画データを指す。また、例えば、mpegやwmv、avi等のデータ形式の動画データを指す。音声情報としては、例えば、mp3やwav等のデータ形式の音楽データを指す。
上記以外の例として、特定のアプリケーションにより作成された電子データを対象とする。例えば、ワープロソフトで作成されたデータや、表計算ソフトで作成されたデータ、スケジュール管理ソフトで作成されたデータ、等を指す。また、IDやパスワード等の認証データや、暗号化されたビット列である暗号データ、コンピュータ上の命令コード(実行形式のプログラム)、を対象とする。
【0034】
<コンテンツに対する動作>
本形態において、ユーザAはコンテンツを登録する際に、2次元コード復元時の動作を選定する。選定された動作は、動作種別としてサーバM01のデータベースに記録される。当該動作種別は、2次元コード復元時に参照され、サーバM01上のプログラムを介して実行される。
表1に本形態で用意した複数の動作種別と、各動作種別に割り当てた番号(動作種別番号)の例を示す。本形態の動作種別は、コンテンツの種類ごとに想定される動作を予め用意した。その際、同じ種類のコンテンツに対して複数の動作種別を設けた。
【表1】
以下、本形態において用意した複数の動作の例を記述する。個別に記述された動作種別は、組み合わせて実行されても良い。
【0035】
<動作の第1例:携帯端末に送信>
本形態の動作の第1例は、サーバM01は、2次元コード取得装置M03である携帯端末にコンテンツを送信する(A000)。
例えば、コンテンツが文字情報の場合、ユーザBは、携帯端末のディスプレイに表示させて読み取る(A001)。また、記述されたURLを指定して、携帯端末からアクセスする(A002)。
コンテンツが画像情報(静止画)の場合、携帯端末のディスプレイに画像を表示する(A011)。動画の場合は、動画データを再生する(A021)。音声情報の場合、携帯端末で音楽データを再生する(A031)。
【0036】
<動作の第2例:サーバ内で処理>
本形態の動作の第2例は、サーバM01は、当該サーバM01内でコンテンツの登録を行う。
本形態において、ユーザBは、サーバM01内にホームページを有し、当該ホームページにコンテンツを登録する。その後、ユーザBは、ホームページにアクセスして利用する。
コンテンツが文字情報の場合、例えば、記述されたURLを、ホームページのブックマークリストに登録する(A102)。また、記述された個人情報(住所・氏名・電話番号)を、ホームページのアドレス帳に登録する(A103)。
コンテンツが画像情報の場合、画像(静止画)をホームページのアルバムに登録する(A111)。また、音声情報の場合、音楽データをホームページの音楽リストに登録する(A131)。
【0037】
<動作の第3例:他サーバに送信>
本形態の動作の第3例は、サーバM01は、他サーバM11にコンテンツを送信する。
第3例において、ユーザBのホームページはサーバM11で管理される。当該サーバM11は、サーバM01とは異なる管理主体(例えば、一般のネットワークサービスプロバイダ)によって管理される場合を想定した。
サーバM01は、コンテンツと同時に動作種別をサーバM11に送信する。サーバM11は、当該動作種別を参照し、第2例と同様の動作を処理する。すなわち、サーバM11上のホームページへのブックマーク登録(A202)や、アドレス帳登録(A203)、アルバム登録(A211)、音楽登録(A231)、等を行う。
【0038】
<データベース>
データベースは、行をレコード、列をフィールドとするテーブル形式で構成され、各レコードに複数のフィールドを設けて情報を記録する。本形態のデータベースは、汎用的な言語であるSQLで記述した。また、一般に普及したアプリケーションであるSQLightを利用した。ただし、アプリケーションとしては、MySQLや、PostgreSQL、Oracle、等を用いても良い。
本形態で使用するデータベースの例を表2に示す。本形態におけるデータベースは、レコード番号、ヘッダ番号、動作種別、保存アドレス、ステータス、を記録するフィールドを有する。
【表2】
【0039】
レコード番号のフィールドは、レコード番号(D00)を記録した。本形態では2進数列のビット列を記録した。ただし、10進数により記録しても良い。
ヘッダ番号のフィールドはヘッダ番号(D10)を記録した。
動作種別のフィールドは、2次元コードが復元された後のコンテンツに対する動作の種別を記録した(表1)。
保存アドレスのフィールドは、コンテンツの保存アドレスを記録した。当該保存アドレスは、サーバM01内のストレージ領域や、サーバM01からアクセス可能な他サーバ内のストレージ領域を対象とする。
ステータスのフィールドは、2次元コードの発行・停止状況を記録しておく。これにより、本形態では、ステータス=「1」は復元可、ステータス=「0」は不可とした。ステータス=「1」(復元可)は、2次元コードを発行し、かつ、停止していない場合に記録した。2次元コードを発行していない場合、及び、発行後に停止した場合は、ステータス=「0」(復元不可)とした。2次元コード発行後の停止は、使用期限等、使用する際の制約に基づいて実施される。
データベースには、上記以外のフィールドを設けても良い。これにより、例えば、コンテンツの登録日や有効期限等の日時情報を記録する。また,例えば、ログ情報を記録しても良い。更に、例えば、コンテンツに関係するファイル/フォルダの保存アドレスを記録しても良い。
【0040】
<2次元コードの表示形態>
本形態で使用した2次元コード101の全体像を図2に示す。本形態において、セルは表示面に正方格子状に配列され、8×8セル配列とした。ただし、セル数は8×8セルに限定されるものではなく、例えば、12×12セル等であっても良い。
2次元コード101(図2)における、位置決めマーク020、及び、参照マーク030、の配置を図3に表示した。図3に示されるように、位置決めマーク020と参照マーク030は、予め定められたセル位置に、常に同一の色彩で表示される。一方、データマーク010は、生成される2次元コードごとに変動して表示される。すなわち、点線枠で示された各セル(データセル)に、ビット列に応じたカラーのデータマークが表示される。
ただし、セルの配列形状やマークの形状は上記に限定されない。例えば、セル配列は、縦と横で異なるセル数からなる長方形状でもよい。また、例えば、セル配列を六角格子状としてもよい。また、マークの形状を円形としても良い。
【0041】
<データマーク>
単一の色成分における2次元コードの一部を、図4に拡大して表示した。図4に示されるように、各色成分のセルは、マークを有するセル(マークセル001)、又は、マークを有しないセル(空白セル002)の何れかで表現される。カラーのマークは、各色成分のマーク有無を組み合わせることで形成される。
各セル001及び002は、図5に示されるように、マークが表示される領域(マーク領域003)と、マーク表示されない領域(空白領域004)で構成される。各セルのデータマークは、本形態のように周囲に空隙を設けて表示されることで、隣接するセルのデータマークから分離される。
【0042】
データマークによるセルの表示は、セルを評価しながら全体を走査し、所望の表示を選定した。セルの評価は、一部のセルの集合を対象として実施した。
本形態では、図6に示されるように、連続して配置された2セル(横方向、縦方向)から、カラー表示の組み合わせを取得して点数付けを行った。表3に、本形態の点数付け(2セル)を示す。表3の行、列に示される色彩(W、C、M、Y、R、G、B、K)は、図6の2セル(10P、010Q)におけるカラー表示に対応する。
【表3】
本形態では、同時に、2次元コードの上下左右の辺上に位置する各1セルから、カラー表示を取得して点数付けを行った。表4に、本形態で使用した点数付け(1セル)を示す。
【表4】
本形態において、2次元コード全体の検証は、横方向/縦方向の2セル(図6)、及び、辺上の1セルから取得した点数を合計し、当該合計が少ない表示を好適と見なした。
表3の点数付けを利用することにより、セルの表示が黒色となるのを避けた。特に、連続した2セルが両方とも黒色となるのを避けた。同様に、セルの表示が白色となるのを避けた。特に、連続した2セルが両方とも白色となるのを避けた。また、黒色や白色以外でも連続した2セルが同色になるのを避けた。
表4の点数付けを利用することにより、辺上のセルの表示が白色となるのを避けた。同様に、辺上のセルの表示が黒色となるのを避けた。
【0043】
<位置決めマーク>
位置決めマーク020は、2次元コードの位置の基準として、特定のセルに固定されて表示される。位置決めマーク020は複数存在することが好ましく、本形態では、図3に示されるように、四角形からなるコード領域の四隅にそれぞれ配置した。位置決めマーク020の画像パターンは、データマークと同一形状・同一サイズとした。
本形態において、位置決めマーク020は黒色に、周囲の空白領域は白色に、各々表示した。すなわち、位置決めマークは、出力装置が持つ全ての色成分に対して、周囲の空白領域との間にコントラストを設けて表示した。
【0044】
<参照マーク>
参照マーク030は、セル表示を判定する際の参照情報を取得するため、特定のセルに所定の色彩で表示される。本形態において、図3に示されるように、コード領域の四隅付近に、白色030W、シアン030C、マゼンタ030M、イエロー030Y、レッド030R、グリーン030G、ブルー030B、の参照マークを表示した。その際、参照マーク030は、位置決めマークと同様、データマークと同形状・同サイズの画像パターンとした。
本形態において、黒色の参照マークは特に表示しなかった。ただし、本形態の位置決めマーク020は、データマークと同形状・同サイズであり、位置決めマーク020が参照マークを兼ねた。黒色の参照マークを表示する場合には、前記位置決めマークと同形状・同サイズ・同色の画像パターンとすると良い。
【0045】
<お化粧マーク>
お化粧マークは、該当セルにおける他の色成分のマーク有無に応じて表示を決定した。また、周囲のセルの表示の組合せに応じて表示を決定した。表示の決定は、お化粧マーク有/無を想定して各々評価を行い、好適な方を選定した。
本形態において、お化粧マークを有するセルと当該セルに隣接したセルの表示の組合せを、表3に示されるテーブルを用いて点数付けした。当該点数付けは、隣接する上下左右のセルに対して行い、点数を足し合わせて合計が少ない方を好適と見なした。隣接セルは、図6に示されるように、横方向、又は、縦方向に連続して配置され、カラー表示の組み合わせを取得して評価した。
ただし、お化粧マークの有無は、周囲のセルを評価せずに選定することも可能である。例えば、該当セルにおいて、他の色成分が存在する場合を「マーク無し」に、何れの色成分も存在しない場合を「マーク有り」に選定しても良い。
本形態では、図7に示されるように、データセルの一部対してお化粧マークを割り当てた。これにより、データマークと混在して、お化粧マーク同士の隣接を避けて配置した。その際、お化粧マークは、同一セルにおいて単一の色成分だけを割り当てた。また、複数の色成分に対して概ね均等に割り当てた。本形態では、計18のお化粧マークを、シアン成分040C、マゼンタ成分040M、イエロー成分040Y、に各々6ずつ割り当てた。これらの色成分は、面内に分散させて配置した。
【0046】
<特定カラーに対する諧調補正>
セルに表示されるマークに対し、特定のカラーに対して諧調の補正を施した。当該補正は、該当セルのカラー表示に応じて諧調を決定した。すなわち、同一セルにおける他の色成分のマーク有無から決定した。表5に、各々の色彩に対して、本形態で利用した色成分ごとの諧調を示す。
【表5】
本形態では、周囲の空白領域(白色)に対比して目立ち難い色彩(白色、イエロー、等)に補正を施し、諧調を高い方向に一定の割合変化させた。表5に示されるように、セルの表示が白色の場合、当該セルの各色成分の諧調を10%高くして補正した。すなわち、白色における(シアン,マゼンタ,イエロー)成分の諧調(0,0,0)を、(0.1,0.1,0.1)とした。同様に、セルの表示がイエローの場合、イエロー以外の色成分の諧調を10%を高くして、イエローの諧調(0,0,1)を、(0.1,0.1,1)とした。
他セルの表示に対比して目立ち易い色彩(黒色、等)に補正を施し、諧調を低い方向に変化させることも有効である。例えば、セルの表示が黒色の場合、各色成分の諧調を、5%〜20%程度低くして補正しても良い。例えば、黒色の諧調(1,1,1)を各色成分で10%低くして、(0.9,0.9,0.9)とすると良い。
【0047】
<2次元コード発行/復元プロセス>
本形態を実現するプロセスは、2次元コードの発行を処理する2次元コード発行プロセス、及び、2次元コードの復元を処理する2次元コード復元プロセス、で構成される。
2次元コード発行プロセスでは、コンテンツ登録装置M02を操作するユーザAからの要求により、サーバM01のストレージ領域にコンテンツを保存する。その際、サーバM01において、コンテンツの保存アドレスに関連付けられた2次元コード100を発行し、当該関連付けをデータベース(表2)を用いて管理する。ユーザAは、2次元コード100を受信後、目的に応じて利用する。
2次元コード復元プロセスでは、ユーザBは、2次元コード取得装置M03を用いて2次元コード100の画像データを取得し、サーバM01に送信する。サーバM01は、受信した画像データを解析した後、前記データベースを参照して、2次元コード100に関連付けられたコンテンツを特定する。特定されたコンテンツは、ユーザBによって利用される。
【0048】
<2次元コード発行プロセス>
本形態における2次元コード発行プロセス200を図8に示す。本形態の2次元コード発行プロセス200は、データ入力部210、2次元コード生成部220、2次元コード出力部230、により構成される。
【0049】
<データ入力部>
データ入力部211は、ビット列を取得し、2次元コード生成部220に入力する。本形態のデータ入力部210は、データ入力手段211で構成される(図8)。データ入力手段211は、サーバM01において予め用意したプログラムを実行することで実現した。本形態で扱うビット列は、コンピュータが扱う情報の最小単位であるビットの集合(ビット列)である。
本形態のデータ入力手段211は、前記ビット列として、データベースのレコード番号D00を取得する。レコード番号D00は、データベースのレコードを特定する。
本形態において、レコード番号D00は、ビット列を小さい番号から順に生成し、データベースに割り当てて記録する。その後、2次元コード発行の際に、未使用のレコード番号D00を順に選択する。発行される2次元コードは、レコード番号D00と関連付けられることで、データベースを用いて管理される。
【0050】
<2次元コード生成部>
2次元コード生成部220は、データ入力部210から受け渡されたビット列を基に、2次元コードの画像データを作成する。その後、当該画像データを2次元コード出力部230に受け渡す。
本形態の2次元コード生成部220は、図8に示されるように、データ変換手段221、エンコード手段222、画像作成手段223、画像変換手段224、で構成される。これらの手段は、サーバM01において、予め用意したプログラムを実行することで実現した。
以下、データ変換手段221、エンコード手段222、画像作成手段223、画像変換手段224、について記述する。
【0051】
<データ変換手段>
データ変換手段221では、データベースのレコード番号D00を基に、2次元コードに埋め込むコードデータD20を取得する。図9に、レコード番号D00を変換してコードデータD20を取得する一連のフローを示した。以下、当該フローについて記述する。
【0052】
[冗長ビット付与C00]
レコード番号D00(10進)は、2進ビット列に変換された後、処理C00を介して冗長ビットが付加され、データD01が生成される。本形態では、当該冗長ビットを、複数のセル表示の候補に対して割り当てた。セル表示として選定されたビット列は、データベース120に記録される。付加される冗長ビットは一定の桁数からなり、本形態では、当該冗長ビットに、データD01の上位10ビットを割り当てた。
[暗号化C01]
データD01は、暗号化処理C01が施され、データD02が生成される。本形態において、暗号技術としては、標準暗号化方式であるDES(Data Encryption Standard)や、トリプルDES、AES(Advanced Encryption Standard)、等を利用すると良い。
[誤り訂正符合C02]
データD02は、誤り訂正符号化処理C02が施され、データD03が生成される。本形態において、誤り訂正符号としては、BCH(Bose−Chaudhuri−Hocquenghem)符号や、拡張BCH符号、リードソロモン符号、等を利用すると良い。誤り訂正符号は、全体の符号ビット数n、情報ビット数k、ハミング距離の最小値d、に対して予め定められた組合せ(n,k,d)で用意される。
[ビット位置変換C03]
データD03は、ビット位置変換処理C03が施され、データD04が生成される。当該処理では、データD03の各ビット位置を入れ替えた。本形態のビット位置変換は、複数の変換規則を用意し、ヘッダ番号D10と対応付けてサーバM01に記憶した。ビット位置の変換規則としては、所定のランダム化アルゴリズムを利用してランダム化した。
【0053】
[ヘッダ番号D10]
ヘッダ番号D10は、ビット位置変換処理C03で用いた変換規則を特定する。ただし、本形態では、ヘッダ番号D10の一部のビットを変換規則の識別に割り当てた。残りのビットは、バージョン番号の管理に割り当て、将来の拡張性を確保するため固定した。
[暗号化C11]
ヘッダ番号D10は、暗号化処理C11が施され、データD11が生成される。本形態において、暗号化処理C11としては、公知の技術である共通鍵暗号化処理を施した。
[誤り訂正符号C12]
データD11は、誤り訂正符号化処理C12が施され、データD12が生成される。
【0054】
[データ結合C20]
上記プロセスを通して取得されたデータD04、及び、データD12は結合され、コードデータD20が取得される。本形態において、前記2つのビット列の結合において、各ビット位置をランダムに割り当てた。ただし、結合規則は固定され、サーバM01に記憶した。
【0055】
<エンコード手段>
エンコード手段222では、データ変換手段221により得られるコードデータD20を基に、各セルのカラー表示を決定する。本形態におけるセル表示決定の概念図を図10に示す。
図10において、コードデータD20の各ビットを、予め定めた規則により、シアン、マゼンタ、イエローの各色成分に分配した。また、色成分ごとにビットをセルに割り当て、各セルのマーク有り/無しを決定した。その際、各ビットの「1」を「マーク有り」に、「0」を「マーク無し」に対応させた。
その後、各色成分のマーク有無(110C、110M、110Y)を重ね合わせ、各セルのカラー表示(110)を決定した。すなわち、シアンC、マゼンタM、イエローYの色成分を組み合わせることで、シアンC、マゼンタM、イエローYの他、レッドR(=M+Y)、グリーンG(=C+Y)、ブルーB(=C+M)、及び、黒色K(=C+M+Y)を決定した。また、何れの色成分も有しない白色Wを決定した。
【0056】
エンコード手段222では、セルの表示に対して複数の候補を抽出した。また、予め定めた選定規則を用いて、抽出された複数の候補から好適なものを選定した。その際、前記選定には、一般に公開されない規則を利用した。選定された表示を特定するビット列は、データD01の所定ビットに記録されるとともに、データベース120の該当レコードに記録した(図8)。
また、エンコード手段222では、予め定められたデータセルの一部において、お化粧マークの表示を決定した。すなわち、該当セルにおける他の色成分、及び/又は、周囲のセルの表示に応じて、お化粧マークの有無を決定した。
【0057】
2次元コードは、セルの表示によってビット列(コードデータD20)を表現する。その際、コードデータD20のビット数は、(コードデータのビット数)=(全セル数−位置決めセル数−参照セル数)×(色成分の数)−(お化粧マークの数)、として定めた。
本形態では、2次元コードの全体64セル(=8×8セル)のうち、位置決めマーク020に4セル(4箇所)を、参照マーク030に7セル(W、C、M、Y、R、G、B)を各々割り当て、データセルに53セルを割り当てた。
コードデータD20に対しては、3色成分を組み合わせて最大159ビット(=53セル×3色成分)の割り当てが可能となる。ただし、本形態においては、お化粧マークに一部のビット(18ビット)を割り当て、コードデータD20に対して141ビット(=159ビット−18ビット)を割り当てた。
【0058】
<画像形成手段>
画像形成手段223では、エンコード手段222で得られた各セルのカラー表示を基に、2次元配列(Row,Column)の画素で構成された画像データを作成する。本形態においては、50×50画素の画像データを作成した。
画像データ中の各画素は、(シアンC,マゼンタM,イエローY)の色成分の値0〜1を有し、当該色成分の組み合わせによりカラーを表現した。例えば、各画素において、シアンは(1,0,0)、レッドは(0,1,1)、黒色は(1,1,1)、として表現した。
本形態の単一の色成分(シアンC)に関する画像データの例として、図11にマークセル001Cを表示した。本形態のマークセル001Cは、図11に示されるように、5×5画素で構成され、中央の3×3画素をマーク領域003C、マーク領域の周囲1画素領域を空白領域004C、とした。各画素006には、マーク領域に「1」を、空白領域に「0」を、各々割り当てた。
【0059】
画像形成手段223において、特定の色彩を有するセルに対して、マーク領域003の各色成分の諧調に補正を施した。本形態では、白色、及び、イエローのセルを対象として補正した。その際、対象のセルは、各色成分の有無の組合せを検証することで検出した。本形態では、検出したセルに対して、表5に示された所定の規則を用いて各画素の諧調を設定した。
本形態においては、白色のセル(0,0,0)のマーク領域は、各色成分の値を(0.1,0.1,0.1)とした。また、イエローのセル(0,0,1)は、各色成分の値を(0.1,0.1,1)とした。
図12に、白色、及び、イエローのセルにおいて、マークを含まない単一の色成分(シアンC)の例を表示した。図12に示されるように、白色、及び、イエローのセル(空白セル002C)においては、マーク領域の諧調に補正を施し、諧調0.1を割り当てた。
【0060】
<画像変換手段>
画像変換手段224では、画像形成手段223で得られた画像データを、一般に普及した画像形式に変換する。本形態では、GIF形式に変換した。ただし、画像形式として、PPM(Portable Pix Map)形式や、ビットマップ形式、Jpeg形式、GIF形式、等でも良い。
上記画像形式では、一般に、色成分ごとに多段階の階調値を有し、(レッドR,グリーンG,ブルーB)の色成分でカラーを表現する。本形態では、RGB24ビットカラー(RGB各色256階調表現)の画像形式に変換した。
【0061】
各画素の値は、例えば、シアン(1,0,0)は(0,255,255)に、レッド(0,1,1)は(0,0,255)に、黒色(1,1,1)は(0,0,0)に、各々変換した。また、色彩調整を行った白色(0.1,0.1,0.1)は(229,229,229)に、イエロー(0.1,0.1,1)は(229,229,0)に変換した。
単一の色成分(シアンC)に関する図11の例では、各画素におけるCMY成分の値は、RGB成分の諧調に変換される。すなわち、マーク領域はシアン成分「1」からレッド成分「0」に、空白領域はシアン成分「0」からレッド成分「255」に、各々変換される。また、空白セルの色彩補正(シアン成分)に関する図12の例において、マーク領域はシアン成分「0.1」からレッド成分「229」に変換される。
【0062】
<2次元コード出力部>
2次元コード出力部230は、2次元コード生成部220で作成された2次元コードの画像データを、コンテンツ登録装置M02に送信して出力する。
本形態の2次元コード出力部230は、図8に示されるように、2次元コード出力手段231で構成される。2次元コード出力手段231は、サーバM01において、予め用意したプログラムを実行することで実現した。また、2次元コード出力手段231の通信には、既存の通信技術を利用した。
【0063】
本形態において、ユーザAは、コンテンツ登録装置M02で受信した2次元コードを、特に限定されない形態により表示させる。
本形態において、2次元コードは、コンピュータに接続された画像表示装置に表示される場合を想定した。また、画像形成装置により、シート状記録媒体や固形物表面に出力して表示される場合を想定した。
【0064】
画像表示装置は、通常、発光体の発光により画素を表現して画像を形成する。本形態の画像表示装置として、液晶ディスプレイ(例えば、160dpi、RGB32ビットカラー)が好適である。また、CRT(Chathode Ray Tube)方式のディスプレイや、プラズマディスプレイ、等でも良い。
例えば、WEBページに2次元コードを表示してネット上に公開し、アクセスしたPCのディスプレイに表示される。また、例えば、テレビ放映の映像に2次元コードの表示領域を設けることで、テレビのディスプレイに表示される。
【0065】
画像形成装置は、通常、記録媒体にインクやトナーを出力して画素を表現し、画像を形成する。本形態の画像形成装置として、インクジェット方式による出力機(例えば、600dpi)が好適である。また、電子写真方式による出力機や、印刷機、等でも良い。
例えば、PCに備えられたインクジェットプリンタを用いて、2次元コードは用紙に出力される。また、例えば、印刷機を用いて、チラシや名刺、包装紙、等の印刷物に出力される。更に、例えば、製造された固形製品の表面に出力されても良い。
【0066】
<2次元コード発行フロー>
本形態の2次元コード発行プロセスにおいて、サーバM01、及び、コンテンツ登録装置M02、における動作と、当該装置間でなされる通信の例を、以下、図13を用いて説明する。
【0067】
S101:サーバM01は、コンテンツ登録装置M02からのアクセスを待ち受ける。
S102:コンテンツ登録装置M02は、ユーザAの指示によりサーバM01のURL(Webページ)にアクセスする。
S103:サーバM01は、コンテンツ登録装置M02からのアクセスに対して、入力画面を返す。
S104:ユーザAは入力画面において、コンテンツの指定と当該コンテンツに対する動作種別の選択を行う。コンテンツ登録装置M02は、コンテンツ及び動作種別をサーバM01に送信する。
S105:サーバM01は、受信したコンテンツをストレージ領域に保存する。また、データベースのレコードを割り当て、コンテンツの保存アドレス(例えば「file://storage/00…01」)、及び、選択された動作種別を、所定のフィールドに格納する。
S106:サーバM01は、前記レコードのレコード番号D00をコードデータD20に変換し、当該コードデータを表現した2次元コードの画像データを生成する。また、当該画像データをコンテンツ登録装置M02に送信する。サーバM01による当該動作は、前記2次元コード発行プロセスにより実現される。
S107:コンテンツ登録装置M02は2次元コードの画像データを受信した後、ユーザAは、当該2次元コードを表示させて利用する。
【0068】
サーバM01、及び、コンテンツ登録装置M02の通信プロトコルは特に限定されない。本形態はHTTPで実現しており、S101にはhttpデーモン(httpサービス)を、S102とS103にはGET命令とその応答を、それぞれ用いた。S104とS106にはPOST命令とその応答を用いた。また、S103で返される入力画面は、HTML(及びJAVA(登録商標)スクリプト等)により記述した。S105とS106は、サーバ側のCGIプログラムやサーブレットにより実現した。
【0069】
<2次元コード復元プロセス>
本形態における2次元コードの復元プロセス300を図14に示す。本形態の2次元コード復元プロセス300は、2次元コード入力部310、2次元コード解読部320、データ出力部330、により構成される。
【0070】
<2次元コード入力部>
2次元コード入力部310は、2次元コードの画像データを2次元コード取得装置M03から受信して取得し、2次元コード解読部320に受け渡す。
本形態の2次元コード入力部310は、図14に示されるように、2次元コード入力手段311で構成される。2次元コード入力手段311は、サーバM01において、予め用意したプログラムを実行することで実現した。
本形態の画像データは、2次元コード取得装置M03を用いてユーザBにより取得された後、ネットワークを介してサーバM01に送信される。サーバM01は受信した画像データを、サーバM01内のメモリに記憶する。サーバM01と2次元コード取得装置M03との通信には、既存の通信技術を利用した。
【0071】
<2次元コード取得装置>
本形態の2次元コード取得装置M03は、CCD(Charged Coupled Device)を用いてデジタル画像を取得する。2次元コード取得装置M03としては、カメラ機能(例えば、240×320画素、RGB24ビットカラー)を備えた携帯端末が好適である。また、2次元コード取得装置M03としては、フラットベットスキャナ(例えば、600dpi、RGB24ビットカラー)であっても良い。
携帯端末のカメラで撮像された場合には、2次元コードの画像データは、当該携帯端末の通信手段を用いて送信されると良い。また、フラッドベットスキャナでスキャンされた場合には、当該フラットベットスキャナに接続されたPCの通信手段を用いて送信されると良い。
【0072】
<取得される画像データ>
本形態で扱う画像データは、2次元コードの発行プロセス200と同様、各画素が複数の色成分で構成され、多段階の階調を有する。これにより、例えば、(レッドR,グリーンG,ブルーB)の加法混色でカラーを表現する。本形態では、Jpeg形式や、GIF形式、PPM形式、ビットマップ形式、等の限定されない画像形式を対象とした。
単一の色成分(レッドR)に関する画像データ(256階調)の例を、図15に表示した。図15において、マークセル001Rを表示した。
画像データ中のマークセル001Rは、図15に示されるように、入出力時のノイズの影響により2次元コード生成時の画像(図11)からの変動を有する。これにより、各画素007において、マーク領域:28〜128程度、空白領域:102〜204程度、の諧調からなる。
【0073】
<2次元コード解読部>
2次元コード解読部320は、2次元コード入力部310で取得した画像データにおいて2次元コードを解読する。その後、解読して得られたビット列をデータ出力部330に受け渡す。
本形態の2次元コード解読部320は、図14に示されるように、画像変換手段321、位置決め手段322、セル判定手段323、デコード手段324、データ変換・検証手段325、で構成される。各手段は、サーバM01において、予め用意したプログラムを実行して実現した。
以下、画像変換手段321、位置決め手段322、セル判定手段323、デコード手段324、データ変換・検証手段325、について記述する。
【0074】
<画像変換手段>
画像変換手段321は、2次元コード入力部310から入力された画像データを、位置決め手段322とセル判定手段323の解析に適した画像に変換する。当該変換により、位置決め手段322で利用する位置決め用画像データ、及び、セル判定手段323で利用するセル判定用画像データ、を取得する。得られた画像データは、サーバM01のメモリ領域に記憶した。
【0075】
セル判定用画像データは、各画素において、CMY成分の0〜1の値で表した。例えば、変換前の画像データがRGB24ビットカラー表現の場合、各色成分(レッドR,グリーンG,ブルーB)の256階調を、(シアンC,マゼンタM,イエローY)の0〜1の値に変換した。
当該変換は、数1に表される数式を用いて実施した。数1は、画素(Row,Column)における各色成分の値の変換を意味する。
【数1】
単一の色成分(レッドR)に関する図15の例では、各画素におけるRGB成分の諧調は、CMY成分の値に変換され、マーク領域:0.5〜0.9程度、空白領域:0.2〜0.6程度、となる。
【0076】
位置決め用画像データは、前記セル判定用画像データに更に処理を施した。これにより、各画素において、複数の色成分から最大の値を選択し、1つの値を保持するようにした。例えば、各画素(シアンC,マゼンタM,イエローY)から、変換後は唯一つの最大値Dに変換した。
当該変換は、数2に表される数式を用いて実施した。数2において、Max(x,y,z)は、3つの値(x,y,z)から最大の値を選択する関数である。
【数2】
【0077】
<位置決め手段>
位置決め手段322は、画像変換手段321から入力された位置決め用画像データにおいて位置決めマークを検出し、2次元コードの位置を特定する。
本形態の位置決め手段322は、図16に示されるように、コード領域抽出P101、画像情報取得P102、コード領域走査P103、位置決めマーク選定P104、の各ステップで構成される。これらのステップを実現する手段として、サーバM01に実行プログラムを用意した。
以下、位置決め手段322の各ステップについて記述する。
【0078】
<コード領域抽出P101>
コード領域抽出P101のステップでは、画像データから2次元コード全体を含む領域を抽出する。その際、画像変換手段321で得られた位置決め用画像データに対して処理を行った。本形態のコード領域抽出P101は、以下の方法により実施した。
【0079】
コード領域は、格子状に配置したセル上のマークと空白領域とでコントラストを有する。一方、コード領域の周囲に存在する空白領域では、前記コントラストが低いと想定される。これにより、マーク領域/空白領域のコントラストが高いコード領域と、低い空白領域とで構成される領域を抽出する。
本形態では、コード領域の判定に数3を用いた。
【数3】
数3において、Vc、及び、Vsは、各々コード領域、周囲の空白領域におけるマーク領域/空白領域のコントラストの大きさを意味する。数3により、指標Jcが大きい領域を所望のコード領域と見なした。
数3におけるP1は、位置決めパラメータであり、プロセス制御手段326により管理される。
Vc、及び、Vsは、図17(拡大図)に示されるように、セル領域として想定される領域から複数の諧調を取得して算出した。これにより、マーク領域031、及び、空白領域032(マーク間の中間)の画素から諧調を取得した。DmaxとDminは、セル領域030から取得した諧調の最大値と最小値を表す。また、関数Fmc()は、コード領域のセル(計64セル)に対する平均を意味する。同様に、関数Fms()は、周囲1セル幅で想定した空白領域のセル(計36セル)に対する平均を意味する。
【0080】
コード領域は、数3の指標Jcを算出しながら画像データを走査し、当該Jcが最も大きい領域を抽出した。その際、図17のセルの想定サイズを縮小/拡大することで、画像データ中の2次元コードの表示サイズに対応した。抽出されたコード領域は、4隅(左上、右上、左下、右下)の画素位置を指定して他ステップの処理に用いた。
【0081】
<画像情報取得P102>
画像情報取得P102のステップでは、コード領域抽出P101のステップで抽出された領域から画像情報を取得する。その際、画像情報取得P102の処理は、画像変換手段321で得られた位置決め用画像データに対して行った。本形態の画像情報取得P102は、以下の方法により実施した。
【0082】
本形態の画像情報は、前記コード領域を対象として諧調分布を求め、この分布を基に算出した。本形態における諧調分布の例を図18に示す。図18において、横軸は諧調を、縦軸は各諧調の頻度を示す。本形態では、諧調の刻みは0.02とし、例えば、諧調0.5の頻度は0.50〜0.52の範囲に含まれる。
図18に示されるように、通常、諧調の分布には、マーク領域と空白領域に対応する2つのピークが存在する。本形態の画像情報は、各ピークの諧調を求め、マーク領域の指標Mm、及び、空白領域の指標Mv、を定めた。
【0083】
<コード領域走査P103>
コード領域走査P103のステップでは、コード領域抽出P101のステップで抽出された領域を走査し、位置決めマークの画像パターンを検出する。その際、コード領域走査P103の処理は、画像変換手段321で得られた位置決め用画像データに対して行った。本形態のコード領域走査P103は、以下の方法により実施した。
【0084】
コード領域走査P103は、図19に示されるように、照合パターン008を用いて照合しながら画像データを走査する。その際、照合された画像の判定行い、適合する場合に代表画素の位置を記憶する。本形態では、代表画素として、想定されるマーク領域の左上の画素を選んだ。これにより、画像データ中の画像パターンを検出していく。これらの一連のプロセスは、図20のフローチャートに示した手順により実施した。
照合パターン008は、マーク領域とその周囲の空白領域で構成される。本形態の照合パターン008としては、3×3画素のマーク領域の周囲に1画素の空白領域を想定した全体で5×5画素のパターンを用いた(図19)。
【0085】
照合された画像の判定は、マーク領域と空白領域の各領域から諧調の平均(Dm、及び、Dv)を算出し、これらを判定式(数4)に代入して行った。すなわち、判定式(数4)を満たす場合に、所望の画像パターンに適合すると見なした(図21)。
【数4】
平均Dの算出には、公知の計算式であるD=Σdi/n、を用いた。ただし、nは画素数、iは画素番号、diは画素iの諧調、Σは各領域における画素の和、を意味する。
Mm及びMvは、画像データに応じた変数で、画像情報取得P102のステップで得られた画像情報(Mm、及び、Mv)を利用した。
Sm及びSvは、許容レベルを表す変数で、本形態では、MmとMvを用いて「Sm=Sv=Mm−Mv」とした。
巣4におけるP2は、位置決めパラメータであり、プロセス制御手段326により管理される。
【0086】
<位置決めマーク選定P104>
位置決めマーク選定P104のステップでは、コード領域走査P103のステップで検出されたマークの中から位置決めマークを選出する。これにより、特定された位置を位置データとして取得する。本形態において、位置決めマーク選定P104は、以下の方法により実施した。
【0087】
本形態の位置決めマーク020は、図3に示されるように、四角形からなるコード領域の4隅に配置する。位置決めマーク選定P104は、コード領域走査P103のステップで取得された位置決めマークを含む検出位置の集合から4隅の配置を選出する。
4隅の選出において、図22に示されるように、検出位置を通る傾き「−1」(Column軸から135度)、及び、傾き「1」(Column軸から45度)の直線(L1〜L4)を想定し、検出位置の集合からRow軸切片が最小/最大の配置を選定した。
図22において、「(Row座標)+(Column座標)」が最小となる直線L1から左上位置021を、「(Row座標)−(Column座標)」が最小となる直線L2から右上位置022を、「(Row座標)−(Column座標)」が最大となる直線L3から左下位置023を、「(Row座標)+(Column座標)」が最大となる直線L4から右下位置024を、各々選出した。
【0088】
本形態の位置データは、選出された4隅の位置決めマークの画素位置からなる。すなわち、図22において、左上位置021(Rtl,Ctl)、右上位置022(Rtr,Ctr)、左下位置023(Rbl,Cbl)、右下位置024(Rbr,Cbr)、を位置データとした。
【0089】
<セル判定手段>
セル判定手段323は、画像変換手段321から入力されたセル判定用画像データにおいて、位置決め手段322で取得した位置データを利用して、各セルの表示を判定して特定する。
本形態のセル判定手段323は、図23に示されるように、セル領域算出P201、セル領域走査P202、参照情報取得・検証P203、セル表示判定P204、の各ステップで構成される。これらのステップを実現する手段として、サーバM01に実行プログラムを用意した。
【0090】
<セル領域算出P201>
セル領域算出P201のステップでは、位置決め手段322で取得した位置データを用いて、各セル領域を算出する。本形態のセル領域算出P201は、以下の方法により実施した。
【0091】
格子状に配列したセルに対し、まず、4隅の位置決めマーク間を結ぶ線分をセル数で等分し、4隅を結ぶ辺上に配置されたセル領域を算出した。次に、対辺のセル同士を結ぶ線分を、Row方向、及び、Column方向に算出して、格子内部に配置されたセル領域を算出した。その際、セル領域の指定は、セル領域内の左上位置を代表画素とした。また、四捨五入して整数とした。
【0092】
<セル領域走査P202>
セル領域走査P202のステップでは、画像データにおいて各セル領域を走査することで、色成分ごとにセルの諧調を取得する。その際、セル領域として、セル領域算出P201のステップで取得した領域を用いた。本形態のセル領域走査P202は、以下の方法により実施した。
【0093】
本形態のセル領域走査P202は、位置決め手段321におけるコード領域走査P103ステップと同様、照合パターン008を用いて照合しながら走査した(図19)。これにより、各セルのマーク位置を検出した。また、検出されたマーク位置において、セルのマーク有無を判定するための指標(セル指標)を取得した。
本形態では、前記セル指標を色成分ごとに取得した。すなわち、(シアンC,マゼンタM,イエローY)のセル指標を取得した。その際、マーク位置の検出には数5を用い、セル指標(Jmc,Jmm,Jmy)を取得した。得られたセル指標(Jmc,Jmm,Jmy)は、サーバM01のメモリ領域に記憶した。
【数5】
Dm、及び、Dvは、各々マーク領域、空白領域における諧調の平均である。これらを用いて、色成分ごとに(Dm−P3×Dv)が最大の位置をマーク位置とした。
数5におけるP3は、セル判定パラメータであり、プロセス制御手段326により管理される。
【0094】
走査範囲としては、セル領域算出P201ステップから想定されるマーク位置を中心として、Row方向、及び、Column方向に、隣接マークまでの距離の1/2の範囲を対象とした。また、セル領域の走査は、色成分ごとに実施した。
セル領域走査P202に関する一連のプロセスを、図24のフローチャートに示した。図24に示されるように、各色成分のセル指標を全てのデータセルから取得した。
【0095】
<参照情報取得・検証P203>
参照情報取得・検証P203のステップでは、予め表示が固定されたセルから参照情報を取得する。その際、セル領域走査P202のステップで取得したセル指標を利用した。また、取得した参照情報を検証し、想定される2次元コードの妥当性を評価した。
本形態の参照情報の取得は、セル領域走査P202で位置を決定するステップと、当該位置においてセル諧調を取得し、参照情報として取得するステップ(参照情報取得・検証P203)と、を別のステップに分けて実施した。
本形態の参照情報取得・検証P203は、以下の方法により実施した。
【0096】
本形態において、参照情報を取得する際には、参照マーク030、及び、位置決めマーク020、のセル指標を利用した(図3)。これにより、参照マーク(030W、030C、030M、030Y、030R、030G、030B)から、白色Rw、シアンRc、マゼンタRm、イエローRy、レッドRr、グリーンRg、ブルーRb、の参照情報を取得した。また、位置決めマーク(020)からは、黒色Rkの参照情報を取得した。
取得する参照情報は、複数の色成分のセル指標で構成される。本形態においては、例えば、ある色成分の参照マークRxから(Rxc,Rxm,Rxy)として、CMY成分の値を取得した。取得した参照情報は、サーバM01のメモリ領域に記憶した。
図25において、各CMY成分の値を軸として構成されるCMY色空間に、参照情報(Rw,Rc,Rm,Ry,Rr,Rg,Rb,Rk)をプロットした。入出力時の影響を受けた参照情報は、図25に示されるように、各頂点を結ぶ立体図形が正立方体とはならずに歪みを有する。
【0097】
本形態において、参照情報の検証は、画像データが保持する各色成分において、参照情報(Rw,Rc,Rm,Ry,Rr,Rg,Rb,Rk)の諧調が適正であるか評価した。
表6に、各色成分に対して、該当する色成分の有/無の組合せを、それ以外の色成分の有/無が共通となるように分類して表示した。
【表6】
表7に、表6における各色成分の有/無の組合せに対して、当該色成分を有する参照情報と、有しない参照情報と間の諧調差を示した。参照情報が適正である場合には、表7に示された各々の指標(諧調差)は正の値をとる。
【表7】
本形態では、想定される2次元コードとして、表7の指標が全て正である場合を「適正」、1つでも負が存在する場合を「不適」、と判断した。また、評価により「不適」と判断された場合は、位置決めエラーE2−1とした。
セル判定手段323の参照情報取得・検証P203のステップで検出されたエラーは、プロセス制御手段341に出力した。
【0098】
<セル表示判定P204>
セル表示判定P204のステップは、各セルを判定して表示を特定する。その際、セル領域走査P202のステップ取得したセル指標、及び、参照情報取得・検証P203のステップで取得した参照情報を利用した。
本形態のセル表示の判定は、セル領域走査P202で位置を決定するステップと、当該位置においてセル諧調を取得し、表示を判定するステップ(セル表示判定P204)と、を別のステップに分けて実施した。
本形態のセル表示判定P204は、以下の方法により実施した。
【0099】
セルの判定は、各セルにおいてセル指標を判定式(数6)に代入して行った。これにより、色成分ごとにマークの有無を判定した。すなわち、判定式:数6のJdにおいて、Jd≧0の場合には、該当する色成分のマークが存在すると見なした。また、Jd<0の場合はマークが存在しないと見なした。
【数6】
数6において、変数(x,y,z)に対して、各色成分のセル指標(Jmc,Jmm,Jmy)を代入する。ただし、変数xには判定する色成分の値を、変数yとzには他の色成分の値を、各々対応させて代入した。表8に、判定の対象となる色成分ごとに、変数(x,y,z)と対応する色成分との関係を示す。
【表8】
【0100】
数6のb,c,dは、判定の対象となる色成分ごとに、参照情報(Rw,Rc,Rm,Ry,Rr,Rg,Rb,Rk)を用いて算出した。
(xi,yi,zi)は、表6に示された組合せにより、判定の対象となる色成分の有/無で分類された2つの参照情報を基に算出した。Σは、表6に示された4つ全ての組合せに対して和を計算した。
数7に、(xi,yi,zi)の算出に利用した数式を示す。
【数7】
数7において、(x1i,y1i,z1i)は判定の対象となる色成分を有する参照情報R1を、(x0i,y0i,z0i)は前記色成分を有しない参照情報R0を、各々代入した。ただし、(x1i,y1i,z1i)、及び、(x0i,y0i,z0i)は、変数(x,y,z)と同様、表8の関係を用いて取得した。
数7におけるP4は、セル判定パラメータであり、プロセス制御手段326により管理される。
【0101】
以下、本形態の判定式である数6について記述する。図26は、参照情報を頂点とする立体図形(図25)と、数6の判定面(Jd=0)との関係を、CMY色空間に表示した例である。図26の判定面は、C成分のマーク有無を判定するものであり、セル指標がC成分の軸方向正側(Jd≧0)にプロットされる場合をマーク有り、負側(Jd<0)の場合をマーク無しと判定する。
図26の判定面は、表8に示される組合せにより、判定する色成分の有無で参照情報を2つの集合に分類する。これは同時に、図26の判定面が、他の色成分の組合せが同じ4組(Rw,Rc)、(Ry,Rg)、(Rm,Rb)、(Rr,Rk)の各2点間を結ぶ線分と交わる(I1、I2、I3、I4)ことを意味する。
判定面は、図26に示されるような平面の場合に限定されない。例えば、2次曲面でも良く、その場合の判定式は2次式となる。
【0102】
セル表示判定P204に関する一連のプロセスを、図27のフローチャートに示した。図27に示されるように、セル表示の判定は、色成分ごとに全てのデータセルに対して行った。
【0103】
<デコード手段>
デコード手段324は、セル判定手段323で特定されたセルの表示を、予め定められた規則に基づいてビット列に復元する。ビット列への復元は、エンコード手段221と逆の処理を施すことで実現した。本形態におけるビット列復元の概念図を図28に示す。
図28において、色成分ごとに特定されたセル表示(110C、110M、110Y)に対し、「マーク有り」を「1」に、「マーク無し」を「0」に、各々対応させた。その際、エンコード手段221で用いた割り当て規則を利用し、逆のプロセスによりコードデータD20を取得した。
【0104】
<データ変換・検証手段>
データ変換・検証手段325は、デコード手段324で取得したコードデータD20から、データベースのレコード番号D00を取得する。データ変換・検証手段325は、データ変換手段222と逆の処理を施すことで実現した(図9)。ただし、コードデータD20は、データエラーを含む可能性がある。
【0105】
データD03は、コードデータD20に対してデータ分離(C20)、ビット位置復号(C03)して取得され、データエラーを含む可能性がある。当該データD03に対し、誤り訂正符号の復号化処理(C02)が施され、データD02が取得される。これにより、データD03のエラーは誤り訂正が施される。また、エラーが訂正不能の場合、誤り検出が施される。エラーが訂正不能で誤り検出がなされた場合、データエラーとして検出する。本形態においては、当該データエラーは、セル判定エラーE3−1とした。
データD02は、暗号の復号化処理(C01)が施され、データD01が取得される。取得されたデータD01は、2次元コード発行時に付加した冗長ビットを利用してデータエラーを検証する。本形態においては、データベース120に記録されたビット列と、ビット列D01の上位10ビットとの一致を検証した。冗長ビットが一致しない場合は、データエラーとして誤り検出する。
データ変換・検証手段325において検出されたエラーは、プロセス制御手段341に出力した。
【0106】
<データ出力部>
データ出力部330は、2次元コード解読部320で得られたビット列を出力する。本形態において、データベース120のレコード番号D00を、データベース120の管理プログラムに出力した。また、出力したレコード番号D00をデータベース120と照合し、不整合がある場合にエラーとして検出した。
本形態のデータ出力部330は、図14に示されるように、データ出力手段331で構成される。データ出力手段331は、サーバM01において、予め用意したプログラムを実行することで実現した。データ出力手段331における2次元コードの解読とデータベースの管理は、異なるコンピュータで処理しても良く、この場合、コンピュータ間で情報を送受信する。その際の通信には、既存の通信技術を利用する。
【0107】
データベース120の管理プログラムは、データベースを検索してレコード番号D00に一致するレコードを抽出する。これにより、当該レコードに記述されたアドレスを参照し、保存されたコンテンツを特定する。その後、コンテンツは、2次元コード取得装置M03に送信する等、前記レコードに記述された動作種別(表1)に応じた動作が施される。
動作の第1例:携帯端末に送信(表1:A000)の例では、コンテンツをメール機能を用いて返信した。コンテンツは、2次元コード取得装置M03である携帯端末が受信した後、ディスプレイに表示される等してユーザに利用される。また、一般のデジタル情報として、ユーザによる加工や、他の装置への転送、等が施されても良い。
【0108】
データベースの検索により抽出されたレコードにおいて、不整合が存在する場合にはエラーとして検出した。本形態の不整合は、表2に示されるようにデータベースに2次元コードのステータス(1=「復元可」、0=「不可」)を記録するフィールドを設け、レコードごとに管理した。
本形態のデータベースは、総レコード数のうちステータス=「1」(復元可)のレコード数を制限した。これにより、少なくとも10ビット以上のレコードをステータス=「0」(復元不可)とした。この場合、エラー検出が可能となり、レコード管理のセキュリティが確保される。
データ出力手段331で検出されたエラーは、プロセス制御手段341に出力した。
【0109】
<プロセス制御部>
プロセス制御部340は、復元プロセスで検出されたエラーの処理を制御する。その際、解析パラメータを変更して復元プロセスを繰り返すことで、エラー回避を試みる。エラー回避不能の場合は、2次元コードを送信した2次元コード取得装置M03にエラーを出力する。
本形態のプロセス制御部340は、図14に示されるように、プロセス制御手段341で構成される。プロセス制御手段341は、サーバM01において、予め用意したプログラムを実行することで実現した。
【0110】
本形態におけるエラーは、2次元コード入力手段311、セル判定手段323、データ変換・検証手段325、データ出力手段331、で検出される。表9は、前記エラーにおける、エラー種別とその判定条件、エラー事由、エラーに対する処理、を表示する。本形態のプロセス制御手段341は、表9に示されるように、エラー種別ごとに定められた処理を行う。
【表9】
本形態の解析パラメータである、位置決めパラメータ、及び、セル判定パラメータには複数の水準を用意した(表10)。
【表10】
【0111】
エラー種別として位置決めエラーE2−1が検出された場合、位置決めパラメータを変更して、再度、位置決め手段321による位置決めを実施する。位置決めパラメータとしては、位置決め手段321において、コード領域抽出P101ステップの数3におけるP1、及び、コード領域走査P103ステップの数4におけるP2、を用いた。
画像データ中の2次元コードの回転角度を検証するため、回転角度P0を、位置決めパラメータとして用いた。すなわち、水準1の場合は回転させず、水準2の場合は時計方向に90°、水準3の場合は180°、水準4の場合は270°、時計回りに回転させて、それぞれの参照情報を評価した。本形態のように、位置決めマークが回転対称に配置された場合であっても、前記参照セルの表示を回転対称とならない(回転非対称)ように配置し、かつ、2次元コード復元時に参照セルを検証することにより、画像データ中の2次元コードの回転方向を特定することを可能とする。
【0112】
図29に、セル判定手段323において位置決めエラーE2−1が検出された場合のフローチャートを示す。位置決めの繰返しは、位置決めエラーE2−1が検出されない、若しくは、予め定めたフローが終了するまで繰り返される。これにより、位置決めエラーE2−1が検出されない場合は、デコード手段324以降のプロセスに入る。一方、フローが終了した場合は、復元プロセスを停止してエラーを出力する。
表11に、位置決めパラメータ(P1及びP2)の設定順序を表示した。ただし、位置決めパラメータP0の水準1〜4の繰返しは、表11の設定(繰返し順1〜5)の各々に対して適用した。本形態においては、表11に示された一連の設定(繰返し順1〜5)が終了した場合は、位置決めの繰返しを終了とした。
【表11】
【0113】
エラー種別としてセル判定エラーE3−1が検出された場合、セル判定パラメータを変更して、再度、セル判定手段323によるセル判定を実施する。セル判定パラメータとしては、セル判定手段323において、セル領域走査P202ステップの数5におけるP3、及び、セル表示判定P204ステップの数7におけるP4、を用いた。
【0114】
図30に、データ変換・検証手段325においてセル判定エラーE3−1が検出された場合のフローチャートを示す。セル判定の繰返しは、セル判定エラーE3−1が検出されない、若しくは、予め定めたフローが終了するまで繰り返される。これにより、セル判定エラーE3−1が検出されない場合は、データ出力手段331以降のプロセスに入る。一方、フローが終了した場合は、復元プロセスを停止してエラーを出力する。
表12に、セル判定パラメータ(P3及びP4)の設定順序を表示した。本形態においては、表12に示された一連の設定(繰返し順1〜5)が終了した場合は、セル判定の繰返しを終了とした。
【表12】
【0115】
本形態のプロセス制御手段341は、エラー回避不能の場合にはエラーを出力する。その際、表9の「エラー種別」、及び/又は、「エラー事由」を、2次元コード取得装置M03に対して送信した。更に、エラー種別がE3−1(セル判定エラー)の場合は、エラーを解析してその結果を送信した。
エラー要因の解析には、表13の判定条件を用いた。判定条件を満たす場合に、表9の「エラー要因」、及び/又は、「撮像アドバイス」、を取得した。
【表13】
エラー要因の解析(表13の判定条件)には、位置決めマークの位置(4箇所)、及び、参照情報、等を用いた。これらの値は、予め復元プロセスで取得してメモリ領域に記憶した。ただし、黒色マークの諧調(黒色の参照情報)は、本形態の場合は位置決めマークから取得した。また、コード領域の周囲に存在する空白領域から諧調を取得し、「空白領域の諧調」とした。
表13におけるエラー判定は、「順位」に示された番号順に行った。条件が一致した時点でエラー解析のプロセスを終了し、エラー要因を特定した。
【0116】
本形態において、プロセス制御手段341で取得したエラー情報(エラー種別、エラー事由、エラー要因、撮像アドバイス)は、2次元コード取得装置M03である携帯端末に送信した。送信されたエラー情報は、携帯端末に付属するディスプレイにテキスト表示される。これにより、携帯端末を操作するユーザは、エラー情報を参照し、エラーに対する対処を決定する。
エラー解析により「エラー要因」、及び/又は、「撮像アドバイス」が取得された場合、ユーザはエラー情報を参照して再び2次元コードを撮像する。この場合、ユーザによりエラー要因は修正され、2次元コードが復元可能となる。
本形態の「撮像アドバイス」としては、撮像時におけるカメラと2次元コードとの間の距離(ズーム機能を含む)、撮像角度、撮像時の明るさ(フラッシュや表示装置の発光レベルを含む)、撮像時の焦点(マクロモードを含む)、等に関することを記述した。
【0117】
<2次元コード復元フロー>
本形態の2次元コード復元プロセスにおいて、サーバM01、及び、2次元コード取得装置M03である携帯端末における動作と、当該装置間でなされる通信の例を、以下、図31を用いて説明する。ただし、図31の例では、動作種別としてコンテンツを携帯端末M03に送信する場合を想定した。
【0118】
S201:サーバM01は携帯端末M03からのアクセスを待ち受ける。
S202:ユーザBは撮像機能を有する携帯端末M03で、2次元コードを撮像する。
S203:携帯端末M03は、2次元コードの画像データをサーバM01に送信する。
S204:サーバM01は、受信した画像データの2次元コードを解読し、データベース120のレコード番号を取得する。解読不能の場合は、ステップS206において、携帯端末M03にエラー情報を送信する。
S205:前記レコード番号のレコードにアクセスして、動作種別とコンテンツの保存アドレスを取得する。
S206:保存アドレスのコンテンツを携帯端末M03に送信する。解読エラーの場合は、コンテンツではなくエラー情報を送信する。
S207:エラー情報を基に、携帯端末M03にエラー内容を表示する。その際、特定された場合は、復元プロセスにおけるエラー要因、及び/又は、撮像アドバイスを表示する。
S208:コンテンツが特定された場合(エラーなし)は、携帯端末M03はコンテンツを取得し、ユーザBはこれを目的に応じて活用する。
S209:解読不能となりコンテンツが特定されない場合(エラーあり)は、ユーザBは、携帯端末M03に表示されたエラー内容を確認する。その際、特定された場合には、エラー要因、及び/又は、撮像アドバイスを参照して2次元コードを撮像し(S202)、再び、上記のフローを繰り返す。
【0119】
本形態において、サーバM01と携帯端末M03との間のデータ送受信は、携帯端末M03が備えるメール機能を利用し、電子メールにて行った。
サーバM01は、電子メールを受信することで、2次元コードの画像データ、及び、携帯端末M03のメールアドレスを取得する。例えば、2次元コードの解読により特定したコンテンツを携帯端末M03に出力する場合には、取得したメールアドレスに宛ててメール送信した。
携帯端末M03のメール機能は、携帯端末M03に一般に備えられたメール送受信手段を用いた。一般に、メール本文の他、ファイルを添付する機能を有し、2次元コードの画像データや、電子データであるコンテンツを送受信した。受信したメールは、携帯端末M03に備えられたメーラーを用いて、タイトル、日付、等が一覧表示される。
コンテンツがテキストデータの例では、メール本文に前記テキストデータを挿入した。例えば、WEBアドレスをユーザBに送信する場合、メール本文に当該WEBアドレスを記載した。ユーザBは、これを指定して携帯端末からアクセス可能となる。
【0120】
本形態のサーバM01は、SMTP(Simple Mail Transfer Protocol)、及び、POP(Post Office Protocol)を利用したメールサーバ機能を備える。
サーバM01は、メール受信に際し、不正なメールを削除するフィルタリング処理を行った。本形態のフィルタリング処理として、携帯データ通信事業者以外から送信されたメールは排除した。その際、判定はメールアドレスから行った。また、不正アドレスリストに登録されたメールアドレスからのメールも排除した。更に、添付された画像データの画像形式、及び/又は、サイズ(例えば、形式:JPEG、サイズ:10Kバイト〜1Mバイト)が適切でない場合は排除した。
【図面の簡単な説明】
【0121】
【図1】装置構成を示す図である。
【図2】2次元コードを示す図である。
【図3】2次元コードのセル配置を示す図である。
【図4】2次元コードの一色成分の一部領域を示す図である。
【図5】マークセルを示す図である。
【図6】連続した2セル(横方向、縦方向)を示す図である。
【図7】お化粧マークに割り当てられたセルを示す図である。
【図8】2次元コード発行プロセスを示す図である。
【図9】データ変換フローを示す図である。
【図10】セル表示決定の概念図を示す図である。
【図11】画像データのマークセル(一色成分)を示す図である。
【図12】画像データの空白セル(一色成分)を示す図である。
【図13】2次元コード発行プロセスの装置間の通信を示す図である。
【図14】2次元コード復元プロセスを示す図である。
【図15】画像データのマークセル(一色成分)を示す図である。
【図16】位置決め手段を構成するステップを示す図である。
【図17】コード領域抽出の際に諧調を取得する位置を示す図である。
【図18】コード領域における諧調分布の例を示す図である。
【図19】照合パターンの照合による画像の走査を示す図である。
【図20】コード領域走査のフローチャートを示す図である。
【図21】判定式による判定の領域を示す図である。
【図22】位置決めマーク選定の直線を示す図である。
【図23】セル判定手段を構成するステップを示す図である。
【図24】セル領域走査のフローチャートを示す図である。
【図25】CMY色空間における参照情報のプロットを示す図である。
【図26】CMY色空間における判定面を示す図である。
【図27】セル表示判定のフローチャートを示す図である。
【図28】ビット列復元の概念図を示す図である。
【図29】位置決めエラー検出時のフローチャートを示す図である。
【図30】セル判定エラー検出時のフローチャートを示す図である。
【図31】2次元コード復元プロセスの装置間の通信を示す図である。
【符号の説明】
【0122】
001…マークセル、002…空白セル
003…マーク領域、004…空白領域
008…照合パターン
010…データマーク
010C、010M、010Y…データマーク(シアン、マゼンタ、イエロー)
010R、010G、010B…データマーク(レッド、グリーン、ブルー)
010K、010W…データマーク(黒色、白色)
020…位置決めマーク
030…参照マーク
030C、030M、030Y…参照マーク(シアン、マゼンタ、イエロー)
030R、030G、030B…参照マーク(レッド、グリーン、ブルー)
030K、030W…参照マーク(黒色、白色)
040…お化粧マーク
040C、040M、040Y…お化粧マーク(シアン、マゼンタ、イエロー)
040R、040G、040B…お化粧マーク(レッド、グリーン、ブルー)
040K、040W…お化粧マーク(黒色、白色)
100…2次元コード、101…2次元コード(8×8セル)
120…データベース
200…2次元コード発行プロセス
210…データ入力部、211…データ入力手段
220…2次元コード生成部
221…データ変換手段、222…エンコード手段
223…画像作成手段、224…画像変換手段
230…2次元コード出力部、231…2次元コード出力手段
300…2次元コード復元プロセス
310…2次元コード入力部、311…2次元コード入力手段
320…2次元コード解読部
321…画像変換手段、322…位置決め手段、323…セル判定手段
324…デコード手段、325…データ変換・検証手段
330…データ出力部、331…データ出力手段
M01…サーバ
M02…コンテンツ登録装置
M03…2次元コード取得装置
【技術分野】
【0001】
本発明は、画像表示装置のディスプレイに表示された、もしくは、画像形成装置からシート状記録媒体や固形物表面に出力された2次元コードを、撮像装置により撮像して画像データを取得した後、コンピュータを用いて解析することで、前記2次元コードに表現されたビット列を復元することを可能とした、2次元コード復元プログラム、及び、当該プログラムを実行する2次元コード復元サーバ、に関する。
【背景技術】
【0002】
2次元コードは、一般に、格子状に配列した複数のセルと、その周囲に配置した位置決めシンボルによって構成され、平面上にビット列を表現する。通常、セルは白色の平面上に想定され、黒色のデータマークが印されたマークセルと、データマークが印されずに白色が露出した空白セルの2種類で構成される。これにより、セルの表示によって配置のパターンを形成してビット列を表現する。例えば、マークセルを1に、空白セルを0に対応させて、1と0によるビット列を表現する。
このように表示された2次元コードに対し、光学的な撮像装置を用いて画像データを取得し、当該画像データを解析することでビット列を復元することが可能となる。解析にはコンピュータを用い、画像データ上のセルの位置を求め、その位置でセルの表示を判定する。これにより、明らかになったセルの表示を基に、2次元コードに表現された前記ビット列を復元することができる。
【0003】
セルの位置は、特定の位置に固定して表示された位置決めシンボルや位置決めマークを基準にして算出することができる。例えば、検出された2以上の位置決めシンボル/位置決めマーク間の距離と角度から、画像データ中の2次元コードのサイズと傾きを求め、これを基に各セルの位置を算出する方法が知られている(非特許文献1、特許文献3)。
セルの表示は、セルの概ね中心位置における諧調(又は濃度)の値から判定する方法が知られている(非特許文献1)。この方法では、セルの中心画素の諧調を事前に用意されたしきい値と比較して、しきい値より諧調が高い(濃度が高い)セルをマークセル、諧調が低い(濃度が低い)セルを空白セルと見なすことができる。
しきい値は、所定の領域に参照用の画像を表示しておき、その画像の諧調を基に算出する方法が知られている(特許文献1)。この方法を用いると、しきい値の信頼性が上がるため判定精度が向上する。
【0004】
近年、従来のモノクロ2次元コードを発展させたものとしてカラー2次元コードが提案されている(特許文献1)。カラー2次元コードでは、セルの表示を複数種類の色彩で表現することにより、白色と黒色の2種類だけからなるモノクロ2次元コードに比べ、ビット列を高密度に表示することが可能となる。
【0005】
2次元コードでは、従来のバーコードに比べ、ビット列の表示密度を向上させることが可能となった。すなわち、限られた表示範囲において、所望の容量を持つビット列が表示できるようになった。この特徴から、近年、2次元コードは多方面で利用されている。
例えば、文字情報、画像情報、音声情報、暗号情報、コンピュータ上の命令コード、等のデジタル情報を、2次元コードとして画像表示装置上に表示し、撮像装置で読み取ることに使われる。また、前記デジタル情報を、用紙などのシート状記録媒体や、電子部品などの固形物表面に記録すること、等に使われる。
【0006】
2次元コードを効率的に利用する方法として、データベースのレコード番号に対応して用意されたビット列を表現する技術が公開されている(特許文献2)。この場合、対象とするデジタル情報は、2次元コードに埋め込まれるのではなく、前記ビット列に関連付け、サーバを介してネットワーク上で保存・管理される。これにより、扱うことが可能な容量は、2次元コードの表示面積に制限されなくなり、上記のデジタル情報の他、動画情報等を含む大容量な情報を対象とすることが可能となる。
また、2次元コードに表現されるビット列に対し、所定の変換を施す技術が公開されている(特許文献2)。すなわち、例えば、暗号化処理を施すことで、第三者による不正な読み取りを防止できる。また、誤り訂正符号を用いることで、セル表示の誤判定により生じる読取エラーを抑制できる。
【0007】
【特許文献1】WO2004/097717
【特許文献2】特開2007−026427号公報
【特許文献3】特開2007−026428号公報
【非特許文献1】JIS X0510 2次元コードシンボル−QRコード−基本仕様書
【発明の開示】
【発明が解決しようとする課題】
【0008】
コンピュータの処理速度の向上や、記憶媒体の容量増加などの技術進歩により、近年、従来に比べて大容量のデジタル情報が扱われるようになった。また、通信技術の進歩にともない、デジタル情報を簡便に送受信できるネットワーク環境が整ってきた。特に、携帯機器を用いた無線通信において、通信速度の向上とその普及率の増加は目覚しいものがある。これにより、時間的、及び、地理的な条件に縛られることなく、様々な場面において情報をやり取りすることが可能となってきた。
上述の背景により、2次元コードに対してもビット列を高密度に表示することが求められている。同時に、多様な状況に対応しながら、確実にビット列を復元することが求められている。
上記により、我々の周囲に存在するデジタル情報を、より簡便に、更に快適に取り扱うことが望まれている。
【0009】
2次元コードを高密度に表示するため単位面積あたりのセル数を増加すると、個々のセルのサイズが小さくなり、セルの表示が不明確になり易い。この場合、セル表示の誤判定による復元エラーが生じ易くなる。
また、セルの表示にカラーを用いると、表示の種類が増える代わり、マーク有無の2種類だけを判定するモノクロの場合に比べて誤判定が生じ易くなる。その要因は複数考えられるが、その一例としては、複数の色成分の組合せによりセルの表示を構成する場合に、2次元コード復元時に得られる画像データ中の各々の色成分において、他の色成分の作用を受けて色彩が変動する現象が挙げられる。
2次元コードを復元する際に取得する画像データ中の2次元コードは、入出力条件に起因して乱れを含む可能性があり、その場合、復元エラーが生じ易くなる。画像の乱れの原因としては、2次元コード出力時において、例えば、出力装置による出力位置のずれ、出力濃度のずれ、表示面の湾曲、等がある。また、2次元コード入力時において、例えば、入力装置が持つ光学的な歪み、入力諧調のずれ、入力時の撮像角度の傾き、焦点ぼけ、等がある。
【0010】
本発明は、上記の点に鑑みてなされたものであり、2次元コードに表現されたビット列を、多様な状況に対応しながら確実に復元することを可能にした、2次元コード復元プログラム、及び、復元サーバ、を提供する。これにより、我々の周囲に存在するデジタル情報を、簡便・快適に取り扱うことを可能にする。
【課題を解決するための手段】
【0011】
本発明に係る請求項1に記載の2次元コード復元プログラムは、
2次元的に配置した複数のセルに対する色成分の組み合わせによりビット列が表現された2次元コードに関し、当該2次元コードを含む画像データから前記ビット列を復元する2次元コード復元プログラムであって、
前記画像データを構成する複数の色成分を同時に利用して、セルの表示を構成する各々の色成分の有無を個別に判定すること、
を特徴とする。
セルのカラー表示は、当該表示を構成する複数の色成分のうち何れかの色成分に一定範囲の諧調が割り当てられていても良い。例えば、何れの色成分も含まない表示(白色)において、全ての色成分(シアン、マゼンタ、イエロー)に5%〜20%程度の諧調を付与すると良い。この場合、他の色成分の影響で生じる諧調変動の範囲(5%〜20%程度)で諧調が付与されることで、復元精度が向上する。
【0012】
本発明に係る請求項2に記載の2次元コード復元プログラムは、
請求項1に記載の2次元コード復元プログラムにおいて、
予め定めた色彩で表示された複数の参照セルから、当該参照セルの色彩に関する情報を取得すること、
判定を行う各々の色成分において、当該色成分の有無によって分類された参照セルの情報を利用してセルの表示を判定すること、
を特徴とする。
参照セルに表示される色彩は、セルの表示に利用される全ての表示に対して用意されることが好ましい。例えば、シアン、マゼンタ、イエローの色成分の組合せで各セルが表示される場合、白色、シアン、マゼンタ、イエロー、レッド、グリーン、ブルー、黒色、の参照セルを用意すると良い。その際、黒色で表示された位置決め用のマーク等、他の用途で利用されるセルと兼ねていても良い。
【0013】
本発明に係る請求項3に記載の2次元コード復元プログラムは、
請求項1に記載の2次元コード復元プログラムにおいて、
セルごとに周囲を空白領域で囲まれて表示されたマークの位置を、当該マークの領域と周囲の空白領域とのコントラストを基に特定し、当該位置において色彩の情報を取得してセルの表示を判定すること、
を特徴とする。
各セルにおける位置の特定と、当該位置における色彩の情報の取得とは、個別に実施すると良い。その際、位置の特定と色彩情報の取得は、各々に適した異なる画像データを対象として解析を行うと良い。例えば、位置の特定に対する画像データを、色成分を統合する等によって変換すると良い。この場合、各画素の値を位置決めに適したものにしたり、画素の値が減ることで計算負荷を抑制したり、することが可能となる。
【0014】
本発明に係る請求項4に記載の2次元コード復元プログラムは、
2次元的に配置した複数のセルの表示によりビット列が表現された2次元コードに関し、当該2次元コードを含む画像データから前記ビット列を復元する2次元コード復元プログラムであって、
2次元コードの解読に係わるパラメータに適用される値が、前記画像データに応じて予め用意された複数の水準から選定されること、
を特徴とする。
セルの判定において、画像データを構成する複数の色成分を同時に利用して、セルの表示を構成する各々の色成分の有無を個別に判定する場合に、当該判定に対して前記パラメータを適用し、複数の水準から選定すると良い。パラメータとしては、例えば、判定に利用される判定式の係数を用いると良い。
また、セルの表示を判定する各々の色成分において、当該色成分の有無によって分類された参照セルの情報を利用する場合に適用すると良い。この場合、参照セルの色彩にずれが存在しても、適切な判定を実施することが可能となる。
【0015】
本発明に係る請求項5に記載の2次元コード復元プログラムは、
請求項4に記載の2次元コード復元プログラムにおいて、
前記セルの判定に利用される指標は、当該セルにおけるマーク領域の諧調を、周囲の空白領域の諧調を用いて補正した値であること、
前記パラメータとして、諧調の補正に係わる複数の水準を用意すること、
を特徴とする。
判定に利用される指標としては、マーク領域の諧調Dmと空白領域の諧調Dvの差を利用すると良い。また、前記パラメータとしては、差を求める式の係数を用いて、それらの比重をを指定すると良い。例えば、指標を(Dm−P・Dv)として、パラメータPに複数の水準(0〜1.0)を用意すると良い。
【0016】
本発明に係る請求項6に記載の2次元コード復元プログラムは、
請求項4に記載の2次元コード復元プログラムにおいて、
予め定めた色彩で表示された複数の参照セルから、当該参照セルの色彩に関する情報を取得すること、
前記参照セルの情報を検証することで、解読プロセスで生じたエラーを検出すること、
前記エラーが検出された場合に、パラメータの値を変更して再び解読プロセスを繰り返すこと、
を特徴とする。
参照セルの検証は、各参照セルの色彩の情報を、想定される色成分の有無を基に比較して行うと良い。例えば、各々の色成分において、当該色成分を含む参照セルと含まない参照セルの諧調の差を取る等により、色成分を含まないセルの方が諧調が大きい場合にエラーと判断すると良い。
エラーが検出された場合は、解読プロセスを中断してパラメータの値を変更すると良い。この場合、必要のない処理を施さないことで計算負荷を抑制できる。一方、エラーが検出されない場合は、解読プロセスを中断しなくて良い。解読プロセスが一定回数以上繰り返された場合には、プロセスを中断してエラーを出力すると良い。
参照セルの色彩を評価することで、乱れ状態が許容できない画像を排除しても良く、この場合、解読したビット列に誤りが含まれる確率を低減できる。
パラメータとしては、セルの位置の特定に関するものに適用すると良い。例えば、位置決め用のマークを検出する際に利用する判定式の係数に適用すると良い。また、例えば、セル領域を抽出する際に利用する判定式の係数に適用すると良い。
【0017】
本発明に係る請求項7に記載の2次元コード復元プログラムは、
請求項4に記載の2次元コード復元プログラムにおいて、
2次元コードが表現する前記ビット列は、誤り検出を可能とする冗長ビットが付与されていること、
2次元コードを解読して得られるビット列に対して誤り検出を行い、解読プロセスで生じたエラーを検出すること、
前記エラーが検出された場合に、パラメータの値を変更して再び解読プロセスを繰り返すこと、
を特徴とする。
誤り検出には、公知の符号化技術である誤り訂正符号を利用すると良い。例えば、BCH符号や拡張BCH符号、リードソロモン符号等を用いると良い。この場合、2次元コードを解読して得られるビット列に誤りが含まれても、一定範囲であれば訂正可能である。
また、元データにおいて、所定のビットに固定した値(固定ビット)を設けておくことで、復元で得られるデータを検証して誤りを検出しても良い。例えば、元データの最初の数ビットを全て0に固定すると良い。この場合、固定ビットのビット数を増やすほど検出レベルが向上する。例えば、固定ビットとして、4〜20ビット程度のビット数を割り当てると良い。
エラーが検出された場合は、解読プロセスを中断してパラメータの値を変更すると良い。エラーが検出されない場合は、解読プロセスを中断しなくて良い。解読プロセスが一定回数以上繰り返された場合には、プロセスを中断してエラーを出力すると良い。
パラメータとしては、セルの表示の判定に関するものに適用すると良い。例えば、各々のセルにおける各色成分の有無の判定に利用される判定式の係数に適用すると良い。また、例えば、セルの判定に利用される指標として、セルのマーク領域の諧調を周囲の空白領域の諧調で補正する際の係数に適用すると良い。
【0018】
本発明に係る請求項8に記載の2次元コード復元サーバは、
2次元的に配置した複数のセルの表示によりビット列が表現された2次元コードに関し、当該2次元コードを含む画像データから前記ビット列を復元する、ネットワークに接続されたサーバであって、
ネットワークに接続されたクライアント端末から2次元コードの画像データを受信する画像データ受信手段と、
前記2次元コードの画像データから、2次元コードに表現されたビット列を解読する2次元コード解読手段と、
前記2次元コードの解読プロセスにおいて生じたエラーを検出するエラー検出手段と、
前記エラーが検出された場合に、エラーを解析するエラー解析手段と、
前記エラー解析手段で得られたエラー情報を、前記クライアント端末に送信するエラー送信手段と、
を有することを特徴とする。
【0019】
本発明に係る請求項9に記載の2次元コード復元サーバは、
請求項8に記載の2次元コード復元サーバにおいて、
前記エラー解析手段で得られたエラー情報に、ユーザがクライアント端末に接続されたカメラを用いて2次元コードを撮像する際の撮像アドバイスが含まれること、
を特徴とする。
【0020】
本発明の構成要素は、コンピュータ上で実行されるプログラム、すなわちソフトウェアであることが好ましい。また、これを実現するために用意された専用のハードウェアであっても良く、更には、これらソフトウェアとハードウェアの組み合せであっても良い。
プログラムを実行するコンピュータとしては、一般的に普及したもので良く、パーソナルコンピュータ、ワークステーション、メインフレームなどのコンピュータの他、携帯電話やPDAなどの電子機器に搭載したコンピュータであってもよい。また、このプログラムを実行するために特別に用意されたコンピュータであってもよい。
本発明の別の構成要素は、ネットワークに接続されたサーバであって、クライアント端末からの要求に応じて所定の動作を実行する。当該サーバとしては、一般的に普及したもので良く、セキュリティやバックアップ等、一般にサーバに期待される機能を備えていることが好ましい。
【発明の効果】
【0021】
本発明に係る請求項1に記載の2次元コード復元プログラムによれば、判定の対象となる色成分以外の色成分の諧調を判定に適用することで、他の色成分を有することによる作用を含めてカラー表示を判定する。これにより、カラー2次元コードにおいて、ビット列を正確に復元することが可能となる。
また、色成分ごとに判定を行うことで、画像データの色空間に関する変換等の処理をしなくても良く、解析に掛かる計算負荷を抑制できる。これにより、ユーザの待ち時間が低減する等の利点を有する。
【0022】
本発明に係る請求項2に記載の2次元コード復元プログラムによれば、入出力条件の変動により画像に乱れが存在する場合でも、画像変動に応じたセルの判定を適用することで、カラー2次元コードにおいて、ビット列を更に正確に復元することが可能となる。
【0023】
本発明に係る請求項3に記載の2次元コード復元プログラムによれば、精度の高い位置の特定とセルの判定とを両立することが可能となり、ビット列を正確に復元することが可能となる。
【0024】
本発明に係る請求項4に記載の2次元コード復元プログラムによれば、解読に適用されるパラメータの値を複数の水準から選択し、解読条件を画像データに応じて動的に変動させることで、画像の状態に適した解読が可能となる。これにより、ビット列を正確に復元することが可能となる。
【0025】
本発明に係る請求項5に記載の2次元コード復元プログラムによれば、判定に適用されるセルの補正条件を複数の水準から選択することにより、画像の状態に適した判定が可能となる。
例えば、画像面内に濃淡分布(端領域が暗くなる等)が存在する場合、周囲の空白領域による補正を強くすることで、分布の影響を低減できる。一方、画像のピントのずれ等によりセル上のマークの輪郭がぼけている場合、前記補正を弱くすることで、補正により生じる感度低下を抑制できる。
【0026】
本発明に係る請求項6に記載の2次元コード復元プログラムによれば、特定されたセル位置の誤りを検出することが可能となり、パラメータの値の変更により適切な位置を特定することでビット列を解読することが可能となる。また、プロセスの途中でエラーを検出することで、プロセスの繰り返しにおける計算負荷を抑制できる。
【0027】
本発明に係る請求項7に記載の2次元コード復元プログラムによれば、解読されたビット列の誤りを検出することが可能となり、パラメータの値の変更により画像に適した判定を行うことでビット列を解読することが可能となる。また、プロセスの途中でエラーを検出することで、プロセスの繰り返しにおける計算負荷を抑制できる。
【0028】
本発明に係る請求項8に記載の2次元コード復元サーバによれば、クライアント端末にエラー情報を送信することで、ユーザはエラー要因を推定することが可能となる。これにより、ユーザは前記エラー要因を排除した後、再び2次元コードの復元を試みることで、エラー回避の確率を向上させることができる。
また、ユーザは、エラー要因を理解することで安心感を得ることができ、システムに対する不満を低減することが可能となる。
【0029】
本発明に係る請求項9に記載の2次元コード復元サーバによれば、ユーザは2次元コード撮像の際のアドバイスを得ることで、好適な2次元コード画像を取得することが可能となる。これにより、再び2次元コードの復元を試みることで、エラー回避の確率を向上させることができる。
【発明を実施するための最良の形態】
【0030】
以下、本発明を実現するための好適な形態について記述する。ただし、以下の記述は、本発明の一形態であってこれに限定されるものではない。
【0031】
<装置構成>
本形態を実現する装置は、図1に示されるように、サーバM01、コンテンツ登録装置M02、2次元コード取得装置M03、で構成される。これらの装置は、ネットワークへの通信手段を備える。
サーバM01、コンテンツ登録装置M02、2次元コード取得装置M03としては、一般に利用されている既存の装置を用いると良い。本形態において、コンテンツ登録装置M02として、PC(Personal Computer)を用いた。また、2次元コード取得装置M03として、撮像機能を有する携帯端末(カメラ付携帯端末)を用いた。ただし、コンテンツ登録装置M02として携帯端末を用いていも良い。また、2次元コード取得装置M03として画像入力機能を備えたPCを用いても良い。
サーバM01は、複数のユーザからの要求に応じて、複数の動作を同時に処理することが可能である。本形態において、サーバM01は、1台のサーバ装置によって、複数の役割(2次元コードの発行、復元、データベースの管理、等)を実行した。ただし、複数のサーバ装置を用意して、複数の役割を分散させて実現しても良い。すなわち、本発明のサーバは、2台以上のサーバ装置で構成されたサーバ群を含む。
【0032】
<想定される使用形態>
本形態において、2次元コードを利用して、ネットワーク上で複数のユーザが電子データからなるコンテンツを共有する。例えば、ユーザAがコンテンツをサーバに登録すると同時に2次元コードを発行し、後に、別のユーザBが2次元コードを復元することで前記コンテンツを特定して取得する。
ユーザA、Bは上記の場合に限定されるものではなく、例えば、ある状況では、複数のユーザBがサーバに登録された同一のコンテンツを取得する。また、他の状況では、ユーザA、Bは同一人物であり、自分で登録したコンテンツを後に取得する。
【0033】
<対象とするコンテンツ>
本形態におけるコンテンツは、文字情報、画像情報(静止画及び動画)、音声情報、等の限定されない形式による電子データを対象とする。
文字情報としては、例えばURL(Uniform Resouce Locator)、個人データ(住所・氏名・電話番号)、メモ書き、メール文書、等の任意の書式で記述されたテキストデータを指す。テキストデータは、EUCコードや、ShiftJisコード、ユニコード、等の文字コードで表される。
画像情報としては、例えば、jpegやビットマップ等のデータ形式の静止画データを指す。また、例えば、mpegやwmv、avi等のデータ形式の動画データを指す。音声情報としては、例えば、mp3やwav等のデータ形式の音楽データを指す。
上記以外の例として、特定のアプリケーションにより作成された電子データを対象とする。例えば、ワープロソフトで作成されたデータや、表計算ソフトで作成されたデータ、スケジュール管理ソフトで作成されたデータ、等を指す。また、IDやパスワード等の認証データや、暗号化されたビット列である暗号データ、コンピュータ上の命令コード(実行形式のプログラム)、を対象とする。
【0034】
<コンテンツに対する動作>
本形態において、ユーザAはコンテンツを登録する際に、2次元コード復元時の動作を選定する。選定された動作は、動作種別としてサーバM01のデータベースに記録される。当該動作種別は、2次元コード復元時に参照され、サーバM01上のプログラムを介して実行される。
表1に本形態で用意した複数の動作種別と、各動作種別に割り当てた番号(動作種別番号)の例を示す。本形態の動作種別は、コンテンツの種類ごとに想定される動作を予め用意した。その際、同じ種類のコンテンツに対して複数の動作種別を設けた。
【表1】
以下、本形態において用意した複数の動作の例を記述する。個別に記述された動作種別は、組み合わせて実行されても良い。
【0035】
<動作の第1例:携帯端末に送信>
本形態の動作の第1例は、サーバM01は、2次元コード取得装置M03である携帯端末にコンテンツを送信する(A000)。
例えば、コンテンツが文字情報の場合、ユーザBは、携帯端末のディスプレイに表示させて読み取る(A001)。また、記述されたURLを指定して、携帯端末からアクセスする(A002)。
コンテンツが画像情報(静止画)の場合、携帯端末のディスプレイに画像を表示する(A011)。動画の場合は、動画データを再生する(A021)。音声情報の場合、携帯端末で音楽データを再生する(A031)。
【0036】
<動作の第2例:サーバ内で処理>
本形態の動作の第2例は、サーバM01は、当該サーバM01内でコンテンツの登録を行う。
本形態において、ユーザBは、サーバM01内にホームページを有し、当該ホームページにコンテンツを登録する。その後、ユーザBは、ホームページにアクセスして利用する。
コンテンツが文字情報の場合、例えば、記述されたURLを、ホームページのブックマークリストに登録する(A102)。また、記述された個人情報(住所・氏名・電話番号)を、ホームページのアドレス帳に登録する(A103)。
コンテンツが画像情報の場合、画像(静止画)をホームページのアルバムに登録する(A111)。また、音声情報の場合、音楽データをホームページの音楽リストに登録する(A131)。
【0037】
<動作の第3例:他サーバに送信>
本形態の動作の第3例は、サーバM01は、他サーバM11にコンテンツを送信する。
第3例において、ユーザBのホームページはサーバM11で管理される。当該サーバM11は、サーバM01とは異なる管理主体(例えば、一般のネットワークサービスプロバイダ)によって管理される場合を想定した。
サーバM01は、コンテンツと同時に動作種別をサーバM11に送信する。サーバM11は、当該動作種別を参照し、第2例と同様の動作を処理する。すなわち、サーバM11上のホームページへのブックマーク登録(A202)や、アドレス帳登録(A203)、アルバム登録(A211)、音楽登録(A231)、等を行う。
【0038】
<データベース>
データベースは、行をレコード、列をフィールドとするテーブル形式で構成され、各レコードに複数のフィールドを設けて情報を記録する。本形態のデータベースは、汎用的な言語であるSQLで記述した。また、一般に普及したアプリケーションであるSQLightを利用した。ただし、アプリケーションとしては、MySQLや、PostgreSQL、Oracle、等を用いても良い。
本形態で使用するデータベースの例を表2に示す。本形態におけるデータベースは、レコード番号、ヘッダ番号、動作種別、保存アドレス、ステータス、を記録するフィールドを有する。
【表2】
【0039】
レコード番号のフィールドは、レコード番号(D00)を記録した。本形態では2進数列のビット列を記録した。ただし、10進数により記録しても良い。
ヘッダ番号のフィールドはヘッダ番号(D10)を記録した。
動作種別のフィールドは、2次元コードが復元された後のコンテンツに対する動作の種別を記録した(表1)。
保存アドレスのフィールドは、コンテンツの保存アドレスを記録した。当該保存アドレスは、サーバM01内のストレージ領域や、サーバM01からアクセス可能な他サーバ内のストレージ領域を対象とする。
ステータスのフィールドは、2次元コードの発行・停止状況を記録しておく。これにより、本形態では、ステータス=「1」は復元可、ステータス=「0」は不可とした。ステータス=「1」(復元可)は、2次元コードを発行し、かつ、停止していない場合に記録した。2次元コードを発行していない場合、及び、発行後に停止した場合は、ステータス=「0」(復元不可)とした。2次元コード発行後の停止は、使用期限等、使用する際の制約に基づいて実施される。
データベースには、上記以外のフィールドを設けても良い。これにより、例えば、コンテンツの登録日や有効期限等の日時情報を記録する。また,例えば、ログ情報を記録しても良い。更に、例えば、コンテンツに関係するファイル/フォルダの保存アドレスを記録しても良い。
【0040】
<2次元コードの表示形態>
本形態で使用した2次元コード101の全体像を図2に示す。本形態において、セルは表示面に正方格子状に配列され、8×8セル配列とした。ただし、セル数は8×8セルに限定されるものではなく、例えば、12×12セル等であっても良い。
2次元コード101(図2)における、位置決めマーク020、及び、参照マーク030、の配置を図3に表示した。図3に示されるように、位置決めマーク020と参照マーク030は、予め定められたセル位置に、常に同一の色彩で表示される。一方、データマーク010は、生成される2次元コードごとに変動して表示される。すなわち、点線枠で示された各セル(データセル)に、ビット列に応じたカラーのデータマークが表示される。
ただし、セルの配列形状やマークの形状は上記に限定されない。例えば、セル配列は、縦と横で異なるセル数からなる長方形状でもよい。また、例えば、セル配列を六角格子状としてもよい。また、マークの形状を円形としても良い。
【0041】
<データマーク>
単一の色成分における2次元コードの一部を、図4に拡大して表示した。図4に示されるように、各色成分のセルは、マークを有するセル(マークセル001)、又は、マークを有しないセル(空白セル002)の何れかで表現される。カラーのマークは、各色成分のマーク有無を組み合わせることで形成される。
各セル001及び002は、図5に示されるように、マークが表示される領域(マーク領域003)と、マーク表示されない領域(空白領域004)で構成される。各セルのデータマークは、本形態のように周囲に空隙を設けて表示されることで、隣接するセルのデータマークから分離される。
【0042】
データマークによるセルの表示は、セルを評価しながら全体を走査し、所望の表示を選定した。セルの評価は、一部のセルの集合を対象として実施した。
本形態では、図6に示されるように、連続して配置された2セル(横方向、縦方向)から、カラー表示の組み合わせを取得して点数付けを行った。表3に、本形態の点数付け(2セル)を示す。表3の行、列に示される色彩(W、C、M、Y、R、G、B、K)は、図6の2セル(10P、010Q)におけるカラー表示に対応する。
【表3】
本形態では、同時に、2次元コードの上下左右の辺上に位置する各1セルから、カラー表示を取得して点数付けを行った。表4に、本形態で使用した点数付け(1セル)を示す。
【表4】
本形態において、2次元コード全体の検証は、横方向/縦方向の2セル(図6)、及び、辺上の1セルから取得した点数を合計し、当該合計が少ない表示を好適と見なした。
表3の点数付けを利用することにより、セルの表示が黒色となるのを避けた。特に、連続した2セルが両方とも黒色となるのを避けた。同様に、セルの表示が白色となるのを避けた。特に、連続した2セルが両方とも白色となるのを避けた。また、黒色や白色以外でも連続した2セルが同色になるのを避けた。
表4の点数付けを利用することにより、辺上のセルの表示が白色となるのを避けた。同様に、辺上のセルの表示が黒色となるのを避けた。
【0043】
<位置決めマーク>
位置決めマーク020は、2次元コードの位置の基準として、特定のセルに固定されて表示される。位置決めマーク020は複数存在することが好ましく、本形態では、図3に示されるように、四角形からなるコード領域の四隅にそれぞれ配置した。位置決めマーク020の画像パターンは、データマークと同一形状・同一サイズとした。
本形態において、位置決めマーク020は黒色に、周囲の空白領域は白色に、各々表示した。すなわち、位置決めマークは、出力装置が持つ全ての色成分に対して、周囲の空白領域との間にコントラストを設けて表示した。
【0044】
<参照マーク>
参照マーク030は、セル表示を判定する際の参照情報を取得するため、特定のセルに所定の色彩で表示される。本形態において、図3に示されるように、コード領域の四隅付近に、白色030W、シアン030C、マゼンタ030M、イエロー030Y、レッド030R、グリーン030G、ブルー030B、の参照マークを表示した。その際、参照マーク030は、位置決めマークと同様、データマークと同形状・同サイズの画像パターンとした。
本形態において、黒色の参照マークは特に表示しなかった。ただし、本形態の位置決めマーク020は、データマークと同形状・同サイズであり、位置決めマーク020が参照マークを兼ねた。黒色の参照マークを表示する場合には、前記位置決めマークと同形状・同サイズ・同色の画像パターンとすると良い。
【0045】
<お化粧マーク>
お化粧マークは、該当セルにおける他の色成分のマーク有無に応じて表示を決定した。また、周囲のセルの表示の組合せに応じて表示を決定した。表示の決定は、お化粧マーク有/無を想定して各々評価を行い、好適な方を選定した。
本形態において、お化粧マークを有するセルと当該セルに隣接したセルの表示の組合せを、表3に示されるテーブルを用いて点数付けした。当該点数付けは、隣接する上下左右のセルに対して行い、点数を足し合わせて合計が少ない方を好適と見なした。隣接セルは、図6に示されるように、横方向、又は、縦方向に連続して配置され、カラー表示の組み合わせを取得して評価した。
ただし、お化粧マークの有無は、周囲のセルを評価せずに選定することも可能である。例えば、該当セルにおいて、他の色成分が存在する場合を「マーク無し」に、何れの色成分も存在しない場合を「マーク有り」に選定しても良い。
本形態では、図7に示されるように、データセルの一部対してお化粧マークを割り当てた。これにより、データマークと混在して、お化粧マーク同士の隣接を避けて配置した。その際、お化粧マークは、同一セルにおいて単一の色成分だけを割り当てた。また、複数の色成分に対して概ね均等に割り当てた。本形態では、計18のお化粧マークを、シアン成分040C、マゼンタ成分040M、イエロー成分040Y、に各々6ずつ割り当てた。これらの色成分は、面内に分散させて配置した。
【0046】
<特定カラーに対する諧調補正>
セルに表示されるマークに対し、特定のカラーに対して諧調の補正を施した。当該補正は、該当セルのカラー表示に応じて諧調を決定した。すなわち、同一セルにおける他の色成分のマーク有無から決定した。表5に、各々の色彩に対して、本形態で利用した色成分ごとの諧調を示す。
【表5】
本形態では、周囲の空白領域(白色)に対比して目立ち難い色彩(白色、イエロー、等)に補正を施し、諧調を高い方向に一定の割合変化させた。表5に示されるように、セルの表示が白色の場合、当該セルの各色成分の諧調を10%高くして補正した。すなわち、白色における(シアン,マゼンタ,イエロー)成分の諧調(0,0,0)を、(0.1,0.1,0.1)とした。同様に、セルの表示がイエローの場合、イエロー以外の色成分の諧調を10%を高くして、イエローの諧調(0,0,1)を、(0.1,0.1,1)とした。
他セルの表示に対比して目立ち易い色彩(黒色、等)に補正を施し、諧調を低い方向に変化させることも有効である。例えば、セルの表示が黒色の場合、各色成分の諧調を、5%〜20%程度低くして補正しても良い。例えば、黒色の諧調(1,1,1)を各色成分で10%低くして、(0.9,0.9,0.9)とすると良い。
【0047】
<2次元コード発行/復元プロセス>
本形態を実現するプロセスは、2次元コードの発行を処理する2次元コード発行プロセス、及び、2次元コードの復元を処理する2次元コード復元プロセス、で構成される。
2次元コード発行プロセスでは、コンテンツ登録装置M02を操作するユーザAからの要求により、サーバM01のストレージ領域にコンテンツを保存する。その際、サーバM01において、コンテンツの保存アドレスに関連付けられた2次元コード100を発行し、当該関連付けをデータベース(表2)を用いて管理する。ユーザAは、2次元コード100を受信後、目的に応じて利用する。
2次元コード復元プロセスでは、ユーザBは、2次元コード取得装置M03を用いて2次元コード100の画像データを取得し、サーバM01に送信する。サーバM01は、受信した画像データを解析した後、前記データベースを参照して、2次元コード100に関連付けられたコンテンツを特定する。特定されたコンテンツは、ユーザBによって利用される。
【0048】
<2次元コード発行プロセス>
本形態における2次元コード発行プロセス200を図8に示す。本形態の2次元コード発行プロセス200は、データ入力部210、2次元コード生成部220、2次元コード出力部230、により構成される。
【0049】
<データ入力部>
データ入力部211は、ビット列を取得し、2次元コード生成部220に入力する。本形態のデータ入力部210は、データ入力手段211で構成される(図8)。データ入力手段211は、サーバM01において予め用意したプログラムを実行することで実現した。本形態で扱うビット列は、コンピュータが扱う情報の最小単位であるビットの集合(ビット列)である。
本形態のデータ入力手段211は、前記ビット列として、データベースのレコード番号D00を取得する。レコード番号D00は、データベースのレコードを特定する。
本形態において、レコード番号D00は、ビット列を小さい番号から順に生成し、データベースに割り当てて記録する。その後、2次元コード発行の際に、未使用のレコード番号D00を順に選択する。発行される2次元コードは、レコード番号D00と関連付けられることで、データベースを用いて管理される。
【0050】
<2次元コード生成部>
2次元コード生成部220は、データ入力部210から受け渡されたビット列を基に、2次元コードの画像データを作成する。その後、当該画像データを2次元コード出力部230に受け渡す。
本形態の2次元コード生成部220は、図8に示されるように、データ変換手段221、エンコード手段222、画像作成手段223、画像変換手段224、で構成される。これらの手段は、サーバM01において、予め用意したプログラムを実行することで実現した。
以下、データ変換手段221、エンコード手段222、画像作成手段223、画像変換手段224、について記述する。
【0051】
<データ変換手段>
データ変換手段221では、データベースのレコード番号D00を基に、2次元コードに埋め込むコードデータD20を取得する。図9に、レコード番号D00を変換してコードデータD20を取得する一連のフローを示した。以下、当該フローについて記述する。
【0052】
[冗長ビット付与C00]
レコード番号D00(10進)は、2進ビット列に変換された後、処理C00を介して冗長ビットが付加され、データD01が生成される。本形態では、当該冗長ビットを、複数のセル表示の候補に対して割り当てた。セル表示として選定されたビット列は、データベース120に記録される。付加される冗長ビットは一定の桁数からなり、本形態では、当該冗長ビットに、データD01の上位10ビットを割り当てた。
[暗号化C01]
データD01は、暗号化処理C01が施され、データD02が生成される。本形態において、暗号技術としては、標準暗号化方式であるDES(Data Encryption Standard)や、トリプルDES、AES(Advanced Encryption Standard)、等を利用すると良い。
[誤り訂正符合C02]
データD02は、誤り訂正符号化処理C02が施され、データD03が生成される。本形態において、誤り訂正符号としては、BCH(Bose−Chaudhuri−Hocquenghem)符号や、拡張BCH符号、リードソロモン符号、等を利用すると良い。誤り訂正符号は、全体の符号ビット数n、情報ビット数k、ハミング距離の最小値d、に対して予め定められた組合せ(n,k,d)で用意される。
[ビット位置変換C03]
データD03は、ビット位置変換処理C03が施され、データD04が生成される。当該処理では、データD03の各ビット位置を入れ替えた。本形態のビット位置変換は、複数の変換規則を用意し、ヘッダ番号D10と対応付けてサーバM01に記憶した。ビット位置の変換規則としては、所定のランダム化アルゴリズムを利用してランダム化した。
【0053】
[ヘッダ番号D10]
ヘッダ番号D10は、ビット位置変換処理C03で用いた変換規則を特定する。ただし、本形態では、ヘッダ番号D10の一部のビットを変換規則の識別に割り当てた。残りのビットは、バージョン番号の管理に割り当て、将来の拡張性を確保するため固定した。
[暗号化C11]
ヘッダ番号D10は、暗号化処理C11が施され、データD11が生成される。本形態において、暗号化処理C11としては、公知の技術である共通鍵暗号化処理を施した。
[誤り訂正符号C12]
データD11は、誤り訂正符号化処理C12が施され、データD12が生成される。
【0054】
[データ結合C20]
上記プロセスを通して取得されたデータD04、及び、データD12は結合され、コードデータD20が取得される。本形態において、前記2つのビット列の結合において、各ビット位置をランダムに割り当てた。ただし、結合規則は固定され、サーバM01に記憶した。
【0055】
<エンコード手段>
エンコード手段222では、データ変換手段221により得られるコードデータD20を基に、各セルのカラー表示を決定する。本形態におけるセル表示決定の概念図を図10に示す。
図10において、コードデータD20の各ビットを、予め定めた規則により、シアン、マゼンタ、イエローの各色成分に分配した。また、色成分ごとにビットをセルに割り当て、各セルのマーク有り/無しを決定した。その際、各ビットの「1」を「マーク有り」に、「0」を「マーク無し」に対応させた。
その後、各色成分のマーク有無(110C、110M、110Y)を重ね合わせ、各セルのカラー表示(110)を決定した。すなわち、シアンC、マゼンタM、イエローYの色成分を組み合わせることで、シアンC、マゼンタM、イエローYの他、レッドR(=M+Y)、グリーンG(=C+Y)、ブルーB(=C+M)、及び、黒色K(=C+M+Y)を決定した。また、何れの色成分も有しない白色Wを決定した。
【0056】
エンコード手段222では、セルの表示に対して複数の候補を抽出した。また、予め定めた選定規則を用いて、抽出された複数の候補から好適なものを選定した。その際、前記選定には、一般に公開されない規則を利用した。選定された表示を特定するビット列は、データD01の所定ビットに記録されるとともに、データベース120の該当レコードに記録した(図8)。
また、エンコード手段222では、予め定められたデータセルの一部において、お化粧マークの表示を決定した。すなわち、該当セルにおける他の色成分、及び/又は、周囲のセルの表示に応じて、お化粧マークの有無を決定した。
【0057】
2次元コードは、セルの表示によってビット列(コードデータD20)を表現する。その際、コードデータD20のビット数は、(コードデータのビット数)=(全セル数−位置決めセル数−参照セル数)×(色成分の数)−(お化粧マークの数)、として定めた。
本形態では、2次元コードの全体64セル(=8×8セル)のうち、位置決めマーク020に4セル(4箇所)を、参照マーク030に7セル(W、C、M、Y、R、G、B)を各々割り当て、データセルに53セルを割り当てた。
コードデータD20に対しては、3色成分を組み合わせて最大159ビット(=53セル×3色成分)の割り当てが可能となる。ただし、本形態においては、お化粧マークに一部のビット(18ビット)を割り当て、コードデータD20に対して141ビット(=159ビット−18ビット)を割り当てた。
【0058】
<画像形成手段>
画像形成手段223では、エンコード手段222で得られた各セルのカラー表示を基に、2次元配列(Row,Column)の画素で構成された画像データを作成する。本形態においては、50×50画素の画像データを作成した。
画像データ中の各画素は、(シアンC,マゼンタM,イエローY)の色成分の値0〜1を有し、当該色成分の組み合わせによりカラーを表現した。例えば、各画素において、シアンは(1,0,0)、レッドは(0,1,1)、黒色は(1,1,1)、として表現した。
本形態の単一の色成分(シアンC)に関する画像データの例として、図11にマークセル001Cを表示した。本形態のマークセル001Cは、図11に示されるように、5×5画素で構成され、中央の3×3画素をマーク領域003C、マーク領域の周囲1画素領域を空白領域004C、とした。各画素006には、マーク領域に「1」を、空白領域に「0」を、各々割り当てた。
【0059】
画像形成手段223において、特定の色彩を有するセルに対して、マーク領域003の各色成分の諧調に補正を施した。本形態では、白色、及び、イエローのセルを対象として補正した。その際、対象のセルは、各色成分の有無の組合せを検証することで検出した。本形態では、検出したセルに対して、表5に示された所定の規則を用いて各画素の諧調を設定した。
本形態においては、白色のセル(0,0,0)のマーク領域は、各色成分の値を(0.1,0.1,0.1)とした。また、イエローのセル(0,0,1)は、各色成分の値を(0.1,0.1,1)とした。
図12に、白色、及び、イエローのセルにおいて、マークを含まない単一の色成分(シアンC)の例を表示した。図12に示されるように、白色、及び、イエローのセル(空白セル002C)においては、マーク領域の諧調に補正を施し、諧調0.1を割り当てた。
【0060】
<画像変換手段>
画像変換手段224では、画像形成手段223で得られた画像データを、一般に普及した画像形式に変換する。本形態では、GIF形式に変換した。ただし、画像形式として、PPM(Portable Pix Map)形式や、ビットマップ形式、Jpeg形式、GIF形式、等でも良い。
上記画像形式では、一般に、色成分ごとに多段階の階調値を有し、(レッドR,グリーンG,ブルーB)の色成分でカラーを表現する。本形態では、RGB24ビットカラー(RGB各色256階調表現)の画像形式に変換した。
【0061】
各画素の値は、例えば、シアン(1,0,0)は(0,255,255)に、レッド(0,1,1)は(0,0,255)に、黒色(1,1,1)は(0,0,0)に、各々変換した。また、色彩調整を行った白色(0.1,0.1,0.1)は(229,229,229)に、イエロー(0.1,0.1,1)は(229,229,0)に変換した。
単一の色成分(シアンC)に関する図11の例では、各画素におけるCMY成分の値は、RGB成分の諧調に変換される。すなわち、マーク領域はシアン成分「1」からレッド成分「0」に、空白領域はシアン成分「0」からレッド成分「255」に、各々変換される。また、空白セルの色彩補正(シアン成分)に関する図12の例において、マーク領域はシアン成分「0.1」からレッド成分「229」に変換される。
【0062】
<2次元コード出力部>
2次元コード出力部230は、2次元コード生成部220で作成された2次元コードの画像データを、コンテンツ登録装置M02に送信して出力する。
本形態の2次元コード出力部230は、図8に示されるように、2次元コード出力手段231で構成される。2次元コード出力手段231は、サーバM01において、予め用意したプログラムを実行することで実現した。また、2次元コード出力手段231の通信には、既存の通信技術を利用した。
【0063】
本形態において、ユーザAは、コンテンツ登録装置M02で受信した2次元コードを、特に限定されない形態により表示させる。
本形態において、2次元コードは、コンピュータに接続された画像表示装置に表示される場合を想定した。また、画像形成装置により、シート状記録媒体や固形物表面に出力して表示される場合を想定した。
【0064】
画像表示装置は、通常、発光体の発光により画素を表現して画像を形成する。本形態の画像表示装置として、液晶ディスプレイ(例えば、160dpi、RGB32ビットカラー)が好適である。また、CRT(Chathode Ray Tube)方式のディスプレイや、プラズマディスプレイ、等でも良い。
例えば、WEBページに2次元コードを表示してネット上に公開し、アクセスしたPCのディスプレイに表示される。また、例えば、テレビ放映の映像に2次元コードの表示領域を設けることで、テレビのディスプレイに表示される。
【0065】
画像形成装置は、通常、記録媒体にインクやトナーを出力して画素を表現し、画像を形成する。本形態の画像形成装置として、インクジェット方式による出力機(例えば、600dpi)が好適である。また、電子写真方式による出力機や、印刷機、等でも良い。
例えば、PCに備えられたインクジェットプリンタを用いて、2次元コードは用紙に出力される。また、例えば、印刷機を用いて、チラシや名刺、包装紙、等の印刷物に出力される。更に、例えば、製造された固形製品の表面に出力されても良い。
【0066】
<2次元コード発行フロー>
本形態の2次元コード発行プロセスにおいて、サーバM01、及び、コンテンツ登録装置M02、における動作と、当該装置間でなされる通信の例を、以下、図13を用いて説明する。
【0067】
S101:サーバM01は、コンテンツ登録装置M02からのアクセスを待ち受ける。
S102:コンテンツ登録装置M02は、ユーザAの指示によりサーバM01のURL(Webページ)にアクセスする。
S103:サーバM01は、コンテンツ登録装置M02からのアクセスに対して、入力画面を返す。
S104:ユーザAは入力画面において、コンテンツの指定と当該コンテンツに対する動作種別の選択を行う。コンテンツ登録装置M02は、コンテンツ及び動作種別をサーバM01に送信する。
S105:サーバM01は、受信したコンテンツをストレージ領域に保存する。また、データベースのレコードを割り当て、コンテンツの保存アドレス(例えば「file://storage/00…01」)、及び、選択された動作種別を、所定のフィールドに格納する。
S106:サーバM01は、前記レコードのレコード番号D00をコードデータD20に変換し、当該コードデータを表現した2次元コードの画像データを生成する。また、当該画像データをコンテンツ登録装置M02に送信する。サーバM01による当該動作は、前記2次元コード発行プロセスにより実現される。
S107:コンテンツ登録装置M02は2次元コードの画像データを受信した後、ユーザAは、当該2次元コードを表示させて利用する。
【0068】
サーバM01、及び、コンテンツ登録装置M02の通信プロトコルは特に限定されない。本形態はHTTPで実現しており、S101にはhttpデーモン(httpサービス)を、S102とS103にはGET命令とその応答を、それぞれ用いた。S104とS106にはPOST命令とその応答を用いた。また、S103で返される入力画面は、HTML(及びJAVA(登録商標)スクリプト等)により記述した。S105とS106は、サーバ側のCGIプログラムやサーブレットにより実現した。
【0069】
<2次元コード復元プロセス>
本形態における2次元コードの復元プロセス300を図14に示す。本形態の2次元コード復元プロセス300は、2次元コード入力部310、2次元コード解読部320、データ出力部330、により構成される。
【0070】
<2次元コード入力部>
2次元コード入力部310は、2次元コードの画像データを2次元コード取得装置M03から受信して取得し、2次元コード解読部320に受け渡す。
本形態の2次元コード入力部310は、図14に示されるように、2次元コード入力手段311で構成される。2次元コード入力手段311は、サーバM01において、予め用意したプログラムを実行することで実現した。
本形態の画像データは、2次元コード取得装置M03を用いてユーザBにより取得された後、ネットワークを介してサーバM01に送信される。サーバM01は受信した画像データを、サーバM01内のメモリに記憶する。サーバM01と2次元コード取得装置M03との通信には、既存の通信技術を利用した。
【0071】
<2次元コード取得装置>
本形態の2次元コード取得装置M03は、CCD(Charged Coupled Device)を用いてデジタル画像を取得する。2次元コード取得装置M03としては、カメラ機能(例えば、240×320画素、RGB24ビットカラー)を備えた携帯端末が好適である。また、2次元コード取得装置M03としては、フラットベットスキャナ(例えば、600dpi、RGB24ビットカラー)であっても良い。
携帯端末のカメラで撮像された場合には、2次元コードの画像データは、当該携帯端末の通信手段を用いて送信されると良い。また、フラッドベットスキャナでスキャンされた場合には、当該フラットベットスキャナに接続されたPCの通信手段を用いて送信されると良い。
【0072】
<取得される画像データ>
本形態で扱う画像データは、2次元コードの発行プロセス200と同様、各画素が複数の色成分で構成され、多段階の階調を有する。これにより、例えば、(レッドR,グリーンG,ブルーB)の加法混色でカラーを表現する。本形態では、Jpeg形式や、GIF形式、PPM形式、ビットマップ形式、等の限定されない画像形式を対象とした。
単一の色成分(レッドR)に関する画像データ(256階調)の例を、図15に表示した。図15において、マークセル001Rを表示した。
画像データ中のマークセル001Rは、図15に示されるように、入出力時のノイズの影響により2次元コード生成時の画像(図11)からの変動を有する。これにより、各画素007において、マーク領域:28〜128程度、空白領域:102〜204程度、の諧調からなる。
【0073】
<2次元コード解読部>
2次元コード解読部320は、2次元コード入力部310で取得した画像データにおいて2次元コードを解読する。その後、解読して得られたビット列をデータ出力部330に受け渡す。
本形態の2次元コード解読部320は、図14に示されるように、画像変換手段321、位置決め手段322、セル判定手段323、デコード手段324、データ変換・検証手段325、で構成される。各手段は、サーバM01において、予め用意したプログラムを実行して実現した。
以下、画像変換手段321、位置決め手段322、セル判定手段323、デコード手段324、データ変換・検証手段325、について記述する。
【0074】
<画像変換手段>
画像変換手段321は、2次元コード入力部310から入力された画像データを、位置決め手段322とセル判定手段323の解析に適した画像に変換する。当該変換により、位置決め手段322で利用する位置決め用画像データ、及び、セル判定手段323で利用するセル判定用画像データ、を取得する。得られた画像データは、サーバM01のメモリ領域に記憶した。
【0075】
セル判定用画像データは、各画素において、CMY成分の0〜1の値で表した。例えば、変換前の画像データがRGB24ビットカラー表現の場合、各色成分(レッドR,グリーンG,ブルーB)の256階調を、(シアンC,マゼンタM,イエローY)の0〜1の値に変換した。
当該変換は、数1に表される数式を用いて実施した。数1は、画素(Row,Column)における各色成分の値の変換を意味する。
【数1】
単一の色成分(レッドR)に関する図15の例では、各画素におけるRGB成分の諧調は、CMY成分の値に変換され、マーク領域:0.5〜0.9程度、空白領域:0.2〜0.6程度、となる。
【0076】
位置決め用画像データは、前記セル判定用画像データに更に処理を施した。これにより、各画素において、複数の色成分から最大の値を選択し、1つの値を保持するようにした。例えば、各画素(シアンC,マゼンタM,イエローY)から、変換後は唯一つの最大値Dに変換した。
当該変換は、数2に表される数式を用いて実施した。数2において、Max(x,y,z)は、3つの値(x,y,z)から最大の値を選択する関数である。
【数2】
【0077】
<位置決め手段>
位置決め手段322は、画像変換手段321から入力された位置決め用画像データにおいて位置決めマークを検出し、2次元コードの位置を特定する。
本形態の位置決め手段322は、図16に示されるように、コード領域抽出P101、画像情報取得P102、コード領域走査P103、位置決めマーク選定P104、の各ステップで構成される。これらのステップを実現する手段として、サーバM01に実行プログラムを用意した。
以下、位置決め手段322の各ステップについて記述する。
【0078】
<コード領域抽出P101>
コード領域抽出P101のステップでは、画像データから2次元コード全体を含む領域を抽出する。その際、画像変換手段321で得られた位置決め用画像データに対して処理を行った。本形態のコード領域抽出P101は、以下の方法により実施した。
【0079】
コード領域は、格子状に配置したセル上のマークと空白領域とでコントラストを有する。一方、コード領域の周囲に存在する空白領域では、前記コントラストが低いと想定される。これにより、マーク領域/空白領域のコントラストが高いコード領域と、低い空白領域とで構成される領域を抽出する。
本形態では、コード領域の判定に数3を用いた。
【数3】
数3において、Vc、及び、Vsは、各々コード領域、周囲の空白領域におけるマーク領域/空白領域のコントラストの大きさを意味する。数3により、指標Jcが大きい領域を所望のコード領域と見なした。
数3におけるP1は、位置決めパラメータであり、プロセス制御手段326により管理される。
Vc、及び、Vsは、図17(拡大図)に示されるように、セル領域として想定される領域から複数の諧調を取得して算出した。これにより、マーク領域031、及び、空白領域032(マーク間の中間)の画素から諧調を取得した。DmaxとDminは、セル領域030から取得した諧調の最大値と最小値を表す。また、関数Fmc()は、コード領域のセル(計64セル)に対する平均を意味する。同様に、関数Fms()は、周囲1セル幅で想定した空白領域のセル(計36セル)に対する平均を意味する。
【0080】
コード領域は、数3の指標Jcを算出しながら画像データを走査し、当該Jcが最も大きい領域を抽出した。その際、図17のセルの想定サイズを縮小/拡大することで、画像データ中の2次元コードの表示サイズに対応した。抽出されたコード領域は、4隅(左上、右上、左下、右下)の画素位置を指定して他ステップの処理に用いた。
【0081】
<画像情報取得P102>
画像情報取得P102のステップでは、コード領域抽出P101のステップで抽出された領域から画像情報を取得する。その際、画像情報取得P102の処理は、画像変換手段321で得られた位置決め用画像データに対して行った。本形態の画像情報取得P102は、以下の方法により実施した。
【0082】
本形態の画像情報は、前記コード領域を対象として諧調分布を求め、この分布を基に算出した。本形態における諧調分布の例を図18に示す。図18において、横軸は諧調を、縦軸は各諧調の頻度を示す。本形態では、諧調の刻みは0.02とし、例えば、諧調0.5の頻度は0.50〜0.52の範囲に含まれる。
図18に示されるように、通常、諧調の分布には、マーク領域と空白領域に対応する2つのピークが存在する。本形態の画像情報は、各ピークの諧調を求め、マーク領域の指標Mm、及び、空白領域の指標Mv、を定めた。
【0083】
<コード領域走査P103>
コード領域走査P103のステップでは、コード領域抽出P101のステップで抽出された領域を走査し、位置決めマークの画像パターンを検出する。その際、コード領域走査P103の処理は、画像変換手段321で得られた位置決め用画像データに対して行った。本形態のコード領域走査P103は、以下の方法により実施した。
【0084】
コード領域走査P103は、図19に示されるように、照合パターン008を用いて照合しながら画像データを走査する。その際、照合された画像の判定行い、適合する場合に代表画素の位置を記憶する。本形態では、代表画素として、想定されるマーク領域の左上の画素を選んだ。これにより、画像データ中の画像パターンを検出していく。これらの一連のプロセスは、図20のフローチャートに示した手順により実施した。
照合パターン008は、マーク領域とその周囲の空白領域で構成される。本形態の照合パターン008としては、3×3画素のマーク領域の周囲に1画素の空白領域を想定した全体で5×5画素のパターンを用いた(図19)。
【0085】
照合された画像の判定は、マーク領域と空白領域の各領域から諧調の平均(Dm、及び、Dv)を算出し、これらを判定式(数4)に代入して行った。すなわち、判定式(数4)を満たす場合に、所望の画像パターンに適合すると見なした(図21)。
【数4】
平均Dの算出には、公知の計算式であるD=Σdi/n、を用いた。ただし、nは画素数、iは画素番号、diは画素iの諧調、Σは各領域における画素の和、を意味する。
Mm及びMvは、画像データに応じた変数で、画像情報取得P102のステップで得られた画像情報(Mm、及び、Mv)を利用した。
Sm及びSvは、許容レベルを表す変数で、本形態では、MmとMvを用いて「Sm=Sv=Mm−Mv」とした。
巣4におけるP2は、位置決めパラメータであり、プロセス制御手段326により管理される。
【0086】
<位置決めマーク選定P104>
位置決めマーク選定P104のステップでは、コード領域走査P103のステップで検出されたマークの中から位置決めマークを選出する。これにより、特定された位置を位置データとして取得する。本形態において、位置決めマーク選定P104は、以下の方法により実施した。
【0087】
本形態の位置決めマーク020は、図3に示されるように、四角形からなるコード領域の4隅に配置する。位置決めマーク選定P104は、コード領域走査P103のステップで取得された位置決めマークを含む検出位置の集合から4隅の配置を選出する。
4隅の選出において、図22に示されるように、検出位置を通る傾き「−1」(Column軸から135度)、及び、傾き「1」(Column軸から45度)の直線(L1〜L4)を想定し、検出位置の集合からRow軸切片が最小/最大の配置を選定した。
図22において、「(Row座標)+(Column座標)」が最小となる直線L1から左上位置021を、「(Row座標)−(Column座標)」が最小となる直線L2から右上位置022を、「(Row座標)−(Column座標)」が最大となる直線L3から左下位置023を、「(Row座標)+(Column座標)」が最大となる直線L4から右下位置024を、各々選出した。
【0088】
本形態の位置データは、選出された4隅の位置決めマークの画素位置からなる。すなわち、図22において、左上位置021(Rtl,Ctl)、右上位置022(Rtr,Ctr)、左下位置023(Rbl,Cbl)、右下位置024(Rbr,Cbr)、を位置データとした。
【0089】
<セル判定手段>
セル判定手段323は、画像変換手段321から入力されたセル判定用画像データにおいて、位置決め手段322で取得した位置データを利用して、各セルの表示を判定して特定する。
本形態のセル判定手段323は、図23に示されるように、セル領域算出P201、セル領域走査P202、参照情報取得・検証P203、セル表示判定P204、の各ステップで構成される。これらのステップを実現する手段として、サーバM01に実行プログラムを用意した。
【0090】
<セル領域算出P201>
セル領域算出P201のステップでは、位置決め手段322で取得した位置データを用いて、各セル領域を算出する。本形態のセル領域算出P201は、以下の方法により実施した。
【0091】
格子状に配列したセルに対し、まず、4隅の位置決めマーク間を結ぶ線分をセル数で等分し、4隅を結ぶ辺上に配置されたセル領域を算出した。次に、対辺のセル同士を結ぶ線分を、Row方向、及び、Column方向に算出して、格子内部に配置されたセル領域を算出した。その際、セル領域の指定は、セル領域内の左上位置を代表画素とした。また、四捨五入して整数とした。
【0092】
<セル領域走査P202>
セル領域走査P202のステップでは、画像データにおいて各セル領域を走査することで、色成分ごとにセルの諧調を取得する。その際、セル領域として、セル領域算出P201のステップで取得した領域を用いた。本形態のセル領域走査P202は、以下の方法により実施した。
【0093】
本形態のセル領域走査P202は、位置決め手段321におけるコード領域走査P103ステップと同様、照合パターン008を用いて照合しながら走査した(図19)。これにより、各セルのマーク位置を検出した。また、検出されたマーク位置において、セルのマーク有無を判定するための指標(セル指標)を取得した。
本形態では、前記セル指標を色成分ごとに取得した。すなわち、(シアンC,マゼンタM,イエローY)のセル指標を取得した。その際、マーク位置の検出には数5を用い、セル指標(Jmc,Jmm,Jmy)を取得した。得られたセル指標(Jmc,Jmm,Jmy)は、サーバM01のメモリ領域に記憶した。
【数5】
Dm、及び、Dvは、各々マーク領域、空白領域における諧調の平均である。これらを用いて、色成分ごとに(Dm−P3×Dv)が最大の位置をマーク位置とした。
数5におけるP3は、セル判定パラメータであり、プロセス制御手段326により管理される。
【0094】
走査範囲としては、セル領域算出P201ステップから想定されるマーク位置を中心として、Row方向、及び、Column方向に、隣接マークまでの距離の1/2の範囲を対象とした。また、セル領域の走査は、色成分ごとに実施した。
セル領域走査P202に関する一連のプロセスを、図24のフローチャートに示した。図24に示されるように、各色成分のセル指標を全てのデータセルから取得した。
【0095】
<参照情報取得・検証P203>
参照情報取得・検証P203のステップでは、予め表示が固定されたセルから参照情報を取得する。その際、セル領域走査P202のステップで取得したセル指標を利用した。また、取得した参照情報を検証し、想定される2次元コードの妥当性を評価した。
本形態の参照情報の取得は、セル領域走査P202で位置を決定するステップと、当該位置においてセル諧調を取得し、参照情報として取得するステップ(参照情報取得・検証P203)と、を別のステップに分けて実施した。
本形態の参照情報取得・検証P203は、以下の方法により実施した。
【0096】
本形態において、参照情報を取得する際には、参照マーク030、及び、位置決めマーク020、のセル指標を利用した(図3)。これにより、参照マーク(030W、030C、030M、030Y、030R、030G、030B)から、白色Rw、シアンRc、マゼンタRm、イエローRy、レッドRr、グリーンRg、ブルーRb、の参照情報を取得した。また、位置決めマーク(020)からは、黒色Rkの参照情報を取得した。
取得する参照情報は、複数の色成分のセル指標で構成される。本形態においては、例えば、ある色成分の参照マークRxから(Rxc,Rxm,Rxy)として、CMY成分の値を取得した。取得した参照情報は、サーバM01のメモリ領域に記憶した。
図25において、各CMY成分の値を軸として構成されるCMY色空間に、参照情報(Rw,Rc,Rm,Ry,Rr,Rg,Rb,Rk)をプロットした。入出力時の影響を受けた参照情報は、図25に示されるように、各頂点を結ぶ立体図形が正立方体とはならずに歪みを有する。
【0097】
本形態において、参照情報の検証は、画像データが保持する各色成分において、参照情報(Rw,Rc,Rm,Ry,Rr,Rg,Rb,Rk)の諧調が適正であるか評価した。
表6に、各色成分に対して、該当する色成分の有/無の組合せを、それ以外の色成分の有/無が共通となるように分類して表示した。
【表6】
表7に、表6における各色成分の有/無の組合せに対して、当該色成分を有する参照情報と、有しない参照情報と間の諧調差を示した。参照情報が適正である場合には、表7に示された各々の指標(諧調差)は正の値をとる。
【表7】
本形態では、想定される2次元コードとして、表7の指標が全て正である場合を「適正」、1つでも負が存在する場合を「不適」、と判断した。また、評価により「不適」と判断された場合は、位置決めエラーE2−1とした。
セル判定手段323の参照情報取得・検証P203のステップで検出されたエラーは、プロセス制御手段341に出力した。
【0098】
<セル表示判定P204>
セル表示判定P204のステップは、各セルを判定して表示を特定する。その際、セル領域走査P202のステップ取得したセル指標、及び、参照情報取得・検証P203のステップで取得した参照情報を利用した。
本形態のセル表示の判定は、セル領域走査P202で位置を決定するステップと、当該位置においてセル諧調を取得し、表示を判定するステップ(セル表示判定P204)と、を別のステップに分けて実施した。
本形態のセル表示判定P204は、以下の方法により実施した。
【0099】
セルの判定は、各セルにおいてセル指標を判定式(数6)に代入して行った。これにより、色成分ごとにマークの有無を判定した。すなわち、判定式:数6のJdにおいて、Jd≧0の場合には、該当する色成分のマークが存在すると見なした。また、Jd<0の場合はマークが存在しないと見なした。
【数6】
数6において、変数(x,y,z)に対して、各色成分のセル指標(Jmc,Jmm,Jmy)を代入する。ただし、変数xには判定する色成分の値を、変数yとzには他の色成分の値を、各々対応させて代入した。表8に、判定の対象となる色成分ごとに、変数(x,y,z)と対応する色成分との関係を示す。
【表8】
【0100】
数6のb,c,dは、判定の対象となる色成分ごとに、参照情報(Rw,Rc,Rm,Ry,Rr,Rg,Rb,Rk)を用いて算出した。
(xi,yi,zi)は、表6に示された組合せにより、判定の対象となる色成分の有/無で分類された2つの参照情報を基に算出した。Σは、表6に示された4つ全ての組合せに対して和を計算した。
数7に、(xi,yi,zi)の算出に利用した数式を示す。
【数7】
数7において、(x1i,y1i,z1i)は判定の対象となる色成分を有する参照情報R1を、(x0i,y0i,z0i)は前記色成分を有しない参照情報R0を、各々代入した。ただし、(x1i,y1i,z1i)、及び、(x0i,y0i,z0i)は、変数(x,y,z)と同様、表8の関係を用いて取得した。
数7におけるP4は、セル判定パラメータであり、プロセス制御手段326により管理される。
【0101】
以下、本形態の判定式である数6について記述する。図26は、参照情報を頂点とする立体図形(図25)と、数6の判定面(Jd=0)との関係を、CMY色空間に表示した例である。図26の判定面は、C成分のマーク有無を判定するものであり、セル指標がC成分の軸方向正側(Jd≧0)にプロットされる場合をマーク有り、負側(Jd<0)の場合をマーク無しと判定する。
図26の判定面は、表8に示される組合せにより、判定する色成分の有無で参照情報を2つの集合に分類する。これは同時に、図26の判定面が、他の色成分の組合せが同じ4組(Rw,Rc)、(Ry,Rg)、(Rm,Rb)、(Rr,Rk)の各2点間を結ぶ線分と交わる(I1、I2、I3、I4)ことを意味する。
判定面は、図26に示されるような平面の場合に限定されない。例えば、2次曲面でも良く、その場合の判定式は2次式となる。
【0102】
セル表示判定P204に関する一連のプロセスを、図27のフローチャートに示した。図27に示されるように、セル表示の判定は、色成分ごとに全てのデータセルに対して行った。
【0103】
<デコード手段>
デコード手段324は、セル判定手段323で特定されたセルの表示を、予め定められた規則に基づいてビット列に復元する。ビット列への復元は、エンコード手段221と逆の処理を施すことで実現した。本形態におけるビット列復元の概念図を図28に示す。
図28において、色成分ごとに特定されたセル表示(110C、110M、110Y)に対し、「マーク有り」を「1」に、「マーク無し」を「0」に、各々対応させた。その際、エンコード手段221で用いた割り当て規則を利用し、逆のプロセスによりコードデータD20を取得した。
【0104】
<データ変換・検証手段>
データ変換・検証手段325は、デコード手段324で取得したコードデータD20から、データベースのレコード番号D00を取得する。データ変換・検証手段325は、データ変換手段222と逆の処理を施すことで実現した(図9)。ただし、コードデータD20は、データエラーを含む可能性がある。
【0105】
データD03は、コードデータD20に対してデータ分離(C20)、ビット位置復号(C03)して取得され、データエラーを含む可能性がある。当該データD03に対し、誤り訂正符号の復号化処理(C02)が施され、データD02が取得される。これにより、データD03のエラーは誤り訂正が施される。また、エラーが訂正不能の場合、誤り検出が施される。エラーが訂正不能で誤り検出がなされた場合、データエラーとして検出する。本形態においては、当該データエラーは、セル判定エラーE3−1とした。
データD02は、暗号の復号化処理(C01)が施され、データD01が取得される。取得されたデータD01は、2次元コード発行時に付加した冗長ビットを利用してデータエラーを検証する。本形態においては、データベース120に記録されたビット列と、ビット列D01の上位10ビットとの一致を検証した。冗長ビットが一致しない場合は、データエラーとして誤り検出する。
データ変換・検証手段325において検出されたエラーは、プロセス制御手段341に出力した。
【0106】
<データ出力部>
データ出力部330は、2次元コード解読部320で得られたビット列を出力する。本形態において、データベース120のレコード番号D00を、データベース120の管理プログラムに出力した。また、出力したレコード番号D00をデータベース120と照合し、不整合がある場合にエラーとして検出した。
本形態のデータ出力部330は、図14に示されるように、データ出力手段331で構成される。データ出力手段331は、サーバM01において、予め用意したプログラムを実行することで実現した。データ出力手段331における2次元コードの解読とデータベースの管理は、異なるコンピュータで処理しても良く、この場合、コンピュータ間で情報を送受信する。その際の通信には、既存の通信技術を利用する。
【0107】
データベース120の管理プログラムは、データベースを検索してレコード番号D00に一致するレコードを抽出する。これにより、当該レコードに記述されたアドレスを参照し、保存されたコンテンツを特定する。その後、コンテンツは、2次元コード取得装置M03に送信する等、前記レコードに記述された動作種別(表1)に応じた動作が施される。
動作の第1例:携帯端末に送信(表1:A000)の例では、コンテンツをメール機能を用いて返信した。コンテンツは、2次元コード取得装置M03である携帯端末が受信した後、ディスプレイに表示される等してユーザに利用される。また、一般のデジタル情報として、ユーザによる加工や、他の装置への転送、等が施されても良い。
【0108】
データベースの検索により抽出されたレコードにおいて、不整合が存在する場合にはエラーとして検出した。本形態の不整合は、表2に示されるようにデータベースに2次元コードのステータス(1=「復元可」、0=「不可」)を記録するフィールドを設け、レコードごとに管理した。
本形態のデータベースは、総レコード数のうちステータス=「1」(復元可)のレコード数を制限した。これにより、少なくとも10ビット以上のレコードをステータス=「0」(復元不可)とした。この場合、エラー検出が可能となり、レコード管理のセキュリティが確保される。
データ出力手段331で検出されたエラーは、プロセス制御手段341に出力した。
【0109】
<プロセス制御部>
プロセス制御部340は、復元プロセスで検出されたエラーの処理を制御する。その際、解析パラメータを変更して復元プロセスを繰り返すことで、エラー回避を試みる。エラー回避不能の場合は、2次元コードを送信した2次元コード取得装置M03にエラーを出力する。
本形態のプロセス制御部340は、図14に示されるように、プロセス制御手段341で構成される。プロセス制御手段341は、サーバM01において、予め用意したプログラムを実行することで実現した。
【0110】
本形態におけるエラーは、2次元コード入力手段311、セル判定手段323、データ変換・検証手段325、データ出力手段331、で検出される。表9は、前記エラーにおける、エラー種別とその判定条件、エラー事由、エラーに対する処理、を表示する。本形態のプロセス制御手段341は、表9に示されるように、エラー種別ごとに定められた処理を行う。
【表9】
本形態の解析パラメータである、位置決めパラメータ、及び、セル判定パラメータには複数の水準を用意した(表10)。
【表10】
【0111】
エラー種別として位置決めエラーE2−1が検出された場合、位置決めパラメータを変更して、再度、位置決め手段321による位置決めを実施する。位置決めパラメータとしては、位置決め手段321において、コード領域抽出P101ステップの数3におけるP1、及び、コード領域走査P103ステップの数4におけるP2、を用いた。
画像データ中の2次元コードの回転角度を検証するため、回転角度P0を、位置決めパラメータとして用いた。すなわち、水準1の場合は回転させず、水準2の場合は時計方向に90°、水準3の場合は180°、水準4の場合は270°、時計回りに回転させて、それぞれの参照情報を評価した。本形態のように、位置決めマークが回転対称に配置された場合であっても、前記参照セルの表示を回転対称とならない(回転非対称)ように配置し、かつ、2次元コード復元時に参照セルを検証することにより、画像データ中の2次元コードの回転方向を特定することを可能とする。
【0112】
図29に、セル判定手段323において位置決めエラーE2−1が検出された場合のフローチャートを示す。位置決めの繰返しは、位置決めエラーE2−1が検出されない、若しくは、予め定めたフローが終了するまで繰り返される。これにより、位置決めエラーE2−1が検出されない場合は、デコード手段324以降のプロセスに入る。一方、フローが終了した場合は、復元プロセスを停止してエラーを出力する。
表11に、位置決めパラメータ(P1及びP2)の設定順序を表示した。ただし、位置決めパラメータP0の水準1〜4の繰返しは、表11の設定(繰返し順1〜5)の各々に対して適用した。本形態においては、表11に示された一連の設定(繰返し順1〜5)が終了した場合は、位置決めの繰返しを終了とした。
【表11】
【0113】
エラー種別としてセル判定エラーE3−1が検出された場合、セル判定パラメータを変更して、再度、セル判定手段323によるセル判定を実施する。セル判定パラメータとしては、セル判定手段323において、セル領域走査P202ステップの数5におけるP3、及び、セル表示判定P204ステップの数7におけるP4、を用いた。
【0114】
図30に、データ変換・検証手段325においてセル判定エラーE3−1が検出された場合のフローチャートを示す。セル判定の繰返しは、セル判定エラーE3−1が検出されない、若しくは、予め定めたフローが終了するまで繰り返される。これにより、セル判定エラーE3−1が検出されない場合は、データ出力手段331以降のプロセスに入る。一方、フローが終了した場合は、復元プロセスを停止してエラーを出力する。
表12に、セル判定パラメータ(P3及びP4)の設定順序を表示した。本形態においては、表12に示された一連の設定(繰返し順1〜5)が終了した場合は、セル判定の繰返しを終了とした。
【表12】
【0115】
本形態のプロセス制御手段341は、エラー回避不能の場合にはエラーを出力する。その際、表9の「エラー種別」、及び/又は、「エラー事由」を、2次元コード取得装置M03に対して送信した。更に、エラー種別がE3−1(セル判定エラー)の場合は、エラーを解析してその結果を送信した。
エラー要因の解析には、表13の判定条件を用いた。判定条件を満たす場合に、表9の「エラー要因」、及び/又は、「撮像アドバイス」、を取得した。
【表13】
エラー要因の解析(表13の判定条件)には、位置決めマークの位置(4箇所)、及び、参照情報、等を用いた。これらの値は、予め復元プロセスで取得してメモリ領域に記憶した。ただし、黒色マークの諧調(黒色の参照情報)は、本形態の場合は位置決めマークから取得した。また、コード領域の周囲に存在する空白領域から諧調を取得し、「空白領域の諧調」とした。
表13におけるエラー判定は、「順位」に示された番号順に行った。条件が一致した時点でエラー解析のプロセスを終了し、エラー要因を特定した。
【0116】
本形態において、プロセス制御手段341で取得したエラー情報(エラー種別、エラー事由、エラー要因、撮像アドバイス)は、2次元コード取得装置M03である携帯端末に送信した。送信されたエラー情報は、携帯端末に付属するディスプレイにテキスト表示される。これにより、携帯端末を操作するユーザは、エラー情報を参照し、エラーに対する対処を決定する。
エラー解析により「エラー要因」、及び/又は、「撮像アドバイス」が取得された場合、ユーザはエラー情報を参照して再び2次元コードを撮像する。この場合、ユーザによりエラー要因は修正され、2次元コードが復元可能となる。
本形態の「撮像アドバイス」としては、撮像時におけるカメラと2次元コードとの間の距離(ズーム機能を含む)、撮像角度、撮像時の明るさ(フラッシュや表示装置の発光レベルを含む)、撮像時の焦点(マクロモードを含む)、等に関することを記述した。
【0117】
<2次元コード復元フロー>
本形態の2次元コード復元プロセスにおいて、サーバM01、及び、2次元コード取得装置M03である携帯端末における動作と、当該装置間でなされる通信の例を、以下、図31を用いて説明する。ただし、図31の例では、動作種別としてコンテンツを携帯端末M03に送信する場合を想定した。
【0118】
S201:サーバM01は携帯端末M03からのアクセスを待ち受ける。
S202:ユーザBは撮像機能を有する携帯端末M03で、2次元コードを撮像する。
S203:携帯端末M03は、2次元コードの画像データをサーバM01に送信する。
S204:サーバM01は、受信した画像データの2次元コードを解読し、データベース120のレコード番号を取得する。解読不能の場合は、ステップS206において、携帯端末M03にエラー情報を送信する。
S205:前記レコード番号のレコードにアクセスして、動作種別とコンテンツの保存アドレスを取得する。
S206:保存アドレスのコンテンツを携帯端末M03に送信する。解読エラーの場合は、コンテンツではなくエラー情報を送信する。
S207:エラー情報を基に、携帯端末M03にエラー内容を表示する。その際、特定された場合は、復元プロセスにおけるエラー要因、及び/又は、撮像アドバイスを表示する。
S208:コンテンツが特定された場合(エラーなし)は、携帯端末M03はコンテンツを取得し、ユーザBはこれを目的に応じて活用する。
S209:解読不能となりコンテンツが特定されない場合(エラーあり)は、ユーザBは、携帯端末M03に表示されたエラー内容を確認する。その際、特定された場合には、エラー要因、及び/又は、撮像アドバイスを参照して2次元コードを撮像し(S202)、再び、上記のフローを繰り返す。
【0119】
本形態において、サーバM01と携帯端末M03との間のデータ送受信は、携帯端末M03が備えるメール機能を利用し、電子メールにて行った。
サーバM01は、電子メールを受信することで、2次元コードの画像データ、及び、携帯端末M03のメールアドレスを取得する。例えば、2次元コードの解読により特定したコンテンツを携帯端末M03に出力する場合には、取得したメールアドレスに宛ててメール送信した。
携帯端末M03のメール機能は、携帯端末M03に一般に備えられたメール送受信手段を用いた。一般に、メール本文の他、ファイルを添付する機能を有し、2次元コードの画像データや、電子データであるコンテンツを送受信した。受信したメールは、携帯端末M03に備えられたメーラーを用いて、タイトル、日付、等が一覧表示される。
コンテンツがテキストデータの例では、メール本文に前記テキストデータを挿入した。例えば、WEBアドレスをユーザBに送信する場合、メール本文に当該WEBアドレスを記載した。ユーザBは、これを指定して携帯端末からアクセス可能となる。
【0120】
本形態のサーバM01は、SMTP(Simple Mail Transfer Protocol)、及び、POP(Post Office Protocol)を利用したメールサーバ機能を備える。
サーバM01は、メール受信に際し、不正なメールを削除するフィルタリング処理を行った。本形態のフィルタリング処理として、携帯データ通信事業者以外から送信されたメールは排除した。その際、判定はメールアドレスから行った。また、不正アドレスリストに登録されたメールアドレスからのメールも排除した。更に、添付された画像データの画像形式、及び/又は、サイズ(例えば、形式:JPEG、サイズ:10Kバイト〜1Mバイト)が適切でない場合は排除した。
【図面の簡単な説明】
【0121】
【図1】装置構成を示す図である。
【図2】2次元コードを示す図である。
【図3】2次元コードのセル配置を示す図である。
【図4】2次元コードの一色成分の一部領域を示す図である。
【図5】マークセルを示す図である。
【図6】連続した2セル(横方向、縦方向)を示す図である。
【図7】お化粧マークに割り当てられたセルを示す図である。
【図8】2次元コード発行プロセスを示す図である。
【図9】データ変換フローを示す図である。
【図10】セル表示決定の概念図を示す図である。
【図11】画像データのマークセル(一色成分)を示す図である。
【図12】画像データの空白セル(一色成分)を示す図である。
【図13】2次元コード発行プロセスの装置間の通信を示す図である。
【図14】2次元コード復元プロセスを示す図である。
【図15】画像データのマークセル(一色成分)を示す図である。
【図16】位置決め手段を構成するステップを示す図である。
【図17】コード領域抽出の際に諧調を取得する位置を示す図である。
【図18】コード領域における諧調分布の例を示す図である。
【図19】照合パターンの照合による画像の走査を示す図である。
【図20】コード領域走査のフローチャートを示す図である。
【図21】判定式による判定の領域を示す図である。
【図22】位置決めマーク選定の直線を示す図である。
【図23】セル判定手段を構成するステップを示す図である。
【図24】セル領域走査のフローチャートを示す図である。
【図25】CMY色空間における参照情報のプロットを示す図である。
【図26】CMY色空間における判定面を示す図である。
【図27】セル表示判定のフローチャートを示す図である。
【図28】ビット列復元の概念図を示す図である。
【図29】位置決めエラー検出時のフローチャートを示す図である。
【図30】セル判定エラー検出時のフローチャートを示す図である。
【図31】2次元コード復元プロセスの装置間の通信を示す図である。
【符号の説明】
【0122】
001…マークセル、002…空白セル
003…マーク領域、004…空白領域
008…照合パターン
010…データマーク
010C、010M、010Y…データマーク(シアン、マゼンタ、イエロー)
010R、010G、010B…データマーク(レッド、グリーン、ブルー)
010K、010W…データマーク(黒色、白色)
020…位置決めマーク
030…参照マーク
030C、030M、030Y…参照マーク(シアン、マゼンタ、イエロー)
030R、030G、030B…参照マーク(レッド、グリーン、ブルー)
030K、030W…参照マーク(黒色、白色)
040…お化粧マーク
040C、040M、040Y…お化粧マーク(シアン、マゼンタ、イエロー)
040R、040G、040B…お化粧マーク(レッド、グリーン、ブルー)
040K、040W…お化粧マーク(黒色、白色)
100…2次元コード、101…2次元コード(8×8セル)
120…データベース
200…2次元コード発行プロセス
210…データ入力部、211…データ入力手段
220…2次元コード生成部
221…データ変換手段、222…エンコード手段
223…画像作成手段、224…画像変換手段
230…2次元コード出力部、231…2次元コード出力手段
300…2次元コード復元プロセス
310…2次元コード入力部、311…2次元コード入力手段
320…2次元コード解読部
321…画像変換手段、322…位置決め手段、323…セル判定手段
324…デコード手段、325…データ変換・検証手段
330…データ出力部、331…データ出力手段
M01…サーバ
M02…コンテンツ登録装置
M03…2次元コード取得装置
【特許請求の範囲】
【請求項1】
2次元的に配置した複数のセルに対する色成分の組み合わせによりビット列が表現された2次元コードに関し、当該2次元コードを含む画像データから前記ビット列を復元する2次元コード復元プログラムであって、
前記画像データを構成する複数の色成分を同時に利用して、セルの表示を構成する各々の色成分の有無を個別に判定すること、
を特徴とする2次元コード復元プログラム。
【請求項2】
予め定めた色彩で表示された複数の参照セルから、当該参照セルの色彩に関する情報を取得すること、
判定を行う各々の色成分において、当該色成分の有無によって分類された参照セルの情報を利用してセルの表示を判定すること、
を特徴とする請求項1に記載の2次元コード復元プログラム。
【請求項3】
セルごとに周囲を空白領域で囲まれて表示されたマークの位置を、当該マークの領域と周囲の空白領域とのコントラストを基に特定し、当該位置において色彩の情報を取得してセルの表示を判定すること、
を特徴とする請求項1に記載の2次元コード復元プログラム。
【請求項4】
2次元的に配置した複数のセルの表示によりビット列が表現された2次元コードに関し、当該2次元コードを含む画像データから前記ビット列を復元する2次元コード復元プログラムであって、
2次元コードの解読に係わるパラメータに適用される値が、前記画像データに応じて予め用意された複数の水準から選定されること、
を特徴とする2次元コード復元プログラム。
【請求項5】
前記セルの判定に利用される指標は、当該セルにおけるマーク領域の諧調を、周囲の空白領域の諧調を用いて補正した値であること、
前記パラメータとして、諧調の補正に係わる複数の水準を用意すること、
を特徴とする請求項4に記載の2次元コード復元プログラム。
【請求項6】
予め定めた色彩で表示された複数の参照セルから、当該参照セルの色彩に関する情報を取得すること、
前記参照セルの情報を検証することで、解読プロセスで生じたエラーを検出すること、
前記エラーが検出された場合に、パラメータの値を変更して再び解読プロセスを繰り返すこと、
を特徴とする請求項4に記載の2次元コード復元プログラム。
【請求項7】
2次元コードが表現する前記ビット列は、誤り検出を可能とする冗長ビットが付与されていること、
2次元コードを解読して得られるビット列に対して誤り検出を行い、解読プロセスで生じたエラーを検出すること、
前記エラーが検出された場合に、パラメータの値を変更して再び解読プロセスを繰り返すこと、
を特徴とする請求項4に記載の2次元コード復元プログラム。
【請求項8】
2次元的に配置した複数のセルの表示によりビット列が表現された2次元コードに関し、当該2次元コードを含む画像データから前記ビット列を復元する、ネットワークに接続されたサーバであって、
ネットワークに接続されたクライアント端末から2次元コードの画像データを受信する画像データ受信手段と、
前記2次元コードの画像データから、2次元コードに表現されたビット列を解読する2次元コード解読手段と、
前記2次元コードの解読プロセスにおいて生じたエラーを検出するエラー検出手段と、
前記エラーが検出された場合に、エラーを解析するエラー解析手段と、
前記エラー解析手段で得られたエラー情報を、前記クライアント端末に送信するエラー送信手段と、
を有することを特徴とする2次元コード復元サーバ。
【請求項9】
前記エラー解析手段で得られたエラー情報に、ユーザがクライアント端末に接続されたカメラを用いて2次元コードを撮像する際の撮像アドバイスが含まれること、
を特徴とする請求項8に記載の2次元コード復元サーバ。
【請求項1】
2次元的に配置した複数のセルに対する色成分の組み合わせによりビット列が表現された2次元コードに関し、当該2次元コードを含む画像データから前記ビット列を復元する2次元コード復元プログラムであって、
前記画像データを構成する複数の色成分を同時に利用して、セルの表示を構成する各々の色成分の有無を個別に判定すること、
を特徴とする2次元コード復元プログラム。
【請求項2】
予め定めた色彩で表示された複数の参照セルから、当該参照セルの色彩に関する情報を取得すること、
判定を行う各々の色成分において、当該色成分の有無によって分類された参照セルの情報を利用してセルの表示を判定すること、
を特徴とする請求項1に記載の2次元コード復元プログラム。
【請求項3】
セルごとに周囲を空白領域で囲まれて表示されたマークの位置を、当該マークの領域と周囲の空白領域とのコントラストを基に特定し、当該位置において色彩の情報を取得してセルの表示を判定すること、
を特徴とする請求項1に記載の2次元コード復元プログラム。
【請求項4】
2次元的に配置した複数のセルの表示によりビット列が表現された2次元コードに関し、当該2次元コードを含む画像データから前記ビット列を復元する2次元コード復元プログラムであって、
2次元コードの解読に係わるパラメータに適用される値が、前記画像データに応じて予め用意された複数の水準から選定されること、
を特徴とする2次元コード復元プログラム。
【請求項5】
前記セルの判定に利用される指標は、当該セルにおけるマーク領域の諧調を、周囲の空白領域の諧調を用いて補正した値であること、
前記パラメータとして、諧調の補正に係わる複数の水準を用意すること、
を特徴とする請求項4に記載の2次元コード復元プログラム。
【請求項6】
予め定めた色彩で表示された複数の参照セルから、当該参照セルの色彩に関する情報を取得すること、
前記参照セルの情報を検証することで、解読プロセスで生じたエラーを検出すること、
前記エラーが検出された場合に、パラメータの値を変更して再び解読プロセスを繰り返すこと、
を特徴とする請求項4に記載の2次元コード復元プログラム。
【請求項7】
2次元コードが表現する前記ビット列は、誤り検出を可能とする冗長ビットが付与されていること、
2次元コードを解読して得られるビット列に対して誤り検出を行い、解読プロセスで生じたエラーを検出すること、
前記エラーが検出された場合に、パラメータの値を変更して再び解読プロセスを繰り返すこと、
を特徴とする請求項4に記載の2次元コード復元プログラム。
【請求項8】
2次元的に配置した複数のセルの表示によりビット列が表現された2次元コードに関し、当該2次元コードを含む画像データから前記ビット列を復元する、ネットワークに接続されたサーバであって、
ネットワークに接続されたクライアント端末から2次元コードの画像データを受信する画像データ受信手段と、
前記2次元コードの画像データから、2次元コードに表現されたビット列を解読する2次元コード解読手段と、
前記2次元コードの解読プロセスにおいて生じたエラーを検出するエラー検出手段と、
前記エラーが検出された場合に、エラーを解析するエラー解析手段と、
前記エラー解析手段で得られたエラー情報を、前記クライアント端末に送信するエラー送信手段と、
を有することを特徴とする2次元コード復元サーバ。
【請求項9】
前記エラー解析手段で得られたエラー情報に、ユーザがクライアント端末に接続されたカメラを用いて2次元コードを撮像する際の撮像アドバイスが含まれること、
を特徴とする請求項8に記載の2次元コード復元サーバ。
【図1】
【図4】
【図5】
【図6】
【図8】
【図9】
【図10】
【図12】
【図13】
【図14】
【図16】
【図17】
【図18】
【図20】
【図21】
【図22】
【図23】
【図24】
【図25】
【図26】
【図27】
【図28】
【図29】
【図30】
【図31】
【図2】
【図3】
【図7】
【図11】
【図15】
【図19】
【図4】
【図5】
【図6】
【図8】
【図9】
【図10】
【図12】
【図13】
【図14】
【図16】
【図17】
【図18】
【図20】
【図21】
【図22】
【図23】
【図24】
【図25】
【図26】
【図27】
【図28】
【図29】
【図30】
【図31】
【図2】
【図3】
【図7】
【図11】
【図15】
【図19】
【公開番号】特開2009−223499(P2009−223499A)
【公開日】平成21年10月1日(2009.10.1)
【国際特許分類】
【出願番号】特願2008−65879(P2008−65879)
【出願日】平成20年3月14日(2008.3.14)
【出願人】(302072239)
【Fターム(参考)】
【公開日】平成21年10月1日(2009.10.1)
【国際特許分類】
【出願日】平成20年3月14日(2008.3.14)
【出願人】(302072239)
【Fターム(参考)】
[ Back to top ]