(57)【要約】【課題】文字と罫線が一部で接触あるいは重なった二値画像や濃淡画像から罫線を確実・容易に除去できる罫線除去方法を提供する。【解決手段】文字と罫線を含む入力画像上に罫線と交差する方向にしきい値を分布させ、このしきい値を用いて前記入力画像をしきい値処理することにより前記入力画像から罫線を除去する方法において、前記しきい値を罫線の部分で凸型をなす形状に分布させる。【選択図】  図１８
2006059384.tif 000002
【特許請求の範囲】
【請求項１】
文字と罫線を含む入力画像上に罫線と交差する方向にしきい値を分布させ、このしきい値を用いて前記入力画像をしきい値処理することにより前記入力画像から罫線を除去する方法において、前記しきい値を罫線の部分で凸型をなす形状に分布させたことを特徴とする罫線除去方法。
【請求項２】
文字と罫線を含む入力画像上に罫線と交差する方向にしきい値を分布させ、このしきい値を用いて前記入力画像をしきい値処理することにより前記入力画像から罫線を除去する方法において、前記しきい値を罫線の部分で凸型をなし、かつ罫線の端部付近で傾斜した形状に分布させたことを特徴とする罫線除去方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、例えば文字と罫線を含む帳票などをスキャナで読み取って電子化した入力画像から罫線を除去する方法に係り、特に文字と非ドロップアウトカラーの罫線が重なっている領域においても罫線を確実に除去して文字のみを抽出できる罫線除去方法に関する。
【背景技術】
【０００２】
各種伝票類などの帳票を読み取る光学的文字読み取り装置（以下、ＯＣＲという）は、従来では帳票上にドロップアウトカラーで印刷された記入枠に書かれた文字を読み取るものがほとんどであった。これに対し、近年では様々な帳票が簡易に作成されるようになり、記入枠が非ドロップアウトカラーで印刷された帳票も出現しているため、非ドロップアウトカラーの記入枠に書かれた文字を読み取るニーズが高まってきている。
【０００３】
記入枠が非ドロップアウトカラーで印刷された帳票を読み取るためのＯＣＲでは、文字と罫線が重なっている場合にその画像から記入枠を構成する罫線を除去し、文字のみを抽出して認識する必要がある。このような帳票から罫線を除去する技術は、例えば特公平６−９７４７１（以下、特許文献１という）に開示されている。この特許文献１の方式では、図１に示すような記入枠と文字が重なっている入力画像について、記入枠の内側の輪郭線に沿って強制的に切断することによって記入枠を除去した図２（ａ）に示す画像と、切断開始点と終点から外側の輪郭線にまっすぐ伸ばした線によって切断することによって記入枠を除去した図２（ｂ）に示す画像を作成し、この画像から文字を認識している。
【０００４】
しかし、特許文献１の方式では図３（ａ）に示すように記入枠が一辺において文字部と３つ以上の個所で接触している場合には、図３（ｂ）に示すように記入枠の罫線を除去しきれず、罫線が付加されたまま文字を抽出してしまうという問題があった。
【０００５】
また、この方式では図４に示すように文字が記入枠の多数の辺と接触している場合には、図５に示すように枠線を除去した画像として何通りもの画像が作成され、これが文字認識対象の候補画像となる。しかし、文字認識は一般に演算量が多くいわゆる重い処理であるため、このように候補画像が多くなると演算時間がかかり過ぎるという問題がある。
【０００６】
さらに、文字認識において図３（ｂ）の場合では「２」と認識しなければならないところを文字に付加されたままの罫線の存在のために「８」と誤読してしまったり、また図５に示したように多数の候補画像を認識することになると、誤読の可能性が高くなるという問題があった。
【０００７】
一方、濃淡画像から罫線を除去する方法としては、例えば電子通信学会論文誌’８０／４ Ｖｏｌ．Ｊ６３−Ｄ，Ｎｏ．４，ｐｐ．３４９−３５６「自動しきい値選定法」（以下、非特許文献１という）に記載されているように、文字と罫線の濃度差を利用して、所定のしきい値により二値化することで両者を分離し、罫線の濃度を持つ画素のみを除去する方法が提案されている。しかし、この特許文献１の方法は文字が濃く、罫線が薄い画像、つまり文字と罫線の濃度差が大きい濃淡画像の場合は、二値化しきい値から文字と罫線を分離することができるが、文字と罫線の濃度差が十分にない場合には分離が難しい。
【特許文献１】特公平６−９７４７１
【非特許文献１】電子通信学会論文誌’８０／４ Ｖｏｌ．Ｊ６３−Ｄ，Ｎｏ．４，ｐｐ．３４９−３５６「自動しきい値選定法」
【発明の開示】
【発明が解決しようとする課題】
【０００８】
上述したように従来の二値画像に適用される罫線除去方法では、罫線が文字部と多数の個所で接触している二値画像については、罫線の除去を確実に行うことができず、罫線部分が残ったまま文字を抽出してしまったり、また何通りもの罫線除去画像が認識対象の候補画像として生成されるために演算時間がかかり過ぎるという問題があり、さらに罫線をつけたままの文字や何通りもの候補画像を認識するために誤読の可能性が高くなるという問題もあった。
【０００９】
また、濃淡画像に適用される罫線除去技術として、文字と罫線の濃度差を利用してしきい値により二値化することにより両者を分離し、罫線の濃度を持つ画素のみを除去する方法では、文字と罫線の濃度差が大きくない場合には罫線を確実に除去することは難しいという問題があった。
【００１０】
本発明は、文字と罫線が一部で接触あるいは重なった二値画像や濃淡画像から罫線を確実・容易に除去できる罫線除去方法を提供することを目的とする。
【課題を解決するための手段】
【００１１】
上記の課題を解決するため、本発明に係る罫線除去方法は、文字と罫線を含む入力画像上に罫線と交差する方向にしきい値を分布させ、このしきい値を用いて入力画像をしきい値処理することにより入力画像から罫線を除去する方法において、しきい値を罫線の部分で凸型をなす形状に分布させたことを特徴とする。さらに、罫線の部分で凸型をなすしきい値を罫線の端部付近で傾斜した形状に分布させたことを特徴とする。
【００１２】
この罫線除去方法においては、文字と罫線を分離するためのしきい値の分布を罫線の部分で凸型とすることにより、文字と罫線の濃度差が比較的小さい場合でも、しきい値処理により罫線が確実に文字と分離されて除去される。さらに、しきい値の分布を罫線の端部付近で傾斜した形状とすれば、その傾斜を罫線方向の入力画像の濃度分布に合わせて決定することにより、罫線の端部の輪郭線付近で文字部分を消滅させることなく罫線を除去することができる。
【発明の効果】
【００１３】
本発明によれば、非ドロップアウトカラーの文字と罫線が重なっている場合でも、高精度に罫線を除去し、文字のみを正しく抽出することができる。
【００１４】
すなわち、文字と罫線を分離するためのしきい値の分布を罫線の部分で凸型とすることにより、文字と罫線の濃度差が比較的小さい場合でも、しきい値処理により罫線を確実に文字と分離して除去でき、さらにしきい値の分布を罫線の端部付近で傾斜した形状とすれば、その傾斜を罫線と垂直方向の入力画像の濃度分布に合わせて決定することにより、罫線の端部の輪郭線付近で文字部分を消滅させることなく、罫線を除去することができる。
【発明を実施するための最良の形態】
【００１５】
以下、本発明の実施形態を図面を参照して説明する。  
図６は、本発明の罫線除去方法を適用した光学的文字読み取り装置（ＯＣＲ）の機能的構成を示すブロック図である。このＯＣＲは画像入力部１１、罫線位置特定部１２、部分画像指定部１３、罫線種類判別部１４、罫線除去方式選択部１５、罫線除去部１６、文字抽出部１７、文字認識部１８および結果出力部１９からなり、画像入力部１１の一部と、罫線位置特定部１２、部分画像指定部１３、罫線種類判別部１４、罫線除去方式選択部１５、罫線除去部１６、文字抽出部１７および文字認識部１８の部分は、ソフトウェア処理により実現してもよいし、ハードウェアにより実現してもよい。
【００１６】
画像入力部１１は例えばスキャナであり、読み取り対象の帳票上の画像を入力する。罫線位置特定部１２は、画像入力部１１からの入力画像について罫線と思われる位置（罫線位置）を特定する。部分画像指定部１３は、特定された罫線位置から除去すべき罫線を含む部分画像の位置を指定する。罫線種類判別部１４は、画像入力部１１からの入力画像のうち部分画像指定部１３により指定された部分画像に存在する罫線の種類を判別する。
【００１７】
罫線除去方式選択部１５は、複数種類用意された罫線除去方式の中から入力画像の種類に合った最適な方式を選択する。罫線除去部１６は、複数種類の罫線除去方式による罫線除去処理機能を有し、画像入力部１１からの入力画像について罫線除去方式選択部１５により選択された方式で罫線除去処理を行う。
【００１８】
文字抽出部１７は、罫線除去部１６によって罫線が除去された後の入力画像から文字部分を抽出する。文字認識部１８は、文字抽出部１７で抽出された文字について認識処理を行う。結果出力部１９は、この文字認識結果を例えばディスプレイあるいはハードコピーにより出力する。
【００１９】
次に、本実施形態における罫線除去処理を含む文字認識の処理手順を図７に示すフローチャートを参照して説明する。  
まず、画像入力部１１によって例えば帳票を読み取ることにより画像を入力する（ステップＳ１）。図８は入力画像１０１の一例であり、この入力画像１０１にはカラー画像、二値画像および濃淡画像などの種類がある。次に、罫線位置特定部１２によって入力画像中の罫線位置を特定する（ステップＳ２）。罫線位置の特定には、罫線幅を特定する処理も含まれるものとする。この罫線位置特定処理では、帳票固有の罫線情報がある場合にはその情報を用いて罫線位置の特定を行い、それ以外の場合、例えば入力画像がカラー画像の場合であって帳票特有の罫線情報がない場合には、画像上に存在する各色の分布状況を調べることによって罫線位置を特定する。また、入力画像が二値画像の場合には黒画素の分布状況を調べ、さらに濃淡画像の場合には微分マスクを用い、Ｈｏｕｇｈ変換や射影によって罫線位置を特定する。
【００２０】
次に、部分画像指定部１３によって、本発明の罫線除去方法により除去すべき罫線の罫線位置を含む部分画像１０２の位置を指定する（ステップＳ３）。具体的には、図８中に示す入力画像１０１について、文字を囲む文字枠を構成する線上をある幅（Ｇ画素分）にわたり走査し、文字部分と接触あるいは重なっている部分を部分画像１０２として指定する。
【００２１】
次に、部分画像指定部１３で指定された部分画像１０２内に存在する罫線の種類を罫線種類判別部１４によって判別する（ステップＳ４）。罫線の種類としては、大別して実線と点線（破線も含む）がある。罫線種類の判別には、帳票固有の罫線情報から罫線の種類が得られる場合はそれを用い、それがない場合には罫線上を罫線方向に沿って走査し、例えばカラー画像では背景色から罫線色に変わる回数、濃淡画像では濃度が急激に変化する回数、二値画像では白画素から黒画素に変わる回数をそれぞれ数え、この回数があるしきい値を越えた場合を点線、そうでない場合を実線とそれぞれ判別する。また、部分画像１０２にラベリングを施し、そのラベル数があるしきい値を越えた場合を点線、そうでない場合を実線とそれぞれ判別するようにしてもよい。
【００２２】
次に、罫線除去方式選択部１５によって複数用意された罫線除去方式を適宜組み合わせて、入力画像１０１に最も適合したものを選択する（ステップＳ５）。そして、選択された罫線除去方式に基づいて罫線除去部１６で文字と接触している罫線を除去する（ステップＳ６）。この結果、図９（ａ）に示すような接触罫線除去画像１０３が得られる。
【００２３】
次に、文字抽出部１６において接触罫線除去画像１０３にラベリング等の処理を施して文字の抽出を行い（ステップＳ７）、図９（ｂ）に示すように罫線以外のラベルを抽出文字１０４として出力する。最後に、文字認識部１７において抽出文字１０４の認識を行い（ステップＳ８）、図９（ｃ）に示すような認識結果１０５を結果出力部１８によって出力する（ステップＳ９）。
【００２４】
なお、文字認識部１７の認識方式は公知のもので構わない。また、この例では文字と罫線が接触している部分のみ部分画像を指定して罫線を除去したが、全ての罫線に除去処理を施し、罫線を全て除去して文字のみを抽出することも可能である。文字と接触している罫線以外の罫線の除去には、公知の技術を用いることができる。
【００２５】
次に、図６における罫線除去方式選択部１５および罫線除去部１６の実現例を図１０および図１１により説明する。
【００２６】
図１０の例は、ｎ種類の罫線除去方式による罫線除去部２１−１〜２１−ｎと出力結果選択部２２を有し、罫線除去部２１−１〜２１−ｎでそれぞれ罫線除去処理を行って、その罫線除去結果と共に確信度１０６を出力し、出力結果選択部２２に入力する。この確信度１０６は、各方式において罫線除去処理がどの程度うまくいったかを示す指標であり、例えば濃淡画像における罫線除去方式では分離度がこれに当る。出力結果選択部２２では、確信度１０６の値から最も適当な罫線除去方式を選択する。なお、これらｎ種類の罫線除去方式による罫線除去処理を全て実行する必要はなく、ある順序で各方式の罫線除去処理を逐次行い、先に処理の終わった方式によりより出力された確信度１０６がある決められた条件を満たした場合にはその罫線除去方式を選択し、それ以降の方式での罫線除去処理は行わなくともよい。
【００２７】
図１１の例は、ｎ種類の罫線除去方式による罫線除去部３１−１〜３１−ｎと出力結果選択部３２を有し、罫線除去部３１−１〜３１−ｎで例えば精度の高いものから順に罫線除去処理を実行し、その罫線除去結果と共に確信度１０６を出力し、出力結果選択部３２に入力する。そして、確信度１０６がある条件を満たした時点で処理を終了し、その条件を満たさなかった場合には、次の方式による罫線除去処理を実行し、同様に処理を続けていく。全ての方式の罫線除去部３１−１〜３１−ｎで条件を満たさなかった場合は、例えば最も精度の高い方式による罫線除去処理結果を出力結果選択部３２で選択する。
【００２８】
なお、図６の罫線除去方式選択部１５において、予め設定された帳票フォーマットに関する情報や、帳票に対してレイアウト解析や線図形認識等の処理を施して得られるフォーマットに関する情報等により罫線除去方式を選択する方法を用いてもよい。
【００２９】
個々の罫線除去方式の詳細については後述するが、例えば入力画像１０１が二値画像の場合は、後述する二値画像における罫線除去方式[I],[II]のいずれかを用い、また入力画像１０１が二値画像であって罫線が細い場合は、二値画像における罫線除去方式[I],[II]による罫線除去処理結果に顕著な差がないため、より簡単で高速な方の罫線除去方式[I] を選択する。また、入力画像１０１が濃淡画像の場合には、濃淡画像における罫線除去方式を用いる。
【００３０】
以下に、これらの各罫線除去方式について詳細に説明する。
【００３１】
（１）二値画像における罫線除去方式[I]   
図１２を用いて、罫線除去方式[I] について順を追って説明する。この罫線除去方式[I] は、入力画像中の罫線の存在する範囲を特定し、その特定した罫線存在範囲内の罫線に対して垂直の方向に存在する連続した有意画素領域のうち罫線の幅に相当する所定の幅の有意画素領域のみを罫線と見なして除去する方式である。
【００３２】
［ステップ１］：罫線位置の特定  
この罫線除去方式[I] では、入力画像１０１として例えば図１２（ａ）に示すような文字と罫線が一部で重なった二値画像が入力されたとき、まず罫線位置特定部１２において図１２（ｂ）に示すように罫線方向（図では上下方向）の射影をとることにより、罫線の存在すると思われる幅Ｖ（＝罫線推定幅、図の例ではＶ＝２）の帯状の領域を罫線位置として特定する。ここで、予め罫線位置特定部１２において罫線位置の情報が得られている場合には、それを特定された罫線位置として用いることができる。そして、このように罫線位置が特定された罫線の左右の端を両側にＷ画素分（図の例ではＷ＝１）広げ、これを罫線の存在範囲として特定する。
【００３３】
［ステップ２］：罫線除去  
次に、ステップ１により特定された罫線の存在範囲内を罫線推定幅Ｖの罫線除去マスク１０７によって走査しながら、この罫線推定幅Ｖ内に罫線に垂直の方向に存在する連続した有意画素である黒画素を１ライン毎に除去していく。なお、罫線除去マスク１０７の幅は罫線推定幅Ｖ＋αとしても構わない。この処理の結果、図１２（ｃ）に示すように、罫線が除去された文字画像が得られる。
【００３４】
但し、この方式では文字と罫線が重なった領域付近に出っぱり１０８や途切れ１０９が見られることがある。途切れ１０９については、罫線を除去したラインがＰライン以内しか連続していない場合には除去せずに元に戻すという方法で発生させなくすることが出来る。
【００３５】
（２）二値画像における罫線除去方式[II]  
図１２〜図１７を用いて、罫線除去方式[II]について順を追って説明する。先に説明した罫線除去方式[I] では、前述したように罫線除去後に得られる文字画像において、図１２（ｃ）に示されるように文字と罫線が重なった領域付近に出っぱり１０８や途切れ１０９が見られることがあり、これらは輪郭を用いた文字認識手法を採用した際に悪影響を及ぼすことがある。
【００３６】
これに対し、ここで説明する罫線除去方式[II]によると、入力画像中の罫線の存在する範囲を特定すると共に、その特定した罫線存在範囲から外側に延びている文字部分の輪郭線の方向に沿って入力画像中の罫線を切断または仮想的に切断した後、罫線存在範囲内の罫線に対して垂直の方向に存在する連続した有意画素領域のうち罫線の幅に相当する所定の幅の有意画素領域のみを罫線と見なして除去することにより、罫線除去結果として出っぱり１０８や途切れ１０９のない良好な文字画像を得ることができる。さらに詳しくは、入力画像中の罫線の一部を含む一部分について輪郭線を求め、入力画像中の特定した罫線存在範囲の外側に存在する有意画素領域の輪郭から輪郭線の方向を推定する。
【００３７】
［ステップ１］：切断点の決定  
この罫線除去方式[II]では、図１２（ａ）に示した入力画像に対してまず輪郭線を求めた後、図１３（ａ）に示すように罫線の存在範囲内にある輪郭線の凹部に切断点１１０を決定する。切断点１１０とは、罫線を切断する際の始点または終点を表す点であり、その決定法については後に詳しく説明する。この際、二値化誤差や掠れのために罫線に凹凸が生じている場合もあるので、罫線の存在範囲内の白画素を全て黒画素に置き換えることによって、罫線推定幅を罫線の存在範囲の幅とし、罫線除去後にそれらの置き換えられた黒画素を元の白画素に戻してもよい。
【００３８】
［ステップ２］：罫線の切断  
次に、図１３（ａ）において罫線の左側と右側にある切断点１１０について、それらの切断点１１０間の距離や、切断点１１０の文字輪郭方向１１２を基に最適な左右の対を求め、それらの対の間を結んだ線（以下、連結線と呼ぶ）上の黒画素を一旦白画素に置き換えることによって、罫線を切断する。
【００３９】
［ステップ３］：罫線除去  
次に、前述した罫線除去方式[I] の場合と同様に、罫線除去マスク１０７によって罫線推定幅Ｖ内の黒画素を１ライン毎に除去する。この際、罫線と重なっている文字の上側輪郭に相当する輪郭線と下側輪郭に相当する連結線とに挟まれた黒画素１１１は除去しない。その後、白画素に置き換えた画素を部分を元の黒画素に戻すことによって、図１３（ｂ）に示すように文字画像を抽出することができる。図１３（ｂ）と前述した罫線除去方式[I] による罫線除去結果を示した図１２（ｃ）を比較して分かるように、罫線除去方式[II]の方が出っぱり１０８や途切れ１０９が発生しにくく、なめらかな輪郭線が得られている。
【００４０】
以上が罫線除去方式[II]における罫線除去の概略的な手順である。  
次に、図１４および図１５を用いて、この罫線除去方式[II]方式における切断点１１０の決定法について説明する。
【００４１】
まず、図１４（ａ）に示すように罫線の左右端から両側にＳ画素目（この例ではＳ＝３）の位置で罫線に沿って入力画像パターンを切断する。すなわち、罫線の左右端から両側にＳ画素目の位置を罫線に沿って接続した切断線上の画素を一旦白画素に置き換える。次に、この切断後の入力画像パターンについて輪郭を追跡する。ここで、図１４（ａ）のようにＳ＝３程度で切断すると内輪郭が出にくく、一つの外輪郭のみで以下の処理をすることができ、処理時間を短縮することが可能である。但し、この方法では切断点１１０における文字輪郭方向１１２（後述）が求まりにくくなるため、図１４（ｂ）に示すように例えばＳ＝５で切断した場合の輪郭から文字輪郭方向１１２を求め、Ｓ＝３の場合の切断点１１０と対応をとって代入を行い、最終的な文字輪郭方向１１２を求める方法を用いてもよい。
【００４２】
輪郭を追跡する際に、輪郭上の各点（以下、輪郭点と呼ぶ）のｘｙ座標、輪郭点の方向（図１５（ａ）参照）、各輪郭点と一つ前の輪郭点の方向との差分（以下、方向差分と呼ぶ）および近似角度を輪郭点の情報として蓄えておく。ここでいう近似角度とは、正確に言うと周辺とのなす角の余弦の２乗に対して２乗する前の符号を付加したものであるが、余弦を２乗せずにその大きさを用いたり、また余弦に代えて正弦等を用いても構わない。
【００４３】
例えば、ｉ番目の輪郭点のｘｙ座標を（ｘi ，ｙi ）、その前後Ｋ点目の輪郭点のｘｙ座標をそれぞれ（ｘi-k ，ｙi-K ）、（ｘi+k ，ｙi+K ）とすると、ｉ番目の輪郭点の近似角度は以下の式により求められる。
【００４４】
近似角度＝ｓ＊ｃｏｓ2 θ ＝ｓ＊（ｍ・ｎ）2 ／（｜ｍ｜2 ＊｜ｎ｜2 ） （１）
但し、ｍ＝（ｘi-k −ｘi ，ｙi-K −ｙi ）
ｎ＝（ｘi+k −ｘi ，ｙi+K −ｙi ）
θはベクトルｍとベクトルｎとのなす角、ｓはｍ・ｎが正のときｓ＝１，負のときｓ＝−１。
【００４５】
次に、このようにして求められた輪郭点の情報から方向差分が負のもの（すなわち凹部）を抽出し、その輪郭点の前後Ｍ点の中で最も大きな近似角度を持つ輪郭点を切断点１１０とする。この例では、図１５（ｂ）に示されるようにＭ＝４とする。
【００４６】
但し、この方法のみではなだらかな凹部における切断点１１０については抽出できないこともあるので、その場合には以下に述べる切断点１１０の性質を利用して切断点１１０を決定する。図１５（ｃ）は、切断点１１０が存在すべき領域の近傍における輪郭線の動きの例を矢印で表した図であり、切断点１１０付近では輪郭線は必ず罫線から左右方向にＷ＋１画素以上離れた後、再び罫線の方に戻ってくることが分かる。輪郭線が罫線からＷ画素しか離れない場合には罫線部の二値化誤差の可能性もあるので、切断点１１０は存在しないものとする。なお、図１５（ｃ）ではＷ＝１としている。
【００４７】
そこで、輪郭追跡の際に罫線からＷ＋１＝２画素以上離れた時にスイッチをオンにし、再び罫線に戻ってきた時にスイッチをオフにすると、そのオン・オフの間に２つの切断点１１０があると判断できる。また、図１５（ｃ）の方法でも切断点１１０が求められなかった場合には、罫線から離れた直後の画素および罫線に戻る寸前の画素を切断点１１０とする。切断点１１０が既に求められている場合でも、オン・オフの間に２つの切断点１１０があるかどうかを確認し、切断点１１０の数を調整することが望ましい。また、切断点１１０は図１５（ｃ）で説明したような輪郭線が罫線から離れた後に再び罫線に戻るという性質から、罫線の両側それぞれ偶数個ずつ存在することが分かる。例えば、図１４（ｂ）の例では罫線の左側に６つ（Ｌ１〜Ｌ６）、罫線の右側に６つ（Ｒ１〜Ｒ６）の切断点１１０が求められることになる。
【００４８】
次に、このようにして決定された切断点１１０における文字輪郭方向１１２を求める。文字輪郭方向１１２とは、図１４（ｂ）に示されるように切断点１１０から文字側に向かって延びている輪郭線の方向を意味する。そして、切断点１１０から文字方向に向かって輪郭線上を最大Ｎ点分たどって、切断線と接する点もしくは輪郭点の方向差分がある値以上になる直前の点（ｘj ，ｙj ）を求め、これらから得られる直線の方程式を  
ａｘ＋ｂｙ＋ｃ＝０ （２）  
但し、ｘi ≦ｙj  
ａ＝ｙi −ｙj ，ｂ＝ｘj −ｘi ，ｃ＝ｘi ｙj −ｘj ｙi ，ｔ＝−ａ／ｂとした時の係数ａ，ｂ，ｃおよび傾きｔを切断点１１０の情報として蓄える。
【００４９】
次に、図１６および図１７を用いて罫線除去方式[II]における切断点１１０の対を求める方法について説明する。切断点１１０の対同士を結んだ線分は、罫線と重なった文字部分の輪郭線に当たる。例えば図１６（ａ）の左側の切断点Ｌ１は文字の上側の輪郭線上に当たるため、これと対になり得る右側の切断点１１０はＲ１，Ｒ３，Ｒ５である。このように対となり得る複数の切断点の組み合わせから最適な対を求めるために、切断点１１０のｘｙ座標と、切断点１１０を決定する処理で求めた係数ａ，ｂ，ｃを用いる。最も簡単な方法は、対となるべき切断点１１０同士の２点間の距離を求めることであるが、これのみでは局所的に集中した切断点１１０の対を求める場合に、その組み合せを誤るおそれがある。
【００５０】
そこで、切断点１１０から文字側に向かって延びている輪郭線の方向も考慮した評価値を用いて、最適な対を求めることにする。ここでは、図１６（ｂ）に示すように切断点Ｌ１とＲ１の対を例として、評価値ｆ（Ｌ１，Ｒ１）を求めてみる。まず、Ｌ１のｘｙ座標を（ｘL1，ｙL1）、文字輪郭方向１１２の情報をａL1，ｂL1，ｃL1とし、同様にＲ１についてもｘｙ座標を（ｘR1，ｙR1），文字輪郭方向１１２の情報をａR1，ｂR1，ｃR1とする。ここで、評価値ｆ（Ｌ１，Ｒ１）は以下の式で求められる。
【００５１】
ｆ（Ｌ１，Ｒ１）＝ｈ１2 ＋ｔ＊（ｈ２2 ＋ｈ３2 ） （３）  
但し、  
ｈ１2 ＝（ｘL1−ｘR1）2 ＋（ｙL1−ｙR1）2 
ｈ２2 ＝（ａL1＊ｘR1＋ｂL1＊ｙR1＋ｃL1）2 ／（ａ2 L1＋ｂ2 L1）  
ｈ３2 ＝（ａR1＊ｘL1＋ｂR1＊ｙL1＋ｃR1）2 ／（ａ2 R1＋ｂ2 R1）  
ｔは定数
（３）式におけるｈ１は切断点１１０間の距離、ｈ２およびｈ３は一方の切断点１１０における文字輪郭方向１１２のなす直線と他方の切断点１１０との距離を表し、この評価値が最小となる組合せを最適な切断点１１０の対とする。ただし、ここでいう評価値は一例であり、ｈ１〜ｈ３を単独で用いたり、適当に組み合わせたりしても構わない。これにより、図１６（ａ）の例では（Ｌ１，Ｒ１）（Ｌ２，Ｒ２）（Ｌ３，Ｒ３）（Ｌ４，Ｒ４）（Ｌ５，Ｒ５）（Ｌ６，Ｒ６）という切断点１１０の対が求められる。
【００５２】
また、図１６（ｃ）では上側の切断点１１０が４つ（Ｕ１〜Ｕ４）、下側の切断点１１０が２つ（Ｄ１，Ｄ２）あるが、この場合に上記の方法で求められる切断点１１０の対は（Ｕ１，Ｄ１）（Ｕ４，Ｄ２）のみで、Ｕ２やＵ３のように対が得られずに他の切断点１１０の対に内包されてしまう切断点１１０も存在し得る。これらの代表的な以下に例を示す。
【００５３】
まず、図１７（ａ）のように同じ側にあって近接している、文字の上側輪郭線上にある切断点１１０と下側輪郭線上にある切断点１１０（前述した輪郭追跡の際のオン・オフの間にある２つの切断点のこと。以下、これらを上下の対応点と呼ぶ）とが共に対を得られず、かつ片側に１組しかないか、２組以上あってもそれらがあるしきい値以上離れている場合には、この上下の対応点（Ｌ１，Ｌ２）（Ｒ１，Ｒ２）を対とする。
【００５４】
次に、図１７（ｂ）のように対が得られなかった上下の対応点が同じ側に２組以上存在する場合、その２組の対応点のうち近い切断点１１０同士の距離を求め（図中のｔｈ１）、これがあるしきい値よりも小さく、かつ各切断点１１０の文字輪郭方向１１２を示す直線が罫線側で交わる場合には、外側２つの切断点１１０の文字輪郭方向１１２を罫線側に延長して、罫線の他方の端とぶつかった点を仮の切断点１１０として対とする。図１７（ｂ）の例では、（Ｌ１，ｒ１）（Ｌ４，ｒ２）が対となり、Ｌ２とＬ３はそれらの対に内包される。
【００５５】
また、図１６（ｂ）のように対が得られなかった上下の対応点の距離（図中ではｔｈ２）があるしきい値より大きく、かつ各切断点１１０における文字輪郭方向１１２を示す直線が罫線側で交わる場合には、それぞれの文字輪郭方向１１２を罫線側に延長して交わった点を仮の切断点１１０として対とする。図１６（ｂ）の例では、（Ｌ１，ｒ１）（Ｌ２，ｒ１）が対となる。
【００５６】
以上のようにして切断点１１０の対が求められたならば、罫線の除去処理を行う。この罫線除去処理においては、上記の手順によって得られた切断点１１０の対同士を結び、その連結線を上から順に追っていく。切断点１１０の対応が正しければ、その連結線は文字の上側輪郭線、下側輪郭線、上側輪郭線、下側輪郭線……と交互に現れるはずである。もし、切断点１１０の対応が違う場合は、評価値を用いてその前後の連結線を削除することで調節する。
【００５７】
次に、最終的に得られた連結線上にある画素を一旦白画素に置き換えて、罫線除去マスク１７を用いた罫線除去方式[I] による罫線除去を行う。この際、文字の上側輪郭線に当たる連結線とそのすぐ下に存在する下側輪郭線に当たる連結線に挟まれた罫線上の黒画素１１１については除去しない。
【００５８】
そして最後に、連結線上の置き換えた黒画素を元に戻すことによって、図１３（ｂ）に示したような滑らかな輪郭線を持った文字を抽出する。
【００５９】
（３）濃淡画像における罫線除去方式  
次に、図１８〜図２３を参照して濃淡画像における罫線除去方式について説明する。前述したように、文字と罫線の濃度差を利用してしきい値処理により二値化することで両者を分離し、罫線の濃度を持つ画素のみを除去する非特許文献１の方法では、文字と罫線の濃度差が大きい濃淡画像の場合は、固定の二値化しきい値で文字と罫線の分離ができるが、文字と罫線の濃度差が十分にない場合には分離が難しい。
【００６０】
ここで説明する罫線除去方式は、入力画像の罫線位置を求め、罫線付近の二値化しきい値とそれ以外の部分の二値化しきい値を変えることによって、文字と罫線の濃度差が小さい場合でも罫線を容易に除去できるようにしたものである。
【００６１】
図１８（ａ）は入力画像である文字と罫線を含む濃淡画像の例であり、ここでは白画素の値を“０”とする。この濃淡画像について、まず個々の点の量子化誤差を是正するため平滑化を行う。平滑化は、例えばフィルタリングにより行われる。フィルタリングによる平滑化では、平滑化対象となる注目画素および近傍の画素の濃度値を重み付け積算し、その積算値（以下、濃度値積算値という）を注目画素の濃度値とする。この平滑化の後、水平方向の罫線の場合は水平方向に、垂直方向の罫線の場合は垂直方向に各画素の濃度値を積算し、それぞれ垂直方向および水平方向への軸への射影成分を計算する。こうして計算される射影成分を積算射影という。ここで積算する値は濃度値そのままでもよく、また適当に定めたしきい値、例えば背景と思われる画素の濃度値よりやや大きい濃度値を持つ画素の数でもよい。
【００６２】
図１８（ａ）中の罫線（クロスハッチングで示す）は水平方向の罫線なので、水平方向に各画素の濃度値を積算して、図１８（ｂ）に示すように垂直方向の軸への積算射影１１３を求め、この積算射影１１３において濃度値積算値が所定値以上の領域を罫線位置１１４として求める。ここで予め罫線情報として罫線位置が与えられている場合には、それをそのまま罫線位置１１４として用いる。
【００６３】
図１８（ｃ）は、図１８（ａ）の垂直方向の３つの断面Ａ，Ｂ，Ｃにおける濃度値積算値の分布（以下、濃度分布という）と、文字と罫線の分離のためのしきい値曲線を示している。
【００６４】
一方、入力画像全体の濃度値の分布から背景部とそれ以外の部分とを分離するための二値化しきい値ｔｈＡを求めておく。この二値化しきい値ｔｈＡの求め方としては、非特許文献１に記載された方法を用いてもよいが、濃度分布において背景部とそれ以外の部分との差がある一定値を越えているような場合には、背景部の濃度値よりやや大きい濃度値を二値化しきい値ｔｈＡとしてもよい。
【００６５】
図１９（ａ）に、図１８（ａ）に示した濃淡画像全体における濃度による画素数分布を示す。図１９（ａ）において横紬は濃度値、縦軸は各濃度値毎の画素数である。また、ここで求められた二値化しきい値ｔｈＡによる二値化しきい値曲線をＤとする。
【００６６】
次に、図１８（ｂ）の罫線位置１１４の両端をΗ画素分だけ広げて罫線存在範囲とし、この罫線存在範囲内で今度は逆方向に画素の濃度値を積算して、図２０２０に示す濃度値積算射影を求める。図２０において横軸は図１８（ａ）における水平方向の位置、縦軸は濃度値積算値である。罫線が図１８（ａ）中に示されるような水平方向の罫線の場合は、垂直方向に濃度値を積算する。文字と罫線の濃度差が大きい場合には、文字が罫線と接触している部分は接触していない部分に対して濃度値積算値が大きいために、図２０に示すようにあるしきい値以上の差が現われるので、接触していない部分の濃度値（すなわち罫線の濃度値）を基に二値化しきい値ｔｈＢを決定する。図１９（ｂ）に、上述した罫線存在範囲内における濃度による画素数分布を示す。図１９（ａ）と同様に横紬は濃度値、縦軸は各濃度値毎の画素数である。
【００６７】
二値化しきい値ｔｈΒが決定した場合、罫線位置１１４では決定された二値化しきい値ｔｈΒを用い、それ以外の部分では二値化しきい値ｔｈＡ（ｔｈＡ＜ｔｈＢ）を用いた凸型の二値化しきい値曲線Εを求める。この凸型の二値化しきい値曲線Ｅを図１８（ｃ）中の断面Βの濃度分布１１６と対応させて示す。一方、前述の濃度積算値に大きな差が現れなかった場合には、以下の処理を行う。
【００６８】
図１８（ｃ）中の断面Ａの濃度分布１１５および断面Ｃの濃度分布１１７を見てみると、罫線内および文字内の画素全てが同じ濃度値であるわけではなく、例えば罫線部分については罫線中央部をピークとして、端に向かって濃度値が小さくなることが多い。そこで、罫線中央部の画素の濃度値を用いて、例えば非特許文献１の方法に従って二値化しきい値ｔｈＣを求める。図２１に、罫線中央部の画素のみを用いた濃度による画素数分布を示す。罫線中央部の画素の濃度値のみを積算するために、図１９（ｂ）の濃度による画素数分布に比べて積算される画素数が少ないので、文字と罫線の境目がより鮮明となることが分かる。
【００６９】
非特許文献１の方法を用いた際、同時に求められる分離度（求められたしきい値の確からしさを示す指標）がある設定値より小さい場合は、その二値化しきい値を無効として二値化しきい値曲線Ｄで二値化を行い、他の罫線除去方式で罫線除去を行うこととする。
【００７０】
断面Ａの濃度分布１１５および断面Ｃの濃度分布１１７に、罫線位置１１４で二値化しきい値ｔｈＣを用い、それ以外の部分で二値化しきい値ｔｈＡ（ｔｈＡ＜ｔｈＣ）を用いた凸型の二値化しきい値曲線Ｆを示す。この二値化しきい値曲線Ｆを用いて二値化を行ってもよいが、前述したように罫線中の濃度分布は中央部をピークとして、端に向かって値が小さくなっていることが多く、場合によっては罫線の両端付近に存在する文字部が求められた二値化しきい値ｔｈＣより小さくなって、罫線の輪郭線付近の文字の一部が消えてしまうこともあり得る。
【００７１】
図２２に、断面Ｃの濃度分布１１７の罫線付近を拡大して示す。同図のように文字と罫線が分布しているとすると、斜線部分１１８に相当する文字部分の濃度値が凸型の二値化しきい値曲線Ｆより小さい値となり、斜線部分１１８の文字が消滅してしまうことが分かる。
【００７２】
そこで、この濃度分布の形状を考慮して、罫線の輪郭線付近の二値化しきい値曲線に傾斜を付けることにより、文字部分の濃度がしきい値曲線より小さくなることを防止して、このような文字の一部が消えてしまう現象を抑制する。この方法により求められた二値化しきい値曲線Ｇを図１８（ｃ）の断面Ｃの濃度分布に併せて示す。
【００７３】
このように傾斜を付けたしきい値曲線Ｇの求め方を図２３を用いて説明する。すなわち、例えば図２３２３（ａ）に示すように罫線推定幅＋２Ｈが「９」で、罫線のみの部分の画素の濃度値が「１０」，「４０」，「７０」，「９０」，「１００」，「９０」，「７０」，「４０」，「１０」で、さらに図１８（ｃ）中に示す二値化しきい値ｔｈＣがｔｈＣ＝１１０の場合、図２３２３（ｂ）に示すように二値化しきい値曲線Ｇの凸部の濃度値を断面Ｃの濃度分布に比例させて「１１」，「４４」，「７７」，「９９」，「１１０」，「９９」，「７７」，「４４」，「１１」とすることにより、二値化しきい値曲線Ｇの凸部の裾野部分、すなわち罫線の端部付近で傾斜を付ける。
【００７４】
なお、この手法は例えば図１８（ｃ）の断面Ｂの凸型の二値化しきい値曲線Εにも適用することができ、それにより傾斜を付けた二値化しきい値曲線Ε′を図１８（ｃ）の濃度分布１１６中に示す。
【図面の簡単な説明】
【００７５】
【図１】文字と罫線が重なっている画像の例を示す図
【図２】第１の従来技術を説明するための図１の画像に罫線除去処理を行った画像の例を示す図
【図３】第２の従来技術を説明するための記入枠の一辺と文字が多数接触している画像およびその画像に罫線除去処理を行った画像の例を示す図
【図４】記入枠の多数の辺と文字が接触している画像の例を示す図
【図５】従来の方式による切断候補画像を示す図
【図６】本発明の一実施形態に係る光学的文字読み取り装置の構成を示すブロック図
【図７】同実施形態における一連の処理手順を示すフローチャート
【図８】同実施形態の動作を説明するための入力画像および部分画像の例を示す図
【図９】同実施形態の動作を説明するための接触罫線除去画像と抽出文字および認識結果の例を示す図
【図１０】図６における罫線除去方式選択部および罫線除去部の機能的構成を示すブロック図
【図１１】図６における罫線除去方式選択部および罫線除去部の他の機能的構成を示すブロック図
【図１２】文字と罫線が重なっている画像とこれに対する射影による罫線位置の推定・罫線除去マスクの走査および第１の罫線除去方法による罫線除去結果の一例を示す図
【図１３】文字と罫線が重なっている画像に対する切断点・除去しない黒画素・罫線除去マスクによる走査および第２の罫線除去方法による罫線除去結果を示す図
【図１４】第２の罫線除去方法を説明するための文字と罫線が重なっている画像に対する輪郭追跡および切断点の文字輪郭方向を示す図
【図１５】第２の罫線除去方法を説明するための輪郭点の方向と角度および切断点付近の輪郭線の動きを示す図
【図１６】第２の罫線除去方法を説明するための切断点の対の一例と切断点同士の距離および切断点の対の他の例を示す図
【図１７】第２の罫線除去方法を説明するための対の得られなかった切断点の対応を示す図
【図１８】第３の罫線除去方法を説明するための文字と罫線を含む濃淡画像と垂直方向への画素の濃度値の積算射影および各断面位置での画素の濃度分布としきい値曲線を示す図
【図１９】第３の罫線除去方法を説明するための濃度による画素数の分布を示す図
【図２０】第３の罫線除去方法を説明するための濃度値積算値の分布を示す図
【図２１】第３の罫線除去方法を説明するための濃度による画素数の分布を示す図
【図２２】第３の罫線除去方法を説明するための特定位置での画素の濃度分布を拡大して示す図
【図２３】第３の罫線除去方法を説明するための二値化しきい値曲線に付ける傾斜の求め方を説明するための図
【符号の説明】
【００７６】
１１…画像入力部
１２…罫線位置特定部
１３…部分画像特定部
１４…罫線種類判別部
１５…罫線除去方式選択部
１６…罫線除去部
１７…文字抽出部
１８…文字認識部
１９…結果出力部
１０１…入力画像
１０２…部分画像
１０３…接触罫線除去画像
１０４…抽出文字
１０５…認識結果
１０６…確信度
１０７…罫線除去マスク
１０８…出っぱり
１０９…途切れ
１１０…切断点
１１１…除去しない黒画素
１１２…文字輪郭方向
１１３…積算射影
１１４…罫線位置
１１５…濃度値積算射影
１１６…断面Ａにおける濃度分布
１１７…断面Ｂにおける濃度分布
１１８…断面Ｃにおける濃度分布
【図１】
2006059384.tif 000003
【図２】
2006059384.tif 000004
【図３】
2006059384.tif 000005
【図４】
2006059384.tif 000006
【図５】
2006059384.tif 000007
【図６】
2006059384.tif 000008
【図７】
2006059384.tif 000009
【図８】
2006059384.tif 000010
【図９】
2006059384.tif 000011
【図１０】
2006059384.tif 000012
【図１１】
2006059384.tif 000013
【図１２】
2006059384.tif 000014
【図１３】
2006059384.tif 000015
【図１４】
2006059384.tif 000016
【図１５】
2006059384.tif 000017
【図１６】
2006059384.tif 000018
【図１７】
2006059384.tif 000019
【図１８】
2006059384.tif 000020
【図１９】
2006059384.tif 000021
【図２０】
2006059384.tif 000022
【図２１】
2006059384.tif 000023
【図２２】
2006059384.tif 000024
【図２３】
2006059384.tif 000025