(57)【特許請求の範囲】
【請求項１】
媒体上の文字列を撮像して得られた画像データを処理することによって、前記文字列を認識する文字列認識方法において、
前記文字列の方向と直交する垂直方向にシフトさせながら、前記文字列の方向への前記画像データの射影を計算する第１ステップと、
前記第１ステップにより得られた第１射影データに基づいて、前記垂直方向における前記文字列の位置を検出する第２ステップと、
前記第２ステップで検出された前記文字列の位置に基づいて、前記文字列の方向にシフトさせながら、前記垂直方向への前記セグメントの射影を計算する第３ステップと、
前記第３ステップにより得られた第２射影データが所定の閾値を超えた箇所を、前記文字列を構成する文字の区切り位置として検出する第４ステップと、を含み、
前記第１ステップは、前記画像データを前記文字列の方向へ所定数のセグメントに分割した後、当該セグメントの射影を計算し、
前記閾値は、前記第２射影データから検出された前記文字列の両端間の画素数が多くなるにつれて大きくなる一方で、該文字列の両端間の画素数が少なくなるにつれて小さくなることを特徴とする文字列認識方法。
【請求項２】
前記閾値は、下限値と上限値の間で前記第２射影データから検出された前記文字列の両端間の画素数に応じて変動することを特徴とする請求項１記載の文字列認識方法。
【請求項３】
請求項１又は２記載の文字列認識方法を用いて、媒体上の文字列を認識する文字列認識手段を備えたことを特徴とする文字列認識装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、紙やプラスチックなどの媒体上にある文字列を光学的に読み取る文字列認識方法及び文字列認識装置に関し、特に、認識精度低下を防ぐことが可能なものに関する。
【背景技術】
【０００２】
従来から、例えば小切手などの媒体表面に印刷された文字列を認識するための装置がある。例えば特許文献１に開示された文字認識装置は、２値化された画像データから文字部分を検出して、その文字部分を外接矩形枠に沿って切り出す文字切出手段と、文字切出手段により得られた文字パターンから特徴ベクトルを抽出する特徴ベクトル抽出手段と、予め文字ごとの特徴を格納している特徴格納手段と、入力パターンの特徴ベクトルと特徴辞書中の文字ごとの基準ベクトルとの類似度を求める類似度計算手段と、類似度計算手段により得られた類似度の大きさにより候補文字を選択する候補文字選択手段と、候補文字選択手段により選択された候補文字が複数であった場合に更に詳細な識別を行う類似文字識別手段と、を有している。このような各種手段を有する文字認識装置によれば、媒体表面に印刷された文字列を的確に認識することができる。
【０００３】
一方で、上述した２値化された画像データは、媒体上にある文字列を光学的に読み取る光学センサによって得られる。具体的には、製造コスト削減の観点から、文字列を１次元で光学的に読み取るＣＣＤラインセンサ（１次元撮像素子）を用いることが多い（例えば特許文献２参照）。この場合、ＣＣＤラインセンサによって媒体上にある文字列の主走査を行うとともに、手動又は機械駆動に基づく媒体移動によって副走査を行う。このようにして、ＣＣＤラインセンサと媒体移動の相互動作により、文字列の２次元画像データを取得し、この２次元画像データが２値化されると、上述した２値化された画像データが得られる。
【０００４】
【特許文献１】特開平０５−１２０４８３号公報
【特許文献２】特開平０５−７３７２２号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
しかしながら、特許文献２に開示された文字認識装置では、認識精度が低下する可能性がある、という問題がある。
【０００６】
具体的には、手動操作（スワイプ型のカードリーダであれば、スワイプ動作）に起因して媒体搬送速度が変動し、媒体移動方向への画像の歪みが発生した場合、それに伴って、媒体移動方向と垂直な方向にも画像歪みが発生する場合がある（傾いたりうねったりする場合がある）。また、媒体下辺部が撮像装置（文字認識装置）の搬送路面から浮き上がることによっても、媒体移動方向と垂直な方向に画像歪みが発生する場合がある。このような場合、画像歪みの方向が媒体移動方向と垂直な方向であるという関係上、一般的に補正するのは困難である。例えば、特許文献２に開示された文字認識装置を用いた場合であっても、画像歪みの方向が媒体移動方向であれば適切に補正し得るが、これが媒体移動方向と垂直な方向であるとき、補正は困難である。その結果、歪んだ画像をそのまま使って文字切り出し等を行うと、認識精度の低下を招くことになる。
【０００７】
本発明は、このような点に鑑みてなされたものであり、その目的は、たとえ画像歪みの方向が媒体移動方向と垂直な方向であったとしても、文字列認識の精度低下を防ぐことが可能な文字列認識方法及び文字列認識装置を提供することにある。
【課題を解決するための手段】
【０００８】
以上のような課題を解決するために、本発明は、以下のものを提供する。
【０００９】
（１）  媒体上の文字列を撮像して得られた画像データを処理することによって、前記文字列を認識する文字列認識方法において、前記文字列の方向と直交する垂直方向にシフトさせながら、前記文字列の方向への前記画像データの射影を計算する第１ステップと、前記第１ステップにより得られた第１射影データに基づいて、前記垂直方向における前記文字列の位置を検出する第２ステップと、前記第２ステップで検出された前記文字列の位置に基づいて、前記文字列の方向にシフトさせながら、前記垂直方向への前記セグメントの射影を計算する第３ステップと、前記第３ステップにより得られた第２射影データが所定の閾値を超えた箇所を、前記文字列を構成する文字の区切り位置として検出する第４ステップと、を含み、前記第１ステップは、前記画像データを前記文字列の方向へ所定数のセグメントに分割した後、当該セグメントの射影を計算し、前記閾値は、前記第２射影データから検出された前記文字列の両端間の画素数が多くなるにつれて大きくなる一方で、該文字列の両端間の画素数が少なくなるにつれて小さくなることを特徴とする文字列認識方法。
（２）  前記閾値は、下限値と上限値の間で前記第２射影データから検出された前記文字列の両端間の画素数に応じて変動することを特徴とする（１）記載の文字列認識方法。
【００１０】
本発明によれば、媒体上の文字列を認識する文字列認識方法に、文字列の方向と直交する方向（これを「垂直方向」とする）に、画素数を１個ずつ（或いは複数個ずつ）シフトさせながら、文字列の方向（例えば文字列の方向に媒体が搬送されるのであれば、媒体搬送方向）への画像データの射影を計算する第１ステップと、この第１ステップにより得られた第１射影データに基づいて（例えば第１射影データのエッジ検出を行うなどして）、垂直方向における文字列の位置を検出する第２ステップと、を含ませることとし、かつ、上述した第１ステップでは、画像データが文字列の方向へ所定数のセグメントに分割された後、そのセグメントごとに射影計算が行われることとしたので、たとえ画像歪みの方向が垂直方向であったとしても、文字列認識の精度低下を防ぐことができる。
【００１１】
すなわち、例えば文字列が斜めに傾いている場合（或いは、文字列が傾斜をもって走査された場合）において、従来の文字認識方法では、上述した第１ステップにより得られる第１射影データは、文字列のエッジ部分で急峻な波形とならず、なだらかな波形となっていた。そのため、上述した第２ステップで垂直方向における文字列の位置を検出しようとしても、これを正確に検出することは困難であった。しかし、本発明に係る文字列認識方法によれば、上述した第１ステップで、画像データが文字列の方向へ所定数のセグメントに分割された後、セグメントごとに射影を計算するようにしているので、たとえ文字列が斜めに傾いていても、それに起因して第１射影データがなだらかになるという悪影響を抑えることができる。従って、文字列認識の精度低下を防ぐことができる。
【００１２】
ここで、本明細書における「文字」は、一般的なアルファベットだけなく、記号文字や絵文字、バーコード、更には数字なども含み、媒体上で視認できることを条件に如何なる形態・大きさであってもよい。
【００１３】
前記文字列認識方法は、さらに、前記第２ステップで検出された前記文字列の位置に基づいて、前記文字列の方向にシフトさせながら、前記垂直方向への前記セグメントの射影を計算する第３ステップと、前記第３ステップにより得られた第２射影データが所定の閾値を超えた箇所を、前記文字列を構成する文字の区切り位置として検出する第４ステップと、を含み、前記閾値は、前記第２射影データから検出された前記文字列の両端間の画素数に応じて変動することを特徴とする。
【００１４】
本発明によれば、上述した文字列認識方法には、さらに、上述した第２ステップで検出された文字列の位置に基づいて（例えば文字列の位置を基準として、文字列がある周辺の画素だけに着目するなどして）、文字列の方向にシフトさせながら、垂直方向へのセグメントの射影を計算する第３ステップと、第３ステップにより得られた第２射影データが所定の閾値を越えた箇所を、文字列を構成する文字の区切り位置として検出する第４ステップと、が含まれ、その閾値は、第２射影データから検出された文字列の両端間の画素数に応じて変動することとしたので、短時間で最適な閾値を設定することができる。
【００１５】
すなわち、本発明で用いる閾値は、文字列を構成する文字の区切り位置を特定するために重要なものとなるが、その閾値の設定を、第３ステップを経て自動的に得られる第２射影データ（から検出された文字列の両端間の画素数）に委ねることで、最適な閾値設定の短縮化を図ることができる。
【００１６】
前記閾値は、前記文字列の両端間の画素数が多くなるにつれて大きくなる一方で、前記文字列の両端間の画素数が少なくなるにつれて小さくなることを特徴とする。
【００１７】
本発明によれば、上述した閾値は、文字列の両端間の画素数が多くなるにつれて大きくなる一方で、文字列の両端間の画素数が少なくなるにつれて小さくなることとしたので、例えば、媒体の相対移動速度が遅いときには、文字列の両端間の画素数が多くなる（分解能が高くなる）ため、閾値は大きくなる。その結果、低速時に乗りやすいノイズの悪影響を抑えることが可能になる。一方で、例えば媒体の相対移動速度が速いときには、文字列の両端間の画素数が少なくなる（分解能が低くなる）ため、閾値は小さくなる。ここで、一般的に、媒体の相対移動速度が速いときには、第２射影データの出力が小さくなることが知られている。従って、仮に、閾値が大きいままでは、この第２射影データの出力が小さくなった箇所が、所定の閾値を超えた箇所として検出されず、認識エラーとなる。しかし、本発明では、上述のとおり閾値は小さくなるようにしているため、第２射影データの出力が小さくなった箇所も、所定の閾値を超えた箇所として検出することができ、ひいては文字列認識の精度低下を防ぐことができる。
【００１８】
（３）  （１）又は（２）記載の文字列認識方法を用いて、媒体上の文字列を認識する文字列認識手段を備えたことを特徴とする文字列認識装置。
【００１９】
本発明によれば、上述した文字列認識方法を用いて、媒体上の文字列を認識する文字列認識手段を備えた文字列認識装置を提供することができる。
【発明の効果】
【００２０】
本発明に係る文字列認識方法及び文字列認識装置によれば、文字列を撮像して得られた画像データに歪みや傾きがあったとしても、文字列認識の精度低下を防ぐことができる。
【発明を実施するための最良の形態】
【００２１】
以下、本発明を実施するための最良の形態について、図面を参照しながら説明する。
【００２２】
［文字列認識装置］
図１は、本発明の実施の形態に係る文字列認識装置１の電気的構成を示すブロック図である。
【００２３】
図１において、文字列認識装置１は、密着型の（１次元）撮像素子１１と、画像メモリ１２と、データ処理部１３と、を有している。また、データ処理部１３は、行切り出し部１３ａと、文字切り出し部１３ｂと、特徴抽出部１３ｃと、特徴比較部１３ｄと、特徴辞書格納部１３ｅと、類似文字認識部１３ｆと、を有している。なお、これらの各部は、記録担体２上の文字列を認識する文字列認識手段の一例として機能する。
【００２４】
撮像素子１１は、記録担体２上のＯＣＲ文字列を撮像し、そのＯＣＲ文字列の光電変換を行う。そして、それによって得られた画像データは、一旦画像メモリ１２に取り込まれる。その後、データ処理部１３は、画像メモリ１２から画像データを読み出して、上述した各部において様々な処理を施し、最終的に、記録担体２上のＯＣＲ文字列を認識するようにしている。
【００２５】
一方で、記録担体２は、ＪＩＳに準拠している一般的なカードであってもよく、例えば、幅８６ｍｍ，高さ５４ｍｍ，厚み０．７６ｍｍというサイズのプラスチックカードでもよく、ＩＤカードやパスポートブックなどでもよい。
【００２６】
このような電気的構成からなる文字列認識装置１において、まずは、文字列認識方法の全体的な流れについて説明し、その後、本実施形態特有の流れについて詳細に説明する。
【００２７】
［文字列認識方法］
図２は、本発明の実施の形態に係る文字列認識方法の全体的な流れを示すフローチャートである。
【００２８】
図２に示すように、本実施形態に係る文字列認識方法では、まず、２値化が行われる（ステップＳ１）。より具体的には、データ処理部１３は、画像メモリ１２から画像データを読み出して、その画像データが多諧調の濃淡画像である場合には、白黒２値の画像に変換を行う。なお、この画像メモリ１２は、ＲＡＭ，ＳＤＲＡＭ,ＤＤＲＳＤＲＡＭ，ＲＤＲＡＭなど、画像データを記憶しうるものであれば如何なるものであってもよい。また、２値化するにあたっては、適当な方法によって閾値を求めるものとする。さらに、今後の処理では、この白黒２値化画像を用いることとする。
【００２９】
次いで、行切り出しが行われる（ステップＳ２）。より具体的には、データ処理部１３内の行切り出し部１３ａは、２値化した文字列を、水平方向に何等分かのセグメントに分割した後、その画素を水平方向に射影して、文字列の上下エッジを検出する。そして、上下エッジの中心位置を、文字列の中心ラインと識別して行切り出しを行う。なお、詳細については、後述する［行切り出し］において説明する。
【００３０】
次いで、文字切り出しが行われる（ステップＳ３）。より具体的には、データ処理部１３内の文字切り出し部１３ｂは、ステップＳ２で検出された文字列ごとの画像データについて、セグメントごとに垂直方向に射影計算を行う。そして、セグメントごとに求められた垂直射影プロファイルを用いて、文字と文字との間のスペースを識別し、文字の切り出しを行う。なお、詳細については、後述する［文字切り出し］において説明する。
【００３１】
ステップＳ３の処理が終了すると、認識対象となっている文字の外接矩形領域（上下左右の座標値）が求められる。
【００３２】
次いで、特徴抽出が行われる（ステップＳ４）。より具体的には、データ処理部１３内の特徴抽出部１３ｃは、上述した外接矩形領域を任意のサブ領域に分割（例えば１個の外接矩形領域を５×５の領域に分割し、そのうち１個の領域をサブ領域とする）し、各サブ領域において、サブ領域内の全画素数に占める黒画素数の割合を求め、それらを要素とする特徴ベクトルを生成する。
【００３３】
次いで、特徴比較が行われる（ステップＳ５）。より具体的には、データ処理部１３内の特徴比較部１３ｄは、ステップＳ４で求めた特徴ベクトルを、あらかじめこの媒体で使用される全文字について求めておいた基準特徴ベクトルと比較して、類似度（例えば正規化相関係数）が最も高いものをその文字が該当する候補文字に設定する。
【００３４】
なお、基準特徴ベクトルは、予め特徴辞書格納部１３ｅに格納されているものであって、特徴比較が行われる際に、特徴辞書格納部１３ｅから類似度が高い文字のデータが読み出され、特徴比較が行われる。
【００３５】
最後に、文字認識が行われる（ステップＳ６）。より具体的には、ステップＳ５の特徴比較によって設定された候補文字を、媒体に用いられた文字として認識する。なお、類似度が一定値を超える候補文字が複数個存在する場合には、文字認識を行うことができないので、類似文字認識部１３ｆにおいて、特徴ベクトルから導き出せる２次的な特徴量を利用して、類似文字の判別を行う。
【００３６】
例えば、任意に分割したサブ領域を左側半分と右側半分との２領域の左右線対称に分けて、部分特徴ベクトルを構成してそれらの間の類似性を調べたり、同様に上半分と下半分との２領域の上下線対称に分けて、類似性を調べたりしてもよい。また、左右線対称や上下線対象と同様に点対称で類似性を調べてもよい。
【００３７】
以下、本実施形態特有の流れについて説明する。
【００３８】
［行切り出し］
図３は、図２に示すフローチャートにおいて、「行切り出し」（ステップＳ２）の詳細な流れを示すフローチャートである。
【００３９】
まず、区分的水平射影計算が行われる（ステップＳ２１）。より具体的には、２値化された画像データを文字列の方向へ所定数（ここではＡ〜Ｅの５個）のセグメントに分割した後、文字列の方向と直交する垂直方向にシフトさせながら、文字列の方向への画像データの射影を計算する（請求項記載の第１ステップの一例）。
【００４０】
ここで、本実施形態に係る文字列認識方法では、上述したように文字列をＡ〜Ｅの５個のセグメントに分割することが特徴的である。ここではまず、セグメントに分割した場合としない場合とを比較するために、セグメントに分割しない場合における「行切り出し」について説明する。
【００４１】
図４は、記録担体２のＯＣＲ文字記憶領域（図１参照）に印刷された文字を撮像したときの画像データを示す図である。
【００４２】
図４に示す画像データにおいて、文字列の方向（図４では水平方向）への画像データの射影を計算すると（Ｙ軸へ濃度投影すると）、図５に示す第１射影データが得られる。なお、濃度投影とは、いわばヒストグラム（濃度分布図）の一種であり、２値化によって「１」または「０」の濃度に変換された画素を濃度別に合計したものであり、白または黒のどちらを合計値として計算してもよい。
【００４３】
図５は、図４に示す画像データを、文字列の方向へ射影したときの第１射影データを示す図である。
【００４４】
図５に示すように、第１射影データは、文字列の上下エッジの部分で急峻な波形となる。従って、このまま文字列の上下エッジの検出を行った場合、文字列の垂直方向の位置を正確に検出することができる。
【００４５】
図５において、まず、２個の文字列のうち、上側の文字列に着目し、この文字列の上端を上側エッジＬＴとし、下端を下側エッジＬＢ（>ＬＴ）とする。すなわち、この文字列の上下エッジを検出するに当たって、Ｙ軸濃度投影の画素が検出され始めた地点を上側エッジＬＴとし、画素が検出されなくなった地点を下側エッジＬＢとする。
【００４６】
そして、ここで検出した上下エッジＬＴ，ＬＢを用いて、上下エッジ間の中心を、中心位置ＬＣとして算出する（例えばＬＣ＝（ＬＢ＋ＬＴ）／２により求める）。中心位置ＬＣが求められた文字列において、その中心位置ＬＣを含む線は、文字列の中心線として仮決めされる。この中心線は、後述する文字切り出し処理において、文字ごとの上下エッジを検索する際の基準位置となる。
【００４７】
このように、図５に示す第１射影データが得られている場合には、たとえセグメントに分割しなくても、文字列の垂直方向の正確な位置検出を行うことができる。
【００４８】
ところが、例えば、図６に示す第１射影データが得られたとする。すなわち、文字列が斜めに傾いている場合である。この場合、図６に示す第１射影データについて、文字列の方向への射影計算を行うと、図７に示すようになる。そして、図７に示す第１射影データのプロファイルは、文字列の上下エッジの部分で急峻な波形とならず、なだらかな波形となり、上下エッジＬＴ'とＬＢ'が図７の位置に定められ、加えて中心位置ＬＣ'も図７の位置に定められる。これらＬＴ'，ＬＢ'，ＬＣ'は、上述したＬＴ，ＬＢ，ＬＣとずれており、特に、（ＬＢ'−ＬＴ'）>（ＬＢ−ＬＴ）となっている。従って、文字列の上下エッジを検出する精度が低くなるのは勿論のこと、文字列の上下エッジ間の距離が（誤って）長く検出されることから、文字列を検索する処理時間が長くなってしまう。なお、媒体の傾斜が大きい場合や媒体搬送中の上下動が大きい場合には、水平射影における２個の凹型パターンが干渉し、文字列の分離判別が更に不正確となる。
【００４９】
このような問題を解決するため、本実施形態に係る文字列認識方法では、図８に示すように、文字列をＡ〜Ｅの５個のセグメントに分割している。これにより、各セグメントにおける文字列の傾斜距離を短くすることができるので、第１射影データを計算すると、図９に示すようになる。図９に示す第１射影データは、文字列の上下エッジの部分で、ある程度急峻な波形となっている。従って、たとえ文字列が斜めに傾いていても、それに起因して第１射影データがなだらかになるという悪影響を抑えることができる。具体的には、図７に示す第１射影データを使う場合と比べて、正確に上下エッジの位置（垂直方向における文字列の位置）を検出することができる（請求項記載の第２ステップの一例）。このようにして、文字列認識の精度低下を防ぐことができる。
【００５０】
なお、次に説明する「文字切り出し」の処理の際に、文字列の垂直方向の射影計算があるが、このとき計算する範囲を予めここで決めておく。具体的には、図５に示すように、中心位置ＬＣから上下エッジ間距離（ＬＢ−ＬＴ）の半分プラスαだけ離れた位置をサーチ起点とする。より詳細には、中心位置ＬＣから上下エッジ間距離の半分とαとだけを減算した位置を上側サーチ起点として、中心位置ＬＣから上下エッジ間距離の半分とαとだけ加算した位置を下側サーチ起点とする。そして、文字列の垂直方向の射影計算のときには、上側サーチ起点から下側サーチ起点までを射影計算するものとする。また、αは、任意の数値であって、文字列に含まれる文字のすべての上下エッジが、上側サーチ起点と下側サーチ起点との間に含まれるように選ばれる。
【００５１】
［文字切り出し］
図１０は、図２に示すフローチャートにおいて、「文字切り出し」（ステップＳ３）の詳細な流れを示すフローチャートである。
【００５２】
まず、垂直射影計算が行われる（ステップＳ３１）。より具体的には、文字列の方向にシフトさせながら、文字列の垂直方向（Ｘ軸）へ濃度投影を行い、第２射影データを計算する（請求項記載の第３ステップの一例）。このとき、上述したように、垂直方向の画素の加算は、セグメントごとに求めた上下エッジを両端点の間（［ＬＣ−（ＬＢ−ＬＴ）／２−α］〜［ＬＣ＋（ＬＢ−ＬＴ）／２＋α］）で行うようにする。
【００５３】
具体的には、図１１に示すように、セグメントＡ〜Ｅで、垂直方向の画素の加算範囲（四角枠）を変える。すなわち、図１１では、セグメントＡからＥで加算範囲（四角枠）の幅は変わっていないが、セグメントＡからＥで加算範囲（四角枠）の位置が変わっている。
【００５４】
次いで、文字ライン長計算が行われる（ステップＳ３２）。より具体的には、ステップＳ３１において得られた第２射影データを用いて検出された文字列の両端間の画素数に応じて、文字ライン長の計算が行われる。図１２は、セグメントＡからＥまでの第２射影データをつなげた図である。図１２において、文字ライン長は、Ｐｓ地点からＰｅ地点までの画素数が、文字列の両端間の画素数となる。
【００５５】
なお、このＰｓ地点からＰｅ地点までの画素数は、記録担体２をスワイプさせる速度と密接な関係がある。すなわち、スワイプ速度が低速の場合には、この画素数は多くなる（十分な分解能が得られる）一方で、スワイプ速度が高速の場合には、この画素数は少なくなる（十分な分解能が得られない）。
【００５６】
次いで、文字区切り位置検出が行われる（ステップＳ３３）。より具体的には、
垂直射影によって得られた第２射影データには、文字列を構成する文字と文字間の空白部分が含まれているため、第２射影データが所定の閾値を超えた箇所を、文字列を構成する文字の区切り位置として検出する（請求項記載の第４ステップの一例）。この過程を、図１３及び図１４を用いて詳しく説明する。
【００５７】
図１３は、文字列を構成する文字に着目したときの画像データである。また、図１４は、図１３に示す画像データを垂直射影することによって得られた第２射影データである。なお、図１３は、図１１におけるセグメントＣの「Ｋ」から「Ｃ」までの画像データを示している。
【００５８】
図１４において、各文字間の空白部分は、ＳＬＥＶ（閾値）を超えている区間と一致している。従って、図１４の場合には、ＳＬＥＶ（閾値）を超えている区間の画素を、空白部分の画素として正しく認識することができる。なお、記録担体２の相対移動速度が遅い場合には、文字間のスペースに相当する区間は十分な輝度強度と十分な長さをもっているため、また、低速の場合にはノイズが重畳しやすいため、ＳＬＥＶ（閾値）は高めに設定しておくのが一般的である。
【００５９】
ところが、記録担体２の相対移動速度が高速の場合には、相対的に画像の水平方向の分解能が減少し、文字間のスペースに相当する部分の出力が低下する。具体的には、図１５に示すようになる。例えば、図１５に示す矢印の部分の出力値は、ＳＬＥＶ（閾値）を超えていないことから、文字間のスペースではないと判定される。一方で、図１４に示すように、この部分は、スペースに相当する部分である。
【００６０】
このようなことから、本実施形態では、ＳＬＥＶ（閾値）を、記録担体２の相対移動速度の関数として与えることとしている。すなわち、上述したように、記録担体２の相対移動速度と、第２射影データから検出された文字列の両端間の画素数とは相関関係があることから、この画素数に応じてＳＬＥＶ（閾値）を変動させるようにしている。
【００６１】
以下、閾値計算の一例を示す。なお、Ｌとは、文字列の両端間の画素数（Ｐｓ−Ｐｅ）を意味するものとする。
【００６２】
まず、相対移動速度が過渡に低速の場合を考慮して、閾値の上限値をＳＬＥＶ＝Ａｍａｘ（Ｌ≧Ｌｍａｘ）とする。また、相対移動速度が過渡に高速の場合を考慮して、閾値の下限値をＳＬＥＶ＝Ａｍｉｎ（Ｌ≦Ｌｍｉｎ）とする。
【００６３】
そして、相対移動速度の長さＬが、Ｌｍｉｎより大きくＬｍａｘより小さい場合は、ＳＬＥＶ＝Ａｍｉｎ＋Ａｄ（Ｌ−Ｌｍｉｎ）／（Ｌｍａｘ−Ｌｍｉｎ）とする。関数値Ａｄは、文字列の両端間の画素数が多くなるにつれて大きくなる一方で、文字列の両端間の画素数が少なくなるにつれて小さくなるような関数であり、文字列の両端間の画素数に応じて変化する関数であるが、その他、文字間スペースの出力値の低下率やノイズの発生率によって変化する関数であってもよく、最適な閾値を求めるために設定される。また、ＡｍｉｎやＡｍａｘは、安定的に文字間スペースが検出可能であるように決めるものとする。
【００６４】
このようにして、行切り出し処理（図２のステップＳ２参照）によって、各文字の上下エッジが決定され、文字切り出し処理（図２のステップＳ３参照）によって、各文字の左右境界位置が暫定的に決定されるので、図１６に示すように外周矩形領域内における文字が求められる。
【００６５】
図１６は、文字列を構成する文字「<」の画像データを示す図である。
【００６６】
図１６において、この「<」の文字の位置を正確に特定するために、垂直射影ＰＸ及び水平射影ＰＹを計算する。なお、垂直射影ＰＸの計算における画素値の加算範囲λは、文字列切り出し処理において得られている値を用いて、ＬＣ−（ＬＢ−ＬＴ）／２−α<λ<ＬＣ＋（ＬＢ−ＬＴ）／２＋αと定義する。
【００６７】
このようにして求められたＰＸに沿って、文字の左右境界位置の検出を行い、矩形領域の左端点を起点としてＰＸを右方向にスキャンして、そのレベル値（画素の検出）が連続して一定回数（例えば３回）閾値を下回ったら、その最初の地点を文字の左エッジとする。そして、同様に矩形領域の右端点を起点としてＰＸを左方向にスキャン行い、連続して一定回数、閾値を下回ったらその最初の地点を文字の右エッジとする。なお、この矩形文字領域が、例えば図１１に示すような隣接するセグメントの境界に位置する場合は、文字列の中心位置ＬＣが隣接する２つのセグメントの中心位置ＬＣ１とＬＣ２の平均値を使うようにする。
【００６８】
次に、水平射影ＰＹについても同様に、文字切り出し処理にて得られている左エッジ位置と右エッジ位置とで区切られた範囲を定義域として行い、矩形領域の上下両端を外側からスキャンして、各レベル値が連続して一定回数、閾値を下回ったら、その最初の地点を文字の上下エッジとする。
【００６９】
このようにして、文字列内の文字位置を特定することができ、特定された位置から特徴抽出を行い（図２のステップＳ４）、文字認識が行われることになる（図２のステップＳ６）。
【００７０】
［実施形態の効果］
以上説明したように本実施形態に係る文字列認識方法によれば、たとえ文字列が斜めに傾いていても、それに起因して第１射影データがなだらかになるという悪影響を抑えることができ、ひいては文字列認識の精度低下を防ぐことができる。また、文字列の両端間の画素数に応じて閾値を変動させることとしたので、正確な文字認識が可能になるとともに、平均速度検出が簡易にできることから処理時間の短縮化を図ることができる。すなわち、閾値は媒体の相対移動速度の関数として表現し、媒体移動が高速のときは相対的に小さく、媒体移動が低速のときには相対的に大きな値とするようにしたため、移動速度の差異によって生じるイメージ分解能の相対的な差異による濃度レベル値の変動に柔軟に対応することができ、高い信頼性をもって文字認識を行うことができる。
【００７１】
なお、本実施形態では、１次元撮像素子１１，リニア搬送機構を用いることとしたが、本発明はこれらに限定されるものではない。例えば、２次元ＣＣＤやＣＭＯＳイメージャなどのエリアセンサと被写体支持機構との組み合わせでもよい。また、認識対象としては、活字文字だけでなく、手書き文字にも適用できる。また、文字認識に止まらず、１次元及び２次元バーコードの復号などにも適用できる。
【産業上の利用可能性】
【００７２】
本発明に係る文字列認識方法及び文字列認識装置は、文字列認識の精度低下を防ぐことが可能なものとして有用である。
【図面の簡単な説明】
【００７３】
【図１】本発明の実施の形態に係る文字列認識装置の電気的構成を示すブロック図である。
【図２】本発明の実施の形態に係る文字列認識方法の全体的な流れを示すフローチャートである。
【図３】図２に示すフローチャートにおいて、行切り出しの詳細な流れを示すフローチャートである。
【図４】記録担体のＯＣＲ文字記憶領域（図１参照）に印刷された文字を撮像したときの画像データの一例を示す図である。
【図５】図４に示す画像データを、文字列の方向へ射影したときの第１射影データを示す図である。
【図６】記録担体のＯＣＲ文字記憶領域（図１参照）に印刷された文字を撮像したときの画像データの一例を示す図である。
【図７】図６に示す画像データを、文字列の方向へ射影したときの第１射影データを示す図である。
【図８】文字列をＡ〜Ｅの５個のセグメントに分割した様子を示す図である。
【図９】図８に示す画像データ（各セグメント）を、文字列の方向へ射影したときの第１射影データを示す図である。
【図１０】図２に示すフローチャートにおいて、文字切り出しの詳細な流れを示すフローチャートである。
【図１１】記録担体のＯＣＲ文字記憶領域（図１参照）に印刷された文字を撮像したときの画像データの一例を示す図である。
【図１２】セグメントＡからＥまでの第２射影データをつなげた図である。
【図１３】文字列を構成する文字に着目したときの画像データである。
【図１４】図１３に示す画像データを垂直射影することによって得られた第２射影データの一例である。
【図１５】図１３に示す画像データを垂直射影することによって得られた第２射影データの一例である。
【図１６】文字列を構成する文字「<」の画像データを示す図である。
【符号の説明】
【００７４】
１  文字列認識装置
２  記録担体
１１  撮像素子
１２  画像メモリ
１３  データ処理部
１３ａ  行切り出し部
１３ｂ  文字切り出し部
１３ｃ  特徴抽出部
１３ｄ  特徴比較部
１３ｅ  特徴辞書格納部
１３ｆ  類似文字認識部
【図１】
0004658848.tif 000002
【図２】
0004658848.tif 000003
【図３】
0004658848.tif 000004
【図４】
0004658848.tif 000005
【図５】
0004658848.tif 000006
【図６】
0004658848.tif 000007
【図７】
0004658848.tif 000008
【図８】
0004658848.tif 000009
【図９】
0004658848.tif 000010
【図１０】
0004658848.tif 000011
【図１１】
0004658848.tif 000012
【図１２】
0004658848.tif 000013
【図１３】
0004658848.tif 000014
【図１４】
0004658848.tif 000015
【図１５】
0004658848.tif 000016
【図１６】
0004658848.tif 000017