説明

情報コード読取装置及び情報コードの読取方法

【課題】 従来よりも読取り時間を大幅に短縮することができる情報コード読取装置を提供する。
【解決手段】 情報コード読取装置を構成するCPUは、CMOSイメージセンサに「行飛ばしスキャン」を実行させた場合に(ステップS2)情報コードが含まれている位置を判別し(ステップS5)、情報コードが含まれている位置にかかる部分だけをCMOSイメージセンサに連続的にスキャンさせて(ステップS6〜S8)、その際に出力される画像データをデコード処理する(ステップS9)。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、情報コードを光学的且つ2次元的に読取って画像信号を出力するエリアセンサを備えてなる情報コード読取装置及び情報コードの読取方法に関する。
【背景技術】
【0002】
紙や商品にモノクロで印刷されているバーコードや2次元コードを読取るための情報コード読取装置は、LEDやレーザなどの光源によって読み取り対象に光を照射し、その反射光を読取るようになっている。近年、2次元コードの普及が進んだ結果、バーコードと混在して使用されるケースが増加しており、そのような状況に対応して双方の読み取りが可能となるように、エリアセンサによって読取りを行う装置が増えつつある。
【0003】
ところが、バーコードに関して言えば、本来はリニアセンサによって1次元的に読取ることができるものを、上記装置では画素数が多いエリアセンサで読取ることになり、読取り速度が遅くなってしまうという問題があった。
斯様な問題に関連して、バーコードの読取り時間を短縮する技術として、特許文献1には、エリアセンサを介して読取った画像情報に基づいてコードシンボルの位置を認識し、当該シンボルが2次元コードかバーコードかを判別する方法が開示されている。また、特許文献2には、主にPDF−417(登録商標)のようなスタックドバーコードをエリアセンサで読取った場合、その画像情報に基づいてスタート,ストップキャラクタを認識し、それらよりバーコードの傾きを判定してデコードを行う技術が開示されている。
【特許文献1】特開平7−93458号公報
【特許文献2】特開平5−274461号公報
【発明の開示】
【発明が解決しようとする課題】
【0004】
特許文献1,2に開示されている技術では、夫々が行っている独特な判別,判定処理に応じて読取り時間の短縮を図ることが可能である。しかしながら、何れの技術も、エリアセンサを介して読取られた全画素データを取り込んでメモリに書込み、その段階から上記の判別,判定処理を行っているため、読取り時間を大幅に短縮することはできない。
本発明は上記事情に鑑みてなされたものであり、その目的は、従来よりも読取り時間を大幅に短縮することができる情報コード読取装置及び情報コードの読取方法を提供することにある。
【課題を解決するための手段】
【0005】
請求項1記載の情報コード読取装置によれば、制御手段は、エリアセンサに走査を不連続に実行させた場合に、読み取り対象となる所定のエリア内において情報コードが含まれている位置を判別させる。そして、情報コードが含まれている位置にかかる部分だけをエリアセンサに連続的に走査させ、その際に出力される画像データをデコード処理させる。即ち、従来とは異なり、エリアセンサによって読取り可能なエリア全ての画像データを取り込まずに、情報コードが含まれている部分だけを詳細に取り込んでデコードするので、読取り速度を大幅に向上させることができる。
【0006】
請求項2記載の情報コード読取装置によれば、制御手段は、エリアセンサに走査を不連続に実行させた場合に出力される画像データについてもデコード処理を実行させるので、情報コードがバーコードである場合には、不連続な走査の途中でデコード処理を完了させることができる。
請求項3記載の情報コード読取装置によれば、エリアセンサを、CMOSイメージセンサで構成する。CMOSイメージセンサは、各走査線毎にデータの取り込みが可能であり(所謂ローリングシャッタ動作)、各走査線についての画像データを露光して取り込む処理のタイミングを順次ずらしてパイプライン的に処理することができる。従って、エリアの一部だけについて画像データの読み取りを行う場合には、見かけ上のフレームレイトが向上するようになり、読取り速度がより速くなる。
【発明を実施するための最良の形態】
【0007】
(第1実施例)
以下、本発明を手持ち式の情報コード読取装置(いわゆるハンディターミナル)に適用した第1実施例について、図1乃至図6を参照しながら説明する。図6は、本実施例に係る情報コード読取装置(ハンディターミナル)1の構成を概略的に示している。この読取装置1は、ケース2内に、カタログや伝票、商品ラベル等の読取対象に記録された各種の情報コード(図5参照)を読取るための読取機構3や、制御装置4(図5参照)等を組込んで構成されている。前記制御装置4は、マイクロコンピュータを中心として構成され、システム全体の制御を行うと共に、後述するように、前記読取機構3(CMOSイメージセンサ)により取込まれた画像データから情報コードの解読処理(デコード処理)等を行うようになっている。
【0008】
前記ケース2は、基端側(図で右側)が握り部とされ、先端側がやや幅広となると共に前方にやや下降傾斜するように折曲がり、その先端面に読取口2aが設けられている。このケース2の上面部には、ユーザが各種の入力指示を行うための複数のキースイッチ5aからなるキー入力部5が設けられていると共に、液晶表示器7が設けられている。それらキースイッチ5aや表示部7等は、ケース2内に配設されたプリント基板8に実装されており、また、図示はしないが、そのプリント基板8には、前記制御装置4等も実装されている。
【0009】
さらに、ケース2の上面部には、表示LED6が設けられている。本実施例では、この表示LED6は、例えば緑色及びオレンジ色に点灯可能な2色発光ダイオードからなり、後述するように、表示手段としても機能するようになっている。また、ケース2の外面部(側面部)には、読取指示用のトリガスイッチ(図示せず)も設けられている。尚、これも図示はしないが、ケース2内には、外部機器との間でデータの送受信を行うための通信I/F回路や、電源となる二次電池なども組込まれている。
【0010】
一方、前記読取機構3は、二次元の撮像視野を有するCMOSイメージセンサ(エリアセンサ)9、このCMOSイメージセンサ9の前部に位置する結像レンズ10、画像取込み時の照明光源となる複数個の照明用LED11(1個のみ図示)及びその前部に位置する照明用レンズ12等を備えて構成される。このとき、結像レンズ10は読取口2aの中心部に配置され、複数個の照明用レンズ12がその周囲(斜め上部等)に配置されている。
【0011】
また、図示は省略しているが、この読取機構3には、前記CMOSイメージセンサ9(結像レンズ10)の近傍(例えば側部)に位置して、読取対象に対して読取位置を示すマーカ光(例えば赤色の光)を照射するマーカ光照射手段としての、マーカ光用レーザダイオード及び投光用レンズ(ホログラム)が設けられている。このとき、前記読取位置は前記撮像視野よりも一回り小さい四角形の領域に設定されており、前記マーカ光は、例えば、その四角形の領域の4つのコーナー部を示す4個のL字状の光と、その四角形領域の中心部を示す十字状の光とから構成される。
【0012】
そして、ユーザが、前記読取口2aを情報コードが記録された読取対象(伝票、ラベル、カタログ、商品等)に向けた状態でトリガスイッチの半押し操作(第1段の押圧操作)を行うと、まず読取対象に対して読取位置を示すマーカ光が照射される。ユーザは、情報コードがマーカ光の中央部に来るように読取口2aの位置合せを行い、トリガスイッチのオン操作(第2段の押圧操作)を行うと、マーカ光が消灯されると共に照明用LED11により読取対象に照明がなされ、その状態で、CMOSイメージセンサ9により読取対象の画像の取込み(露光)がなされる。そして、そのCMOSイメージセンサ9の撮影画像のデータから、制御装置4により情報コードの解読(デコード)の処理が行われるようになっている。
【0013】
図5は、前記制御装置4におけるデータ処理系の構成(ハードウエア構成)を示す機能ブロック図である。システムバス17には、情報コード読取装置1全体を制御するCPU(判別手段,デコード手段,制御手段)18、画像メモリとして機能するSDRAM19、制御プログラムなどが記憶されるフラッシュメモリ20、CPU18の周辺処理用であるゲートアレイ21、DMAコントローラ22などが接続されている。このDMAコントローラ22は、CMOSイメージセンサ9からデジタルデータとして出力される画像信号をSDRAM19に転送するようになっている。また、CMOSイメージセンサ9より出力されるデータは、ゲートアレイ21にも与えられている。
【0014】
そして、CPU18は、ソフトウエア的構成(制御プログラムの実行)により、CMOSイメージセンサ9より出力されるデータに基づいて読取り対象エリアにおける情報コードの位置を検出し、検出された情報コードの種類を認識する。また、CPU18は、SDRAM19のデジタル画像データから情報コードの解読(デコード)処理を実行するようになっており、デコード手段として機能する。更に、CPU18は、図示しない駆動回路を介してブザー23及び前記表示LED6を制御するようになっている。この場合、デコード処理が成功した場合には、ブザー23が高音(「ピッ」という音)で鳴動されると共に、表示LED6が緑色で点灯されるようになっている。
【0015】
次に、本実施例の作用について図1乃至図4も参照して説明する。図1は、CPU18によって行われる情報コード読取り処理の制御内容を示すフローチャートである。CPU18は、先ず、照明用LED11を点灯させて読取り対象エリアの露光を行うと(ステップS1)、CMOSイメージセンサ9に「行飛ばしスキャン(不連続な走査)」を実行させる(ステップS2)。ここで「行飛ばしスキャン」とは、図2又は図3に示すように、読取り対象エリアについて設定される連続的な走査位置(行)について、各行毎に連続的にスキャン(走査)を行うのではなく例えば5〜6行程度の間隔をおいて(即ち、数行飛ばしで)スキャンを行うことを言う。
【0016】
そして、CPU18は、ステップS2の「行飛ばしスキャン」により出力される画像データについてデコード処理を行ない、その結果が「OK」であるか否かを判断する(ステップS3)。そして、その結果が「NG」であれば、ステップS4において読取り対象エリアのスキャンが全て終了するまで(「NO」)ステップS2,S3の処理を繰り返す。
即ち、図2に示すバーコードの場合であれば、行飛ばしスキャンを実行している途中であっても、そのスキャン位置がバーコードにかかればデコードが完了する場合が想定されるからである。従って、CPU18がステップS3で「OK」と判断すれば、その時点で読み取り処理を終了する。
【0017】
また、図3には、ステップS2〜S4のループを繰り返している場合に、CPU18によって実行される処理の流れを示す。即ち、「行飛ばしスキャン」によって各ラインをスキャンする毎に、CMOSイメージセンサ9より出力される画像データが取り込まれ、CPU18によってデコードされる。各データの取り込みタイミングは順次遅れるため、これらの処理はパイプライン的に実行される。従って、CPU18がデコードを行っている間に次のラインのデータが読取られると、そのデータは、例えばSDRAM19に書き込まれた状態で保持され、ウエイト状態になっている。
【0018】
一方、図4に示すように、読み取り対象がQRコード(登録商標)のような2次元コードである場合は、「行飛ばしスキャン」でデコードを行った結果が「OK」となることはない。従って、その場合はステップS4で「YES」と判断することになり、CPU18は、「行飛ばしスキャン」の結果出力された画像データに基づいて情報コードの位置検出を行なう(ステップS5)。
【0019】
ここで、位置検出は、前記画像データにおいて、2次元コードの端部がどのあたりに位置するかを推定することで行う。即ち、2次元コードの外形は通常矩形となっているので、その矩形の一辺や、図4に示すように外形の辺に対して傾いた状態で読取っている場合には、角部の先端がどのあたりに位置するかを推定する。
また、「行飛ばしスキャン」が常に2次元コードの端部にかかるとは限らないので、スキャンの結果、2次元コードにかかっていると判定された走査線の上端,下端位置に対して少しマージンをとって位置推定を行うようにすると良い。例えば、図4に示すケースでは、2次元コードにかかっている走査線の上端,下端はLu,Ldとなるが、走査線Luよりも少し上方の走査位置、走査線Ldよりも少し下方の走査位置を上端,下端位置とする。但し、2次元コードの種類や読取り状態によっては、必ずしもコードの端部に至る全ての情報を取り込む必要がない場合もあるので、夫々のケースに応じて適切に対応すればよい。
【0020】
ステップS5における位置検出の結果が、ステップS6において「NG」と判定されると、情報コードが存在しないエリアを読み取ったということになるのでステップS1に戻る。位置検出の結果が「OK」であれば、CPU18は、検出された位置について情報コードの読み取りを行なう。即ち、ステップS1と同様に照明用LED11を点灯させて露光を行い(ステップS7)、CMOSイメージセンサ9に、情報コードが位置すると推定される部分についてのみ連続的にスキャンさせて「部分取り込み」を行う(ステップS8)。
【0021】
つまり、図4に示す例では、「行飛ばしスキャン」を行った走査線の一部であるLuとLdとの間に情報コードが位置すると推定されるので、それらの走査線の間(若しくは、上述したように、それらにマージンを加えた走査位置の間)を連続的に(設定されている操作位置(行)の全てを)スキャンする。そして、その結果出力される画像データについてデコード処理を行ない、その結果が「OK」であるか否かを判断する(ステップS9)。その結果が「NG」であればステップS7に戻り、「OK」であれば読み取り処理を終了する。
【0022】
尚、情報コードが2次元コードである場合には、夫々のコードの種類を示す特徴パターンが検出されるか否かによって判別する。例えば、QRコードであれば、ファインダパターン(黒、白のパターンの幅の比率が1:1:3:1:1)が検出され、PDF417であれば、一定比率のバーコードパターンが2次元的に検出され、データマトリクスであれば、位置検出用のL字パターンが検出される。これらの特徴パターンの検出は、ゲートアレイ21においてハードウエアで行ない、その検出結果をCPU18に出力する。
【0023】
以上のように本実施例によれば、情報コード読取装置1を構成するCPU18は、CMOSイメージセンサ9に「行飛ばしスキャン」を実行させた場合に情報コードが含まれている位置を判別し、情報コードが含まれている位置にかかる部分だけをCMOSイメージセンサ9に連続的にスキャンさせて、その際に出力される画像データをデコード処理するようにした。従って、従来とは異なり、エリアセンサによって読取り可能なエリア全ての画像データを取り込まずに、情報コードが含まれている部分だけを詳細に取り込んでデコードするので、読取り速度を大幅に向上させることができる。
【0024】
また、CPU18は、CMOSイメージセンサ9に「行飛ばしスキャン」を実行させた場合に出力される画像データについてもデコード処理を実行するので、情報コードがバーコードである場合には、「行飛ばしスキャン」の途中でもデコード処理を完了させることができる。
そして、CMOSイメージセンサ9は、各走査線毎にデータの取り込みが可能であり(所謂ローリングシャッタ動作)、各走査線についての画像データを露光して取り込む処理のタイミングを順次ずらしてパイプライン的に処理することができる。従って、エリアの一部だけについて画像データの読み取りを行う場合には見かけ上のフレームレイトが向上するようになり(CMOSイメージセンサのフレームレイトは、全エリアの読取りを完了する時間で規定されているため)、読取り速度がより速くなる。
加えて、ステップS9におけるデコード結果が「NG」となりデコードを再試行する場合でも、ステップS8では情報コードが位置すると推定される部分だけ連続的にスキャンするので、読み取りの再試行をより速く行うことができる。
【0025】
(第2実施例)
図7は本発明の第2実施例を示すものであり、第1実施例と同一部分には同一符号を付して説明を省略し、以下異なる部分についてのみ説明する。図7は、図1相当図であり、第2実施例は、CPU18によるソフトウエア的な処理内容が異なっている。即ち、図7に示すフローチャートでは、図1に示したものよりステップS3,S4を削除しており、ステップS2において「行飛ばしスキャン」を実行している間はデコード処理を行なわないようにしている。
【0026】
斯様に処理を実行する場合には、読取り対象の情報コードが専ら2次元コードであり、バーコードを読取る頻度が少ないと想定される場合に適している。つまり、情報コードがバーコード、2次元コードの何れであってもデコードはステップS9において実行され、何れも読取ることは可能である。そして、ステップS3,S4を省くことで、2次元コードの読み取りに関しては、より迅速に処理を完了することができる。但し、バーコードを読取った場合には、第1実施例のようにデコード結果が早期に確定しない、という点が異なっている。
【0027】
以上のように構成された第2実施例によれば、ステップS2において「行飛ばしスキャン」を実行している間はデコード処理を行なわないので、読取り対象の情報コードが専ら2次元コードである場合には、その読取り処理をより速く完了することができる。
【0028】
本発明は上記しまたは図面に記載した実施例に限定されるものではなく、次のような変形が可能である。
不連続に走査を行う「行飛ばしスキャン」は、必ずしも飛ばす行数を毎回同じにする必要はなく、例えば、5行飛ばし、6行飛ばし、7行飛ばしといったように、飛ばす行数を変化させても良い。
また、一般的に、読み取り対象エリアの中央付近に情報コードが位置する確率が高いので、例えば、エリアの上端側,下端側の飛ばし行数は多くして、エリアの中間部分の飛ばし行数を少なくするようにしても良い。
【0029】
エリアセンサは、CMOSイメージセンサ9に限ることなく、CCDセンサなどであっても良い。
情報コードの位置検出は、CPU18がソフトウエアによって行うものに限らず、判別手段として専用のハードウエアをゲートアレイやFPGAなどで構成し、その検出結果をCPU18に渡すように構成しても良い。
【0030】
2次元コードについては、QRコードの他、PDF417(登録商標)やデータマトリクス(登録商標)など、どのようなものでも良い。
【図面の簡単な説明】
【0031】
【図1】本発明の第1実施例であり、情報コード読取装置に内蔵されるCPUによって行われる、情報コード読取り処理の制御内容を示すフローチャート
【図2】「行飛ばしスキャン」によってバーコードを読み取る状態を示す図
【図3】図1のステップS2〜S4のループを繰り返している場合に、CPUによって実行される処理の流れを示す図
【図4】QRコードについての図2相当図
【図5】制御装置の構成を概略的に示すブロック図
【図6】情報コード読取装置の縦断側面図
【図7】本発明の第2実施例を示す図1相当図
【符号の説明】
【0032】
図面中、1は情報コード読取装置、9はCMOSイメージセンサ(エリアセンサ)、18はCPU(判別手段,デコード手段,制御手段)を示す。


