(57)【要約】【課題】限定された文字種以外の文字で構成される特定の単語を含む抽出対象文字列を抽出することができる画像処理装置を提供する。【解決手段】画像処理装置１０５は、文字列情報５０１の文字列のうち、優先単語情報６０３に定義された特定の単語を構成する文字を正規表現式６０４に含まれる「＠」に置き換え、特定の単語を構成する文字以外の文字を優先文字情報６０２の限定文字種に変換する。画像処理装置１０５は、正規表現式６０４を用いて、変換された文字列情報５０３の文字列から抽出対象文字列を抽出する。【選択図】図４
2020204886.tif 000002
【特許請求の範囲】
【請求項１】
画像を文字認識して得られた文字認識結果の文字列から抽出対象文字列を抽出する画像処理装置であって、
前記文字認識結果の文字列のうち、特定の単語を構成する文字を正規表現式に含まれる特定の文字コードに置き換え、前記特定の単語を構成する文字以外の文字を予め定義された限定文字種に基づいて変換する変換手段と、
前記正規表現式を用いて前記変換された文字列から前記抽出対象文字列を抽出する抽出手段とを備えることを特徴とする画像処理装置。
【請求項２】
前記文字認識結果は、前記文字認識結果の文字列を構成する複数の文字の各々において順位が決められた１つ以上の文字候補を含み、
前記変換手段は、前記文字認識結果の文字列のうち、前記特定の単語を構成する文字以外の文字について限定文字種に限定して前記文字候補の順位を入れ替えることを特徴とする請求項１記載の画像処理装置。
【請求項３】
前記変換手段は、前記文字認識結果の文字列のうち、前記特定の単語を構成する文字以外の文字を、前記文字認識における誤認識の補正に関する情報が定義された誤認識補正情報に基づいて変換することを特徴とする請求項１記載の画像処理装置。
【請求項４】
前記特定の単語は、日付における月の名称を表す英単語及び前記日付における月の略称を表す英単語を含むことを特徴とする請求項１乃至３のいずれか１項に記載の画像処理装置。
【請求項５】
前記特定の単語は、通貨記号を含むことを特徴とする請求項１乃至４のいずれか１項に記載の画像処理装置。
【請求項６】
前記抽出された抽出対象文字列が正当であるか否かを判別する判別手段を更に備え、
前記抽出された抽出対象文字列が不正である場合、前記抽出された抽出対象文字列の不正箇所を変換する他の変換手段を更に備えることを特徴とする請求項１乃至５のいずれか１項に記載の画像処理装置。
【請求項７】
画像を文字認識して得られた文字認識結果の文字列から抽出対象文字列を抽出する画像処理装置の制御方法であって、
前記文字認識結果の文字列のうち、特定の単語を構成する文字を正規表現式に含まれる特定の文字コードに置き換え、前記特定の単語を構成する文字以外の文字を予め定義された限定文字種に基づいて変換する変換ステップと、
前記正規表現式を用いて前記変換された文字列から前記抽出対象文字列を抽出する抽出ステップとを有することを特徴とする画像処理装置の制御方法。
【請求項８】
画像を文字認識して得られた文字認識結果の文字列から抽出対象文字列を抽出する画像処理装置の制御方法をコンピュータに実行させるプログラムであって、
前記画像処理装置の制御方法は、
前記文字認識結果の文字列のうち、特定の単語を構成する文字を正規表現式に含まれる特定の文字コードに置き換え、前記特定の単語を構成する文字以外の文字を予め定義された限定文字種に基づいて変換する変換ステップと、
前記正規表現式を用いて前記変換された文字列から前記抽出対象文字列を抽出する抽出ステップとを有することを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像処理装置、その制御方法、及びプログラムに関する。
【背景技術】
【０００２】
スキャナが読み込んだ帳票の画像におけるレイアウトの特徴と予め定義された特定の帳票に関する情報とに基づいてスキャナが読み込んだ帳票の種別を特定し、画像内の所定の位置の文字列を認識する画像処理装置が知られている。画像処理装置は、正規表現等のパターンマッチングを利用することで、文字認識結果の中から日付や金額等の数字で構成された特定の文字列を抽出する。しかし、文字認識結果の中には、画像処理装置が誤認識した情報が含まれることがあるため、このような文字認識結果の中から特定の文字列を正確に抽出することができない。これに対し、例えば、「年」、「月」、「日」といったキーワードを含む文字列領域を画像から特定し、当該文字列領域に対して数字に限定した文字認識を行って日付文字列を高精度に抽出する（例えば、特許文献１参照）。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１５−１１８４８８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、上述した特許文献１の技術では、抽出対象文字列が、限定された文字種である数字のみで構成されていることが前提である。このため、従来では、数字以外の文字で構成される特定の単語、例えば、月の名称が「Ｊａｎｕａｒｙ」といった英単語を含む日付文字列を抽出することができない。
【０００５】
本発明の目的は、限定された文字種以外の文字で構成される特定の単語を含む抽出対象文字列を抽出することができる画像処理装置、その制御方法、及びプログラムを提供することにある。
【課題を解決するための手段】
【０００６】
上記目的を達成するために、本発明の画像処理装置は、画像を文字認識して得られた文字認識結果の文字列から抽出対象文字列を抽出する画像処理装置であって、前記文字認識結果の文字列のうち、特定の単語を構成する文字を正規表現式に含まれる特定の文字コードに置き換え、前記特定の単語を構成する文字以外の文字を予め定義された限定文字種に基づいて変換する変換手段と、前記正規表現式を用いて前記変換された文字列から前記抽出対象文字列を抽出する抽出手段とを備えることを特徴とする。
【発明の効果】
【０００７】
本発明によれば、限定された文字種以外の文字で構成される特定の単語を含む抽出対象文字列を抽出することができる。
【図面の簡単な説明】
【０００８】
【図１】本発明の実施の形態に係る画像処理装置を含む画像処理システムのネットワーク構成を概略的に示すネットワーク図である。
【図２】図１の画像処理装置によって実行される文字列抽出処理の手順を示すフローチャートである。
【図３】図１の複写機が生成するスキャン画像の一例を示す図である。
【図４】図２のステップＳ２０３の項目抽出処理の手順を示すフローチャートである。
【図５】図４の項目抽出処理にて用いられる文字列情報の一例を示す図である。
【図６】図１の画像処理装置が用いる抽出タイプ定義情報の一例を示す図である。
【図７】図１の画像処理装置が用いる変換テーブルの一例を示す図である。
【図８】図１の画像処理装置が用いる文字列情報の一例を示す図である。
【図９】図１の画像処理装置が用いる各種情報の一例を示す図である。
【図１０】図１の画像処理装置が用いる文字列情報の一例を示す図である。
【図１１】図１の画像処理装置が用いる各種情報の一例を示す図である。
【図１２】図４の項目抽出処理の変形例の手順を示すフローチャートである。
【図１３】図１の画像処理装置が用いる変換テーブルの一例を示す図である。
【発明を実施するための形態】
【０００９】
以下、本発明の実施の形態について図面を参照しながら詳述する。
【００１０】
図１は、本発明の実施の形態に係る画像処理装置１０５を含む画像処理システム１００のネットワーク構成を概略的に示すネットワーク図である。図１において、画像処理システム１００は、複写機１０１及び画像処理装置１０５を備える。複写機１０１は、スキャナ１０２、プリンタ１０３、及び通信部１０４を備える。スキャナ１０２は、配置された原稿をスキャンしてスキャン画像を生成する。プリンタ１０３は、スキャナ１０２が生成したスキャン画像等を用紙に印刷する。通信部１０４は、ネットワーク（不図示）を介して画像処理装置１０５等の外部装置とのデータ通信の制御を行う。通信部１０４は、例えば、スキャナ１０２が生成したスキャン画像を画像処理装置１０５へ送信する。
【００１１】
画像処理装置１０５は、ＣＰＵ１０６、ＲＯＭ１０７、ＲＡＭ１０８、ＨＤＤ１０９、表示部１１０、入力部１１１、及び通信部１１２を備える。ＣＰＵ１０６、ＲＯＭ１０７、ＲＡＭ１０８、ＨＤＤ１０９、表示部１１０、入力部１１１、及び通信部１１２は、バス１１３を介して互いに接続されている。
【００１２】
画像処理装置１０５は、複写機１０１から受信したスキャン画像に対して画像処理を施す。例えば、画像処理装置１０５は、後述する図２の文字列抽出処理を実行して、上記スキャン画像から抽出対象文字列として日付文字列、金額文字列、電話番号文字列を抽出する。日付文字列は、日付を示す数字や区切り文字等で構成される文字列である。金額文字列は、金額を示す数字や通貨記号等で構成される文字列である。電話番号文字列は、電話番号を示す数字や区切り文字等で構成される文字列である。ＣＰＵ１０６は、ＲＯＭ１０７に格納されたプログラムを実行することで、各種処理を実行する。ＲＯＭ１０７は、ＣＰＵ１０６が実行するプログラム等を格納する。ＲＡＭ１０８は、ＣＰＵ１０６の作業領域として、また、各データの一時記憶領域として用いられる。ＨＤＤ１０９は、データやプログラム等を格納する。表示部１１０は、各種情報を表示する。入力部１１１は、例えば、キーボードやマウスであり、各種指示に関するユーザ操作を受け付ける。なお、表示部１１０及び入力部１１１は、タッチパネルのように一体型の構成であっても良い。また、表示部１１０は、プロジェクタによって画像を投影する構成であっても良く、入力部１１１は、投影された画像を指し示すユーザの指先の位置をカメラで認識する構成であっても良い。通信部１１２は、ネットワークを介して複写機１０１等の外部装置とデータ通信を行う。
【００１３】
図２は、図１の画像処理装置１０５によって実行される文字列抽出処理の手順を示すフローチャートである。図２の処理は、ＣＰＵ１０６がＲＯＭ１０７又はＨＤＤ１０９に格納されたプログラムを実行することによって行われる。図２の処理は、画像処理装置１０５がスキャン画像を取得した際に実行される。本実施の形態では、一例として、画像処理装置１０５が、スキャナ１０２によって生成された図３のスキャン画像３０１を複写機１０１から取得したこととする。スキャン画像３０１は、レシートをスキャンして得られた画像である。スキャン画像３０１には、複数の文字列、例えば、日付文字列３０２、金額文字列３０３、電話番号文字列３０４が含まれる。
【００１４】
図２において、ＣＰＵ１０６は、スキャン画像３０１を取得すると（ステップＳ２０１）、スキャン画像３０１に対して文字認識処理を行う（ステップＳ２０２）。文字認識処理では、ＣＰＵ１０６が、スキャン画像３０１から文字を含む文字領域を特定し、各文字領域の特徴量を算出し、算出した特徴量と予め登録された文字認識辞書とを比較して類似する１つ以上の文字候補を特定する。本実施の形態では、行単位にまとまった複数の文字の文字候補群を文字列情報と定義する。複数の文字候補を持つ文字において、予め定められたルールに基づいて文字候補の順位が決定される。ＣＰＵ１０６は、ステップＳ２０２にて得られた各行に対応する複数の文字列情報をＲＡＭ１０８に格納する。次いで、ＣＰＵ１０６は、図４の項目抽出処理を実行する（ステップＳ２０３）。
【００１５】
図４は、図２のステップＳ２０３の項目抽出処理の手順を示すフローチャートである。図４において、ＣＰＵ１０６は、ＲＡＭ１０８に格納された複数の文字列情報の中から１つの文字列情報を取得する（ステップＳ４０１）。本実施の形態では、一例として、ステップＳ４０１において、ＣＰＵ１０６が、スキャン画像３０１における日付文字列３０２を含む文字列領域５００（図５（ａ））の文字列情報５０１（図５（ｂ））を取得したこととする。
【００１６】
次いで、ＣＰＵ１０６は、抽出タイプ定義情報を取得する（ステップＳ４０２）。本実施の形態では、複数の抽出タイプ定義情報、例えば、図６（ａ）の日付タイプ定義情報６０１、図６（ｂ）の金額タイプ定義情報６０５、図６（ｃ）の電話番号タイプ定義情報６０９がＲＯＭ１０７又はＨＤＤ１０９に予め格納されている。ステップＳ４０１では、ＣＰＵ１０６は、複数の抽出タイプ定義情報の中から１つの抽出タイプ定義情報を取得する。本実施の形態では、一例として、ステップＳ４０２において、ＣＰＵ１０６が上述した複数の抽出タイプ定義情報の中から日付タイプ定義情報６０１を取得したこととする。
【００１７】
日付タイプ定義情報６０１は、スキャン画像から日付文字列を抽出する際に使用される。日付タイプ定義情報６０１は、優先文字情報６０２、優先単語情報６０３、及び正規表現式６０４で構成される。優先文字情報６０２には、日付文字列に含まれることが想定される文字が定義されている。例えば、優先文字情報６０２には、「０」、「１」、「２」、「３」、「４」、「５」、「６」、「７」、「８」、「９」、「／」、「−」、「．」、「年」、「月」、「日」といった限定文字種と後述する置き換え文字である「＠」が定義されている。
【００１８】
優先単語情報６０３には、後述する置き換え文字への置き換え対象となる特定の単語が定義されている。優先単語情報６０３には、特定の単語として、例えば、１月から１２月までの月の名称を表す英単語や、それらの略称を表す英単語が定義されている。月の名称を表す英単語は、「ＪＡＮＵＡＲＹ」、「ＦＥＢＲＵＡＲＹ」、「ＭＡＲＣＨ」、「ＡＰＲＩＬ」、「ＭＡＹ」、「ＪＵＮＥ」、「ＪＵＬＹ」、「ＡＵＧＵＳＴ」、「ＳＥＰＴＥＭＢＥＲ」、「ＯＣＴＯＢＥＲ」、「ＮＯＶＥＭＢＥＲ」、「ＤＥＣＥＭＢＥＲ」である。月の略称を表す英単語は、「ＪＡＮ」、「ＦＥＢ」、「ＭＡＲ」、「ＡＰＲ」、「ＭＡＹ」、「ＪＵＮ」、「ＪＵＬ」、「ＡＵＧ」、「ＳＥＰ」、「ＯＣＴ」、「ＮＯＶ」、「ＤＥＣ」である。正規表現式６０４には、スキャン画像から日付文字列を抽出するための１つ以上の正規表現式が定義されている。本実施の形態では、６つの正規表現式が正規表現式６０４に定義されている。
【００１９】
金額タイプ定義情報６０５は、スキャン画像から金額文字列を抽出する際に使用される。金額タイプ定義情報６０５は、優先文字情報６０６、優先単語情報６０７、及び正規表現式６０８で構成される。優先文字情報６０６には、金額文字列に含まれることが想定される文字が定義されている。例えば、優先文字情報６０６には、「０」、「１」、「２」、「３」、「４」、「５」、「６」、「７」、「８」、「９」、「￥」、「＄」、「．」、「，」、「￥」といった限定文字種と後述する置き換え文字である「＠」が定義されている。
【００２０】
優先単語情報６０７には、後述する置き換え文字への置き換え対象となる特定の単語が定義されている。優先単語情報６０７には、特定の単語として、例えば、「ＪＰＹ」、「ＵＳＤ」、「ＥＵＲ」といった通貨記号が定義されている。正規表現式６０８には、スキャン画像から金額文字列を抽出するための１つ以上の正規表現式が定義されている。電話番号タイプ定義情報６０９は、スキャン画像から電話番号文字列を抽出する際に使用される。電話番号タイプ定義情報６０９は、スキャン画像から電話番号文字列を抽出する際に用いられる優先文字情報、優先単語情報、及び正規表現式で構成される。
【００２１】
次いで、ＣＰＵ１０６は、ステップＳ４０１にて取得した文字列情報５０１から、ステップＳ４０２にて取得した日付タイプ定義情報６０１の優先単語情報６０３に定義された特定の単語を検索する（ステップＳ４０３）。ステップＳ４０３では、ＣＰＵ１０６は、文字列情報５０１における各文字の第一候補を連結した文字列から、優先単語情報６０３に定義された特定の単語を検索する。なお、以下では、文字列情報における各文字の第一候補を連結した文字列を「文字列情報の文字列」と称する。文字列情報５０１には、スキャン画像３０１に含まれる文字と異なる誤った文字認識結果が含まれている可能性があるため、ＣＰＵ１０６は、完全一致ではなく曖昧検索を用いて一定の類似文字列を検索する。曖昧検索として、例えば、ＤＰマッチングが用いられる。文字列情報５０１の「ＤＡＴＥ；  ２Ｏ．Ｏｃｔ，２０ｌ８  １５：３Ｏ」の例では、１０文字目から１２文字目までの部分文字列が優先単語情報６０３に定義された「ＯＣＴ」と完全一致するという結果が得られる。なお、本実施の形態では、アルファベットの大文字、小文字を区別することなく検索可能であることとする。例えば、「ＪＡＮ」、「Ｊａｎ」、「ｊａｎ」の何れであっても、「ＪＡＮ」と完全一致するという結果が得られる。ＣＰＵ１０６は、検索結果をＲＡＭ１０８に格納する。
【００２２】
次いで、ＣＰＵ１０６は、ステップＳ４０１にて取得した文字列情報５０１において、上記特定の単語と一致した部分文字列を置き換え文字、具体的に、特定の文字コードの「＠」に置き換える（ステップＳ４０４）。ステップＳ４０４において、ＣＰＵ１０６は、上記特定の単語と一致した部分文字列を構成する文字の第一候補及び第二候補の順位を繰り下げ、当該文字の新たな第一候補として「＠」を設定する（例えば、図５（ｃ）の文字列情報５０２を参照。）。ステップＳ４０４の処理済みの文字列情報５０２は、ＲＡＭ１０８に格納される。なお、本実施の形態では、置き換え文字を「＠」としているが、これ以外の文字コードでも良く、通常の文字認識結果として出力されない特殊な文字であれば良い。また、特定の単語と一致した部分文字列を置き換え文字に置き換えずに、上記部分文字列に対して後述するステップＳ４０５の処理を実施しないことを示す情報をＲＡＭ１０８に格納しても良い。
【００２３】
次いで、ＣＰＵ１０６は、ステップＳ４０４の処理済みの文字列情報５０２の中の複数の文字候補を持つ文字に対し、優先文字情報６０２の昇格処理を行う（ステップＳ４０５）。ここで、優先文字情報６０２には、日付文字列に含まれることが想定される文字が定義されている。具体的に、優先文字情報６０２には、「０」〜「９」までの数字や「年」、「月」、「日」、また、「／」、「−」、「．」といった区切り文字、さらに置き換え文字である「＠」が定義されている。ステップＳ４０５において、ＣＰＵ１０６は、文字列情報における各文字の第一候補が優先文字情報６０２に定義された限定文字種以外であれば、第二候補以下を順に走査し、第二候補以下における優先文字情報６０２の限定文字種と同じ文字を第一候補に昇格させる。例えば、文字列情報５０２における複数の文字候補を持つ文字のうち、第一候補が優先文字情報６０２の限定文字種と異なる文字５０２ａ〜５０２ｃが、図５（ｄ）の文字列情報５０３のように、当該限定文字種と同じ文字種の第二候補の文字に置き換わる。ＣＰＵ１０６は、ＲＡＭ１０８に格納された文字列情報５０２を文字列情報５０３に更新する。このようにして本実施の形態では、文字列情報５０１の文字列のうち、優先単語情報６０３に定義された特定の単語を構成する文字が「＠」に置き換えられ、上記特定の単語を構成する文字以外の文字が優先文字情報６０２の限定文字種に基づいて変換される。
【００２４】
次いで、ＣＰＵ１０６は、文字列情報５０３に対し、正規表現式６０４を用いて正規表現検索を行う（ステップＳ４０６）。本実施の形態では、正規表現式６０４に、例えば、「￥ｄ｛１，２｝［／−￥．］￥ｄ｛１，２｝［／−￥．］￥ｄ｛２，４｝」が定義されている。この正規表現式を用いると、１〜２桁の数字、区切り文字である「／」、「−」、「．」の何れか、１〜２桁の数字、区切り文字である「／」、「−」、「．」の何れか、２〜４桁の数字がこの順に配列する文字列が抽出される。このパターンは、日、月、年の順で表される日付文字列に対応している。また、正規表現式６０４には、英語の月名に対応する正規表現式として、「￥ｄ｛１，２｝［／−￥．］＠｛３，９｝［／−￥．］￥ｄ｛２，４｝」が定義されている。月に相当する箇所が、優先単語情報６０３に定義された特定の単語を置き換えた３〜９文字の「＠」で表される文字列パターンとして定義されている。また、正規表現式６０４には、年月日の順序だけでなく、日月年、月日年の順序に対応する正規表現式も定義されている。なお、本実施の形態では、正規表現式６０４に定義された正規表現式を１つずつ用いて正規表現検索を行うこととしたが、全ての正規表現式をＯＲ等の表現で１つにまとめた正規表現式を用いて正規表現検索を行っても良い。ステップＳ４０６では、ＣＰＵ１０６は、「￥ｄ｛１，２｝［／−￥．］＠｛３，９｝［／−￥．］￥ｄ｛２，４｝」を用いることで、文字列情報５０３における「２０．＠＠＠．２０１８」を抽出対象文字列として抽出する。ＣＰＵ１０６は、抽出対象文字列をＲＡＭ１０８に格納する。
【００２５】
次いで、ＣＰＵ１０６は、未処理の抽出対象文字列が残っているか否かを判別する（ステップＳ４０７）。ステップＳ４０７の判別の結果、未処理の抽出対象文字列が残っていないとき、ＣＰＵ１０６は、項目抽出処理を終了し、ステップＳ２０４の処理を行う。ステップＳ４０７の判別の結果、未処理の抽出対象文字列が残っているとき、ＣＰＵ１０６は、ＲＡＭ１０８から一つの抽出対象文字列を取得する（ステップＳ４０８）。例えば、ＣＰＵ１０６は、抽出対象文字列として「２０．＠＠＠．２０１８」を取得する。次いで、ＣＰＵ１０６は、抽出対象文字列における置き換え文字を元に戻す処理を行う（ステップＳ４０９）。具体的に、ＣＰＵ１０６は、文字列情報５０３の第一候補から「＠」を削除し、第一候補から「＠」が削除された文字の第二候補以降をそれぞれ繰り上げる。これにより、第一候補の文字列が「０ＡＴＥ；  ２０．Ｏｃｔ．２０１８  １５：３０」となる図６（ｅ）の文字列情報５０４が得られる。ＣＰＵ１０６は、文字列情報５０４に含まれる文字列であって「＠」が削除された文字の新たな第一候補からなる部分文字列である「Ｏｃｔ」を用いて、抽出対象文字列を「２０．＠＠＠．２０１８」から「２０．Ｏｃｔ．２０１８」に変換する。
【００２６】
次いで、ＣＰＵ１０６は、変換済みの抽出対象文字列を検証する（ステップＳ４１０）。ステップＳ４１０では、ＣＰＵ１０６は、例えば、変換済みの抽出対象文字列が実在する日付であるか否かを判別する。なお、本実施の形態では、この方法に限らず、例えば、現在時刻を取得してそれより未来の日付であるか否かを判別しても良く、また、変換済みの抽出対象文字列が外部から指定された日付の範囲に収まっているか否かを判別しても良い。
【００２７】
次いで、ＣＰＵ１０６は、ステップＳ４１０の検証結果に基づいて変換済みの抽出対象文字列が正当であるか否かを判別する（ステップＳ４１１）。ステップＳ４１１では、例えば、変換済みの抽出対象文字列が実在する日付である場合、ＣＰＵ１０６は、変換済みの抽出対象文字列が正当であると判別する。一方、変換済みの抽出対象文字列が実在しない日付である場合、ＣＰＵ１０６は、変換済みの抽出対象文字列が不正であると判別する。
【００２８】
ステップＳ４１１の判別の結果、変換済みの抽出対象文字列が不正であるとき、ＣＰＵ１０６は、ステップＳ４０７の処理に戻る。ステップＳ４１１の判別の結果、変換済みの抽出対象文字列が正当であるとき、ＣＰＵ１０６は、抽出対象文字列の確からしさを示す尤度を算出する（ステップＳ４１２）。ステップＳ４１２において、例えば、ステップＳ４１０にて実在する日付であると判別された抽出対象文字列を含む文字列情報は、１００点となる。尤度は、文字認識結果のスコア等を用いて算出される。なお、本実施の形態では、日付に関する尤度は、年と月と日の間の区切り文字の種類に応じて異なる得点が設定されても良い。例えば、「年」と「月」の間と「月」と「日」の間とが「／」等の同じ区切り文字である場合には高い尤度となり、「年」と「月」の間が「／」、「月」と「日」の間が「−」等の異なる区切り文字である場合には低い尤度となる。
【００２９】
次いで、ＣＰＵ１０６は、変換済みの抽出対象文字列と尤度とを項目抽出結果としてＲＡＭ１０８に格納し（ステップＳ４１３）、ステップＳ４０７の処理に戻る。ＣＰＵ１０６は、ＲＡＭ１０８に格納された全ての文字列情報に対し、上述した項目抽出処理を実行する。また、ＣＰＵ１０６は、ＲＯＭ１０７又はＨＤＤ１０９に格納された全ての抽出タイプ定義情報を用いて上述した項目抽出処理を実行する。このようにして、本実施の形態では、スキャン画像３０１の文字認識結果として得られた全ての文字列情報に対し、各抽出タイプ定義情報に対応する抽出対象文字列が抽出される。
【００３０】
図２に戻り、ＣＰＵ１０６は、ＲＡＭ１０８から抽出タイプ毎に項目抽出結果を取得し、尤度が最も高い項目抽出結果を選択する（ステップＳ２０４）。次いで、ＣＰＵ１０６は、Ｓ２０４で選択した項目抽出結果を出力し（ステップＳ２０５）、本処理を終了する。
【００３１】
上述した実施形態によれば、文字列情報５０１の文字列のうち、優先単語情報６０３に定義された特定の単語を構成する文字が「＠」に置き換えられ、特定の単語を構成する文字以外の文字が優先文字情報６０２の限定文字種に基づいて変換される。「＠」を含む文字列を検索可能な正規表現式６０４を用いて、変換済みの文字列情報の文字列から抽出対象文字列が抽出される。これにより、限定文字種以外の文字で構成される特定の単語を含む抽出対象文字列を抽出することができる。
【００３２】
また、上述した実施形態では、文字列情報５０１の文字列のうち、特定の単語を構成する文字以外の文字について限定文字種に限定して文字候補の順位が入れ替わる。これにより、文字毎に１つ以上の文字候補を含む文字認識結果を取得する画像処理装置１０５において、限定文字種以外の文字で構成される特定の単語を含む抽出対象文字列を抽出することができる。
【００３３】
上述した実施の形態では、特定の単語は、日付における月の名称を表す英単語又は日付における月の略称を表す英単語である。これにより、月の名称や月の略称を含む抽出対象文字列を抽出することができる。
【００３４】
上述した実施の形態では、特定の単語は、通貨記号である。これにより、通貨記号を含む抽出対象文字列を抽出することができる。
【００３５】
以上、本発明について、上述した実施の形態を用いて説明したが、本発明は上述した実施の形態に限定されるものではない。例えば、画像処理装置１０５が、複合機１０１の各機能を備え、画像処理装置１０５のスキャナが生成したスキャン画像を用いて、図２の文字列抽出処理を行っても良い。
【００３６】
上述した実施の形態では、各行の文字列情報に対し、ステップＳ２０３の項目抽出処理を行う場合について説明したが、全ての文字列情報を連結してステップＳ２０３の項目抽出処理を行っても良い。
【００３７】
また、上述した実施の形態では、図７の変換テーブル７０１を用いて文字を変換しても良い。例えば、各文字に対して下位の文字認識結果が存在せず、第一候補のみで構成される図８（ａ）の文字列情報８０１に対し、ステップＳ４０５の昇格処理を行っても、誤認識された文字を補正すべき文字に置き換えることができない。これに対し、本実施の形態では、補正すべき文字を図７の変換テーブル７０１を用いて変換する。変換テーブル７０１（誤認識補正情報）には、文字認識における誤認識の補正に関する情報、具体的に、文字認識において想定される複数の誤認識パターン（変換元文字）と当該誤認識パターンを補正すべき文字（変換先文字）とが定義されている。ステップＳ４０５において、ＣＰＵ１０６は、変換テーブル７０１を用いて文字を変換する。例えば、ＣＰＵ１０６は、変換テーブル７０１を用いて、ステップＳ４０４の処理済みの図８（ｂ）の文字列情報８０２における「Ｏ」を、図８（ｃ）の文字列情報８０３のように「０」に変換し、「Ｉ」を「１」に変換する。このように文字の変換に変換テーブル７０１を用いることで、文字列情報の下位候補に数字が存在しない場合や、文字列情報から下位候補が得られない場合にも、限定文字種以外の文字で構成される特定の単語を含む抽出対象文字列を抽出することができる。
【００３８】
また、上述した実施の形態では、図９（ａ）の変換テーブル９０１を用いて区切り文字を１種の文字に統一しても良い。変換テーブル９０１には、変換テーブル７０１の項目の他に、区切り文字である「．」や「−」を「／」に変換する項目が追加されている。ステップＳ４０５において、ＣＰＵ１０６は、例えば、ステップＳ４０４の処理済みの文字列情報８０２における「Ｏ」を「０」に変換し、「Ｉ」を「１」に変換する。さらに、ＣＰＵ１０６は、図１０の文字列情報１００１のように、「．」を「／」に変換する。このように区切り文字を１種の文字に統一することで、正規表現式６０４より区切り文字に関する条件式が簡略化された図９（ｂ）の正規表現式９０２を用いてステップＳ４０６の正規表現検索を実施可能となる。その結果、正規表現式６０４を用いる場合より、正規表現検索に関する処理の負荷を軽減することができる。
【００３９】
上述した実施の形態では、ステップＳ４１１の判別の結果、変換済みの抽出対象文字列が不正である場合、当該抽出対象文字列の不正箇所を変換しても良い。例えば、図１１（ａ）の文字列画像１１０１を文字認識した際に、図１１（ｂ）の文字列情報１１０２のように、「００／１０／２０」と「１８：３０」との間の空白が空白文字として認識されず、「００／１０／２０１８：３０」のように誤認識されることがある。このような文字列情報１１０２に対して、ＣＰＵ１０６が、ステップＳ４０６の正規表現検索を実行すると、本来得たい「００／１０／２０」ではなく「００／１０／２０１８」が抽出対象文字列として抽出される。この値は、２０１８年１０月０日、又は２０１８年０月１０日を示すため、ステップＳ４１０、Ｓ４１１の処理において、不正な日付であると判別されてしまう。これに対し、本実施の形態では、ステップＳ４１１の判別の結果、変換済みの抽出対象文字列が不正である場合、当該抽出対象文字列の不正箇所が変換される。
【００４０】
図１２は、図４の項目抽出処理の変形例の手順を示すフローチャートである。図１２において、ＣＰＵ１０６は、ステップＳ４０１〜Ｓ４１１の処理を行う。ステップＳ４１１の判別の結果、変換済みの抽出対象文字列が正当であるとき、ＣＰＵ１０６は、ステップＳ４１２以降の処理を行う。ステップＳ４１１の判別の結果、変換済みの抽出対象文字列が不正であるとき、ＣＰＵ１０６は、文字列画像１１０１から得られた図１１（ｃ）の文字間距離情報１１０３を読み出す。ＣＰＵ１０６は、文字間距離情報１１０３に設定されている各文字における右隣りの文字までの距離を取得する。ＣＰＵ１０６は、一定以上の距離が空いている場合に、抽出対象文字列の分断処理を行う。例えば、ＣＰＵ１０６は、文字列画像１１０１に含まれる文字の平均的な高さの半分に相当する長さを閾値とし、上記距離がこの閾値以上である場合に一定以上の距離であると判別する。例えば、上記閾値を「２０」とした場合に、ＣＰＵ１０６は、文字間距離情報１１０３に基づいて８文字目の「０」の右隣りの文字までの距離が上記閾値を超えたと判別し、抽出箇所の不正箇所を変換する（ステップＳ１２０１）。ステップＳ１２０１では、ＣＰＵ１０６は、抽出対象文字列を、不正箇所を分断した文字列である「００／１０／２０」に変換する。
【００４１】
次いで、ＣＰＵ１０６は、抽出対象文字列が更新されたか否かを判別する（ステップＳ１２０２）。ステップＳ１２０２の判別の結果、抽出対象文字列が更新されないとき、ＣＰＵ１０６は、ステップＳ４０７の処理を行う。ステップＳ１２０２の判別の結果、抽出対象文字列が更新されたとき、ＣＰＵ１０６は、ステップＳ４１０の処理を行う。更新された抽出対象文字列は、「００年１０月２０日」を示す「００／１０／２０」であるので、ステップＳ４１０において、ＣＰＵ１０６は、上記抽出対象文字列が正当な日付であると判別し、ステップＳ４１２の処理を行う。
【００４２】
上述した実施の形態では、抽出対象文字列が不正である場合、当該抽出対象文字列の不正箇所が変換される。これにより、文字間スペースが正確に文字認識されないことに起因する抽出対象文字列の抽出精度の低下を抑制することができる。
【００４３】
上述した実施の形態では、ステップＳ４１１の判別の結果、変換済みの抽出対象文字列が不正である場合、図１３の変換テーブル１３０１を用いて不正箇所である文字を変換しても良い。変換テーブル１３０１には、変換テーブル９０１の項目の他に、文字認識において想定される誤認識パターンである「８」を「０」へ変換する項目が追加されている。「８」は優先文字情報９０３に含まれるため、図１２の項目抽出処理において、ＣＰＵ１０６は、ステップＳ４０５にて「８」を変換しない。ステップＳ４１１の判別の結果、変換済みの抽出対象文字列が不正である場合、ＣＰＵ１０６は、変換テーブル１３０１を用いて、文字列情報における「８」を「０」に変換する。例えば、「０」を「８」に誤認識した認識結果である文字列情報「２０１７年８１月１５日」は、不正な日付であるため、ＣＰＵ１０６は、ステップＳ１２０１にて「８」を「０」に変換し、抽出対象文字列を「２０１７年０１月１５日」に更新する。この値は正当な日付であるため、ステップＳ４１３にて項目抽出結果としてＲＡＭ１０８に格納される。
【００４４】
上述した実施の形態では、抽出対象文字列が不正である場合、変換テーブル１３０１を用いて不正箇所である文字が変換される。これにより、優先文字情報９０３に含まれる文字に誤認識したことに起因する抽出対象文字列の抽出精度の低下を抑制することができる。
【００４５】
本発明は、上述の実施の形態の１以上の機能を実現するプログラムをネットワーク又は記憶媒体を介してシステム又は装置に供給し、該システム又は装置のコンピュータにおける１つ以上のプロセッサがプログラムを読み出して実行する処理でも実現可能である。また、本発明は、１以上の機能を実現する回路（例えば、ＡＳＩＣ）によっても実現可能である。
【符号の説明】
【００４６】
１０５  画像処理装置
１０６  ＣＰＵ
３０１  スキャン画像
５０１〜５０４、８０１〜８０３  文字列情報
６０２、６０６、９０３  優先文字情報
６０３、６０７  優先単語情報
７０１、９０１  変換テーブル
【図１】
2020204886.tif 000003
【図２】
2020204886.tif 000004
【図３】
2020204886.tif 000005
【図４】
2020204886.tif 000006
【図５】
2020204886.tif 000007
【図６】
2020204886.tif 000008
【図７】
2020204886.tif 000009
【図８】
2020204886.tif 000010
【図９】
2020204886.tif 000011
【図１０】
2020204886.tif 000012
【図１１】
2020204886.tif 000013
【図１２】
2020204886.tif 000014
【図１３】
2020204886.tif 000015