光学情報読み取り装置
【課題】情報が記録された情報コードから情報を光学的に読み取る光学情報読み取り装置において、各情報コードの読み取り処理に要する時間のばらつきを低減する。
【解決手段】光学情報読み取り装置は、情報コードを撮像することにより情報コードの画像を含む対象画像を取得する画像取得部と、対象画像を解析して情報コードの種類の特定と情報の抽出とを含む読み取り処理を行う読み取り処理部と、読み取り処理において特定された情報コードの種類を記憶する記憶部と、記憶部に記憶された情報コードの種類に基づき次に読み取り処理の対象となる情報コードの種類を予測する予測部と、対象画像における情報コードの画像の概略サイズを表すサイズ情報を取得するサイズ情報取得部と、予測された情報コードの種類とサイズ情報とに基づき読み取り処理部における処理速度を設定する速度設定部と、を備える。
【解決手段】光学情報読み取り装置は、情報コードを撮像することにより情報コードの画像を含む対象画像を取得する画像取得部と、対象画像を解析して情報コードの種類の特定と情報の抽出とを含む読み取り処理を行う読み取り処理部と、読み取り処理において特定された情報コードの種類を記憶する記憶部と、記憶部に記憶された情報コードの種類に基づき次に読み取り処理の対象となる情報コードの種類を予測する予測部と、対象画像における情報コードの画像の概略サイズを表すサイズ情報を取得するサイズ情報取得部と、予測された情報コードの種類とサイズ情報とに基づき読み取り処理部における処理速度を設定する速度設定部と、を備える。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、情報が記録された情報コードから情報を光学的に読み取る光学情報読み取り装置に関する。
【背景技術】
【0002】
情報が記録された1次元または2次元の情報コードとして、例えばバーコードのCODE128やQRコード(登録商標)といった複数種類のコードが用いられている。情報コードの種類を判別する機能を有し、複数種類の情報コードに対応する光学情報読み取り装置が知られている(例えば特許文献1参照)。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特開2005−352837号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
従来、光学情報読み取り装置における読み取り処理を行う処理速度(例えばCPUのクロック周波数)は一定であった。一方、情報コードの読み取り処理における演算量は、情報コードの種類やサイズにより異なる場合がある。そのため、光学情報読み取り装置による情報コードの読み取り処理に要する時間は、情報コードの種類やサイズによって異なる場合があった。従って、光学情報読み取り装置により複数の情報コードの読み取り処理を連続的に行う場合、各情報コードの種類やサイズに応じて読み取り処理に要する時間にばらつきが生ずる場合があり(すなわち読み取りフィーリングが一定ではなくなる場合があり)、このことが読み取り作業の効率を損ねる場合があった。
【0005】
本発明は、上記の課題を解決するためになされたものであり、情報が記録された情報コードから情報を光学的に読み取る光学情報読み取り装置において、各情報コードの読み取り処理に要する時間のばらつきを低減することを目的とする。
【課題を解決するための手段】
【0006】
上記課題の少なくとも一部を解決するために、本発明は、以下の形態または適用例として実現することが可能である。
【0007】
[適用例1]情報が記録された情報コードから前記情報を光学的に読み取る光学情報読み取り装置であって、
前記情報コードを撮像することにより前記情報コードの画像を含む対象画像を取得する画像取得部と、
前記対象画像を解析して、前記情報コードの種類の特定と前記情報の抽出とを含む読み取り処理を行う読み取り処理部と、
前記読み取り処理において特定された前記情報コードの種類を記憶する記憶部と、
前記記憶部に記憶された情報コードの種類に基づき、次に読み取り処理の対象となる前記情報コードの種類を予測する予測部と、
前記対象画像における前記情報コードの画像の概略サイズを表すサイズ情報を取得するサイズ情報取得部と、
予測された前記情報コードの種類と前記サイズ情報とに基づき、前記読み取り処理部における処理速度を設定する速度設定部と、を備えることを特徴とする、光学情報読み取り装置。
【0008】
この光学情報読み取り装置では、情報コードの画像を含む対象画像が取得され、対象画像の解析を通じた情報コードの種類の特定と情報の抽出とを含む読み取り処理が行われ、読み取り処理において特定された情報コードの種類が記憶され、記憶された情報コードの種類に基づき次に読み取り処理の対象となる情報コードの種類が予測され、対象画像における情報コードの画像の概略サイズを表すサイズ情報が取得され、予測された情報コードの種類とサイズ情報とに基づき読み取り処理部における処理速度が設定されるため、処理速度を、処理の対象となる情報コードの種類や対象画像における情報コードの画像のサイズに見合った適切な値に設定することができ、各情報コードの読み取り処理に要する時間のばらつきを低減することができる。
【0009】
[適用例2]適用例1に記載の光学情報読み取り装置であって、
前記速度設定部は、予測された情報コードの種類が第1の種類である場合には、前記予測された情報コードより読み取り処理における演算量の多い第2の種類である情報コードと比較して、前記処理速度を遅い値に設定することを特徴とする、光学情報読み取り装置。
【0010】
この光学情報読み取り装置では、予測された情報コードの種類が第1の種類である場合には、予測された情報コードより読み取り処理における演算量の多い第2の種類である情報コードと比較して、処理速度が遅い値に設定されるため、情報コードの種類毎の演算量の多寡を原因とする読み取り処理の所要時間のばらつきを低減することができる。
【0011】
[適用例3]適用例1または適用例2に記載の光学情報読み取り装置であって、
前記速度設定部は、前記サイズ情報により表される前記情報コードの画像の概略サイズが小さいほど、前記処理速度をより遅い値に設定することを特徴とする、光学情報読み取り装置。
【0012】
この光学情報読み取り装置では、情報コードの画像の概略サイズが小さいほど処理速度がより遅い値に設定されるため、情報コードの画像のサイズの大小を原因とするデコード処理の所要時間のばらつきを低減することができる。
【0013】
[適用例4]適用例1ないし適用例3のいずれかに記載の光学情報読み取り装置であって、
前記予測部は、次に読み取り処理の対象となる前記情報コードの種類は、直前の読み取り処理において特定された前記情報コードの種類であると予測することを特徴とする、光学情報読み取り装置。
【0014】
この光学情報読み取り装置では、次に読み取り処理の対象となる情報コードの種類は直前の読み取り処理において特定された情報コードの種類であると予測されるため、情報コードの種類の予測の精度を向上させることができ、情報コードの種類毎の演算量の多寡を原因とする読み取り処理の所要時間のばらつきを高い精度で低減することができる。
【0015】
[適用例5]適用例1ないし適用例3のいずれかに記載の光学情報読み取り装置であって、
前記記憶部は、複数回の読み取り処理のそれぞれにおいて特定された前記情報コードの種類を記憶し、
前記予測部は、前記記憶部に記憶された複数回の読み取り処理のそれぞれにおいて特定された前記情報コードの種類に基づき、次に読み取り処理の対象となる前記情報コードの種類を予測することを特徴とする、光学情報読み取り装置。
【0016】
この光学情報読み取り装置では、記憶部に記憶された複数回の読み取り処理のそれぞれにおいて特定された情報コードの種類に基づき次に読み取り処理の対象となる情報コードの種類が予測されるため、情報コードの種類の予測の精度を向上させることができ、情報コードの種類毎の演算量の多寡を原因とする読み取り処理の所要時間のばらつきを高い精度で低減することができる。
【0017】
[適用例6]適用例5に記載の光学情報読み取り装置であって、
前記予測部は、次に読み取り処理の対象となる前記情報コードの種類は、前記記憶部に記憶された複数回の読み取り処理のそれぞれにおいて特定された前記情報コードの種類の内の最も回数の多い前記情報コードの種類であると予測することを特徴とする、光学情報読み取り装置。
【0018】
この光学情報読み取り装置では、次に読み取り処理の対象となる情報コードの種類は記憶部に記憶された複数回の読み取り処理のそれぞれにおいて特定された情報コードの種類の内の最も回数の多い情報コードの種類であると予測されるため、情報コードの種類の予測の精度を向上させることができ、情報コードの種類毎の演算量の多寡を原因とする読み取り処理の所要時間のばらつきを高い精度で低減することができる。
【0019】
[適用例7]適用例1ないし適用例6のいずれかに記載の光学情報読み取り装置であって、
前記読み取り処理部は、予め設定された最大処理時間内に読み取り処理が完了しない場合は前記読み取り処理を中止すると共に、新たに設定された前記処理速度で読み取り処理を再度実行し、
前記速度設定部は、読み取り処理が中止された場合には、前記処理速度を予め設定された最高速度に設定することを特徴とする、光学情報読み取り装置。
【0020】
この光学情報読み取り装置では、予め設定された最大処理時間内に読み取り処理が完了しない場合は読み取り処理が中止され、処理速度が予め設定された最高速度に設定され、新たに設定された処理速度で読み取り処理が再度実行されるため、読み取り処理の所要時間が極端に長くなることを抑制しつつ所要時間のばらつきの低減を実現することができる。
【0021】
[適用例8]適用例1ないし適用例7のいずれかに記載の光学情報読み取り装置であって、
前記速度設定部は、前記情報コードの種類毎に定められた基準処理速度における単位時間当たり処理サイズを表す情報と、読み取り処理の所要時間の目標値を表す情報と、を有すると共に、前記基準処理速度と予測された前記情報コードの種類に対応する前記単位時間当たり処理サイズと前記サイズ情報と前記目標値とに基づき、前記処理速度を設定することを特徴とする、光学情報読み取り装置。
【0022】
この光学情報読み取り装置では、処理の対象となる情報コードの種類や対象画像における情報コードの画像のサイズに見合った処理速度の設定を実現することができる。
【0023】
[適用例9]適用例1ないし適用例8のいずれかに記載の光学情報読み取り装置であって、
前記読み取り処理部は、前記対象画像を複数の領域に分割した各領域の内で前記情報コードの画像の少なくとも一部を含む前記領域により構成されるラベリング領域を設定し、
前記サイズ情報取得部は、前記ラベリング領域の面積を表す情報を、前記サイズ情報として取得することを特徴とする、光学情報読み取り装置。
【0024】
この光学情報読み取り装置では、対象画像における情報コードの画像の概略サイズを表すサイズ情報を容易に取得することができ、対象画像における情報コードの画像のサイズに見合った処理速度の設定を容易に実現することができる。
【0025】
[適用例10]適用例1ないし適用例9のいずれかに記載の光学情報読み取り装置であって、
前記読み取り処理部は、予測された前記情報コードの種類に基づき、読み取り処理における前記情報コードの種類を特定する処理の順序を設定することを特徴とする、光学情報読み取り装置。
【0026】
この光学情報読み取り装置では、予測された情報コードの種類に基づき読み取り処理における情報コードの種類を特定する処理の順序が設定されるため、読み取り処理におけるルーチンの反復回数の低減を図ることができ、読み取り処理の所要時間を全体として短縮しつつ、そのばらつきを低減することができる。
【0027】
[適用例11]適用例1ないし適用例10のいずれかに記載の光学情報読み取り装置であって、
前記読み取り処理部は、前記読み取り処理中に、前記情報コードの読み取りにくさを表す難読度を判定し、
前記速度設定部は、同一の前記情報コードの種類で比較した場合に前記難読度が高いほど処理速度が速くなるように、前記読み取り処理部における前記難読度の特定以降の処理速度を再設定する、光学情報読み取り装置。
【0028】
この光学情報読み取り装置では、読み取り処理中に情報コードの読み取りにくさを表す難読度が判定され、読み取り処理部における難読度の特定以降の処理速度が、同一の情報コードの種類で比較した場合に難読度が高いほど処理速度が速くなるよう設定される。一般に、情報コードが読み取りにくい場合には情報コードが読み取りやすい場合と比較して読み取り処理に要する時間が長くなる傾向にあるが、この光学情報読み取り装置では、情報コードが読み取りにくい場合における読み取り処理に要する時間の増大を抑制することができ、各情報コードの読み取り処理に要する時間のばらつきをより良好に低減することができる。
【0029】
[適用例12]適用例11に記載の光学情報読み取り装置であって、
前記読み取り処理部は、前記読み取り処理において最初に読み取りが行われる前記情報コード中の基準パターンの読み取り成否に基づき、前記難読度を判定する、光学情報読み取り装置。
【0030】
この光学情報読み取り装置では、難読度の判定のための特別な処理を行う必要がないため、難読度の判定を実行することに伴う処理時間の増大を抑制することができる。
【0031】
[適用例13]適用例12に記載の光学情報読み取り装置であって、
特定の前記情報コードの前記基準パターンは、複数の基準パターン要素により構成され、
前記読み取り処理部は、前記特定の情報コードに関し、読み取りが成功した前記基準パターン要素の数が少ないほど前記難読度が高くなるように、前記難読度を判定する、光学情報読み取り装置。
【0032】
この光学情報読み取り装置では、特定の情報コードに関し、読み取りが成功した基準パターン要素の数が少ないほど難読度が高くなるように難読度が判定されるため、適切にかつ迅速に難読度を判定することができる。
【0033】
[適用例14]適用例1ないし適用例13のいずれかに記載の光学情報読み取り装置であって、
前記読み取り処理部は、前記読み取り処理中に、前記情報コードの情報量を特定し、
前記速度設定部は、同一の前記情報コードの種類で比較した場合に前記情報量が多いほど処理速度が速くなるように、前記読み取り処理部における前記情報量の特定以降の処理速度を再設定する、光学情報読み取り装置。
【0034】
この光学情報読み取り装置では、読み取り処理中に情報コードの情報量が特定され、読み取り処理部における情報量の特定以降の処理速度が、同一の情報コードの種類で比較した場合に情報量が多いほど処理速度が速くなるよう設定される。一般に、情報コードの情報量が多い場合には情報コードの情報量が少ない場合と比較して読み取り処理に要する時間が長くなる傾向にあるが、この光学情報読み取り装置では、情報コードの情報量が多い場合における読み取り処理に要する時間の増大を抑制することができ、各情報コードの読み取り処理に要する時間のばらつきをより良好に低減することができる。
【0035】
なお、本発明は、種々の態様で実現することが可能であり、例えば、光学情報読み取り装置、情報読み取り方法等の態様で実現することができる。
【図面の簡単な説明】
【0036】
【図1】本発明の実施例における光学情報読み取り装置100の外観を示す説明図である。
【図2】光学情報読み取り装置100の内部構成を概略的に示すブロック図である。
【図3】光学情報読み取り装置100による処理の流れを示すフローチャートである。
【図4】ラベリング処理により抽出されるラベリング領域LAの一例を示す説明図である。
【図5】記録処理により更新される記録テーブルRTの一例を示す説明図である。
【図6】CPUの動作クロック信号周波数に応じた消費電力の一例を表すグラフである。
【図7】第2実施例における光学情報読み取り装置100によるデコード処理の流れを示すフローチャートである。
【図8】難読度の判定方法の一例を示す説明図である。
【図9】速度調整係数K1を規定する速度調整係数テーブルAT1の一例を示す説明図である。
【図10】第3実施例における光学情報読み取り装置100によるデコード処理の流れを示すフローチャートである。
【図11】速度調整係数K2を規定する速度調整係数テーブルAT2の一例を示す説明図である。
【発明を実施するための形態】
【0037】
次に、本発明の実施の形態を実施例に基づいて以下の順序で説明する。
A.第1実施例:
B.第2実施例:
C.第3実施例:
D.変形例:
【0038】
A.第1実施例:
図1は、本発明の第1実施例における光学情報読み取り装置100の外観を示す説明図である。光学情報読み取り装置100は、記録面に記録された各種の情報コードC(例えばバーコードのCODE128のような1次元情報コードや、例えばQRコード(登録商標、以下同様)のような2次元情報コード)から、情報を読み取る装置である。本実施例の光学情報読み取り装置100は、複数種類の情報コードに対応する読み取り装置、すなわち、複数種類の情報コードから情報を読み取ることが可能な読み取り装置である。また、図1に示すように、本実施例の光学情報読み取り装置100は、いわゆるハンディタイプの読み取り装置である。
【0039】
図1には、記録面としてのラベルLに記録された情報コードCの例としてQRコードを示している。QRコードは、白と黒の格子状のパターンで情報を表す正方形形状の情報コードCであり、3つの隅に正方形形状の位置決めシンボルS(ファインダーパターンFPとも呼ばれる)を有している。
【0040】
光学情報読み取り装置100は、後に詳述するように、情報コードCを撮像することにより情報コードCの画像を含む対象画像(対象画像データ)を取得し、取得された対象画像を解析して情報コードCに含まれる情報の抽出を行う。以下、対象画像を解析して情報コードCに含まれる情報の抽出を行う処理を「デコード処理」または「読み取り処理」と呼ぶ。
【0041】
図2は、光学情報読み取り装置100の内部構成を概略的に示すブロック図である。光学情報読み取り装置100は、光学情報読み取り装置100全体を制御する制御回路110と、画像データ等を記憶するメモリ150と、情報コードCから読み取った情報等を表示する表示部160と、各種操作のためのスイッチ類を含む操作部170と、光学情報読み取り装置100に電力を供給するバッテリー180と、図示しない外部装置(例えばホストコンピュータ)との通信のための外部インターフェース190と、を備える。表示部160は、例えば液晶パネルを用いて構成されている。
【0042】
制御回路110は、動作クロック信号に同期して演算を行う図示しないCPUを含み、デコード処理を行う機能を有する。また、制御回路110は、制御回路110によるデコード処理の処理速度Spを可変に設定する速度設定回路116を含んでいる。速度設定回路116は、制御回路110に含まれるCPUの動作クロック信号の周波数を可変に設定することにより、制御回路110の処理速度Spを可変に設定する。なお、速度設定回路116は、CPUの動作クロック信号を可変に設定する代わりに、あるいはCPUの動作クロック信号を可変に設定すると共に、メモリ150へのアクセスのためのアクセスクロック信号を可変に設定することにより、制御回路110の処理速度Spを可変に設定するものとしてもよい。
【0043】
光学情報読み取り装置100は、また、対象画像を取得するための構成要素として、光を発する照明部122と、照明部122を駆動する照明駆動回路120と、ラベルLといった対象物からの反射光を2次元画像センサ132の撮像面に結像する結像レンズ130と、結像された光を光電変換して画像信号を取得する2次元画像センサ132と、2次元画像センサ132を駆動するセンサ駆動回路134と、センサ駆動回路134に画像信号の取得タイミングを示すクロック信号を供給するクロック制御回路136と、2次元画像センサ132により取得された画像信号を増幅する増幅回路140と、増幅された画像信号をデジタル信号に変換するA/D変換回路142と、を備える。デジタル信号に変換された画像信号は、制御回路110によって、メモリ150内に格納される。これら各構成要素は、本発明における画像取得部に相当する。
【0044】
照明部122は、例えばLEDを用いて構成された光源を有している。2次元画像センサ132は、例えばCCDセンサやCMOSセンサにより構成されている。
【0045】
図3は、光学情報読み取り装置100による処理の流れを示すフローチャートである。光学情報読み取り装置100による処理は、操作部170に含まれる電源スイッチ(不図示)がユーザーによってON状態とされると開始される。
【0046】
ステップS110では、制御回路110が、制御回路110がデコード処理を行う際の処理速度Spの初期化を行う。処理速度Spの初期化として、制御回路110の速度設定回路116は、処理速度Spを予め設定された基準処理速度Sbに設定する。すなわち、速度設定回路116は、CPUの動作クロック信号の周波数を、基準処理速度Sbに対応する値に設定する。本実施例では、基準処理速度Sbは、制御回路110の最高処理速度であるものとする。
【0047】
ステップS110では、また、制御回路110が、デコード処理を行う際の読み取り順序の初期化を行う。デコード処理の際には、予め登録された複数の情報コードCの種類の候補の内の1つの選択と、選択された候補に対応する手順に従った情報抽出処理とが、情報抽出処理が成功するまで繰り返し実行される。例えば、情報コードCの種類の最初の候補としてQRコードが選択された場合には、情報抽出処理として、位置決めシンボルS(図1参照)の検出、検出された位置決めシンボルS間の距離の算出、位置決めシンボルS間の距離に基づくセルの特定、各セルからの情報の抽出が実行される。例えば位置決めシンボルSが検出できず、情報抽出処理が成功しなかった場合には、次の候補として別の種類の情報コードC(例えばマキシコード)が選択され、選択された候補に対応する手順に従った情報抽出処理が実行される。デコード処理を行う際の読み取り順序とは、情報コードCの種類の候補の選択順序である。読み取り順序の初期化として、制御回路110は、読み取り順序を予め設定されたデフォルトの順序に設定する。
【0048】
ステップS120では、制御回路110が、操作部170(図2)に含まれるトリガー(不図示)がON状態になったことを検出する。トリガーは、ユーザーが情報コードCの読み取りを希望する場合にON状態になるように操作されるスイッチである。制御回路110は、トリガーがON状態になったことを検出すると、上述した対象画像を取得するための各構成要素を制御して、対象画像を取得する(ステップS130)。取得された対象画像は、メモリ150に格納される。
【0049】
ステップS140では、制御回路110が、対象画像を対象としてラベリング処理を行う。ラベリング処理は、対象画像において、情報コードCの画像の概略の位置およびサイズを特定するラベリング領域LAを抽出する処理である。図4は、ラベリング処理により抽出されるラベリング領域LAの一例を示す説明図である。図4には、情報コードCの画像Ciを含む対象画像において特定されたラベリング領域LAを示している。制御回路110は、ラベリング処理として、対象画像を複数の領域(例えば矩形領域)に分割し、走査線SLに沿って各画素の値を調べることにより、各分割領域に情報コードCの画像Ciの少なくとも一部が含まれるか否かを判定し、情報コードCの画像Ciの少なくとも一部が含まれると判定された分割領域により構成される領域をラベリング領域LAとして抽出する。このようにして抽出されたラベリング領域LAは、図4に示すように、対象画像において情報コードCの画像Ciの概略の位置およびサイズを特定する領域となる。そのため、ラベリング処理により、後のデコード処理の際に処理対象とする画像領域が限定されることとなり、処理の迅速化が図られる。ラベリング処理の詳細内容については、例えば特開2002−304594号公報や特開2000−353210号公報に記載されているため、ここでは記載を省略する。
【0050】
ステップS150では、制御回路110の速度設定回路116が、制御回路110によるデコード処理の処理速度Spを設定する。ただし、処理速度Spの初期化(ステップS110)直後のステップS150では、初期化において設定された処理速度Spがそのまま維持される。
【0051】
ステップS160では、制御回路110が、設定された処理速度Spでデコード処理を行う。制御回路110は、対象画像中のラベリング領域LAを解析して、初期化ステップ(ステップS110)で設定された読み取り順序に従った複数の情報コードCの種類の候補の内の1つの選択と、選択された候補に対応する手順に従った情報抽出処理とを、情報抽出処理が成功するまで繰り返し実行する。情報抽出処理が成功した場合には、情報コードCの種類は、そのとき選択されていた候補であることが特定される。予め登録されたすべての情報コードCの種類の候補に関して情報抽出処理が成功しなかった場合や、情報抽出処理が成功することなく予め設定された最大処理時間Tmが経過した場合等には、デコード処理は不成功とされる。最大処理時間Tmは、デコード処理の所要時間の目標値である。
【0052】
デコード処理が成功した場合には(ステップS170:Yes)、制御回路110は、記録処理を行う。記録処理は、デコード処理において特定された情報コードCの種類と、ラベリング処理により抽出された対象画像におけるラベリング領域LA(図4)の面積(以下、「ラベリング領域面積Al」と呼ぶ)とを、メモリ150に記録する処理である。
【0053】
本実施例では、記録処理は、メモリ150に格納された記録テーブルRTを更新することにより実行される。図5は、記録処理により更新される記録テーブルRTの一例を示す説明図である。図5に示すように、記録テーブルRTには、成功したデコード処理の各回において特定された情報コードCの種類とラベリング領域面積Alとが、デコード処理の実行順に登録される。制御回路110は、記録処理において、既に記録テーブルRTに登録されているデコード処理の実行順をそれぞれ1つ後ろに繰り下げると共に、直前回のデコード処理の記録(情報コードCの種類およびラベリング領域面積Al)を新たに登録する。
【0054】
ステップS190では、制御回路110が、読み取り順序を設定(更新)する。具体的には、制御回路110は、記録テーブルRT(図5)に記録された情報コードCの種類に基づき、次にデコード処理の対象となる情報コードCの種類を予測すると共に、予測結果に基づいて読み取り順序を設定する。本実施例では、次にデコード処理の対象となる情報コードCの種類は、直前のデコード処理において特定された情報コードCの種類と同じであると予測される。従って、制御回路110は、読み取り順序を、予測された情報コードCの種類が最初に候補として選択されるような順序に更新する。なお、情報コードCの種類を予測する制御回路110は、本発明における予測部として機能する。
【0055】
ステップS200では、制御回路110が、デコード処理の読み取り結果、すなわち情報コードCから読み取られた情報を出力する。具体的には、制御回路110は、情報コードCから読み取られた情報の内容を表示部160に表示する。なお、このとき、制御回路110が、外部インターフェース190を介して接続された外部装置に対して読み取られた情報を送信するとしてもよいし、デコード処理が成功したことをユーザーに知らせるために図示しないブザーを鳴らすものとしてもよい。
【0056】
読み取り結果の出力の後、制御回路110は、操作部170(図2)に含まれるトリガーがOFF状態になったことを検出する(ステップS210)。その後、操作部170に含まれる電源スイッチがOFF状態とされて処理が終了されることなく、再度、トリガーがON状態になったことが検出されると(ステップS210)、上述したステップS130以降の処理が再度実行される。すなわち、対象画像が取得され(ステップS130)、対象画像に対するラベリング処理が行われ(ステップS140)、処理速度Spの設定が行われ(ステップS150)、設定された処理速度Spでのデコード処理が行われる(ステップS160)。
【0057】
ここで、図3に示す光学情報読み取り装置100による処理が開始されてから2回目以降の処理速度設定ステップ(ステップS150)では、制御回路110は、次にデコード処理の対象となる情報コードCの種類の予測結果と、直前のラベリング処理(ステップS130)により抽出されたラベリング領域LA(図4)の面積(ラベリング領域面積Al)と、に基づいて、処理速度Spを設定する。情報コードCの種類の予測結果は、上述した読み取り順序の設定(ステップS190)の際に参照される予測結果と同じである。すなわち、本実施例では、制御回路110は、次にデコード処理の対象となる情報コードCの種類は、直前のデコード処理において特定された情報コードCの種類と同じであると予測する。また、制御回路110は、直前のラベリング処理により抽出されたラベリング領域LAの面積を算出する。このとき、制御回路110は、本発明におけるサイズ情報取得部として機能する。
【0058】
制御回路110は、具体的には、処理速度Spを下記の式(1)により算出する。式(1)において、「Sb」は上述の基準処理速度であり、「Al」は直前のラベリング処理により設定されたラベリング領域LAの面積であり、「Tm」は上述の最大処理時間である。また、「Ab」は、デコード処理の際に基準処理速度Sbで単位時間当たりに処理可能な画像面積(以下、「基準処理面積」と呼ぶ)である。本実施例では、情報コードCの種類毎に、基準処理面積Abが予め設定され、メモリ150内に記憶されている。制御回路110は、次にデコード処理の対象となると予測された情報コードCの種類に対応する基準処理面積Abを使用する。
Sp=Sb×(Al/Ab)/Tm ・・・(1)
【0059】
上記式(1)において、(ラベリング領域面積Al/基準処理面積Ab)は、ラベリング領域LAに対して基準処理速度Sbでデコード処理を行った場合の予想処理時間を表す。従って、処理速度Spは、基準処理速度Sbに、最大処理時間Tmに対する予想処理時間の割合を乗ずることにより算出されることとなる。
【0060】
情報コードCのデコード処理における演算量は、情報コードCの種類により異なる場合があるため、基準処理面積Abも情報コードCの種類により異なる場合がある。例えば、一般にバーコードのような1次元情報コードを対象としたデコード処理における演算量は、QRコードのような2次元情報コードを対象としたデコード処理における演算量より少ないため、1次元情報コードに対応する基準処理面積Abは、2次元情報コードに対応する基準処理面積Abよりも大きい傾向にある。そのため、予測された情報コードCの種類が比較的演算量の少ない種類である場合には、情報コードCの種類が比較的演算量の多い種類である場合と比較して、基準処理面積Abが大きい値となり、上記式(1)によれば処理速度Spは遅い値となる。
【0061】
また、上記式(1)によれば、情報コードCの種類が同じ場合には、ラベリング領域面積Alが小さいほど、処理速度Spは遅い値となる。
【0062】
なお、本実施例では、制御回路110の速度設定回路116は、CPUの動作クロック信号の周波数を、シームレスに設定することはできず(すなわち、所定の範囲における任意の値に設定することができず)、段階的に設定された複数の値の内の1つに設定するものとしている。そのため、実際の処理速度Spも、段階的に設定された複数の値の内の1つに設定されることとなる。従って、速度設定回路116は、上記式(1)により目標速度としての処理速度Spを算出し、実際の処理速度Spが、設定可能な値の内の目標速度より遅い側で最も近い値になるように、CPUの動作クロック信号の周波数を選択する。
【0063】
光学情報読み取り装置100による処理が開始されてから2回目以降のデコード処理においてデコード処理が成功した場合にも、上述したステップS180以降の処理、すなわち、記録処理(ステップS180)、読み取り順序設定(ステップS190)、読み取り結果出力(ステップS200)、が同様に実行される。
【0064】
デコード処理が成功しなかった場合(ステップS170:No)であって、予め設定された最大処理時間Tmが経過したことによる失敗以外の失敗である場合には(ステップS240:No)、再度、対象画像取得(ステップS130)以降の処理が実行される。また、予め設定された最大処理時間Tmが経過したことによる失敗である場合には(ステップS240:Yes)、制御回路110の速度設定回路116は、処理速度Spを予め設定された最大処理速度に設定(変更)する(ステップS250)。その後、再度、対象画像取得(ステップS130)以降の処理が実行される。制御回路110は、操作部170に含まれる電源スイッチがOFF状態とされたことを検出すると(ステップS220:Yes)、処理を終了する。
【0065】
以上説明したように、本実施例の光学情報読み取り装置100では、デコード処理において特定された情報コードCの種類が記録テーブルRTとしてメモリ150に記憶され、記憶された情報コードCの種類に基づき次にデコード処理の対象となる情報コードCの種類を予測され、予測された情報コードCの種類と直前のラベリング処理により抽出されたラベリング領域LAの面積(ラベリング領域面積Al)とに基づきデコード処理の処理速度Spが設定される。デコード処理に要する時間は、デコード処理の対象となる情報コードCの種類とラベリング領域面積Alとにより変化し得るが、本実施例の光学情報読み取り装置100では、デコード処理の処理速度Spを、対象となる情報コードCやラベリング領域面積Alに見合った適切な値に設定することができ、情報コードCのデコード処理に要する時間のばらつきを低減することができ、一定に近い読み取りフィーリングでの読み取りを実現することができる。
【0066】
具体的には、本実施例の光学情報読み取り装置100では、予測された情報コードCの種類が比較的演算量の少ない種類である場合には、情報コードCの種類が比較的演算量の多い種類である場合と比較して、処理速度Spが遅い値に設定される。そのため、本実施例の光学情報読み取り装置100では、情報コードCの種類毎の演算量の多寡を原因とするデコード処理の所要時間のばらつきを低減することができ、一定に近い読み取りフィーリングでの読み取りを実現することができる。
【0067】
また、本実施例の光学情報読み取り装置100では、ラベリング領域面積Alが小さいほど、処理速度Spが遅い値に設定されるため、ラベリング領域面積Alの大小を原因とするデコード処理の所要時間のばらつきを低減することができ、一定に近い読み取りフィーリングでの読み取りを実現することができる。
【0068】
なお、上記式(1)から理解されるように、本実施例の光学情報読み取り装置100では、情報コードCの種類が比較的演算量の少ない種類である場合や、ラベリング領域面積Alが比較的小さい場合には、処理速度Spが基準処理速度Sbを低減した値に設定される。一般に、処理速度Spが低い、すなわち、CPUの動作クロック信号の周波数が低いと、消費電力は低減される。図6は、CPUの動作クロック信号周波数に応じた消費電力の一例を表すグラフである。図6に示すように、各動作電圧において、CPUの動作クロック信号の周波数が低いほど消費電力は低減される。従って、本実施例の光学情報読み取り装置100では、デコード処理の際の消費電力の低減を図ることができると共に、バッテリー180による駆動時間の延長を図ることができる。
【0069】
また、本実施例の光学情報読み取り装置100では、次にデコード処理の対象となる情報コードCの種類は、直前のデコード処理において特定された情報コードCの種類であると予測される。一般に、光学情報読み取り装置100による情報コードCの読み取りの際には、同一種類の情報コードCを連続的に読み取る場合が比較的多い。従って、本実施例の光学情報読み取り装置100では、次にデコード処理の対象となる情報コードCの種類の予測の精度を向上させることができ、情報コードCの種類毎の演算量の多寡を原因とするデコード処理の所要時間のばらつきを高い精度で低減することができる。
【0070】
また、本実施例の光学情報読み取り装置100では、予め設定された最大処理時間Tm内にデコード処理が完了しない場合には、処理が中止され、処理速度Spが予め設定された最高速度に設定された上で再度デコード処理が実行されるため、デコード処理の所要時間が極端に長くなることを抑制しつつ所要時間のばらつきの低減を実現することができる。
【0071】
また、本実施例の光学情報読み取り装置100では、予測された情報コードCの種類に基づき、デコード処理における読み取り順序(情報コードCの種類を特定する処理の順序)が設定されるため、デコード処理におけるルーチン(情報コードCの種類の候補の選択と、選択された候補に対応する手順に従った情報抽出)の反復回数の低減を図ることができ、デコード処理の所要時間を全体として短縮しつつ、そのばらつきを低減することができる。
【0072】
B.第2実施例:
図7は、第2実施例における光学情報読み取り装置100によるデコード処理(図3のステップS160)の流れを示すフローチャートである。なお、第2実施例において、光学情報読み取り装置100による処理(図3)におけるデコード処理(ステップS160)以外の処理の内容は、第1実施例と同様である。また、第2実施例における光学情報読み取り装置100の構成は、図2に示した第1実施例と同様である。
【0073】
上述した第1実施例と同様に、制御回路110(図2)は、デコード処理を開始すると(ステップS310)、予め登録された複数の情報コードCの種類の候補の内の1つの選択と、選択された候補に対応する手順に従った情報抽出処理とを、情報抽出処理が成功するまで繰り返し実行する。このとき、制御回路110は、情報コードCの読み取りにくさを表す難読度を判定する(ステップS320)。なお、情報コードCの読み取りにくさは、例えばラベルLにおける情報コードCの汚れ等に起因する。
【0074】
図8は、難読度の判定方法の一例を示す説明図である。制御回路110は、例えば情報コードCの種類の候補としてQRコードを選択すると、最初に、QRコードに含まれる基準パターンとしての3つの位置決めシンボルS(ファインダーパターンFP)の読み取り(検出)を行う。制御回路110は、QRコードに含まれる3つのファインダーパターンFPの検出結果に基づき、情報コードCがQRコードであるか否かを判定する。情報コードCがQRコードであると判定された場合には、制御回路110は、基準パターンを構成する基準パターン要素としてのファインダーパターンFPの検出数に基づき、難読度を判定する。例えば、制御回路110は、3つのファインダーパターンFPの検出に成功した場合には情報コードCの難読度(読み取りにくさ)を低い値「低」に設定し、1つのファインダーパターンFPのみを検出した場合には難読度を高い値「高」に設定し、2つのファインダーパターンFPを検出した場合には難読度を「低」と「高」との中間の値「中」に設定する。図8に示した例では、QRコードに含まれる3つのファインダーパターンFPの内の2つが検出されているので、難読度は中間の値「中」に設定される。
【0075】
なお、難読度の判定方法は、情報コードCの種類毎に予め設定されている。例えば情報コードCの種類の候補としてデータマトリックスコードが選択されると、制御回路110は、最初に、データマトリックスコードに含まれる基準パターンとしてのL字型のアライメントパターンおよび点線状のタイミングセルの読み取り(検出)を行い、読み取り結果に基づき、情報コードCがデータマトリックスコードであるか否かを判定する。また、制御回路110は、情報コードCがデータマトリックスコードであると判定した場合には、データマトリックスコードに含まれる基準パターンの検出の成否に応じて、難読度を判定する。他の情報コードCの種類についても、同様に、予め定められた方法に従い難読度が判定される。このように、制御回路110は、デコード処理において最初に読み取りが行われる情報コードC中の基準パターンの読み取り成否に基づき、難読度を判定する。
【0076】
一般に、デコード処理において、情報コードCに含まれる基準パターンが読み取りにくい場合には、情報コードCの他の部分(記録すべき情報が埋め込まれた部分)も読み取りにくい可能性が高いと考えられる。そのため、本実施例では、情報コードC中の基準パターンの読み取り成否に基づき、情報コードCの難読度を判定するものとしている。
【0077】
難読度が判定されると、制御回路110の速度設定回路116(図2)は、判定された難読度に応じて、制御回路110によるデコード処理の処理速度Spを再設定する(ステップS330)。以下、再設定された処理速度Spを更新処理速度uSpと呼ぶ。速度設定回路116は、更新処理速度uSpを下記の式(2)により算出する。式(2)において、「Sp」は直前のステップS150(図3)で設定された処理速度Spであり、「K1」は速度調整係数である。本実施例では、情報コードCの種類毎に、難読度に応じた速度調整係数Kの値が予め設定され、速度調整係数テーブルAT1としてメモリ150内に記憶されている。
uSp=K1×Sp ・・・(2)
【0078】
図9は、速度調整係数K1を規定する速度調整係数テーブルAT1の一例を示す説明図である。図9に示すように、同一の情報コードCの種類で比較した場合に、速度調整係数K1は、難読度が高いほど大きな値に設定されている。従って、式(2)により算出される更新処理速度uSpは、難読度が高いほど速い値となる。
【0079】
なお、本実施例では、速度設定回路116は、CPUの動作クロック信号の周波数を、シームレスに設定することはできず、段階的に設定された複数の値の内の1つに設定するものとしている。そのため、実際の更新処理速度uSpも、段階的に設定された複数の値の内の1つに設定されることとなる。従って、速度設定回路116は、上記式(2)により目標速度としての更新処理速度uSpを算出し、実際の更新処理速度uSpが、設定可能な値の内の目標速度より遅い側で最も近い値になるように、CPUの動作クロック信号の周波数を選択する。
【0080】
また、図9に示すように、本実施例では、情報コードCがQRコードであり、かつ、ファインダーパターンFPが3つとも検出されて難読度が「低」であると判定された場合には、速度調整係数K1の値は「1.0」となり、更新処理速度uSpは、再設定前の処理速度Spと等しくなる。従って、本実施例では、情報コードCがQRコードであり、かつ、ファインダーパターンFPが3つとも検出された場合には、情報コードCは難読状態ではないと判定され、処理速度の再設定(ステップS330)が省略されると解釈することもできる。
【0081】
処理速度の再設定(ステップS330)が完了すると、制御回路110は、設定された更新処理速度uSpで、以降のデコード処理を続行する(ステップS340)。
【0082】
ここで、情報コードCが読み取りにくい場合には、情報コードCが読み取りやすい場合と比較して、デコード処理に要する時間が長くなる傾向にある。これは、以下の(1)ないし(3)の内の少なくとも1つを要因とする。(1)情報コードCにおける基準パターン自体の検出に比較的長い時間を要する。例えば、基準パターンの検出に失敗した場合に、再チャレンジしたり、違う位置を探索したりする処理が実行される場合があり、処理時間が増大する。(2)基準パターンの一部が検出できなかった場合には、基準パターンを全部検出できた場合には必要ではない追加の処理を要する。例えば、情報コードCがQRコードであり、3つのファインダーパターンFPをすべて検出できた場合には、検出されたファインダーパターンFPからコードの外形を算出することができる。これに対し、検出できたファインダーパターンFPの数が2つ以下である場合には、コードの他の部分の情報を参照してコードの外形を求めるという追加の処理が必要となる。(3)基準パターンが読み取りにくい場合には、情報コードCの他の部分も読み取りにくい可能性が高いと考えられ、誤り訂正処理等に要する時間が増大する可能性が高い。
【0083】
本実施例では、更新処理速度uSpが、同一の情報コードCの種類で比較した場合に、情報コードCの難読度が高いほど速い値になるように設定されるため、情報コードCが読み取りにくい場合におけるデコード処理に要する時間の増大を抑制することができる。そのため、本実施例では、各情報コードCの読み取りにくさの程度に関わらず、各情報コードCのデコード処理に要する時間のばらつきを低減することができ、一定に近い読み取りフィーリングでの読み取りをより良好に実現することができる。
【0084】
また、本実施例では、デコード処理において通常実行される情報コードC中の基準パターンの読み取り処理の成否に基づき情報コードCの難読度を判定しており、難読度の判定のための特別な処理を行う必要がないため、難読度の判定を実行することに伴う処理時間の増大を抑制することができる。
【0085】
また、本実施例では、情報コードCがQRコードであると判定された場合には、検出に成功したファインダーパターンFPの数が少ないほど難読度が高くなるように難読度が判定されるため、適切にかつ迅速に難読度を判定することができる。
【0086】
C.第3実施例:
図10は、第3実施例における光学情報読み取り装置100によるデコード処理(図3のステップS160)の流れを示すフローチャートである。なお、第3実施例において、光学情報読み取り装置100による処理(図3)におけるデコード処理(ステップS160)以外の処理の内容は、第1実施例と同様である。また、第3実施例における光学情報読み取り装置100の構成は、図2に示した第1実施例と同様である。
【0087】
上述した第1実施例と同様に、制御回路110(図2)は、デコード処理を開始すると(ステップS410)、予め登録された複数の情報コードCの種類の候補の内の1つの選択と、選択された候補に対応する手順に従った情報抽出処理とを、情報抽出処理が成功するまで繰り返し実行する。このとき、制御回路110は、情報コードCの情報量を特定する(ステップS420)。
【0088】
制御回路110は、例えば情報コードCの種類の候補としてQRコードを選択すると、最初に、QRコードに含まれる基準パターンとしての3つの位置決めシンボルS(ファインダーパターンFP)の読み取り(検出)を行う。制御回路110は、QRコードに含まれる3つのファインダーパターンFPの検出結果に基づき、情報コードCがQRコードであるか否かを判定する。QRコードは、セル数の異なる複数のバージョンが存在する。情報コードCがQRコードであると判定された場合には、制御回路110は、ラベリング領域面積Alに対するファインダーパターンFPのサイズに基づき、コードの情報量としてのセル数を特定する。
【0089】
なお、情報コードCの情報量の特定方法は、情報コードCの種類毎に予め設定されている。例えば情報コードCの種類の候補としてデータマトリックスコードが選択されると、制御回路110は、最初に、データマトリックスコードに含まれる基準パターンとしてのL字型のアライメントパターンおよび点線状のタイミングセルの読み取り(検出)を行い、読み取り結果に基づき、情報コードCがデータマトリックスコードであるか否かを判定する。また、制御回路110は、情報コードCがデータマトリックスコードであると判定した場合には、データマトリックスコードに含まれる基準パターンに基づき、情報量としてのセル数を特定する。他の情報コードCの種類についても、同様に、予め定められた方法に従い情報量が特定される。
【0090】
情報量が特定されると、制御回路110の速度設定回路116(図2)は、特定された情報量に応じて、制御回路110によるデコード処理の処理速度Spを再設定する(ステップS430)。以下、再設定された処理速度Spを更新処理速度uSpと呼ぶ。速度設定回路116は、更新処理速度uSpを下記の式(3)により算出する。式(3)において、「Sp」は直前のステップS150(図3)で設定された処理速度Spであり、「K2」は速度調整係数である。本実施例では、情報コードCの種類毎に、情報量に応じた速度調整係数K2の値が予め設定され、速度調整係数テーブルAT2としてメモリ150内に記憶されている。
uSp=K2×Sp ・・・(3)
【0091】
図11は、速度調整係数K2を規定する速度調整係数テーブルAT2の一例を示す説明図である。図11に示すように、同一の情報コードCの種類で比較した場合に、速度調整係数K2は、情報量が多いほど大きな値に設定されている。従って、式(3)により算出される更新処理速度uSpは、情報量が多いほど速い値となる。
【0092】
なお、本実施例では、速度設定回路116は、CPUの動作クロック信号の周波数を、シームレスに設定することはできず、段階的に設定された複数の値の内の1つに設定するものとしている。そのため、実際の更新処理速度uSpも、段階的に設定された複数の値の内の1つに設定されることとなる。従って、速度設定回路116は、上記式(3)により目標速度としての更新処理速度uSpを算出し、実際の更新処理速度uSpが、設定可能な値の内の目標速度より遅い側で最も近い値になるように、CPUの動作クロック信号の周波数を選択する。
【0093】
また、図11に示すように、本実施例では、情報コードCがQRコードであり、かつ、情報量が予め設定された標準情報量A1である場合には、速度調整係数K2の値は「1.0」となり、更新処理速度uSpは、再設定前の処理速度Spと等しくなる。従って、本実施例では、情報コードCがQRコードであり、かつ、情報量が標準情報量A1である場合には、処理速度の再設定(ステップS430)が省略されると解釈することもできる。
【0094】
処理速度の再設定(ステップS430)が完了すると、制御回路110は、設定された更新処理速度uSpで、以降のデコード処理を続行する(ステップS440)。
【0095】
ここで、同一の情報コードCの種類で比較したとき、情報コードCの情報量が多い場合には、情報コードCの情報量が少ない場合と比較して、デコード処理に要する時間が長くなる。本実施例では、更新処理速度uSpが、同一の情報コードCの種類で比較した場合に、情報コードCの情報量が多いほど速い値になるように設定されるため、各情報コードCの情報量の多寡に関わらず、各情報コードCのデコード処理に要する時間のばらつきを低減することができ、一定に近い読み取りフィーリングでの読み取りを実現することができる。
【0096】
D.変形例:
なお、この発明は上記の実施例や実施形態に限られるものではなく、その要旨を逸脱しない範囲において種々の態様において実施することが可能であり、例えば次のような変形も可能である。
【0097】
D1.変形例1:
上記各実施例では、記録テーブルRTに、複数回のデコード処理において特定された情報コードCの種類およびラベリング領域面積Alが登録されるとしているが、記録テーブルRTに、直前の1回のデコード処理において特定された情報コードCの種類およびラベリング領域面積Alのみが登録されるとしてもよい。このようにすれば、記録処理の効率化を図ることができると共に、メモリ150における使用記憶領域を低減することができる。
【0098】
また、記録テーブルRTには、デコード処理において特定された情報コードCの種類のみが登録され、ラベリング領域面積Alは登録されないとしてもよい。
【0099】
D2.変形例2:
上記各実施例では、次にデコード処理の対象となる情報コードCの種類は直前のデコード処理において特定された情報コードCの種類と同じであると予測されるとしているが、情報コードCの種類の予測方法はこれに限られない。例えば、次にデコード処理の対象となる情報コードCの種類は、記録テーブルRT(図5)に登録された複数回のデコード処理における情報コードCの種類の内、最も回数の多い情報コードCの種類であると予測されるものとしてもよい。このようにすれば、情報コードCの種類の予測の精度を向上させることができ、情報コードCの種類毎の演算量の多寡を原因とするデコード処理の所要時間のばらつきを高い精度で低減することができる。
【0100】
また、記録テーブルRTに登録された複数回のデコード処理における情報コードCの種類に基づき、情報コードCの種類の順番パターンが推定され、推定された順番パターンに基づき情報コードCの種類が予測されるものとしてもよい。例えば、ある特定の種類(種類1)の情報コードCと他の特定の種類(種類2)の情報コードCとが交互に読み取り対象となった場合には、種類1と種類2とが並んだ順番パターンが推定され、直前のデコード処理における情報コードCの種類が種類1であった場合には、次にデコード処理の対象となる情報コードCの種類は種類2であると予測される。このようにしても、情報コードCの種類の予測の精度を向上させることができ、情報コードCの種類毎の演算量の多寡を原因とするデコード処理の所要時間のばらつきを高い精度で低減することができる。
【0101】
D3.変形例3:
上記各実施例では、処理速度Spの算出の際には、直前のラベリング処理により設定されたラベリング領域面積Alが用いられているが(上記式(1)参照)、記録テーブルRTに記録された実施済みのデコード処理のラベリング領域面積Alに基づき次のデコード処理におけるラベリング領域面積Alを予測し、予測されたラベリング領域面積Alが処理速度Spの算出に用いられるものとしてもよい。この場合に、ラベリング領域面積Alの予測方法は、直前のデコード処理において特定されたラベリング領域面積Alと同じであると予測する方法が用いられてもよいし、記録テーブルRTに記録されたラベリング領域面積Alの平均値であると予測する方法が用いられてもよい。一般に、同一人物が複数の情報コードCの読み取り操作を連続して行う場合には、ラベリング領域面積Alは同じような値になることが多い。そのため、本変形例のようにラベリング領域面積Alを予測して処理速度Spを算出しても、情報コードCのデコード処理に要する時間のばらつきを低減することができる。
【0102】
また、上記各実施例では、処理速度Spの算出の際に、ラベリング領域面積Alが用いられているが、ラベリング領域面積Alの代わりに、対象画像における情報コードCの画像Ciの概略サイズを表す他の指標が用いられるとしてもよい。このようにしても、処理速度Spを、対象となる情報コードCや画像Ciの概略サイズに見合った適切な値に設定することができ、情報コードCのデコード処理に要する時間のばらつきを低減することができる。
【0103】
D4.変形例4:
上記各実施例では、速度設定回路116が、上記式(1)ないし(3)により目標速度としての処理速度Sp(または更新処理速度uSp、以下同様)を算出し、実際の処理速度Spが設定可能な値の内の目標速度より遅い側で最も近い値になるようにCPUの動作クロック信号の周波数を選択するとしているが、実際の処理速度Spが設定可能な値の内の目標速度より速い側で最も近い値になるようにCPUの動作クロック信号の周波数を選択するとしてもよいし、遅い側・速い側を問わず、実際の処理速度Spが設定可能な値の内の目標速度に最も近い値になるようにCPUの動作クロック信号の周波数を選択するとしてもよい。このようにしても、情報コードCのデコード処理に要する時間のばらつきを低減することができる。
【0104】
また、上記実施例では、速度設定回路116は、CPUの動作クロック信号の周波数を段階的に設定された複数の値の内の1つに設定するものとしているが、CPUの動作クロック信号の周波数をシームレスに設定することが可能であるとしてもよい。すなわち、速度設定回路116が、処理速度Spの値をシームレスに設定することが可能であるとしてもよい。この場合には、式(1)ないし(3)により算出された処理速度Spをそのまま使用する処理速度Spとして使用すればよい。このようにすると、情報コードCのデコード処理に要する時間のばらつきをさらに低減することができる。
【0105】
また、上記実施例では、基準処理速度Sbは制御回路110の最高処理速度であるとしているが、基準処理速度Sbは制御回路110の最高処理速度である必要はなく、任意の速度に設定可能である。このようにしても、情報コードCのデコード処理に要する時間のばらつきを低減することができる。
【0106】
D5.変形例5:
上記各実施例における光学情報読み取り装置100の構成は、あくまで一例であり、光学情報読み取り装置100の構成は種々変形可能である。例えば、光学情報読み取り装置100は、バッテリー180により電力供給されるとしているが、商用電源から電力供給されるとしてもよい。また、上記実施例では、光学情報読み取り装置100はハンディタイプの読み取り装置であるとしているが、本発明は例えば定置式といった他のタイプの光学情報読み取り装置にも適用可能である。
【0107】
また、上記実施例において、ハードウェアによって実現されていた構成の一部をソフトウェアに置き換えるようにしてもよく、逆に、ソフトウェアによって実現されていた構成の一部をハードウェアに置き換えるようにしてもよい。
【0108】
D6.変形例6:
上記第2実施例における速度調整係数テーブルAT1の内容は、あくまで一例であり、種々変形可能である。
例えば、情報コードCがQRコードである場合において、ファインダーパターンFPの検出数が2であり難読度が「中」である場合の速度調整係数K1の値を「1.0」とし、ファインダーパターンFPの検出数が3であり難読度が「低」である場合の速度調整係数K1の値を1.0より小さい値にすることにより、難読度が「低」である場合の更新処理速度uSpを低下させ、もって、各情報コードCのデコード処理に要する時間のばらつきを低減するものとしてもよい。すなわち、速度調整係数K1は、同一の情報コードCの種類で比較した場合に難読度が高いほど大きな値に設定されていれば、1.0より小さい値であってもよい。
【0109】
同様に、上記第3実施例における速度調整係数テーブルAT2の内容は、あくまで一例であり、種々変形可能である。速度調整係数K2は、同一の情報コードCの種類で比較した場合に情報量が多いほど大きな値に設定されていれば、1.0より小さい値であってもよい。
【0110】
D7.変形例7:
上記第2実施例では、情報コードC中の基準パターンの読み取り成否に基づき情報コードCの難読度を判定するとしているが、難読度の判定方法はこれに限られない。例えば、情報コードCの基準パターン以外の部分の読み取り成否に基づき情報コードCの難読度を判定するとしてもよい。
【0111】
また、例えば、情報コードCの種類がバーコードのような1次元コードである場合には、横方向に読み取り走査を行うが、例えばバーコードの高さが低くて、最初の走査でコード全体の読み取りに成功しなかった場合には、難読度が高いと判定し、以降の処理速度が速くなるように処理速度の再設定を行うとしてもよい。
【0112】
D8.変形例8:
上記第2実施例における情報コードCの難読度に応じた更新処理速度uSpの設定と、上記第3実施例における情報コードCの情報量に応じた更新処理速度uSpの設定とを組み合わせて実行するものとしてもよい。すなわち、更新処理速度uSpを、同一の情報コードCの種類で比較した場合に、情報コードCの難読度が高いほど速い値になるように、かつ、情報コードCの情報量が多いほど速い値になるように、設定するものとしてもよい。このような更新処理速度uSpの設定は、更新処理速度uSpを下記の式(4)により算出することにより実現することができる。
uSp=K1×K2×Sp ・・・(4)
【符号の説明】
【0113】
100…光学情報読み取り装置
110…制御回路
116…速度設定回路
120…照明駆動回路
122…照明部
130…結像レンズ
132…2次元画像センサ
134…センサ駆動回路
136…クロック制御回路
140…増幅回路
142…A/D変換回路
150…メモリ
160…表示部
170…操作部
180…バッテリー
190…外部インターフェース
【技術分野】
【0001】
本発明は、情報が記録された情報コードから情報を光学的に読み取る光学情報読み取り装置に関する。
【背景技術】
【0002】
情報が記録された1次元または2次元の情報コードとして、例えばバーコードのCODE128やQRコード(登録商標)といった複数種類のコードが用いられている。情報コードの種類を判別する機能を有し、複数種類の情報コードに対応する光学情報読み取り装置が知られている(例えば特許文献1参照)。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特開2005−352837号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
従来、光学情報読み取り装置における読み取り処理を行う処理速度(例えばCPUのクロック周波数)は一定であった。一方、情報コードの読み取り処理における演算量は、情報コードの種類やサイズにより異なる場合がある。そのため、光学情報読み取り装置による情報コードの読み取り処理に要する時間は、情報コードの種類やサイズによって異なる場合があった。従って、光学情報読み取り装置により複数の情報コードの読み取り処理を連続的に行う場合、各情報コードの種類やサイズに応じて読み取り処理に要する時間にばらつきが生ずる場合があり(すなわち読み取りフィーリングが一定ではなくなる場合があり)、このことが読み取り作業の効率を損ねる場合があった。
【0005】
本発明は、上記の課題を解決するためになされたものであり、情報が記録された情報コードから情報を光学的に読み取る光学情報読み取り装置において、各情報コードの読み取り処理に要する時間のばらつきを低減することを目的とする。
【課題を解決するための手段】
【0006】
上記課題の少なくとも一部を解決するために、本発明は、以下の形態または適用例として実現することが可能である。
【0007】
[適用例1]情報が記録された情報コードから前記情報を光学的に読み取る光学情報読み取り装置であって、
前記情報コードを撮像することにより前記情報コードの画像を含む対象画像を取得する画像取得部と、
前記対象画像を解析して、前記情報コードの種類の特定と前記情報の抽出とを含む読み取り処理を行う読み取り処理部と、
前記読み取り処理において特定された前記情報コードの種類を記憶する記憶部と、
前記記憶部に記憶された情報コードの種類に基づき、次に読み取り処理の対象となる前記情報コードの種類を予測する予測部と、
前記対象画像における前記情報コードの画像の概略サイズを表すサイズ情報を取得するサイズ情報取得部と、
予測された前記情報コードの種類と前記サイズ情報とに基づき、前記読み取り処理部における処理速度を設定する速度設定部と、を備えることを特徴とする、光学情報読み取り装置。
【0008】
この光学情報読み取り装置では、情報コードの画像を含む対象画像が取得され、対象画像の解析を通じた情報コードの種類の特定と情報の抽出とを含む読み取り処理が行われ、読み取り処理において特定された情報コードの種類が記憶され、記憶された情報コードの種類に基づき次に読み取り処理の対象となる情報コードの種類が予測され、対象画像における情報コードの画像の概略サイズを表すサイズ情報が取得され、予測された情報コードの種類とサイズ情報とに基づき読み取り処理部における処理速度が設定されるため、処理速度を、処理の対象となる情報コードの種類や対象画像における情報コードの画像のサイズに見合った適切な値に設定することができ、各情報コードの読み取り処理に要する時間のばらつきを低減することができる。
【0009】
[適用例2]適用例1に記載の光学情報読み取り装置であって、
前記速度設定部は、予測された情報コードの種類が第1の種類である場合には、前記予測された情報コードより読み取り処理における演算量の多い第2の種類である情報コードと比較して、前記処理速度を遅い値に設定することを特徴とする、光学情報読み取り装置。
【0010】
この光学情報読み取り装置では、予測された情報コードの種類が第1の種類である場合には、予測された情報コードより読み取り処理における演算量の多い第2の種類である情報コードと比較して、処理速度が遅い値に設定されるため、情報コードの種類毎の演算量の多寡を原因とする読み取り処理の所要時間のばらつきを低減することができる。
【0011】
[適用例3]適用例1または適用例2に記載の光学情報読み取り装置であって、
前記速度設定部は、前記サイズ情報により表される前記情報コードの画像の概略サイズが小さいほど、前記処理速度をより遅い値に設定することを特徴とする、光学情報読み取り装置。
【0012】
この光学情報読み取り装置では、情報コードの画像の概略サイズが小さいほど処理速度がより遅い値に設定されるため、情報コードの画像のサイズの大小を原因とするデコード処理の所要時間のばらつきを低減することができる。
【0013】
[適用例4]適用例1ないし適用例3のいずれかに記載の光学情報読み取り装置であって、
前記予測部は、次に読み取り処理の対象となる前記情報コードの種類は、直前の読み取り処理において特定された前記情報コードの種類であると予測することを特徴とする、光学情報読み取り装置。
【0014】
この光学情報読み取り装置では、次に読み取り処理の対象となる情報コードの種類は直前の読み取り処理において特定された情報コードの種類であると予測されるため、情報コードの種類の予測の精度を向上させることができ、情報コードの種類毎の演算量の多寡を原因とする読み取り処理の所要時間のばらつきを高い精度で低減することができる。
【0015】
[適用例5]適用例1ないし適用例3のいずれかに記載の光学情報読み取り装置であって、
前記記憶部は、複数回の読み取り処理のそれぞれにおいて特定された前記情報コードの種類を記憶し、
前記予測部は、前記記憶部に記憶された複数回の読み取り処理のそれぞれにおいて特定された前記情報コードの種類に基づき、次に読み取り処理の対象となる前記情報コードの種類を予測することを特徴とする、光学情報読み取り装置。
【0016】
この光学情報読み取り装置では、記憶部に記憶された複数回の読み取り処理のそれぞれにおいて特定された情報コードの種類に基づき次に読み取り処理の対象となる情報コードの種類が予測されるため、情報コードの種類の予測の精度を向上させることができ、情報コードの種類毎の演算量の多寡を原因とする読み取り処理の所要時間のばらつきを高い精度で低減することができる。
【0017】
[適用例6]適用例5に記載の光学情報読み取り装置であって、
前記予測部は、次に読み取り処理の対象となる前記情報コードの種類は、前記記憶部に記憶された複数回の読み取り処理のそれぞれにおいて特定された前記情報コードの種類の内の最も回数の多い前記情報コードの種類であると予測することを特徴とする、光学情報読み取り装置。
【0018】
この光学情報読み取り装置では、次に読み取り処理の対象となる情報コードの種類は記憶部に記憶された複数回の読み取り処理のそれぞれにおいて特定された情報コードの種類の内の最も回数の多い情報コードの種類であると予測されるため、情報コードの種類の予測の精度を向上させることができ、情報コードの種類毎の演算量の多寡を原因とする読み取り処理の所要時間のばらつきを高い精度で低減することができる。
【0019】
[適用例7]適用例1ないし適用例6のいずれかに記載の光学情報読み取り装置であって、
前記読み取り処理部は、予め設定された最大処理時間内に読み取り処理が完了しない場合は前記読み取り処理を中止すると共に、新たに設定された前記処理速度で読み取り処理を再度実行し、
前記速度設定部は、読み取り処理が中止された場合には、前記処理速度を予め設定された最高速度に設定することを特徴とする、光学情報読み取り装置。
【0020】
この光学情報読み取り装置では、予め設定された最大処理時間内に読み取り処理が完了しない場合は読み取り処理が中止され、処理速度が予め設定された最高速度に設定され、新たに設定された処理速度で読み取り処理が再度実行されるため、読み取り処理の所要時間が極端に長くなることを抑制しつつ所要時間のばらつきの低減を実現することができる。
【0021】
[適用例8]適用例1ないし適用例7のいずれかに記載の光学情報読み取り装置であって、
前記速度設定部は、前記情報コードの種類毎に定められた基準処理速度における単位時間当たり処理サイズを表す情報と、読み取り処理の所要時間の目標値を表す情報と、を有すると共に、前記基準処理速度と予測された前記情報コードの種類に対応する前記単位時間当たり処理サイズと前記サイズ情報と前記目標値とに基づき、前記処理速度を設定することを特徴とする、光学情報読み取り装置。
【0022】
この光学情報読み取り装置では、処理の対象となる情報コードの種類や対象画像における情報コードの画像のサイズに見合った処理速度の設定を実現することができる。
【0023】
[適用例9]適用例1ないし適用例8のいずれかに記載の光学情報読み取り装置であって、
前記読み取り処理部は、前記対象画像を複数の領域に分割した各領域の内で前記情報コードの画像の少なくとも一部を含む前記領域により構成されるラベリング領域を設定し、
前記サイズ情報取得部は、前記ラベリング領域の面積を表す情報を、前記サイズ情報として取得することを特徴とする、光学情報読み取り装置。
【0024】
この光学情報読み取り装置では、対象画像における情報コードの画像の概略サイズを表すサイズ情報を容易に取得することができ、対象画像における情報コードの画像のサイズに見合った処理速度の設定を容易に実現することができる。
【0025】
[適用例10]適用例1ないし適用例9のいずれかに記載の光学情報読み取り装置であって、
前記読み取り処理部は、予測された前記情報コードの種類に基づき、読み取り処理における前記情報コードの種類を特定する処理の順序を設定することを特徴とする、光学情報読み取り装置。
【0026】
この光学情報読み取り装置では、予測された情報コードの種類に基づき読み取り処理における情報コードの種類を特定する処理の順序が設定されるため、読み取り処理におけるルーチンの反復回数の低減を図ることができ、読み取り処理の所要時間を全体として短縮しつつ、そのばらつきを低減することができる。
【0027】
[適用例11]適用例1ないし適用例10のいずれかに記載の光学情報読み取り装置であって、
前記読み取り処理部は、前記読み取り処理中に、前記情報コードの読み取りにくさを表す難読度を判定し、
前記速度設定部は、同一の前記情報コードの種類で比較した場合に前記難読度が高いほど処理速度が速くなるように、前記読み取り処理部における前記難読度の特定以降の処理速度を再設定する、光学情報読み取り装置。
【0028】
この光学情報読み取り装置では、読み取り処理中に情報コードの読み取りにくさを表す難読度が判定され、読み取り処理部における難読度の特定以降の処理速度が、同一の情報コードの種類で比較した場合に難読度が高いほど処理速度が速くなるよう設定される。一般に、情報コードが読み取りにくい場合には情報コードが読み取りやすい場合と比較して読み取り処理に要する時間が長くなる傾向にあるが、この光学情報読み取り装置では、情報コードが読み取りにくい場合における読み取り処理に要する時間の増大を抑制することができ、各情報コードの読み取り処理に要する時間のばらつきをより良好に低減することができる。
【0029】
[適用例12]適用例11に記載の光学情報読み取り装置であって、
前記読み取り処理部は、前記読み取り処理において最初に読み取りが行われる前記情報コード中の基準パターンの読み取り成否に基づき、前記難読度を判定する、光学情報読み取り装置。
【0030】
この光学情報読み取り装置では、難読度の判定のための特別な処理を行う必要がないため、難読度の判定を実行することに伴う処理時間の増大を抑制することができる。
【0031】
[適用例13]適用例12に記載の光学情報読み取り装置であって、
特定の前記情報コードの前記基準パターンは、複数の基準パターン要素により構成され、
前記読み取り処理部は、前記特定の情報コードに関し、読み取りが成功した前記基準パターン要素の数が少ないほど前記難読度が高くなるように、前記難読度を判定する、光学情報読み取り装置。
【0032】
この光学情報読み取り装置では、特定の情報コードに関し、読み取りが成功した基準パターン要素の数が少ないほど難読度が高くなるように難読度が判定されるため、適切にかつ迅速に難読度を判定することができる。
【0033】
[適用例14]適用例1ないし適用例13のいずれかに記載の光学情報読み取り装置であって、
前記読み取り処理部は、前記読み取り処理中に、前記情報コードの情報量を特定し、
前記速度設定部は、同一の前記情報コードの種類で比較した場合に前記情報量が多いほど処理速度が速くなるように、前記読み取り処理部における前記情報量の特定以降の処理速度を再設定する、光学情報読み取り装置。
【0034】
この光学情報読み取り装置では、読み取り処理中に情報コードの情報量が特定され、読み取り処理部における情報量の特定以降の処理速度が、同一の情報コードの種類で比較した場合に情報量が多いほど処理速度が速くなるよう設定される。一般に、情報コードの情報量が多い場合には情報コードの情報量が少ない場合と比較して読み取り処理に要する時間が長くなる傾向にあるが、この光学情報読み取り装置では、情報コードの情報量が多い場合における読み取り処理に要する時間の増大を抑制することができ、各情報コードの読み取り処理に要する時間のばらつきをより良好に低減することができる。
【0035】
なお、本発明は、種々の態様で実現することが可能であり、例えば、光学情報読み取り装置、情報読み取り方法等の態様で実現することができる。
【図面の簡単な説明】
【0036】
【図1】本発明の実施例における光学情報読み取り装置100の外観を示す説明図である。
【図2】光学情報読み取り装置100の内部構成を概略的に示すブロック図である。
【図3】光学情報読み取り装置100による処理の流れを示すフローチャートである。
【図4】ラベリング処理により抽出されるラベリング領域LAの一例を示す説明図である。
【図5】記録処理により更新される記録テーブルRTの一例を示す説明図である。
【図6】CPUの動作クロック信号周波数に応じた消費電力の一例を表すグラフである。
【図7】第2実施例における光学情報読み取り装置100によるデコード処理の流れを示すフローチャートである。
【図8】難読度の判定方法の一例を示す説明図である。
【図9】速度調整係数K1を規定する速度調整係数テーブルAT1の一例を示す説明図である。
【図10】第3実施例における光学情報読み取り装置100によるデコード処理の流れを示すフローチャートである。
【図11】速度調整係数K2を規定する速度調整係数テーブルAT2の一例を示す説明図である。
【発明を実施するための形態】
【0037】
次に、本発明の実施の形態を実施例に基づいて以下の順序で説明する。
A.第1実施例:
B.第2実施例:
C.第3実施例:
D.変形例:
【0038】
A.第1実施例:
図1は、本発明の第1実施例における光学情報読み取り装置100の外観を示す説明図である。光学情報読み取り装置100は、記録面に記録された各種の情報コードC(例えばバーコードのCODE128のような1次元情報コードや、例えばQRコード(登録商標、以下同様)のような2次元情報コード)から、情報を読み取る装置である。本実施例の光学情報読み取り装置100は、複数種類の情報コードに対応する読み取り装置、すなわち、複数種類の情報コードから情報を読み取ることが可能な読み取り装置である。また、図1に示すように、本実施例の光学情報読み取り装置100は、いわゆるハンディタイプの読み取り装置である。
【0039】
図1には、記録面としてのラベルLに記録された情報コードCの例としてQRコードを示している。QRコードは、白と黒の格子状のパターンで情報を表す正方形形状の情報コードCであり、3つの隅に正方形形状の位置決めシンボルS(ファインダーパターンFPとも呼ばれる)を有している。
【0040】
光学情報読み取り装置100は、後に詳述するように、情報コードCを撮像することにより情報コードCの画像を含む対象画像(対象画像データ)を取得し、取得された対象画像を解析して情報コードCに含まれる情報の抽出を行う。以下、対象画像を解析して情報コードCに含まれる情報の抽出を行う処理を「デコード処理」または「読み取り処理」と呼ぶ。
【0041】
図2は、光学情報読み取り装置100の内部構成を概略的に示すブロック図である。光学情報読み取り装置100は、光学情報読み取り装置100全体を制御する制御回路110と、画像データ等を記憶するメモリ150と、情報コードCから読み取った情報等を表示する表示部160と、各種操作のためのスイッチ類を含む操作部170と、光学情報読み取り装置100に電力を供給するバッテリー180と、図示しない外部装置(例えばホストコンピュータ)との通信のための外部インターフェース190と、を備える。表示部160は、例えば液晶パネルを用いて構成されている。
【0042】
制御回路110は、動作クロック信号に同期して演算を行う図示しないCPUを含み、デコード処理を行う機能を有する。また、制御回路110は、制御回路110によるデコード処理の処理速度Spを可変に設定する速度設定回路116を含んでいる。速度設定回路116は、制御回路110に含まれるCPUの動作クロック信号の周波数を可変に設定することにより、制御回路110の処理速度Spを可変に設定する。なお、速度設定回路116は、CPUの動作クロック信号を可変に設定する代わりに、あるいはCPUの動作クロック信号を可変に設定すると共に、メモリ150へのアクセスのためのアクセスクロック信号を可変に設定することにより、制御回路110の処理速度Spを可変に設定するものとしてもよい。
【0043】
光学情報読み取り装置100は、また、対象画像を取得するための構成要素として、光を発する照明部122と、照明部122を駆動する照明駆動回路120と、ラベルLといった対象物からの反射光を2次元画像センサ132の撮像面に結像する結像レンズ130と、結像された光を光電変換して画像信号を取得する2次元画像センサ132と、2次元画像センサ132を駆動するセンサ駆動回路134と、センサ駆動回路134に画像信号の取得タイミングを示すクロック信号を供給するクロック制御回路136と、2次元画像センサ132により取得された画像信号を増幅する増幅回路140と、増幅された画像信号をデジタル信号に変換するA/D変換回路142と、を備える。デジタル信号に変換された画像信号は、制御回路110によって、メモリ150内に格納される。これら各構成要素は、本発明における画像取得部に相当する。
【0044】
照明部122は、例えばLEDを用いて構成された光源を有している。2次元画像センサ132は、例えばCCDセンサやCMOSセンサにより構成されている。
【0045】
図3は、光学情報読み取り装置100による処理の流れを示すフローチャートである。光学情報読み取り装置100による処理は、操作部170に含まれる電源スイッチ(不図示)がユーザーによってON状態とされると開始される。
【0046】
ステップS110では、制御回路110が、制御回路110がデコード処理を行う際の処理速度Spの初期化を行う。処理速度Spの初期化として、制御回路110の速度設定回路116は、処理速度Spを予め設定された基準処理速度Sbに設定する。すなわち、速度設定回路116は、CPUの動作クロック信号の周波数を、基準処理速度Sbに対応する値に設定する。本実施例では、基準処理速度Sbは、制御回路110の最高処理速度であるものとする。
【0047】
ステップS110では、また、制御回路110が、デコード処理を行う際の読み取り順序の初期化を行う。デコード処理の際には、予め登録された複数の情報コードCの種類の候補の内の1つの選択と、選択された候補に対応する手順に従った情報抽出処理とが、情報抽出処理が成功するまで繰り返し実行される。例えば、情報コードCの種類の最初の候補としてQRコードが選択された場合には、情報抽出処理として、位置決めシンボルS(図1参照)の検出、検出された位置決めシンボルS間の距離の算出、位置決めシンボルS間の距離に基づくセルの特定、各セルからの情報の抽出が実行される。例えば位置決めシンボルSが検出できず、情報抽出処理が成功しなかった場合には、次の候補として別の種類の情報コードC(例えばマキシコード)が選択され、選択された候補に対応する手順に従った情報抽出処理が実行される。デコード処理を行う際の読み取り順序とは、情報コードCの種類の候補の選択順序である。読み取り順序の初期化として、制御回路110は、読み取り順序を予め設定されたデフォルトの順序に設定する。
【0048】
ステップS120では、制御回路110が、操作部170(図2)に含まれるトリガー(不図示)がON状態になったことを検出する。トリガーは、ユーザーが情報コードCの読み取りを希望する場合にON状態になるように操作されるスイッチである。制御回路110は、トリガーがON状態になったことを検出すると、上述した対象画像を取得するための各構成要素を制御して、対象画像を取得する(ステップS130)。取得された対象画像は、メモリ150に格納される。
【0049】
ステップS140では、制御回路110が、対象画像を対象としてラベリング処理を行う。ラベリング処理は、対象画像において、情報コードCの画像の概略の位置およびサイズを特定するラベリング領域LAを抽出する処理である。図4は、ラベリング処理により抽出されるラベリング領域LAの一例を示す説明図である。図4には、情報コードCの画像Ciを含む対象画像において特定されたラベリング領域LAを示している。制御回路110は、ラベリング処理として、対象画像を複数の領域(例えば矩形領域)に分割し、走査線SLに沿って各画素の値を調べることにより、各分割領域に情報コードCの画像Ciの少なくとも一部が含まれるか否かを判定し、情報コードCの画像Ciの少なくとも一部が含まれると判定された分割領域により構成される領域をラベリング領域LAとして抽出する。このようにして抽出されたラベリング領域LAは、図4に示すように、対象画像において情報コードCの画像Ciの概略の位置およびサイズを特定する領域となる。そのため、ラベリング処理により、後のデコード処理の際に処理対象とする画像領域が限定されることとなり、処理の迅速化が図られる。ラベリング処理の詳細内容については、例えば特開2002−304594号公報や特開2000−353210号公報に記載されているため、ここでは記載を省略する。
【0050】
ステップS150では、制御回路110の速度設定回路116が、制御回路110によるデコード処理の処理速度Spを設定する。ただし、処理速度Spの初期化(ステップS110)直後のステップS150では、初期化において設定された処理速度Spがそのまま維持される。
【0051】
ステップS160では、制御回路110が、設定された処理速度Spでデコード処理を行う。制御回路110は、対象画像中のラベリング領域LAを解析して、初期化ステップ(ステップS110)で設定された読み取り順序に従った複数の情報コードCの種類の候補の内の1つの選択と、選択された候補に対応する手順に従った情報抽出処理とを、情報抽出処理が成功するまで繰り返し実行する。情報抽出処理が成功した場合には、情報コードCの種類は、そのとき選択されていた候補であることが特定される。予め登録されたすべての情報コードCの種類の候補に関して情報抽出処理が成功しなかった場合や、情報抽出処理が成功することなく予め設定された最大処理時間Tmが経過した場合等には、デコード処理は不成功とされる。最大処理時間Tmは、デコード処理の所要時間の目標値である。
【0052】
デコード処理が成功した場合には(ステップS170:Yes)、制御回路110は、記録処理を行う。記録処理は、デコード処理において特定された情報コードCの種類と、ラベリング処理により抽出された対象画像におけるラベリング領域LA(図4)の面積(以下、「ラベリング領域面積Al」と呼ぶ)とを、メモリ150に記録する処理である。
【0053】
本実施例では、記録処理は、メモリ150に格納された記録テーブルRTを更新することにより実行される。図5は、記録処理により更新される記録テーブルRTの一例を示す説明図である。図5に示すように、記録テーブルRTには、成功したデコード処理の各回において特定された情報コードCの種類とラベリング領域面積Alとが、デコード処理の実行順に登録される。制御回路110は、記録処理において、既に記録テーブルRTに登録されているデコード処理の実行順をそれぞれ1つ後ろに繰り下げると共に、直前回のデコード処理の記録(情報コードCの種類およびラベリング領域面積Al)を新たに登録する。
【0054】
ステップS190では、制御回路110が、読み取り順序を設定(更新)する。具体的には、制御回路110は、記録テーブルRT(図5)に記録された情報コードCの種類に基づき、次にデコード処理の対象となる情報コードCの種類を予測すると共に、予測結果に基づいて読み取り順序を設定する。本実施例では、次にデコード処理の対象となる情報コードCの種類は、直前のデコード処理において特定された情報コードCの種類と同じであると予測される。従って、制御回路110は、読み取り順序を、予測された情報コードCの種類が最初に候補として選択されるような順序に更新する。なお、情報コードCの種類を予測する制御回路110は、本発明における予測部として機能する。
【0055】
ステップS200では、制御回路110が、デコード処理の読み取り結果、すなわち情報コードCから読み取られた情報を出力する。具体的には、制御回路110は、情報コードCから読み取られた情報の内容を表示部160に表示する。なお、このとき、制御回路110が、外部インターフェース190を介して接続された外部装置に対して読み取られた情報を送信するとしてもよいし、デコード処理が成功したことをユーザーに知らせるために図示しないブザーを鳴らすものとしてもよい。
【0056】
読み取り結果の出力の後、制御回路110は、操作部170(図2)に含まれるトリガーがOFF状態になったことを検出する(ステップS210)。その後、操作部170に含まれる電源スイッチがOFF状態とされて処理が終了されることなく、再度、トリガーがON状態になったことが検出されると(ステップS210)、上述したステップS130以降の処理が再度実行される。すなわち、対象画像が取得され(ステップS130)、対象画像に対するラベリング処理が行われ(ステップS140)、処理速度Spの設定が行われ(ステップS150)、設定された処理速度Spでのデコード処理が行われる(ステップS160)。
【0057】
ここで、図3に示す光学情報読み取り装置100による処理が開始されてから2回目以降の処理速度設定ステップ(ステップS150)では、制御回路110は、次にデコード処理の対象となる情報コードCの種類の予測結果と、直前のラベリング処理(ステップS130)により抽出されたラベリング領域LA(図4)の面積(ラベリング領域面積Al)と、に基づいて、処理速度Spを設定する。情報コードCの種類の予測結果は、上述した読み取り順序の設定(ステップS190)の際に参照される予測結果と同じである。すなわち、本実施例では、制御回路110は、次にデコード処理の対象となる情報コードCの種類は、直前のデコード処理において特定された情報コードCの種類と同じであると予測する。また、制御回路110は、直前のラベリング処理により抽出されたラベリング領域LAの面積を算出する。このとき、制御回路110は、本発明におけるサイズ情報取得部として機能する。
【0058】
制御回路110は、具体的には、処理速度Spを下記の式(1)により算出する。式(1)において、「Sb」は上述の基準処理速度であり、「Al」は直前のラベリング処理により設定されたラベリング領域LAの面積であり、「Tm」は上述の最大処理時間である。また、「Ab」は、デコード処理の際に基準処理速度Sbで単位時間当たりに処理可能な画像面積(以下、「基準処理面積」と呼ぶ)である。本実施例では、情報コードCの種類毎に、基準処理面積Abが予め設定され、メモリ150内に記憶されている。制御回路110は、次にデコード処理の対象となると予測された情報コードCの種類に対応する基準処理面積Abを使用する。
Sp=Sb×(Al/Ab)/Tm ・・・(1)
【0059】
上記式(1)において、(ラベリング領域面積Al/基準処理面積Ab)は、ラベリング領域LAに対して基準処理速度Sbでデコード処理を行った場合の予想処理時間を表す。従って、処理速度Spは、基準処理速度Sbに、最大処理時間Tmに対する予想処理時間の割合を乗ずることにより算出されることとなる。
【0060】
情報コードCのデコード処理における演算量は、情報コードCの種類により異なる場合があるため、基準処理面積Abも情報コードCの種類により異なる場合がある。例えば、一般にバーコードのような1次元情報コードを対象としたデコード処理における演算量は、QRコードのような2次元情報コードを対象としたデコード処理における演算量より少ないため、1次元情報コードに対応する基準処理面積Abは、2次元情報コードに対応する基準処理面積Abよりも大きい傾向にある。そのため、予測された情報コードCの種類が比較的演算量の少ない種類である場合には、情報コードCの種類が比較的演算量の多い種類である場合と比較して、基準処理面積Abが大きい値となり、上記式(1)によれば処理速度Spは遅い値となる。
【0061】
また、上記式(1)によれば、情報コードCの種類が同じ場合には、ラベリング領域面積Alが小さいほど、処理速度Spは遅い値となる。
【0062】
なお、本実施例では、制御回路110の速度設定回路116は、CPUの動作クロック信号の周波数を、シームレスに設定することはできず(すなわち、所定の範囲における任意の値に設定することができず)、段階的に設定された複数の値の内の1つに設定するものとしている。そのため、実際の処理速度Spも、段階的に設定された複数の値の内の1つに設定されることとなる。従って、速度設定回路116は、上記式(1)により目標速度としての処理速度Spを算出し、実際の処理速度Spが、設定可能な値の内の目標速度より遅い側で最も近い値になるように、CPUの動作クロック信号の周波数を選択する。
【0063】
光学情報読み取り装置100による処理が開始されてから2回目以降のデコード処理においてデコード処理が成功した場合にも、上述したステップS180以降の処理、すなわち、記録処理(ステップS180)、読み取り順序設定(ステップS190)、読み取り結果出力(ステップS200)、が同様に実行される。
【0064】
デコード処理が成功しなかった場合(ステップS170:No)であって、予め設定された最大処理時間Tmが経過したことによる失敗以外の失敗である場合には(ステップS240:No)、再度、対象画像取得(ステップS130)以降の処理が実行される。また、予め設定された最大処理時間Tmが経過したことによる失敗である場合には(ステップS240:Yes)、制御回路110の速度設定回路116は、処理速度Spを予め設定された最大処理速度に設定(変更)する(ステップS250)。その後、再度、対象画像取得(ステップS130)以降の処理が実行される。制御回路110は、操作部170に含まれる電源スイッチがOFF状態とされたことを検出すると(ステップS220:Yes)、処理を終了する。
【0065】
以上説明したように、本実施例の光学情報読み取り装置100では、デコード処理において特定された情報コードCの種類が記録テーブルRTとしてメモリ150に記憶され、記憶された情報コードCの種類に基づき次にデコード処理の対象となる情報コードCの種類を予測され、予測された情報コードCの種類と直前のラベリング処理により抽出されたラベリング領域LAの面積(ラベリング領域面積Al)とに基づきデコード処理の処理速度Spが設定される。デコード処理に要する時間は、デコード処理の対象となる情報コードCの種類とラベリング領域面積Alとにより変化し得るが、本実施例の光学情報読み取り装置100では、デコード処理の処理速度Spを、対象となる情報コードCやラベリング領域面積Alに見合った適切な値に設定することができ、情報コードCのデコード処理に要する時間のばらつきを低減することができ、一定に近い読み取りフィーリングでの読み取りを実現することができる。
【0066】
具体的には、本実施例の光学情報読み取り装置100では、予測された情報コードCの種類が比較的演算量の少ない種類である場合には、情報コードCの種類が比較的演算量の多い種類である場合と比較して、処理速度Spが遅い値に設定される。そのため、本実施例の光学情報読み取り装置100では、情報コードCの種類毎の演算量の多寡を原因とするデコード処理の所要時間のばらつきを低減することができ、一定に近い読み取りフィーリングでの読み取りを実現することができる。
【0067】
また、本実施例の光学情報読み取り装置100では、ラベリング領域面積Alが小さいほど、処理速度Spが遅い値に設定されるため、ラベリング領域面積Alの大小を原因とするデコード処理の所要時間のばらつきを低減することができ、一定に近い読み取りフィーリングでの読み取りを実現することができる。
【0068】
なお、上記式(1)から理解されるように、本実施例の光学情報読み取り装置100では、情報コードCの種類が比較的演算量の少ない種類である場合や、ラベリング領域面積Alが比較的小さい場合には、処理速度Spが基準処理速度Sbを低減した値に設定される。一般に、処理速度Spが低い、すなわち、CPUの動作クロック信号の周波数が低いと、消費電力は低減される。図6は、CPUの動作クロック信号周波数に応じた消費電力の一例を表すグラフである。図6に示すように、各動作電圧において、CPUの動作クロック信号の周波数が低いほど消費電力は低減される。従って、本実施例の光学情報読み取り装置100では、デコード処理の際の消費電力の低減を図ることができると共に、バッテリー180による駆動時間の延長を図ることができる。
【0069】
また、本実施例の光学情報読み取り装置100では、次にデコード処理の対象となる情報コードCの種類は、直前のデコード処理において特定された情報コードCの種類であると予測される。一般に、光学情報読み取り装置100による情報コードCの読み取りの際には、同一種類の情報コードCを連続的に読み取る場合が比較的多い。従って、本実施例の光学情報読み取り装置100では、次にデコード処理の対象となる情報コードCの種類の予測の精度を向上させることができ、情報コードCの種類毎の演算量の多寡を原因とするデコード処理の所要時間のばらつきを高い精度で低減することができる。
【0070】
また、本実施例の光学情報読み取り装置100では、予め設定された最大処理時間Tm内にデコード処理が完了しない場合には、処理が中止され、処理速度Spが予め設定された最高速度に設定された上で再度デコード処理が実行されるため、デコード処理の所要時間が極端に長くなることを抑制しつつ所要時間のばらつきの低減を実現することができる。
【0071】
また、本実施例の光学情報読み取り装置100では、予測された情報コードCの種類に基づき、デコード処理における読み取り順序(情報コードCの種類を特定する処理の順序)が設定されるため、デコード処理におけるルーチン(情報コードCの種類の候補の選択と、選択された候補に対応する手順に従った情報抽出)の反復回数の低減を図ることができ、デコード処理の所要時間を全体として短縮しつつ、そのばらつきを低減することができる。
【0072】
B.第2実施例:
図7は、第2実施例における光学情報読み取り装置100によるデコード処理(図3のステップS160)の流れを示すフローチャートである。なお、第2実施例において、光学情報読み取り装置100による処理(図3)におけるデコード処理(ステップS160)以外の処理の内容は、第1実施例と同様である。また、第2実施例における光学情報読み取り装置100の構成は、図2に示した第1実施例と同様である。
【0073】
上述した第1実施例と同様に、制御回路110(図2)は、デコード処理を開始すると(ステップS310)、予め登録された複数の情報コードCの種類の候補の内の1つの選択と、選択された候補に対応する手順に従った情報抽出処理とを、情報抽出処理が成功するまで繰り返し実行する。このとき、制御回路110は、情報コードCの読み取りにくさを表す難読度を判定する(ステップS320)。なお、情報コードCの読み取りにくさは、例えばラベルLにおける情報コードCの汚れ等に起因する。
【0074】
図8は、難読度の判定方法の一例を示す説明図である。制御回路110は、例えば情報コードCの種類の候補としてQRコードを選択すると、最初に、QRコードに含まれる基準パターンとしての3つの位置決めシンボルS(ファインダーパターンFP)の読み取り(検出)を行う。制御回路110は、QRコードに含まれる3つのファインダーパターンFPの検出結果に基づき、情報コードCがQRコードであるか否かを判定する。情報コードCがQRコードであると判定された場合には、制御回路110は、基準パターンを構成する基準パターン要素としてのファインダーパターンFPの検出数に基づき、難読度を判定する。例えば、制御回路110は、3つのファインダーパターンFPの検出に成功した場合には情報コードCの難読度(読み取りにくさ)を低い値「低」に設定し、1つのファインダーパターンFPのみを検出した場合には難読度を高い値「高」に設定し、2つのファインダーパターンFPを検出した場合には難読度を「低」と「高」との中間の値「中」に設定する。図8に示した例では、QRコードに含まれる3つのファインダーパターンFPの内の2つが検出されているので、難読度は中間の値「中」に設定される。
【0075】
なお、難読度の判定方法は、情報コードCの種類毎に予め設定されている。例えば情報コードCの種類の候補としてデータマトリックスコードが選択されると、制御回路110は、最初に、データマトリックスコードに含まれる基準パターンとしてのL字型のアライメントパターンおよび点線状のタイミングセルの読み取り(検出)を行い、読み取り結果に基づき、情報コードCがデータマトリックスコードであるか否かを判定する。また、制御回路110は、情報コードCがデータマトリックスコードであると判定した場合には、データマトリックスコードに含まれる基準パターンの検出の成否に応じて、難読度を判定する。他の情報コードCの種類についても、同様に、予め定められた方法に従い難読度が判定される。このように、制御回路110は、デコード処理において最初に読み取りが行われる情報コードC中の基準パターンの読み取り成否に基づき、難読度を判定する。
【0076】
一般に、デコード処理において、情報コードCに含まれる基準パターンが読み取りにくい場合には、情報コードCの他の部分(記録すべき情報が埋め込まれた部分)も読み取りにくい可能性が高いと考えられる。そのため、本実施例では、情報コードC中の基準パターンの読み取り成否に基づき、情報コードCの難読度を判定するものとしている。
【0077】
難読度が判定されると、制御回路110の速度設定回路116(図2)は、判定された難読度に応じて、制御回路110によるデコード処理の処理速度Spを再設定する(ステップS330)。以下、再設定された処理速度Spを更新処理速度uSpと呼ぶ。速度設定回路116は、更新処理速度uSpを下記の式(2)により算出する。式(2)において、「Sp」は直前のステップS150(図3)で設定された処理速度Spであり、「K1」は速度調整係数である。本実施例では、情報コードCの種類毎に、難読度に応じた速度調整係数Kの値が予め設定され、速度調整係数テーブルAT1としてメモリ150内に記憶されている。
uSp=K1×Sp ・・・(2)
【0078】
図9は、速度調整係数K1を規定する速度調整係数テーブルAT1の一例を示す説明図である。図9に示すように、同一の情報コードCの種類で比較した場合に、速度調整係数K1は、難読度が高いほど大きな値に設定されている。従って、式(2)により算出される更新処理速度uSpは、難読度が高いほど速い値となる。
【0079】
なお、本実施例では、速度設定回路116は、CPUの動作クロック信号の周波数を、シームレスに設定することはできず、段階的に設定された複数の値の内の1つに設定するものとしている。そのため、実際の更新処理速度uSpも、段階的に設定された複数の値の内の1つに設定されることとなる。従って、速度設定回路116は、上記式(2)により目標速度としての更新処理速度uSpを算出し、実際の更新処理速度uSpが、設定可能な値の内の目標速度より遅い側で最も近い値になるように、CPUの動作クロック信号の周波数を選択する。
【0080】
また、図9に示すように、本実施例では、情報コードCがQRコードであり、かつ、ファインダーパターンFPが3つとも検出されて難読度が「低」であると判定された場合には、速度調整係数K1の値は「1.0」となり、更新処理速度uSpは、再設定前の処理速度Spと等しくなる。従って、本実施例では、情報コードCがQRコードであり、かつ、ファインダーパターンFPが3つとも検出された場合には、情報コードCは難読状態ではないと判定され、処理速度の再設定(ステップS330)が省略されると解釈することもできる。
【0081】
処理速度の再設定(ステップS330)が完了すると、制御回路110は、設定された更新処理速度uSpで、以降のデコード処理を続行する(ステップS340)。
【0082】
ここで、情報コードCが読み取りにくい場合には、情報コードCが読み取りやすい場合と比較して、デコード処理に要する時間が長くなる傾向にある。これは、以下の(1)ないし(3)の内の少なくとも1つを要因とする。(1)情報コードCにおける基準パターン自体の検出に比較的長い時間を要する。例えば、基準パターンの検出に失敗した場合に、再チャレンジしたり、違う位置を探索したりする処理が実行される場合があり、処理時間が増大する。(2)基準パターンの一部が検出できなかった場合には、基準パターンを全部検出できた場合には必要ではない追加の処理を要する。例えば、情報コードCがQRコードであり、3つのファインダーパターンFPをすべて検出できた場合には、検出されたファインダーパターンFPからコードの外形を算出することができる。これに対し、検出できたファインダーパターンFPの数が2つ以下である場合には、コードの他の部分の情報を参照してコードの外形を求めるという追加の処理が必要となる。(3)基準パターンが読み取りにくい場合には、情報コードCの他の部分も読み取りにくい可能性が高いと考えられ、誤り訂正処理等に要する時間が増大する可能性が高い。
【0083】
本実施例では、更新処理速度uSpが、同一の情報コードCの種類で比較した場合に、情報コードCの難読度が高いほど速い値になるように設定されるため、情報コードCが読み取りにくい場合におけるデコード処理に要する時間の増大を抑制することができる。そのため、本実施例では、各情報コードCの読み取りにくさの程度に関わらず、各情報コードCのデコード処理に要する時間のばらつきを低減することができ、一定に近い読み取りフィーリングでの読み取りをより良好に実現することができる。
【0084】
また、本実施例では、デコード処理において通常実行される情報コードC中の基準パターンの読み取り処理の成否に基づき情報コードCの難読度を判定しており、難読度の判定のための特別な処理を行う必要がないため、難読度の判定を実行することに伴う処理時間の増大を抑制することができる。
【0085】
また、本実施例では、情報コードCがQRコードであると判定された場合には、検出に成功したファインダーパターンFPの数が少ないほど難読度が高くなるように難読度が判定されるため、適切にかつ迅速に難読度を判定することができる。
【0086】
C.第3実施例:
図10は、第3実施例における光学情報読み取り装置100によるデコード処理(図3のステップS160)の流れを示すフローチャートである。なお、第3実施例において、光学情報読み取り装置100による処理(図3)におけるデコード処理(ステップS160)以外の処理の内容は、第1実施例と同様である。また、第3実施例における光学情報読み取り装置100の構成は、図2に示した第1実施例と同様である。
【0087】
上述した第1実施例と同様に、制御回路110(図2)は、デコード処理を開始すると(ステップS410)、予め登録された複数の情報コードCの種類の候補の内の1つの選択と、選択された候補に対応する手順に従った情報抽出処理とを、情報抽出処理が成功するまで繰り返し実行する。このとき、制御回路110は、情報コードCの情報量を特定する(ステップS420)。
【0088】
制御回路110は、例えば情報コードCの種類の候補としてQRコードを選択すると、最初に、QRコードに含まれる基準パターンとしての3つの位置決めシンボルS(ファインダーパターンFP)の読み取り(検出)を行う。制御回路110は、QRコードに含まれる3つのファインダーパターンFPの検出結果に基づき、情報コードCがQRコードであるか否かを判定する。QRコードは、セル数の異なる複数のバージョンが存在する。情報コードCがQRコードであると判定された場合には、制御回路110は、ラベリング領域面積Alに対するファインダーパターンFPのサイズに基づき、コードの情報量としてのセル数を特定する。
【0089】
なお、情報コードCの情報量の特定方法は、情報コードCの種類毎に予め設定されている。例えば情報コードCの種類の候補としてデータマトリックスコードが選択されると、制御回路110は、最初に、データマトリックスコードに含まれる基準パターンとしてのL字型のアライメントパターンおよび点線状のタイミングセルの読み取り(検出)を行い、読み取り結果に基づき、情報コードCがデータマトリックスコードであるか否かを判定する。また、制御回路110は、情報コードCがデータマトリックスコードであると判定した場合には、データマトリックスコードに含まれる基準パターンに基づき、情報量としてのセル数を特定する。他の情報コードCの種類についても、同様に、予め定められた方法に従い情報量が特定される。
【0090】
情報量が特定されると、制御回路110の速度設定回路116(図2)は、特定された情報量に応じて、制御回路110によるデコード処理の処理速度Spを再設定する(ステップS430)。以下、再設定された処理速度Spを更新処理速度uSpと呼ぶ。速度設定回路116は、更新処理速度uSpを下記の式(3)により算出する。式(3)において、「Sp」は直前のステップS150(図3)で設定された処理速度Spであり、「K2」は速度調整係数である。本実施例では、情報コードCの種類毎に、情報量に応じた速度調整係数K2の値が予め設定され、速度調整係数テーブルAT2としてメモリ150内に記憶されている。
uSp=K2×Sp ・・・(3)
【0091】
図11は、速度調整係数K2を規定する速度調整係数テーブルAT2の一例を示す説明図である。図11に示すように、同一の情報コードCの種類で比較した場合に、速度調整係数K2は、情報量が多いほど大きな値に設定されている。従って、式(3)により算出される更新処理速度uSpは、情報量が多いほど速い値となる。
【0092】
なお、本実施例では、速度設定回路116は、CPUの動作クロック信号の周波数を、シームレスに設定することはできず、段階的に設定された複数の値の内の1つに設定するものとしている。そのため、実際の更新処理速度uSpも、段階的に設定された複数の値の内の1つに設定されることとなる。従って、速度設定回路116は、上記式(3)により目標速度としての更新処理速度uSpを算出し、実際の更新処理速度uSpが、設定可能な値の内の目標速度より遅い側で最も近い値になるように、CPUの動作クロック信号の周波数を選択する。
【0093】
また、図11に示すように、本実施例では、情報コードCがQRコードであり、かつ、情報量が予め設定された標準情報量A1である場合には、速度調整係数K2の値は「1.0」となり、更新処理速度uSpは、再設定前の処理速度Spと等しくなる。従って、本実施例では、情報コードCがQRコードであり、かつ、情報量が標準情報量A1である場合には、処理速度の再設定(ステップS430)が省略されると解釈することもできる。
【0094】
処理速度の再設定(ステップS430)が完了すると、制御回路110は、設定された更新処理速度uSpで、以降のデコード処理を続行する(ステップS440)。
【0095】
ここで、同一の情報コードCの種類で比較したとき、情報コードCの情報量が多い場合には、情報コードCの情報量が少ない場合と比較して、デコード処理に要する時間が長くなる。本実施例では、更新処理速度uSpが、同一の情報コードCの種類で比較した場合に、情報コードCの情報量が多いほど速い値になるように設定されるため、各情報コードCの情報量の多寡に関わらず、各情報コードCのデコード処理に要する時間のばらつきを低減することができ、一定に近い読み取りフィーリングでの読み取りを実現することができる。
【0096】
D.変形例:
なお、この発明は上記の実施例や実施形態に限られるものではなく、その要旨を逸脱しない範囲において種々の態様において実施することが可能であり、例えば次のような変形も可能である。
【0097】
D1.変形例1:
上記各実施例では、記録テーブルRTに、複数回のデコード処理において特定された情報コードCの種類およびラベリング領域面積Alが登録されるとしているが、記録テーブルRTに、直前の1回のデコード処理において特定された情報コードCの種類およびラベリング領域面積Alのみが登録されるとしてもよい。このようにすれば、記録処理の効率化を図ることができると共に、メモリ150における使用記憶領域を低減することができる。
【0098】
また、記録テーブルRTには、デコード処理において特定された情報コードCの種類のみが登録され、ラベリング領域面積Alは登録されないとしてもよい。
【0099】
D2.変形例2:
上記各実施例では、次にデコード処理の対象となる情報コードCの種類は直前のデコード処理において特定された情報コードCの種類と同じであると予測されるとしているが、情報コードCの種類の予測方法はこれに限られない。例えば、次にデコード処理の対象となる情報コードCの種類は、記録テーブルRT(図5)に登録された複数回のデコード処理における情報コードCの種類の内、最も回数の多い情報コードCの種類であると予測されるものとしてもよい。このようにすれば、情報コードCの種類の予測の精度を向上させることができ、情報コードCの種類毎の演算量の多寡を原因とするデコード処理の所要時間のばらつきを高い精度で低減することができる。
【0100】
また、記録テーブルRTに登録された複数回のデコード処理における情報コードCの種類に基づき、情報コードCの種類の順番パターンが推定され、推定された順番パターンに基づき情報コードCの種類が予測されるものとしてもよい。例えば、ある特定の種類(種類1)の情報コードCと他の特定の種類(種類2)の情報コードCとが交互に読み取り対象となった場合には、種類1と種類2とが並んだ順番パターンが推定され、直前のデコード処理における情報コードCの種類が種類1であった場合には、次にデコード処理の対象となる情報コードCの種類は種類2であると予測される。このようにしても、情報コードCの種類の予測の精度を向上させることができ、情報コードCの種類毎の演算量の多寡を原因とするデコード処理の所要時間のばらつきを高い精度で低減することができる。
【0101】
D3.変形例3:
上記各実施例では、処理速度Spの算出の際には、直前のラベリング処理により設定されたラベリング領域面積Alが用いられているが(上記式(1)参照)、記録テーブルRTに記録された実施済みのデコード処理のラベリング領域面積Alに基づき次のデコード処理におけるラベリング領域面積Alを予測し、予測されたラベリング領域面積Alが処理速度Spの算出に用いられるものとしてもよい。この場合に、ラベリング領域面積Alの予測方法は、直前のデコード処理において特定されたラベリング領域面積Alと同じであると予測する方法が用いられてもよいし、記録テーブルRTに記録されたラベリング領域面積Alの平均値であると予測する方法が用いられてもよい。一般に、同一人物が複数の情報コードCの読み取り操作を連続して行う場合には、ラベリング領域面積Alは同じような値になることが多い。そのため、本変形例のようにラベリング領域面積Alを予測して処理速度Spを算出しても、情報コードCのデコード処理に要する時間のばらつきを低減することができる。
【0102】
また、上記各実施例では、処理速度Spの算出の際に、ラベリング領域面積Alが用いられているが、ラベリング領域面積Alの代わりに、対象画像における情報コードCの画像Ciの概略サイズを表す他の指標が用いられるとしてもよい。このようにしても、処理速度Spを、対象となる情報コードCや画像Ciの概略サイズに見合った適切な値に設定することができ、情報コードCのデコード処理に要する時間のばらつきを低減することができる。
【0103】
D4.変形例4:
上記各実施例では、速度設定回路116が、上記式(1)ないし(3)により目標速度としての処理速度Sp(または更新処理速度uSp、以下同様)を算出し、実際の処理速度Spが設定可能な値の内の目標速度より遅い側で最も近い値になるようにCPUの動作クロック信号の周波数を選択するとしているが、実際の処理速度Spが設定可能な値の内の目標速度より速い側で最も近い値になるようにCPUの動作クロック信号の周波数を選択するとしてもよいし、遅い側・速い側を問わず、実際の処理速度Spが設定可能な値の内の目標速度に最も近い値になるようにCPUの動作クロック信号の周波数を選択するとしてもよい。このようにしても、情報コードCのデコード処理に要する時間のばらつきを低減することができる。
【0104】
また、上記実施例では、速度設定回路116は、CPUの動作クロック信号の周波数を段階的に設定された複数の値の内の1つに設定するものとしているが、CPUの動作クロック信号の周波数をシームレスに設定することが可能であるとしてもよい。すなわち、速度設定回路116が、処理速度Spの値をシームレスに設定することが可能であるとしてもよい。この場合には、式(1)ないし(3)により算出された処理速度Spをそのまま使用する処理速度Spとして使用すればよい。このようにすると、情報コードCのデコード処理に要する時間のばらつきをさらに低減することができる。
【0105】
また、上記実施例では、基準処理速度Sbは制御回路110の最高処理速度であるとしているが、基準処理速度Sbは制御回路110の最高処理速度である必要はなく、任意の速度に設定可能である。このようにしても、情報コードCのデコード処理に要する時間のばらつきを低減することができる。
【0106】
D5.変形例5:
上記各実施例における光学情報読み取り装置100の構成は、あくまで一例であり、光学情報読み取り装置100の構成は種々変形可能である。例えば、光学情報読み取り装置100は、バッテリー180により電力供給されるとしているが、商用電源から電力供給されるとしてもよい。また、上記実施例では、光学情報読み取り装置100はハンディタイプの読み取り装置であるとしているが、本発明は例えば定置式といった他のタイプの光学情報読み取り装置にも適用可能である。
【0107】
また、上記実施例において、ハードウェアによって実現されていた構成の一部をソフトウェアに置き換えるようにしてもよく、逆に、ソフトウェアによって実現されていた構成の一部をハードウェアに置き換えるようにしてもよい。
【0108】
D6.変形例6:
上記第2実施例における速度調整係数テーブルAT1の内容は、あくまで一例であり、種々変形可能である。
例えば、情報コードCがQRコードである場合において、ファインダーパターンFPの検出数が2であり難読度が「中」である場合の速度調整係数K1の値を「1.0」とし、ファインダーパターンFPの検出数が3であり難読度が「低」である場合の速度調整係数K1の値を1.0より小さい値にすることにより、難読度が「低」である場合の更新処理速度uSpを低下させ、もって、各情報コードCのデコード処理に要する時間のばらつきを低減するものとしてもよい。すなわち、速度調整係数K1は、同一の情報コードCの種類で比較した場合に難読度が高いほど大きな値に設定されていれば、1.0より小さい値であってもよい。
【0109】
同様に、上記第3実施例における速度調整係数テーブルAT2の内容は、あくまで一例であり、種々変形可能である。速度調整係数K2は、同一の情報コードCの種類で比較した場合に情報量が多いほど大きな値に設定されていれば、1.0より小さい値であってもよい。
【0110】
D7.変形例7:
上記第2実施例では、情報コードC中の基準パターンの読み取り成否に基づき情報コードCの難読度を判定するとしているが、難読度の判定方法はこれに限られない。例えば、情報コードCの基準パターン以外の部分の読み取り成否に基づき情報コードCの難読度を判定するとしてもよい。
【0111】
また、例えば、情報コードCの種類がバーコードのような1次元コードである場合には、横方向に読み取り走査を行うが、例えばバーコードの高さが低くて、最初の走査でコード全体の読み取りに成功しなかった場合には、難読度が高いと判定し、以降の処理速度が速くなるように処理速度の再設定を行うとしてもよい。
【0112】
D8.変形例8:
上記第2実施例における情報コードCの難読度に応じた更新処理速度uSpの設定と、上記第3実施例における情報コードCの情報量に応じた更新処理速度uSpの設定とを組み合わせて実行するものとしてもよい。すなわち、更新処理速度uSpを、同一の情報コードCの種類で比較した場合に、情報コードCの難読度が高いほど速い値になるように、かつ、情報コードCの情報量が多いほど速い値になるように、設定するものとしてもよい。このような更新処理速度uSpの設定は、更新処理速度uSpを下記の式(4)により算出することにより実現することができる。
uSp=K1×K2×Sp ・・・(4)
【符号の説明】
【0113】
100…光学情報読み取り装置
110…制御回路
116…速度設定回路
120…照明駆動回路
122…照明部
130…結像レンズ
132…2次元画像センサ
134…センサ駆動回路
136…クロック制御回路
140…増幅回路
142…A/D変換回路
150…メモリ
160…表示部
170…操作部
180…バッテリー
190…外部インターフェース
【特許請求の範囲】
【請求項1】
情報が記録された情報コードから前記情報を光学的に読み取る光学情報読み取り装置であって、
前記情報コードを撮像することにより前記情報コードの画像を含む対象画像を取得する画像取得部と、
前記対象画像を解析して、前記情報コードの種類の特定と前記情報の抽出とを含む読み取り処理を行う読み取り処理部と、
前記読み取り処理において特定された前記情報コードの種類を記憶する記憶部と、
前記記憶部に記憶された情報コードの種類に基づき、次に読み取り処理の対象となる前記情報コードの種類を予測する予測部と、
前記対象画像における前記情報コードの画像の概略サイズを表すサイズ情報を取得するサイズ情報取得部と、
予測された前記情報コードの種類と前記サイズ情報とに基づき、前記読み取り処理部における処理速度を設定する速度設定部と、を備えることを特徴とする、光学情報読み取り装置。
【請求項2】
請求項1に記載の光学情報読み取り装置であって、
前記速度設定部は、予測された情報コードの種類が第1の種類である場合には、前記予測された情報コードより読み取り処理における演算量の多い第2の種類である情報コードと比較して、前記処理速度を遅い値に設定することを特徴とする、光学情報読み取り装置。
【請求項3】
請求項1または請求項2に記載の光学情報読み取り装置であって、
前記速度設定部は、前記サイズ情報により表される前記情報コードの画像の概略サイズが小さいほど、前記処理速度をより遅い値に設定することを特徴とする、光学情報読み取り装置。
【請求項4】
請求項1ないし請求項3のいずれかに記載の光学情報読み取り装置であって、
前記予測部は、次に読み取り処理の対象となる前記情報コードの種類は、直前の読み取り処理において特定された前記情報コードの種類であると予測することを特徴とする、光学情報読み取り装置。
【請求項5】
請求項1ないし請求項3のいずれかに記載の光学情報読み取り装置であって、
前記記憶部は、複数回の読み取り処理のそれぞれにおいて特定された前記情報コードの種類を記憶し、
前記予測部は、前記記憶部に記憶された複数回の読み取り処理のそれぞれにおいて特定された前記情報コードの種類に基づき、次に読み取り処理の対象となる前記情報コードの種類を予測することを特徴とする、光学情報読み取り装置。
【請求項6】
請求項5に記載の光学情報読み取り装置であって、
前記予測部は、次に読み取り処理の対象となる前記情報コードの種類は、前記記憶部に記憶された複数回の読み取り処理のそれぞれにおいて特定された前記情報コードの種類の内の最も回数の多い前記情報コードの種類であると予測することを特徴とする、光学情報読み取り装置。
【請求項7】
請求項1ないし請求項6のいずれかに記載の光学情報読み取り装置であって、
前記読み取り処理部は、予め設定された最大処理時間内に読み取り処理が完了しない場合は前記読み取り処理を中止すると共に、新たに設定された前記処理速度で読み取り処理を再度実行し、
前記速度設定部は、読み取り処理が中止された場合には、前記処理速度を予め設定された最高速度に設定することを特徴とする、光学情報読み取り装置。
【請求項8】
請求項1ないし請求項7のいずれかに記載の光学情報読み取り装置であって、
前記速度設定部は、前記情報コードの種類毎に定められた基準処理速度における単位時間当たり処理サイズを表す情報と、読み取り処理の所要時間の目標値を表す情報と、を有すると共に、前記基準処理速度と予測された前記情報コードの種類に対応する前記単位時間当たり処理サイズと前記サイズ情報と前記目標値とに基づき、前記処理速度を設定することを特徴とする、光学情報読み取り装置。
【請求項9】
請求項1ないし請求項8のいずれかに記載の光学情報読み取り装置であって、
前記読み取り処理部は、前記対象画像を複数の領域に分割した各領域の内で前記情報コードの画像の少なくとも一部を含む前記領域により構成されるラベリング領域を設定し、
前記サイズ情報取得部は、前記ラベリング領域の面積を表す情報を、前記サイズ情報として取得することを特徴とする、光学情報読み取り装置。
【請求項10】
請求項1ないし請求項9のいずれかに記載の光学情報読み取り装置であって、
前記読み取り処理部は、予測された前記情報コードの種類に基づき、読み取り処理における前記情報コードの種類を特定する処理の順序を設定することを特徴とする、光学情報読み取り装置。
【請求項11】
請求項1ないし請求項10のいずれかに記載の光学情報読み取り装置であって、
前記読み取り処理部は、前記読み取り処理中に、前記情報コードの読み取りにくさを表す難読度を判定し、
前記速度設定部は、同一の前記情報コードの種類で比較した場合に前記難読度が高いほど処理速度が速くなるように、前記読み取り処理部における前記難読度の特定以降の処理速度を再設定する、光学情報読み取り装置。
【請求項12】
請求項11に記載の光学情報読み取り装置であって、
前記読み取り処理部は、前記読み取り処理において最初に読み取りが行われる前記情報コード中の基準パターンの読み取り成否に基づき、前記難読度を判定する、光学情報読み取り装置。
【請求項13】
請求項12に記載の光学情報読み取り装置であって、
特定の前記情報コードの前記基準パターンは、複数の基準パターン要素により構成され、
前記読み取り処理部は、前記特定の情報コードに関し、読み取りが成功した前記基準パターン要素の数が少ないほど前記難読度が高くなるように、前記難読度を判定する、光学情報読み取り装置。
【請求項14】
請求項1ないし請求項13のいずれかに記載の光学情報読み取り装置であって、
前記読み取り処理部は、前記読み取り処理中に、前記情報コードの情報量を特定し、
前記速度設定部は、同一の前記情報コードの種類で比較した場合に前記情報量が多いほど処理速度が速くなるように、前記読み取り処理部における前記情報量の特定以降の処理速度を再設定する、光学情報読み取り装置。
【請求項1】
情報が記録された情報コードから前記情報を光学的に読み取る光学情報読み取り装置であって、
前記情報コードを撮像することにより前記情報コードの画像を含む対象画像を取得する画像取得部と、
前記対象画像を解析して、前記情報コードの種類の特定と前記情報の抽出とを含む読み取り処理を行う読み取り処理部と、
前記読み取り処理において特定された前記情報コードの種類を記憶する記憶部と、
前記記憶部に記憶された情報コードの種類に基づき、次に読み取り処理の対象となる前記情報コードの種類を予測する予測部と、
前記対象画像における前記情報コードの画像の概略サイズを表すサイズ情報を取得するサイズ情報取得部と、
予測された前記情報コードの種類と前記サイズ情報とに基づき、前記読み取り処理部における処理速度を設定する速度設定部と、を備えることを特徴とする、光学情報読み取り装置。
【請求項2】
請求項1に記載の光学情報読み取り装置であって、
前記速度設定部は、予測された情報コードの種類が第1の種類である場合には、前記予測された情報コードより読み取り処理における演算量の多い第2の種類である情報コードと比較して、前記処理速度を遅い値に設定することを特徴とする、光学情報読み取り装置。
【請求項3】
請求項1または請求項2に記載の光学情報読み取り装置であって、
前記速度設定部は、前記サイズ情報により表される前記情報コードの画像の概略サイズが小さいほど、前記処理速度をより遅い値に設定することを特徴とする、光学情報読み取り装置。
【請求項4】
請求項1ないし請求項3のいずれかに記載の光学情報読み取り装置であって、
前記予測部は、次に読み取り処理の対象となる前記情報コードの種類は、直前の読み取り処理において特定された前記情報コードの種類であると予測することを特徴とする、光学情報読み取り装置。
【請求項5】
請求項1ないし請求項3のいずれかに記載の光学情報読み取り装置であって、
前記記憶部は、複数回の読み取り処理のそれぞれにおいて特定された前記情報コードの種類を記憶し、
前記予測部は、前記記憶部に記憶された複数回の読み取り処理のそれぞれにおいて特定された前記情報コードの種類に基づき、次に読み取り処理の対象となる前記情報コードの種類を予測することを特徴とする、光学情報読み取り装置。
【請求項6】
請求項5に記載の光学情報読み取り装置であって、
前記予測部は、次に読み取り処理の対象となる前記情報コードの種類は、前記記憶部に記憶された複数回の読み取り処理のそれぞれにおいて特定された前記情報コードの種類の内の最も回数の多い前記情報コードの種類であると予測することを特徴とする、光学情報読み取り装置。
【請求項7】
請求項1ないし請求項6のいずれかに記載の光学情報読み取り装置であって、
前記読み取り処理部は、予め設定された最大処理時間内に読み取り処理が完了しない場合は前記読み取り処理を中止すると共に、新たに設定された前記処理速度で読み取り処理を再度実行し、
前記速度設定部は、読み取り処理が中止された場合には、前記処理速度を予め設定された最高速度に設定することを特徴とする、光学情報読み取り装置。
【請求項8】
請求項1ないし請求項7のいずれかに記載の光学情報読み取り装置であって、
前記速度設定部は、前記情報コードの種類毎に定められた基準処理速度における単位時間当たり処理サイズを表す情報と、読み取り処理の所要時間の目標値を表す情報と、を有すると共に、前記基準処理速度と予測された前記情報コードの種類に対応する前記単位時間当たり処理サイズと前記サイズ情報と前記目標値とに基づき、前記処理速度を設定することを特徴とする、光学情報読み取り装置。
【請求項9】
請求項1ないし請求項8のいずれかに記載の光学情報読み取り装置であって、
前記読み取り処理部は、前記対象画像を複数の領域に分割した各領域の内で前記情報コードの画像の少なくとも一部を含む前記領域により構成されるラベリング領域を設定し、
前記サイズ情報取得部は、前記ラベリング領域の面積を表す情報を、前記サイズ情報として取得することを特徴とする、光学情報読み取り装置。
【請求項10】
請求項1ないし請求項9のいずれかに記載の光学情報読み取り装置であって、
前記読み取り処理部は、予測された前記情報コードの種類に基づき、読み取り処理における前記情報コードの種類を特定する処理の順序を設定することを特徴とする、光学情報読み取り装置。
【請求項11】
請求項1ないし請求項10のいずれかに記載の光学情報読み取り装置であって、
前記読み取り処理部は、前記読み取り処理中に、前記情報コードの読み取りにくさを表す難読度を判定し、
前記速度設定部は、同一の前記情報コードの種類で比較した場合に前記難読度が高いほど処理速度が速くなるように、前記読み取り処理部における前記難読度の特定以降の処理速度を再設定する、光学情報読み取り装置。
【請求項12】
請求項11に記載の光学情報読み取り装置であって、
前記読み取り処理部は、前記読み取り処理において最初に読み取りが行われる前記情報コード中の基準パターンの読み取り成否に基づき、前記難読度を判定する、光学情報読み取り装置。
【請求項13】
請求項12に記載の光学情報読み取り装置であって、
特定の前記情報コードの前記基準パターンは、複数の基準パターン要素により構成され、
前記読み取り処理部は、前記特定の情報コードに関し、読み取りが成功した前記基準パターン要素の数が少ないほど前記難読度が高くなるように、前記難読度を判定する、光学情報読み取り装置。
【請求項14】
請求項1ないし請求項13のいずれかに記載の光学情報読み取り装置であって、
前記読み取り処理部は、前記読み取り処理中に、前記情報コードの情報量を特定し、
前記速度設定部は、同一の前記情報コードの種類で比較した場合に前記情報量が多いほど処理速度が速くなるように、前記読み取り処理部における前記情報量の特定以降の処理速度を再設定する、光学情報読み取り装置。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【公開番号】特開2011−134309(P2011−134309A)
【公開日】平成23年7月7日(2011.7.7)
【国際特許分類】
【出願番号】特願2010−259856(P2010−259856)
【出願日】平成22年11月22日(2010.11.22)
【出願人】(501428545)株式会社デンソーウェーブ (1,155)
【Fターム(参考)】
【公開日】平成23年7月7日(2011.7.7)
【国際特許分類】
【出願日】平成22年11月22日(2010.11.22)
【出願人】(501428545)株式会社デンソーウェーブ (1,155)
【Fターム(参考)】
[ Back to top ]