(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-10-18
(45)【発行日】2024-10-28
(54)【発明の名称】画像処理装置、画像処理方法、プログラム
(51)【国際特許分類】
G06Q 40/12 20230101AFI20241021BHJP
G06V 30/412 20220101ALI20241021BHJP
G06V 30/42 20220101ALI20241021BHJP
【FI】
G06Q40/12
G06V30/412
G06V30/42
(21)【出願番号】P 2021177091
(22)【出願日】2021-10-29
【審査請求日】2023-10-12
(73)【特許権者】
【識別番号】000001007
【氏名又は名称】キヤノン株式会社
(74)【代理人】
【識別番号】100126240
【氏名又は名称】阿部 琢磨
(74)【代理人】
【識別番号】100223941
【氏名又は名称】高橋 佳子
(74)【代理人】
【識別番号】100159695
【氏名又は名称】中辻 七朗
(74)【代理人】
【識別番号】100172476
【氏名又は名称】冨田 一史
(74)【代理人】
【識別番号】100126974
【氏名又は名称】大朋 靖尚
(72)【発明者】
【氏名】榎本 誠
【審査官】佐藤 敬介
(56)【参考文献】
【文献】特開2021-033902(JP,A)
【文献】特開2013-251610(JP,A)
【文献】特開2018-097813(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06Q 10/00-99/00
G06V 30/412
G06V 30/42
(57)【特許請求の範囲】
【請求項1】
文書画像に
対する文字認識処
理により
当該文書画像から認識
された1以上の文字列と、予め定義された
第1の条件とに基づいて、
当該文書画像を発行した会社の種類を特定する第1の特定手段と、
当該1以上の文字列と、予め定義された第2の条件とに基づいて、当該文書画像を発行した会社の会社名を特定する第2の特定手段と、
会社名の情報を出力する出力手段と、
を有し、
前記出力手段は、
前記第2の特定手段により前記会社の会社名が特定された場合は、前記会社名の情報として当該特定された会社名を出力し、
前記第2の特定手段により前記会社の会社名が特定されず、前記第1の特定手段により前記会社の種類が特定された場合は、前記会社名の情報として、前記会社名の代わりに当該特定された会社の種類を出力する
ことを特徴とする画像処理装置。
【請求項2】
前記予め定義された
第1の条件は、
前記1以上の文字列の中に予め決められた文字列があるか否かであることを特徴とする請求項1に記載の画像処理装置。
【請求項3】
前記予め定義された
第1の条件は、論理演算に基づく条件を含むことを特徴とする請求項1に記載の画像処理装置。
【請求項4】
前記予め定義された
第1の条件は、画像サイズに基づく条件を含むことを特徴とする請求項1に記載の画像処理装置。
【請求項5】
前記第1の特定手段は、前記
1以上の文字列と、予め定義された
第3の条件とに基づいて、
当該文書画像を発行した会社の種類と購入先の情報とを特定することを特徴とする請求項1に記載の画像処理装置。
【請求項6】
コンピュータを、請求項1乃至
5のいずれか1項に記載の画像処理装置の各手段として機能させるためのプログラム。
【請求項7】
画像処理装置が有する制御手段が実行する制御方法であって、
文書画像に
対する文字認識処
理により
当該文書画像から認識
された1以上の文字列と、予め定義された
第1の条件とに基づいて、
当該文書画像を発行した会社の種類を特定する第1の特定ステップと、
当該1以上の文字列と、予め定義された第2の条件とに基づいて、当該文書画像を発行した会社の会社名を特定する第2の特定ステップと、
会社名の情報を出力する出力ステップと、
を有し、
前記出力ステップにおいては、
前記第2の特定ステップにおいて前記会社の会社名が特定された場合は、前記会社名の情報として当該特定された会社名を出力し、
前記第2の特定ステップにおいて前記会社の会社名が特定されず、前記第1の特定ステップにおいて前記会社の種類が特定された場合は、前記会社名の情報として、前記会社名の代わりに当該特定された会社の種類を出力する
ことを特徴とする
制御方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、文書画像の分類種別を特定する画像処理装置に関する。
【背景技術】
【0002】
近年、MFP(Multi Function Printer:プリント、コピー、ファクシミリなどの機能を備えた複合機)等に備え付けられたイメージスキャナを用いて文書をスキャンして電子化することが一般化している。また、デジタルカメラや、スマートフォンに代表されるモバイル機器のカメラ機能を用いて、文書を撮影することにより電子化することも一般化している。このように、手書き文字や活字を含む文書を、光学的にスキャンあるいは撮影することにより文書画像(スキャン文書画像)を得ることが容易になった。さらに、この文書画像に対して、光学文字認識処理(OCR処理)を行うことによって、文書画像内の文字画像をコンピュータが利用可能な文字コードに変換することができる。このような文字認識処理を用いることで、紙媒体の帳票(領収書、請求書など)をデジタルデータに変換してシステムに入力する作業(例えば、経費精算業務)を自動化することが行われるようになってきている。これにより、データ入力作業における生産性の向上が期待されている。
【0003】
図1(a)は、会計システムと、連携する各種システムとの間の情報の流れを示すものである。
【0004】
会計システム101は、会計や経理の作業を支援するシステムである。会計システム101は、会計や経理の担当者により、会社内の現金・預金や資産・商品等の取引を、経営的あるいは税務的な視点で分類しながら記録していくものであり、従来は様々な帳簿の形態であったものを電子化したものである。その記録内容は会計処理結果102として記憶され、必要に応じて各種帳簿107として出力されることになる。また、会計システムは、取引の際に、その内容や目的に応じて費目の分類を行う必要があり、各費目を識別するために、費目コードを使用する。
【0005】
また、現金や預金等の管理を行う入出金管理システム103、各部門別の予算の管理を行う予算管理システム104、商品の在庫を管理する在庫管理システム105、各種資産の管理を行う資産管理システム106がある。現金・預金や資産・商品等の取引が生じると、各管理システム(103、105、106)内にその増減が記録されることになる。そして、従来、会計や経理の担当者は、各管理システム(103、105、106)に記録された各取引の情報を参照して、会計システム102に記録していた。また、予算管理システム104は、予算を管理する際に、各予算の識別用に予算コードを使用する。
【0006】
図1(b)の帳票文書110は、事務用品を購入した際に発行された領収書(帳票文書)の例である。これは、事務用品の購入を行ったことを証明する証憑である。帳票文書110内の各部分に、様々な情報が記載されている。例えば、文書タイトル111には、帳票文書110のタイトルとなる部分で、本帳票文書が「領収証」であることが記載されている。発行日112は、本帳票文書が発行された日付を示している。会計や経理の業務では、本帳票文書の領収証を証憑として保存することを行う際に、本帳票文書の識別のために、発行日302の日付「2020年11月12日」の情報を利用することがある。
【0007】
発行者113には、本帳票文書を作成・発行した会社(発行者)の情報として、その会社名や住所・電話番号の情報が記載されている。なお、帳票文書を受け取って会計や経理の処理する際には、費目の分類を行うために、何を何のために購入したかを明確にする必要があり、その際に発行者113の会社名「AAA事務機(株)」の情報を利用することがある。また、本帳票文書の領収証を証憑として保存する際に、本帳票文書の識別のために会社名の情報も利用する場合がある。
【0008】
宛名114には、購入・支払いを行った会社の会社名が記載されている。また、合計金額115には、購入・支払いの合計金額が記載されている。帳票文書について会計や経理の処理を行う際には、この金額を(及び必要に応じてその税額も)取引の金額として使用することになる。明細116には、請求されている明細情報が記載されており、品名ごとに対し、その単価や数量、価格などの情報が記載されている。また、集計117には、その各価格の小計に対し、税金などの情報を加え、合計金額115の金額となることが示されている。
【0009】
図1(c)は、一般的に、会計や経理の担当者が、会計システム101に記録する帳簿の情報の例である。帳簿上の取引記録120は、会計・経理で用いる取引を帳簿の形式で記載したものであり、表の形態で示している。この表は一行が1つの取引になっており、取引の日付を先頭に、各情報が記載されるものになっている。
【0010】
以下では、ある部門(部署)における取引情報を記録する際の例について説明する。例えば、あらかじめ、その部門の予算として、予算管理システム104では、業務で使用する事務用品としての購入内容や金額を予算計上・記録しておく。そして、その部門では、その購入内容に従い、「2020年11月12日」に、会社名「AAA事務機(株)」の会社から事務用品を購入し、入出金管理システム108から現金で支払ったものとする。この場合、購入金額分の出金が行われたことを記録する必要がある。また、その際に、購入・支払いを行ったことを証明するために、会社名「AAA事務機(株)」の会社は、領収証110を証憑として発行され、入手できているものとする。この場合、帳簿上の取引記録120において、「貸方」以降の3列(左から6~8列目)には以下の内容が記載される。すなわち、入手金管理システムの出金記録における「現金」及びその種別を示すコード「100」と、予算管理システム104から予算情報である部門名「蒲田支店」及び予算コード「221」と、金額「7,700」円が支払われたこととを記載する。さらに、帳簿上の取引記録120の「借方」以降の3列(左から2~4列目)に以下の内容が記載される。すなわち、事務用品費として「蒲田支店」が「7,700」円を使用したことを記載する。したがって、会計・経理の担当者は、「借方」に、費目「事務用品費」と費目コード「300」を記載し、「部門」に、部門名「蒲田支店」及び予算コード「221」を記載し、「金額」に「7,700」円を記載する。さらに、その費目に分類した根拠として、帳票文書110の紐づけを容易にするために、「摘要」に「AAA事務機(株)」を記載している。このように記載することで、どの部門の予算に基づき、資産から現金を引き出し、事務用品を購入した、などの個々の事実を、事務用品費として使用した取引として、関連付けて記録することが可能となるのである。会計や経理の担当者は、この記録をする際に、証憑を含む各事実を確認し、費目の分類を行い会計システム101に記録していく。その記録内容を蓄積したものが会計処理結果102である。
【0011】
このような作業を行う際に、帳票文書110の記載内容(日付や金額、会社名など)が自動的に会計システム102に転記される機能があれば、会計や経理の担当者の作業負担を軽減することが可能である。そのため、近年、証憑等の文書をイメージスキャナで電子画像として読み込み、文字認識処理を行うことで、その記載情報を抽出して転記することが検討されている。
【0012】
しかしながら、領収書やレシート等の文書では、会社名がロゴや特殊なフォントで記載されていたり、スタンプで不鮮明な文字画像が押下されていたりしていて、文字認識処理で誤認識する場合があった。
【0013】
特許文献1では、学習用の画像から、少なくとも、日付、取引先、金額、適用、および、大きさや色などの外観を含む仕分け要素を抽出し、仕分け要素に対する勘定科目を機械学習することにより仕訳AIを作成する。そして、証憑画像を処理する際は、証憑画像から仕分け要素を抽出して、当該仕分けAIを用いて勘定科目を選定している。
【先行技術文献】
【特許文献】
【0014】
【発明の概要】
【発明が解決しようとする課題】
【0015】
特許文献1の方法では、予め機械学習によって学習する必要があり、学習用の画像データが多数必要となる。さらに、費目の仕訳のルールがユーザごとに異なっている場合は、ユーザごとに学習用データを用意する必要がある。
【課題を解決するための手段】
【0016】
上記課題を解決するために、本発明の画像処理装置は、文書画像に対する文字認識処理により当該文書画像から認識された1以上の文字列と、予め定義された第1の条件とに基づいて、当該文書画像を発行した会社の種類を特定する第1の特定手段と、当該1以上の文字列と、予め定義された第2の条件とに基づいて、当該文書画像を発行した会社の会社名を特定する第2の特定手段と、会社名の情報を出力する出力手段と、を有し、前記出力手段は、前記第2の特定手段により前記会社の会社名が特定された場合は、前記会社名の情報として当該特定された会社名を出力し、前記第2の特定手段により前記会社の会社名が特定されず、前記第1の特定手段により前記会社の種類が特定された場合は、前記会社名の情報として、前記会社名の代わりに当該特定された会社の種類を出力することを特徴とする。
【発明の効果】
【0017】
本発明では、ユーザごとに定義が異なる可能性のある費目ではなく、その費目の手がかりとなる分類種別を特定するためのルールベースの条件を予め定義しておく。そして、文書画像を処理する際は、当該条件に基づき特定された会社の分類種別を利用する。
【図面の簡単な説明】
【0018】
【
図1】経理・会計業務における処理概要と文書画像例とその処理の入力内容の例の図である。
【
図2】画像処理システムのシステム構成を示す図である。
【
図3】画像形成装置101のハードウェア構成を説明する図である。
【
図4】画像処理サーバ102、ユーザ端末103のハードウェア構成を説明する図である。
【
図5】第一の実施形態の領収書の例を示す図である。
【
図6】第一の実施形態の処理の全体の流れを示した図である。
【
図7】第一の実施形態の処理のルールの例を示した図である。
【
図8】第一の実施形態の項目値出力処理の流れを示した図である。
【
図9】第一の実施形態の領収書の例を示す図である。
【
図10】第二の実施形態の入力情報の例を示す図である。
【
図11】第二の実施形態の項目値出力処理の流れを示した図である。
【
図12】第三の実施形態の領収書の例を示す図である。
【
図13】第三の実施形態のルールの例を示す図である。
【発明を実施するための形態】
【0019】
以下、本発明の実施形態について図面に基づいて説明する。なお、実施形態は本発明を限定するものではなく、また、実施形態で説明されている全ての構成が本発明の課題を解決するため必須の手段であるとは限らない。
【0020】
<第1の実施形態>
本実施形態では、文書画像から項目名及び項目値を抽出して表示するデータ入力支援装置について説明する。
【0021】
図2は、第1の実施形態に係る画像処理システム200の構成例を示す図である。画像処理システム200は、画像形成装置201と、画像処理サーバ202と、ユーザ端末203とを含み、ネットワーク204により相互に接続され、通信可能である。
【0022】
画像形成装置201は、ユーザ端末203から画像データの印刷依頼(印刷データ)を受信して印刷することや、画像形成装置201に備わるスキャナで画像データを読み取ることや、スキャナで読み取った画像データを印刷することが可能である。また、画像形成装置201は、ユーザ端末203から受信した印刷データを保存したり、画像形成装置201のスキャナで読み取られた画像データをユーザ端末203や画像処理サーバ202に送信したりすることも可能である。画像形成装置201は、この他に、MFP(Multifunction Peripheral)等の公知の画像形成装置が有する機能を実現することが可能である。ユーザ端末203は、画像処理サーバ202から受信した画像処理結果を、ユーザインターフェイスを備えたアプリケーションで表示したり、ユーザからの指示に従って対話的に処理したりすることも可能である。なお、画像処理サーバ202は、クラウド、すなわちインターネット上に配置されていてもよい。
【0023】
本実施形態では、ユーザ端末203は、ディスプレイとキーボードやマウスを備えた一般的なPCを想定するが、例えばタッチパネルを備えたモバイル端末であってもよい。
【0024】
以下では、画像形成装置201が領収書などの文書をスキャンし、画像処理サーバ202が該文書の画像から情報を抽出し、ユーザ端末203でユーザがその情報の抽出結果の確認と修正を行う一連のデータ入力支援処理の説明を行う。
【0025】
図3は、画像形成装置201の構成の一例を示す図である。画像形成装置201は、コントローラ301、プリンタ302、スキャナ303、及び操作部304を有する。コントローラ301は、CPU311、RAM312、HDD313、ネットワークI/F314、プリンタI/F315、スキャナI/F316、操作部I/F317、及び拡張I/F318を有する。
【0026】
CPU311は、画像形成装置201の全体の動作を制御する。CPU311は、RAM312、HDD313、ネットワークI/F314、プリンタI/F315、スキャナI/F316、操作部I/F317、及び拡張I/F318とのデータの授受を制御可能である。また、CPU311は、HDD313から読み出した制御プログラム(命令)をRAM312に展開し、RAM312に展開した命令を実行する。
【0027】
HDD313は、CPU311で実行可能な制御プログラム、画像形成装置201で使用する設定値、及びユーザから依頼された処理に関するデータ等を記憶する。RAM312は、CPU311がHDD313から読み出した命令を一時的に格納するための領域を有する。また、RAM312は、命令の実行に必要な各種のデータを記憶しておくことも可能である。例えば画像処理では、CPU311は入力されたデータをRAM312に展開することで処理を行うことが可能である。
【0028】
ネットワークI/F314は、画像処理システム200内の装置とネットワーク通信を行うためのインターフェイスである。ネットワークI/F314は、データ受信を行ったことをCPU311に伝達することや、RAM312上のデータをネットワーク204に送信することが可能である。
【0029】
プリンタI/F315は、CPU311から送信された印刷データをプリンタ302に送信することや、プリンタ302から受信したプリンタの状態をCPU311に伝達することが可能である。スキャナI/F316は、CPU311から送信された画像読み取り指示をスキャナ303に送信し、スキャナ303から受信した画像データをCPU311に伝達することや、スキャナ303から受信した状態をCPU311に伝達することが可能である。
【0030】
操作部I/F317は、操作部304から入力されたユーザからの指示をCPU311に伝達することや、ユーザが操作するための画面情報を操作部304に伝達することが可能である。拡張I/F318は、画像形成装置201に外部機器を接続することを可能とするインターフェイスである。拡張I/F318は、例えば、USB(Universal Serial Bus)形式のインターフェイスを具備する。画像形成装置201は、USBメモリ等の外部記憶装置が拡張I/F318に接続されることにより、当該外部記憶装置に記憶されているデータの読み取り及び当該外部記憶装置に対するデータの書き込みを行うことが可能である。
【0031】
プリンタ302は、プリンタI/F315から受信した画像データを用紙に印刷することや、プリンタ302の状態をプリンタI/F315に伝達することが可能である。スキャナ303は、スキャナI/F316から受信した画像読み取り指示に従って、自身に置かれた用紙に表示されている情報を読み取ってデジタル化してスキャナI/F316に伝達することが可能である。また、スキャナ303は、自身の状態をスキャナI/F316に伝達することが可能である。
【0032】
操作部304は、画像形成装置201に対して各種の指示を行うための操作をユーザに行わせるためのインターフェイスである。例えば、操作部304は、タッチパネルを有する液晶画面を具備し、ユーザに操作画面を提供するとともに、ユーザからの操作を受け付ける。なお、操作部304の詳細は
図5で後述する。
【0033】
図4(a)は、画像処理サーバ202の構成の一例を示す図である。画像処理サーバ202は、CPU401、RAM402、HDD403、及びネットワークI/F404を有する。CPU401は、画像処理サーバ202の全体を制御する。CPU401は、RAM402、HDD403、及びネットワークI/F404とのデータの授受を制御可能である。また、CPU401は、HDD403から読み出したプログラム(命令)をRAM402に展開し、RAM402に展開した命令を実行することにより、後述するフローチャートの処理を実行する処理部として機能する。
【0034】
図4(b)は、ユーザ端末203の構成の一例を示す図である。ユーザ端末203は、CPU411、RAM412、HDD413、ネットワークI/F414、入出力I/F415を有する。CPU411は、ユーザ端末203の全体を制御する。CPU411は、RAM412、HDD413、ネットワークI/F414、及び入出力I/F415とのデータの授受を制御可能である。ディスプレイ420は、液晶などの表示デバイスによって構成され、入出力I/F415から受信した表示情報を表示する。入力装置430は、マウス、あるいはタッチパネルといったポインティングデバイス、およびキーボードによって構成され、ユーザからの操作を受け付けて、入出力I/F415に操作情報を送信する。HDD413には、画像処理サーバ202からネットワークI/F414を介して受信した画像処理結果を格納することが可能である。本実施形態では、CPU411は、HDD413から読み出したアプリケーションプログラムをRAM412に展開して実行することにより、操作部I/F415にて表示情報の表示とユーザ操作の受け付けを行う。
【0035】
図5は、画像形成装置で文書をスキャンすることにより生成された文書画像500の例である。
図5(a)の文書画像500の例は、タクシーの領収書を画像形成装置201によって読み取って得た画像である。
【0036】
本実施形態では、文書画像から会社名情報を抽出する処理について説明する。
図5のような領収書において、会社名情報は、会計システムや経費精算の処理において、交通費などの費目を推定するために使用される当該領収書の発行元情報のことである。会社名情報は、通常、固有の会社名そのものを示すが、本実施形態では、固有の会社名を特定することができなかった場合に、例えば鉄道会社や、航空会社、タクシー、有料道路といった、会社の分類種別の情報(会社名タイプの情報)を出力する。分類種別が鉄道会社、航空会社、タクシー等の領収書であるを判別できれば、交通費に関する支払いであると推測が可能となり、会計システムへの入力操作を行いやすくなる。すなわち、会計システムの摘要欄などに、固有の会社名を特定できた場合は会社名情報を表示し、固有の会社名を特定できなかった場合でも会社の分類種別情報を表示することで、ユーザの入力操作の支援が可能となる。本来は、固有の会社名の情報の方が、より詳細な情報であるのでそれを表示する方が望ましいが、様々な原因で固有の会社名を抽出することが困難である場合には、会社名以外の情報を用いて会社の分類種別を特定して表示する。なお、会社名の抽出の方法は、例えば会社名の辞書を用いて文書認識結果から検索する方法や、文書認識結果の電話番号を文字列規則によりパターン抽出し、会社名と電話番号を紐づけた辞書から検索する方法がある。どちらの方法も、会社名や電話番号に相当する箇所の文字を認識できなかった場合や誤認識した場合は、固有の会社名の特定ができない。
【0037】
図6は、本実施形態に係る会社名タイプ抽出処理(会社の分類種別の決定処理)を説明したフローチャートである。以下では、例えば
図5(a)の文書画像500が入力され、会社名タイプ(会社の分類種別)として「タクシー」であると決定する処理の説明を行う。
【0038】
S601において、画像処理サーバ202は、画像形成装置201からスキャナで読み取って得た文書画像500を取得する。
【0039】
S602において、画像処理サーバ202のCPU401は、文書画像500を解析して文字領域を検出し、当該文字領域について文字認識処理を実行する。文字認識処理の結果、CPU401は、文字領域の座標と、文字領域中の各文字の座標と、文字認識結果の文字コードとを特定する。ここで得た文字領域単位の文字コードの配列をOCR文字列と呼ぶ。
【0040】
S603において、画像処理サーバ202のCPU401は、HDD403に格納された情報抽出ルールをRAM402にロードする。この情報抽出ルールは、項目値を抽出するための辞書と、パターンの情報と、項目値を出力する条件とが含まれている。
【0041】
図7は、情報抽出ルールの例である。
図7(a)の表700は、情報抽出ルールとして定義される辞書のリストを表で示した図である。各行が辞書の定義を示していて、番号の列、辞書名の列と、その検索文字列のリストを表記した列がある。辞書701は「合計キー」という名前であり、「合計金額」、「お支払い額」、「領収額」といった合計金額の項目の手掛かりになりうる検索文字列のリストが関連付けられている。辞書702は「電話キー」という名前であり、「TEL」、「電話」といった電話番号の項目の手掛かりになりうる検索文字列のリストが関連付けられている。辞書703は「タクシー用語A」という名前であり、「タクシー」、「ハイヤー」といったタクシーの領収書を示す手掛かりになりうる検索文字列のリストが関連付けられている。辞書704は「タクシー用語B」という名前であり、「車番」、「車両番号」、「無線番号」といったタクシーの領収書を示す手掛かりになりうる検索文字列のリストが関連付けられている。辞書705は「タクシー用語C」という名前であり、「運賃」、「メーター料金」といったタクシーの領収書を示す手掛かりになりうる検索文字列のリストが関連付けられている。なお、本実施形態における辞書701乃至705は説明のための一例であり、これに限定するものではない。
【0042】
図7(b)の表710は、情報抽出ルールとして定義されるパターンのリストを表で示した図である。各行がパターンの定義を示していて、番号の列、パターン名の列と、その検索パターンを示した正規表現式の列がある。パターン711は「金額」という名称であり、正規表現式「¥?[¥d,]+円”」に合致する文字列パターンを抽出する。このパターン711の正規表現式は先頭に「¥」記号が0、または1個存在し、数字とカンマが1以上連続し、最後に「円」の文字が存在する、文字列のパターンを意味する。例えば、「¥1,000円」などの文字列がこのパターンに合致する。金額の正規表現式は説明のための1例であり、金額の値を表現する文字列を抽出するその他のパターンや文字認識結果の誤認識や揺れを考慮したパターンでもよいし、また複数の検索パターンを持っていてもよい。また、検索パターンの表現方法は正規表現に限定するものではない。パターン712は「電話番号」という名称であり、正規表現式「0¥d{1,3}[-(]¥d{2,4}[-)]¥d{4}」に合致する文字列パターンを持っている。このパターン712の正規表現式は、先頭の文字が「0」で、次に数字が1から3個連続し、次に「-」または「(」が1文字存在し、次に数字が2から4個連続し、次に「-」または「」」が1文字存在し、最後に数字が4個連続する文字列パターンを意味する。例えば「03(1234)5678」などの電話番号を表す文字列がこのパターンに合致する。電話番号の正規表現式は説明のための一例であり、金額の検索パターン同様に、これに限定しない。
【0043】
S604において、画像処理サーバ202のCPU401は、S602で得た文字認識結果のOCR文字列の中から、S603でロードした辞書リスト700の検索文字列の条件に合致する文字列をテキスト検索する。
図5(b)は、OCR文字列からテキスト検索した結果である。検索結果511は、辞書704のタクシー用語Bから「車番」が検索された結果である。検索結果512は、辞書705のタクシー用語Cから「運賃」が、検索された結果である。検索結果513は、辞書701の合計キーから「合計」が、検索された結果である。検索結果514は、辞書702の電話キーから「TEL」が、検索された結果である。
【0044】
S605において、画像処理サーバ202のCPU401は、S602で得た文字認識結果のOCR文字列の中から、S603でロードしたパターンリスト710の検索パターンに合致する文字列をテキスト検索する。
図5(b)の検索結果515、516は、パターン711の検索パターンに合致する金額が、検索された結果である。また、
図5(b)の検索結果517は、パターン712の検索パターンに合致する電話番号が、検索された結果である。
【0045】
図7(c)の表720は、S604~S605のテキスト検索結果を基にした項目値の出力条件の例である。表720は、出力条件番号の列と、出力する項目名称の列と、種別の列と、出力の条件の列と、判定対象になるテキスト検索結果を示す列と、出力値の列とがある。出力値は、出力条件に合致した時に何を項目値として出力するかを示しており、「バリュー検索結果値(バリューと判定したテキスト検索結果の値)」を出力対象としたり、「タクシー」のように項目値の文字列を出力対象としたりする。表720における種別の列に記載されている「検索結果位置」とは、テキスト検索結果の位置を条件判定に用いるものであることを示している。また、種別の列に記載されている「検索結果論理演算」とは、テキスト検索結果を用いて論理演算により算出するものであることを示している。
【0046】
表720における種別の列が「検索結果位置」であるときの条件列は、その位置関係がどの様な条件の時に出力するのかを表している。例えば、条件列の「バリューがキーの右方向」では、キーとバリューの二つのテキスト検索結果位置が、キーの右方向にバリューがあるときに条件を満たすことを示している。例えば、
図7(c)の出力条件721は、「合計金額」という項目名で、「合計キー」のテキスト検索結果をキーとし、「金額」のテキスト検索結果をバリューとして、キーの右方向にあるバリューがあるときに出力するという出力条件である。この出力条件721は、領収書において、「合計キー」辞書701の「合計金額」や「お支払い金額」といった文字列の右方向に記載されている「金額パターン」711の金額の値が、合計金額である可能性が高いことをルールとして記述したものである。同様に、電話番号の出力条件722は、キーを「電話キー」のテキスト検索結果、バリューを「電話番号」のテキスト検索結果として、キーの右方向にバリューがあるときに出力するという出力条件である。
【0047】
また、表720における種別の列が「検索結果論理演算」であるときの条件列は、検索結果がどの様な論理演算式を満たすときに出力するかを表している。「論理演算結果が真」では、指定された論理式の論理演算結果が真の時に出力することを示している。例えば、
図7(c)の出力条件723は、種別として検索結果論理演算を用いて、「タクシー用語A|(タクシー用語B&タクシー用語C)」という論理式が真であればタクシーを出力する出力条件である。この出力条件723は、辞書703の「タクシー用語A」が存在する、または辞書704の「タクシー用語B」と辞書705の「タクシー用語C」に属する文字列が存在すれば、会社名タイプの項目値の出力をタクシーにすることをルールとして記述したものである。即ち、辞書703の「タクシー用語A」は単独でタクシーと判別できる強い用語で、辞書704の「タクシー用語B」と辞書705の「タクシー用語C」は、一つではタクシーである根拠として弱いが、同時に出現したときにタクシーである可能性の高い用語を示す。
【0048】
S606において、画像処理サーバ202のCPU401は、S603でロードしたルールの出力条件から出力する項目値、即ち合計金額、電話番号、会社名タイプの項目名に対応する出力値を決定し出力する。S606の項目値出力処理は
図8のフローチャートを用いて詳細に説明する。
【0049】
図8は、本実施形態における項目値出力処理の詳細を説明したフローチャートである。
【0050】
S801において、画像処理サーバ202のCPU401は、S603でロードしたルールの出力条件を順に選択し、S802へ進む。例えば、最初に、
図7(c)の出力条件721を選択したものとする。
【0051】
S802において、画像処理サーバ202のCPU401は、S604、S605のテキスト検索結果から、出力条件の対象となるテキスト検索結果を取得する。出力条件721は、キーとなる「合計キー」のテキスト検索結果とバリューとなる「金額」のテキスト検索結果を対象としているため、それぞれ該当する「合計キー」のテキスト検索結果513と、金額のテキスト検索結果515,516を取得する。
【0052】
S803において、画像処理サーバ202のCPU401は、出力条件の種別を判別し、「検索結果位置」であればS804へ進み、「検索結果論理演算」であればS809へ進む。出力条件721を選択している場合は、種別が「検索結果位置」であるためS804へ進む。
【0053】
S804において、画像処理サーバ202のCPU401は、キーとなりうるテキスト検索結果と、バリューとなりうるテキスト検索結果とをそれぞれ1つ選択し、組み合わせを作る。出力条件721におけるキーはテキスト検索結果513、バリューはテキスト検索結果515と516であるため、テキスト検索結果513とテキスト検索結果515、テキスト検索結果513とテキスト検索結果516の2通りの組み合わせが存在する。最初にテキスト検索結果513とテキスト検索結果515を選択し、S805へ進む。
【0054】
S805において、画像処理サーバ202のCPU401は、S805で選択したキーとバリューの組み合わせが位置条件に合致するか判別し、合致すればS806へ、合致しなければS807へ進む。出力条件721の条件は、「バリューがキーの右方向」であるため、テキスト検索結果の座標値を用いてテキスト検索結果513の右方向にテキスト検索結果515が位置するか否かを判定する。本実施形態における、「バリューがキーの右方向」かの判定は、左上原点の座標系において、次の通りである。キーのテキスト検索結果の矩形座標を左上座標(KX1,KY1)-右下座標(KX2,KY2)とし、バリュー矩形座標を左上座標(VX1,VY1)-右下座標(VX2,VY2)としたとき、「KX2<VX1」かつ、「KY2>VY1」かつ、「KY1<VY2」を満たせばよい。即ちキーのテキスト検索結果の右端X座標よりバリューのテキスト検索結果の左端X座標が大きく、キーとバリューのテキスト検索結果の矩形のY座標値が重なることを条件とする。本実施形態における右方向か否かの判定方法は説明のための一例であり、その他の方法を用いてもよい。テキスト検索結果513とテキスト検索結果515は、その条件に合致しないため、S807へ進む。
【0055】
S807において、画像処理サーバ202のCPU401は、キーとバリューの組み合わせの残りがあるか判別し、あればS804へ、なければS808へ進む。テキスト検索結果513とテキスト検索結果515の組合せの判定を行った後では、まだ組み合わせが残っているため、S804へ進み、次の組み合わせであるテキスト検索結果513とテキスト検索結果517の組み合わせを選択し、S805へ進む。S805において、キーのテキスト検索結果513とバリューのテキスト検索結果516は、右方向にあるため、S806へ進む。
【0056】
S806において、画像処理サーバ202のCPU401は、テキスト検索結果513とバリューのテキスト検索結果516とが出力条件を満たしたために、その出力値を決定し、S807へ進む。すなわち、出力条件721の条件を、キーとなるテキスト検索結果513、バリューとなるテキスト検索結果516が満たしたために、「合計金額」としてテキスト検索結果516を出力として決定する。その後のS807では、「合計金額」のテキスト検索結果の組み合わせをすべて処理したために、S808へ進む。
【0057】
S808において、画像処理サーバ202のCPU401は、出力条件をすべて処理したか否かを判別し、未処理の出力条件があればS801へ進み、なければ処理を終了する。
【0058】
出力条件721の判定が終わった時点では、出力条件722、723の処理がまだ残っているため、S801へ進み、次の出力条件722を処理対象として、S802へ進む。出力条件722は、出力対象721と同様に検索結果位置であるため、S802乃至S808まで同様に処理を実施する。キーとなるテキスト検索結果514とバリューとなるテキスト検索結果517の組み合わせを評価し、この組み合わせが条件に合致したとして「電話番号」の出力値としてテキスト検索結果517を決定する。
【0059】
出力条件722の判定処理が終わった後、S801で出力条件723を処理対象としてS802へ進む。S802では、S604、S605のテキスト検索結果から対象となる辞書703の「タクシー用語A」、辞書704の「タクシー用語B」、辞書705の「タクシー用語C」のテキスト検索結果を取得する。その結果、辞書703の「タクシー用語A」はテキスト検索結果なし、辞書704の「タクシー用語B」はテキスト検索結果511、辞書705の「タクシー用語C」はテキスト検索結果512が取得でき、S803へ進む。S803では、出力条件723は、種別が検索結果論理演算であるため、S809へ進む。
【0060】
S809において、画像処理サーバ202のCPU401は、出力条件723の論理式に合致するかを判定し、合致すればS810へ進み、しなければS808へ進む。出力条件723は、論理式の「タクシー用語A|(タクシー用語B&タクシー用語C)」が真であるか否かを条件としている。この論理式にS802で取得したテキスト検索結果の数をあてはめると、「0|(1&1)」となり、この論理式は真となり、条件に合致したとしてS810へ進む。
【0061】
S810において、画像処理サーバ202のCPU401は、出力条件を満たしたために、その出力値を決定し、S808へ進む。出力条件723の場合は、「会社名タイプ(会社の分類種別)」の出力値として「タクシー」を出力として決定する。その後のS808では、すべての出力条件を処理したので処理を終了する。
【0062】
なお、本実施形態では、説明のために会社名タイプ(会社の分類種別)の項目名の出力条件を1つ(出力条件723)としたが、通常は判別する会社名タイプの種類の数だけ、同様に出力条件を追加すべきである。
【0063】
図6のフローチャートの説明に戻る。S607において、画像処理サーバ202のCPU401は、S605で出力した電話番号が会社名辞書に存在するか確認し、存在すれば検索結果から会社名を特定し、項目名「会社名」として検索結果を出力する。会社名辞書は、電話番号と会社名を紐づけたデータベースであり、電話番号から会社名を特定することもできる。ただし、すべての会社名の電話番号を網羅することは難しく、またOCRの認識誤りがある場合などは会社名の検索ができない。例えば、領収書500では、電話番号として、「03-1234-5678」が得られたが、会社名辞書から会社名を取得することができなかった場合は会社名無しとして、S608へ進む。なお、ここでは、電話番号に基づいて会社名を検索する方法を用いたが、これに限るものではなく、前述したように、電話番号から検索するだけでなく、文字認識結果の中から会社名そのものを検索するようにしても構わない。
【0064】
S608において、画像処理サーバ202のCPU401は、S601乃至S608までに決定した、「会社名」および「会社名タイプ(会社の分類種別)」に基づいて、最終的な会社名情報を決定する。「会社名」の出力値があればその出力値を、「会社名」の出力値がなく、「会社名タイプ(会社の分類種別)」の出力値があれば、「会社名タイプ」の出力値を、いずれもなければ出力なし、となる。ここでは、「会社名」が出力なし、「会社名タイプ」が出力されたので、「会社名タイプ(会社の分類種別)」である「タクシー」が最終的な「会社名情報」の出力として決定される。
【0065】
図6と
図8のフローチャートの処理を適用した結果、領収書500の例では、「合計金額」がテキスト検索結果516、「電話番号」がテキスト検索結果517、「会社名情報」が「タクシー」という3つの項目とその値が出力される。
【0066】
また、
図9の領収書900はガソリンスタンドの領収書の例である。この領収書900に対して、
図7の情報抽出ルールを用いてS601乃至S608の処理を実施した場合について説明する。文書認識結果に対してS603、S604のテキスト検索を実施した結果、辞書703の「タクシー用語A」は結果なし、辞書704の「タクシー用語B」はテキスト検索結果901の「車番」、辞書705の「タクシー用語C」は結果なし、の結果が得られる。出力条件723の論理式にこのテキスト検索結果の数をあてはめると、「0|(1&0)」となり、S809において条件に合致しないため「会社名タイプ」の出力は行わない。
【0067】
以上説明した通り、本実施形態を適用することで、文書認識結果の文字列から、辞書、パターンを検索し、その結果に対して論理演算することによって、会社名タイプ(会社の分類種別)として「タクシー」が出力できる。また、類似の用語を持つタクシー以外の領収書についても、誤判定せずに会社名タイプを出力なしにできる。
【0068】
<第2の実施形態>
第一の実施形態では、文書認識結果から用語の出現とその論理演算結果数から会社名タイプ(会社の分類種別)を判別したが、それ以外の条件、例えば領収書のサイズといった入力画像情報も用いるようにしてもよい。
【0069】
図10(a)は、入力された文書画像の例であり、鉄道の領収書1000であったとする。領収書1000には、鉄道会社の会社名や鉄道領収書である手がかりとして、ロゴ1001だけが存在する。通常、ロゴなどの装飾が掛かっている画像はOCRで認識するのが難しいため、OCR文字列から会社名を直接特定することは困難である。しかし、鉄道会社が発行する領収書は、切符と同じサイズで出力される場合があり、領収書のサイズに特徴がある場合がある。以下では、出力条件種別として画像サイズを用いる方法を説明する。
【0070】
図10(b)の表1010は、本実施形態における情報抽出ルールを示している。出力条件721乃至723は、
図7(c)の情報抽出ルールと同一内容である。出力条件1011は、会社名タイプを特定するための条件であり、画像サイズが85mmかつ高さ58mmであれば、「鉄道」を出力する。種別に、「画像サイズ」が新たに存在し、「画像サイズ」は入力された画像のサイズ情報が、その規定のサイズであれば、「鉄道」を出力する。
【0071】
図10(c)の表1020は、領収書1000のをS601において取得した画像情報を示している。画像情報1020は解像度が幅、高さ方向にそれぞれ300dpiで、幅1000ピクセル、高さ680ピクセルである。
【0072】
図11は、本実施形態の画像処理サイズを用いた項目値出力処理を説明するフローチャートである。
図8のフローチャートと同じ番号で示されるステップ(S801~S810)の処理は、
図8の対応するステップと同様の処理であるので、詳細な説明を省略する。
【0073】
S1101において、画像処理サーバ202のCPU401は、出力条件の種別を判別し、「検索結果位置」であればS804へ進み、「検索結果論理演算」であればS809へ進み、「画像サイズ」であればS1102へ進む。
【0074】
S1102において、画像処理サーバ202のCPU401は、検出した原稿画像のサイズが条件と合致するか否かを判別し、一致すればS1103、一致しなければS808へ進む。なお、本実施形態では、処理対象の画像は、原稿の輪郭にしたがってクロップ済みの画像であるものとするが、もし処理対象の画像が未クロップの画像である場合は、原稿の輪郭を検出して原稿サイズを求めて条件と合致するか判別するようにしてもよい。
【0075】
S1103において、画像処理サーバ202のCPU401は、出力値を決定する。
図11のフローチャートで領収書1000を処理した場合、S1102において出力条件1011のサイズに合致するか判別が行われる。幅1000ピクセルは300dpiの解像度において、85mm、高さ680ピクセルは300dpiの解像度において、58mmとなり、画像サイズの条件に合致するため、会社名タイプ(会社の分類種別)として鉄道が出力される。
【0076】
なお、出力条件1011の例では画像サイズのみを条件にしていたが、これに限るものではなく、単純に画像サイズだけではなく、OCR文字列からのテキスト検索結果からの論理演算結果を組み合わせた複合条件を用いてもよい。
【0077】
また、画像サイズだけでなく、用紙の色や地紋などの原稿の特徴を用いてもよい。
【0078】
以上説明した通り、本実施形態を適用することで、OCRの文字列から会社名タイプの特徴が得られずとも、画像サイズなどの画像情報を用いることで会社名タイプの出力ができる。
【0079】
<第3の実施形態>
第1の実施形態では、会社名タイプ(会社の分類種別)と固有の会社名との両方が特定できた場合、S608において、固有の会社名を最終的な会社名に係る情報として出力するようにしていた。通常は、会社名タイプと固有の会社名であれば、固有の会社名の方がより詳細な情報であるため、経費精算の用途では、会社名タイプは会社名の抽出が困難な場合の補助として使うようにしていた。しかし、特定の場合においては、会社名タイプ(分類種別)を出力する方が、望ましい場合が存在する。
【0080】
図12の領収書1200は、本実施形態における航空券の領収書である。領収書1200は、航空券をコンビニエンスストアで支払いした領収書で、記載の会社名や電話番号はコンビニエンスストアのものになっている。会社名を出力する際に、電話番号や会社名辞書を用いた場合に、会社名はこのコンビニエンスストアの名称である「CamonMart」となる。しかし、経費精算業務では、コンビニエンスストアの固有の会社名より、航空券というタイプを出力する方が、使用用途を入力する支援情報として適切である。
【0081】
図13は、本実施形態におけるルールの例である。
図13(a)の表1300は、辞書1301、1302、1303、1304を持つ、辞書のリストである。辞書1301は会社名タイプ(購入タイプ)が航空券であることの手がかりとなる、「AIRLINE」、「航空」の検索文字列を持つ航空券用語の辞書である。辞書1302は、コンビニ発行の手がかりとなる、「コンビニ」の検索文字列を持つコンビニ用語の辞書である。辞書1303は、Web発行の領収書の手がかりとなる、「表示日」を持つWeb用語の辞書である。辞書1304は、旅行代理店発行の領収書の手がかりとなる、「トラベル」、「代理店」、「エージェンシー」を持つ代理店用語の辞書である。
【0082】
図13(b)の表1310は、これらの用語を用いた出力条件のリストである。出力条件1311は、「会社名タイプ(購入タイプ)」の項目名、条件種別「検索結果論理演算」で、「航空券用語&コンビニ用語」の条件を持ち、出力値として「航空券(コンビニ)」を出力する。出力条件1312は、「会社名タイプ(購入タイプ)」の項目名、条件種別「検索結果論理演算」で、「航空券用語&Web用語」の条件を持ち、出力値として「航空券(オンライン)」を出力する。出力条件1313は、「会社名タイプ(購入タイプ)」の項目名、条件種別「検索結果論理演算」で、「航空券用語&代理店用語」の条件を持ち、出力値として「航空券(代理店)」を出力する。この出力条件1311,1312、1313の項目名が会社名タイプ(購入タイプ)として定義されているのは、会社名タイプの情報に加えて、それをどこで購入、すなわち支払いをしたかを示す購入先の情報を追加で出力していることを示している。出力条件1311は、航空券であることを示す用語に加えて、コンビニであることを示す用語が存在すれば、「航空券(コンビニ)」すなわち、コンビニ支払いの航空券であることを出力する。出力条件1312は、航空券であることを示す用語に加えて、Web発行であることを示す用語が存在すれば、「航空券(オンライン)」すなわち、オンライン支払いの航空券であることを出力する。出力条件1313は、航空券であることを示す用語に加えて、代理店発行であることを示す用語が存在すれば、「航空券(代理店)」すなわち、代理店支払いの航空券であることを出力する。
【0083】
領収書1200の画像に対して、辞書1300と出力条件1310に基づいて
図6および
図8のフローチャートに示される処理を実行した場合について説明する。領収書1200には、辞書1301で検索されたテキスト検索結果1201の「航空」、辞書1302で検索されたテキスト検索結果1202の「コンビニ」が存在する。そのため、出力条件1311の条件に合致し、会社名タイプ(購入タイプ)として「航空券(コンビニ)」の出力値が得られる。
【0084】
図13(c)の表1320は、S608の会社名情報決定の際に、出力する会社名情報を決定するための条件をリストにした表である。会社名情報決定条件リスト1320は、条件番号の列、会社名が取得できたか否かの条件列、会社名タイプ(購入タイプ)が取得できたか否かの条件列、購入タイプがいずれであったかの条件列と、条件に合致した時に会社名情報出力としていずれの出力値を使うのかを持っている。表の上の列から順に判定し、合致した行の会社名情報出力を用いる。会社名情報決定条件1321は、「会社名」があり、「会社名タイプ」もあり、「購入タイプ」がコンビニだった場合は、会社名情報として「会社名タイプ(購入タイプ)」を出力することを表している。会社名情報決定条件1322は、「会社名」があり、「会社名タイプ」もあり、「購入タイプ」が代理店だった場合は、会社名情報として「会社名タイプ(購入タイプ)」を出力することを表している。会社名情報決定条件1323は、「会社名」があり、かつ会社名タイプ(購入タイプ)が取得されなかった場合は、会社名情報として「会社名」を用いることを表している。会社名情報決定条件1324は、「会社名」がなし、「会社名タイプ」がある場合は、「会社名タイプ(購入タイプ)」を出力することを表している。会社名情報決定条件1325は、「会社名」、「会社名タイプ」のいずれも取得されなかった場合は、会社名情報はなしとなることを表している。
【0085】
この表を基に、会社名情報を決定すると、領収書1200については、会社名情報決定条件1321に合致し、会社名の情報として、会社名ではなく、購入タイプ「航空券」を出力する。
【0086】
以上説明した通り、本実施形態を適用することで、単純に会社名が得られたときは必ず固有の会社名を用いる以外に、特定の条件では会社名タイプの値を優先することで、経費精算業務に必要な値を出力することができる。
【0087】
<その他の実施例>
また、本発明は、以下の処理を実行することによっても実現される。その処理は、上述した実施例の機能を実現させるソフトウェア(プログラム)を、ネットワーク又はコンピュータ読取可能な記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ(またはCPUやMPU等)がプログラムを実行する、というものである。