しかしながら、上記特許文献1に開示される技術によると、特定の者にのみ読み取りを可能にする画地や道路の地下情報については、暗号の入力を条件にデコードを可能にしている。このため、暗号の登録や照合といった個人認証のためのソフトウェアを二次元コードの読取装置に持たせる必要があるほか、このような二次元コードを読み取るたびに、入力インターフェースを介して暗号入力を強いられることから、操作が煩雑となって操作性が低下するという問題がある。
また、このような暗号の入力を促す二次元コードは、通常の二次元コードの生成装置では生成できないことから、通常の二次元コードに対して専用のフォーマットを設定したり、また専用の生成ソフトを開発したりする必要が生じる。このため、このような暗号化された二次元コードの生成や解読(デコード)には、新たなシステム開発が伴うことから、導入に際して相当の開発費が必要となるという問題がある。
本発明は、上述した課題を解決するためになされたものであり、その目的とするところは、通常では読めない二次元コードを簡易に提供し得る二次元コードの表示方法、QRコード、表示媒体、プログラムを実現することにある。
また、本発明の別の目的は、通常では読めない二次元コードを簡易に読み取り得る二次元コード読取装置を実現することにある。
上記目的を達成するため、特許請求の範囲に記載の請求項1の二次元コードの表示方法では、位置検出パターンを有する二次元コードを表示媒体に表示する二次元コードの表示方法であって、前記二次元コードを表裏反対に前記表示媒体に表示することを技術的特徴とする。なお、位置検出パターンは、「切り出しシンボル」とも称する。
特許請求の範囲に記載の請求項2の二次元コードの表示方法では、請求項1記載の二次元コードの表示方法において、前記二次元コードの表示領域が矩形状で、前記位置検出パターンが当該矩形状の四隅のうちの3箇所に位置する二次元コードの表示方法であって、
前記矩形状の対角に位置する前記位置検出パターンを通る対角線を回転軸として前記二次元コードを回転させたように、前記二次元コードを表裏反対に前記表示媒体に表示することを技術的特徴とする。
特許請求の範囲に記載の請求項3の二次元コードの表示方法では、請求項1記載の二次元コードの表示方法において、前記二次元コードの表示領域が矩形状で、前記位置検出パターンが当該矩形状の四辺のうちの隣接する二辺に沿った線状に位置する二次元コードの表示方法であって、前記位置検出パターンの位置する辺をほぼ垂直に通る直線を回転軸として前記二次元コードを回転させたように、前記二次元コードを表裏反対に前記表示媒体に表示することを技術的特徴とする。
特許請求の範囲に記載の請求項4の二次元コードの表示方法では、請求項1または2記載の二次元コードの表示方法において、前記二次元コードはQRコードであり、前記表裏反対に表示される前記二次元コードの正面左上隅には、前記位置検出パターンが位置していないことを技術的特徴とする。
特許請求の範囲に記載の請求項5の二次元コードの表示方法では、請求項1または3記載の二次元コードの表示方法において、前記二次元コードはデータマトリクスであり、前記表裏反対に表示される前記二次元コードの正面左側辺および正面下側辺には、前記位置検出パターンが位置していないことを技術的特徴とする。なお、データマトリクスは、「データコード」とも称する。
特許請求の範囲に記載の請求項6の二次元コードの表示方法では、請求項1〜5のいずれか一項に記載の二次元コードの表示方法において、前記表裏反対に表示される前記二次元コードの近傍に、当該二次元コードは正常な読み取りができない旨を前記表示媒体に表示することを技術的特徴とする。
特許請求の範囲に記載の請求項7のQRコードでは、表示媒体に表裏反対に表示されるQRコードであって、当該QRコードが表示される表示領域の正面左上隅には、当該QRコードの位置検出パターンが位置していないことを技術的特徴とする。
特許請求の範囲に記載の請求項8の表示媒体では、請求項7記載のQRコードが表示される表示媒体であって、前記QRコードは正常な読み取りができない旨の表示を備えていることを技術的特徴とする。
特許請求の範囲に記載の請求項9のプログラムでは、位置検出パターンを有する二次元コードを表裏反対に生成する生成手段、および、二次元コードを表示媒体に表示可能な出力装置に対して前記生成手段により生成された表裏反対の二次元コードを表示させるように制御する出力制御手段、としてコンピュータを機能させることを技術的特徴とする。
特許請求の範囲に記載の請求項10のプログラムでは、請求項9記載のプログラムにおおいて、前記生成手段は、そのまま前記表示媒体に表示させたとすれば、通常にデコード可能な通常コードを生成する通常コード生成手段と、前記通常コードを表裏反対に反転させ通常にデコード不可能な反転コードを、前記表裏反対の二次元コードとして生成する反転コード生成手段と、を備えることを技術的特徴とする。
特許請求の範囲に記載の請求項11のプログラムでは、請求項10記載のプログラムにおいて、前記通常コードを前記表示媒体に表示させたとすれば、その表示領域が矩形状で、前記位置検出パターンが当該矩形状の四隅のうちの3箇所に位置する場合において、前記反転コード生成手段は、前記矩形状の対角に位置する前記位置検出パターンを通る対角線を回転軸として前記通常コードを回転させたように、前記通常コードを表裏反対に反転させることを技術的特徴とする。
特許請求の範囲に記載の請求項12のプログラムでは、請求項10記載のプログラムにおいて、前記通常コードを前記表示媒体に表示させたとすれば、その表示領域が矩形状で、前記位置検出パターンが当該矩形状の四辺のうちの隣接する二辺に沿った線状に位置する場合において、前記反転コード生成手段は、前記位置検出パターンの位置する辺をほぼ垂直に通る直線を回転軸として前記通常コードを回転させたように、前記通常コードを表裏反対に反転させることを技術的特徴とする。
特許請求の範囲に記載の請求項13のプログラムでは、請求項10または11記載のプログラムにおいて、前記通常コードはQRコードであり、前記二次元コードを前記表示媒体に表示させた場合、前記表示媒体に表示された二次元コードの正面左上隅には、前記位置検出パターンが位置していないことを技術的特徴とする。
特許請求の範囲に記載の請求項14のプログラムでは、請求項10または12記載のプログラムにおいて、前記通常コードはデータマトリクスであり、前記二次元コードを前記表示媒体に表示させた場合、前記表示媒体に表示された二次元コードの正面左側辺および正面下側辺には、前記位置検出パターンが位置していないことを技術的特徴とする。
特許請求の範囲に記載の請求項15のプログラムでは、請求項9〜14のいずれか一項に記載のプログラムにおいて、前記出力制御手段は、前記表示媒体に前記表裏反対に表示させる二次元コードの近傍に、当該二次元コードは正常な読み取りができない旨を表示するように前記出力装置を制御することを技術的特徴とする。
特許請求の範囲に記載の請求項16の二次元コード読取装置では、位置検出パターンを有する二次元コードで表裏反対に表示媒体に反転表示された反転コードを読取り可能な二次元コード読取装置であって、前記反転コードの鏡像を映す鏡手段と、前記鏡手段に映された前記反転コードの鏡像を撮像する撮像手段と、前記撮像手段により撮像された前記反転コードの鏡像の画像情報に基づいて前記二次元コードとして符号化された情報を復号する復号手段と、前記復号手段により復号された情報を外部に出力する出力手段と、を備えることを技術的特徴とする。
特許請求の範囲に記載の請求項17の二次元コード読取装置では、位置検出パターンを有する二次元コードで表裏反対に表示媒体に反転表示された反転コードを読取り可能な二次元コード読取装置であって、前記反転コードを撮像する撮像手段と、前記撮像手段により撮像された前記反転コードの画像情報を前記反転コードの鏡像の画像情報に変換する変換手段と、前記変換手段により前記反転コードの鏡像の画像情報に基づいて前記二次元コードとして符号化された情報を復号する復号手段と、前記復号手段により復号された情報を外部に出力する出力手段と、を備えることを技術的特徴とする。
特許請求の範囲に記載の請求項18の二次元コード読取装置では、請求項17記載の二次元コード読取装置において、前記変換手段は、格納位置を二次元情報で特定可能な配列相当に画像情報を蓄積する蓄積手段と、前記反転コードの画像情報を前記蓄積手段に格納する格納手段と、前記蓄積手段から取り出した前記反転コードの画像情報が前記反転コードの鏡像になる順番で、前記蓄積手段から当該画像情報を取り出す取出手段と、を備えることを技術的特徴とする。
特許請求の範囲に記載の請求項19の二次元コード読取装置では、請求項17記載の二次元コード読取装置において、前記変換手段は、格納位置を二次元情報で特定可能な配列相当に画像情報を蓄積する蓄積手段と、前記蓄積手段に蓄積された画像情報を所定の順番で取り出す取出手段と、前記所定の順番で前記蓄積手段から取り出した前記画像情報が前記反転コードの鏡像になるように、前記反転コードの画像情報を前記蓄積手段に格納する格納手段と、を備えることを技術的特徴とする。
請求項1の発明(二次元コードの表示方法)では、位置検出パターンを有する二次元コードを表裏反対に表示媒体に表示する。これにより、表裏反対に表示媒体に表示される二次元コードは、当該位置検出パターンに対する位置関係も表裏反転するので、表裏反転した位置検出パターンに基づいて二次元コードの内容をデコードしようとしても、正常にデコードすることが困難となる。したがって、通常では読めない二次元コードを簡易に提供することができる。また、表裏反転した二次元コードを鏡に映すことによってできる二次元コードの鏡像をデコードすれば正常に読み取ることができるので、操作性を低下させることなく当該二次元コードを読み取ることが可能となる。
請求項2の発明(二次元コードの表示方法)では、矩形状の対角に位置する位置検出パターンを通る対角線を回転軸として二次元コードを回転させたように、二次元コードを表裏反対に表示媒体に表示する。これにより、表裏反対に表示媒体に表示される二次元コードは、当該矩形状の四隅のうち、本来、存在することのない隅に位置検出パターンが位置しているので、「表裏反転しているもの」と「表裏反転していないもの」とを視覚的に容易に区別することができる。したがって、当該二次元コードを読み取ろうとしている読取り作業者等に対して当該二次元コードが通常のものでなく、反転していることを積極的に知らせ、また注意を促すことができる。
請求項3の発明(二次元コードの表示方法)では、位置検出パターンの位置する辺をほぼ垂直に通る直線を回転軸として二次元コードを回転させたように、二次元コードを表裏反対に表示媒体に表示する。これにより、表裏反対に表示媒体に表示される二次元コードは、当該矩形状の四辺のうち、本来、存在することのない二辺に沿って線状に位置検出パターンが位置しているので、「表裏反転しているもの」と「表裏反転していないもの」とを視覚的に容易に区別することができる。したがって、当該二次元コードを読み取ろうとしている読取り作業者等に対して当該二次元コードが通常のものでなく、反転していることを積極的に知らせ、また注意を促すことができる。
請求項4の発明(二次元コードの表示方法)では、二次元コードはQRコードであり、表裏反対に表示される二次元コードの正面左上隅には、位置検出パターンが位置していない。これにより、表裏反対に表示媒体に表示されるQRコードは、当該矩形状の四隅のうち、本来、存在するはずの正面左上隅に位置検出パターンが位置していないので、「表裏反転しているQRコード」と「表裏反転していないQRコード」とを視覚的に容易に区別することができる。したがって、当該QRコードを読み取ろうとしている読取り作業者等に対して当該QRコードが通常のものでなく、反転していることを積極的に知らせ、また注意を促すことができる。
請求項5の発明(二次元コードの表示方法)では、二次元コードはデータマトリクスであり、表裏反対に表示される二次元コードの正面左側辺および正面下側辺には、位置検出パターンが位置していない。これにより、表裏反対に表示媒体に表示されるデータマトリクスは、当該矩形状の四辺のうち、本来、存在するはずの正面左側辺および正面下側辺に沿って線状に位置検出パターンが位置していないので、「表裏反転しているデータマトリクス」と「表裏反転していないデータマトリクス」とを視覚的に容易に区別することができる。したがって、当該データマトリクスを読み取ろうとしている読取り作業者等に対して当該データマトリクスが通常のものでなく、反転していることを積極的に知らせ、また注意を促すことができる。
請求項6の発明(二次元コードの表示方法)では、表裏反対に表示される二次元コードの近傍に、当該二次元コードは正常な読み取りができない旨を表示媒体に表示する。これにより、当該二次元コードは正常なものではなく、そのままでは読み取りができない旨を読取り作業者等に視覚的かつ言語的に告知できる。したがって、外観上、区別のつきにくい「表裏反転しているもの」と「表裏反転していないもの」との差異を明確にできるので反転した二次元コードが正常な二次元コードであるとの誤解を避けることができる。
請求項7の発明(QRコード)では、当該QRコードが表示される表示領域の正面左上隅には、当該QRコードの位置検出パターンが位置していない。これにより、当該QRコードは、位置検出パターンに対する位置関係も表裏反転するので、表裏反転した位置検出パターンに基づいてQRコードの内容をデコードしようとしても、正常にデコードすることが困難となる。また、本来、存在するはずの正面左上隅に位置検出パターンが位置していないので、「表裏反転しているQRコード」と「表裏反転していないQRコード」とを視覚的に容易に区別することができる。したがって、通常では読めないQRコードを簡易に提供することができ、反転していることを当該QRコードを読み取ろうとしている読取り作業者等に対して、積極的に知らせ、また注意を促すことができる。また、表裏反転したQRコードを鏡に映すことによってできるQRコードの鏡像をデコードすれば正常に読み取ることができるので、操作性を低下させることなく当該QRコードを読み取ることが可能となる。
請求項8の発明(表示媒体)では、QRコードは正常な読み取りができない旨の表示を備えている。これにより、当該QRコードは正常なものではなく、そのままでは読み取りができない旨を読取り作業者等に視覚的かつ言語的に告知できる。したがって、外観上、区別のつきにくい「表裏反転しているQRコード」と「表裏反転していないQRコード」との差異を明確にできるので、当該反転したQRコードが正常なQRコードであるとの誤解を避けることができる。
請求項9の発明(プログラム)では、コンピュータを、生成手段により位置検出パターンを有する二次元コードを表裏反対に生成するように機能させ、出力制御手段により二次元コードを表示媒体に表示可能な出力装置に対して生成手段により生成された表裏反対の二次元コードを表示させるように制御する。これにより、表示媒体には、表裏反対に表示された二次元コードが出力されるので、この出力された二次元コードは、当該位置検出パターンに対する位置関係も表裏反転するので、表裏反転した位置検出パターンに基づいて二次元コードの内容をデコードしようとしても、正常にデコードすることが困難となる。したがって、通常では読めない二次元コードを簡易に提供することができる。また、表裏反転した二次元コードを鏡に映すことによってできる二次元コードの鏡像をデコードすれば正常に読み取ることができるので、操作性を低下させることなく当該二次元コードを読み取ることが可能となる。
請求項10の発明(プログラム)では、通常コード生成手段によりそのまま表示媒体に表示させたとすれば、通常にデコード可能な通常コードを生成し、反転コード生成手段により通常コードを表裏反対に反転させ通常にデコード不可能な反転コードを、表裏反対の二次元コードとして生成する。これにより、通常コードを生成してから、当該通常コードを表裏反対に反転させて反転コードを生成すれば良いので、例えば、メモリ配置上で、アドレス変換するといった比較的容易にアルゴリズムによって反転コードを生成することができる。したがって、通常コードを暗号化してそれをまた二次元コードに変換するよりも簡素な構成によりプログラムが実現できるので、導入に際してのシステム開発費等を低減することができる。
請求項11の発明(プログラム)では、反転コード生成手段は、矩形状の対角に位置する位置検出パターンを通る対角線を回転軸として通常コードを回転させたように、通常コードを表裏反対に反転させる。これにより、表裏反対に反転された二次元コードは、当該矩形状の四隅のうち、本来、存在することのない隅に位置検出パターンが位置しているので、「表裏反転しているもの」と「表裏反転していないもの」とを視覚的に容易に区別することができる。したがって、当該二次元コードを読み取ろうとしている読取り作業者等に対して当該二次元コードが通常のものでなく、反転していることを積極的に知らせ、また注意を促すことができる。
請求項12の発明(プログラム)では、反転コード生成手段は、位置検出パターンの位置する辺をほぼ垂直に通る直線を回転軸として通常コードを回転させたように、通常コードを表裏反対に反転させる。これにより、表裏反対に反転された二次元コードは、当該矩形状の四辺のうち、本来、存在することのない二辺に沿って線状に位置検出パターンが位置しているので、「表裏反転しているもの」と「表裏反転していないもの」とを視覚的に容易に区別することができる。したがって、当該二次元コードを読み取ろうとしている読取り作業者等に対して当該二次元コードが通常のものでなく、反転していることを積極的に知らせ、また注意を促すことができる。
請求項13の発明(プログラム)では、通常コードはQRコードであり、二次元コードを表示媒体に表示させた場合、表示媒体に表示された二次元コードの正面左上隅には、位置検出パターンが位置していない。これにより、表裏反対に表示媒体に表示されるQRコードは、当該矩形状の四隅のうち、本来、存在するはずの正面左上隅に位置検出パターンが位置していないので、「表裏反転しているQRコード」と「表裏反転していないQRコード」とを視覚的に容易に区別することができる。したがって、当該QRコードを読み取ろうとしている読取り作業者等に対して当該QRコードが通常のものでなく、反転していることを積極的に知らせ、また注意を促すことができる。
請求項14の発明(プログラム)では、通常コードはデータマトリクスであり、二次元コードを表示媒体に表示させた場合、表示媒体に表示された二次元コードの正面左側辺および正面下側辺には、位置検出パターンが位置していない。これにより、表裏反対に表示媒体に表示されるデータマトリクスは、当該矩形状の四辺のうち、本来、存在するはずの正面左側辺および正面下側辺に沿って線状に位置検出パターンが位置していないので、「表裏反転しているデータマトリクス」と「表裏反転していないデータマトリクス」とを視覚的に容易に区別することができる。したがって、当該データマトリクスを読み取ろうとしている読取り作業者等に対して当該データマトリクスが通常のものでなく、反転していることを積極的に知らせ、また注意を促すことができる。
請求項15の発明(プログラム)では、出力制御手段は、表示媒体に表裏反対に表示させる二次元コードの近傍に、当該二次元コードは正常な読み取りができない旨を表示するように出力装置を制御する。これにより、当該二次元コードは正常なものではなく、そのままでは読み取りができない旨を読取り作業者等に視覚的かつ言語的に告知できる。したがって、外観上、区別のつきにくい「表裏反転しているもの」と「表裏反転していないもの」との差異を明確にできるので反転した二次元コードが正常な二次元コードであるとの誤解を避けることができる。
請求項16の発明(二次元コード読取装置)では、鏡手段により反転コードの鏡像を映し、撮像手段により鏡手段に映された反転コードの鏡像を撮像し、撮像手段により撮像された反転コードの鏡像の画像情報に基づいて二次元コードとして符号化された情報を復号手段により復号し、復号手段により復号された情報を出力手段により外部に出力する。つまり、撮像手段により撮像される像は、鏡手段により反転された鏡像になるので、鏡手段により映される二次元コードが反転コードである場合には、その鏡像は鏡手段により反転された反転コードの鏡像、即ち通常コード(反転されてないもの)になる。このため、撮像手段、復号手段および出力手段からなる既存の二次元コード読取装置に、このような鏡手段を付加するだけで、反転した二次元コードを読み取ることができる。したがって、通常では読めない二次元コードを簡易に読み取ることができる。
請求項17の発明(二次元コード読取装置)では、撮像手段により反転コードを撮像し、撮像手段により撮像された反転コードの画像情報を変換手段により反転コードの鏡像の画像情報に変換し、変換手段により反転コードの鏡像の画像情報に基づいて二次元コードとして符号化された情報を復号手段により復号し、復号手段により復号された情報を出力手段により外部に出力する。つまり、変換手段により変換された反転コードの鏡像は、通常コード(反転されてないもの)になるので、撮像手段、復号手段および出力手段からなる既存の二次元コード読取装置に、このような変換手段を付加するだけで、反転した二次元コードを読み取ることができる。したがって、通常では読めない二次元コードを簡易に読み取ることができる。
請求項18の発明(二次元コード読取装置)では、変換手段は、格納手段、蓄積手段および取出手段を備え、格納位置を二次元情報で特定可能な配列相当に蓄積手段に蓄積された反転コードの画像情報は、蓄積手段から取り出した反転コードの画像情報が反転コードの鏡像になる順番で、蓄積手段から取り出される。これにより、蓄積手段から取り出された反転コードの画像情報は、反転コードの鏡像、即ち通常コード(反転されてないもの)になる。このため、撮像手段、復号手段および出力手段からなる既存の二次元コード読取装置に、このような変換手段を付加するだけで、反転した二次元コードを読み取ることができる。したがって、通常では読めない二次元コードを簡易に読み取ることができる。
請求項19の発明(二次元コード読取装置)では、変換手段は、格納手段、蓄積手段および取出手段を備え、所定の順番で蓄積手段から取り出した画像情報が反転コードの鏡像になるように蓄積手段に格納された反転コードの画像情報は、所定の順番で、当該蓄積手段から取り出される。これにより、蓄積手段から取り出された反転コードの画像情報は、反転コードの鏡像、即ち通常コード(反転されてないもの)になる。このため、撮像手段、復号手段および出力手段からなる既存の二次元コード読取装置に、このような変換手段を付加するだけで、反転した二次元コードを読み取ることができる。したがって、通常では読めない二次元コードを簡易に読み取ることができる。
以下、本発明の二次元コードの表示方法、QRコード、表示媒体、プログラムおよび二次元コード読取装置の実施形態について図を参照して説明する。まず、本発明の二次元コードの表示方法、QRコード、表示媒体およびプログラムに係る実施形態を図1〜図5に基づいて説明する。
図1(A) に示すように、本実施形態に係る二次元コードの表示方法では、最初に、二次元コードとして、位置検出パターンFPa,FPb,FPcを有するQRコードQa(Q)を例示して説明する(以下、このQRコードの例を「第1例」という)。
QRコードは、その表示領域Sが矩形状(ほぼ正方形状)で、当該矩形状の左上隅、右上隅、左下隅に、位置検出パターンFPa,FPb,FPcが位置するように表示された状態が「QRコードの正面」として、社会一般では認知されている。また、QRコードの基本仕様(日本工業規格;JIS X 0510:2004、図1(QRコードシンボルの例))にも、このような表示態様でQRコードが例示されている。このため、以下、本実施形態では、図1(A) および図1(B) の紙面左側や図2(A) 、図2(B) 等に示す表示状態(矩形状の左上隅、右上隅、左下隅に、位置検出パターンが存在する表示状態)を「QRコードの正面」とする。
このように、QRコードQaでは、表示領域Sの四隅のうちの3箇所に位置検出パターンFPa,FPb,FPcが位置することから、当該表示領域Sの対角に位置する位置検出パターンFPb・FPcを通る対角線を回転軸αとしてQRコードQaを回転させたように、当該QRコードQaを表裏反対に表示媒体Pに表示する。
これにより、図1(A) の紙面右側に示すように、表示媒体Pに表示されるQRコードRaは、表裏反対に反転したものとなるため、矩形状の表示領域Sの右下隅に位置検出パターンFPa、同右上隅に位置検出パターンFPb、同左下隅に位置検出パターンFPcがそれぞれ位置することとなり、当該矩形状の四隅のうち、本来、存在するはずの正面左上隅に位置検出パターンFPa(FPb,FPc)が位置しない。また、本来、存在するはずのない正面右下隅に位置検出パターンFPaが位置する。このため、「表裏反転しているもの」と「表裏反転していないもの」とを視覚的に容易に区別することができる。
例えば、図2(A) に示すように表裏反転されていない通常のQRコードQaを前述した正面に向けて表示したものと、図2(B) に示すように表裏反転されている反転のQRコードRaをQRコードの正面相当に向けて表示したものと、を比較すると、QRコードの専門家でない限り、両者を視覚的に区別することは極めて困難であることがわかる。なお、図2(B) に示す反転したQRコードRaは、同図を時計回りまたは反時計回りに180°回転させることで、図1(B) に示すαを軸に表裏回転させて反転したものと一致する。
このように、位置検出パターンFPb・FPcを通る対角線を回転軸αとして、QRコードQaを回転させることで、本来、存在するはずの正面左上隅にいずれの位置検出パターンFPa〜FPcも位置しない一方、本来、存在するはずのない正面右下隅に位置検出パターンFPaが位置する。これにより、図2(B) に示すような通常のQRコードQaと紛らわしいコードとして反転したQRコードRaを生成することを防ぐことができる。したがって、反転したQRコードRaを読み取ろうとしている読取り作業者等に対して当該QRコードRaが通常のものでなく、反転していることを積極的に知らせ、また注意を促すことができる。
また、反転したQRコードRa(図2(B) )は、図3(A) に示すように、位置検出パターンFPa,FPb,FPc、タイミングパターンTPやアライメントパターンAP、そしてクワイエットゾーンQZやデータ領域DTのいずれについても、見た目では反転していない通常のQRコードQa(図2(A) )と区別がつかない。ところが、図3(B) に示すように、例えば、2M型のQRコードの場合、データ領域DTを構成するデータコード語D1〜D28や誤り訂正コード語E1〜E16のそれぞれの配置は、「QRコードの正面」に対してQRコードの基本仕様(日本工業規格;JIS X 0510:2004)によって定められている(2M型のQRコードの場合)。
このため、QRコードQaを表裏反転した場合には、位置検出パターンFPa,FPb,FPcやタイミングパターンTP等の配置は表裏同様であっても、データコード語D1等および誤り訂正コード語E1等の配置や並びの方向が表裏では異なることから、例えば、データコード語D4が存在すべき位置に誤り訂正コード語E6等が配置されていたり、8モジュールで1語が構成されているシンボルキャラクタの内容も各モジュールの配置の変更により本来の内容とは全く異なったものに化けてしまう。
したがって、表裏反転したQRコードRaを通常の二次元コードリーダで読み取ろうとしても、QRコードの存在までは確認できるかもしれないが、誤り訂正コード語E1等自体もデータ化けを起こしているため、誤り訂正機能は正常に働くことなく、正常にデコードすることができない。
このように、QRコードQaを表裏反転することにより、通常では読めないQRコードRaを簡易に提供することができる一方で、当該表裏反転したQRコードRaを鏡に映すことで、反転したQRコードRaが鏡像により表裏反転するので、当該鏡像が通常のQRコードQaとなり、これをデコードすれば正常に読み取ることができる。よって、このように反転したQRコードRaを鏡に映しそれを通常の二次元コードリーダで読み取ることで、操作性を低下させることなく容易に読み取ることが可能となる。
なお、図1(B) に示すように、QRコードQaを、「QRコードの正面」向きで左右方向(矩形状の表示領域Sの辺に平行または垂直)に延びる軸βを回転軸として表裏反転しても良い。この場合には、反転後のQRコードRa’(R)の位置検出パターンFPa,FPb,FPcは、それぞれ左下隅、右下隅、左上隅に位置することから、本来、存在するはずの正面右上隅にいずれの位置検出パターンFPa〜FPcも位置しない一方、本来、存在するはずのない正面右下隅に位置検出パターンFPbが位置する。これにより、図2(B) に示すような通常のQRコードQaと紛らわしいコードとして反転したQRコードRaを生成することを防ぐことができるので、このように「QRコードの正面」向きで左右方向に延びる回転軸βで反転しても、表裏反転していることを積極的に知らせたり、注意を促すことができる。
また、図示されてはいないが、QRコードQaを、「QRコードの正面」向きで上下方向(矩形状の表示領域Sの辺に垂直または平行)に延びる軸を回転軸として表裏反転しても良い。この場合には、反転後のQRコードRの位置検出パターンFPa,FPb,FPcは、それぞれ右上隅、左上隅、右下隅に位置することから、本来、存在するはずの正面左下隅にいずれの位置検出パターンFPa〜FPcも位置しない一方、本来、存在するはずのない正面右下隅に位置検出パターンFPcが位置する。これによっても、図2(B) に示すような通常のQRコードQaと紛らわしいコードとして反転したQRコードRaを生成することを防ぐことができるので、このように「QRコードの正面」向きで上下方向に延びる回転軸で反転しても、表裏反転していることを積極的に知らせたり、注意を促すことができる。
次に、本実施形態に係る二次元コードの表示方法では、図1(C) に示すように、二次元コードとして、2本でL字形状をなす位置検出パターンFPi,FPjを有するデータマトリクスQb(Q)を例示して説明する(以下、このデータマトリクスの例を「第2例」という)。データマトリクス(データコード)は、その表示領域Sが矩形状(ほぼ正方形状)で、当該矩形状の四辺のうちの隣接する二辺に沿った線状に、位置検出パターンFPi,FPj(L字型のガイドセル)が位置するように表示された状態が「データマトリクスの正面」として、社会一般では認知されている。このため、以下、本実施形態では、図1(C) の紙面左側や図2(C) および図2(D) 等に示す表示状態(矩形状の左側辺および下側辺にL字形状に、位置検出パターンが存在する表示状態)を「データマトリクスの正面」とする。
図1(C) に示すように、データマトリクスQbでは、表示領域Sの四辺のうちの2辺に位置検出パターンFPi,FPjが線状に位置することから、位置検出パターンFPiの位置する辺をほぼ垂直(位置検出パターンFPjの位置する辺をほぼ平行)に通る直線を回転軸γとしてデータマトリクスQbを回転させたように、当該データマトリクスQbを表裏反対に表示媒体Pに表示する。
これにより、図1(C) の紙面右側に示すように、表示媒体Pに表示されるデータマトリクスRbは、表裏反対に反転したものとなるため、矩形状の表示領域Sの左側辺に位置検出パターンFPi、同上側辺に位置検出パターンFPjがそれぞれ位置することとなり、当該矩形状の四辺のうち、本来、存在するはずの正面下辺に位置検出パターンFPj(FPi)が位置しない。また、本来、存在するはずのない正面上側辺に位置検出パターンFPjが位置する。このため、「表裏反転しているもの」と「表裏反転していないもの」とを視覚的に容易に区別することができる。
例えば、図2(C) に示すように、表裏反転されていない通常のデータマトリクスQbを前述した正面に向けて表示したものと、図2(D) に示すように、表裏反転されている反転のデータマトリクスRbをデータマトリクスの正面相当に向けて表示したものと、を比較すると、データマトリクスの専門家でない限り、両者を視覚的に区別することは極めて困難であることがわかる。なお、図2(D) に示す反転したデータマトリクスRbは、同図を時計回りに90°または反時計回りに270°回転させてみることで、図1(C) に示すγを軸に表裏回転させて反転したものと一致する。
このように、位置検出パターンFPiを垂直に通る直線を回転軸γとして、データマトリクスQbを回転させることで、本来、存在するはずの正面下側辺にいずれの位置検出パターンFPi,FPjも位置しない一方、本来、存在するはずのない正面上側辺に位置検出パターンFPjが位置する。これにより、図2(D) に示すような通常のデータマトリクスQbと紛らわしいコードとして反転したデータマトリックスRbを生成することを防ぐことができる。したがって、反転したデータマトリクスRbを読み取ろうとしている読取り作業者等に対して当該データマトリクスRbが通常のものでなく、反転していることを積極的に知らせ、また注意を促すことができる。
また、反転したデータマトリクスRb(図2(D) )も、図示してはいないが、L字形状に配置された位置検出パターンFPi,FPjやその内側に配置されるデータ領域のいずれについても、見た目では反転していない通常のデータマトリクスQb(図2(C) )と区別がつかない。ところが、このデータマトリクスも第1例で説明したQRコードと同様に、QRコードQaを表裏反転した場合には、位置検出パターンFPi,FPj等の配置は表裏同様であっても、データコード語や誤り訂正コード語等の配置や並びの方向が表裏では異なることから、表裏反転したデータマトリクスRbを通常の二次元コードリーダで読み取ろうとしても、誤り訂正コード語等自体もデータ化けを起こしているため、誤り訂正機能は正常に働くことなく、正常にデコードすることができない。
このように、データマトリクスQbを表裏反転することにより、通常では読めないデータマトリクスRbを簡易に提供することができる一方で、当該表裏反転したデータマトリクスRbを鏡に映すことで、前述した反転したQRコードRaと同様に、鏡像が通常のデータマトリックスQbとなり、これをデコードすれば正常に読み取ることができる。よって、このように反転したデータマトリクスRbを鏡に映しそれを通常の二次元コードリーダで読み取ることで、操作性を低下させることなく容易に読み取ることが可能となる。
なお、図1(D) に示すように、データマトリクスQbを、「データマトリクスの正面」向きで左上から右下(右下から左上)方向(矩形状の表示領域Sの対角線)に延びる軸δを回転軸として表裏反転しても良い。この場合には、反転後のデータマトリクスRb’(R)の位置検出パターンFPi,FPjは、それぞれ上側辺、右側辺に位置することから、本来、存在するはずの正面左側辺および下側辺にいずれの位置検出パターンFPi,FPjも位置しない一方、本来、存在するはずのない正面上側辺および正面右側に位置検出パターンFPi,FPjが位置する。これにより、図2(D) に示すような通常のデータマトリクスQbaと紛らわしいコードとして反転したデータマトリクスRbを生成することを防ぐことができるので、このように「データマトリクスの正面」向きで矩形状の対角方向に延びる回転軸γで反転しても、表裏反転していることを積極的に知らせたり、注意を促すことができる。
また、図示してはいないが、データマトリクスQbを、「データマトリクスの正面」向きで上下方向(矩形状の下側辺に位置する位置検出パターンFPjに垂直)に延びる軸を回転軸として表裏反転しても良い。この場合には、反転後のデータマトリックスRの位置検出パターンFPi,FPjは、それぞれ右側辺、下側辺に位置することから、本来、存在するはずの正面左側辺にいずれの位置検出パターンFPi,FPjも位置しない一方、本来、存在するはずのない正面右側辺に位置検出パターンFPiが位置する。これによっても、図2(D) に示すような通常のデータマトリクスQbと紛らわしいコードとして反転したデータマトリクスRbを生成することを防ぐことができるので、このように「データマトリクスの正面」向きで上下方向に延びる回転軸で反転しても、表裏反転していることを積極的に知らせたり、注意を促すことができる。
このように、第1例による反転したQRコードRaや第2例による反転したデータマトリクスRbでは、矩形状の表示領域Sの三隅に存在する位置検出パターンFPa〜FPcや矩形状の表示領域Sの二辺にL字型に存在する位置検出パターンFPi,FPjの、表示位置に特徴を持たせることで、反転していない通常のQRコードQaやデータマトリクスQbとの違いを明確にした。
しかし、これに加えて(またはこれとは別に)、例えば、図3(C) に示すように、反転した二次元コードR(QRコードRaやデータマトリクスRb)の近傍に、当該二次元コードRは正常な読取ができない旨の注意書きM、例えば「このコードは読めません」を表示媒体Pに表示しても良い。これにより、これらの二次元コードRの読取り作業者(二次元コードリーダの使用者)に一層明確に、当該二次元コードRが反転している旨を知らせることが可能となる。
続いて、上述した第1例による反転したQRコードRaや第2例による反転したデータマトリクスRbを生成可能な二次元コードジェネレータ1,1’の構成およびその制御プログラム(コンピュータプログラム)を図4および図5に基づいて説明する。なお、ここでは、本実施形態に係る二次元コードジェネレータとして、パソコン本体2にラベルプリンタ6を接続した構成(図4(A) )と、パソコン本体2に二次元コード表示装置7を接続した構成(図4(B) )、をそれぞれ説明する。
図4(A) に示すように、二次元コードジェネレータ1は、パソコン本体2、ディスプレィ3およびラベルプリンタ6から構成されている。パソコン本体2は、図略の、MPU、メインメモリ(主記憶装置)、ハードディスク(補助記憶装置)、入出力インタフェース、通信インタフェース、キーボード、ポインティングデバイス等からなる情報処理装置で、またディスプレィ3は、パソコン本体2に接続されることによりパソコン本体2から出力される情報を画面表示可能な情報表示装置である。なお、パソコン本体2のMPUやメインメモリは、後述する反転コード生成処理を実行する手段に相当し、また当該メインメモリまたはハードディスクには、反転コード生成処理を可能にする制御プログラムが格納されている。
ラベルプリンタ6は、パソコン本体2から出力される反転した二次元コードRの印刷情報に基づいて反転したQRコードRaやデータマトリクスRbを所定のラベル用紙(表示媒体P)等に印字可能な印刷出力装置である。なお、パソコン本体2とラベルプリンタ6との間は、USBやセントロニクス仕様等に準拠したケーブル5が接続されている。これにより、両者間の情報通信、例えばパソコン本体2からラベルプリンタ6に送出される印刷情報のデータ伝送や、ラベルプリンタ6からパソコン本体2に出力されるエラー情報等のデータ伝送を可能にしている。
このように二次元コードジェネレータ1を構成することで、キーボード等から入力されたコード情報(符号化の対象となる情報のこと、以下同じ。)に基づいて、パソコン本体2(反転コード生成処理)により反転された二次元コードRの印刷情報が生成されると、この印刷情報がケーブル5を介してラベルプリンタ6に送出される。これを受けたラベルプリンタ6では、当該印刷情報に基づいて、反転した二次元コードR(QRコードRaやデータマトリクスRb)を所定のラベル用紙(表示媒体P)に印刷することが可能となる(図4(C) 参照)。なお、ラベルプリンタ6に送出される印刷情報を、パソコン本体2のディスプレィ3にその表示情報として出力し画面表示しても良い。
これに対し、図4(B) に示す二次元コードジェネレータ1’は、図4(A) の二次元コードジェネレータ1のラベルプリンタ6に代えて、二次元コード表示装置7を備える構成を採る。即ち、二次元コードジェネレータ1’は、パソコン本体2、ディスプレィ3および二次元コード表示装置7から構成されている。なお、パソコン本体2やディスプレィ3は、図4(A) に示す二次元コードジェネレータ1と同様に構成される。
二次元コード表示装置7は、パソコン本体2から出力される反転した二次元コードRの表示情報に基づいて反転したQRコードRaやデータマトリクスRbを表示画面7a(表示媒体P)に表示可能な画面出力装置である。なお、パソコン本体2と二次元コード表示装置7との間は、USBや10BASE-T (IEEE802.3)仕様等に準拠したケーブル5が接続されている。これにより、両者間の情報通信、例えばパソコン本体2から二次元コード表示装置7に送出される表示情報のデータ伝送や、二次元コード表示装置7からパソコン本体2に出力されるエラー情報等のデータ伝送を可能にしている。
このように二次元コードジェネレータ1’を構成することで、キーボード等から入力されたコード情報に基づいて、パソコン本体2(反転コード生成処理)により反転された二次元コードRの表示情報が生成されると、この表示情報がケーブル5を介して二次元コード表示装置7に送出される。これを受けた二次元コード表示装置7では、当該表示情報に基づいて、反転した二次元コードR(QRコードRaやデータマトリクスRb)を表示画面7a(表示媒体P)に画面表示することが可能となる(図4(C) 参照)。
ここで、このような二次元コードジェネレータ1、1’のパソコン本体2により実行される反転コード生成処理について図5を参照して説明する。なお、この処理は、前述したパソコン本体2のメインメモリやハードディスクに格納された所定の制御プログラムをMPUが読み出して実行することにより実現されるものである。なお、当該所定の制御プログラムは、特許請求の範囲に記載の「プログラム」に相当し得るものである。
図5(A) に示すように、反転コード生成処理では、まずステップS101によりコード情報を入力する処理が行われる。この処理は、パソコン本体2に二次元コードの内容を入力するもので、例えば、キーボードやポインティングデバイス等から入力されるQRコードやデータマトリクス等にエンコード(符号化)されるデータ(情報)が、コード情報としてパソコン本体2に入力される。
次のステップS103では、通常コード生成処理が行われる。この通常コード生成処理は、ステップS101により入力されたコード情報に基づいて通常の二次元コード(QRコードQaやデータマトリクスQb)Qの印刷情報(または表示情報)を生成する処理で、この処理には、データの符号化処理、誤り訂正符号の付加処理、位置検出パターンやタイミングパターン等を付加処理、明モジュールと暗モジュールとのバランスを最適にするマスク処理等が含まれる。詳しくは、QRコードの基本仕様(JIS X 0510:2004)を参照されたい。なお、ステップS103は、特許請求の範囲に記載の「生成手段」、「通常コード生成手段」に相当し得るものである。
続くステップS105では、反転処理が行われる。この処理は、ステップS103により生成された通常の二次元コードQの印刷情報(または表示情報)を表裏反転した二次元コードRに変換する処理で、図1(A) 等を参照して説明したように、表示領域Sの対角に位置する位置検出パターンFPb・FPcを通る対角線を回転軸αとしてQRコードQaを回転させたように、当該QRコードQaを表裏反対に表示媒体Pに表示可能にしたり、あるいは位置検出パターンFPiの位置する辺をほぼ垂直(位置検出パターンFPjの位置する辺をほぼ平行)に通る直線を回転軸γとしてデータマトリクスQbを回転させたように、当該データマトリクスQbを表裏反対に表示媒体Pに表示可能にするものである。なお、ステップS105は、特許請求の範囲に記載の「生成手段」、「反転コード生成手段」に相当し得るものである。
具体的には、例えば、ステップS103の通常コード生成処理により生成される通常の二次元コードQの印刷情報(または表示情報)は、画素単位にアドレスで管理することが可能なものであるため、例えば図5(B) に示すメモリ空間に格納される。このメモリ空間では、アドレスA11に画素データP11,アドレスA12に画素データP12,…,アドレスA21に画素データP21,アドレスA22に画素データP22,…,アドレスA31に画素データP31,アドレスA32に画素データP32,…,アドレスAm1に画素データPm1,アドレスAm2に画素データPm2,…,アドレスAmnに画素データPmnというように、表示媒体Pに印刷(または表示)するm行n列の配列に対応するように各画素データを格納可能にしている。
このため、例えば、図5(C) に示すようなアドレス変換、即ち、アドレスA11に画素データPmn,アドレスA12に画素データP(m-1)n,アドレスA13に画素データP(m-2)n,…,アドレスA21に画素データPm(n-1),アドレスA22に画素データP(m-1)(n-1),アドレスA23に画素データP(m-2)(n-1),…,アドレスAmnに画素データP11というアドレス変換を行う。これにより、表示領域Sの対角線を回転軸αとしてQRコードQaやデータマトリクスQbを回転させたように、当該QRコードQaやデータマトリクスQbを表裏反対に表示媒体Pに表示可能にすることができる。
また、アドレスA11に画素データPm1,アドレスA12に画素データPm2,…,アドレスA1nに画素データPmn,…,アドレスA21に画素データP(m-1)1,アドレスA22に画素データP(m-1)2,…,アドレスA2nに画素データP(m-1)n,…,アドレスA31に画素データP(m-2)1,アドレスA32に画素データP(m-2)2,…,アドレスA3nに画素データP(m-2)n,…,アドレスAm1に画素データP11,アドレスAm2に画素データP12,…,アドレスAmnに画素データP1nというアドレス変換を行う。これにより、表示領域Sの上下方向(矩形状の上下側辺に垂直または左右側辺に平行)に延びる軸を回転軸としてQRコードQaやデータマトリクスQbを回転させたように、当該QRコードQaやデータマトリクスQbを表裏反対に表示媒体Pに表示可能にすることができる。
続くステップS107では、出力処理が行われる。この処理は、ステップS105による反転処理により生成された二次元コードR(QRコードRaやデータマトリクスRb)の印刷情報(または表示情報)を所定の出力装置に出力するもので、先の例では、ラベルプリンタ6に印刷情報(図4(A) )、二次元コード表示装置7に表示情報(図4(B) )、をそれぞれ出力する。これにより、反転したQRコードRaやデータマトリクスRbが、ラベルプリンタ6のラベル用紙に印刷されたり、二次元コード表示装置7の表示画面7aに表示される。なお、ステップS107は、特許請求の範囲に記載の「出力制御手段」に相当し得るものである。
なお、このステップS107による出力処理では、前述したように、反転した二次元コードR(QRコードRaやデータマトリクスRb)の近傍に、当該二次元コードRは正常な読取ができない旨の注意書きMを表示媒体Pに印刷(または表示)するようにラベルプリンタ6や二次元コード表示装置7に対し制御情報を出力しても良い。これにより、これらの二次元コードRの読取り作業者(二次元コードリーダの使用者)に一層明確に、当該二次元コードRが反転している旨を知らせることが可能となる。
また、上述した例では、図5(B) 、(C) に示すように、パソコン本体2のメモリ空間を用いてソフトウェア的にアドレス変換を行ったが、これに限られず、例えば、このようなアドレス変換をハードウェアで直接行っても良い。これにより、ソフトウェア的に行う場合に比べて当該変換処理を高速に行うことが可能となる。
さらに、上述した例では、ステップS103により通常コードを生成した後、ステップS105により反転処理を行ったが、これに限られず、例えば、このようなアドレス変換を行うことなく、直接反転した二次元コードRをステップS103により生成するように構成しても良い。これにより、別処理による反転処理が不要になるので、当該反転コード生成処理の処理速度を高速にすることが可能となる。
次に、本発明の二次元コード読取装置の実施形態を図6〜図12に基づいて説明する。
図6(A) に示すように、本実施形態に係る二次元コードリーダ10は、ほぼ直方体形状のケース11と、当該ケース11の一端側に形成される読取口12を覆うように取り付けられるミラーユニット15と、によりその外観形状が構成されている。このケース11の表面には、矩形状の窓穴が形成されており、この窓穴から液晶表示装置46の表示パネルが露出可能に当該液晶表示装置46がケース11内に取り付けられている。また当該ケース11の表面ほぼ中央には押しボタン式の操作スイッチ42が設けられている。
図6(B) に示すように、読取口12を覆うようにケース11に取り付けられるミラーユニット15には、反射ミラー18が内装されているとともに、この反射ミラー18の鏡面18aが外部に露出し得るように開口部13が形成されている。この反射ミラー18は、読取口12から出射する照明光Lfの光路や、読取口12に入射する反射光Lrの光路をケース11内に収容される結像レンズ27や受光センサ23の受光面23aに向けて偏向し得るものである。
このため、本実施形態では、例えば、読取口12の開口面に対して反射ミラー18の鏡面18aがほぼ45度に傾斜して対向するように当該反射ミラー18がミラーユニット15内に取り付けられている。これにより、例えば、図6(A) や図6(B) に示すように、ほぼ垂直に立ち上がる表示媒体PのQRコードRa(二次元コードR)に対してミラーユニット15の開口部13を向けることで、後述の照明光源21から出射される照明光Lfを当該QRコードRaに向けて照射したり、当該QRコードRaに反射した反射光Lrを結像レンズ27を介して受光センサ23に入射させたりすることが可能となる。
このように、二次元コードリーダ10では、読取口12にミラーユニット15を取り付けていることから、ミラーユニット15の反射ミラー18に反射されて結像レンズ27により受光センサ23の受光面23aに結像される像は、表裏反転した鏡像になる。このため、既存のハードウェア構成(光学系やマイコン系)を備えた二次元コードリーダにこのようなミラーユニット15を付加することで、反転したQRコードRa等を反転していない通常のQRコードQa等と同様に読み取ることが可能となる。
ここで、二次元コードリーダ10のハードウェア構成を図7を参照して説明する。
図7に示すように、二次元コードリーダ10は、主に、照明光源21、受光センサ23、結像レンズ27等の光学系と、メモリ35、制御回路40、操作スイッチ42、液晶表示器46等のマイコン系と、電源スイッチ41、電池49等の電源系と、から構成されている。なお、これらは、図略のプリント配線板に実装あるいは図略のハウジング内に内装されている。
光学系は、照明光源21、受光センサ23、結像レンズ27等から構成されている。照明光源21は、照明光Lfを発光可能な照明光源として機能するもので、例えば、赤色のLEDとこのLEDの出射側に設けられる拡散レンズ、集光レンズ等とから構成されている。本実施形態では、受光センサ23を挟んだ両側に照明光源21が設けられており、ケース11の読取口12を介して表示媒体Pに向けて照明光Lfを照射可能に構成されている。この表示媒体Pには、反転した二次元コードRが印刷または表示されている。
受光センサ23は、表示媒体Pや反転した二次元コードRに照射されて反射した反射光Lrを受光可能に構成されるもので、例えば、C−MOSやCCD等の固体撮像素子である受光素子を2次元に配列したエリアセンサが、これに相当する。この受光センサ23の受光面23aは、前述したミラーユニット15が付いていない状態では、ケース11外から読取口12を介して外観可能に位置しており、受光センサ23は、結像レンズ27を介して入射する入射光をこの受光面23aで受光可能に図略のプリント配線板に実装されている。
結像レンズ27は、外部から読取口12を介して入射する入射光を集光して受光センサ23の受光面23aに像を結像可能な結像光学系として機能するもので、例えば、鏡筒とこの鏡筒内に収容される複数の集光レンズとにより構成されている。本実施形態では、照明光源21から照射された照明光Lfが反転の二次元コードRに反射した後、ミラーユニット15の反射ミラー18に反射して読取口12に入射する反射光Lrを集光することにより、受光センサ23の受光面23aに反転した二次元コードRの鏡像を結像可能にしている。
次に、マイコン系の構成概要を説明する。マイコン系は、増幅回路31、A/D変換回路33、メモリ35、アドレス発生回路36、同期信号発生回路38、制御回路40、操作スイッチ42、LED43、ブザー44、液晶表示器46、通信インタフェース48等から構成されている。このマイコン系は、その名の通り、マイコン(情報処理装置)として機能し得る制御回路40およびメモリ35と中心に構成されるもので、通常の二次元コードQ(反転していない二次元コード)を情報処理するものと同様に構成される。
光学系の受光センサ23から出力される画像信号(アナログ信号)は、増幅回路31に入力されることで所定ゲインで増幅された後、A/D変換回路33に入力されると、アナログ信号からディジタル信号に変換される。そして、ディジタル化された画像信号、つまり画像データ(画像情報)は、メモリ35に入力されると、画像データ蓄積領域に蓄積される。なお、同期信号発生回路38は、受光センサ23およびアドレス発生回路36に対する同期信号を発生可能に構成されており、またアドレス発生回路36は、この同期信号発生回路38から供給される同期信号に基づいて、メモリ35に格納される画像データの格納アドレスを発生可能に構成されている。
メモリ35は、半導体メモリ装置で、例えばRAM(DRAM、SRAM等)やROM(EPROM、EEPROM等)がこれに相当する。このメモリ35のうちのRAMには、前述した画像データ蓄積領域のほかに、制御回路40が算術演算や論理演算等の各処理時に利用する作業領域等も確保可能に構成されている。またROMには、後述する読取処理等を実行可能な所定プログラムやその他、照明光源21、受光センサ23等の各ハードウェアを制御可能なシステムプログラム等が予め格納されている。
制御回路40は、二次元コードリーダ10全体を制御可能なマイコンで、CPU、システムバス、入出力インタフェース等からなり、メモリ35とともに情報処理装置を構成し得るもので情報処理機能を有する。この制御回路40には、内蔵された入出力インタフェースを介して種々の入出力装置(周辺装置)と接続可能に構成されており、本実施形態の場合、電源スイッチ41、操作スイッチ42、LED43、ブザー44、液晶表示器46、通信インタフェース48等が接続されている。
これにより、例えば、電源スイッチ41や操作スイッチ42の監視や管理、またインジケータとして機能するLED43の点灯・消灯、ビープ音やアラーム音を発生可能なブザー44の鳴動のオンオフ、さらには読み取った反転の二次元コードRによるコード内容を画面表示可能な液晶表示器46の画面制御や外部装置とのシリアル通信を可能にする通信インタフェース48の通信制御等を可能にしている。なお、通信インタフェース48に接続される外部装置には、当該二次元コードリーダ10の上位システムに相当するホストコンピュータHST等が含まれる。
電源系は、電源スイッチ41、電池49等により構成されており、制御回路40により管理される電源スイッチ41のオンオフによって、上述した各装置や各回路に、電池49から供給される駆動電圧の導通や遮断が制御されている。なお、電池49は、所定の直流電圧を発生可能な2次電池で、例えば、リチウムイオン電池等がこれに相当する。また、電池49によることなく、例えば、通信インタフェース48を介して接続されるホストコンピュータHST等の外部装置から電力供給を受ける構成を採る場合もあり、この場合には当該電池49は不要となる。
このように二次元コードリーダ10を構成することによって、例えば、電源スイッチ41がオンされて所定の自己診断処理等が正常終了し、反転した二次元コードRの読み取りが可能な状態になると、照明光Lfの発光を指示する操作スイッチ42(例えばトリガースイッチ)の入力を受け付ける。これにより、作業者がトリガースイッチを押圧しオンにすることで、制御回路40が同期信号を基準に照明光源21に発光信号を出力するので、当該発光信号を受けた照明光源21は、LEDを発光させて照明光Lfを照射する。
すると、反転の二次元コードRに照射された照明光Lfが反射しその反射光Lrがミラーユニット15および読取口を介して結像レンズ27に入射するため、受光センサ23の受光面23aには、反射ミラー18に反射した二次元コードRの鏡像が結像される。これにより、反転した二次元コードRの鏡像、つまり通常の二次元コードQの像が受光素子を露光する。このため、上述したように、通常の二次元コードQを情報処理するものと同様に構成される、マイコン系(増幅回路31、A/D変換回路33、メモリ35、アドレス発生回路36、同期信号発生回路38、制御回路40等)による読取処理によって当該反転した二次元コードRのデコードが可能となる。
ここで、反転した二次元コードRの読取処理(デコード処理)の概要を図8を参照して説明する。なお、この読取処理は、前述したメモリ35に格納される所定プログラムを制御回路40が逐次実行することによって実現されるもので、表裏反転していない通常の二次元コードQを読み取るものと同様に処理される。
図8に示すように、当該読取処理では、まずステップS501により画像情報取得処理が行われる。この処理は、前述した受光センサ23から出力された画像信号に基づく画像データ(画像情報)をメモリ35の画像データ蓄積領域から取得するもので、当該画像データ蓄積領域には、反転したQRコードRの鏡像(反転したQRコードRを反転したもの)の画像データ、つまり通常のQRコードQの画像データが格納されている。このため、以下説明する当該読取処理では、反転したQRコードRの鏡像を二次元コードQと称することとする。
次のステップS503では、位置検出検出処理が行われる。これまでに説明したように、二次元コードQの場合には、所定の位置検出パターンFPa〜FPcや位置検出パターンFPi,FPjを備えることから、この処理では、ステップS501により取得した画像データの中から、これらの位置検出パターンFPa等を検出することで、当該二次元コードQの位置および範囲を検出する。
続くステップS505では、ステップS503により当該二次元コードQの位置および範囲が検出できたか否かを判断する処理が行われる。これにより、二次元コードQの位置および範囲が検出できた場合には(S505;Yes)、次にステップS507に処理を移行し、位置および範囲が検出できなかった場合には(S505;No)、ステップS513に処理を移行してエラー処理を行う。
次のステップS507では、デコード処理が行われる。この処理は、ステップS503により検出された二次元コードQのデータ範囲に基づいて、所定のアルゴリズムに従って当該二次元コードQのをデコードする。なお、このようなデコード処理としては、例えば、特許第2938338号公報等に公知のものを用いる。
続くステップS509では、ステップS507によるデコード処理に成功したか否かを判断する処理が行われる。これにより、デコードに成功している場合には(S509;Yes)には、次のステップS511に処理を移行し、デコードに成功していない(失敗している)場合には(S509;No)には、ステップS513に処理を移行してエラー処理を行う。
次のステップS511では、出力処理が行われる。この処理は、ステップS507によりデコードされた結果を、メモリ35の所定領域を介して文字データ等として液晶表示装置46に出力したり、所定のフォーマットに適合させた伝送データとして通信インタフェース48を介して外部のホストコンピュータHSTに出力する。
なお、ステップS513では、エラー処理が行われる。この処理は、ステップS503によりQRコードQの位置または範囲が検出できなかった場合や(S505;No)、ステップS507によるデコード処理に成功しなかった場合(S509;No)、に行われるもので、それぞれの場合に応じた所定のエラーコードを生成する。このエラーコードは、ステップS511の出力処理に渡されると、デコードが成功した場合に出力されるデコード結果(解読されたコード情報)に代えて、液晶表示装置46や外部のホストコンピュータHSTに出力される。
このように二次元コードリーダ10では、反射光Lrの光路上にミラーユニット15を設けて当該反射光Lrを読取口12(結像光学系27、受光センサ23)の方向に反射させることで、反転した二次元コードRの鏡像が受光センサ23の受光面23aに結像されるので、制御回路40で実行される読取処理では、反転されていない通常の二次元コードQを読み取るものと同様の情報処理が行うことで、当該反転した二次元コードRのデコードを行うことができる。
即ち、通常の二次元コードQを情報処理するものと同様に構成される、光学系(照明光源21、受光センサ23、結像レンズ27等)やマイコン系(増幅回路31、A/D変換回路33、メモリ35、アドレス発生回路36、同期信号発生回路38、制御回路40等)からなる既存の二次元コード読取装置に、このようなミラーユニット15を付加するだけで、反転した二次元コードRを読み取ることができる。したがって、通常では読めない反転した二次元コードRを簡易に読み取ることができる。
続いて、二次元コードリーダ10の変形例1(二次元コードリーダ10’)を図9〜図12を参照して説明する。この二次元コードリーダ10’は、前述した二次元コードリーダ10からミラーユニット15を除去するとともに、制御回路40で実行される読取処理に後述するような変更を加えた点が、前述の二次元コードリーダ10と異なるところである。したがって、前述の二次元コードリーダ10と実質的に同一の構成部分にはこれらの図において同一の符号を付すもののとし、またこれらの説明を省略する。
図9(A) および図9(B) に示すように、二次元コードリーダ10’は、外観上、前述の二次元コードリーダ10からミラーユニット15を取除いたほぼ直方体形状をしている。このため、照明光Lfを受けて反射した反射光Lrが入射可能な読取口12を読取対象となる反転の二次元コードRに向ける必要から、前述の二次元コードリーダ10に比べると、読取り作業者等が当該二次元コードリーダ10’を90度程度手前に起こした状態で読取口12を二次元コードRに向ける必要がある。
図10に示すように、二次元コードリーダ10’のハードウェア構成は、前述の二次元コードリーダ10のハードウェア構成からミラーユニット15を除いた点が異なるだけで、光学系(照明光源21、受光センサ23、結像レンズ27等)、マイコン系(メモリ35、制御回路40、操作スイッチ42、液晶表示器46等)および電源系(電源スイッチ41、電池49等)は、二次元コードリーダ10と同様に構成されている。このため、ミラーユニット15を備えていない本改変例1に係る二次元コードリーダ10’では、反転した二次元コードRを光学的に反転できないため、次に説明する読取処理によりソフトウェア的に反転した二次元コードRの反転処理を行っている。
本改変例1に係る二次元コードリーダ10’では、反転した二次元コードRの読取処理(デコード処理)として、図11に示す処理を行う。この読取処理も、前述の二次元コードリーダ10による読取処理(図8)と同様に、メモリ35に格納される所定プログラムを制御回路40が逐次実行することによって実現されるものである。なお、前述した図8に示す読取処理と実質的に同一処理を行う処理ステップについては、図11において同一符号を付し説明を簡略化する。
図11に示すように、当該読取処理では、まずステップS501により画像情報取得処理が行われた後、ステップS503により位置検出処理を行い、ステップS505により検出できたか否かを判断する処理が行われる。そして、位置検出ができた場合には(S505;Yes)、ステップS507によりデコード処理を行い、位置検出ができなかった場合には(S505;No)、ステップS513によりエラー処理を行う。ここまでの各処理の流れは、前述の読取処理(図8)と同様である。
但し、本改変例1に係る二次元コードリーダ10’では、ミラーユニット15を備えていないことから、受光センサ23の受光面23aに結像する二次元コードの像は、通常の二次元コードQであればそのままステップS503により位置検出することができ、ステップS507によるデコード処理が行われるが、反転した二次元コードRの像である場合には、ステップS503により位置検出することは可能であっても、ステップS507によるデコード処理は成功することはない。この理由は、前述した通りである。
このため、ステップS609によるデコードに成功したか否かを判断する処理では、単にデコードに成功したか(失敗したか)否かを判断するだけではなく、反転処理後の二次元コード(通常の二次元コードQと同様)のデコードでも成功しなかったのか(S609;No(2) )を判断する。
具体的には、メモリ35やレジスタ等に1ビットの情報を保持可能なフラグ等を設定しこのフラグに後述するアドレス変換処理(S610)を実行したか否かの情報を持たせる(例えばアドレス変換済であれば「1」、アドレス変換未であれば「0」)。そして、ステップS609によるデコードに成功したか否かを判断する際に、当該フラグの値も参照し、デコードに成功せず(失敗し)かつアドレス変換未である場合には、反転の二次元コードRを通常の二次元コードQとしてデコードした結果、デコードに失敗している可能性があるので、このような場合には(S609;No(1) )、ステップS610に処理を移行してアドレス変換処理を行う。
これに対し、ステップS609によるデコードに成功したか否かを判断する際に、当該フラグの値も参照した結果、デコードに成功せず(失敗し)かつアドレス変換済である場合には、通常の二次元コードQも、アドレス変換後の反転の二次元コードRも、いずれもデコードに失敗しているので、このような場合には(S609;No(2) )、ステップS513に処理を移行してエラー処理を行う。
ステップS610によるアドレス変換処理では、例えば、図12に示すようなアドレス変換をソフトウェア的に行うとともに、先のフラグの値をアドレス変換済に設定する。より具体的には、図12(A) に示すような有効画素数がm行n列に配置されている画素空間(1画素を画素データPxxに対応させると、当該画素空間は、画素データP11,…,画素データPm1,…,画素データP1n,…,画素データPmnと表現される)を、図12(B) に示すメモリ空間に対応させて所定のアドレス変換を行う。これにより、当該メモリ空間に格納された画素データによる反転の二次元コードRを、当該メモリ空間から取り出すときには、当該反転の二次元コードRの鏡像相当(つまり、反転していない通常の二次元コードQに相当)の画素データを取り出し可能にする。
例えば、アドレスA11に画素データP11,アドレスA12に画素データP12,…,アドレスA1nに画素データP1n,アドレスA21に画素データP21,アドレスA22に画素データP22,…アドレスA2nに画素データP2n,アドレスA31に画素データP31,アドレスA32に画素データP32,…,アドレスA3nに画素データP3n,アドレスAm1に画素データPm1,アドレスAm2に画素データPm2,…,アドレスAmnに画素データPmnというように、当該メモリ空間では、受光センサ23の有効画素空間(m行n列)の配列位置に対応するように各画素データを格納可能にしている。
このため、例えば、受光センサ23の有効画素空間の配列位置を左右反転するようにアドレス変換する場合には、当該メモリ空間のアドレスを図12(C) に示すように設定する。これにより、アドレスA11に対応した画素データP11はアドレスAm1に変換され、アドレスA12に対応した画素データP12はアドレスAm2に変換され、アドレスA1nに対応した画素データP1nはアドレスAmnに変換される。同様に、アドレスA21に対応した画素データP21はアドレスA(m-1)1に変換され、アドレスA22に対応した画素データP22はアドレスA(m-1)2に変換され、アドレスA2nに対応した画素データP2nはアドレスA(m-1)nに変換される。また、アドレスAm1に対応した画素データPm1はアドレスA11に変換され、アドレスAm2に対応した画素データPm2はアドレスA12に変換され、アドレスAmnに対応した画素データPmnはアドレスA1nに変換される。つまり、アドレスAijに対応した画素データPijはアドレスA(m+1-i)(n+1-j)に変換されて当該メモリ空間に格納される。
所定のアドレス変換には、このような左右反転を可能にするアドレス変換のほかに、二次元コードジェネレータ1等による反転コード生成処理の反転処理(S105)で説明したように、当該有効画素空間(メモリ空間)の対角線を回転軸αとして反転の二次元コードRを回転させたように当該二次元コードRを表裏反対にアドレス変換して当該二次元コードRの鏡像相当を取り出し可能にするものや(図1(A) ,図1(D) 参照)、当該有効画素空間(メモリ空間)の上下方向(矩形状の上下側辺に垂直または左右側辺に平行)に延びる軸を回転軸として二次元コードRを回転させたように、当該二次元コードRを表裏反対にアドレス変換して当該二次元コードRの鏡像相当を取り出し可能にするものがある(図1(B) ,図1(C) 参照)。
ステップS610によりこのようなアドレス変換が行われることにより、反転後の画像データは、通常の二次元コードQの画像データに相当するため、再度ステップS507によりこの反転後の画像データに基づいてデコード処理を行う。そして、ステップS610による反転後にデコード処理に成功した場合には、当該画像データは、反転した二次元コードRに対応するものであるので、ステップS511によりデコード結果を液晶表示装置46や外部に出力する。
一方、当該反転後でもデコード処理に成功しなかった(失敗した)場合には、当該画像データに含まれるものは通常の二次元コードQおよび反転の二次元コードRのいずれにも対応するものではないので、ステップS513に処理を移行してエラー処理を行った後、ステップS511による出力処理を行う。
このように本改変例1に係る二次元コードリーダ10’では、図11に示す読取処理を行うことにより、通常の二次元コードQおよび反転の二次元コードRのいずれもデコードすることができるので、特にミラーユニット15を装着することなく、反転の二次元コードRを読み取ることが可能となる。つまり、通常の二次元コードQ(QRコードQaやデータマトリクスQb)を読取可能な二次元コードリーダのソフトウェアに、アドレス変換処理(S610)等を追加することで、反転した二次元コードR(QRコードRaやデータマトリクスRb)を読み取ることができる。したがって、通常では読めない反転の二次元コードRを簡易に読み取ることができる。
なお、メモリ35のメモリ空間は、格納位置をm行n列の二次元情報で特定可能な配列相当に画像データ(画像情報)を蓄積するため、特許請求の範囲に記載の「蓄積手段」に相当し得るものである。また、画像情報取得処理(S501)は、反転した二次元コードR(反転コード)の画像データをメモリ空間に格納するため、特許請求の範囲に記載の「格納手段」に相当し得るもので、さらにアドレス変換(S610)は、メモリ空間から取り出した反転の二次元コードRの画像データが反転の二次元コードRの鏡像になる順番で、メモリ空間から当該画像データを取り出すため、特許請求の範囲に記載の「取出手段」に相当し得るものである。
次に、二次元コードリーダ10の変形例2(二次元コードリーダ10”)を図8、図9、図10、図12を参照して説明する。この二次元コードリーダ10”は、前述した二次元コードリーダ10からミラーユニット15を除去するとともに、アドレス変換回路36に新たなアドレス変換機能を追加した点が、前述の二次元コードリーダ10と異なるところである。したがって、前述の二次元コードリーダ10と実質的に同一の構成部分にはこれらの図において同一の符号を付すもののとし、またこれらの説明を省略する。なお、制御回路40で実行される読取処理は、図8に示すものと同様に通常の二次元コードQを読取可能にするものである。
図9(A) および図9(B) に示すように、二次元コードリーダ10”は、改変例1の二次元コードリーダ10’と同様に、外観上、前述の二次元コードリーダ10からミラーユニット15を取除いたほぼ直方体形状をしており、前述の二次元コードリーダ10に比べると、読取り作業者等が当該二次元コードリーダ10”を90度程度手前に起こした状態で読取口12を二次元コードRに向ける必要がある。
図10に示すように、二次元コードリーダ10”のハードウェア構成は、前述した改変例1の二次元コードリーダ10’のものとほぼ同様に構成されるが、アドレス変換回路36に、図12に示すようなアドレス変換機能を持たせた点が異なる。即ち、本改変例2は、図12を参照して説明したアドレス変換処理(図11に示すステップS610相当)を、アドレス変換回路36’によりハードウェア的に行うことにより、アドレス変換の高速化を可能にし得るものである。
具体的には、本改変例2に係る二次元コードリーダ10”では、受光センサ23により受光した画素データの全てを表裏反転にアドレス変換回路36’によりアドレス変換するので、反転の二次元コードRの像を結像した場合のみならず、通常の二次元コードQの像を結像した場合にも、表裏反転相当のアドレス変換をアドレス変換回路36’により行う。このため、制御回路40による読取処理は、ミラーユニット15を備えた二次元コードリーダ10と同様に、図8による読取処理を適用する。
これにより、メモリ35の画像データ蓄積領域に蓄積される画像データは、ミラーユニット15による鏡像を受光センサ23に結像した場合と同様に表裏反転したものとなるので、ステップS501の画像情報取得処理により取り出された画像データ(画像情報)が反転の二次元コードRの場合には、反転の二次元コードRの鏡像、即ち通常の二次元コードQ(反転されてないもの)になる。このため、通常の二次元コードQ(QRコードQaやデータマトリクスQb)を読取可能な二次元コードリーダのアドレス変換回路36を、このようなアドレス変換機能を持つアドレス変換回路36’に変更することで、反転した二次元コードR(QRコードRaやデータマトリクスRb)を読み取ることができる。したがって、通常では読めない反転の二次元コードRを簡易に読み取ることができる。
なお、メモリ35のメモリ空間は、格納位置をm行n列の二次元情報で特定可能な配列相当に画像データ(画像情報)を蓄積するため、特許請求の範囲に記載の「蓄積手段」に相当し得るものである。また、デコード処理(S507)は、メモリ空間に格納された画像データをアドレスの順番(所定の順番)に取り出してデコードするため、特許請求の範囲に記載の「取出手段」に相当し得るもので、さらにアドレス変換回路36’は、このようなアドレスの順番でメモリ空間から取り出した画像データが反転した二次元コードRの鏡像になるように、反転した二次元コードRの画像データをメモリ空間に格納するので、特許請求の範囲に記載の「格納手段」に相当し得るものである。
なお、以上説明した例では、二次元コードとして、QRコードやデータマトリクスを例示して説明したが、本発明の適用はこれに限られることはなく、位置検出パターンを備えた二次元コードであれば、例えば、CPコードであっても同様に適用でき、上述した各作用および効果を得ることができる。