(58)【調査した分野】(Int.Cl.,DB名)
前記ステップA、前記ステップB、前記ステップC、および前記ステップDは、カメラ、プロセッサ、前記記録媒体を備えた読み取り装置における前記プロセッサによって実行され、
前記ステップAは、前記カメラから前記第1の画像データを取得することを含み、
前記ステップBは、前記第2の画像データまたは前記改変用データを前記記録媒体から取得することを含む、
請求項19に記載の真贋判定方法。
【発明を実施するための形態】
【0014】
(概要)
本開示の具体的な実施形態を説明する前に、まず、本開示の技術の概要を説明する。
【0015】
本開示は、物品に関連付けられた種々の情報を示すコードの画像を、意図的に改変(編集)して記録または印刷する技術に関する。このように意図的に改変された画像が物品またはその包装などに印刷される場合、特定のルールを知らない第三者は、通常の装置とソフトウェアを用いて同じ画像を印刷することができない。このため、偽造の可能性を低減することができる。また、物品に付されたコードの画像が、正規のものか偽造されたものか(真贋)を判定することができる。例えば、スマートフォンなどの読み取り装置によって読み取られたバーコードの画像に基づいて、そのバーコードの真贋を判定するアプリケーションを実現できる。
【0016】
本明細書において「コード」とは、物品に関連付けられた情報を示す図形、記号、模様、もしくは文字、またはこれらの任意の組み合わせを意味する。コードは、典型的には、1次元コード(一般的なバーコード)、2次元コード(例えばマトリクスコードまたはスタックコード)、もしくは文字列(数字、アルファベットその他の文字の組み合わせを含む)、またはこれらの組み合わせであり得る。2次元コードは、一般に、2次元バーコードと呼ばれることが多い。このため、本明細書においても、1次元コードだけでなく、2次元コードについても、「バーコード」の用語を用いることがある。コードは、必ずしも1次元または2次元のバーコードを含んでいる必要はない。コードが文字列(例えばヒューマンリーダブル文字)のみによって表現されていてもよい。
【0017】
コードは、物品(例えば製造物などの商品)に関連付けられた様々な情報を表す。そのような情報は、例えば、商品コード、製造年月日、消費期限、ロット番号、もしくは物品固有のシリアル番号、またはこれらの任意の組み合わせであり得る。ここに列挙した情報以外の情報がコードに含まれていてもよい。例えば、ウェブサイトのURLのような情報をコードが表現していてもよい。
【0018】
コードは、例えば産業機器、民生用機器、医薬品、食品、衣料品、装飾品、生活雑貨等の商品、イベントの入場チケット、またはクーポンなどに付され得る。本明細書においては、コードが付され得るそのような有体物全般を「物品」と称する。
【0019】
コードが物品に「付される」とは、そのコードが当該物品またはその包装の表面に印刷されることを意味する。物品に付されたコードは、カメラを搭載したスマートフォンまたはバーコードリーダなどの読み取り装置を用いて読み取ることができる。
【0020】
本明細書において、「コードの画像データ」とは、当該コードの画像を示すデータを意味する。コードの画像データは、JPEG、PNG、BMPなどの公知の規格に準拠したファイル形式を有する画像データに限定されず、任意の形式のデータであってよい。コードの画像データを、単に「コード画像」と称することがある。
【0021】
本明細書において、「改変画像データ」とは、元のコード画像に、偽造防止のための改変がなされた画像を示すデータを意味する。改変画像データも、JPEG、PNG、BMPなどの公知の規格に準拠したファイル形式を有する画像データに限定されず、任意の形式のデータであってよい。例えば、改変画像データは、元の画像データに、偽造防止のための改変の内容を示すデータが付加されたデータまたは信号であってもよい。
【0022】
本開示の例示的な実施形態によるコード生成方法は、物品(例えば製造物)に関連付けられた情報を示すコードの画像データをプロセッサ(またはコンピュータ)によって生成する方法である。ある実施形態において、前記方法は、(1)入力された情報に基づき、前記情報を示すコードの画像データを、所定のアルゴリズムに従って生成するステップと
、(2)前記情報に基づく特定のルールに従い、前記画像データを、物品ごとまたは物品群ごとに異なる態様で改変するステップと、(3)改変後の前記画像データを記録媒体に記録するステップとを含む。この方法は、さらに、(4)改変後の前記画像データを、前記物品またはその包装に印刷するステップを含んでいてもよい。
【0023】
上記(1)のステップは、例えば一般的な1次元または2次元のバーコードを生成するステップに相当する。プロセッサは、例えば公知のバーコード生成用のプログラムを実行することにより、バーコードを生成することができる。ただしこれに限定されず、「所定のアルゴリズム」は、ヒューマンリーダブル文字のみを含むコードの画像データを生成するアルゴリズムであってもよい。
【0024】
上記(2)のステップは、上記(1)のステップにおいて生成されたコードの画像データを意図的に改変することにより、コードの偽造を困難にする。このステップでは、例えば商品コードごと、ロット番号ごと、またはシリアル番号ごとに、特定のルールに従って異なる態様で画像データが改変され得る。これにより、物品ごと(例えばシリアル番号ごと)または物品群ごと(例えば商品コードまたはロット番号ごと)に固有の改変画像データが生成される。
【0025】
上記(3)のステップは、後の(4)の印刷ステップで利用可能にするために、改変後の画像データを、ハードディスクドライブなどの任意の記録媒体に記録するステップである。改変後の画像データは、そのコードが付される物品の情報と関連付けて記録されてもよい。記録されたデータは、真贋判定を行う際に参照され得る。
【0026】
上記(4)のステップにおいて、改変後の画像データは、物品またはその包装に印刷される。このステップは、一般的なプリンタまたは印刷機によって実行され得る。
【0027】
このように、本開示の実施形態におけるプロセッサは、物品に付されるコードの画像データを、その元情報に基づく特定のルールに従って意図的に改変する。例えば、元情報に基づく特定の暗号化処理によって画像データを改変する。この際、プロセッサは、例えば、改変の内容を規定する改変用データ(「偽造防止コード」とも称する。)を生成し、その改変用データに基づいて、コードの画像データを改変してもよい。
【0028】
上記(1)のステップにおいて生成される画像データは、通常のコード生成アルゴリズムに従って生成される、偽造防止対策が施されていない画像データである。この画像データは、明示的に生成されなくてもよい。改変画像データを生成する装置は、入力された情報から、通常のコード画像データを生成することなく改変画像データを生成してもよい。
【0029】
後に詳しく説明するように、画像データの改変の態様は様々である。例えば、以下の方法が可能である。
(1)偽造防止コードで示される値に応じて元のコードの印字位置を変化させる。
(2)コードとヒューマンリーダブル文字を併用する場合、それらの相対位置を偽造防止コードに基づいて変化させる。
(3)元のコードの領域の内部の、偽造防止コードによって示される座標に、マーク(例えば、黒または白のマーク)を付加する。
(4)元のコードの領域の周囲に、偽造防止コードによって示される座標に、マーク(例えば、黒または白のマーク)を付加する。
(5)元のコードとは別に、キャラクターマーク(文字列のマーク)を用意し、その座標、角度、フォント、大きさ等を変化させる。
【0030】
上記(1)〜(5)の方法を任意に組み合わせて適用してもよい。以上の方法により、
特定のルールを知らない第三者は全く同じ印刷をすることができない。また、通常の装置とソフトウェアとを用いてマークを偽造することは困難になる。
【0031】
さらに、読み取り装置またはサーバコンピュータに真贋の判定機能を持たせ、真贋の判定を行えるようにすることができる。例えば、スマートフォンまたはタブレットコンピュータ等のカメラ付きの情報機器を用いて、商品に印刷されたコードを撮影して得られる画像データに基づいて、そのコードの真贋の判定を行うことができる。真贋の判定は、例えば、判定用のアプリケーションソフトウェアがインストールされた情報機器(読み取り装置)によって実行することができる。あるいは、ネットワーク(例えばインターネット)を介して読み取り装置に接続されたサーバコンピュータが真贋の判定を実行してもよい。サーバコンピュータは、読み取り装置から送信された画像データと、実際に印刷された画像データまたはそのコードの改変内容を規定した改変用データとに基づいて、真贋の判定を行い、読み取り装置に判定結果を返す。このようなシステムにより、ユーザがスマートフォン等の携帯機器を用いて、商品が真正品か模造品かを直ちに知ることができる。
【0032】
なお、真贋の判定機能をもたない通常の読み取り装置では真贋の判定を行うことはできない。しかし、通常の読み取り装置でも、偽造防止コードによる編集が行われたコードを、通常のコードと同様に読み取ることが可能である。このため、従来の利便性は維持される。
【0033】
バーコードなどの印刷物は、印刷または流通の過程において、汚れまたは欠損などの印刷エラーが発生する可能性がある。このため、機械による読み取りが行われるどのコードシステムにおいても、多少の印刷エラーは許容されるような設計となっている。特に、2次元バーコードシステムでは、コードのエラーがあった場合でも、支障なく読み取りが行えるように、リード・ソロモン符号などによる高度な誤り訂正機能が実装されている。このため、コードの内部または周囲に特定のルールに従い、意図的にマーク等を追加しても、大きな支障なく読み取ることができる。このため、通常のシステムとしての機能を損なうことはない。言い換えれば、本開示の実施形態において行われる改変は、通常の読み取りに支障がない程度の改変である。
【0034】
真贋を判定する装置は、撮影によって取得された画像データを解析することにより、例えばコードの画像に付されたマークが特定のルールに従って意図的に付けられたマークなのか、それ以外の汚れまたは欠損であるのかを識別することができる。
【0035】
従来、バーコード等のコードの画像は、如何に綺麗かつ正確に印刷するかが重要であると考えられてきた。敢えてレイアウトを崩したり、コードとは関係のないマークを付加したりするという発想は従来なかった。本開示の実施形態では、例えば個々の物品ごとまたは物品群ごとに意図的にレイアウトを崩したり、マークを付加したりすることにより、真贋の判定をより容易に行うことが可能である。
【0036】
以下、本開示のより具体的な実施形態を説明する。ただし、必要以上に詳細な説明は省略する場合がある。例えば、既によく知られた事項の詳細説明や実質的に同一の構成に対する重複説明を省略する場合がある。これは、以下の説明が不必要に冗長になるのを避け、当業者の理解を容易にするためである。なお、発明者は、当業者が本開示を十分に理解するために添付図面および以下の説明を提供するのであって、これらによって特許請求の範囲に記載の主題を限定することを意図するものではない。以下の説明において、同一または類似する構成要素については、同じ参照符号を付している。
【0037】
(実施形態)
本実施形態は、商品に印刷するバーコード(例えば2次元のマトリクスコード)の内部
または外部に微小なマークまたはキャラクタマーク(文字列)を付加したり、ヒューマンリーダブル文字とバーコードとの相対位置を変えたりすることにより、改変されたコード画像データを生成する装置および方法に関する。本実施形態はまた、印刷されたコードの真贋を判定するシステムおよび方法に関する。
【0038】
<コード画像生成装置>
図1は、本実施形態におけるコード画像生成装置(サーバコンピュータ30)の概略構成を示すブロック図である。サーバコンピュータ30は、商品に付されるマトリクスコードの画像データを生成する装置である。サーバコンピュータ30は、相互に接続されたプロセッサ32と、メモリ34と、通信回路36と、ストレージ38とを備えている。
【0039】
プロセッサ32は、例えばCPU(Central Processing Unit)またはDSP(Digital Signal Processor)などの回路によって実現され得る。プロセッサ32は、メモリ34に格納されたコンピュータプログラムを実行することにより、後述する画像生成処理を行う。
【0040】
メモリ34は、RAM(Random Access Memory)およびROM(Read Only Memory)などの記録媒体を含む。メモリ34は、プロセッサ32によって実行されるプログラム、および処理の過程で生成される様々なデータを格納する。
【0041】
ストレージ38は、例えばハードディスクドライブまたはソリッドステートドライブなどの記録媒体を含む装置である。ストレージ38は、プロセッサ32によって生成されたコードの画像データ等の各種のデータを記録する。なお、プロセッサ32によって生成されたコードの画像データは、サーバコンピュータ30の外部の他のストレージ(記録媒体)に記録されてもよい。そのような他のストレージは、サーバコンピュータ30にネットワーク(通信回線)を介して接続される。
【0042】
通信回路36は、ネットワークを介して他の機器と通信を行う回路である。通信回路36は、有線または無線によって外部の装置に直接的に、またはインターネットもしくはLAN(Local Area Network)などのネットワークを介して接続することができる。通信回路36は、例えばLANを介してプリンタに接続され得る。通信回路36はまた、インターネット等のネットワークを介して、スマートフォンなどの情報機器に接続され得る。
【0043】
サーバコンピュータ30は、
図1に示す構成要素以外にも、例えば電源回路、入出力インタフェース、ディスプレイ等の要素を備え得る。しかし、それらの要素は、本実施形態における動作には直接関係しないため、説明を省略する。
【0044】
以下、本実施形態におけるプロセッサ32によって実行されるコード画像を生成する処理を説明する。
【0045】
図2は、プロセッサ32によるコード画像の生成処理の基本的な流れを示すフローチャートである。プロセッサ32は、ある商品のためのコードを生成すべき旨の指令(コード生成指示)を受け取ると、
図2に示す動作を実行する。
【0046】
ステップS100において、プロセッサ32は、その商品に関する情報(例えば、商品コード、製造年月日、ロット番号、およびシリアル番号等)を取得する。この情報は、例えばコード生成指示とともに、ユーザまたは他の装置から入力され得る。
【0047】
ステップS101において、プロセッサ32は、取得した情報に基づき、所定のアルゴリズムに従って、コードの画像データを生成する。この画像データは、例えば、公知の2次元コード生成アルゴリズムに従って作成され得る。一例として、2次元コードの一種であるDataMatrix ECC200を使用する場合、ISO/IEC16022:2006の規格に準拠したアルゴリズムを規定したソフトウェアによってコードの画像データを生成できる。他の種類の2次元コードを使用する場合も、そのコードの規格に準拠したアルゴリズムを規定したソフトウェアを用いることにより、コードの画像データを生成できる。そのようなソフトウェアのいくつかは、例えばインターネット上に公開されており、無償で利用できる。なお、2次元コード以外のコード(例えば1次元バーコードまたは文字列のみから構成されるコード)を生成する場合には、プロセッサ32は、そのコードを生成するための所定のアルゴリズムに従い、画像データを生成する。
【0048】
ステップS102において、プロセッサ32は、コードによって表現される情報に基づく特定のルールに従い、コードの画像データを改変(修正)する。本実施形態では、商品ID、ロット番号、またはシリアル番号ごとに異なる方法で、画像データを改変する。例えば、プロセッサ32は、画像データ内の、シリアル番号等に基づいて決定される位置に、1つまたは複数のマーク(偽造防止マーク)を付加することによって画像データを改変する。この際、プロセッサ32は、マークを付加する位置を示す座標値を示す情報を、改変用データ(偽造防止コード)として作成し、その商品に関連付けてストレージ38(記録媒体)に記録してもよい。
【0049】
汚れまたは欠損を考慮し、偽造防止マークは、コード内の離れた位置に複数個配置してもよい。また、複数の重畳方法を併用してもよい。偽造防止マークは、読み取り装置(リーダー)の誤り訂正能力に応じて、読み取り時に負担が大きくならない大きさ、位置に配置される。偽造防止マークは、真贋判定の機能を損なわない範囲で、通常のシンボルマークよりも小さく設定され視認しにくくされる。
【0050】
ステップS104において、プロセッサ32は、改変したコードの画像データを商品またはその包装に印刷するように、プリンタに指示する。これにより、特定のルールに基づいて改変されたコードの画像が、商品またはその包装に印刷される。なお、コード画像は、商品に関連付けられた包装以外の物(例えば、看板または広告等)に印刷されてもよい。
【0051】
図3Aから
図3Fを参照しながら、本実施形態において作成されるコード画像の例を説明する。
【0052】
図3Aは、
図2におけるステップS101において生成されるコード画像の一例を示す図である。ここでは、コードとして、2次元バーコードの一種であるDataMatrixコードを用いる例を説明する。なお、DataMatrixコード以外の2次元バーコード、例えば、Quick Response(QR)コード、VeriCode、PDF417コード、Aztecコード、またはMaxiCode等が用いられる場合も、以下に説明する処理と同様の処理が可能である。
【0053】
2次元バーコードは、一般に、2次元的に配列された複数のデータセル(以下、単に「セル」と称する。)を含む。複数のセルは、同一のサイズの正方形または長方形の形状を有する。複数のセルの一部は、明るい(または白い)セルであり、他の一部は、暗い(または黒い)セルである。明るいセルおよび暗いセルの一方は0(ゼロ)の値を表し、他方は1の値を表す。よって、これらのセルの明暗の2次元パターンは、0および1の数値列で表現される特定の情報を表す。
【0054】
図3Bは、
図2におけるステップS102において改変されたコード画像の一例を示す図である。この例では、コードの領域の内部に、マーク1(黒い点)が付加されている。マーク1が付加される位置(座標)は、コードが示す情報に基づいて決定される。例えば、シリアル番号またはロット番号ごとに一意に決定される位置に、マーク1が付加され得る。
【0055】
図3Cは、改変後のコード画像の他の例を示す図である。この例では、コードの領域の内部に、2つのマーク1(黒い点および白い点)が付加されている。この例のように、複数のマーク1が付加されてもよい。図示される2次元コードを構成する複数のセルのうち、明るいセルには黒い点が付加され、暗いセルには白い点が付加されている。この場合、改変用データは、2つのマーク1のそれぞれの座標値を示す情報を含む。
【0056】
図3Dは、改変後のコード画像のさらに他の例を示す図である。この例では、コードの領域の内部に、3つのマーク1(黒い点および2つの白い点)が付加されている。この場合、改変用データは、3つのマーク1のそれぞれの座標値を示す情報を含む。なお、マーク1の個数は、4個以上であってもよい。マーク1の個数が多いほど、より多くの改変のバリエーションが可能になる。また、マーク1の個数が多いほど、汚れまたは欠陥によって一部のマークが認識できない場合でも、真贋の判定を正しく行える可能性を高くできる。
【0057】
図3Eは、改変後のコード画像のさらに他の例を示す図である。この例では、マーク1が点ではなく丸印である。このように、付加されるマーク1の形状は点以外の形状であってもよい。
【0058】
図3Fは、改変後のコード画像のさらに他の例を示す図である。この例では、2つの丸印のマーク1が、コードの領域内に付加されている。2次元コードを構成する複数のセルのうち、明るいセルには黒い丸が付加され、暗いセルには白い丸が付加される。
図3Fの例においても、3個以上のマーク1が付加されてもよい。
【0059】
マークは、例えば、三角形、四角形、星印その他の記号または文字等であってもよい。複数のマークが付加される場合、マークによって形状が異なっていてもよい。その場合、改変用データは、個々のマークの形状の情報も含み得る。
【0060】
以上の例では、コードの内部にマーク1が付加されているが、コードの外部または外部との境界部分に1つ以上のマーク1が付加されてもよい。
図4Aから
図4Cは、そのような例を示している。
【0061】
図4Aは、コードのアライメントパターン(コードの外周部のL字状の太い線)における特定の箇所を白抜きにした例を示している。この例ではアライメントパターン上の3箇所に白いマーク1が付加されている。このように、アライメントパターンに1つ以上のマーク1を付加してもよい。
【0062】
図4Bは、アライメントパターンの周囲に3つのマーク1(黒いドット)が付加された例を示している。これらのマーク1は、アライメントパターンに隣接している。
図4Cは、アライメントパターンの周囲に離れて3つのマーク1(黒いドット)が付加された例を示している。これらの例のように、マーク1の印字位置は、コードの領域の外側であってもよい。
【0063】
以上の例において、コード画像の改変内容を規定するパラメータ(改変用データの要素)は、マークの個数、各マークの形状、各マークの画像内の座標値(X座標およびY座標
)であり得る。プロセッサ32は、コードが示す情報に含まれるシリアル番号またはロット番号などの情報に基づいて、これらのパラメータを、特定のルールに従って決定する。そして、決定したパラメータに従い、1つ以上のマーク1をコードに重畳する。これにより、例えば商品のシリアル番号ごとまたはロット番号ごとに異なる態様で、コードを印刷することができる。
【0064】
以上の例では、付加されるマーク1は、いずれも、コードに含まれる個々のセルの大きさよりも小さい。また、明るいセルおよび暗いセルのそれぞれの個数に比べて、遥かに少数(例えば1/10未満)のマーク1が付加されている。このため、マーク1を付与した後もコードの読み取りに支障をきたすことはない。
【0065】
2次元バーコードにおけるセル(データセルとも称する。)の個数をNとし、付加されるマークの個数をnとする。Nは、コードの種類によって異なるが、例えば20以上の整数であり得る。マークの個数nは、1以上N以下の整数であり、ある例では、2≦n≦N/10である。n個のマークが付される場合、コードの改変内容を規定する改変用データは、画像データ内のn個の座標値を示す情報を含む。プロセッサは、コードが示す情報に基づいてn個の座標値を決定し、そのn個の座標値が示す位置に、n個のマークを付加する。n個の座標値の組み合わせは、当該コードが示す情報(以下、「元情報」と称することがある。)によって異なる。これらのマークの座標の組み合わせは、例えば元情報と一対一に対応する。これらのマークの座標の組み合わせと、コードから読み取った元情報とが整合するかを判定することにより、コードの真贋を判定できる。
【0066】
以上の例の他、2次元コードの領域の周囲に文字列を含むキャラクタマークを付加する改変も可能である。キャラクタマークの位置、角度、フォント(サイズ、書体、文字間隔を含む)、および文字列の内容の少なくとも1つを、物品ごとまたは物品群ごとに異なるようにすることにより、同様の偽造防止効果を得ることができる。
【0067】
図5Aは、コードの領域の周囲にキャラクタマーク2を付加したコード画像の一例を示している。この例では、数字、アルファベット、および記号からなる文字列が、コードの周辺上部に付加されている。
図5Bは、コードの領域の周囲にキャラクタマーク2を付加した改変後のコード画像の他の例を示す図である。この例では、キャラクタマーク2は、
図5Aに示す例と比較して、その内容、位置、および大きさが異なり、かつ、時計回りに傾いている。このように、プロセッサ32は、コードが表す情報に応じて、キャラクタマーク2の位置(座標)、回転角度、フォント等を変化させてもよい。この場合、改変の内容を規定するパラメータ(改変用データ)は、文字列の内容、位置(座標)、フォントの情報を含む。これらのパラメータは、例えばコードが示すシリアル番号またはロット番号ごとに一意に決定され得る。
【0068】
上記の例の他、
図3Aから
図3F、
図4Aから4C、および
図5Aおよび
図5Bに示す改変方法を組み合わせてもよい。例えば、2次元コードの内部、アライメントパターン上、および外部の少なくとも一部に1つ以上のマーク1を付加し、かつ、2次元コードの外部に1つ以上のキャラクタマーク2を付加してもよい。そのような形態では、改変用データは、各マーク1の形状、座標、サイズ、および各キャラクタマーク2の内容、座標、回転角度、フォント等の情報を含み得る。プロセッサ32は、それらのデータを、そのコードまたは物品に関連付けて記録媒体に記録する。これらの情報は、後述する真贋判定処理に用いられ得る。
【0069】
次に、
図6Aから
図6Dを参照しながら、マークを付加する方法とは異なる方法で、コードの画像データを改変する例を説明する。以下の例では、コードは、2次元のバーコードに加えて、ヒューマンリーダブル文字を含んでいる。プロセッサ32は、バーコードま
たはヒューマンリーダブル文字の、画像データ内における位置を変化させることにより、画像データを改変する。この動作により、バーコードとヒューマンリーダブル文字との相対位置が変化する。この変化の方向および大きさは、バーコードが示す情報に応じて決定される。この例においては、改変用データは、バーコードおよびヒューマンリーダブル文字の少なくとも一方の、画像データ内の基準位置からの変位量を示す情報を含む。
【0070】
図6Aは、改変される前のコード画像の例を示している。この例では、2次元のバーコードの横に、4行の文字列から構成されるヒューマンリーダブル文字が印字される。このヒューマンリーダブル文字は、上から順に、(01)商品コード、(21)シリアル番号、(10)ロット番号、(17)有効期限 を表している。これは、2次元のバーコードが示す情報と同じである。ヒューマンリーダブル文字の表示態様は様々であり、図示される態様に限定されない。
【0071】
図6Aに示すレイアウトを基本として、プロセッサ32は、バーコードとヒューマンリーダブル文字との相対的な位置関係を、バーコードが示す情報に応じて変化させる。例えば、シリアル番号ごと、またはロット番号ごとに異なる態様で、ヒューマンリーダブル文字の印字位置を変化させる。
【0072】
図6Bは、ヒューマンリーダブル文字を、上方向(+Y方向)に0.5mmだけシフトさせる改変例を示している。
図6Cは、ヒューマンリーダブル文字を、左方向(−X方向)に0.5mmだけシフトさせる改変例を示している。
図6Dは、ヒューマンリーダブル文字を、下方向(−Y方向)に0.5mm、右方向(+X方向)に1mmだけシフトさせる改変例を示している。
図6Bから
図6Dにおける「目視可能文字:Y+0.5mm」等の記載は、説明の便宜のために示されており、実際には印字されない。以降の図でも同様である。
図6Bから
図6Dにおける横長の長方形の枠は、実際に印刷されてもよいし印刷されなくてもよい。
【0073】
これらの例に示すように、バーコードとヒューマンリーダブル文字との相対位置を、バーコードが示す情報に基づく特定のルールに従って変化させることにより、真贋の判定が可能となる。この場合、改変用データは、X方向およびY方向のそれぞれの、基準位置からの変位量の情報を含む。プロセッサ32は、特定のルールに従って、各方向における変位量を決定する。
【0074】
ヒューマンリーダブル文字の代わりに、バーコードの位置を同様の方法でシフトさせてもよい。また、バーコードおよびヒューマンリーダブル文字の両方を、それぞれの基準位置からシフトさせてもよい。後者の例では、改変用データ(偽造防止コード)のパラメータ数が多くなるため、より多様な改変が可能となる。
【0075】
プロセッサ32は、バーコードとヒューマンリーダブル文字との相対位置を変化させることに加えて、先の例のように、バーコードの内部または外部にマーク(例えば、記号、図形、文字、または文字列)を付加してもよい。以下、そのような例を説明する。
【0076】
図7Aから
図7Eは、ヒューマンリーダブル文字の印字位置を、バーコードが示す情報に応じて変更するとともに、バーコードの周囲にマーク(この例では点)を付加する形態のいくつかの例を示している。
図7Aは、ヒューマンリーダブル文字および点の両方が、基準の位置にある例を示している。
図7Bは、それぞれの基準位置から、ヒューマンリーダブル文字が上方向に0.5mmシフトし、点が上方向に5mmシフトした例を示している。
図7Cは、それぞれの基準位置から、ヒューマンリーダブル文字が下方向に0.5mm、右方向に0.5mmシフトし、点が上方向に8mm、左方向に5mmシフトした例を示している。
図7Dは、それぞれの基準位置に対して、ヒューマンリーダブル文字が上方
向に0.5mm、右方向に0.5mmシフトし、点が上方向に5mm、左方向に10mmシフトした例を示している。
図7Eは、それぞれの基準位置に対して、ヒューマンリーダブル文字が下方向に1mm、右方向に0.5mmシフトし、点が下方向に2mm、左方向に5mmシフトした例を示している。
【0077】
これらの例のように、コードとヒューマンリーダブル文字との相対位置、および点(マーク)の位置を、バーコードが示す情報に応じて変化させることにより、さらに多彩な改変のバリエーションが可能となる。これらの例において、マークの数は単数でも複数でもよい。一部のマークが汚れまたは欠陥によって認識できなくなった場合でも真贋の判定を正しく行える可能性を高くするために、マークの数を多く(例えば3個以上に)してもよい。
【0078】
図8Aから
図8Cは、本実施形態の他の例を示す図である。これらの例では、コードは2次元のバーコードのみを含んでいる。プロセッサ32は、バーコードの印字位置を、そのバーコードが示す情報に基づく特定の規則に従って変化させる。
図8Aは、改変前のコード画像を示している。この例におけるコード画像は、バーコードの領域を囲む矩形の枠を含んでいる。プロセッサ32は、この枠と、バーコードの領域との相対的な位置関係を、バーコードが示す情報に応じて変化させる。
図8Bは、バーコードが、基準の位置から左に0.2mm、上に0.2mmシフトした例を示している。
図8Cは、バーコードが、基準の位置から右に0.2mm、下に0.2mmシフトした例を示している。これらの例では、改変用データは、バーコードの、画像データ内の基準位置からの、X方向およびY方向のそれぞれにおける変位量を示す情報を含む。プロセッサ32は、改変用データに基づいて、バーコードの、画像データ内における位置を変化させることにより、画像データを改変する。
【0079】
以上の各例では、2次元のバーコード(マトリクスコード)が物品に付される場合を主に想定した。しかし、本開示はそのような例に限定されない。本実施形態における技術は、コードが1次元コードもしくは文字列によるコード、またはこれらの組み合わせである場合にも同様に適用できる。
【0080】
図9Aから
図9Cは、本実施形態の他の例を示す図である。これらの例では、コードはバーコードを含まず、ヒューマンリーダブル文字のみを含んでいる。プロセッサ32は、ヒューマンリーダブル文字の印字位置を、そのヒューマンリーダブル文字が示す情報に基づく特定の規則に従って変化させる。
図9Aは、改変前のコード画像を示している。この例におけるコード画像は、ヒューマンリーダブル文字の領域を囲む矩形の枠を含んでいる。プロセッサ32は、この枠と、ヒューマンリーダブル文字の領域との相対的な位置関係を、ヒューマンリーダブル文字が示す情報に応じて変化させる。
図9Bは、ヒューマンリーダブル文字が、基準の位置から左に0.2mm、上に0.2mmシフトした例を示している。
図9Cは、ヒューマンリーダブル文字が、基準の位置から右に0.2mm、下に0.1mmシフトした例を示している。これらの例では、改変用データは、ヒューマンリーダブル文字の、画像データ内の基準位置からの、X方向およびY方向のそれぞれにおける変位量を示す情報を含む。プロセッサ32は、改変用データに基づいて、ヒューマンリーダブル文字の、画像データ内における位置を変化させることにより、画像データを改変する。
【0081】
以上の例において、コード(バーコードまたはヒューマンリーダブル文字)の位置の変化に代えて、または加えて、コードの回転角度を変化させてもよい。ヒューマンリーダブル文字が印字される形態では、ヒューマンリーダブル文字のフォント(大きさ、書体、文字間隔等)を、物品ごとまたは物品群ごとに変化させてもよい。そのような方法を組み合せることにより、より多様な改変のバリエーションが可能になる。
【0082】
以上のような方法で作成されたコードの画像データは、一般の2次元バーコードの読み取り手順に従って読み取ることができる。この際、付加された偽造防止マーク等は、汚れまたは欠損とみなされ、誤り補正が行われる。このため、偽造防止のための改変がなされていないバーコードと同様に正常に読み取りが行われる。したがって、従来のシステムでの運用が損なわれることはない。
【0083】
次に、特定のルールに従ってコード画像を改変する処理をより具体的に説明する。
【0084】
図10Aは、コード画像を改変する処理(
図2におけるステップS102)のより具体的な例を示すフローチャートである。ここでは一例として、コードの領域の内部または外部に1つまたは複数のドットマークが付加される例を説明する。
【0085】
この例では、プロセッサ32は、
図2におけるステップS101において生成したコードのデータ(元情報)から、そのデータを代表する数値、すなわちハッシュ値を決定する(ステップS220)。ハッシュ値は、元情報の内容を端的に表す値であり、一般的に元情報よりも小さい情報量を有する。プロセッサ32は、元情報からハッシュ値を得るためのハッシュ関数(例えば暗号学的ハッシュ関数)を用いて、ハッシュ値を計算する。偽造を防止するという本実施形態の目的を考慮すると、ハッシュ関数は元のコードから推定されにくいハッシュ値を生成するように設計されることが好ましい。
【0086】
次に、プロセッサ32は、計算したハッシュ値から印刷情報(改変用データ)への変換を行う。プロセッサ32は、予め用意されたコード表(ルックアップテーブル)を参照して、改変用データ(この例では各ドットマークの座標値)を決定する(ステップS221)。テーブルは、例えば以下の条件を満たすように作成され得る。
・ドットマークの数が所定の数または所定の範囲内の数である。例えば、3個、4個、4個以下など、目立たない数のドットマークが付加される。
・ドットマークの密度が所定の値以下である。すなわち、隣接する位置に複数のドットマークを付加することは避け、目立ちにくくする。例えば、5×5セルの領域内には1つのマークのみが付加されるようにする。
・コードの内部にドットマークを配置する場合、元のコードの読み取りの負担を小さくする。すなわち、偽造防止機能のない一般のリーダーでの読み取りを阻害しない。
・ドットパターン間のハミング距離が一定以上である。つまり類似した配置は避ける。これにより、ドットマークの一部が欠落した場合でも、修復できる仕組みを作れる。
【0087】
以上のような条件を満たすテーブルは、予め作成され、メモリ等の記録媒体に保存される。プロセッサ32は、テーブルを参照し、ハッシュ値から各ドットの位置(座標)を決定する。プロセッサ32は、決定した座標にドットマークを配置することにより、改変したコード画像を生成する(ステップS222)。
【0088】
図10Bは、元情報から改変用データを生成するまでの流れを模式的に示す図である。前述のように、プロセッサ32は、ハッシュ関数を用いて、比較的情報量の多い元情報から、より情報量の少ないハッシュ値を算出する。次に、コード表(テーブル)を参照して、ハッシュ値から改変用データ(例えば座標値の組み合わせ)を決定する。そして、決定した改変用データに基づき、コードの画像データを改変する。このような動作によれば、比較的情報量の少ないハッシュ値を介して真贋判定を行うことができる。このため、判定に要する計算量を抑えることができる。
【0089】
図10Cは、テーブルの一例を模式的に示す図である。このテーブルは、ハッシュ値と、コードが配置される複数の座標値の組み合わせ(改変用データ)との対応関係を規定し
ている。ハッシュ値と座標値の組み合わせとは一対一に対応している。したがって、ハッシュ値から改変用データが一意に決定される。逆に、改変用データからハッシュ値を一意に特定することもできる。この仕組みにより、後述するように、コードの偽造の有無を容易に判定することができる。
【0090】
コード画像にマークを付加するのではなく、文字列またはシンボルのレイアウトを変更する改変も、同様の処理によって実現できる。この場合、
図10Cに示すテーブルに代えて、例えば
図10Dに示すようなテーブルが予め作成され、記録される。テーブルは、例えば以下のような条件を満足するように設計され得る。
・レイアウトの変化が目視または機械読み取りによって認識でき、かつ目立たない。例えば、±X方向および±Y方向のそれぞれについて、0.5mm刻みで0〜2.5mm程度の範囲内の値を変化量とする。
・レイアウトパターンの変化がシーケンシャルにならないようにする。すなわち、シリアル番号などの情報からレイアウトパターンを推定されにくくする。
・レイアウトパターンが均等に分布するようにする。すなわち、特定の場所に高い頻度で配置されることがないようにする。
【0091】
以上のような条件を満たすように作成されたテーブルを参照して、プロセッサ32は、ヒューマンリーダブル文字などの変位量を決定し、印刷データを作成することができる。
【0092】
文字列またはシンボルのレイアウトを変更し、かつ1つ以上のマークをコードの内部または外部に付加する改変を行う場合も、基本的に同じ処理が行われる。その場合、例えば
図10Eに示すようなテーブルが利用され得る。この例におけるテーブルは、改変用データとして、付加される各マークの座標値の情報と、移動対象(例えば文字列またはシンボル)の移動量の情報とを含む。このようなテーブルを参照して、プロセッサ32は、元のコード画像にマークを付加し、かつヒューマンリーダブル文字などのレイアウトを変更する。
【0093】
シンボルまたは文字列の回転、または文字列のフォントを変更する改変も、同様の処理によって実現可能である。この場合も、
図10C、10Dに示すテーブルに類似するテーブルが予め作成される。プロセッサ32は、テーブルを参照して、ハッシュ値から改変用データ(例えば、回転角度、文字サイズ、文字の書体、文字間隔など)を作成し、元のコード画像を改変して記録する。テーブルは、例えば以下のような条件を満足するように作成すればよい。
・変化の態様がシーケンシャルにならないようにする。すなわち、シリアル番号などの情報からレイアウトパターンを推定されにくくする。
・変化の態様が均等に分布するようにする。すなわち、特定の変化の態様が高い頻度で現れることが無いようにする。
・変化の態様が相互に類似しないようにする。すなわち、汚れまたは欠陥があった場合でも正しいパターンを推定し易くする。
【0094】
図10Aから
図10Eに示す例では、プロセッサは、コードが示す元情報からハッシュ関数を用いてハッシュ値を算出し、そのハッシュ値から、テーブル(コード表)を参照して改変用データ(偽造防止コード)を決定する。しかし、このような処理は一例に過ぎない。プロセッサは、例えばコードが示す元情報から、所定の関数またはテーブル等を用いて、直接的に改変内容を決定してもよい。元情報から特定のルールに従って改変内容を決定する方法は、特定の方法に限定されない。
【0095】
<真贋判定システム>
次に、物品に付されたバーコードが、真正品のものか否かを判定するシステム(真贋判
定システム)の例を説明する。
【0096】
スマートフォンまたはタブレットコンピュータなどの情報機器(読み取り装置)を用いて、物品に付されたバーコードが真正品に付されたバーコードと同一であるかを判定することができる。この判定のために、読み取り装置には、判定用のアプリケーションソフトウェア(アプリ)が予めインストールされる。本開示における真贋判定の方法には、大きく分けて以下の二つの方法がある。
(1)コード画像の印刷の際に適用された特定のルールを示す偽造防止コード(改変用データ)と同じまたは対応するデータを、読み取り装置に予め記録しておき、通信を行うことなく読み取り装置が単独で真贋判定を行う。
(2)印刷の際に適用された特定のルールを示す偽造防止コードに関するデータを読み取り装置には持たせず、通信回線を介して読み取り装置がサーバまたは記録装置に問い合せる。サーバは、真贋の判定を行い、判定結果を読み取り装置に返す。
【0097】
本実施形態における真贋判定システムは、上記(1)、(2)のいずれの方法でも実現可能である。(1)の方法は、単純な構成で実現できるため、システム構築が容易であるという利点がある。(2)の方法では、真贋判定のルールを示すデータを読み取り装置が持たないため、読み取り装置が解析されたとしても当該ルールが漏洩するおそれがないというセキュリティ上の利点がある。さらに、(2)の方法では、必要に応じて判定ルールをアップデートするなどの調整が可能であり、セキュリティ強度を高く維持することができる。したがって、低コストかつ簡単な構成でシステムを構築することを重視する場合には(1)の方法を採用することが好ましい。一方、セキュリティ強度を高めることを重視する場合には(2)の方法を採用することが好ましい。
【0098】
以下、まず(2)の方法を適用した真贋判定システムの例を説明し、続いて(1)の方法を適用した真贋判定システムの例を説明する。
【0099】
図11は、上記(2)の方法を適用した真贋判定システムの全体構成の例を模式的に示す図である。本システムは、サーバコンピュータ30(以下、単に「サーバ30」と称する。)、プリンタ40、ストレージ50、およびスマートフォン10などの構成要素を備える。サーバ30は、前述のいずれかの方法で、商品5に付されるコードの画像データ(改変された画像データ)を生成し、ストレージ50に保存する。プリンタ40は、当該画像データに基づき、商品5またはその包装にコードを印刷する。コードが印刷された商品5は、流通過程を経て消費者の元に渡る。消費者は、スマートフォン10を用いて、商品5が真正品か否かを判定することができる。そのために、スマートフォン10には、予め真贋判定用のアプリケーションソフトウェア(アプリ)がインストールされる。
【0100】
図12は、スマートフォン10(読み取り装置)の概略的な構成を示すブロック図である。スマートフォン10は、プロセッサ12と、メモリ14と、通信回路16と、カメラ18と、ディスプレイ20とを備えている。プロセッサ12は、メモリ14に格納されたコンピュータプログラム(アプリ)を実行することにより、後述する動作を実行する。本実施形態では、カメラ18で撮影することによって取得された画像データが、通信回路16を介して遠隔地のサーバ30に送られる。
【0101】
図13は、真贋判定動作の一例を示すフローチャートである。真贋判定を行う際、消費者(ユーザ)の操作に応じて、プロセッサ12は、真贋判定用のアプリ(プログラム)を実行する。プロセッサ12は、商品5におけるバーコードが付された箇所を、スマートフォン10のカメラ18で撮影するように促す画像をディスプレイ20に表示させる。消費者が当該箇所を撮影すると(ステップS10)、通信回路16は、その画像データを、基地局90およびネットワーク100(例えばインターネット)を介して、サーバ30に送
る(ステップS11)。サーバ30は、送られてきた画像データに含まれるバーコードが、真正品のバーコードか否かを、ストレージ50に保存されている改変用データに基づいて判定する(ステップS13)。サーバ30は、判定結果を示すデータを、ネットワーク100および基地局90を介してスマートフォン10に送信する(ステップS14)。スマートフォン10のプロセッサ12は、ディスプレイ20に、判定結果を表示する(ステップS15)。これにより、消費者は、商品5に付されたバーコードが正規のものか否かを確認できる。
【0102】
図14は、ステップS13における真贋の判定処理をより具体的に示すフローチャートである。サーバ30におけるプロセッサ32は、送られてきた画像データに含まれるコードから、そのコードが付された物品を特定する(ステップS200)。例えば、そのコードが示す商品コード、ロット番号、シリアル番号などの情報を読み取り、その物品を特定する。この読み取りは、例えば公知の2次元コード読み取り用のアルゴリズムを利用して行われ得る。次に、その物品にコードを印刷したときに使用した改変用データを、ストレージ50などの記録媒体から取得する(ステップS201)。ここで取得される改変用データは、例えば
図10Cから
図10Eに例示されているようなテーブルに含まれるデータであり得る。プロセッサ32は、送られてきた画像データ(以下、「撮影データ」と称することがある。)に、改変用データが示す改変が反映されているかを判定する(ステップS202)。この判定は、例えば、撮影データに含まれるコードから算出されるハッシュ値に対応する改変内容と、撮影データの改変内容(例えば、付加されているマークの位置の組み合わせ、および/またはレイアウト)とが整合しているかに基づいて行われ得る。コード画像が偽造されたものである場合、両者が整合することはない。このため、そのコード画像が付された商品は、真正品ではないと判断できる。判定は、公知の画像マッチング技術を用いて行ってもよい。
【0103】
送られてきた画像データに含まれるコードが正規のものであると判定した場合、プロセッサ32は、その旨の情報を、スマートフォン10に送信する。送られてきた画像データに含まれるコードが正規のものでないと判定した場合、プロセッサ32は、その旨の情報を、スマートフォン10に送信する。
【0104】
なお、プロセッサ32は、改変用データに基づいて真贋を判定する代わりに、印刷時に用いた改変後の画像データを用いて真贋を判定してもよい。すなわち、プロセッサ32は、送られてきた画像データと、印刷時に使用した画像データとを照合して同一性を判定してもよい。この場合、例えば公知の画像マッチング技術を用いて2つの画像の同一性を判定することができる。
【0105】
本実施形態では、コード画像の生成と、真贋判定とを同一のサーバ30が行うが、これらを異なる装置に実行させてもよい。コード画像の生成および印刷を行うシステムと、真贋判定を行う装置またはシステムとが遠く離れた場所に配置されていてもよい。
【0106】
図15Aおよび
図15Bは、判定結果の表示例を示す図である。
図15Aは、撮影されたコードが、正規品のコードと一致すると判定された場合の表示例を示している。この場合、ディスプレイ20には、そのコードが正規品のコードと一致する旨、例えば「正規品のコードです。」といった文言が表示され得る。
図15Bは、撮影されたコードが、真正品のコードとは一致しないと判定された場合の表示例を示している。この場合、ディスプレイ20には、そのコードが正規品のコードと一致しない旨、例えば「正規品のコードではありません」といった文言が表示され得る。この際、
図15Bに示すように、「メーカに連絡」などのボタンの表示を行い、その表示をタップすることで、メーカの連絡先情報が表示されたり、電子メールなどによってメーカに連絡したりできる仕組みを導入してもよい。
【0107】
本実施形態では、読み取られたコードの画像の真贋をクラウド上のサーバ30が判定する。スマートフォン10(読み取り装置)は、撮影データをサーバ30に送信し、サーバ30から判定結果を示すデータを受信して表示するだけである。このため、読み取り装置の内部データを解析しても、コード画像の改変に用いられたルールを特定することはできない。ルールの漏洩するおそれがないため、高いセキュリティを確保することができる。
【0108】
次に、サーバ30ではなくスマートフォン10などの読み取り装置が自ら真贋の判定を行う例(上記の(2)の例)を説明する。
図16は、この例における真贋判定システムを模式的に示す図である。この例では、真贋判定システムは、スマートフォン10のみを含む。スマートフォン10のプロセッサ12は、メモリ14に格納されたコンピュータプログラムを実行することにより、通信回線を介することなく上記と同様の判定処理を行う。スマートフォン10のメモリ14には、真贋判定用のプログラムの他、コード画像の作成時に適用された特定のルールを示すデータが予め記録される。
【0109】
図17は、スマートフォン10による真贋判定の処理の例を示すフローチャートである。スマートフォン10は、ユーザからの撮影指示に応じて、商品に付されたコードをカメラ18で撮影する(ステップS300)。コードが撮影されると、プロセッサ12は、撮影データに含まれるコードからその物品を特定する(ステップS301)。例えば、そのコードが示す商品コード、ロット番号、シリアル番号などの情報に基づいて、その物品を特定する。この読み取りは、例えば公知の2次元コード読み取り用のアルゴリズムを利用して行われ得る。次に、プロセッサ12は、メモリ14(または他の記録媒体)にアクセスし、特定した物品の改変用データを取得する(ステップS302)。プロセッサ12は、撮影データと、改変用データとに基づき、改変用データが示す改変が撮影データに反映されているかを判定する(ステップS303)。この判定は、例えば、撮影データに含まれるコードから算出されるハッシュ値に対応する改変内容と、撮影データの改変内容(例えば、付加されているマークの位置の組み合わせ、および/またはレイアウト)とが整合しているかに基づいて行われ得る。判定は、公知の画像マッチング技術を用いて行ってもよい。撮影データに含まれるコードが正規のものであると判定した場合、プロセッサ12は、その旨の情報をディスプレイ20に表示する。撮影データに含まれるコードが正規のものでないと判定した場合、プロセッサ12は、その旨の情報を、ディスプレイ20に送信する。
【0110】
プロセッサ12は、改変用データに基づいて真贋を判定する代わりに、印刷時に用いた改変後の画像データを用いて真贋を判定してもよい。すなわち、プロセッサ12は、撮影データと、印刷時に使用された画像データとを照合して同一性を判定してもよい。この場合、例えば公知の画像マッチング技術を用いて2つの画像の同一性を判定することができる。
【0111】
この例では、ネットワークを介することなく、スマートフォン10が単独で物品の真贋を判定できる。このため、
図11の例と比較して、システムの構成を簡単にすることができる。
【0112】
以上のように、本実施形態における真贋判定方法は、物品に印刷されたコードを撮影して得られる画像データ(第1の画像データ)を取得するステップと、実際に使用された改変後の画像データ(第2の画像データ)を記録媒体から取得するステップと、第1の画像データと第2の画像データ(または改変用データ)とを照合することによって第1の画像データにおけるコードが、正規のコードであるか否かを判定するステップと、判定結果を示すデータを出力するステップとを含む。これにより、簡便にコードの真贋を判定することができる。
【0113】
上記の例において、読み取り装置はスマートフォンであるが、他の情報機器であってもよい。例えば、タブレットコンピュータ、バーコードリーダ、ノートPC(ラップトップPC)などを読み取り装置として使用してもよい。読み取り装置におけるカメラ(または撮像素子)およびディスプレイは、プロセッサおよびメモリと同じ筐体に収納されていなくてもよい。真贋判定の対象であるコードが2次元コード以外のコード(例えば、一次元バーコードまたはヒューマンリーダブル文字)である場合にも、上記の技術は同様に適用できる。
【0114】
以上のように、本開示は、以下の項目に記載の方法、プログラム、および装置を含む。
【0115】
[項目1]
物品に関連付けられた情報を示すコードの画像データを、プロセッサによって生成する方法であって、
入力された前記情報に基づき、前記情報を示すコードの画像を、物品ごとまたは物品群ごとに異なる態様で改変した画像を示す改変画像データを生成するステップと、
前記改変画像データを記録媒体に記録するステップと、
を含む方法。
【0116】
[項目2]
前記改変画像データが示す画像を、前記物品またはその包装に印刷するステップをさらに含む、項目1に記載の方法。
【0117】
[項目3]
前記生成するステップは、読み取り装置が、改変前の前記画像が示す情報と同じ情報を、前記改変画像データから読み取ることができる態様で前記改変画像データを生成する、項目1または2に記載の方法。
【0118】
[項目4]
前記生成するステップは、前記情報に基づく特定のルールに従い、前記改変画像データの改変の内容を規定する改変用データを決定することを含む、項目1から3のいずれかに記載の方法。
【0119】
[項目5]
前記生成するステップは、
入力された前記情報から、前記情報に対応するハッシュ値を決定し、
予め用意されたテーブルを参照して、前記ハッシュ値から、前記ハッシュ値に対応する前記改変用データを決定することを含む、
項目4に記載の方法。
【0120】
[項目6]
前記改変用データは、前記画像内の少なくとも1つの座標値を示す情報を含み、
前記生成するステップは、前記少なくとも1つの座標値が示す位置に、少なくとも1つのマークを付加することを含む、
項目4または5に記載の方法。
【0121】
[項目7]
前記マークは、前記画像における前記コードの領域の内部または外部に付加される記号、図形、または文字である、項目6に記載の方法。
【0122】
[項目8]
前記コードは、1次元または2次元のバーコード、およびヒューマンリーダブル文字の少なくとも一方を含み、
前記改変用データは、前記バーコードまたは前記ヒューマンリーダブル文字の、前記画像内の基準位置からの変位量を示す情報を含み、
前記生成するステップは、前記改変用データに基づいて、前記バーコードまたは前記ヒューマンリーダブル文字の、前記画像データ内における位置を変化させることを含む、
項目4から7のいずれかに記載の方法。
【0123】
[項目9]
前記コードは、1次元または2次元のバーコードおよびヒューマンリーダブル文字を含み、
前記改変用データは、前記ヒューマンリーダブル文字の、前記画像内の基準位置からの変位量を示す情報を含み、
前記生成するステップは、前記改変用データに基づいて、前記バーコードと前記ヒューマンリーダブル文字との相対位置を変化させることを含む、
項目4から8のいずれかに記載の方法。
【0124】
[項目10]
前記コードは、1次元または2次元のバーコードおよびヒューマンリーダブル文字を含み、
前記改変用データは、前記ヒューマンリーダブル文字の、基準角度からの角度の変化量を示す情報を含み、
前記生成するステップは、前記改変用データに基づいて、前記ヒューマンリーダブル文字の角度を変化させることを含む、
項目4から9のいずれかに記載の方法。
【0125】
[項目11]
前記コードは、ヒューマンリーダブル文字を含み、
前記改変用データは、前記ヒューマンリーダブル文字のフォントを示す情報を含み、
前記生成するステップは、前記改変用データに基づいて、前記ヒューマンリーダブル文字のフォントを変化させることを含む、
項目4から10のいずれかに記載の方法。
【0126】
[項目12]
前記コードは、N個(Nは20以上の整数)のセルを含む2次元バーコードであり、
前記改変用データは、前記画像内のn個(nは2以上N/10以下の整数)の座標値を示す情報を含み、
前記生成するステップは、前記n個の座標値が示す位置に、n個のマークを付加することを含み、前記n個の座標値の組み合わせは、前記コードが示す前記情報によって異なる、
項目4から11のいずれかに記載の方法。
【0127】
[項目13]
前記改変するステップは、前記コードの領域の内部または外部に、読み取りに影響を及ぼさない態様で、少なくとも1つのマークを付加することを含む、項目1から4のいずれかに記載の方法。
【0128】
[項目14]
前記コードは、1次元または2次元のバーコード、およびヒューマンリーダブル文字の
少なくとも一方を含み、
前記生成するステップは、前記バーコードまたは前記ヒューマンリーダブル文字の、前記画像内における位置を変化させることを含む、
項目1から4、および13のいずれかに記載の方法。
【0129】
[項目15]
前記生成するステップは、前記コードの画像に、キャラクタマークを付加することを含み、
前記キャラクタマークの位置、角度、フォント、および内容の少なくとも1つは、物品ごとまたは物品群ごとに異なる、
項目1から14のいずれかに記載の方法。
【0130】
[項目16]
前記物品は製造物であり、
前記物品に関連付けられた前記情報は、商品コード、製造年月日、消費期限、ロット番号、およびシリアル番号の少なくとも1つを含み、
前記生成するステップは、前記商品コードごと、前記ロット番号ごと、または前記シリアル番号ごとに異なる態様で、前記画像を改変する、
項目1から15のいずれかに記載の方法。
【0131】
[項目17]
物品に関連付けられた情報を示すコードの画像データを、生成するためのプログラムであって、コンピュータに、
入力された前記情報に基づき、前記情報を示すコードの画像を、物品ごとまたは物品群ごとに異なる態様で改変した画像を示す改変画像データを生成するステップと、
前記改変画像データを、前記物品に関連付けて記録媒体に記録するステップと、
を実行させるプログラム。
【0132】
[項目18]
物品に関連付けられた情報を示すコードの画像データを生成する装置であって、
プロセッサと、
前記プロセッサによって実行されるコンピュータプログラムを格納したメモリと、
を備え、
前記コンピュータプログラムは、前記プロセッサに、
入力された前記情報に基づき、前記情報を示すコードの画像を、物品ごとまたは物品群ごとに異なる態様で改変した画像を示す改変画像データを生成するステップと、
前記改変画像データを、前記物品に関連付けて記録媒体に記録するステップと、
を実行させる装置。
【0133】
[項目19]
物品に印刷されたコードを撮影して得られる第1の画像データを取得するステップAと、
項目1から16のいずれかに記載の方法によって生成された前記改変画像データである第2の画像データ、または前記第2の画像データの改変内容を規定する改変用データを記録媒体から取得するステップBと、
前記第1の画像データと、前記第2の画像データまたは前記改変用データとに基づいて、前記第1の画像データにおける前記コードが、正規のコードであるか否かを判定するステップCと、
判定結果を示すデータを出力するステップDと、
を含む真贋判定方法。
【0134】
[項目20]
前記ステップAは、前記第1の画像データを取得した読み取り装置からネットワークを介して前記第1の画像データを取得することを含み、
前記ステップDは、前記読み取り装置に前記ネットワークを介して前記判定結果を示すデータを送信することを含む、
項目19に記載の真贋判定方法。
【0135】
[項目21]
前記ステップA、前記ステップB、前記ステップC、および前記ステップDは、カメラ、プロセッサ、前記記録媒体を備えた読み取り装置における前記プロセッサによって実行され、
前記ステップAは、前記カメラから前記第1の画像データを取得することを含み、
前記ステップBは、前記第2の画像データまたは前記改変用データを前記記録媒体から取得することを含む、
項目19に記載の真贋判定方法。
【0136】
[項目22]
前記読み取り装置は、ディスプレイをさらに備え、
前記ステップDは、前記ディスプレイに、前記判定結果を表示させることを含む、項目20または21に記載の真贋判定方法。
【0137】
[項目23]
コンピュータに、
物品に印刷されたコードを撮影して得られる第1の画像データを取得するステップAと、
項目1から16のいずれかに記載の方法によって生成された前記改変画像データである第2の画像データ、または前記第2の画像データの改変内容を規定する改変用データを記録媒体から取得するステップBと、
前記第1の画像データと、前記第2の画像データまたは前記改変用データとに基づいて、前記第1の画像データにおける前記コードが、正規のコードであるか否かを判定するステップCと、
判定結果を示すデータを出力するステップDと、
を実行させるプログラム。
【解決手段】物品に関連付けられた情報を示すコードの画像データを生成する方法は、入力された前記情報に基づき、前記情報を示すコードの画像を、物品ごとまたは物品群ごとに異なる態様で改変した画像を示す改変画像データを生成するステップと、改変後の前記画像データを記録媒体に記録するステップと、を含む。