(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-12-06
(45)【発行日】2024-12-16
(54)【発明の名称】画像処理装置、画像処理方法、及びプログラム
(51)【国際特許分類】
G06V 30/24 20220101AFI20241209BHJP
G06V 30/14 20220101ALI20241209BHJP
G06V 30/414 20220101ALI20241209BHJP
【FI】
G06V30/24 620Z
G06V30/14 340J
G06V30/14 340K
G06V30/414
(21)【出願番号】P 2020163290
(22)【出願日】2020-09-29
【審査請求日】2023-09-25
(31)【優先権主張番号】P 2019205702
(32)【優先日】2019-11-13
(33)【優先権主張国・地域又は機関】JP
(73)【特許権者】
【識別番号】000001007
【氏名又は名称】キヤノン株式会社
(74)【代理人】
【識別番号】100090273
【氏名又は名称】國分 孝悦
(72)【発明者】
【氏名】山▲崎▼ 妙子
(72)【発明者】
【氏名】金津 知俊
【審査官】小池 正彦
(56)【参考文献】
【文献】特開2013-161268(JP,A)
【文献】特開2004-110398(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06V 30/24
G06V 30/14
G06V 30/414
(57)【特許請求の範囲】
【請求項1】
画像中の文字領域を検出する検出手段と、
前記文字領域ごとに
、当該文字領域内の画素塊を大きさに基づいて分類し、当該分類された大きさのそれぞれに属する画素塊の数に基づいて、文字認識処理に係る優先度を設定する優先度設定手段と、
前記文字領域ごとに、当該文字領域内の画素塊の大きさに係る情報に基づいて、文字認識処理の処理時間に係る時間要因値を設定する時間要因値設定手段と、
設定された前記優先度及び前記時間要因値に基づいて、文字認識処理を実行する前記文字領域及び実行順を決定する実行順設定手段とを有することを特徴とする画像処理装置。
【請求項2】
前記時間要因値設定手段は、前記画素塊の高さ及び幅の少なくとも一方に基づいて前記画素塊ごとに前記時間要因値を設定することを特徴とする請求項1に記載の画像処理装置。
【請求項3】
前記実行順設定手段は、前記優先度及び前記文字領域内の画素塊にそれぞれ設定された前記時間要因値の合計に基づいて、文字認識処理を実行する前記文字領域及び実行順を決定することを特徴とする請求項1又は2に記載の画像処理装置。
【請求項4】
前記時間要因値設定手段は、文字認識処理を実行せずに画像から取得した前記画素塊の大きさに係る情報に基づいて、前記時間要因値を設定することを特徴とする請求項1~3の何れか1項に記載の画像処理装置。
【請求項5】
前記時間要因値設定手段は、
前記文字領域内の画素塊の集合から仮想文字数を算出し、
算出した前記仮想文字数ごとに難読レベルを分類して係数を設定し、
前記係数を設定する際に接触文字と判定した場合には前記仮想文字数を2以上とすることを特徴とする請求項1~4の何れか1項に記載の画像処理装置。
【請求項6】
前記実行順設定手段は、
文字認識処理の実行順は、前記優先度が高い順に、また前記優先度が同じである場合には前記時間要因値が低い順に決定し、
文字認識処理を実行する前記文字領域は、実行順に累計した前記時間要因値の総和が所定の閾値を超えない文字領域までとすることを特徴とする請求項1~5の何れか1項に記載の画像処理装置。
【請求項7】
前記時間要因値設定手段は、
設定された前記文字領域の前記時間要因値が所定の閾値より大きい場合、当該文字領域から前記時間要因値を大きくする前記画素塊を特定して削除し、前記文字領域の前記時間要因値を設定することを特徴とする請求項1~6の何れか1項に記載の画像処理装置。
【請求項8】
設定された前記文字領域の前記時間要因値が所定の閾値より大きい場合、当該文字領域から前記時間要因値を大きくする前記画素塊を特定して分離し、分離された文字領域ごとに前記優先度及び前記時間要因値を設定することを特徴とする請求項1~6の何れか1項に記載の画像処理装置。
【請求項9】
前記時間要因値設定手段は、
文字認識処理のアルゴリズム及び対象言語の少なくとも1つに応じて、設定する前記時間要因値を異ならせることを特徴とする請求項1~8の何れか1項に記載の画像処理装置。
【請求項10】
設定された前記優先度及び前記時間要因値に基づいて、方向判定に用いる実行画像を生成する画像生成手段と、
生成された前記実行画像を用いて画像の方向を判定する方向判定手段とを有し、
前記方向判定手段による判定結果に基づいて、画像を回転させ文字認識処理を実行させることを特徴とする請求項1~9の何れか1項に記載の画像処理装置。
【請求項11】
設定された前記優先度及び前記時間要因値に基づいて、方向判定に係る文字認識処理を実行する前記文字領域を設定する実行領域設定手段を有し、
前記画像生成手段は、前記実行領域設定手段により設定された前記文字領域で構成される前記実行画像を生成することを特徴とする請求項10に記載の画像処理装置。
【請求項12】
画像中の文字領域を検出する検出手段と、
前記文字領域ごとに
、当該文字領域内の画素塊を大きさに基づいて分類し、当該分類された大きさのそれぞれに属する画素塊の数に基づいて、文字認識処理に係る優先度を設定する優先度設定手段と、
前記文字領域ごとに、当該文字領域内の画素塊の大きさに係る情報に基づいて、文字認識処理の処理時間に係る時間要因値を設定する時間要因値設定手段と、
設定された前記優先度及び前記時間要因値に基づいて、方向判定に用いる実行画像を生成する画像生成手段と、
生成された前記実行画像を用いて画像の方向を判定する方向判定手段とを有することを特徴とする画像処理装置。
【請求項13】
設定された前記優先度及び前記時間要因値に基づいて、文字認識処理を実行する前記文字領域を設定する実行領域設定手段を有し、
前記画像生成手段は、前記実行領域設定手段により設定された前記文字領域で構成される前記実行画像を生成することを特徴とする請求項12に記載の画像処理装置。
【請求項14】
画像処理装置による画像処理方法であって、
画像中の文字領域を検出する検出工程と、
前記文字領域ごとに
、当該文字領域内の画素塊を大きさに基づいて分類し、当該分類された大きさのそれぞれに属する画素塊の数に基づいて、文字認識処理に係る優先度を設定する優先度設定工程と、
前記文字領域ごとに、当該文字領域内の画素塊の大きさに係る情報に基づいて、文字認識処理の処理時間に係る時間要因値を設定する時間要因値設定工程と、
設定された前記優先度及び前記時間要因値に基づいて、文字認識処理を実行する前記文字領域及び実行順を決定する実行順設定工程とを有することを特徴とする画像処理方法。
【請求項15】
画像処理装置による画像処理方法であって、
画像中の文字領域を検出する検出工程と、
前記文字領域ごとに
、当該文字領域内の画素塊を大きさに基づいて分類し、当該分類された大きさのそれぞれに属する画素塊の数に基づいて、文字認識処理に係る優先度を設定する優先度設定工程と、
前記文字領域ごとに、当該文字領域内の画素塊の大きさに係る情報に基づいて、文字認識処理の処理時間に係る時間要因値を設定する時間要因値設定工程と、
設定された前記優先度及び前記時間要因値に基づいて、方向判定に用いる実行画像を生成する画像生成工程と、
生成された前記実行画像を用いて画像の方向を判定する方向判定工程とを有することを特徴とする画像処理方法。
【請求項16】
画像処理装置のコンピュータに、
画像中の文字領域を検出する検出ステップと、
前記文字領域ごとに
、当該文字領域内の画素塊を大きさに基づいて分類し、当該分類された大きさのそれぞれに属する画素塊の数に基づいて、文字認識処理に係る優先度を設定する優先度設定ステップと、
前記文字領域ごとに、当該文字領域内の画素塊の大きさに係る情報に基づいて、文字認識処理の処理時間に係る時間要因値を設定する時間要因値設定ステップと、
設定された前記優先度及び前記時間要因値に基づいて、文字認識処理を実行する前記文字領域及び実行順を決定する実行順設定ステップとを実行させるためのプログラム。
【請求項17】
画像処理装置のコンピュータに、
画像中の文字領域を検出する検出ステップと、
前記文字領域ごとに
、当該文字領域内の画素塊を大きさに基づいて分類し、当該分類された大きさのそれぞれに属する画素塊の数に基づいて、文字認識処理に係る優先度を設定する優先度設定ステップと、
前記文字領域ごとに、当該文字領域内の画素塊の大きさに係る情報に基づいて、文字認識処理の処理時間に係る時間要因値を設定する時間要因値設定ステップと、
設定された前記優先度及び前記時間要因値に基づいて、方向判定に用いる実行画像を生成する画像生成ステップと、
生成された前記実行画像を用いて画像の方向を判定する方向判定ステップとを実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、画像処理装置、画像処理方法、及びプログラムに関する。
【背景技術】
【0002】
文書画像から文字情報を文字認識した結果を画像のインデキシングに用いるシステムがある。インデキシングの方法には、例えば文書画像のタイトルをその画像のファイル名にするなどがある。また、文書画像に対して、画像中で名前や金額等が記載されている領域を特定し、文字認識を行うことで情報を抽出するシステムもある。これらシステムにおいて、ユーザの要求によって文書画像から抽出したい文字情報が存在する位置は異なり、必ずしも入力する文書画像の文字領域をすべて文字認識する必要はない。
【0003】
ここで、ユーザへの応答性や処理装置のリソースを加味し、所定時間内に文書画像中の必要な箇所だけを文字認識したい、という要求がある。特許文献1には、文書画像内のテキストブロックごとに面積から文字認識の制限時間を設定しておき、予備的な文字認識を行って得た文字数や文字サイズを基に実行順番を制御する技術が提案されている。また、特許文献1には、テキストブロックの文字認識処理が先に設定した制限時間に達した場合、次のテキストブロックの文字認識処理へ遷移することが記載されている。特許文献2には、文書画像の領域毎の文字サイズや文字の色等の属性を解析し、所定の色であって大きい文字の領域から文字認識を実行し、所定の文字数に達したら文字認識処理を終了する技術が提案されている。
【先行技術文献】
【特許文献】
【0004】
【文献】特開2013-161268号公報
【文献】特開2012-178007号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
特許文献1及び特許文献2では、文書画像における領域の位置や文字サイズ、文字色に基づいて、文字認識の実行順や処理時間を設定している。しかし、低品位の文字画像、具体的にはかすれや周囲の画素と接触している文字を文字認識するには、理想的な文字画像と比較して多くの処理が必要になる。すなわち、文字認識処理においては、文字領域が持つ座標位置、大きさ、色では判定不能な、処理時間が増大する要因があり、これらの不意な処理時間の増加を防止しつつ、必要な領域の文字認識処理を実行しなければならない。さらに、特許文献1では、システム負荷による実際の文字認識処理に要する時間の変化により、文字認識の結果が変動するおそれがある。
本発明は、文書画像中の必要な部分にのみ文字認識を実行し、適切な情報を高速に特定できるようにすることを目的とする。
【課題を解決するための手段】
【0006】
本発明に係る画像処理装置は、画像中の文字領域を検出する検出手段と、前記文字領域ごとに、当該文字領域内の画素塊を大きさに基づいて分類し、当該分類された大きさのそれぞれに属する画素塊の数に基づいて、文字認識処理に係る優先度を設定する優先度設定手段と、前記文字領域ごとに、当該文字領域内の画素塊の大きさに係る情報に基づいて、文字認識処理の処理時間に係る時間要因値を設定する時間要因値設定手段と、設定された前記優先度及び前記時間要因値に基づいて、文字認識処理を実行する前記文字領域及び実行順を決定する実行順設定手段とを有することを特徴とする。
【発明の効果】
【0007】
本発明によれば、文書画像中の必要な部分にのみ文字認識を実行し、適切な情報を高速に特定することが可能となる。
【図面の簡単な説明】
【0008】
【
図1】第1の実施形態に係る画像処理システムの構成例を示す図である。
【
図2】第1の実施形態に係る文字認識処理の例を示すフローチャートである。
【
図3A】スキャンした文書画像の一例を示す図である。
【
図3B】文字領域の検出結果の一例を示す図である。
【
図4】第1の実施形態に係る認識優先度設定処理の例を示すフローチャートである。
【
図5】第1の実施形態に係る時間要因値設定処理の例を示すフローチャートである。
【
図6】第1の実施形態に係る文字認識実行順の中間結果の一例を示す図である。
【
図8】第2の実施形態に係る文字認識処理及び時間要因値設定処理の例を示すフローチャートである。
【
図9】第2の実施形態に係る文字領域の一例を示す図である。
【
図10】第2の実施形態に係る文字領域の他の例を示す図である。
【
図11】第3の実施形態に係る文字認識処理及び方向判定処理の例を示すフローチャートである。
【
図12】第3の実施形態に係る文字認識の実行対象範囲を説明する図である。
【
図13】第3の実施形態に係る方向判定用の実行画像の例を示す図である。
【発明を実施するための形態】
【0009】
以下、本発明の実施形態を図面に基づいて説明する。
【0010】
(第1の実施形態)
本発明の第1の実施形態について説明する。
図1は、第1の実施形態に係る画像処理システムの構成例を示すブロック図である。本実施形態における画像処理システムは、読み取り装置100及び画像処理装置110を有する。
【0011】
読み取り装置100は、スキャナ部101及び通信部102を有する。スキャナ部101は、文書の読み取りを行い、スキャンした文書画像を生成する。通信部102は、ネットワークを介して外部装置と通信を行う。通信部102は、例えばスキャナ部101により生成された文書画像を画像処理装置110に送信する。
【0012】
画像処理装置110は、システム制御部111、ROM112、RAM113、ハードディスクドライブ(HDD)114、表示部115、入力部116、及び通信部117を有する。システム制御部111は、ROM(Read Only Memory)112に記憶された制御プログラムを読み出して各種処理を実行する。RAM(Random Access Memory)113は、システム制御部111の主メモリ、ワークエリア等の一時記憶領域として用いられる。HDD114は、各種データや各種プログラム等を記憶する。なお、後述する画像処理装置110の機能や処理は、システム制御部111がROM112又はHDD114に格納されているプログラムを読み出し、このプログラムを実行することにより実現されるものである。システム制御部111がROM112等からプログラムを読み出して実行することにより、例えば検出手段、優先度設定手段、時間要因値設定手段、実行順設定手段等の機能が実現される。
【0013】
表示部115は、各種情報を表示する。入力部116は、キーボードやマウスを有し、ユーザによる各種操作を受け付ける。通信部117は、ネットワークを介して外部装置との通信処理を行う。通信部117は、例えば読み取り装置100から文書画像を受信する。なお、表示部115と入力部116は、タッチパネルのように一体に設けられてもよい。また、表示部115は、プロジェクタによる投影を行うものであってもよく、入力部116は、投影された画像に対する指先の位置をカメラ等で認識するものであってもよい。
【0014】
本実施形態においては、読み取り装置100のスキャナ部101が帳票等の紙文書を読み取り、スキャンした文書画像を生成する。スキャンした文書画像は、読み取り装置100の通信部102により画像処理装置110に送信される。画像処理装置110は、通信部117が読み取り装置100からスキャンした文書画像を受信し、受信した文書画像をHDD114等の記憶装置に記憶する。なお、表示部115と入力部116の一部機能が読み取り装置100にあってもよい。
【0015】
図2は、本実施形態における画像処理装置110での文字認識処理の例を示すフローチャートである。
図2に示すフローチャートの処理は、画像処理装置110において、ROM112に格納されたプログラムに従ってシステム制御部111が実行することによって実現される。
【0016】
S200において、読み取り装置100が、ユーザによる指示に従って紙文書をスキャナ部101によりスキャンし、スキャンした文書画像を通信部102により画像処理装置110に送信する。送信されたスキャンした文書画像は、画像処理装置110の通信部117で受信され、システム制御部111によりHDD114等の記憶部に格納される。
図3Aに、このS200での処理により得られた画像(スキャンした文書画像)の一例を示す。
【0017】
S201において、システム制御部111は、スキャンした文書画像に対して文字領域検出処理を行い、検出結果をRAM113に格納する。文字領域検出処理は、スキャンした文書画像中から文字認識の対象となる文字を含む領域(文字領域)を検出する処理である。文字領域の検出方法は、特に限定されるものではなく、公知の技術を用いることができる。文字領域の検出技術の例としては、米国特許第5680478号公報に記載の処理などがある。上例では文書画像中の画素塊、白画素塊の集合を抽出し、その形状、大きさ、集合状態等から、文字、絵や図、表、枠、線といった特徴的な領域を抽出している。
図3Bは、このS201での処理により得られた文字領域の検出結果の一例を示す図である。
図3Bに示す例では、スキャンした文書画像300において、文字領域301~325が検出されている。
【0018】
S202において、システム制御部111は、スキャンした文書画像に含まれる文字領域のそれぞれに対し認識優先度設定処理を行い、結果をRAM113に格納する。ここで、認識優先度とは、文字領域が文字認識の目的に適しているかをランク付けしたパラメータ値である。以下に説明する例では、認識優先度は1が最も高く、5が最も低いものとする。ノイズ又は小ポイント文字と推測される画素塊が多い文字領域は、文字認識する優先度が低い。一方、
図3A及び
図3Bに示したような伝票画像の場合には、金額や日付等の通常サイズ以上の画素塊で構成される文字領域は優先的に文字認識処理すべきである。そこで、本実施形態では、S201での文字領域検出処理により得られた文字領域内の画素塊の大きさの分布傾向に基づいて、文字認識処理を行う優先度を示す認識優先度を決定する。
【0019】
図4は、
図3に示したS202において実行される、本実施形態における認識優先度設定処理の例を示すフローチャートである。
S400において、システム制御部111は、RAM113を参照して、処理対象とする文字領域を取得する。
【0020】
次に、S401において、システム制御部111は、S400において取得した文字領域から抽出した画素塊を、サイズ毎に分類及び集計し、結果をRAM113に格納する。ここでは、画素塊の高さから、ノイズサイズ、小ポイントサイズ、及び主要文字サイズの3つのパターンに画素塊を分類する。画素塊を分類する際の閾値は、例えば伝票画像から金額や日付を抽出するケースであれば想定される文字のポイント数をピクセル数に換算した以下の値を用い、以下の条件式(1)のように分類する。
ノイズサイズ Hi<Tq_1
小ポイントサイズ Tq_1≦Hi<Tq_2 …(1)
主要文字サイズ Tq_2≦Hi
条件式(1)において、Hiは画素塊の高さであり、Tq_1は文字サイズ3pt(ポイント)相当のピクセル数であり、Tq_2は文字サイズ6pt相当のピクセル数である。
【0021】
そして、システム制御部111は、条件式(1)に従って分類した文字領域中の画素塊の数を分類ごとに以下の変数に格納し、結果をRAM113に格納する。ノイズサイズの画素塊数を変数Cnt_noiseに格納し、小ポイントサイズの画素塊数を変数Cnt_smallに格納し、主要文字サイズの画素塊数を変数Cnt_normalに格納する。
【0022】
次に、S402において、システム制御部111は、RAM113を参照し、処理対象の文字領域に主要文字サイズと分類された画素塊が存在するか否かを判定する。つまり、システム制御部111は、Cnt_noise>0であるか否かを判定する。主要文字サイズと分類された画素塊が存在すると判定した場合(Yes)、システム制御部111はS403へ遷移する。一方、主要文字サイズと分類された画素塊が存在しないと判定した場合(No)、システム制御部111はS405へ遷移する。
【0023】
S403において、システム制御部111は、RAM113を参照し、処理対象の文字領域において、主要文字サイズと分類された画素塊の数が、ノイズサイズ、小ポイントサイズと分類された画素塊の数の合計より大きいか否かを判定する。つまり、システム制御部111は、Cnt_normal>(Cnt_small+Cnt_noise)であるか否かを判定する。
【0024】
主要文字サイズと分類された画素塊の数が、ノイズサイズ、小ポイントサイズと分類された画素塊の数の合計より大きいと判定した場合(S403のYes)、システム制御部111はS406へ遷移する。S406において、システム制御部111は、処理対象の文字領域の認識優先度を1に設定してRAM113に格納し、認識優先度設定処理を終了する。
【0025】
一方、主要文字サイズと分類された画素塊の数が、ノイズサイズ、小ポイントサイズと分類された画素塊の数の合計より大きくないと判定した場合(S403のNo)、システム制御部111はS404へ遷移する。S404において、システム制御部111は、RAM113を参照し、処理対象の文字領域において、ノイズサイズ、小ポイントサイズと分類された画素塊の数の合計が所定の閾値Thより大きいか否かを判定する。つまり、システム制御部111は、(Cnt_small+Cnt_noise)>Thであるか否かを判定する。
【0026】
ノイズサイズ、小ポイントサイズと分類された画素塊の数の合計が所定の閾値Thより大きいと判定した場合(S404のYes)、システム制御部111はS407へ遷移する。S407において、システム制御部111は、処理対象の文字領域の認識優先度を2に設定してRAM113に格納し、認識優先度設定処理を終了する。
【0027】
一方、ノイズサイズ、小ポイントサイズと分類された画素塊の数の合計が所定の閾値Thより大きくないと判定した場合(S404のNo)、システム制御部111はS408へ遷移する。S408において、システム制御部111は、処理対象の文字領域の認識優先度を3に設定してRAM113に格納し、認識優先度設定処理を終了する。
【0028】
S405において、システム制御部111は、RAM113を参照し、処理対象の文字領域において、小ポイントサイズと分類された画素塊の数が、ノイズサイズと分類された画素塊の数より大きいか否かを判定する。つまり、システム制御部111は、Cnt_small>Cnt_noiseであるか否かを判定する。
【0029】
小ポイントサイズと分類された画素塊の数が、ノイズサイズと分類された画素塊の数より大きいと判定した場合(S405のYes)、システム制御部111はS409へ遷移する。S409において、システム制御部111は、処理対象の文字領域の認識優先度を4に設定してRAM113に格納し、認識優先度設定処理を終了する。
【0030】
一方、小ポイントサイズと分類された画素塊の数が、ノイズサイズと分類された画素塊の数より大きくない判定した場合(S405のNo)、システム制御部111はS410へ遷移する。S410において、システム制御部111は、処理対象の文字領域の認識優先度を5に設定してRAM113に格納し、認識優先度設定処理を終了する。
【0031】
以上が、S202での認識優先度設定処理である。認識優先度が小さいと、通常サイズの画素塊が多く小ポイント文字やノイズが少ない文字領域、すなわち文字認識の目的に適した領域となり、認識優先度が高くなる設定になる。なお、本実施形態では、画素塊の高さのみを用いて認識優先度を決定するようにしているが、文字領域の座標情報等の他の特徴量を用いて認識優先度を決定するようにしてもよい。例えば、文字領域が画像平面において上方の位置に存在すれば、文書のタイトルである可能性が高いので、認識優先度を高くする処理を追加してもよい。
【0032】
図2に戻り、次にS203において、システム制御部111は、スキャンした文書画像に含まれる文字領域のそれぞれに対し時間要因値設定処理を行い、結果をRAM113に格納する。ここで、時間要因値とは、処理対象となる文字領域に文字認識を実行した際の処理時間の長さを推定した値であり、値が大きいほど処理時間を要することを示す。時間要因値は、基本的には文字領域内に含まれる文字数に依存する。ここでは、文字認識を実行せずに画像から取得できる画素塊のみの情報から、仮想文字数を推定し、推定した仮想文字数から前述の時間要因値を計算する。
【0033】
また、文字につぶれやかすれ、下線との接触などがある、いわゆる難読状態の文字領域を正確に文字認識するには、より多くの処理が必要になり、処理時間の増加が見込まれる。さらに、ピリオドと中点、ハイフンとマイナスなどの記号は類似した形状を持つケースが多い。また、点線や長い横棒は文字認識の内部で行う1文字に分割する処理の試行回数が増える。このため、最終的な文字認識結果の出力までの処理時間が多くなるケースが多い。よって、システム制御部111は、画素塊の配置や形状から難読状態か否かを分類し、分類によってペナルティとなる係数を設定する。今後は、難読状態であるか否かの分類を難読レベルと称し、説明を続ける。
【0034】
すなわち、本実施形態では、時間要因値Tfの計算式を以下と定義する。
Tf=Σ(Ci×Ni) …(2)
式(2)において、Niは難読レベルiの仮想文字数であり、Ciは難読レベルiの係数である。また、難読レベル係数Ciは、以下と定義する。
Ci=αi×βi …(3)
式(3)において、αiは難読レベルiのサイズ要因係数であり、βiは難読レベルiの接触要因係数である。
【0035】
本実施形態では、難読レベルを、画素塊から得られる情報のみを用いてノイズ、小ポイント単独、主要サイズ単独、小ポイント接触、及び主要サイズ接触の5つのパターンに分け、仮想文字数及び難読レベル係数を設定して時間要因値を計算する。
図5(A)は、前述した式(2)を用いて実行される時間要因値設定処理の例を示すフローチャートである。
【0036】
S500において、システム制御部111は、RAM113を参照し、処理対象とする文字領域を取得する。システム制御部111は、以下に説明するS501~513の処理を処理対象の文字領域に含まれる画素塊すべてに対して実行する。
【0037】
次に、S501において、システム制御部111は、文字領域から1つの画素塊の高さ及び幅を取得し、RAM113に格納する。画素塊の高さについては、先にS401にて計算したので、その情報をRAM113から取得しても構わない。
【0038】
次に、S502において、システム制御部111は、RAM113を参照し、画素塊の高さ情報に基づいて当該画素塊のサイズ要因係数を決定する。システム制御部111は、画素塊をノイズと分類した場合にはS503に遷移し、画素塊を小ポイント文字と分類した場合にはS504に遷移し、画素塊を主要サイズ文字と分類した場合にはS505に遷移する。
【0039】
S503において、システム制御部111は、ノイズと分類した当該画素塊のサイズ要因係数をα0とし、結果をRAM113に格納する。そして、S509へ遷移する。
S504において、システム制御部111は、小ポイント文字と分類した当該画素塊のサイズ要因係数をα1とし、結果をRAM113に格納する。そして、S506へ遷移する。
S505において、システム制御部111は、主要サイズ文字と分類した当該画素塊のサイズ要因係数をα2とし、結果をRAM113に格納する。そして、S506へ遷移する。
【0040】
S506において、システム制御部111は、RAM113を参照し、当該画素塊の幅情報に基づいて当該画素塊の接触要因係数を決定し、結果をRAM113に格納する。システム制御部111は、画素塊を単独文字と分類した場合にはS507に遷移し、画素塊を接触文字と分類した場合にはS508に遷移する。
S507において、システム制御部111は、単独文字と分類した当該画素塊の接触要因係数をβ1とし、結果をRAM113に格納する。そして、S510へ遷移する。
S508において、システム制御部111は、接触文字と分類した当該画素塊の接触要因係数をβ2とし、結果をRAM113に格納する。そして、S511へ遷移する。
【0041】
S509において、システム制御部111は、難読レベルがノイズとなった当該画素塊についての仮想文字数Nを1とし、結果をRAM113に格納してS512へ遷移する。
S510において、システム制御部111は、難読レベルが単独文字となった当該画素についての仮想文字数Nを1とし、結果をRAM113に格納してS512へ遷移する。
S511において、システム制御部111は、難読レベルが接触文字となった当該画素塊についての仮想文字数Nをnとし、結果をRAM113に格納してS512へ遷移する。nの設定については、ここでは、あくまで文字数を推定するだけであるので、規定の閾値で画素塊の幅を割った値を用いる。既定の閾値とは、例えば当該画素塊の高さのピクセル数を用いても良いし、固定値を設定しても良い。つまり、少なくとも仮想文字数Nは、2以上の値が設定される。
【0042】
S512において、システム制御部111は、前述した式(3)に従って難読レベルの係数Ciを算出する。すなわち、システム制御部111は、当該画素塊について難読レベルの係数Ciを先に計算した係数α、βを乗算した値に設定し、結果をRAM113に格納してS513へ遷移する。
【0043】
S513において、システム制御部111は、RAM113から当該画素塊の難読レベル係数Cと文字数Nとを取得して、乗算した値を処理対象としている文字領域の時間要因値に加算する。S513での処理は、前述式(2)に相当する。すなわち、システム制御部111は、文字領域にあるすべての画素塊について、難読レベル係数Cと仮想文字数Nとの計算を行い、その合計を当該文字領域の時間要因値Tfと設定してRAM113へ格納する。
【0044】
図5(B)は、前述した認識優先度設定処理で設定した難読レベルごとの係数C及び仮想文字数Nの一覧を示す。
本実施形態では、画素塊の高さ情報に基づいて、文字認識処理を実行する必要のない領域であるノイズと、文字がつぶれて解析が困難な小ポイント文字と、主要サイズ文字とを簡易的に分類した。なお、各処理で設定する係数は、主要サイズ文字及び単独文字であれば係数の値は小さく、ノイズ、小ポイント文字、接触文字であれば係数の値を高くする。文字認識に処理時間を要するか否かの判定基準の閾値は、判定処理の計算コストを鑑み認識優先度設定処理と同等としたが、ターゲットとなる画像群や難読状態の分類の違いによって判定の閾値を変えてもよい。
【0045】
また、実際に文字認識を実行する文字認識のアルゴリズムの特性や対象言語により、認識対象の下限の小ポイント文字は異なるため、実際に利用する文字認識処理工程に合わせた判定閾値を設定してもよい。同じく、文字認識のアルゴリズムによって不得手な分類の文字も異なる。よって、アルゴリズム特性に合わせた難読レベルを別途用意しても構わない。例えば、イタリック文字に関して処理時間を有する文字認識アルゴリズムを有している場合は、画素塊の形状の傾向から斜体文字と分類するケースも設定して構わない。さらに、係数は文字認識アルゴリズムの特性や認識対象言語によって異ならせてもよい。例えば、日本語や中国語などの漢字が使われる東アジア系言語の文字認識は、欧米系言語の文字認識よりも処理コストが高い。よって、文字領域が東アジア系言語である場合は係数を大きく設定する。
以上がS203での時間要因値設定処理である。
【0046】
図2に戻り、次にS204において、システム制御部111は、取得した文書画像中の文字領域に、S202において設定した認識優先度及びS203において設定した時間要因値に基づいて文字認識の実行順を設定し、結果をRAM113に格納する。そして、システム制御部111は、S205へ遷移する。
【0047】
図6(A)は、スキャンした文書画像300において検出された文字領域301~325に対し、
図2に示したS202及びS203の処理を実行し、認識優先度及び時間要因値を計算した一例(中間結果600)である。文字認識の実行順は、まず、認識優先度が高い順(数値が小さい順)に文字領域をソートし、同一順位となった文字領域については、時間要因値が低い順(数値が小さい順)にソートする。これにより、文書画像のうち、文字認識の目的に適していて、かつ、文字認識の処理実行に時間がかからない順になる。
図6(B)は、前述のように中間結果600をソートした一例(中間結果601)である。
【0048】
次に、S205において、システム制御部111は、S204において設定した文字認識の実行順の上位から時間要因値の累計を計算し、時間要因値の累計に基づいて文字認識を実行する文字領域(文字認識の実行領域)を設定する。システム制御部111は、あらかじめ設定した閾値より時間要因値の総和が下回る範囲で文字認識の実行領域を設定した結果をRAM113に格納し、S206へ遷移する。ここで、時間要因値の総和に係る閾値は、システムのCPU速度と要求応答時間からあらかじめ定めた固定値を用いることができる。
図6(C)は、中間結果601から時間要因値の累計を計算した一例(中間結果602)である。例えば、あらかじめ設定した時間要因値の累計の上限値となる閾値を250とした場合、実際に文字認識を行う文字領域は、リストで表すと範囲603の文字領域、文書画像で表すと
図7の604に示される文字領域となる。
【0049】
S206において、システム制御部111は、S204及びS205での処理により設定した文字領域の順番及び範囲に従って文字認識を実行し、結果をRAM113やHDD114などの記憶部に格納する。
【0050】
以上説明したように、文書画像中の文字領域のうち、文字認識の目的に適した、かつ、処理時間を要しない順に文字領域を行うことができる。また、処理対象の領域の制限に文字認識処理の実時間を用いないので、システム負荷の影響により文字認識の結果が変わることがない。これにより、応答性を保ちつつ、ユーザが必要な文字領域のテキスト情報の抽出が可能になり、文書画像中の必要な文字領域から適切な情報を高速に特定することが可能となる。
【0051】
(第2の実施形態)
次に、本発明の第2の実施形態について説明する。第1の実施形態では、最初に抽出した文字領域の単位で文字認識の実行順を設定した。一方、抽出した同一の文字領域に文字認識したい文字と、時間要因値が高いノイズや記号等とが混じって存在している場合がある。そこで、文書画像中に、認識優先度は高いが時間要因値も大きい文字領域があった場合、特に時間要因値を押し上げている要因となる画素塊を特定し、その画素塊を削除したうえで時間要因値を再度計算し、文字認識を実行してもよい。構成や制御の流れなど第1の実施形態と共通する内容については説明を省略し、第1の実施形態と相違する時間要因値の再設定処理(
図8(A)に示すS800)について説明する。時間要因値再設定処理は、S203において時間要因値設定処理を行った後に実行される。
【0052】
図8(B)は、本実施形態における時間要因値再設定処理の例を示すフローチャートである。
S801において、システム制御部111は、RAM113を参照し、時間要因値の再計算処理をしていない文字領域、及び文字領域内の時間要因値の累計値を取得する。
S802において、システム制御部111は、取得した時間要因値の累計値が所定の閾値より大きいか否かを判定する。取得した時間要因値の累計値が所定の閾値より大きいと判定した場合(S802のYes)、システム制御部111はS803に遷移する。一方、取得した時間要因値の累計値が所定の閾値より大きくないと判定した場合(S802のNo)、システム制御部111はS801へ遷移する。
【0053】
S803において、システム制御部111は、RAM113を参照し、当該文字領域の時間要因値を押し上げる要因となる画素塊(要因画素塊)を特定し、結果をRAM113に格納する。具体的には、
図5に示したフローチャートのS513の処理において時間要因値の計算に用いた係数が大きいものが割り当たっている画素塊を特定する。本実施形態では、文字領域の画素塊のうち、ノイズの係数が割り当たっている画素塊を要因画素塊とする。
【0054】
S804において、システム制御部111は、特定した要因画素塊を文字領域から除去する。例えば、
図3Bに示した文字領域325が入力された場合、
図9に示すように、本処理によって
図9(A)に示す文字領域325に含まれているノイズ係数が割り当たっている画素塊が除去され、
図9(B)に示す文字領域325_1が出力される。そして、S805において、システム制御部111は、
図2に示したS203と同様にして、要因画素塊が削除された文字領域について時間要因値設定処理を行う。
【0055】
以上により、文字領域中に含まれる時間要因値が大きい画素塊を除外して、文字認識の実行順を上位に変更でき、同一文字領域内でもユーザが有用と予想される文字の文字認識の実行が可能になる。
【0056】
前述した例では、文字領域内の時間要因値の高い画素塊を除去して時間要因値の再計算を行っていた。時間要因値の高い画素塊を、分離した新たな文字領域として設定し、新たな認識優先度及び時間要因値を算出し、文字認識実行順を再度設定するようにしてもよい。例えば、
図10(A)に示す文字領域325を、
図10(B)に示すように文字領域325_2、325_3の2つの文字領域に分離し、認識優先度及び時間要因値を算出し、文字認識実行順を再度設定するようにしてもよい。これにより、例えば、応答性を考慮したシーンでは上位領域を認識し、そのほかの領域は後追いで文字認識を行え、最終的には文字画像中のすべての文字領域に対して文字認識の実行が可能になる。
【0057】
なお、前述した各実施形態では、スキャンした文書画像中のすべての文字領域に対し認識優先度を算出し、すべての文字領域に対して時間要因値を算出している。それに対して、すべての文字領域の認識優先度を算出した時点で一旦並び替えを行う。そして、認識優先度が高い順に文字領域の処理順に沿って時間要因値を算出し、時間要因値が既定の値を超えたところで処理を終了し、文字認識の実行対象領域と実行順を確定するようにしてもよい。このようにした場合には、さらに認識優先度が低いとした文字領域画像に対する時間要因値設定処理を省略できるので、応答性のさらなる向上が可能になる。
【0058】
(第3の実施形態)
次に、本発明の第3の実施形態について説明する。前述した第1及び第2の実施形態では、処理対象となる文字領域とその実行順を定義し、決定した実行順に従って文字領域ごとに逐次文字認識を実行している。一方、スキャナ部101から取得した文書画像は90度単位で回転していることがある。このため、文字認識処理を実行する前に、文書画像中の文字が正立する方向を判定する方向判定処理を実行する必要がある。方向判定は、一般的には内部で90度ずつ異なる四方向に回転した画像のそれぞれに対して文字認識を実行し、最も文字認識結果の信頼度が高い方向を文書の正立方向と判定している。
【0059】
よって、方向判定に対しても、認識優先度と時間要因値に基づいて処理する文字領域を設定してもよい。構成や制御の流れなど第1の実施形態と共通する内容については説明を省略する。第3の実施形態では、システム制御部111がROM112等からプログラムを読み出して実行することにより、例えば検出手段、優先度設定手段、時間要因値設定手段、実行領域設定手段、画像生成手段、方向判定手段等の機能が実現される。以下では、第3の実施形態において、第1の実施形態と相違する方向判定処理及び画像回転処理(
図11(A)に示すS1101、S1102)について説明する。
【0060】
図11(A)は、第3の実施形態における画像処理装置110での文字認識処理の例を示すフローチャートである。S1101の方向判定処理は、S200においてスキャンした文書画像を取得した後に実行される。
【0061】
S1101において、システム制御部111は、スキャンした文書画像に対して文字が正立する方向を判定し、正立する文字方向の角度をRAM113に格納する。ここで文字方向とは、正立した文字の方向が0度であるとした時の文書中における文字の方向と定義し、S1101では文書中の文字を正立する文字方向を90度単位(0度、90度、180度、270度)で出力する。
【0062】
S1102において、システム制御部111は、RAM113を参照して、正立する文字方向の角度を取得し、取得した文字方向の角度に基づいて、スキャンした文書画像を回転させる。これにより、文字が正立した文書画像が得られる。その後、システム制御部111は、S201(文字領域検出処理)に遷移する。
【0063】
図11(B)は、第3の実施形態における方向判定処理の例を示すフローチャートである
図11(B)に示すフローチャートでも、認識優先度及び時間要因値の設定に関する処理について第1の実施形態と共通するものは説明を省略する。
【0064】
S205では、システム制御部111は、あらかじめ設定した閾値より時間要因値の累計が下回る範囲で文字認識を実行する文字領域(文字認識の実行領域)を設定し、結果をRAM113に格納する。文書画像についての方向判定は、実際の文字認識の前処理であるため、更なる高速化が求められる。その一方、方向判定においては、判定対象とする文字はある程度の数が必要ではあるが、正立する文字方向が分かればよいため、実際の文字認識の実行と比べて少ない文字領域で処理しても問題ない。よって、あらかじめ設定した時間要因値の累計の上限値となる閾値は、文字認識の実行時の閾値より小さくしてもよい。本実施形態では、一例として閾値は50とする。この場合、実際に方向判定に用いる文字領域は、リストで表すと
図12に示した範囲1201の文字領域となる。
【0065】
S1103において、システム制御部111は、S205において設定した文字領域の範囲のみで構成される方向判定処理に用いる実行画像を生成し、結果をRAM113やHDD114などの記憶部に格納する。
図13に、本実施形態における方向判定用の実行画像の一例を示す。
図13に示す実行画像1301は、
図12に示した範囲1201の文字領域に基づいて生成された実行画像である。
【0066】
S1104において、システム制御部111は、RAM113やHDD114などの記憶部を参照して、S1103において生成した方向判定用の実行画像に基づいて文書画像の正立方向を判定する。この処理は公知の技術を用いればよく、例えば特許第3727971号公報などに記載の処理を適用できる。システム制御部111は、判定結果として得られる、正立する文字方向の角度をRAM113に格納する。
【0067】
以上により、実際の文字認識の前処理である方向判定にも、認識優先度と時間要因値を用いて選択した文字領域のみで構成される画像を生成し、方向判定を行うことで更なる処理速度の向上が可能になる。
【0068】
(本発明の他の実施形態)
本発明は、前述の実施形態の1以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける1つ以上のプロセッサがプログラムを読み出し実行する処理でも実現可能である。また、1以上の機能を実現する回路(例えば、ASIC)によっても実現可能である。
【0069】
なお、前記実施形態は、何れも本発明を実施するにあたっての具体化のほんの一例を示したものに過ぎず、これらによって本発明の技術的範囲が限定的に解釈されてはならないものである。すなわち、本発明はその技術思想、又はその主要な特徴から逸脱することなく、様々な形で実施することができる。
【符号の説明】
【0070】
100:読み取り装置 101:スキャナ部 102:通信部 110:画像処理装置 111:システム制御部 112:ROM 113:RAM 114:HDD 115:表示部 116:入力部 117:通信部