(57)【要約】【課題】  従来よりも読取り時間を大幅に短縮することができる情報コード読取装置を提供する。【解決手段】  情報コード読取装置を構成するＣＰＵは、ＣＭＯＳイメージセンサに「行飛ばしスキャン」を実行させた場合に（ステップＳ２）情報コードが含まれている位置を判別し（ステップＳ５）、情報コードが含まれている位置にかかる部分だけをＣＭＯＳイメージセンサに連続的にスキャンさせて（ステップＳ６〜Ｓ８）、その際に出力される画像データをデコード処理する（ステップＳ９）。【選択図】  図１
2006023912.tif 000002
【特許請求の範囲】
【請求項１】
所定のエリア内に位置している情報コードを光学的に走査して読取った画像データを出力するもので、前記エリアについて行う走査を、連続する走査位置に対して不連続に実行可能に構成されるエリアセンサと、
このエリアセンサより出力される画像データに基づき、前記エリア内について情報コードが含まれている位置を判別する判別手段と、
前記エリアセンサより出力される画像データをデコードするデコード手段と、
前記エリアセンサによる読取り動作、並びに前記判別手段，前記デコード手段を統括的に制御する制御手段とを備え、
前記制御手段は、
前記エリアセンサに走査を不連続に実行させた場合に、前記判別手段に情報コードが含まれている位置を判別させると、
前記情報コードが含まれている位置にかかる部分だけを前記エリアセンサに連続的に走査させ、その際に出力される画像データについて前記デコード手段にデコード処理を実行させることを特徴とする情報コード読取装置。
【請求項２】
前記制御手段は、前記エリアセンサに走査を不連続に実行させた場合に出力される画像データについても、前記デコード手段にデコード処理を実行させることを特徴とする請求項１記載の情報コード読取装置。
【請求項３】
前記エリアセンサは、ＣＭＯＳイメージセンサで構成されていることを特徴とする請求項１又は２記載の情報コード読取装置。
【請求項４】
所定のエリア内に位置している情報コードを光学的に走査して読取った画像データを出力するエリアセンサに走査を不連続に実行させ、その際に出力される画像データに基づき、前記エリア内について情報コードが含まれている位置を判別し、
前記情報コードが含まれている位置にかかる部分だけを前記エリアセンサに連続的に走査させ、その際に出力される画像データについてデコード処理を行なうことを特徴とする情報コードの読取方法。
【請求項５】
前記エリアセンサに走査を不連続に実行させた場合に出力される画像データについても、デコード処理を実行させることを特徴とする請求項４記載の情報コードの読取方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報コードを光学的且つ２次元的に読取って画像信号を出力するエリアセンサを備えてなる情報コード読取装置及び情報コードの読取方法に関する。
【背景技術】
【０００２】
紙や商品にモノクロで印刷されているバーコードや２次元コードを読取るための情報コード読取装置は、ＬＥＤやレーザなどの光源によって読み取り対象に光を照射し、その反射光を読取るようになっている。近年、２次元コードの普及が進んだ結果、バーコードと混在して使用されるケースが増加しており、そのような状況に対応して双方の読み取りが可能となるように、エリアセンサによって読取りを行う装置が増えつつある。
【０００３】
ところが、バーコードに関して言えば、本来はリニアセンサによって１次元的に読取ることができるものを、上記装置では画素数が多いエリアセンサで読取ることになり、読取り速度が遅くなってしまうという問題があった。
斯様な問題に関連して、バーコードの読取り時間を短縮する技術として、特許文献１には、エリアセンサを介して読取った画像情報に基づいてコードシンボルの位置を認識し、当該シンボルが２次元コードかバーコードかを判別する方法が開示されている。また、特許文献２には、主にＰＤＦ−４１７（登録商標）のようなスタックドバーコードをエリアセンサで読取った場合、その画像情報に基づいてスタート，ストップキャラクタを認識し、それらよりバーコードの傾きを判定してデコードを行う技術が開示されている。
【特許文献１】特開平７−９３４５８号公報
【特許文献２】特開平５−２７４４６１号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
特許文献１，２に開示されている技術では、夫々が行っている独特な判別，判定処理に応じて読取り時間の短縮を図ることが可能である。しかしながら、何れの技術も、エリアセンサを介して読取られた全画素データを取り込んでメモリに書込み、その段階から上記の判別，判定処理を行っているため、読取り時間を大幅に短縮することはできない。
本発明は上記事情に鑑みてなされたものであり、その目的は、従来よりも読取り時間を大幅に短縮することができる情報コード読取装置及び情報コードの読取方法を提供することにある。
【課題を解決するための手段】
【０００５】
請求項１記載の情報コード読取装置によれば、制御手段は、エリアセンサに走査を不連続に実行させた場合に、読み取り対象となる所定のエリア内において情報コードが含まれている位置を判別させる。そして、情報コードが含まれている位置にかかる部分だけをエリアセンサに連続的に走査させ、その際に出力される画像データをデコード処理させる。即ち、従来とは異なり、エリアセンサによって読取り可能なエリア全ての画像データを取り込まずに、情報コードが含まれている部分だけを詳細に取り込んでデコードするので、読取り速度を大幅に向上させることができる。
【０００６】
請求項２記載の情報コード読取装置によれば、制御手段は、エリアセンサに走査を不連続に実行させた場合に出力される画像データについてもデコード処理を実行させるので、情報コードがバーコードである場合には、不連続な走査の途中でデコード処理を完了させることができる。
請求項３記載の情報コード読取装置によれば、エリアセンサを、ＣＭＯＳイメージセンサで構成する。ＣＭＯＳイメージセンサは、各走査線毎にデータの取り込みが可能であり（所謂ローリングシャッタ動作）、各走査線についての画像データを露光して取り込む処理のタイミングを順次ずらしてパイプライン的に処理することができる。従って、エリアの一部だけについて画像データの読み取りを行う場合には、見かけ上のフレームレイトが向上するようになり、読取り速度がより速くなる。
【発明を実施するための最良の形態】
【０００７】
（第１実施例）
以下、本発明を手持ち式の情報コード読取装置（いわゆるハンディターミナル）に適用した第１実施例について、図１乃至図６を参照しながら説明する。図６は、本実施例に係る情報コード読取装置（ハンディターミナル）１の構成を概略的に示している。この読取装置１は、ケース２内に、カタログや伝票、商品ラベル等の読取対象に記録された各種の情報コード（図５参照）を読取るための読取機構３や、制御装置４（図５参照）等を組込んで構成されている。前記制御装置４は、マイクロコンピュータを中心として構成され、システム全体の制御を行うと共に、後述するように、前記読取機構３（ＣＭＯＳイメージセンサ）により取込まれた画像データから情報コードの解読処理（デコード処理）等を行うようになっている。
【０００８】
前記ケース２は、基端側（図で右側）が握り部とされ、先端側がやや幅広となると共に前方にやや下降傾斜するように折曲がり、その先端面に読取口２ａが設けられている。このケース２の上面部には、ユーザが各種の入力指示を行うための複数のキースイッチ５ａからなるキー入力部５が設けられていると共に、液晶表示器７が設けられている。それらキースイッチ５ａや表示部７等は、ケース２内に配設されたプリント基板８に実装されており、また、図示はしないが、そのプリント基板８には、前記制御装置４等も実装されている。
【０００９】
さらに、ケース２の上面部には、表示ＬＥＤ６が設けられている。本実施例では、この表示ＬＥＤ６は、例えば緑色及びオレンジ色に点灯可能な２色発光ダイオードからなり、後述するように、表示手段としても機能するようになっている。また、ケース２の外面部（側面部）には、読取指示用のトリガスイッチ（図示せず）も設けられている。尚、これも図示はしないが、ケース２内には、外部機器との間でデータの送受信を行うための通信Ｉ／Ｆ回路や、電源となる二次電池なども組込まれている。
【００１０】
一方、前記読取機構３は、二次元の撮像視野を有するＣＭＯＳイメージセンサ（エリアセンサ）９、このＣＭＯＳイメージセンサ９の前部に位置する結像レンズ１０、画像取込み時の照明光源となる複数個の照明用ＬＥＤ１１（１個のみ図示）及びその前部に位置する照明用レンズ１２等を備えて構成される。このとき、結像レンズ１０は読取口２ａの中心部に配置され、複数個の照明用レンズ１２がその周囲（斜め上部等）に配置されている。
【００１１】
また、図示は省略しているが、この読取機構３には、前記ＣＭＯＳイメージセンサ９（結像レンズ１０）の近傍（例えば側部）に位置して、読取対象に対して読取位置を示すマーカ光（例えば赤色の光）を照射するマーカ光照射手段としての、マーカ光用レーザダイオード及び投光用レンズ（ホログラム）が設けられている。このとき、前記読取位置は前記撮像視野よりも一回り小さい四角形の領域に設定されており、前記マーカ光は、例えば、その四角形の領域の４つのコーナー部を示す４個のＬ字状の光と、その四角形領域の中心部を示す十字状の光とから構成される。
【００１２】
そして、ユーザが、前記読取口２ａを情報コードが記録された読取対象（伝票、ラベル、カタログ、商品等）に向けた状態でトリガスイッチの半押し操作（第１段の押圧操作）を行うと、まず読取対象に対して読取位置を示すマーカ光が照射される。ユーザは、情報コードがマーカ光の中央部に来るように読取口２ａの位置合せを行い、トリガスイッチのオン操作（第２段の押圧操作）を行うと、マーカ光が消灯されると共に照明用ＬＥＤ１１により読取対象に照明がなされ、その状態で、ＣＭＯＳイメージセンサ９により読取対象の画像の取込み（露光）がなされる。そして、そのＣＭＯＳイメージセンサ９の撮影画像のデータから、制御装置４により情報コードの解読（デコード）の処理が行われるようになっている。
【００１３】
図５は、前記制御装置４におけるデータ処理系の構成（ハードウエア構成）を示す機能ブロック図である。システムバス１７には、情報コード読取装置１全体を制御するＣＰＵ（判別手段，デコード手段，制御手段）１８、画像メモリとして機能するＳＤＲＡＭ１９、制御プログラムなどが記憶されるフラッシュメモリ２０、ＣＰＵ１８の周辺処理用であるゲートアレイ２１、ＤＭＡコントローラ２２などが接続されている。このＤＭＡコントローラ２２は、ＣＭＯＳイメージセンサ９からデジタルデータとして出力される画像信号をＳＤＲＡＭ１９に転送するようになっている。また、ＣＭＯＳイメージセンサ９より出力されるデータは、ゲートアレイ２１にも与えられている。
【００１４】
そして、ＣＰＵ１８は、ソフトウエア的構成（制御プログラムの実行）により、ＣＭＯＳイメージセンサ９より出力されるデータに基づいて読取り対象エリアにおける情報コードの位置を検出し、検出された情報コードの種類を認識する。また、ＣＰＵ１８は、ＳＤＲＡＭ１９のデジタル画像データから情報コードの解読（デコード）処理を実行するようになっており、デコード手段として機能する。更に、ＣＰＵ１８は、図示しない駆動回路を介してブザー２３及び前記表示ＬＥＤ６を制御するようになっている。この場合、デコード処理が成功した場合には、ブザー２３が高音（「ピッ」という音）で鳴動されると共に、表示ＬＥＤ６が緑色で点灯されるようになっている。
【００１５】
次に、本実施例の作用について図１乃至図４も参照して説明する。図１は、ＣＰＵ１８によって行われる情報コード読取り処理の制御内容を示すフローチャートである。ＣＰＵ１８は、先ず、照明用ＬＥＤ１１を点灯させて読取り対象エリアの露光を行うと（ステップＳ１）、ＣＭＯＳイメージセンサ９に「行飛ばしスキャン（不連続な走査）」を実行させる（ステップＳ２）。ここで「行飛ばしスキャン」とは、図２又は図３に示すように、読取り対象エリアについて設定される連続的な走査位置（行）について、各行毎に連続的にスキャン（走査）を行うのではなく例えば５〜６行程度の間隔をおいて（即ち、数行飛ばしで）スキャンを行うことを言う。
【００１６】
そして、ＣＰＵ１８は、ステップＳ２の「行飛ばしスキャン」により出力される画像データについてデコード処理を行ない、その結果が「ＯＫ」であるか否かを判断する（ステップＳ３）。そして、その結果が「ＮＧ」であれば、ステップＳ４において読取り対象エリアのスキャンが全て終了するまで（「ＮＯ」）ステップＳ２，Ｓ３の処理を繰り返す。
即ち、図２に示すバーコードの場合であれば、行飛ばしスキャンを実行している途中であっても、そのスキャン位置がバーコードにかかればデコードが完了する場合が想定されるからである。従って、ＣＰＵ１８がステップＳ３で「ＯＫ」と判断すれば、その時点で読み取り処理を終了する。
【００１７】
また、図３には、ステップＳ２〜Ｓ４のループを繰り返している場合に、ＣＰＵ１８によって実行される処理の流れを示す。即ち、「行飛ばしスキャン」によって各ラインをスキャンする毎に、ＣＭＯＳイメージセンサ９より出力される画像データが取り込まれ、ＣＰＵ１８によってデコードされる。各データの取り込みタイミングは順次遅れるため、これらの処理はパイプライン的に実行される。従って、ＣＰＵ１８がデコードを行っている間に次のラインのデータが読取られると、そのデータは、例えばＳＤＲＡＭ１９に書き込まれた状態で保持され、ウエイト状態になっている。
【００１８】
一方、図４に示すように、読み取り対象がＱＲコード（登録商標）のような２次元コードである場合は、「行飛ばしスキャン」でデコードを行った結果が「ＯＫ」となることはない。従って、その場合はステップＳ４で「ＹＥＳ」と判断することになり、ＣＰＵ１８は、「行飛ばしスキャン」の結果出力された画像データに基づいて情報コードの位置検出を行なう（ステップＳ５）。
【００１９】
ここで、位置検出は、前記画像データにおいて、２次元コードの端部がどのあたりに位置するかを推定することで行う。即ち、２次元コードの外形は通常矩形となっているので、その矩形の一辺や、図４に示すように外形の辺に対して傾いた状態で読取っている場合には、角部の先端がどのあたりに位置するかを推定する。
また、「行飛ばしスキャン」が常に２次元コードの端部にかかるとは限らないので、スキャンの結果、２次元コードにかかっていると判定された走査線の上端，下端位置に対して少しマージンをとって位置推定を行うようにすると良い。例えば、図４に示すケースでは、２次元コードにかかっている走査線の上端，下端はＬｕ，Ｌｄとなるが、走査線Ｌｕよりも少し上方の走査位置、走査線Ｌｄよりも少し下方の走査位置を上端，下端位置とする。但し、２次元コードの種類や読取り状態によっては、必ずしもコードの端部に至る全ての情報を取り込む必要がない場合もあるので、夫々のケースに応じて適切に対応すればよい。
【００２０】
ステップＳ５における位置検出の結果が、ステップＳ６において「ＮＧ」と判定されると、情報コードが存在しないエリアを読み取ったということになるのでステップＳ１に戻る。位置検出の結果が「ＯＫ」であれば、ＣＰＵ１８は、検出された位置について情報コードの読み取りを行なう。即ち、ステップＳ１と同様に照明用ＬＥＤ１１を点灯させて露光を行い（ステップＳ７）、ＣＭＯＳイメージセンサ９に、情報コードが位置すると推定される部分についてのみ連続的にスキャンさせて「部分取り込み」を行う（ステップＳ８）。
【００２１】
つまり、図４に示す例では、「行飛ばしスキャン」を行った走査線の一部であるＬｕとＬｄとの間に情報コードが位置すると推定されるので、それらの走査線の間（若しくは、上述したように、それらにマージンを加えた走査位置の間）を連続的に（設定されている操作位置（行）の全てを）スキャンする。そして、その結果出力される画像データについてデコード処理を行ない、その結果が「ＯＫ」であるか否かを判断する（ステップＳ９）。その結果が「ＮＧ」であればステップＳ７に戻り、「ＯＫ」であれば読み取り処理を終了する。
【００２２】
尚、情報コードが２次元コードである場合には、夫々のコードの種類を示す特徴パターンが検出されるか否かによって判別する。例えば、ＱＲコードであれば、ファインダパターン（黒、白のパターンの幅の比率が１：１：３：１：１）が検出され、ＰＤＦ４１７であれば、一定比率のバーコードパターンが２次元的に検出され、データマトリクスであれば、位置検出用のＬ字パターンが検出される。これらの特徴パターンの検出は、ゲートアレイ２１においてハードウエアで行ない、その検出結果をＣＰＵ１８に出力する。
【００２３】
以上のように本実施例によれば、情報コード読取装置１を構成するＣＰＵ１８は、ＣＭＯＳイメージセンサ９に「行飛ばしスキャン」を実行させた場合に情報コードが含まれている位置を判別し、情報コードが含まれている位置にかかる部分だけをＣＭＯＳイメージセンサ９に連続的にスキャンさせて、その際に出力される画像データをデコード処理するようにした。従って、従来とは異なり、エリアセンサによって読取り可能なエリア全ての画像データを取り込まずに、情報コードが含まれている部分だけを詳細に取り込んでデコードするので、読取り速度を大幅に向上させることができる。
【００２４】
また、ＣＰＵ１８は、ＣＭＯＳイメージセンサ９に「行飛ばしスキャン」を実行させた場合に出力される画像データについてもデコード処理を実行するので、情報コードがバーコードである場合には、「行飛ばしスキャン」の途中でもデコード処理を完了させることができる。
そして、ＣＭＯＳイメージセンサ９は、各走査線毎にデータの取り込みが可能であり（所謂ローリングシャッタ動作）、各走査線についての画像データを露光して取り込む処理のタイミングを順次ずらしてパイプライン的に処理することができる。従って、エリアの一部だけについて画像データの読み取りを行う場合には見かけ上のフレームレイトが向上するようになり（ＣＭＯＳイメージセンサのフレームレイトは、全エリアの読取りを完了する時間で規定されているため）、読取り速度がより速くなる。
加えて、ステップＳ９におけるデコード結果が「ＮＧ」となりデコードを再試行する場合でも、ステップＳ８では情報コードが位置すると推定される部分だけ連続的にスキャンするので、読み取りの再試行をより速く行うことができる。
【００２５】
（第２実施例）
図７は本発明の第２実施例を示すものであり、第１実施例と同一部分には同一符号を付して説明を省略し、以下異なる部分についてのみ説明する。図７は、図１相当図であり、第２実施例は、ＣＰＵ１８によるソフトウエア的な処理内容が異なっている。即ち、図７に示すフローチャートでは、図１に示したものよりステップＳ３，Ｓ４を削除しており、ステップＳ２において「行飛ばしスキャン」を実行している間はデコード処理を行なわないようにしている。
【００２６】
斯様に処理を実行する場合には、読取り対象の情報コードが専ら２次元コードであり、バーコードを読取る頻度が少ないと想定される場合に適している。つまり、情報コードがバーコード、２次元コードの何れであってもデコードはステップＳ９において実行され、何れも読取ることは可能である。そして、ステップＳ３，Ｓ４を省くことで、２次元コードの読み取りに関しては、より迅速に処理を完了することができる。但し、バーコードを読取った場合には、第１実施例のようにデコード結果が早期に確定しない、という点が異なっている。
【００２７】
以上のように構成された第２実施例によれば、ステップＳ２において「行飛ばしスキャン」を実行している間はデコード処理を行なわないので、読取り対象の情報コードが専ら２次元コードである場合には、その読取り処理をより速く完了することができる。
【００２８】
本発明は上記しまたは図面に記載した実施例に限定されるものではなく、次のような変形が可能である。
不連続に走査を行う「行飛ばしスキャン」は、必ずしも飛ばす行数を毎回同じにする必要はなく、例えば、５行飛ばし、６行飛ばし、７行飛ばしといったように、飛ばす行数を変化させても良い。
また、一般的に、読み取り対象エリアの中央付近に情報コードが位置する確率が高いので、例えば、エリアの上端側，下端側の飛ばし行数は多くして、エリアの中間部分の飛ばし行数を少なくするようにしても良い。
【００２９】
エリアセンサは、ＣＭＯＳイメージセンサ９に限ることなく、ＣＣＤセンサなどであっても良い。
情報コードの位置検出は、ＣＰＵ１８がソフトウエアによって行うものに限らず、判別手段として専用のハードウエアをゲートアレイやＦＰＧＡなどで構成し、その検出結果をＣＰＵ１８に渡すように構成しても良い。
【００３０】
２次元コードについては、ＱＲコードの他、ＰＤＦ４１７（登録商標）やデータマトリクス（登録商標）など、どのようなものでも良い。
【図面の簡単な説明】
【００３１】
【図１】本発明の第１実施例であり、情報コード読取装置に内蔵されるＣＰＵによって行われる、情報コード読取り処理の制御内容を示すフローチャート
【図２】「行飛ばしスキャン」によってバーコードを読み取る状態を示す図
【図３】図１のステップＳ２〜Ｓ４のループを繰り返している場合に、ＣＰＵによって実行される処理の流れを示す図
【図４】ＱＲコードについての図２相当図
【図５】制御装置の構成を概略的に示すブロック図
【図６】情報コード読取装置の縦断側面図
【図７】本発明の第２実施例を示す図１相当図
【符号の説明】
【００３２】
図面中、１は情報コード読取装置、９はＣＭＯＳイメージセンサ（エリアセンサ）、１８はＣＰＵ（判別手段，デコード手段，制御手段）を示す。
【図１】
2006023912.tif 000003
【図２】
2006023912.tif 000004
【図３】
2006023912.tif 000005
【図４】
2006023912.tif 000006
【図５】
2006023912.tif 000007
【図６】
2006023912.tif 000008
【図７】
2006023912.tif 000009