(57)【特許請求の範囲】
【請求項１】
2値画像を得るために、テキスト画像を前処理するステップであって、前記2値画像が、複数の連結領域を含む、ステップと、
前記複数の前記連結領域のそれぞれに対応する凸包を、凸包アルゴリズムを用いて取得するステップと、
前記凸包に外接する文字領域を取得するステップと、
複数の文字ブロックを得るために、前記取得された文字領域上で文字セグメント化を実行するステップと、
前記テキスト画像のワードブロックを得るために、前記文字ブロックを前記文字ブロックの高さに基づいて結合するステップと
を含み、
前記文字ブロックを前記文字ブロックの高さに基づいて結合する前記ステップが、
前記文字ブロックの高さ分布および前記文字ブロックの合計高さを得るために、前記文字ブロックの前記高さを計算するステップと、
ターゲット文字ブロックを前記文字ブロックから選択するステップであって、前記ターゲット文字ブロックの高さの合計の、前記文字ブロックの前記合計高さに対する比が、プリセット値を超える、ステップと、
前記ターゲット文字ブロックの高さ平均値を計算するステップと、
前記2値画像において同じ文字行にあって水平方向に相互に重なり合う文字ブロックを、前記高さ平均値に基づいて結合するステップと
を含む、
テキスト画像処理方法。
【請求項２】
複数の文字ブロックを得るために、前記取得された文字領域上で文字セグメント化を実行する前記ステップが、
文字の連結部分を前記文字領域において位置決めするステップと、
前記複数の前記文字ブロックを得るために、前記文字領域を前記連結部分に基づいてセグメント化するステップと
を含む、請求項1に記載の方法。
【請求項３】
文字の連結部分を前記文字領域において位置決めする前記ステップが、
画素の各列における前景部分に属する連続する画素の数を得るために、前記文字領域における前記画素の各列における隣接する画素の画素値を比較するステップと、
前記画素の各列における前記前景部分に属する前記連続する画素の数がプリセット数以下であるかどうかを判別するとともに、前記画素の列における前記前景部分に属する前記連続する画素の数が前記プリセット数以下である場合、前記画素の前記列における前記前景部分に属する前記連続する画素を文字の前記連結部分として判別するステップと
を含む、請求項2に記載の方法。
【請求項４】
前記ワードブロックを、前記テキスト画像のテキストコンテンツを得るために、前記テキスト画像における前記ワードブロックの順序に基づいて組み合わせるステップをさらに含む、請求項1に記載の方法。
【請求項５】
2値画像を得るために、テキスト画像を前処理するように構成された前処理モジュールであって、前記2値画像が、複数の連結領域を含む、前処理モジュールと、
前記複数の前記連結領域のそれぞれに対応する凸包を、凸包アルゴリズムを用いて取得するとともに、前記凸包に外接する文字領域を取得するように構成された凸包取得モジュールと、
複数の文字ブロックを得るために、前記取得された文字領域上で文字セグメント化を実
行するように構成されたセグメント化モジュールと、
前記テキスト画像のワードブロックを得るために、前記文字ブロックを前記文字ブロックの高さに基づいて結合するように構成された結合モジュールと
を備え、
前記結合モジュールが、
前記文字ブロックの高さ分布および前記文字ブロックの合計高さを得るために、前記文字ブロックの前記高さを計算するように構成された分布統計ユニットと、
ターゲット文字ブロックを前記文字ブロックから選択するように構成された画素選択ユニットであって、前記ターゲット文字ブロックの高さの合計の、前記文字ブロックの前記合計高さに対する比が、プリセット値を超える、画素選択ユニットと、
前記ターゲット文字ブロックの高さ平均値を計算するように構成された平均値計算ユニットと、
前記2値画像において同じ文字行にあって水平方向に相互に重なり合う文字ブロックを、前記高さ平均値に基づいて結合するように構成された結合実行ユニットと
を備える、
テキスト画像処理装置。
【請求項６】
前記セグメント化モジュールが、
文字の連結部分を前記文字領域において位置決めするように構成された連結位置決めユニットと、
前記複数の前記文字ブロックを得るために、前記文字領域を前記連結部分に基づいてセグメント化するように構成されたセグメント化実行ユニットと
を備える、請求項5に記載の装置。
【請求項７】
前記連結位置決めユニットが、
画素の各列における前景部分に属する連続する画素の数を得るために、前記文字領域における前記画素の各列における隣接する画素の画素値を比較するように構成された画素比較サブユニットと、
前記画素の各列における前記前景部分に属する前記連続する画素の数がプリセット数以下であるかどうかを判別するとともに、前記画素の列における前記前景部分に属する前記連続する画素の数が前記プリセット数以下である場合、前記画素の前記列における前記前景部分に属する前記連続する画素を文字の前記連結部分として判別するように構成された判別サブユニットと
を備える、請求項6に記載の装置。
【請求項８】
前記テキスト画像のテキストコンテンツを得るために、前記ワードブロックを、前記テキスト画像における前記ワードブロックの順序に基づいて組み合わせるように構成された認識モジュールをさらに備える、請求項5に記載の装置。
【請求項９】
1つまたは複数のプロセッサと、
前記プロセッサによって実行されるとき、テキスト画像処理装置が、請求項1から4のいずれか一項に記載の方法を実行するようにさせるプログラム命令を格納するメモリと
を備える、テキスト画像処理装置。
【請求項１０】
計算装置のプロセッサによって実行されるとき、前記装置が、請求項1から4のいずれか一項に記載の方法を実行するようにさせるプログラム命令を含む、コンピュータ可読記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、その全体が参照により本明細書に組み込まれる、2016年1月5日に中国国家知識産権局に出願された「TEXT IMAGE PROCESSING METHOD AND APPARATUS」と題する中国特許出願第201610004431.4号の優先権を主張するものである。
【０００２】
本開示は、文字認識の技術分野に関し、詳細には、テキスト画像処理方法およびテキスト画像処理装置に関する。
【背景技術】
【０００３】
文字認識の分野では、文字セグメント化は、テキスト画像処理における重要なステップであり、画像内でテキスト領域を取得する際、文字の位置において文字に対するセグメント化を実行することによって主に実装される。
【０００４】
従来の文字セグメント化方法には、射影セグメント化方法、クラスタリング方法、およびテンプレートマッチング方法が含まれる。射影セグメント化方法によれば、画像は、2値画像を得るために前処理され、文字がある領域が、2値画像上の射影ベースによって判別される。文字の連結領域が使用されるクラスタリング方法によれば、連結領域内の文字ブロックは、ページ全体において文字の分布特徴に基づいて結合される。テンプレートマッチング方法は、主に、特定のフォントまたは特定の文字に適用されるものであり、広く使用されるものではない。
【０００５】
上記の文字セグメント化方法では、文字は、ある程度、セグメント化することができる。しかし、これらの方法は、通常、実際的な適用において制限される。一方において、射影セグメント化方法では、文字が傾いている場合、複数の文字が全体としてセグメント化されるという問題が発生する可能性があり、他方、テンプレートマッチング方法は、特定のテキスト環境にのみ適用でき、利用可能性の低下を招く。
【０００６】
一方、文字セグメント化が連結領域に基づいて実行されるクラスタリング方法では、文字セグメント化は、取得された文字にストローク割れ(stroke fracture)現象またはストローク結合(stroke cohesion)現象が存在する場合、実装することができない。
【０００７】
したがって、上記の文字セグメント化方法には、多くの問題があり、特に、これらの方法は、実際的な適用において制限され、多用途性および精度の低さを招く。
【発明の概要】
【課題を解決するための手段】
【０００８】
上記に基づき、テキスト画像処理方法およびテキスト画像処理装置が、本開示において提供される。方法および装置によって、文字セグメント化の多用途性および精度が改善され得る。
【０００９】
2値画像を得るために、テキスト画像を前処理するステップであって、2値画像が、複数の連結領域を含む、ステップと、
複数の連結領域のそれぞれに対応する凸包を、凸包アルゴリズムを用いて取得するステップと、凸包に外接する文字領域を取得するステップと、
複数の文字ブロックを得るために、取得された文字領域上で文字セグメント化を実行するステップと、
テキスト画像のワードブロック(word block)を得るために、文字ブロックを文字ブロックの高さに基づいて結合するステップと
を含む、テキスト画像処理方法が提供される。
【００１０】
2値画像を得るために、テキスト画像を前処理するように構成された前処理モジュールであって、2値画像が、複数の連結領域を含む、前処理モジュールと、
複数の連結領域のそれぞれに対応する凸包を、凸包アルゴリズムを用いて取得するとともに、凸包に外接する文字領域を取得するように構成された凸包取得モジュールと、
複数の文字ブロックを得るために、取得された文字領域上で文字セグメント化を実行するように構成されたセグメント化モジュールと、
テキスト画像のワードブロックを得るために、文字ブロックを文字ブロックの高さに基づいて結合するように構成された結合モジュールと
を含む、テキスト画像処理装置が提供される。
【００１１】
テキスト画像処理において、2値画像および2値画像における複数の連結領域が、前処理によってまず得られ、複数の連結領域のそれぞれに対応する凸包が、凸包アルゴリズムを用いて取得されるとともに凸包に外接する文字領域が取得され、文字セグメント化が、2値画像に分布した複数の文字ブロックを得るために、文字領域上で実行され、文字ブロックが、テキスト画像のワードブロックを得るために、文字ブロックの高さに基づいて結合されると、上記の技術的解決策から理解することができる。テキスト画像処理において、文字セグメント化が実行され、結合が、文字ブロックの高さに基づいて実行され、したがっていくつかの密着した文字がセグメント化されるとともに文字行においてアップダウン構造(up-down structure)をもつ文字のセグメント化が防止され、それによって文字セグメント化の精度を改善する。さらに、プロセスは、テキスト内の文字分布および文字の高さに基づいて、プロセスにおいて無制限に実行され、それによって文字セグメント化の多用途性を改善する。
【図面の簡単な説明】
【００１２】
【図１】本開示の一実施形態による電子デバイスの概略構造図である。
【図２】本開示の一実施形態によるテキスト画像処理方法を示す流れ図である。
【図３】本開示の一実施形態による、2値画像において複数の文字ブロックを得るために文字領域上で文字セグメント化を実行するための方法を示す流れ図である。
【図４】本開示の一実施形態による、文字の連結部分を位置決めするための方法を示す流れ図である。
【図５】本開示の一実施形態による、2つの文字を含む文字領域の概略図である。
【図６】図5の文字領域において位置決めすることによって得られる連結部分の概略図である。
【図７】図5の文字領域をセグメント化することによって得られる文字ブロックの概略図である。
【図８】本開示の一実施形態による、テキスト画像のワードブロックを得るために文字ブロックを文字ブロックの高さに基づいて結合するための方法を示す流れ図である。
【図９】本開示の一実施形態によるテキスト画像処理装置の概略構造図である。
【図１０】本開示の一実施形態によるセグメント化モジュールの概略構造図である。
【図１１】本開示の一実施形態による連結位置決めユニットの概略構造図である。
【図１２】本開示の一実施形態による結合モジュールの概略構造図である。
【発明を実施するための形態】
【００１３】
本開示の特徴および利点を具体化する例示的実施形態を以下の説明で詳しく述べる。本開示は様々な実施形態において本開示の範囲から逸脱することなく様々な変更を有することができ、説明および例示は例示のみを目的とし、本開示を限定するものとして解釈されるべきではないことを理解されたい。
【００１４】
射影セグメント化方法、クラスタリング方法、テンプレートマッチング方法などの前述の文字セグメント化方法を採用するテキスト認識のアプリケーションでは、文字セグメント化の精度は、一定のシナリオにおいてのみ高く、一方、他のシナリオにおいては低く、それによってテキスト認識アプリケーションにおけるコンテンツ認識の精度に影響を与える。
【００１５】
多用途性および精度を改善するために、テキスト画像処理方法およびテキスト画像処理装置が、本開示において提供される。方法は、2値画像を得るために、テキスト画像を前処理するステップであって、2値画像が、複数の連結領域を含む、ステップと、複数の連結領域のそれぞれに対応する凸包を、凸包アルゴリズムを用いて取得するステップと、凸包に外接する文字領域を取得するステップと、複数の文字ブロックを得るために、取得された文字領域上で文字セグメント化を実行するステップと、文字ブロックを文字ブロックの高さに基づいて結合するステップとを含む。
【００１６】
図1は、本開示の一実施形態による電子デバイスの構造を示す。電子デバイス100は、単に本開示に適用可能な例であって、本開示の適用可能な範囲を限定するものとして見なされるべきではない。
【００１７】
図1に示すように、電子デバイス100は、プロセッサ110、メモリ120、およびシステムバス130を備える。メモリ120およびプロセッサ110を含む様々な構成要素が、システムバス130に連結されている。プロセッサ110は、コンピュータシステムにおける基本的な算術論理演算によってコンピュータプログラム命令を実行するように構成されたハードウェアデバイスである。メモリ120は、コンピュータプログラムまたはデータを一時的または恒久的に格納するように構成された物理デバイスである。
【００１８】
メモリ120は、プログラム命令および複数のテキスト画像を格納する。プロセッサ110は、テキスト画像を処理するために、メモリ120に格納されたプログラム命令を実行する。
【００１９】
電子デバイス100はさらに、様々な動作の入力を実現するために、様々なタイプの入力インタフェース170および入力装置140を備え、入力装置140は、タッチスクリーン、キー、キーボード、マウス、または他の入力装置のうちの少なくとも1つであり得る。
【００２０】
電子デバイス100はさらに、通信機能を実行するためのローカルエリアネットワークインタフェース150およびモバイル通信ユニット160を備えてもよい。
【００２１】
電子デバイス100はさらに、記憶デバイス180を備え、記憶デバイス180は、様々なコンピュータ可読記憶媒体から選択されてもよい。コンピュータ可読記憶媒体は、可動記憶媒体および固定記憶媒体を含む、アクセスされ得る任意の利用可能な媒体である。例えば、コンピュータ可読記憶媒体は、それに限定されるものではないが、フラッシュメモリ(マイクロSDカードなど)、CD-ROM、デジタル多用途ディスク(DVD)もしくは他の光ディスク、カセット、テープ記憶デバイスもしくは他の記憶デバイス、または所望の情報を格納でき、アクセスされ得る任意の他の媒体を含み得る。
【００２２】
電子デバイス100は、本開示の一実施形態によるテキスト画像処理において様々な演算を実行する、すなわち、メモリ120に格納されたプログラム命令をプロセッサ110が実行することによってテキスト画像処理方法のステップを実行することができる。
【００２３】
さらに、本開示は、ハードウェア回路またはハードウェア回路とソフトウェア命令の組合せによって実装することができる。したがって、本開示の実装は、いずれか特定のハードウェア回路、ソフトウェア、またはハードウェア回路とソフトウェアの組合せに限定されるものではない。
【００２４】
一実施形態では、テキスト画像処理方法は、図2に示されるようであり、以下のようにステップ210からステップ270を含む。
【００２５】
ステップ210では、テキスト画像が、2値画像を得るために前処理され、2値画像は、複数の連結領域を含む。
【００２６】
テキスト画像は、テキストコンテンツを含む任意の画像であり得る。テキスト画像は、テキストを構成する文字を含み、文字は、1つまたは複数の行に配列することができる。テキスト画像はさらに、文字行と他の隣接する文字行との間の空白、および文字と他の隣接する文字との間の句読点を含み得る。テキスト画像は、画像情報を明確に示すことができて複数の連結領域(連結ドメインとも呼ばれる)を含む2値画像を得るために前処理される。文字行の方向は、以下、説明の便宜上、水平方向と呼ばれる。
【００２７】
前処理するステップは、テキスト画像においてエッジを得るために、テキスト画像上で平滑化フィルタリングを実行してエッジを検出し、形態によって文字の分布領域を得、それによって文字の連結領域を得ることを含む。
【００２８】
言い換えれば、2値画像における複数の連結領域では、1つまたは複数の文字が、複数の連結領域のそれぞれに存在する。
【００２９】
ステップ230では、複数の連結領域のそれぞれに対応する凸包が、凸包アルゴリズムを用いて取得され、凸包に外接する文字領域が取得される。
【００３０】
連結領域のそれぞれに対応する凸包が、凸包アルゴリズムを用いて取得され、フレーム選択が、凸包に外接する文字領域を得るために、凸包に基づいて実行される。任意選択の実施形態では、連結領域のそれぞれに対応する最大凸包が、文字に関係する情報が除外されるのを防止するために、凸包アルゴリズムを用いて取得され、文字に関係する情報の完全性を確保する。
【００３１】
さらに、任意選択の実施形態では、凸包に外接する文字領域は、矩形領域、例えば、文字の輪郭に合うようにフレーム選択を凸包上で最小矩形を用いて実行することによって得られる矩形領域であり、それによってテキスト画像処理の精度を確保する。
【００３２】
連結領域に対応する複数の凸包では、凸包のそれぞれが、文字領域に対応し、したがって2値画像における複数の文字領域が得られる。
【００３３】
ステップ250では、文字セグメント化が、2値画像における複数の文字ブロックを得るために、取得された文字領域上で実行される。
【００３４】
水平方向での文字セグメント化が、文字領域のそれぞれにおいて互いに連結した文字をセグメント化するために、2値画像における複数の文字領域のそれぞれにおいて、テキストにおける文字の分布特徴に基づいて実行される。例えば、ストロークを介して相互に密着した文字が、文字ブロックを得るために、水平方向での文字セグメント化によって分離される。
【００３５】
文字セグメント化が実行された後、2値画像における複数の文字ブロックが得られる。水平方向での文字セグメント化によって、単一文字に対応する文字ブロックが、できるだけ得られる。
【００３６】
ステップ270では、文字ブロックが、テキスト画像のワードブロックを得るために、文字ブロックの高さに基づいて結合される。
【００３７】
2値画像における文字ブロックを得た後、文字ブロックが、2値画像におけるすべての文字ブロックの高さに基づいて結合され、したがって同じ文字行においてアップダウン構造を相互に形成する文字ブロックが結合される。
【００３８】
文字領域が水平方向に最大限度十分に細かくセグメント化される場合、2つの部分にセグメント化された文字ブロックは、文字ブロックの高さに基づいて結合することによって、互いに結合され、それによってその後の認識率を高める。
【００３９】
上記のプロセスでは、水平方向での文字セグメント化と文字ブロックの結合の連係の下で、テキスト画像における文字行のそれぞれが、できるだけ単一文字を得るのに十分に細かくセグメント化され、次いで、結合が実行され、したがって同じ文字行においてアップダウン構造をもって全体を構成する文字ブロックが互いに結合され、それによってその後の文字認識を促進する。
【００４０】
上記のプロセスでは、いくつかの他の因子に依存することなく、文字の特性が利用されている。したがって、文字セグメント化プロセスの多用途性が、大幅に改善され、したがって上記のテキスト画像処理方法を実行するテキスト認識アプリケーションの多用途性および精度もまた、大幅に改善される。
【００４１】
一実施形態では、ステップ250は、図3に示されるようであり、ステップ250は、以下のようにステップ251およびステップ253を含む。
【００４２】
ステップ251では、文字の連結部分が、文字領域において位置決めされる。
【００４３】
連結領域における凸包に基づいて得られる文字領域は、フレーム選択を文字上で実行することによって得られる予備段階の結果である。相互に密着した文字は通常、文字領域に存在する。本開示の一実施形態によれば、文字の連結部分が、文字領域における文字をセグメント化するために、垂直方向に位置決めされる。
【００４４】
連結部分が文字領域において位置決めすることによって得られる場合、相互に密着した文字は文字領域に存在し、水平方向でのセグメント化を文字領域において連結部分に基づいて実行することが必要である。
【００４５】
ステップ253では、文字領域が、2値画像における複数の文字ブロックを得るために、連結部分に基づいてセグメント化される。
【００４６】
具体的には、文字領域上で連結部分に基づいて実行されるセグメント化は、連結部分に対応する画素値を0に設定することによって実装することができる。
【００４７】
文字ブロックは、文字領域を水平方向にセグメント化することによって得られ、また文字領域ができるだけ細かくセグメント化される場合に対応する。一方では、文字領域は、水平方向に連結部分に基づいてセグメント化されて、文字連結領域においてセグメント化された少なくとも2つの文字ブロックを得る。他方では、連結部分がまったく存在しない文字領域の場合、文字領域は、文字ブロックとして判別される。
【００４８】
したがって、上記のプロセスでは、文字領域は、2値画像に分布した複数の文字ブロックを得るためにセグメント化され、したがって、文字セグメント化は十分に細かく、文字行のそれぞれにおいてセグメント化された文字ブロックのそれぞれは単一文字に対応し、文字セグメント化の精度を大幅に改善する。
【００４９】
さらに、一実施形態では、図4に示すように、ステップ251は、以下のようにステップ2511からステップ2515を含む。
【００５０】
ステップ2511では、文字領域における画素の各列における隣接する画素の画素値が、画素の各列における前景部分に属する連続する画素の数を得るために比較される。
【００５１】
2値画像における複数の文字領域では、文字領域のそれぞれが、複数の画素を含む。したがって、連結部分は、2値画像における複数の文字領域のそれぞれで列において位置決めされる。
【００５２】
位置決めプロセスでは、文字領域における画素の各列に対して、画素の列における前景部分に属する連続する画素が、隣接する画素の画素値を比較することによって取得される。前景部分は、画素の画素値が1である部分であり、また画素の各列における前景部分に属する連続する画素は、画素の列において、その画素値が1である連続する画素を指す。
【００５３】
ステップ2513では、画素の各列に対して、前景部分に属する連続する画素の数が、プリセット数以下であるかどうかが判別される。前景部分に属する連続する画素の数が、プリセット数以下である場合、プロセスはステップ2515に進み、そうでない場合、プロセスは終了する。
【００５４】
ステップ2515では、前景部分に属する連続する画素が、文字の連結部分として判別される。
【００５５】
列において連結部分を位置決めする際には、プリセット数が、連結部分を認識するために使用され、そこでプリセット数は、経験に従ってあらかじめ決定することができる。
【００５６】
画素の列における前景部分に属する連続する画素の数が、プリセット数(例えば、プリセット数は3である場合がある)以下である場合、前景部分に属するこれらの連続する画素は、文字の連結部分として判別される。
【００５７】
具体的には、連結部分を位置決めする際には、2値画像における複数の文字領域に対して、文字領域の高さおよび幅(画素の数によって表される)が、まず計算される。一実施形態では、矩形領域の高さおよび幅が計算される。以下において、説明は、iおよびjが1≦i≦rect_widthおよび1≦j≦rect_hightとして定義される、幅rect_widthおよび高さrect_hightを用いて行われる。
【００５８】
文字領域のうちのいずれか1つでは、jはj=1として初期設定され、そしてi番目の列の画素が抽出されて、i番目の列における画素の画素値image(i,1≦j≦rect_hight)を得る。
【００５９】
i番目の列における画素の中で、画素の画素値image(i,j)が、画素の画素値image(i,j+1)と比較される。画素値が0から1へ変わるか、1から1へ変わる場合、列における、その画素値が1である画素の数を表しているline_num_1に対応する値は増加し、すなわち、line_num_1=line_num_1+1となる。
【００６０】
したがって、i番目の列における画素のline_num_1に対応する値が得られ、その値は、画素のi番目の列における前景部分に属する連続する画素の数である。
【００６１】
line_num_1に対応する値がプリセット数m以下かどうかが判別される。line_num_1に対応する値がプリセット数m以下である場合、これらの連続する画素は、文字の連結部分として判別される。この場合、セグメント化は、現在の列における画素の画素値を0に設定することによって実装することができる。
【００６２】
画素のi番目の列に対する比較および判別が完了した後、比較および判別は、文字領域全体の連結部分が、i=rect_widthの場合の水平方向において位置決めされるまで、画素の(i+1)番目の列などに対して実行される。
【００６３】
例えば、図5に示すように、2つの文字「S」および「a」を含む文字領域310では、文字領域310における連結部分330が、図6に示すように、連結部分を文字領域310上で位置決めする、すなわち、3つの連続する画素を垂直方向において得る(3つの連続する画素が同じ列内にある)ことによって得られ、また3つの連続する画素に対応する画素値は、1である。
【００６４】
2つの文字ブロックが、図7に示すように、文字領域を連結部分に基づいてセグメント化することによって得られ、2つの文字ブロックとはすなわち、文字「S」が位置する文字ブロック410および文字「a」が位置する文字ブロック430である。
【００６５】
一実施形態では、図8に示すように、ステップ270は、以下のようにステップ271からステップ277を含む。
【００６６】
ステップ271では、2値画像における文字ブロックの高さが、2値画像における文字ブロックの高さ分布を得るために計算される。
【００６７】
任意選択で、ステップ271では、2値画像における文字ブロックの合計高さ、すなわち、2値画像におけるすべての文字ブロックの高さの合計がさらに計算される。
【００６８】
上述のように、2値画像は、複数の文字ブロックを含む。文字ブロックのうちのいずれか1つでは、その高さが、2値画像における文字ブロックのそれぞれに対応する高さを得るために計算される。さらに、2値画像における文字ブロックの高さ分布が、2値画像において同じ高さを有する文字ブロックの数に対して統計処理を実行することによって得られる。
【００６９】
具体的には、統計処理が、2値画像におけるすべての文字ブロックの高さに対して実行され、同じ高さを有する文字ブロックがグループにまとめられ、各グループにおける文字ブロックの数が数えられる。例えば、2値画像の各グループにおける文字ブロックの高さが、配列static_height[n]によって表され、そしてそれに対応して、各高さに対応する文字ブロックの数が、1≦nである配列num_rect[n]に格納される。
【００７０】
ステップ273では、得られた2値画像における文字ブロックの高さ分布に基づいて、どの文字ブロックの高さの合計の、2値画像における文字ブロックの合計高さに対する比がプリセット値を超えるかが判別される。
【００７１】
言い換えれば、ターゲット文字ブロックが、2値画像における文字ブロックから選択され、ターゲット文字ブロックの高さの合計の、2値画像における文字ブロックの合計高さに対する比がプリセット値を超える。
【００７２】
例えば、グループにおける文字ブロックの高さの合計の、2値画像におけるすべての文字ブロックの高さの合計に対する比がプリセット値より大きいように、いくつかのグループが判別される。プリセット値は、80%など、50%より大きい値であってもよい。
【００７３】
具体的には、配列static_height[n]が、num_rect[n]の降順に、または昇順に並べられた配列static_height[n]を得るために、まず最大のnum_rect[n]から、または最小のnum_rect[n]から順番に並べられ得る。
【００７４】
高さの合計sum_heightが、2値画像における文字ブロックの高さおよび文字ブロックの数に基づいて計算されることによって取得される。
【００７５】
例えば、文字ブロックの最初のk個の高さが、上記の順番に抽出され、文字ブロックの抽出された高さは、以下の式、
(num_rect_h[1]*static_height[1]+num_rect_h[2]*static_height[2]+…+num_rect_h[k]*static_height[k])/sum_height≧0.8
を最初に真とするstatic_height[1]、…、static_height[k]である。
【００７６】
ステップ275では、ターゲット文字ブロックの高さ平均値が計算される。
【００７７】
このステップでは、高さ平均値は、ステップ273において選択された文字ブロックおよびそれらの文字ブロックの高さの合計に基づいて計算される。
【００７８】
得られた高さstatic_height[1]、…、static_height[k]の平均値が計算され、高さ平均値height_avg、すなわち、
(num_rect_h[1]*static_height[1]+num_rect_h[2]*static_height[2]+…+num_rect_h[k]*static_height[k])/k=height_avg
を得る。
【００７９】
ステップ277では、同じ文字行にあって水平方向に相互に重なり合う文字ブロックが、テキスト画像のワードブロックを得るために、2値画像において、高さ平均値に基づいて結合される。
【００８０】
高さ平均値が計算される。2値画像における任意の文字行では、2つの文字ブロックの高さの合計が高さ平均値より小さいとともに、2つの文字ブロックが水平方向に相互に重なり合う場合、2つの文字ブロックは結合される。
【００８１】
言い換えれば、以下の2つの条件が、2値画像における文字ブロックの結合プロセスにおいて満たされる必要がある。すなわち、
条件1:|middle_rect_x(i)-middle_rect_x(k)|-(middle_rect_width(i)+middle_rect_width(k))/2<0、および
条件2:rect_height(i)+rect_height(k)≦height_avgであり、
【００８２】
式中、1≦i≦mであり、mは文字ブロックの数を表し、middle_rect_x(i)はx軸上のi番目の文字ブロックの中心の座標を表し、middle_rect_width(i)はi番目の文字ブロックの幅を表し、rect_height(i)はi番目の文字ブロックの高さを表す。
【００８３】
i番目の文字ブロックが、残りの文字ブロックと比較される。k番目の文字ブロックと現在のi番目の文字ブロックの高さの合計が高さ平均値より小さいとともに、k番目の文字ブロックおよびi番目の文字ブロックが水平方向に相互に重なり合う場合、上記の2つの条件が満たされる。
【００８４】
したがって、2つの文字ブロックは結合されるべきであると見なされる。
【００８５】
上記のプロセスでは、アップダウン構造を有し、文字ブロックの高さの合計が高さ平均値より小さい文字ブロックは適切に結合され、水平方向において文字ブロックの分布を確保し、したがって水平方向における文字ブロックは、その後の認識プロセスにおいて、適切に組み合わせ、認識することができる。
【００８６】
一実施形態では、上述の方法はさらに、ワードブロックを含むテキスト画像を認識することを含む。テキスト画像を認識する際には、ワードブロックは、テキスト画像のテキストコンテンツを得るために、ワードブロックの順序に基づいて組み合わせられる。
【００８７】
このプロセスでは、戦略が、ワードブロックを認識アルゴリズムにおいて処理するための要件に基づいて設定される。例えば、選択的結合が、ワードブロック上で実行され、そこで選択的結合は、文字行におけるブロックの平均幅および平均高さに基づいて、狭すぎるいくつかの隣接するブロックを結合する、または広すぎるいくつかのワードブロック上でより細かいセグメント化を実行することを指す。
【００８８】
採用される認識アルゴリズムは、抽出が、グレーレベル画像の階調度の特徴や文字のHOGの特徴などの文字の特徴に基づく、認識アルゴリズムであり得ることに留意されたい。
【００８９】
一実施形態では、テキスト画像処理装置が提供される。図9に示すように、テキスト画像処理装置は、前処理モジュール510、凸包取得モジュール530、セグメント化モジュール550、および結合モジュール570を備える。
【００９０】
前処理モジュール510は、2値画像を得るために、テキスト画像を前処理するように構成され、そこで2値画像は、複数の連結領域を含む。
【００９１】
凸包取得モジュール530は、複数の連結領域のそれぞれに対応する凸包を、凸包アルゴリズムを用いて取得するとともに、凸包に外接する文字領域を取得するように構成される。
【００９２】
セグメント化モジュール550は、2値画像における複数の文字ブロックを得るために、取得された文字領域上で文字セグメント化を実行するように構成される。
【００９３】
結合モジュール570は、テキスト画像のワードブロックを得るために、文字ブロックを文字ブロックの高さに基づいて結合するように構成される。
【００９４】
一実施形態では、図10に示すように、セグメント化モジュール550は、連結位置決めユニット551およびセグメント化実行ユニット553を備える。
【００９５】
連結位置決めユニット551は、文字の連結部分を文字領域において位置決めするように構成される。
【００９６】
セグメント化実行ユニット553は、2値画像における複数の文字ブロックを得るために、文字領域を連結部分に基づいてセグメント化するように構成される。
【００９７】
一実施形態では、図11に示すように、連結位置決めユニット551は、画素比較サブユニット5511および判別サブユニット5513を備える。
【００９８】
画素比較サブユニット5511は、画素の各列における前景部分に属する連続する画素の数を得るために、文字領域における画素の各列における隣接する画素の画素値を比較するように構成される。
【００９９】
判別サブユニット5513は、画素の各列における前景部分に属する連続する画素の数がプリセット数以下であるかどうかを判別するとともに、画素の列における前景部分に属する連続する画素の数がプリセット数以下である場合、画素の列における前景部分に属する連続する画素を文字の連結部分として判別するように構成される。
【０１００】
一実施形態では、図12に示すように、結合モジュール570は、分布統計ユニット571、画素選択ユニット573、平均値計算ユニット575、および結合実行ユニット577を備える。
【０１０１】
分布統計ユニット571は、2値画像における文字ブロックの高さ分布を得るために、2値画像における文字ブロックの高さを計算するように構成される。任意選択で、分布統計ユニット571はさらに、文字ブロックの合計高さ、すなわち、2値画像におけるすべての文字ブロックの高さの合計を計算するように構成される。
【０１０２】
画素選択ユニット573は、得られた2値画像における文字ブロックの高さ分布に基づいて、どの文字ブロックの高さの合計の、2値画像における文字ブロックの合計高さに対する比が所定の値を超えるかを判別するように構成される。言い換えれば、画素選択ユニット573は、ターゲット文字ブロックを文字ブロックから選択し、そこでは、ターゲット文字ブロックの高さの合計の、文字ブロックの合計高さに対する比がプリセット値を超えるように構成される。
【０１０３】
平均値計算ユニット575は、ターゲット文字ブロックの高さ平均値を計算するように構成される。
【０１０４】
結合実行ユニット577は、2値画像において同じ文字行にあって水平方向に相互に重なり合う文字ブロックを、テキスト画像のワードブロックを得るために、高さ平均値に基づいて結合するように構成される。
【０１０５】
一実施形態では、上述の装置はさらに、認識モジュールを備える。認識モジュールは、ワードブロックを含むテキスト画像を認識するように構成される。テキスト画像を認識する際には、ワードブロックは、テキスト画像のテキストコンテンツを得るために、ワードブロックの順序に基づいて組み合わせられる。
【０１０６】
上記の実施形態のステップのすべてまたは一部は、ハードウェアによって実装できるか、ハードウェアにプログラムを用いて命令することよって実装できることを当業者なら理解することができる。プログラムは、コンピュータ可読記憶媒体に格納されてもよく、コンピュータ可読記憶媒体は、読出し専用メモリ、磁気ディスク、または光ディスクであってもよい。
【０１０７】
本開示はいくつかの例示的実施形態を参照しながら説明されているが、本明細書で使用される用語は、説明的、また例示的であり、限定的ではないものとして理解されたい。本開示は、本開示の趣旨および本質から逸脱することなく、様々な方法で実装され得るので、上記の実施形態は、上述のいかなる詳細にも限定されないことが理解されるべきであり、また、添付の特許請求の範囲によって定義される趣旨および範囲の中で広く説明されるべきである。したがって、本特許請求の範囲の中に入るすべての変更および修正、またはその同等物は、添付の特許請求の範囲によって包含されるべきである。
【符号の説明】
【０１０８】
100  電子デバイス
110  プロセッサ
120  メモリ
130  システムバス
140  入力装置
150  ローカルエリアネットワークインタフェース
160  モバイル通信ユニット
170  入力インタフェース
180  記憶デバイス
310  文字領域
330  連結部分
410  文字ブロック
430  文字ブロック
510  前処理モジュール
530  凸包取得モジュール
550  セグメント化モジュール
551  連結位置決めユニット
553  セグメント化実行ユニット
570  結合モジュール
571  分布統計ユニット
573  画素選択ユニット
575  平均値計算ユニット
577  結合実行ユニット
5511  画素比較サブユニット
5513  判別サブユニット
【図１】
0006628442.tif 000002
【図２】
0006628442.tif 000003
【図３】
0006628442.tif 000004
【図４】
0006628442.tif 000005
【図５】
0006628442.tif 000006
【図６】
0006628442.tif 000007
【図７】
0006628442.tif 000008
【図８】
0006628442.tif 000009
【図９】
0006628442.tif 000010
【図１０】
0006628442.tif 000011
【図１１】
0006628442.tif 000012
【図１２】
0006628442.tif 000013