(57)【要約】【課題】  手ぶれ補正の機能を備えたものにあって、そのための構成を簡単で且つ小形に済ませることができ、しかも情報コードの読取りに要する時間を短く済ませる。【解決手段】  制御回路は、受光センサ等を備える読取機構により、二次元コードが記録された読取対象の画像を取込み、手ぶれが生じていると推測される場合に、手ぶれの補正をソフトウエア的に行う。手ぶれ補正を行うにあたっては、受光センサの視野の中心部の垂直（縦）方向及び水平（横）方向の１ラインずつ各５０画素程度の予備補正領域を設定し、予備補正領域の各画素における明暗値を、補正量（ぶれた画素数）ｎに応じて補正する。補正後の画像データ（補正値）に対する画像処理を行なうことにより、補正（補正量）が適正であるかを判定し、適正であると判定したときに該当する補正量ｎを適用して画像データ全体に対する補正を行い、デコード処理を行なう。補正量ｎが適正でないと判定した場合には、補正量ｎを１ずつ増やしながら予備補正を繰返す。【選択図】  図１
2005196543.tif 000002
【特許請求の範囲】
【請求項１】
多数個の画素を一次元または二次元に配列して構成された受光センサを備え、その受光センサにより情報コードの画像を取込むようにした光学情報読取装置であって、
前記受光センサにより取込まれた画像データを記憶する画像メモリと、
前記画像データの領域の一部に予備補正領域を設定し、その予備補正領域の画像データに対して少なくとも１種類の補正量を適用して手ぶれに関する補正を行う予備補正手段と、
この予備補正手段における補正が適正であるかどうかを評価する判定手段と、
この判定手段により補正が適正であると判定されたときに該当する補正量を適用して前記画像データ全体に対する補正を行う画像補正手段と、
この画像補正手段により補正された画像データを対象としてデコード処理を行なうデコード手段とを具備することを特徴とする光学情報読取装置。
【請求項２】
前記補正量は、手ぶれによりぶれた画素数ｎを表すものであり、前記予備補正手段は、画像データの各画素における画像の明暗を表す数値を、前記補正量に応じて補正することを特徴とする請求項１記載の光学情報読取装置。
【請求項３】
前記予備補正手段及び画像補正手段は、前記受光センサにおける、水平方向または垂直方向にＮ個並んだ画素の明暗値をＤ（ｘ）とし、前記補正量を画素数ｎとしたときに、次の式で求められるＤ´（ｘ）を補正値とすることを特徴とする請求項２記載の光学情報読取装置。
【数１】
2005196543.tif 000007
【請求項４】
前記予備補正領域は、前記受光センサの視野の中央部分に設定されることを特徴とする請求項１ないし３のいずれかに記載の光学情報読取装置。
【請求項５】
前記受光センサは、垂直方向及び水平方向に画素を配列したエリアセンサであり、前記予備補正領域は、中央部分の垂直方向及び水平方向の１ラインずつ各数十画素程度に設定されることを特徴とする請求項４載の光学情報読取装置。
【請求項６】
前記予備補正手段は、予備補正領域の画像データに対して１種類の補正量を適用して手ぶれに関する補正を行い、前記判定手段がその補正が適正でないと判断した場合に、補正量を他の種類の補正量に変えて補正を行うことを特徴とする請求項１ないし５のいずれかに記載の光学情報読取装置。
【請求項７】
前記判定手段は、前記予備補正手段による補正の適否を数値で評価するようになっており、その際の補正量と評価値とが補正値データメモリに記憶されることを特徴とする請求項６記載の光学情報読取装置。
【請求項８】
前記予備補正手段による補正が繰返される際には、前記補正値データメモリ内のデータが、評価値がより高いものに書換えられていくことを特徴とする請求項７記載の光学情報読取装置。
【請求項９】
前記予備補正手段による補正が、全ての種類の補正量を適用して実施済みの場合に、前記画像補正手段による補正は、評価値が最も高い補正量を適用して実施されることを特徴とする請求項７又は８記載の光学情報読取装置。
【請求項１０】
前記予備補正手段により全ての種類の補正量を適用して補正を実施したにも拘わらず、前記判定手段により適切な補正と判断されなかった場合には、その旨を報知する報知手段を備えることを特徴とする請求項６ないし９のいずれかに記載の光学情報読取装置。
【請求項１１】
前記予備補正手段は、前記補正量として１画素のぶれがあると想定して補正を行い、以下、ぶれ量が決まるかあるいは補正量の上限に至るまで、画素数ｎを１ずつ増やしながら補正を行うことを特徴とする請求項２ないし５のいずれかに記載の光学情報読取装置。
【請求項１２】
前記判定手段は、各補正量で補正した補正値の高周波成分の数を夫々算出し、該補正量とその高周波成分の数との関数において、極小値が現れる補正量を、ぶれ量と判断することを特徴とする請求項１１記載の光学情報読取装置。
【請求項１３】
前記補正値の高周波成分の数は、次の式で算出されることを特徴とする請求項１２記載の光学情報読取装置。
【数２】
2005196543.tif 000008
【請求項１４】
前記補正値の高周波成分の数は、二次微分により算出されることを特徴とする請求項１２記載の光学情報読取装置。
【請求項１５】
前記画像メモリに記憶された画像データに対するデコード処理を実行し、デコード処理に失敗したことを条件に、前記予備補正手段による補正の処理が実行されることを特徴とする請求項１ないし１４のいずれかに記載の光学情報読取装置。
【請求項１６】
前記情報コードの画像取込み時の手ぶれを検出するための手ぶれ検出センサを備え、その手ぶれ検出センサの検出出力が所定値を越えたことを条件に、前記予備補正手段による補正の処理が実行されることを特徴とする請求項１ないし１４のいずれかに記載の光学情報読取装置。
【請求項１７】
前記手ぶれ検出センサの検出出力から前記補正量を推定する補正量推定手段を備え、前記予備補正手段は、その補正量推定手段の推定された補正量に近い補正量を適用して補正を行うことを特徴とする請求項１６記載の光学情報読取装置。
【請求項１８】
前記手ぶれ検出センサは、前記受光センサの受光面に沿って直交する２方向に生じたぶれを、実質的に該受光センサの位置にて検出するように構成されていることを特徴とする請求項１６又は１７記載の光学情報読取装置。
【請求項１９】
前記手ぶれ検出センサは、ジャイロセンサ又は加速度センサであることを特徴とする請求項１６ないし１８のいずれかに記載の光学情報読取装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、バーコード、二次元コードなどの情報コードを読取る光学情報読取装置に関する。
【背景技術】
【０００２】
バーコードや二次元コード等の例えば紙や商品に印刷された白黒の情報コードを読取るためのハンディタイプの光学情報読取装置においては、近年、使い勝手の良さから、読取対象（例えばバーコード）から離れた位置から読取りができるものが供されてきている。このものは、例えば、手持ち可能に構成された本体ケース内に、ＣＣＤエリアセンサなどの受光センサ、結像レンズを有する結像光学部、ＬＥＤなどの照明装置等を備えて構成される。そして、ユーザが、本体ケースの先端部の読取口を読取対象に向けた状態で、トリガキーを操作すると、照明装置により読取対象（情報コード）に対して照明光が照射され、その反射光が読取口から入射され、結像光学部を介して受光センサにより撮像されるようになっている。
【０００３】
ところで、この種ハンディタイプの光学情報読取装置は、本体ケースを手で持って操作する関係上、手ぶれが発生する問題があり、特に遠くの読取対象（情報コード）を読取るような場合、手ぶれの影響で良好な読取りができなくなる虞がある。そこで、従来より、例えばデジタルカメラなどの撮像装置においては、手ぶれの影響を軽減するために、手ぶれ補正機能を設けることが行われており、そのような手ぶれ補正機能を光学情報読取装置にも適用することが考えられる。
【０００４】
第１の従来例として、２個の角速度センサによりカメラのぶれ角度を検出し、それに応じて、手ぶれ補正用のレンズ群を、電磁アクチュエータにより水平及び垂直の２方向に動かすようにした構成のものが考えられている（例えば特許文献１参照）。また、第２の従来例として、連続的に複数（２枚）の画像を取込み、それらから各画面の特徴点を抽出し、特徴点の回転及び平行移動を検出して手ぶれベクトルを推定し、その手ぶれベクトルに応じて手ぶれの補正を施すものが考えられている（例えば特許文献２参照）。
【特許文献１】特開２００３−５７７０７号公報
【特許文献２】特開２０００−２９８３００号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
しかしながら、上記第１の従来例においては、手ぶれ補正用のレンズ群をメカ的に動かすものであるため、その機構や制御が複雑となってコストアップを招いてしまうと共に、構造が大形となる不具合があった。また、上記第２の従来例においては、メカ式ではなく、ソフトウエア的に手ぶれ補正を行うものであるが、複数の画像を取込んで特徴点の抽出を行うため、画像の取込みに比較的時間がかかり、光学情報読取装置に適用した場合に読取速度が遅くなる欠点がある。ちなみに、この第２の従来例においては、画像取込み開始から手ぶれ補正が完了するまでに例えば１秒程度を要するものとなっていた。
【０００６】
本発明は上記事情に鑑みてなされたもので、その目的は、手ぶれ補正の機能を備えたものにあって、そのための構成を簡単で且つ小形に済ませることができ、しかも情報コードの読取りに要する時間を短く済ませることができる光学情報読取装置を提供するにある。
【課題を解決するための手段】
【０００７】
上記目的を達成するために、本発明者等は、黒のバーと白のスペースとを横方向に並べて構成されるバーコードや、黒と白の升目を縦横にマトリクス状に配して構成される二次元コード等の白黒の情報コードは、その画像自体（画像の一部）が、画像処理（手ぶれ補正）を行なう際の特徴点となることに着目した。そして、手ぶれが予想される場合に、画像データ中のごく一部の領域であっても情報コードの画像が存在する領域であれば、その一部の領域に対する手ぶれに関するソフトウエア的な補正を試みることによって、その補正の適否を判定でき、ひいては、その補正量を全体の画像データに適用することによって適切な補正を行うことができることを確認し、本発明を成し遂げたのである。
【０００８】
即ち、本発明の光学情報読取装置は、受光センサにより取込まれ画像メモリに記憶された情報コードの画像データの領域の一部に予備補正領域を設定しその予備補正領域の画像データに対して少なくとも１種類の補正量を適用して手ぶれに関する補正を行う予備補正手段を設け、この予備補正手段における補正が適正であるかどうかを判定手段により評価し、判定手段により補正が適正であると判定されたときに画像補正手段により該当する補正量を適用して画像データ全体に対する補正を行い、画像補正手段により補正された画像データを対象としてデコード手段によりデコード処理を行なうように構成したところに特徴を有する（請求項１の発明）。
【０００９】
これによれば、受光センサにより取込んだ画像データの一部の予備補正領域に対して手ぶれに関する補正を行うことにより補正の適否を判断し、補正量を決定することができ、その補正量を用いて画像データ全体の手ぶれ補正を行ってデコード処理を行なうことができる。この場合、１画面分の画像データを取込むだけで済んで撮影に要する時間が短く済み、これと共に、一部の予備補正領域に対する手ぶれの補正を試みるだけで適切な全体の補正量を決定することができるので、補正量の決定に要する時間も短く済ませることができる。従って、手ぶれ補正に要する時間を短く済まし得て、読取速度を高めることが可能となる。また、ソフトウエア的に補正を行うものであるから、メカ式のものに比べて、構成を簡単で且つ小形に済ませることができる。
【００１０】
このとき、一般に、情報コードの画像データは、一次元又は二次元に配列された各画素における明暗（濃淡）を表す数値（デジタル値）として得られるのであるが、手ぶれが生じている場合には、ある画素において、正しい（手ぶれのない場合の）画像データに対して、ぶれ方向及びぶれ量に応じて、その画素に連続する複数画素分の明暗値を平均した如き（中間的な）明暗値が得られることになる。そこで、上記補正量を手ぶれによりぶれた画素数ｎを表すものとし、予備補正手段（及び画像補正手段）を、画像データの各画素における画像の明暗を表す数値を、その補正量に応じて補正するように構成することができる（請求項２の発明）。
【００１１】
より具体的には、上記予備補正手段及び画像補正手段を、受光センサにおける、水平方向または垂直方向にＮ個並んだ画素の明暗値をＤ（ｘ）とし、補正量を画素数ｎとしたときに、次の式で求められるＤ´（ｘ）を補正値とすることができる（請求項３の発明）。
【数３】
2005196543.tif 000003
これにより、補正量（画素数ｎ）を手ぶれ量に応じた適切なものとすることによって、画像データの各画素の明暗値を、正しい（手ぶれのない場合の）画像データの明暗値に補正することができる。
【００１２】
ところで、この種の光学情報読取装置にあっては、一般に、情報コードを受光センサの視野の中央部分に入れるようにして読取ることが行われるので、前記予備補正領域を、受光センサの視野の中央部分に設定することが望ましく（請求項４の発明）、これにより、予備補正領域を、情報コードの画像の一部が含まれていて補正量を検出するに適した位置に設定することができる。
【００１３】
受光センサが垂直方向及び水平方向に画素を配列したエリアセンサの場合には、予備補正領域を、中央部分の垂直方向及び水平方向の１ラインずつ各数十画素程度に設定することができる（請求項５の発明）。これにより、情報コードの画像の一部が含まれる適切な位置に予備補正領域を設定することができ、縦方向及び横方向の双方に関して適切な補正量を求めることができ、短時間で手ぶれ補正を行うことができる。このとき、本発明者らの研究によれば、垂直方向及び水平方向の１ラインずつ各数十画素程度に対して予備補正を行うことによって、全体に関する適切な補正量を決定するに十分であることが明らかとなった。ちなみに、約３３万画素のＣＣＤエリアセンサの場合でも、垂直方向及び水平方向の１ラインずつ各５０画素程度に対して処理を行なうことにより、補正量を決定するに十分であった。
【００１４】
適切な補正量を見つけ出すための一つの手法として、予備補正手段により、予備補正領域の画像データに対して１種類の補正量を適用して手ぶれに関する補正を行い、判定手段がその補正が適正でないと判断した場合に、補正量を他の種類の補正量に変えて補正を行うようにすることができる（請求項６の発明）。これによれば、適正な補正量でない場合には、予備補正手段による予備補正領域の画像データに対する補正が補正量を変えながら繰返されることにより、遂には適正な補正量を得ることができる。
【００１５】
このような構成の場合には、判定手段を、予備補正手段による補正の適否を数値で評価するように構成すると共に、その際の補正量と評価値とが補正値データメモリに記憶されるようにすることができる（請求項７の発明）。このとき、予備補正手段による補正が繰返される際には、その補正値データメモリ内のデータを、評価値がより高いものに書換えていく構成とすることができる（請求項８の発明）。さらに、予備補正手段による補正が、全ての種類の補正量を適用して実施済みの場合に、画像補正手段による補正を、評価値が最も高い補正量を適用して実施するように構成しても良い（請求項９の発明）。
【００１６】
また、予備補正手段により全ての種類の補正量を適用して補正を実施したにも拘わらず、判定手段により適切な補正と判断されなかった場合には、報知手段によりその旨を報知するように構成することもできる（請求項１０の発明）。これにより、例えば手ぶれ量が大き過ぎる等の要因により、補正により正しい（手ぶれのない場合の）画像データに戻すことが不可能である場合には、使用者にその旨を報知して、再度の画像取込みの実行等を促すことができる。
【００１７】
適切な補正量を見つけ出すための別の手法として、予備補正手段は、補正量として１画素のぶれがあると想定して補正を行い、以下、ぶれ量が決まるかあるいは補正量の上限に至るまで、画素数ｎを１ずつ増やしながら補正を行うように構成することもできる（請求項１１の発明）。この場合、判定手段を、各補正量で補正した補正値の高周波成分の数を夫々算出し、該補正量とその高周波成分の数との関数において、極小値が現れる補正量を、ぶれ量と判断するように構成することができる（請求項１２の発明）。
【００１８】
また、その際の補正値の高周波成分の数を、次の式で算出することができる（請求項１３の発明）。
【数４】
2005196543.tif 000004
あるいは、補正値の高周波成分の数を、二次微分により算出することも可能である（請求項１４の発明）。
【００１９】
そして、上記したような予備補正手段による補正の処理は、手ぶれが生じていると予測される場合にのみ行えばよいので、画像メモリに記憶された画像データに対するデコード処理を実行し、デコード処理に失敗したことを条件に、予備補正手段による補正の処理を実行させるように構成することができる（請求項１５の発明）。これにより、必要に応じて手ぶれ補正の処理を行うことができる。
【００２０】
あるいは、情報コードの画像取込み時の手ぶれを検出するための手ぶれ検出センサを設け、その手ぶれ検出センサの検出出力が所定値を越えたことを条件に、予備補正手段による補正の処理を実行させるように構成することができ（請求項１６の発明）、同様に、必要に応じて手ぶれ補正の処理を行うことができる。この場合、手ぶれ検出センサの検出出力から手ぶれ量の大きさに応じたものとなるため、補正量推定手段により手ぶれ検出センサの検出出力から補正量を推定し、予備補正手段を、その補正量推定手段の推定された補正量に近い補正量を適用して補正を行うように構成することができる（請求項１７の発明）。これによれば、予備補正手段は、最初から、実際の手ぶれ量に近い補正量を適用して補正を行うので、適正な補正量を求める処理を効率的に行うことができる。
【００２１】
また、このように手ぶれ検出センサを備える構成においては、手ぶれ検出センサを、受光センサの受光面に沿って直交する２方向に生じたぶれを、実質的に該受光センサの位置にて検出するように設けることができ（請求項１８の発明）、これにより、受光センサ部分における実際の手ぶれを、十分な確かさで検出することが可能となる。このとき、手ぶれ検出センサとしては、ジャイロセンサや加速度センサを採用することができる（請求項１９の発明）。
【発明を実施するための最良の形態】
【００２２】
（１）第１の実施例
以下、本発明を手持ち式（ガンタイプ）の二次元コード読取装置に適用した第１の実施例（請求項１、２、３、４、５、６、１０、１５に対応）について、図１ないし図６を参照しながら説明する。
まず、図５及び図６を参照して、本実施例に係る光学情報読取装置たる二次元コード読取装置の全体構成について述べる。図５に示すように、二次元コード読取装置の本体ケース１は、丸みを帯びた薄型のほぼ矩形箱状をなす主部１ａの下面側後部寄りに、ユーザが片手で把持して操作することが可能なグリップ部１ｂを一体的に有して構成されている。前記本体ケース１（主部１ａ）の先端面部には、矩形状をなし透光性を有する読取口１ｃが設けられている。また、前記グリップ部１ｂの上端部には、読取指示用のトリガスイッチ２が設けられている。
【００２３】
前記本体ケース１（主部１ａ）内の先端側部分には、商品に付されたラベルやカタログ等の読取対象Ｒ（図６参照）に記録された情報コードたる例えばＱＲコード等の二次元コードを読取るための読取機構６が設けられる。図６にも示すように、この読取機構６は、受光センサ３、結像光学系を構成する結像レンズ４、照明部５（図５では図示省略）などから構成されている。そのうち受光センサ３は、例えば、多数個の画素（例えば約３３万画素）を二次元（縦横）に配列して構成されたＣＣＤエリアセンサからなり、本体ケース１（主部１ａ）内の中央部に前記読取口１ｃを向いて配設されている。
【００２４】
また、詳しい図示及び説明は省略するが、前記結像レンズ４は、鏡筒内に複数枚のレンズを配設して構成され、前記受光センサ３の前方に配設されている。前記照明部５は、詳しく図示はしないが、照明光源となるＬＥＤと、このＬＥＤの前部に配置され光を集光及び拡散する照明用レンズとを、前記結像レンズ４の周囲部に、前記読取口１ｃに向けて複数組配設して構成されている。これにて、照明部５によって読取口１ｃを通して読取対象Ｒに記された二次元コードに照明光が照射され、二次元コードからの反射光が読取口１ｃを通して入射され、前記結像レンズ４を介して受光センサ３上に結像され、以て、二次元コードの画像が取込まれる（撮影される）ようになっているのである。
【００２５】
そして、図５に示すように、本体ケース１（主部１ａ）内の後部側には、図６に示す各回路等が実装されている回路基板９が設けられている。さらに、図６に示すように、本体ケース１の外面部（主部１ａの上面部）には、ユーザが各種入力指示を行うための操作スイッチ１０、報知用のＬＥＤ１１、液晶表示器１２などが設けられている。本体ケース１内には報知用のブザー１３や外部との通信を行うための通信インタフェイス１４、駆動電源となる二次電池１５なども設けられている。
【００２６】
図６は、本実施例の二次元コード読取装置の電気的構成を概略的に示しており、前記回路基板９には、マイコンを主体として構成され、全体の制御やデコード処理等を行う制御回路１６が設けられている。この制御回路１６には、前記トリガスイッチ２及び操作スイッチ１０からの信号が入力されるようになっていると共に、制御回路１６は、前記受光センサ３及び照明部５を制御するようになっており、以て、読取対象Ｒに記された二次元コードＱの画像の取込み動作を実行するようになっている。また、この制御回路１６は、前記ＬＥＤ１１、ブザー１３、液晶表示器１２を制御し、通信インタフェイス１４を介して外部（管理コンピュータ等）とのデータ通信を実行する。さらに、前記回路基板９には、増幅回路１７、Ａ／Ｄ変換回路１８、メモリ１９、特定比検出回路２０、同期信号発生回路２１、アドレス発生回路２２などが実装され、これらも前記制御回路１６により制御されるようになっている。
【００２７】
これにて、受光センサ３による撮像信号が、増幅回路１７にて増幅され、Ａ／Ｄ変換回路１８にてデジタル信号（例えば８ビットで表現される０〜２５５までの２５６階調の明暗値）に変換されて画像データとしてメモリ１９に記憶される。このメモリ１９には、受光センサ３により取込まれた画像データが記憶される第１の画像メモ１９ａ、及び、後述する手ぶれ補正が施された画像データが記憶される第２の画像メモリ１９ｂが含まれている。またこのとき、特定比検出回路２０にて画像データ中の特定パターンが検出されるようになっている。前記受光センサ３及び特定比検出回路２０、アドレス発生回路２２には、同期信号発生回路２１から同期信号が与えられるようになっている。
【００２８】
さて、後の作用説明でも述べるように、本実施例では、前記制御回路１６は、主としてそのソフトウエア的構成（手ぶれ補正プログラムの実行）により、前記二次元コードの画像取込み時に、手ぶれが生じていると推測される場合に、前記画像データに対して手ぶれに関する補正をソフトウエア的に行う手ぶれ補正機能を実現するようになっている。この場合、本実施例では、まず、第１の画像メモリ１９ａに記憶された画像データに対するデコード処理を実行し、デコード処理に失敗したときに、手ぶれが生じていたと判断して、手ぶれ補正の処理を実行するようになっている。
【００２９】
この手ぶれ補正機能を実現するにあたっては、制御回路１６は、受光センサ３により取込まれ第１の画像メモリ１９ａに記憶された二次元コードの画像データの領域の一部に予備補正領域を設定しその予備補正領域の画像データに対して１種類ずつの補正量を適用して手ぶれに関する補正を行い、この予備補正が適正であるかどうかを評価（判定）し、補正が適正であると判定したときに該当する補正量を適用して画像データ全体に対する補正を行って補正後の画像データを前記第２の画像メモリ１９ｂに格納し、その第２の画像メモリ１９ｂの画像データを対象として二値化処理した後、デコード処理を行なうようになっている。従って、制御回路１６が、本発明にいう予備補正手段、判定手段、画像補正手段、デコード手段として機能するようになっている。
【００３０】
より具体的には、前記予備補正領域は、受光センサ３の視野Ｆの中央部分に設定されるようになっており、この場合、本実施例では、図２に示すように、予備補正領域Ａは、受光センサ３の視野Ｆの中心部の垂直（縦）方向及び水平（横）方向の１ラインずつ各数十画素程度（各５０画素）に設定されるようになっている。予備補正は、垂直（縦）方向のライン、及び水平（横）方向のラインの夫々に関して行われるようになっている。
【００３１】
そして、本実施例では、制御回路１６は、予備補正を行うにあたっては、上記補正量を手ぶれによりぶれた画素数ｎを表すものとし、予備補正領域Ａの各ラインを構成する各画素における明暗値を、その補正量（画素数ｎ）に応じて補正するようになっている。より具体的には、水平方向または垂直方向にＮ個（５０個）並んだ各画素の明暗値をＤ（ｘ）とし、補正量を画素数ｎとしたときに、次の式（１）で求められるＤ´（ｘ）を補正値とするようになっている。
【数５】
2005196543.tif 000005
【００３２】
また、本実施例では、予備補正が適正であるかどうかの判定は、補正後の画像データ（補正値）を用いて画像処理を行ないデコードの可否を判断することに基づいて行われるようになっている。もし、デコード処理が良好に行えれば、補正（補正量）が適正であると判定される。これに対し、デコード処理が良好に行えなかった場合には、補正（補正量）が不適であると判定され、この場合には、前記補正量（画素数ｎ）が変更（１ずつ増やしていく）されて再度予備補正が行われるようになっている。さらに本実施例では、全ての種類の補正量（上限値ｋまで）を適用して補正を実施したにも拘わらず、補正が適正であると判断されなかった場合には、前記ブザー１３の鳴動及び液晶表示器１２の表示により、その旨を報知するようになっている。従って、ブザー１３及び液晶表示器１２等から本発明にいう報知手段が構成されるようになっている。
【００３３】
次に、上記構成の作用について、図１〜図４も参照して述べる。上記構成の二次元コード読取装置においては、ユーザが読取対象Ｒに記された二次元コードを読取らせるにあたっては、本体ケース１を読取対象Ｒから適当な（任意の）距離だけ離し、且つ、読取口１ｃをその読取対象Ｒに向け、二次元コードが視野Ｆの極力中心に配置されるような位置合せ状態とし、トリガスイッチ２をオン操作するようにする。この場合、ユーザが本体ケース１を手で持って操作して離れた読取対象Ｒの二次元コードの画像を取込む関係上、手ぶれが生ずる虞があり、手ぶれが生じていると、受光センサ３により取込まれた画像データが手ぶれの影響を受けることになる。
【００３４】
ここで、手ぶれが発生した際に、画像データの各画素における明暗値がどのように劣化するかを、図４を参照しながら説明する。この図４は、水平（横）方向の１つのラインに１５個並んだ画素（左から順にＰ１〜Ｐ１５）に関して、横方向に手ぶれが生じた場合の、手ぶれ量と、各画素の明暗値との関係を示しており、（ａ）は正しい（手ぶれのない）画像、（ｂ）は１画素分の手ぶれが生じた場合、（ｃ）は２画素分の手ぶれが生じた場合、（ｄ）は３画素分の手ぶれが生じた場合を夫々示している。尚、ここでは、説明の簡単化のために、（ａ）に示すように、黒の部分の明暗値を０とし、白の部分の明暗値を１０としている。
【００３５】
今、横方向に１画素ぶれている場合には、（ｂ）に示すように、各画素において隣（右隣）の１画素分の影響を受けて、その２画素分を平均した如き明暗値となる。例えば、５番目の画素Ｐ５においては、画素Ｐ６の影響により、（０＋１０）／２で明暗値が５となる。同様に、８番目の画素Ｐ８においても、画素Ｐ９の影響により、（１０＋０）／２で明暗値が５となる。
【００３６】
２画素ぶれている場合には、（ｃ）に示すように、各画素においてその右側の２画素分の影響を受けて、それら３画素分を平均した如き明暗値となる。例えば、５番目の画素Ｐ５においては、画素Ｐ６、Ｐ７の影響により、（１０＋０＋０）／３で明暗値が３．３となる。３画素ぶれている場合には、（ｄ）に示すように、各画素においてその右側の３画素分の影響を受けて、それら４画素分を平均した如き明暗値となる。例えば、５番目の画素Ｐ５においては、画素Ｐ６、Ｐ７、Ｐ８影響により、（１０＋０＋０＋０）／４で明暗値が２．５となる。
【００３７】
従って、このような手ぶれを含む画像データを、正しい画像データに補正するには、手ぶれ量を表す補正値（画素数ｎ）を求めた上で、上記平均値を求めるものと逆の計算をすれば良い。このことから、補正値Ｄ´（ｘ）を求めるのに、上記（１）式が有効であることが理解できる。尚、上記（１）式における但し書きは、計算の際の画素がなくなる場合（図４の例では右端部に位置する画素Ｐ１５の更に右側）に、更に、白レベルの画素（図４の場合補正値（補正後の明暗値）が１０）あるいは黒レベルの画素（補正値が０）が計算に必要な数だけ存在すると仮定するものである。
【００３８】
さて、図１のフローチャートは、トリガスイッチ２がオン操作されたときに、制御回路１６が実行する二次元コードの読取りの処理手順を示している。まずステップＳ１にて、受光センサ３による画像取込み動作（露光）が実行される。このときには、照明部５により照明光がオンされ、読取対象Ｒに照明光が照射されその反射光（二次元コードの撮影画像）が受光センサ３に取込まれることになる。取込まれたデジタル画像データは、第１の画像メモリ１９ａに記憶される。
【００３９】
次のステップＳ２では、第１の画像メモリ１９ａに記憶された画像データに対するデコード処理が実行される。そして、デコードが行えた場合には（ステップＳ３にてＹｅｓ）、そのまま処理を終了する。これに対し、デコードに失敗した場合には（ステップＳ３にてＮｏ）、以下、手ぶれに関する予備補正の処理が実行される。即ち、ステップＳ４では、まず画像データの領域の一部に予備補正領域Ａが設定される。この場合、上述（図２参照）したように予備補正領域Ａは、受光センサ３の視野Ｆの中心部の垂直（縦）方向及び水平（横）方向の１ラインずつ各５０画素程度に設定されるようになっている。ステップＳ５では、補正量（手ぶれの画素数）ｎが１とされる。
【００４０】
ステップＳ６では、補正量ｎの値が上限値Ｋを超えたかどうかが判断され、Ｋ以下であった場合には（ステップＳ６にてＮｏ）、次のステップＳ７にて、予備補正領域Ａを構成する１ラインの画素に対する、ｎ画素分の手ぶれ補正の処理が行われる。この補正の処理は、予備補正領域Ａの１ラインの各画素の明暗値Ｄ（ｘ）を、上記（１）式により補正する（補正値Ｄ´（ｘ）を求める）ことにより行われる。
【００４１】
そして、ステップＳ８では、予備補正領域Ａの１ラインにおける補正後の画像データ（補正値Ｄ´（ｘ））を用いた画像処理が実行され、ステップＳ９では、そのデータを用い
たデコードが成功したかどうか、つまり補正量ｎが適正であるかどうかが判定される。デコードに失敗した場合には（ステップＳ９にてＮｏ）、ステップＳ１０にて、補正量ｎの値が１だけインクリメントされ、ステップＳ６からの処理が繰返される。これに対し、デコードが成功した場合には（ステップＳ９にてＹｅｓ）、その際の補正量ｎが適正であると判定される。
【００４２】
図３は、仮に４画素分（ｎ＝４）の手ぶれがあったときに、ｎを１〜６まで代えて補正を行った場合に、補正値Ｄ´（ｘ）がどのようになるかの具体例を示したものである。（
ａ）は正しい（手ぶれのない）画像、（ｂ）〜（ｇ）は順に１〜６画素分の手ぶれ補正を行った場合を示している。この場合、手ぶれと同時に画像がその画素分だけ図で右側にずれているものとしている。尚、ここでも、説明の簡単化のために、黒の部分の明暗値を０とし、白の部分の明暗値を１０としている。また、図の領域の左右両側には黒レベルの画素（補正値が０）が存在すると仮定している。この図３からも明らかなように、４画素分の手ぶれがあった場合には、補正量ｎを４として補正を行うことにより、正しい画像データに戻すことができ、それ以外の補正量では、正しい画像データが得られないことが理解できる。
【００４３】
詳しく図示はされていないが、上記補正量ｎを求める処理（ステップＳ５〜Ｓ１０）は、垂直（縦）方向及び水平（横）方向のラインに関してそれぞれ実行され、縦方向の補正量と横方向の補正量とが求められるようになっている。ステップＳ１１では、適正と判定された補正量ｎを用いた全体の画像データに対する補正が実行され、補正後の画像データが第２の画像メモリ１９ｂに記憶される。ステップＳ１２では、その補正後の画像データに対するデコード処理が実行され処理が終了する。また、上記処理において、補正量ｎの値が上限値Ｋまでいったにもかかわらず適正な補正量が得られなかった場合には（ステップＳ６にてＹｅｓ）、ステップＳ１３にてＮＧの報知がなされて処理が終了する。
【００４４】
このように本実施例によれば、受光センサ３により取込んだ画像データの一部の予備補正領域Ａに対して手ぶれに関する補正を行うことにより補正の適否を判断し、補正量ｎを決定することができ、その補正量ｎを用いて画像データ全体の手ぶれ補正を行ってデコード処理を行なうことができる。この場合、上記した第１の従来例のような手ぶれ補正用のレンズ群を移動させて手ぶれ補正を行うメカ式のものと異なり、ソフトウエア的に補正を行うものであるから、構成が複雑化することなく安価に済ませ得ると共に、大形化を防止して小形で済ませることができることは勿論である。
【００４５】
そして、上記した第２の従来例のような、複数画像を取込んで特徴点の抽出及び手ぶれベクトルの推定を行うものと異なり、１画面分の画像データを取込むだけで済んで撮影に要する時間が短く済み、これと共に、一部の予備補正領域Ａに対する手ぶれの補正を試みるだけで適切な全体の補正量ｎを決定することができるので、補正量ｎの決定に要する時間も短く済ませることができる。
【００４６】
この結果、本実施例によれば、手ぶれ補正の機能を備えたものにあって、そのための構成を簡単で且つ小形に済ませることができ、しかも二次元コードの読取りに要する時間を短く済ませることができるという優れた効果を得ることができるものである。ちなみに、上記第２の従来例における、画像取込みから手ぶれ補正までに要する時間が１秒以上であったのに対し、本実施例においては、その所要時間を約１２０ｍｓに短縮することが可能となった。
【００４７】
また、特に本実施例では、予備補正領域Ａを、画像データにおける受光センサ３の視野Ｆの中央部分の垂直方向及び水平方向の１ラインずつ各５０画素程度に設定するようにしたので、二次元コードの画像の一部が含まれる適切な位置に予備補正領域Ａを設定することができることは勿論、縦方向及び横方向の双方に関して適切な補正量ｎを求めるに十分であり、短時間で確実に手ぶれ補正を行うことができた。
【００４８】
更に、本実施例では、予備補正において、補正量ｎを上限値Ｋまで適用して補正を実施したにも拘わらず、適切な補正と判断されなかった場合に、その旨を報知するようにしたので、例えば手ぶれ量が大き過ぎる等の要因により、補正により正しい（手ぶれのない場合の）画像データに戻すことが不可能である場合には、使用者にその旨を報知することにより、再度の画像取込みの実行等を促すことができるといったメリットも得ることができるものである。
【００４９】
（２）第２の実施例
図７ないし図９は、本発明の第２の実施例（請求項１１、１２、１３に対応）を示すものである。この第２の実施例においては、二次元コード読取装置のハードウエア構成などは、上記第１の実施例と共通するので、上記第１の実施例と共通する部分については、符号を共通して使用して新たな図示や説明を省略し、以下、上記第１の実施例と異なる点についてのみ述べる。
【００５０】
この実施例が上記第１の実施例と異なる点は、制御回路１６のソフトウエア的構成にあり、この実施例では、予備補正において適正な補正量（画素数ｎ）を求めるにあたり、まず補正量として１画素のぶれがあると想定して補正を行い、以下、ぶれ量が決まるかあるいは補正量の上限に至るまで、画素数ｎを１ずつ増やしながら補正を行うと共に、各補正量ｎで補正した補正値の高周波成分の数を夫々算出し、該補正量ｎとその高周波成分の数との関数において、極小値（ディープ点）が現れる補正量ｎを、ぶれ量（適正な補正量）と判断するようにしている。より具体的には、その際の補正値の高周波成分の数（隣合う画素の補正後の明暗値の差分の絶対値の総和）を、次の式で算出するようにしている。
【数６】
2005196543.tif 000006
【００５１】
図７のフローチャートは、トリガスイッチ２がオン操作されたときに、制御回路１６が実行する二次元コードの読取りの処理手順を示している。即ち、まずステップＳ２１にて、受光センサ３による画像取込み動作（露光）が実行され、取込まれた画像データが第１の画像メモリ１９ａに記憶される。次のステップＳ２２では、その画像データの領域の一部（受光センサ３の視野Ｆの中心部の垂直（縦）方向及び水平（横）方向の１ラインずつ各５０画素程度）に予備補正領域Ａが設定される。ステップＳ２３では、補正量（手ぶれの画素数）ｎが１とされる。
【００５２】
ステップＳ２４では、補正量ｎの値が上限値Ｋを超えたかどうかが判断され、Ｋ以下であった場合には（ステップＳ２４にてＮｏ）、次のステップＳ２５にて、予備補正領域Ａを構成する１ラインの画素に対する、ｎ画素分の手ぶれ補正の処理が行われる。この補正の処理は、予備補正領域Ａの１ラインの各画素の明暗値Ｄ（ｘ）を、上記（１）式により
補正する（補正値Ｄ´（ｘ）を求める）ことにより行われる。
【００５３】
次のステップＳ２６では、補正値Ｄ´（ｘ）の高周波成分の数、即ち隣合う画素の補正
後の明暗値の差分の絶対値の総和が、上記した式により算出される。ステップＳ２７では、高周波成分のディープ点（極小値）が現れたかどうかが判断される。未だディープ点が現れていない場合には（ステップＳ２７にてＮｏ）、ステップＳ２８にて、補正量ｎの値を１だけインクリメントし、補正量ｎの値が上限値Ｋを越えていない場合には（ステップＳ２４にてＮｏ）、ステップＳ２５からの計算を繰返す。
【００５４】
そして、高周波成分のディープ点（極小値）が現れたと判断された場合（高周波成分の数が一旦減少してその後増加した場合）には（ステップＳ２７にてＹｅｓ）、ステップＳ２９にて、そのディープ点におけるずれ量（補正量ｎ）が補正量として決定される。図示はしないが、この場合も、上記補正量ｎを求める処理は、垂直（縦）方向及び水平（横）方向のラインに関してそれぞれ実行される。この後、ステップＳ３０にて、求められた補正量ｎにて全体の画像データが補正され、ステップＳ３１にてデコード処理が実行されるのである。尚、補正量ｎの値が上限値Ｋまでいったにもかかわらず適正な補正量が得られなかった場合には（ステップＳ２４にてＹｅｓ）、ステップＳ３２にてＮＧの報知がなされて処理が終了する。
【００５５】
図８には、上記第１の実施例（図３）と同様の、仮に４画素分（ｎ＝４）の手ぶれがあった場合の各画素の明暗値の具体例を示したものである。ここでは、補正量ｎを１〜６まで代えて補正を行った場合の、補正値Ｄ´（ｘ）と併せて、隣合う画素の補正後の明暗値
の差分（絶対値）を示している。この差分の総和が高周波成分の数となる。また、図９は、この具体例における、横軸に補正量ｎをとり、縦軸に高周波成分の数をとってプロットしたものであり、この図から、補正量ｎ＝４のときにディープ点（極小値）が現れることが理解できる。この場合には、補正量ｎ＝５における高周波成分の計算が済んだところで、ディープ点があることが判明することになる。
【００５６】
このような第２の実施例においても、上記第１の実施例と同様に、１画面分の画像データを取込んで、その画像データの一部の予備補正領域Ａに対して手ぶれに関する補正をソフトウエア的に行うことにより補正の適否を判断し、補正量ｎを決定することができ、その補正量ｎを用いて画像データ全体の手ぶれ補正を行ってデコード処理を行なうことができる。この結果、この第２の実施例によれば、手ぶれ補正の機能を備えたものにあって、そのための構成を簡単で且つ小形に済ませることができ、しかも二次元コードの読取りに要する時間を短く済ませることができ、更には、高周波成分の数を求めることに基づいて、補正量ｎが適正かどうかの判断を容易に行なうことができるという優れた効果を得ることができる。
【００５７】
尚、この第２の実施例で、補正値Ｄ´（ｘ）の高周波成分の数を、隣合う画素の補正後
の明暗値の差分の絶対値の総和を計算することにより求めるようにしたが、高周波成分の数を求める手段として、二次微分により算出することも可能であり（請求項１４に対応）、同様に実施することができる。
【００５８】
（３）第３の実施例、その他の実施例
図１０及び図１１は、本発明の第３の実施例（請求項１６、１７、１８、１９に対応）を示すものである。この第３の実施例が上記第１の実施例と異なるところは、二次元コードの画像取込み時の手ぶれを検出するための手ぶれ検出センサ３１，３２を設け、これら手ぶれ検出センサ３１，３２の検出に基づいて、手ぶれ補正の処理を実行するように構成した点にある。
【００５９】
即ち、図１１に示すように、読取機構６は、基板３３の表面側に受光センサ３や結像レンズ４などを実装して構成されているのであるが、本実施例では、前記基板３３の裏面側に、横（水平）方向の手ぶれを検出する手ぶれ検出センサ３１、及び、縦（垂直）方向の手ぶれを検出する手ぶれ検出センサ３２が実装されている。これら手ぶれ検出センサ３１，３２は、共に例えばジャイロセンサからなり、受光センサ３の受光面に沿って直交する２方向に生じたぶれを、実質的に該受光センサ３の位置にて検出するようになっている。これら手ぶれ検出センサ３１，３２の検出信号は、制御回路１６に入力されるようになっている。
【００６０】
そして、次のフローチャート説明でも述べるように、制御回路１６は、そのソフトウエア的構成により、画像取込み時の手ぶれ検出センサ３１，３２の検出出力が所定値を越えた場合（手ぶれ補正が必要となる場合）に、上記第１の実施例と同様に、画像データの一部に予備補正領域Ａを設定して、その予備補正領域Ａに対して手ぶれに関する補正をソフトウエア的に行うことにより補正量ｎを決定し、その補正量ｎを用いて画像データ全体の手ぶれ補正を行ってデコード処理を行なうようになっている。またこのとき、手ぶれ検出センサ３１，３２の検出出力から、横方向及び縦方向の補正量ｎ（手ぶれ量）をそれぞれ推定し、推定された補正量に近い補正量ｎから順に適用して予備補正を行うようになっている。従って、制御回路１６は補正量推定手段として機能する。
【００６１】
図１０のフローチャートは、制御回路１６が実行する二次元コードの読取りの処理手順を示している。即ち、まずステップＳ４１にて、受光センサ３による画像取込み動作（露光）が実行されると、次のステップＳ４２にて、画像取込み時に、補正が必要な程度の手ぶれが生じていたかどうか（手ぶれ検出センサ３１，３２の検出出力が所定値を越えたかどうか）が判断される。手ぶれがないと判断されたときには（ステップＳ４２にてＮｏ）、そのままステップＳ４９に進み全体のデコード処理が実行される。
【００６２】
手ぶれが生じていると判断されたときには（ステップＳ４２にてＹｅｓ）、ステップＳ４３にて、横方向及び縦方向の手ぶれ量が夫々推定され、続くステップＳ４４にて、画像データの領域の一部に予備補正領域Ａが設定される。尚、この場合も、予備補正領域Ａは、受光センサ３の視野Ｆの中心部の垂直（縦）方向及び水平（横）方向の１ラインずつ各５０画素程度に設定されるのであるが、手ぶれがいずれか一方向にのみ生じていると判断された場合には、その方向のみに予備補正領域Ａが設定され、以下の補正の処理についても、手ぶれが生じた一方向のみについて行われる。
【００６３】
次のステップＳ４５では、前記ステップＳ４３にて推定された補正量ｎを適用して、予備補正領域Ａを構成する各画素に対する、ｎ画素分の手ぶれ補正の処理（補正値Ｄ´（ｘ）を求める処理）が行われる。そして次のステップＳ４６では、その補正が適正であるかどうかが判定される。適正でないと判断された場合には（ステップＳ４６にてＮｏ）、ステップＳ４７にて、補正量ｎが次に近い補正量ｎに変更され、ステップＳ４５に戻って補正が繰返される。補正が適正であると判断された場合には（ステップＳ４６にてＹｅｓ）、次のステップＳ４８にて、適正であると判定された補正量ｎにて全体の画像データが補正され、ステップＳ４９にてデコード処理が実行される。
【００６４】
このような第３の実施例においても、手ぶれ補正の機能を備えたものにあって、そのための構成を簡単で且つ小形に済ませることができ、しかも二次元コードの読取りに要する時間を短く済ませることができる。そして、この第３の実施例では、手ぶれ検出センサ３１，３２を設けたことにより、手ぶれ補正の処理を必要に応じて行うことができ、しかもその際に、手ぶれ検出センサ３１，３２の検出出力から補正量ｎを推定することができるので、最初から、実際の手ぶれ量に近い補正量ｎを適用して補正を行うことができ、適正な補正量ｎを求める処理を効率的に行うことができるものである。
【００６５】
尚、本発明は上記した各実施例に限定されるものではなく、以下のような拡張、変更が可能である。
即ち、上記各実施例では、本発明の光学情報読取装置を、情報コードとしての二次元コード、特にＱＲコードの読取りに適用したが、他の種類の二次元コードの読取りに適用したり、バーコードなどの一次元コードの読取りに適用したりすることもできる。この場合、バーコード等の一次元コードを読取る場合には、手ぶれ補正も水平（横）方向に関してのみ行えば良いから、予備補正領域を横方向に延びるラインに沿って設定すれば良い。一次元コードを読取る装置の場合、多数個の画素を一次元に配列したラインセンサを採用することもできる。
【００６６】
また、上記第１の実施例では、予備補正領域Ａに対する補正後に補正値Ｄ´（ｘ）に対
するデコード処理を実行することにより補正量ｎが適正であるかどうかを判定するように構成したが、判定手段を、予備補正手段による補正の適否を数値で評価するように構成すると共に、その際の補正量と評価値とをメモリ１９の補正値データメモリに記憶させるように構成することもできる（請求項７に対応）。このとき、予備補正手段による補正が繰返される際には、その補正値データメモリ内のデータを、評価値がより高いものに書換えていく構成とすることができる（請求項８に対応）。さらに、予備補正手段による補正が、全ての種類の補正量（ｎ＝１から上限値Ｋまで）を適用して実施済みの場合に、評価値が最も高い補正量を適用して画像データ全体に対する補正を行うように構成しても良い（請求項９に対応）。
【００６７】
その他、例えば本発明の光学情報読取装置は、ガンタイプのものに限らず、ハンディタイプ（縦長形状の本体ケースを上から握って使用するタイプ）のものであっても良く、また、手ぶれ検出センサとしては加速度センサを採用することもでき、さらには、報知手段の構成（報知の手段や形態）などについても様々な変更が可能である等、本発明は上記した各実施例に限定されるものではなく、要旨を逸脱しない範囲内で適宜変更して実施し得るものである。
【図面の簡単な説明】
【００６８】
【図１】本発明の第１の実施例を示すもので、二次元コードの読取りの処理手順を示すフローチャート
【図２】予備補正領域を示す図
【図３】４画素分ぶれている場合の明暗値及び補正値の具体例を示す図
【図４】手ぶれと各画素の明暗値との関係を示す図
【図５】二次元コード読取装置の構成を概略的に示す縦断側面図
【図６】二次元コード読取装置の電気的構成を概略的に示すブロック図
【図７】本発明の第２の実施例を示す図１相当図
【図８】差分を示す図３相当図
【図９】補正量と高周波成分の数との関係を示す図
【図１０】本発明の第３の実施例を示す図１相当図
【図１１】読取機構部分の構成を概略的に示す縦断側面図（ａ）及び背面図（ｂ）
【符号の説明】
【００６９】
図面中、１は本体ケース、１ｃは読取口、２はトリガスイッチ、３は受光センサ、４は結像レンズ、５は照明部、６は読取機構、１６は制御回路（予備補正手段、判定手段、画像補正手段、デコード手段）、１９はメモリ、１９ａは第１の画像メモリ、Ｒは読取対象、Ａは予備補正領域、Ｆは撮影視野を示す。
【図１】
2005196543.tif 000009
【図２】
2005196543.tif 000010
【図３】
2005196543.tif 000011
【図４】
2005196543.tif 000012
【図５】
2005196543.tif 000013
【図６】
2005196543.tif 000014
【図７】
2005196543.tif 000015
【図８】
2005196543.tif 000016
【図９】
2005196543.tif 000017
【図１０】
2005196543.tif 000018
【図１１】
2005196543.tif 000019