二次元コード読み取りシステム
【課題】二次元コードのデータを読み取る読取システムにおいて、二次元コードの読み取りが失敗した場合であっても、二次元コード内の特定データを別経路で取得し得る構成を提供する。
【解決手段】二次元コード読み取りシステム1で読み取られる二次元コード70は、規定の角部に配置された特定パターン寄りの第1データ領域に、当該二次元コードのIDを含んだ第1データが記録され、第1データ領域よりも特定パターンから離れた領域に第2データが記録されている。読取システム2は、第2データ領域の読み取りが失敗したか否かを判断し、失敗した場合、サーバ60にアクセスし、第1データ領域に記録されるIDを送信している。サーバ60は、読取システム2からのIDの送信に応じ、当該IDに対応するデータ(第2データ)をデータベースから読み出し、読取システム2に送信している。
【解決手段】二次元コード読み取りシステム1で読み取られる二次元コード70は、規定の角部に配置された特定パターン寄りの第1データ領域に、当該二次元コードのIDを含んだ第1データが記録され、第1データ領域よりも特定パターンから離れた領域に第2データが記録されている。読取システム2は、第2データ領域の読み取りが失敗したか否かを判断し、失敗した場合、サーバ60にアクセスし、第1データ領域に記録されるIDを送信している。サーバ60は、読取システム2からのIDの送信に応じ、当該IDに対応するデータ(第2データ)をデータベースから読み出し、読取システム2に送信している。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、二次元コード読み取りシステムに関するものである。
【背景技術】
【0002】
現在、QRコード等の二次元コードが様々な用途で用いられている。この二次元コードは、一次元コードと比較すると、一般的に大量のデータを扱うことができ、この特質を利用した二次元コード特有の運用もなされている。その一例としては、データベース全体を二次元コード内に格納するといった運用が挙げられる。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特開2005−190231公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
上記のように二次元コード内に大量のデータ(例えばデータベース等)を格納する場合、正常に読み取りができないときのバックアップをどのようにするかが問題となる。例えば、図18のように、二次元コードに隣接させてデータを併記する方法も考えられるが、データ量が大きい場合には印字スペースを広く確保しなければならない。また、図18のように併記されたデータをバックアップデータとして扱う場合、このようなバックアップデータを電子データとして扱うための入力作業が必要となり、作業負荷や誤入力といった問題がある。
【0005】
本発明は、上述した課題を解決するためになされたものであり、二次元コードのデータを読み取る読取システムにおいて、二次元コードの読み取りが失敗した場合であっても、二次元コード内の特定データを別経路で取得し得る構成を提供することを目的とする。
【課題を解決するための手段】
【0006】
請求項1の発明は、複数のセルが矩形領域内にマトリックス状に配置された二次元コードのデータを読み取る二次元コード読み取りシステムに関するものである。
本発明に係る二次元コード読み取りシステムには、前記二次元コードを読み取る光学的情報読取手段と、通信手段と、を有する読取システムと、データベースを有すると共に、前記通信手段と通信可能に構成された情報処理装置と、が設けられている。
また、前記二次元コードは、前記矩形領域内の規定の角部に特定パターンが配置され、前記特定パターン寄りの第1データ領域に、当該二次元コードのIDを含んだ第1データが記録され、前記第1データ領域よりも前記特定パターンから離れた領域に、第2データが記録されており、前記データベースは、前記二次元コードの前記第2データが、当該二次元コードの前記IDと対応付けて記憶されている。
更に、前記読取システムは、前記光学的情報読取手段による前記第2データ領域の読み取りが失敗したか否かを判断する判断手段を備えており、前記判断手段により前記第2データ領域の読み取りが失敗したと判断された場合、前記通信手段により前記情報処理装置にアクセスし且つ前記情報処理装置に対し前記第1データ領域に記録される前記IDを送信するように構成されている。
また、前記情報処理装置は、前記通信手段によるアクセス及び前記IDの送信に応じ、当該IDに対応する前記第2データを前記データベースから読み出すと共に、その読み出した前記第2データを、前記IDの送信元の前記読取システムに送信するように構成されている。
【0007】
請求項2の発明は、請求項1に記載の二次元コードの読取システムにおいて、前記二次元コードは、前記第2データ領域の誤り訂正能力よりも、前記第1データ領域の誤り訂正能力のほうが高く設定されている。
【0008】
請求項3の発明は、請求項1又は請求項2に記載の二次元コードの読取システムにおいて、前記光学的情報読取手段が、コンピュータに接続される読取端末内に設けられ、前記通信手段が、前記コンピュータ内に設けられている。
また、前記読取端末は、前記二次元コードの読取データを生成する生成手段と、前記生成手段によって生成された前記読取データを前記コンピュータに出力する出力手段と、を有しており、前記生成手段は、前記第1データ領域の読取結果及び前記第2データ領域の読取結果を特定する読取結果特定データと、前記第1データと前記第2データとを区別するセパレータとを、前記読取データに付加するように構成されている。
【0009】
請求項4の発明は、複数のセルが矩形領域内にマトリックス状に配置された二次元コードのデータを読み取る二次元コード読み取りシステムに関するものである。
本発明に係る二次下コード読取システムには、前記二次元コードを読み取る光学的情報読取手段と、通信手段と、を有する読取システムと、データベースを有すると共に、前記通信手段と通信可能に構成された情報処理装置と、が設けられている。
また、前記二次元コードは、当該二次元コードのIDを含んでなる第1データが、複数の第1データ領域にそれぞれ記録され、それら複数の前記第1データ領域とは異なる第2データ領域に、第2データが記録されており、前記データベースは、前記二次元コードの前記第2データが、当該二次元コードの前記IDと対応付けて記憶されている。
更に、前記読取システムは、前記光学的情報読取手段による前記第2データ領域の読み取りが失敗したか否かを判断する判断手段を備えており、前記判断手段によって前記第2データ領域の読み取りが失敗したと判断された場合に、前記通信手段が、前記情報処理装置にアクセスし且つ前記情報処理装置に対し前記第1データ領域に記録される前記IDを送信する構成をなしている。
また、前記情報処理装置は、前記通信手段によるアクセス及び前記IDの送信に応じ、当該IDに対応する前記第2データを前記データベースから読み出すと共に、その読み出した前記第2データを、前記IDの送信元の前記読取システムに送信するように構成されている。
【0010】
請求項5の発明は、請求項4に記載の二次元コード読み取りシステムにおいて、前記二次元コードに3以上の前記第1データ領域が設けられ、各第1データ領域に、前記IDのビット列が記録されている。
また、前記読取システムは、複数の前記第1データ領域にそれぞれ記録される複数の前記IDのビット列を、各ビット位置ごとに比較し、値が一致していないビット位置を検出するビット位置検出手段と、前記ビット位置検出手段により値が一致していないビット位置が検出された場合、その値が一致していないビット位置において用いるべきビット値を、複数の前記IDのビット列において当該ビット位置に用いられている各値の多数決をとることによって決定するビット値多数決手段と、を有している。
【0011】
請求項6の発明は、請求項4に記載の二次元コード読み取りシステムであって、各第1データ領域は、前記IDが複数のコードワードに亘って記録されており、
前記読取システムは、
複数の前記第1データ領域にそれぞれ記録される複数の前記IDについて、各対応位置毎にコードワード同士を比較し、コードワードが一致していない前記対応位置を検出する不一致位置検出手段と、
前記不一致位置検出手段によりコードワードが一致していない前記対応位置が検出された場合に、当該対応位置を誤り発生位置として前記第1データ領域に対し消失訂正を行う消失訂正手段と、
を有することを特徴とする。
【0012】
請求項7の発明は、請求項6に記載の二次元コード読み取りシステムであって、前記不一致位置検出手段により、複数の前記IDにおいてコードワードが一致していない前記対応位置が検出された場合に、当該対応位置において用いるべきコードワード値を、それら複数の前記IDにおいて当該対応位置に用いられている各値の多数決をとることによって決定するコードワード値多数決手段を備え、前記消失訂正手段は、コードワードが一致していない前記対応位置のうち、前記コードワード値多数決手段によって多数決をとることができない前記対応位置を誤り発生位置として前記消失訂正を行っている。
【0013】
請求項8の発明は、請求項1から請求項7のいずれか一項に記載の二次元コード読み取りシステムにおいて、前記第2データ領域に記録される前記第2データは、複数のデータブロックを含み、且つ各データブロック毎に固有情報が付されており、前記データベースには、前記IDに対応する前記第2データが、各データブロック毎に読み出し可能な状態で記憶されている。
更に、前記読取システムは、前記判断手段により前記第2データ領域の読み取りが失敗したと判断される場合に、当該第2データ領域における読み取りが成功した前記データブロックの前記固有情報に基づき、読み取りが失敗した前記データブロックを特定する特定情報を生成する特定情報生成手段を備え、前記判断手段によって前記第2データ領域の読み取りが失敗したと判断された場合に、前記通信手段が、前記情報処理装置に対し前記IDと共に前記特定情報を送信する構成をなしている。
また、前記情報処理装置は、前記読取システムの前記通信手段からのアクセスに応じ、前記ID及び前記特定情報に対応する前記データブロックを前記データベースから読み出すと共に、その読み出した前記データブロックを前記読取システムに送信している。
【0014】
請求項9の発明は、請求項8に記載の二次元コード読み取りシステムにおいて、前記光学的情報読取手段は、前記第2データ領域におけるいずれかの前記データブロックの読み取りが失敗し、他の前記データブロックの読み取りが成功した場合、その読み取りが成功した他の前記データブロックのデータを出力することを特徴とする。
【0015】
請求項10の発明は、請求項9に記載の二次元コード読み取りシステムにおいて、前記光学的情報読取手段は、読み取りが成功した前記データブロックが複数存在する場合、それら複数の前記データブロックのデータを出力する際に、データブロック間に識別子を付して出力することを特徴とする。
【発明の効果】
【0016】
請求項1の発明は、読取対象となる二次元コードにおいて、矩形領域内の規定の角部に特定パターンが配置されている。そして、特定パターン寄りの第1データ領域に、当該二次元コードのIDを含んだ第1データが記録され、第1データ領域よりも特定パターンから離れた領域に第2データが記録されている。このように規定の角部に特定パターンを配置することで、当該特定パターンを、各セルを検出する基準として用いることができ、このような特定パターンの近くに第1データ領域を配置することで、第1データの読み取りの精度を高め、第1データの読み取りを成功しやすくすることができる。そして、この第1データには二次元コードのIDが含まれているため、第2データの読み取りが失敗するような状況下でも、最低限IDを取得するといったことが行いやすくなる。
また、光学的情報読取手段を備えた読取システム側には、第2データ領域の読み取りが失敗したか否かを判断する判断手段が設けられ、この判断手段により第2データ領域の読み取りが失敗したと判断された場合、通信手段により情報処理装置にアクセスし且つ情報処理装置に対し第1データ領域に記録されるIDを送信している。
一方、情報処理装置のデータベースには、二次元コードの第2データがIDと対応付けて記憶されており、情報処理装置は、前記通信手段によるアクセス及びIDの送信に応じ、当該IDに対応する第2データをデータベースから読み出し、IDの送信元の読取システムに送信している。。
このように構成されているため、第2データ領域の読み取りが失敗するような場合であっても、読み取りが比較的成功しやすい第1データ領域のデータ(ID)を利用して情報処理装置からバックアップデータ(第2データ)を取得することができ、ひいては、デコード不良を効果的に解消することができる。
【0017】
請求項2の発明は、二次元コードにおいて、第2データ領域の誤り訂正能力よりも、第1データ領域の誤り訂正能力のほうが高く設定されている。このようにすると、読取システムが二次元コードを読み取る際に、第1データの読み取りがより一層失敗しにくくなり、バックアップデータを取得する際に必要となるデータ(ID)がより取得されやすくなる。
【0018】
請求項3の発明は、光学的情報読取手段が読取端末内に設けられ、通信手段がコンピュータ内に設けられている。そして、読取端末には、二次元コードの読取データを生成する生成手段と、その生成された読取データをコンピュータに出力する出力手段とが設けられている。このように通信手段等をコンピュータ側に設けることで、読取端末の軽量化、小型化を図ることができ、コンピュータ側では、読取端末の読取結果に応じて適切な情報処理、通信処理を行うことができるようになる。
更に、読取端末に設けられた生成手段が、第1データ領域の読取結果及び第2データ領域の読取結果を特定するデータ(読取結果特定データ)を読取データに付加するように構成されているため、コンピュータ側で、第1データ及び第2データの読取結果を迅速に把握することができ、第2データが読取不良であるときには即座にバックアップ処理に移行できる。また、読取データには、第1データと第2データとを区別するセパレータが付加されるため、コンピュータ側で第1データと第2データとを迅速且つ確実に区別することができ、バックアップデータの取得に必要となる処理(IDの取得、IDの送信処理等)をスムーズに行うことができる。
【0019】
請求項4の発明は、読取対象となる二次元コードにおいて、複数の第1データ領域が設けられ、各第1データ領域に第1データがそれぞれ記録されている。また、それら複数の第1データ領域とは異なる第2データ領域に第2データが記録されている。このように第1データ領域を複数設けることで、第1データの読み取りが成功する確率を高めることができる。この第1データには二次元コードのIDが含まれているため、第2データの読み取りが失敗するような状況下でも、最低限IDを取得するといったことが行いやすくなる。 また、光学的情報読取手段を備えた読取システム側には、第2データ領域の読み取りが失敗したか否かを判断する判断手段が設けられ、この判断手段により第2データ領域の読み取りが失敗したと判断された場合、通信手段により情報処理装置にアクセスし且つ情報処理装置に対し第1データ領域に記録されるIDを送信している。
一方、情報処理装置のデータベースには、二次元コードの第2データがIDと対応付けて記憶されており、情報処理装置は、前記通信手段によるアクセス及びIDの送信に応じ、当該IDに対応する第2データをデータベースから読み出し、IDの送信元の読取システムに送信している。
このように構成されているため、第2データ領域の読み取りが失敗するような場合であっても、読み取りが比較的成功しやすい第1データ領域のデータ(ID)を利用して情報処理装置からバックアップデータ(第2データ)を取得することができ、ひいては、デコード不良を効果的に解消することができる。
【0020】
請求項5の発明は、二次元コードに3以上の第1データ領域が設けられ、各第1データ領域に、IDのビット列が記録されている。また、読取システム側にはビット位置検出手段が設けられており、複数の第1データ領域にそれぞれ記録される複数のIDのビット列を、各ビット位置ごとに比較し、値が一致していないビット位置を検出している。このようにすると、誤りの原因となっているビット位置を正確に特定できるようになる。
更に、値が一致していないビット位置が検出された場合、その値が一致していないビット位置において用いるべきビット値を、複数のIDのビット列において当該ビット位置に用いられている各値の多数決をとることによって決定している。このようにすると、誤りが生じているビット位置の値を適切に推定でき、正確な第1データが得られやすくなる。
【0021】
請求項6の発明では、各第1データ領域において、IDが複数のコードワードに亘って記録され、読取システム側には不一致位置検出手段が設けられており、複数の第1データ領域にそれぞれ記録される複数のIDについて、各対応位置毎にコードワード同士を比較し、コードワードが一致していない対応位置を検出している。このようにすると、誤りの原因となっているコードワード位置を正確に特定できるようになる。更に、消失訂正手段が設けられ、コードワードが一致していない対応位置が検出された場合に、当該対応位置を誤り発生位置として第1データ領域に対し消失訂正を行っている。このように、誤りが生じているコードワード位置を特定した上で消失訂正を行うようにすれば、誤り訂正能力が高められ、IDを復元できる可能性がより高くなる。
【0022】
請求項7の発明では、コードワード値多数決手段が設けられ、複数のIDにおいてコードワードが一致していない対応位置が検出された場合に、当該対応位置において用いるべきコードワード値を、それら複数のIDにおいて当該対応位置に用いられている各値の多数決をとることによって決定している。そして、コードワードが一致していない対応位置のうち、多数決をとることができない対応位置を誤り発生位置として消失訂正を行っている。このようにすると、多数決による推定により誤り発生位置を減らした上で消失訂正を行うことができるため、誤り訂正能力を一層高めることができ、IDの復元可能性がより一層高まる。
【0023】
請求項8の発明は、第2データ領域の読み取りが失敗したと判断される場合に、当該第2データ領域における読み取りが成功したデータブロックの固有情報に基づき、読み取りが失敗したデータブロックを特定する情報(特定情報)を生成している。そして、情報処理装置に対し、IDと共に当該特定情報を送信している。一方、情報処理装置は、読取システムからのアクセスに応じ、ID及び特定情報に対応するデータブロックをデータベースから読み出し、その読み出したデータブロックを読取システムに送信している。このようにすると、読み取りが成功したデータブロックをダウンロードせず、失敗したデータブロックのみを選択的にダウンロードすることができるため、ダウンロード時間を大幅に削減できる。
【0024】
請求項9の発明では、第2データ領域のいずれかのデータブロックの読み取りが失敗し、他のデータブロックの読み取りが成功した場合に、その読み取りが成功した他のデータブロックのデータを光学的情報読取手段から出力している。このようにすると、当該出力データを受ける側において、読み取りが成功したデータブロックの種類や内容を確実に把握でき、読み取りが失敗したデータブロックを迅速且つ正確に特定しでダウンロードできるようになる。
【0025】
請求項10の発明では、読み取りが成功したデータブロックが複数存在する場合、それら複数のデータブロックのデータを出力する際に、データブロック間に識別子を付して出力している。このようにすると、当該出力データを受ける側において、読み取りが成功した複数のデータブロックの各種類や各内容をそれぞれ確実に把握でき、データブロックが多数存在するようなコード構成であっても、読み取りが失敗したデータブロックを迅速且つ正確に特定してダウンロードできるようになる。
【図面の簡単な説明】
【0026】
【図1】図1は、本発明の第1実施形態に係る二次元コード読み取りシステムの構成を概略的に例示するブロック図である。
【図2】図2は、図1の二次元コード読み取りシステムの一部をなす読取端末の構成を概略的に例示するブロック図である。
【図3】図3は、図1のシステムによって読み取られる二次元コードの一例について概略的に説明する説明図である。
【図4】図4は、図3の二次元コードの第1データ領域及び第2データ領域の構成を概念的に説明する説明図である。
【図5】図5は、読取端末での読取処理の流れを例示するフローチャートである。
【図6】図6は、読取端末からコンピュータに出力される送信データのフォーマットを説明する説明図である。
【図7】図7は、コンピュータでの解析処理の流れを例示するフローチャートである。
【図8】図8は、第2実施形態に係る二次元コード読み取りシステムで読み取られる二次元コードを説明する説明図である。
【図9】図9は、第2実施形態において読取端末で行われる読取処理を例示するフローチャートである。
【図10】図10は、多数決処理を説明する説明図である。
【図11】図11は、図10とは異なる多数決処理を説明する説明図である。
【図12】図12は、第3実施形態に係る二次元コード読み取りシステムで読み取られる二次元コードを説明する説明図である。
【図13】図13は、図12の二次元コードに記録されるデータの一例を示す説明図である。
【図14】図14は、第3実施形態における読取端末での読取処理を例示するフローチャートである。
【図15】図15(a)は、読取端末からコンピュータに送信される送信データの一例を示す説明図であり、図15(b)は、コンピュータからサーバに送信するデータの一例を示す説明図である。
【図16】図16は、第3実施形態におけるコンピュータでの解析処理を例示するフローチャートである。
【図17】図17は、読取対象となる二次元コードの別例を示す説明図である。
【図18】図18は、従来におけるデータのバックアップ方法を説明する説明図である。
【発明を実施するための形態】
【0027】
[第1実施形態]
以下、本発明の二次元コード読み取りシステムを具現化した第1実施形態について、図面を参照して説明する。
(全体構成)
まず、図1を参照して本実施形態に係る二次元コード読み取りシステム1の全体構成を説明する。
図1に示すように、本実施形態に係る二次元コード読み取りシステム1(以下、単にシステム1とも称する)は、複数のセルからなる二次元コード70(図3等参照)を読み取るシステムとして構成されており、図1に示すように読取端末10と、コンピュータ50と、サーバ60とを備えている。
【0028】
読取端末10は、例えば図2のような構成をなしており、二次元コードを読み取り可能な二次元コードリーダとして機能している。この読取端末10は、図2に示すように、主に、照明光源21、受光センサ23、フィルタ25、結像レンズ27等の光学系と、メモリ35、制御回路40、操作スイッチ42、液晶表示装置46等のマイクロコンピュータ(以下「マイコン」という)系などから構成されている。なお、これらは、図略のプリント配線板に実装あるいはケース(図示略)内に内装されている。
【0029】
光学系は、照明光源21、受光センサ23、フィルタ25、結像レンズ27等から構成されている。照明光源21は、照明光Lfを発光可能な照明光源として機能するもので、例えば、赤色のLEDとこのLEDの出射側に設けられる拡散レンズ、集光レンズ等とから構成されている。本実施形態では、受光センサ23を挟んだ両側に照明光源21が設けられており、ケースに形成された読取口(図示略)を介して読取対象物Rに向けて照明光Lfを照射可能に構成されている。読取対象物Rとしては、例えば、樹脂材料、金属材料等の様々な対象が考えられ、図2では、読取対象物Rに二次元コード70が印刷、ダイレクトマーキングなどによって形成された例を示している。
【0030】
受光センサ23は、読取対象物Rや二次元コード70に照射されて反射した反射光Lrを受光可能に構成されるもので、例えば、C−MOSやCCD等の固体撮像素子である受光素子を2次元に配列したエリアセンサが、これに相当する。この受光センサ23は、結像レンズ27を介して入射する入射光を受光面23aで受光し得るように、図略のプリント配線板に実装されている。また、フィルタ25は、反射光Lrの波長相当以下の光の通過を許容し、当該波長相当を超える光の通過を遮断し得る光学的なローパスフィルタで、ケースに形成された読取口(図示略)と結像レンズ27との間に設けられている。また、結像レンズ27は、例えば、鏡筒とこの鏡筒内に収容される複数の集光レンズとによって構成されており、本実施形態では、ケースに形成された読取口(図示略)に入射する反射光Lrを集光し、受光センサ23の受光面23aに二次元コード70のコード画像を結像するように構成されている。
【0031】
マイコン系は、増幅回路31、A/D変換回路33、メモリ35、アドレス発生回路36、同期信号発生回路38、制御回路40、操作スイッチ42、LED43、ブザー44、液晶表示装置46、通信インタフェース48等から構成されている。このマイコン系は、マイコン(情報処理装置)として機能し得る制御回路40及びメモリ35を中心として構成され、前述した光学系によって撮像された二次元コード70の画像信号をハードウェア的およびソフトウェア的に信号処理し得るものである。
【0032】
光学系の受光センサ23から出力される画像信号(アナログ信号)は、増幅回路31に入力されることで所定ゲインで増幅された後、A/D変換回路33に入力され、アナログ信号からディジタル信号に変換される。そして、ディジタル化された画像信号、つまり画像データ(画像情報)は、メモリ35に入力され、当該メモリ35の画像データ蓄積領域に蓄積される。なお、同期信号発生回路38は、受光センサ23およびアドレス発生回路36に対する同期信号を発生可能に構成されており、またアドレス発生回路36は、この同期信号発生回路38から供給される同期信号に基づいて、メモリ35に格納される画像データの格納アドレスを発生可能に構成されている。
【0033】
メモリ35は、複数の半導体メモリ装置からなるものであり、例えばRAM(DRAM、SRAM等)やROM(EPROM、EEPROM等)などによって構成されている。このメモリ35のうちのRAMには、前述した画像データ蓄積領域のほかに、制御回路40が算術演算や論理演算等の各処理時に利用する作業領域や読取条件テーブルも確保可能に構成されている。またROMには、後述する読取処理等を実行可能な所定プログラムやその他、照明光源21、受光センサ23等の各ハードウェアを制御可能なシステムプログラム等が予め格納されている。
【0034】
制御回路40は、読取端末10全体を制御可能なマイコンであり、CPU、システムバス、入出力インタフェース等を備え、情報処理機能を有している。この制御回路40には、内蔵された入出力インタフェースを介して種々の入出力装置(周辺装置)が接続されており、本実施形態では、操作スイッチ42、LED43、ブザー44、液晶表示装置46、通信インタフェース48等が接続されている。また、通信インタフェース48には、読取端末10の上位システムに相当するコンピュータ50を接続できるようになっている。
なお、本実施形態では、読取端末10内に収容される収容部品が「光学的情報読取手段」として機能している。
【0035】
コンピュータ50は、例えば公知のパーソナルコンピュータ等として構成されており、図1に示すように、CPU51と、記憶部52と、通信部53とを有している。CPU51は、コンピュータ50の全体的な制御や、読取端末10からのデータに対する各種演算処理等を行うものである。また、記憶部52は、ROM、RAM、ハードディスクドライブなどの記憶手段によって構成されており、少なくとも、読取端末10から取得したデータやサーバ60から取得したデータを一時的に記憶し得る構成をなしている。また、通信部53は、サーバ60と通信を行う際のインタフェースとして構成されており、本実施形態では、インターネット等の通信網を介してサーバ60と通信を行うように構成されている。
【0036】
サーバ60も、公知のパーソナルコンピュータ等として構成されており、図1に示すように、CPU61と、記憶部62と、通信部63とを有している。CPU61は、サーバ60の全体的な制御や、コンピュータ50から取得したデータに対する各種演算処理などを行うものである。また、記憶部62は、ROM、RAM、ハードディスクドライブなどの記憶手段によって構成されており、いずれかのメディア(例えばハードディスクドライブ)には、後述するデータベースが格納されている。また、通信部63は、コンピュータ50と通信を行う際のインタフェースとして構成されており、上述のようにインターネット等の通信網を介してコンピュータ50と通信を行うように構成されている。
【0037】
(二次元コード)
次に、上記システム1によって読み取られる二次元コードについて説明する。
図3に示すように、システム1によって読み取られる二次元コード70は、複数の情報表示単位セル(以下、単にセルとも称する)が集合したセル集合体として構成されている。図3では、各セルが2種類のセル(明色セル及び暗色セル)の内のいずれかとされており、各セル領域が正方形領域として構成されている。そして、このようなセルがマトリックス状に配置されることで、コード領域(セルが配置される領域)全体が矩形領域として構成されている。なお、図3では、一部のセルのみについて符号Cを付しており、他のセルの符号は省略している。また、特定パターン71、第2パターン73、74以外の各セルについては、外縁のみ実線で示しており、具体的構成は省略している。
【0038】
図3の二次元コード70は、コード領域(矩形領域)における4つ角部70a〜70dの内、規定の角部70aに、外形が矩形状(詳しくは正方形状)に構成された特定パターン71が配置されている。この特定パターン71は、外縁を構成する2辺によって規定の角部70aの角位置(角部分の境界位置)を定めている。また、特定パターン71は、コード領域における各セルCの位置の特定するための要素として機能するものであり、具体的には、当該二次元コード70を撮像したときの画像データにおいて、規定の角部70aの位置を特定するために用いられると共に、その画像データにおいて二次元コード70の向きを特定するために用いられ、更にはコード領域内における各セルの位置を特定するために用いられるようになっている。なお、本明細書全体を通し、「特定パターン」とは、二次元コードに含まれるデータ(デコードすべきデータ)に関係なく一定形状で構成されるパターンを意味している。
【0039】
図3に示す特定パターン71は、中心に第1の色のセル(黒色セル71a)が1つ配置され、その第1の色のセル(黒色セル71a)の周りを第2の色のセル(白色セル71b)が矩形状に囲んでいる。さらに、その環状のセル群(白色セル71bのセル群)の周りを第1の色のセル(黒色セル71c)が囲んだ構成をなし、それが最外周のセル群として構成されている。そして、その最外周のセル群の外形が正方形状に構成され、特定パターン71全体として外形が矩形状となっている。
【0040】
また、図3の二次元コード70には、特定パターン71に隣接して第2パターン72、73が設けられている。これら第2パターン72、73は、データに関係なく一定形状(図3の例では、明色セルと暗色セルとが交互に配置される形状)とされるものであり、コード領域(矩形領域)の境界をなす4つの辺のうち、特定パターン71が接する境界部に隣接して配置されている。この第2パターン72、73は、二次元コード70のコード領域(矩形領域)を背景から分離するために利用されるものであり、後述する読み取りの際には、この第2パターン72、73を基準としてコード領域全体が背景から分離されるようになっている。
【0041】
また、図3の二次元コード70は、特定パターン71寄りに、第1データが記録された第1データ領域75が設けられ、この第1データ領域75よりも特定パターン71から離れた側に、第2データが記録された第2データ領域76が設けられている。第1データ領域75に記録される第1データは、少なくとも二次元コード70のIDを含んでいる。なお、第1データは、ID以外のデータ(例えば、二次元コード70のフォーマットデータ(二次元コード70の種別やサイズなどを示すデータ)等)を含んでいてもよく、第1データがIDのみによって構成されていてもよい。また、図4上段に示すように、第1データ領域には、第1データに対応する誤り訂正符号も記録されている。第1データ領域75において、第1データは複数のデータコードブロックによって表現されており、各データコードブロックを構成する各セルは、予め定められた複数種類(図3の例では白黒の二種類)のセルの中からいずれかの種類のセルが選択されて用いられる。
【0042】
第2データ領域に記録される第2データは、読取後に出力する対象となるデータ(デコード対象データ)であり、様々な種類のデータを含めることができる。また、図4下段に示すように、第2データ領域には、第2データに対応する誤り訂正符号も記録されている。
【0043】
第1データ領域75の第1データ、及び第2データ領域76の第2データを表現する各データコードブロックは、デコードすべき符号化データ(データコード語)に対応したセルの配列で構成されている。本実施形態では、セルの色が、数値に対応付けられており、例えば、データ値「0」に対して白色セル、データ値「1」に対して黒色セルがそれぞれ対応付けられている。
【0044】
第1データ領域75に記録される誤り訂正符号は、第1データの誤り訂正を行うための誤り訂正コード語によって構成されている。この誤り訂正コード語は、第1データを構成する符号化データ(データコード語)に基づいて生成されたものである。また、第2データ領域76の誤り訂正符号も、第2データの誤り訂正を行うための誤り訂正コード語によって構成されている。この誤り訂正コード語は、第2データを構成する符号化データ(データコード語)に基づいて生成されたものである。
【0045】
なお、第1データ領域及び第2データ領域のいずれについても、データコード語に基づいて誤り訂正コード語を生成する方法として、例えば公知のリード・ソロモン誤り訂正方式を用いることができる。例えば、データコード語に基づいて誤り訂正コード語を生成する方法として、JISX0510:2004に規定された誤り訂正コード語の生成方法(JISX0510:2004、8.5誤り訂正)と同様の方法を用いた場合、誤り訂正コード語は、データコードブロックについてのデータコード語を二進数で表した後、誤り訂正検出及び訂正(JISX0510:2004付属書A)で使用される多項式g(x)によって当該データコード語を除算して得られた剰余とされる。第1データ領域の誤り訂正符号は、第1データを構成する符号化データ(データコード語)に基づいて上記のように生成された誤り訂正コード語によって構成され、第1データ領域では、この誤り訂正符号を、複数のセルからなるブロック(誤り訂正コードブロック)を複数配置することで表している。また、第2データ領域の誤り訂正符号も同様であり、第2データを構成する符号化データ(データコード語)に基づいて上記のように生成された誤り訂正コード語によって構成され、第2データ領域では、この誤り訂正符号を、複数のセルからなるブロック(誤り訂正コードブロック)を複数配置することで表している。なお、ここでは、JISX0510に規定される方法と同様の方法を用いて誤り訂正コード語を生成したが、誤り訂正コード語の生成方法はこれに限られず、公知の様々な方法を用いることができる。
【0046】
上述したように、本実施形態では、第1データが記録された第1データ領域75よりも、第2データが記録された第2データ領域76のほうが、位置的に特定パターン71に近づけられており、更に、第1データ領域75に記録される誤り訂正符号(第1データの誤りを訂正するための誤り訂正符号)のほうが、第2データ領域76に記録される誤り訂正符号(第2データの誤りを訂正するための誤り訂正符号)よりも誤り訂正能力が高められている。例えば、第1データのデータコード語数がN1であり、第1データの誤り訂正能力(誤り訂正レベル)を、「Q」(JISX0510)に相当するレベルに設定する場合には、JISX0510においてデータコード語数N1且つ誤り訂正レベル「Q]の場合になされる方式で誤り訂正コード語を生成する。また、第2データのデータコード語数がN2であり、第2データの誤り訂正能力(誤り訂正レベル)を、「L」(JISX0510)に相当するレベルに設定する場合には、JISX0510においてデータコード語数N2且つ誤り訂正レベル「L]の場合になされる方式で誤り訂正コード語を生成する。
【0047】
(二次元コード読み取り処理)
次に、システム1による二次元コード読み取り処理について説明する。
まず、図5を参照しつつ読取端末10で行われる読取処理について説明する。図5では、二次元コード70が撮像された後の処理を示しており(撮像処理については省略)、まず、撮像画像において、特定パターン71(切出しシンボル)を検出し、コード領域の外形を検出している(S1)。特定パターン71は、予め定められた所定形状であるため、S1ではまずこの所定形状を検出し、更に、コード領域の外形を検出している。その後、特定パターン71(切出しシンボル)を基準として、各セルCの中心座標を求める(S2)。
【0048】
上記のように各セルの中心座標が特定された後には、第1データ領域のデータの読み取りを行う(S3)。S3の処理では、第1データ領域の各セルCの中心座標の各輝度値に基づいて、各セルCが明色セル及び暗色セルのいずれであるかを判別し、第1データ領域75に記録された第1データを読み取る。この第1データの読み取りは、QRコード等の公知の二次元コードにおけるデータの読み取りと基本的に同様であり、第1データを記録した各データコードブロックを解読すると共に、いずれかのデータコードブロックに誤りが生じた場合には、第1データに対応して生成された誤り訂正符号に基づいて誤り訂正を行う。
【0049】
その後、S3において第1データ領域75の読み取りが成功したか否かを判断し(S4)、成功した場合にはS4にてYesに進み、S3で読み取った第1データをバッファに格納する(S5)。一方、第1データ領域75の読み取りが失敗した場合にはS4にてNoに進む。
【0050】
S5の処理後、或いはS4にてNoに進む場合には、第2データ領域の読取処理を行う(S6)。この処理では、第2データ領域の各セルCの中心座標の各輝度値に基づいて各セルCが明色セル及び暗色セルのいずれであるかを判別し、第2データ領域76に記録された第2データを読み取る。この読み取りは、第1データ領域75の読み取り(S3)と同様であり、第2データを記録した各データコードブロックを解読すると共に、いずれかのデータコードブロックに誤りが生じた場合には、第2データに対応して生成された誤り訂正符号に基づいて誤り訂正を行う。
【0051】
その後、S6において第2データ領域76の読み取りが成功したか否かを判断し(S7)、成功した場合にはS7にてYesに進み、S6で読み取った第2データをバッファに格納する(S8)。一方、第2データ領域76の読み取りが失敗した場合にはS7にてNoに進む。
【0052】
S8の処理後、或いはS7にてNoに進む場合には、バッファにデータが存在するか否かを判断する。即ち、S5の格納処理或いはS8の格納処理によって第1データ及び第2データの少なくともいずれかがバッファに格納されているか否かを判断し、いずれかが格納されている場合には、S9にてYesに進み、S10の送信処理を行う。S10では、バッファの内容に応じた送信データを生成し、この送信データをコンピュータ50に対して送信する。
【0053】
S10で生成されるデータは、例えば図6のような構成をなしている。図6の例では、データの先頭において、いずれのデータ領域の読み取りが成功したかを示す識別子が配されている。この識別子は、第1データ領域の読取結果及び第2データ領域の読取結果を特定する「読取結果特定データ」の一例に相当するものであり、第1データ領域及び第2データ領域のいずれもが読み取り成功となった場合には、「A」という識別子が付され、第1データ領域の読み取りのみが成功し、第2データ領域の読み取りが失敗した場合には「B」という識別子が付されるようになっている。逆に、第2データ領域の読み取りのみが成功し、第1データ領域の読み取りが失敗した場合には「C」という識別子が付されるようになっている。
【0054】
また、読取り領域識別子の後には、第1データ領域の読取データ(第1データ)が配されている。また、第1データの後には、セパレータを挟んで第2データ領域の読取データ(第2データ)が配されている。なお、第1データ領域の読み取りが成功しなかった場合(識別子として「C」が付される場合)には、第1データが含まれず、第2データ領域の読み取りが成功しなかった場合(識別子として「B」が付される場合)には、第2データが含まれないことになる。セパレータは、予め定められた特定データ(図6では、文字「GS」)で構成されており、このセパレータを挟んだ前後にそれぞれ第1データ及び第2データが配置されることで、第1データと第2データとが明確に区別されている。
【0055】
なお、本実施形態では、制御回路40が「生成手段」の一例に相当し、二次元コード70の読取データ(図6)を生成する機能を有する。また、制御回路40及び通信インタフェース48は「出力手段」の一例に相当し、その生成された読取データをコンピュータ50に出力する機能を有している。
【0056】
次に、コンピュータ50側での解析処理について説明する。図7に示す解析処理は、読取端末10での読取結果を解析し、必要に応じてサーバからデータをダウンロードする処理である。
【0057】
図7に示すように、当該解析処理では、まず読取端末10からデータが送信されてきたか否かを判断する(S20)。この判断処理では、読取端末10から図6に示す送信データが送られるまではNoに進んで待機状態を維持する。一方、読取端末10からの送信データを受信したときにはS20にてYesに進み、S21の評価処理を行う。
【0058】
S21の処理では、読取端末10からの送信データ(図6)の先頭部分の識別子(読取り領域識別子)を切出し、その識別子の内容を確認する。そして、識別子が第2データ領域の読取成功を示すものであるか否か(即ち、識別子が「A」又は「C」であるか否か)を判断し(S22)、第2データ領域の読取成功を示すものである場合(即ち、識別子が「A」又は「C」である場合)には、S22にてYesに進み、第2データ領域の読取データ(第2データ)を切出す処理を行う。S23では、送信データ(図6)から当該送信データに含まれている第2データ(第2データ領域の読取データ)を取得しており、その後、その取得した第2データについてのデータ処理(出力処理等)を行う(S26)。
【0059】
一方、S22において、第2データ領域の読み取りが失敗と判断される場合(即ち、識別子が「B」である場合)、S22にてNoに進み、第1データ領域の読取データ(第1データ)を切出し、これをサーバ60に送信する処理を行う(S24)。第1データには、二次元コード70のIDが含まれているため、S24の処理により、このIDがサーバ60に送信されることとなる。
【0060】
サーバ60は、コンピュータ50からのデータ送信を常時監視しており、コンピュータ50からIDが送られてきたときには、そのIDに対応するデータ(第2データ)を検索し読み出している。サーバ60内のデータベースには、例えば複数の二次元コードの各デコード対象データ(第2データ)が、それぞれ各二次元コードのIDと対応付けて記憶されている。従って、IDが判明すれば、そのIDで特定される二次元コードのデコード対象データ(第2データ)を読み出すことができるようになっている。
【0061】
サーバ60は、コンピュータ50から送信されたIDに基づいてデータベースから読み出したデータ(IDに対応する第2データ)を、コンピュータ50に送信している。コンピュータ50は、IDの送信に応じてサーバか60から返信されたデータ(第2データ)を受信し、記憶部52に一時的に記憶する(S25)。そして、この受信データ(第2データ)についてのデータ処理(出力処理等)を行う(S26)。
【0062】
なお、本実施形態では、CPU51が「判断手段」の一例に相当し、光学的情報読取手段による第2データ領域の読み取りが失敗したか否かを判断する機能を有する。また、CPU51及び通信部53は、「通信手段」の一例に相当し、サーバ60と通信する機能を有し、更に、第2データ領域76の読み取りが失敗したと判断された場合、サーバ60(情報処理装置)にアクセスし且つサーバ60に対し第1データ領域75に記録されるIDを送信するように機能している。
【0063】
(本実施形態の主な効果)
本実施形態では、読取対象となる二次元コード70において、矩形領域内の規定位置にセルの位置を特定する特定パターン71が配置されている。そして、特定パターン71寄りの第1データ領域75に、当該二次元コード70のIDを含んだ第1データが記録され、第1データ領域75よりも特定パターン71から離れた領域に第2データが記録されている。このように第1データ領域75を特定パターン71の近くに配置することで、第1データの読み取りの精度を高めることができ、第1データの読み取りが失敗し難くなる。この第1データには二次元コード70のIDが含まれているため、第2データの読み取りが失敗するような状況下でも、最低限IDを取得するといったことが行いやすくなる。
【0064】
また、読取システム2は、第2データ領域76の読み取りが失敗したか否かを判断しており、第2データ領域76の読み取りが失敗した場合には、サーバ60(情報処理装置)に対して第1データ領域75に記録されるIDを送信している。一方、サーバ60のデータベースには、二次元コードの第2データがIDと対応付けて記憶されており、サーバ60は、読取システム2からのアクセス及びIDの送信に応じ、当該IDに対応する第2データをデータベースから読み出している。そして、それをID送信元の読取システム2に返信している。このように構成されているため、第2データ領域76の読み取りが失敗するような場合であっても、読み取りが比較的成功しやすい第1データ領域75のデータ(ID)を利用してサーバ60からバックアップデータ(第2データ)を取得することができ、ひいては、デコード不良を効果的に解消できるようになる。
【0065】
また、読取対象となる二次元コード70において、第2データ領域76の誤り訂正能力よりも、第1データ領域75の誤り訂正能力のほうが高く設定されている。このようにすると、読取システム2が二次元コード70を読み取る際に、第1データの読み取りがより一層失敗しにくくなり、バックアップデータを取得する際に必要となるデータ(ID)がより取得されやすくなる。
【0066】
また、読取システム2では、「光学的情報読取手段」が読取端末10の内部に設けられ、「通信手段」がコンピュータ50の内部に設けられている。そして、読取端末10には、二次元コード70の読取データを生成する「生成手段」と、その生成された読取データをコンピュータ50に出力する「出力手段」とが設けられている。このように通信手段等をコンピュータ50側に設けることで、読取端末10の軽量化、小型化を図ることができ、コンピュータ50側では、読取端末10の読取結果に応じて適切な情報処理、通信処理を行うことができるようになる。
【0067】
更に、読取端末10に設けられた「生成手段」が、第1データ領域75の読取結果及び第2データ領域76の読取結果を特定するデータ(読取結果特定データ)を読取データに付加しているため、コンピュータ50において、第1データ及び第2データの読取結果を迅速に把握することができ、第2データが読取不良であるときには即座にバックアップ処理に移行できるようになる。また、読取データには、第1データと第2データとを区別するセパレータが付加されるため、コンピュータ50において第1データと第2データとを迅速且つ確実に区別することができ、バックアップデータの取得に必要となる処理(IDの取得、IDの送信処理等)をスムーズに行うことができる。
【0068】
[第2実施形態]
次に第2実施形態について説明する。図8は、第2実施形態に係る二次元コード読み取りシステムで読み取られる二次元コードを説明する説明図である。図9は、第2実施形態において読取端末で行われる読取処理を例示するフローチャートである。図10は、ビット列の多数決処理を説明する説明図である。
【0069】
第2実施形態に係る二次元コード読み取りシステムは、第1実施形態と同様のハードウェア構成となっている。従って、読取端末10、コンピュータ50、サーバ60等については、適宜図1、図2を参照することとし、詳細な説明は省略する。
【0070】
第2実施形態では、読取対象となる二次元コードの構成が第1実施形態とは異なっている。図8に示すように、第2実施形態で用いられる二次元コード270は、当該二次元コード270のID(第1データ)が、複数の第1データ領域275a、275b、275cにそれぞれ記録されている。各第1データ領域275a、275b、275cに記録される各ID(第1データ)はビット列で表されるものであり、各第1データ領域275a、275b、275cでは、このビット列が複数のセルによって表現されている。また、各第1データ領域275a、275b、275cのいずれか又は全てに、ID(第1データ)に対応した誤り訂正符号が記録されている。
【0071】
また、第2データ領域276の構成は、第1実施形態の第2データ領域76と同様であり、第1実施形態と同様の出力対象データ(第2データ)が記録されている。また、この第2データに基づいて生成された誤り訂正符号も記録されている。
【0072】
また、二次元コード270には、第1実施形態で用いられる二次元コード70(図3)と同様の特定パターン71、第2パターン72、73が設けられている。なお、これら構成、機能は、第1実施形態の二次元コード70と同一であるため、詳細な説明は省略する。
【0073】
次に、本実施形態に係る二次元コード読取システムによって行われる二次元コード読取処理について説明する。まず、読取端末10において図9に示すような読取処理が行われる。この読取処理では、始めに図5のS1、S2と同様の処理(S201、S202)を行い、特定パターン71(切出しシンボル)、コード外形、各セルの中心座標などを検出する。
【0074】
その後、第1データ領域を読み取る処理を行う(S203)。本実施形態では、二次元コード270において複数の第1データ領域275a、275b、275cが設けられているため、S203では、各第1データ領域275a、275b、275cに記録される各第1データの読み取りを試みる。各第1データ領域275a、275b、275cの読み取りは、QRコード等の公知の二次元コードにおけるデータの読み取りと基本的に同様であり、各第1データ領域275a、275b、275cそれぞれにおいて、第1データを記録した各データコードブロックの解読を試みる。
【0075】
その後、第1データ領域275a、275b、275cのいずれかの読み取りが成功したか否かを判断する(S204)。S203においていずれかの第1データ領域の読み取りが成功した場合にはS204にてYesに進み、S203で読み取った第1データをバッファに格納する(S206)。一方、全ての第1データ領域275a、275b、275cの読み取りが失敗した場合にはS204にてNoに進み、多数決処理を行う(S205)。
【0076】
この多数決処理では、まず、各第1データ領域275a、275b、275cにそれぞれ記録される各第1データ(IDデータ)のビット列を、ビット位置ごとに比較し、値が一致していないビット位置を検出する。なお、各第1データ領域275a、275b、275cには、同一のデータ(第1データ)が記録されているため、各第1データ領域275a、275b、275cが正確に読み取られたときには、同一のビット列(正規のビット列)が3つ得られることとなる。しかしながら、第1データ領域275a、275b、275cのいずれかに誤りが生じている場合、図10のように、1又は複数のビット位置において、値が一致しないこととなる。
【0077】
図10の例では、第1データ領域275aのブロック(データブロック1)に記録されるIDが「1001110100001・・・0110」と読み取られ、第1データ領域275bのブロック(データブロック2)に記録されるIDが「1001000100011・・・1110」と読み取られている。更に、第1データ領域275cのブロック(データブロック3)に記録されるIDが「1001010101011・・・0110」と読み取られている。この例では、5番目、6番目、10番目、12番目・・・n−3番目の位置において、3つのブロックの値が一致していないため、これら位置が「不一致ビット位置」として検出されることになる。
【0078】
上記のように不一致ビット位置(値が一致していないビット位置)が検出されたときには、その不一致ビット位置において用いるべきビット値を、当該不一致ビット位置における3つのブロックの各値の多数決をとることによって決定する。図10の例では、5番目のビット位置において、1つのデータブロック(データブロック1)の値が「1」とされ、2つのデータブロック(データブロック2、3)の値が「0」とされているため、多数決により5番目のビット位置の値を「0」に決定している。同様に、6番目のビット位置では、1つのデータブロック(データブロック2)の値が「0」とされ、2つのデータブロック(データブロック1、3)の値が「1」とされているため、多数決により6番目のビット位置の値を「1」に決定している。このようにして各不一致ビット位置の値を多数決により順次決定し、図10最下段のようなデータ(第1データと推定されるデータ)を生成する。なお、このような推定データに対して更に誤り訂正を行うようにしてもよい。
本実施形態では、CPU51が「ビット位置検出手段」「ビット値多数決手段」の一例に相当している。
【0079】
S205(図9)の多数決処理の後には、この多数決処理によって得られた値(図10の例では、「1001010100011・・・0110」)を、第1データ領域の読取データとしてバッファに格納する(S206)。なお、その後の処理(S207〜S211の処理)は、図5のS6〜S10と同様の処理であるため詳細な説明は省略する。
【0080】
図9に示すように、本実施形態でも、読取端末10からコンピュータ50に対して送信データ(図6)が送信されるようになっており(S211)、コンピュータ50は、このデータの受信に応じて第1実施形態と同様の解析処理を行っている(図7)。なお、コンピュータ50で行われる解析処理は図7と同一であるので詳細な説明は省略する。
【0081】
また、本実施形態でも、サーバ60には、第1実施形態と同様のデータベースが設けられ、第1実施形態と同様の検索、返信処理がなされている。即ち、サーバ60のデータベースにおいて、各二次元コードのIDと対応付けて各二次元コードのデコード対象データ(第2データ)が記憶されており、図7の解析処理において、第2データの読み取りが失敗したと判断され(即ち、S22でNo)、S24においてコンピュータ50からサーバ60に対しIDが送信されたときには、サーバ60において、このIDに対応するデータ(第2データ)が読み出され、ID送信元の読取システム2に対して送信されるようになっている。なお、本実施形態では、図9のS203にていずれかの第1データ領域の読み取りが成功している場合には、S24の処理において、この成功した領域の読取データ(IDデータ)がサーバ60に送信され、S203にて読み取りが失敗し、S205の多数決処理によるID推定データが得られた場合には、S24の処理において、このID推定データがサーバ60に送信されるようになっている。
【0082】
本実施形態に係る二次元コード読取システムでは、読取対象となる二次元コード270において、複数の第1データ領域275a、275b、275cが設けられ、各第1データ領域に第1データがそれぞれ記録されている。また、それら複数の第1データ領域とは異なる第2データ領域276に第2データが記録されている。このように第1データ領域を複数設けることで、第1データの読み取りの成功確率を高めることができる。この第1データには二次元コード270のIDが含まれているため、出力対象データ(第2データ)の読み取りが失敗するような状況下でも、最低限IDを取得できる可能性が高くなる。また、本実施形態でも、第2データ領域276の読み取りが失敗した場合に、読み取りが比較的成功しやすい第1データ領域のデータ(ID)を利用してサーバ60からバックアップデータ(第2データ)を取得することができ、ひいては、デコード不良を効果的に解消することができる。
【0083】
また、二次元コード270には、3つの第1データ領域275a、275b、275cが設けられ、各第1データ領域に、IDのビット列が記録されている。そして、読取システム2には「ビット位置検出手段」が設けられており、3つの第1データ領域275a、275b、275cにそれぞれ記録される3つのIDビット列を、各ビット位置ごとに比較し、値が一致していないビット位置を検出している。このようにすると、誤りの原因となっているビット位置を正確に特定できるようになる。更に、値が一致していないビット位置が検出された場合、その値が一致していないビット位置において用いるべきビット値を、3つのIDビット列において当該ビット位置に用いられている各値の多数決をとることによって決定している。このようにすると、誤りが生じているビット位置の値を適切に推定でき、正確な第1データが得られやすくなる。
【0084】
次に、本実施形態の一部処理を変更した別例を説明する。なお、この別例は、第2実施形態に係る上記例とほぼ同様であり、S205(図9)の多数決処理のみが異なっている。よって多数決処理以外の説明は省略する。
【0085】
上記の例では、S205の多数決処理において、各第1データ領域275a、275b、275cのビット列の各値を比較して多数決をとっていたが、各第1データ領域275a、275b、275cにおいて複数のコードワードによってIDを表現する場合、これら3つの第1データ領域275a、275b、275cにそれぞれ記録される3つのIDの読取データについて、各対応位置毎にコードワード同士を比較し、コードワードが一致していない対応位置を検出するようにしてもよい。
【0086】
図11は、このような多数決処理の一例を示しており、IDがm個のコードワードによって表現される場合を説明している。この場合、まず、各第1データ領域275a、275b、275cにそれぞれ記録される各第1データ(IDデータ)のコードワード列を、コードワード位置ごとに比較し、値が一致していないコードワード位置を検出する。なお、各第1データ領域275a、275b、275cには、同一のデータ(第1データ)が記録されているため、各第1データ領域275a、275b、275cが正確に読み取られたときには、同一のコードワード列(正規のコードワード列)が3つ得られることとなる。しかしながら、第1データ領域275a、275b、275cのいずれかに誤りが生じている場合、図11のように、1又は複数のビット位置において、値が一致しないこととなる。
【0087】
図11の例では、第1データ領域275aのブロック(データブロック1)に記録されるIDが「12,A6,CB,8E・・・D4,BD,03,73」と読み取られ、第1データ領域275bのブロック(データブロック2)に記録されるIDが「12,A6,EB,8E・・・D4,BD,02,73」と読み取られている。更に、第1データ領域275cのブロック(データブロック3)に記録されるIDが「12,A6,EB,8E・・・D4,BD,04,73」と読み取られている。この例では、3番目、10番目、・・・m−1番目の位置において、3つのブロックの値が一致していないため、これら位置が「不一致コードワード位置」として検出されることになる。
【0088】
このように、3つのID読取データにおいてコードワードが一致していない対応位置(不一致コードワード位置)が検出された場合には、当該対応位置(不一致コードワード位置)において用いるべきコードワード値を、それら3つのID読取データにおいて当該対応位置に用いられている各値の多数決をとることによって決定する。図11の例では、3番目のコードワード位置において、1つのデータブロック(データブロック1)の値が「CB」とされ、2つのデータブロック(データブロック2、3)の値が「EB」とされているため、多数決により3番目のコードワード位置の値を「EB」に決定している。同様に、10番目のコードワード位置において、1つのデータブロック(データブロック2)の値が「01」とされ、2つのデータブロック(データブロック1、3)の値が「00」とされているため、多数決により10番目のコードワード位置の値を「00」に決定している。
【0089】
一方、不一致コードワード位置の内、m−1番目のコードワード位置については、3つのデータブロック全ての値が異なっており、多数決をとることができなくなっている。このように多数決をとることができない対応位置が発生した場合には、当該対応位置を誤り発生位置として消失訂正を行う。なお、本実施形態では、各第1データ領域のいずれか或いはそれぞれに、IDデータ(第1データ)に対応する誤り訂正符号が設けられており、この誤り訂正符号を用い、多数決をとることができないコードワード位置(図11では、m−1番目)のみを誤り訂正位置として消失訂正を行うことなる。
【0090】
なお、S205において、全ての不一致コードワード位置が多数決によって復元された場合、或いは、多数決と消失訂正によって全ての不一致コードワード位置が復元された場合には、その復元データ(各不一致コードワード位置が復元されてなるID推定データ)をバッファに格納する。この場合、図7のS24においては、その復元データがサーバ60に送信されることになる。
なお、この例では、CPU51が、「不一致位置検出手段」「コードワード値多数決手段」「消失訂正手段」の一例に相当する。
【0091】
上記別例によれば、誤りの原因となっているコードワード位置を正確に特定できるようになる。更に、上記別例では、「消失訂正手段」が設けられ、コードワードが一致していない対応位置(不一致コードワード位置)が検出された場合に、当該対応位置を誤り発生位置として第1データ領域に対し消失訂正を行っている。このように、誤りが生じているコードワード位置を特定した上で消失訂正を行うようにすれば、誤り訂正能力が高められ、IDを復元できる可能性がより高くなる。
【0092】
また、「コードワード値多数決手段」が設けられ、3つのID読取データにおいてコードワードが一致していない対応位置が検出された場合に、当該対応位置(不一致コードワード位置)において用いるべきコードワード値を、それら3つのID読取データにおいて当該対応位置に用いられている各値の多数決をとることによって決定している。そして、コードワードが一致していない対応位置(不一致コードワード位置)のうち、多数決をとることができない位置(多数決不能位置)を誤り発生位置として消失訂正を行っている。このようにすると、多数決による推定により誤り発生位置を減らした上で消失訂正を行うことができるため、誤り訂正能力を一層高めることができ、IDの復元可能性がより一層高まる。
【0093】
[第3実施形態]
次に第3実施形態について説明する。図12は、第3実施形態に係る二次元コード読み取りシステムで読み取られる二次元コードを説明する説明図である。図13は、図12の二次元コードに記録されるデータの一例を示す説明図である。図14は、第3実施形態における読取端末での読取処理を例示するフローチャートである。図15(a)は、読取端末からコンピュータに送信される送信データの一例を概念的に示す説明図であり、図15(b)は、コンピュータからサーバに送信するデータの一例を概念的に示す説明図である。図16は、第3実施形態におけるコンピュータでの解析処理を例示するフローチャートである。
【0094】
第3実施形態に係る読取システムは、読取端末10、コンピュータ50、サーバ60については、第1実施形態と同様のハードウェア構成となっている。従って、これらについては、適宜図1、図2を参照することとし、詳細な説明は省略する。
【0095】
また、第3実施形態では、第2実施形態と同様の二次元コードを読取対象としており、本実施形態では第2データ領域をより具体化している。よって、第2実施形態で用いる二次元コード270と同一の部分については図8と同一の符号を付し、詳細な説明を省略する。
【0096】
本実施形態で用いられる二次元コード370は、第2データ領域に記録される第2データが、複数のデータブロック(データブロックA、B、C)を含んでいる。なお、データブロックAが記録される領域については、一点鎖線376aにて概念的に例示し、データブロックBが記録される領域については一点鎖線376bにて概念的に例示している。また、データブロックCが記録される領域については一点鎖線376cにて概念的に例示している。本実施形態では、これら領域376a、376b、376c全体が第2データ領域に相当している。
【0097】
二次元コード370には、図13のようなデータが記録されている。この内、IDの記録方法は第2実施形態と同様であり、各第1データ領域275a、275b、275cにそれぞれ同一のIDデータ(図13の例では「12345678」というデータ)が記録されている。
【0098】
また、第2データとして、3種類のデータ(工程Aで扱うデータ、工程Bで扱うデータ、工程Cで扱うデータ)が記録されている。工程Aで扱うデータ(第1種類のデータ)としては、「機械強度=252kg/mm,1232kg/mm,345N」というデータが例示されており、このデータブロックには「A」という固有情報が付されている。また、工程Bで扱うデータ(第2種類のデータ)としては、「電気的入力特性=75Ω,100pF,180mA」というデータが例示されており、このデータブロックには「B」という固有情報が付されている。更に、工程Cで扱うデータ(第3種類のデータ)としては、「試験 =高温試験,60℃,RH80%,48h」というデータが例示されており、このデータブロックには「C」という固有情報が付されている。本実施形態に係る二次元コード読み取りシステムでは、このように構成される二次元コード370を読み取りうる構成をなしており、更に、第2データ領域のいずれかのデータブロックが読取不良である場合に当該データブロックを選択的にバックアップできるようになっている。以下、その内容を具体的に説明する。
【0099】
まず、図14を参照し、読取端末10で行われる読取処理を説明する。
この読取処理では、始めに、始めに図5のS1、S2と同様の処理(S301、S302)を行い、特定パターン71(切出しシンボル)、コード外形、各セルの中心座標などを検出する。
【0100】
その後、データブロック数(N)を取得する(S303)。このデータブロック数(N)は、例えば、二次元コード内の所定領域に形式情報として設けられており、この領域を読み取ることで、二次元コード370にいくつのデータブロックが存在するかを把握する。そして、nの値を初期化し(S304)、n番目(初回であれば1番目)のデータブロックが読み取り可能か否かを確認する(S305)。n番目のデータブロックが読取可能であれば、S305にてYesに進み、n番目のデータブロックの読取データをバッファに格納する(S306)。一方、n番目のデータブロックが読取不能である場合には、S305にてNoに進む。この場合、n番目のデータブロックのデータがバッファに格納されないことになる。
【0101】
その後、nがデータブロック数(N)に達しているか否かを判断する(S307)。nがデータブロック数(N)に達していない場合には、nをインクリメントし(S308)、そのインクリメント後のn番目のデータブロックについてS305以降の処理を繰り返す。S307にてnがデータブロック数(N)に達したと判断される場合には、S307にてYesに進み、二次元コード370内のN個のデータブロックの読み取りが全て失敗したか否かを判断する(S309)。全て失敗した場合にはS309にてYesに進み、当該読取処理を終了する。一方、いずれかのデータブロックの読み取りが成功した場合(バッファにいずれかのデータブロックのデータが格納されている場合)には、S309にてNoに進み、読み取ることができた全てのデータブロックのデータをコンピュータ50に送信する(S310)。
【0102】
このように、本実施形態では、第2データ領域におけるいずれかのデータブロックの読み取りが失敗し、他のデータブロックの読み取りが成功した場合、その読み取りが成功したデータブロックのデータを出力している。また、図15(a)に示すように、読み取りが成功したデータブロックが複数存在する場合には、それら複数のデータブロックのデータを出力する際に、データブロック間に識別子(図15(a)では、「0x1D」という特定データからなるセパレータ)を付して出力している。
【0103】
次に、図16を参照してコンピュータ50での解析処理について説明する。
図16に示すように、当該解析処理では、まず読取端末10からデータが送信されてきたか否かを判断する(S320)。この判断処理では、読取端末10から図15(a)に示す送信データが送られるまではNoに進んで待機状態を維持する。一方、読取端末10からの送信データを受信したときにはS320にてYesに進み、S321の評価処理を行う。
【0104】
S321の処理では、読取端末10からの送信データ(図15(a))において各データブロックのデータにそれぞれ含まれる識別子(グループ識別子)を切出し、その識別子の内容を確認する。本実施形態で用いられる二次元コード370では、図13に示すように各データブロックに識別子が付されており、IDデータが記録される第1データ領域275a、275b、275cの各データブロック(データブロック1〜3)には、それぞれ「ID」という識別子(グループ識別子)が付されている。また、領域276a、276b、276cの各データブロック(データブロック4〜6)には、それぞれの固有情報として「A」「B」「C]という識別子(グループ識別子)が付されている。S321では、これら識別子を切り出して確認し、どのデータブロックのデータが取得できなかったかを把握している。
【0105】
S321において全てのデータブロックの識別子が確認された場合には、S322にてYesに進み、現在起動しているアプリケーション(例えばコンピュータ50で起動しているアプリケーション)に応じたデータ処理(データ出力処理等)を行う(S327)。一方、いずれかのデータブロックの識別子が確認されていない場合には、S322にてNoに進み、現在起動しているアプリケーションで必要とされるデータブロックが全て読み取られているか否かを確認する(S323)。現在起動しているアプリケーションで必要とされるデータブロックの識別子が全て確認されている場合には、S323にてYesに進み、この場合にも、現在起動しているアプリケーションに応じたデータ処理(データ出力処理等)を行う。
【0106】
S323にてNoに進む場合には、IDを記録したデータブロック(データブロック1〜3)のいずれかが読み取られたか否かを確認する。S321において「ID」という識別子(グループ識別子)が1つも確認できなかった場合には、S324にてNoに進み、読取端末10に対して再読み取りを指示する(S328)。
【0107】
S321において「ID]という識別子(グループ識別子)が1つでも確認できた場合には、その識別子に対応付けられたIDデータと、第2データ領域における読み取りができなかったデータコードブロックの識別子とを、サーバ60に送信する(S325)。なお、S325の処理で送信されるデータは、例えば図15(b)のような構成となっており、この例では、読み取りができなかったデータブロックの識別子(グループ識別子)と、データ(IDデータ)とが含まれ、これらの間に特定データからなるセパレータが介在している。
【0108】
本実施形態では、サーバ60のデータベースにおいて、各ID毎にデータ(第2データ)が記録されており、さらに、各ID毎のデータにおいて、各データブロック毎に読み出し可能な状態で記憶されている。例えば、サーバ60のデータベース内に、「12345678」というIDと対応付けて、図13に示すような、工程Aで扱うデータ「機械強度=252kg/mm,1232kg/mm,345N」、工程Bで扱うデータ「電気的入力特性=75Ω,100pF,180mA」、工程Cで扱うデータ「試験 =高温試験,60℃,RH80%,48h」が記録されており、各データにそれぞれ「A」「B」「C」というインデックスが付されている。従って、例えばS321において、「A」「C」という識別子のみが確認され「B」という識別子が確認されなかった場合には、「12345678」というIDと、確認できなかった識別子「B」とをサーバ60に与えることで、「12345678」で特定される二次元コード370における識別子「B」に係るデータを選択的にサーバ60から読み出すことができる。
【0109】
なお、本実施形態では、S325にて生成される、「読取不良となったデータブロックの識別子のデータ」が、読み取りが失敗したデータブロックを特定する「特定情報」の一例に相当する。また、CPU51が「特定情報生成手段」の一例に相当し、第2データ領域の読み取りが失敗したと判断される場合に、当該第2データ領域における読み取りが成功したデータブロックの固有情報に基づき、読み取りが失敗したデータブロックを特定する「特定情報」を生成するように機能している。
【0110】
なお、二次元コード370の第2データ領域にいくつのデータブロックが存在するか、及び各データブロックの識別子(グループ識別子)が何であるかは、予めコンピュータ50において情報として備えさせておいてもよく、二次元コード370の所定領域において形式情報として記録しておいてもよい。
【0111】
また、図16の例では、現在起動しているアプリケーションで必要となるいずれかのデータブロックが読み取れなかった場合にS325の送信処理を行っているが、S323の処理を省略し、第2データ領域のいずれかのデータブロックが読み取り不良である場合にS325の処理を行うようにしてもよい。
【0112】
本実施形態の構成によれば、読み取りが成功したデータブロックをダウンロードせず、失敗したデータブロックのみを選択的にダウンロードすることができるため、ダウンロード時間を大幅に削減できる。
【0113】
また、本実施形態では、第2データ領域のいずれかのデータブロックの読み取りが失敗し、他のデータブロックの読み取りが成功した場合に、その読み取りが成功した他のデータブロックのデータを読取端末10(光学的情報読取手段)から出力している。このようにすると、当該出力データを受ける側(即ちコンピュータ50)において、読み取りが成功したデータブロックの種類や内容を確実に把握でき、読み取りが失敗したデータブロックを迅速且つ正確に特定しでダウンロードできるようになる。
【0114】
また、読み取りが成功したデータブロックが複数存在する場合、それら複数のデータブロックのデータを読取端末10から出力する際に、データブロック間に識別子を付して出力している。このようにすると、当該出力データを受ける側(即ちコンピュータ50)において、読み取りが成功した複数のデータブロックの各種類や各内容をそれぞれ確実に把握でき、データブロックが多数存在するようなコード構成であっても、読み取りが失敗したデータブロックを迅速且つ正確に特定してダウンロードできるようになる。
【0115】
[他の実施形態]
本発明は上記記述及び図面によって説明した実施形態に限定されるものではなく、例えば次のような実施形態も本発明の技術的範囲に含まれる。
【0116】
上記実施形態では、明色セルと暗色セルによって構成される二次元コードを例示したが、3種類以上の色のセルによって構成される二次元コード(いわゆるカラーコード)であってもよい。
【0117】
上記実施形態では、読取端末10の外部(コンピュータ50)に通信手段を設けたが、読取端末10の内部に通信手段を設け、読取端末10をサーバ60と通信できるようにしてもよい。この場合、制御回路40を「通信手段、判断手段、ビット位置検出手段、ビット値多数決手段、不一致位置検出手段、消失訂正手段、特定情報生成手段」として機能させることができ、読取端末10がサーバ60からバックアップデータを直接ダウンロードできるようになる。
【0118】
第2、第3実施形態では、第1データ領域が3つ設けられた例を示したが、第1データ領域が3以上であってもよい。また、第3実施形態では、第1データ領域が1つ又は2つであってもよく、1つの場合には、第1実施形態の二次元コード70(図3)と同様の配置で第1データ領域を構成してもよい。
【0119】
上記実施形態では、図3、図8のような二次元コードを読取対象として例示したが、読取対象となる二次元コードの構成、種類はこれに限定されない。例えば、図18のようなQRコードに3以上の第1データ領域と第2データ領域とを設け、これを第2、第3実施形態に係るシステムの読取対象としてもよい。或いは、図18のようなQRコードにおいて、3つのファインダパターン側に第1データ領域を設け、ファインダパターンが設けられない角部側に第2データ領域を設けたものを第1実施形態に係るシステムの読取対象としてもよい。
【符号の説明】
【0120】
1…二次元コード読み取りシステム
2…読取システム
10…読取端末
40…制御回路(生成手段、出力手段)
48…通信インタフェース(出力手段)
50…コンピュータ
51…CPU(通信手段、判断手段、ビット位置検出手段、ビット値多数決手段、不一致位置検出手段、消失訂正手段、特定情報生成手段)
52…記憶部
53…通信部(通信手段)
60…サーバ(情報処理装置)
70,270,370…二次元コード
71…特定パターン
75,275a,275b,275c…第1データ領域
76,276,376a,376b,376c…第2データ領域
C…セル
【技術分野】
【0001】
本発明は、二次元コード読み取りシステムに関するものである。
【背景技術】
【0002】
現在、QRコード等の二次元コードが様々な用途で用いられている。この二次元コードは、一次元コードと比較すると、一般的に大量のデータを扱うことができ、この特質を利用した二次元コード特有の運用もなされている。その一例としては、データベース全体を二次元コード内に格納するといった運用が挙げられる。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特開2005−190231公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
上記のように二次元コード内に大量のデータ(例えばデータベース等)を格納する場合、正常に読み取りができないときのバックアップをどのようにするかが問題となる。例えば、図18のように、二次元コードに隣接させてデータを併記する方法も考えられるが、データ量が大きい場合には印字スペースを広く確保しなければならない。また、図18のように併記されたデータをバックアップデータとして扱う場合、このようなバックアップデータを電子データとして扱うための入力作業が必要となり、作業負荷や誤入力といった問題がある。
【0005】
本発明は、上述した課題を解決するためになされたものであり、二次元コードのデータを読み取る読取システムにおいて、二次元コードの読み取りが失敗した場合であっても、二次元コード内の特定データを別経路で取得し得る構成を提供することを目的とする。
【課題を解決するための手段】
【0006】
請求項1の発明は、複数のセルが矩形領域内にマトリックス状に配置された二次元コードのデータを読み取る二次元コード読み取りシステムに関するものである。
本発明に係る二次元コード読み取りシステムには、前記二次元コードを読み取る光学的情報読取手段と、通信手段と、を有する読取システムと、データベースを有すると共に、前記通信手段と通信可能に構成された情報処理装置と、が設けられている。
また、前記二次元コードは、前記矩形領域内の規定の角部に特定パターンが配置され、前記特定パターン寄りの第1データ領域に、当該二次元コードのIDを含んだ第1データが記録され、前記第1データ領域よりも前記特定パターンから離れた領域に、第2データが記録されており、前記データベースは、前記二次元コードの前記第2データが、当該二次元コードの前記IDと対応付けて記憶されている。
更に、前記読取システムは、前記光学的情報読取手段による前記第2データ領域の読み取りが失敗したか否かを判断する判断手段を備えており、前記判断手段により前記第2データ領域の読み取りが失敗したと判断された場合、前記通信手段により前記情報処理装置にアクセスし且つ前記情報処理装置に対し前記第1データ領域に記録される前記IDを送信するように構成されている。
また、前記情報処理装置は、前記通信手段によるアクセス及び前記IDの送信に応じ、当該IDに対応する前記第2データを前記データベースから読み出すと共に、その読み出した前記第2データを、前記IDの送信元の前記読取システムに送信するように構成されている。
【0007】
請求項2の発明は、請求項1に記載の二次元コードの読取システムにおいて、前記二次元コードは、前記第2データ領域の誤り訂正能力よりも、前記第1データ領域の誤り訂正能力のほうが高く設定されている。
【0008】
請求項3の発明は、請求項1又は請求項2に記載の二次元コードの読取システムにおいて、前記光学的情報読取手段が、コンピュータに接続される読取端末内に設けられ、前記通信手段が、前記コンピュータ内に設けられている。
また、前記読取端末は、前記二次元コードの読取データを生成する生成手段と、前記生成手段によって生成された前記読取データを前記コンピュータに出力する出力手段と、を有しており、前記生成手段は、前記第1データ領域の読取結果及び前記第2データ領域の読取結果を特定する読取結果特定データと、前記第1データと前記第2データとを区別するセパレータとを、前記読取データに付加するように構成されている。
【0009】
請求項4の発明は、複数のセルが矩形領域内にマトリックス状に配置された二次元コードのデータを読み取る二次元コード読み取りシステムに関するものである。
本発明に係る二次下コード読取システムには、前記二次元コードを読み取る光学的情報読取手段と、通信手段と、を有する読取システムと、データベースを有すると共に、前記通信手段と通信可能に構成された情報処理装置と、が設けられている。
また、前記二次元コードは、当該二次元コードのIDを含んでなる第1データが、複数の第1データ領域にそれぞれ記録され、それら複数の前記第1データ領域とは異なる第2データ領域に、第2データが記録されており、前記データベースは、前記二次元コードの前記第2データが、当該二次元コードの前記IDと対応付けて記憶されている。
更に、前記読取システムは、前記光学的情報読取手段による前記第2データ領域の読み取りが失敗したか否かを判断する判断手段を備えており、前記判断手段によって前記第2データ領域の読み取りが失敗したと判断された場合に、前記通信手段が、前記情報処理装置にアクセスし且つ前記情報処理装置に対し前記第1データ領域に記録される前記IDを送信する構成をなしている。
また、前記情報処理装置は、前記通信手段によるアクセス及び前記IDの送信に応じ、当該IDに対応する前記第2データを前記データベースから読み出すと共に、その読み出した前記第2データを、前記IDの送信元の前記読取システムに送信するように構成されている。
【0010】
請求項5の発明は、請求項4に記載の二次元コード読み取りシステムにおいて、前記二次元コードに3以上の前記第1データ領域が設けられ、各第1データ領域に、前記IDのビット列が記録されている。
また、前記読取システムは、複数の前記第1データ領域にそれぞれ記録される複数の前記IDのビット列を、各ビット位置ごとに比較し、値が一致していないビット位置を検出するビット位置検出手段と、前記ビット位置検出手段により値が一致していないビット位置が検出された場合、その値が一致していないビット位置において用いるべきビット値を、複数の前記IDのビット列において当該ビット位置に用いられている各値の多数決をとることによって決定するビット値多数決手段と、を有している。
【0011】
請求項6の発明は、請求項4に記載の二次元コード読み取りシステムであって、各第1データ領域は、前記IDが複数のコードワードに亘って記録されており、
前記読取システムは、
複数の前記第1データ領域にそれぞれ記録される複数の前記IDについて、各対応位置毎にコードワード同士を比較し、コードワードが一致していない前記対応位置を検出する不一致位置検出手段と、
前記不一致位置検出手段によりコードワードが一致していない前記対応位置が検出された場合に、当該対応位置を誤り発生位置として前記第1データ領域に対し消失訂正を行う消失訂正手段と、
を有することを特徴とする。
【0012】
請求項7の発明は、請求項6に記載の二次元コード読み取りシステムであって、前記不一致位置検出手段により、複数の前記IDにおいてコードワードが一致していない前記対応位置が検出された場合に、当該対応位置において用いるべきコードワード値を、それら複数の前記IDにおいて当該対応位置に用いられている各値の多数決をとることによって決定するコードワード値多数決手段を備え、前記消失訂正手段は、コードワードが一致していない前記対応位置のうち、前記コードワード値多数決手段によって多数決をとることができない前記対応位置を誤り発生位置として前記消失訂正を行っている。
【0013】
請求項8の発明は、請求項1から請求項7のいずれか一項に記載の二次元コード読み取りシステムにおいて、前記第2データ領域に記録される前記第2データは、複数のデータブロックを含み、且つ各データブロック毎に固有情報が付されており、前記データベースには、前記IDに対応する前記第2データが、各データブロック毎に読み出し可能な状態で記憶されている。
更に、前記読取システムは、前記判断手段により前記第2データ領域の読み取りが失敗したと判断される場合に、当該第2データ領域における読み取りが成功した前記データブロックの前記固有情報に基づき、読み取りが失敗した前記データブロックを特定する特定情報を生成する特定情報生成手段を備え、前記判断手段によって前記第2データ領域の読み取りが失敗したと判断された場合に、前記通信手段が、前記情報処理装置に対し前記IDと共に前記特定情報を送信する構成をなしている。
また、前記情報処理装置は、前記読取システムの前記通信手段からのアクセスに応じ、前記ID及び前記特定情報に対応する前記データブロックを前記データベースから読み出すと共に、その読み出した前記データブロックを前記読取システムに送信している。
【0014】
請求項9の発明は、請求項8に記載の二次元コード読み取りシステムにおいて、前記光学的情報読取手段は、前記第2データ領域におけるいずれかの前記データブロックの読み取りが失敗し、他の前記データブロックの読み取りが成功した場合、その読み取りが成功した他の前記データブロックのデータを出力することを特徴とする。
【0015】
請求項10の発明は、請求項9に記載の二次元コード読み取りシステムにおいて、前記光学的情報読取手段は、読み取りが成功した前記データブロックが複数存在する場合、それら複数の前記データブロックのデータを出力する際に、データブロック間に識別子を付して出力することを特徴とする。
【発明の効果】
【0016】
請求項1の発明は、読取対象となる二次元コードにおいて、矩形領域内の規定の角部に特定パターンが配置されている。そして、特定パターン寄りの第1データ領域に、当該二次元コードのIDを含んだ第1データが記録され、第1データ領域よりも特定パターンから離れた領域に第2データが記録されている。このように規定の角部に特定パターンを配置することで、当該特定パターンを、各セルを検出する基準として用いることができ、このような特定パターンの近くに第1データ領域を配置することで、第1データの読み取りの精度を高め、第1データの読み取りを成功しやすくすることができる。そして、この第1データには二次元コードのIDが含まれているため、第2データの読み取りが失敗するような状況下でも、最低限IDを取得するといったことが行いやすくなる。
また、光学的情報読取手段を備えた読取システム側には、第2データ領域の読み取りが失敗したか否かを判断する判断手段が設けられ、この判断手段により第2データ領域の読み取りが失敗したと判断された場合、通信手段により情報処理装置にアクセスし且つ情報処理装置に対し第1データ領域に記録されるIDを送信している。
一方、情報処理装置のデータベースには、二次元コードの第2データがIDと対応付けて記憶されており、情報処理装置は、前記通信手段によるアクセス及びIDの送信に応じ、当該IDに対応する第2データをデータベースから読み出し、IDの送信元の読取システムに送信している。。
このように構成されているため、第2データ領域の読み取りが失敗するような場合であっても、読み取りが比較的成功しやすい第1データ領域のデータ(ID)を利用して情報処理装置からバックアップデータ(第2データ)を取得することができ、ひいては、デコード不良を効果的に解消することができる。
【0017】
請求項2の発明は、二次元コードにおいて、第2データ領域の誤り訂正能力よりも、第1データ領域の誤り訂正能力のほうが高く設定されている。このようにすると、読取システムが二次元コードを読み取る際に、第1データの読み取りがより一層失敗しにくくなり、バックアップデータを取得する際に必要となるデータ(ID)がより取得されやすくなる。
【0018】
請求項3の発明は、光学的情報読取手段が読取端末内に設けられ、通信手段がコンピュータ内に設けられている。そして、読取端末には、二次元コードの読取データを生成する生成手段と、その生成された読取データをコンピュータに出力する出力手段とが設けられている。このように通信手段等をコンピュータ側に設けることで、読取端末の軽量化、小型化を図ることができ、コンピュータ側では、読取端末の読取結果に応じて適切な情報処理、通信処理を行うことができるようになる。
更に、読取端末に設けられた生成手段が、第1データ領域の読取結果及び第2データ領域の読取結果を特定するデータ(読取結果特定データ)を読取データに付加するように構成されているため、コンピュータ側で、第1データ及び第2データの読取結果を迅速に把握することができ、第2データが読取不良であるときには即座にバックアップ処理に移行できる。また、読取データには、第1データと第2データとを区別するセパレータが付加されるため、コンピュータ側で第1データと第2データとを迅速且つ確実に区別することができ、バックアップデータの取得に必要となる処理(IDの取得、IDの送信処理等)をスムーズに行うことができる。
【0019】
請求項4の発明は、読取対象となる二次元コードにおいて、複数の第1データ領域が設けられ、各第1データ領域に第1データがそれぞれ記録されている。また、それら複数の第1データ領域とは異なる第2データ領域に第2データが記録されている。このように第1データ領域を複数設けることで、第1データの読み取りが成功する確率を高めることができる。この第1データには二次元コードのIDが含まれているため、第2データの読み取りが失敗するような状況下でも、最低限IDを取得するといったことが行いやすくなる。 また、光学的情報読取手段を備えた読取システム側には、第2データ領域の読み取りが失敗したか否かを判断する判断手段が設けられ、この判断手段により第2データ領域の読み取りが失敗したと判断された場合、通信手段により情報処理装置にアクセスし且つ情報処理装置に対し第1データ領域に記録されるIDを送信している。
一方、情報処理装置のデータベースには、二次元コードの第2データがIDと対応付けて記憶されており、情報処理装置は、前記通信手段によるアクセス及びIDの送信に応じ、当該IDに対応する第2データをデータベースから読み出し、IDの送信元の読取システムに送信している。
このように構成されているため、第2データ領域の読み取りが失敗するような場合であっても、読み取りが比較的成功しやすい第1データ領域のデータ(ID)を利用して情報処理装置からバックアップデータ(第2データ)を取得することができ、ひいては、デコード不良を効果的に解消することができる。
【0020】
請求項5の発明は、二次元コードに3以上の第1データ領域が設けられ、各第1データ領域に、IDのビット列が記録されている。また、読取システム側にはビット位置検出手段が設けられており、複数の第1データ領域にそれぞれ記録される複数のIDのビット列を、各ビット位置ごとに比較し、値が一致していないビット位置を検出している。このようにすると、誤りの原因となっているビット位置を正確に特定できるようになる。
更に、値が一致していないビット位置が検出された場合、その値が一致していないビット位置において用いるべきビット値を、複数のIDのビット列において当該ビット位置に用いられている各値の多数決をとることによって決定している。このようにすると、誤りが生じているビット位置の値を適切に推定でき、正確な第1データが得られやすくなる。
【0021】
請求項6の発明では、各第1データ領域において、IDが複数のコードワードに亘って記録され、読取システム側には不一致位置検出手段が設けられており、複数の第1データ領域にそれぞれ記録される複数のIDについて、各対応位置毎にコードワード同士を比較し、コードワードが一致していない対応位置を検出している。このようにすると、誤りの原因となっているコードワード位置を正確に特定できるようになる。更に、消失訂正手段が設けられ、コードワードが一致していない対応位置が検出された場合に、当該対応位置を誤り発生位置として第1データ領域に対し消失訂正を行っている。このように、誤りが生じているコードワード位置を特定した上で消失訂正を行うようにすれば、誤り訂正能力が高められ、IDを復元できる可能性がより高くなる。
【0022】
請求項7の発明では、コードワード値多数決手段が設けられ、複数のIDにおいてコードワードが一致していない対応位置が検出された場合に、当該対応位置において用いるべきコードワード値を、それら複数のIDにおいて当該対応位置に用いられている各値の多数決をとることによって決定している。そして、コードワードが一致していない対応位置のうち、多数決をとることができない対応位置を誤り発生位置として消失訂正を行っている。このようにすると、多数決による推定により誤り発生位置を減らした上で消失訂正を行うことができるため、誤り訂正能力を一層高めることができ、IDの復元可能性がより一層高まる。
【0023】
請求項8の発明は、第2データ領域の読み取りが失敗したと判断される場合に、当該第2データ領域における読み取りが成功したデータブロックの固有情報に基づき、読み取りが失敗したデータブロックを特定する情報(特定情報)を生成している。そして、情報処理装置に対し、IDと共に当該特定情報を送信している。一方、情報処理装置は、読取システムからのアクセスに応じ、ID及び特定情報に対応するデータブロックをデータベースから読み出し、その読み出したデータブロックを読取システムに送信している。このようにすると、読み取りが成功したデータブロックをダウンロードせず、失敗したデータブロックのみを選択的にダウンロードすることができるため、ダウンロード時間を大幅に削減できる。
【0024】
請求項9の発明では、第2データ領域のいずれかのデータブロックの読み取りが失敗し、他のデータブロックの読み取りが成功した場合に、その読み取りが成功した他のデータブロックのデータを光学的情報読取手段から出力している。このようにすると、当該出力データを受ける側において、読み取りが成功したデータブロックの種類や内容を確実に把握でき、読み取りが失敗したデータブロックを迅速且つ正確に特定しでダウンロードできるようになる。
【0025】
請求項10の発明では、読み取りが成功したデータブロックが複数存在する場合、それら複数のデータブロックのデータを出力する際に、データブロック間に識別子を付して出力している。このようにすると、当該出力データを受ける側において、読み取りが成功した複数のデータブロックの各種類や各内容をそれぞれ確実に把握でき、データブロックが多数存在するようなコード構成であっても、読み取りが失敗したデータブロックを迅速且つ正確に特定してダウンロードできるようになる。
【図面の簡単な説明】
【0026】
【図1】図1は、本発明の第1実施形態に係る二次元コード読み取りシステムの構成を概略的に例示するブロック図である。
【図2】図2は、図1の二次元コード読み取りシステムの一部をなす読取端末の構成を概略的に例示するブロック図である。
【図3】図3は、図1のシステムによって読み取られる二次元コードの一例について概略的に説明する説明図である。
【図4】図4は、図3の二次元コードの第1データ領域及び第2データ領域の構成を概念的に説明する説明図である。
【図5】図5は、読取端末での読取処理の流れを例示するフローチャートである。
【図6】図6は、読取端末からコンピュータに出力される送信データのフォーマットを説明する説明図である。
【図7】図7は、コンピュータでの解析処理の流れを例示するフローチャートである。
【図8】図8は、第2実施形態に係る二次元コード読み取りシステムで読み取られる二次元コードを説明する説明図である。
【図9】図9は、第2実施形態において読取端末で行われる読取処理を例示するフローチャートである。
【図10】図10は、多数決処理を説明する説明図である。
【図11】図11は、図10とは異なる多数決処理を説明する説明図である。
【図12】図12は、第3実施形態に係る二次元コード読み取りシステムで読み取られる二次元コードを説明する説明図である。
【図13】図13は、図12の二次元コードに記録されるデータの一例を示す説明図である。
【図14】図14は、第3実施形態における読取端末での読取処理を例示するフローチャートである。
【図15】図15(a)は、読取端末からコンピュータに送信される送信データの一例を示す説明図であり、図15(b)は、コンピュータからサーバに送信するデータの一例を示す説明図である。
【図16】図16は、第3実施形態におけるコンピュータでの解析処理を例示するフローチャートである。
【図17】図17は、読取対象となる二次元コードの別例を示す説明図である。
【図18】図18は、従来におけるデータのバックアップ方法を説明する説明図である。
【発明を実施するための形態】
【0027】
[第1実施形態]
以下、本発明の二次元コード読み取りシステムを具現化した第1実施形態について、図面を参照して説明する。
(全体構成)
まず、図1を参照して本実施形態に係る二次元コード読み取りシステム1の全体構成を説明する。
図1に示すように、本実施形態に係る二次元コード読み取りシステム1(以下、単にシステム1とも称する)は、複数のセルからなる二次元コード70(図3等参照)を読み取るシステムとして構成されており、図1に示すように読取端末10と、コンピュータ50と、サーバ60とを備えている。
【0028】
読取端末10は、例えば図2のような構成をなしており、二次元コードを読み取り可能な二次元コードリーダとして機能している。この読取端末10は、図2に示すように、主に、照明光源21、受光センサ23、フィルタ25、結像レンズ27等の光学系と、メモリ35、制御回路40、操作スイッチ42、液晶表示装置46等のマイクロコンピュータ(以下「マイコン」という)系などから構成されている。なお、これらは、図略のプリント配線板に実装あるいはケース(図示略)内に内装されている。
【0029】
光学系は、照明光源21、受光センサ23、フィルタ25、結像レンズ27等から構成されている。照明光源21は、照明光Lfを発光可能な照明光源として機能するもので、例えば、赤色のLEDとこのLEDの出射側に設けられる拡散レンズ、集光レンズ等とから構成されている。本実施形態では、受光センサ23を挟んだ両側に照明光源21が設けられており、ケースに形成された読取口(図示略)を介して読取対象物Rに向けて照明光Lfを照射可能に構成されている。読取対象物Rとしては、例えば、樹脂材料、金属材料等の様々な対象が考えられ、図2では、読取対象物Rに二次元コード70が印刷、ダイレクトマーキングなどによって形成された例を示している。
【0030】
受光センサ23は、読取対象物Rや二次元コード70に照射されて反射した反射光Lrを受光可能に構成されるもので、例えば、C−MOSやCCD等の固体撮像素子である受光素子を2次元に配列したエリアセンサが、これに相当する。この受光センサ23は、結像レンズ27を介して入射する入射光を受光面23aで受光し得るように、図略のプリント配線板に実装されている。また、フィルタ25は、反射光Lrの波長相当以下の光の通過を許容し、当該波長相当を超える光の通過を遮断し得る光学的なローパスフィルタで、ケースに形成された読取口(図示略)と結像レンズ27との間に設けられている。また、結像レンズ27は、例えば、鏡筒とこの鏡筒内に収容される複数の集光レンズとによって構成されており、本実施形態では、ケースに形成された読取口(図示略)に入射する反射光Lrを集光し、受光センサ23の受光面23aに二次元コード70のコード画像を結像するように構成されている。
【0031】
マイコン系は、増幅回路31、A/D変換回路33、メモリ35、アドレス発生回路36、同期信号発生回路38、制御回路40、操作スイッチ42、LED43、ブザー44、液晶表示装置46、通信インタフェース48等から構成されている。このマイコン系は、マイコン(情報処理装置)として機能し得る制御回路40及びメモリ35を中心として構成され、前述した光学系によって撮像された二次元コード70の画像信号をハードウェア的およびソフトウェア的に信号処理し得るものである。
【0032】
光学系の受光センサ23から出力される画像信号(アナログ信号)は、増幅回路31に入力されることで所定ゲインで増幅された後、A/D変換回路33に入力され、アナログ信号からディジタル信号に変換される。そして、ディジタル化された画像信号、つまり画像データ(画像情報)は、メモリ35に入力され、当該メモリ35の画像データ蓄積領域に蓄積される。なお、同期信号発生回路38は、受光センサ23およびアドレス発生回路36に対する同期信号を発生可能に構成されており、またアドレス発生回路36は、この同期信号発生回路38から供給される同期信号に基づいて、メモリ35に格納される画像データの格納アドレスを発生可能に構成されている。
【0033】
メモリ35は、複数の半導体メモリ装置からなるものであり、例えばRAM(DRAM、SRAM等)やROM(EPROM、EEPROM等)などによって構成されている。このメモリ35のうちのRAMには、前述した画像データ蓄積領域のほかに、制御回路40が算術演算や論理演算等の各処理時に利用する作業領域や読取条件テーブルも確保可能に構成されている。またROMには、後述する読取処理等を実行可能な所定プログラムやその他、照明光源21、受光センサ23等の各ハードウェアを制御可能なシステムプログラム等が予め格納されている。
【0034】
制御回路40は、読取端末10全体を制御可能なマイコンであり、CPU、システムバス、入出力インタフェース等を備え、情報処理機能を有している。この制御回路40には、内蔵された入出力インタフェースを介して種々の入出力装置(周辺装置)が接続されており、本実施形態では、操作スイッチ42、LED43、ブザー44、液晶表示装置46、通信インタフェース48等が接続されている。また、通信インタフェース48には、読取端末10の上位システムに相当するコンピュータ50を接続できるようになっている。
なお、本実施形態では、読取端末10内に収容される収容部品が「光学的情報読取手段」として機能している。
【0035】
コンピュータ50は、例えば公知のパーソナルコンピュータ等として構成されており、図1に示すように、CPU51と、記憶部52と、通信部53とを有している。CPU51は、コンピュータ50の全体的な制御や、読取端末10からのデータに対する各種演算処理等を行うものである。また、記憶部52は、ROM、RAM、ハードディスクドライブなどの記憶手段によって構成されており、少なくとも、読取端末10から取得したデータやサーバ60から取得したデータを一時的に記憶し得る構成をなしている。また、通信部53は、サーバ60と通信を行う際のインタフェースとして構成されており、本実施形態では、インターネット等の通信網を介してサーバ60と通信を行うように構成されている。
【0036】
サーバ60も、公知のパーソナルコンピュータ等として構成されており、図1に示すように、CPU61と、記憶部62と、通信部63とを有している。CPU61は、サーバ60の全体的な制御や、コンピュータ50から取得したデータに対する各種演算処理などを行うものである。また、記憶部62は、ROM、RAM、ハードディスクドライブなどの記憶手段によって構成されており、いずれかのメディア(例えばハードディスクドライブ)には、後述するデータベースが格納されている。また、通信部63は、コンピュータ50と通信を行う際のインタフェースとして構成されており、上述のようにインターネット等の通信網を介してコンピュータ50と通信を行うように構成されている。
【0037】
(二次元コード)
次に、上記システム1によって読み取られる二次元コードについて説明する。
図3に示すように、システム1によって読み取られる二次元コード70は、複数の情報表示単位セル(以下、単にセルとも称する)が集合したセル集合体として構成されている。図3では、各セルが2種類のセル(明色セル及び暗色セル)の内のいずれかとされており、各セル領域が正方形領域として構成されている。そして、このようなセルがマトリックス状に配置されることで、コード領域(セルが配置される領域)全体が矩形領域として構成されている。なお、図3では、一部のセルのみについて符号Cを付しており、他のセルの符号は省略している。また、特定パターン71、第2パターン73、74以外の各セルについては、外縁のみ実線で示しており、具体的構成は省略している。
【0038】
図3の二次元コード70は、コード領域(矩形領域)における4つ角部70a〜70dの内、規定の角部70aに、外形が矩形状(詳しくは正方形状)に構成された特定パターン71が配置されている。この特定パターン71は、外縁を構成する2辺によって規定の角部70aの角位置(角部分の境界位置)を定めている。また、特定パターン71は、コード領域における各セルCの位置の特定するための要素として機能するものであり、具体的には、当該二次元コード70を撮像したときの画像データにおいて、規定の角部70aの位置を特定するために用いられると共に、その画像データにおいて二次元コード70の向きを特定するために用いられ、更にはコード領域内における各セルの位置を特定するために用いられるようになっている。なお、本明細書全体を通し、「特定パターン」とは、二次元コードに含まれるデータ(デコードすべきデータ)に関係なく一定形状で構成されるパターンを意味している。
【0039】
図3に示す特定パターン71は、中心に第1の色のセル(黒色セル71a)が1つ配置され、その第1の色のセル(黒色セル71a)の周りを第2の色のセル(白色セル71b)が矩形状に囲んでいる。さらに、その環状のセル群(白色セル71bのセル群)の周りを第1の色のセル(黒色セル71c)が囲んだ構成をなし、それが最外周のセル群として構成されている。そして、その最外周のセル群の外形が正方形状に構成され、特定パターン71全体として外形が矩形状となっている。
【0040】
また、図3の二次元コード70には、特定パターン71に隣接して第2パターン72、73が設けられている。これら第2パターン72、73は、データに関係なく一定形状(図3の例では、明色セルと暗色セルとが交互に配置される形状)とされるものであり、コード領域(矩形領域)の境界をなす4つの辺のうち、特定パターン71が接する境界部に隣接して配置されている。この第2パターン72、73は、二次元コード70のコード領域(矩形領域)を背景から分離するために利用されるものであり、後述する読み取りの際には、この第2パターン72、73を基準としてコード領域全体が背景から分離されるようになっている。
【0041】
また、図3の二次元コード70は、特定パターン71寄りに、第1データが記録された第1データ領域75が設けられ、この第1データ領域75よりも特定パターン71から離れた側に、第2データが記録された第2データ領域76が設けられている。第1データ領域75に記録される第1データは、少なくとも二次元コード70のIDを含んでいる。なお、第1データは、ID以外のデータ(例えば、二次元コード70のフォーマットデータ(二次元コード70の種別やサイズなどを示すデータ)等)を含んでいてもよく、第1データがIDのみによって構成されていてもよい。また、図4上段に示すように、第1データ領域には、第1データに対応する誤り訂正符号も記録されている。第1データ領域75において、第1データは複数のデータコードブロックによって表現されており、各データコードブロックを構成する各セルは、予め定められた複数種類(図3の例では白黒の二種類)のセルの中からいずれかの種類のセルが選択されて用いられる。
【0042】
第2データ領域に記録される第2データは、読取後に出力する対象となるデータ(デコード対象データ)であり、様々な種類のデータを含めることができる。また、図4下段に示すように、第2データ領域には、第2データに対応する誤り訂正符号も記録されている。
【0043】
第1データ領域75の第1データ、及び第2データ領域76の第2データを表現する各データコードブロックは、デコードすべき符号化データ(データコード語)に対応したセルの配列で構成されている。本実施形態では、セルの色が、数値に対応付けられており、例えば、データ値「0」に対して白色セル、データ値「1」に対して黒色セルがそれぞれ対応付けられている。
【0044】
第1データ領域75に記録される誤り訂正符号は、第1データの誤り訂正を行うための誤り訂正コード語によって構成されている。この誤り訂正コード語は、第1データを構成する符号化データ(データコード語)に基づいて生成されたものである。また、第2データ領域76の誤り訂正符号も、第2データの誤り訂正を行うための誤り訂正コード語によって構成されている。この誤り訂正コード語は、第2データを構成する符号化データ(データコード語)に基づいて生成されたものである。
【0045】
なお、第1データ領域及び第2データ領域のいずれについても、データコード語に基づいて誤り訂正コード語を生成する方法として、例えば公知のリード・ソロモン誤り訂正方式を用いることができる。例えば、データコード語に基づいて誤り訂正コード語を生成する方法として、JISX0510:2004に規定された誤り訂正コード語の生成方法(JISX0510:2004、8.5誤り訂正)と同様の方法を用いた場合、誤り訂正コード語は、データコードブロックについてのデータコード語を二進数で表した後、誤り訂正検出及び訂正(JISX0510:2004付属書A)で使用される多項式g(x)によって当該データコード語を除算して得られた剰余とされる。第1データ領域の誤り訂正符号は、第1データを構成する符号化データ(データコード語)に基づいて上記のように生成された誤り訂正コード語によって構成され、第1データ領域では、この誤り訂正符号を、複数のセルからなるブロック(誤り訂正コードブロック)を複数配置することで表している。また、第2データ領域の誤り訂正符号も同様であり、第2データを構成する符号化データ(データコード語)に基づいて上記のように生成された誤り訂正コード語によって構成され、第2データ領域では、この誤り訂正符号を、複数のセルからなるブロック(誤り訂正コードブロック)を複数配置することで表している。なお、ここでは、JISX0510に規定される方法と同様の方法を用いて誤り訂正コード語を生成したが、誤り訂正コード語の生成方法はこれに限られず、公知の様々な方法を用いることができる。
【0046】
上述したように、本実施形態では、第1データが記録された第1データ領域75よりも、第2データが記録された第2データ領域76のほうが、位置的に特定パターン71に近づけられており、更に、第1データ領域75に記録される誤り訂正符号(第1データの誤りを訂正するための誤り訂正符号)のほうが、第2データ領域76に記録される誤り訂正符号(第2データの誤りを訂正するための誤り訂正符号)よりも誤り訂正能力が高められている。例えば、第1データのデータコード語数がN1であり、第1データの誤り訂正能力(誤り訂正レベル)を、「Q」(JISX0510)に相当するレベルに設定する場合には、JISX0510においてデータコード語数N1且つ誤り訂正レベル「Q]の場合になされる方式で誤り訂正コード語を生成する。また、第2データのデータコード語数がN2であり、第2データの誤り訂正能力(誤り訂正レベル)を、「L」(JISX0510)に相当するレベルに設定する場合には、JISX0510においてデータコード語数N2且つ誤り訂正レベル「L]の場合になされる方式で誤り訂正コード語を生成する。
【0047】
(二次元コード読み取り処理)
次に、システム1による二次元コード読み取り処理について説明する。
まず、図5を参照しつつ読取端末10で行われる読取処理について説明する。図5では、二次元コード70が撮像された後の処理を示しており(撮像処理については省略)、まず、撮像画像において、特定パターン71(切出しシンボル)を検出し、コード領域の外形を検出している(S1)。特定パターン71は、予め定められた所定形状であるため、S1ではまずこの所定形状を検出し、更に、コード領域の外形を検出している。その後、特定パターン71(切出しシンボル)を基準として、各セルCの中心座標を求める(S2)。
【0048】
上記のように各セルの中心座標が特定された後には、第1データ領域のデータの読み取りを行う(S3)。S3の処理では、第1データ領域の各セルCの中心座標の各輝度値に基づいて、各セルCが明色セル及び暗色セルのいずれであるかを判別し、第1データ領域75に記録された第1データを読み取る。この第1データの読み取りは、QRコード等の公知の二次元コードにおけるデータの読み取りと基本的に同様であり、第1データを記録した各データコードブロックを解読すると共に、いずれかのデータコードブロックに誤りが生じた場合には、第1データに対応して生成された誤り訂正符号に基づいて誤り訂正を行う。
【0049】
その後、S3において第1データ領域75の読み取りが成功したか否かを判断し(S4)、成功した場合にはS4にてYesに進み、S3で読み取った第1データをバッファに格納する(S5)。一方、第1データ領域75の読み取りが失敗した場合にはS4にてNoに進む。
【0050】
S5の処理後、或いはS4にてNoに進む場合には、第2データ領域の読取処理を行う(S6)。この処理では、第2データ領域の各セルCの中心座標の各輝度値に基づいて各セルCが明色セル及び暗色セルのいずれであるかを判別し、第2データ領域76に記録された第2データを読み取る。この読み取りは、第1データ領域75の読み取り(S3)と同様であり、第2データを記録した各データコードブロックを解読すると共に、いずれかのデータコードブロックに誤りが生じた場合には、第2データに対応して生成された誤り訂正符号に基づいて誤り訂正を行う。
【0051】
その後、S6において第2データ領域76の読み取りが成功したか否かを判断し(S7)、成功した場合にはS7にてYesに進み、S6で読み取った第2データをバッファに格納する(S8)。一方、第2データ領域76の読み取りが失敗した場合にはS7にてNoに進む。
【0052】
S8の処理後、或いはS7にてNoに進む場合には、バッファにデータが存在するか否かを判断する。即ち、S5の格納処理或いはS8の格納処理によって第1データ及び第2データの少なくともいずれかがバッファに格納されているか否かを判断し、いずれかが格納されている場合には、S9にてYesに進み、S10の送信処理を行う。S10では、バッファの内容に応じた送信データを生成し、この送信データをコンピュータ50に対して送信する。
【0053】
S10で生成されるデータは、例えば図6のような構成をなしている。図6の例では、データの先頭において、いずれのデータ領域の読み取りが成功したかを示す識別子が配されている。この識別子は、第1データ領域の読取結果及び第2データ領域の読取結果を特定する「読取結果特定データ」の一例に相当するものであり、第1データ領域及び第2データ領域のいずれもが読み取り成功となった場合には、「A」という識別子が付され、第1データ領域の読み取りのみが成功し、第2データ領域の読み取りが失敗した場合には「B」という識別子が付されるようになっている。逆に、第2データ領域の読み取りのみが成功し、第1データ領域の読み取りが失敗した場合には「C」という識別子が付されるようになっている。
【0054】
また、読取り領域識別子の後には、第1データ領域の読取データ(第1データ)が配されている。また、第1データの後には、セパレータを挟んで第2データ領域の読取データ(第2データ)が配されている。なお、第1データ領域の読み取りが成功しなかった場合(識別子として「C」が付される場合)には、第1データが含まれず、第2データ領域の読み取りが成功しなかった場合(識別子として「B」が付される場合)には、第2データが含まれないことになる。セパレータは、予め定められた特定データ(図6では、文字「GS」)で構成されており、このセパレータを挟んだ前後にそれぞれ第1データ及び第2データが配置されることで、第1データと第2データとが明確に区別されている。
【0055】
なお、本実施形態では、制御回路40が「生成手段」の一例に相当し、二次元コード70の読取データ(図6)を生成する機能を有する。また、制御回路40及び通信インタフェース48は「出力手段」の一例に相当し、その生成された読取データをコンピュータ50に出力する機能を有している。
【0056】
次に、コンピュータ50側での解析処理について説明する。図7に示す解析処理は、読取端末10での読取結果を解析し、必要に応じてサーバからデータをダウンロードする処理である。
【0057】
図7に示すように、当該解析処理では、まず読取端末10からデータが送信されてきたか否かを判断する(S20)。この判断処理では、読取端末10から図6に示す送信データが送られるまではNoに進んで待機状態を維持する。一方、読取端末10からの送信データを受信したときにはS20にてYesに進み、S21の評価処理を行う。
【0058】
S21の処理では、読取端末10からの送信データ(図6)の先頭部分の識別子(読取り領域識別子)を切出し、その識別子の内容を確認する。そして、識別子が第2データ領域の読取成功を示すものであるか否か(即ち、識別子が「A」又は「C」であるか否か)を判断し(S22)、第2データ領域の読取成功を示すものである場合(即ち、識別子が「A」又は「C」である場合)には、S22にてYesに進み、第2データ領域の読取データ(第2データ)を切出す処理を行う。S23では、送信データ(図6)から当該送信データに含まれている第2データ(第2データ領域の読取データ)を取得しており、その後、その取得した第2データについてのデータ処理(出力処理等)を行う(S26)。
【0059】
一方、S22において、第2データ領域の読み取りが失敗と判断される場合(即ち、識別子が「B」である場合)、S22にてNoに進み、第1データ領域の読取データ(第1データ)を切出し、これをサーバ60に送信する処理を行う(S24)。第1データには、二次元コード70のIDが含まれているため、S24の処理により、このIDがサーバ60に送信されることとなる。
【0060】
サーバ60は、コンピュータ50からのデータ送信を常時監視しており、コンピュータ50からIDが送られてきたときには、そのIDに対応するデータ(第2データ)を検索し読み出している。サーバ60内のデータベースには、例えば複数の二次元コードの各デコード対象データ(第2データ)が、それぞれ各二次元コードのIDと対応付けて記憶されている。従って、IDが判明すれば、そのIDで特定される二次元コードのデコード対象データ(第2データ)を読み出すことができるようになっている。
【0061】
サーバ60は、コンピュータ50から送信されたIDに基づいてデータベースから読み出したデータ(IDに対応する第2データ)を、コンピュータ50に送信している。コンピュータ50は、IDの送信に応じてサーバか60から返信されたデータ(第2データ)を受信し、記憶部52に一時的に記憶する(S25)。そして、この受信データ(第2データ)についてのデータ処理(出力処理等)を行う(S26)。
【0062】
なお、本実施形態では、CPU51が「判断手段」の一例に相当し、光学的情報読取手段による第2データ領域の読み取りが失敗したか否かを判断する機能を有する。また、CPU51及び通信部53は、「通信手段」の一例に相当し、サーバ60と通信する機能を有し、更に、第2データ領域76の読み取りが失敗したと判断された場合、サーバ60(情報処理装置)にアクセスし且つサーバ60に対し第1データ領域75に記録されるIDを送信するように機能している。
【0063】
(本実施形態の主な効果)
本実施形態では、読取対象となる二次元コード70において、矩形領域内の規定位置にセルの位置を特定する特定パターン71が配置されている。そして、特定パターン71寄りの第1データ領域75に、当該二次元コード70のIDを含んだ第1データが記録され、第1データ領域75よりも特定パターン71から離れた領域に第2データが記録されている。このように第1データ領域75を特定パターン71の近くに配置することで、第1データの読み取りの精度を高めることができ、第1データの読み取りが失敗し難くなる。この第1データには二次元コード70のIDが含まれているため、第2データの読み取りが失敗するような状況下でも、最低限IDを取得するといったことが行いやすくなる。
【0064】
また、読取システム2は、第2データ領域76の読み取りが失敗したか否かを判断しており、第2データ領域76の読み取りが失敗した場合には、サーバ60(情報処理装置)に対して第1データ領域75に記録されるIDを送信している。一方、サーバ60のデータベースには、二次元コードの第2データがIDと対応付けて記憶されており、サーバ60は、読取システム2からのアクセス及びIDの送信に応じ、当該IDに対応する第2データをデータベースから読み出している。そして、それをID送信元の読取システム2に返信している。このように構成されているため、第2データ領域76の読み取りが失敗するような場合であっても、読み取りが比較的成功しやすい第1データ領域75のデータ(ID)を利用してサーバ60からバックアップデータ(第2データ)を取得することができ、ひいては、デコード不良を効果的に解消できるようになる。
【0065】
また、読取対象となる二次元コード70において、第2データ領域76の誤り訂正能力よりも、第1データ領域75の誤り訂正能力のほうが高く設定されている。このようにすると、読取システム2が二次元コード70を読み取る際に、第1データの読み取りがより一層失敗しにくくなり、バックアップデータを取得する際に必要となるデータ(ID)がより取得されやすくなる。
【0066】
また、読取システム2では、「光学的情報読取手段」が読取端末10の内部に設けられ、「通信手段」がコンピュータ50の内部に設けられている。そして、読取端末10には、二次元コード70の読取データを生成する「生成手段」と、その生成された読取データをコンピュータ50に出力する「出力手段」とが設けられている。このように通信手段等をコンピュータ50側に設けることで、読取端末10の軽量化、小型化を図ることができ、コンピュータ50側では、読取端末10の読取結果に応じて適切な情報処理、通信処理を行うことができるようになる。
【0067】
更に、読取端末10に設けられた「生成手段」が、第1データ領域75の読取結果及び第2データ領域76の読取結果を特定するデータ(読取結果特定データ)を読取データに付加しているため、コンピュータ50において、第1データ及び第2データの読取結果を迅速に把握することができ、第2データが読取不良であるときには即座にバックアップ処理に移行できるようになる。また、読取データには、第1データと第2データとを区別するセパレータが付加されるため、コンピュータ50において第1データと第2データとを迅速且つ確実に区別することができ、バックアップデータの取得に必要となる処理(IDの取得、IDの送信処理等)をスムーズに行うことができる。
【0068】
[第2実施形態]
次に第2実施形態について説明する。図8は、第2実施形態に係る二次元コード読み取りシステムで読み取られる二次元コードを説明する説明図である。図9は、第2実施形態において読取端末で行われる読取処理を例示するフローチャートである。図10は、ビット列の多数決処理を説明する説明図である。
【0069】
第2実施形態に係る二次元コード読み取りシステムは、第1実施形態と同様のハードウェア構成となっている。従って、読取端末10、コンピュータ50、サーバ60等については、適宜図1、図2を参照することとし、詳細な説明は省略する。
【0070】
第2実施形態では、読取対象となる二次元コードの構成が第1実施形態とは異なっている。図8に示すように、第2実施形態で用いられる二次元コード270は、当該二次元コード270のID(第1データ)が、複数の第1データ領域275a、275b、275cにそれぞれ記録されている。各第1データ領域275a、275b、275cに記録される各ID(第1データ)はビット列で表されるものであり、各第1データ領域275a、275b、275cでは、このビット列が複数のセルによって表現されている。また、各第1データ領域275a、275b、275cのいずれか又は全てに、ID(第1データ)に対応した誤り訂正符号が記録されている。
【0071】
また、第2データ領域276の構成は、第1実施形態の第2データ領域76と同様であり、第1実施形態と同様の出力対象データ(第2データ)が記録されている。また、この第2データに基づいて生成された誤り訂正符号も記録されている。
【0072】
また、二次元コード270には、第1実施形態で用いられる二次元コード70(図3)と同様の特定パターン71、第2パターン72、73が設けられている。なお、これら構成、機能は、第1実施形態の二次元コード70と同一であるため、詳細な説明は省略する。
【0073】
次に、本実施形態に係る二次元コード読取システムによって行われる二次元コード読取処理について説明する。まず、読取端末10において図9に示すような読取処理が行われる。この読取処理では、始めに図5のS1、S2と同様の処理(S201、S202)を行い、特定パターン71(切出しシンボル)、コード外形、各セルの中心座標などを検出する。
【0074】
その後、第1データ領域を読み取る処理を行う(S203)。本実施形態では、二次元コード270において複数の第1データ領域275a、275b、275cが設けられているため、S203では、各第1データ領域275a、275b、275cに記録される各第1データの読み取りを試みる。各第1データ領域275a、275b、275cの読み取りは、QRコード等の公知の二次元コードにおけるデータの読み取りと基本的に同様であり、各第1データ領域275a、275b、275cそれぞれにおいて、第1データを記録した各データコードブロックの解読を試みる。
【0075】
その後、第1データ領域275a、275b、275cのいずれかの読み取りが成功したか否かを判断する(S204)。S203においていずれかの第1データ領域の読み取りが成功した場合にはS204にてYesに進み、S203で読み取った第1データをバッファに格納する(S206)。一方、全ての第1データ領域275a、275b、275cの読み取りが失敗した場合にはS204にてNoに進み、多数決処理を行う(S205)。
【0076】
この多数決処理では、まず、各第1データ領域275a、275b、275cにそれぞれ記録される各第1データ(IDデータ)のビット列を、ビット位置ごとに比較し、値が一致していないビット位置を検出する。なお、各第1データ領域275a、275b、275cには、同一のデータ(第1データ)が記録されているため、各第1データ領域275a、275b、275cが正確に読み取られたときには、同一のビット列(正規のビット列)が3つ得られることとなる。しかしながら、第1データ領域275a、275b、275cのいずれかに誤りが生じている場合、図10のように、1又は複数のビット位置において、値が一致しないこととなる。
【0077】
図10の例では、第1データ領域275aのブロック(データブロック1)に記録されるIDが「1001110100001・・・0110」と読み取られ、第1データ領域275bのブロック(データブロック2)に記録されるIDが「1001000100011・・・1110」と読み取られている。更に、第1データ領域275cのブロック(データブロック3)に記録されるIDが「1001010101011・・・0110」と読み取られている。この例では、5番目、6番目、10番目、12番目・・・n−3番目の位置において、3つのブロックの値が一致していないため、これら位置が「不一致ビット位置」として検出されることになる。
【0078】
上記のように不一致ビット位置(値が一致していないビット位置)が検出されたときには、その不一致ビット位置において用いるべきビット値を、当該不一致ビット位置における3つのブロックの各値の多数決をとることによって決定する。図10の例では、5番目のビット位置において、1つのデータブロック(データブロック1)の値が「1」とされ、2つのデータブロック(データブロック2、3)の値が「0」とされているため、多数決により5番目のビット位置の値を「0」に決定している。同様に、6番目のビット位置では、1つのデータブロック(データブロック2)の値が「0」とされ、2つのデータブロック(データブロック1、3)の値が「1」とされているため、多数決により6番目のビット位置の値を「1」に決定している。このようにして各不一致ビット位置の値を多数決により順次決定し、図10最下段のようなデータ(第1データと推定されるデータ)を生成する。なお、このような推定データに対して更に誤り訂正を行うようにしてもよい。
本実施形態では、CPU51が「ビット位置検出手段」「ビット値多数決手段」の一例に相当している。
【0079】
S205(図9)の多数決処理の後には、この多数決処理によって得られた値(図10の例では、「1001010100011・・・0110」)を、第1データ領域の読取データとしてバッファに格納する(S206)。なお、その後の処理(S207〜S211の処理)は、図5のS6〜S10と同様の処理であるため詳細な説明は省略する。
【0080】
図9に示すように、本実施形態でも、読取端末10からコンピュータ50に対して送信データ(図6)が送信されるようになっており(S211)、コンピュータ50は、このデータの受信に応じて第1実施形態と同様の解析処理を行っている(図7)。なお、コンピュータ50で行われる解析処理は図7と同一であるので詳細な説明は省略する。
【0081】
また、本実施形態でも、サーバ60には、第1実施形態と同様のデータベースが設けられ、第1実施形態と同様の検索、返信処理がなされている。即ち、サーバ60のデータベースにおいて、各二次元コードのIDと対応付けて各二次元コードのデコード対象データ(第2データ)が記憶されており、図7の解析処理において、第2データの読み取りが失敗したと判断され(即ち、S22でNo)、S24においてコンピュータ50からサーバ60に対しIDが送信されたときには、サーバ60において、このIDに対応するデータ(第2データ)が読み出され、ID送信元の読取システム2に対して送信されるようになっている。なお、本実施形態では、図9のS203にていずれかの第1データ領域の読み取りが成功している場合には、S24の処理において、この成功した領域の読取データ(IDデータ)がサーバ60に送信され、S203にて読み取りが失敗し、S205の多数決処理によるID推定データが得られた場合には、S24の処理において、このID推定データがサーバ60に送信されるようになっている。
【0082】
本実施形態に係る二次元コード読取システムでは、読取対象となる二次元コード270において、複数の第1データ領域275a、275b、275cが設けられ、各第1データ領域に第1データがそれぞれ記録されている。また、それら複数の第1データ領域とは異なる第2データ領域276に第2データが記録されている。このように第1データ領域を複数設けることで、第1データの読み取りの成功確率を高めることができる。この第1データには二次元コード270のIDが含まれているため、出力対象データ(第2データ)の読み取りが失敗するような状況下でも、最低限IDを取得できる可能性が高くなる。また、本実施形態でも、第2データ領域276の読み取りが失敗した場合に、読み取りが比較的成功しやすい第1データ領域のデータ(ID)を利用してサーバ60からバックアップデータ(第2データ)を取得することができ、ひいては、デコード不良を効果的に解消することができる。
【0083】
また、二次元コード270には、3つの第1データ領域275a、275b、275cが設けられ、各第1データ領域に、IDのビット列が記録されている。そして、読取システム2には「ビット位置検出手段」が設けられており、3つの第1データ領域275a、275b、275cにそれぞれ記録される3つのIDビット列を、各ビット位置ごとに比較し、値が一致していないビット位置を検出している。このようにすると、誤りの原因となっているビット位置を正確に特定できるようになる。更に、値が一致していないビット位置が検出された場合、その値が一致していないビット位置において用いるべきビット値を、3つのIDビット列において当該ビット位置に用いられている各値の多数決をとることによって決定している。このようにすると、誤りが生じているビット位置の値を適切に推定でき、正確な第1データが得られやすくなる。
【0084】
次に、本実施形態の一部処理を変更した別例を説明する。なお、この別例は、第2実施形態に係る上記例とほぼ同様であり、S205(図9)の多数決処理のみが異なっている。よって多数決処理以外の説明は省略する。
【0085】
上記の例では、S205の多数決処理において、各第1データ領域275a、275b、275cのビット列の各値を比較して多数決をとっていたが、各第1データ領域275a、275b、275cにおいて複数のコードワードによってIDを表現する場合、これら3つの第1データ領域275a、275b、275cにそれぞれ記録される3つのIDの読取データについて、各対応位置毎にコードワード同士を比較し、コードワードが一致していない対応位置を検出するようにしてもよい。
【0086】
図11は、このような多数決処理の一例を示しており、IDがm個のコードワードによって表現される場合を説明している。この場合、まず、各第1データ領域275a、275b、275cにそれぞれ記録される各第1データ(IDデータ)のコードワード列を、コードワード位置ごとに比較し、値が一致していないコードワード位置を検出する。なお、各第1データ領域275a、275b、275cには、同一のデータ(第1データ)が記録されているため、各第1データ領域275a、275b、275cが正確に読み取られたときには、同一のコードワード列(正規のコードワード列)が3つ得られることとなる。しかしながら、第1データ領域275a、275b、275cのいずれかに誤りが生じている場合、図11のように、1又は複数のビット位置において、値が一致しないこととなる。
【0087】
図11の例では、第1データ領域275aのブロック(データブロック1)に記録されるIDが「12,A6,CB,8E・・・D4,BD,03,73」と読み取られ、第1データ領域275bのブロック(データブロック2)に記録されるIDが「12,A6,EB,8E・・・D4,BD,02,73」と読み取られている。更に、第1データ領域275cのブロック(データブロック3)に記録されるIDが「12,A6,EB,8E・・・D4,BD,04,73」と読み取られている。この例では、3番目、10番目、・・・m−1番目の位置において、3つのブロックの値が一致していないため、これら位置が「不一致コードワード位置」として検出されることになる。
【0088】
このように、3つのID読取データにおいてコードワードが一致していない対応位置(不一致コードワード位置)が検出された場合には、当該対応位置(不一致コードワード位置)において用いるべきコードワード値を、それら3つのID読取データにおいて当該対応位置に用いられている各値の多数決をとることによって決定する。図11の例では、3番目のコードワード位置において、1つのデータブロック(データブロック1)の値が「CB」とされ、2つのデータブロック(データブロック2、3)の値が「EB」とされているため、多数決により3番目のコードワード位置の値を「EB」に決定している。同様に、10番目のコードワード位置において、1つのデータブロック(データブロック2)の値が「01」とされ、2つのデータブロック(データブロック1、3)の値が「00」とされているため、多数決により10番目のコードワード位置の値を「00」に決定している。
【0089】
一方、不一致コードワード位置の内、m−1番目のコードワード位置については、3つのデータブロック全ての値が異なっており、多数決をとることができなくなっている。このように多数決をとることができない対応位置が発生した場合には、当該対応位置を誤り発生位置として消失訂正を行う。なお、本実施形態では、各第1データ領域のいずれか或いはそれぞれに、IDデータ(第1データ)に対応する誤り訂正符号が設けられており、この誤り訂正符号を用い、多数決をとることができないコードワード位置(図11では、m−1番目)のみを誤り訂正位置として消失訂正を行うことなる。
【0090】
なお、S205において、全ての不一致コードワード位置が多数決によって復元された場合、或いは、多数決と消失訂正によって全ての不一致コードワード位置が復元された場合には、その復元データ(各不一致コードワード位置が復元されてなるID推定データ)をバッファに格納する。この場合、図7のS24においては、その復元データがサーバ60に送信されることになる。
なお、この例では、CPU51が、「不一致位置検出手段」「コードワード値多数決手段」「消失訂正手段」の一例に相当する。
【0091】
上記別例によれば、誤りの原因となっているコードワード位置を正確に特定できるようになる。更に、上記別例では、「消失訂正手段」が設けられ、コードワードが一致していない対応位置(不一致コードワード位置)が検出された場合に、当該対応位置を誤り発生位置として第1データ領域に対し消失訂正を行っている。このように、誤りが生じているコードワード位置を特定した上で消失訂正を行うようにすれば、誤り訂正能力が高められ、IDを復元できる可能性がより高くなる。
【0092】
また、「コードワード値多数決手段」が設けられ、3つのID読取データにおいてコードワードが一致していない対応位置が検出された場合に、当該対応位置(不一致コードワード位置)において用いるべきコードワード値を、それら3つのID読取データにおいて当該対応位置に用いられている各値の多数決をとることによって決定している。そして、コードワードが一致していない対応位置(不一致コードワード位置)のうち、多数決をとることができない位置(多数決不能位置)を誤り発生位置として消失訂正を行っている。このようにすると、多数決による推定により誤り発生位置を減らした上で消失訂正を行うことができるため、誤り訂正能力を一層高めることができ、IDの復元可能性がより一層高まる。
【0093】
[第3実施形態]
次に第3実施形態について説明する。図12は、第3実施形態に係る二次元コード読み取りシステムで読み取られる二次元コードを説明する説明図である。図13は、図12の二次元コードに記録されるデータの一例を示す説明図である。図14は、第3実施形態における読取端末での読取処理を例示するフローチャートである。図15(a)は、読取端末からコンピュータに送信される送信データの一例を概念的に示す説明図であり、図15(b)は、コンピュータからサーバに送信するデータの一例を概念的に示す説明図である。図16は、第3実施形態におけるコンピュータでの解析処理を例示するフローチャートである。
【0094】
第3実施形態に係る読取システムは、読取端末10、コンピュータ50、サーバ60については、第1実施形態と同様のハードウェア構成となっている。従って、これらについては、適宜図1、図2を参照することとし、詳細な説明は省略する。
【0095】
また、第3実施形態では、第2実施形態と同様の二次元コードを読取対象としており、本実施形態では第2データ領域をより具体化している。よって、第2実施形態で用いる二次元コード270と同一の部分については図8と同一の符号を付し、詳細な説明を省略する。
【0096】
本実施形態で用いられる二次元コード370は、第2データ領域に記録される第2データが、複数のデータブロック(データブロックA、B、C)を含んでいる。なお、データブロックAが記録される領域については、一点鎖線376aにて概念的に例示し、データブロックBが記録される領域については一点鎖線376bにて概念的に例示している。また、データブロックCが記録される領域については一点鎖線376cにて概念的に例示している。本実施形態では、これら領域376a、376b、376c全体が第2データ領域に相当している。
【0097】
二次元コード370には、図13のようなデータが記録されている。この内、IDの記録方法は第2実施形態と同様であり、各第1データ領域275a、275b、275cにそれぞれ同一のIDデータ(図13の例では「12345678」というデータ)が記録されている。
【0098】
また、第2データとして、3種類のデータ(工程Aで扱うデータ、工程Bで扱うデータ、工程Cで扱うデータ)が記録されている。工程Aで扱うデータ(第1種類のデータ)としては、「機械強度=252kg/mm,1232kg/mm,345N」というデータが例示されており、このデータブロックには「A」という固有情報が付されている。また、工程Bで扱うデータ(第2種類のデータ)としては、「電気的入力特性=75Ω,100pF,180mA」というデータが例示されており、このデータブロックには「B」という固有情報が付されている。更に、工程Cで扱うデータ(第3種類のデータ)としては、「試験 =高温試験,60℃,RH80%,48h」というデータが例示されており、このデータブロックには「C」という固有情報が付されている。本実施形態に係る二次元コード読み取りシステムでは、このように構成される二次元コード370を読み取りうる構成をなしており、更に、第2データ領域のいずれかのデータブロックが読取不良である場合に当該データブロックを選択的にバックアップできるようになっている。以下、その内容を具体的に説明する。
【0099】
まず、図14を参照し、読取端末10で行われる読取処理を説明する。
この読取処理では、始めに、始めに図5のS1、S2と同様の処理(S301、S302)を行い、特定パターン71(切出しシンボル)、コード外形、各セルの中心座標などを検出する。
【0100】
その後、データブロック数(N)を取得する(S303)。このデータブロック数(N)は、例えば、二次元コード内の所定領域に形式情報として設けられており、この領域を読み取ることで、二次元コード370にいくつのデータブロックが存在するかを把握する。そして、nの値を初期化し(S304)、n番目(初回であれば1番目)のデータブロックが読み取り可能か否かを確認する(S305)。n番目のデータブロックが読取可能であれば、S305にてYesに進み、n番目のデータブロックの読取データをバッファに格納する(S306)。一方、n番目のデータブロックが読取不能である場合には、S305にてNoに進む。この場合、n番目のデータブロックのデータがバッファに格納されないことになる。
【0101】
その後、nがデータブロック数(N)に達しているか否かを判断する(S307)。nがデータブロック数(N)に達していない場合には、nをインクリメントし(S308)、そのインクリメント後のn番目のデータブロックについてS305以降の処理を繰り返す。S307にてnがデータブロック数(N)に達したと判断される場合には、S307にてYesに進み、二次元コード370内のN個のデータブロックの読み取りが全て失敗したか否かを判断する(S309)。全て失敗した場合にはS309にてYesに進み、当該読取処理を終了する。一方、いずれかのデータブロックの読み取りが成功した場合(バッファにいずれかのデータブロックのデータが格納されている場合)には、S309にてNoに進み、読み取ることができた全てのデータブロックのデータをコンピュータ50に送信する(S310)。
【0102】
このように、本実施形態では、第2データ領域におけるいずれかのデータブロックの読み取りが失敗し、他のデータブロックの読み取りが成功した場合、その読み取りが成功したデータブロックのデータを出力している。また、図15(a)に示すように、読み取りが成功したデータブロックが複数存在する場合には、それら複数のデータブロックのデータを出力する際に、データブロック間に識別子(図15(a)では、「0x1D」という特定データからなるセパレータ)を付して出力している。
【0103】
次に、図16を参照してコンピュータ50での解析処理について説明する。
図16に示すように、当該解析処理では、まず読取端末10からデータが送信されてきたか否かを判断する(S320)。この判断処理では、読取端末10から図15(a)に示す送信データが送られるまではNoに進んで待機状態を維持する。一方、読取端末10からの送信データを受信したときにはS320にてYesに進み、S321の評価処理を行う。
【0104】
S321の処理では、読取端末10からの送信データ(図15(a))において各データブロックのデータにそれぞれ含まれる識別子(グループ識別子)を切出し、その識別子の内容を確認する。本実施形態で用いられる二次元コード370では、図13に示すように各データブロックに識別子が付されており、IDデータが記録される第1データ領域275a、275b、275cの各データブロック(データブロック1〜3)には、それぞれ「ID」という識別子(グループ識別子)が付されている。また、領域276a、276b、276cの各データブロック(データブロック4〜6)には、それぞれの固有情報として「A」「B」「C]という識別子(グループ識別子)が付されている。S321では、これら識別子を切り出して確認し、どのデータブロックのデータが取得できなかったかを把握している。
【0105】
S321において全てのデータブロックの識別子が確認された場合には、S322にてYesに進み、現在起動しているアプリケーション(例えばコンピュータ50で起動しているアプリケーション)に応じたデータ処理(データ出力処理等)を行う(S327)。一方、いずれかのデータブロックの識別子が確認されていない場合には、S322にてNoに進み、現在起動しているアプリケーションで必要とされるデータブロックが全て読み取られているか否かを確認する(S323)。現在起動しているアプリケーションで必要とされるデータブロックの識別子が全て確認されている場合には、S323にてYesに進み、この場合にも、現在起動しているアプリケーションに応じたデータ処理(データ出力処理等)を行う。
【0106】
S323にてNoに進む場合には、IDを記録したデータブロック(データブロック1〜3)のいずれかが読み取られたか否かを確認する。S321において「ID」という識別子(グループ識別子)が1つも確認できなかった場合には、S324にてNoに進み、読取端末10に対して再読み取りを指示する(S328)。
【0107】
S321において「ID]という識別子(グループ識別子)が1つでも確認できた場合には、その識別子に対応付けられたIDデータと、第2データ領域における読み取りができなかったデータコードブロックの識別子とを、サーバ60に送信する(S325)。なお、S325の処理で送信されるデータは、例えば図15(b)のような構成となっており、この例では、読み取りができなかったデータブロックの識別子(グループ識別子)と、データ(IDデータ)とが含まれ、これらの間に特定データからなるセパレータが介在している。
【0108】
本実施形態では、サーバ60のデータベースにおいて、各ID毎にデータ(第2データ)が記録されており、さらに、各ID毎のデータにおいて、各データブロック毎に読み出し可能な状態で記憶されている。例えば、サーバ60のデータベース内に、「12345678」というIDと対応付けて、図13に示すような、工程Aで扱うデータ「機械強度=252kg/mm,1232kg/mm,345N」、工程Bで扱うデータ「電気的入力特性=75Ω,100pF,180mA」、工程Cで扱うデータ「試験 =高温試験,60℃,RH80%,48h」が記録されており、各データにそれぞれ「A」「B」「C」というインデックスが付されている。従って、例えばS321において、「A」「C」という識別子のみが確認され「B」という識別子が確認されなかった場合には、「12345678」というIDと、確認できなかった識別子「B」とをサーバ60に与えることで、「12345678」で特定される二次元コード370における識別子「B」に係るデータを選択的にサーバ60から読み出すことができる。
【0109】
なお、本実施形態では、S325にて生成される、「読取不良となったデータブロックの識別子のデータ」が、読み取りが失敗したデータブロックを特定する「特定情報」の一例に相当する。また、CPU51が「特定情報生成手段」の一例に相当し、第2データ領域の読み取りが失敗したと判断される場合に、当該第2データ領域における読み取りが成功したデータブロックの固有情報に基づき、読み取りが失敗したデータブロックを特定する「特定情報」を生成するように機能している。
【0110】
なお、二次元コード370の第2データ領域にいくつのデータブロックが存在するか、及び各データブロックの識別子(グループ識別子)が何であるかは、予めコンピュータ50において情報として備えさせておいてもよく、二次元コード370の所定領域において形式情報として記録しておいてもよい。
【0111】
また、図16の例では、現在起動しているアプリケーションで必要となるいずれかのデータブロックが読み取れなかった場合にS325の送信処理を行っているが、S323の処理を省略し、第2データ領域のいずれかのデータブロックが読み取り不良である場合にS325の処理を行うようにしてもよい。
【0112】
本実施形態の構成によれば、読み取りが成功したデータブロックをダウンロードせず、失敗したデータブロックのみを選択的にダウンロードすることができるため、ダウンロード時間を大幅に削減できる。
【0113】
また、本実施形態では、第2データ領域のいずれかのデータブロックの読み取りが失敗し、他のデータブロックの読み取りが成功した場合に、その読み取りが成功した他のデータブロックのデータを読取端末10(光学的情報読取手段)から出力している。このようにすると、当該出力データを受ける側(即ちコンピュータ50)において、読み取りが成功したデータブロックの種類や内容を確実に把握でき、読み取りが失敗したデータブロックを迅速且つ正確に特定しでダウンロードできるようになる。
【0114】
また、読み取りが成功したデータブロックが複数存在する場合、それら複数のデータブロックのデータを読取端末10から出力する際に、データブロック間に識別子を付して出力している。このようにすると、当該出力データを受ける側(即ちコンピュータ50)において、読み取りが成功した複数のデータブロックの各種類や各内容をそれぞれ確実に把握でき、データブロックが多数存在するようなコード構成であっても、読み取りが失敗したデータブロックを迅速且つ正確に特定してダウンロードできるようになる。
【0115】
[他の実施形態]
本発明は上記記述及び図面によって説明した実施形態に限定されるものではなく、例えば次のような実施形態も本発明の技術的範囲に含まれる。
【0116】
上記実施形態では、明色セルと暗色セルによって構成される二次元コードを例示したが、3種類以上の色のセルによって構成される二次元コード(いわゆるカラーコード)であってもよい。
【0117】
上記実施形態では、読取端末10の外部(コンピュータ50)に通信手段を設けたが、読取端末10の内部に通信手段を設け、読取端末10をサーバ60と通信できるようにしてもよい。この場合、制御回路40を「通信手段、判断手段、ビット位置検出手段、ビット値多数決手段、不一致位置検出手段、消失訂正手段、特定情報生成手段」として機能させることができ、読取端末10がサーバ60からバックアップデータを直接ダウンロードできるようになる。
【0118】
第2、第3実施形態では、第1データ領域が3つ設けられた例を示したが、第1データ領域が3以上であってもよい。また、第3実施形態では、第1データ領域が1つ又は2つであってもよく、1つの場合には、第1実施形態の二次元コード70(図3)と同様の配置で第1データ領域を構成してもよい。
【0119】
上記実施形態では、図3、図8のような二次元コードを読取対象として例示したが、読取対象となる二次元コードの構成、種類はこれに限定されない。例えば、図18のようなQRコードに3以上の第1データ領域と第2データ領域とを設け、これを第2、第3実施形態に係るシステムの読取対象としてもよい。或いは、図18のようなQRコードにおいて、3つのファインダパターン側に第1データ領域を設け、ファインダパターンが設けられない角部側に第2データ領域を設けたものを第1実施形態に係るシステムの読取対象としてもよい。
【符号の説明】
【0120】
1…二次元コード読み取りシステム
2…読取システム
10…読取端末
40…制御回路(生成手段、出力手段)
48…通信インタフェース(出力手段)
50…コンピュータ
51…CPU(通信手段、判断手段、ビット位置検出手段、ビット値多数決手段、不一致位置検出手段、消失訂正手段、特定情報生成手段)
52…記憶部
53…通信部(通信手段)
60…サーバ(情報処理装置)
70,270,370…二次元コード
71…特定パターン
75,275a,275b,275c…第1データ領域
76,276,376a,376b,376c…第2データ領域
C…セル
【特許請求の範囲】
【請求項1】
複数のセルが矩形領域内にマトリックス状に配置された二次元コードのデータを読み取る二次元コード読み取りシステムであって、
前記二次元コードを読み取る光学的情報読取手段と、通信手段と、を有する読取システムと、
データベースを有すると共に、前記通信手段と通信可能に構成された情報処理装置と、 を備え、
前記二次元コードは、前記矩形領域内の規定の角部に特定パターンが配置され、前記特定パターン寄りの第1データ領域に、当該二次元コードのIDを含んだ第1データが記録され、前記第1データ領域よりも前記特定パターンから離れた領域に、第2データが記録されており、
前記データベースは、前記二次元コードの前記第2データが、当該二次元コードの前記IDと対応付けて記憶されており、
前記読取システムは、
前記光学的情報読取手段による前記第2データ領域の読み取りが失敗したか否かを判断する判断手段を備え、
前記判断手段により前記第2データ領域の読み取りが失敗したと判断された場合、前記通信手段により前記情報処理装置にアクセスし且つ前記情報処理装置に対し前記第1データ領域に記録される前記IDを送信し、
前記情報処理装置は、前記通信手段によるアクセス及び前記IDの送信に応じ、当該IDに対応する前記第2データを前記データベースから読み出すと共に、その読み出した前記第2データを、前記IDの送信元の前記読取システムに送信することを特徴とする二次元コード読み取りシステム。
【請求項2】
前記二次元コードは、前記第2データ領域の誤り訂正能力よりも、前記第1データ領域の誤り訂正能力のほうが高く設定されていることを特徴とする請求項1に記載の二次元コード読み取りシステム。
【請求項3】
前記光学的情報読取手段は、コンピュータに接続される読取端末内に設けられ、
前記通信手段は、前記コンピュータ内に設けられており、
前記読取端末は、
前記二次元コードの読取データを生成する生成手段と、
前記生成手段によって生成された前記読取データを前記コンピュータに出力する出力手段と、
を有し、
前記生成手段は、前記第1データ領域の読取結果及び前記第2データ領域の読取結果を特定する読取結果特定データと、前記第1データと前記第2データとを区別するセパレータとを、前記読取データに付加することを特徴とする請求項1又は請求項2に記載の二次元コード読み取りシステム。
【請求項4】
複数のセルが矩形領域内にマトリックス状に配置された二次元コードのデータを読み取る二次元コード読み取りシステムであって、
前記二次元コードを読み取る光学的情報読取手段と、通信手段と、を有する読取システムと、
データベースを有すると共に、前記通信手段と通信可能に構成された情報処理装置と、 を備え、
前記二次元コードは、当該二次元コードのIDを含んでなる第1データが、複数の第1データ領域にそれぞれ記録され、それら複数の前記第1データ領域とは異なる第2データ領域に、第2データが記録されており、
前記データベースは、前記二次元コードの前記第2データが、当該二次元コードの前記IDと対応付けて記憶されており、
前記読取システムは、
前記光学的情報読取手段による前記第2データ領域の読み取りが失敗したか否かを判断する判断手段を備え、
前記判断手段によって前記第2データ領域の読み取りが失敗したと判断された場合に、前記通信手段が、前記情報処理装置にアクセスし且つ前記情報処理装置に対し前記第1データ領域に記録される前記IDを送信する構成をなしており
前記情報処理装置は、前記通信手段によるアクセス及び前記IDの送信に応じ、当該IDに対応する前記第2データを前記データベースから読み出すと共に、その読み出した前記第2データを、前記IDの送信元の前記読取システムに送信することを特徴とする二次元コード読み取りシステム。
【請求項5】
前記二次元コードは、3以上の前記第1データ領域が設けられ、
各第1データ領域には、前記IDのビット列が記録されており、
前記読取システムは、
複数の前記第1データ領域にそれぞれ記録される複数の前記IDのビット列を、各ビット位置ごとに比較し、値が一致していないビット位置を検出するビット位置検出手段と、
前記ビット位置検出手段により値が一致していないビット位置が検出された場合、その値が一致していないビット位置において用いるべきビット値を、複数の前記IDのビット列において当該ビット位置に用いられている各値の多数決をとることによって決定するビット値多数決手段と、
を有することを特徴とする請求項4に記載の二次元コード読み取りシステム。
【請求項6】
各第1データ領域は、前記IDが複数のコードワードに亘って記録されており、
前記読取システムは、
複数の前記第1データ領域にそれぞれ記録される複数の前記IDについて、各対応位置毎にコードワード同士を比較し、コードワードが一致していない前記対応位置を検出する不一致位置検出手段と、
前記不一致位置検出手段によりコードワードが一致していない前記対応位置が検出された場合に、当該対応位置を誤り発生位置として前記第1データ領域に対し消失訂正を行う消失訂正手段と、
を有することを特徴とする請求項4に記載の二次元コード読み取りシステム。
【請求項7】
前記不一致位置検出手段により、複数の前記IDにおいてコードワードが一致していない前記対応位置が検出された場合に、当該対応位置において用いるべきコードワード値を、それら複数の前記IDにおいて当該対応位置に用いられている各値の多数決をとることによって決定するコードワード値多数決手段を備え、
前記消失訂正手段は、コードワードが一致していない前記対応位置のうち、前記コードワード値多数決手段によって多数決をとることができない前記対応位置を誤り発生位置として前記消失訂正を行うことを特徴とする請求項6に記載の二次元コード読み取りシステム。
【請求項8】
前記第2データ領域に記録される前記第2データは、複数のデータブロックを含み、且つ各データブロック毎に固有情報が付されており、
前記データベースには、前記IDに対応する前記第2データが、各データブロック毎に読み出し可能な状態で記憶されており、
前記読取システムは、
前記判断手段により前記第2データ領域の読み取りが失敗したと判断される場合に、当該第2データ領域における読み取りが成功した前記データブロックの前記固有情報に基づき、読み取りが失敗した前記データブロックを特定する特定情報を生成する特定情報生成手段を備え、
前記判断手段によって前記第2データ領域の読み取りが失敗したと判断された場合に、前記通信手段が、前記情報処理装置に対し前記IDと共に前記特定情報を送信する構成をなしており、
前記情報処理装置は、前記読取システムの前記通信手段からのアクセスに応じ、前記ID及び前記特定情報に対応する前記データブロックを前記データベースから読み出すと共に、その読み出した前記データブロックを前記読取システムに送信することを特徴とする請求項1から請求項7のいずれか一項に記載の二次元コード読み取りシステム。
【請求項9】
前記光学的情報読取手段は、前記第2データ領域におけるいずれかの前記データブロックの読み取りが失敗し、他の前記データブロックの読み取りが成功した場合、その読み取りが成功した他の前記データブロックのデータを出力することを特徴とする請求項8に記載の二次元コード読み取りシステム。
【請求項10】
前記光学的情報読取手段は、読み取りが成功した前記データブロックが複数存在する場合、それら複数の前記データブロックのデータを出力する際に、データブロック間に識別子を付して出力することを特徴とする請求項9に記載の二次元コード読み取りシステム。
【請求項1】
複数のセルが矩形領域内にマトリックス状に配置された二次元コードのデータを読み取る二次元コード読み取りシステムであって、
前記二次元コードを読み取る光学的情報読取手段と、通信手段と、を有する読取システムと、
データベースを有すると共に、前記通信手段と通信可能に構成された情報処理装置と、 を備え、
前記二次元コードは、前記矩形領域内の規定の角部に特定パターンが配置され、前記特定パターン寄りの第1データ領域に、当該二次元コードのIDを含んだ第1データが記録され、前記第1データ領域よりも前記特定パターンから離れた領域に、第2データが記録されており、
前記データベースは、前記二次元コードの前記第2データが、当該二次元コードの前記IDと対応付けて記憶されており、
前記読取システムは、
前記光学的情報読取手段による前記第2データ領域の読み取りが失敗したか否かを判断する判断手段を備え、
前記判断手段により前記第2データ領域の読み取りが失敗したと判断された場合、前記通信手段により前記情報処理装置にアクセスし且つ前記情報処理装置に対し前記第1データ領域に記録される前記IDを送信し、
前記情報処理装置は、前記通信手段によるアクセス及び前記IDの送信に応じ、当該IDに対応する前記第2データを前記データベースから読み出すと共に、その読み出した前記第2データを、前記IDの送信元の前記読取システムに送信することを特徴とする二次元コード読み取りシステム。
【請求項2】
前記二次元コードは、前記第2データ領域の誤り訂正能力よりも、前記第1データ領域の誤り訂正能力のほうが高く設定されていることを特徴とする請求項1に記載の二次元コード読み取りシステム。
【請求項3】
前記光学的情報読取手段は、コンピュータに接続される読取端末内に設けられ、
前記通信手段は、前記コンピュータ内に設けられており、
前記読取端末は、
前記二次元コードの読取データを生成する生成手段と、
前記生成手段によって生成された前記読取データを前記コンピュータに出力する出力手段と、
を有し、
前記生成手段は、前記第1データ領域の読取結果及び前記第2データ領域の読取結果を特定する読取結果特定データと、前記第1データと前記第2データとを区別するセパレータとを、前記読取データに付加することを特徴とする請求項1又は請求項2に記載の二次元コード読み取りシステム。
【請求項4】
複数のセルが矩形領域内にマトリックス状に配置された二次元コードのデータを読み取る二次元コード読み取りシステムであって、
前記二次元コードを読み取る光学的情報読取手段と、通信手段と、を有する読取システムと、
データベースを有すると共に、前記通信手段と通信可能に構成された情報処理装置と、 を備え、
前記二次元コードは、当該二次元コードのIDを含んでなる第1データが、複数の第1データ領域にそれぞれ記録され、それら複数の前記第1データ領域とは異なる第2データ領域に、第2データが記録されており、
前記データベースは、前記二次元コードの前記第2データが、当該二次元コードの前記IDと対応付けて記憶されており、
前記読取システムは、
前記光学的情報読取手段による前記第2データ領域の読み取りが失敗したか否かを判断する判断手段を備え、
前記判断手段によって前記第2データ領域の読み取りが失敗したと判断された場合に、前記通信手段が、前記情報処理装置にアクセスし且つ前記情報処理装置に対し前記第1データ領域に記録される前記IDを送信する構成をなしており
前記情報処理装置は、前記通信手段によるアクセス及び前記IDの送信に応じ、当該IDに対応する前記第2データを前記データベースから読み出すと共に、その読み出した前記第2データを、前記IDの送信元の前記読取システムに送信することを特徴とする二次元コード読み取りシステム。
【請求項5】
前記二次元コードは、3以上の前記第1データ領域が設けられ、
各第1データ領域には、前記IDのビット列が記録されており、
前記読取システムは、
複数の前記第1データ領域にそれぞれ記録される複数の前記IDのビット列を、各ビット位置ごとに比較し、値が一致していないビット位置を検出するビット位置検出手段と、
前記ビット位置検出手段により値が一致していないビット位置が検出された場合、その値が一致していないビット位置において用いるべきビット値を、複数の前記IDのビット列において当該ビット位置に用いられている各値の多数決をとることによって決定するビット値多数決手段と、
を有することを特徴とする請求項4に記載の二次元コード読み取りシステム。
【請求項6】
各第1データ領域は、前記IDが複数のコードワードに亘って記録されており、
前記読取システムは、
複数の前記第1データ領域にそれぞれ記録される複数の前記IDについて、各対応位置毎にコードワード同士を比較し、コードワードが一致していない前記対応位置を検出する不一致位置検出手段と、
前記不一致位置検出手段によりコードワードが一致していない前記対応位置が検出された場合に、当該対応位置を誤り発生位置として前記第1データ領域に対し消失訂正を行う消失訂正手段と、
を有することを特徴とする請求項4に記載の二次元コード読み取りシステム。
【請求項7】
前記不一致位置検出手段により、複数の前記IDにおいてコードワードが一致していない前記対応位置が検出された場合に、当該対応位置において用いるべきコードワード値を、それら複数の前記IDにおいて当該対応位置に用いられている各値の多数決をとることによって決定するコードワード値多数決手段を備え、
前記消失訂正手段は、コードワードが一致していない前記対応位置のうち、前記コードワード値多数決手段によって多数決をとることができない前記対応位置を誤り発生位置として前記消失訂正を行うことを特徴とする請求項6に記載の二次元コード読み取りシステム。
【請求項8】
前記第2データ領域に記録される前記第2データは、複数のデータブロックを含み、且つ各データブロック毎に固有情報が付されており、
前記データベースには、前記IDに対応する前記第2データが、各データブロック毎に読み出し可能な状態で記憶されており、
前記読取システムは、
前記判断手段により前記第2データ領域の読み取りが失敗したと判断される場合に、当該第2データ領域における読み取りが成功した前記データブロックの前記固有情報に基づき、読み取りが失敗した前記データブロックを特定する特定情報を生成する特定情報生成手段を備え、
前記判断手段によって前記第2データ領域の読み取りが失敗したと判断された場合に、前記通信手段が、前記情報処理装置に対し前記IDと共に前記特定情報を送信する構成をなしており、
前記情報処理装置は、前記読取システムの前記通信手段からのアクセスに応じ、前記ID及び前記特定情報に対応する前記データブロックを前記データベースから読み出すと共に、その読み出した前記データブロックを前記読取システムに送信することを特徴とする請求項1から請求項7のいずれか一項に記載の二次元コード読み取りシステム。
【請求項9】
前記光学的情報読取手段は、前記第2データ領域におけるいずれかの前記データブロックの読み取りが失敗し、他の前記データブロックの読み取りが成功した場合、その読み取りが成功した他の前記データブロックのデータを出力することを特徴とする請求項8に記載の二次元コード読み取りシステム。
【請求項10】
前記光学的情報読取手段は、読み取りが成功した前記データブロックが複数存在する場合、それら複数の前記データブロックのデータを出力する際に、データブロック間に識別子を付して出力することを特徴とする請求項9に記載の二次元コード読み取りシステム。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【図18】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【図18】
【公開番号】特開2010−257225(P2010−257225A)
【公開日】平成22年11月11日(2010.11.11)
【国際特許分類】
【出願番号】特願2009−106576(P2009−106576)
【出願日】平成21年4月24日(2009.4.24)
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
1.QRコード
【出願人】(501428545)株式会社デンソーウェーブ (1,155)
【Fターム(参考)】
【公開日】平成22年11月11日(2010.11.11)
【国際特許分類】
【出願日】平成21年4月24日(2009.4.24)
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
1.QRコード
【出願人】(501428545)株式会社デンソーウェーブ (1,155)
【Fターム(参考)】
[ Back to top ]