IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ キヤノン株式会社の特許一覧

特許7599861情報処理装置、情報処理方法及びプログラム
<>
  • 特許-情報処理装置、情報処理方法及びプログラム 図1
  • 特許-情報処理装置、情報処理方法及びプログラム 図2
  • 特許-情報処理装置、情報処理方法及びプログラム 図3
  • 特許-情報処理装置、情報処理方法及びプログラム 図4
  • 特許-情報処理装置、情報処理方法及びプログラム 図5
  • 特許-情報処理装置、情報処理方法及びプログラム 図6
  • 特許-情報処理装置、情報処理方法及びプログラム 図7
  • 特許-情報処理装置、情報処理方法及びプログラム 図8
  • 特許-情報処理装置、情報処理方法及びプログラム 図9
  • 特許-情報処理装置、情報処理方法及びプログラム 図10
  • 特許-情報処理装置、情報処理方法及びプログラム 図11
  • 特許-情報処理装置、情報処理方法及びプログラム 図12
  • 特許-情報処理装置、情報処理方法及びプログラム 図13
  • 特許-情報処理装置、情報処理方法及びプログラム 図14
  • 特許-情報処理装置、情報処理方法及びプログラム 図15
  • 特許-情報処理装置、情報処理方法及びプログラム 図16
  • 特許-情報処理装置、情報処理方法及びプログラム 図17
  • 特許-情報処理装置、情報処理方法及びプログラム 図18
  • 特許-情報処理装置、情報処理方法及びプログラム 図19
  • 特許-情報処理装置、情報処理方法及びプログラム 図20
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-12-06
(45)【発行日】2024-12-16
(54)【発明の名称】情報処理装置、情報処理方法及びプログラム
(51)【国際特許分類】
   G06V 30/19 20220101AFI20241209BHJP
   G06V 30/14 20220101ALI20241209BHJP
