JP2013246473A - 画像処理装置及び画像処理プログラム - Google Patents
画像処理装置及び画像処理プログラム Download PDFInfo
- Publication number
- JP2013246473A JP2013246473A JP2012117515A JP2012117515A JP2013246473A JP 2013246473 A JP2013246473 A JP 2013246473A JP 2012117515 A JP2012117515 A JP 2012117515A JP 2012117515 A JP2012117515 A JP 2012117515A JP 2013246473 A JP2013246473 A JP 2013246473A
- Authority
- JP
- Japan
- Prior art keywords
- character
- evaluation value
- node
- image
- link
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Landscapes
- Character Input (AREA)
- Character Discrimination (AREA)
Abstract
【課題】文字候補によって構成されるネットワークにおいて対称性のある評価値を用いて経路を選択するようにした画像処理装置を提供する。
【解決手段】画像処理装置の切出位置抽出手段は、画像から文字画像を切り出す位置を抽出し、文字候補抽出手段は、文字画像に対して文字認識を行った結果である複数の文字候補を抽出し、ネットワーク生成手段は、複数の文字候補の各々をノードとし、ノード間にリンクを構築することによってネットワークを生成し、第1の算出手段は、第1の文字に関する情報と、第1の文字と右側にある第2の文字との関係に関する情報に基づいて第1の評価値を算出し、第2の算出手段は、第2の文字に関する情報と、第2の文字と第1の文字との関係に関する情報に基づいて第2の評価値を算出し、選択手段は、第1の評価値と第2の評価値の重み付け和を算出し、経路を選択し、出力手段は、経路内の文字候補列を文字認識結果として出力する。
【選択図】図1
【解決手段】画像処理装置の切出位置抽出手段は、画像から文字画像を切り出す位置を抽出し、文字候補抽出手段は、文字画像に対して文字認識を行った結果である複数の文字候補を抽出し、ネットワーク生成手段は、複数の文字候補の各々をノードとし、ノード間にリンクを構築することによってネットワークを生成し、第1の算出手段は、第1の文字に関する情報と、第1の文字と右側にある第2の文字との関係に関する情報に基づいて第1の評価値を算出し、第2の算出手段は、第2の文字に関する情報と、第2の文字と第1の文字との関係に関する情報に基づいて第2の評価値を算出し、選択手段は、第1の評価値と第2の評価値の重み付け和を算出し、経路を選択し、出力手段は、経路内の文字候補列を文字認識結果として出力する。
【選択図】図1
Description
本発明は、画像処理装置及び画像処理プログラムに関する。
特許文献1には、文書に記入された文字列から文字パターンを切り出す文字パターン切り出し装置に関するものであって、用紙などに記入された文字列から1文字ずつ文字パターンを切り出す文字パターン切り出し装置において、用紙上の文字列を光学的に走査し光電変換する走査手段と、光電変換された上記文字列のパターンを記憶する文字列パターン記憶手段と、上記文字列の方向と直交する方向に上記文字列パターンを走査して求めた周辺分布値の連続性に基づいて文字列パターンを分割し、分割して得た基本パターンの左右端と上下端との座標より基本パターン領域を決める基本パターン領域検出手段と、単独の基本パターン領域の文字形状評価値と連続する複数個の基本パターン領域を結合した結合パターン領域の文字形状評価値とを上記基本パターン領域の左右端と上下端の座標から各々算出する文字形状評価値算出手段と、読み取り対象文字の基準パターンを格納した文字認識辞書記憶手段と、単独の基本パターンに対する文字認識評価値と連続する複数個の基本パターンを結合した結合パターンに対する文字認識評価値とを上記文字認識辞書記憶手段に記憶した基準パターンとの整合により求める文字認識評価値算出手段と、上記文字形状評価値算出手段で算出した文字形状評価値と上記文字認識評価値算出手段で算出した文字認識評価値とを加え合わせることにより、すべての基本パターンと結合パターンとに対応する文字評価値を算出する評価値加算手段と、上記基本パターン領域の位置情報に基づいて切り出し候補位置のあらゆる可能な組み合わせを求め、各々の切り出し候補位置の組み合わせについて、切り出し候補位置で切り出された基本パターンと結合パターンとに対応する上記評価値加算手段で求めた文字評価値に基づいて切り出し評価値を求め、この切り出し評価値に基づいて最適な文字切り出し位置の組み合わせを決定する文字切り出し手段と、上記文字切り出し手段の結果に基づいて上記文字列パターン記憶手段に格納した1行の文字列パターンから1文字ずつ文字パターンを切り出して出力する出力手段とを具備することを特徴とする文字パターン切り出し装置が開示されている。
本発明は、文字候補によって構成されるネットワークにおいて対称性のある評価値を用いて経路を選択するようにした画像処理装置及び画像処理プログラムを提供することを目的としている。
かかる目的を達成するための本発明の要旨とするところは、次の各項の発明に存する。
請求項1の発明は、画像から文字画像を切り出す位置を抽出する切出位置抽出手段と、前記切出位置抽出手段によって抽出された位置によって分けられた文字画像に対して文字認識を行った結果である複数の文字候補を抽出する文字候補抽出手段と、前記文字候補抽出手段によって抽出された複数の文字候補の各々をノードとし、隣接する文字画像のノード間にリンクを構築することによってネットワークを生成するネットワーク生成手段と、前記ネットワーク生成手段によって生成されたネットワーク内の隣接する文字において左側にある第1の文字に関する情報と、該第1の文字と該第1の文字に対して右側にある第2の文字との関係に関する情報に基づいて第1の評価値を算出する第1の算出手段と、前記第2の文字に関する情報と、該第2の文字と前記第1の文字との関係に関する情報に基づいて第2の評価値を算出する第2の算出手段と、前記ネットワークにおいて始点から終点までの経路における前記第1の評価値と前記第2の評価値の重み付け和を算出し、該算出の結果に基づいて経路を選択する選択手段と、前記選択手段によって選択された経路内の文字候補列を文字認識結果として出力する出力手段を具備することを特徴とする画像処理装置である。
請求項1の発明は、画像から文字画像を切り出す位置を抽出する切出位置抽出手段と、前記切出位置抽出手段によって抽出された位置によって分けられた文字画像に対して文字認識を行った結果である複数の文字候補を抽出する文字候補抽出手段と、前記文字候補抽出手段によって抽出された複数の文字候補の各々をノードとし、隣接する文字画像のノード間にリンクを構築することによってネットワークを生成するネットワーク生成手段と、前記ネットワーク生成手段によって生成されたネットワーク内の隣接する文字において左側にある第1の文字に関する情報と、該第1の文字と該第1の文字に対して右側にある第2の文字との関係に関する情報に基づいて第1の評価値を算出する第1の算出手段と、前記第2の文字に関する情報と、該第2の文字と前記第1の文字との関係に関する情報に基づいて第2の評価値を算出する第2の算出手段と、前記ネットワークにおいて始点から終点までの経路における前記第1の評価値と前記第2の評価値の重み付け和を算出し、該算出の結果に基づいて経路を選択する選択手段と、前記選択手段によって選択された経路内の文字候補列を文字認識結果として出力する出力手段を具備することを特徴とする画像処理装置である。
請求項2の発明は、前記第1の算出手段と前記第2の算出手段は、非線形関数を用いて前記第1の評価値と前記第2の評価値を算出することを特徴とする請求項1に記載の画像処理装置である。
請求項3の発明は、前記切出位置抽出手段は、複数の切り出し位置を抽出し、前記ネットワーク生成手段は、前記切出位置抽出手段によって抽出された複数の切り出し位置によって分けられた文字画像に対して文字認識を行った結果である複数の文字候補の各々をノードとし、隣接する文字画像のノード間にリンクを構築することによってネットワークを生成することを特徴とする請求項2又は3に記載の画像処理装置である。
請求項4の発明は、コンピュータを、画像から文字画像を切り出す位置を抽出する切出位置抽出手段と、前記切出位置抽出手段によって抽出された位置によって分けられた文字画像に対して文字認識を行った結果である複数の文字候補を抽出する文字候補抽出手段と、前記文字候補抽出手段によって抽出された複数の文字候補の各々をノードとし、隣接する文字画像のノード間にリンクを構築することによってネットワークを生成するネットワーク生成手段と、前記ネットワーク生成手段によって生成されたネットワーク内の隣接する文字において左側にある第1の文字に関する情報と、該第1の文字と該第1の文字に対して右側にある第2の文字との関係に関する情報に基づいて第1の評価値を算出する第1の算出手段と、前記第2の文字に関する情報と、該第2の文字と前記第1の文字との関係に関する情報に基づいて第2の評価値を算出する第2の算出手段と、前記ネットワークにおいて始点から終点までの経路における前記第1の評価値と前記第2の評価値の重み付け和を算出し、該算出の結果に基づいて経路を選択する選択手段と、前記選択手段によって選択された経路内の文字候補列を文字認識結果として出力する出力手段として機能させるための画像処理プログラムである。
請求項1の画像処理装置によれば、文字候補によって構成されるネットワークにおいて対称性のある評価値を用いて経路を選択することができる。
請求項2の画像処理装置によれば、非線形関数を用いて第1の評価値と第2の評価値を算出することができる。
請求項3の画像処理装置によれば、複数の切り出し位置に対しても文字認識結果を出力することができる。
請求項4の画像処理プログラムによれば、文字候補によって構成されるネットワークにおいて対称性のある評価値を用いて経路を選択することができる。
本実施の形態は、文字列が含まれている画像を対象として、複数の文字区切りに対する文字認識結果又は1文字の画像に対する複数の文字認識結果から、出力文字列としてふさわしいものを選択するものである。
まず、本実施の形態を説明する前に、その前提又は本実施の形態を利用する画像処理装置について説明する。なお、この説明は、本実施の形態の理解を容易にすることを目的とするものである。
まず、本実施の形態を説明する前に、その前提又は本実施の形態を利用する画像処理装置について説明する。なお、この説明は、本実施の形態の理解を容易にすることを目的とするものである。
例えば、図21の例に示すような文字列画像を対象とする。まず、この文字列画像を文字セグメントに分割する。文字セグメントとは、文字そのもの、あるいは文字の一部となる可能性がある文字部分である。ここでは、図21の例に示すような横書きの文字列画像を例にとる。横書きの画像では、垂直な線(あるいは垂直に近い線)で分割を行うことにより、文字セグメントに分割する。例えば図22に示した縦線(切れ目候補2210、切れ目候補2220)で、文字列画像を分割して、3つの文字セグメント「イ」、「ヒ」、及び、「学」を得ることができる。図22の例に示した縦線を切れ目候補と呼ぶこととする。切れ目候補2210が「イ」と「ヒ」を分け、切れ目候補2220が「ヒ」と「学」を分けている。
次に、図23の例に示すように、各文字セグメントに対し、その外接矩形(外接矩形2310、外接矩形2320、外接矩形2330)を抽出する。
以下、特許文献1に記載されている技術内容を例にして説明する。なお、以下の説明で用いる用語は、特許文献1で用いる用語とは異なっている場合がある。ただし、内容は特許文献1と同じである。
前述の文字セグメントを統合して、文字画像を決定する。複数の文字セグメントを統合して1つの文字画像を形成する場合もあれば、1つの文字セグメントが1つの文字となる場合もある。文字画像を決定するとは、文字の切り出し位置を決定することと同値であるから、以下では文字切り出し位置の決定という場合もある。
文字セグメントの統合のパターンは複数存在する。複数存在するパターンの中で、最も文字画像として評価の高いものを選択することによって、最終的な文字切り出し位置を決定する。
図23の例に対しては、すべての文字切り出しパターンは、図24に示す例のようになる。つまり、図24(a)の例では、パターン1として3つの文字画像(外接矩形2310、外接矩形2320、外接矩形2330)、図24(b)の例では、パターン2として2つの文字画像(外接矩形2310と2320、外接矩形2330)、図24(c)の例では、パターン3として1つの文字画像(外接矩形2310と2320と2330)、図24(d)の例では、パターン4として2つの文字画像(外接矩形2310、外接矩形2320と2330)を示している。
以下、特許文献1に記載されている技術内容を例にして説明する。なお、以下の説明で用いる用語は、特許文献1で用いる用語とは異なっている場合がある。ただし、内容は特許文献1と同じである。
前述の文字セグメントを統合して、文字画像を決定する。複数の文字セグメントを統合して1つの文字画像を形成する場合もあれば、1つの文字セグメントが1つの文字となる場合もある。文字画像を決定するとは、文字の切り出し位置を決定することと同値であるから、以下では文字切り出し位置の決定という場合もある。
文字セグメントの統合のパターンは複数存在する。複数存在するパターンの中で、最も文字画像として評価の高いものを選択することによって、最終的な文字切り出し位置を決定する。
図23の例に対しては、すべての文字切り出しパターンは、図24に示す例のようになる。つまり、図24(a)の例では、パターン1として3つの文字画像(外接矩形2310、外接矩形2320、外接矩形2330)、図24(b)の例では、パターン2として2つの文字画像(外接矩形2310と2320、外接矩形2330)、図24(c)の例では、パターン3として1つの文字画像(外接矩形2310と2320と2330)、図24(d)の例では、パターン4として2つの文字画像(外接矩形2310、外接矩形2320と2330)を示している。
文字切り出し位置を示すネットワーク表現(グラフ表現ともいわれる)として、図24の例に示した複数の切り出しパターンを表すことができる。図25の例において、ネットワークは、始点ノード2500、終点ノード2590、中間ノード2510(ノード1)、中間ノード2520(ノード2)の4つのノードと、ノード間を接続するアークで構成されている(ノード間の接続線をアークと呼ぶこととする)。始点は、文字列画像の左端、終点は文字列画像の右端にあたる。中間ノード2510(ノード1)、中間ノード2520(ノード2)は、それぞれ、文字の切れ目候補位置(すなわち、図22の例に示した切れ目候補2210、切れ目候補2220)を示す。中間ノード2510(ノード1)は、切れ目候補2210に対応している。また、中間ノード2520(ノード2)は、切れ目候補2220に対応している。
始点から、各ノードを通って、終点に至る経路(以下、「パス」ともいう)を求める。パスは、1又は複数のアークから構成される。通常、複数のパスが存在する。図24の例に示した文字切り出しパターンは、これらの複数のパスに対応している。例えば、図24(b)の例に示したパターン2は、図26の太線で示したパス(文字切り出しパターン2504、文字切り出しパターン2522)と対応している。
ここで、どれか1つのアークには、1つの文字画像の候補が対応している。例えば、始点ノード2500と中間ノード2520(ノード2)を結ぶアークには、「化」という文字画像(文字切り出しパターン2504)が対応している。1つのアークに対応する文字に対して、その文字の評価値を決定することができる。これを「アーク評価値」と呼ぶこととする。
アーク評価値は、文字の形状情報や、文字認識における認識確度などから算出する。アーク評価値の算出方法はさまざまある。例えば、(1)特開平9−185681号公報、(2)特開平8−161432号公報、(3)特開平10−154207号公報、(4)特開昭61−175878号公報、(5)特開平3−37782号公報、(6)特開平11−203406号公報等に記載の従来技術に示されている手法等がある。
ここで、どれか1つのアークには、1つの文字画像の候補が対応している。例えば、始点ノード2500と中間ノード2520(ノード2)を結ぶアークには、「化」という文字画像(文字切り出しパターン2504)が対応している。1つのアークに対応する文字に対して、その文字の評価値を決定することができる。これを「アーク評価値」と呼ぶこととする。
アーク評価値は、文字の形状情報や、文字認識における認識確度などから算出する。アーク評価値の算出方法はさまざまある。例えば、(1)特開平9−185681号公報、(2)特開平8−161432号公報、(3)特開平10−154207号公報、(4)特開昭61−175878号公報、(5)特開平3−37782号公報、(6)特開平11−203406号公報等に記載の従来技術に示されている手法等がある。
1つのパスは、複数のアークから構成されている。複数のアーク評価値を用いて、そのアークから構成されるパスの評価値を計算することができる。これを「パス評価値」と呼ぶこととする。
文字切り出し位置を決定するため、複数のパスの中で、最もパス評価値の高いパスを選択する。パスが選択できれば、文字切り出し位置が確定して、文字を切り出すことができる。そして、切り出した文字(文字画像)を文字認識した結果も確定することになる。
例えば、図26の例で、太線のパスが選択されたとする。この場合、文字切り出し位置は、始点2500と、中間ノード2520(ノード2)と、終点2590の3点となる。そして、確定した文字認識結果は、「化」(文字切り出しパターン2504)、「学」(文字切り出しパターン2522)となる。
文字切り出し位置を決定するため、複数のパスの中で、最もパス評価値の高いパスを選択する。パスが選択できれば、文字切り出し位置が確定して、文字を切り出すことができる。そして、切り出した文字(文字画像)を文字認識した結果も確定することになる。
例えば、図26の例で、太線のパスが選択されたとする。この場合、文字切り出し位置は、始点2500と、中間ノード2520(ノード2)と、終点2590の3点となる。そして、確定した文字認識結果は、「化」(文字切り出しパターン2504)、「学」(文字切り出しパターン2522)となる。
ここで、パス評価値の算出方法について説明する。基本的には、パス評価値は、アーク評価値の重み付け和が用いられる。i番目のアークのアーク評価値をViとし、i番目のアーク評価値に対する重みをwiとし、アークの数をN、パス評価値をPとすると、Pは次の(1)式で与えられる。
パスの数が複数存在すると前述したが、実際の文字列には、多くの文字セグメントが存在しているため、存在するパスの数は膨大となる。
そこで、特開平3−225579号公報に記載の技術では、図25の例に示されたようなネットワーク内の複数のパスから最も評価値の高いパスを探索する方法として、ダイナミックプログラミング手法を用いることが述べられている。
ここでは、ダイナミックプログラミング手法の中で、このようなネットワークの最良パスを探索するのに適したビタビアルゴリズムの説明を行う。
そこで、特開平3−225579号公報に記載の技術では、図25の例に示されたようなネットワーク内の複数のパスから最も評価値の高いパスを探索する方法として、ダイナミックプログラミング手法を用いることが述べられている。
ここでは、ダイナミックプログラミング手法の中で、このようなネットワークの最良パスを探索するのに適したビタビアルゴリズムの説明を行う。
図27に示す例において、始点ノード2700から終点ノード2790までのネットワークを説明する。なお、ノード間のリンク(アークともいわれる)は、図27に示したものに限らず、さまざまな場合がある。図27のように対称の結線でなくてもかまわない。
このネットワークにおいて、途中に複数のノード(中間ノード2711、中間ノード2712、中間ノード2713等)を介して始点ノードから終点ノードに達するとする。途中のノードを中間ノードと呼ぶこととする。
各ノードとノードの間にはリンクが張られている。このリンクにはそのリンク固有の評価値(リンク値)が割り当てられている。始点ノード2700から終点ノード2790に向かうパスは複数存在する。パスは、複数のリンクから成り立つことになる。パスが含む複数のリンクのリンク値の和が、パスの評価値となる。
例えば、リンク値は、ノード間の距離であるとする。この場合、パス評価値が最小のパスは、始点ノードから終点ノードに向かうパスの中で、最小距離のパスということになる。あるいは、パス評価値が最大のパスを求める問題とすることも可能である。
このネットワークにおいて、途中に複数のノード(中間ノード2711、中間ノード2712、中間ノード2713等)を介して始点ノードから終点ノードに達するとする。途中のノードを中間ノードと呼ぶこととする。
各ノードとノードの間にはリンクが張られている。このリンクにはそのリンク固有の評価値(リンク値)が割り当てられている。始点ノード2700から終点ノード2790に向かうパスは複数存在する。パスは、複数のリンクから成り立つことになる。パスが含む複数のリンクのリンク値の和が、パスの評価値となる。
例えば、リンク値は、ノード間の距離であるとする。この場合、パス評価値が最小のパスは、始点ノードから終点ノードに向かうパスの中で、最小距離のパスということになる。あるいは、パス評価値が最大のパスを求める問題とすることも可能である。
ここで、ビタビアルゴリズムは、あるノードにある方向から入力されるリンクを1に限定することによって、最適ではないパスを削減する。これにより、演算処理量と所要メモリ量を削減する手法である。
例えば、今、ノードx(中間ノード2721)に左から入力されるリンクがすでに、1に限定されているとする。同様に、ノードy(中間ノード2722)、ノードz(中間ノード2723)に関しても1に限定されているとする。このとき、ノードX(中間ノード2731)に左から入力されるリンクを限定する。ノードX(中間ノード2731)には、ノードx(中間ノード2721)、ノードy(中間ノード2722)、ノードz(中間ノード2723)の3つのノードからリンクが張られている。このとき、ノードX(中間ノード2731)を通るパスとして、最適な可能性があるのは、ノードx(中間ノード2721)、ノードy(中間ノード3522)、ノードz(中間ノード2723)からノードX(中間ノード2731)に向かうリンクのいずれかである。この3つのうちで最適なものだけを残し、残りの2つを削除する。このようにして、ノードX(中間ノード2731)に左から入力されるパス(リンク)を1に限定する。ノードY(中間ノード2732)、ノードZ(中間ノード2733)に関しても同様に左から入力されるパスを1に限定する。
このような手順を左のノードA(中間ノード2711)、ノードB(中間ノード2712)、ノードC(中間ノード2713)から順に右の方向に行う。最終的にノードP(中間ノード2781)、ノードQ(中間ノード2782)、ノードR(中間ノード2783)に入る3つのパスに限定する。この3つのパスの中で最適なものを選択すればよい。
このようなビタビアルゴリズムを用いた最適パス選定方法を、図25に例示のネットワークにも同様に適用し得る。文字切り出し位置をノードとする。また、アーク評価値を前述のリンク値とすればよい。
例えば、今、ノードx(中間ノード2721)に左から入力されるリンクがすでに、1に限定されているとする。同様に、ノードy(中間ノード2722)、ノードz(中間ノード2723)に関しても1に限定されているとする。このとき、ノードX(中間ノード2731)に左から入力されるリンクを限定する。ノードX(中間ノード2731)には、ノードx(中間ノード2721)、ノードy(中間ノード2722)、ノードz(中間ノード2723)の3つのノードからリンクが張られている。このとき、ノードX(中間ノード2731)を通るパスとして、最適な可能性があるのは、ノードx(中間ノード2721)、ノードy(中間ノード3522)、ノードz(中間ノード2723)からノードX(中間ノード2731)に向かうリンクのいずれかである。この3つのうちで最適なものだけを残し、残りの2つを削除する。このようにして、ノードX(中間ノード2731)に左から入力されるパス(リンク)を1に限定する。ノードY(中間ノード2732)、ノードZ(中間ノード2733)に関しても同様に左から入力されるパスを1に限定する。
このような手順を左のノードA(中間ノード2711)、ノードB(中間ノード2712)、ノードC(中間ノード2713)から順に右の方向に行う。最終的にノードP(中間ノード2781)、ノードQ(中間ノード2782)、ノードR(中間ノード2783)に入る3つのパスに限定する。この3つのパスの中で最適なものを選択すればよい。
このようなビタビアルゴリズムを用いた最適パス選定方法を、図25に例示のネットワークにも同様に適用し得る。文字切り出し位置をノードとする。また、アーク評価値を前述のリンク値とすればよい。
従来技術が扱っていた図25に例示するようなネットワークは、1つのアークに対し、1つの文字候補が存在しているものである。しかし、実際には1つのアークに対して、複数の文字候補が存在している。つまり、文字認識結果が複数ある場合である。例えば、図28のように、複数の文字候補を割り当てることになる。図28は、複数の文字候補がある場合のネットワーク例を示す説明図である。図28の例では、「化学」(文字画像2802)という画像を1文字として認識したときの認識結果が、文字候補2802Aの「梢」、文字候補2802Bの「際」、文字候補2802Cの「傾」の3種類ある。「化」(文字画像2804)という画像を1文字として認識したときの認識結果が、文字候補2804Aの「化」、文字候補2804Bの「比」、文字候補2804Cの「任」の3種類ある。同様に、他の文字画像に対しても文字認識結果としての文字候補が複数ある。なお、図28の例では、各文字画像に対して3種類の文字候補があるが、異なる数の文字候補を割り当ててもよい。例えば、認識確度が予め定められた値以上である文字を文字候補とした場合は、各文字画像に対して文字候補の数が異なる場合がある。
従来技術では、このような場合に、ビタビアルゴリズム(又は、一般的にはダイナミックプログラミング手法)を適用して、文字認識結果を得ることはされていない。
従来技術では、このような場合に、ビタビアルゴリズム(又は、一般的にはダイナミックプログラミング手法)を適用して、文字認識結果を得ることはされていない。
以下、図面に基づき本発明を実現するにあたっての好適な一実施の形態の例を説明する。
図1は、本実施の形態の構成例についての概念的なモジュール構成図を示している。
なお、モジュールとは、一般的に論理的に分離可能なソフトウェア(コンピュータ・プログラム)、ハードウェア等の部品を指す。したがって、本実施の形態におけるモジュールはコンピュータ・プログラムにおけるモジュールのことだけでなく、ハードウェア構成におけるモジュールも指す。それゆえ、本実施の形態は、それらのモジュールとして機能させるためのコンピュータ・プログラム(コンピュータにそれぞれの手順を実行させるためのプログラム、コンピュータをそれぞれの手段として機能させるためのプログラム、コンピュータにそれぞれの機能を実現させるためのプログラム)、システム及び方法の説明をも兼ねている。ただし、説明の都合上、「記憶する」、「記憶させる」、これらと同等の文言を用いるが、これらの文言は、実施の形態がコンピュータ・プログラムの場合は、記憶装置に記憶させる、又は記憶装置に記憶させるように制御するの意である。また、モジュールは機能に一対一に対応していてもよいが、実装においては、1モジュールを1プログラムで構成してもよいし、複数モジュールを1プログラムで構成してもよく、逆に1モジュールを複数プログラムで構成してもよい。また、複数モジュールは1コンピュータによって実行されてもよいし、分散又は並列環境におけるコンピュータによって1モジュールが複数コンピュータで実行されてもよい。なお、1つのモジュールに他のモジュールが含まれていてもよい。また、以下、「接続」とは物理的な接続の他、論理的な接続(データの授受、指示、データ間の参照関係等)の場合にも用いる。「予め定められた」とは、対象としている処理の前に定まっていることをいい、本実施の形態による処理が始まる前はもちろんのこと、本実施の形態による処理が始まった後であっても、対象としている処理の前であれば、そのときの状況・状態に応じて、又はそれまでの状況・状態に応じて定まることの意を含めて用いる。「予め定められた値」が複数ある場合は、それぞれ異なった値であってもよいし、2以上の値(もちろんのことながら、すべての値も含む)が同じであってもよい。また、「Aである場合、Bをする」という意味を有する記載は、「Aであるか否かを判断し、Aであると判断した場合はBをする」の意味で用いる。ただし、Aであるか否かの判断が不要である場合を除く。
また、システム又は装置とは、複数のコンピュータ、ハードウェア、装置等がネットワーク通信(一対一対応の通信接続を含む)等の通信手段で接続されて構成されるほか、1つのコンピュータ、ハードウェア、装置等によって実現される場合も含まれる。「装置」と「システム」とは、互いに同義の用語として用いる。もちろんのことながら、「システム」には、人為的な取り決めである社会的な「仕組み」(社会システム)にすぎないものは含まない。
また、各モジュールによる処理毎に又はモジュール内で複数の処理を行う場合はその処理毎に、対象となる情報を記憶装置から読み込み、その処理を行った後に、処理結果を記憶装置に書き出すものである。したがって、処理前の記憶装置からの読み込み、処理後の記憶装置への書き出しについては、説明を省略する場合がある。なお、ここでの記憶装置としては、ハードディスク、RAM(Random Access Memory)、外部記憶媒体、通信回線を介した記憶装置、CPU(Central Processing Unit)内のレジスタ等を含んでいてもよい。
図1は、本実施の形態の構成例についての概念的なモジュール構成図を示している。
なお、モジュールとは、一般的に論理的に分離可能なソフトウェア(コンピュータ・プログラム)、ハードウェア等の部品を指す。したがって、本実施の形態におけるモジュールはコンピュータ・プログラムにおけるモジュールのことだけでなく、ハードウェア構成におけるモジュールも指す。それゆえ、本実施の形態は、それらのモジュールとして機能させるためのコンピュータ・プログラム(コンピュータにそれぞれの手順を実行させるためのプログラム、コンピュータをそれぞれの手段として機能させるためのプログラム、コンピュータにそれぞれの機能を実現させるためのプログラム)、システム及び方法の説明をも兼ねている。ただし、説明の都合上、「記憶する」、「記憶させる」、これらと同等の文言を用いるが、これらの文言は、実施の形態がコンピュータ・プログラムの場合は、記憶装置に記憶させる、又は記憶装置に記憶させるように制御するの意である。また、モジュールは機能に一対一に対応していてもよいが、実装においては、1モジュールを1プログラムで構成してもよいし、複数モジュールを1プログラムで構成してもよく、逆に1モジュールを複数プログラムで構成してもよい。また、複数モジュールは1コンピュータによって実行されてもよいし、分散又は並列環境におけるコンピュータによって1モジュールが複数コンピュータで実行されてもよい。なお、1つのモジュールに他のモジュールが含まれていてもよい。また、以下、「接続」とは物理的な接続の他、論理的な接続(データの授受、指示、データ間の参照関係等)の場合にも用いる。「予め定められた」とは、対象としている処理の前に定まっていることをいい、本実施の形態による処理が始まる前はもちろんのこと、本実施の形態による処理が始まった後であっても、対象としている処理の前であれば、そのときの状況・状態に応じて、又はそれまでの状況・状態に応じて定まることの意を含めて用いる。「予め定められた値」が複数ある場合は、それぞれ異なった値であってもよいし、2以上の値(もちろんのことながら、すべての値も含む)が同じであってもよい。また、「Aである場合、Bをする」という意味を有する記載は、「Aであるか否かを判断し、Aであると判断した場合はBをする」の意味で用いる。ただし、Aであるか否かの判断が不要である場合を除く。
また、システム又は装置とは、複数のコンピュータ、ハードウェア、装置等がネットワーク通信(一対一対応の通信接続を含む)等の通信手段で接続されて構成されるほか、1つのコンピュータ、ハードウェア、装置等によって実現される場合も含まれる。「装置」と「システム」とは、互いに同義の用語として用いる。もちろんのことながら、「システム」には、人為的な取り決めである社会的な「仕組み」(社会システム)にすぎないものは含まない。
また、各モジュールによる処理毎に又はモジュール内で複数の処理を行う場合はその処理毎に、対象となる情報を記憶装置から読み込み、その処理を行った後に、処理結果を記憶装置に書き出すものである。したがって、処理前の記憶装置からの読み込み、処理後の記憶装置への書き出しについては、説明を省略する場合がある。なお、ここでの記憶装置としては、ハードディスク、RAM(Random Access Memory)、外部記憶媒体、通信回線を介した記憶装置、CPU(Central Processing Unit)内のレジスタ等を含んでいてもよい。
本実施の形態である画像処理装置は、画像から文字を認識するものであって、図1の例に示すように、画像受付モジュール110、文字列抽出モジュール120、切出位置抽出モジュール130、文字候補抽出モジュール140、パス処理モジュール150、出力モジュール160を有している。
画像受付モジュール110は、文字列抽出モジュール120と接続されている。画像受付モジュール110は、画像を受け付けて、その画像を文字列抽出モジュール120へ渡す。画像を受け付けるとは、例えば、スキャナ、カメラ等で画像を読み込むこと、ファックス等で通信回線を介して外部機器から画像を受信すること、ハードディスク(コンピュータに内蔵されているものの他に、通信回線を介して接続されているもの等を含む)等に記憶されている画像を読み出すこと等が含まれる。画像は、2値画像、多値画像(カラー画像を含む)であってもよい。受け付ける画像は、1枚であってもよいし、複数枚であってもよい。また、画像の内容として、文字列が含まれているのであれば、ビジネスに用いられる文書、広告宣伝用のパンフレット等であってもよい。
文字列抽出モジュール120は、画像受付モジュール110、切出位置抽出モジュール130と接続されている。文字列抽出モジュール120は、画像受付モジュール110が受け付けた画像から文字列を抽出する。
切出位置抽出モジュール130が対象とする画像は横書きあるいは縦書きの、1列のみの文字列画像を対象としている。なお、ここで、列とは、横書きの場合は横に並ぶ列であり、縦書きの場合は縦に並ぶ列である。
したがって、文字列抽出モジュール120は、画像受付モジュール110が受け付けた画像が1列のみの文字列画像であれば、そのまま用いればよい。画像受付モジュール110が受け付けた画像が、複数の文字列が存在するものがあり、このような複数文字列を単一の文字列になるように分離する手法としては、従来からさまざまなものが提案されているため、それらを用いればよい。単一の文字列となるように分離する例としてもさまざまな方式があるため、そのうちのいずれかを用いればよい。例えば、(1)特開平4−311283号公報、(2)特開平3−233789号公報、(3)特開平5−73718号公報、(4)特開2000−90194号公報、等を用いればよい。これ以外の方法であってもよい。
切出位置抽出モジュール130が対象とする画像は横書きあるいは縦書きの、1列のみの文字列画像を対象としている。なお、ここで、列とは、横書きの場合は横に並ぶ列であり、縦書きの場合は縦に並ぶ列である。
したがって、文字列抽出モジュール120は、画像受付モジュール110が受け付けた画像が1列のみの文字列画像であれば、そのまま用いればよい。画像受付モジュール110が受け付けた画像が、複数の文字列が存在するものがあり、このような複数文字列を単一の文字列になるように分離する手法としては、従来からさまざまなものが提案されているため、それらを用いればよい。単一の文字列となるように分離する例としてもさまざまな方式があるため、そのうちのいずれかを用いればよい。例えば、(1)特開平4−311283号公報、(2)特開平3−233789号公報、(3)特開平5−73718号公報、(4)特開2000−90194号公報、等を用いればよい。これ以外の方法であってもよい。
切出位置抽出モジュール130は、文字列抽出モジュール120、文字候補抽出モジュール140と接続されている。切出位置抽出モジュール130は、文字列抽出モジュール120が抽出した文字列画像から文字画像を切り出す位置を抽出する。つまり、文字列画像を複数の文字セグメントに分割する。この文字切り出し位置の抽出方法としてもさまざまな方式があるため、そのうちのどれかを用いればよい。例えば、(1)特開平5−114047号公報、(2)特開平4−100189号公報、(3)特開平4−92992号公報、(4)特開平4−68481号公報、(5)特開平9−54814号公報、(6)特開平9−185681号公報の0021段落に記載の文字の境界候補抽出方式、(7)特開平5−128308号公報の0005段落に記載の文字切り出し位置決定方法等を用いればよい。これ以外の方法であってもよい。なお、ここでの文字画像とは、いわば文字候補画像であり、必ずしもその文字画像が1つの文字を表す画像でなくてもよい。
また、切出位置抽出モジュール130は、複数の切り出し位置を抽出してもよい。複数の切り出し位置を抽出することによって、1つの文字列画像に対して、文字切出位置群が複数ある。文字切出位置群とは、1つの文字列画像に対して、1つ以上の文字切り出し位置があることをいう。例えば、2つの文字切り出し位置があれば、3つの文字画像に分けられることになる。また、文字切出位置群が複数あるとは、1つの文字列画像に対して、文字切出位置で分けられた文字画像列が複数あることをいう。例えば、2つの文字切り出し位置で3つの文字画像からなる文字画像列と、3つの文字切り出し位置で4つの文字画像からなる文字画像列となる。具体例で説明すると、「化学」という文字列に対して、「イ」「ヒ」「学」からなる文字画像列と「化」「学」からなる文字画像列を生成することである。
文字候補抽出モジュール140は、切出位置抽出モジュール130、パス処理モジュール150と接続されている。文字候補抽出モジュール140は、切出位置抽出モジュール130によって抽出された位置によって分けられた文字画像に対して文字認識を行った結果である複数の文字候補を抽出する。この抽出処理を行うために、文字認識処理を行ってもよい。そのために、文字候補抽出モジュール140内に文字認識モジュールを含んでいてもよい。文字認識処理による認識結果は、前述のように、1つの文字画像に対して複数の文字候補が対応する。つまり、その文字画像を文字認識して、第1位の認識確度を有している文字候補、第2位の認識確度を有している文字候補等のように、複数の文字候補を文字認識結果とする。そして、文字認識結果として、文字候補の他に、その文字候補の認識確度を有していてもよい。また、抽出するのに、1つの文字画像に対して予め定められた数の文字候補を抽出してもよいし、予め定められた値以上の認識確度を有している文字候補を抽出してもよい。なお、認識確度は、文字認識処理において、その認識結果としての信頼性を表す値であってもよいし、文字画像の外接矩形のサイズ、縦横比等によって定められる文字らしさを表す値であってもよい。
パス処理モジュール150は、文字候補抽出モジュール140、出力モジュール160と接続されている。パス処理モジュール150は、文字候補抽出モジュール140によって抽出された複数の文字候補の各々をノードとし、隣接する文字画像のノード間にリンクを構築することによってネットワークを生成する。隣接する文字画像のノード間とは、隣接する文字画像があり、その文字画像に対応するノード間ということである。
また、切出位置抽出モジュール130が複数の切り出し位置を抽出した場合は、パス処理モジュール150は、切出位置抽出モジュール130によって抽出された複数の切り出し位置によって分けられた文字画像に対して文字認識を行った結果である複数の文字候補の各々をノードとし、隣接する文字画像のノード間にリンクを構築することによってネットワークを生成するようにしてもよい。
また、切出位置抽出モジュール130が複数の切り出し位置を抽出した場合は、パス処理モジュール150は、切出位置抽出モジュール130によって抽出された複数の切り出し位置によって分けられた文字画像に対して文字認識を行った結果である複数の文字候補の各々をノードとし、隣接する文字画像のノード間にリンクを構築することによってネットワークを生成するようにしてもよい。
そして、パス処理モジュール150は、生成されたネットワーク内の隣接する文字において左側にある第1の文字に関する情報と、その第1の文字と第1の文字に対して右側にある第2の文字との関係に関する情報に基づいて第1の評価値を算出する。そして、第2の文字に関する情報と、その第2の文字と第1の文字との関係に関する情報に基づいて第2の評価値を算出する。ネットワークにおいて始点から終点までの経路における第1の評価値と第2の評価値の重み付け和を算出し、その算出の結果に基づいて経路を選択する。具体的には、後述する(5)式に基づいて算出する。文字に関する情報とは、その文字(文字画像、文字認識結果を含む)単体における情報であって、例えば、(A1)文字形状情報(リンクの片方の文字の形状情報(例えば、縦横比等)、(A2)文字認識確度(リンクの片方の文字の認識確度)、(A3)文字出現確率(モノグラムともいわれ、リンクの片方の文字が出現する確率)等がある。2つの文字の関係に関する情報とは、リンクの両端(左右)の文字を用いて算出する情報(隣接文字情報)であって、例えば、(B1)隣接文字出現確率(バイグラムともいわれ、リンクの左右の文字が連続で出現する確率)、(B2)文字幅変化量(左右の文字幅の変化量)等がある。なお、2つの文字の関係に関する情報は、左の文字から右の文字、右の文字から左の文字の関係によって、異なる場合がある。
また、第1の評価値の算出と第2の評価値の算出は、非線形関数を用いて行うようにしてもよい。非線形関数として、例えば、ニューロコンピュータによる文字認識に用いられる非線形関数を用いるようにしてもよい。
また、第1の評価値の算出と第2の評価値の算出は、非線形関数を用いて行うようにしてもよい。非線形関数として、例えば、ニューロコンピュータによる文字認識に用いられる非線形関数を用いるようにしてもよい。
出力モジュール160は、パス処理モジュール150と接続されている。出力モジュール160は、パス処理モジュール150によって選択されたリンクによってつながれたパス内の文字候補列を文字認識結果として出力する。また、出力モジュール160は、パス処理モジュール150によって選択されたパス内の文字候補列を文字認識結果として出力するようにしてもよい。文字認識結果を出力するとは、例えば、プリンタ等の印刷装置で印刷すること、ディスプレイ等の表示装置に表示すること、メモリーカード等の記憶媒体に記憶すること、他の情報処理装置(文書化を行う文字情報処理装置等)へ渡すこと等が含まれる。
図2は、本実施の形態による処理例を示すフローチャートである。
ステップS202では、画像受付モジュール110が、対象となる画像を受け付ける。
ステップS204では、文字列抽出モジュール120が、画像から文字列画像を抽出する。
ステップS206では、切出位置抽出モジュール130が、文字列画像を対象として切り出し位置を抽出する。
ステップS208では、文字候補抽出モジュール140が、切り出された文字画像を文字認識する。
ステップS210では、文字候補抽出モジュール140が、複数の文字認識結果を文字画像の文字候補として抽出する。
ステップS212では、パス処理モジュール150が、ネットワークを生成し、その中のパスを選択する。
ステップS214では、出力モジュール160が、文字認識結果を出力する。
ステップS202では、画像受付モジュール110が、対象となる画像を受け付ける。
ステップS204では、文字列抽出モジュール120が、画像から文字列画像を抽出する。
ステップS206では、切出位置抽出モジュール130が、文字列画像を対象として切り出し位置を抽出する。
ステップS208では、文字候補抽出モジュール140が、切り出された文字画像を文字認識する。
ステップS210では、文字候補抽出モジュール140が、複数の文字認識結果を文字画像の文字候補として抽出する。
ステップS212では、パス処理モジュール150が、ネットワークを生成し、その中のパスを選択する。
ステップS214では、出力モジュール160が、文字認識結果を出力する。
次に、図3から図20を用いて、パス処理モジュール150による処理を説明する。
本実施の形態は、さらに、パス評価値の高いパス(文字認識結果としてふさわしいもの)を出力することによって、文字切り出し位置の確定、又は文字認識を行うものである。また、パスの探索にダイナミックプログラミングの手法を用いてもよい。
本実施の形態のネットワークにおいては、始点ノード、終点ノード、複数の中間ノードがある。また、各ノード間のリンクには、リンク値を与える。始点ノードから1あるいは複数の中間ノードを介して、終点ノードに至るパスは、介するノードに依存したリンクを通ることになる。始点ノードから終点ノードに至るパスのパス評価値は、そのパスが通ったリンクのリンク値の重み付け和として表すことができる。
本実施の形態のパス処理モジュール150は、1つの文字画像に対して、複数の文字認識結果が存在しているときに、前述のノード、リンク、パスの構成(ネットワーク構造)を生成するものである。ネットワーク構造が与えられれば、パス処理モジュール150によってビタビアルゴリズムなどの手法を用いて、最適パスを探索することが可能となる。
本実施の形態は、さらに、パス評価値の高いパス(文字認識結果としてふさわしいもの)を出力することによって、文字切り出し位置の確定、又は文字認識を行うものである。また、パスの探索にダイナミックプログラミングの手法を用いてもよい。
本実施の形態のネットワークにおいては、始点ノード、終点ノード、複数の中間ノードがある。また、各ノード間のリンクには、リンク値を与える。始点ノードから1あるいは複数の中間ノードを介して、終点ノードに至るパスは、介するノードに依存したリンクを通ることになる。始点ノードから終点ノードに至るパスのパス評価値は、そのパスが通ったリンクのリンク値の重み付け和として表すことができる。
本実施の形態のパス処理モジュール150は、1つの文字画像に対して、複数の文字認識結果が存在しているときに、前述のノード、リンク、パスの構成(ネットワーク構造)を生成するものである。ネットワーク構造が与えられれば、パス処理モジュール150によってビタビアルゴリズムなどの手法を用いて、最適パスを探索することが可能となる。
<A1.文字切り出し位置が固定の場合>
まず、切出位置抽出モジュール130の抽出する文字切り出し位置が固定(一種類)の場合について説明する。
図3は、記号例を示す説明図である。記号の種類として、長方形310、横棒である接続線320、322、324、326、328、円弧330、丸である文字候補342、344、346がある。
図3の例において、長方形310A、310B、310C、310D(図4に例示する長方形310)は、それぞれ文字セグメントを表す。
また、横棒である接続線320、322、324、326、328は、文字切り出し位置を示す(図5に例示する接続線320、接続線322)。文字セグメントは文字切り出し位置を介して、隣接する文字セグメントにつながっている。
さらに、丸で表されている文字候補342A、344A等は、1つの文字セグメントを1文字として認識したときの、複数の文字候補を示す。円弧330A、330B、330C、330Dは、下の1つの文字セグメントだけを対象に文字認識を行っていることを示している。
まず、切出位置抽出モジュール130の抽出する文字切り出し位置が固定(一種類)の場合について説明する。
図3は、記号例を示す説明図である。記号の種類として、長方形310、横棒である接続線320、322、324、326、328、円弧330、丸である文字候補342、344、346がある。
図3の例において、長方形310A、310B、310C、310D(図4に例示する長方形310)は、それぞれ文字セグメントを表す。
また、横棒である接続線320、322、324、326、328は、文字切り出し位置を示す(図5に例示する接続線320、接続線322)。文字セグメントは文字切り出し位置を介して、隣接する文字セグメントにつながっている。
さらに、丸で表されている文字候補342A、344A等は、1つの文字セグメントを1文字として認識したときの、複数の文字候補を示す。円弧330A、330B、330C、330Dは、下の1つの文字セグメントだけを対象に文字認識を行っていることを示している。
図6の例では、文字候補342、344、346は、その下の長方形310が示す1文字の文字セグメントを認識したときの複数の文字候補であることを示している。また、円弧330は、その下の長方形3101つだけを対象に文字認識を行うことを示している。
本実施の形態では、文字セグメントの複数の文字候補をノードとして捉える。さらに、隣接する文字セグメントの文字候補と、リンクを接続する。図7の例にリンクを太線で記入して示す。
ここでリンク値としては、リンク左右のノードの相互作用を示すものを使ってもよい。具体的には、リンクの左の文字候補とリンクの右の文字候補が連続して日本語の文章中に出現する確率(バイグラム)を用いる。
このようにノードとリンクを構成することによって、すべてのネットワーク構造が規定できる。ネットワーク構造が規定できれば、ビタビアルゴリズム等により、最適パスを選択できる。
本実施の形態では、文字セグメントの複数の文字候補をノードとして捉える。さらに、隣接する文字セグメントの文字候補と、リンクを接続する。図7の例にリンクを太線で記入して示す。
ここでリンク値としては、リンク左右のノードの相互作用を示すものを使ってもよい。具体的には、リンクの左の文字候補とリンクの右の文字候補が連続して日本語の文章中に出現する確率(バイグラム)を用いる。
このようにノードとリンクを構成することによって、すべてのネットワーク構造が規定できる。ネットワーク構造が規定できれば、ビタビアルゴリズム等により、最適パスを選択できる。
<A2.ノード内情報も用いる場合>
前述では、リンク評価値として、ノード間の相互作用を示すものだけを用いたが、ノード単独の評価値を用いることも可能である。ここでは、ビタビアルゴリズムを用いて最適パスを探索するものとする。左から順にノードの左から入るリンクを各ノード毎に1つだけに限定していく処理を行う。今、図8の例の矢印で示すノード(842D、844E、846F)のリンクを限定する段階であるとする。
今、矢印のノード(842D、844E、846F)と、矢印のノードの左側にあるノード(842A、844B、846C)間のリンクを評価する。リンク評価値としては、各ノード間の相互作用を表すバイグラムなどの値と、各ノード内部の値の両方を用いる。ノード内部の値とは、例えば、ノードDの文字の認識確度などがある。
前述では、リンク評価値として、ノード間の相互作用を示すものだけを用いたが、ノード単独の評価値を用いることも可能である。ここでは、ビタビアルゴリズムを用いて最適パスを探索するものとする。左から順にノードの左から入るリンクを各ノード毎に1つだけに限定していく処理を行う。今、図8の例の矢印で示すノード(842D、844E、846F)のリンクを限定する段階であるとする。
今、矢印のノード(842D、844E、846F)と、矢印のノードの左側にあるノード(842A、844B、846C)間のリンクを評価する。リンク評価値としては、各ノード間の相互作用を表すバイグラムなどの値と、各ノード内部の値の両方を用いる。ノード内部の値とは、例えば、ノードDの文字の認識確度などがある。
ここで、リンクは、ノード(842D、844E、846F)とノード(842A、844B、846C)間にあるため、リンクの評価値としては、ノード(842D、844E、846F)とノード(842A、844B、846C)間の評価値を算出するのが簡単である。しかし、ノード内部の値は、ノード(842D、844E、846F)とノード(842A、844B、846C)間にあるのではなく、この場合、ノード(842D、844E、846F)に存在する。
つまり、ノード間情報はリンクの内部に存在していて、ノード内情報はリンクの端点に存在する。このような発生位置、あるいは、概念が異なる値を一度に扱うことは従来なかった点である。
つまり、ノード間情報はリンクの内部に存在していて、ノード内情報はリンクの端点に存在する。このような発生位置、あるいは、概念が異なる値を一度に扱うことは従来なかった点である。
従来では、図25の例に示す始点、「1」、「2」、終点など(つまり、文字切り出し位置)をノードとして、ノード間のアーク評価値を算出している。本実施の形態のように、複数の文字コードをノードとして、ノード間のリンクの評価値を算出するわけではない。そのため、従来技術をそのまま用いることはできない。
本実施の形態では、リンクの評価値として、リンクの内部に存在する値(例えば、バイグラムの値)と、リンクの一方の端点のみに存在する値(例えば、ノード842Dの文字認識確度)を用いる。他方の端点に存在する値(例えば、ノード842Aの文字認識確度)は用いない。このようにすることで、リンクの内部の値と、リンクの端点の値をともに用いる評価が可能となる。
最終的には、文字列の評価値(パス評価値)として、(1)式で、すべてのリンクの評価値を加算することになる。そのため、リンクの評価値の中に、リンクの内部の評価値と、リンクの一方の端点の評価値が含まれていれば、パス評価値の中にすべてのリンク内部の評価値とリンク端点の評価値が1つずつ含まれることになる。
本実施の形態では、リンクの評価値として、リンクの内部に存在する値(例えば、バイグラムの値)と、リンクの一方の端点のみに存在する値(例えば、ノード842Dの文字認識確度)を用いる。他方の端点に存在する値(例えば、ノード842Aの文字認識確度)は用いない。このようにすることで、リンクの内部の値と、リンクの端点の値をともに用いる評価が可能となる。
最終的には、文字列の評価値(パス評価値)として、(1)式で、すべてのリンクの評価値を加算することになる。そのため、リンクの評価値の中に、リンクの内部の評価値と、リンクの一方の端点の評価値が含まれていれば、パス評価値の中にすべてのリンク内部の評価値とリンク端点の評価値が1つずつ含まれることになる。
模式図として図9の例を示す。図9の例に示す○(白丸、例えば、ノード920)はノードを示す。横棒はリンク(例えば、リンク910)を示す。
1つのリンク評価値は、ノード一つとリンク一つの評価を示す。そのため、この図9(b)の例では、3回のリンク評価結果を合わせることで、最も左の端点ノード以外を評価できることになる。左の端点処理として、左の端点のノードのノード内部評価値のみを算出してパス評価値に加算する。又は、左の端点のノード内部評価値と最も左のリンク評価値を加算するなどの処理を行えばよい。
さて、ここでは、前述のリンク内部の値と、リンク端点の値のように、複数の値(バイグラムや認識確度)などを特徴量として、リンク評価値を算出すればよい。
このように複数の値から、1つのリンク値を算出する方法としては、(1)特開平9−185681号公報、(2)特開昭61−175878号公報、(3)特開平3−37782号公報、(4)特開平11−203406号公報、(5)特開2012−8909号公報等に記載の技術を用いればよい。これ以外の方法であってもよい。
なお、複数の値を特徴量ベクトルとして把握し、リンク値は、特徴量ベクトルを対象として、リンク評価値(スカラー値)を出力する関数で実現できる。
1つのリンク評価値は、ノード一つとリンク一つの評価を示す。そのため、この図9(b)の例では、3回のリンク評価結果を合わせることで、最も左の端点ノード以外を評価できることになる。左の端点処理として、左の端点のノードのノード内部評価値のみを算出してパス評価値に加算する。又は、左の端点のノード内部評価値と最も左のリンク評価値を加算するなどの処理を行えばよい。
さて、ここでは、前述のリンク内部の値と、リンク端点の値のように、複数の値(バイグラムや認識確度)などを特徴量として、リンク評価値を算出すればよい。
このように複数の値から、1つのリンク値を算出する方法としては、(1)特開平9−185681号公報、(2)特開昭61−175878号公報、(3)特開平3−37782号公報、(4)特開平11−203406号公報、(5)特開2012−8909号公報等に記載の技術を用いればよい。これ以外の方法であってもよい。
なお、複数の値を特徴量ベクトルとして把握し、リンク値は、特徴量ベクトルを対象として、リンク評価値(スカラー値)を出力する関数で実現できる。
<A3.リンク情報として2以上のノードを用いる場合>
前述では、リンク左右のノードの相互情報としてバイグラムを用いていた。この場合、リンク情報として2つのノード間の関係情報を用いていることになる。
ビタビアルゴリズムを用いる場合、例えば、ノードである文字候補342A、344A、346Aの左側のリンク数はすでに1個に限定されていることになる。この場合には、2以上のノードの情報を用いてリンク情報を構築することが可能となる。
例えば、2つの連続する文字の生起確率であるバイグラムではなく、3つの連続する文字の生起確率であるトライグラムを用いることも可能となる。
今、ノードである文字候補342B、344B、346Bの左側のリンク値を生成しようとする。
例えば、文字候補342A−文字候補342B間のリンク値を算出する。バイグラムであれば、文字候補342Aと文字候補342Bが連続する生起確率を求めればよい。ここで、トライグラムを求める場合を説明する。文字候補342Aの左側のリンクは1つに限定されているため、実は、文字候補342Aの左の文字も確定していることになる。この文字を保持するノードをGとする。トライグラムとしては、ノードG−ノード(文字候補342A)−ノード(文字候補342B)の3つの文字に関する生起確率を求めればよい。
以上のように求めたトライグラムをノード(文字候補342A)−ノード(文字候補342B)間のリンク値として生成すればよい。同様に、Ngramであっても、求めることが可能となる。
前述では、リンク左右のノードの相互情報としてバイグラムを用いていた。この場合、リンク情報として2つのノード間の関係情報を用いていることになる。
ビタビアルゴリズムを用いる場合、例えば、ノードである文字候補342A、344A、346Aの左側のリンク数はすでに1個に限定されていることになる。この場合には、2以上のノードの情報を用いてリンク情報を構築することが可能となる。
例えば、2つの連続する文字の生起確率であるバイグラムではなく、3つの連続する文字の生起確率であるトライグラムを用いることも可能となる。
今、ノードである文字候補342B、344B、346Bの左側のリンク値を生成しようとする。
例えば、文字候補342A−文字候補342B間のリンク値を算出する。バイグラムであれば、文字候補342Aと文字候補342Bが連続する生起確率を求めればよい。ここで、トライグラムを求める場合を説明する。文字候補342Aの左側のリンクは1つに限定されているため、実は、文字候補342Aの左の文字も確定していることになる。この文字を保持するノードをGとする。トライグラムとしては、ノードG−ノード(文字候補342A)−ノード(文字候補342B)の3つの文字に関する生起確率を求めればよい。
以上のように求めたトライグラムをノード(文字候補342A)−ノード(文字候補342B)間のリンク値として生成すればよい。同様に、Ngramであっても、求めることが可能となる。
<A4.文字切り出し位置が確定していない場合>
文字切り出し位置が確定していない場合(つまり、切出位置抽出モジュール130が複数の文字切り出し位置を抽出した場合であり、具体的には、「化」のように、「イ」と「ヒ」、あるいは、「化」のどちらになるか分からない場合)、文字候補の選択と、文字切り出し位置の選択を行うようにしてもよい。文字切り出し位置が確定していない場合、文字候補の選択は、文字切り出し位置の選択となる。
図10は、文字切り出し位置が複数ある場合の処理例を示す説明図である。ここでは、円弧の記号の意味が追加されている。円弧が下にある複数の文字セグメント(長方形)を指し示す場合、その円弧はその複数の文字セグメントを統合した画像を1文字とみなして認識することを示す。円弧1010Aは、長方形310Aと長方形310Bを統合した画像を1文字とみなして文字認識結果として文字候補1022A、1024A、1026Aを有している。また、円弧1010Cは、長方形310A、310B、310C、310Dを統合した画像を1文字とみなして文字認識結果として文字候補1022C、1024C、1026Cを有している。
図11の例に示すように、円弧330Aと円弧330Bの下に2つの文字セグメント(長方形310A、長方形310B)「イ」と「ヒ」がある場合に、その2つを含む円弧1010の上の文字候補(文字候補1022、1024、1026)は、「イ」と「ヒ」を統合した1つの文字セグメント「化」を認識したときの複数の文字候補に相当する。
文字切り出し位置が確定していない場合(つまり、切出位置抽出モジュール130が複数の文字切り出し位置を抽出した場合であり、具体的には、「化」のように、「イ」と「ヒ」、あるいは、「化」のどちらになるか分からない場合)、文字候補の選択と、文字切り出し位置の選択を行うようにしてもよい。文字切り出し位置が確定していない場合、文字候補の選択は、文字切り出し位置の選択となる。
図10は、文字切り出し位置が複数ある場合の処理例を示す説明図である。ここでは、円弧の記号の意味が追加されている。円弧が下にある複数の文字セグメント(長方形)を指し示す場合、その円弧はその複数の文字セグメントを統合した画像を1文字とみなして認識することを示す。円弧1010Aは、長方形310Aと長方形310Bを統合した画像を1文字とみなして文字認識結果として文字候補1022A、1024A、1026Aを有している。また、円弧1010Cは、長方形310A、310B、310C、310Dを統合した画像を1文字とみなして文字認識結果として文字候補1022C、1024C、1026Cを有している。
図11の例に示すように、円弧330Aと円弧330Bの下に2つの文字セグメント(長方形310A、長方形310B)「イ」と「ヒ」がある場合に、その2つを含む円弧1010の上の文字候補(文字候補1022、1024、1026)は、「イ」と「ヒ」を統合した1つの文字セグメント「化」を認識したときの複数の文字候補に相当する。
文字切り出し位置が確定していない場合のリンクの接続は、図12の例に示すようになる。図12は、文字切り出し位置が複数ある場合の処理例を示す説明図である。
ここでは、文字切り出し位置に注目する。今、図12の矢印で示す文字切り出し位置に関連するノードのリンクを対象とする。この文字切り出し位置でリンクされるノードには、
(1)左側ノード:矢印の文字切り出し位置に円弧の右側が存在するノード(斜線でハッチングしたノード、文字候補1242A、文字候補1244A、文字候補1262A、文字候補1264A、文字候補1272A、文字候補1274A等)と、
(2)右側ノード:矢印の文字切り出し位置に円弧の左側が存在するノード(内部が白のノード、文字候補1242B、文字候補1244B、文字候補1262B、文字候補1264B、文字候補1272B、文字候補1274B等)
の2種類がある。このとき、左側ノードと、右側ノード間にリンクを形成することによって、グラフ構造を構築することができる。
例えば、すべての左側ノードが、すべての右側ノードに直接接続できるようにリンクを形成すればよい。さらに、すべての文字切り出し位置において、前述のように、左側ノードと右側ノードのリンクを形成し、さらに、左側が文字列の端点の場合には始点ノードに接続し、また、右側が文字列の端点の場合には終端ノードに接続すれば、すべてのグラフ構造を構築することができる。
ここでは、文字切り出し位置に注目する。今、図12の矢印で示す文字切り出し位置に関連するノードのリンクを対象とする。この文字切り出し位置でリンクされるノードには、
(1)左側ノード:矢印の文字切り出し位置に円弧の右側が存在するノード(斜線でハッチングしたノード、文字候補1242A、文字候補1244A、文字候補1262A、文字候補1264A、文字候補1272A、文字候補1274A等)と、
(2)右側ノード:矢印の文字切り出し位置に円弧の左側が存在するノード(内部が白のノード、文字候補1242B、文字候補1244B、文字候補1262B、文字候補1264B、文字候補1272B、文字候補1274B等)
の2種類がある。このとき、左側ノードと、右側ノード間にリンクを形成することによって、グラフ構造を構築することができる。
例えば、すべての左側ノードが、すべての右側ノードに直接接続できるようにリンクを形成すればよい。さらに、すべての文字切り出し位置において、前述のように、左側ノードと右側ノードのリンクを形成し、さらに、左側が文字列の端点の場合には始点ノードに接続し、また、右側が文字列の端点の場合には終端ノードに接続すれば、すべてのグラフ構造を構築することができる。
この場合においても、リンク値は、リンク左右のノードの相互作用を示すものを使ってもよいし、ノード内部の評価値を用いてもよい。
特に、この場合には、文字切り出し位置が確定していないため、ノード内部の評価値として、文字の形状情報を用いることができる。文字形状情報の例として、文字の縦横比や、文字左右の空白量、等を用いることができる。
特に、この場合には、文字切り出し位置が確定していないため、ノード内部の評価値として、文字の形状情報を用いることができる。文字形状情報の例として、文字の縦横比や、文字左右の空白量、等を用いることができる。
このようにすることによって、文字列の左端から、文字列の右端に至るすべてのパスを書き出すことができる。各パスは、認識出力文字列に該当する。つまり、文字列を構成するネットワークにおいて、左端ノードから、右端ノードへ至るパスを決定することによって、文字列を決定できることになる。
先行技術において、パス評価値Pは、i番目のアークのアーク評価値をViとして、次式((1)式)で与えられる。
アーク評価値(又はリンク評価値)Viは、先行技術において、図9の例に示すように、ノード一つと、リンク一つの評価を組み合わせたものになる。
ここで、ノードとノードの連結するものがリンクであるため、リンクの両端はノードとなる。また、文字列としては、両端がノードとなる。
文字列は、図13の例に示すように、ノード(始点)から始まって、リンク(リンク1310等)を介してノード(ノード1320)をつなぎ、ノード(終点)で終わる。
よって、リンクの数は、ノードの数よりも必ず1だけ小さくなる。
図9の例に示すように、i番目のアーク評価値Viは、左からi番目のリンクの情報(リンク情報)と、左からi+1番目の文字(ノード)の情報(文字情報)で算出する。
リンク情報とは、左からi番目の文字と、i+1番目の文字との相互関係で算出する。例えば、連続する2文字の生起確率(文字バイグラム)や、連続する2文字間の文字幅の比等が用いられる。
文字(ノード)情報とは、文字単体情報すなわち、文字形状、又は、1文字の生起確率等で算出する。
実際には、これら全ての情報を一度に1列のベクトル情報xとし、何らかの関数f(x)を用いて、アーク評価値Viを算出することとなる((2)式)。
このとき、1回のViの評価には、ベクトルxとして、ノード一つ分のノード情報と、リンク一つ分のリンク情報だけしか入力されない。図14の例に示すように、1回のリンク評価対象1410は、ノード一つとリンク一つによって構成されることになる。
この評価を行った場合、全体のパス評価値としては、最も左のノードの評価ができないこととなる。
ここで、ノードとノードの連結するものがリンクであるため、リンクの両端はノードとなる。また、文字列としては、両端がノードとなる。
文字列は、図13の例に示すように、ノード(始点)から始まって、リンク(リンク1310等)を介してノード(ノード1320)をつなぎ、ノード(終点)で終わる。
よって、リンクの数は、ノードの数よりも必ず1だけ小さくなる。
図9の例に示すように、i番目のアーク評価値Viは、左からi番目のリンクの情報(リンク情報)と、左からi+1番目の文字(ノード)の情報(文字情報)で算出する。
リンク情報とは、左からi番目の文字と、i+1番目の文字との相互関係で算出する。例えば、連続する2文字の生起確率(文字バイグラム)や、連続する2文字間の文字幅の比等が用いられる。
文字(ノード)情報とは、文字単体情報すなわち、文字形状、又は、1文字の生起確率等で算出する。
実際には、これら全ての情報を一度に1列のベクトル情報xとし、何らかの関数f(x)を用いて、アーク評価値Viを算出することとなる((2)式)。
この評価を行った場合、全体のパス評価値としては、最も左のノードの評価ができないこととなる。
最も左のノードも評価に入れるためには、下記の4つの方策がある。
1. ノード単体で評価する。
2. ノード2つと、リンク一つをベクトルとして評価する。
3. 左から右に評価したものと、右から左に評価したものを加算する。
4. 本実施の形態
以下、それぞれについて述べる。
1. ノード単体で評価する。
2. ノード2つと、リンク一つをベクトルとして評価する。
3. 左から右に評価したものと、右から左に評価したものを加算する。
4. 本実施の形態
以下、それぞれについて述べる。
<1 ノード単体で評価する>
まず、ノードとリンクの情報をベクトル化したものをx、ノードだけの情報をベクトル化したものをyとする。
xiを、左からi番目の文字と、i+1番目の文字との相互関係と、左からi+1番目の文字の単体情報をベクトル化したものとする。
yiを、左からi番目の文字の単体情報をベクトル化したものとする。
最も左の文字位置を1番目とする。また、最も左のリンクを1番目とする。
文字単体情報yを入力してノードの評価値を出力する関数をg(y)とする。
パス評価値Pは、(3)式で求める。
この方式では、図15の例に示すように、図15(a)の例に示すネットワークに対して、図15(b)の例に示すような評価となり、左から算出した場合(最も左の文字だけ別扱い)と、右から算出した場合(最も右の文字だけ別扱い)とで、結果が異なる。つまり、ネットワークにおいて対称性のない(非対称な)評価値となる。
まず、ノードとリンクの情報をベクトル化したものをx、ノードだけの情報をベクトル化したものをyとする。
xiを、左からi番目の文字と、i+1番目の文字との相互関係と、左からi+1番目の文字の単体情報をベクトル化したものとする。
yiを、左からi番目の文字の単体情報をベクトル化したものとする。
最も左の文字位置を1番目とする。また、最も左のリンクを1番目とする。
文字単体情報yを入力してノードの評価値を出力する関数をg(y)とする。
パス評価値Pは、(3)式で求める。
<2 ノード2つとリンク一つを入力ベクトルとする>
ziを、左からi番目の文字と、i+1番目の文字との相互関係と、左からi番目の文字情報(文字単体情報)と、左からi+1番目の文字の文字情報をベクトル化したものとする。zを入力して、リンクの評価値を出力する関数をh(z)とする。
パス評価値Pは、(4)式で求める。
この方式では、図16の例に示すように、図16(a)の例に示すネットワークに対して、図16(b)の例に示すような評価となり、左右で非対称とはならない。
しかし、この場合には、関数hを最適化する場合に、左右の文字単体情報を用いる必要がある。
左右の文字単体情報の組み合わせが膨大となるため、最適化できるほどの均質なサンプル数を得ることが困難となり、最適化が難しくなる。
ziを、左からi番目の文字と、i+1番目の文字との相互関係と、左からi番目の文字情報(文字単体情報)と、左からi+1番目の文字の文字情報をベクトル化したものとする。zを入力して、リンクの評価値を出力する関数をh(z)とする。
パス評価値Pは、(4)式で求める。
しかし、この場合には、関数hを最適化する場合に、左右の文字単体情報を用いる必要がある。
左右の文字単体情報の組み合わせが膨大となるため、最適化できるほどの均質なサンプル数を得ることが困難となり、最適化が難しくなる。
<3 左から右に評価したものと、右から左に評価したものを加算する>
本方式では、図17の例に示すように、図17(a)の例に示すネットワークに対して、図17(b)の例に示すような評価(左から右へ評価したものと、右から左へ評価したものとの和)となり、非対称となることはない。
ただし、本方式は、パスの確定にダイナミックプログラミング法(例えば、ビタビアルゴリズム等)を用いる。左から右にパスを確定して行ったときにダイナミックプログラミング法で残存するパスと、右から左にパスを確定して行ったときにダイナミックプログラミング法で残存するパスが異なる場合がある。同じパスが残存していないと、本方式を用いることはできない。
なお、ビタビアルゴリズムは、あるノードにある方向から入力されるリンクを1に限定することによって、最適ではないパスを削減する。これにより、演算処理量と所要メモリ量を削減する手法である。
本方式では、図17の例に示すように、図17(a)の例に示すネットワークに対して、図17(b)の例に示すような評価(左から右へ評価したものと、右から左へ評価したものとの和)となり、非対称となることはない。
ただし、本方式は、パスの確定にダイナミックプログラミング法(例えば、ビタビアルゴリズム等)を用いる。左から右にパスを確定して行ったときにダイナミックプログラミング法で残存するパスと、右から左にパスを確定して行ったときにダイナミックプログラミング法で残存するパスが異なる場合がある。同じパスが残存していないと、本方式を用いることはできない。
なお、ビタビアルゴリズムは、あるノードにある方向から入力されるリンクを1に限定することによって、最適ではないパスを削減する。これにより、演算処理量と所要メモリ量を削減する手法である。
<4 本実施の形態>
xiを、左からi番目の文字と、i+1番目の文字との相互関係と、左からi+1番目の文字の単体情報をベクトル化したものとする。
yiを、左からi番目の文字と、i+1番目の文字との相互関係と、左からi番目の文字の単体情報をベクトル化したものとする。
パス評価値は(5)式で求める。
なお、f(x)は、ベクトルxを入力して、リンクの評価値を算出する関数である。この関数f(x)として非線形関数を用いて行うようにしてもよい。非線形関数として、例えば、ニューロコンピュータによる文字認識に用いられる非線形関数を用いるようにしてもよい。例えば、シグモイド(sigmoid)関数等がある。wiは、各リンクの重みである。例えば、1文字内の文字セグメント数や、文字幅(ピクセル値)等を利用する
本方式では、図18の例に示すように、図18(a)の例に示すネットワークに対して、図18(b)の例に示すような評価となり、非対称となることはない。つまり、前述の3つの方式に発生する問題は発生しない。具体的には、図18(a)の例に示すネットワークに対しては、ノード1810とリンク1822の組み合わせによるベクトルの評価値とリンク1824とノード1830による評価値との組み合わせによるベクトルの評価値、ノード1830とリンク1842の組み合わせによるベクトルの評価値とリンク1844とノード1850による評価値との組み合わせによるベクトルの評価値、ノード1850とリンク1862の組み合わせによるベクトルの評価値とリンク1864とノード1870による評価値との組み合わせによるベクトルの評価値、の重み付け和を算出している。なお、リンク1822はノード1810からノード1830への相互関係を示しており、リンク1824はノード1830からノード1810への相互関係を示している。
xiを、左からi番目の文字と、i+1番目の文字との相互関係と、左からi+1番目の文字の単体情報をベクトル化したものとする。
yiを、左からi番目の文字と、i+1番目の文字との相互関係と、左からi番目の文字の単体情報をベクトル化したものとする。
パス評価値は(5)式で求める。
本方式では、図18の例に示すように、図18(a)の例に示すネットワークに対して、図18(b)の例に示すような評価となり、非対称となることはない。つまり、前述の3つの方式に発生する問題は発生しない。具体的には、図18(a)の例に示すネットワークに対しては、ノード1810とリンク1822の組み合わせによるベクトルの評価値とリンク1824とノード1830による評価値との組み合わせによるベクトルの評価値、ノード1830とリンク1842の組み合わせによるベクトルの評価値とリンク1844とノード1850による評価値との組み合わせによるベクトルの評価値、ノード1850とリンク1862の組み合わせによるベクトルの評価値とリンク1864とノード1870による評価値との組み合わせによるベクトルの評価値、の重み付け和を算出している。なお、リンク1822はノード1810からノード1830への相互関係を示しており、リンク1824はノード1830からノード1810への相互関係を示している。
図19は、パス処理モジュール150内のモジュール構成例を示す説明図である。
パス処理モジュール150は、リンク構造構築モジュール1910、パス探索モジュール1920を有している。まず、パス処理モジュール150は、1列又は1行だけの文字列画像を受け付ける。画像受付モジュール110が受け付けた画像が複数の文字列や文字行からなる画像である場合は、文字列抽出モジュール120が、1列又は1行だけの文字列画像を抽出することが予め行われている。切出位置抽出モジュール130が、文字列画像を複数の文字セグメントに切り出す。そして、文字候補抽出モジュール140が、文字セグメントに切り出された後、各ノードにあたる文字候補を得る。その手法としては、前述したいずれかの先行技術内に記載されている手法、又は、その他、単文字を認識する手法などを用いればよい。
パス処理モジュール150は、リンク構造構築モジュール1910、パス探索モジュール1920を有している。まず、パス処理モジュール150は、1列又は1行だけの文字列画像を受け付ける。画像受付モジュール110が受け付けた画像が複数の文字列や文字行からなる画像である場合は、文字列抽出モジュール120が、1列又は1行だけの文字列画像を抽出することが予め行われている。切出位置抽出モジュール130が、文字列画像を複数の文字セグメントに切り出す。そして、文字候補抽出モジュール140が、文字セグメントに切り出された後、各ノードにあたる文字候補を得る。その手法としては、前述したいずれかの先行技術内に記載されている手法、又は、その他、単文字を認識する手法などを用いればよい。
リンク構造構築モジュール1910は、パス探索モジュール1920と接続されている。リンク構造構築モジュール1910は、前述したように、リンク構造(グラフ構造)を構築する。つまり、複数の文字候補の各々をノードとし、隣接する文字画像のノード間にリンクを構築することによってネットワークを生成する。
パス探索モジュール1920は、リンク構造構築モジュール1910と接続されている。パス探索モジュール1920は、グラフ構造(ネットワーク)に対してダイナミックプログラミング法(例えば、ビタビアルゴリズム等)を利用して、最適パスを探索する。最適パスが探索できれば、そのパスが通るノードを抽出することによって、文字認識結果を出力できる。なぜなら、各ノードは文字認識結果を表しているためである。
パス探索モジュール1920は、リンク構造構築モジュール1910と接続されている。パス探索モジュール1920は、グラフ構造(ネットワーク)に対してダイナミックプログラミング法(例えば、ビタビアルゴリズム等)を利用して、最適パスを探索する。最適パスが探索できれば、そのパスが通るノードを抽出することによって、文字認識結果を出力できる。なぜなら、各ノードは文字認識結果を表しているためである。
図20は、パス処理モジュール150による処理例を示すフローチャートである。
ステップS2002では、リンク構造構築モジュール1910が、文字候補を受け付ける。
ステップS2004では、リンク構造構築モジュール1910が、文字候補をノードとし、ノード間にリンクを構築することによって、ネットワークを生成する。
ステップS2006では、パス探索モジュール1920が、左側の文字候補に関する情報と、その文字候補に対して右側にある文字候補との関係に関する情報を用いてリンク評価値(A)を算出する。
ステップS2008では、パス探索モジュール1920が、右側の文字候補に関する情報と、その文字候補に対して左側にある文字候補との関係に関する情報を用いてリンク評価値(B)を算出する。
ステップS2010では、パス探索モジュール1920が、(5)式を用いてパス評価値を算出する。
ステップS2012では、パス探索モジュール1920が、最適なパスを文字認識結果として出力する。
ステップS2002では、リンク構造構築モジュール1910が、文字候補を受け付ける。
ステップS2004では、リンク構造構築モジュール1910が、文字候補をノードとし、ノード間にリンクを構築することによって、ネットワークを生成する。
ステップS2006では、パス探索モジュール1920が、左側の文字候補に関する情報と、その文字候補に対して右側にある文字候補との関係に関する情報を用いてリンク評価値(A)を算出する。
ステップS2008では、パス探索モジュール1920が、右側の文字候補に関する情報と、その文字候補に対して左側にある文字候補との関係に関する情報を用いてリンク評価値(B)を算出する。
ステップS2010では、パス探索モジュール1920が、(5)式を用いてパス評価値を算出する。
ステップS2012では、パス探索モジュール1920が、最適なパスを文字認識結果として出力する。
図29を参照して、本実施の形態の画像処理装置のハードウェア構成例について説明する。図29に示す構成は、例えばパーソナルコンピュータ(PC)などによって構成されるものであり、スキャナ等のデータ読み取り部2917と、プリンタなどのデータ出力部2918を備えたハードウェア構成例を示している。
CPU(Central Processing Unit)2901は、前述の実施の形態において説明した各種のモジュール、すなわち、画像受付モジュール110、文字列抽出モジュール120、切出位置抽出モジュール130、文字候補抽出モジュール140、パス処理モジュール150、出力モジュール160、リンク構造構築モジュール1910、パス探索モジュール1920等の各モジュールの実行シーケンスを記述したコンピュータ・プログラムにしたがった処理を実行する制御部である。
ROM(Read Only Memory)2902は、CPU2901が使用するプログラムや演算パラメータ等を格納する。RAM(Random Access Memory)2903は、CPU2901の実行において使用するプログラムや、その実行において適宜変化するパラメータ等を格納する。これらはCPUバスなどから構成されるホストバス2904により相互に接続されている。
ホストバス2904は、ブリッジ2905を介して、PCI(Peripheral Component Interconnect/Interface)バスなどの外部バス2906に接続されている。
キーボード2908、マウス等のポインティングデバイス2909は、操作者により操作される入力デバイスである。ディスプレイ2910は、液晶表示装置又はCRT(Cathode Ray Tube)などがあり、各種情報をテキストやイメージ情報として表示する。
HDD(Hard Disk Drive)2911は、ハードディスクを内蔵し、ハードディスクを駆動し、CPU2901によって実行するプログラムや情報を記録又は再生させる。ハードディスクには、受け付けた画像、文字認識結果、文字列パターン、ネットワーク構造などが格納される。さらに、その他の各種のデータ処理プログラム等、各種コンピュータ・プログラムが格納される。
ドライブ2912は、装着されている磁気ディスク、光ディスク、光磁気ディスク、又は半導体メモリ等のリムーバブル記録媒体2913に記録されているデータ又はプログラムを読み出して、そのデータ又はプログラムを、インタフェース2907、外部バス2906、ブリッジ2905、及びホストバス2904を介して接続されているRAM2903に供給する。リムーバブル記録媒体2913も、ハードディスクと同様のデータ記録領域として利用可能である。
接続ポート2914は、外部接続機器2915を接続するポートであり、USB、IEEE1394等の接続部を持つ。接続ポート2914は、インタフェース2907、及び外部バス2906、ブリッジ2905、ホストバス2904等を介してCPU2901等に接続されている。通信部2916は、通信回線に接続され、外部とのデータ通信処理を実行する。データ読み取り部2917は、例えばスキャナであり、ドキュメントの読み取り処理を実行する。データ出力部2918は、例えばプリンタであり、ドキュメントデータの出力処理を実行する。
なお、図29に示す画像処理装置のハードウェア構成は、1つの構成例を示すものであり、本実施の形態は、図29に示す構成に限らず、本実施の形態において説明したモジュールを実行可能な構成であればよい。例えば、一部のモジュールを専用のハードウェア(例えば特定用途向け集積回路(Application Specific Integrated Circuit:ASIC)等)で構成してもよく、一部のモジュールは外部のシステム内にあり通信回線で接続しているような形態でもよく、さらに図29に示すシステムが複数互いに通信回線によって接続されていて互いに協調動作するようにしてもよい。また、複写機、ファックス、スキャナ、プリンタ、複合機(スキャナ、プリンタ、複写機、ファックス等のいずれか2つ以上の機能を有している画像処理装置)などに組み込まれていてもよい。
前述の実施の形態においては、対象として日本語の文字を示したが、中国語、韓国語、英語等の文字を対象としてもよい。
前述の実施の形態においては、横書きの文字列を前提として、左が始点で右が終点であるような記述の仕方を行ってきた。しかし、前述の説明は、縦書きや、右から左に記述する文字列でも同様に成り立つ。例えば、縦書きの場合は、「左」を「上」、「右」を「下」とする変換を行えばよい。右から左に記述する文字列の場合は、「左」を「右」、「右」を「左」とする変換を行えばよい。
なお、数式を用いて説明したが、数式には、その数式と同等のものが含まれる。同等のものとは、その数式そのものの他に、最終的な結果に影響を及ぼさない程度の数式の変形、又は数式をアルゴリズミックな解法で解くこと等が含まれる。
前述の実施の形態においては、横書きの文字列を前提として、左が始点で右が終点であるような記述の仕方を行ってきた。しかし、前述の説明は、縦書きや、右から左に記述する文字列でも同様に成り立つ。例えば、縦書きの場合は、「左」を「上」、「右」を「下」とする変換を行えばよい。右から左に記述する文字列の場合は、「左」を「右」、「右」を「左」とする変換を行えばよい。
なお、数式を用いて説明したが、数式には、その数式と同等のものが含まれる。同等のものとは、その数式そのものの他に、最終的な結果に影響を及ぼさない程度の数式の変形、又は数式をアルゴリズミックな解法で解くこと等が含まれる。
なお、説明したプログラムについては、記録媒体に格納して提供してもよく、また、そのプログラムを通信手段によって提供してもよい。その場合、例えば、前記説明したプログラムについて、「プログラムを記録したコンピュータ読み取り可能な記録媒体」の発明として捉えてもよい。
「プログラムを記録したコンピュータ読み取り可能な記録媒体」とは、プログラムのインストール、実行、プログラムの流通などのために用いられる、プログラムが記録されたコンピュータで読み取り可能な記録媒体をいう。
なお、記録媒体としては、例えば、デジタル・バーサタイル・ディスク(DVD)であって、DVDフォーラムで策定された規格である「DVD−R、DVD−RW、DVD−RAM等」、DVD+RWで策定された規格である「DVD+R、DVD+RW等」、コンパクトディスク(CD)であって、読出し専用メモリ(CD−ROM)、CDレコーダブル(CD−R)、CDリライタブル(CD−RW)等、ブルーレイ・ディスク(Blu−ray Disc(登録商標))、光磁気ディスク(MO)、フレキシブルディスク(FD)、磁気テープ、ハードディスク、読出し専用メモリ(ROM)、電気的消去及び書換可能な読出し専用メモリ(EEPROM(登録商標))、フラッシュ・メモリ、ランダム・アクセス・メモリ(RAM)、SD(Secure Digital)メモリーカード等が含まれる。
そして、前記のプログラム又はその一部は、前記記録媒体に記録して保存や流通等させてもよい。また、通信によって、例えば、ローカル・エリア・ネットワーク(LAN)、メトロポリタン・エリア・ネットワーク(MAN)、ワイド・エリア・ネットワーク(WAN)、インターネット、イントラネット、エクストラネット等に用いられる有線ネットワーク、あるいは無線通信ネットワーク、さらにこれらの組み合わせ等の伝送媒体を用いて伝送させてもよく、また、搬送波に乗せて搬送させてもよい。
さらに、前記のプログラムは、他のプログラムの一部分であってもよく、あるいは別個のプログラムと共に記録媒体に記録されていてもよい。また、複数の記録媒体に分割して
記録されていてもよい。また、圧縮や暗号化など、復元可能であればどのような態様で記録されていてもよい。
「プログラムを記録したコンピュータ読み取り可能な記録媒体」とは、プログラムのインストール、実行、プログラムの流通などのために用いられる、プログラムが記録されたコンピュータで読み取り可能な記録媒体をいう。
なお、記録媒体としては、例えば、デジタル・バーサタイル・ディスク(DVD)であって、DVDフォーラムで策定された規格である「DVD−R、DVD−RW、DVD−RAM等」、DVD+RWで策定された規格である「DVD+R、DVD+RW等」、コンパクトディスク(CD)であって、読出し専用メモリ(CD−ROM)、CDレコーダブル(CD−R)、CDリライタブル(CD−RW)等、ブルーレイ・ディスク(Blu−ray Disc(登録商標))、光磁気ディスク(MO)、フレキシブルディスク(FD)、磁気テープ、ハードディスク、読出し専用メモリ(ROM)、電気的消去及び書換可能な読出し専用メモリ(EEPROM(登録商標))、フラッシュ・メモリ、ランダム・アクセス・メモリ(RAM)、SD(Secure Digital)メモリーカード等が含まれる。
そして、前記のプログラム又はその一部は、前記記録媒体に記録して保存や流通等させてもよい。また、通信によって、例えば、ローカル・エリア・ネットワーク(LAN)、メトロポリタン・エリア・ネットワーク(MAN)、ワイド・エリア・ネットワーク(WAN)、インターネット、イントラネット、エクストラネット等に用いられる有線ネットワーク、あるいは無線通信ネットワーク、さらにこれらの組み合わせ等の伝送媒体を用いて伝送させてもよく、また、搬送波に乗せて搬送させてもよい。
さらに、前記のプログラムは、他のプログラムの一部分であってもよく、あるいは別個のプログラムと共に記録媒体に記録されていてもよい。また、複数の記録媒体に分割して
記録されていてもよい。また、圧縮や暗号化など、復元可能であればどのような態様で記録されていてもよい。
110…画像受付モジュール
120…文字列抽出モジュール
130…切出位置抽出モジュール
140…文字候補抽出モジュール
150…パス処理モジュール
160…出力モジュール
1910…リンク構造構築モジュール
1920…パス探索モジュール
120…文字列抽出モジュール
130…切出位置抽出モジュール
140…文字候補抽出モジュール
150…パス処理モジュール
160…出力モジュール
1910…リンク構造構築モジュール
1920…パス探索モジュール
Claims (4)
- 画像から文字画像を切り出す位置を抽出する切出位置抽出手段と、
前記切出位置抽出手段によって抽出された位置によって分けられた文字画像に対して文字認識を行った結果である複数の文字候補を抽出する文字候補抽出手段と、
前記文字候補抽出手段によって抽出された複数の文字候補の各々をノードとし、隣接する文字画像のノード間にリンクを構築することによってネットワークを生成するネットワーク生成手段と、
前記ネットワーク生成手段によって生成されたネットワーク内の隣接する文字において左側にある第1の文字に関する情報と、該第1の文字と該第1の文字に対して右側にある第2の文字との関係に関する情報に基づいて第1の評価値を算出する第1の算出手段と、
前記第2の文字に関する情報と、該第2の文字と前記第1の文字との関係に関する情報に基づいて第2の評価値を算出する第2の算出手段と、
前記ネットワークにおいて始点から終点までの経路における前記第1の評価値と前記第2の評価値の重み付け和を算出し、該算出の結果に基づいて経路を選択する選択手段と、
前記選択手段によって選択された経路内の文字候補列を文字認識結果として出力する出力手段
を具備することを特徴とする画像処理装置。 - 前記第1の算出手段と前記第2の算出手段は、非線形関数を用いて前記第1の評価値と前記第2の評価値を算出する
ことを特徴とする請求項1に記載の画像処理装置。 - 前記切出位置抽出手段は、複数の切り出し位置を抽出し、
前記ネットワーク生成手段は、前記切出位置抽出手段によって抽出された複数の切り出し位置によって分けられた文字画像に対して文字認識を行った結果である複数の文字候補の各々をノードとし、隣接する文字画像のノード間にリンクを構築することによってネットワークを生成する
ことを特徴とする請求項2又は3に記載の画像処理装置。 - コンピュータを、
画像から文字画像を切り出す位置を抽出する切出位置抽出手段と、
前記切出位置抽出手段によって抽出された位置によって分けられた文字画像に対して文字認識を行った結果である複数の文字候補を抽出する文字候補抽出手段と、
前記文字候補抽出手段によって抽出された複数の文字候補の各々をノードとし、隣接する文字画像のノード間にリンクを構築することによってネットワークを生成するネットワーク生成手段と、
前記ネットワーク生成手段によって生成されたネットワーク内の隣接する文字において左側にある第1の文字に関する情報と、該第1の文字と該第1の文字に対して右側にある第2の文字との関係に関する情報に基づいて第1の評価値を算出する第1の算出手段と、
前記第2の文字に関する情報と、該第2の文字と前記第1の文字との関係に関する情報に基づいて第2の評価値を算出する第2の算出手段と、
前記ネットワークにおいて始点から終点までの経路における前記第1の評価値と前記第2の評価値の重み付け和を算出し、該算出の結果に基づいて経路を選択する選択手段と、
前記選択手段によって選択された経路内の文字候補列を文字認識結果として出力する出力手段
として機能させるための画像処理プログラム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2012117515A JP2013246473A (ja) | 2012-05-23 | 2012-05-23 | 画像処理装置及び画像処理プログラム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2012117515A JP2013246473A (ja) | 2012-05-23 | 2012-05-23 | 画像処理装置及び画像処理プログラム |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2013246473A true JP2013246473A (ja) | 2013-12-09 |
Family
ID=49846229
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2012117515A Pending JP2013246473A (ja) | 2012-05-23 | 2012-05-23 | 画像処理装置及び画像処理プログラム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2013246473A (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20210209401A1 (en) * | 2020-06-30 | 2021-07-08 | Beijing Baidu Netcom Science and Technology Co., Ltd | Character recognition method and apparatus, electronic device and computer readable storage medium |
-
2012
- 2012-05-23 JP JP2012117515A patent/JP2013246473A/ja active Pending
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20210209401A1 (en) * | 2020-06-30 | 2021-07-08 | Beijing Baidu Netcom Science and Technology Co., Ltd | Character recognition method and apparatus, electronic device and computer readable storage medium |
JP2021103573A (ja) * | 2020-06-30 | 2021-07-15 | ベイジン バイドゥ ネットコム サイエンス アンド テクノロジー カンパニー リミテッド | 文字認識の方法、装置、電子設備、コンピュータ可読記憶媒体、及びプログラム |
JP7142121B2 (ja) | 2020-06-30 | 2022-09-26 | ベイジン バイドゥ ネットコム サイエンス テクノロジー カンパニー リミテッド | 文字認識の方法、装置、電子設備、コンピュータ可読記憶媒体、及びプログラム |
US11775845B2 (en) * | 2020-06-30 | 2023-10-03 | Beijing Baidu Netcom Science And Technology Co., Ltd. | Character recognition method and apparatus, electronic device and computer readable storage medium |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5699570B2 (ja) | 画像処理装置及び画像処理プログラム | |
JP6003705B2 (ja) | 情報処理装置及び情報処理プログラム | |
JP5663866B2 (ja) | 情報処理装置及び情報処理プログラム | |
KR20090066196A (ko) | 화상 처리 장치 및 화상 처리 프로그램 | |
JP2017511917A (ja) | 音楽記号を認識するための方法および装置 | |
JP6754120B2 (ja) | プログラム、情報記憶媒体及び文字分割装置 | |
JP5942361B2 (ja) | 画像処理装置及び画像処理プログラム | |
US10438097B2 (en) | Recognition device, recognition method, and computer program product | |
JP5623574B2 (ja) | 帳票識別装置および帳票識別方法 | |
US8787676B2 (en) | Image processing apparatus, computer readable medium storing program, and image processing method | |
JP2008108114A (ja) | 文書処理装置および文書処理方法 | |
JP2013246473A (ja) | 画像処理装置及び画像処理プログラム | |
US20090063127A1 (en) | Apparatus, method, and computer program product for creating data for learning word translation | |
JP5365440B2 (ja) | 画像処理装置及び画像処理プログラム | |
JP6131765B2 (ja) | 情報処理装置及び情報処理プログラム | |
JP6511942B2 (ja) | 情報処理装置および情報処理プログラム | |
JP4922188B2 (ja) | データ分類方法、データ分類装置、コンピュータプログラム、及び記録媒体 | |
JP5942661B2 (ja) | 情報処理装置及び情報処理プログラム | |
JP2014109810A (ja) | 情報処理装置及び情報処理プログラム | |
JP6260350B2 (ja) | 画像処理装置及び画像処理プログラム | |
JP6003375B2 (ja) | 画像処理装置及び画像処理プログラム | |
JP5636691B2 (ja) | 画像処理装置及び画像処理プログラム | |
JP5062076B2 (ja) | 情報処理装置及び情報処理プログラム | |
JP6281309B2 (ja) | 画像処理装置及び画像処理プログラム | |
JP2016009235A (ja) | 情報処理装置及び情報処理プログラム |