説明

画像処理装置及び画像処理プログラム

【課題】画像内にあって、(1)文字列要素の大きさ、(2)文字列要素間の方向、(3)文字列要素間の間隔、のいずれか1つ以上が異なる文字列が混在している場合であっても、その文字列を抽出するようにした画像処理装置を提供する。
【解決手段】画像処理装置の受付手段は、画像内の第1の文字列要素に関する情報として、その大きさ、前文字列要素からの方向、前文字列要素からの距離、を受け付け、予測手段は、第1の文字列要素に関する情報に基づいて、第2の文字列要素を予測し、検出手段は、第2の文字列要素に基づいて、第2の文字列要素を検出し、修正手段は、過去の文字列要素に関する情報に基づいて、第2の文字列要素に関する情報を修正し、制御手段は、第2の文字列要素を次の第1の文字列要素として、受付手段が受け付けるように制御し、予測手段、検出手段、修正手段による処理を繰り返して行わせるように制御する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、画像処理装置及び画像処理プログラムに関する。
【背景技術】
【0002】
画像から文字列を抽出する技術がある。
これに関連する技術として、例えば、特許文献1には、文字の切れや大きさのばらつきなどの影響を受けずに文字領域を正しく抽出する装置を提供することを目的とし、文字領域抽出装置は、文字候補領域抽出部と、文字候補領域記憶部と、文字情報記憶部と、文字列領域抽出部と、文字列領域記憶部と、文字列情報抽出部と、文字列情報記憶部と、文字領域抽出部という構成を備えたものであることが開示されている。
【0003】
また、例えば、特許文献2には、図面入力装置における文字の切り出しに関し、任意の方向に書かれた分離文字を正確に統合することを目的とし、入力された図面のベクトルデータ中から接続しているベクトルの独立した集合であるネットを抽出し、予め定めた最大値以下で予め定めた最小値以上の長さを有する直線と見なされるベクトルをバーとして抽出するバー抽出手段と、該バー抽出手段により抽出されたバーから予め定めた範囲内に在る、最大文字サイズ以下のネットを探索するネット探索手段と、該ネット探索手段により探索されたネットが三個以上のとき前記バーに近いほうから2つ選択するネット選択手段と、前記抽出されたバーと2つ以内のネットとを統合した外接枠の大きさが予め定めた最大文字サイズ以内であるとき一文字として統合する文字統合手段と、を備え、ベクトルデータ中に在る複数のネットからなる分離文字を1つの文字に統合し、任意方向の文字列切り出し処理に対して、文字統合結果を渡すように構成することが開示されている。
【0004】
また、例えば、特許文献3には、スキャナから取り込んだ二値データの文字間隔が広い文書でも正確に領域抽出できるようにすることを目的とし、スキャナから取り込んだ画像データを画像データ縮小部で縮小した上、外接矩形抽出部で黒画素が連結している箇所を検出して、連結している黒画素の外接矩形の情報をメモリに格納し、文字矩形識別部において外接矩形の大きさ、黒画素の数及び黒画素の密度に基づいて文字候補の矩形を識別すると、文字間・行間検出部は文字候補矩形の上下左右に隣接する矩形との矩形間距離とその出現回数から文字間・行間を検出し、行統合部は、(文字間<行間<領域間)の条件から文字候補矩形の統合有効距離を行間として、矩形の統合処理によって行を抽出し、そこで、文字領域統合部で抽出された行を基に文字領域を抽出して、文字認識部で文字認識することが開示されている。
【0005】
また、例えば、非特許文献1、非特許文献2には、2値画像の連結成分が準文字であり、準文字の統合において、準文字の近接に加え、文字列のサイズと方向を利用し、このとき、文字列の方向を、準文字のセットから推定し、推定に利用する準文字のセットとは、入力画像から得られたすべての準文字から作成した局所的なセットであり、それぞれの局所的なセットに対して、文字列のサイズと方向を与えていることが開示されている。
【0006】
また、例えば、非特許文献3には、2値画像の連結成分が準文字であり、準文字の統合において、準文字の近接に加え、文字列のサイズと方向を利用し、このとき、文字列のサイズを、準文字のセットから推定し、推定に利用する準文字のセットとは、入力画像から得られたすべての準文字であることが開示されている。
【0007】
また、例えば、非特許文献4には、パタン画素の縦又は横ランが準文字であり、予め、入力画像に対してぼかし処理を行い、さらに2値化を行い、準文字の統合において、準文字の近接に加え、文字列のサイズと方向を利用し、また、それぞれの文字列の検出において、直前の準文字に対して、続く準文字を求める処理を繰り返す処理を行い、このとき、文字列のサイズと傾きは、前記繰り返し処理において、逐次推定され、文字列のサイズは、準文字のラン長であるが、これは、ぼかし処理のフィルタサイズに大きく依存し、すなわち、ぼかし処理のフィルタサイズが、文字列のサイズを予め定めているといえ、また、前記繰り返し処理の方向が、文字列の方向を予め定めていることが開示されている。
【先行技術文献】
【特許文献】
【0008】
【特許文献1】特開平01−124081号公報
【特許文献2】特開平02−129781号公報
【特許文献3】特開平06−187489号公報
【非特許文献】
【0009】
【非特許文献1】岩田基, 黄瀬浩一, 松本啓之亮, “Segmentation of page images using the area Voronoi diagram,”情報処理学会論文誌, Vol.49, No.8, pp.3239−3248, Aug 1999.
【非特許文献2】Daniel M. Oliveira, Rafael D. Lins, Gabriel Torreao, Jian Fan, Marcelo Thielo, “A New Method for Text−Line Segmentation for Warped Documents,” in Proc. of Int. Conf. on Image Analysis and Recognition, Povoa de Varzim, Portugal, pp.398−408, 2010.
【非特許文献3】Fei Yin, Cheng Liw, “Handwitten Text Line Extraction Based on Minimum Spanning Tree Clustering,” Proceedings of the 2007 International Conference on Wavelet Analysis and Pattern Recognition, Beijing, China, pp2−4, Nov 2007.
【非特許文献4】Aurelie Lemaitre, Jean Camillerapp, “Text Line Extraction in Handwritten Document with Kalman Filter Applied on Low Resolution Image, ” Proceedings of the Second International Conference on Document Image Analysis for Libraries (DIAL’06), 2006.
【発明の概要】
【発明が解決しようとする課題】
【0010】
本発明は、画像内にあって、(1)文字列要素の大きさ、(2)文字列要素間の方向、(3)文字列要素間の間隔、のいずれか1つ以上が異なる文字列が混在している場合であっても、その文字列を抽出するようにした画像処理装置及び画像処理プログラムを提供することを目的としている。
【課題を解決するための手段】
【0011】
かかる目的を達成するための本発明の要旨とするところは、次の各項の発明に存する。
請求項1の発明は、画像内の第1の文字列要素に関する情報として、該第1の文字列要素の大きさ、該第1の文字列要素の前にある文字列要素である前文字列要素から該第1の文字列要素への方向、該前文字列要素から該第1の文字列要素までの距離、を受け付ける受付手段と、前記受付手段によって受け付けられた第1の文字列要素に関する情報に基づいて、該第1の文字列要素に続く第2の文字列要素を予測する予測手段と、前記予測手段によって予測された第2の文字列要素に基づいて、前記画像内の第2の文字列要素を検出する検出手段と、過去の文字列要素に関する情報に基づいて、前記検出手段によって検出された第2の文字列要素に関する情報を修正する修正手段と、前記修正手段によって修正された前記第2の文字列要素を次の第1の文字列要素として、前記受付手段が受け付けるように制御し、前記予測手段、前記検出手段、前記修正手段による処理を繰り返して行わせるように制御する制御手段を具備することを特徴とする画像処理装置である。
【0012】
請求項2の発明は、前記受付手段は、第1の文字列要素に関する情報として、前文字列要素から第1の文字列要素への方向の微分値をさらに受け付け、前記予測手段は、さらに前記受付手段によって受け付けられた方向の微分値に基づいて、第2の文字列要素を予測することを特徴とする請求項1に記載の画像処理装置である。
【0013】
請求項3の発明は、前記制御手段は、前記検出手段が第2の文字列要素を検出できなかった場合、又は、前記検出手段によって検出された第2の文字列要素に関する情報と前記予測手段によって予測された第2の文字列要素に関する情報との差分が予め定められた値よりも大きい又は以上である場合は、前記繰り返し処理を終了させるように制御することを特徴とする請求項1又は2に記載の画像処理装置である。
【0014】
請求項4の発明は、前記制御手段は、前記検出手段が第2の文字列要素を検出できなかった場合、又は、前記検出手段によって検出された第2の文字列要素に関する情報と前記予測手段によって予測された第2の文字列要素に関する情報との差分が予め定められた値よりも大きい又は以上である場合は、終点の文字列要素から逆方向に始点の文字列要素までの文字列要素について、前記受付手段、前記予測手段、前記検出手段、前記修正手段による処理を繰り返して行わせるように制御することを特徴とする請求項1又は2に記載の画像処理装置である。
【0015】
請求項5の発明は、コンピュータを、画像内の第1の文字列要素に関する情報として、該第1の文字列要素の大きさ、該第1の文字列要素の前にある文字列要素である前文字列要素から該第1の文字列要素への方向、該前文字列要素から該第1の文字列要素までの距離、を受け付ける受付手段と、前記受付手段によって受け付けられた第1の文字列要素に関する情報に基づいて、該第1の文字列要素に続く第2の文字列要素を予測する予測手段と、前記予測手段によって予測された第2の文字列要素に基づいて、前記画像内の第2の文字列要素を検出する検出手段と、過去の文字列要素に関する情報に基づいて、前記検出手段によって検出された第2の文字列要素に関する情報を修正する修正手段と、前記修正手段によって修正された前記第2の文字列要素を次の第1の文字列要素として、前記受付手段が受け付けるように制御し、前記予測手段、前記検出手段、前記修正手段による処理を繰り返して行わせるように制御する制御手段として機能させるための画像処理プログラムである。
【発明の効果】
【0016】
請求項1の画像処理装置によれば、画像内にあって、(1)文字列要素の大きさ、(2)文字列要素間の方向、(3)文字列要素間の間隔、のいずれか1つ以上が異なる文字列が混在している場合であっても、その文字列を抽出することができる。
【0017】
請求項2の画像処理装置によれば、歪曲した文字列を検出することができる。
【0018】
請求項3の画像処理装置によれば、文字列の終端を検出することができる。
【0019】
請求項4の画像処理装置によれば、文字列の端部から文字列要素の検出を行わなかった場合であっても、文字列を検出することができる。
【0020】
請求項5の画像処理プログラムによれば、画像内にあって、(1)文字列要素の大きさ、(2)文字列要素間の方向、(3)文字列要素間の間隔、のいずれか1つ以上が異なる文字列が混在している場合であっても、その文字列を抽出することができる。
【図面の簡単な説明】
【0021】
【図1】第1の実施の形態の構成例についての概念的なモジュール構成図である。
【図2】対象とする手書き文書画像の例を示す説明図である。
【図3】手書き文書画像に対して、準文字を解析した結果の例を示す説明図である。
【図4】検出対象の文字列とその処理の例を示す説明図である。
【図5】文字列の検出結果の例を示す説明図である。
【図6】文字列要素に関する情報の例を示す説明図である。
【図7】文字列要素に関する情報の例を示す説明図である。
【図8】第1の実施の形態による処理例を示すフローチャートである。
【図9】文字列要素の予測処理の例を示す説明図である。
【図10】文字列要素の検出処理の例を示す説明図である。
【図11】文字列要素の修正処理の例を示す説明図である。
【図12】第2の実施の形態の構成例についての概念的なモジュール構成図である。
【図13】第3の実施の形態の構成例についての概念的なモジュール構成図である。
【図14】第3の実施の形態による処理例を示すフローチャートである。
【図15】第4の実施の形態の構成例についての概念的なモジュール構成図である。
【図16】第5の実施の形態の構成例についての概念的なモジュール構成図である。
【図17】第5の実施の形態による処理例を示すフローチャートである。
【図18】第6の実施の形態の構成例についての概念的なモジュール構成図である。
【図19】第6の実施の形態による処理例を示すフローチャートである。
【図20】第7の実施の形態の構成例についての概念的なモジュール構成図である。
【図21】本実施の形態を実現するコンピュータのハードウェア構成例を示すブロック図である。
【発明を実施するための形態】
【0022】
まず、以下に説明する実施の形態の概略を説明する。この実施の形態は、画像内から文字列の切り出し技術に属する。文字列切り出し技術とは、文字列が含まれている文書画像(ビットマップ画像、ベクトル画像、ストローク画像等)から、それぞれの文字列を検出する技術を指す。
文字列切り出し技術には、一般的に、トップダウン型とボトムアップ型の2つの基本アプローチがある。
トップダウン型とは、大局領域を分割することで、文字列を検出するアプローチである。ボトムアップ型とは、局所領域を統合することで、文字列を検出するアプローチである。
本実施の形態は、ボトムアップ型の文字列切り出し技術に属する。ボトムアップ型の文字列切り出し装置において、文字列を検出するために統合される局所領域のことを準文字とする。例えば、準文字とは、2値画像の連結成分(4連結や8連結の画素塊)やベクトル情報である。その準文字が表すものとしては、1文字、1文字内の部分、例えば、漢字における「へん、つくり」等がある。準文字に関する情報として、例えば、画像内における準文字を構成する各画素の位置、準文字の外接矩形の位置、大きさ等がある。
【0023】
文書画像によっては、文字列の形状が多様であり、複数の準文字によって構成されている単文字が多く含まれることがある。
2値画像の連結成分を準文字とする例を図2、3に示す。図2は、手書き文書画像200の例を示しており、図3の例に示した文書画像(連結成分)300は、図2の例に示した手書き文書画像200の準文字を解析した結果の例である。
文字列の形状が多様であるとは、図2の例に示すように、互いにサイズの異なる文字列、斜め文字列、又は、歪曲(湾曲)した文字列が混在するような状態を指す。
複数の準文字を含む単文字が多く含まれるとは、日本語において、「へん・つくり」を含む単文字がある状態を指す。図2、3の例から、英語と日本語において、準文字の並び等が異なる様子が分かる。
【0024】
文字列を文字列要素の集合とする。なお、文字列要素は単数又は複数の準文字によって構成されているものとする。本実施の形態は、過去に検出された文字列要素に基づいて、文字列の形状を推定する。そして、ある文字列要素に基づいて、続く文字列要素を検出する。このとき、推定された文字列の形状に基づいて、準文字を統合し、続く文字列要素を検出する。以上の処理を、続く文字列要素の検出に失敗するまで繰り返す。この、繰り返しによる文字列要素の検出を、以下では「文字列追跡」とする。
【0025】
本実施の形態の文字列追跡を説明するための模式図を、図4の例に示す。図4(a)に例示するような文書画像400に対して、まず、準文字を検出する。その結果が図4(b)の例に示す文書画像(連結成分)410のようになる。なお、図4の例において、準文字を矩形で示す。また、文字列要素を円で示す。
【0026】
以下、文字列追跡について、具体的に説明する。
いま、ある文字列追跡において、k番目までの文字列要素が検出されているとする。次に、続くk+1番目の文字列要素を検出したい。ゆえに、続く文字列要素のあるべき領域を推定する。このためには、過去に観測された文字列要素に基づいて、検出の対象である文字列の形状を推定すればよい。この推定は、回帰分析で実現される。また、処理速度とメモリの観点から、非特許文献4に示されるような、逐次演算を利用してもよい。
推定された文字列の形状からk+1番目の文字列要素があるべき領域が予測できる。図4(c)の例において、予測されたk+1番目の文字列要素を破線の円で示す。予測された文字列要素に基づいて、準文字を検出する。このとき、予測された文字列要素の領域に複数の準文字がある場合、これを統合する。
もし、続く文字列要素が検出されなければ、文字列追跡を終了する。
このように、推定の後に検出を行うことにより、それぞれの文字列に対して、検出のために参照する情報(すなわち、文字列のサイズと方向)が得られる。すなわち、文字列の形状の多様性の問題を解決するために行うものである。また、予測された文字列要素の領域にある複数の準文字を統合することで、複数の準文字を含む単文字であっても文字列要素として抽出し得る。
【0027】
図5に、本実施の形態による文字列の検出結果の例を示す。
例えば、文書画像500から、8つの文字列が抽出でき、その文字列中心線512、514、516、518、520、522、524、526を示している。つまり、文字列の形状が多様であり、複数の準文字によって構成される単文字が多く含まれる文書画像500に対して、文字列を検出している。また、文字でない図形やノイズのある文書画像500において、準文字について予めノイズと文字とを区別しておく必要もない。
【0028】
<準文字と文字列要素について>
本実施の形態は、文字列を、文字列要素の集合として検出する。
前述の通り、文字列要素とは、単数又は複数の準文字によって構成されている。
本実施の形態おける準文字とは、以下のいずれかを指す。
(A)2値画像の連結成分
(B)ストローク画像のストロークデータ
(C)ベクトル画像のベクトルデータ
【0029】
本実施の形態おける文字列要素は、文字列の形状の推定のために、少なくとも以下の情報を持つ。
(I)t:文字列要素のサイズ
(II)θ:文字列要素の方向
(III)p:文字列要素どうしの間隔
ここで、θ(文字列要素の方向)とは、対象としている文字列要素をk番目に検出された文字列要素(文字列要素(k)と表記する)とし、その直前に検出された文字列要素をk−1番目に検出された文字列要素(文字列要素(k−1)と表記する)とすると、文字列要素(k−1)から文字列要素(k)への方向をいう。
p(文字列要素どうしの間隔)とは、文字列要素(k−1)と文字列要素(k)との間の距離をいう。
【0030】
また、文字列要素は、準文字の代わりに位置の情報を有していてもよい。この場合、予め保持している準文字から、文字列要素の位置とサイズが指定する領域にある準文字のみを検出し、文字列とすればよい。また、方向であるθについて、その微分値を併せて有していてもよい。方向の微分値を考慮することで、歪曲した文字列の検出に対応する。
【0031】
具体的な例を図6、7に示す。なお、破線で囲われる領域は、続く文字列要素の予測を表す。
まず、図6に示す例を説明する。図6の例においては、文字列要素を矩形で与えている。例えば、この矩形は、文字列要素を囲む外接矩形である。また、t、θ、pを以下のように与える。
(I)t:対象としている文字列要素である矩形(S)の対角線長さ(t
(II)θ:対象としている文字列要素である矩形(S)の中心座標と、前にある文字列要素である矩形(Sk−1)の中心座標を結ぶ線の傾き(θ
(III)p:対象としている文字列要素である矩形(S)の中心座標と、前にある文字列要素である矩形(Sk−1)の中心座標との距離(p
このほかに、例えば、tとして、矩形の縦長さ、横長さ、面積等であってもよいし、θとして、矩形の右上端間の傾き等であってもよいし、pとして、中心座標間の距離から、互いの矩形に重なる部分を引いた長さ等であってもよい。
【0032】
また、図7に示す例を説明する。図7の例においては、文字列要素を楕円で与えている。例えば、この楕円は、文字列要素を囲む最小の楕円である。また、t、θ、pを以下のように与える。
(I)t:対象としている文字列要素である楕円(S)の中心を通り、傾きθ + π/2 である直線の、楕円と重なる長さ(t
(II)θ:対象としている文字列要素である楕円(S)の中心座標と、前にある文字列要素である楕円(Sk−1)の中心座標を結ぶ線の傾き(θ
(III)p:対象としている文字列要素である楕円(S)の中心座標と、前にある文字列要素である楕円(Sk−1)の中心座標との距離から、互いの楕円に重なる部分を引いた長さ(p
このほかに、例えば、tとして、楕円の長径、短径、長径×短径、面積等であってもよいし、θとして、楕円の右端間の傾き等であってもよいし、pとして、中心座標間の距離等であってもよい。
【0033】
以下、図面に基づき本発明を実現するにあたっての好適な各種の実施の形態の例を説明する。
<第1の実施の形態>
図1は、第1の実施の形態の構成例についての概念的なモジュール構成図を示している。
なお、モジュールとは、一般的に論理的に分離可能なソフトウェア(コンピュータ・プログラム)、ハードウェア等の部品を指す。したがって、本実施の形態におけるモジュールはコンピュータ・プログラムにおけるモジュールのことだけでなく、ハードウェア構成におけるモジュールも指す。それゆえ、本実施の形態は、それらのモジュールとして機能させるためのコンピュータ・プログラム(コンピュータにそれぞれの手順を実行させるためのプログラム、コンピュータをそれぞれの手段として機能させるためのプログラム、コンピュータにそれぞれの機能を実現させるためのプログラム)、システム及び方法の説明をも兼ねている。ただし、説明の都合上、「記憶する」、「記憶させる」、これらと同等の文言を用いるが、これらの文言は、実施の形態がコンピュータ・プログラムの場合は、記憶装置に記憶させる、又は記憶装置に記憶させるように制御するの意である。また、モジュールは機能に一対一に対応していてもよいが、実装においては、1モジュールを1プログラムで構成してもよいし、複数モジュールを1プログラムで構成してもよく、逆に1モジュールを複数プログラムで構成してもよい。また、複数モジュールは1コンピュータによって実行されてもよいし、分散又は並列環境におけるコンピュータによって1モジュールが複数コンピュータで実行されてもよい。なお、1つのモジュールに他のモジュールが含まれていてもよい。また、以下、「接続」とは物理的な接続の他、論理的な接続(データの授受、指示、データ間の参照関係等)の場合にも用いる。「予め定められた」とは、対象としている処理の前に定まっていることをいい、本実施の形態による処理が始まる前はもちろんのこと、本実施の形態による処理が始まった後であっても、対象としている処理の前であれば、そのときの状況・状態に応じて、又はそれまでの状況・状態に応じて定まることの意を含めて用いる。
また、システム又は装置とは、複数のコンピュータ、ハードウェア、装置等がネットワーク(一対一対応の通信接続を含む)等の通信手段で接続されて構成されるほか、1つのコンピュータ、ハードウェア、装置等によって実現される場合も含まれる。「装置」と「システム」とは、互いに同義の用語として用いる。もちろんのことながら、「システム」には、人為的な取り決めである社会的な「仕組み」(社会システム)にすぎないものは含まない。
また、各モジュールによる処理毎に又はモジュール内で複数の処理を行う場合はその処理毎に、対象となる情報を記憶装置から読み込み、その処理を行った後に、処理結果を記憶装置に書き出すものである。したがって、処理前の記憶装置からの読み込み、処理後の記憶装置への書き出しについては、説明を省略する場合がある。なお、ここでの記憶装置としては、ハードディスク、RAM(Random Access Memory)、外部記憶媒体、通信回線を介した記憶装置、CPU(Central Processing Unit)内のレジスタ等を含んでいてもよい。
【0034】
第1の実施の形態である画像処理装置は、文書画像から文字列を抽出するものであって、図1の例に示すように、文字列要素予測モジュール110、文字列要素検出モジュール120、文字列要素修正モジュール130、準文字保持モジュール140、文字列要素保持モジュール150、終端処理モジュール160を有している。
文字列追跡は、まず開始文字列要素を受け付け、その開始文字列要素に対して、準文字のセットを参照しながら、文字列を検出する処理の繰り返しで構成される。
【0035】
文字列要素予測モジュール110は、文字列要素検出モジュール120、文字列要素修正モジュール130、文字列要素保持モジュール150と接続されている。文字列要素予測モジュール110は、画像内の第1の文字列要素に関する情報として、その第1の文字列要素の大きさ、その第1の文字列要素の前にある文字列要素である前文字列要素からその第1の文字列要素への方向、その前文字列要素からその第1の文字列要素までの距離、を受け付ける。文字列要素108についての、前述のt、θ、pを受け付ける。さらに、前文字列要素から第1の文字列要素への方向の微分値を受け付けるようにしてもよい。
【0036】
そして、文字列要素予測モジュール110は、受け付けられた第1の文字列要素に関する情報に基づいて、その第1の文字列要素に続く第2の文字列要素を予測する。つまり、過去に得られた文字列要素(文字列要素108、文字列要素修正モジュール130によって修正された文字列要素、又は、文字列要素保持モジュール150に保持されている文字列要素)から、続く文字列要素112を予測する。続く文字列要素112とは、文字列要素を検出する順番における次のことをいい、過去に抽出された最新の文字列要素(文字列要素修正モジュール130から渡された文字列要素)の次に抽出すべき文字列要素のことをいう。もちろんのことながら、抽出された最新の文字列要素とは、隣り合うこととなる。微分値を受け付けた場合は、その微分値を第1の文字列要素に関する情報に加えることによって、第2の文字列要素を予測する。
【0037】
文字列要素検出モジュール120は、文字列要素予測モジュール110、文字列要素修正モジュール130、準文字保持モジュール140、終端処理モジュール160と接続されている。文字列要素検出モジュール120は、文字列要素予測モジュール110によって予測された第2の文字列要素に基づいて、画像内の第2の文字列要素を検出する。具体的には、予測した文字列要素の領域に含まれる準文字を準文字保持モジュール140内から検出し、統合し、続く文字列要素122とする。もちろんのことながら、予測した文字列要素の領域に一部が含まれている準文字等もあるので、予測した文字列要素と検出した文字列要素のサイズ等は異なるものとなる場合がある。
【0038】
文字列要素修正モジュール130は、文字列要素予測モジュール110、文字列要素検出モジュール120、文字列要素保持モジュール150と接続されている。文字列要素修正モジュール130は、過去の文字列要素に関する情報に基づいて、文字列要素検出モジュール120によって検出された第2の文字列要素に関する情報を修正する。そして、修正した第2の文字列要素に関する情報を文字列要素予測モジュール110に渡し、文字列要素保持モジュール150に保持させる。この処理は、過去に検出された文字列要素を参照して、検出対象の文字列の形状を推定することになる。
【0039】
そして、この画像処理装置は、文字列要素修正モジュール130によって修正された第2の文字列要素を次の第1の文字列要素として、文字列要素予測モジュール110が受け付けるように制御し、文字列要素予測モジュール110、文字列要素検出モジュール120、文字列要素修正モジュール130による処理を繰り返して行わせるように制御する。
【0040】
準文字保持モジュール140は、文字列要素検出モジュール120、終端処理モジュール160と接続されている。準文字保持モジュール140は、対象としている画像内にある準文字に関する情報を保持している。この情報は、文字列要素検出モジュール120、終端処理モジュール160によってアクセスされ、また、文字列要素検出モジュール120によって更新124、終端処理モジュール160によって更新142等される。
文字列要素保持モジュール150は、文字列要素予測モジュール110、文字列要素修正モジュール130、終端処理モジュール160と接続されている。文字列要素保持モジュール150は、文字列要素修正モジュール130によって修正された文字列要素に関する情報を保持している。
【0041】
また、文字列要素検出モジュール120は、第2の文字列要素を検出できなかった場合(例えば、予測した文字列要素の領域内で準文字が検出されない場合)、又は、検出された第2の文字列要素に関する情報と文字列要素予測モジュール110によって予測された第2の文字列要素に関する情報との差分が予め定められた値よりも大きい又は以上である場合は、終了信号126を終端処理モジュール160に出力する。
【0042】
終端処理モジュール160は、文字列要素検出モジュール120、準文字保持モジュール140、文字列要素保持モジュール150と接続されている。終端処理モジュール160は、終了信号126を受け取ると、文字列要素保持モジュール150内に保持されている過去に得られた文字列要素を統合し、文字列162として出力する。ここでの文字列要素の統合とは、文字列要素をつないで文字列とすることであり、例えば、各文字列を少なくとも画像内で識別するための識別子(文字列識別子)を付し、その文字列に含まれる文字列要素にその文字列識別子を付すようにしてもよい。また、文字列に含まれている文字列要素に関する情報から文字列に関する情報を生成するようにしてもよい。例えば、文字列に関する情報として、文字列の始端、終端、中心線の位置(関数で表すことができる場合は関数であってもよいし、中心線の各画素のx座標、y座標等であってもよい)、太さ(太さが一様でない場合は、中心線の各位置における太さ等)等がある。
なお、繰り返し処理において、同一の準文字を重複して検出するために処理が終了しないことを防ぐため、検出済みであることを示す情報を準文字保持モジュール140内の準文字に付加する(準文字の更新142処理)。続いて、他の文字列の検出を行う場合、終端処理モジュール160において検出済みの情報を初期化する。
文字列の出力として、例えば、その文字列に関する情報を、メモリーカード等の記憶媒体に記憶させること、他の情報処理装置(例えば、文字認識装置等)へ渡すことの他に、画像から文字列だけを取り出して、ディスプレイ等の表示装置に表示すること、ファックス等の画像送信装置で画像を送信すること、画像データベース等の画像記憶装置へ画像を書き込むこと等をしてもよい。
【0043】
図8は、第1の実施の形態による処理例を示すフローチャートである。
ステップS802では、文字列要素予測モジュール110が、sを受け付ける。
ステップS804では、文字列要素予測モジュール110が、変数kに0を代入する。
ステップS806では、文字列要素予測モジュール110が、sから
【数1】

を予測する。
ステップS808では、文字列要素検出モジュール120が、
【数1】

から画像内のs’k+1を検出する。
ステップS810では、文字列要素検出モジュール120が、s’k+1が検出されたか否かを判断し、検出された場合はステップS812へ進み、それ以外の場合はステップS816へ進む。
ステップS812では、文字列要素修正モジュール130が、s’k+1からsk+1を修正する。
ステップS814では、文字列要素修正モジュール130が、変数kに変数k+1を代入する。つまり、変数kをインクリメントする。
ステップS816では、終端処理モジュール160が、{s,…,s}{s’,…,s’}を出力する。
【0044】
第1の実施の形態の動作説明のための模式図を図9−11に示す。
図9は、文字列要素の予測処理の例を示す説明図である。
図10は、文字列要素の検出処理の例を示す説明図である。
図11は、文字列要素の修正処理の例を示す説明図である。
図9−11において、sは直前に得られた文字列要素である。
また、
【数1】

は、予測文字列要素である。
また、s’k+1は、検出された文字列要素である。
また、sk+1は、過去に得られた文字列要素に基づいて文字列を推定し、これに基づいてs’k+1を修正することで得られる文字列要素である。
なお、図9−11の例を用いた説明は、文字列要素を楕円とした図7の例の場合であるが、文字列要素を矩形とした図6の場合も同様である。
【0045】
文字列要素予測モジュール110は、過去に得られたsに基づいて、
【数1】

を出力する。また、
【数1】

が示す領域を求める。この様子を図9の例に示す。
まず、
【数1】

の持つ情報である
【数3】

【数4】

【数5】

を求める。これらはsの持つ情報そのものでよい(つまり、(3)式、(4)式、(5)式に、t、θ、pを代入する)。もし、t、θ、pのいずれか1つ以上に微分値(隣り合う文字列要素間の差分)を持つ情報がある場合、そのt、θ、pに微分値を加算すればよい。
次に、sの位置と、
【数1】

の持つ情報に基づいて、
【数1】

の位置を求める。
【0046】
文字列要素検出モジュール120は、
【数1】

に基づいて、s’k+1を出力する。この様子を図10の例に示す。
まず、
【数1】

が示す領域に含まれる準文字を、準文字保持モジュール140から検出する。このとき、準文字は複数であってもよい。次に、s’k+1の持つ情報であるt’k+1、θ’k+1、p’k+1を求める。これらは、準文字を統合して得られる文字列要素と、sに基づいて算出する。具体的には、実際に検出した準文字が位置する領域の大きさ(t)、その領域の中心座標とsの中心座標とのなす角(θ)、その領域の中心座標とsの中心座標との距離から互いの楕円に重なる部分を引いた長さ(p)を算出する。
【0047】
文字列要素修正モジュール130は、s’k+1と過去に得られた文字列要素に基づいて、sk+1を出力する。この様子を図11の例に示す。s’k+1は実測値であるため、ノイズを含む。このノイズの影響は、過去に得られた文字列要素を参照することで修正される。
【0048】
文字列追跡は、以上の処理を繰り返す。図10の例に示す、文字列要素検出モジュール120において、文字列要素が検出されない場合、処理を終了する。「文字列要素が検出されない」とは、予測文字列要素の示す領域に準文字がないことを指す。また、予測文字列要素の示す領域に準文字があるが、s’に関する情報と
【数2】

に関する情報との差分値が、予め定められた値よりも大きい又は以上である場合、処理を終了する。このとき、予め定められた値として、過去に検出された文字列要素の分散を参照してもよい。
また、文字列要素検出モジュール120において、文字列要素が検出されない場合又は差分値が予め定められた値よりも大きい又は以上である場合の発生回数が、予め定めた回数をこえた場合又は以上となった場合に、処理を終了する構成でもよい。
【0049】
<逐次演算による文字列要素の推定>
図1の例に示す第1の実施の形態における、文字列要素予測モジュール110、文字列要素検出モジュール120、文字列要素修正モジュール130による文字列のサイズと形状の推定を、逐次計算により行う例を示す。
文字列のサイズと形状の推定は、過去に得られたすべての文字列要素を利用して、回帰演算を行うことで実現される。しかし、以下のように逐次演算で実装すれば、メモリ容量と計算速度の改善が図れる。
以下に示す逐次演算では、推定したい値x(すなわち、t、θ、pのいずれか)に対応する分散情報Pを逐次保持・更新する。これは、狭義のカルマンフィルタ(Greg Welch, Gary BishopAurelie, “An Introduction to the Kalman Filter, ” 2006.)に相当する。なお、Q、Rは、推定したい値xに関する誤差の分散情報であり、予め定められた値である。
【0050】
それぞれ、以下のような計算を行う。
まず、文字列要素予測モジュール110において、以下の計算((6)式、(7)式)を行う。
【数6】

【数7】

また、文字列要素修正モジュール130において、以下の計算((8)式、(9)式、(10)式)を行う。
【数8】

【数9】

【数10】

なお、推定したい値xが微分値の情報を持つ場合、x、Pは2次元行列となり、Aは以下の(11)式のように与えられる。
【数11】

また、推定したい値xが微分値の情報を持たない場、x、Pはスカラであり、Aは以下の(12)式のように与えられる。
【数12】

【0051】
<第2の実施の形態>
図12は、第2の実施の形態の構成例についての概念的なモジュール構成図である。
第2の実施の形態は、文字列追跡処理の往復により開始文字列要素を求めるものであり、図12の例に示すように、文字列要素予測モジュール110、文字列要素検出モジュール120、文字列要素修正モジュール130、準文字保持モジュール140、文字列要素保持モジュール150、終端処理モジュール160、往復モジュール1270を有している。なお、第1の実施の形態と同種の部位には同一符号を付し重複した説明を省略する(以下、同様)。
文字列追跡の目的から、文字列内の最初の文字列要素は文字列の端部であることが望ましい。第2の実施の形態は、文字列の端部である文字列要素の検出を、往復処理によって行う。つまり、第2の実施の形態による処理の概要は、第1の実施の形態で終了条件を満たした場合は、逆方向に文字列追跡を行い、その後に終了条件を満たした場合はそこが端部であるとするものである。また、往復処理は複数回繰り返してもよい。
【0052】
文字列要素予測モジュール110は、文字列要素検出モジュール120、文字列要素修正モジュール130、文字列要素保持モジュール150、往復モジュール1270と接続されている。
終端処理モジュール160は、文字列要素検出モジュール120、準文字保持モジュール140、文字列要素保持モジュール150、往復モジュール1270と接続されている。
往復モジュール1270は、文字列要素予測モジュール110、終端処理モジュール160と接続されている。往復モジュール1270は、終端処理モジュール160によって、1つの文字列に対する文字列追跡処理が終了したと判断された場合(終端処理モジュール160が文字列162を往復モジュール1270に出力した場合)に、その文字列追跡処理の最後に検出された文字列要素(終点の文字列要素)を最初の文字列要素とする。そして、文字列追跡の方向を反転する。つまり、再度、逆方向に文字列追跡処理を行うようにするために、その最初の文字列要素を文字列要素予測モジュール110に渡し、文字列要素予測モジュール110が予測する文字列要素の方向を、それまでの文字列追跡の方向と逆方向にする。そして、第1の実施の形態と同様に、文字列要素予測モジュール110、文字列要素検出モジュール120、文字列要素修正モジュール130による処理を繰り返す。そして、次に終端処理モジュール160によって、その文字列の端部まで文字列追跡処理が終了したと判断された場合は、文字列1272を出力する。また、この往復処理を複数回繰り返すようにしてもよい。予め定められた回数であってもよいし、前回の端部が同じ位置である場合(前回の端部と今回の端部との間隔が予め定められた距離以内又は未満である場合であってもよい)に、往復処理を終了するようにしてもよい。そして、最後に受け取った文字列162を文字列1272として出力する。
【0053】
<第3の実施の形態>
図13は、第3の実施の形態の構成例についての概念的なモジュール構成図である。第3の実施の形態は、文字列追跡によって、文字列を検出する文字列切り出し装置であって、図13の例に示すように、準文字作成モジュール1310、開始文字列要素作成モジュール1320、文字列追跡モジュール1330、準文字保持モジュール1340を有している。
【0054】
準文字作成モジュール1310は、開始文字列要素作成モジュール1320、準文字保持モジュール1340と接続されている。準文字作成モジュール1310は、対象としている画像1308から、準文字1314を作成する。そして、その準文字1314を準文字保持モジュール1340に記憶させ、開始信号1312を開始文字列要素作成モジュール1320に渡す。具体的には、画像1308から前述の画素塊を抽出し、その画素塊から準文字1314を作成する。
準文字保持モジュール1340は、準文字作成モジュール1310、開始文字列要素作成モジュール1320、文字列追跡モジュール1330と接続されている。準文字保持モジュール1340は、準文字作成モジュール1310が作成した準文字1314を記憶している。そして、開始文字列要素作成モジュール1320、文字列追跡モジュール1330からアクセスされる。
【0055】
開始文字列要素作成モジュール1320は、準文字作成モジュール1310、文字列追跡モジュール1330、準文字保持モジュール1340と接続されている。開始文字列要素作成モジュール1320は、開始信号1312を受け取ると、準文字保持モジュール1340に保持されている準文字1314に基づいて、開始文字列要素1322を作成する。具体的には、画像1308内の左端にある準文字1314を選択し、その準文字1314から予め定められた距離内にある他の準文字1314とともに文字列要素を作成し、その文字列要素の大きさ(t)を計測し、θ(文字列要素の方向)、p(文字列要素どうしの間隔)は予め定められた値としてもよい。
文字列追跡モジュール1330は、開始文字列要素作成モジュール1320、準文字保持モジュール1340と接続されている。文字列追跡モジュール1330は、前述の第1の実施の形態又は第2の実施の形態である。つまり、開始文字列要素1322を受け取って、準文字保持モジュール1340内の準文字1314に基づいて、文字列1332を出力する。
【0056】
図14は、第3の実施の形態による処理例を示すフローチャートである。
ステップS1402では、準文字作成モジュール1310が、準文字リストを作成する。
ステップS1404では、開始文字列要素作成モジュール1320が、準文字からsを作成する。
ステップS1406では、開始文字列要素作成モジュール1320が、sが作成されたか否かを判断し、作成された場合はステップS1408へ進み、それ以外の場合は処理を終了する(ステップS1499)。
ステップS1408では、文字列追跡モジュール1330が、文字列追跡の処理を行う。
ステップS1410では、文字列追跡モジュール1330が、文字列が切り出されたか否かを判断し、切り出された場合はステップS1412へ進み、それ以外の場合はステップSステップS1406からの処理を行う。
ステップS1412では、文字列追跡モジュール1330が、文字列を出力する。
【0057】
<第4の実施の形態>
図15は、第4の実施の形態の構成例についての概念的なモジュール構成図である。第4の実施の形態は、複数の文字列を抽出し、その中から文字列を選択するものであって、図15の例に示すように、準文字作成モジュール1510、開始文字列要素作成モジュール1520、開始文字列要素保持モジュール1530、文字列追跡モジュール1540、文字列保持モジュール1550、文字列選択モジュール1560、準文字保持モジュール1570を有している。
前述の実施の形態では、文字列の検出の精度は、初期値である予測文字列要素に依存する。そこで、複数の開始文字列要素を作成し、各々の開始文字列要素から検出される複数の文字列から、文字列にふさわしいものを選択する。
【0058】
準文字作成モジュール1510は、開始文字列要素作成モジュール1520、準文字保持モジュール1570と接続されている。準文字作成モジュール1510は、第3の実施の形態の準文字作成モジュール1310と同等のものである。
準文字保持モジュール1570は、準文字作成モジュール1510、開始文字列要素作成モジュール1520、文字列追跡モジュール1540と接続されている。準文字保持モジュール1570は、第3の実施の形態の準文字保持モジュール1340と同等のものである。
開始文字列要素作成モジュール1520は、準文字作成モジュール1510、開始文字列要素保持モジュール1530、準文字保持モジュール1570と接続されている。開始文字列要素作成モジュール1520は、第3の実施の形態の開始文字列要素作成モジュール1320と同等のものである。ただし、複数の開始文字列要素1522を作成し、開始文字列要素保持モジュール1530に記憶させる。複数の最初の文字列要素を作成するために、準文字1514をランダムに選択するようにしてもよいし、予め定められた規則(例えば、左端から順に準文字1514を選択する等)にしたがって選択するようにしてもうよい。
【0059】
開始文字列要素保持モジュール1530は、開始文字列要素作成モジュール1520、文字列追跡モジュール1540と接続されている。開始文字列要素作成モジュール1520が作成した複数の開始文字列要素1522を保持する。そして、文字列追跡モジュール1540からアクセスされる。
文字列追跡モジュール1540は、開始文字列要素保持モジュール1530、文字列保持モジュール1550、準文字保持モジュール1570と接続されている。文字列追跡モジュール1540は、前述の第1の実施の形態又は第2の実施の形態である。つまり、開始文字列要素保持モジュール1530から開始文字列要素1532を取り出して、準文字保持モジュール1570内の準文字1514に基づいて、開始文字列要素1532毎に文字列1542を生成し、その複数の文字列1542を文字列保持モジュール1550に記憶させる。
文字列保持モジュール1550は、文字列追跡モジュール1540、文字列選択モジュール1560と接続されている。文字列保持モジュール1550は、複数の文字列1542を記憶する。
文字列選択モジュール1560は、文字列保持モジュール1550と接続されている。文字列選択モジュール1560は、文字列保持モジュール1550内の複数の文字列1542から文字列としてふさわしいものを選択する。例えば、同じ文字列要素が含まれている文字列があるか否かを判断し、同じ文字列要素が含まれている文字列がある場合は、以下の文字列を選択する。例えば、他の文字列の長さと比較して、文字列の長さが長いものを選択するようにしてもよい。また、他の文字列の曲り具合(θの変化度合いの加算)を比較して、歪曲していない文字列を選択するようにしてもよい。また、他の文字列と平行しているものを選択するようにしてもよい。
【0060】
<第5の実施の形態>
図16は、第5の実施の形態の構成例についての概念的なモジュール構成図である。第5の実施の形態は、複数の文字列を検出するものであって、図16の例に示すように、文字列切り出しモジュール1610、準文字更新モジュール1620を有している。
【0061】
文字列切り出しモジュール1610は、準文字更新モジュール1620と接続されている。文字列切り出しモジュール1610は、前述の第1の実施の形態〜第4の実施の形態のいずれかである。つまり、画像1608を受け取って、準文字更新モジュール1620からの開始信号1622又は更新1624によって、処理を開始し、文字列1612を出力し、処理すべき準文字がなくなった場合(例えば、第3の実施の形態の開始文字列要素作成モジュール1320が開始文字列要素1322を作成できなくなった場合、第4の実施の形態の開始文字列要素作成モジュール1520が開始文字列要素1522を作成できなくなった場合)は終了信号1614を出力する。
準文字更新モジュール1620は、文字列切り出しモジュール1610と接続されている。準文字更新モジュール1620は、検出された文字列1612に含まれる準文字について、検出済みの情報を付与する。
【0062】
図17は、第5の実施の形態による処理例を示すフローチャートである。
ステップS1702では、文字列切り出しモジュール1610が、準文字リストを作成する。
ステップS1704では、文字列切り出しモジュール1610が、準文字からsを作成する。
ステップS1706では、文字列切り出しモジュール1610が、sが作成されたか否かを判断し、作成された場合はステップS1708へ進み、それ以外の場合は処理を終了する(ステップS1799)。
ステップS1708では、文字列切り出しモジュール1610が、文字列追跡の処理を行う。
ステップS1710では、文字列切り出しモジュール1610が、文字列が切り出されたか否かを判断し、切り出された場合はステップS1712へ進み、それ以外の場合はステップS1706からの処理を行う。
ステップS1712では、文字列切り出しモジュール1610が、文字列を保持する。
ステップS1714では、準文字更新モジュール1620が、準文字リストから、文字列に含まれる準文字を除去する。
【0063】
<第6の実施の形態>
図18は、第6の実施の形態の構成例についての概念的なモジュール構成図である。第6の実施の形態は、検出のパラメータを更新するものであって、図18の例に示すように、複数文字列切り出しモジュール1810、変数更新モジュール1820、変数保持モジュール1830を有している。
第6の実施の形態は、貪欲アルゴリズムによって、文書画像に含まれる文字列を検出するものである。貪欲アルゴリズムとは、準文字を検出するたびに、この準文字を検出の対象から除外するアプローチである。貪欲アルゴリズムによれば、参照すべき対象が順次減少する。
このとき、検出対象の文字列のパラメータが、予め定められた値の付近であるものを優先して検出することにより、検出の精度が安定する場合がある。例えば、単文字どうしがより近接しているものが、より文字列らしい、と仮定する条件下では、文字列要素どうしの間隔が小さなものから優先して検出・除外する構成にする。
【0064】
複数文字列切り出しモジュール1810は、変数更新モジュール1820、変数保持モジュール1830と接続されている。複数文字列切り出しモジュール1810は、前述の第1の実施の形態〜第5の実施の形態のいずれかである。つまり、画像1808を受け取って、特に第1の実施の形態、第2の実施の形態、第3の実施の形態の開始文字列要素作成モジュール1320、文字列追跡モジュール1330、第4の実施の形態の開始文字列要素作成モジュール1520、文字列追跡モジュール1540は、変数保持モジュール1830内のパラメータを用いて、文字列1812を出力する。そして、変数更新モジュール1820によってパラメータが更新された場合は、開始信号1822を受け取って、更新されたパラメータを用いて、文字列1812を出力する。終了と判断した場合(すなわち、現在の変数保持モジュール1830によって検出し得る開始文字列要素がない場合)は、終了信号1814を変数更新モジュール1820に渡す。
【0065】
変数更新モジュール1820は、複数文字列切り出しモジュール1810、変数保持モジュール1830と接続されている。変数更新モジュール1820は、複数文字列切り出しモジュール1810から終了信号1814を受け取った場合は、変数保持モジュール1830内のパラメータを更新1824する。そして、パラメータの更新によって、パラメータが終了値となった場合、終了信号1826を出力して処理を終了する。
変数保持モジュール1830は、複数文字列切り出しモジュール1810、変数更新モジュール1820と接続されている。変数保持モジュール1830は、前述のパラメータを保持しており、変数更新モジュール1820によって、そのパラメータが更新され、複数文字列切り出しモジュール1810によってアクセスされる。
【0066】
図19は、第6の実施の形態による処理例を示すフローチャートである。
Pとは、パラメータを表す。
Init()とは、パラメータを初期化する関数を表す。
Update(P)とは、パラメータPを更新する関数を表す。
Continue(P)とは、パラメータPが終了条件を満たすことを判別する関数を表す。
例えば、パラメータPを文字列要素どうしの距離である場合、最小のパラメータPをInit()により決定し、微分値を加算する処理をUpdate(P)により行い、Continue(P)において、パラメータPが予め定められた値に達することを判別する。
【0067】
ステップS1902では、変数更新モジュール1820が、パラメータPにInit()を代入する。
ステップS1904では、変数更新モジュール1820が、Continue(P)か否かを判断し、その通りであればステップS1906へ進み、それ以外の場合は処理を終了する(ステップS1999)。
ステップS1906では、複数文字列切り出しモジュール1810が、複数文字列を切り出す。
ステップS1908では、変数更新モジュール1820が、パラメータPにUpdate(P)を代入する。
【0068】
<第7の実施の形態>
図20は、第7の実施の形態の構成例についての概念的なモジュール構成図である。第7の実施の形態は、文字列を切り出して、文字認識処理を行うものであって、図20の例に示すように、複数文字列切り出しモジュール2010、文字列認識モジュール2020を有している。
【0069】
複数文字列切り出しモジュール2010は、文字列認識モジュール2020と接続されている。複数文字列切り出しモジュール2010は、前述の第1の実施の形態〜第6の実施の形態のいずれかである。つまり、画像2008を受け取って、その画像2008内の文字列2012を切り出して、文字列認識モジュール2020に渡す。切り出す文字列がなくなった場合は、終了信号2014を出力する。
文字列認識モジュール2020は、複数文字列切り出しモジュール2010と接続されている。文字列認識モジュール2020は、文字列2012の画像を認識して、文字認識結果2022を出力する。文字認識は、既存の方式を用いればよい。
【0070】
図21を参照して、本実施の形態の画像処理装置のハードウェア構成例について説明する。図21に示す構成は、例えばパーソナルコンピュータ(PC)などによって構成されるものであり、スキャナ等のデータ読み取り部2117と、プリンタなどのデータ出力部2118を備えたハードウェア構成例を示している。
【0071】
CPU(Central Processing Unit)2101は、前述の実施の形態において説明した各種のモジュール、すなわち、文字列要素予測モジュール110、文字列要素検出モジュール120、文字列要素修正モジュール130、終端処理モジュール160、往復モジュール1270、準文字作成モジュール1310、開始文字列要素作成モジュール1320、文字列追跡モジュール1330、準文字作成モジュール1510、開始文字列要素作成モジュール1520、文字列追跡モジュール1540、文字列選択モジュール1560、文字列切り出しモジュール1610、準文字更新モジュール1620、複数文字列切り出しモジュール1810、変数更新モジュール1820、複数文字列切り出しモジュール2010、文字列認識モジュール2020等の各モジュールの実行シーケンスを記述したコンピュータ・プログラムにしたがった処理を実行する制御部である。
【0072】
ROM(Read Only Memory)2102は、CPU2101が使用するプログラムや演算パラメータ等を格納する。RAM(Random Access Memory)2103は、CPU2101の実行において使用するプログラムや、その実行において適宜変化するパラメータ等を格納する。これらはCPUバスなどから構成されるホストバス2104により相互に接続されている。
【0073】
ホストバス2104は、ブリッジ2105を介して、PCI(Peripheral Component Interconnect/Interface)バスなどの外部バス2106に接続されている。
【0074】
キーボード2108、マウス等のポインティングデバイス2109は、操作者により操作される入力デバイスである。ディスプレイ2110は、液晶表示装置又はCRT(Cathode Ray Tube)などがあり、各種情報をテキストやイメージ情報として表示する。
【0075】
HDD(Hard Disk Drive)2111は、ハードディスクを内蔵し、ハードディスクを駆動し、CPU2101によって実行するプログラムや情報を記録又は再生させる。ハードディスクには、対象とする画像、文字列要素に関する情報、文字列などが格納される。さらに、その他の各種のデータ処理プログラム等、各種コンピュータ・プログラムが格納される。
【0076】
ドライブ2112は、装着されている磁気ディスク、光ディスク、光磁気ディスク、又は半導体メモリ等のリムーバブル記録媒体2113に記録されているデータ又はプログラムを読み出して、そのデータ又はプログラムを、インタフェース2107、外部バス2106、ブリッジ2105、及びホストバス2104を介して接続されているRAM2103に供給する。リムーバブル記録媒体2113も、ハードディスクと同様のデータ記録領域として利用可能である。
【0077】
接続ポート2114は、外部接続機器2115を接続するポートであり、USB、IEEE1394等の接続部を持つ。接続ポート2114は、インタフェース2107、及び外部バス2106、ブリッジ2105、ホストバス2104等を介してCPU2101等に接続されている。通信部2116は、通信回線に接続され、外部とのデータ通信処理を実行する。データ読み取り部2117は、例えばスキャナであり、ドキュメントの読み取り処理を実行する。データ出力部2118は、例えばプリンタであり、ドキュメントデータの出力処理を実行する。
【0078】
なお、図21に示す画像処理装置のハードウェア構成は、1つの構成例を示すものであり、本実施の形態は、図21に示す構成に限らず、本実施の形態において説明したモジュールを実行可能な構成であればよい。例えば、一部のモジュールを専用のハードウェア(例えば特定用途向け集積回路(Application Specific Integrated Circuit:ASIC)等)で構成してもよく、一部のモジュールは外部のシステム内にあり通信回線で接続しているような形態でもよく、さらに図21に示すシステムが複数互いに通信回線によって接続されていて互いに協調動作するようにしてもよい。また、複写機、ファックス、スキャナ、プリンタ、複合機(スキャナ、プリンタ、複写機、ファックス等のいずれか2つ以上の機能を有している画像処理装置)などに組み込まれていてもよい。
【0079】
なお、前述の各種の実施の形態を組み合わせてもよく(例えば、ある実施の形態内のモジュールを他の実施の形態内に追加する、入れ替えをする等も含む)、また、各モジュールの処理内容として背景技術で説明した技術を採用してもよい。
なお、数式を用いて説明したが、数式には、その数式と同等のものが含まれる。同等のものとは、その数式そのものの他に、最終的な結果に影響を及ぼさない程度の数式の変形、又は数式をアルゴリズミックな解法で解くこと等が含まれる。
【0080】
なお、説明したプログラムについては、記録媒体に格納して提供してもよく、また、そのプログラムを通信手段によって提供してもよい。その場合、例えば、前記説明したプログラムについて、「プログラムを記録したコンピュータ読み取り可能な記録媒体」の発明として捉えてもよい。
「プログラムを記録したコンピュータ読み取り可能な記録媒体」とは、プログラムのインストール、実行、プログラムの流通などのために用いられる、プログラムが記録されたコンピュータで読み取り可能な記録媒体をいう。
なお、記録媒体としては、例えば、デジタル・バーサタイル・ディスク(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)等が含まれる。
そして、前記のプログラム又はその一部は、前記記録媒体に記録して保存や流通等させてもよい。また、通信によって、例えば、ローカル・エリア・ネットワーク(LAN)、メトロポリタン・エリア・ネットワーク(MAN)、ワイド・エリア・ネットワーク(WAN)、インターネット、イントラネット、エクストラネット等に用いられる有線ネットワーク、あるいは無線通信ネットワーク、さらにこれらの組み合わせ等の伝送媒体を用いて伝送させてもよく、また、搬送波に乗せて搬送させてもよい。
さらに、前記のプログラムは、他のプログラムの一部分であってもよく、あるいは別個のプログラムと共に記録媒体に記録されていてもよい。また、複数の記録媒体に分割して
記録されていてもよい。また、圧縮や暗号化など、復元可能であればどのような態様で記録されていてもよい。
【符号の説明】
【0081】
110…文字列要素予測モジュール
120…文字列要素検出モジュール
130…文字列要素修正モジュール
140…準文字保持モジュール
150…文字列要素保持モジュール
160…終端処理モジュール
1270…往復モジュール
1310…準文字作成モジュール
1320…開始文字列要素作成モジュール
1330…文字列追跡モジュール
1340…準文字保持モジュール
1510…準文字作成モジュール
1520…開始文字列要素作成モジュール
1530…開始文字列要素保持モジュール
1540…文字列追跡モジュール
1550…文字列保持モジュール
1560…文字列選択モジュール
1570…準文字保持モジュール
1610…文字列切り出しモジュール
1620…準文字更新モジュール
1810…複数文字列切り出しモジュール
1820…変数更新モジュール
1830…変数保持モジュール
2010…複数文字列切り出しモジュール
2020…文字列認識モジュール

【特許請求の範囲】
【請求項1】
画像内の第1の文字列要素に関する情報として、該第1の文字列要素の大きさ、該第1の文字列要素の前にある文字列要素である前文字列要素から該第1の文字列要素への方向、該前文字列要素から該第1の文字列要素までの距離、を受け付ける受付手段と、
前記受付手段によって受け付けられた第1の文字列要素に関する情報に基づいて、該第1の文字列要素に続く第2の文字列要素を予測する予測手段と、
前記予測手段によって予測された第2の文字列要素に基づいて、前記画像内の第2の文字列要素を検出する検出手段と、
過去の文字列要素に関する情報に基づいて、前記検出手段によって検出された第2の文字列要素に関する情報を修正する修正手段と、
前記修正手段によって修正された前記第2の文字列要素を次の第1の文字列要素として、前記受付手段が受け付けるように制御し、前記予測手段、前記検出手段、前記修正手段による処理を繰り返して行わせるように制御する制御手段
を具備することを特徴とする画像処理装置。
【請求項2】
前記受付手段は、第1の文字列要素に関する情報として、前文字列要素から第1の文字列要素への方向の微分値をさらに受け付け、
前記予測手段は、さらに前記受付手段によって受け付けられた方向の微分値に基づいて、第2の文字列要素を予測する
ことを特徴とする請求項1に記載の画像処理装置。
【請求項3】
前記制御手段は、前記検出手段が第2の文字列要素を検出できなかった場合、又は、前記検出手段によって検出された第2の文字列要素に関する情報と前記予測手段によって予測された第2の文字列要素に関する情報との差分が予め定められた値よりも大きい又は以上である場合は、前記繰り返し処理を終了させるように制御する
ことを特徴とする請求項1又は2に記載の画像処理装置。
【請求項4】
前記制御手段は、前記検出手段が第2の文字列要素を検出できなかった場合、又は、前記検出手段によって検出された第2の文字列要素に関する情報と前記予測手段によって予測された第2の文字列要素に関する情報との差分が予め定められた値よりも大きい又は以上である場合は、終点の文字列要素から逆方向に始点の文字列要素までの文字列要素について、前記受付手段、前記予測手段、前記検出手段、前記修正手段による処理を繰り返して行わせるように制御する
ことを特徴とする請求項1又は2に記載の画像処理装置。
【請求項5】
コンピュータを、
画像内の第1の文字列要素に関する情報として、該第1の文字列要素の大きさ、該第1の文字列要素の前にある文字列要素である前文字列要素から該第1の文字列要素への方向、該前文字列要素から該第1の文字列要素までの距離、を受け付ける受付手段と、
前記受付手段によって受け付けられた第1の文字列要素に関する情報に基づいて、該第1の文字列要素に続く第2の文字列要素を予測する予測手段と、
前記予測手段によって予測された第2の文字列要素に基づいて、前記画像内の第2の文字列要素を検出する検出手段と、
過去の文字列要素に関する情報に基づいて、前記検出手段によって検出された第2の文字列要素に関する情報を修正する修正手段と、
前記修正手段によって修正された前記第2の文字列要素を次の第1の文字列要素として、前記受付手段が受け付けるように制御し、前記予測手段、前記検出手段、前記修正手段による処理を繰り返して行わせるように制御する制御手段
として機能させるための画像処理プログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate

【図15】
image rotate

【図16】
image rotate

【図17】
image rotate

【図18】
image rotate

【図19】
image rotate

【図20】
image rotate

【図21】
image rotate


【公開番号】特開2013−45389(P2013−45389A)
【公開日】平成25年3月4日(2013.3.4)
【国際特許分類】
【出願番号】特願2011−184591(P2011−184591)
【出願日】平成23年8月26日(2011.8.26)
【出願人】(000005496)富士ゼロックス株式会社 (21,908)
【Fターム(参考)】