(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-08-23
(45)【発行日】2024-09-02
(54)【発明の名称】情報処理装置、情報処理方法及びプログラム
(51)【国際特許分類】
G06V 30/14 20220101AFI20240826BHJP
H04N 1/40 20060101ALI20240826BHJP
【FI】
G06V30/14 340Z
G06V30/14 340K
H04N1/40 062
(21)【出願番号】P 2020122989
(22)【出願日】2020-07-17
【審査請求日】2023-07-05
(73)【特許権者】
【識別番号】000001007
【氏名又は名称】キヤノン株式会社
(74)【代理人】
【識別番号】110001243
【氏名又は名称】弁理士法人谷・阿部特許事務所
(72)【発明者】
【氏名】五十嵐 洋介
(72)【発明者】
【氏名】山中 理
【審査官】山田 辰美
(56)【参考文献】
【文献】特開平05-143774(JP,A)
【文献】特開平07-160812(JP,A)
【文献】特開2009-141597(JP,A)
【文献】特開2010-273119(JP,A)
【文献】特開2013-210817(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06V 30/14
H04N 1/40
(57)【特許請求の範囲】
【請求項1】
文書を読み取って得られた文書画像内の文字を構成する文字画素を抽出する抽出手段と、
前記文書画像において前記文字が並ぶ方向である行方向を判別する判別手段と、
を備え、
前記判別手段は、
前記文書画像に対し、膨張処理を行う膨張手段と、
前記膨張処理におけるパラメータを決定するパラメータ決定手段と、
互いに接している複数の前記文字画素を文字画素塊として取得する取得手段と、
前記文字画素塊の形状に基づき、前記行方向を決定する行方向決定手段と、
をさらに有し、
前記膨張処理は、前記文書画像内の注目画素を中心とする単位領域の中に前記文字画素の数がN個以上ある場合に当該注目画素を新たに文字画素とする処理であり、
前記パラメータは、前記膨張処理の実行回数が1回である場合における前記単位領域のサイズであり、
前記パラメータ決定手段は、前記抽出手段によって前記文書画像から抽出された前記文字画素に関する評価指標に基づいて前記パラメータを決定する、
ことを特徴とする情報処理装置。
【請求項2】
前記評価指標は、前記文書画像における前記文字画素の密度であり、
前記パラメータ決定手段は、前記密度が高いほど前記単位領域を小さくし、前記密度が低いほど前記単位領域を大きくする、
ことを特徴とする請求項
1に記載の情報処理装置。
【請求項3】
前記評価指標は、前記文書画像における前記文字画素の数であり、
前記パラメータ決定手段は、前記数が多いほど前記単位領域を小さくし、前記数が少ないほど前記単位領域を大きくする、
ことを特徴とする請求項
1に記載の情報処理装置。
【請求項4】
前記文書画像のサイズは固定サイズであることを特徴とする請求項
3に記載の情報処理装置。
【請求項5】
前記膨張処理は、前記文書画像内の注目画素が文字画素のときその周囲8つの隣接画素を新たに文字画素に置換する処理であり、
前記パラメータは、前記膨張処理の実行回数である、
ことを特徴とする請求項1に記載の情報処理装置。
【請求項6】
前記評価指標は、前記文書画像における前記文字画素の密度であり、
前記パラメータ決定手段は、前記密度が高いほど前記実行回数を少なくし、前記密度が低いほど前記実行回数を多くする、
ことを特徴とする請求項
5に記載の情報処理装置。
【請求項7】
前記評価指標は、前記文書画像における前記文字画素の数であり、
前記パラメータ決定手段は、前記数が多いほど前記実行回数を少なくし、前記数が少ないほど前記実行回数を多くする、
ことを特徴とする請求項
5に記載の情報処理装置。
【請求項8】
前記文書画像のサイズは固定サイズであることを特徴とする請求項
7に記載の情報処理装置。
【請求項9】
前記行方向決定手段は、前記取得手段にて取得された前記文字画素塊のうちその形状が縦長の文字画素塊の数と横長の文字画素塊の数との比に基づいて、前記行方向を決定することを特徴とする請求項1乃至
8のいずれか1項に記載の情報処理装置。
【請求項10】
前記行方向決定手段は、
前記縦長の文字画素塊の数の方が前記横長の文字画素塊の数よりも多い場合、前記行方向が縦方向であると決定し、
前記縦長の文字画素塊の数の方が前記横長の文字画素塊の数よりも少ない場合、前記行方向が横方向であると決定する、
ことを特徴とする請求項
9に記載の情報処理装置。
【請求項11】
前記判別手段は、前記文書が名刺である場合に、当該名刺に対応する文書画像に対して行方向の判別を行う、ことを特徴とする請求項1乃至
10のいずれか1項に記載の情報処理装置。
【請求項12】
前記判別手段は、
前記文書が名刺であって、かつ、当該名刺のタイプが縦長の場合、前記膨張手段、前記パラメータ決定手段、前記取得手段及び前記行方向
決定手段を用いて行方向を判別し、
前記文書が名刺であって、かつ、当該名刺のタイプが横長の場合、前記膨張手段、前記パラメータ決定手段、前記取得手段及び前記行方向
決定手段を用いることなく、その行方向は横方向であると判別する、
ことを特徴とする請求項
11に記載の情報処理装置。
【請求項13】
文書を読み取って得られた文書画像内の文字を構成する文字画素を抽出する抽出ステップと、
前記文書画像において前記文字が並ぶ方向である行方向を判別する判別ステップと、
を含み、
前記判別ステップには、
前記文書画像に対し、膨張処理を行う膨張ステップと、
前記膨張処理におけるパラメータ を決定するパラメータ決定ステップと、
互いに接している複数の前記文字画素を文字画素塊として取得する取得ステップと、
前記文字画素塊の形状に基づき、前記行方向を決定する行方向決定ステップと、
をさらに含
み、
前記膨張処理は、前記文書画像内の注目画素を中心とする単位領域の中に前記文字画素の数がN個以上ある場合に当該注目画素を新たに文字画素とする処理であり、
前記パラメータは、前記膨張処理の実行回数が1回である場合における前記単位領域のサイズであり、
前記パラメータ決定ステップ
では、前記抽出ステップによって前記文書画像から抽出された前記文字画素に関する評価指標に基づいて前記パラメータを決定する、
ことを特徴とする情報処理方法。
【請求項14】
コンピュータを、請求項1乃至
12のいずれか1項に記載の情報処理装置として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、文書画像に含まれる文字列の行方向を識別する技術に関する。
【背景技術】
【0002】
従来、文書をスキャンして得られた文書画像内の文字を読み取って認識する技術がある。この技術は一般にOCR(Optical Character Recognition)と呼ばれる。OCR処理には通常、文書画像をOCRに適した画像に修正する画像前処理、文書画像から文字の記載領域(文字列領域)を特定する文字列検出処理、検出された文字列領域に含まれる文字を特定する文字認識処理とで構成される。このうち文字列検出処理に関しては、予め対象とする文字列の行方向、つまり縦書きか横書きかを限定することで検出精度が向上することが知られている。この点、特許文献1には、二値画像を余白領域と非余白領域とに分割した後、非余白領域に対して黒画素の膨張処理を行って行矩形を抽出し、該行矩形の縦横比とその個数に基づいて、画像内の文字列の行方向を推定する技術が開示されている。
【先行技術文献】
【特許文献】
【0003】
【発明の概要】
【発明が解決しようとする課題】
【0004】
特許文献1の技術では、文字列毎に黒画素が一塊になることを目的に、固定パラメータで膨張処理が行われる。しかしながら、文書によって文字同士の間隔には大きな差がある。すなわち、小さな文字が狭い間隔で並ぶ文章から成る文書画像もあれば、大きな文字が広い間隔で配置された文書画像も存在する。ここで、どのような文書画像に対しても常に共通のパラメータで膨張処理を行うと適切な行矩形が得られないことがあり、そうなると正確な行方向が推定できないことになる。
【0005】
本開示の技術は、上記の問題に鑑みてなされたものであり、文書画像における行方向を高精度で判別することを目的とする。
【課題を解決するための手段】
【0006】
本開示に係る情報処理装置は、文書を読み取って得られた文書画像内の文字を構成する文字画素を抽出する抽出手段と、前記文書画像において前記文字が並ぶ方向である行方向を判別する判別手段と、を備え、前記判別手段は、前記文書画像に対し、膨張処理を行う膨張手段と、前記膨張処理におけるパラメータを決定するパラメータ決定手段と、互いに接している複数の前記文字画素を文字画素塊として取得する取得手段と、前記文字画素塊の形状に基づき、前記行方向を決定する行方向決定手段と、をさらに有し、前記膨張処理は、前記文書画像内の注目画素を中心とする単位領域の中に前記文字画素の数がN個以上ある場合に当該注目画素を新たに文字画素とする処理であり、前記パラメータは、前記膨張処理の実行回数が1回である場合における前記単位領域のサイズであり、前記パラメータ決定手段は、前記抽出手段によって前記文書画像から抽出された前記文字画素に関する評価指標に基づいて前記パラメータを決定する、ことを特徴とする。
【発明の効果】
【0007】
本開示の技術によれば、文書画像における行方向を高精度で判別することができる。
【図面の簡単な説明】
【0008】
【
図1】情報処理システムのハードウェア構成を示す図。
【
図2】システム全体の処理の流れを示すフローチャート。
【
図3】行方向判別処理の詳細を示すフローチャート。
【
図5】名刺画像(縦長、横書き)に対する行方向判別処理の適用例。
【
図6】名刺画像(縦長、縦書き、高密度)に対する行方向判別処理の適用例。
【
図7】名刺画像(縦長、縦書き、低密度)に対する行方向判別処理の適用例。
【発明を実施するための形態】
【0009】
以下、本発明の実施形態について図面に基づいて説明する。なお、実施形態は本発明を限定するものではなく、また、実施形態で説明されている全ての構成が本発明の課題を解決するため必須の手段であるとは限らない。
【0010】
[実施形態1]
[ハードウェア構成]
図1は、本実施形態に係る情報処理システムのハードウェア構成を示す図である。情報処理システムは、複写機100と、情報処理装置110とを有する。
【0011】
複写機100は、スキャナ101と、複写機側通信部102とを有する。スキャナ101は、文書のスキャンを行い、文書画像を生成する。複写機側通信部102は、ネットワークを介して、情報処理装置110を含む外部装置と通信を行う。
【0012】
情報処理装置110は、システム制御部111と、ROM112と、RAM113と、HDD114と、表示部115と、入力部116と、情報処理装置側通信部117とを有する。システム制御部111は、CPUなどの演算装置で構成され、ROM112に記憶された制御プログラムを読み出して各種処理を実行する。RAM113は、システム制御部111の主メモリ、ワークエリア等の一時記憶領域として用いられる。HDD114は、各種データや各種プログラム等を記憶する。なお、後述する情報処理装置110の機能や処理は、システム制御部111がROM112又はHDD114に格納されているプログラムを読み出し、このプログラムを実行することにより実現される。情報処理装置側通信部117は、ネットワークを介して、複写機100を含む外部装置との通信処理を行う。表示部115は、各種情報を表示する。入力部116は、キーボードやマウスを有し、ユーザによる各種操作を受け付ける。なお、表示部115と入力部116は、タッチパネルのように一体に設けられてもよい。また、表示部115は、プロジェクタによる投影を行うものであってもよく、入力部116は、投影された画像に対する指先の位置を、カメラで認識するものであってもよい。
【0013】
本実施形態においては、複写機100のスキャナ101が名刺等の紙文書をスキャンし、文書画像を生成する。文書画像は、複写機側通信部102により情報処理装置110に送信される。情報処理装置110においては、情報処理装置側通信部117が文書画像を受信し、これをHDD114などの記憶装置に記憶する。
【0014】
なお、
図1のハードウェア構成は本実施形態を実現する構成の一例であり、例えば表示部115と入力部116の一部機能は、複写機100にあってもよい。また複写機100と情報処理装置110を一体化した構成であってもよい。
【0015】
<全体処理フロー>
次に、本実施形態に係る情報処理システムにおける、文書画像に対するOCR処理を実現するソフトウェアの動作フローについて、
図2を用いて説明する。
図2のフローチャートに示す一連の処理は、システム制御部111が所定のプログラムをROM112等から読み出して実行することで実現される。なお、以下の説明において記号「S」はステップを意味する。
【0016】
まず、S201では、文書画像のデータがHDD114から取得される。次に、S202では、取得した文書画像に対してその原稿の種類を判定する処理が実行される。本実施形態では、原稿種類が名刺か非名刺かを判定するものとする。この判定は、スキャン解像度と文書画像サイズに基づき行う。例えば、スキャン解像度が300DPIの場合には、スキャンによって得られた文書画像の長辺が1040ピクセル±5%、短辺が615ピクセル±5%の範囲であれば名刺と判定し、範囲外であれば非名刺と判定する。なお、原稿種類の判定方法は画像サイズに基づく方法に限らない。例えば原稿種類を特定する情報を入力部116から受け付けてもよいし、或いは文書画像から特徴量を算出して予め学習された識別モデルにより判定してもよい。
【0017】
S202における判定結果に基づき、S203では処理フローが分岐する。非名刺と判定された場合にはS204へ遷移し、名刺と判定された場合にはS205へ遷移する。
【0018】
S204では、原稿種類に依らない汎用的な文字認識処理が実行される。文字認識処理が完了すると、本処理を終了する。
【0019】
S205では、文書画像に対して傾斜を補正する処理が実行される。スキャナ101により生成される文書画像は、原稿台への原稿の置き方により傾きが生じる。そこで、傾斜補正処理を行って傾きのない文書画像を得る。傾斜補正処理は、特許第4114959号などに開示される公知の方法を適用すればよい。
【0020】
次に、S206では、文書画像中の文字方向を判別する処理が実行される。ここで、文字方向は、文書画像中の文字が正立する方向を0度とした時の文字の方向と定義する。上記S205で傾斜補正処理が施された文書画像は、原稿が90度単位で回転している場合がある。そこで、特許第3727971号などに開示される公知の方法を適用して、文書画像の文字方向を取得する。
【0021】
次に、S207では、S206で判別された文字方向に基づき文書画像を回転させる処理が実行される。これにより、文字が正立した文書画像が得られる。
【0022】
次に、S208では、文書画像から文字画素を抽出する処理が実行される。本実施形態では、各画素の輝度値に対して閾値処理を行う二値化により文字画素を抽出する。二値化には、例えば大津の二値化など公知の方法を適用すればよい。原稿中の文字は背景に比べて濃い色で印刷されるのが通常であるため、輝度値が閾値よりも小さい方の画素を文字画素とする。なお、文字画素の抽出方法は閾値処理による方法に限らない。例えば、任意の注目画素を中心にその近傍領域から画像特徴量を抽出し、該特徴量に基づき事前に学習された識別モデルに基づき注目画素が文字画素か否かを推論する方法で実現してもよい。
【0023】
次に、S209では、S208にて抽出された文字画素に基づき、行方向を判別する処理が実行される。ここで行方向とは、文書画像中の文字が並ぶ方向であり、本実施形態では横(水平)方向、あるいは縦(垂直)方向の何れかとする。行方向判別処理の詳細は後述する。
【0024】
次のS210では、S209における判別結果に基づき処理フローが分岐する。判別の結果、行方向が横方向の場合にはS211へ遷移し、行方向が縦方向の場合にはS212へ遷移し、行方向が不定の場合にはS215へ遷移する。
【0025】
S211では、横方向用に調整されたパラメータを用いた文字列検出処理が実行される。横書きの文字列領域を特定するのに適した領域解析を行うことにより、横長の文字列領域が適切に取得される。この文字列検出処理には、特開平7-200733号などに開示される公知の方法により実現できる。
【0026】
S212では、文書画像を90度回転させる処理が実行される。これにより、原稿(名刺)上では縦方向に並んでいる文字が回転後の画像中では横方向に並ぶことになる。続くS213では、上述のS211と同様、横方向用にパラメータが調整された文字列検出処理が実行される。そして、S214では、S213で検出された文字列領域を-90度回転させる処理が実行される。これにより、回転前の元の文書画像における縦書きの文字列領域が取得される。
【0027】
S215では、行方向が不定であることを前提とした文字列検出処理により文字列領域が取得される。具体的には、まずS211と同様に横方向用の文字列検出処理を行い、続いて縦方向用の文字列検出処理を行なう。そして、双方の検出結果を統合することで文字列領域が取得される。
【0028】
上述のように行方向判別結果に基づく文字列検出処理を行った後、S216では、文書画像から検出・取得された各文字列領域に対して文字認識処理が実行される。文字認識処理としては、例えば、文字列領域に対応する部分画像に含まれる文字の文字コードを、学習済みモデルを用いて推論する手法がある。学習済みモデルとは、文字画像を入力としてその文字コードを出力するよう学習された識別モデルである。文字認識処理が完了すると、本処理を終了する。
【0029】
以上が、文書画像に対するOCR処理を実現するソフトウェアの動作フローである。
【0030】
<行方向判別処理の詳細>
次に、上述のS209における行方向判別処理について、
図3のフローチャートを用いて詳しく説明する。なお、
図2の処理フローから明らかなように、本実施形態において行方向判別処理の対象となるのは名刺の文書画像であり(S203でYes)、かつ、名刺内の文字が正立する方向に回転処理された後の(S207)文書画像である。したがって、以下の説明では処理対象となる文書画像を「名刺画像」と表記する。
【0031】
まず、S301では、名刺画像に基づき名刺タイプが判定される。具体的には、名刺画像における幅と高さを比較し、幅が高さよりも長ければ横長タイプの名刺、そうでなければ縦長タイプの名刺と判定する。
【0032】
次のS302では、S301における判定結果に基づき処理フローが分岐する。判定の結果、横長タイプであればS303へ遷移し、縦長タイプであればS304へ遷移する。
【0033】
S303では、行方向は横方向であると決定される。決定後は本処理を終了する。これは、通常、名刺が横長タイプであればその中の文字が縦書きということは考えにくいためである。
【0034】
S304では、名刺画像における文字画素密度が算出される。文字画素密度は、以下の式(1)で求めることができる。
文字画素密度=全文字画素数/(画像幅×画像高さ) ・・・式(1)
【0035】
次に、S305では、S304にて算出した文字画素密度に基づき、名刺画像内の文字画素を増加させる膨張処理で用いるフィルタサイズが決定される。本実施形態では、文字画素密度が0.025未満の場合はフィルタサイズを“31”、0.025以上の場合はフィルタサイズを“11”とする。例えば、フィルタサイズが“31”のときは、注目画素を中心として縦(高さ)が31画素、横(幅)が31画素の正方形の領域を処理単位として、次のステップで膨張処理が実行されることになる。以下、フィルタサイズに応じて決まる所定の領域を「単位領域」と呼ぶこととする。なお、フィルタサイズは、“31”や“11”に限定されないことは言うまでもない。また、フィルタの形状は正方形でなくてもよく、長方形や円形でもよい。
【0036】
次に、S306では、名刺画像に対し、S305で決定されたフィルタサイズに従って膨張処理が実行される。具体的には、まず、名刺画像内の任意の画素を注目画素とした時に、該注目画素を中心とするフィルタサイズに応じた単位領域(ここでは、31×31画素または11画素×11画素)を切り出す。そして、該単位領域中に文字画素がN個以上あれば注目画素を新たに文字画素とし、そうでなければ非文字画素とする。この場合においてNは、1以上の自然数であり、本実施形態ではN=1とする。ここで、膨張処理の具体例を説明する。
図4(a)は、二値化された名刺画像における6×6画素の部分画像に対し、注目画素401を対象にフィルタサイズ“5”の単位領域にて膨張処理を適用する様子を示している。部分画像内の黒画素402は、二値化によって抽出された文字画素である。膨張処理では、まず、注目画素401を中心とする5×5画素の単位領域403を取得する。続いて、取得した単位領域403に含まれる文字画素をカウントし、N(=1)以上であれば注目画素401を文字画素に置換する。いま、単位領域403に含まれる文字画素(黒画素)の数は1であり条件を満たす。よって、注目画素401は文字画素に置換されることになる。これを単位領域403内の全ての画素に対して適用すると、
図4(a)の部分画像は、
図4(b)に示すような文字画素が増えた画像(膨張画像)になる。
図4(b)の膨張画像内の斜線で示した画素404が、膨張処理により新たに文字画素となった画素である。なお、Nを2以上にした場合には、文字画素の孤立点除去を同時に行うことができる。
【0037】
次に、S307では、膨張処理を施した後の文書画像から文字画素塊(CC:Connected Components)を抽出する処理が実行される。CCとは、隣接する文字画素同士を一つの塊とする領域を指す。
【0038】
次に、S308では、S307にて抽出されたCCのアスペクト比が算出される。本実施形態では、アスペクト比を、以下の式(2)のように定義する。
アスペクト比=CCの外接矩形の高さ/CCの外接矩形の幅 ・・・式(2)
【0039】
次に、S309では、アスペクト比が閾値Th1よりも大きいCCがカウントされる。ここで、閾値Th1を、1.0以上の値に設定することで、その形状が縦長のCCをカウントの対象とすることができる。本実施形態では、閾値Th1を1.2とする。
【0040】
次に、S310では、アスペクト比が閾値Th2よりも小さいCCの数がカウントされる。ここで、閾値Th2を、1.0以下の値に設定することで、その形状が横長のCCをカウントの対象とすることができる。本実施形態では、閾値Th2を0.8とする。
【0041】
次のS311では、S309及びS310におけるCCのカウント結果に基づき、処理フローが分岐する。縦長のCCの数が横長のCCの数よりも大きい場合はS312へ遷移し、行方向が縦方向であると決定して本処理を終了する。縦長のCCの数が横長のCCの数よりも小さい場合はS313へ遷移し、行方向が横方向であると決定して本処理を終了する。縦長のCCの数と横長のCCの数が等しい場合はS314へ遷移し、行方向が不定であると決定して本処理を終了する。
【0042】
以上が、本実施形態に係る、行方向判別処理の内容である。
図5~
図7は、それぞれ異なるタイプの名刺画像に対して本実施形態の行方向判別処理を適用した様子を示す図である。以下、それぞれのケースについて説明する。
【0043】
図5は、縦長タイプで、かつ、文字が横書きの名刺画像501を入力画像としたケースである。名刺画像501の各黒画素が文字画素を表している。名刺画像501は画像高さが画像幅よりも大きいため、S301で縦長と判定され、S304に遷移する。S304では文字画素密度が算出される。名刺画像501の画像幅は650ピクセル、画像高さは1075ピクセルとすると、文字画素数は40950個である。これより、文字画素密度は40950/(650×1075)≒0.059となる。この場合、文字画素密度が閾値0.025より大きいため、S305においてフィルタサイズは“11”に決定される。そして、名刺画像501に対して当該フィルタサイズに従った膨張処理が施され、膨張画像502が得られる。続いて、S307にて膨張画像502からCCが抽出され、S308及びS309にて各CCのアスペクト比に基づき縦長のCC数と横長のCC数がカウントされる。
図5において、CC503の高さが67ピクセル、幅が201ピクセルであるとすると、そのアスペクト比は67/201≒0.33となる。これは、前述した閾値Th2=0.8よりも小さいため、CC503は横長のCCと決定される。同様に、CC504の高さが43ピクセル、幅が30ピクセルであるとすると、そのアスペクト比は1.4となる。これは前述した閾値Th1=1.2よりも大きいため、CC504は縦長のCCと決定される。そして、CC505の高さが39ピクセル、幅が36ピクセルであるとするとアスペクト比は1.08となる。これは閾値Th1=1.2よりも大きくないし、閾値Th2=0.8より小さくもない。よって、CC505は縦長でも横長でもどちらでもないと決定される。このようにして縦長のCCと横長のCCを数えると、膨張画像502からは縦長のCC数が3個、横長のCC数が20個となり、名刺画像501の行方向は横方向であると判別される。
【0044】
図6は、縦長タイプで、かつ、文字が密に配置された縦書きの名刺画像601を入力画像としたケースである。
図5のケースと同様に縦長タイプであるところ、その文字画素密度が0.042であったとする。この場合、閾値0.025より大きいため、フィルタサイズ“11”に従った膨張処理がなされて、膨張画像602が得られる。そして、膨張画像602内の縦長のCCと横長のCCの数をカウントし、縦長のCCが14個、横長のCCが5個であったとすると、縦長のCCの方が多いことから名刺画像601の行方向は縦方向であると判別される。ここで、フィルタサイズを決定する際の文字画素密度の閾値として例えば0.05が設定されていたとする。このとき、名刺画像601をフィルタサイズ“31”で膨張処理した結果が膨張画像603である。膨張画像603では、名刺画像601内の右上にある複数の縦書き文字列が全て結合して1つのCCになっており、同様に左下にある複数の文字列も結合して1つのCCになっている。それにより画像全体から得られる縦長のCCの数が1個に大きく減り、横長のCCの数1個と等しくなる結果、行方向は不定であると判別されてしまうことになる。
【0045】
図7は、縦長タイプで、かつ、文字が疎に配置された縦書きの名刺画像701を入力画像としたケースである。
図5及び
図6のケースと同様に、まず名刺画像701は縦長タイプであると判定され、次に文字画素密度が算出される。ここで文字画素密度は0.02であったとする。この場合、閾値0.025よりも小さいため、膨張処理ではフィルタサイズ“31”が適用される。それにより膨張画像702が得られる。膨張画像702では、縦長のCCが3個、横長のCCは0個であることから、名刺画像701の行方向は縦方向であると判別される。
【0046】
以上のように本実施形態の手法によれば、名刺画像における行方向が適切に判別される。
【0047】
<変形例1>
上述のS305では膨張処理で用いるパラメータとしてフィルタサイズを決定し、続くS306ではその決定されたフィルタサイズに従った膨張処理を1回だけ行っている。しかしながら、実際に適用するフィルタサイズは固定しておき、膨張処理の実行回数をパラメータとして決定してもよい。具体的には、文字画素密度が低い場合は膨張処理の実行回数を多くし、文字画素密度が高い場合は膨張処理の実行回数を少なくする、といった具合である。このような手法でも同じ結果を得ることができる。例えば、単位領域中の文字画素の閾値をN=1とし、かつ、適用するフィルタサイズを“3”の固定とすると、3×3サイズのフィルタ内に文字画素が1つ以上あれば中央の注目画素は文字画素となる。このフィルタ処理は、文字画素の周囲8つの隣接画素を文字画素に設定する処理に等しい。すなわち、「文字画素の周囲8つの隣接画素を新たに文字画素に置換」する膨張処理を、“S305で決定されたフィルタサイズ÷2、ただし小数点以下は切り捨て。)”の回数だけ繰り返せばよい。ここで具体例を挙げて説明する。いま、S305にて、フィルタサイズ“11”が決定されたとする。この場合、11÷2=5.5となるので膨張処理の実行回数は5回となる。よって、3×3画素の正方形の領域を単位領域として、上記の置換処理を5回繰り返す。このような手法でも、上述の実施形態中で述べた手法の場合と同じ膨張画像を得ることができる。
【0048】
<変形例2>
上述の行方向判別処理では、縦長のCCの数と横長のCCの数とが一致していた場合に行方向が不定であると判別していた。しかしながら、名刺の場合、縦長タイプであれば縦書き、横長タイプの場合は横書きである場合が多い。そこで、縦長のCCの数と横長のCCの数とが一致する場合もS312に遷移するようにしてもよい。この場合、
図2の全体処理フローにおいて、S210からS215へと分岐する遷移は無くなる。
【0049】
<変形例3>
上述の行方向判別処理にてCCの数を比較する際にマージンを設けてもよい。すなわち、(縦長のCC数)>(横長のCC数+α)であればS311へ遷移し、(縦長のCC数+α)<(横長のCC数)であればS312へ遷移し、何れでもなければS313へ遷移とすることも可能である。ここで、αは、フィルタサイズが“11”であれば“5”、フィルタサイズが“31”であれば“3”といったように、フィルタサイズに基づき定めればよい。これは出現するCCの数が、膨張処理の強度(フィルタサイズ)により変わるためである。
【0050】
<変形例4>
上述の行方向判別処理では、文書画像から抽出された文字画素の評価指標として文字画素密度を求め、得られた文字画素密度に基づきフィルタサイズを決定していた。しかしながら、文書画像のサイズがほぼ固定サイズであれば、文字画素密度に代えて文字画素数を評価指標として用いてフィルタサイズを決めることも可能である。例えば、S305でフィルタサイズを決定する処理に進んだ時点で、その対象となる文書画像は名刺画像に確定しており、その画像サイズはスキャン解像度毎にほぼ固定である。そこで、抽出された文字画素数が多い(≒文字画素密度が高い)場合にはフィルタサイズを小さくし、抽出された文字画素数が少ない(≒文字画素密度が低い)場合にはフィルタサイズを大きくするような、文字画素数基準の閾値を設定してもよい。
【0051】
以上のとおり上記各変形例を含む本実施形態によれば、様々なタイプの文書画像(特に名刺画像)から適切に行矩形を抽出して文書画像の行方向を高精度で判別することができる。
【0052】
(その他の実施例)
本発明は、上述の実施形態の1以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける1つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、1以上の機能を実現する回路(例えば、ASIC)によっても実現可能である。