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