(57)【特許請求の範囲】
【請求項１】
券面の予め設定された位置にコードが記録された券の全体を走査する走査手段と、
前記走査手段からの走査情報に基づいて券の輪郭データを求める輪郭データ演算手段と、
前記輪郭データ演算手段により求められた券の輪郭データに基づいて当該券の前記券面におけるコードの位置データを求めるコード位置演算手段と、
前記コード位置演算手段により求められた位置データに基づいてコードを読取る読取り手段とを備えた券読取り装置において、
前記コード位置演算手段は、
前記輪郭データ演算手段により求められた券の輪郭データに基づいて当該券の縁折れの有無を判定する縁折れ判定手段と、
前記縁折れ判定手段により券の縁折れが検出されたときに当該券の輪郭データを補正する補正手段とを備え,
前記輪郭データは券の両長辺の傾きを含み、
前記縁折れ判定手段は、前記輪郭データに基づいて券の両長辺の傾きを求めて当該両長辺の傾きがそれぞれ正常か否かを判定する傾き判定手段を備え、
前記補正手段は、前記傾き判定手段により傾き異常と判定された長辺の傾きを補正する傾き補正手段を備え、
前記傾き補正手段により補正された傾きを有する長辺と前記傾き判定手段により正常であると判定された長辺とに基づいて、前記コード位置演算手段は券面におけるコードの位置データを求めるようにし、
前記傾き判定手段は、
前記輪郭データに基づいて求められた券の両長辺における中点と両長辺のエッジとの距離であるエッジ誤差を求めるエッジ誤差演算手段と、
前記エッジ誤差演算手段により求められたエッジ誤差に基づいて両長辺の傾きの正常／異常を判定するエッジ誤差判定手段とを備え、
前記傾き補正手段は、
前記輪郭データ演算手段により求められた輪郭データに基づいて券の両短辺長をそれぞれ求める短辺長演算手段と、
前記短辺長演算手段により算出された当該両短辺長と予め格納された正規の両短辺長との比較結果に基づいて正常側の短辺を判定する短辺判定手段と、
前記エッジ誤差判定手段により異常と判定された長辺において前記短辺判定手段により正常側と判定された短辺側の角を通ると共に前記エッジ誤差判定手段により正常と判定された長辺の傾きと同じ傾きを有する修正直線を求めて当該修正直線を前記エッジ誤差判定手段により異常と判定された長辺とする長辺修正手段とを備え、
前記コード位置演算手段は、
前記エッジ誤差判定手段により正常と判定された長辺において前記短辺判定手段により正常側と判定された短辺側の角と、前記エッジ誤差判定手段により異常と判定された長辺において前記短辺判定手段により正常側と判定された短辺側の角との中点を演算する中点演算手段と、
前記中点演算手段により算出された中点と、前記修正直線の傾きとに基づいて前記券面におけるコードの位置データを求める位置データ演算手段とを備えた券読取り装置。
【請求項２】
前記エッジ誤差判定手段により正常と判定された長辺において前記短辺判定手段により正常側と判定された短辺側の角と、前記エッジ誤差判定手段により異常と判定された長辺において前記短辺判定手段により正常側と判定された短辺側の角との中点を演算する中点演算手段と、
前記中点演算手段により算出された中点と、前記傾き判定手段で正常であると判定された長辺の傾きとに基づいて、前記券面におけるコードの位置データを求める位置データ演算手段とを備えた請求項１に記載の券読取り装置。
【請求項３】
前記縁折れ判定手段により券の縁折れが無い旨の判定がなされた場合には、当該券の両長辺の傾きの平均値に基づいて、前記コード位置演算手段は券面におけるコードの位置データを求めるようにした請求項１又は請求項２に記載の券読取り装置。
【請求項４】
請求項１〜請求項３のうちいずれか一項に記載の券読取り装置を備えた運賃箱。
【請求項５】
請求項１〜請求項３のうちいずれか一項に記載の券読取り装置を備えた乗車券精算装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、例えばバスの運賃箱に搭載されて運賃とともに投入された整理券等の券を読取る券読取り装置、券読取り装置を備えた運賃箱、及び券読取り装置を備えた乗車券精算装置に関するものである。
【背景技術】
【０００２】
従来、バス等のワンマン運行システムにおいては、車内に整理券発行器、運賃表示器及び運賃箱等のワンマン機器を搭載して、バス等の車内で乗車区間に応じた運賃を受け取る運賃収受システムが採用されている。乗車時、乗客は整理券発行器により発行された整理券を受け取る。この整理券の券面には乗車した停留所等の情報が整理券発行器によりバーコードとして記録（印刷）される。降車時、乗客は運賃表示器に表示された運賃（硬貨）と共にバーコードの印刷された整理券を運賃箱に投入する。券読取り装置により整理券の券面に記録されたバーコードが読取られ、この読取り結果に基づいて運賃が自動計算される。
【０００３】
運賃箱には整理券が一定の投入方向で投入されることは少なく、当該整理券は様々な投入角度で運賃箱に投入される。このため、従来、整理券の投入角度が傾いていても適正にバーコードを読取り可能とした券読取り装置が提案されている。この券読取り装置は整理券の券面に記録されたバーコードを光学的に読取る読取り装置を備えており、当該読取り装置は整理券の全体を読取って、当該整理券の外形及び当該整理券の券面に記録されたバーコードの走査情報をそれぞれ得る。券読取り装置は、これらの走査情報に基づいて整理券の輪郭（ここでは、整理券の角部（頂点）の座標）を求め、この輪郭から整理券に記録されたバーコードの位置を検出し、当該バーコードを検出する（例えば、特許文献１参照。）。
【０００４】
具体的には、長方形状の整理券が読取り装置に対して斜めに挿入された場合、読取り装置は整理券を下から順次走査して整理券自体の有無及び整理券の券面の記載事項の有無を検出する。この走査結果はメモリに画像情報として格納され、このメモリに格納された画像情報に基づいて、券読取り装置の角部座標検出装置は整理券の角部の座標を求める。
【０００５】
コード読取り装置は挿入類型判別装置を備えており、当該挿入類型判別装置は角部座標検出装置により求められた整理券の角部の座標に基づいて、読取り装置に挿入される整理券の姿勢の類型（即ち、整理券の投入方向）を把握する。この挿入類型判別装置による整理券の姿勢の類型の判断結果は、中心線判定装置に送られる。中心線判定装置は挿入類型判別装置からの類型の判断結果、角部座標検出装置からの角部座標及びメモリに格納された走査情報に基づいて中心線を求める。バーコードは整理券の券面における中心線上に配置されているので、当該中心線に沿ってバーコードを読むことが可能となる。
【０００６】
＜Ｓ２０１＞
また、斜めに投入された券のバーコードを読取る方法として、次のような方法も考えられる。即ち、図８に示すように、券読取り装置は、取込み画像から整理券Ｓの４つの角部（最左端の頂点Ａ、最上端の頂点Ｂ、最下端の頂点Ｃ、最右端の頂点Ｄ）の座標Ａ：（Ｘａ，Ｙａ），Ｂ：（Ｘｂ，Ｙｂ），Ｃ：（Ｘｃ，Ｙｃ），Ｄ：（Ｘｄ，Ｙｄ）をそれぞれ検出する（Ｓ２０１）。即ち、読取り装置はＸ軸プラス方向へ走査して整理券Ｓの最左端の頂点Ａ（Ｘａ，Ｙａ）を、同じくＹ軸プラス方向へ走査して整理券Ｓの最下端の頂点Ｂ（Ｘｂ，Ｙｂ）を、同じくＹ軸マイナス方向へ走査して整理券Ｓの最上端の頂点Ｃ（Ｘｃ，Ｙｃ）を、同じくＸ軸マイナス方向へ走査して整理券Ｓの最右端の頂点Ｄ（Ｘｄ，Ｙｄ）を検出する。
【０００７】
＜Ｓ２０２＞
次に、券読取り装置は整理券Ｓの投入方向（投入姿勢）を整理券Ｓの長辺及び短辺から推定する（Ｓ２０２）。
【０００８】
即ち、券読取り装置は、まず頂点Ａと頂点Ｂとの間の距離ＬＡＢ及び頂点Ｂと頂点Ｄとの間の距離ＬＢＤを次式（ａ１），（ａ２）に基づいてそれぞれ求める。
ＬＡＢ＝√（（Ｘａ−Ｘｂ）２＋（Ｙａ−Ｙｂ）２）…（ａ１）
ＬＢＤ＝√（（Ｘａ−Ｘｂ）２＋（Ｙａ−Ｙｂ）２）…（ａ２）
図９に示す状態においては、ＬＡＢ＞ＬＢＤであるため、券読取り装置は線分ＡＢが長辺であると判断する。
【０００９】
そして、券読取り装置は線分ＡＢの傾きｍＡＢの絶対値│ｍＡＢ│を次式（ｂ）に基づいて算出する。
│ｍＡＢ│＝│（Ｙａ−Ｙｂ）／（Ｘａ−Ｘｂ）│…（ｂ）
券読取り装置は、│ｍＡＢ│＞１＝ｔａｎ４５°ならば整理券は立っていると判断し、│ｍＡＢ│≦１＝ｔａｎ４５°ならば整理券Ｓは寝ていると判断する。
【００１０】
＜Ｓ２０３＞
Ｓ２０２において整理券Ｓが立っていると判断した場合、券読取り装置はＹ軸方向の微小距離ΔＹを設定する（Ｓ２０３）。ちなみに、Ｓ２０２において、整理券Ｓが寝ていると判断した場合は、Ｘ方向の微小距離ΔＸを設定する。これは、整理券Ｓは柔らかな紙により形成されているので当該整理券Ｓの４つの角部の頂点Ａ，Ｂ，Ｃ，Ｄは丸くなることが多い。このような状態においても正確に整理券Ｓの券面を読取り可能となるように、誤差補正の目的で長辺を少し内側に入った点Ａ’，Ｂ’，Ｃ’，Ｄ’（以下、「補正頂点Ａ’、補正頂点Ｂ’、補正頂点Ｃ’及び補正頂点Ｄ’」という。）を使用して両長辺の傾きを計算する。
【００１１】
具体的には、補正頂点Ａ’のＹ座標をＹａ’＝Ｙａ−ΔＹとし、直線Ｙ＝Ｙａ’上をＸ軸プラス方向へ走査して補正頂点Ａ’のＸ座標Ｘａ’を定める。補正頂点Ａ’の座標はＡ’：（Ｘａ’，Ｙａ’）となる。同様に、補正頂点Ｂ’のＹ座標をＹｂ’＝Ｙｂ＋ΔＹとし、直線Ｙ＝Ｙｂ’上をＸ軸プラス方向へ走査して補正頂点Ｂ’のＸ座標Ｘｂ’を定める。補正頂点Ｂ’の座標はＢ’：（Ｘｂ’，Ｙｂ’）となる。同様に、補正頂点Ｃ’のＹ座標をＹｃ’＝Ｙｃ−ΔＹとし、直線Ｙ＝Ｙｃ’上をＸ軸マイナス方向へ走査して補正頂点Ｃ’のＸ座標Ｘｃ’を定める。補正頂点Ｃ’の座標はＣ’：（Ｘｃ’，Ｙｃ’）となる。同様に、補正頂点Ｄ’のＹ座標をＹｄ’＝Ｙｄ−ΔＹとし、直線Ｙ＝Ｙｄ’上をＸ軸マイナス方向へ走査し、補正頂点Ｄ’のＸ座標Ｘｄ’を定める。補正頂点Ｄ’の座標はＤ’：（Ｘｄ’，Ｙｄ’）となる。
【００１２】
＜Ｓ２０４＞
次に、券読取り装置は両長辺の傾き、即ち、直線Ａ’Ｂ’の傾きｍＡ’Ｂ’及び直線Ｃ’Ｄ’の傾きｍＣ’Ｄ’、並びにそれらを算術平均した傾きｍを、それぞれ次式（ｃ１），（ｃ２），（ｃ３）に基づいて求める（Ｓ２０４）。
【００１３】
ｍＡ’Ｂ’＝（Ｙａ’−Ｙｂ’）／（Ｘａ’−Ｘｂ’）…（ｃ１）
ｍＣ’Ｄ’＝（Ｙｃ’−Ｙｄ’）／（Ｘｃ’−Ｘｄ’）…（ｃ２）
ｍ＝（ｍＡ’Ｂ’＋ｍＣ’Ｄ’）／２…（ｃ３）
＜Ｓ２０５＞
次に、券読取り装置は直線Ｂ’Ｄ’の中点Ｐ（ＸＰ，ＹＰ）を次式（ｄ１），（ｄ２）に基づいて求める（Ｓ２０５）。
【００１４】
ＸＰ＝（Ｘｂ’＋Ｘｄ’）／２…（ｄ１）
ＹＰ＝（Ｙｂ’＋Ｙｄ’）／２…（ｄ２）
＜Ｓ２０６＞
次に、券読取り装置は、中点Ｐを通る傾きｍの直線方程式（次式（ｅ））を求める（Ｓ２０６）。
【００１５】
Ｙ＝ｍ（Ｘ−ＸＰ）＋ＹＰ…（ｅ）
この直線が整理券Ｓの認識ラインＬｍとなる。この認識ラインＬｍは整理券Ｓの券面におけるバーコードの位置を示すと共に、券読取り装置（厳密には、図示しない走査手段）のコード読取り方向を規定するものである。バーコードは整理券Ｓの券面における中心線上に配置されているので、認識ラインＬｍ上にバーコードは位置することとなる。そして、この認識ラインＬｍに沿って券読取り装置は整理券Ｓのバーコードを読取る（Ｓ２０７）。
【特許文献１】特開平１−１０２６８９号公報
【発明の開示】
【発明が解決しようとする課題】
【００１６】
ところが、前記従来の券読取り装置においては、次のような問題があった。即ち、ワンマン運行システムにおける柔らかい紙に印刷された整理券Ｓは、運賃箱に投入される前に角部が折れ曲がることがある。角部が折れた整理券Ｓにおいては短辺側に頂点があると認識され、認識ラインＬｍは整理券Ｓに対して斜めに引かれる。
【００１７】
具体的に説明すると、図９に示すように、例えば整理券Ｓの頂点Ｃが本来の位置よりも頂点Ａ側に片寄った位置において検出された場合には、補正頂点Ｃ’は整理券Ｓの折れ辺上に且つ補正頂点Ａ’側に片寄って設定される（Ｓ２０１〜Ｓ２０３参照）。このため、直線Ｃ’Ｄ’の傾き（長辺の傾きに相当）は本来の傾きよりも内方にずれたものとなり、直線Ａ’Ｂ’及び直線Ｃ’Ｄ’の傾きの平均である認識ラインＬｍの傾きも当然に本来の傾きよりも頂点Ａ側にずれたものとなる（Ｓ２０４〜Ｓ２０６参照）。従って、図１０に示すように、認識ラインＬｍが整理券Ｓの券面に記録されたバーコードからずれる。この結果、券読取り装置はバーコードデータを読取れなかったり、誤認識したりするおそれがあった。
【００１８】
本発明は上記問題点を解決するためになされたものであって、その目的は、券面に記録されたコードの読取り率を向上させることができる券読取り装置、券読取り装置を備えた運賃箱、及び券読取り装置を備えた乗車券精算装置を提供することにある。
【課題を解決するための手段】
【００１９】
請求項１に記載の発明は、券面における予め設定された位置にコードが記録された券の全体を走査する走査手段と、前記読取り手段からの走査情報に基づいて前記券の輪郭データを求める輪郭データ演算手段と、前記輪郭データ演算手段により算出された券の輪郭データに基づいて前記券面におけるコードの位置データを求めるコード位置演算手段と、前記コード位置演算手段により求められた位置データに基づいてコードを読取る読取り手段とを備えた券読取り装置において、前記コード位置演算手段は、前記輪郭データ演算手段により算出された券の輪郭データに基づいて当該券における短辺側の縁折れの有無を判定する縁折れ判定手段と、前記縁折れ判定手段により前記券における短辺側の縁折れが検出されたときに当該券の輪郭データを補正する補正手段とを備え、前記輪郭データは券の両長辺の傾きを含み、前記縁折れ判定手段は、券の両長辺の傾きがそれぞれ正常か否かを判定する傾き判定手段を備え、前記補正手段は、前記傾き判定手段により傾き異常と判定された長辺の傾きを補正する傾き補正手段を備え、前記傾き補正手段により補正された傾きを有する長辺と前記傾き判定手段により正常であると判定された長辺とに基づいて、前記コード位置演算手段は当該コードの位置データを求めるようにし、前記傾き判定手段は、両長辺における中点と両長辺とのエッジとの距離であるエッジ誤差を求めるエッジ誤差算出手段と、前記エッジ誤差算出手段により求められたエッジ誤差に基づいて両長辺の傾きの正常／異常を判定するエッジ誤差判定手段とを備え、前記傾き補正手段は、前記輪郭データ算出手段により求められた輪郭データに基づいて券の両短辺長をそれぞれ演算する短辺長演算手段と、前記短辺長演算手段により算出された当該両短辺長と予め格納された正規の両短辺長との比較結果に基づいて正常側の短辺を判定する短辺判定手段と、前記エッジ誤差判定手段により異常と判定された長辺において前記短辺判定手段により正常側と判定された短辺側の角を通ると共に前記エッジ誤差判定手段により正常と判定された長辺の傾きと同じ傾きを有する直線を求めて当該直線を前記エッジ誤差判定手段により異常と判定された長辺とする長辺修正手段とを備え、前記コード位置演算手段は、前記エッジ誤差判定手段により正常と判定された長辺において前記短辺判定手段により正常側と判定された短辺側の角と、前記エッジ誤差判定手段により異常と判定された長辺において前記短辺判定手段により正常側と判定された短辺側の角との中点を演算する中点演算手段と、前記中点演算手段により算出された中点と、前記修正直線の傾きとに基づいて前記位置データを求める位置データ演算手段とを備えたことを要旨とする。
【００２３】
請求項２に記載の発明は、請求項１に記載の発明において、前記エッジ誤差判定手段により正常と判定された長辺において前記短辺判定手段により正常側と判定された短辺側の角と、前記エッジ誤差判定手段により異常と判定された長辺において前記短辺判定手段により正常側と判定された短辺側の角との中点を演算する中点演算手段と、前記中点演算手段により算出された中点と、前記傾き判定手段で正常であると判定された長辺の傾きとに基づいて、前記券面におけるコードの位置データを求める位置データ演算手段とを備えたことを要旨とする。
【００２４】
請求項３に記載の発明は、請求項１又は請求項２に記載の発明において、前記縁折れ判定手段により券の縁折れが無い旨の判定がなされた場合には、当該券の両長辺の傾きの平均値に基づいて、前記コード位置演算手段は券面におけるコードの位置データを求めるようにしたことを要旨とする。
請求項４に記載の発明は、請求項１〜請求項３のうちいずれか一項に記載の券読取り装置を備えた運賃箱を要旨とする。
請求項５に記載の発明は、請求項１〜請求項３のうちいずれか一項に記載の券読取り装置を備えた乗車券精算装置を要旨とする。
【００２５】
（作用）
請求項１に記載の発明によれば、券の縁折れが検出されたとき、当該券の輪郭データが補正される。この補正された輪郭データに基づいて券の券面に記録されたコードの位置データが求められ、この位置データに基づいて当該コードが読取られる。このため、券に縁折れがあった場合であっても、当該券の券面に記録されたコードは正確に読取られる。従って、券面に記録されたコードの読取り率が向上する。
【００２６】
加えて、請求項１に記載の発明によれば、券の両長辺の傾きがそれぞれ正常か否かが判定される。即ち、券に縁折れが発生していれば、券の輪郭データもずれるので縁折れが発生している側の長辺の傾きは縁折れが発生していないときとは異なったものになる。傾きが異常と判定されたとき、この傾きが異常と判定された長辺の傾きは補正される。そして、補正された傾きを有する一方の長辺と正常な傾きを有する他方の長辺とに基づいて、当該券の券面におけるコードの位置データ（認識ライン）が求められる。このため、コードの券面における正確な位置データが得られる。
【００２７】
さらに、請求項１に記載の発明によれば、輪郭データに基づいて求められた両長辺における中点と本来の両長辺とのエッジ（側縁）との距離であるエッジ誤差が求められ、このエッジ誤差に基づいて両長辺の傾きの正常／異常が判定される。次に、前記輪郭データ算出手段により求められた輪郭データに基づいて券の両短辺長がそれぞれ算出され、この算出された当該両短辺長と予め格納された正規の両短辺長との比較結果に基づいて正常側の短辺が判定される。
【００２８】
そして、前記エッジ誤差判定手段により異常と判定された長辺において前記短辺判定手段により正常側と判定された短辺側の角（頂点）を通ると共に前記エッジ誤差判定手段により正常と判定された長辺の傾きと同じ傾きを有する直線が求められる。当該直線が前記エッジ誤差判定手段により異常と判定された長辺の修正直線（傾きが修正された後の長辺）とされる。このようにして傾き異常側の長辺が補正される。この後、前記エッジ誤差判定手段により正常と判定された長辺において前記短辺判定手段により正常側と判定された短辺側の角と、前記エッジ誤差判定手段により異常と判定された長辺において前記短辺判定手段により正常側と判定された短辺側の角（点）との中点が算出される。この算出された中点と、前記修正直線の傾きとに基づいて前記券の位置データが求められる。このため、走査手段のコード読取り方向を規定する位置データ（認識ライン）を求める際、縁折れに起因する位置データのずれが抑制されるので、より正確な位置データが得られる。従って、読取り手段によるコードの読取り率が向上する。
【００３０】
請求項２に記載の発明によれば、請求項１に記載の発明の作用に加えて、輪郭データに基づいて求められた両長辺における中点と本来の両長辺とのエッジ（側縁）との距離であるエッジ誤差が求められ、このエッジ誤差に基づいて両長辺の傾きの正常／異常が判定される。次に、前記輪郭データに基づいて券の両短辺長がそれぞれ算出され、この算出された両短辺長と予め格納された正規の両短辺長との比較結果に基づいて縁折れのない正常側の短辺が判定される。次に、傾き正常と判定された券の長辺において縁折れのない正常側と判定された短辺側の角（点）と、傾き異常と判定された長辺において縁折れのない正常側と判定された短辺側の角（点）との中点が算出される。この算出された中点と、傾き正常であると判定された長辺の傾きとに基づいて、券の位置データが求められる。このため、走査手段のコード読取り方向を規定する位置データ（認識ライン）を求める際、縁折れに起因する位置データのずれが抑制されるので、より正確な位置データが得られる。従って、コードの読取り率がいっそう向上する。
【００３１】
請求項３に記載の発明によれば、請求項１又は請求項２に記載の発明の作用に加えて、前記縁折れ判定手段により券の縁折れが無い旨の判定がなされた場合には、当該券の両長辺の傾きの平均値に基づいて券面におけるコードの位置データが求められる。券には縁折れが無いので当該券の両長辺に基づいて求められるコードの位置データは正確である。このため、券の券面に記録されたコードは正確に読取られる。
【発明の効果】
【００３２】
発明によれば、券面に記録されたコードの読取り率を向上させることができる。
【発明を実施するための最良の形態】
【００３３】
以下、本発明を例えばバスの運賃箱に搭載されて当該運賃箱に運賃（硬貨）と共に投入される整理券を読取る券読取り装置に具体化した一実施形態を図１〜図６に基づいて説明する。
【００３４】
＜全体構成＞
図１に示すように、運賃箱１０には券読取り装置１１が搭載されており、当該券読取り装置１１は読取り装置１２（光学式バーコードリーダ）、制御装置１３及び表示部１４を備えている。
【００３５】
読取り装置１２はＣＣＤセンサ等を備えており、運賃箱１０の投入口１０ａから運賃としての硬貨と共に投入された整理券Ｓの外形状及び券面に記録された内容を走査して読取る。即ち、読取り装置１２は幅方向（図１における左右方向）に配列された多数のセンサ群から構成され、ここに整理券Ｓを通過させることにより整理券Ｓの進行方向へ整理券Ｓの外形状と券面の記載内容とを順次読取るように構成されている。
【００３６】
制御装置１３は、ＣＰＵ２１（中央演算装置）、ＲＯＭ２２（読み出し専用メモリ）及びＲＡＭ２３（読み出し書き込み専用メモリ）を備えている。
ＲＯＭ２２には、制御装置１３が実行するバーコード認識プログラム及び補正プログラム等の各種の制御プログラム及び各種のデータが格納されている。ＲＡＭ２３は、ＲＯＭ２２に書き込まれた各種の制御プログラムを展開して制御装置１３が各種の演算処理を実行するためのデータ作業領域である。また、ＲＡＭ２３は制御装置１３が各種の演算処理を行う際の各種の演算処理結果及び読取り装置１２により取込まれた画像情報（整理券Ｓの外形データ）等を一時的に記憶する。
【００３７】
ＣＰＵ２１はバーコード認識プログラム及び補正プログラム等の各種の制御プログラムを実行する。バーコード認識プログラムは読取り装置１２により取込まれた整理券Ｓの画像情報に基づいて当該整理券Ｓのバーコードを読取るためのプログラムである。補正プログラムは整理券Ｓのバーコードを正確に読取るために必要とされる各種補正処理を行うためのプログラムである。表示部１４はディスプレイ等を備えており、バーコードの読取りデータを表示する。
【００３８】
＜バーコード＞
図６に示すように、整理券Ｓの券面には乗車駅等の情報を含んだバーコードが記録されている。バーコードは複数の黒色バー及び白色バーが整理券Ｓの長手方向において所定間隔おきに配置されることにより構成されている。本実施形態では、整理券Ｓの長手方向に延びる３組みのバーコードが整理券Ｓの短手方向において所定間隔をおいて配置されている。即ち、１組みのバーコードは整理券Ｓの両短辺の中点間を通る線分（以下、「中心線」という。）上に配置されている。残りの２組みのバーコードは整理券Ｓの中心線に関して線対称となる位置に配置されている。これらのバーコードは例えばバスの乗車口近傍に設置された整理券発行機（図示略）に内蔵されたサーマル式のバーコードプリンタにより整理券Ｓの券面に印刷される。
【００３９】
＜実施形態の作用＞
次に、各種の制御プログラムに従って実行される制御装置１３の各種機能を図２（ａ），（ｂ）及び図３に示すＣＰＵ２１の機能ブロック図に基づいて説明する。
【００４０】
例えばバスにおいて乗客が降車する際、運賃箱１０には運賃としての硬貨と共に整理券Ｓが投入される。整理券Ｓは券銭分離装置（図示略）により硬貨と分離されて読取り装置１２へ送られる。この読取り装置１２において整理券Ｓ（厳密には、整理券Ｓの外形及び券面のバーコード）が光学的に取込まれる。
【００４１】
図２（ａ）に示すように、読取り装置１２からの取込み信号、即ち走査情報はＡ／Ｄ変換器（図示略）によりアナログ信号からデジタル信号に変換されてＣＰＵ２１の輪郭データ演算部３１へ送られる。輪郭データ演算部３１は読取り装置１２からのデジタル変換された走査情報に基づいて取込んだ整理券Ｓの輪郭情報（輪郭データ）を演算する。本実施形態において、整理券Ｓの輪郭情報は当該整理券Ｓの４つの角部、即ち４つの頂点Ａ，Ｂ，Ｃ，Ｄの座標である。また、整理券Ｓの輪郭情報は、両長辺を少し内側に入った４つの点、即ち、補正頂点Ａ’、補正頂点Ｂ’、補正頂点Ｃ’及び補正頂点Ｄ’を含む。輪郭データ演算部３１は算出した整理券Ｓの輪郭情報をコード位置演算部３２へ送る。
【００４２】
コード位置演算部３２は輪郭データ演算部３１から送られてきた整理券Ｓの輪郭情報に基づいて整理券Ｓの券面におけるバーコードの位置（位置データ）を演算する。具体的には、バーコードの読取り方向を規定する認識ラインを作成する。コード位置演算部３２により算出されたバーコードの位置に基づいて、読取り部３３は整理券Ｓのバーコードを読取る。この読取り部３３による読取り結果は表示部１４に表示される。
【００４３】
＜コード位置演算部＞
次に、コード位置演算部３２について詳細に説明する。図２（ｂ）に示すように、コード位置演算部３２は、縁折れ判定部４１及び補正部４２を備えている。輪郭データ演算部３１から送られてきた整理券Ｓの輪郭情報（４つの頂点の座標）は縁折れ判定部４１に入力される。この縁折れ判定部４１は整理券Ｓの輪郭情報に基づいて整理券Ｓに縁折れが発生しているか否かを判定する。具体的には、縁折れ判定部４１は整理券Ｓの輪郭情報に基づいて当該整理券Ｓの両長辺の傾きを演算し、両長辺の傾きが正常か否かを判定する。縁折れ判定部４１は当該判定結果を補正部４２へ送る。
【００４４】
縁折れ判定部４１の判定結果に両長辺のうちいずれか一方の傾きに異常がある旨の判定が含まれている場合、補正部４２は異常と判定された側の長辺の傾きを補正する。コード位置演算部３２はＲＡＭ２３に格納されている整理券Ｓの輪郭情報、補正部４２により補正されてＲＡＭ２３に格納された長辺の傾き、及び予めＲＯＭ２２に格納された正常な長辺の傾きに基づいて整理券Ｓの券面におけるバーコードの位置を演算する。
【００４５】
＜縁折れ判定部＞
次に、縁折れ判定部４１について詳細に説明する。図３に示すように、縁折れ判定部４１は、エッジ誤差演算部５１及びエッジ誤差判定部５２を備えている。輪郭データ演算部３１から送られてきた整理券Ｓの輪郭情報は縁折れ判定部４１のエッジ誤差演算部５１に入力される。
【００４６】
エッジ誤差演算部５１は補正頂点Ａ’と補正頂点Ｂ’との中点Ｍ（図５参照）の座標、及び補正頂点Ｃ’と補正頂点Ｄ’との中点Ｎ（図５参照）の座標をそれぞれ求める。そして、エッジ誤差演算部５１は中点Ｍと整理券Ｓのエッジ（線分ＡＢ側）との誤差δｍ、及び中点Ｎと整理券Ｓのエッジ（線分ＣＤ側）との誤差δｎとをそれぞれ求める。エッジ誤差演算部５１は算出した誤差δｍ及び誤差δｎをそれぞれエッジ誤差判定部５２へ送る。
【００４７】
エッジ誤差判定部５２は誤差δｍと予め設定された最小誤差ε及び同じく誤差δｎと最小誤差εとをそれぞれ比較し、これらの比較結果に基づいて整理券Ｓの両長辺に相当する線分Ａ’Ｂ’及び線分Ｃ’Ｄ’の傾きの異常の有無を判定する。エッジ誤差判定部５２は整理券Ｓにおける両長辺の傾き異常の有無の判定結果を補正部４２へ送る。
【００４８】
＜補正部＞
次に、補正部４２について詳細に説明する。図３に示すように、補正部４２は、短辺長演算部６１、短辺判定部６２及び長辺修正部６３を備えている。短辺長演算部６１にはエッジ誤差判定部５２からの整理券Ｓにおける両長辺の傾き異常の有無の判定結果が入力される。短辺長演算部６１は、整理券Ｓにおける頂点Ａと頂点Ｃとの間の距離である短辺長Ｌ１、及び頂点Ｂと頂点Ｄとの間の距離である短辺長Ｌ２をそれぞれ求め、これらを短辺判定部６２へ送る。
【００４９】
短辺判定部６２は短辺長演算部６１から送られてきた短辺長Ｌ１及び短辺長Ｌ２と、予めＲＯＭ２２に格納された整理券Ｓ本来の短辺長Ｌとをそれぞれ比較する。そして、それらの比較結果に基づいて短辺判定部６２は、異常有りと判断された長辺（本実施形態では線分Ｃ’Ｄ’）における両補正頂点Ｃ’，Ｄ’のうち正常側の頂点を判定し、その判定結果を長辺修正部６３へ送る。本実施形態では補正頂点Ｄ’が縁折れのない正常側となっている。
【００５０】
長辺修正部６３は、短辺判定部６２において異常有りと判断された長辺（線分Ｃ’Ｄ’）における両補正頂点Ｃ’，Ｄ’のうち正常側の頂点（補正頂点Ｄ’）を通り、かつ短辺判定部６２において正常と判断された長辺（線分Ａ’Ｂ’）の傾きｍＡ’Ｂ’と同じ傾きを有する線分を、異常有りと判断された長辺の正規の線分（修正後の長辺）とする。即ち、正規の線分Ｃ’Ｄ’の傾きｍＣ’Ｄ’＝線分Ａ’Ｂ’の傾きｍＡ’Ｂ’となる。
【００５１】
＜中点演算部・位置データ演算部＞
図３に示すように、コード位置演算部３２は中点演算部７１及び位置データ演算部７２を更に備えている。中点演算部７１は、両頂点Ｃ，Ｄのうち正常側の頂点Ｄの補正頂点Ｄ’と正常側の長辺において整理券Ｓの短手方向において対応する頂点Ｂの補正頂点Ｂ’との中点Ｐ（図５参照）の座標を求める。位置データ演算部７２は中点演算部７１により求められた中点Ｐ及び長辺修正部６３により修正された線分Ｃ’Ｄ’の傾きｍＣ’Ｄ’とに基づいて整理券Ｓのバーコードの位置を求める。即ち、中点Ｐを通り、傾きｍＣ’Ｄ’（＝傾きｍＡ’Ｂ’）の直線方程式を求める。この直線（線分）がバーコードの認識ラインとなる。この認識ライン上にバーコードが配置されている。
【００５２】
尚、本実施形態において、読取り装置１２は走査手段を、輪郭データ演算部３１は輪郭データ演算手段を、コード位置演算部３２はコード位置演算手段を、読取り部３３は読取り手段を、判定部４１はそれぞれ縁折れ判定手段及び傾き判定手段を、補正部４２はそれぞれ補正手段及び傾き補正手段を構成する。また、エッジ誤差演算部５１はエッジ誤差演算手段を、エッジ誤差判定部５２はエッジ誤差判定手段を、短辺長演算部６１は短辺長演算手段を、短辺判定部６２は短辺判定手段を、長辺修正部６３は長辺修正手段を、中点演算部７１は中点演算手段を、位置データ演算部７２は位置データ演算手段をそれぞれ構成する。さらに、整理券Ｓは券に相当する。
【００５３】
＜バーコード認識処理の詳細＞
次に、前述のように構成した券読取り装置の作用を図４に示すフローチャートに従って説明する。本実施形態では、ステップを「Ｓ」と略記する。また、整理券Ｓの１つの角部（本実施形態では頂点Ｃ側の角部）には縁折れが発生している。
【００５４】
＜Ｓ１０１＞
図４に示すように、ＣＰＵ２１は、読取り装置１２による取込み画像から整理券Ｓの４つの角部（最左端の頂点Ａ、最上端の頂点Ｂ、最下端の頂点Ｃ、最右端の頂点Ｄ）の座標Ａ：（Ｘａ，Ｙａ），Ｂ：（Ｘｂ，Ｙｂ），Ｃ：（Ｘｃ，Ｙｃ），Ｄ：（Ｘｄ，Ｙｄ）をそれぞれ検出する（Ｓ１０１）。即ち、読取り装置はＸ軸プラス方向へ走査して整理券Ｓの最左端の頂点Ａ（Ｘａ，Ｙａ）を、同じくＹ軸プラス方向へ走査して整理券Ｓの最下端の頂点Ｂ（Ｘｂ，Ｙｂ）を、同じくＹ軸マイナス方向へ走査して整理券Ｓの最上端の頂点Ｃ（Ｘｃ，Ｙｃ）を、Ｘ軸マイナス方向へ走査して整理券Ｓの最右端の頂点Ｄ（Ｘｄ，Ｙｄ）を検出する。
【００５５】
＜Ｓ１０２＞
次に、ＣＰＵ２１は整理券Ｓの投入方向（投入姿勢）を整理券Ｓの長辺及び短辺から推定する（Ｓ１０２）。即ち、ＣＰＵ２１は、まずＡ点とＢ点との間の距離ＬＡＢ及びＢ点とＤ点との間の距離ＬＢＤを次式（Ａ１），（Ａ２）に基づいてそれぞれ求める。
【００５６】
ＬＡＢ＝√（（Ｘａ−Ｘｂ）２＋（Ｙａ−Ｙｂ）２）
ＬＢＤ＝√（（Ｘａ−Ｘｂ）２＋（Ｙａ−Ｙｂ）２）
図５に示す状態においては、ＬＡＢ＞ＬＢＤであるため、ＣＰＵ２１は線分ＡＢが長辺であると判断する。
【００５７】
そして、ＣＰＵ２１は線分ＡＢの傾きｍＡＢの絶対値│ｍＡＢ│を次式（Ｂ）に基づいて算出する。
│ｍＡＢ│＝│（Ｙａ−Ｙｂ）／（Ｘａ−Ｘｂ）│…Ｂ
ＣＰＵ２１は、│ｍＡＢ│＞１＝ｔａｎ４５°ならば整理券は立っていると判断し、│ｍＡＢ│≦１＝ｔａｎ４５°ならば整理券Ｓは寝ていると判断する。ここで、ｔａｎ４５°の４５°とは、線分ＡＢとＸ軸とのなす角度である。
【００５８】
＜Ｓ１０３＞
Ｓ１０２において整理券Ｓが立っていると判断した場合、ＣＰＵ２１はＹ軸方向の微小距離ΔＹを設定する（Ｓ１０３）。ちなみに、Ｓ１０２において、整理券Ｓが寝ていると判断した場合は、Ｘ方向の微小距離ΔＸを設定する。これは、整理券Ｓは柔らかな紙により形成されているので当該整理券Ｓの４つの頂点Ａ，Ｂ，Ｃ，Ｄは丸くなることが多い。このような状態においても正確に整理券Ｓの券面を読取り可能となるように、誤差補正の目的で長辺を少し内側に入った点Ａ’，Ｂ’，Ｃ’，Ｄ’（以下、「補正頂点Ａ’、補正頂点Ｂ’、補正頂点Ｃ’及び補正頂点Ｄ’」という。）を使用して両長辺の傾きを計算する。
【００５９】
具体的には、補正頂点Ａ’のＹ座標をＹａ’＝Ｙａ−ΔＹとし、直線Ｙ＝Ｙａ’上をＸ軸プラス方向へ走査して補正頂点Ａ’のＸ座標Ｘａ’を定める。補正頂点Ａ’の座標はＡ’：（Ｘａ’，Ｙａ’）となる。同様に、補正頂点Ｂ’のＹ座標をＹｂ’＝Ｙｂ＋ΔＹとし、直線Ｙ＝Ｙｂ’上をＸ軸プラス方向へ走査して補正頂点Ｂ’のＸ座標Ｘｂ’を定める。補正頂点Ｂ’の座標はＢ’：（Ｘｂ’，Ｙｂ’）となる。同様に、補正頂点Ｃ’のＹ座標をＹｃ’＝Ｙｃ−ΔＹとし、直線Ｙ＝Ｙｃ’上をＸ軸マイナス方向へ走査して補正頂点Ｃ’のＸ座標Ｘｃ’を定める。補正頂点Ｃ’の座標はＣ’：（Ｘｃ’，Ｙｃ’）となる。同様に、補正頂点Ｄ’のＹ座標をＹｄ’＝Ｙｄ＋ΔＹとし、直線Ｙ＝Ｙｄ’上をＸ軸マイナス方向へ走査し、補正頂点Ｄ’のＸ座標Ｘｄ’を定める。補正頂点Ｄ’の座標はＤ’：（Ｘｄ’，Ｙｄ’）となる。
【００６０】
このように、整理券Ｓにおける本来の頂点Ａ，Ｂ，Ｃ，Ｄよりも、長辺方向において微小距離ΔＹ又はΔＸだけ内側に入った位置にある補正頂点Ａ’，Ｂ’，Ｃ’，Ｄ’を求め、それらを整理券Ｓの輪郭データとして使用するのは、当該整理券Ｓの角の丸み誤差を排除するためである。
【００６１】
＜Ｓ１０４＞
次に、ＣＰＵ２１は整理券Ｓの両長辺の傾きが正常か否かを判断する（Ｓ１０４）。即ち、ＣＰＵ２１は補正頂点Ａ’と補正頂点Ｂ’との中点Ｍの座標Ｍ：（Ｘｍ，Ｙｍ）を次式（Ｃ１），（Ｃ２）に基づいて求める。
【００６２】
Ｘｍ＝（Ｘａ’＋Ｘｂ’）／２…（Ｃ１）
Ｙｍ＝（Ｙａ’＋Ｙｂ’）／２…（Ｃ２）
また、ＣＰＵ２１は補正頂点Ｃ’と補正頂点Ｄ’との中点Ｎの座標Ｎ：（Ｘｎ，Ｙｎ）を求める。
【００６３】
Ｘｎ＝（Ｘｃ’＋Ｘｄ’）／２
Ｙｎ＝（Ｙｃ’＋Ｙｄ’）／２
次に、ＣＰＵ２１は直線Ｙ＝Ｙｍ上をＸ軸プラス方向へ走査して（正確には、ＣＰＵ２１はＸ軸プラス方向へ走査するように読取り装置１２を制御して）、実際の整理券Ｓのエッジ（線分ＡＢ側）との交点Ｍ’の座標Ｍ’：（Ｘｍ’，Ｙｍ’）を求める。但し、このとき、Ｙｍ’＝Ｙｍである。
【００６４】
また、ＣＰＵ２１は直線Ｙ＝Ｙｎ上をＸ軸マイナス方向へ走査して（正確には、ＣＰＵ２１はＸ軸マイナス方向へ走査するように読取り装置１２を制御して）、実際の整理券Ｓのエッジ（線分ＣＤ側）との交点Ｎ’の座標Ｎ’：（Ｘｎ’，Ｙｎ’）を求める。但し、このとき、Ｙｎ’＝Ｙｎである。
【００６５】
次に、ＣＰＵ２１は中点Ｍと交点Ｍ’との誤差δｍ及び中点Ｎと交点Ｎ’との誤差δｎを次式（Ｅ１），（Ｅ２）に基づいてそれぞれ求める。
δｍ＝│Ｘｍ’−Ｘｍ│…（Ｅ１）
δｎ＝│Ｘｎ’−Ｘｎ│…（Ｅ２）
そして、ＣＰＵ２１は予め設定された最小誤差εと誤差δｍ及び誤差δｎとをそれぞれ比較する。
【００６６】
誤差δｍが最小誤差εよりも小さければ、ＣＰＵ２１は線分Ａ’Ｂ’の傾きを正常と判断し、誤差δｍが最小誤差εよりも大きければ、ＣＰＵ２１は線分Ａ’Ｂ’の傾きを異常と判断する。同様に、誤差δｎが最小誤差εよりも小さければ、ＣＰＵ２１は線分Ｃ’Ｄ’の傾きを正常と判断し、誤差δｎが最小誤差εよりも大きければ、ＣＰＵ２１は線分Ｃ’Ｄ’の傾きを異常と判断する。誤差δｍ及び誤差δｎがそれぞれ最小誤差εよりも大きければ、誤差の大きい方を傾き異常と判断する。本実施形態では、δｍ＜ε＜δｎとなるので、線分Ｃ’Ｄ’が異常と判断される。
【００６７】
線分Ａ’Ｂ’及び線分Ｃ’Ｄ’のいずれか一方の傾きが異常であると判断した場合（Ｓ１０４でＹＥＳ）、ＣＰＵ２１はＳ１０５へ処理を移行する。線分Ａ’Ｂ’及び線分Ｃ’Ｄ’のいずれの傾きも正常と判断した場合（Ｓ１０４でＮＯ）、ＣＰＵ２１はＳ１０７へ処理を移行する。
【００６８】
＜Ｓ１０５＞
Ｓ１０５において、ＣＰＵ２１は傾きが異常、つまり縁折れのある方の長辺（線分Ｃ’Ｄ’）において折れていない方の頂点を判定する。即ち、ＣＰＵ２１は整理券Ｓの両短辺長Ｌ１，Ｌ２を次式（Ｆ１），（Ｆ２）に基づいてそれぞれ求める。そして、ＣＰＵ２１は予めＲＯＭ２２に格納された正規の短辺長Ｌと両短辺長Ｌ１，Ｌ２との差ε１，ε２をそれぞれ次式（Ｇ１），（Ｇ２）に基づいて求め、当該差ε１，ε２の小さい側の頂点を正常とする。ちなみに、短辺長Ｌ１，Ｌ２はそれぞれＲＡＭ２３に格納された整理券Ｓの取込み画像データに基づいて演算される。
【００６９】
Ｌ１＝線分ＡＣの長さ＝√（（Ｘａ−Ｘｃ）２＋（Ｙａ−Ｙｃ）２）…（Ｆ１）
Ｌ２＝線分ＢＤの長さ＝√（（Ｘｂ−Ｘｄ）２＋（Ｙｂ−Ｙｄ）２）…（Ｆ２）
│Ｌ１−Ｌ│＝ε１
│Ｌ２−Ｌ│＝ε２
本実施形態では、ε２＞ε１となるので、ＣＰＵ２１は補正頂点Ｄ’側を正常と判断する。ＲＡＭ２３に格納されている整理券Ｓの取込み画像データのぶれ等も除外されるので、正確な判断が可能となる。
【００７０】
＜Ｓ１０６＞
次に、Ｓ１０４において傾き異常と判定された長辺（線分Ｃ’Ｄ’）の傾きを補正する（Ｓ１０６）。即ち、ＣＰＵ２１は補正頂点Ｄ’を通り、線分Ａ’Ｂ’に平行な線分（直線）を正規の線分Ｃ’Ｄ’とする。この正規の線分Ｃ’Ｄ’（修正した直線）の傾きｍ＝ｍＡ’Ｂ’は次式（Ｈ）により得られる。
【００７１】
ｍ＝ｍＡ’Ｂ’＝（Ｙａ’−Ｙｂ’）／（Ｘａ’−Ｘｂ’）…（Ｈ）
そして、修正した直線の式は、次式（Ｉ）で示される。
Ｙ＝ｍＡ’Ｂ’（Ｘ−Ｘｄ’）＋Ｙｄ’…（Ｉ）
以上で、ＣＰＵ２１による整理券Ｓの輪郭データ（即ち、線分Ｃ’Ｄ’の傾き）の補正処理が完了する。この後、ＣＰＵ２１はＳ１０８へ処理を移行する。
【００７２】
＜Ｓ１０７＞
一方、Ｓ１０７において、ＣＰＵ２１は整理券Ｓの両長辺の傾き、即ち、線分Ａ’Ｂ’の傾きｍＡ’Ｂ’及び線分Ｃ’Ｄ’の傾きｍＣ’Ｄ’、並びにそれらを算術平均した傾きをｍａｖｅを、それぞれ次式（Ｊ１），（Ｊ２），（Ｊ３）に基づいて求める。この後、ＣＰＵ２１はＳ１０８へ処理を移行する。
【００７３】
ｍＡ’Ｂ’＝（Ｙａ’−Ｙｂ’）／（Ｘａ’−Ｘｂ’）…（Ｊ１）
ｍＣ’Ｄ’＝（Ｙｃ’−Ｙｄ’）／（Ｘｃ’−Ｘｄ’）…（Ｊ２）
ｍａｖｅ＝（ｍＡ’Ｂ’＋ｍＣ’Ｄ’）／２…（Ｊ３）
＜Ｓ１０８＞
Ｓ１０８において、ＣＰＵ２１は整理券Ｓにおける正常側の短辺の中点（線分Ｂ’Ｄ’の中点Ｐに相当）を求める。即ち、ＣＰＵ２１は補正頂点Ｂ’と補正頂点Ｄ’との中点Ｐの座標Ｐ：（ＸＰ，ＹＰ）をそれぞれ次式（Ｊ１），（Ｊ２）に基づいて求める。
【００７４】
ＸＰ＝（Ｘｂ’＋Ｘｄ’）／２…（Ｊ１）
ＹＰ＝（Ｙｂ’＋Ｙｄ’）／２…（Ｊ２）
そして、ＣＰＵ２１は中点Ｐを通る傾きｍＡ’Ｂ’（傾き補正後の線分Ｃ’Ｄ’の傾きｍ）の直線方程式（次式（Ｋ１）参照）、又は傾きｍａｖｅの直線方程式（次式（Ｋ２）参照）を求め、この直線をバーコードの認識ラインＬｍとする。
【００７５】
Ｙ＝ｍＡ’Ｂ’（Ｘ−ＸＰ）＋ＹＰ…（Ｋ１））
Ｙ＝ｍａｖｅ（Ｘ−ＸＰ）＋ＹＰ…（Ｋ２）
式（Ｋ１）で示される認識ラインＬｍは整理券Ｓの中心線に一致するように作成される。このため、整理券Ｓの頂点Ｃ側に縁折れが発生しているにもかかわらず、認識ラインＬｍは正確に作成される。これは、Ｓ１０５及びＳ１０６において傾き異常と判定された直線Ｃ’Ｄ’の傾きが補正されるからである。
【００７６】
式（Ｋ２）で示される認識ラインＬｍも整理券Ｓの中心線に一致するように作成されるため、認識ラインＬｍは正確に作成される。これは、Ｓ１０８において縁折れのない整理券Ｓの両長辺の傾きに基づいて当該認識ラインＬｍの傾きが設定されるからである。
【００７７】
この後、ＣＰＵ２１は前述した式（Ｋ１）又は（Ｋ２）で示される認識ラインＬｍに関して線対称となるように、当該中央の認識ラインＬｍに対してそれぞれ平行をなす２本の認識ラインＬｍ１，Ｌｍ２を作成する。
【００７８】
＜Ｓ１０９＞
次に、ＣＰＵ２１はＳ１０７において作成した３本の認識ラインＬｍ，Ｌｍ１，Ｌｍ２に沿ってバーコードを読取る（Ｓ１０９）。各認識ラインＬｍ，Ｌｍ１，Ｌｍ２はそれぞれ正確に作成されており、当該各認識ラインＬｍ，Ｌｍ１，Ｌｍ２上にはそれぞれバーコードが位置している。このため、バーコードは正確に読取られる（認識される）。
【００７９】
このように、整理券Ｓに縁折れが発生しているかいないかにかかわらず、各認識ラインＬｍ，Ｌｍ１，Ｌｍ２はそれぞれ正確に作成され、各認識ラインＬｍ，Ｌｍ１，Ｌｍ２に沿って整理券Ｓのバーコードが正確に読取られる。即ち、バーコードの読取り率が向上する。
【００８０】
以上で、整理券Ｓのバーコード認識処理が完了となる。ちなみに、Ｓ１０２おいて整理券Ｓが寝ていると判断された場合も当該整理券Ｓが立っていると判断された場合と同様の処理が行われる。
【００８１】
尚、本実施形態において、Ｓ１０４は縁折れ判定手段及び傾き判定手段をそれぞれ構成する。Ｓ１０５及びＳ１０６は補正手段及び傾き補正手段をそれぞれ構成する。また、認識ラインＬｍ，Ｌｍ１，Ｌｍ２はバーコードの位置データを構成する。さらに、誤差δｍ，δｎは本発明のエッジ誤差に相当する。
【００８２】
（実施形態の効果）
従って、本実施形態によれば、以下の効果を得ることができる。
・整理券Ｓの輪郭データに基づいて当該整理券Ｓの縁折れの有無を判定し、当該縁折れが検出されたときに当該整理券Ｓの輪郭データを補正するようにした。この補正された輪郭データに基づいて整理券Ｓの券面に記録されたバーコードの位置（位置データ）を求め、この位置に基づいて当該バーコードを読取るようにした。このため、整理券Ｓに縁折れがあった場合であっても、当該整理券Ｓの券面に記録されたバーコードを正確に読取ることができる。
【００８３】
・ＣＰＵ２１は整理券Ｓの両長辺の傾きがそれぞれ正常か否かを判定し、傾きが異常と判定されたとき、当該傾きが異常と判定された長辺（線分Ｃ’Ｄ’に相当）の傾きを補正するようにした。そして、補正された傾きを有する一方の長辺と正常な傾きを有する他方の長辺（線分Ａ’Ｂ’に相当）とに基づいて、ＣＰＵ２１は当該整理券Ｓの券面におけるバーコードの位置データ（認識ラインＬｍ）を求めるようにした。このように、縁折れの発生している側の長辺の傾きを補正することにより、バーコードの券面における正確な位置データが得られる。
【００８４】
・ＣＰＵ２１は整理券Ｓの両長辺における中点Ｍ，Ｎと両長辺とのエッジＭ’，Ｎ’（側縁）との距離である誤差δｍ，δｎをそれぞれ求め、この両誤差δｍ，δｎに基づいて両長辺の傾きの正常／異常を判定するようにした。そして、ＣＰＵ２１は前記読取り装置１２による取込み画像データ（輪郭データ）に基づいて整理券Ｓの両短辺長Ｌ１，Ｌ２をそれぞれ算出し、この算出された当該両短辺長Ｌ１，Ｌ２と予め格納された正規の両短辺長Ｌとの比較結果に基づいて正常側の短辺を判定するようにした。そして、ＣＰＵ２１は異常と判定した長辺において、正常側と判定した短辺側の頂点を通ると共に傾き正常と判定した長辺の傾きと同じ傾きを有する直線を求め、当該直線を傾き異常と判定した長辺の修正長辺（修正直線）とした。このようにしてＣＰＵ２１は傾き異常側の長辺を補正した後、正常と判定した長辺において、前記正常側と判定した短辺側の頂点と、傾き異常と判定した長辺において前記正常側と判定した短辺側の頂点との中点Ｐを算出する。この中点Ｐと、前記修正長辺（修正直線）の傾きとに基づいて、ＣＰＵ２１は認識ラインＬｍを求める。このため、認識ラインＬｍを求める際、例えば縁折れに起因する位置データ（線分Ｃ’Ｄ’の傾き）のずれが抑制されるので、より正確なバーコードの位置データ、即ち認識ラインＬｍが得られる。従って、券読取り装置１１におけるバーコードの読取り率を向上させることができる。
【００８５】
・整理券Ｓの縁折れが無い旨の判定がなされた場合（図４；Ｓ１０４でＮＯ）、ＣＰＵ２１は整理券Ｓの両長辺の傾きの平均値、即ち、傾きｍａｖｅを算出し、この傾きｍａｖｅを認識ラインＬｍの傾きとするようにした。ＣＰＵ２１は整理券Ｓの輪郭データの補正を行うことがない。この場合、整理券Ｓには縁折れが無いので当該整理券Ｓの両長辺に基づいて求められる認識ラインＬｍは正確である。このため、整理券Ｓに縁折れが発生していない場合においても、整理券Ｓの券面に記録されたバーコードを正確に読取ることができる。
【００８６】
（別の実施形態）
尚、前記各実施形態は、次のように変更して実施してもよい。
・本実施形態では、整理券Ｓの縁折れが有る旨の判定がなされた場合（図４；Ｓ１０４でＹＥＳ）、傾きの正常な長辺（線分Ａ’Ｂ’に相当）の傾きｍＡ’Ｂ’を算出し、傾き異常と判定された長辺（線分Ｃ’Ｄ’に相当）の傾きを補正するようにしたが（図４；Ｓ１０６）、次のようにしてもよい。即ち、図７のフローチャートに示すように、折れのない傾き正常な長辺の傾きｍを算出し（Ｓ１０６ａ）、当該傾きｍに基づいて認識ラインＬｍを求めるようにしてもよい（Ｓ１０８ａ）。このようにしても、整理券Ｓの券面に記録されたバーコードの読取り率を向上させることができる。また、傾きが異常と判定された長辺の傾きを補正する処理が不要となるので、ＣＰＵ２１（厳密には、コード位置演算部３２）の処理負担が軽減される。
【００８７】
・本実施形態では、券読取り装置１１をバスの運賃箱に搭載したが、例えば駅の構内に設置される乗車券精算装置に搭載するようにしてもよい。
（付記）
次に前記各実施形態及び別例から把握できる技術的思想を以下に追記する。
【００８８】
・請求項１〜請求項３のうちいずれか一項に記載の券読取り装置を備えた運賃箱。
・券面の予め設定された位置にコードが記録された券の全体を走査して当該走査情報に基づいて券の輪郭データを求めると共に、当該輪郭データに基づいて前記券面におけるコードの位置データを求めて当該位置データに基づいてコードを読取るようにした券読取り方法において、前記券の輪郭データに基づいて当該券の縁折れの有無を判定して、当該券の縁折れが検出されたときに当該券の輪郭データを補正するようにした券読取り方法。
【図面の簡単な説明】
【００８９】
【図１】本実施形態における券読取り装置の概略構成を示すブロック図。
【図２】（ａ）は本実施形態におけるＣＰＵの概略構成を示すブロック図、（ｂ）は本実施形態におけるコード位置演算部の概略構成を示すブロック図。
【図３】本実施形態におけるコード位置演算部の概略構成を示すブロック図。
【図４】本実施形態におけるバーコード認識処理を示すフローチャート。
【図５】本実施形態における整理券の取込み画像データを示す模式図。
【図６】本実施形態における１点が折れた整理券の正面図。
【図７】別の実施形態におけるバーコード認識処理の要部を示すフローチャート。
【図８】従来のバーコード認識処理を示すフローチャート。
【図９】従来における整理券の取込み画像データを示す模式図。
【図１０】従来における１点が折れた整理券の正面図。
【符号の説明】
【００９０】
１１…券読取り装置、１２…読取り装置（走査手段）、
３１…輪郭データ演算部（輪郭データ演算手段）、
３２…コード位置演算部（コード位置演算手段）、３３…読取り部（読取り手段）、
４１…縁折れ判定部（縁折れ判定手段、傾き判定手段）、
４２…補正部（補正手段、傾き補正手段）、
５１…エッジ誤差演算部（エッジ誤差演算手段）、
５２…エッジ誤差判定部（エッジ誤差判定手段）、
６１…短辺長演算部（短辺長演算手段）、６２…短辺判定部（短辺判定手段）、
６３…長辺修正部（長辺修正手段）、７１…中点演算部（中点演算手段）、
７２…位置データ演算部（位置データ演算手段）、
Ｍ，Ｎ…整理券の両長辺における中点、
Ｍ’，Ｎ’…中点Ｍ，Ｎと両長辺とのエッジとの交点、Ｌ１，Ｌ２…整理券の両短辺長、
Ｌｍ，Ｌｍ１，Ｌｍ２…認識ライン（バーコードの位置データ）、Ｐ…補正頂点Ｂ’と補正頂点Ｄ’との中点、Ｓ…整理券（券）、δｍ，δｎ…誤差（エッジ誤差）。
【図１】
0004497938.tif 000002
【図２】
0004497938.tif 000003
【図３】
0004497938.tif 000004
【図４】
0004497938.tif 000005
【図５】
0004497938.tif 000006
【図６】
0004497938.tif 000007
【図７】
0004497938.tif 000008
【図８】
0004497938.tif 000009
【図９】
0004497938.tif 000010
【図１０】
0004497938.tif 000011