コード読取装置及びプログラム
【課題】バーコードの読み取り結果の信頼性を向上させるバーコード読取装置を提供する。
【解決手段】バーコード読取装置のCPU201は、バーコードを読み取る読取部と、バーコードに含まれるコードを復号する復号部2011と、復号されたバーコードの間隙及びバーの幅と、読み取られたバーコードにおける間隙及びバーの幅とのずれ量をもとに読み取られたバーコードに含まれるコードに対する復号されたコードの信頼度を算出する算出部2012と、算出された信頼度に応じて復号されたコードを出力する出力部2013とを備える。
【解決手段】バーコード読取装置のCPU201は、バーコードを読み取る読取部と、バーコードに含まれるコードを復号する復号部2011と、復号されたバーコードの間隙及びバーの幅と、読み取られたバーコードにおける間隙及びバーの幅とのずれ量をもとに読み取られたバーコードに含まれるコードに対する復号されたコードの信頼度を算出する算出部2012と、算出された信頼度に応じて復号されたコードを出力する出力部2013とを備える。
【発明の詳細な説明】
【技術分野】
【0001】
本発明の実施形態は、コード読取装置及びプログラムに関する。
【背景技術】
【0002】
従来、EAN(European Article Number)コードやJAN(Japanese Article Number)コード等のバーコードを光学的に読み取るハンディスキャナ等のコード読取装置が知られている。このコード読取装置は、例えばスーパー等で使用されるPOS(Point Of Sale)端末と通信ケーブル等を介して接続され、商品に添付された商品コードを含むバーコードの読み取りに用いられている。
【発明の概要】
【発明が解決しようとする課題】
【0003】
上述した従来のコード読取装置では、複数回同じ読み取り結果が得られた場合に、その読み取り結果をPOS端末へ出力することで、読み取り結果の信頼性を維持している。しかしながら、間違えた読み取り結果が複数回得られる場合もあることから、読み取り結果の信頼性のさらなる向上が望まれていた。
【課題を解決するための手段】
【0004】
上述した課題を解決するために、実施形態のコード読取装置は、バーコードを読み取る読取手段と、前記バーコードに含まれるコードを復号する復号手段と、前記復号されたバーコードの間隙及びバーの幅と、前記読み取られたバーコードにおける間隙及びバーの幅とのずれ量をもとに、当該読み取られたバーコードに含まれるコードに対する復号されたコードの信頼度を算出する算出手段と、前記算出された信頼度に応じて前記復号されたコードを出力する出力手段とを備える。
【0005】
また、実施形態のプログラムは、コンピュータを、バーコードを読み取る読取手段により読み取られたバーコードに含まれるコードを復号する復号手段と、前記復号されたバーコードの間隙及びバーの幅と、前記読み取られたバーコードにおける間隙及びバーの幅とのずれ量をもとに、当該読み取られたバーコードに含まれるコードに対する復号されたコードの信頼度を算出する算出手段と、前記算出された信頼度に応じて前記復号されたコードを出力する出力手段として機能させる。
【図面の簡単な説明】
【0006】
【図1】図1は、実施形態にかかるコード読取装置の概観を示す斜視図である。
【図2】図2は、実施形態にかかるコード読取装置のハードウェア構成を示すブロック図である。
【図3】図3は、CPUが実現する機能構成を示すブロック図である。
【図4】図4は、バーコードの一例を示す概念図である。
【図5】図5は、各キャラクタの4要素の幅と割り当てられた数値との関係を示す表である。
【図6】図6は、数字セットの組み合わせにより1桁の数値を導き出すことを示す表である。
【図7】図7は、バーコードにおける各キャラクタの測定を示す概略図である。
【図8】図8は、バーコードにおける復号の対応関係を示す表である。
【図9】図9は、平均ずれ量と信頼度との対応関係を示すグラフである。
【図10】図10は、実施形態にかかるコード読取装置の動作の一例を示すフローチャートである。
【図11】図11は、フルセグメントの場合について信頼度による読取コードの出力を例示する概念図である。
【図12】図12は、ハーフセグメントの場合について信頼度による読取コードの出力を例示する概念図である。
【図13】図13は、フルセグメントの場合について信頼度による読取コードの出力を例示する概念図である。
【発明を実施するための形態】
【0007】
以下では、実施形態にかかるコード読取装置及びプログラムを図面を参照して説明する。コード読取装置は、一取引にかかる商品の登録、精算を行う際に、商品に添付されたバーコードを読み取るハンディスキャナなどであってよい。実施形態では、飲食店やスーパーマーケット等の店舗に導入されたPOS端末に接続して用いるコード読取装置を例に説明する。
【0008】
図1は、実施形態にかかるコード読取装置100の概観を示す斜視図である。図1に示すように、実施形態にかかるコード読取装置100は、内部にバーコードを読み取るバーコード読取部204(図2参照)を有する筐体101、把握部102、操作スイッチ103、通信ケーブル104を備えて構成される。把握部102は、筐体101に設けられ、オペレータがコード読取装置100を操作する際に片手で把握する部分である。操作スイッチ103は、オペレータの操作入力を受け付ける。オペレータは、把握部102を片手で把握して操作することで、コード読取装置100によるバーコード等の読み取りや、操作スイッチ103を介した操作入力を行う。通信ケーブル104は、POS端末等の端末装置300(図2参照)と接続する。コード読取装置100により読み取られたバーコード等の情報は、通信ケーブル104を介して端末装置300へ出力される。
【0009】
図2は、本実施形態にかかるコード読取装置100のハードウェア構成を示すブロック図である。図2に示すように、コード読取装置100は、CPU201(Central Processing Unit)、ROM202(Read Only Memory)、RAM203(Random Access Memory)、バーコード読取部204、通信部205、操作部206を備えて構成される。なお、コード読取装置100が備える各構成部は、バス208を介して相互に通信可能に接続されている。
【0010】
CPU201は、コード読取装置100の動作を中央制御する。具体的には、CPU201は、ROM202に記憶されたプログラムをRAM203の作業領域に展開して順次実行することで、コード読取装置100の各部に制御信号を出力してコード読取装置100の動作を制御する。ROM202は、CPU201が読み出して実行するプログラムや設定情報等のデータを記憶する。RAM203は、CPU201に作業領域を提供する。
【0011】
バーコード読取部204は、CPU201の制御のもと、間隙及びバーが配列されたバーコードを光学的に読み取るためのスキャナである。具体的には、バーコード読取部204は、LED(Light Emitting Diode)照明及びCCD(Charge Coupled Device)イメージセンサやレーザスキャナ等であってよい。なお、本実施形態のバーコードは、EANコードやJANコード等であってよく、商品コード等のコードに対応した幅で間隙及びバーが配列されたものである。コード読取装置100では、バーコードとして配列された間隙及びバーの幅をバーコード読取部204で読み取り、読み取った間隙及びバーの幅をもとにコード復号部2011(図3参照)で復号することで、バーコードからのコードの読み出しを行っている。
【0012】
通信部205は、CPU201の制御のもと、通信ケーブル104(図1参照)を介して接続するPOS端末等の端末装置300とデータ通信を行う。具体的には、通信部205は、USB(Universal Serial Bus)などで端末装置300と通信する。操作部206は、操作スイッチ103(図1参照)を介したオペレータの操作入力を受け付けてCPU201へ出力する。
【0013】
次に、CPU201がプログラムを順次実行することで実現されるコード読取装置100の機能部について、図3を参照して説明する。図3は、CPU201が実現する機能構成を示すブロック図である。図3に示すように、CPU201は、プログラムを順次実行することにより、コード復号部2011、信頼度算出部2012、出力部2013としての機能を備える。
【0014】
コード復号部2011は、バーコード読取部204で読み取ったバーコードを復号してコードを取得する。具体的には、コード復号部2011は、読み取ったバーコードの間隙及びバーの幅をもとに、予め設定された変換式に従って、その間隙及びバーの幅に対応したコードへの変換を行う。
【0015】
ここで、コード復号部2011における、バーコードの復号の詳細について説明する。なお、以下の復号にかかる説明では、JANコード(EANコード)にかかるJIS規格であるJISX0501−1985(共通商品コード用バーコードシンボル)、JISX0507−2004(バーコードシンボル−EAN/UPC−基本仕様)を参考にしており、特にJISX0501については2ページの図表を、JISX0507については3、5、14、15ページを参考にしている。図4は、バーコードBCの一例を示す概念図である。
【0016】
図4に示すように、バーコードBCは、例えば13桁のJANコード(EANコード)であり、1モジュールを基本単位として全113モジュールで構成される。1モジュールの幅は0.33mmを基本とし、0.8〜2.0倍(0.264〜0.660mm)までがJANコードの規格として認められている。バーコードBCは、左からレフトマージン、レフトガードバー、データキャラクタ(左側)、センターバー、データキャラクタ(右側)、モジュラチェックキャラクタ、ライトガードバー、ライトマージンで構成される。なお、中央のセンターバーは、黒(バー)、白(間隙)、黒、白、黒の5モジュールで構成される。また、左側のデータキャラクタは6キャラクタ、右側のデータキャラクタは5キャラクタ、モジュラチェックキャラクタは1キャラクタで、各キャラクタは7モジュールで構成される。
【0017】
バーコードBCにおいて、左側のデータキャラクタは白、黒、白、黒の4要素で構成される。また、右側のデータキャラクタとモジュラチェックキャラクタは黒、白、黒、白の4要素で構成される。各要素は1〜4モジュールの幅を持つ。ただし、4要素の合計は7モジュールとする。バーコードBCにおいて、左側のデータキャラクタ、すなわちバーコードBCの左側のハーフセグメントでは、国コードC1、商品メーカーコードC2が記述されている。また、右側のデータキャラクとモジュラチェックキャラクタ(右側のハーフセグメント)では、商品アイテムコードC3、モジュラチェックキャラクタC4が記述されている。
【0018】
図5は、各キャラクタの4要素の幅と割り当てられた数値との関係を示す表である。図5に示す表中のSは白(間隙)を、Bは黒(バー)を意味する。また、S又はBにおける数値は、要素(間隙又はバー)の幅を意味する。また、左側のデータキャラクタには、数字セットA、もしくは数字セットBの要素の幅が割り当てられており、右側のデータキャラク及びモジュラチェックキャラクタには数字セットCの要素の幅が割り当てられている。
【0019】
図6は、数字セットの組み合わせにより1桁の数値を導きだすことを示す表である。図6に示すように、左側のデータキャラクタ(6キャラクタ)における数字セットの種類の組み合わせをもとに、1桁の数値が導き出される。例えば、左側のデータキャラクタにおける1〜6キャラクタの数字セットの種類がA、A、B、A、B、Bである場合は、1桁の数値として「1」が導き出されることとなる。
【0020】
図7は、バーコードBCにおける各キャラクタの測定を示す概略図である。図7の上側は数字セットCにおける1キャラクタ(左からバーBR1、間隙SP1、バーBR2、間隙SP2の4要素)の測定を示している。また、図7の下側は数字セットA及び数字セットBにおける1キャラクタ(右からバーBR1、間隙SP1、バーBR2、間隙SP2の4要素)の測定を示している。先頭エッジから隣接キャラクタまでの幅Sを7モジュールとすると、バーBR1及び間隙SP1のなす幅e1及び間隙SP1及びバーBR2のなす幅e2は、2〜5モジュールの幅になる。この幅e1と、幅e2とをもとにした決定要因E1、E2の組み合わせにより、各キャラクタの値を復号して求める。
【0021】
図8は、バーコードBCにおける復号の対応関係を示す表である。図8に示すように、数字セットA、B、Cにおけるピクセル数等である幅e1と、幅e2とをもとにした、整数値である決定要因E1、E2の組み合わせを第1決定要因として、キャラクタの数値が復号される。ただし、組み合わせが同じ値となる場合は、第1決定要因で数値が復号できないことから、バーBR1の幅b1(図7参照)と、バーBR2の幅b2(図7参照)とを用いた第2決定要因で判別を行って復号を行う。例えば、数字セットAの場合、キャラクタの数値が「1」と「7」、及び「2」と「8」の組み合わせは同じ値となるため、第1決定要因で数値が復号できない。したがって、幅b1と幅b2の合計値(b1+b2)と所定の閾値とを比較する第2決定要因で、キャラクタの数値の復号を行う。
【0022】
なお、コード復号部2011における復号では、ある程度の許容を持って復号する数値が割り当てられている。具体的には、幅e1と、幅e2は実数値として求められるが、小数点以下は四捨五入して整数化されて2〜5の数値が求められる。
【0023】
より具体的には、次のように基準閾値RT1、RT2、RT3、RT4及びRT5を定める。
RT1=(1.5/7)S
RT2=(2.5/7)S
RT3=(3.5/7)S
RT4=(4.5/7)S
RT5=(5.5/7)S
各キャラクタにおいて、幅e1及び幅e2(実数値)と、上述した基準閾値とを次にように比較して整数化する。
・RT1≦ei<RT2であればEi=2とする。(i=1、2)
・RT2≦ei<RT3であればEi=3とする。(i=1、2)
・RT3≦ei<RT4であればEi=4とする。(i=1、2)
・RT4≦ei<RT5であればEi=5とする。(i=1、2)
これにより、幅e1及び幅e2(実数値)を、2、3、4又は5のいずれかの整数値とする。
【0024】
図3に戻り、信頼度算出部2012は、読み取られたバーコードに含まれるコードに対するコード復号部2011により復号されたコードの信頼度を算出する。ここで、信頼度とは、読み取り対象のバーコードに含まれるコードの読み取りを行った際の、読み取りコード(復号されたコード)の信頼性を数値で示したものである。具体的には、読み取り対象のバーコードに含まれるコードを真の値とした場合、バーコードの印字品質、読み取り時の照明、ノイズの混入等の影響により、コード復号部2011により復号されたコードが真の値からずれることがある。例えば、読み取り対象のバーコードに含まれるコードが「4912345678904」である時に、復号されたコードが「4912345678902」として復号されることがある。信頼度算出部2012では、一回の読み取りにおいて、上述した真の値からずれることなく復号されたコードが得られているかを、0〜1の間の数値で示した信頼度を算出する。なお、算出する信頼度については、0〜1の間の数値だけでなく、パーセント表記の数値であってもよい。
【0025】
具体的には、信頼度算出部2012は、復号されたコードに対応したバーコードに応じた間隙及びバーの幅と、読み取られたバーコードにおける間隙及びバーの幅とを比較し、そのずれ量をもとに信頼度の算出を行う。例えば、バーコードBCにおいて、各キャラクタが理想的な幅で印字されていると仮定すると、決定要因E1、E2は2.0、3.0、4.0、5.0のいずれかの値となる。しかし、実際には印字品質やノイズ等の影響により、真の値からずれた値となる。このずれ量diは以下の式1により求められる。
【0026】
【数1】
【0027】
また、各キャラクタの平均のずれ量Dは以下の式2により求められる。
【0028】
【数2】
【0029】
ここで、平均のずれ量Dは−0.5〜0.5の値を取り得る。この平均のずれ量Dを元に各キャラクタの信頼度cを以下の式3により求める。
【0030】
【数3】
【0031】
なお、各キャラクタの信頼度cは、以下の式4により求めてもよい。
【0032】
【数4】
【0033】
図9は、平均ずれ量Dと信頼度との対応関係を示すグラフである。図9に示すように、平均のずれ量Dが0から離れるのに従い、信頼度は低下する。なお、式3で信頼度を算出するよりも、式4で信頼度を算出するほうが、平均のずれ量Dが0から離れるのに従う信頼度の落ち込み具合が強くなる。このため、信頼度の算出方式を式3から式4に切り替えることで、より厳しく信頼度を見積もることができる。
【0034】
次いで、各キャラクタの信頼度cをもとに、バーコードBCを構成するセグメントの信頼度Cを以下の式5により求める。
【0035】
【数5】
【0036】
図3に戻り、出力部2013は、信頼度算出部2012により算出された信頼度に応じて、コード復号部2011により復号されたコードを読み取ったコードとして通信部205を介して端末装置300へ出力する。具体的には、出力部2013は、算出された信頼度が所定の閾値を超える場合に、その信頼度が算出されたコードを端末装置300へ出力する。したがって、端末装置300では、オペレータが読み取り対象のバーコードBCをコード読取装置100で読み取らせた場合、読み取り結果の信頼性の高いコードを得ることができる。
【0037】
次に、コード読取装置100の動作について詳細に説明する。図10は、実施形態にかかるコード読取装置100の動作の一例を示すフローチャートである。
【0038】
図10に示すように、操作スイッチ103による操作入力などに従って処理が開始されると、CPU201は、信頼度算出部2012で信頼度を算出する際の、信頼度の算出方式の設定、すなわち上述した式3又は式4のいずれの算出式で信頼度を算出するかの設定を行う(S10)。具体的には、設定手段としての操作部206によりオペレータの選択操作等の操作入力を受け付けて、信頼度の算出方式を設定する。なお、信頼度の算出方式の設定は、操作部206により事前に行われ、ROM202等に予め記憶された設定情報を読み出して行ってもよい。このように、信頼度の算出方式を設定可能とすることで、バーコードの読み取りにかかる寛容性を運用に応じて変更できる。
【0039】
次いで、CPU201は、バーコード読取部204によるバーコードの読み取りを開始する(S11)。バーコード読取部204によるバーコードの読み取りが開始されると、コード復号部2011は、バーコード読取部204により読み取られたバーコードを復号してコードを取得する(S12)。次いで、信頼度算出部2012は、コード復号部2011により復号されたコードの信頼度を算出する(S13)。
【0040】
S13において算出された信頼度は、復号されたコードとともにRAM203に一時記憶される。なお、バーコード読取部204によりバーコードの読み取りが逐次行われる場合には、復号されたコードごとに、算出された信頼度がRAM203に積算されて記憶されるものとする。例えば、バーコード読取部204によりバーコードが3回読み取られ、復号されたコードとして「4912345678904」が2回と、「4912345678902」が1回得られたものとする。この場合、「4912345678904」の2回分の信頼度がRAM203に積算されて記憶され、「4912345678902」の1回分の信頼度がRAM203に記憶される。
【0041】
次いで、出力部2013は、信頼度算出部2012により算出された信頼度がROM202等に予め設定される所定の閾値を越えたか否かを判定する(S14)。算出された信頼度が所定の閾値を越えている場合(S14:YES)、読み取りにより復号したコードは十分に信頼できることから、出力部2013は、復号したコードを端末装置300へ出力し(S15)、S16へ処理を進める。なお、算出された信頼度が所定の閾値を超えない場合(S14:NO)、読み取りにより復号したコードは十分に信頼できないことから、出力部2013は、復号したコードを出力することなくS16へ処理を進める。
【0042】
S16において、CPU201は、操作スイッチ103による読み取り終了等の操作入力に従って処理を終了するか否かを判定する(S16)。処理を終了せずに継続する場合(S16:NO)、CPU201は、S12へ処理を戻す。また、処理を終了する場合(S16:YES)、CPU201は、バーコード読取部204によるバーコードの読み取りを終了して処理を終了する。
【0043】
なお、コード読取装置100では、読み取られたバーコードを構成するセグメントごとに信頼度の算出を行い、全てのセグメントの信頼度が所定の閾値を超える場合に、復号されたコードを端末装置300へ出力してもよい。このように、セグメント毎に誤読の確認を行うことで、読み取り結果の信頼性を向上させることが可能となる。具体的には、信頼度算出部2012は、S13において、バーコード読取部204により読み取られたバーコードを構成するセグメントごとに、そのセグメントに含まれるコードに対する信頼度を算出し、各セグメントの信頼度をRAM203に一時記憶する。次いで、出力部2013は、S14において、読み取られたバーコードを構成する全てのセグメント(フルセグメント分)の信頼度が所定の閾値を超える場合に、復号されたコードを端末装置300へ出力する。
【0044】
図11は、フルセグメントの場合について信頼度による読取コードの出力を例示する概念図である。図11に示すように、数回のバーコードの読み取りにより、RAM203には、「4912345678904」及び「4912345678902」等の復号された読取コード(フルセグメント)と、その読取コードに対する信頼度の積算値が記憶される。出力部2013は、RAM203に記憶された信頼度が例えば1.8程度の閾値を上回るセグメントを有効とする。図示例では、信頼度が「2.2」である「4912345678904」が有効とされる。次いで、出力部2013は、有効とされたコードをRAM203より読み出し、読み出したコードがフルセグメント分あるか否かを判定する。有効とされたコードがフルセグメント分ある場合、出力部2013は、そのコードを端末装置300へ出力する。図示例では、有効とされた「4912345678904」が、フルセグメント分あることから、そのまま端末装置300へ出力される。
【0045】
図12は、ハーフセグメントの場合について信頼度による読取コードの出力を例示する概念図である。図12に示すように、数回のバーコードの読み取りにより、RAM203には、左側のハーフセグメント分の読取コードである「4912345」、右側のハーフセグメント分の読取コードである「678902」及び「672904」と、読取コードに対する信頼度の積算値が記憶される。左側のハーフセグメントの「4912345」と、右側のハーフセグメントの「672904」が有効とされるものとする。出力部2013は、左側及び右側のハーフセグメントで有効とされたそれぞれのコードを読み出し、読み出したフルセグメント分のコードについて、チェックキャラクタの整合を確認する。次いで、出力部2013は、チェックキャラクタの整合が確認された場合に、左側及び右側のハーフセグメントで有効とされたフルセグメント分のコードを端末装置300へ出力する。図示例では、左側のハーフセグメントの「4912345」と右側のハーフセグメントの「672904」とを組み合わせた「4912345672904」が端末装置300へ出力される。
【0046】
また、出力部2013は、RAM203に記憶された複数のコードの中で、互いの信頼度の差が所定の閾値を超える場合の、大きな信頼度を算出したコードの方を端末装置300へ出力してもよい。具体的には、出力部2013は、RAM203に記憶されている読取コードを信頼度の大きい順にソートし、信頼度が1番大きいコードと、次に大きいコードとの間の信頼度の差が所定の閾値を超えたか否かを判定する。そして、出力部2013は、信頼度の差が所定の閾値を超えた場合に、信頼度が1番大きいコードを端末装置300へ出力する。
【0047】
読み取り時の条件(バーコードに対するコード読取装置100の角度や照明等)が好条件であれば、正しく読み取れたコードの信頼度は大きくなり、正しく読み取れなかったコードの信頼度との差が十分に大きくなる。したがって、信頼度が1番大きいコードと、次に大きいコードとの間の信頼度の差が十分に大きな場合に、信頼度が1番大きいコードを端末装置300へ出力することで、読み取り結果の信頼性を向上させることが可能となる。
【0048】
図13は、フルセグメントの場合について信頼度による読取コードの出力を例示する概念図である。図13に示すように、「4912345678904」及び「4912345678902」等の復号された読取コード(フルセグメント)を信頼度の大きい順にソートし、互いの信頼度の値を比較する。そして、所定の閾値として例えば1.5以上の差がある場合に、信頼度の大きい「4912345678904」を有効とし、有効とされた「4912345678904」を端末装置300へ出力する。
【0049】
実施形態のコード読取装置100は、CPUなどの制御装置と、ROM(Read Only Memory)やRAMなどの記憶装置と、HDD、CDドライブ装置などの外部記憶装置と、ディスプレイ装置などの表示装置と、キーボードやマウスなどの入力装置を備えており、通常のコンピュータを利用したハードウェア構成となっている。
【0050】
実施形態のコード読取装置100で実行されるプログラムは、インストール可能な形式又は実行可能な形式のファイルでCD−ROM、フレキシブルディスク(FD)、CD−R、DVD(Digital Versatile Disk)等のコンピュータで読み取り可能な記録媒体に記録されて提供される。
【0051】
また、実施形態のコード読取装置100で実行されるプログラムを、インターネット等のネットワークに接続されたコンピュータ上に格納し、ネットワーク経由でダウンロードさせることにより提供するように構成しても良い。また、実施形態のコード読取装置100で実行されるプログラムをインターネット等のネットワーク経由で提供または配布するように構成しても良い。また、本実施形態のプログラムを、ROM等に予め組み込んで提供するように構成してもよい。
【0052】
実施形態のコード読取装置100で実行されるプログラムは、上述した各部(コード復号部2011、信頼度算出部2012、出力部2013)を含むモジュール構成となっており、実際のハードウェアとしてはCPU(プロセッサ)が上記記憶媒体からプログラムを読み出して実行することにより上記各部が主記憶装置上にロードされ、主記憶装置上に生成されるようになっている。
【0053】
なお、上述した実施形態では、コード読取装置100のCPU201がプログラムを実行することで、コード復号部2011、信頼度算出部2012、出力部2013としての機能を提供する構成を例示した。しかしながら、コード復号部2011、信頼度算出部2012、出力部2013は、端末装置300側のCPUがプログラムを実行することで実現されてもよい。
【符号の説明】
【0054】
100…コード読取装置、101…筐体、102…把握部、103…操作スイッチ、104…通信ケーブル、201…CPU、202…ROM、203…RAM、204…バーコード読取部、205…通信部、206…操作部、208…バス、300…端末装置、2011…コード復号部、2012…信頼度算出部、2013…出力部、BC…バーコード、BR1、BR2…バー、C1…国コード、C2…商品メーカーコード、C3…商品アイテムコード、C4…モジュラチェックキャラクタ、SP1、SP2…間隙
【先行技術文献】
【特許文献】
【0055】
【特許文献1】特開2001−175805号公報
【技術分野】
【0001】
本発明の実施形態は、コード読取装置及びプログラムに関する。
【背景技術】
【0002】
従来、EAN(European Article Number)コードやJAN(Japanese Article Number)コード等のバーコードを光学的に読み取るハンディスキャナ等のコード読取装置が知られている。このコード読取装置は、例えばスーパー等で使用されるPOS(Point Of Sale)端末と通信ケーブル等を介して接続され、商品に添付された商品コードを含むバーコードの読み取りに用いられている。
【発明の概要】
【発明が解決しようとする課題】
【0003】
上述した従来のコード読取装置では、複数回同じ読み取り結果が得られた場合に、その読み取り結果をPOS端末へ出力することで、読み取り結果の信頼性を維持している。しかしながら、間違えた読み取り結果が複数回得られる場合もあることから、読み取り結果の信頼性のさらなる向上が望まれていた。
【課題を解決するための手段】
【0004】
上述した課題を解決するために、実施形態のコード読取装置は、バーコードを読み取る読取手段と、前記バーコードに含まれるコードを復号する復号手段と、前記復号されたバーコードの間隙及びバーの幅と、前記読み取られたバーコードにおける間隙及びバーの幅とのずれ量をもとに、当該読み取られたバーコードに含まれるコードに対する復号されたコードの信頼度を算出する算出手段と、前記算出された信頼度に応じて前記復号されたコードを出力する出力手段とを備える。
【0005】
また、実施形態のプログラムは、コンピュータを、バーコードを読み取る読取手段により読み取られたバーコードに含まれるコードを復号する復号手段と、前記復号されたバーコードの間隙及びバーの幅と、前記読み取られたバーコードにおける間隙及びバーの幅とのずれ量をもとに、当該読み取られたバーコードに含まれるコードに対する復号されたコードの信頼度を算出する算出手段と、前記算出された信頼度に応じて前記復号されたコードを出力する出力手段として機能させる。
【図面の簡単な説明】
【0006】
【図1】図1は、実施形態にかかるコード読取装置の概観を示す斜視図である。
【図2】図2は、実施形態にかかるコード読取装置のハードウェア構成を示すブロック図である。
【図3】図3は、CPUが実現する機能構成を示すブロック図である。
【図4】図4は、バーコードの一例を示す概念図である。
【図5】図5は、各キャラクタの4要素の幅と割り当てられた数値との関係を示す表である。
【図6】図6は、数字セットの組み合わせにより1桁の数値を導き出すことを示す表である。
【図7】図7は、バーコードにおける各キャラクタの測定を示す概略図である。
【図8】図8は、バーコードにおける復号の対応関係を示す表である。
【図9】図9は、平均ずれ量と信頼度との対応関係を示すグラフである。
【図10】図10は、実施形態にかかるコード読取装置の動作の一例を示すフローチャートである。
【図11】図11は、フルセグメントの場合について信頼度による読取コードの出力を例示する概念図である。
【図12】図12は、ハーフセグメントの場合について信頼度による読取コードの出力を例示する概念図である。
【図13】図13は、フルセグメントの場合について信頼度による読取コードの出力を例示する概念図である。
【発明を実施するための形態】
【0007】
以下では、実施形態にかかるコード読取装置及びプログラムを図面を参照して説明する。コード読取装置は、一取引にかかる商品の登録、精算を行う際に、商品に添付されたバーコードを読み取るハンディスキャナなどであってよい。実施形態では、飲食店やスーパーマーケット等の店舗に導入されたPOS端末に接続して用いるコード読取装置を例に説明する。
【0008】
図1は、実施形態にかかるコード読取装置100の概観を示す斜視図である。図1に示すように、実施形態にかかるコード読取装置100は、内部にバーコードを読み取るバーコード読取部204(図2参照)を有する筐体101、把握部102、操作スイッチ103、通信ケーブル104を備えて構成される。把握部102は、筐体101に設けられ、オペレータがコード読取装置100を操作する際に片手で把握する部分である。操作スイッチ103は、オペレータの操作入力を受け付ける。オペレータは、把握部102を片手で把握して操作することで、コード読取装置100によるバーコード等の読み取りや、操作スイッチ103を介した操作入力を行う。通信ケーブル104は、POS端末等の端末装置300(図2参照)と接続する。コード読取装置100により読み取られたバーコード等の情報は、通信ケーブル104を介して端末装置300へ出力される。
【0009】
図2は、本実施形態にかかるコード読取装置100のハードウェア構成を示すブロック図である。図2に示すように、コード読取装置100は、CPU201(Central Processing Unit)、ROM202(Read Only Memory)、RAM203(Random Access Memory)、バーコード読取部204、通信部205、操作部206を備えて構成される。なお、コード読取装置100が備える各構成部は、バス208を介して相互に通信可能に接続されている。
【0010】
CPU201は、コード読取装置100の動作を中央制御する。具体的には、CPU201は、ROM202に記憶されたプログラムをRAM203の作業領域に展開して順次実行することで、コード読取装置100の各部に制御信号を出力してコード読取装置100の動作を制御する。ROM202は、CPU201が読み出して実行するプログラムや設定情報等のデータを記憶する。RAM203は、CPU201に作業領域を提供する。
【0011】
バーコード読取部204は、CPU201の制御のもと、間隙及びバーが配列されたバーコードを光学的に読み取るためのスキャナである。具体的には、バーコード読取部204は、LED(Light Emitting Diode)照明及びCCD(Charge Coupled Device)イメージセンサやレーザスキャナ等であってよい。なお、本実施形態のバーコードは、EANコードやJANコード等であってよく、商品コード等のコードに対応した幅で間隙及びバーが配列されたものである。コード読取装置100では、バーコードとして配列された間隙及びバーの幅をバーコード読取部204で読み取り、読み取った間隙及びバーの幅をもとにコード復号部2011(図3参照)で復号することで、バーコードからのコードの読み出しを行っている。
【0012】
通信部205は、CPU201の制御のもと、通信ケーブル104(図1参照)を介して接続するPOS端末等の端末装置300とデータ通信を行う。具体的には、通信部205は、USB(Universal Serial Bus)などで端末装置300と通信する。操作部206は、操作スイッチ103(図1参照)を介したオペレータの操作入力を受け付けてCPU201へ出力する。
【0013】
次に、CPU201がプログラムを順次実行することで実現されるコード読取装置100の機能部について、図3を参照して説明する。図3は、CPU201が実現する機能構成を示すブロック図である。図3に示すように、CPU201は、プログラムを順次実行することにより、コード復号部2011、信頼度算出部2012、出力部2013としての機能を備える。
【0014】
コード復号部2011は、バーコード読取部204で読み取ったバーコードを復号してコードを取得する。具体的には、コード復号部2011は、読み取ったバーコードの間隙及びバーの幅をもとに、予め設定された変換式に従って、その間隙及びバーの幅に対応したコードへの変換を行う。
【0015】
ここで、コード復号部2011における、バーコードの復号の詳細について説明する。なお、以下の復号にかかる説明では、JANコード(EANコード)にかかるJIS規格であるJISX0501−1985(共通商品コード用バーコードシンボル)、JISX0507−2004(バーコードシンボル−EAN/UPC−基本仕様)を参考にしており、特にJISX0501については2ページの図表を、JISX0507については3、5、14、15ページを参考にしている。図4は、バーコードBCの一例を示す概念図である。
【0016】
図4に示すように、バーコードBCは、例えば13桁のJANコード(EANコード)であり、1モジュールを基本単位として全113モジュールで構成される。1モジュールの幅は0.33mmを基本とし、0.8〜2.0倍(0.264〜0.660mm)までがJANコードの規格として認められている。バーコードBCは、左からレフトマージン、レフトガードバー、データキャラクタ(左側)、センターバー、データキャラクタ(右側)、モジュラチェックキャラクタ、ライトガードバー、ライトマージンで構成される。なお、中央のセンターバーは、黒(バー)、白(間隙)、黒、白、黒の5モジュールで構成される。また、左側のデータキャラクタは6キャラクタ、右側のデータキャラクタは5キャラクタ、モジュラチェックキャラクタは1キャラクタで、各キャラクタは7モジュールで構成される。
【0017】
バーコードBCにおいて、左側のデータキャラクタは白、黒、白、黒の4要素で構成される。また、右側のデータキャラクタとモジュラチェックキャラクタは黒、白、黒、白の4要素で構成される。各要素は1〜4モジュールの幅を持つ。ただし、4要素の合計は7モジュールとする。バーコードBCにおいて、左側のデータキャラクタ、すなわちバーコードBCの左側のハーフセグメントでは、国コードC1、商品メーカーコードC2が記述されている。また、右側のデータキャラクとモジュラチェックキャラクタ(右側のハーフセグメント)では、商品アイテムコードC3、モジュラチェックキャラクタC4が記述されている。
【0018】
図5は、各キャラクタの4要素の幅と割り当てられた数値との関係を示す表である。図5に示す表中のSは白(間隙)を、Bは黒(バー)を意味する。また、S又はBにおける数値は、要素(間隙又はバー)の幅を意味する。また、左側のデータキャラクタには、数字セットA、もしくは数字セットBの要素の幅が割り当てられており、右側のデータキャラク及びモジュラチェックキャラクタには数字セットCの要素の幅が割り当てられている。
【0019】
図6は、数字セットの組み合わせにより1桁の数値を導きだすことを示す表である。図6に示すように、左側のデータキャラクタ(6キャラクタ)における数字セットの種類の組み合わせをもとに、1桁の数値が導き出される。例えば、左側のデータキャラクタにおける1〜6キャラクタの数字セットの種類がA、A、B、A、B、Bである場合は、1桁の数値として「1」が導き出されることとなる。
【0020】
図7は、バーコードBCにおける各キャラクタの測定を示す概略図である。図7の上側は数字セットCにおける1キャラクタ(左からバーBR1、間隙SP1、バーBR2、間隙SP2の4要素)の測定を示している。また、図7の下側は数字セットA及び数字セットBにおける1キャラクタ(右からバーBR1、間隙SP1、バーBR2、間隙SP2の4要素)の測定を示している。先頭エッジから隣接キャラクタまでの幅Sを7モジュールとすると、バーBR1及び間隙SP1のなす幅e1及び間隙SP1及びバーBR2のなす幅e2は、2〜5モジュールの幅になる。この幅e1と、幅e2とをもとにした決定要因E1、E2の組み合わせにより、各キャラクタの値を復号して求める。
【0021】
図8は、バーコードBCにおける復号の対応関係を示す表である。図8に示すように、数字セットA、B、Cにおけるピクセル数等である幅e1と、幅e2とをもとにした、整数値である決定要因E1、E2の組み合わせを第1決定要因として、キャラクタの数値が復号される。ただし、組み合わせが同じ値となる場合は、第1決定要因で数値が復号できないことから、バーBR1の幅b1(図7参照)と、バーBR2の幅b2(図7参照)とを用いた第2決定要因で判別を行って復号を行う。例えば、数字セットAの場合、キャラクタの数値が「1」と「7」、及び「2」と「8」の組み合わせは同じ値となるため、第1決定要因で数値が復号できない。したがって、幅b1と幅b2の合計値(b1+b2)と所定の閾値とを比較する第2決定要因で、キャラクタの数値の復号を行う。
【0022】
なお、コード復号部2011における復号では、ある程度の許容を持って復号する数値が割り当てられている。具体的には、幅e1と、幅e2は実数値として求められるが、小数点以下は四捨五入して整数化されて2〜5の数値が求められる。
【0023】
より具体的には、次のように基準閾値RT1、RT2、RT3、RT4及びRT5を定める。
RT1=(1.5/7)S
RT2=(2.5/7)S
RT3=(3.5/7)S
RT4=(4.5/7)S
RT5=(5.5/7)S
各キャラクタにおいて、幅e1及び幅e2(実数値)と、上述した基準閾値とを次にように比較して整数化する。
・RT1≦ei<RT2であればEi=2とする。(i=1、2)
・RT2≦ei<RT3であればEi=3とする。(i=1、2)
・RT3≦ei<RT4であればEi=4とする。(i=1、2)
・RT4≦ei<RT5であればEi=5とする。(i=1、2)
これにより、幅e1及び幅e2(実数値)を、2、3、4又は5のいずれかの整数値とする。
【0024】
図3に戻り、信頼度算出部2012は、読み取られたバーコードに含まれるコードに対するコード復号部2011により復号されたコードの信頼度を算出する。ここで、信頼度とは、読み取り対象のバーコードに含まれるコードの読み取りを行った際の、読み取りコード(復号されたコード)の信頼性を数値で示したものである。具体的には、読み取り対象のバーコードに含まれるコードを真の値とした場合、バーコードの印字品質、読み取り時の照明、ノイズの混入等の影響により、コード復号部2011により復号されたコードが真の値からずれることがある。例えば、読み取り対象のバーコードに含まれるコードが「4912345678904」である時に、復号されたコードが「4912345678902」として復号されることがある。信頼度算出部2012では、一回の読み取りにおいて、上述した真の値からずれることなく復号されたコードが得られているかを、0〜1の間の数値で示した信頼度を算出する。なお、算出する信頼度については、0〜1の間の数値だけでなく、パーセント表記の数値であってもよい。
【0025】
具体的には、信頼度算出部2012は、復号されたコードに対応したバーコードに応じた間隙及びバーの幅と、読み取られたバーコードにおける間隙及びバーの幅とを比較し、そのずれ量をもとに信頼度の算出を行う。例えば、バーコードBCにおいて、各キャラクタが理想的な幅で印字されていると仮定すると、決定要因E1、E2は2.0、3.0、4.0、5.0のいずれかの値となる。しかし、実際には印字品質やノイズ等の影響により、真の値からずれた値となる。このずれ量diは以下の式1により求められる。
【0026】
【数1】
【0027】
また、各キャラクタの平均のずれ量Dは以下の式2により求められる。
【0028】
【数2】
【0029】
ここで、平均のずれ量Dは−0.5〜0.5の値を取り得る。この平均のずれ量Dを元に各キャラクタの信頼度cを以下の式3により求める。
【0030】
【数3】
【0031】
なお、各キャラクタの信頼度cは、以下の式4により求めてもよい。
【0032】
【数4】
【0033】
図9は、平均ずれ量Dと信頼度との対応関係を示すグラフである。図9に示すように、平均のずれ量Dが0から離れるのに従い、信頼度は低下する。なお、式3で信頼度を算出するよりも、式4で信頼度を算出するほうが、平均のずれ量Dが0から離れるのに従う信頼度の落ち込み具合が強くなる。このため、信頼度の算出方式を式3から式4に切り替えることで、より厳しく信頼度を見積もることができる。
【0034】
次いで、各キャラクタの信頼度cをもとに、バーコードBCを構成するセグメントの信頼度Cを以下の式5により求める。
【0035】
【数5】
【0036】
図3に戻り、出力部2013は、信頼度算出部2012により算出された信頼度に応じて、コード復号部2011により復号されたコードを読み取ったコードとして通信部205を介して端末装置300へ出力する。具体的には、出力部2013は、算出された信頼度が所定の閾値を超える場合に、その信頼度が算出されたコードを端末装置300へ出力する。したがって、端末装置300では、オペレータが読み取り対象のバーコードBCをコード読取装置100で読み取らせた場合、読み取り結果の信頼性の高いコードを得ることができる。
【0037】
次に、コード読取装置100の動作について詳細に説明する。図10は、実施形態にかかるコード読取装置100の動作の一例を示すフローチャートである。
【0038】
図10に示すように、操作スイッチ103による操作入力などに従って処理が開始されると、CPU201は、信頼度算出部2012で信頼度を算出する際の、信頼度の算出方式の設定、すなわち上述した式3又は式4のいずれの算出式で信頼度を算出するかの設定を行う(S10)。具体的には、設定手段としての操作部206によりオペレータの選択操作等の操作入力を受け付けて、信頼度の算出方式を設定する。なお、信頼度の算出方式の設定は、操作部206により事前に行われ、ROM202等に予め記憶された設定情報を読み出して行ってもよい。このように、信頼度の算出方式を設定可能とすることで、バーコードの読み取りにかかる寛容性を運用に応じて変更できる。
【0039】
次いで、CPU201は、バーコード読取部204によるバーコードの読み取りを開始する(S11)。バーコード読取部204によるバーコードの読み取りが開始されると、コード復号部2011は、バーコード読取部204により読み取られたバーコードを復号してコードを取得する(S12)。次いで、信頼度算出部2012は、コード復号部2011により復号されたコードの信頼度を算出する(S13)。
【0040】
S13において算出された信頼度は、復号されたコードとともにRAM203に一時記憶される。なお、バーコード読取部204によりバーコードの読み取りが逐次行われる場合には、復号されたコードごとに、算出された信頼度がRAM203に積算されて記憶されるものとする。例えば、バーコード読取部204によりバーコードが3回読み取られ、復号されたコードとして「4912345678904」が2回と、「4912345678902」が1回得られたものとする。この場合、「4912345678904」の2回分の信頼度がRAM203に積算されて記憶され、「4912345678902」の1回分の信頼度がRAM203に記憶される。
【0041】
次いで、出力部2013は、信頼度算出部2012により算出された信頼度がROM202等に予め設定される所定の閾値を越えたか否かを判定する(S14)。算出された信頼度が所定の閾値を越えている場合(S14:YES)、読み取りにより復号したコードは十分に信頼できることから、出力部2013は、復号したコードを端末装置300へ出力し(S15)、S16へ処理を進める。なお、算出された信頼度が所定の閾値を超えない場合(S14:NO)、読み取りにより復号したコードは十分に信頼できないことから、出力部2013は、復号したコードを出力することなくS16へ処理を進める。
【0042】
S16において、CPU201は、操作スイッチ103による読み取り終了等の操作入力に従って処理を終了するか否かを判定する(S16)。処理を終了せずに継続する場合(S16:NO)、CPU201は、S12へ処理を戻す。また、処理を終了する場合(S16:YES)、CPU201は、バーコード読取部204によるバーコードの読み取りを終了して処理を終了する。
【0043】
なお、コード読取装置100では、読み取られたバーコードを構成するセグメントごとに信頼度の算出を行い、全てのセグメントの信頼度が所定の閾値を超える場合に、復号されたコードを端末装置300へ出力してもよい。このように、セグメント毎に誤読の確認を行うことで、読み取り結果の信頼性を向上させることが可能となる。具体的には、信頼度算出部2012は、S13において、バーコード読取部204により読み取られたバーコードを構成するセグメントごとに、そのセグメントに含まれるコードに対する信頼度を算出し、各セグメントの信頼度をRAM203に一時記憶する。次いで、出力部2013は、S14において、読み取られたバーコードを構成する全てのセグメント(フルセグメント分)の信頼度が所定の閾値を超える場合に、復号されたコードを端末装置300へ出力する。
【0044】
図11は、フルセグメントの場合について信頼度による読取コードの出力を例示する概念図である。図11に示すように、数回のバーコードの読み取りにより、RAM203には、「4912345678904」及び「4912345678902」等の復号された読取コード(フルセグメント)と、その読取コードに対する信頼度の積算値が記憶される。出力部2013は、RAM203に記憶された信頼度が例えば1.8程度の閾値を上回るセグメントを有効とする。図示例では、信頼度が「2.2」である「4912345678904」が有効とされる。次いで、出力部2013は、有効とされたコードをRAM203より読み出し、読み出したコードがフルセグメント分あるか否かを判定する。有効とされたコードがフルセグメント分ある場合、出力部2013は、そのコードを端末装置300へ出力する。図示例では、有効とされた「4912345678904」が、フルセグメント分あることから、そのまま端末装置300へ出力される。
【0045】
図12は、ハーフセグメントの場合について信頼度による読取コードの出力を例示する概念図である。図12に示すように、数回のバーコードの読み取りにより、RAM203には、左側のハーフセグメント分の読取コードである「4912345」、右側のハーフセグメント分の読取コードである「678902」及び「672904」と、読取コードに対する信頼度の積算値が記憶される。左側のハーフセグメントの「4912345」と、右側のハーフセグメントの「672904」が有効とされるものとする。出力部2013は、左側及び右側のハーフセグメントで有効とされたそれぞれのコードを読み出し、読み出したフルセグメント分のコードについて、チェックキャラクタの整合を確認する。次いで、出力部2013は、チェックキャラクタの整合が確認された場合に、左側及び右側のハーフセグメントで有効とされたフルセグメント分のコードを端末装置300へ出力する。図示例では、左側のハーフセグメントの「4912345」と右側のハーフセグメントの「672904」とを組み合わせた「4912345672904」が端末装置300へ出力される。
【0046】
また、出力部2013は、RAM203に記憶された複数のコードの中で、互いの信頼度の差が所定の閾値を超える場合の、大きな信頼度を算出したコードの方を端末装置300へ出力してもよい。具体的には、出力部2013は、RAM203に記憶されている読取コードを信頼度の大きい順にソートし、信頼度が1番大きいコードと、次に大きいコードとの間の信頼度の差が所定の閾値を超えたか否かを判定する。そして、出力部2013は、信頼度の差が所定の閾値を超えた場合に、信頼度が1番大きいコードを端末装置300へ出力する。
【0047】
読み取り時の条件(バーコードに対するコード読取装置100の角度や照明等)が好条件であれば、正しく読み取れたコードの信頼度は大きくなり、正しく読み取れなかったコードの信頼度との差が十分に大きくなる。したがって、信頼度が1番大きいコードと、次に大きいコードとの間の信頼度の差が十分に大きな場合に、信頼度が1番大きいコードを端末装置300へ出力することで、読み取り結果の信頼性を向上させることが可能となる。
【0048】
図13は、フルセグメントの場合について信頼度による読取コードの出力を例示する概念図である。図13に示すように、「4912345678904」及び「4912345678902」等の復号された読取コード(フルセグメント)を信頼度の大きい順にソートし、互いの信頼度の値を比較する。そして、所定の閾値として例えば1.5以上の差がある場合に、信頼度の大きい「4912345678904」を有効とし、有効とされた「4912345678904」を端末装置300へ出力する。
【0049】
実施形態のコード読取装置100は、CPUなどの制御装置と、ROM(Read Only Memory)やRAMなどの記憶装置と、HDD、CDドライブ装置などの外部記憶装置と、ディスプレイ装置などの表示装置と、キーボードやマウスなどの入力装置を備えており、通常のコンピュータを利用したハードウェア構成となっている。
【0050】
実施形態のコード読取装置100で実行されるプログラムは、インストール可能な形式又は実行可能な形式のファイルでCD−ROM、フレキシブルディスク(FD)、CD−R、DVD(Digital Versatile Disk)等のコンピュータで読み取り可能な記録媒体に記録されて提供される。
【0051】
また、実施形態のコード読取装置100で実行されるプログラムを、インターネット等のネットワークに接続されたコンピュータ上に格納し、ネットワーク経由でダウンロードさせることにより提供するように構成しても良い。また、実施形態のコード読取装置100で実行されるプログラムをインターネット等のネットワーク経由で提供または配布するように構成しても良い。また、本実施形態のプログラムを、ROM等に予め組み込んで提供するように構成してもよい。
【0052】
実施形態のコード読取装置100で実行されるプログラムは、上述した各部(コード復号部2011、信頼度算出部2012、出力部2013)を含むモジュール構成となっており、実際のハードウェアとしてはCPU(プロセッサ)が上記記憶媒体からプログラムを読み出して実行することにより上記各部が主記憶装置上にロードされ、主記憶装置上に生成されるようになっている。
【0053】
なお、上述した実施形態では、コード読取装置100のCPU201がプログラムを実行することで、コード復号部2011、信頼度算出部2012、出力部2013としての機能を提供する構成を例示した。しかしながら、コード復号部2011、信頼度算出部2012、出力部2013は、端末装置300側のCPUがプログラムを実行することで実現されてもよい。
【符号の説明】
【0054】
100…コード読取装置、101…筐体、102…把握部、103…操作スイッチ、104…通信ケーブル、201…CPU、202…ROM、203…RAM、204…バーコード読取部、205…通信部、206…操作部、208…バス、300…端末装置、2011…コード復号部、2012…信頼度算出部、2013…出力部、BC…バーコード、BR1、BR2…バー、C1…国コード、C2…商品メーカーコード、C3…商品アイテムコード、C4…モジュラチェックキャラクタ、SP1、SP2…間隙
【先行技術文献】
【特許文献】
【0055】
【特許文献1】特開2001−175805号公報
【特許請求の範囲】
【請求項1】
バーコードを読み取る読取手段と、
前記バーコードに含まれるコードを復号する復号手段と、
前記復号されたバーコードの間隙及びバーの幅と、前記読み取られたバーコードにおける間隙及びバーの幅とのずれ量をもとに、当該読み取られたバーコードに含まれるコードに対する復号されたコードの信頼度を算出する算出手段と、
前記算出された信頼度に応じて前記復号されたコードを出力する出力手段と、
を備えるコード読取装置。
【請求項2】
前記出力手段は、前記算出された信頼度が所定の閾値を超える場合に、前記復号されたコードを出力する、
請求項1に記載のコード読取装置。
【請求項3】
前記読取手段により逐次読み取られたバーコードにより復号されたコードと、当該復号されたコードについて算出された信頼度とを記憶する記憶手段を更に備え、
前記出力手段は、前記記憶手段に記憶された複数のコードの中で、互いの信頼度の差が所定の閾値を超える場合の、大きな信頼度を算出したコードの方を出力する、
請求項1に記載のコード読取装置。
【請求項4】
前記ずれ量をもとに前記信頼度を算出する算出方式を設定する設定手段を更に備え、
前記算出手段は、前記設定手段により設定された算出方式に従って前記信頼度の算出を行う、
請求項1乃至3のいずれか一項に記載のコード読取装置。
【請求項5】
前記算出手段は、前記読み取られたバーコードを構成するセグメントごとに、当該セグメントに含まれるコードに対する復号されたコードの信頼度を算出し、
前記出力手段は、前記読み取られたバーコードを構成する全てのセグメントにかかる前記算出された信頼度が所定の閾値を超える場合に、前記復号されたコードを出力する、
請求項1乃至4のいずれか一項に記載のコード読取装置。
【請求項6】
コンピュータを、
バーコードを読み取る読取手段により読み取られたバーコードに含まれるコードを復号する復号手段と、
前記復号されたバーコードの間隙及びバーの幅と、前記読み取られたバーコードにおける間隙及びバーの幅とのずれ量をもとに、当該読み取られたバーコードに含まれるコードに対する復号されたコードの信頼度を算出する算出手段と、
前記算出された信頼度に応じて前記復号されたコードを出力する出力手段と、
して機能させるためのプログラム。
【請求項1】
バーコードを読み取る読取手段と、
前記バーコードに含まれるコードを復号する復号手段と、
前記復号されたバーコードの間隙及びバーの幅と、前記読み取られたバーコードにおける間隙及びバーの幅とのずれ量をもとに、当該読み取られたバーコードに含まれるコードに対する復号されたコードの信頼度を算出する算出手段と、
前記算出された信頼度に応じて前記復号されたコードを出力する出力手段と、
を備えるコード読取装置。
【請求項2】
前記出力手段は、前記算出された信頼度が所定の閾値を超える場合に、前記復号されたコードを出力する、
請求項1に記載のコード読取装置。
【請求項3】
前記読取手段により逐次読み取られたバーコードにより復号されたコードと、当該復号されたコードについて算出された信頼度とを記憶する記憶手段を更に備え、
前記出力手段は、前記記憶手段に記憶された複数のコードの中で、互いの信頼度の差が所定の閾値を超える場合の、大きな信頼度を算出したコードの方を出力する、
請求項1に記載のコード読取装置。
【請求項4】
前記ずれ量をもとに前記信頼度を算出する算出方式を設定する設定手段を更に備え、
前記算出手段は、前記設定手段により設定された算出方式に従って前記信頼度の算出を行う、
請求項1乃至3のいずれか一項に記載のコード読取装置。
【請求項5】
前記算出手段は、前記読み取られたバーコードを構成するセグメントごとに、当該セグメントに含まれるコードに対する復号されたコードの信頼度を算出し、
前記出力手段は、前記読み取られたバーコードを構成する全てのセグメントにかかる前記算出された信頼度が所定の閾値を超える場合に、前記復号されたコードを出力する、
請求項1乃至4のいずれか一項に記載のコード読取装置。
【請求項6】
コンピュータを、
バーコードを読み取る読取手段により読み取られたバーコードに含まれるコードを復号する復号手段と、
前記復号されたバーコードの間隙及びバーの幅と、前記読み取られたバーコードにおける間隙及びバーの幅とのずれ量をもとに、当該読み取られたバーコードに含まれるコードに対する復号されたコードの信頼度を算出する算出手段と、
前記算出された信頼度に応じて前記復号されたコードを出力する出力手段と、
して機能させるためのプログラム。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【公開番号】特開2012−248089(P2012−248089A)
【公開日】平成24年12月13日(2012.12.13)
【国際特許分類】
【出願番号】特願2011−120723(P2011−120723)
【出願日】平成23年5月30日(2011.5.30)
【出願人】(000003562)東芝テック株式会社 (5,631)
【Fターム(参考)】
【公開日】平成24年12月13日(2012.12.13)
【国際特許分類】
【出願日】平成23年5月30日(2011.5.30)
【出願人】(000003562)東芝テック株式会社 (5,631)
【Fターム(参考)】
[ Back to top ]