(58)【調査した分野】(Int.Cl.,DB名)
前記解像度決定手段は、前記特徴パターン検出手段によって前記特徴パターンが検出された場合に、画像内における当該特徴パターンのサイズが大きいほど前記解像度を低く設定することを特徴とする請求項1に記載の情報コード読取装置。
【発明の概要】
【発明が解決しようとする課題】
【0004】
ところで、近年では、上記のような情報コードを遠距離でも近距離でも読み取ることが求められる場合がある。しかしながら、遠距離の情報コードを読み取るためには、情報コードを構成する単位セル(例えば、二次元コードのセルや、バーコードのバーなど)当たりの画素割り当て量(即ち、セル1つ当たりに割り当てられる撮像素子数)を確保するため、画角を狭くして画像内に占める情報コードの割合を大きくする必要があった。逆に、近距離の情報コードを読み取るためには、近距離であっても情報コード全体を網羅できるように画角を広くする必要があり、遠距離用と近距離用とで画角を異ならせる必要があった。
【0005】
このようなことを考慮せず、例えば遠距離用の狭い画角で近距離の情報コードを撮像すると、情報コード全体を撮像できずに解読不能となってしまうといった問題があった。逆に近距離用の広い画角で遠距離の情報コードを撮像すると、単位セル当たりの画素割り当て量が不足し、セル形状を正確に認識できずに解読不能となるという問題があった。そして、このような問題を解消する案としては、遠距離用の光学系と近距離用の光学系を両方設ける構成や、複数のレンズを駆動させて画角を変更可能とする構成などが考えられるが、いずれも部品点数の増加や装置構成の大型化を招くことになり、コスト面や耐衝撃性の面で不利にならざるを得なかった。
【0006】
なお、特許文献1には、関連技術として、一画面に入りきらないバーコードを読み取る装置(ペン型スキャナ)が開示されているが、この装置では、バーコードを走査する走査速度(装置の移動速度)を一定とすることが求められ、適切に読み取るためにはある程度の熟練度が必要であった。また、読取対象が近距離のバーコードに限定されてしまうといった問題もあった。
【0007】
本発明は、上述した課題を解決するためになされたものであり、より遠距離の情報コードの読み取りを可能としつつ、画角に入りきらない近距離の情報コードについても良好に読み取り得る構成をより簡易に実現することを目的とする。
【課題を解決するための手段】
【0008】
本発明は、情報コードを撮像可能な撮像手段と、
前記撮像手段によって前記情報コードの一部分が撮像されたときに、その撮像によって得られた前記情報コードの一部分の画像から前記情報コードの特徴を示す特徴パターンを検出する特徴パターン検出手段と、
前記特徴パターン検出手段によって前記特徴パターンが検出された場合に、当該特徴パターンの画像内容に基づいて解像度を決定する解像度決定手段と、
前記撮像手段によって前記情報コードの各部分がそれぞれ撮像されたときに、前記解像度決定手段によって決定された解像度でそれら各部分の部分画像をそれぞれ記憶する記憶手段と、
前記記憶手段に記憶される少なくとも2つの部分画像に共通パターンが存在する場合に当該共通のパターンに基づいてそれら部分画像を結合し、且つその結合によって得られた結合画像を前記記憶手段に再記憶する画像結合手段と、
前記画像結合手段による結合の結果、前記情報コードの全体画像が得られた場合に、当該全体画像のデコードを行う解読手段と、
を有することを特徴とする。
【発明の効果】
【0009】
情報コードが大きい場合や近距離にある場合など、情報コードを一度に撮像せずに複数回の撮像画像を合成してコード画像を得る場合、解像度を大きくしすぎると各回毎に取得するデータ量が大きくなるため、膨大のデータを記憶、処理する必要が生じ、メモリ領域を圧迫すると共に処理時間の遅延を招くことが懸念される。しかしながら、解像度を必要以上に低くしすぎると画素割り当てが不足し、セル形状等を正確に認識できずに解読不能となる懸念があり、解像度の決定方法が問題となる。
そこで、本発明では、情報コードの一部分が撮像されたときに、その撮像によって得られた情報コードの一部分の画像から特徴パターンの検出を試み、特徴パターンが検出された場合には、当該特徴パターンの画像内容に基づいて解像度を決定している。情報コードの一部分が撮像されたときに規定形状の特徴パターンの画像状態を見ればこれを目安として情報コード全体がどのような状態で撮像されるかを推測することができる。例えば撮像画像内での特徴パターンの大きさが相対的に大きい場合には画素割り当てが確保されやすく、撮像画像内での特徴パターンの大きさが相対的に小さい場合には画素割り当てが確保されにくいといった傾向があるため、特徴パターンの画像内容を把握して解像度を決定すれば、推測される画像状態に適した解像度を選ぶことができる。
そして、情報コードの各部分がそれぞれ撮像されたときには、このように決定された解像度でそれら各部分の部分画像をそれぞれ記憶し、少なくとも2つの部分画像に共通パターンが存在する場合に当該共通のパターンに基づいてそれら部分画像を結合するといった手法で情報コードの全体画像を生成し、デコードを行うようになっている。従って、画素割り当て不足や必要以上の処理遅延を防ぎつつ全体画像を生成することができ、全体画像をより確実に解読しやすくなる。
【0010】
請求項2の発明では、解像度決定手段は、特徴パターン検出手段によって特徴パターンが検出された場合に、画像内における当該特徴パターンのサイズが大きいほど解像度を低く設定している。
このように画像内での特徴パターンのサイズを具体的に把握することで、結果として各セルのサイズを把握することができる。検出された特徴パターンのサイズが相対的に大きく、画像内でのセルサイズが相対的に大きい場合(即ち、各セルに対する画素割り当て数が大きくなる場合)には、解像度を低く設定しても各セルに対する割り当て数を確保しやすいため、このような場合には、解像度を下げて記憶手段に記憶するデータ量を少なくすることができる。逆に、セルサイズが相対的に小さい場合には、解像度を高く設定し、各セルに対する画素割り当て数が小さくなりすぎるのを抑えることができる。
【0011】
請求項3の発明では、矩形状の情報コードが読み取り対象であり、更に、画像結合手段による結合の結果得られた結合画像から、情報コードの角部を2以上検出する角部検出手段と、角部検出手段によって検出された2以上の角部の位置に基づいて情報コードのセル数を算出するセル数算出手段と、画像結合手段によって得られた結合画像の中にセル数算出手段によって算出された情報コードのセル数の分だけセルが含まれるか否かを判断する判断手段とが設けられている。そして、解読手段は、判断手段により、結合画像の中に情報コードのセル数が含まれると判断された場合に、当該結合画像を全体画像としてデコードを行っている。
この構成によれば、結合の途中であっても情報コード内に含まれるセル数を推定することができる。そして、このように推定されたセル数に基づいて全体画像が完成したか否かを適切に判断できるようになる。
【0012】
請求項4の発明では、解読手段が、一次元コードと二次元コードとを解読可能とされており、更に、撮像手段によって撮像された一部分の画像に基づいて情報コードが一次元コード及び二次元コードのいずれであるかを判定するコード判定手段と、コード判定手段によって情報コードが一次元コードであると判定された場合に、ユーザに対して全体画像を複数回生成するための操作を要求する要求手段とが設けられている。そして、対応手段は、要求手段による要求に応じて全体画像が所定の複数回生成された場合に、複数回の全体画像の生成結果が一致したことを条件としてデコード成功とするようになっている。
一次元コードは二次元コードと比較して、共通パターンが複数位置に存在する可能性が高く、誤った結合がなされる虞がある。従って、一次元コードが読取対象であるか否かを判断し、一次元コードの場合、複数回の全体画像の生成結果が一致したことを条件としてデコード成功とすれば、誤った結合に基づいたデコードの誤りを防ぎやすくなる。
【0013】
請求項5の発明では、画像結合手段によって得られた結合画像を表示する表示装置が設けられ、この表示装置は、画像結合手段によって結合画像が更新される度に、新たな結合画像を表示するようになっている。
この構成によれば、ユーザが結合過程を視覚的に把握することができ、未結合部分を撮像するための操作を行いやすくなる。
【発明を実施するための形態】
【0015】
[第1実施形態]
以下、本発明を具現化した第1実施形態について、図面を参照して説明する。
(全体構成)
まず、
図1等を参照して本実施形態に係る情報コード読取装置の全体構成について説明する。
図1に示すように、本実施形態に係る情報コード読取装置1は、一次元コード、二次元コード等の情報コードQを読み取るコードリーダとして構成されるものであり、図示しないケースによって外郭が構成され、このケース内に各種電子部品が収容された構成をなしている。
【0016】
この情報コード読取装置1は、主に、照明光源21、受光センサ23、フィルタ25、結像レンズ27等の光学系と、メモリ35、制御回路40、操作スイッチ42、液晶表示器46等のマイクロコンピュータ(以下「マイコン」という)系と、電源スイッチ41、電池49等の電源系と、から構成されている。なお、これらは、図略のプリント配線板に実装あるいはケース(図示略)内に内装されている。
【0017】
光学系は、照明光源21、受光センサ23、フィルタ25、結像レンズ27等から構成されている。照明光源21は、照明光Lfを発光可能な照明光源として機能するもので、例えば、赤色のLEDとこのLEDの出射側に設けられる拡散レンズ、集光レンズ等とから構成されている。本実施形態では、受光センサ23を挟んだ両側に照明光源21が設けられており、ケースに形成された読取口(図示略)を介して読取対象物Rに向けて照明光Lfを照射可能に構成されている。この読取対象物Rとしては、例えば、紙、樹脂材料、金属材料等の様々な対象が考えられ、このような読取対象物Rに情報コードQが印刷、ダイレクトマーキングなどによって形成されている。なお、以下の説明では、情報コードQとして
図2のようなQRコード(登録商標)を例示して説明するが、データマトリックコードやマキシコードなどの他の二次元コードに置き換えてもよい。
【0018】
受光センサ23は、読取対象物Rや情報コードQに照射されて反射した反射光Lrを受光可能に構成されるもので、例えば、C−MOSやCCD等の固体撮像素子である受光素子を2次元に配列したエリアセンサが、これに相当する。この受光センサ23は、結像レンズ27を介して入射する入射光を受光面23aで受光可能に図略のプリント配線板に実装されている。なお、受光センサ23は、「撮像手段」の一例に相当する。
【0019】
フィルタ25は、反射光Lrの波長相当以下の光の通過を許容し、当該波長相当を超える光の通過を遮断し得る光学的なローパスフィルタで、ケースに形成された読取口(図示略)と結像レンズ27との間に設けられている。これにより、反射光Lrの波長相当を超える不要な光が受光センサ23に入射することを抑制している。また、結像レンズ27は、例えば、鏡筒とこの鏡筒内に収容される複数の集光レンズとによって構成されており、本実施形態では、ケースに形成された読取口(図示略)に入射する反射光Lrを集光し、受光センサ23の受光面23aに情報コードQのコード画像(例えば一部の画像)を結像可能に構成されている。
【0020】
マイコン系は、増幅回路31、A/D変換回路33、メモリ35、アドレス発生回路36、同期信号発生回路38、制御回路40、操作スイッチ42、LED43、ブザー44、液晶表示器46、通信インタフェース48等から構成されている。このマイコン系は、マイコン(情報処理装置)として機能し得る制御回路40及びメモリ35を中心として構成され、前述した光学系によって撮像された情報コードQの画像信号をハードウェア的およびソフトウェア的に信号処理し得るものである。
【0021】
光学系の受光センサ23から出力される画像信号(アナログ信号)は、増幅回路31に入力されることで所定ゲインで増幅された後、A/D変換回路33に入力され、アナログ信号からディジタル信号に変換される。そして、ディジタル化された画像信号、つまり画像データ(画像情報)は、メモリ35に入力され、当該メモリ35の画像データ蓄積領域に蓄積される。同期信号発生回路38は、受光センサ23およびアドレス発生回路36に対する同期信号を発生可能に構成されており、またアドレス発生回路36は、この同期信号発生回路38から供給される同期信号に基づいて、メモリ35に格納される画像データの格納アドレスを発生可能に構成されている。
【0022】
メモリ35は、半導体メモリ装置で、例えばRAM(DRAM、SRAM等)やROM(EPROM、EEPROM等)がこれに相当する。このメモリ35のうちのRAMには、前述した画像データ蓄積領域のほかに、制御回路40が算術演算や論理演算等の各処理時に利用する作業領域や読取条件テーブルも確保可能に構成されている。またROMには、後述する読取処理等を実行可能な所定プログラムやその他、照明光源21、受光センサ23等の各ハードウェアを制御可能なシステムプログラム等が予め格納されている。
【0023】
制御回路40は、情報コード読取装置1全体を制御可能なマイコンで、CPU、システムバス、入出力インタフェース等からなるものであり、情報処理機能を有している。この制御回路40には、内蔵された入出力インタフェースを介して種々の入出力装置(周辺装置)が接続されており、本実施形態の場合、電源スイッチ41、操作スイッチ42、LED43、ブザー44、液晶表示器46、通信インタフェース48等が接続されている。また、通信インタフェース48には、情報コード読取装置1の上位システムに相当するホストコンピュータHSTなどを接続できるようになっている。
【0024】
電源系は、電源スイッチ41、電池49等により構成されており、制御回路40により管理される電源スイッチ41のオンオフによって、上述した各装置や各回路に、電池49から供給される駆動電圧の導通や遮断が制御されている。なお、電池49は、所定の直流電圧を発生可能な2次電池で、例えば、リチウムイオン電池等がこれに相当する。
【0025】
(読取処理)
次に、情報コード読取装置1で行われる読取処理について説明する。
図3に示す読取処理は、例えば、ユーザによる所定操作(操作スイッチ42の押圧操作等)などをトリガとして開始され、処理開始に伴い受光センサ23は継続的に画像データを取得する状態(撮像継続状態)となり、例えば所定の短時間毎に画像データをメモリに順次記憶するようになる。
【0026】
このように読取処理が開始されると、まずコード固有情報(特徴パターン)の検出処理を行う(S1)。このS1の処理は例えば受光センサ23が画像を取得する毎に行われ、受光センサが取得した画像から情報コードQに含まれる特徴パターンFP(
図2のようなQRコードの場合には、位置検出パターン)を探し、検出されない場合にはS2にてNoに進み、新たに取得された画像から再度特徴パターンFP検出を試みることになる。一方、受光センサが取得した画像から特徴パターンFPが検出された場合には、S2にてYesに進む。
【0027】
なお、本構成は、例えば
図2のようにユーザが特徴パターンFPの方向を狙って撮像を行えば読取処理が速く行われることになり、このように狙わなくても、撮像範囲を情報コードQ付近にしておけば、いずれ特徴パターンFPが撮像範囲に入って特徴パターンが検出されることになる。二次元コードにおいて特徴パターン(例えばQRコード(登録商標)の位置検出パターンや、データマトリックスのアライメントパターン等)を検出する方法は公知の様々な方法を用いることができる。
【0028】
本実施形態では、
図3の処理を行う制御回路40が特徴パターン検出手段の一例に相当し、受光センサ23(撮像手段)によって情報コードQの一部分が撮像されたときに、その撮像によって得られた情報コードQの一部分の画像から情報コードの特徴を示す特徴パターンを検出するように機能する。
【0029】
S2にてYesに進む場合、検出された特徴パターンFP(位置検出パターン)の画像内容に基づいて解像度を決定する(S3)。例えば
図4のように撮像範囲AR1が設定されて
図6のような撮像画像から特徴パターンの画像FP1が検出された場合には、その検出された特徴パターン(位置検出パターン)の画像FP1の幅W(例えば、特徴パターンFPの画像における一辺の画素数)を測定する。
【0030】
そして、この幅Wが所定の第1閾値T1未満(即ちW<T1の第1範囲内)の場合には所定の高解像度(受光センサ23が取得した撮像画像から画素を間引かない解像度)とする。また、検出された特徴パターン(位置検出パターン)の画像FP1の幅Wが第1閾値T1以上第2閾値T2未満(即ち、T1≦W<T2の第2範囲内)の場合には中解像度(上記高解像のときよりも一定割合(例えば1/2程度)で画素を間引いた解像度)とする。また、検出された特徴パターン(位置検出パターン)の画像FP1の幅Wが第2閾値T2以上(即ち、W≧T2の第3範囲内)の場合には低解像度(上記中解像のときよりも更に高い割合(例えば1/4程度)で画素を間引いた解像度)とする。なお、中解像度や低解像度のときの間引き度合いは様々に設定することができる。
【0031】
本実施形態では、制御回路40が解像度決定手段の一例に相当し、特徴パターン検出手段によって特徴パターンが検出された場合に、当該特徴パターンの画像内容に基づいて解像度を決定するように機能し、より具体的には、特徴パターンが検出された場合に、画像内における当該特徴パターンのサイズが大きいほど解像度を低く設定するように機能する。
【0032】
そして、S3の後には、新たなコード端(情報コードQの角部)が検出されたか否かを判断する(S4)。本実施形態では、外形が矩形状の情報コードQを読み取り対象としており、4つの角部を有しているため、S4ではいずれかの角部が検出されたかを判断する。S4の処理は、S3の処理の後或いはS9にて新たな部分画像が撮像される毎に行われ、S3の後の初回の処理では、S1で検出されたコード固有情報(
図6のような特徴パターンの画像FP1)の位置を1つのコード端(情報コードの角部)として決定する(S5)。そして、S5の後にはS7の処理(部分画像の合成処理)に移行することになるが、初回のS4の処理でYesに進んだ場合には部分画像が1つしか存在し無いため、S7では特に合成処理を行わずにS8に移行し、S8において全セルが検出したと判断されない場合にはS9に移行することになる。
【0033】
そして、S8でNoに進む場合には、S9にて新たな部分画像を撮像する。このS9では、受光センサ23の現在(S9実行時点)の撮像範囲に基づいて新たな部分画像を取得し、メモリ35に記憶する(S9)。例えば、S1、S2で特徴パターンの画像FP1を検出した撮像範囲が
図4のような範囲AR1であり、この範囲から横にずらされて次にS9の時点で
図5(A)のような撮像範囲AR2に至ったときにはこの撮像範囲AR2の画像(
図7(A)のような画像)を取得する。
【0034】
なお、本実施形態では、メモリ35、制御回路40が記憶手段の一例に相当し、受光センサ23(撮像手段)によって情報コードQの各部分がそれぞれ撮像されたときに、S9において、解像度決定手段によって決定された解像度でそれら各部分の部分画像をそれぞれ記憶する。即ち、S3で決定された解像度が「高解像度」の場合にはS9で取得される画像を間引かずにメモリ35に記憶することになる。一方、S3で決定された解像度が「中解像度」の場合にはS9で取得される画像から一定の割合で画素を間引いてメモリ35に記憶することになる。また、S3で決定された解像度が「低解像度」の場合にはS9で取得される画像から高い割合(中解像度のときの上記一定の割合よりも高い割合)で画素を間引いてメモリ35に記憶することになる。
【0035】
そして、S9で新たな部分画像が取得された場合、S4に戻り、S9で得られた新たな部分画像によって新たなコード端(情報コードの角部)が検出されたか否かを判断する(S4)。S4の処理では、新たな取得画像においてコード領域の周囲にマージンが存在し、角部が把握できる場合には、その角部が既に検出済みのものであるか否かを判断する。未検出のコード端(情報コードの角部)が新たに検出されない場合(即ち、直近のS9で取得された新たな部分画像に未検出のコード端が存在しない場合)S4にてNoに進み、直近のS9で取得された新たな部分画像の中から既存画像に含まれる共通パターンを探すことを試みる。具体的には、既に得られている画像においてマージンに隣接しない部分の画像を共通パターンの候補として抽出し、検出を試みる。例えば、S1、S2で特徴パターン(位置検出パターン)の画像FP1を取得した
図6のような画像では、マージン(領域M及び画像FP1よりも左側の領域)に隣接しない部分の部分画像P11、P21が共通パターンの候補となり、次のS9で
図7(A)のような画像が得られている場合には、このS9の直後のS6の処理では、
図7(A)の画像の中からいずれかの部分画像P11,P12を探す。
図7(A)のように新たな部分画像の中に既存画像に含まれる共通パターン(部分画像P11)が存在する場合には、その共通パターンの位置を結合の基準位置として重ねるように
図6(A)のような既存画像と
図7(A)のような新たな部分画像とを結合するように合成し、その合成後の画像を新たな既存画像として記憶する。この場合、例えば、メモリ領域を確保するために結合前の既存画像を消去することが望ましい。
【0036】
本実施形態では、制御回路40が画像結合手段の一例に相当し、メモリ35(記憶手段)に記憶される少なくとも2つの部分画像に共通パターンが存在する場合に当該共通のパターンに基づいてそれら部分画像を結合し、且つその結合によって得られた結合画像をメモリ35(記憶手段)に再記憶するように機能する。
【0037】
このようなS7での画像合成処理が終了した後には、全セルが検出されたか否か(即ち、情報コードQの全画像が取得されたか否か)を判断する(S8)。例えば読み取り対象の情報コードが縦横同数のセルが配列されるべき情報コードの場合、S5でいずれか2つのコーナ位置が決定された場合(例えば、
図5(B)のような合成画像が得られている場合)、そのコーナ間のセル数Xcを検出することで、読取対象の情報コードにおける縦横のセル数を把握することができる。即ち、Xc×Xcとして全セル数を把握することができる。なお、コード画像内でのセル位置の特定は公知の方法を用いることができる。
【0038】
或いは、読み取り対象の情報コードが縦横同数のセルが配列されるべき情報コードでなくても、S5で3つのコーナ位置(2辺にマージンが隣接する位置)が決定された場合に、縦のセル数Ycと横のセル数Xcを検出すれば、Xc×Ycとして全セル数を算出することができる。S8の処理では、このように全セル数を特定した上で、メモリ35に記憶されている最新の既存画像において各セル位置を特定すると共に既存画像内のセル数を公知の方法で検出し、全セル数に至っているかを判断する。そして、全セル数に達していない場合、或いは全セル数が把握できない場合にはS8にてNoに進むことになる。
【0039】
本実施形態では、制御回路40が角部検出手段の一例に相当し、画像結合手段による結合の結果得られた結合画像から、情報コードQの角部を2以上検出するように機能する。また、制御回路40は、セル数算出手段としても機能し、角部検出手段によって検出された2以上の角部の位置に基づいて情報コードのセル数を算出するように機能する。更に、制御回路40は、判断手段の一例に相当し、画像結合手段によって得られた結合画像の中にセル数算出手段によって算出された情報コードのセル数の分だけセルが含まれるか否かを判断するように機能する。
【0040】
そして、S8でNoに進む場合には、S9にて更に新たな部分画像を撮像する。例えば、前回のS9にて
図7(A)のような画像が取得され上述のように
図6の画像と
図7(A)の画像の合成画像が得られている状態において、
図5(A)の範囲から更に横にずらされて次のS9の時点で
図5(B)のような撮像範囲AR3に至ったときにはこの撮像範囲AR3の画像(
図7(B)のような画像)を取得する。
【0041】
そして、S9で
図7(B)のような新たな部分画像が取得された場合、S4に戻り、S9で得られた新たな部分画像によって新たなコード端(情報コードの角部)が検出されたか否かを判断する(S4)。
図7(B)のように新たな取得画像においてコード領域の2辺の周囲にマージン(領域M)が存在し、角部が把握できる場合には、その角部が既に検出済みのものであるか否かを判断する。そして、未検出の場合にはその角部を新たなコーナ位置として決定する(S5)。なお、S5の処理でもS6と同様の処理が並行して行われる。即ち、直近のS9で取得された
図7(B)のような新たな部分画像の中から既存画像(
図6と
図7(A)を合成した画像)に含まれる共通パターンを探すことを試みる。具体的には、既に得られている画像(
図6と
図7(A)を合成した画像)においてマージンに隣接しない部分の画像P12、P21、P22を共通パターンの候補として抽出し、次のS9で
図7(B)のような画像が得られている場合には、
図7(B)の画像の中からいずれかの部分画像P12、P21、P22を探す。
図7(B)のように新たな部分画像の中に既存画像に含まれる共通パターン(部分画像P12)が存在する場合には、その共通パターンの位置を結合の基準位置として重ねるように
図6、
図7(A)のような既存画像(既存の合成画像)と、
図7(B)のような新たな部分画像とを結合するように合成し、その合成後の画像を新たな既存画像として記憶する。この場合も、合成前の既存画像は消去することが望ましい。
【0042】
一方、S8で全セルを検出したと判断された場合にはS8にてYesに進み、直近のS8で得られている合成画像(全体画像)に基づいて公知の方法でデコード処理を行う(S10)。なお、制御回路40は、解読手段の一例に相当し、画像結合手段による結合の結果、情報コードQの全体画像が得られた場合に、当該全体画像のデコードを行うように機能しており、より具体的には、判断手段により結合画像の中に情報コードQの全セル数(セル数算出手段によって算出された情報コードQのセル数)が含まれると判断された場合に、当該結合画像を全体画像としてデコードを行うように機能する。
【0043】
(第1実施形態の主な効果)
情報コードが大きい場合や近距離にある場合など、情報コードを一度に撮像せずに複数回の撮像画像を合成してコード画像を得る場合、解像度を大きくしすぎると各回毎に取得するデータ量が大きくなるため、膨大のデータを記憶、処理する必要が生じ、メモリ領域を圧迫すると共に処理時間の遅延を招くことが懸念される。しかしながら、解像度を必要以上に低くしすぎると画素割り当てが不足し、セル形状等を正確に認識できずに解読不能となる懸念があり、解像度の決定方法が問題となる。
そこで、本発明では、情報コードの一部分が撮像されたときに、その撮像によって得られた情報コードの一部分の画像から特徴パターンの検出を試み、特徴パターンが検出された場合には、当該特徴パターンの画像内容に基づいて解像度を決定している。情報コードの一部分が撮像されたときに規定形状の特徴パターンの画像状態を見ればこれを目安として情報コード全体がどのような状態で撮像されるかを推測することができる。例えば撮像画像内での特徴パターンの大きさが相対的に大きい場合には画素割り当てが確保されやすく、撮像画像内での特徴パターンの大きさが相対的に小さい場合には画素割り当てが確保されにくいといった傾向があるため、特徴パターンの画像内容を把握して解像度を決定すれば、推測される画像状態に適した解像度を選ぶことができる。
そして、情報コードの各部分がそれぞれ撮像されたときには、このように決定された解像度でそれら各部分の部分画像をそれぞれ記憶し、少なくとも2つの部分画像に共通パターンが存在する場合に当該共通のパターンに基づいてそれら部分画像を結合するといった手法で情報コードの全体画像を生成し、デコードを行うようになっている。従って、画素割り当て不足や必要以上の処理遅延を防ぎつつ全体画像を生成することができ、全体画像をより確実に解読しやすくなる。
【0044】
また、本実施形態では、解像度決定手段は、特徴パターン検出手段によって特徴パターンが検出された場合に、画像内における当該特徴パターンのサイズが大きいほど解像度を低く設定している。
このように画像内での特徴パターンのサイズを具体的に把握することで、結果として各セルのサイズを把握することができる。検出された特徴パターンのサイズが相対的に大きく、画像内でのセルサイズが相対的に大きい場合(即ち、各セルに対する画素割り当て数が大きくなる場合)には、解像度を低く設定しても各セルに対する割り当て数を確保しやすいため、このような場合には、解像度を下げて記憶手段に記憶するデータ量を少なくすることができる。逆に、セルサイズが相対的に小さい場合には、解像度を高く設定し、各セルに対する画素割り当て数が小さくなりすぎるのを抑えることができる。
【0045】
また、本実施形態では、矩形状の情報コードが読み取り対象であり、更に、画像結合手段による結合の結果得られた結合画像から、情報コードの角部を2以上検出する角部検出手段と、角部検出手段によって検出された2以上の角部の位置に基づいて情報コードのセル数を算出するセル数算出手段と、画像結合手段によって得られた結合画像の中にセル数算出手段によって算出された情報コードのセル数の分だけセルが含まれるか否かを判断する判断手段とが設けられている。そして、判断手段により、結合画像の中に情報コードのセル数が含まれると判断された場合に、当該結合画像を全体画像としてデコードを行っている。
この構成によれば、結合の途中であっても情報コード内に含まれるセル数を推定することができる。そして、このように推定されたセル数に基づいて全体画像が完成したか否かを適切に判断できるようになる。
【0046】
また、本実施形態では、画像結合手段によって得られた結合画像を表示する液晶表示器46(表示装置)が設けられ、この液晶表示器46は、制御回路40の制御により、上述の画像結合手段によって結合画像が更新される度に、新たな結合画像を表示するようになっている。この構成によれば、ユーザが結合過程を視覚的に把握することができ、未結合部分を撮像するための操作を行いやすくなる。
【0047】
[第2実施形態]
次に、本発明の第2実施形態について説明する。
第2実施形態は、
図3の読取処理の一部の具体的内容のみが第1実施形態と異なり、それ以外は第1実施形態と同様である。例えば、
図1等のハードウェア構成については第1実施形態と同様であるので詳細な説明は省略する。
【0048】
第2実施形態に係る読取装置では、解読手段に相当する制御回路40により一次元コードと二次元コードをいずれも解読可能とされている。また、制御回路40は、コード判定手段の一例に相当し、受光センサ23(撮像手段)によって情報コードの一部分が撮像された場合に、一部分の画像に基づいて情報コードが一次元コード及び二次元コードのいずれであるかを判定可能とされている。具体的には、
図3のS1において、一次元コードの特徴パターン及び二次元コードの特徴パターンのそれぞれの検出を試み、一次元コードの特徴パターン(例えば、スタートキャラクタ、ストップキャラクタなど)が検出された場合には読み取り対象が一次元コードであると判断し、二次元コードの特徴パターン(例えば、QRコードの特徴パターン(位置検出パターン)やデータマトリックスのアライメントパターン、タイミングパターンなど)が検出された場合には読み取り対象が二次元コードであると判断する。なお、一次元コードと二次元コードとを判別する方法は、公知の様々な方法を用いることができ、いずれかの種別の一次元コードを判別する公知方法やいずれかの種別の二次元コードを判別する公知方法を様々に適用できる。
【0049】
例えば、読取処理の開始に伴い
図8(A)のような撮像範囲ARaにおいてバーコードに含まれる規定パターン(特定種のバーコードのスタートキャラクタやストップキャラクタなど)が検出された場合、
図3のS2以降の処理が行われ、S3にて解像度が決定された後、S4以降の処理が行われることになる。この場合も、二次元コードと同様、撮像範囲が
図8(B)の範囲ARbのようにずらされたときには、共通のパターンに基づいて合成画像を生成することになる。このように合成画像の生成を順次行いS8にて全セル数を検出したと判断された場合、バーコードが読み取り対象のときには再度S1以降の処理を実行することになる。具体的には、取対対象の情報コードがバーコード(一次元コード)である判定されている場合、ユーザに対して全体画像を再度生成するための操作を要求する。例えば、
図3のS10でのデコード処理の後に、再度読み取りを促す報知を行い、ユーザによって再度の読み取り操作が行われた場合には再度S1〜S10の処理を行う。そして、前回のS10でのデコード結果と再度の処理におけるS10でのデコード結果が一致した場合にデコード成功としてデコード結果の出力等を行う。
【0050】
なお、本実施形態では、制御回路40及び液晶表示器46等が要求手段の一例に相当し、コード判定手段によって情報コードが一次元コードであると判定された場合に、ユーザに対して全体画像を複数回生成するための操作を要求するように機能する。また、制御回路40は対応手段の一例に相当し、要求手段による要求に応じて全体画像が所定の複数回生成された場合に、複数回の全体画像の生成結果が一致したことを条件としてデコード成功とするようになっている。
【0051】
一次元コードは二次元コードと比較して、共通パターンが複数位置に存在する可能性が高く、誤った結合がなされる虞がある。従って、一次元コードが読取対象であるか否かを判断し、一次元コードの場合、複数回の全体画像の生成結果が一致したことを条件としてデコード成功とすれば、誤った結合に基づいたデコードの誤りを防ぎやすくなる。
【0052】
なお、上記説明は、二次元コードについての複数回の全体画像の生成を行わないと限定するものではない。即ち、第1実施形態において、
図3の方法で二次元コードについての複数回の全体画像の生成を行い、複数回の全体画像のデコード結果が一致したことを条件としてデコード成功としてもよい。
【0053】
ユーザによる所定操作により、
図3のような合成読み取りを行うモードと、通常の読み取り方式(情報コードの全体画像が撮像されていることを前提とする公知の読み取り方式)で読み取りを行うモードとに切り替えることができるようにしてもよい。
【0054】
[他の実施形態]
本発明は上記記述及び図面によって説明した実施形態に限定されるものではなく、例えば次のような実施形態も本発明の技術的範囲に含まれる。
【0055】
上記実施形態では、情報コードとしてQRコード(登録商標)の例を示したが、形状が規定された特徴パターンを有する種別であればデータマトリックスやマキシコードなど、他種の情報コードを読み取り対象としてもよい。また、情報コードとして明色セルと暗色セルとが含まれるコードを例示したが、セル種が3種類以上(例えば3色以上)で構成される二次元コード(カラーコード等)などであってもよい。
【0056】
上記実施形態では、S1、S2で検出された特徴パターンの画像のサイズに応じて当該画像サイズが大きくなるほど解像度を低く設定するように解像度を決定していたが、解像度の決定方法はこのような方法に限られない。例えば、S1、S2で検出された特徴パターンの画像に割り当てられる画素数を検出し、画素数が大きくなるほど解像度を低く設定するように解像度を決定してもよい。或いは、S1、S2で検出された特徴パターンの画像の明色セル及び暗色セルからコントラストを検出し、コントラストが大きくなるほど解像度を低く設定するように解像度を決定してもよい。