(57)【要約】【課題】  ＬＥＤ照明のようなパルス発光する照明の下でも、安価かつ精度よくコード記号を読み取れるようにする。【解決手段】  読み取り対象物をスキャンして読み取り対象物上のコード記号を読み取るコード記号読取装置において、上記スキャンにより得られた光量変動を示す信号を処理する、透過率が信号の周波数に依存するフィルタの透過周波数を変化させながら（Ｓ２０）、上記コード記号の読み取りが成功するまで読み取り（Ｓ１３）を繰り返すようにした。【選択図】        図４
2014021574.tif 000002
【特許請求の範囲】
【請求項１】
読み取り対象物をスキャンして読み取り対象物上のコード記号を読み取るコード記号読取装置であって、
前記スキャンにより得られた光量変動を示す信号を処理する、透過率が信号の周波数に依存するフィルタの透過周波数を変化させながら、前記コード記号の読み取りが成功するまで読み取りを繰り返すことを特徴とするコード記号読取装置。
【請求項２】
請求項１に記載のコード記号読取装置であって、
前記コード記号の読み取りが成功した時の前記フィルタの透過周波数の値を記憶する記憶手段を備え、
前記コード記号の読み取りを行う際の前記フィルタの透過周波数の初期値を、前記記憶手段に記憶されている値とすることを特徴とするコード記号読取装置。
【請求項３】
請求項１に記載のコード記号読取装置であって、
外部光の光量変動の周期を計測する計測手段を備え、
前記計測手段が計測した周期に基づいて前記フィルタの透過周波数の初期値を設定することを特徴とするコード記号読取装置。
【請求項４】
読み取り対象物をスキャンして読み取り対象物上のコード記号を読み取るコード記号読取方法であって、
前記スキャンにより得られた光量変動を示す信号を処理する、透過率が信号の周波数に依存するフィルタの透過周波数を変化させながら、前記コード記号の読み取りが成功するまで読み取りを繰り返すことを特徴とするコード記号読取方法。
【請求項５】
請求項４に記載のコード記号読取方法であって、
前記コード記号の読み取りが成功した時の前記フィルタの透過周波数の値を記憶する記憶手順を備え、
前記コード記号の読み取りを行う際の前記フィルタの透過周波数の初期値を、前記記憶手順で記憶した値とすることを特徴とするコード記号読取方法。
【請求項６】
請求項４に記載のコード記号読取方法であって、
外部光の光量変動の周期を計測する計測手順を備え、
前記計測手順で計測した周期に基づいて前記フィルタの透過周波数の初期値を設定することを特徴とするコード記号読取方法。
【請求項７】
コンピュータに、読み取り対象物をスキャンして読み取り対象物上のコード記号を読み取るコード記号読取装置を制御させて、
請求項４乃至６のいずれか一項に記載のコード記号読取方法を実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、読み取り対象物をスキャンして読み取り対象物上のコード記号を読み取るコード記号読取装置、コード記号読取方法及び、コンピュータにコード記号読取装置を制御させるためのプログラムに関する。
【背景技術】
【０００２】
従来から、読み取り対象物をスキャンして読み取り対象物上のバーコード等のコード記号を読み取るコード記号読取装置が知られている。このようなコード記号読取装置においては、レーザビームのスポットを、読み取り対象物上を移動するように照射し、その反射光の強度を時系列的に検出して解析することにより、反射率の高い部分（白バー）と低い部分（黒バー）の配列の仕方の情報を取得することが行われている。
【０００３】
このようなコード記号読取装置としては、例えば特許文献１に記載のものが知られている。
特許文献１に記載のコード記号読取装置は、レーザダイオードを２ＭＨｚ程度の周波数でパルス駆動すると共に、反射光の信号と、そのパルス駆動に用いる発振器の出力パルスとの間で同期検波を行うことにより、入力雑音をカットするものである。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００３−３０８４７６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
ところで、近年、従来なかった照明として、ＬＥＤ（発光ダイオード）照明が広く用いられるようになってきた。そして、このＬＥＤ照明には、２０〜６０ＫＨｚ（キロヘルツ）程度の点滅周期でパルス発光するものが多い。
【０００６】
一方、読み取り対象物をスキャンしてコード記号を読み取るコード記号読取装置では、上述のように反射光の強度を時系列的に検出する。そして、読み取りの際にＬＥＤ照明が用いられていると、反射光検出のためのフォトダイオードに入射する環境光の強度がパルス発光のため周期的に大きく変動することになる。このため、コード記号の反射率の高い部分からの反射光と低い部分からの反射光との間の光量変動がマスクされてしまい、読み取りが正常に行えないという問題が顕在化してきた。
【０００７】
例えば、分解能１．０ｍｍのバーコード記号を深度１００ｍｍで読み取った場合、バーコードと同等の周期での明滅のない照明の下では、図９に示すような波形が得られる。
この波形は、反射光強度を示す信号をレベル調整した上で微分値を取ったものである。上側に立ち上がったピークが、黒バーから白バーへの変化を、下側に立ち下がったピークが、白バーから黒バーへの変化を示す。
【０００８】
しかし、ＬＥＤ照明の下で同様な読み取りを行うと、得られる波形は図１０に示すようになる。
すなわち、ＬＥＤ照明の周期的な点滅に起因する光量変動のピークが、走査期間の全域に亘って現れ、バーコード記号のバーの並びを反映したピークを覆い隠してしまう。従って、バーの並びを反映した読み取り信号を得ることができず、バーコード記号をデコードすることもできない。
【０００９】
これに対し、特許文献１に記載の技術を用いれば、同期検波により、発振器の発信周波数と異なる周波数のノイズを効果的に除去することが可能である。しかし、特許文献１に記載の技術では、レーザダイオードの駆動や同期検波を行うために大規模な回路が必要となり、コスト高になるという問題があった。
【００１０】
この発明は、このような背景に基づいてなされたものであり、ＬＥＤ照明のようなパルス発光する照明の下でも、安価にかつ精度よくコード記号を読み取れるようにすることを目的とする。
【課題を解決するための手段】
【００１１】
上記の目的を達成するため、この発明は、読み取り対象物をスキャンして読み取り対象物上のコード記号を読み取るコード記号読取装置において、上記スキャンにより得られた光量変動を示す信号を処理する、透過率が信号の周波数に依存するフィルタの透過周波数を変化させながら、上記コード記号の読み取りが成功するまで読み取りを繰り返すようにしたものである。
【００１２】
このようなコード記号読取装置において、上記コード記号の読み取りが成功した時の上記フィルタの透過周波数の値を記憶する記憶手段を設け、上記コード記号の読み取りを行う際の上記フィルタの透過周波数の初期値を、上記記憶手段に記憶されている値とするとよい。
【００１３】
あるいは、外部光の光量変動の周期を計測する計測手段を設け、上記計測手段が計測した周期に基づいて上記フィルタの透過周波数の初期値を設定するようにするとよい。
また、この発明は、装置として実現する他、システム、方法、プログラム、媒体等、任意の形で実現することができる。
【発明の効果】
【００１４】
以上のようなこの発明のコード記号読取装置及びコード記号読取方法によれば、ＬＥＤ照明のようなパルス発光する照明の下でも、安価にかつ精度よくコード記号を読み取れるようにすることができる。
また、この発明のプログラムによれば、コンピュータにプログラムを読み込ませて実行させることにより、同様な効果を得ることができる。
【図面の簡単な説明】
【００１５】
【図１】この発明のコード記号読取装置の一実施形態であるバーコード読取装置のハードウェア構成を示す図である。
【図２】図１に示したアナログ信号処理部の構成をより詳細に示す図である。
【図３】図２に示したフィルタ部の構成をより詳細に示す図である。
【図４】読み取り開始指示を検出した場合に制御回路のＣＰＵが実行する処理の第１の例のフローチャートである。
【図５】図４の処理で設定するカットオフ周波数の候補の例を示す図である。
【図６】カットオフ周波数の設定順を示す図である。
【図７】読み取り開始指示を検出した場合に制御回路のＣＰＵが実行する処理の第２の例のフローチャートである。
【図８】図７に示したカットオフ周波数設定処理のフローチャートである。
【図９】バーコードと同等の周期での明滅のない照明下でバーコード記号を読み取った場合に得られる読み取り信号の例を示す図である。
【図１０】ＬＥＤ照明下でバーコード記号を読み取った場合に得られる読み取り信号の例を示す図である。
【図１１】ＬＥＤ照明下でバーコード記号を読み取った場合に得られる読み取り信号からＬＥＤ照明の点滅に起因するノイズを除去した信号の例を示す図である。
【発明を実施するための形態】
【００１６】
以下、この発明を実施するための形態を図面に基づいて具体的に説明する。
まず、図１に、この発明のコード記号読取装置の一実施形態であるバーコード読取装置のハードウェア構成を示す。
このバーコード読取装置１００は、読み取り対象物をスキャンして読み取り対象物上のバーコード記号を読み取る装置であり、レーザ走査部１０１、受光光学系１０２、アナログ信号処理部１１０、デコーダ部１２０を備える。
【００１７】
これらのうちレーザ走査部１０１は、レーザ光源を備え、読み取り対象物を走査するレーザビームを出力する。
受光光学系１０２は、読み取り対象物からの反射光を含む外部からバーコード読取装置１００への入射光をアナログ信号処理部１１０が備える光電変換部１１１へ導くための光学モジュールであり、必要に応じてレンズやミラーを含む。
アナログ信号処理部１１０は、図２を用いて詳述するが、受光光学系１０２を通して入射する光を電気信号に変換すると共にその信号に対してアナログ信号処理を行い、最終的に二値化してデコーダ部１２０の処理に供する。
【００１８】
次に、デコーダ部１２０は、第１入出力インタフェース（第１Ｉ／Ｏ）１２１，制御回路１２２，ＲＡＭ１２３，不揮発メモリ１２４，第２入出力インタフェース（第２Ｉ／Ｏ）１２５、操作部１２６を備える。
このうち第１Ｉ／Ｏ１２１は、アナログ信号処理部１１０とデコーダ部１２０との間で、二値化した読み取り信号やアナログ信号処理部１１０に対するパラメータの設定信号などを送受信するためのインタフェースである。
【００１９】
制御回路１２２は、レーザ走査部１０１及びアナログ信号処理部１１０の制御や、アナログ信号処理部１１０から第１Ｉ／Ｏ１２１を介して入力される二値化した読み取り信号に対し、バーコード記号のデコード処理、デコード後の読取結果の出力処理等を行う。ハードウェアとしては、ＡＳＩＣ（Application Specific Integrated Circuit）やＣＰＵにより構成することができる。なお、デコード処理の詳細については、適宜公知の手法を採用すればよい。
ＲＡＭ１２３は、デコード処理の際にワークメモリとして用いたり、デコード後の読取結果を一時的に蓄積したり、その他バーコード読取装置１００の動作に必要なデータなど動的に変更するデータを記憶したりする記憶手段である。一部を不揮発性としてもよい。
【００２０】
不揮発メモリ１２４は、バーコード読取装置１００を起動させるプログラムや、制御回路１２２のＣＰＵに実行させるためのプログラムや、アナログ信号処理部１１０に設定すべきパラメータの値などを記憶する不揮発性の記憶手段である。
第２Ｉ／Ｏ１２５は、ＰＣ（パーソナルコンピュータ）等の外部装置とデータ通信を行うためのインタフェースであり、制御回路１２２によるデコード後の読取結果を第２Ｉ／Ｏ１２５を介して外部装置に出力することができる。また、第２Ｉ／Ｏ１２５は、制御回路１２２と操作部１２６との間のインタフェースでもある。
操作部１２６は、バーコードの読み取り開始や読み取り開始モードの選択などの指示を受け付けるための操作手段であり、必要に応じてトリガ、ボタン、表示器などを備える。
【００２１】
次に、図２にアナログ信号処理部１１０の構成をより詳細に示す。
図２に示すように、アナログ信号処理部１１０は、光電変換部１１１、Ｉ／Ｖ変換部１１２、プリアンプ１１３、自動利得制御（ＡＧＣ）アンプ１１４、フィルタ部１１５、二値化部１１６、および利得制御信号生成部１３０を備える。
【００２２】
これらのうち光電変換部１１１は、フォトダイオードを備え、受光光学系１０２を通して入射する光を電気信号に変換する。この電気信号は、フォトダイオードが受光した、読み取り対象物からの反射光や外乱光を含む光の光量をリアルタイムに示す信号である。従って、時系列的に見れば光量変動を示す信号であると言える。
Ｉ／Ｖ変換部１１２は、光電変換部１１１から出力される電流信号を電圧信号に変換する。
【００２３】
プリアンプ１１３は、Ｉ／Ｖ変換器１１２によって変換された電圧信号を増幅すると共に、微分回路を備え、増幅した電圧信号の微分信号を出力する。この微分回路により、入力信号を、光量が変動する箇所を強調した信号とすることができる。
ＡＧＣアンプ１１４は、プリアンプ１１３から出力される微分信号を入力して、後段のフィルタ部１１５の出力信号のレベルに応じて制御される利得で増幅する。
【００２４】
フィルタ部１１５は、ＡＧＣアンプ１１４から出力される信号を入力して、制御回路１２２から第１Ｉ／Ｏ１２１を介して設定されたカットオフ周波数に応じた透過周波数帯域の信号を透過し、それ以外の帯域の信号を減衰させるバンドパスフィルタである。
この機能は、図３に示す構成で実現される。すなわち、フィルタ部１１５への入力信号は、ハイパスフィルタ（ＨＰＦ）１５１及びローパスフィルタ（ＬＰＦ）１５２を通して出力する。そして、この例では、ＨＰＦ１５１のカットオフ周波数は固定とし、フィルタ部１１５の透過周波数は、ＬＰＦ１５２のカットオフ周波数により実質的に設定するようにしている。なお、ＨＰＦ１５１のカットオフ周波数についても変更できるようにしてもよい。
【００２５】
図２の説明に戻ると、次の二値化部１１６は、制御回路１２２から第１Ｉ／Ｏ１２１を介して設定された閾値を用いてフィルタ部１１５の出力信号であるアナログ信号を二値化し、バーコード記号の情報を読み取るデコーダへ部１２０出力する。なお、ここで行う二値化は、初めはコードの背景（白）に当たる０の信号値でスタートし、閾値を超えるサイズのマイナスのピークが現れた場合に信号値を０から１に変化させ、閾値を超えるサイズのプラスのピークが現れた場合に信号値を１から０に変化させることにより、フィルタ部１１５の出力信号から二値の信号を生成するものである。
【００２６】
また、利得制御信号生成部１３０は、フィルタ部１１５の出力信号波形のピーク値を検出するピーク値検出器１３１と、基準レベルの電圧信号を出力する基準レべル設定器１３２と、比較器１３３とを備える。そして、比較器１３３が、ピーク値検出器１３１によって検出されるフィルタ部１１５の出力信号波形のピーク値と基準レべル設定器１３２から出力される基準レベルとを比較して、ＡＧＣアンプ１１４の利得を制御する利得制御信号を生成する。
【００２７】
光電変換部１１１のフォトダイオードは、バーコード記号から反射される反射光をはじめとする、受光光学系１０２を通して入射する光情報を電気信号に変換するが、バーコード記号までの距離によってその信号強度は大きく異なる。また、後述するようにレーザ光源を消灯させて外部光の検出を行う場合も、反射光の場合とは異なった信号強度となる。
しかし、利得制御信号生成部１３０によってＡＧＣアンプ１１４の利得をフィードバック制御することにより、光電変換部１１１からの出力信号のレベルによらず、ＡＧＣアンプ１１４の出力信号レベルを概ね一定に揃えることができる。
【００２８】
以上のバーコード読取装置１００において、特徴的な点は、ＬＥＤ照明のようなパルス発光する（明るさがバーコードの読み取り信号に近い周期で変動する）照明によるノイズを除去するための動作である。以下、この点について説明する。
照明がＬＥＤ照明の場合、メーカーによっても異なるが、点滅の周波数は概ね２０ＫＨｚから６０ＫＨｚ程度である。従って、フィルタ部１１５の透過周波数を調整してこの周波数帯の成分が透過しないようにすれば、読み取り信号からＬＥＤ照明によるノイズを除去できると考えられる。より具体的には、例えばＬＰＦ１５２のカットオフ周波数をＬＥＤ照明の点滅の周波数よりも小さい値とすればよい。
【００２９】
ただ、読み取り対象のバーコードが分解能が小さいものであったり、読み取り距離が遠かったりする場合、読み取り対象のバーコード記号から得られる反射光の光量変動による信号も、周波数の大きいものとなる。すなわち、反射光の光量変動による信号の周波数は、小さい場合には１ＫＨｚ程度であるが、大きい場合、１００ＫＨｚ程度となる。
【００３０】
従って、ＬＥＤ照明の影響を排除するために例えば１０ＫＨｚ以上の成分をカットしてしまうとすると、バーコード記号から得られる反射光の信号が含まれ得る帯域もカットしてしまうこととなる。そしてこのため、細かいバーコードの読み取りや、遠距離での読み取りに支障が出る恐れがある。
【００３１】
例えば分解能１．０ｍｍのバーコードは、周期的な外乱光がない場合、カットオフ周波数が８７．６ＫＨｚの場合は深度（読み取り距離）９００ｍｍ程度まで読み取り可能だが、カットオフ周波数を２１．９ＫＨｚとすると、深度４００ｍｍ程度までしか読み取りができない。
【００３２】
従って、照明の点滅によるノイズを排除できる範囲で、カットオフ周波数をできるだけ大きい値に設定することが、ＬＥＤ照明などの点滅する照明下で読み取りを行う場合に好ましいと言える。
そこで、バーコード読取装置１００においては、フィルタ部１１５の透過周波数、より具体的にはＬＰＦ１５２のカットオフ周波数を変化させながら、バーコードの読み取りが成功するまで読み取りを繰り返すようにしている。
【００３３】
なお、ここではＬＥＤ照明の場合を例に挙げて説明するが、例えばインバータ式の蛍光灯も、数十〜１００ＫＨｚ程度の周波数で点滅する。ＬＥＤ照明以外でも、このように明るさがバーコードの読み取り信号に近い周期で変動する照明の下で読み取りを行う場合、以下で説明する動作は同様に有効である。
以下、この動作を実現するための具体的な処理について説明する。
【００３４】
〔第１の処理例：図４乃至図６〕
図４に、読み取り開始指示を検出した場合に制御回路１２２のＣＰＵが実行する処理の第１の例のフローチャートを示す。
制御回路１２２のＣＰＵは、操作部１２６からの操作などにより、コード記号の読み取りを開始する指示があったことを検出すると、図４のフローチャートに示す処理を開始する。
【００３５】
そしてまず、制御回路１２２のＣＰＵは、選択されている読み取りモードに応じたパラメータをアナログ信号処理部１１０に設定する（Ｓ１１）。ここでいう読み取りモードは、操作部１２６の操作に応じて選択したり、以前の測定結果に基づいて選択したりして、図４の処理開始前に予め設定しておくものである。また、ここで設定するパラメータには、ＬＰＦ１５２のカットオフ周波数や、二値化部１１６における二値化時の閾値が挙げられる。
【００３６】
また、読み取りモードは、読み取りの感度に応じて複数用意する。高感度の読み取りを行うモードは、ＬＰＦ１５２のカットオフ周波数を大きい値に設定し、二値化時の閾値を小さくすることにより、深度の大きい読み取りができるようにしたモードである。ただ、細かいかすれや汚れに起因する信号も拾ってしまうため、かすれや汚れなどに弱い。
【００３７】
一方、低感度の読み取りを行うモードは、ＬＰＦ１５２のカットオフ周波数を小さい値に設定し、二値化時の閾値を大きくすることにより、細かいかすれや汚れの信号（例えば６５ＫＨｚ以上）を除去し、深度は少し小さいがかすれや汚れに強い読み取りができるようにしたモードである。
【００３８】
次に、制御回路１２２のＣＰＵは、保存されているカットオフ周波数の初期値を読み出してフィルタ部１１５に設定する（Ｓ１２）。この初期値は、前回読み取り時に後述のステップＳ１５で保存した値である。初回の読み取り時など何も保存されていない場合は、ステップＳ１１で設定した、読み取りモードに応じたカットオフ周波数をそのまま用いる。
【００３９】
次に、ここまでに設定したパラメータに従って処理された１走査分の読み取り信号を取得してデコードする（Ｓ１３）。そして、このデコードが成功したか否か判断し（Ｓ１４）、成功していれば、そのときに設定されている透過周波数の値を所定の記憶手段（例えばＲＡＭ１２３）に次の初期値として保存する（Ｓ１５）。
その後、デコード結果を外部装置へ出力して（Ｓ１６）、処理を終了する。
【００４０】
一方、ステップＳ１４でデコードが失敗の場合、リトライ回数が所定回数に達したか否か判断する（Ｓ１７）。ここで達していない場合は、そのままステップＳ１３に戻って処理を繰り返す。このリトライ回数は、同じ条件でリトライする回数である。
ステップＳ１７でリトライ回数が所定回数に達していれば、次に読み取りがタイムアウトしたか否か判断する（Ｓ１８）。タイムアウトであれば、ユーザにその旨を通知して（Ｓ１９）、処理を終了する。
ステップＳ１８でタイムアウトしていない場合、カットオフ周波数の次の候補をフィルタ部１１５に設定し（Ｓ２０）、ステップＳ１３に戻って処理を繰り返す。すなわち、カットオフ周波数のみ条件を変化させて、再度の読み取りを試みる。
【００４１】
ここで、図５及び図６を用いて、ステップＳ２０におけるカットオフ周波数の設定について説明する。図５は、設定するカットオフ周波数の候補の例を示す図、図６はその設定順を示す図である。
バーコート読取装置においては、カットオフ周波数の設定値の候補として、図５に示す６つの周波数を用意している。数値のレベルとしては、ＩＤ＝１が高感度読み取り用、ＩＤ＝２が通常読み取り用、ＩＤ＝３，４が低感度読み取り用、ＩＤ＝５，６がＬＥＤ照明のノイズ除去用である。
【００４２】
しかし、必ずしもＩＤ＝５や６の数値を用いなくてもＬＥＤ照明の点滅に起因するノイズを除去できる可能性もある。また、上述したように、カットオフ周波数として低い周波数を設定するほど、読み取り可能な分解能や深度が低下する。この点を考慮し、ここでは図６に示すようにカットオフ周波数を高い値から徐々に低い値へ変化させるようにしている。
【００４３】
初めの１回は、読み取りモードと対応するＩＤの値から開始して、読み取りが成功するまで、次のＩＤの、より小さいカットオフ周波数を設定する。そして、読み取りが成功すると、ステップＳ１５でそのときのカットオフ周波数を記憶し、次はその記憶したカットオフ周波数から読み取りを開始する。
そして、最後のＩＤ＝６まで設定しても読み取りが成功しない場合、読み取り可能分解能や深度が低すぎる可能性があるので、ＩＤ＝１に戻して読み取りを行う。
なお、初めに設定するカットオフ周波数を、読み取りモードによらず、ＩＤ＝１の最も高い周波数としてもよい。
【００４４】
以上により、照明の点滅に起因するノイズを除去してコード記号のデコードが可能な、なるべく大きいカットオフ周波数を設定することができる。この際、ユーザはカットオフ周波数の設定について意識する必要がない。従って、ＬＥＤ照明のような高周波数で点滅する照明の下でも、このような点滅のない照明の場合と同じ操作感でバーコードの読み取りを行うことができる。
【００４５】
また、読み取り成功時のカットオフ周波数の設定値を記憶しておき、次の読み取り時の初期値として用いることにより、読み取りのリトライ回数を低減し、読み取り開始からデコード結果出力までの時間を短縮することができる。バーコードを続けて読み取る場合、その間に環境が変化することは希であるから、前回と同じ読み取り条件であれば読み取りが成功する可能性が高いためである。
しかし、このようにすることは必須ではなく、毎回同じ初期値から設定を開始しても、リトライ回数が増えるだけで、それ以外は同様な効果が得られる。
【００４６】
〔第２の処理例：図７及び図８〕
図７に、読み取り開始指示を検出した場合に制御回路１２２のＣＰＵが実行する処理の第２の例のフローチャートを示す。
この処理は、図４の処理のステップＳ１２に代えて、カットオフ周波数設定処理（ＳＸ）を行うようにした点が、図４の処理と異なるのみである。図４と同じ処理を行うステップには、図４と同じステップ番号を付した。すなわち、第２の処理例は、カットオフ周波数の初期値の設定手法が第１の処理例と異なるのみである。
【００４７】
図８に、その初期値を設定するためのカットオフ周波数設定処理のフローチャートを示す。
この処理において、制御回路１２２のＣＰＵはまず、レーザ走査部１０１におけるレーザ光源を消灯する（Ｓ３１）。このとき、ビームを偏向させるミラー等は駆動したままでよい。
【００４８】
その後、外乱光測定用のパラメータをアナログ信号処理部１１０に設定する（Ｓ３２）。ここで設定するパラメータも、図４及び図７のステップＳ１１の場合と同様、ＬＰＦ１５２のカットオフ周波数や、二値化部１１６における二値化時の閾値が挙げられる。カットオフ周波数については、なるべく多くの周波数の信号を拾えるよう、最大の周波数を設定するとよい。
【００４９】
そして、その状態で設定したパラメータに従って処理された１走査分の読み取り信号（二値化部１１６による二値化処理後の信号）を取得する（Ｓ３３）。ここではレーザ光源は点灯させていないので、読み取り対象物の走査は行われず、光電変換部１１１のフォトダイオードに入射する光は外部の環境光のみである。従って、読み取り信号には、照明の強度変化が反映されたピークが現れると考えられる。
【００５０】
そこで、制御回路１２２のＣＰＵは、取得した読み取り信号に周期性があるか否か判断する（Ｓ３４）。この検出は、例えば読み取り信号が０の部分と１の部分の幅のサンプルを収集し、それらにバラツキが少ないことを確認する等により行うことができる。また、ここで検出する周期は、主にＬＥＤ照明のような高周波数の光量変動がある照明をターゲットとし、グロースターター式の蛍光灯のような１００Ｈｚ程度の低周波数の光量変動を除外できるように、例えば１０ＫＨｚ以上など、一定周波数以上に限ってもよい。
【００５１】
そして、ステップＳ３４で周期性が検出された場合、その周期から外乱光の周波数を算出する（Ｓ３５）。そして、その周波数をカット可能な、外乱光の周波数より小さいカットオフ周波数をフィルタ部１１５に設定する（Ｓ３６）。なお、この条件で複数の周波数が設定可能な場合、読み取り可能分解能及び深度を考慮し、それらの中で最も大きい周波数を設定するとよい。その後、レーザ走査部１０１のレーザ光源を点灯させて（Ｓ３７）、図７の処理に戻る。
【００５２】
また、ステップＳ３４で周期性が検出されない場合、所定回数リトライ済みか否か判断し（Ｓ３８）、リトライ済みでなければ、ステップＳ３３に戻って処理を繰り返す。リトライ済みであれば、保存されているカットオフ周波数の初期値を読み出してフィルタ部１１５に設定し（Ｓ３９）、レーザ走査部１０１のレーザ光源を点灯させて（Ｓ３７）、図７の処理に戻る。ステップＳ３９の処理は、図４のステップＳ１２と同じであり、外部光に周期性が見られない場合、カットオフ周波数を下げる必要は特にないため、前回読み取り成功時の条件を用いるようにしたものである。
【００５３】
以上の図８の処理によれば、外乱光に周期性がある場合にそれに起因するノイズをカット可能なカットオフ周波数を自動的に設定可能である。従って、初期値が保存されていない状態や、前回読み取り時と環境が大きく変わっている場合でも、最初から適切なカットオフ周波数が設定可能であり、読み取り開始からデコード結果出力までの時間を短縮することができる。もちろん、この自動設定による最初の設定値が適正でない場合、第１の処理例の場合と同様、カットオフ周波数を変化させて再度の読み取りを行うことも可能である。
【００５４】
なお、この第２の処理例を採用する場合も、前回の読み取り成功から短時間しか経過していない場合、環境が大きく変わっている可能性は低いことから、図８の処理は行わず、保存されているカットオフ周波数の初期値を読み出してフィルタ部１１５に設定するようにしてもよい。
【００５５】
以上の第１又は第２の処理例の処理によりカットオフ周波数を適切な値に設定してフィルタ部１１５によるフィルタ処理を行うことにより、図１０に示したような、バーコード記号のバーの並びを反映したピークを外乱光の光量変動のノイズが覆い隠してしまっている信号から、図１１に示すように、バーコード記号のバーの並びを反映したピークを含む信号を取り出すことができる。
【００５６】
図１０に示すのは、カットオフ周波数を８７．６ＫＨｚとして、ＬＥＤ照明の下で分解能１．０ｍｍのバーコード記号を深度１００ｍｍで読み取って得た信号を処理したフィルタ部１１５の出力信号の例である。
図１１に示すのは、カットオフ周波数を２１．９ＫＨｚとして、同条件で読み取りを行って得た信号を処理したフィルタ部１１５の出力信号の例である。
図１１の信号であれば、二値化部１１６により二値化することにより、デコード部１２０でのデコードが十分可能であると考えられる。
【００５７】
以上で実施形態の説明を終了するが、装置の構成や具体的な処理内容、各種モジュールの種類や配置、具体例として挙げた数値等が上述の実施形態で説明したものに限られないことはもちろんである。
例えば、アナログ信号処理部１１０におけるフィルタ部１１５より上流の任意の箇所の信号の波形を一旦保存し、後でその保存した波形を読み出して後段の処理を行うことができるようにしてもよい。この場合、図８の処理によるカットオフ周波数設定処理のために解析対象の信号と別の信号を用意する必要はなく、コード記号が存在しないと考えられる走査の端部付近の信号を、外乱光の周期検出に用いることができる。
【００５８】
また、この発明のプログラムは、コンピュータにコード記号読取装置を制御させて上述のようなフィルタの透過周波数を変化させながらの読み取りを実行させるためのプログラムとして構成することができる。このようなプログラムは、予めコンピュータのメモリに記憶させておく他、記録媒体であるＣＤ−ＲＯＭあるいはフレキシブルディスク，ＳＲＡＭ，ＥＥＰＲＯＭ，メモリカード等の不揮発性記録媒体（メモリ）に記録したり、ネットワークを介してダウンロードできるようにしたりして提供することもできる。そして、そのプログラムをインストールしてＣＰＵに実行させるか、ＣＰＵにメモリあるいはダウンロードサーバからこのプログラムを取得させて実行させることにより、上述した各機能を実現させることができる。
また、以上述べてきた構成及び変形例は、矛盾しない範囲で適宜組み合わせて適用することも可能である。
【産業上の利用可能性】
【００５９】
以上の説明から明らかなように、この発明のコード記号読取装置、コード記号読取方法及びプログラムによれば、ＬＥＤ照明のようなパルス発光する照明の下でも、安価かつ精度よくコード記号を読み取れるようにすることができる。
従って、この発明を適用することにより、より広範な環境で安定的な読み取りが可能なコード記号読取装置を提供することができる。
【符号の説明】
【００６０】
１００…バーコード読取装置、１０１…レーザ走査部、１０２…受光光学系、１１０…アナログ信号処理部、１１１…光電変換部、１１２…Ｉ／Ｖ変換部、１１３…プリアンプ、１１４…ＡＧＣアンプ、１１５…フィルタ部、１１６…二値化部、１２０…デコーダ部、１２１…第１Ｉ／Ｏ、１２２…制御回路、１２３…ＲＡＭ、１２４…不揮発メモリ、１２５…第２Ｉ／Ｏ、１２６…操作部、１３０…利得制御信号生成部、１３１…ピーク値検出器、１３２…基準レベル設定器、１３３…比較器、１５１…ＨＰＦ、１５２…ＬＰＦ
【図１】
2014021574.tif 000003
【図２】
2014021574.tif 000004
【図３】
2014021574.tif 000005
【図４】
2014021574.tif 000006
【図５】
2014021574.tif 000007
【図６】
2014021574.tif 000008
【図７】
2014021574.tif 000009
【図８】
2014021574.tif 000010
【図９】
2014021574.tif 000011
【図１０】
2014021574.tif 000012
【図１１】
2014021574.tif 000013