【特許請求の範囲】
【請求項1】
所定のエリア内に位置している情報コードを光学的に走査して読取った画像データを出力するもので、前記エリアについて行う走査を、連続する走査位置に対して不連続に実行可能に構成されるエリアセンサと、
このエリアセンサより出力される画像データに基づき、前記エリア内について情報コードが含まれている位置を判別する判別手段と、
前記エリアセンサより出力される画像データをデコードするデコード手段と、
前記エリアセンサによる読取り動作、並びに前記判別手段,前記デコード手段を統括的に制御する制御手段とを備え、
前記制御手段は、
前記エリアセンサに走査を不連続に実行させた場合に、前記判別手段に情報コードが含まれている位置を判別させると、
前記情報コードが含まれている位置にかかる部分だけを前記エリアセンサに連続的に走査させ、その際に出力される画像データについて前記デコード手段にデコード処理を実行させることを特徴とする情報コード読取装置。
【請求項2】
前記制御手段は、前記エリアセンサに走査を不連続に実行させた場合に出力される画像データについても、前記デコード手段にデコード処理を実行させることを特徴とする請求項1記載の情報コード読取装置。
【請求項3】
前記エリアセンサは、CMOSイメージセンサで構成されていることを特徴とする請求項1又は2記載の情報コード読取装置。
【請求項4】
所定のエリア内に位置している情報コードを光学的に走査して読取った画像データを出力するエリアセンサに走査を不連続に実行させ、その際に出力される画像データに基づき、前記エリア内について情報コードが含まれている位置を判別し、
前記情報コードが含まれている位置にかかる部分だけを前記エリアセンサに連続的に走査させ、その際に出力される画像データについてデコード処理を行なうことを特徴とする情報コードの読取方法。
【請求項5】
前記エリアセンサに走査を不連続に実行させた場合に出力される画像データについても、デコード処理を実行させることを特徴とする請求項4記載の情報コードの読取方法。


【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate