(57)【特許請求の範囲】
【請求項１】
画像内の第１の文字列要素に関する情報として、該第１の文字列要素の大きさ、該第１の文字列要素の前にある文字列要素である前文字列要素から該第１の文字列要素への方向、該前文字列要素から該第１の文字列要素までの距離、を受け付ける受付手段と、
前記受付手段によって受け付けられた第１の文字列要素に関する情報に基づいて、該第１の文字列要素に続く第２の文字列要素を予測する予測手段と、
前記予測手段によって予測された第２の文字列要素に基づいて、前記画像内の第２の文字列要素を検出する検出手段と、
過去の文字列要素に関する情報に基づいて、前記検出手段によって検出された第２の文字列要素に関する情報を修正する修正手段と、
前記修正手段によって修正された前記第２の文字列要素を次の第１の文字列要素として、前記受付手段が受け付けるように制御し、前記予測手段、前記検出手段、前記修正手段による処理を繰り返して行わせるように制御する制御手段
を具備し、
前記検出手段は、文字列要素どうしの距離が小さいものから優先して検出する
ことを特徴とする画像処理装置。
【請求項２】
前記受付手段は、第１の文字列要素に関する情報として、前文字列要素から第１の文字列要素への方向の微分値をさらに受け付け、
前記予測手段は、さらに前記受付手段によって受け付けられた方向の微分値に基づいて、第２の文字列要素を予測する
ことを特徴とする請求項１に記載の画像処理装置。
【請求項３】
前記制御手段は、前記検出手段が第２の文字列要素を検出できなかった場合、又は、前記検出手段によって検出された第２の文字列要素に関する情報と前記予測手段によって予測された第２の文字列要素に関する情報との差分が予め定められた値よりも大きい又は以上である場合は、前記繰り返し処理を終了させるように制御する
ことを特徴とする請求項１又は２に記載の画像処理装置。
【請求項４】
前記制御手段は、前記検出手段が第２の文字列要素を検出できなかった場合、又は、前記検出手段によって検出された第２の文字列要素に関する情報と前記予測手段によって予測された第２の文字列要素に関する情報との差分が予め定められた値よりも大きい又は以上である場合は、終点の文字列要素から逆方向に始点の文字列要素までの文字列要素について、前記受付手段、前記予測手段、前記検出手段、前記修正手段による処理を繰り返して行わせるように制御する
ことを特徴とする請求項１又は２に記載の画像処理装置。
【請求項５】
コンピュータを、
画像内の第１の文字列要素に関する情報として、該第１の文字列要素の大きさ、該第１の文字列要素の前にある文字列要素である前文字列要素から該第１の文字列要素への方向、該前文字列要素から該第１の文字列要素までの距離、を受け付ける受付手段と、
前記受付手段によって受け付けられた第１の文字列要素に関する情報に基づいて、該第１の文字列要素に続く第２の文字列要素を予測する予測手段と、
前記予測手段によって予測された第２の文字列要素に基づいて、前記画像内の第２の文字列要素を検出する検出手段と、
過去の文字列要素に関する情報に基づいて、前記検出手段によって検出された第２の文字列要素に関する情報を修正する修正手段と、
前記修正手段によって修正された前記第２の文字列要素を次の第１の文字列要素として、前記受付手段が受け付けるように制御し、前記予測手段、前記検出手段、前記修正手段による処理を繰り返して行わせるように制御する制御手段
として機能させ、
前記検出手段は、文字列要素どうしの距離が小さいものから優先して検出する
ことを特徴とする画像処理プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像処理装置及び画像処理プログラムに関する。
【背景技術】
【０００２】
画像から文字列を抽出する技術がある。
これに関連する技術として、例えば、特許文献１には、文字の切れや大きさのばらつきなどの影響を受けずに文字領域を正しく抽出する装置を提供することを目的とし、文字領域抽出装置は、文字候補領域抽出部と、文字候補領域記憶部と、文字情報記憶部と、文字列領域抽出部と、文字列領域記憶部と、文字列情報抽出部と、文字列情報記憶部と、文字領域抽出部という構成を備えたものであることが開示されている。
【０００３】
また、例えば、特許文献２には、図面入力装置における文字の切り出しに関し、任意の方向に書かれた分離文字を正確に統合することを目的とし、入力された図面のベクトルデータ中から接続しているベクトルの独立した集合であるネットを抽出し、予め定めた最大値以下で予め定めた最小値以上の長さを有する直線と見なされるベクトルをバーとして抽出するバー抽出手段と、該バー抽出手段により抽出されたバーから予め定めた範囲内に在る、最大文字サイズ以下のネットを探索するネット探索手段と、該ネット探索手段により探索されたネットが三個以上のとき前記バーに近いほうから２つ選択するネット選択手段と、前記抽出されたバーと２つ以内のネットとを統合した外接枠の大きさが予め定めた最大文字サイズ以内であるとき一文字として統合する文字統合手段と、を備え、ベクトルデータ中に在る複数のネットからなる分離文字を１つの文字に統合し、任意方向の文字列切り出し処理に対して、文字統合結果を渡すように構成することが開示されている。
【０００４】
また、例えば、特許文献３には、スキャナから取り込んだ二値データの文字間隔が広い文書でも正確に領域抽出できるようにすることを目的とし、スキャナから取り込んだ画像データを画像データ縮小部で縮小した上、外接矩形抽出部で黒画素が連結している箇所を検出して、連結している黒画素の外接矩形の情報をメモリに格納し、文字矩形識別部において外接矩形の大きさ、黒画素の数及び黒画素の密度に基づいて文字候補の矩形を識別すると、文字間・行間検出部は文字候補矩形の上下左右に隣接する矩形との矩形間距離とその出現回数から文字間・行間を検出し、行統合部は、（文字間＜行間＜領域間）の条件から文字候補矩形の統合有効距離を行間として、矩形の統合処理によって行を抽出し、そこで、文字領域統合部で抽出された行を基に文字領域を抽出して、文字認識部で文字認識することが開示されている。
【０００５】
また、例えば、非特許文献１、非特許文献２には、２値画像の連結成分が準文字であり、準文字の統合において、準文字の近接に加え、文字列のサイズと方向を利用し、このとき、文字列の方向を、準文字のセットから推定し、推定に利用する準文字のセットとは、入力画像から得られたすべての準文字から作成した局所的なセットであり、それぞれの局所的なセットに対して、文字列のサイズと方向を与えていることが開示されている。
【０００６】
また、例えば、非特許文献３には、２値画像の連結成分が準文字であり、準文字の統合において、準文字の近接に加え、文字列のサイズと方向を利用し、このとき、文字列のサイズを、準文字のセットから推定し、推定に利用する準文字のセットとは、入力画像から得られたすべての準文字であることが開示されている。
【０００７】
また、例えば、非特許文献４には、パタン画素の縦又は横ランが準文字であり、予め、入力画像に対してぼかし処理を行い、さらに２値化を行い、準文字の統合において、準文字の近接に加え、文字列のサイズと方向を利用し、また、それぞれの文字列の検出において、直前の準文字に対して、続く準文字を求める処理を繰り返す処理を行い、このとき、文字列のサイズと傾きは、前記繰り返し処理において、逐次推定され、文字列のサイズは、準文字のラン長であるが、これは、ぼかし処理のフィルタサイズに大きく依存し、すなわち、ぼかし処理のフィルタサイズが、文字列のサイズを予め定めているといえ、また、前記繰り返し処理の方向が、文字列の方向を予め定めていることが開示されている。
【先行技術文献】
【特許文献】
【０００８】
【特許文献１】特開平０１−１２４０８１号公報
【特許文献２】特開平０２−１２９７８１号公報
【特許文献３】特開平０６−１８７４８９号公報
【非特許文献】
【０００９】
【非特許文献１】岩田基，  黄瀬浩一，  松本啓之亮，  “Ｓｅｇｍｅｎｔａｔｉｏｎ  ｏｆ  ｐａｇｅ  ｉｍａｇｅｓ  ｕｓｉｎｇ  ｔｈｅ  ａｒｅａ  Ｖｏｒｏｎｏｉ  ｄｉａｇｒａｍ，”情報処理学会論文誌，  Ｖｏｌ．４９，  Ｎｏ．８，  ｐｐ．３２３９−３２４８，  Ａｕｇ  １９９９．
【非特許文献２】Ｄａｎｉｅｌ  Ｍ．  Ｏｌｉｖｅｉｒａ，  Ｒａｆａｅｌ  Ｄ．  Ｌｉｎｓ，  Ｇａｂｒｉｅｌ  Ｔｏｒｒｅａｏ，  Ｊｉａｎ  Ｆａｎ，  Ｍａｒｃｅｌｏ  Ｔｈｉｅｌｏ，  “Ａ  Ｎｅｗ  Ｍｅｔｈｏｄ  ｆｏｒ  Ｔｅｘｔ−Ｌｉｎｅ  Ｓｅｇｍｅｎｔａｔｉｏｎ  ｆｏｒ  Ｗａｒｐｅｄ  Ｄｏｃｕｍｅｎｔｓ，”  ｉｎ  Ｐｒｏｃ．  ｏｆ  Ｉｎｔ．  Ｃｏｎｆ．  ｏｎ  Ｉｍａｇｅ  Ａｎａｌｙｓｉｓ  ａｎｄ  Ｒｅｃｏｇｎｉｔｉｏｎ，  Ｐｏｖｏａ  ｄｅ  Ｖａｒｚｉｍ，  Ｐｏｒｔｕｇａｌ，  ｐｐ．３９８−４０８，  ２０１０．
【非特許文献３】Ｆｅｉ  Ｙｉｎ，  Ｃｈｅｎｇ  Ｌｉｗ，  “Ｈａｎｄｗｉｔｔｅｎ  Ｔｅｘｔ  Ｌｉｎｅ  Ｅｘｔｒａｃｔｉｏｎ  Ｂａｓｅｄ  ｏｎ  Ｍｉｎｉｍｕｍ  Ｓｐａｎｎｉｎｇ  Ｔｒｅｅ  Ｃｌｕｓｔｅｒｉｎｇ，”  Ｐｒｏｃｅｅｄｉｎｇｓ  ｏｆ  ｔｈｅ  ２００７  Ｉｎｔｅｒｎａｔｉｏｎａｌ  Ｃｏｎｆｅｒｅｎｃｅ  ｏｎ  Ｗａｖｅｌｅｔ  Ａｎａｌｙｓｉｓ  ａｎｄ  Ｐａｔｔｅｒｎ  Ｒｅｃｏｇｎｉｔｉｏｎ，  Ｂｅｉｊｉｎｇ，  Ｃｈｉｎａ，  ｐｐ２−４，  Ｎｏｖ  ２００７．
【非特許文献４】Ａｕｒｅｌｉｅ  Ｌｅｍａｉｔｒｅ，  Ｊｅａｎ  Ｃａｍｉｌｌｅｒａｐｐ，  “Ｔｅｘｔ  Ｌｉｎｅ  Ｅｘｔｒａｃｔｉｏｎ  ｉｎ  Ｈａｎｄｗｒｉｔｔｅｎ  Ｄｏｃｕｍｅｎｔ  ｗｉｔｈ  Ｋａｌｍａｎ  Ｆｉｌｔｅｒ  Ａｐｐｌｉｅｄ  ｏｎ  Ｌｏｗ  Ｒｅｓｏｌｕｔｉｏｎ  Ｉｍａｇｅ，  ”  Ｐｒｏｃｅｅｄｉｎｇｓ  ｏｆ  ｔｈｅ  Ｓｅｃｏｎｄ  Ｉｎｔｅｒｎａｔｉｏｎａｌ  Ｃｏｎｆｅｒｅｎｃｅ  ｏｎ  Ｄｏｃｕｍｅｎｔ  Ｉｍａｇｅ  Ａｎａｌｙｓｉｓ  ｆｏｒ  Ｌｉｂｒａｒｉｅｓ  （ＤＩＡＬ’０６），  ２００６．
【発明の概要】
【発明が解決しようとする課題】
【００１０】
本発明は、画像内にあって、（１）文字列要素の大きさ、（２）文字列要素間の方向、（３）文字列要素間の間隔、のいずれか１つ以上が異なる文字列が混在している場合であっても、その文字列を抽出するようにした画像処理装置及び画像処理プログラムを提供することを目的としている。
【課題を解決するための手段】
【００１１】
かかる目的を達成するための本発明の要旨とするところは、次の各項の発明に存する。
請求項１の発明は、画像内の第１の文字列要素に関する情報として、該第１の文字列要素の大きさ、該第１の文字列要素の前にある文字列要素である前文字列要素から該第１の文字列要素への方向、該前文字列要素から該第１の文字列要素までの距離、を受け付ける受付手段と、前記受付手段によって受け付けられた第１の文字列要素に関する情報に基づいて、該第１の文字列要素に続く第２の文字列要素を予測する予測手段と、前記予測手段によって予測された第２の文字列要素に基づいて、前記画像内の第２の文字列要素を検出する検出手段と、過去の文字列要素に関する情報に基づいて、前記検出手段によって検出された第２の文字列要素に関する情報を修正する修正手段と、前記修正手段によって修正された前記第２の文字列要素を次の第１の文字列要素として、前記受付手段が受け付けるように制御し、前記予測手段、前記検出手段、前記修正手段による処理を繰り返して行わせるように制御する制御手段を具備し、前記検出手段は、文字列要素どうしの距離が小さいものから優先して検出することを特徴とする画像処理装置である。
【００１２】
請求項２の発明は、前記受付手段は、第１の文字列要素に関する情報として、前文字列要素から第１の文字列要素への方向の微分値をさらに受け付け、前記予測手段は、さらに前記受付手段によって受け付けられた方向の微分値に基づいて、第２の文字列要素を予測することを特徴とする請求項１に記載の画像処理装置である。
【００１３】
請求項３の発明は、前記制御手段は、前記検出手段が第２の文字列要素を検出できなかった場合、又は、前記検出手段によって検出された第２の文字列要素に関する情報と前記予測手段によって予測された第２の文字列要素に関する情報との差分が予め定められた値よりも大きい又は以上である場合は、前記繰り返し処理を終了させるように制御することを特徴とする請求項１又は２に記載の画像処理装置である。
【００１４】
請求項４の発明は、前記制御手段は、前記検出手段が第２の文字列要素を検出できなかった場合、又は、前記検出手段によって検出された第２の文字列要素に関する情報と前記予測手段によって予測された第２の文字列要素に関する情報との差分が予め定められた値よりも大きい又は以上である場合は、終点の文字列要素から逆方向に始点の文字列要素までの文字列要素について、前記受付手段、前記予測手段、前記検出手段、前記修正手段による処理を繰り返して行わせるように制御することを特徴とする請求項１又は２に記載の画像処理装置である。
【００１５】
請求項５の発明は、コンピュータを、画像内の第１の文字列要素に関する情報として、該第１の文字列要素の大きさ、該第１の文字列要素の前にある文字列要素である前文字列要素から該第１の文字列要素への方向、該前文字列要素から該第１の文字列要素までの距離、を受け付ける受付手段と、前記受付手段によって受け付けられた第１の文字列要素に関する情報に基づいて、該第１の文字列要素に続く第２の文字列要素を予測する予測手段と、前記予測手段によって予測された第２の文字列要素に基づいて、前記画像内の第２の文字列要素を検出する検出手段と、過去の文字列要素に関する情報に基づいて、前記検出手段によって検出された第２の文字列要素に関する情報を修正する修正手段と、前記修正手段によって修正された前記第２の文字列要素を次の第１の文字列要素として、前記受付手段が受け付けるように制御し、前記予測手段、前記検出手段、前記修正手段による処理を繰り返して行わせるように制御する制御手段として機能させ、前記検出手段は、文字列要素どうしの距離が小さいものから優先して検出することを特徴とする画像処理プログラムである。
【発明の効果】
【００１６】
請求項１の画像処理装置によれば、画像内にあって、（１）文字列要素の大きさ、（２）文字列要素間の方向、（３）文字列要素間の間隔、のいずれか１つ以上が異なる文字列が混在している場合であっても、その文字列を抽出することができる。
【００１７】
請求項２の画像処理装置によれば、歪曲した文字列を検出することができる。
【００１８】
請求項３の画像処理装置によれば、文字列の終端を検出することができる。
【００１９】
請求項４の画像処理装置によれば、文字列の端部から文字列要素の検出を行わなかった場合であっても、文字列を検出することができる。
【００２０】
請求項５の画像処理プログラムによれば、画像内にあって、（１）文字列要素の大きさ、（２）文字列要素間の方向、（３）文字列要素間の間隔、のいずれか１つ以上が異なる文字列が混在している場合であっても、その文字列を抽出することができる。
【図面の簡単な説明】
【００２１】
【図１】第１の実施の形態の構成例についての概念的なモジュール構成図である。
【図２】対象とする手書き文書画像の例を示す説明図である。
【図３】手書き文書画像に対して、準文字を解析した結果の例を示す説明図である。
【図４】検出対象の文字列とその処理の例を示す説明図である。
【図５】文字列の検出結果の例を示す説明図である。
【図６】文字列要素に関する情報の例を示す説明図である。
【図７】文字列要素に関する情報の例を示す説明図である。
【図８】第１の実施の形態による処理例を示すフローチャートである。
【図９】文字列要素の予測処理の例を示す説明図である。
【図１０】文字列要素の検出処理の例を示す説明図である。
【図１１】文字列要素の修正処理の例を示す説明図である。
【図１２】第２の実施の形態の構成例についての概念的なモジュール構成図である。
【図１３】第３の実施の形態の構成例についての概念的なモジュール構成図である。
【図１４】第３の実施の形態による処理例を示すフローチャートである。
【図１５】第４の実施の形態の構成例についての概念的なモジュール構成図である。
【図１６】第５の実施の形態の構成例についての概念的なモジュール構成図である。
【図１７】第５の実施の形態による処理例を示すフローチャートである。
【図１８】第６の実施の形態の構成例についての概念的なモジュール構成図である。
【図１９】第６の実施の形態による処理例を示すフローチャートである。
【図２０】第７の実施の形態の構成例についての概念的なモジュール構成図である。
【図２１】本実施の形態を実現するコンピュータのハードウェア構成例を示すブロック図である。
【発明を実施するための形態】
【００２２】
まず、以下に説明する実施の形態の概略を説明する。この実施の形態は、画像内から文字列の切り出し技術に属する。文字列切り出し技術とは、文字列が含まれている文書画像（ビットマップ画像、ベクトル画像、ストローク画像等）から、それぞれの文字列を検出する技術を指す。
文字列切り出し技術には、一般的に、トップダウン型とボトムアップ型の２つの基本アプローチがある。
トップダウン型とは、大局領域を分割することで、文字列を検出するアプローチである。ボトムアップ型とは、局所領域を統合することで、文字列を検出するアプローチである。
本実施の形態は、ボトムアップ型の文字列切り出し技術に属する。ボトムアップ型の文字列切り出し装置において、文字列を検出するために統合される局所領域のことを準文字とする。例えば、準文字とは、２値画像の連結成分（４連結や８連結の画素塊）やベクトル情報である。その準文字が表すものとしては、１文字、１文字内の部分、例えば、漢字における「へん、つくり」等がある。準文字に関する情報として、例えば、画像内における準文字を構成する各画素の位置、準文字の外接矩形の位置、大きさ等がある。
【００２３】
文書画像によっては、文字列の形状が多様であり、複数の準文字によって構成されている単文字が多く含まれることがある。
２値画像の連結成分を準文字とする例を図２、３に示す。図２は、手書き文書画像２００の例を示しており、図３の例に示した文書画像（連結成分）３００は、図２の例に示した手書き文書画像２００の準文字を解析した結果の例である。
文字列の形状が多様であるとは、図２の例に示すように、互いにサイズの異なる文字列、斜め文字列、又は、歪曲（湾曲）した文字列が混在するような状態を指す。
複数の準文字を含む単文字が多く含まれるとは、日本語において、「へん・つくり」を含む単文字がある状態を指す。図２、３の例から、英語と日本語において、準文字の並び等が異なる様子が分かる。
【００２４】
文字列を文字列要素の集合とする。なお、文字列要素は単数又は複数の準文字によって構成されているものとする。本実施の形態は、過去に検出された文字列要素に基づいて、文字列の形状を推定する。そして、ある文字列要素に基づいて、続く文字列要素を検出する。このとき、推定された文字列の形状に基づいて、準文字を統合し、続く文字列要素を検出する。以上の処理を、続く文字列要素の検出に失敗するまで繰り返す。この、繰り返しによる文字列要素の検出を、以下では「文字列追跡」とする。
【００２５】
本実施の形態の文字列追跡を説明するための模式図を、図４の例に示す。図４（ａ）に例示するような文書画像４００に対して、まず、準文字を検出する。その結果が図４（ｂ）の例に示す文書画像（連結成分）４１０のようになる。なお、図４の例において、準文字を矩形で示す。また、文字列要素を円で示す。
【００２６】
以下、文字列追跡について、具体的に説明する。
いま、ある文字列追跡において、ｋ番目までの文字列要素が検出されているとする。次に、続くｋ＋１番目の文字列要素を検出したい。ゆえに、続く文字列要素のあるべき領域を推定する。このためには、過去に観測された文字列要素に基づいて、検出の対象である文字列の形状を推定すればよい。この推定は、回帰分析で実現される。また、処理速度とメモリの観点から、非特許文献４に示されるような、逐次演算を利用してもよい。
推定された文字列の形状からｋ＋１番目の文字列要素があるべき領域が予測できる。図４（ｃ）の例において、予測されたｋ＋１番目の文字列要素を破線の円で示す。予測された文字列要素に基づいて、準文字を検出する。このとき、予測された文字列要素の領域に複数の準文字がある場合、これを統合する。
もし、続く文字列要素が検出されなければ、文字列追跡を終了する。
このように、推定の後に検出を行うことにより、それぞれの文字列に対して、検出のために参照する情報（すなわち、文字列のサイズと方向）が得られる。すなわち、文字列の形状の多様性の問題を解決するために行うものである。また、予測された文字列要素の領域にある複数の準文字を統合することで、複数の準文字を含む単文字であっても文字列要素として抽出し得る。
【００２７】
図５に、本実施の形態による文字列の検出結果の例を示す。
例えば、文書画像５００から、８つの文字列が抽出でき、その文字列中心線５１２、５１４、５１６、５１８、５２０、５２２、５２４、５２６を示している。つまり、文字列の形状が多様であり、複数の準文字によって構成される単文字が多く含まれる文書画像５００に対して、文字列を検出している。また、文字でない図形やノイズのある文書画像５００において、準文字について予めノイズと文字とを区別しておく必要もない。
【００２８】
＜準文字と文字列要素について＞
本実施の形態は、文字列を、文字列要素の集合として検出する。
前述の通り、文字列要素とは、単数又は複数の準文字によって構成されている。
本実施の形態おける準文字とは、以下のいずれかを指す。
（Ａ）２値画像の連結成分
（Ｂ）ストローク画像のストロークデータ
（Ｃ）ベクトル画像のベクトルデータ
【００２９】
本実施の形態おける文字列要素は、文字列の形状の推定のために、少なくとも以下の情報を持つ。
（Ｉ）ｔ：文字列要素のサイズ
（ＩＩ）θ：文字列要素の方向
（ＩＩＩ）ｐ：文字列要素どうしの間隔
ここで、θ（文字列要素の方向）とは、対象としている文字列要素をｋ番目に検出された文字列要素（文字列要素（ｋ）と表記する）とし、その直前に検出された文字列要素をｋ−１番目に検出された文字列要素（文字列要素（ｋ−１）と表記する）とすると、文字列要素（ｋ−１）から文字列要素（ｋ）への方向をいう。
ｐ（文字列要素どうしの間隔）とは、文字列要素（ｋ−１）と文字列要素（ｋ）との間の距離をいう。
【００３０】
また、文字列要素は、準文字の代わりに位置の情報を有していてもよい。この場合、予め保持している準文字から、文字列要素の位置とサイズが指定する領域にある準文字のみを検出し、文字列とすればよい。また、方向であるθについて、その微分値を併せて有していてもよい。方向の微分値を考慮することで、歪曲した文字列の検出に対応する。
【００３１】
具体的な例を図６、７に示す。なお、破線で囲われる領域は、続く文字列要素の予測を表す。
まず、図６に示す例を説明する。図６の例においては、文字列要素を矩形で与えている。例えば、この矩形は、文字列要素を囲む外接矩形である。また、ｔ、θ、ｐを以下のように与える。
（Ｉ）ｔ：対象としている文字列要素である矩形（Ｓｋ）の対角線長さ（ｔｋ）
（ＩＩ）θ：対象としている文字列要素である矩形（Ｓｋ）の中心座標と、前にある文字列要素である矩形（Ｓｋ−１）の中心座標を結ぶ線の傾き（θｋ）
（ＩＩＩ）ｐ：対象としている文字列要素である矩形（Ｓｋ）の中心座標と、前にある文字列要素である矩形（Ｓｋ−１）の中心座標との距離（ｐｋ）
このほかに、例えば、ｔとして、矩形の縦長さ、横長さ、面積等であってもよいし、θとして、矩形の右上端間の傾き等であってもよいし、ｐとして、中心座標間の距離から、互いの矩形に重なる部分を引いた長さ等であってもよい。
【００３２】
また、図７に示す例を説明する。図７の例においては、文字列要素を楕円で与えている。例えば、この楕円は、文字列要素を囲む最小の楕円である。また、ｔ、θ、ｐを以下のように与える。
（Ｉ）ｔ：対象としている文字列要素である楕円（Ｓｋ）の中心を通り、傾きθｋ  ＋  π／２  である直線の、楕円と重なる長さ（ｔｋ）
（ＩＩ）θ：対象としている文字列要素である楕円（Ｓｋ）の中心座標と、前にある文字列要素である楕円（Ｓｋ−１）の中心座標を結ぶ線の傾き（θｋ）
（ＩＩＩ）ｐ：対象としている文字列要素である楕円（Ｓｋ）の中心座標と、前にある文字列要素である楕円（Ｓｋ−１）の中心座標との距離から、互いの楕円に重なる部分を引いた長さ（ｐｋ）
このほかに、例えば、ｔとして、楕円の長径、短径、長径×短径、面積等であってもよいし、θとして、楕円の右端間の傾き等であってもよいし、ｐとして、中心座標間の距離等であってもよい。
【００３３】
以下、図面に基づき本発明を実現するにあたっての好適な各種の実施の形態の例を説明する。
＜第１の実施の形態＞
図１は、第１の実施の形態の構成例についての概念的なモジュール構成図を示している。
なお、モジュールとは、一般的に論理的に分離可能なソフトウェア（コンピュータ・プログラム）、ハードウェア等の部品を指す。したがって、本実施の形態におけるモジュールはコンピュータ・プログラムにおけるモジュールのことだけでなく、ハードウェア構成におけるモジュールも指す。それゆえ、本実施の形態は、それらのモジュールとして機能させるためのコンピュータ・プログラム（コンピュータにそれぞれの手順を実行させるためのプログラム、コンピュータをそれぞれの手段として機能させるためのプログラム、コンピュータにそれぞれの機能を実現させるためのプログラム）、システム及び方法の説明をも兼ねている。ただし、説明の都合上、「記憶する」、「記憶させる」、これらと同等の文言を用いるが、これらの文言は、実施の形態がコンピュータ・プログラムの場合は、記憶装置に記憶させる、又は記憶装置に記憶させるように制御するの意である。また、モジュールは機能に一対一に対応していてもよいが、実装においては、１モジュールを１プログラムで構成してもよいし、複数モジュールを１プログラムで構成してもよく、逆に１モジュールを複数プログラムで構成してもよい。また、複数モジュールは１コンピュータによって実行されてもよいし、分散又は並列環境におけるコンピュータによって１モジュールが複数コンピュータで実行されてもよい。なお、１つのモジュールに他のモジュールが含まれていてもよい。また、以下、「接続」とは物理的な接続の他、論理的な接続（データの授受、指示、データ間の参照関係等）の場合にも用いる。「予め定められた」とは、対象としている処理の前に定まっていることをいい、本実施の形態による処理が始まる前はもちろんのこと、本実施の形態による処理が始まった後であっても、対象としている処理の前であれば、そのときの状況・状態に応じて、又はそれまでの状況・状態に応じて定まることの意を含めて用いる。
また、システム又は装置とは、複数のコンピュータ、ハードウェア、装置等がネットワーク（一対一対応の通信接続を含む）等の通信手段で接続されて構成されるほか、１つのコンピュータ、ハードウェア、装置等によって実現される場合も含まれる。「装置」と「システム」とは、互いに同義の用語として用いる。もちろんのことながら、「システム」には、人為的な取り決めである社会的な「仕組み」（社会システム）にすぎないものは含まない。
また、各モジュールによる処理毎に又はモジュール内で複数の処理を行う場合はその処理毎に、対象となる情報を記憶装置から読み込み、その処理を行った後に、処理結果を記憶装置に書き出すものである。したがって、処理前の記憶装置からの読み込み、処理後の記憶装置への書き出しについては、説明を省略する場合がある。なお、ここでの記憶装置としては、ハードディスク、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）、外部記憶媒体、通信回線を介した記憶装置、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）内のレジスタ等を含んでいてもよい。
【００３４】
第１の実施の形態である画像処理装置は、文書画像から文字列を抽出するものであって、図１の例に示すように、文字列要素予測モジュール１１０、文字列要素検出モジュール１２０、文字列要素修正モジュール１３０、準文字保持モジュール１４０、文字列要素保持モジュール１５０、終端処理モジュール１６０を有している。
文字列追跡は、まず開始文字列要素を受け付け、その開始文字列要素に対して、準文字のセットを参照しながら、文字列を検出する処理の繰り返しで構成される。
【００３５】
文字列要素予測モジュール１１０は、文字列要素検出モジュール１２０、文字列要素修正モジュール１３０、文字列要素保持モジュール１５０と接続されている。文字列要素予測モジュール１１０は、画像内の第１の文字列要素に関する情報として、その第１の文字列要素の大きさ、その第１の文字列要素の前にある文字列要素である前文字列要素からその第１の文字列要素への方向、その前文字列要素からその第１の文字列要素までの距離、を受け付ける。文字列要素１０８についての、前述のｔ、θ、ｐを受け付ける。さらに、前文字列要素から第１の文字列要素への方向の微分値を受け付けるようにしてもよい。
【００３６】
そして、文字列要素予測モジュール１１０は、受け付けられた第１の文字列要素に関する情報に基づいて、その第１の文字列要素に続く第２の文字列要素を予測する。つまり、過去に得られた文字列要素（文字列要素１０８、文字列要素修正モジュール１３０によって修正された文字列要素、又は、文字列要素保持モジュール１５０に保持されている文字列要素）から、続く文字列要素１１２を予測する。続く文字列要素１１２とは、文字列要素を検出する順番における次のことをいい、過去に抽出された最新の文字列要素（文字列要素修正モジュール１３０から渡された文字列要素）の次に抽出すべき文字列要素のことをいう。もちろんのことながら、抽出された最新の文字列要素とは、隣り合うこととなる。微分値を受け付けた場合は、その微分値を第１の文字列要素に関する情報に加えることによって、第２の文字列要素を予測する。
【００３７】
文字列要素検出モジュール１２０は、文字列要素予測モジュール１１０、文字列要素修正モジュール１３０、準文字保持モジュール１４０、終端処理モジュール１６０と接続されている。文字列要素検出モジュール１２０は、文字列要素予測モジュール１１０によって予測された第２の文字列要素に基づいて、画像内の第２の文字列要素を検出する。具体的には、予測した文字列要素の領域に含まれる準文字を準文字保持モジュール１４０内から検出し、統合し、続く文字列要素１２２とする。もちろんのことながら、予測した文字列要素の領域に一部が含まれている準文字等もあるので、予測した文字列要素と検出した文字列要素のサイズ等は異なるものとなる場合がある。
【００３８】
文字列要素修正モジュール１３０は、文字列要素予測モジュール１１０、文字列要素検出モジュール１２０、文字列要素保持モジュール１５０と接続されている。文字列要素修正モジュール１３０は、過去の文字列要素に関する情報に基づいて、文字列要素検出モジュール１２０によって検出された第２の文字列要素に関する情報を修正する。そして、修正した第２の文字列要素に関する情報を文字列要素予測モジュール１１０に渡し、文字列要素保持モジュール１５０に保持させる。この処理は、過去に検出された文字列要素を参照して、検出対象の文字列の形状を推定することになる。
【００３９】
そして、この画像処理装置は、文字列要素修正モジュール１３０によって修正された第２の文字列要素を次の第１の文字列要素として、文字列要素予測モジュール１１０が受け付けるように制御し、文字列要素予測モジュール１１０、文字列要素検出モジュール１２０、文字列要素修正モジュール１３０による処理を繰り返して行わせるように制御する。
【００４０】
準文字保持モジュール１４０は、文字列要素検出モジュール１２０、終端処理モジュール１６０と接続されている。準文字保持モジュール１４０は、対象としている画像内にある準文字に関する情報を保持している。この情報は、文字列要素検出モジュール１２０、終端処理モジュール１６０によってアクセスされ、また、文字列要素検出モジュール１２０によって更新１２４、終端処理モジュール１６０によって更新１４２等される。
文字列要素保持モジュール１５０は、文字列要素予測モジュール１１０、文字列要素修正モジュール１３０、終端処理モジュール１６０と接続されている。文字列要素保持モジュール１５０は、文字列要素修正モジュール１３０によって修正された文字列要素に関する情報を保持している。
【００４１】
また、文字列要素検出モジュール１２０は、第２の文字列要素を検出できなかった場合（例えば、予測した文字列要素の領域内で準文字が検出されない場合）、又は、検出された第２の文字列要素に関する情報と文字列要素予測モジュール１１０によって予測された第２の文字列要素に関する情報との差分が予め定められた値よりも大きい又は以上である場合は、終了信号１２６を終端処理モジュール１６０に出力する。
【００４２】
終端処理モジュール１６０は、文字列要素検出モジュール１２０、準文字保持モジュール１４０、文字列要素保持モジュール１５０と接続されている。終端処理モジュール１６０は、終了信号１２６を受け取ると、文字列要素保持モジュール１５０内に保持されている過去に得られた文字列要素を統合し、文字列１６２として出力する。ここでの文字列要素の統合とは、文字列要素をつないで文字列とすることであり、例えば、各文字列を少なくとも画像内で識別するための識別子（文字列識別子）を付し、その文字列に含まれる文字列要素にその文字列識別子を付すようにしてもよい。また、文字列に含まれている文字列要素に関する情報から文字列に関する情報を生成するようにしてもよい。例えば、文字列に関する情報として、文字列の始端、終端、中心線の位置（関数で表すことができる場合は関数であってもよいし、中心線の各画素のｘ座標、ｙ座標等であってもよい）、太さ（太さが一様でない場合は、中心線の各位置における太さ等）等がある。
なお、繰り返し処理において、同一の準文字を重複して検出するために処理が終了しないことを防ぐため、検出済みであることを示す情報を準文字保持モジュール１４０内の準文字に付加する（準文字の更新１４２処理）。続いて、他の文字列の検出を行う場合、終端処理モジュール１６０において検出済みの情報を初期化する。
文字列の出力として、例えば、その文字列に関する情報を、メモリーカード等の記憶媒体に記憶させること、他の情報処理装置（例えば、文字認識装置等）へ渡すことの他に、画像から文字列だけを取り出して、ディスプレイ等の表示装置に表示すること、ファックス等の画像送信装置で画像を送信すること、画像データベース等の画像記憶装置へ画像を書き込むこと等をしてもよい。
【００４３】
図８は、第１の実施の形態による処理例を示すフローチャートである。
ステップＳ８０２では、文字列要素予測モジュール１１０が、ｓ０を受け付ける。
ステップＳ８０４では、文字列要素予測モジュール１１０が、変数ｋに０を代入する。
ステップＳ８０６では、文字列要素予測モジュール１１０が、ｓｋから
【数１】
0005845724.tif 000002
を予測する。
ステップＳ８０８では、文字列要素検出モジュール１２０が、
【数１】
0005845724.tif 000003
から画像内のｓ’ｋ＋１を検出する。
ステップＳ８１０では、文字列要素検出モジュール１２０が、ｓ’ｋ＋１が検出されたか否かを判断し、検出された場合はステップＳ８１２へ進み、それ以外の場合はステップＳ８１６へ進む。
ステップＳ８１２では、文字列要素修正モジュール１３０が、ｓ’ｋ＋１からｓｋ＋１を修正する。
ステップＳ８１４では、文字列要素修正モジュール１３０が、変数ｋに変数ｋ＋１を代入する。つまり、変数ｋをインクリメントする。
ステップＳ８１６では、終端処理モジュール１６０が、{ｓ０，…，ｓｋ}{ｓ’０，…，ｓ’ｋ}を出力する。
【００４４】
第１の実施の形態の動作説明のための模式図を図９−１１に示す。
図９は、文字列要素の予測処理の例を示す説明図である。
図１０は、文字列要素の検出処理の例を示す説明図である。
図１１は、文字列要素の修正処理の例を示す説明図である。
図９−１１において、ｓｋは直前に得られた文字列要素である。
また、
【数１】
0005845724.tif 000004
は、予測文字列要素である。
また、ｓ’ｋ＋１は、検出された文字列要素である。
また、ｓｋ＋１は、過去に得られた文字列要素に基づいて文字列を推定し、これに基づいてｓ’ｋ＋１を修正することで得られる文字列要素である。
なお、図９−１１の例を用いた説明は、文字列要素を楕円とした図７の例の場合であるが、文字列要素を矩形とした図６の場合も同様である。
【００４５】
文字列要素予測モジュール１１０は、過去に得られたｓｋに基づいて、
【数１】
0005845724.tif 000005
を出力する。また、
【数１】
0005845724.tif 000006
が示す領域を求める。この様子を図９の例に示す。
まず、
【数１】
0005845724.tif 000007
の持つ情報である
【数３】
0005845724.tif 000008
【数４】
0005845724.tif 000009
【数５】
0005845724.tif 000010
を求める。これらはｓｋの持つ情報そのものでよい（つまり、（３）式、（４）式、（５）式に、ｔｋ、θｋ、ｐｋを代入する）。もし、ｔ、θ、ｐのいずれか１つ以上に微分値（隣り合う文字列要素間の差分）を持つ情報がある場合、そのｔｋ、θｋ、ｐｋに微分値を加算すればよい。
次に、ｓｋの位置と、
【数１】
0005845724.tif 000011
の持つ情報に基づいて、
【数１】
0005845724.tif 000012
の位置を求める。
【００４６】
文字列要素検出モジュール１２０は、
【数１】
0005845724.tif 000013
に基づいて、ｓ’ｋ＋１を出力する。この様子を図１０の例に示す。
まず、
【数１】
0005845724.tif 000014
が示す領域に含まれる準文字を、準文字保持モジュール１４０から検出する。このとき、準文字は複数であってもよい。次に、ｓ’ｋ＋１の持つ情報であるｔ’ｋ＋１、θ’ｋ＋１、ｐ’ｋ＋１を求める。これらは、準文字を統合して得られる文字列要素と、ｓｋに基づいて算出する。具体的には、実際に検出した準文字が位置する領域の大きさ（ｔ）、その領域の中心座標とｓｋの中心座標とのなす角（θ）、その領域の中心座標とｓｋの中心座標との距離から互いの楕円に重なる部分を引いた長さ（ｐ）を算出する。
【００４７】
文字列要素修正モジュール１３０は、ｓ’ｋ＋１と過去に得られた文字列要素に基づいて、ｓｋ＋１を出力する。この様子を図１１の例に示す。ｓ’ｋ＋１は実測値であるため、ノイズを含む。このノイズの影響は、過去に得られた文字列要素を参照することで修正される。
【００４８】
文字列追跡は、以上の処理を繰り返す。図１０の例に示す、文字列要素検出モジュール１２０において、文字列要素が検出されない場合、処理を終了する。「文字列要素が検出されない」とは、予測文字列要素の示す領域に準文字がないことを指す。また、予測文字列要素の示す領域に準文字があるが、ｓ’ｋに関する情報と
【数２】
0005845724.tif 000015
に関する情報との差分値が、予め定められた値よりも大きい又は以上である場合、処理を終了する。このとき、予め定められた値として、過去に検出された文字列要素の分散を参照してもよい。
また、文字列要素検出モジュール１２０において、文字列要素が検出されない場合又は差分値が予め定められた値よりも大きい又は以上である場合の発生回数が、予め定めた回数をこえた場合又は以上となった場合に、処理を終了する構成でもよい。
【００４９】
＜逐次演算による文字列要素の推定＞
図１の例に示す第１の実施の形態における、文字列要素予測モジュール１１０、文字列要素検出モジュール１２０、文字列要素修正モジュール１３０による文字列のサイズと形状の推定を、逐次計算により行う例を示す。
文字列のサイズと形状の推定は、過去に得られたすべての文字列要素を利用して、回帰演算を行うことで実現される。しかし、以下のように逐次演算で実装すれば、メモリ容量と計算速度の改善が図れる。
以下に示す逐次演算では、推定したい値ｘ（すなわち、ｔ、θ、ｐのいずれか）に対応する分散情報Ｐを逐次保持・更新する。これは、狭義のカルマンフィルタ（Ｇｒｅｇ  Ｗｅｌｃｈ，  Ｇａｒｙ  ＢｉｓｈｏｐＡｕｒｅｌｉｅ，  “Ａｎ  Ｉｎｔｒｏｄｕｃｔｉｏｎ  ｔｏ  ｔｈｅ  Ｋａｌｍａｎ  Ｆｉｌｔｅｒ，  ”  ２００６．）に相当する。なお、Ｑ、Ｒは、推定したい値ｘに関する誤差の分散情報であり、予め定められた値である。
【００５０】
それぞれ、以下のような計算を行う。
まず、文字列要素予測モジュール１１０において、以下の計算（（６）式、（７）式）を行う。
【数６】
0005845724.tif 000016
【数７】
0005845724.tif 000017
また、文字列要素修正モジュール１３０において、以下の計算（（８）式、（９）式、（１０）式）を行う。
【数８】
0005845724.tif 000018
【数９】
0005845724.tif 000019
【数１０】
0005845724.tif 000020
なお、推定したい値ｘが微分値の情報を持つ場合、ｘ、Ｐは２次元行列となり、Ａは以下の（１１）式のように与えられる。
【数１１】
0005845724.tif 000021
また、推定したい値ｘが微分値の情報を持たない場、ｘ、Ｐはスカラであり、Ａは以下の（１２）式のように与えられる。
【数１２】
0005845724.tif 000022
【００５１】
＜第２の実施の形態＞
図１２は、第２の実施の形態の構成例についての概念的なモジュール構成図である。
第２の実施の形態は、文字列追跡処理の往復により開始文字列要素を求めるものであり、図１２の例に示すように、文字列要素予測モジュール１１０、文字列要素検出モジュール１２０、文字列要素修正モジュール１３０、準文字保持モジュール１４０、文字列要素保持モジュール１５０、終端処理モジュール１６０、往復モジュール１２７０を有している。なお、第１の実施の形態と同種の部位には同一符号を付し重複した説明を省略する（以下、同様）。
文字列追跡の目的から、文字列内の最初の文字列要素は文字列の端部であることが望ましい。第２の実施の形態は、文字列の端部である文字列要素の検出を、往復処理によって行う。つまり、第２の実施の形態による処理の概要は、第１の実施の形態で終了条件を満たした場合は、逆方向に文字列追跡を行い、その後に終了条件を満たした場合はそこが端部であるとするものである。また、往復処理は複数回繰り返してもよい。
【００５２】
文字列要素予測モジュール１１０は、文字列要素検出モジュール１２０、文字列要素修正モジュール１３０、文字列要素保持モジュール１５０、往復モジュール１２７０と接続されている。
終端処理モジュール１６０は、文字列要素検出モジュール１２０、準文字保持モジュール１４０、文字列要素保持モジュール１５０、往復モジュール１２７０と接続されている。
往復モジュール１２７０は、文字列要素予測モジュール１１０、終端処理モジュール１６０と接続されている。往復モジュール１２７０は、終端処理モジュール１６０によって、１つの文字列に対する文字列追跡処理が終了したと判断された場合（終端処理モジュール１６０が文字列１６２を往復モジュール１２７０に出力した場合）に、その文字列追跡処理の最後に検出された文字列要素（終点の文字列要素）を最初の文字列要素とする。そして、文字列追跡の方向を反転する。つまり、再度、逆方向に文字列追跡処理を行うようにするために、その最初の文字列要素を文字列要素予測モジュール１１０に渡し、文字列要素予測モジュール１１０が予測する文字列要素の方向を、それまでの文字列追跡の方向と逆方向にする。そして、第１の実施の形態と同様に、文字列要素予測モジュール１１０、文字列要素検出モジュール１２０、文字列要素修正モジュール１３０による処理を繰り返す。そして、次に終端処理モジュール１６０によって、その文字列の端部まで文字列追跡処理が終了したと判断された場合は、文字列１２７２を出力する。また、この往復処理を複数回繰り返すようにしてもよい。予め定められた回数であってもよいし、前回の端部が同じ位置である場合（前回の端部と今回の端部との間隔が予め定められた距離以内又は未満である場合であってもよい）に、往復処理を終了するようにしてもよい。そして、最後に受け取った文字列１６２を文字列１２７２として出力する。
【００５３】
＜第３の実施の形態＞
図１３は、第３の実施の形態の構成例についての概念的なモジュール構成図である。第３の実施の形態は、文字列追跡によって、文字列を検出する文字列切り出し装置であって、図１３の例に示すように、準文字作成モジュール１３１０、開始文字列要素作成モジュール１３２０、文字列追跡モジュール１３３０、準文字保持モジュール１３４０を有している。
【００５４】
準文字作成モジュール１３１０は、開始文字列要素作成モジュール１３２０、準文字保持モジュール１３４０と接続されている。準文字作成モジュール１３１０は、対象としている画像１３０８から、準文字１３１４を作成する。そして、その準文字１３１４を準文字保持モジュール１３４０に記憶させ、開始信号１３１２を開始文字列要素作成モジュール１３２０に渡す。具体的には、画像１３０８から前述の画素塊を抽出し、その画素塊から準文字１３１４を作成する。
準文字保持モジュール１３４０は、準文字作成モジュール１３１０、開始文字列要素作成モジュール１３２０、文字列追跡モジュール１３３０と接続されている。準文字保持モジュール１３４０は、準文字作成モジュール１３１０が作成した準文字１３１４を記憶している。そして、開始文字列要素作成モジュール１３２０、文字列追跡モジュール１３３０からアクセスされる。
【００５５】
開始文字列要素作成モジュール１３２０は、準文字作成モジュール１３１０、文字列追跡モジュール１３３０、準文字保持モジュール１３４０と接続されている。開始文字列要素作成モジュール１３２０は、開始信号１３１２を受け取ると、準文字保持モジュール１３４０に保持されている準文字１３１４に基づいて、開始文字列要素１３２２を作成する。具体的には、画像１３０８内の左端にある準文字１３１４を選択し、その準文字１３１４から予め定められた距離内にある他の準文字１３１４とともに文字列要素を作成し、その文字列要素の大きさ（ｔ）を計測し、θ（文字列要素の方向）、ｐ（文字列要素どうしの間隔）は予め定められた値としてもよい。
文字列追跡モジュール１３３０は、開始文字列要素作成モジュール１３２０、準文字保持モジュール１３４０と接続されている。文字列追跡モジュール１３３０は、前述の第１の実施の形態又は第２の実施の形態である。つまり、開始文字列要素１３２２を受け取って、準文字保持モジュール１３４０内の準文字１３１４に基づいて、文字列１３３２を出力する。
【００５６】
図１４は、第３の実施の形態による処理例を示すフローチャートである。
ステップＳ１４０２では、準文字作成モジュール１３１０が、準文字リストを作成する。
ステップＳ１４０４では、開始文字列要素作成モジュール１３２０が、準文字からｓ０を作成する。
ステップＳ１４０６では、開始文字列要素作成モジュール１３２０が、ｓ０が作成されたか否かを判断し、作成された場合はステップＳ１４０８へ進み、それ以外の場合は処理を終了する（ステップＳ１４９９）。
ステップＳ１４０８では、文字列追跡モジュール１３３０が、文字列追跡の処理を行う。
ステップＳ１４１０では、文字列追跡モジュール１３３０が、文字列が切り出されたか否かを判断し、切り出された場合はステップＳ１４１２へ進み、それ以外の場合はステップＳステップＳ１４０６からの処理を行う。
ステップＳ１４１２では、文字列追跡モジュール１３３０が、文字列を出力する。
【００５７】
＜第４の実施の形態＞
図１５は、第４の実施の形態の構成例についての概念的なモジュール構成図である。第４の実施の形態は、複数の文字列を抽出し、その中から文字列を選択するものであって、図１５の例に示すように、準文字作成モジュール１５１０、開始文字列要素作成モジュール１５２０、開始文字列要素保持モジュール１５３０、文字列追跡モジュール１５４０、文字列保持モジュール１５５０、文字列選択モジュール１５６０、準文字保持モジュール１５７０を有している。
前述の実施の形態では、文字列の検出の精度は、初期値である予測文字列要素に依存する。そこで、複数の開始文字列要素を作成し、各々の開始文字列要素から検出される複数の文字列から、文字列にふさわしいものを選択する。
【００５８】
準文字作成モジュール１５１０は、開始文字列要素作成モジュール１５２０、準文字保持モジュール１５７０と接続されている。準文字作成モジュール１５１０は、第３の実施の形態の準文字作成モジュール１３１０と同等のものである。
準文字保持モジュール１５７０は、準文字作成モジュール１５１０、開始文字列要素作成モジュール１５２０、文字列追跡モジュール１５４０と接続されている。準文字保持モジュール１５７０は、第３の実施の形態の準文字保持モジュール１３４０と同等のものである。
開始文字列要素作成モジュール１５２０は、準文字作成モジュール１５１０、開始文字列要素保持モジュール１５３０、準文字保持モジュール１５７０と接続されている。開始文字列要素作成モジュール１５２０は、第３の実施の形態の開始文字列要素作成モジュール１３２０と同等のものである。ただし、複数の開始文字列要素１５２２を作成し、開始文字列要素保持モジュール１５３０に記憶させる。複数の最初の文字列要素を作成するために、準文字１５１４をランダムに選択するようにしてもよいし、予め定められた規則（例えば、左端から順に準文字１５１４を選択する等）にしたがって選択するようにしてもうよい。
【００５９】
開始文字列要素保持モジュール１５３０は、開始文字列要素作成モジュール１５２０、文字列追跡モジュール１５４０と接続されている。開始文字列要素作成モジュール１５２０が作成した複数の開始文字列要素１５２２を保持する。そして、文字列追跡モジュール１５４０からアクセスされる。
文字列追跡モジュール１５４０は、開始文字列要素保持モジュール１５３０、文字列保持モジュール１５５０、準文字保持モジュール１５７０と接続されている。文字列追跡モジュール１５４０は、前述の第１の実施の形態又は第２の実施の形態である。つまり、開始文字列要素保持モジュール１５３０から開始文字列要素１５３２を取り出して、準文字保持モジュール１５７０内の準文字１５１４に基づいて、開始文字列要素１５３２毎に文字列１５４２を生成し、その複数の文字列１５４２を文字列保持モジュール１５５０に記憶させる。
文字列保持モジュール１５５０は、文字列追跡モジュール１５４０、文字列選択モジュール１５６０と接続されている。文字列保持モジュール１５５０は、複数の文字列１５４２を記憶する。
文字列選択モジュール１５６０は、文字列保持モジュール１５５０と接続されている。文字列選択モジュール１５６０は、文字列保持モジュール１５５０内の複数の文字列１５４２から文字列としてふさわしいものを選択する。例えば、同じ文字列要素が含まれている文字列があるか否かを判断し、同じ文字列要素が含まれている文字列がある場合は、以下の文字列を選択する。例えば、他の文字列の長さと比較して、文字列の長さが長いものを選択するようにしてもよい。また、他の文字列の曲り具合（θの変化度合いの加算）を比較して、歪曲していない文字列を選択するようにしてもよい。また、他の文字列と平行しているものを選択するようにしてもよい。
【００６０】
＜第５の実施の形態＞
図１６は、第５の実施の形態の構成例についての概念的なモジュール構成図である。第５の実施の形態は、複数の文字列を検出するものであって、図１６の例に示すように、文字列切り出しモジュール１６１０、準文字更新モジュール１６２０を有している。
【００６１】
文字列切り出しモジュール１６１０は、準文字更新モジュール１６２０と接続されている。文字列切り出しモジュール１６１０は、前述の第１の実施の形態〜第４の実施の形態のいずれかである。つまり、画像１６０８を受け取って、準文字更新モジュール１６２０からの開始信号１６２２又は更新１６２４によって、処理を開始し、文字列１６１２を出力し、処理すべき準文字がなくなった場合（例えば、第３の実施の形態の開始文字列要素作成モジュール１３２０が開始文字列要素１３２２を作成できなくなった場合、第４の実施の形態の開始文字列要素作成モジュール１５２０が開始文字列要素１５２２を作成できなくなった場合）は終了信号１６１４を出力する。
準文字更新モジュール１６２０は、文字列切り出しモジュール１６１０と接続されている。準文字更新モジュール１６２０は、検出された文字列１６１２に含まれる準文字について、検出済みの情報を付与する。
【００６２】
図１７は、第５の実施の形態による処理例を示すフローチャートである。
ステップＳ１７０２では、文字列切り出しモジュール１６１０が、準文字リストを作成する。
ステップＳ１７０４では、文字列切り出しモジュール１６１０が、準文字からｓ０を作成する。
ステップＳ１７０６では、文字列切り出しモジュール１６１０が、ｓ０が作成されたか否かを判断し、作成された場合はステップＳ１７０８へ進み、それ以外の場合は処理を終了する（ステップＳ１７９９）。
ステップＳ１７０８では、文字列切り出しモジュール１６１０が、文字列追跡の処理を行う。
ステップＳ１７１０では、文字列切り出しモジュール１６１０が、文字列が切り出されたか否かを判断し、切り出された場合はステップＳ１７１２へ進み、それ以外の場合はステップＳ１７０６からの処理を行う。
ステップＳ１７１２では、文字列切り出しモジュール１６１０が、文字列を保持する。
ステップＳ１７１４では、準文字更新モジュール１６２０が、準文字リストから、文字列に含まれる準文字を除去する。
【００６３】
＜第６の実施の形態＞
図１８は、第６の実施の形態の構成例についての概念的なモジュール構成図である。第６の実施の形態は、検出のパラメータを更新するものであって、図１８の例に示すように、複数文字列切り出しモジュール１８１０、変数更新モジュール１８２０、変数保持モジュール１８３０を有している。
第６の実施の形態は、貪欲アルゴリズムによって、文書画像に含まれる文字列を検出するものである。貪欲アルゴリズムとは、準文字を検出するたびに、この準文字を検出の対象から除外するアプローチである。貪欲アルゴリズムによれば、参照すべき対象が順次減少する。
このとき、検出対象の文字列のパラメータが、予め定められた値の付近であるものを優先して検出することにより、検出の精度が安定する場合がある。例えば、単文字どうしがより近接しているものが、より文字列らしい、と仮定する条件下では、文字列要素どうしの間隔が小さなものから優先して検出・除外する構成にする。
【００６４】
複数文字列切り出しモジュール１８１０は、変数更新モジュール１８２０、変数保持モジュール１８３０と接続されている。複数文字列切り出しモジュール１８１０は、前述の第１の実施の形態〜第５の実施の形態のいずれかである。つまり、画像１８０８を受け取って、特に第１の実施の形態、第２の実施の形態、第３の実施の形態の開始文字列要素作成モジュール１３２０、文字列追跡モジュール１３３０、第４の実施の形態の開始文字列要素作成モジュール１５２０、文字列追跡モジュール１５４０は、変数保持モジュール１８３０内のパラメータを用いて、文字列１８１２を出力する。そして、変数更新モジュール１８２０によってパラメータが更新された場合は、開始信号１８２２を受け取って、更新されたパラメータを用いて、文字列１８１２を出力する。終了と判断した場合（すなわち、現在の変数保持モジュール１８３０によって検出し得る開始文字列要素がない場合）は、終了信号１８１４を変数更新モジュール１８２０に渡す。
【００６５】
変数更新モジュール１８２０は、複数文字列切り出しモジュール１８１０、変数保持モジュール１８３０と接続されている。変数更新モジュール１８２０は、複数文字列切り出しモジュール１８１０から終了信号１８１４を受け取った場合は、変数保持モジュール１８３０内のパラメータを更新１８２４する。そして、パラメータの更新によって、パラメータが終了値となった場合、終了信号１８２６を出力して処理を終了する。
変数保持モジュール１８３０は、複数文字列切り出しモジュール１８１０、変数更新モジュール１８２０と接続されている。変数保持モジュール１８３０は、前述のパラメータを保持しており、変数更新モジュール１８２０によって、そのパラメータが更新され、複数文字列切り出しモジュール１８１０によってアクセスされる。
【００６６】
図１９は、第６の実施の形態による処理例を示すフローチャートである。
Ｐとは、パラメータを表す。
Ｉｎｉｔ（）とは、パラメータを初期化する関数を表す。
Ｕｐｄａｔｅ（Ｐ）とは、パラメータＰを更新する関数を表す。
Ｃｏｎｔｉｎｕｅ（Ｐ）とは、パラメータＰが終了条件を満たすことを判別する関数を表す。
例えば、パラメータＰを文字列要素どうしの距離である場合、最小のパラメータＰをＩｎｉｔ（）により決定し、微分値を加算する処理をＵｐｄａｔｅ（Ｐ）により行い、Ｃｏｎｔｉｎｕｅ（Ｐ）において、パラメータＰが予め定められた値に達することを判別する。
【００６７】
ステップＳ１９０２では、変数更新モジュール１８２０が、パラメータＰにＩｎｉｔ（）を代入する。
ステップＳ１９０４では、変数更新モジュール１８２０が、Ｃｏｎｔｉｎｕｅ（Ｐ）か否かを判断し、その通りであればステップＳ１９０６へ進み、それ以外の場合は処理を終了する（ステップＳ１９９９）。
ステップＳ１９０６では、複数文字列切り出しモジュール１８１０が、複数文字列を切り出す。
ステップＳ１９０８では、変数更新モジュール１８２０が、パラメータＰにＵｐｄａｔｅ（Ｐ）を代入する。
【００６８】
＜第７の実施の形態＞
図２０は、第７の実施の形態の構成例についての概念的なモジュール構成図である。第７の実施の形態は、文字列を切り出して、文字認識処理を行うものであって、図２０の例に示すように、複数文字列切り出しモジュール２０１０、文字列認識モジュール２０２０を有している。
【００６９】
複数文字列切り出しモジュール２０１０は、文字列認識モジュール２０２０と接続されている。複数文字列切り出しモジュール２０１０は、前述の第１の実施の形態〜第６の実施の形態のいずれかである。つまり、画像２００８を受け取って、その画像２００８内の文字列２０１２を切り出して、文字列認識モジュール２０２０に渡す。切り出す文字列がなくなった場合は、終了信号２０１４を出力する。
文字列認識モジュール２０２０は、複数文字列切り出しモジュール２０１０と接続されている。文字列認識モジュール２０２０は、文字列２０１２の画像を認識して、文字認識結果２０２２を出力する。文字認識は、既存の方式を用いればよい。
【００７０】
図２１を参照して、本実施の形態の画像処理装置のハードウェア構成例について説明する。図２１に示す構成は、例えばパーソナルコンピュータ（ＰＣ）などによって構成されるものであり、スキャナ等のデータ読み取り部２１１７と、プリンタなどのデータ出力部２１１８を備えたハードウェア構成例を示している。
【００７１】
ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）２１０１は、前述の実施の形態において説明した各種のモジュール、すなわち、文字列要素予測モジュール１１０、文字列要素検出モジュール１２０、文字列要素修正モジュール１３０、終端処理モジュール１６０、往復モジュール１２７０、準文字作成モジュール１３１０、開始文字列要素作成モジュール１３２０、文字列追跡モジュール１３３０、準文字作成モジュール１５１０、開始文字列要素作成モジュール１５２０、文字列追跡モジュール１５４０、文字列選択モジュール１５６０、文字列切り出しモジュール１６１０、準文字更新モジュール１６２０、複数文字列切り出しモジュール１８１０、変数更新モジュール１８２０、複数文字列切り出しモジュール２０１０、文字列認識モジュール２０２０等の各モジュールの実行シーケンスを記述したコンピュータ・プログラムにしたがった処理を実行する制御部である。
【００７２】
ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）２１０２は、ＣＰＵ２１０１が使用するプログラムや演算パラメータ等を格納する。ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）２１０３は、ＣＰＵ２１０１の実行において使用するプログラムや、その実行において適宜変化するパラメータ等を格納する。これらはＣＰＵバスなどから構成されるホストバス２１０４により相互に接続されている。
【００７３】
ホストバス２１０４は、ブリッジ２１０５を介して、ＰＣＩ（Ｐｅｒｉｐｈｅｒａｌ  Ｃｏｍｐｏｎｅｎｔ  Ｉｎｔｅｒｃｏｎｎｅｃｔ／Ｉｎｔｅｒｆａｃｅ）バスなどの外部バス２１０６に接続されている。
【００７４】
キーボード２１０８、マウス等のポインティングデバイス２１０９は、操作者により操作される入力デバイスである。ディスプレイ２１１０は、液晶表示装置又はＣＲＴ（Ｃａｔｈｏｄｅ  Ｒａｙ  Ｔｕｂｅ）などがあり、各種情報をテキストやイメージ情報として表示する。
【００７５】
ＨＤＤ（Ｈａｒｄ  Ｄｉｓｋ  Ｄｒｉｖｅ）２１１１は、ハードディスクを内蔵し、ハードディスクを駆動し、ＣＰＵ２１０１によって実行するプログラムや情報を記録又は再生させる。ハードディスクには、対象とする画像、文字列要素に関する情報、文字列などが格納される。さらに、その他の各種のデータ処理プログラム等、各種コンピュータ・プログラムが格納される。
【００７６】
ドライブ２１１２は、装着されている磁気ディスク、光ディスク、光磁気ディスク、又は半導体メモリ等のリムーバブル記録媒体２１１３に記録されているデータ又はプログラムを読み出して、そのデータ又はプログラムを、インタフェース２１０７、外部バス２１０６、ブリッジ２１０５、及びホストバス２１０４を介して接続されているＲＡＭ２１０３に供給する。リムーバブル記録媒体２１１３も、ハードディスクと同様のデータ記録領域として利用可能である。
【００７７】
接続ポート２１１４は、外部接続機器２１１５を接続するポートであり、ＵＳＢ、ＩＥＥＥ１３９４等の接続部を持つ。接続ポート２１１４は、インタフェース２１０７、及び外部バス２１０６、ブリッジ２１０５、ホストバス２１０４等を介してＣＰＵ２１０１等に接続されている。通信部２１１６は、通信回線に接続され、外部とのデータ通信処理を実行する。データ読み取り部２１１７は、例えばスキャナであり、ドキュメントの読み取り処理を実行する。データ出力部２１１８は、例えばプリンタであり、ドキュメントデータの出力処理を実行する。
【００７８】
なお、図２１に示す画像処理装置のハードウェア構成は、１つの構成例を示すものであり、本実施の形態は、図２１に示す構成に限らず、本実施の形態において説明したモジュールを実行可能な構成であればよい。例えば、一部のモジュールを専用のハードウェア（例えば特定用途向け集積回路（Ａｐｐｌｉｃａｔｉｏｎ  Ｓｐｅｃｉｆｉｃ  Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ：ＡＳＩＣ）等）で構成してもよく、一部のモジュールは外部のシステム内にあり通信回線で接続しているような形態でもよく、さらに図２１に示すシステムが複数互いに通信回線によって接続されていて互いに協調動作するようにしてもよい。また、複写機、ファックス、スキャナ、プリンタ、複合機（スキャナ、プリンタ、複写機、ファックス等のいずれか２つ以上の機能を有している画像処理装置）などに組み込まれていてもよい。
【００７９】
なお、前述の各種の実施の形態を組み合わせてもよく（例えば、ある実施の形態内のモジュールを他の実施の形態内に追加する、入れ替えをする等も含む）、また、各モジュールの処理内容として背景技術で説明した技術を採用してもよい。
なお、数式を用いて説明したが、数式には、その数式と同等のものが含まれる。同等のものとは、その数式そのものの他に、最終的な結果に影響を及ぼさない程度の数式の変形、又は数式をアルゴリズミックな解法で解くこと等が含まれる。
【００８０】
なお、説明したプログラムについては、記録媒体に格納して提供してもよく、また、そのプログラムを通信手段によって提供してもよい。その場合、例えば、前記説明したプログラムについて、「プログラムを記録したコンピュータ読み取り可能な記録媒体」の発明として捉えてもよい。
「プログラムを記録したコンピュータ読み取り可能な記録媒体」とは、プログラムのインストール、実行、プログラムの流通などのために用いられる、プログラムが記録されたコンピュータで読み取り可能な記録媒体をいう。
なお、記録媒体としては、例えば、デジタル・バーサタイル・ディスク（ＤＶＤ）であって、ＤＶＤフォーラムで策定された規格である「ＤＶＤ−Ｒ、ＤＶＤ−ＲＷ、ＤＶＤ−ＲＡＭ等」、ＤＶＤ＋ＲＷで策定された規格である「ＤＶＤ＋Ｒ、ＤＶＤ＋ＲＷ等」、コンパクトディスク（ＣＤ）であって、読出し専用メモリ（ＣＤ−ＲＯＭ）、ＣＤレコーダブル（ＣＤ−Ｒ）、ＣＤリライタブル（ＣＤ−ＲＷ）等、ブルーレイ・ディスク（Ｂｌｕ−ｒａｙ  Ｄｉｓｃ（登録商標））、光磁気ディスク（ＭＯ）、フレキシブルディスク（ＦＤ）、磁気テープ、ハードディスク、読出し専用メモリ（ＲＯＭ）、電気的消去及び書換可能な読出し専用メモリ（ＥＥＰＲＯＭ（登録商標））、フラッシュ・メモリ、ランダム・アクセス・メモリ（ＲＡＭ）等が含まれる。
そして、前記のプログラム又はその一部は、前記記録媒体に記録して保存や流通等させてもよい。また、通信によって、例えば、ローカル・エリア・ネットワーク（ＬＡＮ）、メトロポリタン・エリア・ネットワーク（ＭＡＮ）、ワイド・エリア・ネットワーク（ＷＡＮ）、インターネット、イントラネット、エクストラネット等に用いられる有線ネットワーク、あるいは無線通信ネットワーク、さらにこれらの組み合わせ等の伝送媒体を用いて伝送させてもよく、また、搬送波に乗せて搬送させてもよい。
さらに、前記のプログラムは、他のプログラムの一部分であってもよく、あるいは別個のプログラムと共に記録媒体に記録されていてもよい。また、複数の記録媒体に分割して
記録されていてもよい。また、圧縮や暗号化など、復元可能であればどのような態様で記録されていてもよい。
【符号の説明】
【００８１】
１１０…文字列要素予測モジュール
１２０…文字列要素検出モジュール
１３０…文字列要素修正モジュール
１４０…準文字保持モジュール
１５０…文字列要素保持モジュール
１６０…終端処理モジュール
１２７０…往復モジュール
１３１０…準文字作成モジュール
１３２０…開始文字列要素作成モジュール
１３３０…文字列追跡モジュール
１３４０…準文字保持モジュール
１５１０…準文字作成モジュール
１５２０…開始文字列要素作成モジュール
１５３０…開始文字列要素保持モジュール
１５４０…文字列追跡モジュール
１５５０…文字列保持モジュール
１５６０…文字列選択モジュール
１５７０…準文字保持モジュール
１６１０…文字列切り出しモジュール
１６２０…準文字更新モジュール
１８１０…複数文字列切り出しモジュール
１８２０…変数更新モジュール
１８３０…変数保持モジュール
２０１０…複数文字列切り出しモジュール
２０２０…文字列認識モジュール
【図１】
0005845724.tif 000023
【図２】
0005845724.tif 000024
【図３】
0005845724.tif 000025
【図４】
0005845724.tif 000026
【図５】
0005845724.tif 000027
【図６】
0005845724.tif 000028
【図７】
0005845724.tif 000029
【図８】
0005845724.tif 000030
【図９】
0005845724.tif 000031
【図１０】
0005845724.tif 000032
【図１１】
0005845724.tif 000033
【図１２】
0005845724.tif 000034
【図１３】
0005845724.tif 000035
【図１４】
0005845724.tif 000036
【図１５】
0005845724.tif 000037
【図１６】
0005845724.tif 000038
【図１７】
0005845724.tif 000039
【図１８】
0005845724.tif 000040
【図１９】
0005845724.tif 000041
【図２０】
0005845724.tif 000042
【図２１】
0005845724.tif 000043