(57)【特許請求の範囲】
【請求項１】
可変焦点レンズと、
前記可変焦点レンズの焦点位置を調節するフォーカス駆動手段と、
前記可変焦点レンズによる撮像方向の画像データを取得するための撮像手段と、
前記撮像方向にレーザ光ビームを出射する発光手段と、
前記フォーカス駆動手段、前記撮像手段、及び、前記発光手段の動作を制御し、取得された画像データに含まれるコードシンボルの読み取りを行う制御手段と、
を備え、
前記制御手段は、
出射された前記レーザ光ビームにより前記コードシンボルを含む面内に形成された輝点の前記画像データにおける座標に基づいて前記焦点位置を移動させるフォーカス設定を第１実行時間内で繰り返し行うことでフォーカス調整を行う第１フォーカス手段と、
第２実行時間内で前記焦点位置を変化させ、当該変化させた焦点位置毎に取得された前記画像データについて各々算出されるコントラストの大小に基づいて、前記焦点位置を移動させることでフォーカス調整を行う第２フォーカス手段と、
前記第１フォーカス手段によるフォーカス調整及び前記第２フォーカス手段によるフォーカス調整の実行回数を各々計数する計数手段と、
前記第１フォーカス手段によるフォーカス調整の実行回数が増加するのに従い前記第１実行時間が短くなるように、当該第１実行時間を所定の第１初期設定時間から短縮して設定し、前記第２フォーカス手段によるフォーカス調整の実行回数が増加するのに従い前記第２実行時間が短くなるように、当該第２実行時間を所定の第２初期設定時間から短縮して設定するフォーカス調整時間設定手段と、
を備えることを特徴とするコード読取装置。
【請求項２】
前記制御手段は、
前記撮像手段により前記フォーカス設定に基づいて取得された画像データに含まれる前記コードシンボルの読み取りに成功しない場合には、当該フォーカス設定の合計実行時間が前記第１実行時間に達するまで、前記第１フォーカス手段による前記フォーカス設定、及び、当該フォーカス設定に基づいて取得された前記画像データに含まれる前記コードシンボルの読み取りを繰り返す
ことを特徴とする請求項１に記載のコード読取装置。
【請求項３】
前記制御手段は、
前記第１フォーカス手段によるフォーカス調整に基づく前記コードシンボルの読み取りが前記第１実行時間内に成功しなかった場合には、前記第２フォーカス手段によるフォーカス調整に基づく前記コードシンボルの読み取りを行い、
前記第２フォーカス手段によるフォーカス調整に基づく前記コードシンボルの読み取りが前記第２実行時間内に成功しなかった場合には、前記第１フォーカス手段による前記コードシンボルの読み取りを行う
ことを特徴とする請求項１又は２に記載のコード読取装置。
【請求項４】
前記制御手段は、
前記第１フォーカス手段によるフォーカス調整に基づく前記コードシンボルの読み取りが、予め定められた連続実行回数成功しなかった場合には、前記第２フォーカス手段によるフォーカス調整に基づく前記コードシンボルの読み取りを行い、
前記第２フォーカス手段によるフォーカス調整に基づく前記コードシンボルの読み取りが、予め定められた連続実行回数成功しなかった場合には、前記第１フォーカス手段によるフォーカス調整に基づく前記コードシンボルの読み取りを行なう
ことを特徴とする請求項１又は２に記載のコード読取装置。
【請求項５】
前記撮像手段により取得された画像データを記憶する記憶手段を備え、
前記制御手段は、当該取得された画像データを前記記憶手段に記憶させ、前記画像データに含まれるコードシンボルの読み取りを行う
ことを特徴とする請求項１〜４の何れか一項に記載のコード読取装置。
【請求項６】
前記制御手段は、前記撮像手段による撮像範囲のうちの所定の一部の範囲の画像データのみを前記記憶手段に記憶させ、
前記第１フォーカス手段及び前記第２フォーカス手段は、当該一部の範囲の画像データによりフォーカス調整を行う
ことを特徴とする請求項５に記載のコード読取装置。
【請求項７】
前記第１フォーカス手段は、前記フォーカス設定又は前記第２フォーカス手段によるフォーカス調整により、移動先の焦点位置が既に求められている場合には、前記可変焦点レンズの焦点位置を直近の該移動先の焦点位置に合わせた後に、前記発光手段から前記レーザ光ビームを出射させた状態で前記撮像手段に画像データを取得させて前記フォーカス設定を行う
ことを特徴とする請求項１〜６の何れか一項に記載のコード読取装置。
【請求項８】
前記第２フォーカス手段は、前記第１フォーカス手段によるフォーカス調整又は当該第２フォーカス手段によるフォーカス調整により、移動先の焦点位置が既に求められている場合には、該移動先の焦点位置から前記第２実行時間内で前後に変化させた焦点位置毎に撮像対象の画像データを前記撮像手段に取得させることでフォーカス調整を行う
ことを特徴とする請求項１〜７の何れか一項に記載のコード読取装置。
【請求項９】
前記可変焦点レンズは、液体レンズであり、
前記第２フォーカス手段は、前記フォーカス駆動手段により、所定の電圧間隔で前記可変焦点レンズに電圧を印加させることで前記焦点位置を変化させる
ことを特徴とする請求項１〜８の何れか一項に記載のコード読取装置。
【請求項１０】
前記撮像方向を照明する照明手段を備え、
前記制御手段は、前記第２フォーカス手段によるフォーカス調整時、及び、前記コードシンボルの読み取り時には、当該照明手段を点灯させる
ことを特徴とする請求項１〜９の何れか一項に記載のコード読取装置。
【請求項１１】
可変焦点レンズと、前記可変焦点レンズの焦点位置を調節するフォーカス駆動手段と、前記可変焦点レンズによる撮像方向の画像データを取得するための撮像手段と、前記撮像方向にレーザ光ビームを出射する発光手段と、を備え、コード読取装置に用いられるコンピュータを、
前記フォーカス駆動手段、前記撮像手段、及び、前記発光手段の動作を制御し、取得された画像データに含まれるコードシンボルの読み取りを行う制御手段
として機能させるプログラムであって、
前記制御手段は、
出射された前記レーザ光ビームにより前記コードシンボルを含む面内に形成された輝点の前記画像データにおける座標に基づいて前記焦点位置を移動させるフォーカス設定を第１実行時間内で繰り返し行うことでフォーカス調整を行う第１フォーカス手段と、
第２実行時間内で前記焦点位置を変化させ、当該変化させた焦点位置毎に取得された前記画像データについて各々算出されるコントラストの大小に基づいて、前記焦点位置を移動させることでフォーカス調整を行う第２フォーカス手段と、
前記第１フォーカス手段によるフォーカス調整及び前記第２フォーカス手段によるフォーカス調整の実行回数を各々計数する計数手段と、
前記第１フォーカス手段によるフォーカス調整の実行回数が増加するのに従い前記第１実行時間が短くなるように、当該第１実行時間を所定の第１初期設定時間から短縮して設定し、前記第２フォーカス手段によるフォーカス調整の実行回数が増加するのに従い前記第２実行時間が短くなるように、当該第２実行時間を所定の第２初期設定時間から短縮して設定するフォーカス調整時間設定手段と、
を備えることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、バーコードや二次元コードを読み取るコード読取装置に関する。
【背景技術】
【０００２】
従来、一次元バーコードや二次元コード等のシンボルを解読して情報を取得するコード読取装置が知られている。このコード読取装置には、シンボルを光学的に撮像し、撮像された画像データを用いてシンボルをデコード（解読）することでデータを取得する二次元のイメージャデバイスが搭載されている。
【０００３】
コード読取装置によりコードを読み取る際には、撮像に用いられるレンズ光学系の焦点位置を読み取り対象のシンボルに合わせるフォーカス処理を行う必要がある。このフォーカス処理には、固定焦点レンズを用いてレンズから読み取り対象までの距離を変化させるものと、可変焦点レンズを用いてレンズの焦点位置を変化させるものとがある。固定焦点レンズを用いたものとしては、例えば、特許文献１には、発光やビープ音の発生パターンを変化させて読み取り対象のバーコードシンボルやバーコード読取装置の移動方向を指示することで、速やかにユーザがバーコードシンボルとバーコード読取装置とを適切な相対位置に配置させる技術が示されている。
【０００４】
一方、可変焦点レンズを用いたバーコード読取装置では、オートフォーカスにより焦点位置の調整が行われる。オートフォーカスの方法の一つとしては、レンズの光軸に対して所定の角度でレーザ光によるスポッタービームを照射し、コード面に形成されたスポッタービームの像（輝点）の位置によって読み取り対象までの距離を測定してレンズのフォーカス調整を行うレーザフォーカス法（例えば、特許文献２）がある。また、オートフォーカスの他の方法としては、焦点位置を順番に変化させながら次々に読み取り対象のシンボルを撮像し、各撮像データにおける特徴的な値（例えば、画像のコントラスト値）に基づいてフォーカス画像を探索することで焦点位置を同定して、レンズのフォーカス調整を行う方法（コントラストフォーカス法など）とがある。レーザフォーカス法によるフォーカス処理は、コントラストフォーカス法によるフォーカス処理と比較して短時間で実行可能であるが、コントラストフォーカス法の方がオートフォーカスの精度が高いという特徴がある。
【０００５】
そこで、レーザフォーカス法及びコントラストフォーカス法を併用したオートフォーカス機能が実装されたバーコード読取装置がある。このようなバーコード読取装置では、何れかのオートフォーカス法によるデコードが成功するまでフォーカス処理とデコード処理とがそれぞれ所定の時間ずつ繰り返し行われている。また、このようなフォーカス処理では、概ね漸近的に焦点位置が求められる。そこで、フォーカス処理が繰り返される毎に所定のフォーカス時間を徐々に短くしていくことにより、不要なフォーカス時間を削減してコードデータの読み取り速度を高速化する技術が用いられている。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２００１−１８４４５２号公報
【特許文献２】特開平０５−２１７０１３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
しかしながら、上記のように、レーザフォーカス法とコントラストフォーカス法では、フォーカス処理に要する時間に差がある。従って、フォーカス処理がなされる度に画一的に所定のフォーカス時間を削減していくのでは、効率よくデコードがなされないという課題があった。
【０００８】
この発明の目的は、読み取り対象のコードシンボルに効率よく、且つ、確実に焦点を合わせてシンボルの読み取りが可能なコード読取装置を提供することにある。
【課題を解決するための手段】
【０００９】
本発明は、上記目的を達成するため、
可変焦点レンズと、
前記可変焦点レンズの焦点位置を調節するフォーカス駆動手段と、
前記可変焦点レンズによる撮像方向の画像データを取得するための撮像手段と、
前記撮像方向にレーザ光ビームを出射する発光手段と、
前記フォーカス駆動手段、前記撮像手段、及び、前記発光手段の動作を制御し、取得された画像データに含まれるコードシンボルの読み取りを行う制御手段と、
を備え、
前記制御手段は、
出射された前記レーザ光ビームにより前記コードシンボルを含む面内に形成された輝点の前記画像データにおける座標に基づいて前記焦点位置を移動させるフォーカス設定を第１実行時間内で繰り返し行うことでフォーカス調整を行う第１フォーカス手段と、
第２実行時間内で前記焦点位置を変化させ、当該変化させた焦点位置毎に取得された前記画像データについて各々算出されるコントラストの大小に基づいて、前記焦点位置を移動させることでフォーカス調整を行う第２フォーカス手段と、
前記第１フォーカス手段によるフォーカス調整及び前記第２フォーカス手段によるフォーカス調整の実行回数を各々計数する計数手段と、
前記第１フォーカス手段によるフォーカス調整の実行回数が増加するのに従い前記第１実行時間が短くなるように、当該第１実行時間を所定の第１初期設定時間から短縮して設定し、前記第２フォーカス手段によるフォーカス調整の実行回数が増加するのに従い前記第２実行時間が短くなるように、当該第２実行時間を所定の第２初期設定時間から短縮して設定するフォーカス調整時間設定手段と、
を備えることを特徴とするコード読取装置である。
【発明の効果】
【００１０】
本発明に従うと、コード読取装置において、読み取り対象のコードシンボルに効率よく、且つ、確実に焦点を合わせてシンボルを読み取ることができるという効果がある。
【図面の簡単な説明】
【００１１】
【図１】本発明の実施形態のコード読取装置の全体構造を示す正面図である。
【図２】コード読取装置の内部構成を示すブロック図である。
【図３】イメージャモジュール及びイメージャコントローラの平面図である。
【図４】第１位置及び第１位置よりも遠い第２位置にシンボルが置かれた場合の様子を説明する図である。
【図５】第１位置及び第２位置に置かれたシンボルを撮像したフレーム画像を示す図である。
【図６】第１位置及び第２位置に焦点位置がある場合に第２位置に置かれたシンボルを撮像したフレーム画像、及び、焦点位置を変化させた場合のコントラスト値の変化を示す図である。
【図７】バーコードシンボルの読み取り動作における時間配分を模式的に示す図である。
【図８】デコード処理の制御手順を示すフローチャートである。
【図９】レーザフォーカス法を用いたデコード処理の制御手順を示すフローチャートである。
【図１０】コントラストフォーカス法を用いたデコード処理の制御手順を示すフローチャートである。
【発明を実施するための形態】
【００１２】
以下、本発明の実施の形態を図面に基づいて説明する。
【００１３】
図１は、本発明の実施形態のコード読取装置の全体構造を示す正面図である。
本実施形態のコード読取装置１（コンピュータ）は、一次元バーコード、二次元コード等のシンボルの読み取り機能を有する携帯機器である。
【００１４】
コード読取装置１は、筐体としてのケース２を備える。コード読取装置１は、ケース２の正面に、トリガキー１２Ａと、各種キー１２Ｂと、表示部１４と、を備える。コード読取装置１は、ケース２の側面に、トリガキー１２Ｃを備える。また、コード読取装置１は、ケース２の先端部に、イメージャモジュール２１を備える。
【００１５】
トリガキー１２Ａ、１２Ｃは、イメージャモジュール２１によるシンボル読み取り動作の開始命令の入力を受け付けるトリガキーである。各種キー１２Ｂは、数字、文字等の入力キー、機能キー等からなり、各種情報の入力操作を受け付ける。表示部１４は、入力操作に係るメニューやステータスなどの情報、及び、イメージャモジュール２１を用いたシンボル読み取り動作の実行時のステータスやデコード結果等の情報を表示する。
【００１６】
図２は、コード読取装置１の内部構成を示すブロック図である。
【００１７】
コード読取装置１は、制御手段（第１フォーカス手段、第２フォーカス手段、計数手段、フォーカス調整時間設定手段）としてのＣＰＵ（Central Processing Unit）１１と、操作部１２と、ＲＡＭ（Random Access Memory）１３と、表示部１４と、記憶部１５と、通信部１６と、イメージャコントローラ１９と、イメージャモジュール２１と、電源部２２と、レーザ駆動電源２３と、を備える。
【００１８】
コード読取装置１のイメージャモジュール２１及び電源部２２を除く各部は、バス２４を介して互いに接続されている。イメージャモジュール２１は、撮像手段としての撮像素子２１１と、可変焦点レンズ２１２と、可変焦点レンズ２１２を駆動して焦点を調節するフォーカス駆動手段としてのフォーカス機構２１３と、発光手段としてのエイマー２１４と、照明手段としてのイルミネーション２１５と、を有する。
【００１９】
ＣＰＵ１１は、コード読取装置１の各部を制御する。ＣＰＵ１１は、記憶部１５から種々のプログラムを読み出してＲＡＭ１３に展開し、ＲＡＭ１３に展開されたプログラムとの協働で各種処理を実行する。
【００２０】
操作部１２は、各種キー１２Ｂ、トリガキー１２Ａ、１２Ｃ等のキー群を有し、当該キー群の各キーの押下操作を受け付け、その操作情報を入力信号に変換してＣＰＵ１１へ出力する。
【００２１】
ＲＡＭ１３は、揮発性の半導体メモリであり、ＣＰＵ１１に作業用メモリ空間を提供する。また、ＲＡＭ１３は、各種データの一時記憶、及び、各種プログラムを実行する際の展開に用いられる。
【００２２】
表示部１４は、ＬＣＤ（Liquid Crystal Display）や、ＥＬ（Electro-Luminescent）ディスプレイ等で構成され、ＣＰＵ１１から入力される表示情報に応じて各種情報を表示する。
【００２３】
記憶部１５は、読み書きの可能な不揮発性メモリであり、例えば、フラッシュメモリである。記憶部１５には、予め種々のプログラムや設定データが格納されている。或いは、記憶部１５は、ＥＥＰＲＯＭ（Electrically Erasable and Programmable Read Only Memory）やハードディスクであってもよい。又は、専用のコード読取装置においては、ＲＯＭ（Read Only Memory）を用いることとしてもよい。この記憶部１５に格納されたプログラムには、フォーカス機構２１３の動作を制御してシンボルへ焦点を合わせ、デコードする処理を行うプログラム１５ａが含まれ、ＣＰＵ１１は、このプログラムをＲＡＭ１３に展開し、後述する処理フローで示すデコード制御処理を実行する。
【００２４】
通信部１６は、通信アンテナ、信号処理部、変調部、復調部等を備え、アクセスポイントと無線通信する。アクセスポイントは、通信を中継する機器である。つまり、コード読取装置１は、通信部１６により、アクセスポイントを介して、当該アクセスポイントに接続されたサーバ装置等の外部機器と通信する。通信部１６は、送信情報の信号を信号処理部で処理し、変調部で変調して通信アンテナから電波としてアクセスポイントに送信情報を無線送信する。また、通信部１６は、通信アンテナによりアクセスポイントから送信された電波を受信して復調部で復調し、その信号を信号処理部で信号処理して受信情報を取得する。
【００２５】
また、通信部１６は、携帯電話通信方式により、基地局を介してサーバ装置と無線通信する無線通信部としてもよい。また、通信部１６は、コード読取装置１を載置するクレードル、又は通信ケーブルを介して、サーバ装置と有線通信する有線通信部としてもよい。
【００２６】
イメージャコントローラ１９は、イメージャモジュール２１の各部の動作を制御し、イメージャモジュール２１とコード読取装置１の他の部位との間のデータの送受信を制御する。イメージャコントローラ１９は、ＡＳＩＣ（Application Specific Integrated Circuit）等の半導体回路により構成されている。
【００２７】
イメージャコントローラ１９は、撮像素子２１１から、キャプチャされた画像データの１フレームの出力タイミングに同期したフレーム同期信号と、画像データの１ラインの出力タイミングに同期したライン同期信号と、画像データに同期するためのクロック信号と、が入力される。イメージャコントローラ１９は、これらフレーム同期信号、ライン同期信号及びクロック信号に基づいて、ＲＡＭ１３への画像データの転送タイミングを監視する。イメージャコントローラ１９は、撮像素子２１１からイメージャコントローラ１９に入力された画像データを、ＣＰＵ１１を介さずに直接ＲＡＭ１３に転送するＤＭＡ（Direct Memory Access）転送機能を有する。
【００２８】
そして、イメージャコントローラ１９は、画像データの転送タイミングの監視状況に応じてフォーカス機構２１３の動作を制御することにより、可変焦点レンズ２１２の焦点位置をリアルタイムに変化させる。
【００２９】
イメージャモジュール２１は、可変焦点レンズ２１２の焦点位置を調整して被写体のシンボルを撮像するモジュールである。撮像素子２１１は、特には限られないが、ＣＭＯＳ（Complementary Metal Oxide Semiconductor：相補性金属酸化膜半導体）イメージセンサである。撮像素子２１１は、可変焦点レンズ２１２を含む光学系を介して入射された被写体像を光電変換して電気信号に変換することで、画像データをキャプチャ（取得）する。
【００３０】
撮像素子２１１は、イメージャコントローラ１９から入力された画像領域指定信号により指定されたラインの画像データを１ラインずつラインデータとしてイメージャコントローラ１９に出力する。また、撮像素子２１１は、フレーム同期信号、ライン同期信号、及び、クロック信号をイメージャコントローラ１９に出力する。可変焦点レンズ２１２は、例えば、液体レンズであり、イメージャモジュール２１の光学系の一部を構成する光学素子である。この液体レンズは、フォーカス機構２１３に印加される電圧に応じて高速で焦点位置を変更可能な構成となっている。
【００３１】
フォーカス機構２１３は、可変焦点レンズ２１２の焦点位置を調節する駆動部である。可変焦点レンズ２１２が液体レンズである場合には、フォーカス機構２１３は、当該液体レンズの所定箇所に電圧を加えるための電極を含む電気回路である。また、可変焦点レンズ２１２としてガラスやプラスチックなどの固体レンズを用いる場合には、フォーカス機構２１３には、例えば、ボイスコイルモータが用いられる。
【００３２】
エイマー２１４は、イメージャモジュール２１と被写体であるシンボルとの距離の測定指標、及び、イメージャモジュール２１の撮像方向と被写体方向とを合わせるための基準となるスポット光（目標光）としてのレーザ光ビームを出射するレーザダイオード（ＬＤ）である。イルミネーション２１５は、例えば、ＬＥＤ（Light Emitting Diode）といった光源により構成され、被写体及びその周囲の領域を明るく照らすための照射光を出射する。
【００３３】
電源部２２は、二次電池等で構成され、コード読取装置１の各部に電力供給を行う。レーザ駆動電源２３は、エイマー２１４を駆動してスポット光を出射させる際の電力を供給する。レーザ駆動電源２３は、イメージャコントローラ１９と共にメイン基板上に配置される。
【００３４】
次いで、図３を参照して、イメージャモジュール２１の各部の配置を詳細に説明する。
図３は、イメージャモジュール２１の平面図である。
【００３５】
イメージャモジュール２１において、可変焦点レンズ２１２を含む光学系２１２Ａは、当該イメージャモジュール２１の外側を撮像可能に配置される。また、撮像素子２１１は、光学系２１２Ａの光軸に対して垂直に配置されている。エイマー２１４及びイルミネーション２１５は、光学系２１２Ａ及びフォーカス機構２１３に並列して配置されている。エイマー２１４は、出射するビーム状のレーザ光が光学系２１２Ａについて変更可能な焦点距離内においてイメージャモジュール２１（光学系２１２Ａ及び撮像素子２１１）により撮像可能な画角内に含まれる配置となっている。本実施形態では、このレーザ光のビームは、光学系２１２Ａの光軸に平行な方向に出射される。また、イルミネーション２１５は、扇状に照射する光が光学系２１２Ａについて変更可能な焦点距離内において、イメージャモジュール２１（光学系２１２Ａ及び撮像素子２１１）により撮影可能な画角内に含まれる配置となっている。
【００３６】
次に、光学系２１２Ａのフォーカス調整方法について説明する。
【００３７】
図４は、第１位置及び第１位置よりも遠い第２位置にシンボルが置かれた場合の様子を説明する図である。また、図５は、第１位置及び第２位置に置かれたシンボルを撮像したフレーム画像を示す図である。
【００３８】
図４において、第１位置Ｄ１に一次元バーコードのシンボル４１が表示された平面が配置されている場合には、図５（ａ）に示すように、フレーム画像ｑ１内にシンボル４１の像Ｑ１が得られる。このとき、エイマー２１４からレーザ光が出射されると、このレーザ光がシンボル４１の面内に到達して輝点を形成する。図５（ａ）の例では、シンボル４１の像Ｑ１の右端付近に輝点Ｅ１が形成されている。
なお、バーコードシンボル４１は、特に限られないが、例えば、白紙に印刷されたものである。
【００３９】
一方、図４において、第１位置Ｄ１よりもイメージャモジュール２１から離れた第２位置Ｄ２にシンボル４１が表示された平面が配置されている場合には、図５（ｂ）に示すように、取得されるフレーム画像ｑ２においてシンボル４１の像Ｑ２が占める面積は、フレーム画像ｑ１においてシンボル４１の像Ｑ１が占める面積に比して相対的に小さくなる。また、このとき、エイマー２１４からレーザ光が出射されてシンボル４１の右端付近を照射すると、フレーム画像ｑ２において形成される輝点Ｅ２の位置は、フレーム画像ｑ１における輝点Ｅ１の位置と比較して、よりフレーム画像ｑ２の中心に近い位置となる。
【００４０】
即ち、フレーム画像において、光学系２１２Ａ及び撮像素子２１１により取得される同一の被写体（コードシンボル）の撮像面積は、イメージャモジュール２１からの距離の二乗に略反比例して小さくなる。また、フレーム画像において、その中心からレーザ光により形成される輝点位置までの距離は、イメージャモジュール２１からシンボル４１までの距離に略反比例して小さくなり、徐々にフレーム画像の中央に近づいていく。従って、フレーム画像内における輝点の位置（座標）により、イメージャモジュール２１からシンボル４１までの距離、即ち、イメージャモジュール２１が設定すべき焦点位置を求めることが出来る。
【００４１】
レーザフォーカス法では、上述の原理に基づいて、エイマー２１４を点灯してフレーム画像を取得し、フレーム画像中の輝点の座標を同定し、この輝点の座標に基づいて焦点位置を算出する。このとき、レーザ光の輝点位置と可変焦点レンズ２１２の焦点位置とが合っていない場合には、輝点の像が不明瞭となる。このような場合には、検出された明部の重心位置を求めることで明部の中央の座標を求めることができる。
【００４２】
図６は、第１位置及び第２位置に可変焦点レンズの焦点位置がある場合に第２位置に置かれたシンボルを撮像したフレーム画像を示す図である。
【００４３】
一次元バーコードのシンボル４１が図４における位置Ｄ２に置かれた場合には、イメージャモジュール２１の焦点位置が位置Ｄ２と重なったときに得られる撮像データが最も明瞭となり、焦点位置が位置Ｄ２に対して前後にずれると、得られる撮像データが不明瞭になる。例えば、図６（ａ）に示すように、イメージャモジュール２１の焦点位置が位置Ｄ１にある場合には、この焦点位置は、シンボル４１の位置Ｄ２よりもイメージャモジュール２１に近い位置となり、従って、得られるフレーム画像ｑ３におけるバーコード画像Ｑ３は、全体的に不明瞭なものとなる。その結果、バーコード画像Ｑ３を含む所定の領域Ｆ３において、バーコードシンボルにおける明部であるスペース部分と暗部であるバー部分との間では、コントラストが小さくなる。一方、図６（ｂ）に示すように、焦点位置が位置Ｄ２と重なる場合には、得られるフレーム画像ｑ４におけるバーコード画像Ｑ４の輪郭が明瞭となって明部と暗部が分離し、バーコード画像Ｑ４を含む所定の領域Ｆ４においてコントラストが大きくなる。
【００４４】
コントラストフォーカス法では、上述の特徴を利用して、焦点位置を変化させながらフレーム画像データを取得し、フレーム画像毎にコントラスト値を算出してコントラスト値が極大となる焦点位置を選択することでバーコードシンボルに対する焦点位置を定める。
【００４５】
コントラスト値の算出方法は、特には限られないが、例えば、ＭＲＤ値（Minimum Reflectance Difference）が用いられる。このＭＲＤ値は、明部であるスペース部分の最小反射率と暗部であるバー部分の最大反射率との差によって求められる。コントラスト値の算出は、フレーム画像データから図６（ａ）、（ｂ）における領域Ｆ３、Ｆ４のデータを抜き出して行われる。この領域Ｆ３、Ｆ４は、バーコード画像Ｑ３、Ｑ４以外の領域が占める割合を減らすように、例えば、フレーム画像ｑ３、ｑ４の中心付近に設定される。この領域Ｆ３、Ｆ４の設定は、必ずしもバーコード画像Ｑ３、Ｑ４全体を含まなくてもよい。
【００４６】
図６（ｃ）には、イメージャモジュール２１においてフォーカス機構２１３により可変焦点レンズ２１２の焦点位置を順番に変化させていく場合のコントラスト値の変化パターンの例を示す。
【００４７】
焦点位置を前後に変化させながらフレーム画像を取得し、各フレーム画像において設定された領域のコントラスト値を順番に求めていくと、フレーム画像内に設定された領域に判別可能なサイズのバーコード像が存在する場合には、求められたコントラスト値は、途中で最大値（極大値）を示す。この最大値を示した焦点位置は、バーコードシンボルが置かれた位置に最も近い位置であると期待される。従って、コントラスト値が最大の値を示す焦点位置に可変焦点レンズ２１２の焦点位置を合わせ、撮像することで得られる撮像データを用いてバーコードシンボルの解読処理を行う。
【００４８】
次に、本実施形態のコード読取装置１におけるフォーカス調整動作及びバーコードの読み取り動作の手順について説明する。
【００４９】
図７は、バーコードの読み取り動作における時間配分を模式的に示す図である。
【００５０】
本実施形態のバーコードの読み取り動作（以降、デコード処理と記す）では、レーザフォーカス法によるフォーカス調整、フレーム画像の取得、及び、シンボルの解読（以降、まとめてレーザフォーカス処理と記す）と、コントラストフォーカス法によるフォーカス調整、フレーム画像の取得、及び、シンボルの解読（以降、まとめてコントラストフォーカス処理と記す）とをそれぞれ独立に設定された実行時間ずつ交互に実行し、シンボル画像の解読が成功するまで繰り返す。
なお、一次元バーコード以外の二次元コード等の読み取りの場合でも、同様の処理が行われる。
【００５１】
先ず、一度目のレーザフォーカス処理によれば、エイマー２１４を点灯させた状態で可変焦点レンズ２１２の焦点位置を設定位置に変化させ、変化させた焦点位置でのフレーム画像を取得する。取得されたフレーム画像からエイマー２１４のビームにより形成された輝点を探索して、輝点が認識された場合には、そのフレーム画像内における座標をもとに焦点位置を算出し、可変焦点レンズ２１２の焦点位置をこの算出された値に合わせる（レーザフォーカス（フォーカス設定））。
ここで、焦点位置の算出は、予め輝点の座標と焦点位置との対応を示すテーブルデータを記憶部１５に記憶させておくことで行う。或いは、数式に基づいて計算を行わせることとしても良い。
【００５２】
次いで、この焦点位置でエイマー２１４を消灯した状態で撮像を行って画像をキャプチャする（キャプチャ）。そして、キャプチャ画像に含まれるシンボルの解読を行う（デコード）。デコードの際に画像データからシンボルを認識する方法としては、従来公知の種々の技術を利用可能である。シンボルのデコードに失敗した場合には、設定された実行時間（Ｔ０×Ｓ０）（第１実行時間、第１初期設定時間）内において、これら一連の処理を繰り返し行うことでフォーカス調整を行う。ここで、定数Ｔ０は、予め定められたレーザフォーカスのための単位時間（例えば、レーザフォーカス、キャプチャ、デコードの一連の処理の平均所要時間）であり、所定数Ｓ０は、設定されたレーザフォーカス処理の最大実行回数を示す整数である。
【００５３】
一度目のレーザフォーカス処理によるデコードが失敗した場合には、次に、コントラスト処理によるバーコードの読み取り動作が行われる。コントラストフォーカス処理によれば、先ず、可変焦点レンズ２１２の焦点位置を設定された実行時間（Ｔ１×Ｓ１）（第２実行時間、第２初期設定時間）に亘り、予め定められた範囲内で変更しながらフレーム画像を取得する。
ここで、焦点位置を変更する予め定められた範囲は、直前のレーザフォーカス処理内のレーザフォーカスで焦点位置が求められている場合には、この焦点位置の前後に定められ、焦点位置が求められていない場合には、予め記憶部１５に記憶された初期設定データに基づいて定められる。
また、定数Ｔ１は、予め定められたコントラストフォーカス処理内のフォーカス調整のための単位時間（例えば、一回のフォーカス調整において、予め定められた最大ステップ数の焦点位置変化を行った場合の所要時間）であり、所定数Ｓ１は、設定されたコントラストフォーカス処理の最大実行回数を示す整数である。次いで、取得されたフレーム画像について、各フレーム画像における所定の領域内のデータからコントラスト値を算出して、最大のコントラスト値が得られたフレーム画像の焦点位置へ可変焦点レンズ２１２の焦点位置を移動させることでフォーカス調整が行われる（コントラストフォーカス）。
【００５４】
それから、当該焦点位置で撮像を行って（キャプチャ）、取得されたフレーム画像に含まれるシンボルのデコードを行う（デコード）。
【００５５】
一度目のコントラストフォーカス処理によるシンボルのデコードに失敗した場合には、二度目のレーザフォーカス処理を行う。この二度目のレーザフォーカス処理の内容は、一度目のレーザフォーカス処理の内容と次の二点で異なる。（１）コントラストフォーカス処理において最大のコントラスト値が得られている場合には、このコントラスト値が得られた焦点位置でエイマー２１４の発光による輝点位置の検出及び焦点位置の算出を開始する。（２）レーザフォーカス処理を行う実行時間がＴ０×（Ｓ０−１）に変更されている。
【００５６】
即ち、２回目以降のレーザフォーカス処理では、当該処理以前に行われたレーザフォーカス処理及び／又はコントラストフォーカス処理によって得られている焦点位置のデータを用いて限られた範囲内のみを探索することで、より短い実行時間で焦点位置を求めなおす。
このようにしてレーザフォーカス処理がＳ０回に亘り、Ｎ回目のレーザフォーカス処理における実行時間Ｔａ（第１実行時間）をＴ０×（Ｓ０−Ｎ＋１）へと短縮しながら行われた後に、未だシンボルの解読が成功していない場合には、レーザフォーカス処理がタイムアウトとなる。レーザフォーカス処理においては、所定の時間の短縮により、例えば、一度の処理内で繰り返されるレーザフォーカス、キャプチャ、デコードの処理ループの実行回数が減少する。
【００５７】
２回目以降のコントラストフォーカス処理も同様に行われる。即ち、Ｍ回目のコントラストフォーカス処理では、レーザフォーカス処理、又は、コントラストフォーカス処理において直近で求められている焦点位置に対して予め定められた前後の範囲内において設定された複数の焦点位置でコントラスト値を求め、コントラスト値が最大となる焦点位置を選択してシンボルの解読を行う。また、Ｍ回目のコントラストフォーカス処理におけるフォーカス調整に対して設定される実行時間Ｔｂ（第２実行時間）は、Ｔ１×（Ｓ１−Ｍ＋１）となる。
Ｓ１回のコントラストフォーカス処理が行われた後に、未だコードの解読が成功していない場合には、コントラストフォーカス処理がタイムアウトとなる。コントラストフォーカス処理においては、所定の時間が短縮されると、例えば、一度のフォーカス調整で変化させる焦点位置のステップ数が減少する。
【００５８】
このように、レーザフォーカス処理の実行回数、及び、コントラストフォーカス処理の実行回数は、独立に管理される。また、何れかのフォーカス処理がタイムアウトしても、他方のフォーカス処理がタイムアウトするまでは、当該他方のフォーカス処理が継続される。一方、何れかのフォーカス処理によりシンボルの解読が成功した場合には、その時点でデコード処理は終了となる。
【００５９】
次に、バーコード読み取り動作について、ＣＰＵ１１が実行する制御処理の手順を示す。
図８は、デコード処理の制御手順を示すフローチャートである。
【００６０】
ＣＰＵ１１により実行されるデコード制御処理は、ユーザによる操作部１２への操作に基づく入力信号などに基づいて、ＣＰＵ１１が記憶部１５から読み出したプログラム１５ａをＲＡＭ１３上に展開した後に開始される。
【００６１】
先ず、ＣＰＵ１１は、レーザフォーカス処理のための初期値、及び、コントラストフォーカス処理のための初期値を設定する（ステップＳ１１）。具体的には、レーザフォーカス法によるフォーカス調整のための初期値として、ＣＰＵ１１は、レーザフォーカス処理の最大実行回数Ｓ０、実行済み回数Ｎ＝０、及び、初回のレーザフォーカス処理においてフォーカス調整が行われる際の最初の焦点位置を設定する。また、コントラストフォーカス処理のための初期値として、ＣＰＵ１１は、コントラストフォーカス処理の最大実行回数Ｓ１、実行済み回数Ｍ＝０、及び、初回のコントラストフォーカス処理においてフォーカス調整が行われる際の焦点位置の変更ステップ数、ステップ間隔を設定する。
なお、最大実行回数Ｓ０、Ｓ１は、同一である必要はない。
【００６２】
次に、ＣＰＵ１１は、レーザフォーカス処理の残り回数（Ｓ０−Ｎ）が「０」であるか否かを判別する。残り回数（Ｓ０−Ｎ）が「０」であると判別された場合には、ＣＰＵ１１の処理は、ステップＳ１７へ移行する。残り回数（Ｓ０−Ｎ）が「０」ではないと判別された場合には、ＣＰＵ１１の処理は、ステップＳ１３へ移行する。
【００６３】
ＣＰＵ１１の処理がステップＳ１３へ移行すると、ＣＰＵ１１は、レーザフォーカス処理の実行時間Ｔａ＝Ｔ０×（Ｓ０−Ｎ）を設定する。続いて、ＣＰＵ１１は、レーザフォーカス処理の制御処理（レーザフォーカス制御処理）を実行する（ステップＳ１４）。このステップＳ１４の処理内容については、後に詳述する。それから、ＣＰＵ１１は、バーコードシンボルのデコードが成功したか否かを判別する（ステップＳ１５）。デコードが成功したと判別された場合には、ＣＰＵ１１の処理は、ステップＳ３０へ移行する。デコードが成功しなかったと判別された場合には、ＣＰＵ１１は、レーザフォーカス処理の実行回数Ｎに１を加算する（ステップＳ１６）。そして、ＣＰＵ１１の処理は、ステップＳ１７へ移行する。
【００６４】
ＣＰＵ１１の処理がステップＳ１２の分岐処理、又は、ステップＳ１６の処理に引き続いてステップＳ１７へ移行すると、ＣＰＵ１１は、コントラストフォーカス処理の残り回数（Ｓ１−Ｍ）が「０」であるか否かを判別する。残り回数（Ｓ１−Ｍ）が「０」であると判別された場合には、ＣＰＵ１１の処理は、ステップＳ２２へ移行する。残り回数（Ｓ１−Ｍ）が「０」ではないと判別された場合には、ＣＰＵ１１は、コントラストフォーカス処理におけるフォーカス調整の実行時間Ｔｂ＝Ｔ１×（Ｓ１−Ｍ）を設定する（ステップＳ１８）。そして、ＣＰＵ１１は、コントラストフォーカス処理の制御処理（コントラストフォーカス制御処理）を実行する（ステップＳ１９）。このステップＳ１９の処理内容については、後に詳述する。
【００６５】
次に、ＣＰＵ１１は、コントラストフォーカス処理によるバーコードシンボルのデコードが成功したか否かを判別する（ステップＳ２０）。デコードが成功したと判別された場合には、ＣＰＵ１１の処理は、ステップＳ３０へ移行する。デコードが成功しなかったと判別された場合には、ＣＰＵ１１は、コントラストフォーカス処理の実行回数Ｍを１加算する（ステップＳ２１）。そして、ＣＰＵ１１の処理は、ステップＳ２２へ移行する。
【００６６】
ステップＳ１７の分岐処理、又は、ステップＳ２１の処理から引き続いてステップＳ２２の処理に移行すると、ＣＰＵ１１は、レーザフォーカス処理の残り回数（Ｓ０−Ｎ）及びコントラストフォーカス処理の残り回数（Ｓ１−Ｍ）が何れも「０」であるか否かを判別する。何れも「０」であると判別された場合には、ＣＰＵ１１の処理は、ステップＳ３１へ移行する。少なくとも何れかが「０」ではないと判別された場合には、ＣＰＵ１１の処理はステップＳ１２へ戻り、ＣＰＵ１１は、２度目以降のレーザフォーカス処理に係る制御処理を行う。
【００６７】
ステップＳ１５の分岐処理、又は、ステップＳ２０の分岐処理によりステップＳ３０の処理へ移行した場合には、ＣＰＵ１１は、成功したデコードデータを出力する（ステップＳ３０）。そして、デコード制御処理を終了する。
【００６８】
ステップＳ２２の分岐処理でステップＳ３１へ移行した場合には、ＣＰＵ１１は、デコードが失敗した旨を示す信号を出力する。そして、デコード処理を終了する。
【００６９】
図９は、ステップＳ１４において呼び出されるレーザフォーカス処理の制御手順を示したフローチャートである。
【００７０】
レーザフォーカス制御処理が開始されると、ＣＰＵ１１は、先ず、レーザ駆動電源２３及びイメージャコントローラ１９へ指令を送り、エイマー２１４を点灯させる（ステップＳ４１）。このとき、ＣＰＵ１１はレーザフォーカス制御処理の開始からの経過時間のカウントを開始する。ＣＰＵ１１は、イメージャコントローラ１９へ指令を送ってフォーカス機構２１３を動作させ、可変焦点レンズ２１２の焦点位置を設定された位置へ移動させる（ステップＳ４２）。
【００７１】
ＣＰＵ１１は、イメージャコントローラ１９へ指令を送り、撮像素子２１１に撮像させるとともに、撮像素子２１１からイメージャコントローラ１９へ送られる撮像データをＤＭＡによってＲＡＭ１３へ直接転送させる（ステップＳ４３）。このとき、ＲＡＭ１３へ転送させるデータは、撮像データのうちエイマー２１４の発光による輝点が現れ得る範囲のデータのみを選択することとしても良い。そして、ＣＰＵ１１は、レーザ駆動電源２３及びイメージャコントローラ１９へ指令を送り、エイマー２１４を消灯させる（ステップＳ４４）。
【００７２】
それから、ＣＰＵ１１は、ＲＡＭ１３へ転送された撮像データを解析して、データ内に、エイマー２１４の発光による輝点が検出されたか否かを判別する（ステップＳ４５）。エイマー２１４の発光による輝点が検出されなかったと判別された場合には、“ＮＯ”へ分岐し、ＣＰＵ１１の処理は、ステップＳ５４へ移行する。
【００７３】
エイマー２１４の発光による輝点が検出されたと判別された場合には、“ＹＥＳ”へ分岐し、ＣＰＵ１１は、フレーム画像内における輝点の座標を同定する（ステップＳ４６）。そして、ＣＰＵ１１は、この輝点の座標に基づいて焦点位置を算出する（ステップＳ４７）。
【００７４】
次いで、ＣＰＵ１１は、イメージャコントローラ１９へ指令を送り、フォーカス機構２１３を動作させて可変焦点レンズ２１２の焦点位置を算出された位置へと駆動させる。具体的には、ＣＰＵ１１は、記憶部１５に記憶された焦点位置とフォーカス機構２１３への印加電圧との対応テーブルに基づいて、算出された焦点位置に対応する印加電圧をフォーカス機構２１３に印加させる（ステップＳ４８）。
【００７５】
ＣＰＵ１１は、イメージャコントローラ１９へ指令を送って、先ず、イルミネーション２１５を点灯させ（ステップＳ４９）、続いて、撮像素子２１１に撮像させるとともに、撮像素子２１１からイメージャコントローラ１９へ送られる撮像データをＲＡＭ１３へＤＭＡ転送させる（ステップＳ５０）。それから、ＣＰＵ１１は、イメージャコントローラ１９へ指令を送って、イルミネーション２１５を消灯させる（ステップＳ５１）。
【００７６】
そして、ＣＰＵ１１は、ＲＡＭ１３に転送された撮像データを元に、撮像されたバーコードシンボルの解読処理を行う（ステップＳ５２）。ＣＰＵ１１は、デコードに成功したか否かを判別する（ステップＳ５３）。そして、成功していると判別された場合には、ＣＰＵ１１の処理は、デコード制御処理へ戻る。一方、成功していないと判別された場合には、ＣＰＵ１１は、更に、設定された実行時間Ｔａが経過したか否かを判別する（ステップＳ５４）。実行時間Ｔａが経過したと判別された場合には、ＣＰＵ１１は、レーザフォーカス制御処理を終了してデコード制御処理へ戻る。実行時間Ｔａが経過していないと判別された場合には、ＣＰＵ１１の処理は、ステップＳ４１へ戻り、レーザフォーカス制御処理を繰り返す。
【００７７】
図１０は、ステップＳ１９において呼び出されるコントラストフォーカス処理の制御手順を示したフローチャートである。
【００７８】
コントラストフォーカス制御処理が開始されると、ＣＰＵ１１は、先ず、可変焦点レンズ２１２による焦点位置の変更範囲、及び、変更ステップ数を設定する（ステップＳ６１）。具体的には、ＣＰＵ１１は、フォーカス処理により直近で算出された中心の焦点位置に対応する印加電圧、及び、コントラストフォーカス制御処理におけるフォーカス制御の実行時間Ｔｂに基づいて変更可能な印加電圧の変更範囲及び変更ステップ数を設定する。
【００７９】
ＣＰＵ１１は、イメージャコントローラ１９に指令を送ってイルミネーション２１５を点灯させる（ステップＳ６２）。続いて、ＣＰＵ１１は、イメージャコントローラ１９に指令を送ってフォーカス機構２１３を動作させ、可変焦点レンズ２１２の焦点位置を変更させる（ステップＳ６３）。
【００８０】
ＣＰＵ１１は、イメージャコントローラ１９に指令を送って撮像素子２１１に撮像させると共に、撮像素子２１１からイメージャコントローラ１９へ送られる撮像データをＲＡＭ１３へＤＭＡ転送させる（ステップＳ６４）。それから、ＣＰＵ１１は、ＲＡＭ１３に転送された撮像データの所定領域におけるコントラスト値を算出する（ステップＳ６５）。
【００８１】
次に、ＣＰＵ１１は、ステップＳ６１の処理で設定された全ての印加電圧ステップを設定、撮像し終えたか否かを判別する（ステップＳ６６）。未だ設定範囲の全ての印加電圧ステップにおける撮像がなされていないと判別された場合には、ステップＳ６３へ戻り、ＣＰＵ１１は、次のステップの印加電圧を用いてステップＳ６３〜Ｓ６６の処理を繰り返す。一方、全ての印加電圧ステップにおいて撮像が行われたと判別された場合には、ＣＰＵ１１の処理は、ステップＳ６７へ移行する。
【００８２】
ＣＰＵ１１は、算出した各焦点位置の撮像データにおけるコントラスト値の中から最大値を示した焦点位置を選択し、イメージャコントローラ１９に指令を送って、選択された焦点位置へ可変焦点レンズ２１２の焦点位置を移動させる（ステップＳ６７）。続いて、ＣＰＵ１１は、イメージャコントローラ１９に指令送って、撮像素子２１１に撮像を行わせ、撮像データをＲＡＭ１３へＤＭＡ転送させる（ステップＳ６８）。また、ＣＰＵ１１は、イメージャコントローラ１９に指令を送って、イルミネーション２１５を消灯させる（ステップＳ６９）。
【００８３】
そして、ＣＰＵ１１は、ＲＡＭ１３に取り込まれた撮像データに基づいてバーコードシンボルの解読を行う（ステップＳ７０）。シンボルの解読が終了すると、ＣＰＵ１１は、コントラストフォーカス制御処理を終了してデコード制御処理へ戻る。
【００８４】
以上のように、上記の実施形態のコード読取装置１によれば、
エイマー２１４から出射されたレーザ光ビームによりコードシンボルを含む面内に形成された輝点の画像データにおける座標に基づいて、焦点位置を移動させるフォーカス設定を実行時間Ｔａ以内で繰り返し行うことでフォーカス調整を行うレーザフォーカス法と、実行時間Ｔｂ以内でフォーカス機構２１３を動作させて焦点位置を変化させ、変化させた焦点位置毎に取得された画像データについて各々コントラスト値を算出し、最大（極大）のコントラスト値を示した焦点位置に可変焦点レンズ２１２の焦点位置を移動させることでフォーカス調整を行うコントラストフォーカス法とを併用し、レーザフォーカス処理とコントラストフォーカス処理の実行回数を各々独立にカウントして、各々の実行回数の増加に従って実行時間Ｔａ、Ｔｂをそれぞれ短縮していく構成なので、２度目以降のフォーカス調整時には、より短時間でフォーカス調整を実行することができると共に、処理に必要とする実行時間が大きく異なるレーザフォーカス処理とコントラストフォーカス処理についてそれぞれ独立に初期設定の実行時間を定め、また、独立に実行時間が短縮されていくので、精度の高いコントラスト処理を２度目以降に行う場合でもレーザフォーカス処理に影響されて必要より短時間での処理を強いられることがなく、逆に、レーザフォーカス処理に不要に長い実行時間が設定されることも無く、効率的且つ確実にコードシンボルに焦点を合わせることができる。
【００８５】
また、レーザフォーカス処理によれば、レーザフォーカスによるフォーカス調整とコードシンボルの読み取りとを交互に繰り返すことで、漸近的に焦点位置を調整することができる。また、シンボルの読み取りに成功した時点でレーザフォーカス処理を終了することが出来る。
【００８６】
また、コードシンボルの読み取りに成功しない場合には、レーザフォーカス処理とコントラストフォーカス処理とを交互に行うことで、両者の短所を補いながら効率的に焦点位置を求め、コードシンボルの読み取りを行うことができる。
【００８７】
また、レーザフォーカス処理とコントラストフォーカス処理の連続実行回数を適宜調整することによって、短時間である程度の精度を得ることができるレーザフォーカス処理の長所と、最終的に高い精度でフォーカス調整を行うことのできるコントラストフォーカス処理の長所を生かして確実なコードシンボルの読み取りを行うことができる。
【００８８】
また、撮像素子２１１により取得された画像データをＲＡＭ１３に転送してＣＰＵ１１によりコードシンボルの読み取りを行わせることで、イメージャコントローラ１９の構成を簡素化すると共に、撮像素子２１１からＲＡＭ１３へ直接ＤＭＡ転送させることで、迅速に読み取り処理を進めることができる。
【００８９】
特に、撮像素子２１１からＲＡＭ１３へフォーカス調整やコードシンボルの読み取りに必要な部分だけのデータを転送させることとしているので、データ転送時間を更に短縮して読み取り処理を高速化することができる。
【００９０】
また、フォーカス調整を複数回繰り返す際に、前回のフォーカス設定やフォーカス調整の結果に基づいて焦点を定めてレーザフォーカス処理やコントラストフォーカス処理を行うので、漸近的に効率よく焦点位置の精度を高めていくことができる。
【００９１】
また、可変焦点レンズ２１２として液体レンズを用いることで、特に、コントラストフォーカス処理を行う際に多数の焦点位置への移動を印加電圧の変化だけで高速に行うことができる。
【００９２】
また、被写体のコードシンボルを照明するイルミネーションを備えているので、暗い場所や影部でも影響を受けずに確実にコードシンボルの読み取りを行うことができる。
【００９３】
なお、本発明は、上記実施の形態に限られるものではなく、様々な変更が可能である。
例えば、上記実施の形態では、ＲＡＭ１３にＤＭＡ転送された撮像データに基づいてＣＰＵ１１がエイマー２１４の輝点検出、輝点座標に基づく焦点位置の同定、コントラスト値の算出、及び、バーコードの解読処理を行ったが、イメージャコントローラ１９がこれらの処理機能をＡＳＩＣ基板上に実装してハードウェア的に演算可能としても良い。
【００９４】
また、上記実施の形態では、コントラストフォーカス制御処理において、最大のコントラスト値を求めた後にイルミネーション２１５を点灯し、改めて焦点位置における画像データを取得したが、イルミネーション２１５を点灯したままコントラスト値を求める処理と平行して各画像データを用いたデコードを行うこととしても良い。
【００９５】
また、上記実施の形態では、レーザフォーカス処理とコントラストフォーカス処理とを交互に行うこととしたが、それずれ、又は、何れかを続けて複数回連続的に実行した後に他方のフォーカス処理へ移行することとしても良い。また、レーザフォーカス処理とコントラストフォーカス処理の順番が逆であっても良い。
【００９６】
また、上記実施の形態では、レーザフォーカス処理及びコントラストフォーカス処理におけるフォーカス調整の一連の処理が終了した後に設定された実行時間が経過したか否かを判別して同一処理を繰り返すか否かを判別したが、割り込み信号などにより実行時間が経過した段階で中途終了させることとしてもよいし、実行時間が経過する前に、次回の繰り返し処理が行われた場合に実行時間を超過する見込みの有無で繰り返しの有無を決定することとしても良い。
【００９７】
また、上記実施の形態では、レーザフォーカス処理についてはフォーカス調整、キャプチャ及びデコードの全てを含んだ時間を実行時間として設定し、コントラストフォーカス処理においては、フォーカス調整の時間のみを実行時間として設定したが、レーザフォーカス処理においてもフォーカス調整時間のみを実行時間として設定することが可能であるし、コントラストフォーカス処理の実行時間として、キャプチャ及びデコードに要する時間を含むこととしても良い。
【００９８】
また、上記実施の形態では、フォーカス調整の実行時間Ｔａ及びＴｂを一次関数的に短縮したが、二次関数や指数関数などの任意のパターンで実行時間を短縮していくことが可能である。
【００９９】
また、上記実施の形態における可変焦点レンズとして、液体レンズ及びガラス等を用いた固体レンズを例に挙げたが、これらに限定されるものではない。例えば、印加電圧により屈折率が変化する「電気光学結晶」の一種であるＫＴＮ（タンタル酸ニオブ酸カリウム、ＫＴa１−ｘＮbｘＯ３）を用いた可変焦点レンズも利用可能である。
【０１００】
また、上記実施の形態では、本発明に係るプログラムのコンピュータ読み取り可能な媒体として記憶部１５（例えば、フラッシュメモリ、ＥＥＰＲＯＭ、ハードディスク、ＲＯＭ）を使用した例を開示したが、この例に限定されない。その他のコンピュータ読み取り可能な媒体として、ＣＤ−ＲＯＭ等の可搬型記録媒体を適用することが可能である。また、本発明に係るプログラムのデータを通信回線を介して提供する媒体として、キャリアウエーブ（搬送波）も本発明に適用される。
【０１０１】
また、上記実施の形態では、コードシンボルの読み取りが成功した時点でデコード処理を終了としたが、読み取り精度が低い場合などには、読み取り精度が所定の基準レベルを超えるまで、或いは、二度読み取りが成功するまでデコード処理を続けることとしても良い。
その他、上記実施の形態で示した数値、制御の順序などの具体的な細部は、本発明の趣旨を逸脱しない範囲において適宜変更可能である。
【０１０２】
本発明のいくつかの実施形態を説明したが、本発明の範囲は、上述の実施の形態に限定するものではなく、特許請求の範囲に記載された発明の範囲とその均等の範囲を含む。
以下に、この出願の願書に最初に添付した特許請求の範囲に記載した発明を付記する。付記に記載した請求項の項番は、この出願の願書に最初に添付した特許請求の範囲の通りである。
【０１０３】
［付記］
＜請求項１＞
可変焦点レンズと、
前記可変焦点レンズの焦点位置を調節するフォーカス駆動手段と、
前記可変焦点レンズによる撮像方向の画像データを取得するための撮像手段と、
前記撮像方向にレーザ光ビームを出射する発光手段と、
前記フォーカス駆動手段、前記撮像手段、及び、前記発光手段の動作を制御し、取得された画像データに含まれるコードシンボルの読み取りを行う制御手段と、
を備え、
前記制御手段は、
出射された前記レーザ光ビームにより前記コードシンボルを含む面内に形成された輝点の前記画像データにおける座標に基づいて前記焦点位置を移動させるフォーカス設定を第１実行時間内で繰り返し行うことでフォーカス調整を行う第１フォーカス手段と、
第２実行時間内で前記焦点位置を変化させ、当該変化させた焦点位置毎に取得された前記画像データについて各々算出されるコントラストの大小に基づいて、前記焦点位置を移動させることでフォーカス調整を行う第２フォーカス手段と、
前記第１フォーカス手段によるフォーカス調整及び前記第２フォーカス手段によるフォーカス調整の実行回数を各々計数する計数手段と、
前記第１フォーカス手段によるフォーカス調整の実行回数が増加するのに従い前記第１実行時間が短くなるように、当該第１実行時間を所定の第１初期設定時間から短縮して設定し、前記第２フォーカス手段によるフォーカス調整の実行回数が増加するのに従い前記第２実行時間が短くなるように、当該第２実行時間を所定の第２初期設定時間から短縮して設定するフォーカス調整時間設定手段と、
を備えることを特徴とするコード読取装置。
＜請求項２＞
前記制御手段は、
前記撮像手段により前記フォーカス設定に基づいて取得された画像データに含まれる前記コードシンボルの読み取りに成功しない場合には、当該フォーカス設定の合計実行時間が前記第１実行時間に達するまで、前記第１フォーカス手段による前記フォーカス設定、及び、当該フォーカス設定に基づいて取得された前記画像データに含まれる前記コードシンボルの読み取りを繰り返す
ことを特徴とする請求項１に記載のコード読取装置。
＜請求項３＞
前記制御手段は、
前記第１フォーカス手段によるフォーカス調整に基づく前記コードシンボルの読み取りが前記第１実行時間内に成功しなかった場合には、前記第２フォーカス手段によるフォーカス調整に基づく前記コードシンボルの読み取りを行い、
前記第２フォーカス手段によるフォーカス調整に基づく前記コードシンボルの読み取りが前記第２実行時間内に成功しなかった場合には、前記第１フォーカス手段による前記コードシンボルの読み取りを行う
ことを特徴とする請求項１又は２に記載のコード読取装置。
＜請求項４＞
前記制御手段は、
前記第１フォーカス手段によるフォーカス調整に基づく前記コードシンボルの読み取りが、予め定められた連続実行回数成功しなかった場合には、前記第２フォーカス手段によるフォーカス調整に基づく前記コードシンボルの読み取りを行い、
前記第２フォーカス手段によるフォーカス調整に基づく前記コードシンボルの読み取りが、予め定められた連続実行回数成功しなかった場合には、前記第１フォーカス手段によるフォーカス調整に基づく前記コードシンボルの読み取りを行なう
ことを特徴とする請求項１又は２に記載のコード読取装置。
＜請求項５＞
前記撮像手段により取得された画像データを記憶する記憶手段を備え、
前記制御手段は、当該取得された画像データを前記記憶手段に記憶させ、前記画像データに含まれるコードシンボルの読み取りを行う
ことを特徴とする請求項１〜４の何れか一項に記載のコード読取装置。
＜請求項６＞
前記制御手段は、前記撮像手段による撮像範囲のうちの所定の一部の範囲の画像データのみを前記記憶手段に記憶させ、
前記第１フォーカス手段及び前記第２フォーカス手段は、当該一部の範囲の画像データによりフォーカス調整を行う
ことを特徴とする請求項５に記載のコード読取装置。
＜請求項７＞
前記第１フォーカス手段は、前記フォーカス設定又は前記第２フォーカス手段によるフォーカス調整により、移動先の焦点位置が既に求められている場合には、前記可変焦点レンズの焦点位置を直近の該移動先の焦点位置に合わせた後に、前記発光手段から前記レーザ光ビームを出射させた状態で前記撮像手段に画像データを取得させて前記フォーカス設定を行う
ことを特徴とする請求項１〜６の何れか一項に記載のコード読取装置。
＜請求項８＞
前記第２フォーカス手段は、前記第１フォーカス手段によるフォーカス調整又は当該第２フォーカス手段によるフォーカス調整により、移動先の焦点位置が既に求められている場合には、該移動先の焦点位置から前記第２実行時間内で前後に変化させた焦点位置毎に撮像対象の画像データを前記撮像手段に取得させることでフォーカス調整を行う
ことを特徴とする請求項１〜７の何れか一項に記載のコード読取装置。
＜請求項９＞
前記可変焦点レンズは、液体レンズであり、
前記第２フォーカス手段は、前記フォーカス駆動手段により、所定の電圧間隔で前記可変焦点レンズに電圧を印加させることで前記焦点位置を変化させる
ことを特徴とする請求項１〜８の何れか一項に記載のコード読取装置。
＜請求項１０＞
前記撮像方向を照明する照明手段を備え、
前記制御手段は、前記第２フォーカス手段によるフォーカス調整時、及び、前記コードシンボルの読み取り時には、当該照明手段を点灯させる
ことを特徴とする請求項１〜９の何れか一項に記載のコード読取装置。
＜請求項１１＞
可変焦点レンズと、前記可変焦点レンズの焦点位置を調節するフォーカス駆動手段と、前記可変焦点レンズによる撮像方向の画像データを取得するための撮像手段と、前記撮像方向にレーザ光ビームを出射する発光手段と、を備え、コード読取装置に用いられるコンピュータを、
前記フォーカス駆動手段、前記撮像手段、及び、前記発光手段の動作を制御し、取得された画像データに含まれるコードシンボルの読み取りを行う制御手段
として機能させるプログラムであって、
前記制御手段は、
出射された前記レーザ光ビームにより前記コードシンボルを含む面内に形成された輝点の前記画像データにおける座標に基づいて前記焦点位置を移動させるフォーカス設定を第１実行時間内で繰り返し行うことでフォーカス調整を行う第１フォーカス手段と、
第２実行時間内で前記焦点位置を変化させ、当該変化させた焦点位置毎に取得された前記画像データについて各々算出されるコントラストの大小に基づいて、前記焦点位置を移動させることでフォーカス調整を行う第２フォーカス手段と、
前記第１フォーカス手段によるフォーカス調整及び前記第２フォーカス手段によるフォーカス調整の実行回数を各々計数する計数手段と、
前記第１フォーカス手段によるフォーカス調整の実行回数が増加するのに従い前記第１実行時間が短くなるように、当該第１実行時間を所定の第１初期設定時間から短縮して設定し、前記第２フォーカス手段によるフォーカス調整の実行回数が増加するのに従い前記第２実行時間が短くなるように、当該第２実行時間を所定の第２初期設定時間から短縮して設定するフォーカス調整時間設定手段と、
を備えることを特徴とするプログラム。
【符号の説明】
【０１０４】
１     コード読取装置
２     ケース
１１   ＣＰＵ
１２   操作部
１２Ａ      、１２Ｃ             トリガキー
１２Ｂ             各種キー
１３   ＲＡＭ
１４   表示部
１５   記憶部
１５ａ      プログラム
１６   通信部
１９   イメージャコントローラ
２１   イメージャモジュール
２１１             撮像素子
２１２             可変焦点レンズ
２１２Ａ    光学系
２１３             フォーカス機構
２１４             エイマー
２１５             イルミネーション
２２   電源部
２３   レーザ駆動電源
２４   バス
【図１】
0005234133.tif 000002
【図２】
0005234133.tif 000003
【図３】
0005234133.tif 000004
【図４】
0005234133.tif 000005
【図７】
0005234133.tif 000006
【図８】
0005234133.tif 000007
【図９】
0005234133.tif 000008
【図１０】
0005234133.tif 000009
【図５】
0005234133.tif 000010
【図６】
0005234133.tif 000011