説明

券読取り方法

【課題】 券面に記録されたコードの読取り率を向上させることができる券読取り装置における券読取り方法を提供する。
【解決手段】 整理券の輪郭データに基づいて当該整理券の縁折れの有無を判定し、当該縁折れが検出されたときに当該整理券の輪郭データを補正するようにした。この補正された輪郭データに基づいて整理券の券面に記録されたバーコードの位置(位置データ)を求め、この位置に基づいて当該バーコードを読取るようにした。このため、整理券に縁折れがあった場合であっても、当該整理券の券面に記録されたバーコードを正確に読取ることができる

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、例えばバスの運賃箱に搭載されて運賃とともに投入された整理券等の券を読取る券読取り方法に関するものである。
【背景技術】
【0002】
従来、バス等のワンマン運行システムにおいては、車内に整理券発行器、運賃表示器及び運賃箱等のワンマン機器を搭載して、バス等の車内で乗車区間に応じた運賃を受け取る運賃収受システムが採用されている。乗車時、乗客は整理券発行器により発行された整理券を受け取る。この整理券の券面には乗車した停留所等の情報が整理券発行器によりバーコードとして記録(印刷)される。降車時、乗客は運賃表示器に表示された運賃(硬貨)と共にバーコードの印刷された整理券を運賃箱に投入する。券読取り装置により整理券の券面に記録されたバーコードが読取られ、この読取り結果に基づいて運賃が自動計算される。
【0003】
運賃箱には整理券が一定の投入方向で投入されることは少なく、当該整理券は様々な投入角度で運賃箱に投入される。このため、従来、整理券の投入角度が傾いていても適正にバーコードを読取り可能とした券読取り装置が提案されている。この券読取り装置は整理券の券面に記録されたバーコードを光学的に読取る読取り装置を備えており、当該読取り装置は整理券の全体を読取って、当該整理券の外形及び当該整理券の券面に記録されたバーコードの走査情報をそれぞれ得る。券読取り装置は、これらの走査情報に基づいて整理券の輪郭(ここでは、整理券の角部(頂点)の座標)を求め、この輪郭から整理券に記録されたバーコードの位置を検出し、当該バーコードを検出する(例えば、特許文献1参照。)。
【0004】
具体的には、長方形状の整理券が読取り装置に対して斜めに挿入された場合、読取り装置は整理券を下から順次走査して整理券自体の有無及び整理券の券面の記載事項の有無を検出する。この走査結果はメモリに画像情報として格納され、このメモリに格納された画像情報に基づいて、券読取り装置の角部座標検出装置は整理券の角部の座標を求める。
【0005】
コード読取り装置は挿入類型判別装置を備えており、当該挿入類型判別装置は角部座標検出装置により求められた整理券の角部の座標に基づいて、読取り装置に挿入される整理券の姿勢の類型(即ち、整理券の投入方向)を把握する。この挿入類型判別装置による整理券の姿勢の類型の判断結果は、中心線判定装置に送られる。中心線判定装置は挿入類型判別装置からの類型の判断結果、角部座標検出装置からの角部座標及びメモリに格納された走査情報に基づいて中心線を求める。バーコードは整理券の券面における中心線上に配置されているので、当該中心線に沿ってバーコードを読むことが可能となる。
【0006】
また、斜めに投入された券のバーコードを読取る方法として、次のような方法も考えられる。即ち、図8に示すように、券読取り装置は、取込み画像から整理券Sの4つの角部(最左端の頂点A、最上端の頂点B、最下端の頂点C、最右端の頂点D)の座標A:(Xa,Ya),B:(Xb,Yb),C:(Xc,Yc),D:(Xd,Yd)をそれぞれ検出する(S201)。即ち、読取り装置はX軸プラス方向へ走査して整理券Sの最左端の頂点A(Xa,Ya)を、同じくY軸プラス方向へ走査して整理券Sの最下端の頂点B(Xb,Yb)を、同じくY軸マイナス方向へ走査して整理券Sの最上端の頂点C(Xc,Yc)を、同じくX軸マイナス方向へ走査して整理券Sの最右端の頂点D(Xd,Yd)を検出する。
【0007】
<S202>
次に、券読取り装置は整理券Sの投入方向(投入姿勢)を整理券Sの長辺及び短辺から推定する(S202)。
【0008】
即ち、券読取り装置は、まず頂点Aと頂点Bとの間の距離LAB及び頂点Bと頂点Dとの間の距離LBDを次式(a1),(a2)に基づいてそれぞれ求める。
LAB=√((Xa−Xb)2+(Ya−Yb)2)…(a1)
LBD=√((Xa−Xb)2+(Ya−Yb)2)…(a2)
図9に示す状態においては、LAB>LBDであるため、券読取り装置は線分ABが長辺であると判断する。
【0009】
そして、券読取り装置は線分ABの傾きmABの絶対値│mAB│を次式(b)に基づいて算出する。
│mAB│=│(Ya−Yb)/(Xa−Xb)│…(b)
券読取り装置は、│mAB│>1=tan45°ならば整理券は立っていると判断し、│mAB│≦1=tan45°ならば整理券Sは寝ていると判断する。
【0010】
<S203>
S202において整理券Sが立っていると判断した場合、券読取り装置はY軸方向の微小距離ΔYを設定する(S203)。ちなみに、S202において、整理券Sが寝ていると判断した場合は、X方向の微小距離ΔXを設定する。これは、整理券Sは柔らかな紙により形成されているので当該整理券Sの4つの角部の頂点A,B,C,Dは丸くなることが多い。このような状態においても正確に整理券Sの券面を読取り可能となるように、誤差補正の目的で長辺を少し内側に入った点A’,B’,C’,D’(以下、「補正頂点A’、補正頂点B’、補正頂点C’及び補正頂点D’」という。)を使用して両長辺の傾きを計算する。
【0011】
具体的には、補正頂点A’のY座標をYa’=Ya−ΔYとし、直線Y=Ya’上をX軸プラス方向へ走査して補正頂点A’のX座標Xa’を定める。補正頂点A’の座標はA’:(Xa’,Ya’)となる。同様に、補正頂点B’のY座標をYb’=Yb+ΔYとし、直線Y=Yb’上をX軸プラス方向へ走査して補正頂点B’のX座標Xb’を定める。補正頂点B’の座標はB’:(Xb’,Yb’)となる。同様に、補正頂点C’のY座標をYc’=Yc−ΔYとし、直線Y=Yc’上をX軸マイナス方向へ走査して補正頂点C’のX座標Xc’を定める。補正頂点C’の座標はC’:(Xc’,Yc’)となる。同様に、補正頂点D’のY座標をYd’=Yd−ΔYとし、直線Y=Yd’上をX軸マイナス方向へ走査し、補正頂点D’のX座標Xd’を定める。補正頂点D’の座標はD’:(Xd’,Yd’)となる。
【0012】
<S204>
次に、券読取り装置は両長辺の傾き、即ち、直線A’B’の傾きmA’B’及び直線C’D’の傾きmC’D’、並びにそれらを算術平均した傾きmを、それぞれ次式(c1),(c2),(c3)に基づいて求める(S204)。
【0013】
mA’B’=(Ya’−Yb’)/(Xa’−Xb’)…(c1)
mC’D’=(Yc’−Yd’)/(Xc’−Xd’)…(c2)
m=(mA’B’+mC’D’)/2…(c3)
<S205>
次に、券読取り装置は直線B’D’の中点P(XP,YP)を次式(d1),(d2)に基づいて求める(S205)。
【0014】
XP=(Xb’+Xd’)/2…(d1)
YP=(Yb’+Yd’)/2…(d2)
<S206>
次に、券読取り装置は、中点Pを通る傾きmの直線方程式(次式(e))を求める(S206)。
【0015】
Y=m(X−XP)+YP…(e)
この直線が整理券Sの認識ラインLmとなる。この認識ラインLmは整理券Sの券面におけるバーコードの位置を示すと共に、券読取り装置(厳密には、図示しない走査手段)のコード読取り方向を規定するものである。バーコードは整理券Sの券面における中心線上に配置されているので、認識ラインLm上にバーコードは位置することとなる。そして、この認識ラインLmに沿って券読取り装置は整理券Sのバーコードを読取る(S207)。
【先行技術文献】
【特許文献】
【0016】
【特許文献1】特開平1−102689号公報
【発明の概要】
【発明が解決しようとする課題】
【0017】
ところが、前記従来の券読取り装置においては、次のような問題があった。即ち、ワンマン運行システムにおける柔らかい紙に印刷された整理券Sは、運賃箱に投入される前に角部が折れ曲がることがある。角部が折れた整理券Sにおいては短辺側に頂点があると認識され、認識ラインLmは整理券Sに対して斜めに引かれる。
具体的に説明すると、図9に示すように、例えば整理券Sの頂点Cが本来の位置よりも頂点A側に片寄った位置において検出された場合には、補正頂点C’は整理券Sの折れ辺上に且つ補正頂点A’側に片寄って設定される(S201〜S203参照)。このため、直線C’D’の傾き(長辺の傾きに相当)は本来の傾きよりも内方にずれたものとなり、直線A’B’及び直線C’D’の傾きの平均である認識ラインLmの傾きも当然に本来の傾きよりも頂点A側にずれたものとなる(S204〜S206参照)。従って、図10に示すように、認識ラインLmが整理券Sの券面に記録されたバーコードからずれる。この結果、券読取り装置はバーコードデータを読取れなかったり、誤認識したりするおそれがあった。
【0018】
本発明は上記問題点を解決するためになされたものであって、その目的は、券面に記録されたコードの読取り率を向上させることができる券読取り装置を提供することにある。
【課題を解決するための手段】
【0019】
本発明は、券面における予め設定された位置にコードが記録された券の全体を走査する走査手段と、前記読取り手段からの走査情報に基づいて前記券の輪郭データを求める輪郭データ演算手段と、前記輪郭データ演算手段により算出された券の輪郭データに基づいて前記券面におけるコードの位置データを求めるコード位置演算手段と、前記コード位置演算手段により求められた位置データに基づいてコードを読取る読取り手段とを備えた券読取り装置において、前記コード位置演算手段は、前記輪郭データ演算手段により算出された券の輪郭データに基づいて当該券における短辺側の縁折れの有無を判定する縁折れ判定手段と、前記縁折れ判定手段により前記券における短辺側の縁折れが検出されたときに当該券の輪郭データを補正する補正手段とを備えたことを要旨とする。
【0020】
この構成によれば、券の縁折れが検出されたとき、当該券の輪郭データが補正される。この補正された輪郭データに基づいて券の券面に記録されたコードの位置データが求められ、この位置データに基づいて当該コードが読取られる。このため、券に縁折れがあった場合であっても、当該券の券面に記録されたコードは正確に読取られる。従って、券面に記録されたコードの読取り率が向上する。
【0021】
本発明は、前記輪郭データは券の両長辺の傾きを含み、前記縁折れ判定手段は、券の両長辺の傾きがそれぞれ正常か否かを判定する傾き判定手段を備え、前記補正手段は、前記傾き判定手段により傾き異常と判定された長辺の傾きを補正する傾き補正手段を備え、前記傾き補正手段により補正された傾きを有する長辺と前記傾き判定手段により正常であると判定された長辺とに基づいて、前記コード位置演算手段は当該コードの位置データを求めるようにしたことを要旨とする。
【0022】
この構成によれば、券の両長辺の傾きがそれぞれ正常か否かが判定される。即ち、券に縁折れが発生していれば、券の輪郭データもずれるので縁折れが発生している側の長辺の傾きは縁折れが発生していないときとは異なったものになる。傾きが異常と判定されたとき、この傾きが異常と判定された長辺の傾きは補正される。そして、補正された傾きを有する一方の長辺と正常な傾きを有する他方の長辺とに基づいて、当該券の券面におけるコードの位置データ(認識ライン)が求められる。このため、コードの券面における正確な位置データが得られる。
【0023】
本発明は、前記傾き判定手段は、両長辺における中点と両長辺とのエッジとの距離であるエッジ誤差を求めるエッジ誤差算出手段と、前記エッジ誤差算出手段により求められたエッジ誤差に基づいて両長辺の傾きの正常/異常を判定するエッジ誤差判定手段とを備え、前記傾き補正手段は、前記輪郭データ算出手段により求められた輪郭データに基づいて券の両短辺長をそれぞれ演算する短辺長演算手段と、前記短辺長演算手段により算出された当該両短辺長と予め格納された正規の両短辺長との比較結果に基づいて正常側の短辺を判定する短辺判定手段と、前記エッジ誤差判定手段により異常と判定された長辺において前記短辺判定手段により正常側と判定された短辺側の角を通ると共に前記エッジ誤差判定手段により正常と判定された長辺の傾きと同じ傾きを有する直線を求めて当該直線を前記エッジ誤差判定手段により異常と判定された長辺とする長辺修正手段とを備え、前記コード位置演算手段は、前記エッジ誤差判定手段により正常と判定された長辺において前記短辺判定手段により正常側と判定された短辺側の角と、前記エッジ誤差判定手段により異常と判定された長辺において前記短辺判定手段により正常側と判定された短辺側の角との中点を演算する中点演算手段と、前記中点演算手段により算出された中点と、前記修正直線の傾きとに基づいて前記位置データを求める位置データ演算手段とを備えたことを要旨とする。
【0024】
この構成によれば、輪郭データに基づいて求められた両長辺における中点と本来の両長辺とのエッジ(側縁)との距離であるエッジ誤差が求められ、このエッジ誤差に基づいて両長辺の傾きの正常/異常が判定される。次に、前記輪郭データ算出手段により求められた輪郭データに基づいて券の両短辺長がそれぞれ算出され、この算出された当該両短辺長と予め格納された正規の両短辺長との比較結果に基づいて正常側の短辺が判定される。
【0025】
そして、前記エッジ誤差判定手段により異常と判定された長辺において前記短辺判定手段により正常側と判定された短辺側の角(頂点)を通ると共に前記エッジ誤差判定手段により正常と判定された長辺の傾きと同じ傾きを有する直線が求められる。当該直線が前記エッジ誤差判定手段により異常と判定された長辺の修正直線(傾きが修正された後の長辺)とされる。このようにして傾き異常側の長辺が補正される。この後、前記エッジ誤差判定手段により正常と判定された長辺において前記短辺判定手段により正常側と判定された短辺側の角と、前記エッジ誤差判定手段により異常と判定された長辺において前記短辺判定手段により正常側と判定された短辺側の角(点)との中点が算出される。この算出された中点と、前記修正直線の傾きとに基づいて前記券の位置データが求められる。このため、走査手段のコード読取り方向を規定する位置データ(認識ライン)を求める際、縁折れに起因する位置データのずれが抑制されるので、より正確な位置データが得られる。従って、読取り手段によるコードの読取り率が向上する。
【0026】
本発明は、券面の予め設定された位置にコードが記録された券の全体を走査する走査手段と、前記読取り手段からの走査情報に基づいて券の輪郭データを求める輪郭データ演算手段と、前記輪郭データ演算手段により求められた券の輪郭データに基づいて当該券の前記券面におけるコードの位置データを求めるコード位置演算手段と、前記コード位置演算手段により求められた位置データに基づいてコードを読取る読取り手段とを備えた券読取り装置において、前記輪郭データは券の両長辺の傾きを含み、前記コード位置演算手段は、前記輪郭データ演算手段により求められた券の輪郭データに基づいて当該券の縁折れの有無を判定する縁折れ判定手段を備え、前記縁折れ判定手段は、前記輪郭データに基づいて券の両長辺の傾きを求めて当該両長辺の傾きがそれぞれ正常か否かを判定する傾き判定手段を備え、前記傾き判定手段で正常であると判定された長辺に基づいて、前記コード位置演算手段は券面におけるコードの位置データを求めるようにしたことを要旨とする。
【0027】
この構成によれば、券の両長辺の傾きがそれぞれ正常か否かが判定される。即ち、券に縁折れが発生していれば、券の輪郭データもずれるので縁折れが発生している側の長辺の傾きは縁折れが発生していないときとは異なったものになる。そして、券の両長辺のうち傾きが正常であると判定された長辺に基づいて、当該券の券面におけるコードの位置データ(認識ライン)が求められる。このため、コードの券面における正確な位置データが得られる。このため、券に縁折れがあった場合であっても、当該券の券面に記録されたコードは正確に読取られる。従って、券面に記録されたコードの読取り率が向上する。
【0028】
本発明は、前記傾き判定手段は、前記輪郭データに基づいて求められた券の両長辺における中点と両長辺のエッジとの距離であるエッジ誤差を求めるエッジ誤差演算手段と、前記エッジ誤差演算手段により求められたエッジ誤差に基づいて両長辺の傾きの正常/異常を判定するエッジ誤差判定手段とを備え、前記コード位置演算手段は、前記輪郭データ演算手段により求められた輪郭データに基づいて券の両短辺長をそれぞれ求める短辺長演算手段と、前記短辺長演算手段により算出された当該両短辺長と予め格納された正規の両短辺長との比較結果に基づいて正常側の短辺を判定する短辺判定手段と、前記エッジ誤差判定手段により正常と判定された長辺において前記短辺判定手段により正常側と判定された短辺側の角と、前記エッジ誤差判定手段により異常と判定された長辺において前記短辺判定手段により正常側と判定された短辺側の角との中点を演算する中点演算手段と、前記中点演算手段により算出された中点と、前記傾き判定手段で正常であると判定された長辺の傾きとに基づいて、前記券面におけるコードの位置データを求める位置データ演算手段とを備えたことを要旨とする。
【0029】
この構成によれば、輪郭データに基づいて求められた両長辺における中点と本来の両長辺とのエッジ(側縁)との距離であるエッジ誤差が求められ、このエッジ誤差に基づいて両長辺の傾きの正常/異常が判定される。次に、前記輪郭データに基づいて券の両短辺長がそれぞれ算出され、この算出された両短辺長と予め格納された正規の両短辺長との比較結果に基づいて縁折れのない正常側の短辺が判定される。次に、傾き正常と判定された券の長辺において縁折れのない正常側と判定された短辺側の角(点)と、傾き異常と判定された長辺において縁折れのない正常側と判定された短辺側の角(点)との中点が算出される。この算出された中点と、傾き正常であると判定された長辺の傾きとに基づいて、券の位置データが求められる。このため、走査手段のコード読取り方向を規定する位置データ(認識ライン)を求める際、縁折れに起因する位置データのずれが抑制されるので、より正確な位置データが得られる。従って、コードの読取り率がいっそう向上する。
【0030】
本発明は、前記縁折れ判定手段により券の縁折れが無い旨の判定がなされた場合には、当該券の両長辺の傾きの平均値に基づいて、前記コード位置演算手段は券面におけるコードの位置データを求めるようにしたことを要旨とする。
この構成によれば、前記縁折れ判定手段により券の縁折れが無い旨の判定がなされた場合には、当該券の両長辺の傾きの平均値に基づいて券面におけるコードの位置データが求められる。券には縁折れが無いので当該券の両長辺に基づいて求められるコードの位置データは正確である。このため、券の券面に記録されたコードは正確に読取られる。
【発明の効果】
【0031】
発明によれば、券面に記録されたコードの読取り率を向上させることができる。
【図面の簡単な説明】
【0032】
【図1】本実施形態における券読取り装置の概略構成を示すブロック図。
【図2】(a)は本実施形態におけるCPUの概略構成を示すブロック図、(b)は本実施形態におけるコード位置演算部の概略構成を示すブロック図。
【図3】本実施形態におけるコード位置演算部の概略構成を示すブロック図。
【図4】本実施形態におけるバーコード認識処理を示すフローチャート。
【図5】本実施形態における整理券の取込み画像データを示す模式図。
【図6】本実施形態における1点が折れた整理券の正面図。
【図7】別の実施形態におけるバーコード認識処理の要部を示すフローチャート。
【図8】従来のバーコード認識処理を示すフローチャート。
【図9】従来における整理券の取込み画像データを示す模式図。
【図10】従来における1点が折れた整理券の正面図。
【発明を実施するための形態】
【0033】
以下、本発明を例えばバスの運賃箱に搭載されて当該運賃箱に運賃(硬貨)と共に投入される整理券を読取る券読取り装置に具体化した一実施形態を図1〜図6に基づいて説明する。
【0034】
<全体構成>
図1に示すように、運賃箱10には券読取り装置11が搭載されており、当該券読取り装置11は読取り装置12(光学式バーコードリーダ)、制御装置13及び表示部14を備えている。
【0035】
読取り装置12はCCDセンサ等を備えており、運賃箱10の投入口10aから運賃としての硬貨と共に投入された整理券Sの外形状及び券面に記録された内容を走査して読取る。即ち、読取り装置12は幅方向(図1における左右方向)に配列された多数のセンサ群から構成され、ここに整理券Sを通過させることにより整理券Sの進行方向へ整理券Sの外形状と券面の記載内容とを順次読取るように構成されている。
【0036】
制御装置13は、CPU21(中央演算装置)、ROM22(読み出し専用メモリ)及びRAM23(読み出し書き込み専用メモリ)を備えている。
ROM22には、制御装置13が実行するバーコード認識プログラム及び補正プログラム等の各種の制御プログラム及び各種のデータが格納されている。RAM23は、ROM22に書き込まれた各種の制御プログラムを展開して制御装置13が各種の演算処理を実行するためのデータ作業領域である。また、RAM23は制御装置13が各種の演算処理を行う際の各種の演算処理結果及び読取り装置12により取込まれた画像情報(整理券Sの外形データ)等を一時的に記憶する。
【0037】
CPU21はバーコード認識プログラム及び補正プログラム等の各種の制御プログラムを実行する。バーコード認識プログラムは読取り装置12により取込まれた整理券Sの画像情報に基づいて当該整理券Sのバーコードを読取るためのプログラムである。補正プログラムは整理券Sのバーコードを正確に読取るために必要とされる各種補正処理を行うためのプログラムである。表示部14はディスプレイ等を備えており、バーコードの読取りデータを表示する。
【0038】
<バーコード>
図6に示すように、整理券Sの券面には乗車駅等の情報を含んだバーコードが記録されている。バーコードは複数の黒色バー及び白色バーが整理券Sの長手方向において所定間隔おきに配置されることにより構成されている。本実施形態では、整理券Sの長手方向に延びる3組みのバーコードが整理券Sの短手方向において所定間隔をおいて配置されている。即ち、1組みのバーコードは整理券Sの両短辺の中点間を通る線分(以下、「中心線」という。)上に配置されている。残りの2組みのバーコードは整理券Sの中心線に関して線対称となる位置に配置されている。これらのバーコードは例えばバスの乗車口近傍に設置された整理券発行機(図示略)に内蔵されたサーマル式のバーコードプリンタにより整理券Sの券面に印刷される。
【0039】
<実施形態の作用>
次に、各種の制御プログラムに従って実行される制御装置13の各種機能を図2(a),(b)及び図3に示すCPU21の機能ブロック図に基づいて説明する。
【0040】
例えばバスにおいて乗客が降車する際、運賃箱10には運賃としての硬貨と共に整理券Sが投入される。整理券Sは券銭分離装置(図示略)により硬貨と分離されて読取り装置12へ送られる。この読取り装置12において整理券S(厳密には、整理券Sの外形及び券面のバーコード)が光学的に取込まれる。
【0041】
図2(a)に示すように、読取り装置12からの取込み信号、即ち走査情報はA/D変換器(図示略)によりアナログ信号からデジタル信号に変換されてCPU21の輪郭データ演算部31へ送られる。輪郭データ演算部31は読取り装置12からのデジタル変換された走査情報に基づいて取込んだ整理券Sの輪郭情報(輪郭データ)を演算する。本実施形態において、整理券Sの輪郭情報は当該整理券Sの4つの角部、即ち4つの頂点A,B,C,Dの座標である。また、整理券Sの輪郭情報は、両長辺を少し内側に入った4つの点、即ち、補正頂点A’、補正頂点B’、補正頂点C’及び補正頂点D’を含む。輪郭データ演算部31は算出した整理券Sの輪郭情報をコード位置演算部32へ送る。
【0042】
コード位置演算部32は輪郭データ演算部31から送られてきた整理券Sの輪郭情報に基づいて整理券Sの券面におけるバーコードの位置(位置データ)を演算する。具体的には、バーコードの読取り方向を規定する認識ラインを作成する。コード位置演算部32により算出されたバーコードの位置に基づいて、読取り部33は整理券Sのバーコードを読取る。この読取り部33による読取り結果は表示部14に表示される。
【0043】
<コード位置演算部>
次に、コード位置演算部32について詳細に説明する。図2(b)に示すように、コード位置演算部32は、縁折れ判定部41及び補正部42を備えている。輪郭データ演算部31から送られてきた整理券Sの輪郭情報(4つの頂点の座標)は縁折れ判定部41に入力される。この縁折れ判定部41は整理券Sの輪郭情報に基づいて整理券Sに縁折れが発生しているか否かを判定する。具体的には、縁折れ判定部41は整理券Sの輪郭情報に基づいて当該整理券Sの両長辺の傾きを演算し、両長辺の傾きが正常か否かを判定する。縁折れ判定部41は当該判定結果を補正部42へ送る。
【0044】
縁折れ判定部41の判定結果に両長辺のうちいずれか一方の傾きに異常がある旨の判定が含まれている場合、補正部42は異常と判定された側の長辺の傾きを補正する。コード位置演算部32はRAM23に格納されている整理券Sの輪郭情報、補正部42により補正されてRAM23に格納された長辺の傾き、及び予めROM22に格納された正常な長辺の傾きに基づいて整理券Sの券面におけるバーコードの位置を演算する。
【0045】
<縁折れ判定部>
次に、縁折れ判定部41について詳細に説明する。図3に示すように、縁折れ判定部41は、エッジ誤差演算部51及びエッジ誤差判定部52を備えている。輪郭データ演算部31から送られてきた整理券Sの輪郭情報は縁折れ判定部41のエッジ誤差演算部51に入力される。
【0046】
エッジ誤差演算部51は補正頂点A’と補正頂点B’との中点M(図5参照)の座標、及び補正頂点C’と補正頂点D’との中点N(図5参照)の座標をそれぞれ求める。そして、エッジ誤差演算部51は中点Mと整理券Sのエッジ(線分AB側)との誤差δm、及び中点Nと整理券Sのエッジ(線分CD側)との誤差δnとをそれぞれ求める。エッジ誤差演算部51は算出した誤差δm及び誤差δnをそれぞれエッジ誤差判定部52へ送る。
【0047】
エッジ誤差判定部52は誤差δmと予め設定された最小誤差ε及び同じく誤差δnと最小誤差εとをそれぞれ比較し、これらの比較結果に基づいて整理券Sの両長辺に相当する線分A’B’及び線分C’D’の傾きの異常の有無を判定する。エッジ誤差判定部52は整理券Sにおける両長辺の傾き異常の有無の判定結果を補正部42へ送る。
【0048】
<補正部>
次に、補正部42について詳細に説明する。図3に示すように、補正部42は、短辺長演算部61、短辺判定部62及び長辺修正部63を備えている。短辺長演算部61にはエッジ誤差判定部52からの整理券Sにおける両長辺の傾き異常の有無の判定結果が入力される。短辺長演算部61は、整理券Sにおける頂点Aと頂点Cとの間の距離である短辺長L1、及び頂点Bと頂点Dとの間の距離である短辺長L2をそれぞれ求め、これらを短辺判定部62へ送る。
【0049】
短辺判定部62は短辺長演算部61から送られてきた短辺長L1及び短辺長L2と、予めROM22に格納された整理券S本来の短辺長Lとをそれぞれ比較する。そして、それらの比較結果に基づいて短辺判定部62は、異常有りと判断された長辺(本実施形態では線分C’D’)における両補正頂点C’,D’のうち正常側の頂点を判定し、その判定結果を長辺修正部63へ送る。本実施形態では補正頂点D’が縁折れのない正常側となっている。
【0050】
長辺修正部63は、短辺判定部62において異常有りと判断された長辺(線分C’D’)における両補正頂点C’,D’のうち正常側の頂点(補正頂点D’)を通り、かつ短辺判定部62において正常と判断された長辺(線分A’B’)の傾きmA’B’と同じ傾きを有する線分を、異常有りと判断された長辺の正規の線分(修正後の長辺)とする。即ち、正規の線分C’D’の傾きmC’D’=線分A’B’の傾きmA’B’となる。
【0051】
<中点演算部・位置データ演算部>
図3に示すように、コード位置演算部32は中点演算部71及び位置データ演算部72を更に備えている。中点演算部71は、両頂点C,Dのうち正常側の頂点Dの補正頂点D’と正常側の長辺において整理券Sの短手方向において対応する頂点Bの補正頂点B’との中点P(図5参照)の座標を求める。位置データ演算部72は中点演算部71により求められた中点P及び長辺修正部63により修正された線分C’D’の傾きmC’D’とに基づいて整理券Sのバーコードの位置を求める。即ち、中点Pを通り、傾きmC’D’(=傾きmA’B’)の直線方程式を求める。この直線(線分)がバーコードの認識ラインとなる。この認識ライン上にバーコードが配置されている。
【0052】
尚、本実施形態において、読取り装置12は走査手段を、輪郭データ演算部31は輪郭データ演算手段を、コード位置演算部32はコード位置演算手段を、読取り部33は読取り手段を、判定部41はそれぞれ縁折れ判定手段及び傾き判定手段を、補正部42はそれぞれ補正手段及び傾き補正手段を構成する。また、エッジ誤差演算部51はエッジ誤差演算手段を、エッジ誤差判定部52はエッジ誤差判定手段を、短辺長演算部61は短辺長演算手段を、短辺判定部62は短辺判定手段を、長辺修正部63は長辺修正手段を、中点演算部71は中点演算手段を、位置データ演算部72は位置データ演算手段をそれぞれ構成する。さらに、整理券Sは券に相当する。
【0053】
<バーコード認識処理の詳細>
次に、前述のように構成した券読取り装置の作用を図4に示すフローチャートに従って説明する。本実施形態では、ステップを「S」と略記する。また、整理券Sの1つの角部(本実施形態では頂点C側の角部)には縁折れが発生している。
【0054】
<S101>
図4に示すように、CPU21は、読取り装置12による取込み画像から整理券Sの4つの角部(最左端の頂点A、最上端の頂点B、最下端の頂点C、最右端の頂点D)の座標A:(Xa,Ya),B:(Xb,Yb),C:(Xc,Yc),D:(Xd,Yd)をそれぞれ検出する(S101)。即ち、読取り装置はX軸プラス方向へ走査して整理券Sの最左端の頂点A(Xa,Ya)を、同じくY軸プラス方向へ走査して整理券Sの最下端の頂点B(Xb,Yb)を、同じくY軸マイナス方向へ走査して整理券Sの最上端の頂点C(Xc,Yc)を、X軸マイナス方向へ走査して整理券Sの最右端の頂点D(Xd,Yd)を検出する。
【0055】
<S102>
次に、CPU21は整理券Sの投入方向(投入姿勢)を整理券Sの長辺及び短辺から推定する(S102)。即ち、CPU21は、まずA点とB点との間の距離LAB及びB点とD点との間の距離LBDを次式(A1),(A2)に基づいてそれぞれ求める。
【0056】
LAB=√((Xa−Xb)2+(Ya−Yb)2)
LBD=√((Xa−Xb)2+(Ya−Yb)2)
図5に示す状態においては、LAB>LBDであるため、CPU21は線分ABが長辺であると判断する。
【0057】
そして、CPU21は線分ABの傾きmABの絶対値│mAB│を次式(B)に基づいて算出する。
│mAB│=│(Ya−Yb)/(Xa−Xb)│…B
CPU21は、│mAB│>1=tan45°ならば整理券は立っていると判断し、│mAB│≦1=tan45°ならば整理券Sは寝ていると判断する。ここで、tan45°の45°とは、線分ABとX軸とのなす角度である。
【0058】
<S103>
S102において整理券Sが立っていると判断した場合、CPU21はY軸方向の微小距離ΔYを設定する(S103)。ちなみに、S102において、整理券Sが寝ていると判断した場合は、X方向の微小距離ΔXを設定する。これは、整理券Sは柔らかな紙により形成されているので当該整理券Sの4つの頂点A,B,C,Dは丸くなることが多い。このような状態においても正確に整理券Sの券面を読取り可能となるように、誤差補正の目的で長辺を少し内側に入った点A’,B’,C’,D’(以下、「補正頂点A’、補正頂点B’、補正頂点C’及び補正頂点D’」という。)を使用して両長辺の傾きを計算する。
【0059】
具体的には、補正頂点A’のY座標をYa’=Ya−ΔYとし、直線Y=Ya’上をX軸プラス方向へ走査して補正頂点A’のX座標Xa’を定める。補正頂点A’の座標はA’:(Xa’,Ya’)となる。同様に、補正頂点B’のY座標をYb’=Yb+ΔYとし、直線Y=Yb’上をX軸プラス方向へ走査して補正頂点B’のX座標Xb’を定める。補正頂点B’の座標はB’:(Xb’,Yb’)となる。同様に、補正頂点C’のY座標をYc’=Yc−ΔYとし、直線Y=Yc’上をX軸マイナス方向へ走査して補正頂点C’のX座標Xc’を定める。補正頂点C’の座標はC’:(Xc’,Yc’)となる。同様に、補正頂点D’のY座標をYd’=Yd+ΔYとし、直線Y=Yd’上をX軸マイナス方向へ走査し、補正頂点D’のX座標Xd’を定める。補正頂点D’の座標はD’:(Xd’,Yd’)となる。
【0060】
このように、整理券Sにおける本来の頂点A,B,C,Dよりも、長辺方向において微小距離ΔY又はΔXだけ内側に入った位置にある補正頂点A’,B’,C’,D’を求め、それらを整理券Sの輪郭データとして使用するのは、当該整理券Sの角の丸み誤差を排除するためである。
【0061】
<S104>
次に、CPU21は整理券Sの両長辺の傾きが正常か否かを判断する(S104)。即ち、CPU21は補正頂点A’と補正頂点B’との中点Mの座標M:(Xm,Ym)を次式(C1),(C2)に基づいて求める。
【0062】
Xm=(Xa’+Xb’)/2…(C1)
Ym=(Ya’+Yb’)/2…(C2)
また、CPU21は補正頂点C’と補正頂点D’との中点Nの座標N:(Xn,Yn)を求める。
【0063】
Xn=(Xc’+Xd’)/2
Yn=(Yc’+Yd’)/2
次に、CPU21は直線Y=Ym上をX軸プラス方向へ走査して(正確には、CPU21はX軸プラス方向へ走査するように読取り装置12を制御して)、実際の整理券Sのエッジ(線分AB側)との交点M’の座標M’:(Xm’,Ym’)を求める。但し、このとき、Ym’=Ymである。
【0064】
また、CPU21は直線Y=Yn上をX軸マイナス方向へ走査して(正確には、CPU21はX軸マイナス方向へ走査するように読取り装置12を制御して)、実際の整理券Sのエッジ(線分CD側)との交点N’の座標N’:(Xn’,Yn’)を求める。但し、このとき、Yn’=Ynである。
【0065】
次に、CPU21は中点Mと交点M’との誤差δm及び中点Nと交点N’との誤差δnを次式(E1),(E2)に基づいてそれぞれ求める。
δm=│Xm’−Xm│…(E1)
δn=│Xn’−Xn│…(E2)
そして、CPU21は予め設定された最小誤差εと誤差δm及び誤差δnとをそれぞれ比較する。
【0066】
誤差δmが最小誤差εよりも小さければ、CPU21は線分A’B’の傾きを正常と判断し、誤差δmが最小誤差εよりも大きければ、CPU21は線分A’B’の傾きを異常と判断する。同様に、誤差δnが最小誤差εよりも小さければ、CPU21は線分C’D’の傾きを正常と判断し、誤差δnが最小誤差εよりも大きければ、CPU21は線分C’D’の傾きを異常と判断する。誤差δm及び誤差δnがそれぞれ最小誤差εよりも大きければ、誤差の大きい方を傾き異常と判断する。本実施形態では、δm<ε<δnとなるので、線分C’D’が異常と判断される。
【0067】
線分A’B’及び線分C’D’のいずれか一方の傾きが異常であると判断した場合(S104でYES)、CPU21はS105へ処理を移行する。線分A’B’及び線分C’D’のいずれの傾きも正常と判断した場合(S104でNO)、CPU21はS107へ処理を移行する。
【0068】
<S105>
S105において、CPU21は傾きが異常、つまり縁折れのある方の長辺(線分C’D’)において折れていない方の頂点を判定する。即ち、CPU21は整理券Sの両短辺長L1,L2を次式(F1),(F2)に基づいてそれぞれ求める。そして、CPU21は予めROM22に格納された正規の短辺長Lと両短辺長L1,L2との差ε1,ε2をそれぞれ次式(G1),(G2)に基づいて求め、当該差ε1,ε2の小さい側の頂点を正常とする。ちなみに、短辺長L1,L2はそれぞれRAM23に格納された整理券Sの取込み画像データに基づいて演算される。
【0069】
L1=線分ACの長さ=√((Xa−Xc)2+(Ya−Yc)2)…(F1)
L2=線分BDの長さ=√((Xb−Xd)2+(Yb−Yd)2)…(F2)
│L1−L│=ε1
│L2−L│=ε2
本実施形態では、ε2>ε1となるので、CPU21は補正頂点D’側を正常と判断する。RAM23に格納されている整理券Sの取込み画像データのぶれ等も除外されるので、正確な判断が可能となる。
【0070】
<S106>
次に、S104において傾き異常と判定された長辺(線分C’D’)の傾きを補正する(S106)。即ち、CPU21は補正頂点D’を通り、線分A’B’に平行な線分(直線)を正規の線分C’D’とする。この正規の線分C’D’(修正した直線)の傾きm=mA’B’は次式(H)により得られる。
【0071】
m=mA’B’=(Ya’−Yb’)/(Xa’−Xb’)…(H)
そして、修正した直線の式は、次式(I)で示される。
Y=mA’B’(X−Xd’)+Yd’…(I)
以上で、CPU21による整理券Sの輪郭データ(即ち、線分C’D’の傾き)の補正処理が完了する。この後、CPU21はS108へ処理を移行する。
【0072】
<S107>
一方、S107において、CPU21は整理券Sの両長辺の傾き、即ち、線分A’B’の傾きmA’B’及び線分C’D’の傾きmC’D’、並びにそれらを算術平均した傾きをmaveを、それぞれ次式(J1),(J2),(J3)に基づいて求める。この後、CPU21はS108へ処理を移行する。
【0073】
mA’B’=(Ya’−Yb’)/(Xa’−Xb’)…(J1)
mC’D’=(Yc’−Yd’)/(Xc’−Xd’)…(J2)
mave=(mA’B’+mC’D’)/2…(J3)
<S108>
S108において、CPU21は整理券Sにおける正常側の短辺の中点(線分B’D’の中点Pに相当)を求める。即ち、CPU21は補正頂点B’と補正頂点D’との中点Pの座標P:(XP,YP)をそれぞれ次式(J1),(J2)に基づいて求める。
【0074】
XP=(Xb’+Xd’)/2…(J1)
YP=(Yb’+Yd’)/2…(J2)
そして、CPU21は中点Pを通る傾きmA’B’(傾き補正後の線分C’D’の傾きm)の直線方程式(次式(K1)参照)、又は傾きmaveの直線方程式(次式(K2)参照)を求め、この直線をバーコードの認識ラインLmとする。
【0075】
Y=mA’B’(X−XP)+YP…(K1))
Y=mave(X−XP)+YP…(K2)
式(K1)で示される認識ラインLmは整理券Sの中心線に一致するように作成される。このため、整理券Sの頂点C側に縁折れが発生しているにもかかわらず、認識ラインLmは正確に作成される。これは、S105及びS106において傾き異常と判定された直線C’D’の傾きが補正されるからである。
【0076】
式(K2)で示される認識ラインLmも整理券Sの中心線に一致するように作成されるため、認識ラインLmは正確に作成される。これは、S108において縁折れのない整理券Sの両長辺の傾きに基づいて当該認識ラインLmの傾きが設定されるからである。
【0077】
この後、CPU21は前述した式(K1)又は(K2)で示される認識ラインLmに関して線対称となるように、当該中央の認識ラインLmに対してそれぞれ平行をなす2本の認識ラインLm1,Lm2を作成する。
【0078】
<S109>
次に、CPU21はS107において作成した3本の認識ラインLm,Lm1,Lm2に沿ってバーコードを読取る(S109)。各認識ラインLm,Lm1,Lm2はそれぞれ正確に作成されており、当該各認識ラインLm,Lm1,Lm2上にはそれぞれバーコードが位置している。このため、バーコードは正確に読取られる(認識される)。
【0079】
このように、整理券Sに縁折れが発生しているかいないかにかかわらず、各認識ラインLm,Lm1,Lm2はそれぞれ正確に作成され、各認識ラインLm,Lm1,Lm2に沿って整理券Sのバーコードが正確に読取られる。即ち、バーコードの読取り率が向上する。
【0080】
以上で、整理券Sのバーコード認識処理が完了となる。ちなみに、S102おいて整理券Sが寝ていると判断された場合も当該整理券Sが立っていると判断された場合と同様の処理が行われる。
【0081】
尚、本実施形態において、S104は縁折れ判定手段及び傾き判定手段をそれぞれ構成する。S105及びS106は補正手段及び傾き補正手段をそれぞれ構成する。また、認識ラインLm,Lm1,Lm2はバーコードの位置データを構成する。さらに、誤差δm,δnは本発明のエッジ誤差に相当する。
【0082】
(実施形態の効果)
従って、本実施形態によれば、以下の効果を得ることができる。
・整理券Sの輪郭データに基づいて当該整理券Sの縁折れの有無を判定し、当該縁折れが検出されたときに当該整理券Sの輪郭データを補正するようにした。この補正された輪郭データに基づいて整理券Sの券面に記録されたバーコードの位置(位置データ)を求め、この位置に基づいて当該バーコードを読取るようにした。このため、整理券Sに縁折れがあった場合であっても、当該整理券Sの券面に記録されたバーコードを正確に読取ることができる。
【0083】
・CPU21は整理券Sの両長辺の傾きがそれぞれ正常か否かを判定し、傾きが異常と判定されたとき、当該傾きが異常と判定された長辺(線分C’D’に相当)の傾きを補正するようにした。そして、補正された傾きを有する一方の長辺と正常な傾きを有する他方の長辺(線分A’B’に相当)とに基づいて、CPU21は当該整理券Sの券面におけるバーコードの位置データ(認識ラインLm)を求めるようにした。このように、縁折れの発生している側の長辺の傾きを補正することにより、バーコードの券面における正確な位置データが得られる。
【0084】
・CPU21は整理券Sの両長辺における中点M,Nと両長辺とのエッジM’,N’(側縁)との距離である誤差δm,δnをそれぞれ求め、この両誤差δm,δnに基づいて両長辺の傾きの正常/異常を判定するようにした。そして、CPU21は前記読取り装置12による取込み画像データ(輪郭データ)に基づいて整理券Sの両短辺長L1,L2をそれぞれ算出し、この算出された当該両短辺長L1,L2と予め格納された正規の両短辺長Lとの比較結果に基づいて正常側の短辺を判定するようにした。そして、CPU21は異常と判定した長辺において、正常側と判定した短辺側の頂点を通ると共に傾き正常と判定した長辺の傾きと同じ傾きを有する直線を求め、当該直線を傾き異常と判定した長辺の修正長辺(修正直線)とした。このようにしてCPU21は傾き異常側の長辺を補正した後、正常と判定した長辺において、前記正常側と判定した短辺側の頂点と、傾き異常と判定した長辺において前記正常側と判定した短辺側の頂点との中点Pを算出する。この中点Pと、前記修正長辺(修正直線)の傾きとに基づいて、CPU21は認識ラインLmを求める。このため、認識ラインLmを求める際、例えば縁折れに起因する位置データ(線分C’D’の傾き)のずれが抑制されるので、より正確なバーコードの位置データ、即ち認識ラインLmが得られる。従って、券読取り装置11におけるバーコードの読取り率を向上させることができる。
【0085】
・整理券Sの縁折れが無い旨の判定がなされた場合(図4;S104でNO)、CPU21は整理券Sの両長辺の傾きの平均値、即ち、傾きmaveを算出し、この傾きmaveを認識ラインLmの傾きとするようにした。CPU21は整理券Sの輪郭データの補正を行うことがない。この場合、整理券Sには縁折れが無いので当該整理券Sの両長辺に基づいて求められる認識ラインLmは正確である。このため、整理券Sに縁折れが発生していない場合においても、整理券Sの券面に記録されたバーコードを正確に読取ることができる。
【0086】
(別の実施形態)
尚、前記各実施形態は、次のように変更して実施してもよい。
・本実施形態では、整理券Sの縁折れが有る旨の判定がなされた場合(図4;S104でYES)、傾きの正常な長辺(線分A’B’に相当)の傾きmA’B’を算出し、傾き異常と判定された長辺(線分C’D’に相当)の傾きを補正するようにしたが(図4;S106)、次のようにしてもよい。即ち、図7のフローチャートに示すように、折れのない傾き正常な長辺の傾きmを算出し(S106a)、当該傾きmに基づいて認識ラインLmを求めるようにしてもよい(S108a)。このようにしても、整理券Sの券面に記録されたバーコードの読取り率を向上させることができる。また、傾きが異常と判定された長辺の傾きを補正する処理が不要となるので、CPU21(厳密には、コード位置演算部32)の処理負担が軽減される。
【0087】
・本実施形態では、券読取り装置11をバスの運賃箱に搭載したが、例えば駅の構内に設置される乗車券精算装置に搭載するようにしてもよい。
(付記)
次に前記各実施形態及び別例から把握できる技術的思想を以下に追記する。
【0088】
・本発明のうちいずれか一項に記載の券読取り装置を備えた運賃箱。
・券面の予め設定された位置にコードが記録された券の全体を走査して当該走査情報に基づいて券の輪郭データを求めると共に、当該輪郭データに基づいて前記券面におけるコードの位置データを求めて当該位置データに基づいてコードを読取るようにした券読取り方法において、前記券の輪郭データに基づいて当該券の縁折れの有無を判定して、当該券の縁折れが検出されたときに当該券の輪郭データを補正するようにした券読取り方法。
【符号の説明】
【0089】
11…券読取り装置、12…読取り装置(走査手段)、
31…輪郭データ演算部(輪郭データ演算手段)、
32…コード位置演算部(コード位置演算手段)、33…読取り部(読取り手段)、
41…縁折れ判定部(縁折れ判定手段、傾き判定手段)、
42…補正部(補正手段、傾き補正手段)、
51…エッジ誤差演算部(エッジ誤差演算手段)、
52…エッジ誤差判定部(エッジ誤差判定手段)、
61…短辺長演算部(短辺長演算手段)、62…短辺判定部(短辺判定手段)、
63…長辺修正部(長辺修正手段)、71…中点演算部(中点演算手段)、
72…位置データ演算部(位置データ演算手段)、
M,N…整理券の両長辺における中点、
M’,N’…中点M,Nと両長辺とのエッジとの交点、L1,L2…整理券の両短辺長、
Lm,Lm1,Lm2…認識ライン(バーコードの位置データ)、P…補正頂点B’と補正頂点D’との中点、S…整理券(券)、δm,δn…誤差(エッジ誤差)。

【特許請求の範囲】
【請求項1】
券面の予め設定された位置にコードが記録された券の全体を走査して当該走査情報に基づいて券の輪郭データを求めると共に、当該輪郭データに基づいて前記券面におけるコードの位置データを求めて当該位置データに基づいてコードを読取るようにした券読取り方法において、前記券の輪郭データに基づいて当該券の縁折れの有無を判定して、当該券の縁折れが検出されたときに当該券の輪郭データを補正するようにした券読取り方法。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate


【公開番号】特開2009−277259(P2009−277259A)
【公開日】平成21年11月26日(2009.11.26)
【国際特許分類】
【出願番号】特願2009−197077(P2009−197077)
【出願日】平成21年8月27日(2009.8.27)
【分割の表示】特願2004−9571(P2004−9571)の分割
【原出願日】平成16年1月16日(2004.1.16)
【出願人】(000144544)レシップ株式会社 (179)
【Fターム(参考)】