(57)【要約】【課題】データコードのデコード速度を向上させることが可能なコード読取装置を提供することである。【解決手段】データコードの画像データを取得する撮像手段（撮像部１６）と、前記データコードと前記撮像手段との間の距離を測定する測距手段（測距エンジン１５２）と、前記測定された距離に基づいて、前記画像データの間引き量を決定する決定手段（制御部１１）と、前記決定された間引き量に基づいて、前記取得された画像データからデータを間引きする間引手段（データ間引部１５３）と、前記間引きされた画像データをデコードするデコード手段（デコード部１７）と、を備える。【選択図】図６
2006268699.tif 000002
【特許請求の範囲】
【請求項１】
データコードの画像データを取得する撮像手段と、
前記データコードと前記撮像手段との間の距離を測定する測距手段と、
前記測定された距離に基づいて、前記画像データの間引き量を決定する決定手段と、
前記決定された間引き量に基づいて、前記取得された画像データからデータを間引きする間引手段と、
前記間引きされた画像データをデコードするデコード手段と、
を備えたことを特徴とするコード読取装置。
【請求項２】
前記データコードの種別毎に、当該データコードのコードサイズを示すコードサイズ情報を予め記憶した記憶手段を更に備え、
前記決定手段は、前記取得された画像データのデータコードに対応するコードサイズ情報と前記測定された距離とに基づいて、前記間引き量を決定することを特徴とする請求項１記載のコード読取装置。
【請求項３】
前記記憶手段は、前記距離と前記撮像手段が有する分解能とを対応付けたテーブルを前記データコードの種別毎に予め記憶し、
前記決定手段は、前記テーブルに記憶された距離及び分解能に基づいて前記間引き量を決定することを特徴とする請求項１又は２記載のコード読取装置。
【請求項４】
前記記憶手段は、前記データコードの読み取りが可能となる分解能の限界値を前記データコードの種別毎に予め記憶し、
前記記憶された分解能の限界地に基づいて、前記測定された距離で前記データコードの読み取りが可能か否かを判定する判定手段と、
前記判定手段により読み取り不可と判定された場合に、報知を行う報知手段と、
を更に備えたことを特徴とする請求項３記載のコード読取装置。
【請求項５】
前記撮像手段の焦点距離を調整する焦点調整手段を更に備え、
前記測距手段は、前記調整された焦点距離において取得される前記画像データのコントラスト値に基づいて、前記データコードまでの距離を測定することを特徴とする請求項１記載のコード読取装置。
【請求項６】
前記間引手段は、前記画像データの垂直成分方向及び／又は水平成分方向のデータを間引きすることを特徴とする請求項１記載のコード読取装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データコードの読み取りを行うコード読取装置に関する。
【背景技術】
【０００２】
従来より、バーコードや２次元コード等のデータコードを読み取るコード読取装置として様々なものが提案・実用化されている。例えば、コード読み取り時の条件に応じて複数の照明用光源を切り替えて用いることにより、認識率を向上させる技術が提案されている。また、読み取られた二次元コードの画像データを縮小し、当該縮小された画像データから二次元コードを切り出す装置が提案されている（例えば、特許文献１参照）。
【特許文献１】特開２０００−２５９７６１号公報
【発明の開示】
【発明が解決しようとする課題】
【０００３】
しかしながら、上記した従来のコード読取装置では、コード読み取り毎に発光パターンが決まっている為、定型のコード等を読み取る場合に無駄な発光をする場合がある。また、特許文献１に記載の装置では、コード迄の距離に関係なく読み取りを行うため、コード迄の距離が近く十分な分解能が取れるような場合であっても、距離の離れたコードを読み取る場合と同じデータ量を取得することになり、デコード速度が低下してしまうという問題がある。
【０００４】
本発明の課題は、データコードのデコード速度を向上させることが可能なコード読取装置を提供することである。
【課題を解決するための手段】
【０００５】
請求項１記載の発明は、データコードの画像データを取得する撮像手段と、前記データコードと前記撮像手段との間の距離を測定する測距手段と、前記測定された距離に基づいて、前記画像データの間引き量を決定する決定手段と、前記決定された間引き量に基づいて、前記取得された画像データからデータを間引きする間引手段と、前記間引きされた画像データをデコードするデコード手段と、を備えたことを特徴とする。
【発明の効果】
【０００６】
本発明によれば、撮像手段からデータコードまでの距離に応じた間引き量で間引きされた画像データをデコードする。これにより、デコードに係るデータ量を減少させることが可能であるため、デコード速度を向上させることができる。
また、測定された距離でデータコードの読み取りが可能か否かを判定し、読み取り不可と判定された場合に報知を行うため、ユーザは距離測定の段階でデータコードが読み込めるか否かを判断でき、無駄なデコードでユーザを待機させる必要がなくなる。
【発明を実施するための最良の形態】
【０００７】
＜第１の実施形態＞
以下、本発明のコード読取装置の第１の実施形態について説明する。なお、本実施の形態においてデータコードとは、バーコード、二次元コード等を含む概念であるとする。
【０００８】
図１にコード読取装置１０の機能的構成を示す。図１に示すように、コード読取装置１０は、制御部１１、表示部１２、操作部１３、記憶部１４、ＣＡＭＩ／Ｆ１５、撮像部１６、デコード部１７等を備えて構成され、各部はバス１８により接続されている。
【０００９】
制御部１１は、コード読取装置１０を構成する各機能部への指示や各機能部間のデータの入出力を行い、ＣＰＵ（Central Processing Unit）やＲＯＭ（Read Only Memory）、ＲＡＭ（Random Access Memory）等により構成される。より具体的には、制御部１１は、ＲＯＭ及び／又は記憶部１４に記憶されているシステムプログラムを読み出し、ＲＡＭ内に形成されたワークメモリに展開し、該システムプログラムに従って各部を制御する。また、制御部１１は、ＲＯＭ及び／又は記憶部１４に記憶されている各種処理プログラム等のアプリケーションプログラムを読み出してワークメモリに展開し、各種処理を実行し、それらの処理結果をＲＡＭ内のワークメモリに記憶するとともに、表示部１２に表示させる。そして、ワークメモリに格納した処理結果を記憶部１４に記憶させる。
【００１０】
また、制御部１１は、後述する測距エンジン１５２から入力される、コード読取装置１０（撮像部１６）とデータコードとの間の距離を示す距離データを受信すると、当該データコードの種別毎に対応付けられた距離情報と分解能情報とを記憶部１４のテーブルから読み出し、この距離情報及び分解能情報とに基づいて、測定された距離において必要な分解能を算出することで間引き量を決定し、該決定された間引き量で画像データの間引きを行うよう、データ間引部１５３を制御する。なお、本実施の形態では、測定された距離に基づいて必要な分解能を算出することとしたが、データコードとの距離毎に必要な分解能の値を前記テーブルに予め記憶しておくこととしてもよい。
【００１１】
以下、図２を参照して、制御部１１で決定される間引き量について説明する。
図２（ａ）は、読み取り対象となるデータコード（二次元コード）の一部分示す図であり、図２（ｂ）を図２（ａ）で示した一部分を拡大した図である。ここで、後述する撮像部１６の分解能を、図２（ｂ）中Ｂで示した各ピクセル（微小領域）で表している。このような場合、二次元コードを構成する最小単位である１セルに対してピクセルが３列以上あるため、１列おきに画像データを読み込むこととしてもこの二次元コードをデコードすることが可能である。これは１セルの垂直方向成分及び水平方向成分に対して適用できるため、水平方向成分に関しては１ピクセルおき、垂直方向成分に関しては１ラインおきに読み取ることで読み取るデータ量を減少させることができる。
【００１２】
上述した垂直方向成分及び水平方向成分の間引量は、図３に示すようにコード読取装置１０とデータコードとの距離が開くほど小さくする必要があるため、制御部１１は、測距エンジン１５２から入力される距離に応じた垂直方向成分及び水平方向成分間引き量を、間引き量として後述するデータ間引部１５３に出力する。以下、垂直方向成分の間引き量をライン間引き量、水平方向成分の間引き量をクロック間引き量という。
【００１３】
図１に戻り、表示部１２は、ＬＣＤ（Liquid Crystal Display）やＥＬＤ（Electro Luminescence Display）パネル等により構成され、制御部１１から入力される表示データに基づいて画面表示を行う。
【００１４】
操作部１３は、文字入力キー，数字入力キーその他各種機能に対応付けられたキーを備えたキーボード等を含み、ユーザによるキー操作で押下されたキーに対応する押下信号を制御部１１に出力する。
【００１５】
記憶部１４は、フラッシュメモリなどの不揮発メモリ等により構成され、コード読取装置１０に対応するシステムプログラム、及び該システムプログラム上で実行可能な各種処理プログラム、アプリケーションプログラム及びこれらのプログラムで処理されたデータ等を記録する。
【００１６】
また、記憶部１４は、データコードの種別毎に該データコードの大きさを示すコードサイズ情報を予め記憶している。また、このコードサイズ情報に、読み取り時の基準となる距離を示す距離情報と、当該距離における読み取りの際に必要な分解能を示す分解能情報と、を対応付けたテーブルを記憶している。なお、コードサイズ情報には、データコードを構成する最小単位である１セルに関する情報が含まれているものとする。
【００１７】
ＣＡＭＩ／Ｆ１５は、Ｉ／Ｆ部１５１、測距エンジン１５２、データ間引部１５３、画像処理部１５４等を有して構成されている。以下、ＣＡＭＩ／Ｆ１５の各部について説明する。
【００１８】
Ｉ／Ｆ部１５１は、後述する撮像部１６を接続するためのインターフェースであって、後述する撮像部１６から入力される画像データを制御部１１に出力するとともに、制御部１１（測距エンジン１５２）から入力される所定の制御信号を撮像部１６に出力する。
【００１９】
測距エンジン１５２は、制御部１１の制御に応じ、撮像部１６に具備された不図示のアクチュエータを駆動制御することで、該撮像部１６のフォーカスを調整する。また、測距エンジン１５２は、フォーカス値を変更させた際に撮像部１６から出力される画像データに基づき、本コード読取装置１０（撮像部１６）と読み取り対象であるデータコードとの間の距離を測定する。具体的には、測距エンジン１５２は、アクチュエータを１ステップ移動（焦点を遠方に移動）した際に、撮像部１６から逐次出力される画像データのコントラスト値が最大となる移動位置に基づいて、読み取り対象であるデータコードとの間の距離を測定し、この測定結果を距離データとして制御部１１に出力する。
【００２０】
データ間引部１５３は、制御部１１から入力される間引き量に基づいて、撮像部１６から出力される画像データに対し、所定のデータ量を間引きし、この間引きされた画像データを画像処理部１５４に出力する。
【００２１】
以下、図４及び図５を参照してデータ間引部１５３を説明する。
図４は、データ間引部１５３の構成を示すブロック図であって、図５は、データ間引部１５３に入力される画像データのタイミングチャートの一例を示す図である。
【００２２】
図４に示すように、データ間引部１５３は、ラインレジスタ１５３１、クロックレジスタ１５３２、ＨＳＹＮＣカウンタ１５３３、クロックカウンタ１５３４、データ間引き回路１５３５等を有して構成されている。
【００２３】
ラインレジスタ１５３１は、制御部１１から入力される間引き量の垂直方向成分であるライン間引き量を記憶する。また、クロックレジスタ１５３２は、制御部１１から入力される間引き量の水平方向成分であるクロック間引き量を記憶する。
【００２４】
ＨＳＹＮＣカウンタ１５３３は、当該ＨＳＹＮＣカウンタ１５３３に入力される垂直方向のタイミングを計るためのＶＳＹＮＣ信号と、水平方向のタイミングを計るためのＨＳＹＮＣ信号と、ラインレジスタ１５３１に記憶されたライン間間引き量とに基づいて、垂直方向成分の間引きを行うタイミング信号をデータ間引き回路１５３５に出力する。
【００２５】
クロックカウンタ１５３４は、当該クロックカウンタ１５３４に入力されるクロック信号と、クロックレジスタ１５３２に記憶されたクロック間引き量とに基づいて、水平方向成分の間引きを行うタイミング信号をデータ間引き回路１５３５に出力する。
【００２６】
データ間引き回路１５３５は、ＨＳＹＮＣカウンタ１５３３及びクロックカウンタ１５３４から入力されるタイミング信号に基づいて、入力される画像データ（Ｄａｔａ）に対し、所定のデータ量の間引きを行い、間引きされた画像データ（Ｄａｔａ‘）を出力する。例えば、垂直方向成分に関して１ラインおきに間引きを行うタイミング信号が入力された場合には、図５に示したタイミングチャートのＤａｔａが、Ｌｉｎｅ１、Ｌｉｎｅ３…となるよう、１ラインおきに出力されることになる。また、水平方向成分に関して１クロックおきに間引きを行うタイミング信号が入力された場合には、図５に示した各Ｌｉｎｅに含まれるＰｉｘｅｌＤａｔａ（Ｐ０、Ｐ１…）が、Ｐ０、Ｐ２、Ｐ４…となるよう１クロックおきに出力されることになる。
【００２７】
なお、本実施の形態では、画像データの垂直方向成分及び水平方向成分を間引きすることとしたが、これに限らず、垂直方向成分又は水平方向成分の何れかのみを間引きすることとしてもよい。
【００２８】
図１に戻り、画像処理部１５４は、データ間引部１５３から入力される画像データに対し、ガンマ補正、ホワイトバランス補正等の画像処理を施した後、この画像データを制御部１１に出力する。制御部１１は、画像処理部１５４から入力される画像データを、ＲＡＭ又は記憶部１４に一時記憶させる。
【００２９】
撮像部１６は、光学レンズ、ＣＭＯＳ、ＣＣＤ（Charge Coupled Diode）等の撮像素子、前記光学レンズを移動するモータ等を有したアクチュエータ等から構成されており（何れも不図示）、読み取り対象となるデータコードを撮像し、この撮像により取得された画像データをＣＡＭＩ／Ｆ１５に出力する。
【００３０】
デコード部１７は、ＲＡＭ又は記憶部１４に記憶された画像データに対し、所定のデコード処理を施すことで、該間引画像データに表された所定の情報を読み取り、制御部１１に出力する。制御部１１は、画像処理部１５４から入力される間引画像データを、処理結果として表示部１２に表示させるとともに、記憶部１４に記憶させる。
【００３１】
以下、図６及び図７を参照して、コード読取装置１０で実行されるコード読取処理について説明する。なお、図６及び図７はコード読取装置１０の制御部１１と、ＲＯＭ又は記憶部１４に記憶された所定のプログラムとの協働によるソフトウェア処理により実行される処理を示している。
【００３２】
まず、コード読み取り前の処理として、読み取り対象となるデータコードの種別が操作部１３を介して選択され、この入力信号が入力されると（ステップＳ１１）、当該選択されたデータコードに対応するコードサイズ情報が記憶部１４から読み出され、ＲＡＭ又は記憶部１４に記憶されることで読み取りを行う際のコード条件として設定される（ステップＳ１２）。
【００３３】
次いで、ユーザにより本コード読取装置１０が、読み取り対象となるデータコード近傍に移動されると、コード読取装置１０からデータコードまでの距離を測定する測距処理に移行する（ステップＳ１３）。
【００３４】
以下、図７を参照して測距処理（ステップＳ１３）を説明する。
まず、アクチュエータが駆動されることで、撮像部１６の光学レンズが最近接位置（モータの位置＝０）に移動されて（ステップＳ１３１）、読み取り対象となるデータコードの画像データが取得される（ステップＳ１３２）。
【００３５】
次いで、ステップＳ１３２で取得された画像データのコントラスト値が導出されるとともに、このコントラスト値がＲＡＭ又は記憶部１４に記憶され（ステップＳ１３３）、前回取得された画像データのコントラスト値との比較が行われる（ステップＳ１３４）。
【００３６】
ここで、前回取得されたコントラスト値が今回取得されたコントラスト値以下であると判定された場合には（ステップＳ１３４；Ｎｏ）、アクチュエータが駆動されモータの位置が１インクリメントされることで光学レンズが１ステップ移動され（ステップＳ１３５）、ステップＳ１３２に再び戻る。
【００３７】
一方、ステップＳ１３４において、前回取得されたコントラスト値が今回取得されたコントラスト値を上回っていると判定された場合には（ステップＳ１３４；Ｙｅｓ）、前回のモータ位置が距離データとしてＲＡＭ又は記憶部１４に記憶され（ステップＳ１３６）、ステップＳ１４に移行する。
【００３８】
図６に戻り、本コード条件下における距離情報及び分解能情報が記憶部１４のテーブルから参照され、ステップＳ１３で測定された距離での読み取りに必要な分解能が導出される（ステップＳ１４）。続いて、ステップＳ１４で導出された分解能に基づいて、間引き量が決定された後（ステップＳ１５）、この間引き量がデータ間引部１５３に出力される（ステップＳ１６）。
【００３９】
次いで、入力された間引き量に基づいて画像データが取得された後（ステップＳ１７）、この取得された画像データのデコードがデコード部１７により行われ（ステップＳ１８）、本処理は終了する。
【００４０】
以上のように、本第１の実施形態によれば、データコードまでの距離に応じた間引き量で間引きされた画像データをデコードする。これにより、デコードに係るデータ量を減少させることが可能であるため、デコード速度を向上させることができる。
【００４１】
＜第２の実施形態＞
次に、コード読取装置１０の第２の実施形態を説明する。なお、説明の簡略化のため、第１の実施形態と同一な構成については同一の符号を付して説明を省略し、第２の実施形態に特徴的な部分のみを説明する。
【００４２】
図１を参照して、本第２の実施形態における制御部１１及び記憶部１４について説明する。
記憶部１４は、データコードの種別毎に記憶されたコードサイズ情報に対し、距離情報と分解能情報とを対応付けて記憶する加え、読み取りが可能となる分解能の限界値を示す分解能限界値情報を対応付けたテーブルを記憶している。
【００４３】
制御部１１は、測距エンジン１５２から入力されるコード読取装置１０（撮像部１６）とデータコードとの間の距離を示す距離データを受信すると、当該データコードの種別に対応付けられた距離情報と分解能情報とを記憶部１４から読み出し、この距離情報及び分解能情報とに基づいて、測定された距離において必要な分解能を算出するとともに、当該算出された値が分解能限界値情報で示された限界値以内であるか否かを判定する。
【００４４】
以下、図８を参照して本第２の実施形態における、コード読取処理について説明する。なお、図８はコード読取装置１０の制御部１１と、ＲＯＭ又は記憶部１４に記憶された所定のプログラムとの協働によるソフトウェア処理により実行される処理を示している。
【００４５】
まず、コード読み取り前の処理として、読み取り対象となるデータコードの種別が操作部１３を介して選択され、この入力信号が入力されると（ステップＳ２１）、当該選択されたデータコードに対応するコードサイズ情報が記憶部１４から読み出され、ＲＡＭ又は記憶部１４に記憶されることで読み取りを行う際のコード条件として設定される（ステップＳ２２）。
【００４６】
次いで、ユーザにより本コード読取装置１０が、読み取り対象となるデータコード近傍に移動されると、コード読取装置１０からデータコードまでの距離を測定する測距処理に移行する（ステップＳ２３）。なお、測距処理（ステップＳ２３）は、第１の実施形態で説明した図７の測距処理と同様であるため説明を省略する。
【００４７】
続いて、本コード条件下における距離情報及び分解能情報が記憶部１４のテーブルから参照され、ステップＳ１３で測定された距離での読み取りに必要な分解能が導出される（ステップＳ２４）。さらに、本コード条件下における分解能限界値情報が記憶部１４のテーブルから参照されて、ステップＳ２４で導出された分解能の値が、分解能限界値情報で示された限界値以内であるか否かが判定される（ステップＳ２５）。
【００４８】
ここで、分解能の値が限界値を超えていると判定された場合（ステップＳ２５；Ｎｏ）、データコードの読み取り不可能を旨する表示を表示部１２に表示させた後（ステップＳ２６）、本処理は終了する。
【００４９】
一方、ステップＳ２５において、分解能の値が限界値以内であると判定された場合（ステップＳ２５；Ｙｅｓ）、ステップＳ２４で導出された分解能に基づいて、間引き量が決定された後（ステップＳ２７）、この間引き量がデータ間引部１５３に出力される（ステップＳ２８）。
【００５０】
次いで、入力された間引き量に基づいて画像データが取得された後（ステップＳ２９）、この取得された画像データのデコードがデコード部１７により行われ（ステップＳ３０）、本処理は終了する。
【００５１】
以上のように、本第２の実施形態によれば、データコードまでの距離に応じた間引き量で間引きされた画像データをデコードする。これにより、デコードに係るデータ量を減少させることが可能であるため、デコード速度を向上させることができる。
また、測定された距離でデータコードの読み取りが可能か否かを判定し、読み取り不可と判定された場合に報知を行うため、ユーザは距離測定の段階でバーコードが読み込めるか否かを判断でき、無駄なデコードでユーザを待機させる必要がなくなる。
【００５２】
＜変形例＞
尚、本発明の適用は、上述した例に限らず、本発明の趣旨を逸脱しない範囲で適宜変更可能である。
【００５３】
例えば、上記第１の実施例においては、画像データの間引きを行う際に、図２で示したように、間引き後の有効となるピクセルが、垂直方向成分及び水平方向成分において正方配置されることとしたが、これに限らず、図９で示すように斜方形となるよう配置することとしてもよい。この場合、撮像されるデータコードが傾いている場合に特に有効となる。
【００５４】
本実施の形態における記述は、本発明に係るコード読取装置の一例を示すものであり、これに限定されるものではない。本実施の形態におけるコード読取装置１０の細部構成及び詳細動作に関しては、本発明の趣旨を逸脱しない範囲で適宜変更可能である。
【図面の簡単な説明】
【００５５】
【図１】コード読取装置の機能的構成を模式的に示すブロック図である。
【図２】データコードと分解能との関係を示す図であって、（ａ）データコードの一部分を示す図であり、（ｂ）図２（ａ）で示した一部分を拡大した図である。
【図３】コード読取装置とデータコードとの関係を示す図である。
【図４】データ間引部の機能的構成を模式的に示すブロック図である。
【図５】データ間引部に入力される画像データのタイミングチャートの一例を示す図である。
【図６】第１の実施形態におけるコード読取処理の手順を示すフローチャートである。
【図７】測距処理の手順を示すフローチャートである。
【図８】第２の実施形態におけるコード読取処理の手順を示すフローチャートである。
【図９】データコードと分解能との関係を示す図である。
【符号の説明】
【００５６】
１０  コード読取装置
１１  制御部
１２  表示部
１３  操作部
１４  記憶部
１５  ＣＡＭＩ／Ｆ
１５１  Ｉ／Ｆ部
１５２  測距エンジン
１５３  データ間引部
１５４  画像処理部
１５３１  ラインレジスタ
１５３２  クロックレジスタ
１５３３  ＨＳＹＮＣカウンタ
１５３４  クロックカウンタ
１５３５  データ間引き回路
１６  撮像部
１７  デコード部
１８  バス
【図１】
2006268699.tif 000003
【図２】
2006268699.tif 000004
【図３】
2006268699.tif 000005
【図４】
2006268699.tif 000006
【図５】
2006268699.tif 000007
【図６】
2006268699.tif 000008
【図７】
2006268699.tif 000009
【図８】
2006268699.tif 000010
【図９】
2006268699.tif 000011