(57)【要約】【課題】手書き文字のかすれ箇所を鮮明にする装置を提供する。【解決手段】文字補正装置は、入力した画像において検出した線の線幅からその画像が文字であるかどうかを検出する文字検出部と、入力した画像において検出した線の各輪郭画素のうち文字の先端を示す輪郭画素を検出する文字先端検出部と、文字先端検出部において検出された文字の先端を示す輪郭画素に隣接する先端隣接画素についての画素値を当該画素値の閾値を用いて二値化して、先端隣接画素が閾値以上であれば先端隣接画素が文字を構成する画素であると判定することにより文字の補正を行う文字補正部とを備える。【選択図】図１
2015049784.tif 000002
【特許請求の範囲】
【請求項１】
入力した画像において検出した線の線幅からその画像が文字であるかどうかを検出する文字検出部と、
入力した画像において検出した線の各輪郭画素のうち前記文字の先端を示す輪郭画素を検出する文字先端検出部と、
前記文字先端検出部において検出された文字の先端を示す輪郭画素に隣接する先端隣接画素についての画素値を当該画素値の閾値を用いて二値化して、当該先端隣接画素が前記閾値以上であれば当該先端隣接画素が前記文字を構成する画素であると判定することにより文字の補正を行う文字補正部と、
を備えることを特徴とする文字補正装置。
【請求項２】
前記文字検出部は、前記輪郭画素に沿った輪郭上の距離において前記文字の線幅と認識できる距離より離れた間隔をおいて存在し画素間の距離が文字の線幅を示す所定の範囲にあるような前記輪郭画素を構成する２つ画素の組が、前記輪郭画素の総数に対して文字であるとの判定に必要な所定の割合以上存在する場合その画像が文字であると判定する
ことを特徴とする請求項１に記載の文字補正装置。
【請求項３】
前記文字先端検出部は、前記輪郭画素において所定の間隔内にある２つの画素を特定し、前記輪郭画素が構成する前記線の輪郭を一方向に追跡した場合の当該特定した２つの画素における追跡方向のなす角度が所定角度以上変化しているかどうかを判定し、所定角度以上変化している場合であって、当該特定した２つの画素のうち輪郭を追跡するときに始点となる画素と前記輪郭画素に沿った輪郭上の距離において前記文字の線幅と認識できる距離より離れた間隔をおいて存在する前記輪郭画素を構成する他の画素との距離が文字の線幅を示す所定の範囲にないとき当該特定した２つの画素の間の各隣接画素を、前記先端隣接画素と判定する
ことを特徴とする請求項１または請求項２に記載の文字補正装置。
【請求項４】
前記文字補正部は、前記先端隣接画素が前記文字を構成する画素であると判定する処理を、前記閾値を下げながら所定回数繰り返すことにより文字の補正を行う
ことを特徴とする請求項１から請求項３の何れかに記載の文字補正装置。
【請求項５】
入力した画像において検出した線の線幅からその画像が文字であるかどうかを検出し、
入力した画像において検出した線の各輪郭画素のうち前記文字の先端を示す輪郭画素を検出し、
検出された文字の先端を示す輪郭画素に隣接する先端隣接画素についての画素値を当該画素値の閾値を用いて二値化して、当該先端隣接画素が前記閾値以上であれば当該先端隣接画素が前記文字を構成する画素であると判定することにより文字の補正を行う
ことを特徴とする文字補正方法。
【請求項６】
文字補正装置のコンピュータを、
入力した画像において検出した線の線幅からその画像が文字であるかどうかを検出する文字検出手段、
入力した画像において検出した線の各輪郭画素のうち前記文字の先端を示す輪郭画素を検出する文字先端検出手段、
前記文字先端検出手段において検出された文字の先端を示す輪郭画素に隣接する先端隣接画素についての画素値を当該画素値の閾値を用いて二値化して、当該先端隣接画素が前記閾値以上であれば当該先端隣接画素が前記文字を構成する画素であると判定することにより文字の補正を行う文字補正手段、
として機能させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、二値化処理を行う文字補正装置、文字補正方法及びプログラムに関する。
【背景技術】
【０００２】
人がペンや鉛筆を使って手書きした文字は、文字を構成する線分の濃淡や太さが均一ではなく、薄くなったり細くなったりする。一般にそのように薄く細くなった部分を含む文字をＯＣＲ（Ｏｐｔｉｃａｌ  Ｃｈａｒａｃｔｏｒ  Ｒｅｃｏｇｎｉｔｉｏｎ）による文字認識装置で読み取ると、そのかすれた部分が存在するために正しく文字の形を認識することができず認識精度が下がるという問題がある。この問題を解決するため文字のかすれを修復する技術が存在する（特許文献１参照）。
【０００３】
たとえば特許文献１には、文字を構成する線分の先端を検出しその中からかすれにより生じた対となる先端を選択してその先端同士を接続することによってかすれを修復する技術について記載がある。この技術においては、かすれによって生じたものでない先端間を接続してしまうことがないように予め閾値を設け、先端間の距離がその閾値以下であればかすれによってできた先端であると認識することとしている。また、かすれの修復方法としては、認識対象となっている文字の平均的な文字幅を求め、その文字幅を線幅とする直線で先端間を結ぶ方法などについて記載されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開平０６−０５２３５６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
ところで、文字のかすれを修復する方法としては特許文献１のような方法のほかにも局所的に二値化処理を行う手法（以下、局所二値化手法）が知られている。これは文字のかすれのようなコントラストの低い画像について画像内の所定の画素とその周辺とが分かれるように二値化の閾値のレベルを変更する手法である。
一般に用いられる局所二値化手法は画像を何分割かして、その分割後の画像に対して二値化することが普通である。しかしその分割後の画像について単に局所二値化手法を用いると、文字のかすれ以外にもコントラストが低い背景の模様や濃淡のある部分なども二値化の対象となり、それらの部分が文字の形を認識する上でノイズとなってしまう。このように局所二値化手法だけでは文字のかすれ部分のみを二値化によって浮かび上がらせ文字の形を正しく認識できるようにするという本来の目的が達成できない問題があった。
【０００６】
そこでこの発明は、上述した解題を解決する文字補正装置及びその文字補正方法とプログラムを提供することを目的としている。
【課題を解決するための手段】
【０００７】
本発明は、入力した画像において検出した線の線幅からその画像が文字であるかどうかを検出する文字検出部と、入力した画像において検出した線の各輪郭画素のうち前記文字の先端を示す輪郭画素を検出する文字先端検出部と、前記文字先端検出部において検出された文字の先端を示す輪郭画素に隣接する先端隣接画素についての画素値を当該画素値の閾値を用いて二値化して、当該先端隣接画素が前記閾値以上であれば当該先端隣接画素が前記文字を構成する画素であると判定することにより文字の補正を行う文字補正部と、を備えることを特徴とする文字補正装置である。
【０００８】
また本発明は、入力した画像において検出した線の線幅からその画像が文字であるかどうかを検出し、入力した画像において検出した線の各輪郭画素のうち前記文字の先端を示す輪郭画素を検出し、検出された文字の先端を示す輪郭画素に隣接する先端隣接画素についての画素値を当該画素値の閾値を用いて二値化して、当該先端隣接画素が前記閾値以上であれば当該先端隣接画素が前記文字を構成する画素であると判定することにより文字の補正を行うことを特徴とする文字補正方法である。
【０００９】
また本発明は、文字補正装置のコンピュータを、入力した画像において検出した線の線幅からその画像が文字であるかどうかを検出する文字検出手段、入力した画像において検出した線の各輪郭画素のうち前記文字の先端を示す輪郭画素を検出する文字先端検出手段、前記文字先端検出手段において検出された文字の先端を示す輪郭画素に隣接する先端隣接画素についての画素値を当該画素値の閾値を用いて二値化して、当該先端隣接画素が前記閾値以上であれば当該先端隣接画素が前記文字を構成する画素であると判定することにより文字の補正を行う文字補正手段、として機能させることを特徴とするプログラムである。
【発明の効果】
【００１０】
本発明によれば、手書き文字のかすれ箇所が鮮明になるという効果が得られる。
【図面の簡単な説明】
【００１１】
【図１】本発明の第一の実施形態による文字補正装置の最小構成を示す図である。
【図２】本発明の第一の実施形態による文字補正装置の具体的な構成を示す図である。
【図３】本発明の第一の実施形態による文字補正装置の処理概要について説明する図である。
【図４】本発明の第一の実施形態による文字補正装置の処理フローを示す第一の図である。
【図５】本発明の第一の実施形態による文字補正装置が文字か否かを判定する処理を示す図である。
【図６】本発明の第一の実施形態による文字補正装置の処理フローを示す第二の図である。
【図７】本発明の第一の実施形態による文字補正装置が文字の先端を検出する処理を示す図である。
【図８】本発明の第一の実施形態による文字補正装置の処理フローを示す第三の図である。
【図９】本発明の第一の実施形態による文字補正装置の処理結果の一例を示す図である。
【発明を実施するための形態】
【００１２】
＜第一の実施形態＞
以下、本発明の一実施形態による文字補正装置を図１〜図９を参照して説明する。
図１は第一の実施形態による文字補正装置の最小構成を示す図である。
この図において、符号１は文字補正装置を表している。図１に示す通り、文字補正装置１は文字検出部１０、文字先端検出部２０、文字補正部３０を備えている。
文字検出部１０は画像データを入力しその画像が文字を示すか否かを検出する機能を有している。文字先端検出部２０は文字検出部１０が文字であると判断した画像データについて文字の先端部を検出する機能を有している。文字補正部３０は文字先端検出部２０において検出された文字の先端近傍について文字のかすれを補正する機能を有している。
【００１３】
図２は第一の実施形態による文字補正装置の具体的な構成を示す図である。
図２に示す通り、文字補正装置１は、カメラ１０１、二値化処理部１０２、輪郭画素追跡部１０３、文字検出部１０、文字先端検出部２０、文字補正部３０を備えている。ここでカメラ１０１は、認識対象となる文字を含む画像を撮像する画像撮像器である。二値化処理部１０２はカメラ１０１で撮像した画像を二値化し、その結果を単純二値画像として出力する機能を有している。通常、紙面に手書きした文字をカメラ１０１で撮像し、二値化処理部１０２で出力した単純二値画像においては黒画素が文字で白画素が背景となる。以下この黒画像の固まりを「物体」と称する。
輪郭画素追跡部１０３は、二値化処理部１０２が出力した単純二値画像を入力し、二値化画像内の物体の輪郭線を構成する画素（以下、輪郭画素）を一般的に知られている境界線追跡手法により一方向（例えば反時計回り）に一つずつ辿り、輪郭画素の情報を抽出し出力する機能を有している。
【００１４】
文字検出部１０は輪郭画素の情報から文字幅を検出し物体が文字か否かを判定する機能を有している。具体的には、文字検出部１０は輪郭画素の各点が他の点との間で文字らしい幅を構成する輪郭画素の一部であるかどうかを調べ、そのような幅を構成する点が所定以上輪郭画素において存在する場合はその物体は文字であると判断する機能を有している。手書き文字は、市販されている鉛筆やペンを使用して記述されることが一般的であり、それらの筆記具を用いて記述した文字の幅はある一定の範囲に収まる。本実施形態ではこの性質に注目し、物体が文字であるか否かの判断に使用している。
文字先端検出部２０は輪郭画素の情報から、輪郭画素上のある点を始点に物体の輪郭線を一方向に追跡したときの輪郭を追跡する方向の変化に注目し、所定角度以上変化したときにその近傍に文字の先端があると検出する機能を有している。具体的には、文字先端検出部２０は文字検出部１０が文字であると判定した物体について、輪郭画素を辿った際の進行方向が１８０度以上転じている個所を調べる。そのような個所があれば文字先端検出部２０はその輪郭追跡方向近傍に先端があると推定し、さらにこの個所が文字の先端かどうかを判定する処理を行う。文字先端検出部２０は文字の先端を検出するとその周辺の画素を示す情報を出力する。
【００１５】
文字補正部３０は、単純二値化画像について文字の先端部周辺の画素を対象として二値化処理を行う機能を有している。文字補正部３０は文字の先端を構成する画素に接した背景画素が二値化により背景でなく物体となるように二値化の閾値を調整し、再度二値化処理を行う。これにより文字の先端のみが先端部周辺の画素の濃度に応じて伸長する効果が得られる。
これらの処理を繰り返すことによりかすれにより切断された文字の線分同士が繋がり文字が修復される。
【００１６】
図３は第一の実施形態による文字補正装置の処理概要について説明する図である。
図３はかすれによって単純に二値化するだけでは切断されてしまう文字の一部分を示している。図３（ａ）及び図３（ｂ）の各円で示した領域は文字がかすれたことによって生じた文字の先端部である。本発明においてはこのような文字の先端部を検出し、その周辺を適切な閾値によって二値化することで文字のかすれた部分を浮き上がらせ文字の修復を行う。
【００１７】
図３（ｃ）は８方向チェインコードを説明するための図である。８方向チェインコードとは２つの隣接した輪郭画素のつながりを、上下左右斜め８方向のベクトルで表す方法である。例えば、８方向のそれぞれに対して図３（ｃ）に示すように数字を対応付けるとする。すると図３（ｄ）で示す領域において物体の輪郭を図３（ｅ）の画素を起点として図に示す矢印方向に追跡した場合、３→２→３・・・の方向に辿ることができる。チェインコードは隣り合った画素の位置関係を方向で示すため、この情報によって線分の曲がりやその方向を認識することができる。
【００１８】
図３で示す文字の輪郭画素毎に付されている番号を本実施形態においてはシーケンス番号と呼ぶ。シーケンス番号は輪郭画素のある点を起点として一般的な輪郭追跡手法によって輪郭画素を辿ったときに各輪郭画素に対して辿った順に１ずつ加算して割り当てた数である。シーケンス番号は物体が文字であるかどうかの判定や文字の先端部を検出する際に使用し、シーケンス番号ｉが付された輪郭画素をＳｉと表記する。
また、図３（ｆ）で示されるＤは輪郭画素Ｓ７とＳ３０間のユークリッド距離である。ある輪郭画素Ｓｉと輪郭画素Ｓｊとの距離Ｄｉ−ｊは、Ｓｉ及びＳｊの座標をそれぞれ（Ｘｉ、Ｙｉ）、（Ｘｊ、Ｙｊ）とした場合、（Ｘｊ−Ｘｉ）２＋（Ｙｊ−Ｙｉ）２の平方根によって求める。
【００１９】
図４は本実施形態による文字補正装置の処理フローを示す第一の図である。
図４の処理フローを用いて文字補正装置１が文字のかすれを補正する処理について説明する。
まず、カメラ１０１は補正対象となる画像を撮像し、二値化処理部１０２に出力する（ステップＳ１）。次に二値化処理部１０２は入力した画像を二値化し、単純二値化画像を出力する（ステップＳ２）。次に輪郭画素追跡部１０３は単純二値化画像を入力し物体の輪郭画素の情報を出力する（ステップＳ３）。ここで輪郭画素の情報とはそれぞれの画素のチェインコード、シーケンス番号、画像における所定位置を原点とした画素の座標の組を輪郭画素を構成する各画素について保持した情報である。続いて文字検出部１０は輪郭画素の情報を入力し物体が文字であるか否かを判定する（ステップＳ４）。文字であるか否かの判定方法については後に図５、図６を用いて説明する。文字検出部１０が物体は文字ではないと判定した場合、文字検出部１０はこの処理フローを終了させる。文字検出部１０が物体は文字であると認識した場合、文字先端検出部２０は輪郭画素の情報を入力し文字の先端を検出し（ステップＳ５）、文字の先端の画素情報を出力する。文字の先端の検出方法については後に図７、図８を用いて説明する。
【００２０】
次に文字補正部３０は文字の先端の画素情報を入力し、ステップＳ１で出力した画像に対して再度二値化処理を行う。その際、文字補正部３０は入力した画素情報を基に文字の先端に隣接する画素を特定し、それら先端隣接画素に対してはステップＳ２で用いた二値化の閾値よりも値を下げた閾値を用いて先端隣接画素が文字か背景かを判断する二値化処理を行う（ステップＳ６）。つまり文字補正部３０は、文字の先端に隣接する画素であってステップＳ２の二値化においては物体ではなく、背景であると認識された画素についても物体と認識されるように閾値を局所的に変えて二値化処理を行う。なお、先端隣接画素は、単純二値化画像において文字の先端を構成する画素と直に接する画素だけではなく、それらに隣接する画素であっても良い。そして文字補正部３０はこの処理を行った結果として補正後の二値化画像を出力する。この処理によって文字の先端部が画素値（画素の濃度）に応じて伸長する効果が得られる。
以上で文字の補正処理が１回行われることとなる。しかし、１度だけ局所二値化補正を行っても十分な効果が得られるとは限らない。そこで本実施形態ではステップＳ３からの処理を繰り返し行う。ここで、ステップＳ３から処理を繰り返すのは、ステップＳ６により文字の先端部が伸長した為に文字の輪郭が変わったからである。
つまり文字補正部３０はステップＳ６の局所二値化による文字の補正を所定回数繰り返したかどうか判定する（ステップＳ７）。所定回数行っていない場合、輪郭画素追跡部１０３は補正後の二値化画像を入力してステップＳ３の処理を行う。所定の回数だけ局所二値化による文字の補正を行った場合、文字補正部３０は処理フローを終了する。
【００２１】
図５は第一の実施形態による文字補正装置が文字か否かを判定する処理を示す図である。
図５を用いて上述したステップＳ４において文字検出部１０が物体を文字であるか否か判定する方法についてより詳細に説明する。
まず、物体の線幅を測定する方法について説明する。上述のとおり輪郭画素追跡部１０３は二値化画像の輪郭画素を追跡し、追跡に沿った順番で輪郭画素にシーケンス番号を割り当てる。図５では８０、８１、８２・・・がシーケンス番号である。今、ある画素のシーケンス番号をｉとし、ｉ以降の他の画素のシーケンス番号をｊとすると、画素Ｓｉと画素Ｓｊの距離に関わらず、ｊ-ｉ＝小の場合は、その画素同士は輪郭画素の順序上近く、ｊ-ｉ＝大の場合は逆に順序上遠いといえる。このとき、以下のルールを適用する。シーケンス番号の差の絶対値（以下、順序距離という）の大小を判定する閾値をＬとすると、  ＜ルール１＞
ｊ−ｉ＜Ｌの場合、画素Ｓｉと画素Ｓｊは輪郭線上の距離が近く、その画素間の距離は文字の線幅を示すものではない。よって距離Ｄｉ−ｊは測定しない。
＜ルール２＞
ｊ−ｉ＞Ｌの場合、画素Ｓｉと画素Ｓｊは輪郭線上の距離が遠く、画素間の距離は文字の線幅を示す可能性がある。よって距離Ｄｉ−ｊを測定する。
今、Ｌ＝１０とすると、ｉ＝９２、ｊ＝９９ならば９９−９２＜１０なので図５のＤ９２−９９は距離を測定しない。また、ｉ＝９２、ｊ＝１３５ならば１３５−９２＞１０なので図５のＤ１３５−９２は距離を測定する。なお、本実施形態においては輪郭画素に沿った輪郭上の距離を上述の順序距離としたが必ずしもこれに限定するものではない。
【００２２】
さらに距離を測定した場合はその距離が文字の線幅であるかどうかの判断を行う。つまり手書き文字に用いられる市販のペン等の線幅はある特定の範囲Ｋの範囲内に収まることから、文字の線幅であると考えられる最小の値をＫ１、最大の値をＫ２とすると
＜判断１＞
距離Ｄｉ−ｊ＞Ｋ２又は、距離Ｄｉ−ｊ＜Ｋ１の場合、画素Ｓｉは文字サイズを越える大きな又は小さな二値化物体の輪郭画素の一部であると判断、すなわち文字認識の対象外と判断する。
＜判断２＞
Ｋ１≦距離Ｄｉ−ｊ≦Ｋ２の場合、距離Ｄｉ−ｊは文字の線幅であって画素Ｓｉは文字の輪郭画素の一部であると判断する。
次に以上の判断基準を基に、文字検出部１０が物体を文字であるか否か判定する方法について説明する。文字検出部１０はある輪郭画素Ｓｉについてルール２の条件を満たす複数の輪郭画素Ｓｊとの距離Ｄｉ−ｊをそれぞれ求める。文字検出部１０はこれらの距離Ｄｉ−ｊのうち最小の距離Ｄｉ−ｍｉｎを抽出し、それが判断２に該当する場合、距離Ｄｉ−ｍｉｎを輪郭画素Ｓｉに対応付けてメモリ等に格納し記憶する。Ｓｉを移動させながら輪郭画像のすべてについてこの処理を行った結果、距離Ｄｉ−ｍｉｎをメモリ等に格納した輪郭画素Ｓｉが全ての輪郭画素のうち一定の割合以上存在すれば文字検出部１０は物体を文字であると判定する。
【００２３】
図６は本実施形態による文字補正装置の処理フローを示す第二の図である。
図６を用いて図５で説明した処理をフローチャートを用いて説明する。
ｉ、ｊは輪郭画素に割り当てられたシーケンス番号を示している。
まず、文字検出部１０はｉにシーケンス番号の初期値を設定する（ステップＳ１１）。次に文字検出部１０はｊにｉ＋１を設定する（ステップＳ１２）。この時点でＳｉとＳｊは隣り合う画素である。
次に文字検出部１０はｉとｊの順序距離を求め、予め定められたシーケンス番号の順序距離の大小を判定する閾値Ｌと比較する（ステップＳ１３）。順序距離がＬよりも小さい場合、文字検出部１０はｊに１を加算して（ステップＳ１４）、再度同じ判定を行う。つまり注目の対象となる画素が一つ隣の画素に移ることになる。一方、ｉとｊの順序距離がＬよりも大きい場合、文字検出部１０はＳｉとＳｊの距離Ｄｉ−ｊを計算し結果をメモリに格納する（ステップＳ１５）。そしてＳｊが最終画素であるかどうかの判定を行う（ステップＳ１６）。最終画素とは注目画素Ｓｊが物体を一周してＳｉと閾値Ｌだけ離れた画素に戻ってきたときの輪郭画素のことである。予め輪郭画素追跡部１０３が輪郭画素の情報を取得しているので最終画素を求めることが可能である。Ｓｊが最終画素でない場合、文字検出部１０はｊに１を加算して（ステップＳ１４）、ステップＳ１３からの処理を繰り返し行う。Ｓｊが最終画素である場合、Ｓｉについてメモリに記憶した各ｊに対しての距離Ｄｉ―ｊの中から最小の値Ｄｉ−ｍｉｎを求め、メモリに記憶する（ステップＳ１７）。続いて距離Ｄｉ−ｍｉｎが手書き文字の線幅の限界範囲Ｋの範囲内に収まるかどうかを判定する（ステップＳ１８）。距離Ｄｉ−ｍｉｎが限界範囲Ｋの範囲内にある場合は、画素Ｓｉは文字の輪郭画素の一部であるとして文字検出部１０は距離Ｄｉ−ｍｉｎをＳｉに対応付けてメモリやテーブルに格納する（ステップＳ１９）。
【００２４】
以上の処理がＳｉについて完了すると文字検出部１０はシーケンス番号を一つ増加しＳｉを一つ隣に進めて同様の処理を行う。文字検出部１０はＳｉが物体を一周するまでこの処理を繰り返す。つまりステップＳ１８において距離Ｄｉ−ｍｉｎが限界範囲Ｋになかった場合や、ステップＳ１９において距離Ｄｉ−ｍｉｎをメモリに格納した後、文字検出部１０はＳｉが最終画素であるかどうか判定する（ステップＳ２１）。ここでの最終画素とは処理の基準とする輪郭画素Ｓｉが物体を一周し処理フローのステップＳ１においてＳｉであった画素と隣り合う状態になったときの輪郭画素のことである。Ｓｉが最終画素ではない場合、文字検出部１０はｉに１を加算し（ステップＳ２０）、Ｓｉを一つ隣の画素に進めてステップＳ２からの処理を繰り返す。Ｓｉが最終画素の場合、文字検出部１０はメモリ等に距離Ｄｉ−ｍｉｎを格納した画素Ｓｉの総数が全輪郭画素数に対して占める割合を計算し予め定められた割合と比較する（ステップＳ２２）。なお、予め定められた割合はメモリ等に記憶されており、文字検出部１０はこの値をメモリ等から読み取ってステップＳ２２の比較を行う。距離Ｄｉ−ｍｉｎを格納した画素Ｓｉの総数が一定の割合以上存在する場合、文字検出部１０は物体が文字であると判定する（ステップＳ２３）。一方、一定の割合に満たない場合、文字検出部１０は物体が文字ではないと判定する（ステップＳ２４）。以上で文字検出部１０は本処理フローを終了する。
【００２５】
図７は第一の実施形態による文字補正装置が文字の先端を検出する処理を示す図である。
図７を用いて上述したステップＳ５において文字先端検出部２０が文字の先端を検出する方法についてより詳細に説明する。
まず、文字先端検出部２０は輪郭画素Ｓｉから所定の間隔内にある輪郭画素Ｓｊとの間で画素Ｓｉのチェインコードと比べてチェインコードが１８０度以上反転している画素Ｓｊが存在するかどうか調べ、反転している場合ＳｉとＳｊの間に文字の先端が存在すると推定する。所定の間隔内にあるとは画素ＳｉとＳｊの順序距離が閾値Ｍ以下であるということである。
さらに検出の精度を高めるためにＳｉが他の画素との間で線幅を有するかどうかを調べる。例えば文字の角では特定の画素同士ではチェインコードが１８０度を超えて反転する場合がある。チェインコードの変化による判定だけでは文字のかすれによって形成された文字の先端なのか、その文字の有する形状によって形成されている端点なのかの区別ができない。そこで画素Ｓｉが図５において説明した文字の線幅であると認識する距離Ｄｉ−ｍｉｎを有する場合には画素Ｓｉは文字らしい幅を持つ線分を形成する画素の一部であると考え、画素ＳｉとＳｊの間にある輪郭画素は文字の先端ではないと判断する。
図７の例の場合、Ｓ１３３のチェインコードが図３（ｃ）における「５」でＳ１３７のチェインコードが「１」であり両画素間でチェインコードが１８０度反転する。さらにＳ１３３とＳ１３７の順序距離がｊ−ｉ＜Ｍを満たすと仮定する。しかし、そのようなときでも距離Ｄ１３３−９２が図５の説明の判断２に該当する場合、つまり画素Ｓ１３３について距離Ｄ１３３−ｍｉｎがメモリ等に記憶されている場合、Ｓ１３３とＳ１３７の間に存在する輪郭画素は文字の先端ではないと判断することになる。
【００２６】
図８は本実施形態による文字補正装置の処理フローを示す第三の図である。
図８を用いて図７で説明した処理をフローチャートを用いて説明する。
この処理フローは文字検出部１０がその物体は文字であると判定した場合に実行するものである。また、ｉ、ｊは輪郭画素に割り当てられたシーケンス番号を示している。
まず、文字先端検出部２０はｉにシーケンス番号の初期値を設定する（ステップＳ３１）。次に文字先端検出部２０はｊにｉ＋１を設定する（ステップＳ３２）。次に文字先端検出部２０はｉとｊの順序距離を求め、予め定められた閾値Ｍと比較する（ステップＳ３３）。閾値Ｍは画素Ｓｉとシーケンス番号の順序距離があまり離れていない画素Ｓｊとの間に文字の先端が存在するかどうかを調べるときにその調査範囲を規定する値である。従ってｉとｊの順序距離がＭよりも大きい場合、文字先端検出部２０はそのＳｉについてはそれ以上処理しない。順序距離がＭよりも小さい場合、文字先端検出部２０はＳｉのチェインコードとＳｊのチェインコードが１８０度以上反転しているかどうか判定する（ステップＳ３５）。チェインコードや各チェインコード間の角度を認識するのに必要な情報はテーブル等に記憶されており、それを読み込むことで２つのチェインコードのなす角度を判定することが可能である。チェインコードの向きに１８０度以上の変化がない場合、文字先端検出部２０はｊに１を加算して（ステップＳ３４）、ステップＳ３３からの処理を繰り返す。チェインコードの向きに１８０度以上の変化がある場合、文字先端検出部２０は画素Ｓｉに対応付けられた距離Ｄｉ−ｍｉｎがメモリやテーブルに記憶されているかどうかを判定する（ステップＳ３６）。画素Ｓｉについて距離Ｄｉ−ｍｉｎがメモリ等に記憶されている場合、文字先端検出部２０はｊに１を加算して（ステップＳ３４）、ステップＳ１３からの処理を繰り返す。画素Ｓｉについて距離Ｄｉ−ｍｉｎがメモリ等に記憶されていない場合、文字先端検出部２０は画素ＳｉからＳｊの間に文字の先端が存在すると判定し、ＳｉからＳｊの間の画素情報（座標）を出力する（ステップＳ３７）。ここで出力した画素情報に基づいて上述したステップＳ６において文字補正部３０は文字の先端のみを二値化する処理を行う。
【００２７】
以上の処理がＳｉについて完了すると文字先端検出部２０はＳｉを一つ隣に進め同様の処理を行う。文字先端検出部２０はＳｉが物体を一周するまでこの処理を繰り返す。つまりステップＳ３３においてｉとｊの順序距離がＭよりも大きい場合や、ステップＳ３７において文字の先端の画素情報を出力した後、文字先端検出部２０はＳｉが最終画素であるかどうか判定する（ステップＳ３８）。ここでの最終画素とは処理の基準とする輪郭画素Ｓｉが物体を一周し処理フローのステップＳ３１において画素Ｓｉであった画素と隣り合う状態になったときの輪郭画素のことである。Ｓｉが最終画素でない場合、文字先端検出部２０はｉに１を加算して（ステップＳ３９）、ステップＳ３２からの処理を繰り返す。一方、Ｓｉが最終画素である場合、文字先端検出部２０はこの処理フローを終了させる。
【００２８】
図９は第一の実施形態による文字補正装置の処理結果の一例を示す図である。
図９（ａ）は、カメラ１０１で撮像した画像を示す図である。この図において図９（ｂ）は、図９（ａ）に示す画像を二値化処理部１０２で処理した結果の単純二値画像を示す図である。図９（ｃ）は、図９（ｂ）に示す画像に対して文字補正部３０で処理した結果の画像を示す図である。図９（ｂ）が示す画像からは「Ｖｒｅｃｌｅ」ようにも読み取れるが、図９（ｃ）が示す画像からは「Ｖｒｅｄｅ」と認識することができる。図９（ａ）〜（ｃ）が示す通り、本発明の文字補正装置１は手書き文字のかすれ箇所を筆跡に従って修復することができる。本発明による画像データの補正は、ＯＣＲによる識字率の向上に有効である。
この例の場合、特許文献１の方法によると、図９（ｅ）の円で示した領域は文字の先端であると認識されても、図９（ｄ）の円で示した領域は文字の先端とは認識されなない可能性がある。その場合、図９（ｄ）の円で示した領域と図９（ｅ）の円で示した領域とを結んでかすれ文字を補正するという効果は得られない。従って特許文献１の方法で補正を行った文字を文字認識装置で読み込んでも「Ｖｒｅｃｌｅ」と認識する可能性がある。しかし、本発明によれば、この例が示すように図９（ｅ）の円で示した領域を文字の先端であると認識し、その先端に隣接する画素についてそれらの画素の濃度が閾値以上となるように閾値のレベルを下げて局所的な二値化処理を行い、その結果得られた単純二値化画像について文字の先端を認識し直す。そして新たに認識された先端の隣接画素についても再度局所二値化処理を行うというプロセスを繰り返すことによって図９（ｅ）の円で示したかすれによる文字の先端が図９（ｄ）の円で示した文字の線分に接するまで伸長することになる。これにより本発明により補正した文字を読み込んだ場合は「Ｖｒｅｄｅ」と認識することができる。
このように本発明によると従来では補正できなかった文字のかすれも修復できるという効果が得られる。
【００２９】
なお、上述の文字補正装置１は内部にコンピュータを有している。そして、上述した文字補正装置１の各処理の過程は、プログラムの形式でコンピュータ読み取り可能な記録媒体に記憶されており、このプログラムをコンピュータが読み出して実行することによって、上記処理が行われる。ここでコンピュータ読み取り可能な記録媒体とは、磁気ディスク、光磁気ディスク、ＣＤ−ＲＯＭ、ＤＶＤ−ＲＯＭ、半導体メモリ等をいう。また、このコンピュータプログラムを通信回線によってコンピュータに配信し、この配信を受けたコンピュータが当該プログラムを実行するようにしてもよい。
【００３０】
また、上記プログラムは、前述した機能の一部を実現するためのものであってもよい。さらに、前述した機能をコンピュータシステムにすでに記録されているプログラムとの組み合わせで実現できるもの、いわゆる差分ファイル（差分プログラム）であってもよい。
【符号の説明】
【００３１】
１・・・文字補正装置
１０・・・文字検出部
１０１・・・カメラ
１０２・・・二値化処理部
１０３・・・輪郭画素追跡部
２０・・・文字先端検出部
３０・・・文字補正部
【図１】
2015049784.tif 000003
【図２】
2015049784.tif 000004
【図３】
2015049784.tif 000005
【図４】
2015049784.tif 000006
【図５】
2015049784.tif 000007
【図６】
2015049784.tif 000008
【図７】
2015049784.tif 000009
【図８】
2015049784.tif 000010
【図９】
2015049784.tif 000011