(57)【特許請求の範囲】
【請求項１】
情報コードを撮像可能な撮像手段と、
前記撮像手段によって前記情報コードの一部分が撮像されたときに、その撮像によって得られた前記情報コードの一部分の画像から前記情報コードの特徴を示す特徴パターンを検出する特徴パターン検出手段と、
前記特徴パターン検出手段によって前記特徴パターンが検出された場合に、当該特徴パターンの画像内容に基づいて解像度を決定する解像度決定手段と、
前記撮像手段によって前記情報コードの各部分がそれぞれ撮像されたときに、前記解像度決定手段によって決定された解像度でそれら各部分の部分画像をそれぞれ記憶する記憶手段と、
前記記憶手段に記憶される少なくとも２つの部分画像に共通パターンが存在する場合に当該共通のパターンに基づいてそれら部分画像を結合し、且つその結合によって得られた結合画像を前記記憶手段に再記憶する画像結合手段と、
前記画像結合手段による結合の結果、前記情報コードの全体画像が得られた場合に、当該全体画像のデコードを行う解読手段と、
を有することを特徴とする情報コード読取装置。
【請求項２】
前記解像度決定手段は、前記特徴パターン検出手段によって前記特徴パターンが検出された場合に、画像内における当該特徴パターンのサイズが大きいほど前記解像度を低く設定することを特徴とする請求項１に記載の情報コード読取装置。
【請求項３】
前記情報コードは、矩形状に構成されるものであり、
更に、前記画像結合手段による結合の結果得られた前記結合画像から、前記情報コードの角部を２以上検出する角部検出手段と、
前記角部検出手段によって検出された２以上の前記角部の位置に基づいて前記情報コードのセル数を算出するセル数算出手段と、
前記画像結合手段によって得られた前記結合画像の中に前記セル数算出手段によって算出された前記情報コードのセル数の分だけセルが含まれるか否かを判断する判断手段と、
を備えており、
前記解読手段は、前記判断手段により、前記結合画像の中に前記情報コードのセル数が含まれると判断された場合に、当該結合画像を前記全体画像としてデコードを行うことを特徴とする請求項１又は請求項２に記載の情報コード読取装置。
【請求項４】
前記解読手段は、一次元コードと二次元コードとを解読可能とされており、
前記撮像手段によって撮像された前記一部分の画像に基づいて前記情報コードが一次元コード及び二次元コードのいずれであるかを判定するコード判定手段と、
前記コード判定手段によって前記情報コードが前記一次元コードであると判定された場合に、ユーザに対して前記全体画像を複数回生成するための操作を要求する要求手段と、
前記要求手段による要求に応じて前記全体画像が所定の複数回生成された場合に、前記複数回の前記全体画像の生成結果が一致したことを条件としてデコード成功とする対応手段と、
を有することを特徴とする請求項１から請求項３のいずれか一項に記載の情報コード読取装置。
【請求項５】
前記画像結合手段によって得られた前記結合画像を表示する表示装置を備え、
前記表示装置は、前記画像結合手段によって前記結合画像が更新される度に、新たな前記結合画像を表示することを特徴とする請求項１から請求項４のいずれか一項に記載の情報コード読取装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報コード読取装置に関するものである。
【背景技術】
【０００２】
バーコードや二次元コードなどの情報コードは様々なサイズのものが提供されており、その使われ方も様々である。例えば、工場内で作業する作業者が遠距離に配置される情報コードを読み取るようなケースもあれば、店舗などにおいて店員が商品等に付された情報コードを近距離で読み取るケースもある。このような情報コードを読み取る情報コード読取装置は、一般的には装置内に設けられる撮像光学系の画角内に収めるように情報コードを撮像し、得られたコード全体の撮像画像に基づいてデコードを行っている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００１−１２５７１３公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
ところで、近年では、上記のような情報コードを遠距離でも近距離でも読み取ることが求められる場合がある。しかしながら、遠距離の情報コードを読み取るためには、情報コードを構成する単位セル（例えば、二次元コードのセルや、バーコードのバーなど）当たりの画素割り当て量（即ち、セル１つ当たりに割り当てられる撮像素子数）を確保するため、画角を狭くして画像内に占める情報コードの割合を大きくする必要があった。逆に、近距離の情報コードを読み取るためには、近距離であっても情報コード全体を網羅できるように画角を広くする必要があり、遠距離用と近距離用とで画角を異ならせる必要があった。
【０００５】
このようなことを考慮せず、例えば遠距離用の狭い画角で近距離の情報コードを撮像すると、情報コード全体を撮像できずに解読不能となってしまうといった問題があった。逆に近距離用の広い画角で遠距離の情報コードを撮像すると、単位セル当たりの画素割り当て量が不足し、セル形状を正確に認識できずに解読不能となるという問題があった。そして、このような問題を解消する案としては、遠距離用の光学系と近距離用の光学系を両方設ける構成や、複数のレンズを駆動させて画角を変更可能とする構成などが考えられるが、いずれも部品点数の増加や装置構成の大型化を招くことになり、コスト面や耐衝撃性の面で不利にならざるを得なかった。
【０００６】
なお、特許文献１には、関連技術として、一画面に入りきらないバーコードを読み取る装置（ペン型スキャナ）が開示されているが、この装置では、バーコードを走査する走査速度（装置の移動速度）を一定とすることが求められ、適切に読み取るためにはある程度の熟練度が必要であった。また、読取対象が近距離のバーコードに限定されてしまうといった問題もあった。
【０００７】
本発明は、上述した課題を解決するためになされたものであり、より遠距離の情報コードの読み取りを可能としつつ、画角に入りきらない近距離の情報コードについても良好に読み取り得る構成をより簡易に実現することを目的とする。
【課題を解決するための手段】
【０００８】
本発明は、情報コードを撮像可能な撮像手段と、
前記撮像手段によって前記情報コードの一部分が撮像されたときに、その撮像によって得られた前記情報コードの一部分の画像から前記情報コードの特徴を示す特徴パターンを検出する特徴パターン検出手段と、
前記特徴パターン検出手段によって前記特徴パターンが検出された場合に、当該特徴パターンの画像内容に基づいて解像度を決定する解像度決定手段と、
前記撮像手段によって前記情報コードの各部分がそれぞれ撮像されたときに、前記解像度決定手段によって決定された解像度でそれら各部分の部分画像をそれぞれ記憶する記憶手段と、
前記記憶手段に記憶される少なくとも２つの部分画像に共通パターンが存在する場合に当該共通のパターンに基づいてそれら部分画像を結合し、且つその結合によって得られた結合画像を前記記憶手段に再記憶する画像結合手段と、
前記画像結合手段による結合の結果、前記情報コードの全体画像が得られた場合に、当該全体画像のデコードを行う解読手段と、
を有することを特徴とする。
【発明の効果】
【０００９】
情報コードが大きい場合や近距離にある場合など、情報コードを一度に撮像せずに複数回の撮像画像を合成してコード画像を得る場合、解像度を大きくしすぎると各回毎に取得するデータ量が大きくなるため、膨大のデータを記憶、処理する必要が生じ、メモリ領域を圧迫すると共に処理時間の遅延を招くことが懸念される。しかしながら、解像度を必要以上に低くしすぎると画素割り当てが不足し、セル形状等を正確に認識できずに解読不能となる懸念があり、解像度の決定方法が問題となる。
そこで、本発明では、情報コードの一部分が撮像されたときに、その撮像によって得られた情報コードの一部分の画像から特徴パターンの検出を試み、特徴パターンが検出された場合には、当該特徴パターンの画像内容に基づいて解像度を決定している。情報コードの一部分が撮像されたときに規定形状の特徴パターンの画像状態を見ればこれを目安として情報コード全体がどのような状態で撮像されるかを推測することができる。例えば撮像画像内での特徴パターンの大きさが相対的に大きい場合には画素割り当てが確保されやすく、撮像画像内での特徴パターンの大きさが相対的に小さい場合には画素割り当てが確保されにくいといった傾向があるため、特徴パターンの画像内容を把握して解像度を決定すれば、推測される画像状態に適した解像度を選ぶことができる。
そして、情報コードの各部分がそれぞれ撮像されたときには、このように決定された解像度でそれら各部分の部分画像をそれぞれ記憶し、少なくとも２つの部分画像に共通パターンが存在する場合に当該共通のパターンに基づいてそれら部分画像を結合するといった手法で情報コードの全体画像を生成し、デコードを行うようになっている。従って、画素割り当て不足や必要以上の処理遅延を防ぎつつ全体画像を生成することができ、全体画像をより確実に解読しやすくなる。
【００１０】
請求項２の発明では、解像度決定手段は、特徴パターン検出手段によって特徴パターンが検出された場合に、画像内における当該特徴パターンのサイズが大きいほど解像度を低く設定している。
このように画像内での特徴パターンのサイズを具体的に把握することで、結果として各セルのサイズを把握することができる。検出された特徴パターンのサイズが相対的に大きく、画像内でのセルサイズが相対的に大きい場合（即ち、各セルに対する画素割り当て数が大きくなる場合）には、解像度を低く設定しても各セルに対する割り当て数を確保しやすいため、このような場合には、解像度を下げて記憶手段に記憶するデータ量を少なくすることができる。逆に、セルサイズが相対的に小さい場合には、解像度を高く設定し、各セルに対する画素割り当て数が小さくなりすぎるのを抑えることができる。
【００１１】
請求項３の発明では、矩形状の情報コードが読み取り対象であり、更に、画像結合手段による結合の結果得られた結合画像から、情報コードの角部を２以上検出する角部検出手段と、角部検出手段によって検出された２以上の角部の位置に基づいて情報コードのセル数を算出するセル数算出手段と、画像結合手段によって得られた結合画像の中にセル数算出手段によって算出された情報コードのセル数の分だけセルが含まれるか否かを判断する判断手段とが設けられている。そして、解読手段は、判断手段により、結合画像の中に情報コードのセル数が含まれると判断された場合に、当該結合画像を全体画像としてデコードを行っている。
この構成によれば、結合の途中であっても情報コード内に含まれるセル数を推定することができる。そして、このように推定されたセル数に基づいて全体画像が完成したか否かを適切に判断できるようになる。
【００１２】
請求項４の発明では、解読手段が、一次元コードと二次元コードとを解読可能とされており、更に、撮像手段によって撮像された一部分の画像に基づいて情報コードが一次元コード及び二次元コードのいずれであるかを判定するコード判定手段と、コード判定手段によって情報コードが一次元コードであると判定された場合に、ユーザに対して全体画像を複数回生成するための操作を要求する要求手段とが設けられている。そして、対応手段は、要求手段による要求に応じて全体画像が所定の複数回生成された場合に、複数回の全体画像の生成結果が一致したことを条件としてデコード成功とするようになっている。
一次元コードは二次元コードと比較して、共通パターンが複数位置に存在する可能性が高く、誤った結合がなされる虞がある。従って、一次元コードが読取対象であるか否かを判断し、一次元コードの場合、複数回の全体画像の生成結果が一致したことを条件としてデコード成功とすれば、誤った結合に基づいたデコードの誤りを防ぎやすくなる。
【００１３】
請求項５の発明では、画像結合手段によって得られた結合画像を表示する表示装置が設けられ、この表示装置は、画像結合手段によって結合画像が更新される度に、新たな結合画像を表示するようになっている。
この構成によれば、ユーザが結合過程を視覚的に把握することができ、未結合部分を撮像するための操作を行いやすくなる。
【図面の簡単な説明】
【００１４】
【図１】図１は、第１実施形態に係る情報コード読取装置の電気的構成を例示するブロック図である。
【図２】図２は、図１の情報コード読取装置を用いた読み取りの様子を説明する説明図である。
【図３】図３は、図１の情報コード読取装置で行われる読取処理を例示するフローチャートである。
【図４】図４は、図１の情報コード読取装置で用いられる撮像手段の撮像範囲に情報コードの一部分（左上部分）が入っている状態を概念的に説明する説明図である。
【図５】図５（Ａ）は、撮像範囲を図３の状態から所定方向にずらした様子を概念的に説明する説明図であり、図５（Ｂ）は、図４（Ａ）の状態から更にずらした様子を説明する説明図である。
【図６】図６は、コードの左上部分を撮像した画像から抽出される共通パターン等を説明する説明図である。
【図７】図７（Ａ）は、図６の画像を取得したときの撮像範囲から横にずらした撮像範囲で抽出される共通パターン等を説明する説明図であり、図７（Ｂ）は、図７（Ａ）の画像を取得したときの撮像範囲から更に横にずらした撮像範囲で抽出される共通パターン等を説明する説明図である。
【図８】図８（Ａ）は、第２実施形態に関し、バーコードの一部分を撮像範囲とする状態を概念的に説明する説明図であり、図８（Ｂ）は、撮像範囲を図８（Ａ）の状態から所定方向にずらした様子を概念的に説明する説明図である。
【発明を実施するための形態】
【００１５】
[第１実施形態]
以下、本発明を具現化した第１実施形態について、図面を参照して説明する。
（全体構成）
まず、図１等を参照して本実施形態に係る情報コード読取装置の全体構成について説明する。図１に示すように、本実施形態に係る情報コード読取装置１は、一次元コード、二次元コード等の情報コードＱを読み取るコードリーダとして構成されるものであり、図示しないケースによって外郭が構成され、このケース内に各種電子部品が収容された構成をなしている。
【００１６】
この情報コード読取装置１は、主に、照明光源２１、受光センサ２３、フィルタ２５、結像レンズ２７等の光学系と、メモリ３５、制御回路４０、操作スイッチ４２、液晶表示器４６等のマイクロコンピュータ（以下「マイコン」という）系と、電源スイッチ４１、電池４９等の電源系と、から構成されている。なお、これらは、図略のプリント配線板に実装あるいはケース（図示略）内に内装されている。
【００１７】
光学系は、照明光源２１、受光センサ２３、フィルタ２５、結像レンズ２７等から構成されている。照明光源２１は、照明光Ｌｆを発光可能な照明光源として機能するもので、例えば、赤色のＬＥＤとこのＬＥＤの出射側に設けられる拡散レンズ、集光レンズ等とから構成されている。本実施形態では、受光センサ２３を挟んだ両側に照明光源２１が設けられており、ケースに形成された読取口（図示略）を介して読取対象物Ｒに向けて照明光Ｌｆを照射可能に構成されている。この読取対象物Ｒとしては、例えば、紙、樹脂材料、金属材料等の様々な対象が考えられ、このような読取対象物Ｒに情報コードＱが印刷、ダイレクトマーキングなどによって形成されている。なお、以下の説明では、情報コードＱとして図２のようなＱＲコード（登録商標）を例示して説明するが、データマトリックコードやマキシコードなどの他の二次元コードに置き換えてもよい。
【００１８】
受光センサ２３は、読取対象物Ｒや情報コードＱに照射されて反射した反射光Ｌｒを受光可能に構成されるもので、例えば、Ｃ−ＭＯＳやＣＣＤ等の固体撮像素子である受光素子を２次元に配列したエリアセンサが、これに相当する。この受光センサ２３は、結像レンズ２７を介して入射する入射光を受光面２３ａで受光可能に図略のプリント配線板に実装されている。なお、受光センサ２３は、「撮像手段」の一例に相当する。
【００１９】
フィルタ２５は、反射光Ｌｒの波長相当以下の光の通過を許容し、当該波長相当を超える光の通過を遮断し得る光学的なローパスフィルタで、ケースに形成された読取口（図示略）と結像レンズ２７との間に設けられている。これにより、反射光Ｌｒの波長相当を超える不要な光が受光センサ２３に入射することを抑制している。また、結像レンズ２７は、例えば、鏡筒とこの鏡筒内に収容される複数の集光レンズとによって構成されており、本実施形態では、ケースに形成された読取口（図示略）に入射する反射光Ｌｒを集光し、受光センサ２３の受光面２３ａに情報コードＱのコード画像（例えば一部の画像）を結像可能に構成されている。
【００２０】
マイコン系は、増幅回路３１、Ａ／Ｄ変換回路３３、メモリ３５、アドレス発生回路３６、同期信号発生回路３８、制御回路４０、操作スイッチ４２、ＬＥＤ４３、ブザー４４、液晶表示器４６、通信インタフェース４８等から構成されている。このマイコン系は、マイコン（情報処理装置）として機能し得る制御回路４０及びメモリ３５を中心として構成され、前述した光学系によって撮像された情報コードＱの画像信号をハードウェア的およびソフトウェア的に信号処理し得るものである。
【００２１】
光学系の受光センサ２３から出力される画像信号（アナログ信号）は、増幅回路３１に入力されることで所定ゲインで増幅された後、Ａ／Ｄ変換回路３３に入力され、アナログ信号からディジタル信号に変換される。そして、ディジタル化された画像信号、つまり画像データ（画像情報）は、メモリ３５に入力され、当該メモリ３５の画像データ蓄積領域に蓄積される。同期信号発生回路３８は、受光センサ２３およびアドレス発生回路３６に対する同期信号を発生可能に構成されており、またアドレス発生回路３６は、この同期信号発生回路３８から供給される同期信号に基づいて、メモリ３５に格納される画像データの格納アドレスを発生可能に構成されている。
【００２２】
メモリ３５は、半導体メモリ装置で、例えばＲＡＭ（ＤＲＡＭ、ＳＲＡＭ等）やＲＯＭ（ＥＰＲＯＭ、ＥＥＰＲＯＭ等）がこれに相当する。このメモリ３５のうちのＲＡＭには、前述した画像データ蓄積領域のほかに、制御回路４０が算術演算や論理演算等の各処理時に利用する作業領域や読取条件テーブルも確保可能に構成されている。またＲＯＭには、後述する読取処理等を実行可能な所定プログラムやその他、照明光源２１、受光センサ２３等の各ハードウェアを制御可能なシステムプログラム等が予め格納されている。
【００２３】
制御回路４０は、情報コード読取装置１全体を制御可能なマイコンで、ＣＰＵ、システムバス、入出力インタフェース等からなるものであり、情報処理機能を有している。この制御回路４０には、内蔵された入出力インタフェースを介して種々の入出力装置（周辺装置）が接続されており、本実施形態の場合、電源スイッチ４１、操作スイッチ４２、ＬＥＤ４３、ブザー４４、液晶表示器４６、通信インタフェース４８等が接続されている。また、通信インタフェース４８には、情報コード読取装置１の上位システムに相当するホストコンピュータＨＳＴなどを接続できるようになっている。
【００２４】
電源系は、電源スイッチ４１、電池４９等により構成されており、制御回路４０により管理される電源スイッチ４１のオンオフによって、上述した各装置や各回路に、電池４９から供給される駆動電圧の導通や遮断が制御されている。なお、電池４９は、所定の直流電圧を発生可能な２次電池で、例えば、リチウムイオン電池等がこれに相当する。
【００２５】
（読取処理）
次に、情報コード読取装置１で行われる読取処理について説明する。
図３に示す読取処理は、例えば、ユーザによる所定操作（操作スイッチ４２の押圧操作等）などをトリガとして開始され、処理開始に伴い受光センサ２３は継続的に画像データを取得する状態（撮像継続状態）となり、例えば所定の短時間毎に画像データをメモリに順次記憶するようになる。
【００２６】
このように読取処理が開始されると、まずコード固有情報（特徴パターン）の検出処理を行う（Ｓ１）。このＳ１の処理は例えば受光センサ２３が画像を取得する毎に行われ、受光センサが取得した画像から情報コードＱに含まれる特徴パターンＦＰ（図２のようなＱＲコードの場合には、位置検出パターン）を探し、検出されない場合にはＳ２にてＮｏに進み、新たに取得された画像から再度特徴パターンＦＰ検出を試みることになる。一方、受光センサが取得した画像から特徴パターンＦＰが検出された場合には、Ｓ２にてＹｅｓに進む。
【００２７】
なお、本構成は、例えば図２のようにユーザが特徴パターンＦＰの方向を狙って撮像を行えば読取処理が速く行われることになり、このように狙わなくても、撮像範囲を情報コードＱ付近にしておけば、いずれ特徴パターンＦＰが撮像範囲に入って特徴パターンが検出されることになる。二次元コードにおいて特徴パターン（例えばＱＲコード（登録商標）の位置検出パターンや、データマトリックスのアライメントパターン等）を検出する方法は公知の様々な方法を用いることができる。
【００２８】
本実施形態では、図３の処理を行う制御回路４０が特徴パターン検出手段の一例に相当し、受光センサ２３（撮像手段）によって情報コードＱの一部分が撮像されたときに、その撮像によって得られた情報コードＱの一部分の画像から情報コードの特徴を示す特徴パターンを検出するように機能する。
【００２９】
Ｓ２にてＹｅｓに進む場合、検出された特徴パターンＦＰ（位置検出パターン）の画像内容に基づいて解像度を決定する（Ｓ３）。例えば図４のように撮像範囲ＡＲ１が設定されて図６のような撮像画像から特徴パターンの画像ＦＰ１が検出された場合には、その検出された特徴パターン（位置検出パターン）の画像ＦＰ１の幅Ｗ（例えば、特徴パターンＦＰの画像における一辺の画素数）を測定する。
【００３０】
そして、この幅Ｗが所定の第１閾値Ｔ１未満（即ちＷ＜Ｔ１の第１範囲内）の場合には所定の高解像度（受光センサ２３が取得した撮像画像から画素を間引かない解像度）とする。また、検出された特徴パターン（位置検出パターン）の画像ＦＰ１の幅Ｗが第１閾値Ｔ１以上第２閾値Ｔ２未満（即ち、Ｔ１≦Ｗ＜Ｔ２の第２範囲内）の場合には中解像度（上記高解像のときよりも一定割合（例えば１／２程度）で画素を間引いた解像度）とする。また、検出された特徴パターン（位置検出パターン）の画像ＦＰ１の幅Ｗが第２閾値Ｔ２以上（即ち、Ｗ≧Ｔ２の第３範囲内）の場合には低解像度（上記中解像のときよりも更に高い割合（例えば１／４程度）で画素を間引いた解像度）とする。なお、中解像度や低解像度のときの間引き度合いは様々に設定することができる。
【００３１】
本実施形態では、制御回路４０が解像度決定手段の一例に相当し、特徴パターン検出手段によって特徴パターンが検出された場合に、当該特徴パターンの画像内容に基づいて解像度を決定するように機能し、より具体的には、特徴パターンが検出された場合に、画像内における当該特徴パターンのサイズが大きいほど解像度を低く設定するように機能する。
【００３２】
そして、Ｓ３の後には、新たなコード端（情報コードＱの角部）が検出されたか否かを判断する（Ｓ４）。本実施形態では、外形が矩形状の情報コードＱを読み取り対象としており、４つの角部を有しているため、Ｓ４ではいずれかの角部が検出されたかを判断する。Ｓ４の処理は、Ｓ３の処理の後或いはＳ９にて新たな部分画像が撮像される毎に行われ、Ｓ３の後の初回の処理では、Ｓ１で検出されたコード固有情報（図６のような特徴パターンの画像ＦＰ１）の位置を１つのコード端（情報コードの角部）として決定する（Ｓ５）。そして、Ｓ５の後にはＳ７の処理（部分画像の合成処理）に移行することになるが、初回のＳ４の処理でＹｅｓに進んだ場合には部分画像が１つしか存在し無いため、Ｓ７では特に合成処理を行わずにＳ８に移行し、Ｓ８において全セルが検出したと判断されない場合にはＳ９に移行することになる。
【００３３】
そして、Ｓ８でＮｏに進む場合には、Ｓ９にて新たな部分画像を撮像する。このＳ９では、受光センサ２３の現在（Ｓ９実行時点）の撮像範囲に基づいて新たな部分画像を取得し、メモリ３５に記憶する（Ｓ９）。例えば、Ｓ１、Ｓ２で特徴パターンの画像ＦＰ１を検出した撮像範囲が図４のような範囲ＡＲ１であり、この範囲から横にずらされて次にＳ９の時点で図５（Ａ）のような撮像範囲ＡＲ２に至ったときにはこの撮像範囲ＡＲ２の画像（図７（Ａ）のような画像）を取得する。
【００３４】
なお、本実施形態では、メモリ３５、制御回路４０が記憶手段の一例に相当し、受光センサ２３（撮像手段）によって情報コードＱの各部分がそれぞれ撮像されたときに、Ｓ９において、解像度決定手段によって決定された解像度でそれら各部分の部分画像をそれぞれ記憶する。即ち、Ｓ３で決定された解像度が「高解像度」の場合にはＳ９で取得される画像を間引かずにメモリ３５に記憶することになる。一方、Ｓ３で決定された解像度が「中解像度」の場合にはＳ９で取得される画像から一定の割合で画素を間引いてメモリ３５に記憶することになる。また、Ｓ３で決定された解像度が「低解像度」の場合にはＳ９で取得される画像から高い割合（中解像度のときの上記一定の割合よりも高い割合）で画素を間引いてメモリ３５に記憶することになる。
【００３５】
そして、Ｓ９で新たな部分画像が取得された場合、Ｓ４に戻り、Ｓ９で得られた新たな部分画像によって新たなコード端（情報コードの角部）が検出されたか否かを判断する（Ｓ４）。Ｓ４の処理では、新たな取得画像においてコード領域の周囲にマージンが存在し、角部が把握できる場合には、その角部が既に検出済みのものであるか否かを判断する。未検出のコード端（情報コードの角部）が新たに検出されない場合（即ち、直近のＳ９で取得された新たな部分画像に未検出のコード端が存在しない場合）Ｓ４にてＮｏに進み、直近のＳ９で取得された新たな部分画像の中から既存画像に含まれる共通パターンを探すことを試みる。具体的には、既に得られている画像においてマージンに隣接しない部分の画像を共通パターンの候補として抽出し、検出を試みる。例えば、Ｓ１、Ｓ２で特徴パターン（位置検出パターン）の画像ＦＰ１を取得した図６のような画像では、マージン（領域Ｍ及び画像ＦＰ１よりも左側の領域）に隣接しない部分の部分画像Ｐ１１、Ｐ２１が共通パターンの候補となり、次のＳ９で図７（Ａ）のような画像が得られている場合には、このＳ９の直後のＳ６の処理では、図７（Ａ）の画像の中からいずれかの部分画像Ｐ１１，Ｐ１２を探す。図７（Ａ）のように新たな部分画像の中に既存画像に含まれる共通パターン（部分画像Ｐ１１）が存在する場合には、その共通パターンの位置を結合の基準位置として重ねるように図６（Ａ）のような既存画像と図７（Ａ）のような新たな部分画像とを結合するように合成し、その合成後の画像を新たな既存画像として記憶する。この場合、例えば、メモリ領域を確保するために結合前の既存画像を消去することが望ましい。
【００３６】
本実施形態では、制御回路４０が画像結合手段の一例に相当し、メモリ３５（記憶手段）に記憶される少なくとも２つの部分画像に共通パターンが存在する場合に当該共通のパターンに基づいてそれら部分画像を結合し、且つその結合によって得られた結合画像をメモリ３５（記憶手段）に再記憶するように機能する。
【００３７】
このようなＳ７での画像合成処理が終了した後には、全セルが検出されたか否か（即ち、情報コードＱの全画像が取得されたか否か）を判断する（Ｓ８）。例えば読み取り対象の情報コードが縦横同数のセルが配列されるべき情報コードの場合、Ｓ５でいずれか２つのコーナ位置が決定された場合（例えば、図５（Ｂ）のような合成画像が得られている場合）、そのコーナ間のセル数Ｘｃを検出することで、読取対象の情報コードにおける縦横のセル数を把握することができる。即ち、Ｘｃ×Ｘｃとして全セル数を把握することができる。なお、コード画像内でのセル位置の特定は公知の方法を用いることができる。
【００３８】
或いは、読み取り対象の情報コードが縦横同数のセルが配列されるべき情報コードでなくても、Ｓ５で３つのコーナ位置（２辺にマージンが隣接する位置）が決定された場合に、縦のセル数Ｙｃと横のセル数Ｘｃを検出すれば、Ｘｃ×Ｙｃとして全セル数を算出することができる。Ｓ８の処理では、このように全セル数を特定した上で、メモリ３５に記憶されている最新の既存画像において各セル位置を特定すると共に既存画像内のセル数を公知の方法で検出し、全セル数に至っているかを判断する。そして、全セル数に達していない場合、或いは全セル数が把握できない場合にはＳ８にてＮｏに進むことになる。
【００３９】
本実施形態では、制御回路４０が角部検出手段の一例に相当し、画像結合手段による結合の結果得られた結合画像から、情報コードＱの角部を２以上検出するように機能する。また、制御回路４０は、セル数算出手段としても機能し、角部検出手段によって検出された２以上の角部の位置に基づいて情報コードのセル数を算出するように機能する。更に、制御回路４０は、判断手段の一例に相当し、画像結合手段によって得られた結合画像の中にセル数算出手段によって算出された情報コードのセル数の分だけセルが含まれるか否かを判断するように機能する。
【００４０】
そして、Ｓ８でＮｏに進む場合には、Ｓ９にて更に新たな部分画像を撮像する。例えば、前回のＳ９にて図７（Ａ）のような画像が取得され上述のように図６の画像と図７（Ａ）の画像の合成画像が得られている状態において、図５（Ａ）の範囲から更に横にずらされて次のＳ９の時点で図５（Ｂ）のような撮像範囲ＡＲ３に至ったときにはこの撮像範囲ＡＲ３の画像（図７（Ｂ）のような画像）を取得する。
【００４１】
そして、Ｓ９で図７（Ｂ）のような新たな部分画像が取得された場合、Ｓ４に戻り、Ｓ９で得られた新たな部分画像によって新たなコード端（情報コードの角部）が検出されたか否かを判断する（Ｓ４）。図７（Ｂ）のように新たな取得画像においてコード領域の２辺の周囲にマージン（領域Ｍ）が存在し、角部が把握できる場合には、その角部が既に検出済みのものであるか否かを判断する。そして、未検出の場合にはその角部を新たなコーナ位置として決定する（Ｓ５）。なお、Ｓ５の処理でもＳ６と同様の処理が並行して行われる。即ち、直近のＳ９で取得された図７（Ｂ）のような新たな部分画像の中から既存画像（図６と図７（Ａ）を合成した画像）に含まれる共通パターンを探すことを試みる。具体的には、既に得られている画像（図６と図７（Ａ）を合成した画像）においてマージンに隣接しない部分の画像Ｐ１２、Ｐ２１、Ｐ２２を共通パターンの候補として抽出し、次のＳ９で図７（Ｂ）のような画像が得られている場合には、図７（Ｂ）の画像の中からいずれかの部分画像Ｐ１２、Ｐ２１、Ｐ２２を探す。図７（Ｂ）のように新たな部分画像の中に既存画像に含まれる共通パターン（部分画像Ｐ１２）が存在する場合には、その共通パターンの位置を結合の基準位置として重ねるように図６、図７（Ａ）のような既存画像（既存の合成画像）と、図７（Ｂ）のような新たな部分画像とを結合するように合成し、その合成後の画像を新たな既存画像として記憶する。この場合も、合成前の既存画像は消去することが望ましい。
【００４２】
一方、Ｓ８で全セルを検出したと判断された場合にはＳ８にてＹｅｓに進み、直近のＳ８で得られている合成画像（全体画像）に基づいて公知の方法でデコード処理を行う（Ｓ１０）。なお、制御回路４０は、解読手段の一例に相当し、画像結合手段による結合の結果、情報コードＱの全体画像が得られた場合に、当該全体画像のデコードを行うように機能しており、より具体的には、判断手段により結合画像の中に情報コードＱの全セル数（セル数算出手段によって算出された情報コードＱのセル数）が含まれると判断された場合に、当該結合画像を全体画像としてデコードを行うように機能する。
【００４３】
（第１実施形態の主な効果）
情報コードが大きい場合や近距離にある場合など、情報コードを一度に撮像せずに複数回の撮像画像を合成してコード画像を得る場合、解像度を大きくしすぎると各回毎に取得するデータ量が大きくなるため、膨大のデータを記憶、処理する必要が生じ、メモリ領域を圧迫すると共に処理時間の遅延を招くことが懸念される。しかしながら、解像度を必要以上に低くしすぎると画素割り当てが不足し、セル形状等を正確に認識できずに解読不能となる懸念があり、解像度の決定方法が問題となる。
そこで、本発明では、情報コードの一部分が撮像されたときに、その撮像によって得られた情報コードの一部分の画像から特徴パターンの検出を試み、特徴パターンが検出された場合には、当該特徴パターンの画像内容に基づいて解像度を決定している。情報コードの一部分が撮像されたときに規定形状の特徴パターンの画像状態を見ればこれを目安として情報コード全体がどのような状態で撮像されるかを推測することができる。例えば撮像画像内での特徴パターンの大きさが相対的に大きい場合には画素割り当てが確保されやすく、撮像画像内での特徴パターンの大きさが相対的に小さい場合には画素割り当てが確保されにくいといった傾向があるため、特徴パターンの画像内容を把握して解像度を決定すれば、推測される画像状態に適した解像度を選ぶことができる。
そして、情報コードの各部分がそれぞれ撮像されたときには、このように決定された解像度でそれら各部分の部分画像をそれぞれ記憶し、少なくとも２つの部分画像に共通パターンが存在する場合に当該共通のパターンに基づいてそれら部分画像を結合するといった手法で情報コードの全体画像を生成し、デコードを行うようになっている。従って、画素割り当て不足や必要以上の処理遅延を防ぎつつ全体画像を生成することができ、全体画像をより確実に解読しやすくなる。
【００４４】
また、本実施形態では、解像度決定手段は、特徴パターン検出手段によって特徴パターンが検出された場合に、画像内における当該特徴パターンのサイズが大きいほど解像度を低く設定している。
このように画像内での特徴パターンのサイズを具体的に把握することで、結果として各セルのサイズを把握することができる。検出された特徴パターンのサイズが相対的に大きく、画像内でのセルサイズが相対的に大きい場合（即ち、各セルに対する画素割り当て数が大きくなる場合）には、解像度を低く設定しても各セルに対する割り当て数を確保しやすいため、このような場合には、解像度を下げて記憶手段に記憶するデータ量を少なくすることができる。逆に、セルサイズが相対的に小さい場合には、解像度を高く設定し、各セルに対する画素割り当て数が小さくなりすぎるのを抑えることができる。
【００４５】
また、本実施形態では、矩形状の情報コードが読み取り対象であり、更に、画像結合手段による結合の結果得られた結合画像から、情報コードの角部を２以上検出する角部検出手段と、角部検出手段によって検出された２以上の角部の位置に基づいて情報コードのセル数を算出するセル数算出手段と、画像結合手段によって得られた結合画像の中にセル数算出手段によって算出された情報コードのセル数の分だけセルが含まれるか否かを判断する判断手段とが設けられている。そして、判断手段により、結合画像の中に情報コードのセル数が含まれると判断された場合に、当該結合画像を全体画像としてデコードを行っている。
この構成によれば、結合の途中であっても情報コード内に含まれるセル数を推定することができる。そして、このように推定されたセル数に基づいて全体画像が完成したか否かを適切に判断できるようになる。
【００４６】
また、本実施形態では、画像結合手段によって得られた結合画像を表示する液晶表示器４６（表示装置）が設けられ、この液晶表示器４６は、制御回路４０の制御により、上述の画像結合手段によって結合画像が更新される度に、新たな結合画像を表示するようになっている。この構成によれば、ユーザが結合過程を視覚的に把握することができ、未結合部分を撮像するための操作を行いやすくなる。
【００４７】
[第２実施形態]
次に、本発明の第２実施形態について説明する。
第２実施形態は、図３の読取処理の一部の具体的内容のみが第１実施形態と異なり、それ以外は第１実施形態と同様である。例えば、図１等のハードウェア構成については第１実施形態と同様であるので詳細な説明は省略する。
【００４８】
第２実施形態に係る読取装置では、解読手段に相当する制御回路４０により一次元コードと二次元コードをいずれも解読可能とされている。また、制御回路４０は、コード判定手段の一例に相当し、受光センサ２３（撮像手段）によって情報コードの一部分が撮像された場合に、一部分の画像に基づいて情報コードが一次元コード及び二次元コードのいずれであるかを判定可能とされている。具体的には、図３のＳ１において、一次元コードの特徴パターン及び二次元コードの特徴パターンのそれぞれの検出を試み、一次元コードの特徴パターン（例えば、スタートキャラクタ、ストップキャラクタなど）が検出された場合には読み取り対象が一次元コードであると判断し、二次元コードの特徴パターン（例えば、ＱＲコードの特徴パターン（位置検出パターン）やデータマトリックスのアライメントパターン、タイミングパターンなど）が検出された場合には読み取り対象が二次元コードであると判断する。なお、一次元コードと二次元コードとを判別する方法は、公知の様々な方法を用いることができ、いずれかの種別の一次元コードを判別する公知方法やいずれかの種別の二次元コードを判別する公知方法を様々に適用できる。
【００４９】
例えば、読取処理の開始に伴い図８（Ａ）のような撮像範囲ＡＲａにおいてバーコードに含まれる規定パターン（特定種のバーコードのスタートキャラクタやストップキャラクタなど）が検出された場合、図３のＳ２以降の処理が行われ、Ｓ３にて解像度が決定された後、Ｓ４以降の処理が行われることになる。この場合も、二次元コードと同様、撮像範囲が図８（Ｂ）の範囲ＡＲｂのようにずらされたときには、共通のパターンに基づいて合成画像を生成することになる。このように合成画像の生成を順次行いＳ８にて全セル数を検出したと判断された場合、バーコードが読み取り対象のときには再度Ｓ１以降の処理を実行することになる。具体的には、取対対象の情報コードがバーコード（一次元コード）である判定されている場合、ユーザに対して全体画像を再度生成するための操作を要求する。例えば、図３のＳ１０でのデコード処理の後に、再度読み取りを促す報知を行い、ユーザによって再度の読み取り操作が行われた場合には再度Ｓ１〜Ｓ１０の処理を行う。そして、前回のＳ１０でのデコード結果と再度の処理におけるＳ１０でのデコード結果が一致した場合にデコード成功としてデコード結果の出力等を行う。
【００５０】
なお、本実施形態では、制御回路４０及び液晶表示器４６等が要求手段の一例に相当し、コード判定手段によって情報コードが一次元コードであると判定された場合に、ユーザに対して全体画像を複数回生成するための操作を要求するように機能する。また、制御回路４０は対応手段の一例に相当し、要求手段による要求に応じて全体画像が所定の複数回生成された場合に、複数回の全体画像の生成結果が一致したことを条件としてデコード成功とするようになっている。
【００５１】
一次元コードは二次元コードと比較して、共通パターンが複数位置に存在する可能性が高く、誤った結合がなされる虞がある。従って、一次元コードが読取対象であるか否かを判断し、一次元コードの場合、複数回の全体画像の生成結果が一致したことを条件としてデコード成功とすれば、誤った結合に基づいたデコードの誤りを防ぎやすくなる。
【００５２】
なお、上記説明は、二次元コードについての複数回の全体画像の生成を行わないと限定するものではない。即ち、第１実施形態において、図３の方法で二次元コードについての複数回の全体画像の生成を行い、複数回の全体画像のデコード結果が一致したことを条件としてデコード成功としてもよい。
【００５３】
ユーザによる所定操作により、図３のような合成読み取りを行うモードと、通常の読み取り方式（情報コードの全体画像が撮像されていることを前提とする公知の読み取り方式）で読み取りを行うモードとに切り替えることができるようにしてもよい。
【００５４】
［他の実施形態]
本発明は上記記述及び図面によって説明した実施形態に限定されるものではなく、例えば次のような実施形態も本発明の技術的範囲に含まれる。
【００５５】
上記実施形態では、情報コードとしてＱＲコード（登録商標）の例を示したが、形状が規定された特徴パターンを有する種別であればデータマトリックスやマキシコードなど、他種の情報コードを読み取り対象としてもよい。また、情報コードとして明色セルと暗色セルとが含まれるコードを例示したが、セル種が３種類以上（例えば３色以上）で構成される二次元コード（カラーコード等）などであってもよい。
【００５６】
上記実施形態では、Ｓ１、Ｓ２で検出された特徴パターンの画像のサイズに応じて当該画像サイズが大きくなるほど解像度を低く設定するように解像度を決定していたが、解像度の決定方法はこのような方法に限られない。例えば、Ｓ１、Ｓ２で検出された特徴パターンの画像に割り当てられる画素数を検出し、画素数が大きくなるほど解像度を低く設定するように解像度を決定してもよい。或いは、Ｓ１、Ｓ２で検出された特徴パターンの画像の明色セル及び暗色セルからコントラストを検出し、コントラストが大きくなるほど解像度を低く設定するように解像度を決定してもよい。
【符号の説明】
【００５７】
１…情報コード読取装置
２３…受光センサ（撮像手段）
３５…メモリ（記憶手段）
４０…制御回路（記憶手段、特徴パターン検出手段、解像度決定手段、画像結合手段、解読手段、角部検出手段、セル数算出手段、判断手段、コード判定手段、要求手段、対応手段）
４６…液晶表示器（表示装置）
【図１】
0005780192.tif 000002
【図２】
0005780192.tif 000003
【図３】
0005780192.tif 000004
【図４】
0005780192.tif 000005
【図５】
0005780192.tif 000006
【図６】
0005780192.tif 000007
【図７】
0005780192.tif 000008
【図８】
0005780192.tif 000009