以下、図面に基づいて、実施形態を説明する。
図1は、文字認識装置の一実施形態を示す。図1に示した文字認識装置10は、変換装置CVにより、カラー画像GCLに対してグレースケールへの変換を行うことで生成されたグレースケール画像GGRを受け、グレースケール画像GGRに含まれるテキストを抽出する。以下の説明において、グレースケール画像GGRは、単に画像GGRと称される場合がある。
なお、カラー画像GCLは、例えば、テレビ放送をキャプチャすることで得られる画像でもよいし、デジタルカメラなどで撮影された画像や、スキャナ装置で原稿を読み取ることで得られる画像でもよい。また、文字認識装置10が受けるグレースケール画像GGRは、変換装置CVによる変換処理で得られたグレースケール画像に限られない。例えば、文字認識装置10は、デジタルカメラによる撮影で得られたグレースケール画像やスキャナ装置による読み取りで得られたグレースケール画像を、デジタルカメラやスキャナ装置から直接に受けてもよい。
文字認識装置10は、第1抽出部11と、第1生成部12と、認識部13と、第2生成部14と、設定部15と、グラフカット部16と、第2抽出部17とを含んでいる。なお、変換装置CVによる変換処理で得られるグレースケール画像GGRを用いる場合に、文字認識装置10は、変換装置CVを含んでいてもよい。
第1抽出部11は、複数の濃度値毎に、各濃度値以上の画素が連結した連結成分を画像GGRから抽出する。第1抽出部11は、例えば、画像GGRを複数の濃度値を閾値として二値化することで複数の二値化画像を生成し、生成した二値化画像のそれぞれから連結成分を抽出する。
第1生成部12は、画像GGRから抽出された連結成分のそれぞれにつき、異なる濃度値を用いて抽出された他の連結成分との間の包含関係を探索することで、濃度値で階層化された成分ツリーを生成する。
第1生成部12は、例えば、濃度値t(j)(jは正の整数)を用いて抽出した各連結成分について、一段階薄い濃度値t(j−1)を用いて抽出した連結成分の中から濃度値t(j)の連結成分を包含する連結成分を探索する処理を繰り返す。
そして、第1生成部11は、隣接する2つの濃度間で包含関係を有する連結成分を示すノードを互いに第1エッジで接続することで、濃度値で階層化された連結成分間の包含関係を示す成分ツリーを生成する。
以下の説明において、異なる濃度に対応する階層に含まれるノード間を接続するエッジは、階層エッジと称される場合がある。
ここで、図2〜図4を用いて、画像GGRから抽出される連結成分間の包含関係の探索により、成分ツリーを生成する手法について説明する。
図2は、図1に示したグレースケール画像GGRの一例を示す。図2に示した画像GGRは、複雑に濃淡が変化する背景Bgとともに、文字列「First」を前景Fgとして含んでいる。
図3は、図2に示した画像GGRから抽出された連結成分の例を示す。図3の例は、画像GGRから、7段階の濃度t0,t1,t2,t3,t4,t5,t6を閾値として生成した7枚の二値画像P0,P1,P2,P3,P4,P5,P6のそれぞれから抽出した連結成分を示している。なお、図1に示した第1抽出部11により、画像GGRから連結成分を抽出する際に用いる閾値は、図3に示したような7段階に限らず、例えば、256段階の濃度のそれぞれを示す閾値を用いてもよい。
図3に示した濃度t0〜t6の中で、濃度t0は最も薄い濃度(例えば、白色を示す濃度)を示し、濃度t6は最も濃い濃度(例えば、黒色を示す濃度)を示す。また、濃度t1、t2、t3、t4、t5のそれぞれは、順に、白色と黒色との間を区切って得られた各段階に対応する中間の濃度を示す。
図3に示した各連結成分を示す符号において、符号「C」の後の数値は、当該連結成分が抽出された二値画像の閾値として用いられた濃度値を示し、符号「−」の次の数値は、二値画像からの抽出順を示す。
図3の例では、濃度t0に対応する二値画像P0は、全体が一つの連結成分C0−1となっている。一方、濃度t6に対応する二値画像P6は連結成分を含んでいない。
図3に示した二値画像P1は、2個の連結成分C1−1、C1−2を含んでいる。また、図3に示した二値画像P2は、3個の連結成分C2−1,C2−2,C2−3を含んでいる。同様に、図3に示した二値画像P3は、5個の連結成分C3−1,C3−2、C3−3,C3−4,C3−5を含んでいる。また、図3に示した二値画像P4は、7個の連結成分C4−1,C4−2,C4−3,C4−4,C4−5,C4−6,C4−7を含んでいる。また、図3に示した二値画像P5は、12個の連結成分C5−1,C5−2,C5−3,C5−4,C5−5,C5−6,C5−7,C5−8,C5−9,C5−10,C5−11,C5−12を含んでいる。
図4は、図3に示した連結成分の包含関係を示す成分ツリーの例を示す。なお、図4において、縦軸tは、濃度を示す。また、濃度t0〜t5のそれぞれを示す破線上に示した楕円のそれぞれは、濃度t0〜t5のそれぞれに対応する二値化画像P0〜P5から抽出された連結成分を示すノードである。なお、図4に示した成分ツリーおいて、各ノードは、当該ノードが示す連結成分と同一の符号で示される。
図4に示した成分ツリーにおいて、濃度t0〜t5のそれぞれに対応する階層に含まれる各ノードは、図3に示した二値画像P0〜P5のそれぞれに含まれる連結成分を示す。例えば、濃度t0に対応する階層に含まれるノードC0−1は、二値画像P0に含まれる連結成分C0−1を示す。また、濃度t1に対応する階層に含まれるノードC1−1,C1−2は、二値画像P1に含まれる連結成分C1−1,C1−2を示す。同様に、濃度t2に対応する階層に含まれるノードC2−1,C2−2,C2−3は、二値画像P2に含まれる連結成分C2−1,C2−2,C2−3を示す。また、濃度t3に対応する階層に含まれるノードC3−1,C3−2,C3−3,C3−4,C3−5は、二値画像P3に含まれる連結成分C3−1,C3−2,C3−3,C3−4,C3−5を示す。また、濃度t4に対応する階層に含まれるノードC4−1,C4−2,C4−3,C4−4,C4−5,C4−6,C4−7は、二値画像P4に含まれる連結成分C4−1,C4−2,C4−3,C4−4,C4−5,C4−6,C4−7を示す。同様に、濃度t5に対応する階層に含まれるノードC5−1,C5−2,C5−3,C5−4,C5−5,C5−6は、二値画像P5に含まれる連結成分C5−1,C5−2,C5−3,C5−4,C5−5,C5−6を示す。そして、濃度t5に対応する階層に含まれるノードC5−7,C5−8,C5−9,C5−10,C5−11,C5−12は、二値画像P5に含まれる連結成分C5−7,C5−8,C5−9,C5−10,C5−11,C5−12を示す。
図4に示した成分ツリーにより、図3に示した連結成分間の包含関係は、最も薄い濃度t0に対応する階層を最上位とする階層構造で示される。図4に示した成分ツリーにおいて、ある階層のノードと一つ下の階層のノードとを接続する実線で示した階層エッジは、下位の階層に属するノードが上位の階層に属するノードに包含される子ノードであることを示す。
例えば、図4に示した成分ツリーは、成分ツリーのルートノードであるノードC0−1とノードC1−1,C1−2のそれぞれとを結ぶ階層エッジにより、ノードC1−1,C1−2がルートノードの子ノードであることを示す。また、成分ツリーは、ノードC1−1とノードC2−1,C2−2のそれぞれとを結ぶ階層エッジにより、ノードC2−1,C2−2がノードC1−1の子ノードであることを示す。同様に、成分ツリーは、ノードC1−2とノードC2−3とを結ぶ階層エッジにより、ノードC2−3は、ノードC1−2の子ノードであることを示す。また、成分ツリーは、ノードC2−1,C2−2のそれぞれとノードC3−1,C3−2のそれぞれとを結ぶ階層エッジにより、ノードC3−1がノードC2−1の子ノードであり、ノードC3−2がノードC2−2の子ノードであることを示す。一方、成分ツリーは、ノードC2−3とノードC3−3,C3−4,C3−5のそれぞれとを結ぶ階層エッジにより、ノードC3−3,C3−4,C3−5のそれぞれがノードC2−3の子ノードであることを示す。また、成分ツリーは、ノードC3−1とノードC4−1、C4−2のそれぞれとを結ぶ階層エッジにより、ノードC4−1,C4−2のそれぞれがノードC3−1の子ノードであることを示す。また、成分ツリーは、ノードC3−2,C3−3のそれぞれとノードC4−3,C4−4のそれぞれとを結ぶ階層エッジにより、ノードC4−3がノードC3−2の子ノードであり、ノードC4−4がノードC3−3の子ノードであることを示す。同様に、成分ツリーは、ノードC3−4とノードC4−5とを結ぶ階層エッジにより、ノードC4−5がノードC3−4の子ノードであることを示す。また、成分ツリーは、ノードC3−5とノードC4−6,C4−7のそれぞれとを結ぶ階層エッジにより、ノードC4−6及びノードC4−7がノードC3−5の子ノードであることを示す。また、成分ツリーは、ノードC4−2とノードC5−1,C5−2とを結ぶ階層エッジにより、ノードC5−1及びノードC5−2がノードC4−2の子ノードであることを示す。また、成分ツリーは、ノードC4−3とノードC5−3,C5−4,C5−5のそれぞれとの間を結ぶ階層エッジにより、ノードC5−3,ノードC5−4およびノードC5−5は、ノードC4−3の子ノードであることを示す。同様に、成分ツリーは、ノードC4−4とノードC5−6,C5−7のそれぞれとを結ぶ階層エッジにより、ノードC5−6及びノードC5−7がノードC4−4の子ノードであることを示す。また、成分ツリーは、ノードC4−5とノードC5−8,C5−9のそれぞれとを結ぶ階層エッジにより、ノードC5−8及びノードC5−9がノードC4−5の子ノードであることを示す。また、成分ツリーは、ノードC4−6とノードC5−10,C5−11のそれぞれとを結ぶ階層エッジにより、ノードC5−10及びノードC5−11がノードC4−6の子ノードであることを示す。そして、成分ツリーは、ノードC4−7とノードC5−12とを結ぶ階層エッジにより、ノードC5−12がノードC4−7の子ノードであることを示す。
図4に示した成分ツリーは、成分ツリーに含まれる各ノードを次に挙げる情報を含むノード情報で表すことで、表現されてもよい。
各ノードを表すノード情報は、正の整数で示されるノード番号と、当該ノードが属する階層を示す濃度値と、当該ノードの包含関係を示す情報と、当該ノードで示される連結成分の画像GGR内での位置及び大きさを示す情報とを含んでいる。各ノードを表すノード情報は、当該ノードの包含関係を示す情報として、当該ノードに接続される下層のノード(子ノード)を示すノード番号および子ノードの数と、当該ノードに接続される上層のノード(親ノード)を示すノード番号とを含んでいる。また、各ノードを表すノード情報は、連結成分の画像内での位置及び大きさを示す情報として、連結成分に外接する矩形である外接矩形の外接矩形の左上の頂点及び右下の頂点の画像GGRにおける座標と、連結成分に含まれる画素の数とを含んでいる。
図1に示した第2生成部14は、成分ツリーに含まれる各ノードのノード情報に基づいて、同じ濃度を示す閾値を用いて抽出され、かつ、画像GGRにおいて互いの距離が所定の第1値以下である連結成分を示すノードを互いに接続する第2エッジを生成する。なお、第2エッジは、成分ツリー内で同じ階層に属するノードであって、画像GGRにおいて隣接する連結成分を示すノード間を接続することから、以下の説明において、第2エッジは隣接エッジと称される場合がある。
図5は、図1に示した第2生成部14によって生成される隣接エッジの例を示す。図5の例は、図1に示した第1抽出部11によって、ある濃度を示す閾値を用いて画像GGRから連結成分C%−1,C%−2,C%−3,C%−4が抽出された場合に、第2生成部14によって生成される隣接エッジを示す。なお、連結成分を示す符号において、符号「C」の後の符号「%」は、任意の濃度値を示す。
図5(A)は、画像GGRにおける連結成分C%−1〜C%−4の位置関係を示す。図5(A)において、座標軸X,Yは、画像GGRにおいて、図5の左上の頂点を原点とし、画像GGRにおける位置を示す。
また、図5(B)は、図5(A)に示した連結成分C%−1〜C%−4を示すノードC%−1〜C%−4を含む成分ツリーのノードC%−1〜C%−4が属する階層において、図1に示した第2生成部14によって生成される隣接エッジの例を示す。
図5(A)において、連結成分C%−1,C%−2,C%−3,C%−4のそれぞれを囲む破線で示した矩形は、連結成分C%−1,C%−2,C%−3,C%−4のそれぞれに対応する外接矩形R1,R2,R3,R4を示す。図5(A)に示した座標軸X,Yで示される座標系において、外接矩形R1の左上頂点Qs1は座標(Xs1,Ys1)で示され、右下頂点Qe1は座標(Xe1,Ye1)で示される。同様に、外接矩形R2の左上頂点Qs2は座標(Xs2,Ys2)で示され、右下頂点Qe2は座標(Xe2,Ye2)で示される。また、外接矩形R3の左上頂点Qs3は座標(Xs3,Ys3)で示され、右下頂点Qe3は座標(Xe3,Ye3)で示される。同様に、外接矩形R4の左上頂点Qs4は座標(Xs4,Ys4)で示され、右下頂点Qe4は座標(Xe4,Ye4)で示される。
図1に示した第2生成部14は、図5(A)に示した外接矩形R1〜R4の中から2つを順次に選択し、例えば、次のようにして、選択した2つの外接矩形の相互の距離を計算する。
第2生成部14は、外接矩形R1の右下頂点Qe1のX座標Xe1から外接矩形R2の左上頂点Qs2のX座標Xs2を減じた値Lx1と、外接矩形R2の右下頂点Qe2のX座標Xe2から外接矩形R1の左上頂点Qs1のX座標Xs1を減じた値Lx2を求める。図5(A)に示したように、値Lx1と値Lx2との双方が正の値である場合に、第2生成部14は、外接矩形R1,R2はX軸方向で重複すると判断し、外接矩形R1,R2のX軸方向の距離を零とする。
一方、図5(A)に示した外接矩形R1、R3の組み合わせのように、外接矩形R1の右下頂点Qe1のX座標Xe1から外接矩形R3の左上頂点Qs3のX座標Xs3を減じた値が負になる場合に、第2生成部14は、2つの外接矩形にX軸方向で重複する部分はないと判断する。この場合に、第2生成部14は、一方の外接矩形の右下頂点のX座標と他方の外接矩形の左上頂点のX座標との差の絶対値と、一方の外接矩形の左上頂点のX座標と他方の外接矩形の右下頂点のX座標との差の絶対値との小さい方を、2つの外接矩形のX軸方向の距離とする。
例えば、図5(A)に示した外接矩形R1と外接矩形R3とのX軸方向の距離Dx1−3は、外接矩形R1の右下頂点Qe1のX座標Xe1と外接矩形R3の左上頂点Qs3のx座標Xs3との差で示される。同様に、図5(A)に示した外接矩形R2と外接矩形R3とのX軸方向の距離Dx2−3は、外接矩形R2の右下頂点Qe2のX座標Xe2と外接矩形R3の左上頂点Qs3のX座標Xs3との差で示される。また、図5(A)に示した外接矩形R3と外接矩形R4とのX軸方向の距離Dx3−4は、外接矩形R3の右下頂点Qe3のX座標Xe3と外接矩形R4の左上頂点Qs4のX座標Xs4との差で示される。
また、第2生成部14は、図5(A)に示した外接矩形R1〜R4の中から2つを順次に選択し、X軸方向の距離と同様にして、Y軸方向の距離を求める。
図5(A)に示した外接矩形R1、R2,R3から2つを選択する場合に、全ての組み合わせに含まれる2つの外接矩形は、Y軸方向に互いに重複する部分を持っている。このため、第2生成部14は、外接矩形R1、R2,R3から2つを選択する全ての組み合わせについてのY軸方向の距離を零とする。
一方、図5(A)に示した外接矩形R3と外接矩形R4とのY軸方向の距離Dy3−4は、外接矩形R3の右下頂点Qe3のY座標Ye3と外接矩形R4の左上頂点Qs4のY座標Ys4との差で示される。
図1に示した第2生成部14は、2つの外接矩形のX軸方向の距離が閾値Thx以下であり、かつ、2つの外接矩形のY軸方向の距離が閾値Thy以下である場合に、選択した2つの外接矩形で示される連結成分を隣接エッジで互いに接続する。ここで、閾値Thx,Thyは、2つの連結成分間の画像GGRにおける距離の近さを判定するための閾値であり、第1値の一例である。閾値Thxは、例えば、画像GGRに含まれる文字のX軸方向の幅程度に設定されることが望ましく、閾値Thyは、画像GGRに含まれる文字のY軸方向の高さ程度に設定されることが望ましい。
例えば、第2生成部14は、図5(A)に示した外接矩形R1,R2について求めたX軸方向の距離及びY軸方向の距離がともに零となることから、画像GGRにおける連結成分C%−1,C%−2間の距離は所定の第1値以下であると判定する。そして、第2生成部14は、図5(B)に示すように、連結成分C%−1,C%−2を示すノードC%−1,C%−2を隣接エッジE−12,E−21で双方向に接続する。
また、第2生成部14は、図5(A)に示した外接矩形R1,R3について求めたX軸方向の距離が閾値Thx以下であり、Y軸方向の距離が零となることから、画像GGRにおける連結成分C%−1,C%−3間の距離が所定値以下であると判定する。そして、第2生成部14は、図5(B)に示すように、連結成分C%−1,C%−3を示すノードC%−1,C%−3を隣接エッジE−13,E−31で双方向に接続する。
同様に、第2生成部14は、図5(A)に示した外接矩形R2,R3について求めたX軸方向の距離が閾値Thx以下であり、Y軸方向の距離が零となることから、画像GGRにおける連結成分C%−2,C%−3間の距離が所定値以下であると判定する。そして、第2生成部14は、図5(B)に示すように、連結成分C%−2,C%−3を示すノードC%−2,C%−3を隣接エッジE−23,E−32で双方向に接続する。
一方、第2生成部14は、図5(A)に示した外接矩形R3,R4について求めたY軸方向の距離は閾値Thy以下であるが、X軸方向の距離が閾値Thxを超えていることから、画像GGRでの連結成分C%−3,C%−4間の距離は所定値を超えていると判定する。このため、第2生成部14は、連結成分C%−3,C%−4を示すノードC%−3,C%−4隣接エッジで接続しない。同様に、第2生成部14は、図5(A)に示した連結成分C%−1と連結成分C%−4との距離および連結成分C%−2と連結成分C%−4との距離は、いずれも所定値を超えていると判定する。したがって、連結成分C%−1を示すノードC%−1と連結成分C%−4を示すノードC%−4とは隣接エッジで接続されず、連結成分C%−2を示すノードC%−2と連結成分C%−4を示すノードC%−4とは隣接エッジで接続されない。
図1に示した第2生成部14は、同じ濃度に対応する階層に含まれるノードのうち、画像GGRにおいて互いに近接するノードを接続する隣接エッジを、第1生成部12によって生成された成分ツリーに追加することでグラフを生成する。即ち、第2生成部14によって、隣接エッジを追加することにより、画像GGRから抽出された連結成分について、成分ツリーによって示される包含関係の階層構造とともに、画像GGRにおける2次元的な位置関係を示すグラフを生成することができる。
以下の説明において、第2生成部14によって生成されるグラフは、CT(Component Tree)グラフと称される場合がある。
図6は、図1に示した第2生成部14によって生成されるCTグラフの例を示す。図6に示したCTグラフは、図1に示した第2生成部14により、図4に示した成分ツリーに、図5で説明した処理により生成した隣接エッジを追加することで生成される。
図6に示したCTグラフにおいて、最上位の階層である濃度t0の階層に属するソースノードScは、図4に示した成分ツリーのルートノードであるノードC0−1に相当する。
図1に示した第2生成部14は、成分ツリーで示される階層構造において、成分ツリーのルートを示すソースノードScが属する階層に対極する階層のノードとして、図6に示すシンクノードSkを追加することが望ましい。
図6に示したCTグラフは、図1に示した第2生成部14により、最下位の階層である濃度t6の階層に属するノードとして、シンクノードSkを追加した例である。
また更に、第2生成部14は、成分ツリーで示される階層構造において、下位の階層のノードに接続されないことが示されたノードのそれぞれと、追加したシンクノードSkとを階層エッジで接続することが望ましい。
図6に示したCTグラフにおいて、濃度t1の階層に属するノードC1−1,C1−2を双方向に接続する矢印は、ノードC1−1,C1−2について、図5で説明した処理により第2生成部14によって生成され、CTグラフに追加された隣接エッジを示す。同様に、図6に示したCTグラフにおいて、濃度t2の階層に属するノードC2−1,C2−2,C2−3を接続する矢印は、ノードC2−1,C2−2,C2−3について、第2生成部14によってCTグラフに追加された隣接エッジを示す。また、図6に示したCTグラフにおいて、濃度t3の階層に属するノードC3−1〜C3−5を接続する矢印は、ノードC3−1〜C3−5について、第2生成部14によってCTグラフに追加された隣接エッジを示す。同様に、図6に示したCTグラフにおいて、濃度t4の階層に属する7個のノードC4−1〜C4−7を接続する矢印は、ノードC4−1〜C4−7について、第2生成部14によってCTグラフに追加された隣接エッジを示す。また、図6に示したCTグラフにおいて、濃度t5の階層に属するノードC5−1〜C5−12を接続する矢印は、ノードC5−1〜C5−12について、第2生成部14によってCTグラフに追加された隣接エッジの例を示す。
なお、図6に示したCTグラフは、各階層に属する連結成分のうち、例えば、検出順を示す番号順に選択した2つの連結成分が、図5で説明した処理の過程で、互いに近接していると判定された場合の例を示している。また、図6に示したCTグラフにおいては、同じ階層に属するノード間を一つおきあるいは複数個おきで接続する隣接エッジの図示は省略されている。
また、図6に示したCTグラフは、ノードC5−1〜C5−12およびノードC4−1とシンクノードSkとを接続する階層エッジを含む。即ち、シンクノードSkに接続される階層エッジは、図4に示した成分ツリーの葉に当たるノードに接続される。
第2生成部14によって生成されたCTグラフに含まれる各ノードを表すノード情報は、成分ツリーの各ノードを表すノード情報に加えて、ノードの種類を示す種別情報と、隣接エッジで接続されるノードを示すノード番号と、隣接エッジの個数とを含む。ここで、ノードの種類を示す種別情報は、ノードがソースノードであるかシンクノードであるかソースノード及びシンクノード以外の一般ノードであるかを示す情報である。また、CTグラフに含まれる各ノードを表すノード情報は、成分ツリーの各ノードを表すノード情報に含まれる子ノードを示す情報として、階層エッジで下位側に接続されるノードのノード番号を含む。同様に、CTグラフに含まれる各ノードを表すノード情報は、成分ツリーの各ノードを表すノード情報に含まれる子ノードの数に相当する情報として、階層エッジの数を含む。
一方、図1に示した認識部13は、第1抽出部11によって画像GGRから抽出された連結成分について文字認識を行う。また、認識部13は、各連結成分についての文字認識により、連結成分に類似する文字を示す候補文字とともに、候補文字の確からしさとして、例えば、連結成分の特徴と候補文字で示される文字の特徴との違いの大きさを示す認識距離を求める。認識距離は、連結成分が候補文字で示される文字を表している可能性が高いほど小さい値により、候補文字の確からしさを示す指標の一例である。
認識部13は、例えば、第1生成部12により成分ツリーを生成する処理あるいは第2生成部14により、CTグラフを生成する処理と並行して、各連結成分の文字認識を行ってもよい。
また、認識部13は、成分ツリーの各ノードについての文字認識で得られた候補文字を示す文字コード及び認識距離を、第2生成部14によって生成されたCTグラフの各ノードを表すノード情報に追加する。
例えば、認識部13は、図3に示した二値画像P2に含まれる連結成分C2−2について文字認識を行うことで、候補文字「i」を示す文字コードとともに、認識距離として、候補文字が確からしいことを示す値を得る。そして、認識部13は、成分ツリーに含まれるノードC2−2のノード情報に、候補文字「i」を示す文字コードと、候補文字に対応して得られた認識距離を追加する。ここで、候補文字が確からしい場合に得られる認識距離は、例えば、数値「1500」〜数値「2000」程度の範囲にばらつく場合が多く、認識距離として例えば数値「1000」以下の値が得られることはまれである。このため、候補文字が確からしいと判断される最大の認識距離は、例えば、数値「2000」〜数値「2500」程度の範囲に含まれる値に設定される場合が多い。逆に、文字認識により、確からしい候補文字が得られなかった場合に得られる認識距離は、例えば、数値「4000」〜数値「5000」程度の範囲にばらつく場合が多く、認識距離として例えば1万を超える値が得られることはまれである。
同様に、認識部13は、図3に示した二値画像P3に含まれる連結成分C3−1について文字認識を行うことで、候補文字「F」を示す文字コードとともに、認識距離として、候補文字が確からしいことを示す値を得る。また、認識部13は、同じく二値画像P3に含まれる連結成分C3−2、C3−3,C3−4,C3−5についての文字認識により、候補文字「i」,「r」,「s」,「t」を示す文字コードと、それぞれの認識距離として、各候補文字が確からしいことを示す値を得る。そして、認識部13は、成分ツリーに含まれるノードC3−1、C3−2,C3−4,C3−4,C3−5のノード情報のそれぞれに、候補文字「F」,「i」,「r」,「s」,「t」を示す文字コードと、各候補文字に対応して得られた認識距離を追加する。
また、認識部13は、図3に示した二値画像P4に含まれる連結成分C4−4、C4−5,C4−6について文字認識を行うことで、候補文字「r」,「s」,「t」を示す文字コードと、それぞれの認識距離として、各候補文字が確からしいことを示す値を得る。そして、認識部13は、成分ツリーに含まれるノードC4−4、C4−5,C4−6のノード情報のそれぞれに、候補文字「r」,「s」,「t」を示す文字コードと、各候補文字に対応して得られた認識距離を追加する。
一方、認識部13により、図3に示した他の連結成分について文字認識を行うことで得られる認識距離は、いずれも、確からしい候補文字が得られなかった場合に認識距離として得られる値となる。したがって、成分ツリーに含まれる他のノードを表すノード情報のそれぞれに対して、認識部13は、いずれも、確からしい候補文字が得られなかった場合に得られる値をそれぞれについて得られた候補文字に対応する認識距離として追加する。
図1に示した設定部15は、図6に示したCTグラフに含まれる各ノードを表すノード情報に基づいて、CTグラフに含まれる階層エッジ及び隣接エッジのそれぞれに、後述するグラフカット処理で用いるコストを設定する。設定部15は、図6に示したシンクノードSkに接続された階層エッジを除く階層エッジのそれぞれに、当該階層エッジで接続された2つのノードのうち、下位の階層のノードのノード情報で示された認識距離に比例する値を第1コストとして設定する。
また、設定部15は、CTグラフに含まれる全ての隣接エッジのそれぞれに、所定の第2値を有する第2コストを割り当てる。設定部15は、第2値として、例えば、文字である可能性が高い連結成分について認識部13による文字認識を行った場合に得られる平均的な認識距離を示す値より小さい値(例えば、数値「50」〜数値「80」)を設定することが望ましい。より好ましくは、設定部15は、文字認識で得られた候補文字が確からしい場合に得られる認識距離の平均値を所定の定数で除した値を第2コストとして、各隣接エッジに設定することが望ましい。なお、候補文字が確からしい場合に得られる認識距離の平均値から第2コストを算出する際に用いる定数の値は、CTグラフで示される階層構造に含まれる階層の数に応じて設定することが望ましい。即ち、画像GGRから連結成分を抽出する際に用いた濃度の段階の数の増大に伴って、第2コストの算出に用いる定数の値を大きい値を設定することが望ましい。
更に、設定部15は、シンクノードに接続された階層エッジに、所定の第3値を有する第1コストを割り当てる。設定部15は、例えば、第3値として、確からしい候補文字が得られなかった場合に認識部13で認識距離として得られる値よりも小さい値を用いることが望ましい。より好ましくは、設定部15は、第3値として、シンクノードに接続された階層エッジに、例えば、文字を表していない可能性が高い連結成分について認識部13で得られる認識距離の半分程度の値(例えば、数値「2500」)を用いることが望ましい。
ここで、図6に示したCTグラフの濃度t3の階層に属するノードC3−1〜C3−5のノード情報のそれぞれは、図1に示した認識部13による文字認識により確からしい候補文字が得られたことを示す認識距離を含んでいる。同様に、CTグラフの濃度t2の階層に属するノードC2−2のノード情報は、認識部13による文字認識で確からしい候補文字が得られたことを示す認識距離を含んでいる。また、CTグラフの濃度t4の階層に属するノードC4−4、C4−5,C4−6のそれぞれのノード情報は、認識部13による文字認識で確からしい候補文字が得られたことを示す認識距離を含んでいる。
一方、CTグラフに含まれる他のノードのそれぞれを表すノード情報に含まれる認識距離は、いずれも、認識部13による文字認識で確からしい候補文字が得られなかったことを示す。
したがって、図1に示した設定部15によって、ノードC2−1とノードC3−1とを結ぶ階層エッジおよびノードC2−2とノードC3−2とを結ぶ階層エッジに設定される第1コストは、確からしい候補文字が得られたことを示す認識距離に相当する値となる。同様に、ノードC2−3とノードC3−3、C3−4,C3−5のそれぞれとを結ぶ階層エッジに設定部15によって設定される第1コストは、確からしい候補文字が得られたことを示す認識距離に相当する値となる。また、ノードC1−1とノードC2−2とを結ぶ階層エッジに設定部15によって設定される第1コストは、確からしい候補文字が得られたことを示す認識距離に相当する値となる。更に、設定部15により、ノードC3−3、C3−4,C3−5のそれぞれとノードC4−4,C4−5,C4−6のそれぞれとを結ぶ階層エッジに設定される第1コストは、確からしい候補文字が得られたことを示す認識距離に相当する値となる。なお、図6に示したCTグラフにおいて、太い破線で示した階層エッジは、確からしい候補文字が得られたことを示す認識距離に相当する値の第1コストが設定された階層エッジを示している。
一方、図6のCTグラフにおいて、実線で示した階層エッジのそれぞれに、設定部15によって設定される第1コストは、確からしい候補文字が得られたことを示す認識距離に相当する値よりも大きい値となる。
図1に示したグラフカット部16は、例えば、図6に示したCTグラフに含まれる複数のノードを2つの部分集合に分割する境界を示す複数のカットの中から、他のカットよりもコストの総和が小さくなるカットを求める。ここで、カットのコストの総和とは、カットに跨る階層エッジに割り当てられた第1コストと、カットに跨る隣接エッジに割り当てられた第2コストとの総和である。なお、カットに跨る階層エッジとは、カットによって、階層エッジの両端のノードがソースノードを含む部分集合とシンクノードを含む部分集合とに分けられる階層エッジである。一方、カットに跨る隣接エッジとは、カットにより、ソースノードを含む部分集合に分けられたノードからシンクノードを含む部分集合に分けられたノードに向かう方向の隣接エッジである。例えば、図6に示したノードC4−1からノードC4−2に向かう隣接エッジは、ノードC4−1をソースノードを含む部分集合の要素とするとともにノードC4−2をシンクノードを含む部分集合の要素とするカットに跨る隣接エッジである。即ち、図1に示したグラフカット部16は、グラフを示す情報に含まれる複数の連結成分を2つの部分集合に分割する境界の中から、コストの総和が、他の境界よりも小さくなる境界を求める分割部に相当する。
グラフカット部16は、例えば、フォード・ファルカーソンの方法等を用いることで、図6に示したCTグラフにつき、コストの総和を最小とする最小カットを求める。
図6に点線で示した曲線γmは、図6に示したCTグラフについて、図1に示したグラフカット部16によって求められる最小カットの一例を示す。図6に示した最小カットγmは、CTグラフを、濃度t1、t2の階層に含まれる各ノードとソースノードScとを含む部分集合と、濃度t3〜t5の階層に含まれる各ノードとシンクノードSkとを含む部分集合とに分割する。以下の説明では、図6に示したソースノードScを含む部分集合はソース側の部分集合と称され、また、シンクノードSkを含む部分集合はシンク側の部分集合と称される場合がある。
ここで、CTグラフに含まれる階層エッジのうち、濃度値が高い側に、確からしい候補文字が得られた連結成分が接続された階層エッジに割り当てられた第1コストは、他の階層エッジの第1コストに比べて値が小さい。このため、濃度値が高い側に、確からしい候補文字が得られた連結成分が接続された階層エッジを多く切断するカットは、グラフカット部16により、他のカットに比べて最小カットとして選ばれやすい。
例えば、図6に示した最小カットγmは、確からしい候補文字が得られたことを示す認識距離に相当する値の第1コストが設定された階層エッジのうち、濃度t2の階層のノードと濃度t3の階層のノードとを接続する階層エッジを切断している。これにより、階層エッジで接続され、ともに確からしい候補文字が得られた複数のノードを含むノードの系列のそれぞれは、図6に示した最小カットγmにより、同一の階層の境界を境として、ソース側の部分集合とシンク側の部分集合とに分けられている。つまり、ノードC2−2,C3−2を含むノードの系列と、ノードC3−3,C4−4を含むノードの系列と、ノードC3−4,C4−5を含むノードの系列と、ノードC3−5,C4−6を含むノードの系列とは、濃度t2、t3の階層の境界で区分されている。言い換えれば、図6に示した最小カットγmは、CTグラフを階層方向の凹凸が少ない断面となっている。
ところで、例えば、ノードC2−2とノードC3−2とについて得られた認識距離とがほぼ同等である場合に、第1コストの総和は、ノードC2−2をソース側の部分集合に含めるカットとシンク側の部分集合に含めるカットとでほぼ同等となる。しかしながら、他のノードの系列を区分する階層方向の位置を維持したまま、ノードC2−2をシンク側の部分集合に含めるカットの総コストは、図6に示した最小カットγmよりも大きくなる。なぜなら、図6に一点鎖線で示したように、ノードC2−2をシンク側の部分集合に含めるカットγaltは、ノードC2−1からノードC2−2に向かう隣接エッジとノードC2−3からノードC2−2に向かう隣接エッジとを切断することになるからである。ノードC3−3,C4−4を含むノードの系列と、ノードC3−4,C4−5を含むノードの系列と、ノードC3−5,C4−6を含むノードの系列とについても同様のことが言える。
つまり、図6に示したCTグラフのように、複数のノードの系列を含むCTグラフをカットする場合に、ノードの系列のそれぞれを互いに異なる階層の境界で切断するカットよりも、同じ階層の境界で切断するカットの方がコストの総和が小さくなりやすい。なぜなら、同じ階層の境界で切断するカットの方が、切断する隣接エッジの数が少なくなるからである。
すなわち、CTグラフに含まれる隣接エッジのそれぞれに第2コストを設定することで、複数のノードの系列のそれぞれを互いに異なる階層の境界で切断するカットよりも、同じ階層の境界で切断するカットが最小カットとして選ばれやすくする効果を持っている。
階層エッジで接続されたノードの系列のそれぞれを同じ階層の境界で切断するカットが最小カットとして選ばれやすいという特徴は、画像GGRを背景とテキストとに切り分けるカットを求める上で有用である。なぜなら、テレビ放送をキャプチャすることで得られる画像やデジタルカメラなどで撮影された画像において、テキストに含まれる各文字は同じ色、即ち、同じ濃度で表される場合が多いからである。
つまり、図1に示したグラフカット部16により、異なる濃度を閾値として画像GGRから抽出された連結成分を示すノードを階層エッジと隣接エッジとで接続したCTグラフの最小カットを求めることで、画像GGRを背景とテキストとに切り分けることができる。
図1に示した第2抽出部17は、グラフカット部16で求められたカットで分割された2つの部分集合の一方に含まれるノードに対応する連結成分のそれぞれについて、認識部13で得られた候補文字を抽出することで、画像GGRに含まれるテキストを抽出する。第2抽出部17は、例えば、グラフカット部16で求められたカットで示される2つの部分集合のうち、図6に示したシンクノードSkを含む部分集合に属するノードのノード情報に基づいて、テキストを抽出することが望ましい。例えば、第2抽出部17は、図6に示したシンクノードSkを含む部分集合に属するノードの中から、CTグラフで示される階層構造においてソースノードSc側に突出した階層にあるノードを選択する。また、第2抽出部17は、選択したノードのそれぞれのノード情報から、候補文字を示す文字コードを抽出することで、画像GGRに含まれるテキストを抽出する。
図6の例では、シンクノードSkを含む部分集合に属するノードの中で、ソースノードSc側に突出した階層にあるノードは、ノードC3−1,C3−2,C3−3,C3−4,C3−5である。そして、ノードC3−1,C3−2,C3−3,C3−4,C3−5のそれぞれのノード情報は、候補文字「F」、「i」、「r」、「s」、「t」のそれぞれを示す文字コードを含んでいる。
すなわち、図1に示した第2抽出部17は、グラフカット部16で得られた最小カットγmによって分割されたシンク側の部分集合に属するノードのノード情報から、画像GGRに含まれるテキスト「First」を抽出することができる。
ここで、図5を用いて説明したように、図1に示した第2生成部14によって生成されるCTグラフに含まれる隣接エッジは、各ノードで示される連結成分の画像GGRにおける位置関係を示している。したがって、図1に示したグラフカット部16は、画像GGRにおいて予めテキストが含まれる領域を切り出しておかなくても、CTグラフを背景に対応するソース側の部分集合とテキストに対応するシンク側の部分集合とに分割するカットを求めることができる。すなわち、グラフカット部16は、画像GGRにおいて、例えば、テキストが二次元的に不規則に配置されている場合でも、画像GGRからテキストを切り出すカットを求めることができる。
したがって、図1に示した文字認識装置10は、画像GGRに含まれるテキストの配置にかかわらず、画像GGRからテキストを漏れなく抽出することができる。
図1に示した文字認識装置10は、背景にテキストよりも濃度が高い部分が含まれている画像から、テキストを高い精度で切り出すことも可能である。
図7は、グレースケール画像GGRの別例を示す。図7に示した画像GGRは、濃淡が大きく複雑に変化する背景Bgとともに、文字列「Roy」を前景Fgとして含んでいる。
図8は、図7に示したグレースケール画像GGRから抽出された連結成分の例を示す。図8の例は、画像GGRから、7段階の濃度t0〜t6を閾値として生成した7枚の二値画像G0,G1,G2,G3,G4,G5,G6のそれぞれから抽出した連結成分を示している。
図8に示した各連結成分を示す符号において、符号「C」の後の数値は、当該連結成分が抽出された二値画像の閾値として用いられた濃度値を示し、符号「−」の次の数値は、二値画像からの抽出順を示す。
図8の例では、濃度t0に対応する二値画像G0は、全体が一つの連結成分C0−1となっている。一方、濃度t6に対応する二値画像G6は連結成分を含んでいない。
図8に示した二値画像G1は、2個の連結成分C1−1、C1−2を含んでいる。また、図8に示した二値画像G2は、5個の連結成分C2−1,C2−2,C2−3,C2−4,C2−5を含んでいる。同様に、図8に示した二値画像G3は、7個の連結成分C3−1,C3−2、C3−3,C3−4,C3−5,C3−6,C3−7を含んでいる。また、図8に示した二値画像G4は、10個の連結成分C4−1,C4−2,C4−3,C4−4,C4−5,C4−6,C4−7,C4−8,C4−9,C4−10を含んでいる。また、図8に示した二値画像G5は、10個の連結成分C5−1,C5−2,C5−3,C5−4,C5−5,C5−6,C5−7,C5−8,C5−9,C5−10を含んでいる。更に、図8に示した二値画像G5は、7個の連結成分C5−11,C5−12,C5−13,C5−14,C5−15,C5−16,C5−17を含んでいる。
図9は、図1に示した第2生成部によって生成されるCTグラフの別例を示す。なお、図9において、縦軸tは、濃度を示し、濃度t0〜t5のそれぞれを示す点線上に示した楕円のそれぞれは、濃度t0〜t5のそれぞれに対応する二値化画像P0〜P5から抽出された連結成分を示すノードである。なお、図9に示したCTグラフおいて、各ノードは、当該ノードが示す連結成分と同一の符号で示される。
図9に示したCTグラフにおいて、濃度t0〜t5のそれぞれに対応する階層に含まれる各ノードは、図8に示した二値画像G0〜G5のそれぞれに含まれる連結成分を示す。例えば、濃度t0に対応する階層に含まれるソースノードScは、二値画像G0に含まれる連結成分C0−1を示す。また、濃度t1に対応する階層に含まれる2個のノードは、二値画像G1に含まれる連結成分C1−1,C1−2を示す。同様に、濃度t2に対応する階層に含まれる5個のノードは、二値画像G2に含まれる連結成分C2−1,C2−2,C2−3,C2−4,C2−5を示す。また、濃度t3に対応する階層に含まれる7個のノードは、二値画像G3に含まれる連結成分C3−1,C3−2、C3−3,C3−4,C3−5,C3−6,C3−7を示す。また、濃度t4に対応する階層に含まれる10個のノードは、二値画像G4に含まれる連結成分C4−1,C4−2,C4−3,C4−4,C4−5,C4−6,C4−7,C4−8,C4−9,C4−10を示す。同様に、濃度t5に対応する階層において左から10番目までのノードは、二値画像G5に含まれる連結成分C5−1,C5−2,C5−3,C5−4,C5−5,C5−6,C5−7,C5−8,C5−9,C5−10を示す。そして、濃度t5に対応する階層において左から11番目から17番目までのノードは、二値画像G5に含まれる連結成分C5−11,C5−12,C5−13,C5−14,C5−15,C5−16,C5−17を示す。
なお、図9に示したCTグラフは、各階層に属する連結成分のうち、例えば、検出順を示す番号順に選択した2つの連結成分が、図5で説明した処理の過程で、互いに近接していると判定された場合の例を示している。また、図9に示したCTグラフにおいては、同じ階層に属するノードを、一つおきあるいは複数個おきで接続する隣接エッジの図示は省略されている。
また、図9に示したCTグラフにおいて、図1に示した認識部13による文字認識処理により、確からしい候補文字「R」が得られたノードC4−3と、確からしい候補文字「o」が得られたノードC3−3,C4−5とを二重丸で示した。同様に、図9に示したCTグラフにおいて、確からしい候補文字「y」が得られたノードC3−5,C4−7を二重丸で示した。
また、図9に示したCTグラフにおいて、図1に示した設定部15により、確からしい候補文字が得られた場合の認識距離に相当する第1コストが設定された階層エッジを破線で示した。そして、図9に示したCTグラフにおいて、図1に示した設定部15により、確からしい候補文字が得られない場合の認識距離に相当する第1コストが設定された階層エッジを実線で示した。
そして、図9において、太い点線で示した曲線γmは、図7に示した画像GGRについて生成されたCTグラフについて、図1に示したグラフカット部16によって求められた最小カットを示す。
図9に示した最小カットγmにより、CTグラフは、ノードC4−3,C4−5,C3−5のそれぞれに対応する連結成分に包含されるノードとシンクノードSkとを含む部分集合と、CTグラフの他のノードを含むソース側の部分集合とに分割されている。
そして、図1に示した第2抽出部17は、図9に示した最小カットγmによる分割で得られたシンク側の部分集合の中で、階層の並び方向にソース側に突出した位置にあるノードのノード情報から、候補文字を示す文字コードを抽出することで、テキストを抽出する。つまり、第2抽出部17は、最小カットγmによる分割で得られたシンク側の部分集合から、ノードC4−3,C4−5,C3−5を検出し、これらのノードのノード情報に含まれる候補文字「R」,「o」,「y」を示す文字コードをそれぞれ抽出する。そして、第2抽出部17は、抽出した文字コードを、図7に示した画像GGRから抽出したテキストとして出力する。
以上に説明したように、図1に示した文字認識装置10は、図7に示したように、濃度の変化幅が大きくしかも複雑な背景を含む画像GGRから、テキストを抽出することができる。
ここで、図9に示したCTグラフにおいて、一点鎖線で囲んで示したノードの系列N1,N2,N3,N4,N5に属するノードは、確からしい候補文字が得られたノードC3−3,C3−5,C4−3,C4−5,C4−7のいずれとも包含関係を持っていない。また、これらのノードの系列N1〜N5に属する各ノードについて、図1に示した認識部13で得られた認識距離は、いずれも、確からしい候補文字が得られなかったことを示す。つまり、図9に示したノードの系列N1〜N5は、図7に示した画像GGRからのテキスト抽出におけるノイズである可能性が高い。そして、これらのノードの系列N1〜N5に属するノード間を接続する階層エッジに図1に示した設定部15により割り当てられた第1コストは、シンクノードSkに接続される階層エッジに第1コストとして割り当てられる第3値よりも大きい値となっている。
このため、ノードの系列N1〜N5に属するノード間を接続する階層エッジのいずれかを切断するカットよりも、ノードの系列N1〜N5に属するノードとシンクノードSkとを接続する階層エッジを切断するカットの方がコストの総和が小さくなりやすい。したがって、図1に示したグラフカット部16によって求められる最小カットは、ノードの系列N1〜N5に属する全てのノードをまとめてシンクノードSkから切り離すカットとなる可能性が高い。
すなわち、シンクノードSkに接続される階層エッジに一律に設定された第3コストは、ノードの系列N1〜N5のように、ノイズである可能性の高いノードの系列をシンクノードSkから切り離す最小カットがグラフカット部16で求められる可能性を高くする。つまり、設定部15により、シンクノードSkに接続される階層エッジに一律に第3コストを設定することで、グラフカット部16に、ノイズである可能性の高いノードの系列をシンク側の部分集合から切り離す最小カットを求めさせることができる。
これにより、図1に示した文字認識装置10は、図7に示したように、濃度の変化幅が大きくしかも複雑な背景を含む画像GGRから、高い精度でテキストを抽出することが可能となる。
図10は、図1に示した文字認識装置10の動作を示す。図10に示したステップS301〜ステップS307の処理は、図1に示した文字認識装置10の動作を示すとともに、文字認識方法および文字認識プログラムの例を示す。例えば、図10に示す処理は、文字認識装置10に搭載されたプロセッサが文字認識プログラムを実行することで実現される。なお、図10に示す処理は、文字認識装置10に搭載されるハードウェアによって実行されてもよい。すなわち、図10は、文字認識方法および文字認識プログラムの一実施形態を示す。
ステップS301において、図1に示した第1抽出部11は、例えば、変換装置CVによる変換処理で得られたグレースケール画像GGRを受け、受けたグレースケール画像GGRから複数の閾値を用いて連結成分を抽出する。なお、第1抽出部11は、デジタルカメラによる撮影で得られたグレースケール画像やスキャナ装置による読み取りで得られたグレースケール画像を、デジタルカメラやスキャナ装置から直接に受けてもよい。
ステップS302において、第1生成部12は、図3及び図4を用いて説明したようにして、ステップS301の処理で抽出した連結成分間の包含関係を探索することで、図4に示したような成分ツリーを生成する。
ステップS303において、図1に示した認識部13は、成分ツリーに含まれる各ノードに対応する連結成分について文字認識を行い、文字認識結果として得られる候補文字を示す文字コードと認識距離とを、各ノードを表すノード情報に追加する。
なお、認識部13によるステップS303の処理と、第1生成部12によるステップS302の処理とは、図10に示した順序とは逆の順序で実行されてもよいし、また、並行して実行されてもよい。
ステップS304において、図1に示した第2生成部14は、ステップS302の処理で生成した成分ツリーに、図5を用いて説明した隣接エッジと、図6に示したシンクノードSk及びシンクノードSkに接続される階層エッジを追加することでCTグラフを生成する。
ステップS305において、設定部15は、図6を用いて説明したようにして、CTグラフに含まれる階層エッジのそれぞれおよび隣接エッジのそれぞれへのコストの設定を行う。設定部15は、図6または図9に示したCTグラフのシンクノードSkに接続される階層エッジ以外の階層エッジのそれぞれに、当該階層エッジで接続される2つのノードのうち子に当たるノードのノード情報に含まれる認識距離に比例する第1コストを設定する。また、設定部15は、CTグラフに含まれる全ての隣接エッジに、一律に、確からしい候補文字が得られた場合の認識距離よりも小さい値を持つ第2コストを設定する。また、設定部15は、シンクノードSkに接続される全ての階層エッジに、一律に、確からしい候補文字が得られなかった場合の認識距離よりも小さい値を持つ第3コストを設定する。
ステップS306において、図1に示したグラフカット部16は、ステップS304の処理で生成されたCTグラフについてのグラフカットを実行し、例えば、図11に示すような最小カットγmを求める。
図11は、図10に示したステップS306の処理で得られる最小カットγmの例を示す。図11において、縦軸tは、濃度t(k),t(k−1),t(k−2),t(k−3),t(k−4),t(k−5),t(k−6)の順に薄くなっていく濃度を示す。
図11において、破線で囲まれた図形は、図10に示したステップS304の処理で生成される概念的なCTグラフCTGを示す。
図11に示したCTグラフCTGにおいて、網掛けされた円形C1,C2,C3,C4,C5,C6,C7のそれぞれは、図1に示した認識部13により、確からしい候補文字が得られたノードを示す。また、CTグラフCTGにおいて、白い円形のそれぞれは、確からしい候補文字が得られなかったノードを示す。また、図11に示したCTグラフCTGにおいて、濃度を示す階層方向にノード間を接続する線分は階層エッジを示し、CTグラフCTGの各階層に含まれるノード間を接続する矢印は、ノード間を双方向に接続する隣接エッジを示す。
図11は、CTグラフCTGに含まれる確からしい候補文字が得られたノードのうち、一部のノード(図11の例ではノードC4)が、他のノードとは異なる階層(図11の例では濃度t(k−6)の階層)に含まれる例を示す。
図11に示した例のように、確からしい候補文字が得られたノードの多くが一つあるいは隣接する階層に集中して分布しており、一部のノードが離れた階層に分布している場合に、離れた階層に含まれるノードは、画像に含まれるノイズを示している可能性が高い。つまり、確からしい候補文字が得られた他のノードとは離れた階層に含まれるノードは、画像に含まれる背景から抽出された連結成分のうち、偶然にも文字に似た形状を持つ連結成分を示す可能性が高い。
図11に示したCTグラフCTGについて、図1に示したグラフカット部16は、図10に示したステップS306の処理により、図11に実線で示した曲線γmを最小カットとして求める。図11に示した最小カットγmは、濃度t(k−2)の階層に含まれるノードC1〜C3とノードC5〜C7をシンクノードSkとともにシンク側の部分集合の要素とし、離れた階層に含まれるノードC4をシンク側の部分集合から切り離すカットである。
すなわち、グラフカット部16は、ステップS306の処理により、確からしい候補文字が得られたノードの集合のうち、ノイズである可能性の高いノードC4を除く要素をシンク側の部分集合に含めるカットを、最小カットγmとして求めることができる。
ここで、ステップS306の処理により、図11に点線で示した曲線γalt1のように、離れた階層に含まれるノードC4を含めて、確からしい候補文字が得られたノードの全てをシンク側の部分集合に含めるカットが最小カットとして選ばれることはない。
なぜなら、図11に示したカットγalt1は、最小カットγmに比べて、多くの隣接エッジを横切るため、隣接エッジに設定された第2コストのために、カットについてのコストの総和が大きくなるためである。
また、ステップS306の処理により、図11において鎖線で示した曲線γalt2のように、ノードC4に階層エッジで直接あるいは間接に接続されるノードの系列の一部をシンク側の部分集合の要素とするカットが最小カットとして選ばれることはない。
なぜなら、図11に示したカットγalt2は、確からしい候補文字が得られない場合の認識距離に相当する第1コストが設定された階層エッジを横切るため、最小カットγmに比べて、第1コストの総和が大きくなるためである。
したがって、図1に示したグラフカット部16は、確からしい候補文字が得られたノードの集合にノイズが混在する場合にも、テキストを示す可能性が高いCTグラフのノードを選択的にシンク側の部分集合に含めるカットを最小カットとして求めることができる。つまり、図1に示したグラフカット部16は、画像GGRに含まれるテキストを示すCTグラフのノードを高い精度で、背景から分離することができる。
そして、図10に示したステップS307において、図1に示した第2抽出部17は、ステップS306の処理で得られた最小カットγmにより、シンク側の部分集合の要素とされたノードのノード情報から候補文字を抽出することで、テキストの抽出を行う。例えば、第2抽出部17は、シンク側の部分集合に含まれるノードのうち、ソース側に突出した階層のノードに対応するノード情報から、候補文字を示す文字コードを抽出し、抽出した文字コードの集合を画像GGRから抽出したテキストとして出力する。
以上に説明したように、図1に示した文字認識装置10は、画像GGRから抽出した連結成分間の包含関係を示す階層エッジに文字認識で得た認識距離を示すコストを与え、近接する連結成分間のエッジに所定のコストを一律に与えたCTグラフを生成する。また、文字認識装置10は、生成したCTグラフにつき、カットに跨るエッジに設定されたコストが他のカットよりも小さくなる最小カットを求めることで、画像GGRに含まれる文字を表す連結成分を示すノードを漏れなく含むシンク側の部分集合を求める。そして、文字認識装置10は、シンク側の部分集合に含まれるノードのノード情報から、確からしい文字候補を示す文字コードを抽出することにより、画像GGRに含まれるテキストを漏れなく、しかも、高い精度で抽出することができる。
図12は、文字認識装置10の別実施形態を示す。なお、図12に示した構成要素のうち、図1に示した構成要素と同等のものは、同一の符号で示され、その説明は省略される場合がある。
図12に示した文字認識装置10は、図1に示した第1抽出部11、第1生成部12、第2生成部14、認識部13、設定部15、グラフカット部16及び第2抽出部17に加えて、グラフ管理テーブルGMTと、縮約部18とを含んでいる。
グラフ管理テーブルGMTは、CTグラフに含まれるノードのそれぞれを表すノード情報と、階層エッジのそれぞれおよび隣接エッジのそれぞれを表すエッジ情報とを含んでいる。グラフ管理テーブルGMTは、例えば、第1抽出部11によってグレースケール画像GGRから抽出された連結成分のそれぞれに与えられるノード番号に対応して、当該ノードを表すノード情報を保持する。また、グラフ管理テーブルGMTは、第1生成部12による包含関係の探索によって得られた階層エッジのそれぞれに、第1生成部12により与えられるエッジ番号に対応して、各階層エッジを表すエッジ情報を保持する。また、グラフ管理テーブルGMTは、第2生成部14によって生成される隣接エッジのそれぞれ及びシンクノードに接続される階層エッジのそれぞれに、第2生成部14によって与えられるエッジ番号に対応して、各隣接エッジおよび各階層エッジを表すエッジ情報を保持する。なお、第1生成部12および第2生成部14は、階層エッジ及び隣接エッジのそれぞれに、文字認識装置10内で一意のエッジ番号を与えることが望ましい。
第1抽出部11は、例えば、n(nは正の整数)段階の濃度を示す閾値を用いて、グレースケール画像GGRから閾値以上の濃度を持つ連結成分を抽出する。また、第1生成部12は、第1抽出部11によって抽出された連結成分の包含関係を探索することで得られた階層構造を示す成分ツリーを生成する。また、第1生成部12は、成分ツリーを生成する過程で、各連結成分を示すノードを表すノード情報として、ノードが属する階層を示す濃度値と、連結成分の外接矩形の左上の頂点及び右下の頂点の画像GGRにおける座標とを、グラフ管理テーブルGMTに保持させる。また、第1生成部12は、各連結成分を示すノードを表すノード情報として、連結成分に含まれる画素の数と、当該ノードの子ノードのそれぞれを示すノード番号と、子ノードの数とを、グラフ管理テーブルGMTに保持させる。更に、第1生成部12は、各連結成分を示すノードを表すノード情報として、当該ノードの親ノードを示すノード番号を、グラフ管理テーブルGMTに保持させる。
また、第1生成部12は、成分ツリーに含まれる各階層エッジを表すエッジ情報として、各階層エッジが接続するノードを示すノード番号を、エッジ番号に対応して、グラフ管理テーブルGMTに保持させる。
図12に示した縮約部18は、第1生成部12によってグラフ管理テーブルGMTに格納された情報に基づいて、第1生成部12によって生成された成分ツリーを簡略化するための縮約処理を行う。
縮約部18は、グラフ管理テーブルGMTに格納された情報に基づいて、階層エッジによって互いに接続されたノードの系列のそれぞれについて、連結成分の形状の濃度方向における安定性を調べる。縮約部18は、例えば、画像GGRに設定したxy軸に、濃度の変化方向を示すz軸を加えた3次元空間において、ノードの系列に含まれるノードに対応する連結成分で示される立体の体積の密度に基づいて、連結成分の形状の濃度方向における安定性を評価する。
濃度z1と濃度z1より薄い濃度を示す濃度z2で示される濃度の区間[z2,z1]において、ノードの系列に含まれるノードに対応する連結成分で示される立体の体積の密度は、式(1)を用いて計算することができる。なお、式(1)において、値vd(z1,z2)は、濃度の区間[z2,z1]に含まれる連結成分で示される立体の体積の密度を示し、関数S(z)は、濃度zにおける連結成分の面積、すなわち、連結成分に含まれる画素数を示す。
縮約部18は、例えば、ノードの系列のそれぞれについて、各連結成分の濃度を含む濃度の区間[z+h,z](z,hはいずれも正の整数)において、連結成分で示される立体の体積の密度vd(z,z+h)を式(1)を用いて算出する。そして、縮約部18は、算出した値が所定の閾値Thz以下である場合に、ノードの系列で示される連結成分は、濃度の区間[z+h,z]において形状が安定していると判断する。また、縮約部18は、連結成分の形状が安定していると判断したノードの系列に含まれる複数のノードを、一つの安定ノードに置き換える。なお、連結成分の形状が安定しているか否かを判断するための閾値Thzは、例えば、数値0.8程度の値に設定されることが望ましい。
図13は、図12に示した縮約部18による成分ツリーの縮約例を示す。図13において、縦軸tは、濃度を示す。なお、図13の例では、濃度の範囲を、最も薄い濃度を示す濃度t0から、濃度t1、t2、t3、t4、t5、t6、t7を経て、最も濃い濃度を示す濃度t8までの9段階で示している。また、図13(A)は、図12に示した第1生成部12によって生成される成分ツリーの例を示す。また、図13(B)は、図13(A)に示した成分ツリーについて、縮約部18による縮約を適用したことで得られる縮約後の成分ツリーの例を示す。
図13(A)に示した成分ツリーに含まれる円形のそれぞれは、第1抽出部11によって画像から抽出された連結成分を示すノードを示す。なお、図13(A)に示したノードのうち、濃度t0に対応する階層に含まれるノードは、成分ツリーのルートを示すルートノードRtである。
また、図13(A)において、破線で示す楕円Ng1,Ng2,Ng3のそれぞれは、対応する連結成分の形状が濃度方向に安定しているノードの系列を示す。
図12に示した縮約部18は、例えば、図13(A)に示したノードの系列Ng1,Ng2,Ng3のそれぞれに含まれる複数のノード(図13(A)の例では2つのノード)を、それぞれ一つの安定ノードに置き換えることで、図13(A)に示した成分ツリーを縮約する。
図13(B)において、網掛けされた円形C1,C2,C3のそれぞれは、縮約部18により、図13(A)に示したノードの系列Ng1,Ng2,Ng3のそれぞれを置き換えた安定ノードを示す。
ここで、図12に示した第1抽出部11は、画像GGRから連結成分を抽出する際に、例えば、256段階の濃度のそれぞれを用いる場合がある。この場合に、第1生成部12によって生成される成分ツリーにおいて、連結成分の形状が濃度方向に安定しているノードの系列のそれぞれは、階層エッジで接続された多数のノードを含む可能性が高い。
したがって、図13(A),(B)で説明したように、濃度方向に形状が安定している連結成分を示すノードの系列のそれぞれを、縮約部18により、一つの安定ノードに置き換えることで、第1生成部12で生成された成分ツリーを大幅に簡略化することができる。
縮約部18は、安定ノードに置き換えるノードの系列に含まれる各ノードを表すノード情報に基づいて、ノードの系列を置き換える安定ノードを表すノード情報を生成する。
縮約部18は、例えば、安定ノードへの置き換えの対象となるノードの系列に含まれる複数のノードの中から一つの代表ノードを選択し、選択した代表ノードのノード情報を安定ノードのノード情報としてもよい。縮約部18は、安定ノードへの置き換えの対象となるノードの系列に含まれる複数のノードのうち、最もルートノードRtに近い階層のノードを代表ノードとして選択してもよいし、逆に、最も離れた階層のノードを選択してもよい。また、縮約部18は、安定ノードへの置き換えの対象となるノードの系列に含まれる複数のノードの中で、中間の濃度値の階層に属するノードを代表ノードとして選択してもよい。
縮約部18は、例えば、図12に示した認識部13による文字認識処理に用いる関数の特性に基づいて、代表ノードの選択方法を決定してもよい。例えば、文字認識処理に用いる関数の特性が、パターンの一部がかすれた文字についての認識に適している場合に、縮約部18は、代表ノードとしてルートノードRtから離れた階層のノードを選択する。逆に、文字認識処理に用いる関数の特性が、文字パターン特徴の一部がつぶれた文字についての認識に適している場合に、縮約部18は、代表ノードとしてルートノードRtに近い階層のノードを選択する。
なお、図13(A),(B)は、安定ノードへの置き換えの対象となるノードの系列Ng1,Ng2,Ng3のそれぞれに含まれるノードの中で、最もルートノードRtに近いノードを代表ノードとして選択した例を示している。
また、縮約部18は、ノードの系列から選択した代表ノードに対応してグラフ管理テーブルGMTに格納されたノード情報を取得し、取得した情報を安定ノードのノード情報として、新たなノード番号に対応してグラフ管理テーブルGMTに新たに登録してもよい。この場合に、グラフ管理テーブルGMTは、縮約前の成分ツリーを示す情報に加えて、縮約部18によって、連結成分の形状が濃度方向に安定しているノードの系列に代えて設けられた安定ノードを示す情報を含むことになる。
図12に示した縮約部18は、濃度方向に形状が安定している連結成分を安定ノードに縮約した後の成分ツリーにおいて、更に、2つの安定ノードの間に階層エッジで接続された成分ツリーの一部を、一つの中間ノードで置き換える。なお、縮約部18は、成分ツリーのルートノードRtを安定ノードの一つとし、ルートノードRtと安定ノードとの間の階層構造を一つの中間ノードで置き換えることが望ましい。また、縮約部18は、最もルートノードRtから離れた安定ノードから成分ツリーの葉に当たるノードまでの階層構造を、階層構造に含まれるノードの数にかかわらず、一つの中間ノードで置き換える
例えば、縮約部18は、図13(A)においてルートノードRtとノードの系列Ng1との間の階層構造を、図13(B)において二重丸で示した中間ノードCi1に置き換える。同様に、縮約部18は、ノードの系列Ng1とノードの系列Ng2との間の階層構造およびノードの系列Ng1とノードの系列Ng3との間の階層構造のそれぞれを、図13(B)において二重丸で示した中間ノードCi2、Ci3に置き換える。また、縮約部18は、ノードの系列Ng2から成分ツリーの葉に当たるノードまでの階層構造と、ノードの系列Ng3から成分ツリーの葉に当たるノードまでの階層構造とを、それぞれ中間ノードCi4,Ci5に置き換える。
また、縮約部18は、図13(B)を用いて説明したようにして置き換えた中間ノードのそれぞれに、中間ノードに接続された2つの安定ノードのそれぞれが属する階層で示される濃度の範囲と、2つの安定ノードの一方で示される画像における位置とを対応付ける。
縮約部18は、例えば、グラフ管理テーブルGMTを参照することで、中間ノードに接続された2つの安定ノードのそれぞれに対応するノード情報から、安定ノードが属する階層を示す濃度値と外接矩形の位置及び大きさを示す情報とを取得する。また、縮約部18は、中間ノードの親に当たる安定ノードについて得られた濃度値よりも1段階濃い濃度を下限とし、中間ノードの子に当たる安定ノードについて得られた濃度値よりも1段階薄い濃度を上限とする濃度の範囲を、中間ノードに対応付ける。また、縮約部18は、例えば、中間ノードの子に当たる安定ノードについて得られた外接矩形の位置及び大きさを示す情報を、中間ノードに対応する仮想的な外接矩形の位置及び大きさを示す情報とする。
例えば、縮約部18は、図13(B)に示した中間ノードCi1に濃度の範囲として濃度t1を設定し、また、中間ノードCi1の仮想的な外接矩形の位置及び大きさを示す情報として、安定ノードC1の外接矩形の位置及び大きさを示す情報を設定する。同様に、縮約部18は、中間ノードCi2に濃度の範囲[t3,t4]を設定し、中間ノードCi2の仮想的な外接矩形の位置及び大きさを示す情報として、安定ノードC2の外接矩形の位置及び大きさを示す情報を設定する。また、縮約部18は、中間ノードCi3に濃度の範囲[t3,t5]を設定し、中間ノードCi3の仮想的な外接矩形の位置及び大きさを示す情報として、安定ノードC3の外接矩形の位置及び大きさを示す情報を設定する。一方、縮約部18は、縮約後の成分ツリーの葉となる中間ノードCi4に、中間オードCi4の親に当たる安定ノードC2の外接矩形の位置及び大きさを示す情報を設定するとともに、濃度の範囲[t5,t6]を設定する。同様に、縮約部18は、縮約後の成分ツリーの葉となる中間ノードCi5に、中間オードCi5の親に当たる安定ノードC3の外接矩形の位置及び大きさを示す情報を設定するとともに、濃度の範囲[t5,t7]を設定する。
また、縮約部18は、中間ノードのそれぞれに一意のノード番号を与え、中間ノードのそれぞれについて設定した濃度の範囲及び外接矩形の位置及び大きさを示す情報を含むノード情報を、ノード番号に対応してグラフ管理テーブルGMTに格納する。なお、縮約部18は、各中間ノードのノード情報として、更に、中間ノードに階層エッジで接続されているノードを示す情報をグラフ管理テーブルGMTに保持させることが望ましい。
以上に説明したように、図12に示した縮約部18は、形状が安定している連結成分に対応するノードの系列を一つの安定ノードに置き換え、また、安定ノードで挟まれた階層構造を中間ノードに置き換えることで、成分ツリーを簡略化する。これにより、例えば、図13(A)に示した20個のノードを含む成分ツリーは、図13(B)に示すように、縮約前よりも少数のノード(図13の例では9個)を含む成分ツリーに簡略化される。
図12に示した認識部13は、縮約後の成分ツリーに含まれる安定ノードで示される連結成分について、選択的に文字認識を行い、連結成分に類似する文字を示す候補文字と認識距離と含む認識結果を求める。また、認識部13は、求めた認識結果を、安定ノードに対応するノード情報の一部として、グラフ管理テーブルGMTに格納する。
図13を用いて説明したように、縮約後の成分ツリーに含まれる安定ノードの数は、縮約前の成分ツリーに含まれるノードの数に比べて少ない。したがって、図12に示した認識部13は、縮約前の成分ツリーに含まれる全てのノードについて文字認識を行う場合に比べて、少ない時間で、縮約後の成分ツリーに含まれる安定ノードについての文字認識を行うことができる。
また、図12に示した第2生成部14は、縮約後の成分ツリーに基づいて、次に述べるようにして、縮約されたCTグラフを生成する。第2生成部14は、縮約後の成分ツリーにおいて、同じ階層に属する安定ノードのうち、画像GGRにおいて近接する位置にある連結成分に対応する安定ノードを双方向に接続する隣接エッジを生成する。また、第2生成部14は、縮約後の成分ツリーに含まれる中間ノードのうち、対応付けられた濃度の範囲が重複し、かつ、画像GGRにおける位置から求めた互いの距離が所定値以下である中間ノードを双方向に接続する第2エッジを生成する。更に、第2生成部14は、縮約後の成分ツリーにシンクノードを追加するとともに、縮約後の成分ツリーの葉に当たる中間ノードあるいは安定ノードとシンクノードとを階層エッジで接続する。
図14は、図12に示した第2生成部14によって生成される縮約されたCTグラフの例を示す。図14に示した縮約されたCTグラフは、図13(B)に示した縮約後の成分ツリーに、図12に示した第2生成部14によって、安定ノード及び中間ノードを相互に接続する隣接エッジとシンクノードに接続される階層エッジとを追加することで生成される。なお、図14に示した要素のうち、図13に示した要素と同等のものは、同一の符号を付して示され、その説明は省略される場合もある。また、図14において、縦軸tは、濃度t0〜濃度t8の9段階に区分された濃度を示す。
図14に示したソースノードScは、図13(A),(B)に示した成分ツリーのルートノードRtに相当する。また、図14において、シンクノードSkと中間ノードCi4、Ci5のそれぞれとを結ぶ線分は、図12に示した第2生成部14により、シンクノードSkと中間ノードCi4、Ci5のそれぞれとの間に生成された階層エッジを示す。
また、図14に示した中間ノードCi2と中間ノードCi3とを結ぶ双方向の矢印は、第2生成部14により、中間ノードCi2,Ci3において共通する濃度の範囲[t3,t4]について生成された隣接エッジを示す。同様に、図14に示した中間ノードCi3と安定ノードC2とを結ぶ双方向の矢印は、第2生成部14により、中間ノードCi3と安定ノードC2とにおいて共通する濃度の範囲[t5,t5]について生成された隣接エッジを示す。また、図14に示した安定ノードC3と中間ノードCi4とを結ぶ双方向の矢印は、第2生成部14によって安定ノードC3と中間ノードCi4とにおいて共通する濃度の範囲[t6,t6]について生成された隣接エッジを示す。同様に、図14に示した中間ノードCi4と中間ノードCi5とを結ぶ双方向の矢印は、第2生成部14によって中間ノードCi4と中間ノードCi5とにおいて共通する濃度の範囲[t7,t8]について生成された隣接エッジを示す。
図12に示した第2生成部14は、図14を用いて説明したようにして生成した隣接エッジのそれぞれ及びシンクノードに接続される階層エッジのそれぞれに、一意のエッジ番号を与えるとともに、隣接エッジ及び階層エッジを示すエッジ情報を生成する。第2生成部14は、隣接エッジのそれぞれに対応して、隣接エッジで接続されたノードを示すノード番号と、共通する濃度の範囲を示す情報とを含むエッジ情報を生成し、生成したエッジ情報をエッジ番号に対応してグラフ管理テーブルGMTに格納する。同様に、第2生成部14は、生成した階層エッジのそれぞれに対応して、階層エッジによってシンクノードに接続されたノードを示す情報を含むエッジ情報を生成し、生成したエッジ情報をエッジ番号に対応してグラフ管理テーブルGMTに格納する。
図12に示した設定部15は、グラフ管理テーブルGMTに格納されたエッジ情報に基づいて、縮約されたCTグラフに含まれる階層エッジのそれぞれ及び隣接エッジのそれぞれにコストを設定する。
設定部15は、階層エッジのうち、階層エッジのシンクノード側に安定ノードが接続された階層エッジについて、接続された安定ノードのノード情報に含まれる認識距離に比例する第1コストを設定する。設定部15は、例えば、図14に示した中間ノードCi1と安定ノードC1とを接続する階層エッジのコストとして、安定ノードのノード情報に含まれる認識距離に所定の比例係数α1を乗じた値を持つ第1コストを設定する。なお、比例係数α1の値は、例えば、数値「1」でもよいし、また、シンクノードに接続される階層エッジに設定されるコストや隣接エッジに設定されるコストの値とのバランスを考慮して決定してもよい。
一方、設定部15は、階層エッジのうち、階層エッジのシンクノード側に中間ノードが接続された階層エッジについて、確からしい文字候補が得られなかった場合の認識距離よりも大きい第4値(例えば、数値「100000」)を第1コストとして一律に設定する。設定部15は、例えば、図14に示した安定ノードC2と中間ノードCi4とを接続する階層エッジに、例えば、数値「100000」程度の値を有する第1コストを割り当てる。なお、設定部15は、例えば、第4値として、確からしい文字候補が得られなかった場合の平均的な認識距離に所定の係数α2を乗じた値を用いてもよい。ここで、係数α2の値は、例えば、数値「10」〜数値「50」またはそれ以上に大きな値に設定されることが望ましい。
つまり、階層エッジのシンクノード側に中間ノードが接続された階層エッジについては、他の階層エッジに比べて大きな第4値を有する第1コストが設定される。これにより、図12に示したグラフカット部16は、第4値が第1コストとして設定された階層エッジを切断するカットより、他の階層エッジを切断するカットを最小カットとして選びやすくなる。
また、設定部15は、シンクノードに接続される階層エッジについて、所定の第3値を有する第1コストを一律に割り当てる。設定部15は、例えば、図14に示した中間ノードCi4,Ci5のそれぞれをシンクノードに接続する階層エッジのそれぞれに、第3値を有する第1コストを割り当てる。なお、設定部15は、第3値として、確からしい文字候補が得られなかった場合に相当する認識距離に所定の係数α3を乗じた値を用いてもよい。ここで、係数α3の値は、例えば、数値「0.5」程度の値に設定することが望ましい。
更に、設定部15は、隣接エッジのそれぞれに、隣接エッジが接続するノード間で共通する濃度の範囲の大きさに基づいて決定される値を有する第2コストを割り当てる。設定部15は、縮約前のCTグラフに含まれる隣接エッジへの第2コストの割り当てに用いた第2値に、隣接エッジが接続するノード間で共通する濃度の範囲の大きさを乗じて得られた値を縮約されたCTグラフに含まれる隣接エッジの第2コストとしてもよい。設定部15は、例えば、図14に示した中間ノードCi2,Ci3間の隣接エッジのコストとして、中間ノードCi2,Ci3間で共通する濃度の範囲の大きさ(図14の例では|t3−t4|+1)と第2値との積を値として持つ第2コストを設定する。一方、図14に示した中間ノードCi3と安定ノードC2との間で共通する濃度の範囲の大きさは数値「1」であるので、設定部15によって中間ノードCi3と安定ノードC2とを接続する隣接エッジに設定される第2コストの値は第2値となる。
隣接エッジが接続するノード間で共通する濃度の範囲の大きさを隣接エッジに割り当てられる第2コストに反映することで、縮約により減少した隣接エッジにより、元のCTグラフに含まれていた隣接エッジと同等の機能を果たさせることができる。例えば、図14に示した中間ノードCi2,Ci3間を接続する1本の隣接エッジを切断するコストと、図13(A)に示した濃度値t3,t4にそれぞれ含まれるノード間を接続する2本の隣接エッジを切断するコストとを同等にすることができる。
また、設定部15は、階層エッジのそれぞれに設定したコスト及び隣接エッジのそれぞれに設定したコストを、階層エッジのそれぞれ及び隣接エッジのそれぞれを示すエッジ番号に対応してグラフ管理テーブルGMTに格納する。
図12に示したグラフカット部16は、グラフ管理テーブルGMTに格納された情報に基づいて、縮約されたCTグラフについてのグラフカット処理を行い、他のカットよりもコストの総和が小さい最小カットを求める。
図13及び図14を用いて説明したように、縮約されたCTグラフは、第1生成部12による探索で得られた成分ツリーに基づいて生成されるCTグラフに比べて、ノードの数もエッジの数も大幅に少ない。
したがって、縮約されたCTグラフについてのグラフカット処理にかかる処理量は、縮約前のCTグラフについてグラフカット処理を行う場合に比べて、大幅に小さくなる。
即ち、図12に示した縮約部18によって縮約された成分ツリーから縮約されたCTグラフを生成することで、認識部13による文字認識処理にかかる処理量とともに、グラフカット部16によるグラフカット処理にかかる処理量を削減することができる。
一方、縮約部18によって安定ノードに縮約される連結成分は、認識部13による文字認識処理により、縮約後に残される安定ノードに対応する連結成分と同一の候補文字が得られる連結成分である。また、縮約部18による縮約によって元の成分ツリーから失われる情報のほとんどは、認識部13による文字認識処理により、確からしい候補文字が得られない連結成分を示す情報である。
したがって、縮約後のCTグラフは、画像GGRからテキストを抽出するための情報を過不足なく含んでいる。
このため、図12に示した第2抽出部17は、グラフカット部16で求められた最小カットにより、シンク側の部分集合に分割された安定ノードに対応して得られた候補文字を示す文字コードを抽出することで、画像GGRからテキストを漏れなく抽出することができる。
以上に説明した本件開示の文字認識装置10は、例えば、パーソナルコンピュータなどのコンピュータ装置を用いて実現することができる。
図15は、図12に示した文字認識装置10のハードウェア構成の一例を示す。
図15に示したコンピュータ装置20は、プロセッサ21と、メモリ22と、ハードディスク装置(HDD)23と、表示装置24と、入力装置25と、光学ドライブ装置26と、周辺機器インタフェース27と、ネットワークインタフェース28とを含んでいる。また、図15において、文字認識装置10は、プロセッサ21と、メモリ22と、ハードディスク装置23と、周辺機器インタフェース27とを含んでいる。図15に示したプロセッサ21と、メモリ22と、ハードディスク装置23と、表示装置24と、入力装置25と、光学ドライブ装置26と、周辺機器インタフェース27と、ネットワークインタフェース28とは、バスを介して互いに接続されている。また、コンピュータ装置20は、周辺機器インタフェース27を介して画像入力装置EQに接続されている。
この画像入力装置EQは、文字列を含むカラー原稿を読み取ることで又はテロップを含むカラーテレビジョン放送の画像をキャプチャすることで得られるカラー画像に対して、グレースケール変換処理を行うことにより、グレースケール画像を生成する機能を有する。画像入力装置EQで得られたグレースケール画像は、周辺機器インタフェース27を介して、メモリ22あるいはハードディスク装置23に格納される。
なお、カラー画像からグレースケール画像を生成する機能は、コンピュータ装置20内に設けた画像処理部(図示せず)によって実現してもよい。また、プロセッサ21が、メモリ22あるいはハードディスク装置23に読み込んだプログラムを実行することによって、カラー画像からグレースケール画像を生成する機能を実現してもよい。
上述した光学ドライブ装置26は、光ディスクなどのリムーバブルディスク29を装着可能であり、装着したリムーバブルディスク29に記録された情報の読み出しおよび記録を行う。また、コンピュータ装置20は、ネットワークインタフェース28を介して、ネットワークNWに接続されている。
図15に示した入力装置25は、例えば、キーボードやマウスなどである。文字認識装置10の操作者は、入力装置25を操作することにより、文字認識装置10に対して、例えば、グレースケール画像からテキストを抽出する処理を開始させる指示などを入力することができる。
図15に示したメモリ22は、コンピュータ装置20のオペレーティングシステムとともに、プロセッサ21が上述した文字認識処理を実行するためのアプリケーションプログラムである文字認識プログラムを格納している。なお、文字認識プログラムは、例えば、光ディスクなどのリムーバブルディスク27に記録して頒布することができる。そして、このリムーバブルディスク27を光学ドライブ装置26に装着して読み込み処理を行うことにより、文字認識プログラムを、メモリ22およびハードディスク装置23に格納させてもよい。また、ネットワークインタフェース28を介してインターネットなどのネットワークNWにコンピュータ装置20を接続させ、ネットワークNW上に配置されたサーバ装置SVから文字認識プログラムをダウンロードしてもよい。そして、ダウンロードした文字認識プログラムを、メモリ22およびハードディスク装置23に読み込ませてもよい。
文字認識プログラムは、画像入力装置から受けたグレースケール画像に複数の濃度を示す閾値を適用して連結成分を抽出する処理をプロセッサ21に実行させるための抽出処理プログラムを含んでいる。また、文字認識プログラムは、抽出した連結成分の包含関係を探索することで成分ツリーを生成する処理をプロセッサ21に実行させるための探索処理プログラムを含んでいる。また、文字認識プログラムは、生成した成分ツリーを縮約する処理をプロセッサ21に実行させるための縮約プログラムを含んでいる。また、文字認識プログラムは、縮約された成分ツリーに含まれる安定ノードに対応する連結成分についてのパターン認識処理をプロセッサ21に実行させるためのパターン認識プログラムを含んでいる。また、文字認識プログラムは、縮約された成分ツリーに基づいてCTグラフを生成するグラフ生成処理をプロセッサ21に実行させるためのグラフ生成プログラムを含んでいる。また、文字認識プログラムは、生成されたCTグラフに含まれる階層エッジ及び隣接エッジにコストを設定する設定処理をプロセッサ21に実行させるためのコスト設定プログラムを含んでいる。また、文字認識プログラムは、生成されたCTグラフを2つの部分集合に分割するカットから最小カットを求めるグラフカット処理をプロセッサ21に実行させるためのグラフカットプログラムを含んでいる。更に、文字認識プログラムは、グラフカットで得られた部分集合の一方に属するノードについて得られたパターン認識結果から候補文字を抽出する処理をプロセッサ21に実行させるための抽出処理プログラムを含んでいる。したがって、プロセッサ21が、文字認識プログラムを実行することにより、本件開示の文字認識方法に従って、グレースケール画像に含まれるテキストを抽出する文字認識処理を実行することができる。
プロセッサ21は、メモリ22、ハードディスク装置23及び周辺機器インタフェース27と協働しつつ、抽出処理プログラムを実行することにより、図12に示した第1抽出部11の機能を果たす。また、プロセッサ21は、メモリ22、ハードディスク装置23及び周辺機器インタフェース27と協働しつつ、探索処理プログラムを実行することにより、図12に示した第1生成部12の機能を果たす。また、プロセッサ21は、メモリ22およびハードディスク装置23と協働しつつ、縮約プログラムを実行することにより、図12に示した縮約部18の機能を果たす。同様に、プロセッサ21は、メモリ22およびハードディスク装置23と協働しつつ、グラフ生成プログラムを実行することにより、図12に示した第2生成部14の機能を果たす。また、プロセッサ21は、メモリ22およびハードディスク装置23と協働しつつ、パターン認識プログラムを実行することにより、図12に示した認識部13の機能を果たす。また、プロセッサ21は、メモリ22およびハードディスク装置23と協働しつつ、コスト設定プログラムを実行することにより、図12に示した設定部15の機能を果たす。また、また、プロセッサ21は、メモリ22およびハードディスク装置23と協働しつつ、グラフカットプログラムを実行することにより、図12に示したグラフカット部16の機能を果たす。そして、プロセッサ21は、メモリ22およびハードディスク装置23と協働しつつ、抽出プログラムを実行することにより、図12に示した第2抽出部17の機能を果たす。また、図12に示したグラフ管理テーブルGMTは、例えば、図15に示したメモリ22あるいはハードディスク装置23の記憶領域の一部を割り当てることで実現できる。このように、プロセッサ21が、メモリ22、ハードディスク装置23及び周辺機器インタフェース27と協働しつつ、文字認識プログラムを実行することにより、図12に示した文字認識装置10を実現することができる。
図16は、図15に示した文字認識装置10の動作を示す。図16に示したステップS301,S302,S305〜ステップS307,S311〜S313の処理は、図16に示した文字認識装置10の動作を示すとともに、文字認識方法および文字認識プログラムの例を示す。例えば、図16に示す処理は、図15に示したプロセッサ21が文字認識プログラムを実行することで実現される。すなわち、図16は、文字認識方法および文字認識プログラムの一実施形態を示す。なお、図16に示したステップのうち、図10に示したステップと同等の処理を示すものは、図10に示したステップと同一の符号で示される。
ステップS301において、プロセッサ21は、周辺機器インタフェース27を介して、画像入力装置EQからグレースケール画像を受け、受けたグレースケール画像GGRから複数の閾値を用いて連結成分を抽出する。プロセッサ21は、受けたグレースケール画像を、例えば、ハードディスク装置23などに格納し、格納したグレースケール画像から連結成分の抽出を行う。
ステップS302において、プロセッサ21は、ステップS301の処理で抽出した連結成分の包含関係を探索することで成分ツリーを生成する。プロセッサ21は、成分ツリーを生成する処理の過程で生成した各ノードを示すノード情報及びノードで示される連結成分間の包含関係を示す階層エッジを示すエッジ情報をメモリ22あるいはハードディスク装置23に設けたグラフ管理テーブルGMTに格納する。
ステップS311において、プロセッサ21は、図12、図13を用いて説明したようにして、成分ツリーを縮約する。プロセッサ21は、成分ツリーに含まれる互いに形状が類似した複数の連結成分を示すノードの系列を、一つの連結成分に対応する安定ノードに縮約する処理を行う。また、プロセッサ21は、2つの安定ノードの間の階層構造を一つの中間ノードに置換し、中間ノードに濃度の範囲と仮想的な連結成分の位置と大きさを示す情報とを対応付ける処理を行う。また、プロセッサ21は、ステップS311の処理の過程で生成した安定ノード及び中間ノードのそれぞれを示すノード情報を、メモリ22あるいはハードディスク装置23に設けたグラフ管理テーブルGMTに格納する。
ステップS312において、プロセッサ21は、縮約された成分ツリーに含まれる安定ノードについて文字認識を行い、対応する連結成分に類似する文字を示す候補文字と、候補文字と連結成分との間の認識距離とを求める。また、プロセッサ21は、ステップS312の処理の過程で得られた候補文字を示す文字コード及び認識距離を、認識処理の対象となったノードのノード情報の一部として、グラフ管理テーブルGMTに格納する。
ステップS313において、プロセッサ21は、図12、図14を用いて説明したように、縮約された成分ツリーに基づいて、CTグラフを生成することで、縮約されたCTグラフを生成する。また、プロセッサ21は、ステップS313の処理の過程で生成した階層エッジ及び隣接エッジを示すエッジ情報を、メモリ22あるいはハードディスク装置23に設けたグラフ管理テーブルGMTに格納する。
ステップS305において、プロセッサ21は、図12、図14を用いて説明したように、縮約されたCTグラフに含まれる隣接エッジのそれぞれ及び階層エッジのそれぞれにコストを設定する。また、プロセッサ21は、ステップS305の処理で階層エッジおよび隣接エッジのそれぞれに設定したコストを示す情報を、コストを設定した階層エッジまたは隣接エッジを示すエッジ情報の一部として、グラフ管理テーブルGMTに格納する。
ステップS306において、プロセッサ21は、ステップS311〜ステップS305の処理の過程でグラフ管理テーブルGMTに格納された情報に基づいて、縮約されたCTグラフについてのグラフカットを行う。プロセッサ21は、グラフカット処理により、縮約後のCTグラフに含まれるノードを2つの部分集合に分割するカットのうち、他のカットよりもカットに跨る階層エッジ及び隣接エッジに設定されたコストの総和が少ないカットを最小カットとして求める。
ステップS307において、プロセッサ21は、ステップS306の処理で求められた最小カットによって、シンク側の部分集合に属するとされた安定ノードに対応するノード情報から候補文字を示す文字コードを抽出することで、テキストの抽出を行う。
以上に説明した各ステップの処理をプロセッサ21が実行することで、画像入力装置EQから受けたグレースケール画像における文字の2次元的な配置にかかわらず、グレースケール画像に含まれるテキストを漏れなく抽出することができる。
以上の詳細な説明により、実施形態の特徴点及び利点は明らかになるであろう。これは、特許請求の範囲が、その精神および権利範囲を逸脱しない範囲で、前述のような実施形態の特徴点および利点にまで及ぶことを意図するものである。また、当該技術分野において通常の知識を有する者であれば、あらゆる改良および変更を容易に想到できるはずである。したがって、発明性を有する実施形態の範囲を前述したものに限定する意図はなく、実施形態に開示された範囲に含まれる適当な改良物および均等物に拠ることも可能である。
以上の説明に関して、更に、以下の各項を開示する。
(付記1)
複数の濃度値毎に、前記各濃度値以上の画素が連結した連結成分を画像から抽出する第1抽出部と、
前記濃度値が異なる連結成分の間で、包含関係を有する連結成分を第1エッジで互いに接続することで、前記濃度値で階層化された成分ツリーを生成する第1生成部と、
前記成分ツリーの各階層において、前記画像内での距離が第1値以下の連結成分を第2エッジで互いに接続して、前記第1エッジと前記第2エッジとによる前記連結成分の接続関係を示す情報を生成する第2生成部と、
前記情報に含まれる連結成分の文字認識を行うことで、前記連結成分に類似する文字を示す候補文字と、前記候補文字の確からしさとを求める認識部と、
前記各第1エッジに、前記濃度値が高い側に接続された前記連結成分について得られた前記確からしさに基づいて決定される値を有する第1コストを割り当て、前記第2エッジに第2値を有する第2コストを割り当てる設定部と、
前記情報に含まれる複数の連結成分を2つの部分集合に分割する境界の中から、前記境界に跨る第1エッジに割り当てられた前記第1コストと前記境界に跨る第2エッジに割り当てられた前記第2コストとの総和が、他の境界よりも小さくなる境界を求める分割部と、
前記分割部で求められた境界によって分割された2つの部分集合のうち、濃度値が高い側の部分集合に含まれる連結成分のうち、他の連結成分よりも前記境界に近い連結成分について得られた候補文字を抽出することで、前記画像に含まれるテキストを抽出する第2抽出部と、
を備えたことを特徴とする文字認識装置。
(付記2)
付記1に記載の文字認識装置において、
前記第2生成部で生成される情報は、前記第1エッジと前記第2エッジとによって前記連結成分を接続したグラフであり、
前記分割部は、前記グラフに対するグラフカット処理により、前記境界を示すカットを求める
ことを特徴とする文字認識装置。
(付記3)
付記1または付記2に記載の文字認識装置において、
前記第2生成部は、更に、前記情報において濃度値が他の階層よりも高い階層にシンクノードを追加するとともに、前記情報内の連結成分のうち、他の連結成分を包含しない連結成分と前記シンクノードとを前記第1エッジでそれぞれ接続し、
前記設定部は、前記シンクノードに接続された前記第1エッジに、第3値を有する第1コストを割り当てる
ことを特徴とする文字認識装置。
(付記4)
付記1乃至付記3のいずれか1に記載の文字認識装置において、
前記第2抽出部は、前記分割部で求められた前記濃度値が高い側の部分集合に含まれる連結成分のうち、前記濃度値が低い階層にある連結成分について前記認識部で得られた候補文字を抽出する
ことを特徴とする文字認識装置。
(付記5)
付記1乃至付記4のいずれか1に記載の文字認識装置において、
更に、
前記第1エッジで接続された2つの連結成分が互いに類似していることを検出した場合に、類似する連結成分を縮約する縮約部を有し、
前記第2生成部は、前記縮約部による縮約が行われた後の成分ツリーに基づいて、前記情報の生成を行い、
前記認識部は、前記縮約部による縮約が行われた後の成分ツリーに含まれる前記縮約された連結成分について、選択的に文字認識を行う
ことを特徴とする文字認識装置。
(付記6)
付記5に記載の文字認識装置において、
前記縮約部は、更に、2つの前記縮約された連結成分の間に接続された前記成分ツリーの一部を一つの中間ノードで置き換え、置き換えた前記中間ノードに、前記2つの縮約された連結成分のそれぞれが属する前記濃度値の階層に基づいて決定される濃度値の範囲と、前記2つの縮約された連結成分の一方の前記画像における位置を示す情報とを設定し、
前記第2生成部は、前記中間ノードの間で、前記濃度値の範囲が重複し、かつ、前記画像内での距離が所定値以下である中間ノードを前記第2エッジで互いに接続し、
前記設定部は、前記中間ノードを前記縮約された連結成分よりも濃度値が高い側に接続する前記第1エッジに、所定の第4値を有する前記第1コストを割り当て、前記中間ノードを相互に接続する第2エッジに、前記重複する濃度値の範囲の大きさに基づいて決定される値を有する前記第2コストを割り当てる
ことを特徴とする文字認識装置。
(付記7)
付記1乃至付記6のいずれか1に記載の文字認識装置において、
前記設定部は、
前記第1エッジの前記濃度値が高い側に接続された前記連結成分について得られる前記確からしさが高いほど小さい値を有する第1コストを前記第1エッジに割り当てる
ことを特徴とする文字認識装置。
(付記8)
付記1乃至付記7のいずれか1に記載の文字認識装置において、
前記認識部は、前記候補文字が確からしいほど小さい値を持つ指標値を前記確からしさとして求め、
前記設定部は、前記候補文字が確からしい場合の前記指標値の平均値よりも小さい前記第2値を有する前記第2コストを前記第2エッジに割り当てる
ことを特徴とする文字認識装置。
(付記9)
付記2に記載の文字認識装置において、
前記認識部は、前記候補文字が確からしいほど小さい値を持つ指標値を前記確からしさとして求め、
前記設定部は、前記候補文字が確からしくない場合の前記指標値よりも小さい前記第3値を有する前記第1コストを前記シンクノードに接続された前記第1エッジに割り当てる
ことを特徴とする文字認識装置。
(付記10)
付記6に記載の文字認識装置において、
前記認識部は、前記候補文字が確からしいほど小さい値を持つ指標値を前記確からしさとして求め、
前記設定部は、
前記候補文字が確からしくない場合の前記指標値よりも大きい前記第4値を有する前記第1コストを、前記中間ノードを前記縮約された連結成分よりも前記濃度値が高い側に接続する前記第1エッジに割り当てる
ことを特徴とする文字認識装置。
(付記11)
コンピュータが、
複数の濃度値毎に、前記各濃度値以上の画素が連結した連結成分を画像から抽出し、
前記濃度値が異なる連結成分の間で、包含関係を有する連結成分を第1エッジで互いに接続することで、前記濃度値で階層化された成分ツリーを生成し、
前記成分ツリーの各階層において、前記画像内での距離が第1値以下の連結成分を第2エッジで互いに接続して、前記第1エッジと前記第2エッジとによる前記連結成分の接続関係を示す情報を生成し、
前記情報に含まれる連結成分の文字認識を行うことで、前記連結成分に類似する文字を示す候補文字と、前記候補文字の確からしさとを求め、
前記各第1エッジに、前記濃度値が高い側に接続された前記連結成分について得られた前記確からしさに基づいて決定される値を有する第1コストを割り当て、前記第2エッジに第2値を有する第2コストを割り当て、
前記情報に含まれる複数の連結成分を2つの部分集合に分割する境界の中から、前記境界に跨る第1エッジに割り当てられた前記第1コストと前記境界に跨る第2エッジに割り当てられた前記第2コストとの総和が、他の境界よりも小さくなる境界を求め、
前記求められた境界によって分割された2つの部分集合のうち、濃度値が高い側の部分集合に含まれる連結成分のうち、他の連結成分よりも前記境界に近い連結成分について得られた候補文字を抽出することで、前記画像に含まれるテキストを抽出する、
ことを特徴とする文字認識方法。
(付記12)
複数の濃度値毎に、前記各濃度値以上の画素が連結した連結成分を画像から抽出し、
前記濃度値が異なる連結成分の間で、包含関係を有する連結成分を第1エッジで互いに接続することで、前記濃度値で階層化された成分ツリーを生成し、
前記成分ツリーの各階層において、前記画像内での距離が第1値以下の連結成分を第2エッジで互いに接続して、前記第1エッジと前記第2エッジとによる前記連結成分の接続関係を示す情報を生成し、
前記情報に含まれる連結成分の文字認識を行うことで、前記連結成分に類似する文字を示す候補文字と、前記候補文字の確からしさとを求め、
前記各第1エッジに、前記濃度値が高い側に接続された前記連結成分について得られた前記確からしさに基づいて決定される値を有する第1コストを割り当て、前記第2エッジに第2値を有する第2コストを割り当て、
前記情報に含まれる複数の連結成分を2つの部分集合に分割する境界の中から、前記境界に跨る第1エッジに割り当てられた前記第1コストと前記境界に跨る第2エッジに割り当てられた前記第2コストとの総和が、他の境界よりも小さくなる境界を求め、
前記求められた境界によって分割された2つの部分集合のうち、濃度値が高い側の部分集合に含まれる連結成分のうち、他の連結成分よりも前記境界に近い連結成分について得られた候補文字を抽出することで、前記画像に含まれるテキストを抽出する、
処理をコンピュータに実行させることを特徴とする文字認識プログラム。