【FI】
G06V30/19
G06V30/14
【請求項の数】 16
(21)【出願番号】P 2020123679
(22)【出願日】2020-07-20
(65)【公開番号】P2022020277
(43)【公開日】2022-02-01
【審査請求日】2023-07-06
(73)【特許権者】
【識別番号】000001007
【氏名又は名称】キヤノン株式会社
(74)【代理人】
【識別番号】110001243
【氏名又は名称】弁理士法人谷・阿部特許事務所
(72)【発明者】
【氏名】戸田 航平
【審査官】長谷川 素直
(56)【参考文献】
【文献】特開平01-277989(JP,A)
【文献】特開平10-078997(JP,A)
【文献】特開2001-052112(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06V 30/00
(57)【特許請求の範囲】
【請求項1】
文書を読み取って得られた文書画像に対して文字列検出処理を行うことにより得られた文字列領域に対して第1の文字認識処理を行う第1処理手段と、
前記第1の文字認識処理の結果に基づいて、前記文書内の人の名前を構成する名前文字を特定する特定手段と、
前記特定手段で特定された前記名前文字に対応する領域及び当該名前文字と同じ行に属する1または複数の文字に対応する領域を統合して、前記名前を表す文字行に対応する文字列領域を取得する取得手段と、
前記名前を表す文字行に対応する文字列領域に対して第2の文字認識処理を行う第2処理手段と、
前記名前を表す文字行を構成する文字に対する文字コードを、前記第1の文字認識処理の結果と前記第2の文字認識処理の結果とに基づいて決定する決定手段と、
を備えたことを特徴とする情報処理装置。
【請求項2】
前記第2の文字認識処理は、認識対象の文字種が人の名前で使用され得る文字種に限定された文字認識処理である、ことを特徴とする請求項に記載の情報処理装置。
【請求項3】
前記人の名前で使用され得る文字種には、漢字及び仮名を少なくとも含むことを特徴とする請求項に記載の情報処理装置。
【請求項4】
前記決定手段は、
前記第2の文字認識処理の結果のうちスペース以外の認識文字を用いて前記名前を表す文字行を生成し、
生成した前記名前を表す文字行に含まれる認識文字が有効な名前文字である場合、前記第1の文字認識処理で得られた文字コードを、当該有効な名前文字である認識文字の文字コードに置き換える、
ことを特徴とする請求項1乃至のいずれか1項に記載の情報処理装置。
【請求項5】
前記決定手段は、前記スペース以外の認識文字のうち、文字間距離が負の値である認識文字同士を統合して1つの認識文字として扱うことで、前記名前を表す文字行を生成することを特徴とする請求項に記載の情報処理装置。
【請求項6】
前記特定手段は、前記第1の文字認識処理の結果に含まれる認識文字の行高さ方向のサイズが閾値以上である場合、当該認識文字を前記名前文字と特定することを特徴とする請求項1乃至のいずれか1項に記載の情報処理装置。
【請求項7】
前記特定手段は、前記第1の文字認識処理の結果に含まれる認識文字の第一候補の文字数が1の場合、当該認識文字を前記名前文字と特定することを特徴とする請求項1乃至5のいずれか1項に記載の情報処理装置。
【請求項8】
前記特定手段は、前記第1の文字認識処理の結果に含まれる認識文字の第一候補の文字コードが漢字又は仮名の場合、当該認識文字を前記名前文字と特定することを特徴とする請求項1乃至のいずれか1項に記載の情報処理装置。
【請求項9】
前記特定手段は、前記第1の文字認識処理の結果に含まれる認識文字の文字コードが、除外対象として指定した文字コード以外の文字コードである場合、当該認識文字を前記名前文字と特定することを特徴とする請求項1乃至のいずれか1項に記載の情報処理装置。
【請求項10】
前記特定手段は、前記第1の文字認識処理の結果に含まれる認識文字の信頼度が閾値以上である場合、当該認識文字を前記名前文字と特定することを特徴とする請求項1乃至のいずれか1項に記載の情報処理装置。
【請求項11】
前記取得手段は、前記特定手段で特定された複数の名前文字について、行揃いが成り立つ名前文字同士を結合して、前記名前を表す文字行に対応する文字列領域を取得することを特徴とする請求項1に記載の情報処理装置。
【請求項12】
前記取得手段は、前記結合により得られた文字列領域に対し、その前後にある文字をさらに結合して、前記名前を表す文字行に対応する文字列領域を取得することを特徴とする請求項11に記載の情報処理装置。
【請求項13】
前記取得手段は、前記前後にある文字が結合されることで得られた文字列領域に対し、その前後にある画素塊を加えて、前記名前を表す文字行に対応する文字列領域を取得することを特徴とする請求項12に記載の情報処理装置。
【請求項14】
前記取得手段は、取得した前記名前を表す文字行に対応する文字列領域のうち、一定の条件を満たす文字列領域を削除する手段を有することを特徴とする請求項11乃至13のいずれか1項に記載の情報処理装置。
【請求項15】
文書を読み取って得られた文書画像に対して文字列検出処理を行うことにより得られた文字列領域に対して第1の文字認識処理を行う処理ステップと、
前記第1の文字認識処理の結果に基づいて、前記文書内の人の名前を構成する名前文字を特定する特定ステップと、
前記特定ステップにて特定された前記名前文字に対応する領域及び当該名前文字と同じ行に属する1または複数の文字に対応する領域を統合して、前記名前を表す文字行に対応する文字列領域を取得する取得ステップと、
前記名前を表す文字行に対応する文字列領域に対して第2の文字認識処理を行う処理ステップと、
前記名前を表す文字行を構成する文字に対する文字コードを、前記第1の文字認識処理の結果と前記第2の文字認識処理の結果とに基づいて決定する決定ステップと、
を含むことを特徴とする情報処理方法。
【請求項16】
コンピュータを、請求項1乃至14のいずれか1項に記載の情報処理装置として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、文書画像に含まれる文字の認識技術に関する。
【背景技術】
【0002】
従来、文書をスキャンして得られた文書画像内の文字を読み取って認識する技術がある。この技術は一般にOCR(Optical Character Recognition)と呼ばれる。OCR処理には通常、文書画像をOCRに適した画像に修正する画像前処理、文書画像から文字の記載領域(文字列領域)を特定する文字列検出処理、検出された文字列領域に含まれる各文字を識別する文字認識処理とで構成される。このようなOCR処理に関し、取得した文字列領域を分類する規則や分類項目を予め定めておき、文字列領域毎に最適な文字認識を行う技術が知られている。例えば、特許文献1は、予め定めた文字列領域同士の位置関係(レイアウト情報)や分類項目の特徴を基に、文書画像から取得した文字列領域を分類し、各分類項目に対応した単語辞書とマッチングさせることで認識精度の向上を図る技術を開示している。
【先行技術文献】
【特許文献】
【0003】
【文献】特開平5―20505号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
上記特許文献1の技術では、文字列領域のレイアウト情報や、分類項目の特徴といった分類に関する規則を予め定めておく必要があるところ、規則に当て嵌まらない文書については適切に文字列領域を分類できず、結果として正しく文字認識できない。例えば、縦長タイプや横長タイプ、さらには縦書きや横書きなどの組み合わせがある名刺における氏名の部分については、その文字数が少なく、かつ、文字間隔も広いことから、適切な文字列領域を取得して高精度に文字認識することが困難である。
【0005】
本開示の技術は、上記の問題に鑑みてなされたものであり、文書画像内の文字列領域の取得に失敗しやすい個所に対する文字認識精度を向上させることを目的とする。
【発明を解決するための手段】
【0006】
本開示に係る情報処理装置は、文書を読み取って得られた文書画像に対して文字列検出処理を行うことにより得られた文字列領域に対して第1の文字認識処理を行う第1処理手段と、前記第1の文字認識処理の結果に基づいて、前記文書内の人の名前を構成する名前文字を特定する特定手段と、前記特定手段で特定された前記名前文字に対応する領域及び当該名前文字と同じ行に属する1または複数の文字に対応する領域を統合して、前記名前を表す文字行に対応する文字列領域を取得する取得手段と、前記名前を表す文字行に対応する文字列領域に対して第2の文字認識処理を行う第2処理手段と、前記名前を表す文字行を構成する文字に対する文字コードを、前記第1の文字認識処理の結果と前記第2の文字認識処理の結果とに基づいて決定する決定手段と、を備えたことを特徴とする。
【発明の効果】
【0007】
本開示の技術によれば、例えば名刺における氏名の文字のように適切にその文字列領域を取得することが困難な場合でも文字認識精度を向上させることができる。
【図面の簡単な説明】
【0008】
図1】情報処理システムのハードウェア構成を示す図。
図2】システム全体の処理の流れを示すフローチャート。
図3】認識結果改善処理の詳細を示すフローチャート。
図4】名前行取得処理の詳細を示すフローチャート。
図5】名前文字特定処理の詳細を示すフローチャート。
図6】文字コード置換処理の詳細を示すフローチャート。
図7】名前行再評価処理の詳細を示すフローチャート。
図8】ブロブ統合処理の詳細を示すフローチャート。
図9】ブロブ属性判定処理の詳細を示すフローチャート。
図10】認識結果比較処理の詳細を示すフローチャート。
図11】(a)は名刺画像の一例を示す図、(b)は認識結果改善処理を実施前の文字列領域の一例を示す図。
図12】認識結果改善処理を実施前の認識結果の一例を示す図。
図13】名刺画像から取得された名前行に対応する文字列領域の一例を示す図。
図14図13の文字列領域に対する認識結果の一例を示す図。
図15】名前文字特定処理を行った結果の一例を示す図。
図16】(a)は横書きの場合の文字間距離が正になる状態を示す図、同(b)は縦書きの場合の文字間距離が正になる状態を示す図。
図17】矩形領域の重なり判定を説明する図。
図18】オリジナルブロブ同士の重なり判定を説明する図。
図19】認識結果改善処理を実施後の文字列領域を示す図。
図20】認識結果改善処理を実施後の認識結果の一例を示す図。
【発明を実施するための形態】
【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にて抽出された文字画素に基づき、行方向を判別する処理が実行される。ここで行方向とは、文書画像中の文字が並ぶ方向であり、本実施形態では横(水平)方向、あるいは縦(垂直)方向の何れかとする。判別手法としては、例えば文書画像の全体に対し縦方向と横方向それぞれに射影ヒストグラムを生成し、分散が小さい方向を行方向として決定する手法などがある。この行方向判別処理により、例えば図11(a)に示す名刺画像であれば行方向は縦(垂直)方向と判別される。
【0024】
次のS210では、S209における判別結果に基づき処理フローが分岐する。判別の結果、行方向が横方向の場合にはS211へ遷移し、行方向が縦方向の場合にはS212へ遷移する。
【0025】
行方向が横方向である場合のS211では、横書きの文字行を特定するのに適した文字列検出処理が実行される。文書画像内の文字の並び方向が横方向の場合、文字間の隙間(黒画素塊同士の間隔=白画素の数)は、垂直方向(上下方向)よりも水平方向(左右方向)の方が狭くなるのが通常である。そこで、横書きのひとまとまりの文字群の特定に適するよう処理パラメータを調整した領域解析を行うことによって、文書画像から文字列領域を検出する。具体的な文字列検出の方法としては、特開平7-200733号などに開示される公知の方法を適用すればよい。
【0026】
行方向が縦方向である場合のS212では、文書画像を90度回転させる回転処理が、文字列検出処理に先立って実行される。例えば、行方向が縦方向である図11(a)の名刺画像を90度回転させ、名刺の上下が左右になるようにした名刺画像を生成する。これにより、原稿(名刺)上では縦方向に並んでいる文字が回転後の画像中では横方向に並ぶことになる。
【0027】
続くS213では、上述のS211と同様、横書きの文字行を特定するのに適した文字列検出処理が実行される。処理対象が縦長タイプかつ縦書きの名刺の場合、本実施形態のように画像を90度回転させてから文字列検出処理を行うことで、氏名のように文字間隔が広く離散的に配置されている文字部分の文字列領域をより適切に検出できる。
【0028】
次に、S214では、S213で検出された文字列領域を-90度回転させる処理、すなわち、S212で回転させた方向とは逆の方向に同じ角度だけ回転させる処理が実行される。これにより、文字列領域内の文字が正立した状態に戻る。この際、検出された文字列領域に対応する部分画像を-90度回転させてもよいし、検出された文字列領域の座標情報を-90度回転させ当該回転後の座標情報をS207で取得した文字が成立する方向の文書画像に適用してもよい。
【0029】
S215では、S211で検出した或いはS214で取得した各文字列領域に対して文字認識処理が実行される。文字認識処理としては、例えば、文字列領域に対応する部分画像に含まれる文字の文字コードを、学習済みモデルを用いて推論する手法がある。学習済みモデルとは、文字画像を入力としてその文字コードを出力するよう学習された識別モデルである。さらに、本実施形態の文字認識処理では、認識結果としての文字(以下、「認識文字」と呼ぶ。)に対する信頼度を取得する処理も併せて行われる。信頼度は、認識文字の確からしさを表す数値である。数値が高いほど認識文字の確度が高いことを意味する。認識文字に対応する画像部分の状態が良く(ノイズが少ない等)、他の文字との重なりがない場合に高い数値の信頼度が得られる傾向にある。逆に、認識文字に対応する画像部分の状態が悪く(ノイズが多い等)、他の文字と重なりがある場合に信頼度の数値は低くなる傾向がある。またフォントサイズによっても数値に影響がある。このように、本実施形態の文字認識処理においては、認識文字の文字コード、認識文字単位の外接矩形を示す領域情報(サイズ情報)及び認識文字に対する信頼度が取得される。
【0030】
次にS216では、S215にて得られた文字認識結果を改善する処理(認識結果改善処理)が実行される。前述のとおり、文字認識の精度はS211やS213の文字列検出処理の結果が適切でないと低下する。図11(b)は、前述の図11(a)の名刺画像から氏名の部分の文字列領域が適切に抽出できなかった一例を示す図であり、図12はその文字列領域に対応する部分画像(文字列矩形画像)に対する文字認識処理の結果を示している。検出された文字列領域が適切でない結果、苗字の一部である「新」の漢字が正しく認識できていないことが分かる。そこで本実施形態では、文字列検出処理において適切な文字列領域が検出できていない可能性の高い部分について文字列領域の再取得を行って、改めて文字認識処理を行うことで、認識結果の改善を図ることとしている。認識結果改善処理の詳細は後述する。認識結果改善処理が完了すると、本処理を終了する。
【0031】
以上が、文書画像に対するOCR処理を実現するソフトウェアの動作フローである。
【0032】
<認識結果改善処理の概要>
続いて、S216の認識結果改善処理について、図3のフローチャートを参照しつつその概要を説明する。本処理は、文書画像内から抽出された文字列領域の単位で実行される。
【0033】
S301では、S216で実行された文字認識処理が日本語による文字認識処理であったか否かが判定される。文字認識処理の対象言語は予め設定されており、その設定情報を参照して判定がなされる。日本語による文字認識処理であった場合はS302へ遷移し、その他の言語による文字認識処理であった場合はS303へ遷移する。
【0034】
S302では、認識結果に基づき、再度の文字認識処理の対象となる特定の文字行に対応する文字列領域を文書画像から取得する処理が実行される。ここで、特定の文字行とは、名刺内の人の名前を構成する文字行(以下、「名前行」と表記)である。名前行取得処理の詳細は後述する。
【0035】
次に、S303では、名前行取得処理の結果に基づき処理フローが分岐する。名前行に対応する文字列領域が取得できた場合にはS304へ遷移し、取得できなかった場合には本処理を抜ける。S304では、S302にて取得された名前行の文字列領域に対し、S215で行ったのと同じ文字認識処理が改めて実行される。ただし、完全に同じ文字認識処理である必要は必ずしもなく、例えば認識対象の文字種を漢字、片仮名、平仮名など人名で用いられ得る文字種に絞った学習済みモデルを用いた異なる文字認識処理を行ってもよい。
【0036】
次に、S305では、S304における再度の文字認識処理で得られた認識文字の文字コードを、一定の条件下、最初の文字認識処理で得られた文字コードと置き換える処理(文字コード置換処理)が実行される。文字コード置換処理の詳細については後述する。文字コード置換処理が完了すると、本処理を終了する。
【0037】
以上が、認識結果改善処理の概要である。
【0038】
<名前行取得処理>
続いて、S302の名前行取得処理について、図4のフローチャートを参照しつつ説明する。
【0039】
S401では、S215で得られた認識結果のうち、人の名前らしい文字(以下、「名前文字」と表記)を特定する処理(名前文字特定処理)が実行される。この名前文字特定処理によって名前文字として特定された認識文字それぞれは、以降「ブロブ」と呼ばれる単位で扱われる。この「ブロブ」には、その対応する文字または文字列領域を囲む外接矩形の座標情報(矩形情報)とその文字コードを含む。名前文字特定処理の詳細については後述する。以下の表1は、後続の説明において登場する様々な種類のブロブについてまとめたものである。
【0040】
【表1】
【0041】
S402では、名前文字特定処理で得られた名前文字同士の間で行揃いが成り立つものを結合することにより、名前行(複数の名前文字で構成される文字列)の候補が生成される。なお、行揃いが成り立つかどうかは各名前文字のブロブで判断され、また、結合された場合には名前行候補に対応するブロブが生成される。
【0042】
S403では、S402で得られた名前行候補の前後の範囲に存在する文字が、名前行候補の一部として結合され名前行候補に組み込まれる。
【0043】
S404では、S403で得られた名前行候補の前後の範囲に存在する画素塊が文書画像から抽出され、名前行候補の中にさらに加えられる。
【0044】
S405では、ここまでで得られたすべての名前行候補のうち、不要な名前行候補を削除する処理がなされ、残った名前行候補が名前行と決定される。不要な名前行候補であるかどうかは、ブロブ内の矩形情報や、認識結果に対する信頼度の情報を用いて行う。これらの情報を組み合わせた判定条件を満たしていない場合、不要な名前行候補と判定する。条件の一例としては、名前文字のブロブが2つ以上である場合、または名前文字のブロブは存在しないが複数行からなる場合、等である。
【0045】
以上が、名前行取得処理の内容である。図13は、本処理によって図11(a)の名刺画像から取得された名前行に対応する文字列領域の一例を示す図である。図11(a)の名刺画像における肩書と氏名を包含する領域(図中の実線の枠)が、名前行に対応する文字列領域として取得されている。また、図14は、図13に示す文字列領域に対応する部分画像(文字列矩形画像)に対し文字認識処理を行った場合の認識結果を示している。この場合、氏名の部分(「新」「野」「康」「介」の4つの漢字)は正しく認識されているが、2行に亘る肩書の部分は正しく認識できていないことが分かる。
【0046】
<名前文字特定処理>
続いて、S401の名前文字特定処理について、図5のフローチャートを参照しつつ説明する。なお、以下に示す一連の処理は、S215における文字認識処理で得られた認識文字の単位で実行される。また、本フローにおいて参照する文字認識処理の結果には、認識文字の文字コード、サイズ、信頼度の各情報に加え、各認識文字についての第一候補の文字数の情報も含まれるものとする。
【0047】
S501では、注目する認識文字に対し、その行高さ方向のサイズが予め決められた閾値未満か否かが判定される。この場合の閾値は、有効な認識結果として利用可能な文字のサイズ毎の出現頻度を文書画像全体に対する文字認識の結果から集計し、最も頻度が高いサイズを閾値とする、といった方法で決めればよい。この場合において、有効な認識結果となるための条件は以下のとおりである。
・文字幅とアスペクト比が所定値以上である。(バーコードのようなサイズのものは文字とみなさない)
・認識結果に対する信頼度が所定値以上である。
・行高さ方向の文字サイズ(縦書きなら幅、横書きなら高さ)が所定値以上である。
【0048】
なお、上記各条件における所定値は経験則に基づいて決まる値である。判定の結果、注目する認識文字の行高さ方向のサイズが閾値未満であればS508へ遷移し、閾値以上であればS502へ遷移する。
【0049】
S502では、注目する認識文字について、その認識結果の第一候補として得られた文字数が複数(すなわち1以外)であったか否かが判定される。ここで、“第一候補”とは、その文字に対する複数の認識候補のうち最も確度が高いものという意味である。そして、“得られた文字数が複数”とは、1つの文字に対して2つ以上の認識候補が出力された場合であり、例えば漢字「誠」が、「言」と「成」に分離して認識されたようなケースが該当する。認識結果の第一候補として得られた文字数が1以外の場合はS508へ遷移し、文字数が1であった場合はS503へ遷移する。
【0050】
S503では、注目する認識文字についての第一候補の文字コードが、漢字または仮名以外の文字コード(具体的には、英数字や記号などの文字コード)であるかどうかが判定される。第一候補の文字コードが漢字又は仮名以外の文字コードであった場合はS508へ遷移し、漢字又は仮名の文字コードであった場合はS504ヘ遷移する。
【0051】
S504では、注目する認識文字の文字コードが、除外対象の文字コードであるかどうかが判定される。除外対象の文字コードは、例えば「ぁ」や「ァ」といった小文字の文字コードなどが該当し予め指定しておく。除外対象の文字コードである場合はS508へ遷移し、除外対象の文字コード以外の文字コードである場合はS505へ遷移する。
【0052】
S505では、注目する認識文字に対する信頼度が閾値より低いか否かが判定される。ここでの閾値は、ある値以上なら凡そ信頼できるという値を経験則に基づき設定しておけばよい。信頼度が閾値より低い場合はS508へ遷移し、閾値以上の場合はS506へ遷移する。
【0053】
S506では、注目する認識文字の外接矩形のアスペクト比が略1か否かが判定される。認識結果には誤差を含み得るので、アスペクト比が1±閾値(例えば0~0.6程度)以内であれば“略1”と判定すればよい。アスペクト比が略1以外の場合はS508へ遷移し、略1である場合はS507へ遷移する。
【0054】
上記S501~S506の各条件に当て嵌まらなかった場合のS507では、注目する認識文字は名前文字であると判定される。また、上記S501~S506のいずれかの条件に当て嵌まった場合のS508では、注目する認識文字は名前文字ではないと判定される。判定が完了すると、本処理を終了する。図15は、図11(a)の名刺画像に対する文字認識の結果に対し、本処理を行った結果の一例を示す図であり、「株」「式」「会」「社」「野」「康」「介」の各文字が名前文字として判定されたことを示している。
【0055】
<文字コード置換処理>
続いて、S305の文字コード置換処理について、図6のフローチャートを参照しつつ説明する。
【0056】
S601では、再度の文字認識処理(S304)における認識結果の中に有効な認識文字があったか否かが判定される。具体的には、再度の文字認識処理によって取得された認識文字が、スペース以外の文字であれば、当該認識文字を有効な認識文字であると判定する。スペース以外の文字である場合は、最初の文字認識処理における認識結果の置き換えに使用可能な文字となり得る。そのため、有効な認識文字であると判定された場合には、そのブロブを有効認識ブロブ(前述の表1を参照)として収集し、S602へ遷移する。有効な認識文字がなかった場合は、本処理を抜ける。なお、スペース以外の文字であっても、その文字高さが閾値未満かつ文字長さが閾値未満の場合は、有効認識ブロブとして収集しつつ、ノイズ文字としてもカウントする。この場合の閾値としては、行高さ(縦書きなら幅、横書きなら高さ)の4分の1程度が適当である。
【0057】
S602では、再度の文字認識処理(S304)の結果と最初の文字認識処理(S215)の結果とに基づき、名前行を再評価する処理(名前行再評価処理)が実行される。名前行再評価処理の詳細については後述する。
【0058】
S603では、名前行再評価処理の結果に基づき処理フローが分岐する。再評価の結果、置換が有効な名前文字を含む名前行が存在した場合はS604に遷移し、存在しなかった場合は本処理を抜ける。
【0059】
S604では、名前行の中の置換が有効な名前文字の文字コードが、再度の文字認識処理で得られた文字コードによって置換される。文字コードの置換が完了すると、本処理を終了する。
【0060】
以上が、文字コード置換処理の内容である。
【0061】
<名前行再評価処理>
続いて、S602の名前行再評価処理について、図7のフローチャートを参照しつつ説明する。
【0062】
S701では、S601にて収集された有効認識ブロブに対し、行方向に重複するブロブ同士を統合する処理(ブロブ統合処理)が実行される。この際、統合後の有効認識ブロブには属性フラグが設定される。ブロブ統合処理の詳細については後述する。
【0063】
S702では、ブロブ統合処理後の有効認識ブロブについてその属性を判定し、属性フラグを設定する処理(ブロブ属性判定処理)が実行される。ブロブ属性判定処理の詳細は後述する。
【0064】
S703では、S701及びS702にていずれの属性フラグも設定されなかった有効認識ブロブに対応する認識文字に対して、名前文字であるかどうかを判定する処理が実行される。この場合において、属性フラグの種類としては、ノイズフラグ、統合フラグ、高信頼度オリジナルマルチラインフラグ、高信頼度オリジナルシングルラインフラグの4つがある。これら4種類のフラグのいずれかが設定された有効認識ブロブの認識文字については、名前文字であるかどうかの判定を行わない。なお、この判定には、前述の名前文字特定処理と同じ処理を行えばよい。
【0065】
S704では、S703にて名前文字と判定された認識文字同士を統合して名前行が生成される。これは、名前文字と判定された認識文字同士のブロブに基づき双方の矩形情報をまとめ、1つの文字列領域として扱うことを意味する。
【0066】
S705では、S703にて名前文字と判定された認識文字の前後に位置する認識文字のうち所定条件を満たす文字が、S704で生成した名前行に加えられる。これは、名前文字と判定された認識文字のブロブの矩形情報と、その前後にある文字のブログの矩形情報とを統合して一つの文字列領域にすることを意味する。例えば、“あい”という文字の並びがある場合において、“い”の認識文字が名前文字と判定された場合、“い”の前に位置する“あ”の認識文字が所定条件を満たしていれば、名前行として取り込まれて“あい”という2つの文字を含む文字列領域が得られる。ここで、所定条件は、文字認識処理で得られた文字コード、認識結果に対する信頼度、名前文字と判定された文字との距離等の情報を組み合わせたものである。例えば、文字の大きさが閾値以上、認識結果の信頼度が閾値以上などの条件を設けておき、すべての条件を満たしている文字を名前行に取り込むようにする。これにより、およそ人名らしい認識文字から成る文字行の文字列領域が得られることになる。
【0067】
以上が、名前行再評価処理の内容である。
【0068】
<ブロブ統合処理>
続いて、S701のブロブ統合処理について、図8のフローチャートを参照しつつ説明する。なお、以下に示す一連の処理は、すべての有効認識ブロブに対して順に実行される。
【0069】
S801では、注目する有効認識ブロブ(以下「注目ブロブ」と表記)に対応する認識文字の終端と、次の有効認識ブロブ(以下「次ブロブ」と表記)に対応する認識文字の先端との距離を示す値が正なのか負なのかが判定される。ここで、処理開始時に各有効認識ブロブは行頭からの距離でソートされている。よって、“次ブロブ”とは、同一行における未処理の有効認識ブロブのうち最も距離が近い有効認識ブロブを意味する。図16(a)は横書きの場合における注目ブロブの文字の終端と次ブロブの文字の先端との距離(文字間距離)が正になる状態を示す図であり、同(b)は縦書きの場合における文字間距離が正になる状態を示す図である。つまり、文字間距離が負になるときは、注目ブロブの認識文字と次ブロブの認識文字とが重なっていることを意味する。以降、文字間距離が負である場合のその絶対値を「文字間の重複サイズ」と呼ぶこととする。文字間距離の値が正であった場合はS805へ遷移し、負であった場合はS802へ遷移する。
【0070】
S802では、文字間の重複サイズが閾値以下であるか否かが判定される。この際の閾値は、行高さ(縦書きなら文字幅、横書きなら文字高さ)を基準に決定される。例えば、行高さの1倍未満の値が閾値として設定される。閾値以下であればS804へ遷移し、閾値より大きかった場合はS803へ遷移する。
【0071】
S803では、注目ブロブに対し重複文字統合フラグが設定される。設定後は、S809へ遷移する。
【0072】
S804では、注目ブロブに対応する認識文字及び次ブロブに対応する認識文字のサイズが閾値より大きいか否かが判定される。この際の閾値も、S802における閾値と同様、行高さ(縦書きなら文字幅、横書きなら文字高さ)を基準に決定される。例えば、行高さの1倍未満の値が閾値として設定される。両認識文字のサイズが閾値より大きい場合は、注目ブロブの認識文字及び次ブロブの認識文字を共に名前文字のサイズと判定し、注目ブロブについての処理は完了する。一方、両認識文字のサイズが閾値以下の場合は上記S803へ遷移し、注目ブロブに対し重複文字統合フラグが設定される。
【0073】
文字間距離が正である場合のS805では、文字間距離が閾値より大きいか否かが判定される。この際の閾値も、S802及びS804における閾値と同様、行高さ(縦書きなら文字幅、横書きなら文字高さ)を基準に決定される。例えば、行高さの1倍未満の値が閾値として設定される。文字間距離が閾値より大きい場合は、名前文字が分離していると判定し、次ブロブの認識文字との統合(S809)を行うことなく、注目ブロブについての処理は完了する。一方、文字間距離が閾値以下の場合は、S806へ遷移する。
【0074】
S806では、注目ブロブの1つ前の有効認識ブロブ(以下「前ブロブ」と表記)に対応する認識文字が、注目ブロブの認識文字と前ブロブの認識文字との距離の二倍よりも近接しているか否かが判定される。近接している場合は、前ブロブの認識文字との統合(S809)を行うことなく、注目ブロブについての処理は終了する。一方、近接していない場合はS807へ遷移する。なお、注目ブロブに対して前ブロブが存在しない場合は、注目ブロブの行高さ(縦書きの場合は文字幅、横書きの場合は文字高さ)を両文字間の距離として扱い、判定を行えばよい。
【0075】
S807では、注目ブロブの認識文字と次ブロブの認識文字とを統合した際の文字の長さが閾値より大きいか否かが判定される。ここで、“統合した際の文字の長さ”は、縦書きの場合は文字の高さ、横書きの場合は文字の幅を用いる。また、この際の閾値は、行高さ(縦書きなら文字幅、横書きなら文字高さ)を基準に決定される。例えば、行高さの1倍を超える値が閾値として設定される。統合した際の文字の長さが閾値より大きい場合には、次ブロブの認識文字との統合を行うことなく、注目ブロブについての処理を完了する。一方、統合した際の文字の長さが閾値以下の場合は、S808へ遷移する。
【0076】
S808では、注目ブロブに対し分離文字統合フラグが設定される。設定後は、S809へ遷移する。
【0077】
S809では、注目ブロブと次ブロブとが統合され、新たに統合された有効認識ブロブが生成されることになる。統合後は注目ブロブについての処理を完了する。そして、上記の処理がすべての有効認識ブロブに対して完了すると、S810へ遷移する。
【0078】
S810では、S809にて生成された統合後の有効認識ブロブに対して、属性フラグが設定される。具体的には、以下の判定条件に従い、属性フラグとしてノイズフラグと統合フラグのいずかが設定される。
【0079】
<判定条件>
・統合後のブロブにノイズ文字が一定以上含まれている場合は、ノイズフラグを設定
・統合後のブロブに重複文字統合フラグ又は分離文字統合フラグが存在する場合は、統合フラグを設定
【0080】
上記判定条件に従って、すべての統合後の有効認識ブロブに対して属性フラグが設定されると、本処理を終了する。
【0081】
以上が、ブロブ統合処理の内容である。
【0082】
<ブロブ属性判定処理>
続いて、S702のブロブ属性判定処理について、図9のフローチャートを参照しつつ説明する。なお、以下に示す一連の処理は、すべての有効認識ブロブに対して順に実行される。また、本処理の対象となる有効認識ブロブには、上述のブロブ統合処理において統合された後の有効認識ブロブ及び統合されずに残った有効認識ブロブとが含まれる。
【0083】
S901では、注目する有効認識ブロブ(以下、「注目ブロブ」と表記)について、最初の文字認識処理(S215)の認識結果と再度の文字認識処理(S304)の認識結果とを比較する処理(認識結果比較処理)が実行される。認識結果比較処理の詳細は後述する。
【0084】
S902では、S901での比較結果を基に、注目ブロブがマルチラインを構成するブロブであるかどうかが判定される。ここで、マルチラインとは、前述の図13における破線の枠1301で囲まれた文字列のように、複数の文字行から成る文字列を表している。注目ブロブがマルチラインを構成するブロブであると判定された場合はS903へと遷移し、マルチラインを構成しないブロブであると判定された場合はS904へと遷移する。
【0085】
S903では、注目ブロブに対し、高信頼度オリジナルマルチラインフラグが設定される。設定後は、注目ブロブに対する処理を終了する。
【0086】
S904では、S901での比較結果を基に、高信頼度オリジナル文字の数が閾値以上であるか(文字列領域の形状が帯状になっているか)が判定される。ここで、“高信頼度オリジナル文字の数”は、次に説明する認識結果比較処理において、再度の文字認識処理のときよりも最初の文字認識処理のときの方が、認識文字に対する信頼度が高いと判定された文字の数を表している。高信頼度オリジナル文字の数が閾値以上である場合はS905へ遷移し、閾値未満である場合は注目ブロブに対する処理を終了する。
【0087】
S905では、注目ブロブに対し、高信頼度オリジナルシングルラインフラグが設定される。設定後は、注目ブロブに対する処理を終了する。
【0088】
上記の処理がすべての有効認識ブロブに対して実施されると、本処理を終了する。
【0089】
以上が、ブロブ属性判定処理の内容である。
【0090】
<認識結果比較処理>
続いて、S703の認識結果比較処理について、図10のフローチャートを参照しつつ説明する。なお、以下に示す一連の処理は、すべてのオリジナルブロブに対して順に実行される。
【0091】
S1001では、注目する有効認識ブロブの矩形情報が示す領域と、処理対象のオリジナルブロブ(前述の表1を参照)の矩形情報が示す領域とが重なるか否かが判定される。図17は、矩形領域の重なり判定を説明する図である。図17において、縦長の2つの枠が処理対象のオリジナルブロブの矩形領域をそれぞれ示し、略正方形の枠が注目する有効認識ブロブの矩形領域を示している。図17に示す例の場合は、縦長の矩形領域のいずれも、略正方形の矩形領域と重なっていると判定されることになる。このように双方の矩形領域が重なる場合はS1002へ遷移する。一方、双方の矩形領域が重ならない場合は、当該オリジナルブロブに対する処理を終了する。
【0092】
S1002では、処理対象のオリジナルブロブに対応する認識文字があるかどうかが判定される。これは、文字列領域に対して文字認識の結果が返ってこなかった場合にはそのことを示す情報がブロブ内に保持されているため、当該情報を用いて何らかの認識文字が対応付けられているかどうかを判定する処理である。認識文字がある場合は、S1003へ遷移する。認識文字がない場合は、当該オリジナルブロブに対する処理を終了する。
【0093】
S1003では、注目する有効認識ブロブにおける信頼度と、処理対象のオリジナルブロブにおける信頼度とが比較される。有効認識ブロブの信頼度よりもオリジナルブロブの信頼度の方が高い場合、すなわち、処理対象のオリジナルブロブが“高信頼度オリジナルブロブ(前述の表1を参照)”である場合は、S1004へ遷移する。一方、処理対象のオリジナルブロブの信頼度が有効認識ブロブの信頼度よりも低い場合は、当該オリジナルブロブに対する処理を終了する。
【0094】
S1004では、処理対象のオリジナルブロブと別の高信頼度オリジナルブロブとが、高さ方向に離れた状態で、かつ、行方向に重なるか否かが判定される。高さ方向に離れた状態で、かつ、行方向に重なる場合はS905へ遷移する。図18は、この重なり判定を説明する図であり、図中に示す例の場合は、高さ方向に離れており、かつ行方向には重なっているので、S1005へと遷移することになる。一方、高さ方向に離れていない又は行方向に重ならない場合は、当該オリジナルブロブに対する処理を終了する。
【0095】
S1005では、処理対象のオリジナルブロブに対応する認識文字が、複数行からなるマルチラインを構成する文字であると決定される。続くS1006では、処理対象の当該ブロブを高信頼度オリジナルブロブとしてカウントし、当該オリジナルブロブに対する処理を終了する。
【0096】
上記の処理が、すべてのオリジナルブロブに対し実施されると、本処理を終了する。
【0097】
以上が、認識結果比較処理の内容である。
【0098】
<認識結果改善処理の効果>
最後に、図3図10のフローチャートを使って説明した認識結果改善処理の効果について説明する。図19は、前述の図11(a)に示す名刺画像に対して、認識結果改善処理を実施した場合の文字列領域を示す図である。図11(b)と比べると明らかなように、氏名の部分の文字列領域が適切に抽出できているのが分かる。また、図20は、図19に示す各文字列領域に対する文字認識処理の結果を示している。図12と比べると明らかなように、文字列領域が適切に抽出できている結果、正しく文字認識できていることが分かる。
【0099】
以上のとおり本実施形態によれば、名刺画像から名刺内の人の名前を構成する文字行(名前行)を特定してその文字列領域に対し再度文字認識処理を行う。そして、最初の文字認識処理の結果と再度の文字認識処理の結果とを比較し、より確からしい結果を最終的な認識結果とする。これにより、名刺における名前領域の認識結果をより確からしいものにすることができ、文字認識処理の精度が向上することになる。
【0100】
<その他の実施形態>
本発明は、上述の実施形態の1以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける1つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、1以上の機能を実現する回路(例えば、ASIC)によっても実現可能である。
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13
図14
図15
図16
図17
図18
図19
図20