(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-06-14
(45)【発行日】2024-06-24
(54)【発明の名称】情報処理装置、情報処理方法、およびプログラム
(51)【国際特許分類】
G06V 30/412 20220101AFI20240617BHJP
【FI】
G06V30/412
(21)【出願番号】P 2020103763
(22)【出願日】2020-06-16
【審査請求日】2023-06-08
(73)【特許権者】
【識別番号】599001389
【氏名又は名称】株式会社プリマジェスト
(74)【代理人】
【識別番号】100079108
【氏名又は名称】稲葉 良幸
(74)【代理人】
【識別番号】100109346
【氏名又は名称】大貫 敏史
(74)【代理人】
【識別番号】100117189
【氏名又は名称】江口 昭彦
(74)【代理人】
【識別番号】100134120
【氏名又は名称】内藤 和彦
(72)【発明者】
【氏名】佐藤 広行
(72)【発明者】
【氏名】深谷 昌紀
【審査官】佐田 宏史
(56)【参考文献】
【文献】特開2015-052864(JP,A)
【文献】特開2005-173730(JP,A)
【文献】特開2020-021461(JP,A)
【文献】特開2012-194879(JP,A)
【文献】特開2009-288994(JP,A)
【文献】特開2016-051339(JP,A)
【文献】特開平06-103409(JP,A)
【文献】高木 郁子、外2名,“多様なレイアウトの帳票からのデータ抽出・反映のための項目名と項目値の自動関連付け手法”,電子情報通信学会技術研究報告,日本,一般社団法人電子情報通信学会,2019年02月28日,Vol.118, No.483,pp.89-94
【文献】Junichi Hirayama et al.,"Development of Template-Free Form Recognition System",2011 International Conference on Document Analysis and Recognition,米国,IEEE,2011年09月18日,pp.237-241
(58)【調査した分野】(Int.Cl.,DB名)
G06V 30/412
(57)【特許請求の範囲】
【請求項1】
帳票の画像データを取得する取得部と、
画像データ上の罫線と前記罫線に囲まれた文字列とによって構成されるセルを抽出するセル抽出部と、
前記セルの中から、アンカとして、所定の項目名を含むセルの指定を、ユーザから受け付ける第1受付部と、
前記第1受付部で指定されたセルに対して、前記所定の項目名を検出するための条件と、他のアンカがすでに指定されているとき、前記他のアンカの少なくとも1つと前記第1受付部で指定されたセルとの位置関係を示す条件とを登録する第1登録部と、
前記セルの中から、特定の項目名に対応する項目値を含むセルの指定を、前記ユーザから受け付ける第2受付部と、
前記第2受付部で指定されたセルに対して、複数のアンカの少なくとも1つ及び/又は他の項目値を含むセルの少なくとも1つとの間の位置関係を示す条件を登録する第2登録部と、
前記取得部において、新たな帳票の画像データが取得されたとき、前記第1登録部及び前記第2登録部で登録された条件に基づいて、当該画像データから項目名と項目値とを関連付けて出力する出力部と、
前記セルの中から、アンカとして、前記新たな帳票の画像データが前記第1登録部及び前記第2登録部で登録された条件に合致しても当該帳票を出力させないためのセルの指定を、前記ユーザから受け付ける第3受付部と、
前記第3受付部で指定されたセルに対して、前記所定の項目名を検出するための条件と、他のアンカがすでに指定されているとき、前記他のアンカの少なくとも1つと前記第3受付部で指定されたセルとの位置関係を示す条件とを登録する第3登録部と、を備
え、
前記出力部はさらに、前記取得部において、新たな帳票の画像データが取得されたとき、前記第3登録部で登録された条件に基づいて、当該画像データから項目名と項目値とを出力しない、
情報処理装置。
【請求項2】
前記第1登録部及び/又は前記第3登録部が登録する前記位置関係は、前記画像データ上において、前記第1受付部及び/又は前記第3受付部で指定されたセルの座標に対して前記他のアンカの少なくとも1つの座標が取りうる範囲を規定する、
請求項
1に記載の情報処理装置。
【請求項3】
前記第2登録部が登録する前記位置関係は、前記画像データ上において、前記第2受付部で指定されたセルに対して前記複数のアンカの少なくとも1つ及び/又は他の項目値を含むセルの少なくとも1つの座標が取りうる範囲を規定する、
請求項
1又は
2に記載の情報処理装置。
【請求項4】
前記第1受付部及び/又は前記第3受付部は、前記所定の項目名のセルに含まれる1つ以上の文字、又は前記所定の項目名のセルに含まれない1つ以上の文字の指定を前記ユーザから受け付け、
前記所定の項目名を検出するための条件は、前記所定の項目名のセルに含まれると指定された文字を含むこと、又は前記所定の項目名のセルに含まれないと指定された文字を含まないことを含む、
請求項
1から
3のいずれか一項に記載の情報処理装置。
【請求項5】
前記第1登録部、前記第2登録部及び/又は第3登録部はさらに、指定されたセルの文字長に関する条件を登録する、
請求項
1から
4のいずれか一項に記載の情報処理装置。
【請求項6】
前記第1登録部、前記第2登録部及び/又は前記第3登録部はさらに、指定されたセルが存在しうる前記画像データ上の範囲に関する条件を登録する、
請求項
1から
5のいずれか一項に記載の情報処理装置。
【請求項7】
前記セル抽出部は、互いに接する複数のセルの集合ごとにレイアウト番号を採番し、抽出したセルに、当該セルが属する集合の前記レイアウト番号を付与する、
請求項
1から
6のいずれか一項に記載の情報処理装置。
【請求項8】
前記出力部はさらに、前記画像データに含まれるセルから読み出された項目値に対して、当該セルに予め定義されたフィールド名を割り当てて出力する、
請求項
1から
7のいずれか一項に記載の情報処理装置。
【請求項9】
前記出力部はさらに、前記フィールド名に予め定義された表番号を割り当てて、前記画像データに含まれるセルから読み出された項目値を
、表ごとに出力する、
請求項
8に記載の情報処理装置。
【請求項10】
前記出力部はさらに、前記画像データに含まれるセルから読み出された項目値又は当該セルの位置もしくは大きさを、前記画像データの他のセルに含まれる文字又は他のセルの位置もしくは大きさに基づいて変更して出力する、
請求項
1から
9のいずれか一項に記載の情報処理装置。
【請求項11】
前記セルに対する前記項目値のセルとして出力できる出力回数の指定を、前記ユーザから受け付ける第4受付部をさらに備え、
前記出力部は、さらに前記出力回数に基づいて、前記画像データから項目値を出力する、
請求項
1から
10のいずれか一項に記載の情報処理装置。
【請求項12】
前記セル抽出部は、前記罫線が複数行の文字列を囲う場合、それぞれの行の文字列で構成された仮想セルを抽出し、
前記第1受付部は、前記仮想セルの中から、アンカとして、前記所定の項目名を含むセルの指定を、前記ユーザから受け付け、
前記第1登録部は、前記第1受付部で指定された仮想セルに対して、前記仮想セルの行を示す条件を登録し、
前記第2受付部は、前記仮想セルの中から、特定の項目名に対応する項目値を含むセルの指定を、前記ユーザから受け付け、
前記第2登録部は、前記第2受付部で指定された仮想セルに対して、前記仮想セルの行を示す条件を登録し、
前記第3受付部は、前記仮想セルの中から、アンカとして、前記新たな帳票の画像データが前記第1登録部及び前記第2登録部で登録された条件に合致しても当該帳票を出力させないための仮想セルの指定を、前記ユーザから受け付け、
前記第3登録部は、前記第3受付部で指定された仮想セルに対して、前記仮想セルの行を示す条件を登録する、
請求項
1から
11のいずれか一項に記載の情報処理装置。
【請求項13】
コンピュータに、
帳票の画像データを取得する取得機能と、
画像データ上の罫線と前記罫線に囲まれた文字列とによって構成されるセルを抽出するセル抽出機能と、
前記セルの中から、アンカとして、所定の項目名を含むセルの指定を、ユーザから受け付ける第1受付機能と、
前記第1受付機能で指定されたセルに対して、前記所定の項目名を検出するための条件と、他のアンカがすでに指定されているとき、前記他のアンカの少なくとも1つと前記第1受付
機能で指定されたセルとの位置関係を示す条件とを登録する第1登録機能と、
前記セルの中から、特定の項目名に対応する項目値を含むセルの指定を、前記ユーザから受け付ける第2受付機能と、
前記第2受付機能で指定されたセルに対して、複数のアンカの少なくとも1つ及び/又は他の項目値を含むセルの少なくとも1つとの間の位置関係を示す条件を登録する第2登録機能と、
前記取得機能において、新たな帳票の画像データが取得されたとき、前記第1登録機能及び前記第2登録機能で登録された条件に基づいて、当該画像データから項目名と項目値とを関連付けて出力する出力機能と、
前記セルの中から、アンカとして、前記新たな帳票の画像データが前記第1登録機能及び前記第2登録機能で登録された条件に合致しても当該帳票を出力させないためのセルの指定を、前記ユーザから受け付ける第3受付機能と、
前記第3受付機能で指定されたセルに対して、前記所定の項目名を検出するための条件と、他のアンカがすでに指定されているとき、前記他のアンカの少なくとも1つと前記第3受付機能で指定されたセルとの位置関係を示す条件とを登録する第3登録機能と、を実現
し、
前記出力機能はさらに、前記取得機能において、新たな帳票の画像データが取得されたとき、前記第3登録機能で登録された条件に基づいて、当該画像データから項目名と項目値とを出力しない、
プログラム。
【請求項14】
コンピュータが、
帳票の画像データを取得
する取得ステップと、
画像データ上の罫線と前記罫線に囲まれた文字列とによって構成されるセルを抽出
するセル抽出ステップと、
前記セルの中から、アンカとして、所定の項目名を含むセルの指定を、ユーザから受け付け
る第1受付ステップと、
前記
第1受付ステップで指定されたセルに対して、前記所定の項目名を検出するための条件と、他のアンカがすでに指定されているとき、前記他のアンカの少なくとも1つと前記
第1受付ステップで指定されたセルとの位置関係を示す条件とを登録
する第1登録ステップと、
前記セルの中から、特定の項目名に対応する項目値を含むセルの指定を、前記ユーザから受け付け
る第2受付ステップと、
前記
第2受付ステップで指定されたセルに対して、複数のアンカの少なくとも1つ及び/又は他の項目値を含むセルの少なくとも1つとの間の位置関係を示す条件を登録
する第2登録ステップと、
前記取得ステップにおいて、新たな帳票の画像データが取得されたとき、前記
第1登録ステップ及び前記第2登録ステップで登録された条件に基づいて、当該画像データから項目名と項目値とを関連付けて出力する
出力ステップと、
前記セルの中から、アンカとして、前記新たな帳票の画像データが前記第1登録ステップ及び前記第2登録ステップで登録された条件に合致しても当該帳票を出力させないためのセルの指定を、前記ユーザから受け付ける第3受付ステップと、
前記第3受付ステップで指定されたセルに対して、前記所定の項目名を検出するための条件と、他のアンカがすでに指定されているとき、前記他のアンカの少なくとも1つと前記第3受付ステップで指定されたセルとの位置関係を示す条件とを登録する第3登録ステップと、を有し、
前記出力ステップはさらに、前記取得ステップにおいて、新たな帳票の画像データが取得されたとき、前記第3登録ステップで登録された条件に基づいて、当該画像データから項目名と項目値とを出力しない、
情報処理方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、情報処理装置、情報処理方法、およびプログラムに関する。
【背景技術】
【0002】
従来、人の手で行っていた帳票を用いる業務をコンピュータ等により自動化する技術が知られている。このような技術の例として、OCR(Optical Character Recognition)を用いて、スキャナー等で読み取った帳票の画像データを画像解析して帳票の文字を認識(文字認識)することが行われている。
【0003】
さらに上記のような技術に関して、下記特許文献1では、帳票の画像データの罫線を抽出して表形式を解析し、この解析結果に基づいて指定された項目名(例えば「年月日」など)に対応する文書(例えば、項目名「年月日」に対応する項目値「20.2.13」「20.2.15」など)の文字イメージを画像データから切り出して文字認識処理をする文字読取装置が記載されている。またこの文字読取装置では、項目名に対応する文書の文字イメージを切り出す際、項目名の左右両端の水平方向の二つの座標(X座標)から下の行に垂線を下ろし、その垂線に最も近い文字を項目値として見つけてその行の文字イメージを切り出すことが記載されている。
【先行技術文献】
【特許文献】
【0004】
【発明の概要】
【発明が解決しようとする課題】
【0005】
上記特許文献1では、項目名の下の行にある項目値、すなわち項目値に対して垂直方向にある項目値を読み取ることができる。しかしながら帳票によっては項目名の下ではなく項目名の右横に項目値が配置されているものなどあり、帳票の種類によって項目名に対応する項目値の配置の方向は様々である。
【0006】
そこで、本発明は、帳票の画像データから項目値を読み取る際に、項目名に対応する項目値の様々な配置の方向に対応できる情報処理装置、情報処理方法およびプログラムを提供することを目的とする。
【課題を解決するための手段】
【0007】
本発明の一態様に係る情報処理装置は、帳票の画像データを取得する取得部と、画像データ上の罫線と罫線に囲まれた文字列とによって構成されるセルを抽出するセル抽出部と、セルの中から、アンカとして、所定の項目名を含むセルの指定を、ユーザから受け付ける第1受付部と、第1受付部で指定されたセルに対して、所定の項目名を検出するための条件と、他のアンカがすでに指定されているとき、他のアンカの少なくとも1つと第1受付部で指定されたセルとの位置関係を示す条件とを登録する第1登録部と、セルの中から、特定の項目名に対応する項目値を含むセルの指定を、ユーザから受け付ける第2受付部と、第2受付部で指定されたセルに対して、複数のアンカの少なくとも1つ及び/又は他の項目値を含むセルの少なくとも1つとの間の位置関係を示す条件を登録する第2登録部と、取得部において、新たな帳票の画像データが取得されたとき、第1登録部及び第2登録部で登録された条件に基づいて、当該画像データから項目名と項目値とを関連付けて出力する出力部と、を備える。
【0008】
本発明の一態様に係るプログラムは、コンピュータに、帳票の画像データを取得する取得機能と、画像データ上の罫線と前記罫線に囲まれた文字列とによって構成されるセルを抽出するセル抽出機能と、前記セルの中から、アンカとして、所定の項目名を含むセルの指定を、前記ユーザから受け付ける第1受付機能と、前記第1受付機能で指定されたセルに対して、前記所定の項目名を検出するための条件と、他のアンカがすでに指定されているとき、前記他のアンカの少なくとも1つと前記第1受付部で指定されたセルとの位置関係を示す条件とを登録する第1登録機能と、前記セルの中から、特定の項目名に対応する項目値を含むセルの指定を、前記ユーザから受け付ける第2受付機能と、前記第2受付機能で指定されたセルに対して、前記複数のアンカの少なくとも1つ及び/又は他の項目値を含むセルの少なくとも1つとの間の位置関係を示す条件を登録する第2登録機能と、前記取得機能において、新たな帳票の画像データが取得されたとき、前記第1登録機能及び前記第2登録機能で登録された条件に基づいて、当該画像データから項目名と項目値とを関連付けて出力する出力機能と、を実現する。
【0009】
本発明の一態様に係る情報処理方法は、コンピュータが、帳票の画像データを取得し、画像データ上の罫線と前記罫線に囲まれた文字列とによって構成されるセルを抽出し、前記セルの中から、アンカとして、所定の項目名を含むセルの指定を、前記ユーザから受け付け、前記指定されたセルに対して、前記所定の項目名を検出するための条件と、他のアンカがすでに指定されているとき、前記他のアンカの少なくとも1つと前記指定されたセルとの位置関係を示す条件とを登録し、前記セルの中から、特定の項目名に対応する項目値を含むセルの指定を、前記ユーザから受け付け、前記指定されたセルに対して、前記複数のアンカの少なくとも1つ及び/又は他の項目値を含むセルの少なくとも1つとの間の位置関係を示す条件を登録し、新たな帳票の画像データが取得されたとき、前記登録された条件に基づいて、当該画像データから項目名と項目値とを関連付けて出力する。
【0010】
本発明によれば、帳票の画像データから項目値を読み取る際に、項目名に対応する項目値の様々な配置の方向に対応できる情報処理装置、情報処理方法およびプログラムを提供することができる。
【図面の簡単な説明】
【0011】
【
図1】本実施形態に係る帳票読取システムのハードウェア構成の一例を示す図である。
【
図2】本実施形態に係るサーバ装置の機能構成の一例を示す図である。
【
図3】本実施形態に係る帳票イメージ及びセルの一例を示す図である。
【
図4】本実施形態に係るセルの指定操作の出力及びセル間の位置関係における裕度の一例を示す図である。
【
図5】本実施形態に係るセル間のx方向の位置関係の一例を示す図である。
【
図6】本実施形態に係るセル間のx方向の位置関係を表す数式の一例を示す図である。
【
図7】本実施形態に係るセル間のy方向の位置関係の一例を示す図である。
【
図8】本実施形態に係るセル間のy方向の位置関係を表す数式の一例を示す図である。
【
図9】本実施形態に係るセルの取りうる範囲の指定の一例を示す図である。
【
図10】本実施形態に係る項目名及び項目値の出力の一例を示す図である。
【
図11】本実施形態に係る項目名及び項目値の出力の一例を示す図である。
【
図12】本実施形態に係るサーバ装置の動作例を示す図である。
【
図13】本実施形態に係るサーバ装置のハードウェア構成の一例を示す図である。
【
図14】本実施形態に係る帳票イメージ及びNotセルの一例を示す図である。
【
図15】本実施形態に係る帳票イメージ及び仮想セルの一例を示す図である。
【発明を実施するための形態】
【0012】
添付図面を参照して、本発明の好適な実施形態(本実施形態)について説明する。なお、各図において、同一の符号を付したものは、同一又は同様の構成を有する。
【0013】
本実施形態では、OCR(光学式文字読取:Optical Character Recognition)を用いて、スキャナー等で読み取った準定型の帳票の画像を画像解析して帳票の文字を認識(文字認識)する例を説明する。なお本実施形態では、帳票を口座振替依頼書とする例を用いるが、これに限る趣旨ではない。
【0014】
「準定型の帳票」とは、帳票画像上における読取対象文字列の記載位置が変化するも、読取対象の種類は固定である帳票をいう。他方「定型の帳票」とは、読取対象文字列の記載位置及び種類が固定である帳票をいう。すなわち準定型の帳票は、口座振替依頼書の種類ごとに読取対象文字列の記載位置が変化するため、OCRを用いた文字認識だけではなく、認識した文字列のうちどの文字列が口座振替の申込者氏名や口座番号なのかを特定する必要がある。
【0015】
<1.システム構成>
図1を参照して、本実施形態に係る帳票読取システム1のシステム構成例を説明する。
【0016】
帳票読取システム1は、紙媒体の帳票を読み取るためのシステムである。
図1に示すように、帳票読取システム1は、サーバ装置100と、ユーザが使用する端末200と、スキャナー300とを含む。サーバ装置100と、端末200と、スキャナー300とは、ネットワークNを介して互いに接続されている。
【0017】
ネットワークNは、無線ネットワークや有線ネットワークにより構成される。ネットワークの一例としては、携帯電話網や、PHS(Personal Handy-phone System)網、無線LAN(Local Area Network)、3G(3rd Generation)、LTE(Long Term Evolution)、4G(4th Generation)、5G(5th Generation)、WiMax(登録商標)、赤外線通信、Bluetooth(登録商標)、有線LAN、電話線、電灯線ネットワーク、IEEE1394等に準拠したネットワークがある。
【0018】
サーバ装置100は、端末200及びスキャナー300との通信や画像解析等のデータ解析処理が可能な情報処理装置である。サーバ装置100は、所定のプログラムを実行することにより、スキャナー300と連携して、スキャナー300が紙媒体の帳票を読み取って出力した帳票の画像データ(以下、単に「画像データ」ともいう)を画像解析したり、帳票の項目それぞれの項目名と当該項目名に対応する項目値を特定したりする機能を実現する。
【0019】
サーバ装置100は、具体的には、スキャナー300から取得した帳票の画像データから、この帳票の各項目における項目名と項目値に関する条件(以下、単に「条件」ともいう)を登録する。この条件には、例えば、後述の検出条件、位置制約条件、または文字制約条件等が含まれる。また条件それぞれは、例えば、関数であってもよい。またサーバ装置100は、この登録した条件に基づいて、新たに取得した帳票の画像データから項目名と項目値とを関連付けて、端末200等に出力する。
【0020】
端末200は、サーバ装置100との通信やユーザに対して帳票の各項目の項目名と項目値とを出力可能なスマートフォン、ラップトップ端末又はデスクトップ端末等の端末装置である。端末200は、所定のプログラムを実行することにより、サーバ装置100と連携して帳票に関する情報を送受信したり帳票に関する画面を出力したりする機能を実現する。
【0021】
スキャナー300は、文字や写真、絵などの原稿をデジタル画像データに変換する画像入力装置である。なお、スキャナー300に関して、紙媒体の帳票を読み取って画像データに変換できればどのような装置でもよく、カメラ機能を備えたスマートフォン、ラップトップ端末等の端末装置であってもよい。スキャナー300は、画像データにおける文字認識が可能であってもよい。
【0022】
スキャナー300は、例えば、紙媒体の帳票(口座振替依頼書)を読み込むと、読み込んだ帳票の画像データをサーバ装置100に転送する。
【0023】
<2.機能構成>
図2を参照して、本実施形態に係るサーバ装置100の機能構成例を説明する。
【0024】
図2に示すように、サーバ装置100は、制御部110と、通信部130と、記憶部140とを備える。
【0025】
制御部110は、取得部111と、セル抽出部112と、第1受付部113と、第1登録部114と、第2受付部115と、第2登録部116と、出力部117、第4受付部118と、を備える。
【0026】
-取得部-
取得部111は、帳票の画像データを取得する。
【0027】
-セル抽出部-
セル抽出部112は、取得部111により取得された画像データ上の罫線と当該罫線に囲まれた文字列とによって構成されるセルを抽出する。セル抽出部112は、例えば、OCRを用いて、帳票の画像データ上の文字列や罫線(例えば、表の横線や縦線など)を認識し、文字列を囲う罫線からなる四角枠を認識してもよい。セル抽出部112は、この認識した四角枠と四角枠が囲う文字列をセルとして抽出してもよい。
【0028】
セル抽出部112は、例えば、抽出したセルそれぞれにおいて、左上の頂点の座標と、セルの幅と、セルの高さと、セルを構成する文字列と、を特定してもよい。
【0029】
セル抽出部112は、例えば、互いに接する複数のセルの集合ごとを、レイアウトとして認識してもよい。言い換えれば、レイアウトは、セルの集合の単位である。セル抽出部112は、例えば、互いに接する複数のセルの集合ごとにレイアウト番号を採番し、抽出したセルに、当該セルが属する集合のレイアウト番号を付与してもよい。
【0030】
セル抽出部112は、例えば、レイアウトそれぞれにおいて、レイアウト内での行の番号(以下、「行番号(行#)」ともいう)を、行それぞれに付与してもよい。また、セル抽出部112は、例えば、レイアウトそれぞれにおいて、レイアウト内での列の番号(以下、列番号(列#)ともいう)を採番して、列それぞれに付与してもよい。
【0031】
ここで
図3を参照して、セル抽出部112によるセルの抽出処理の例を説明する。
図3(a)は、帳票(本例では、「口座振替依頼書」とする)の画像データのイメージ(以下、「帳票イメージ」ともいう)の例を示す図である。
図3(b)は、抽出されたセルのイメージの例を示す図である。
【0032】
図3(a)に示すように、帳票イメージ201は、帳票のタイトル202(文字列「口座振替依頼」)と、会社名203(文字列「プリ銀行」)と、表204と、を含む。表204は、項目名の列2041(文字列「申込者氏名」、「カナ氏名」、「口座番号」)と、項目名それぞれに対応する項目値の列2042(文字列「田中一郎」、「タナカイチロウ」、「1234567」)と、を含む。
【0033】
セル抽出部112は、表204の罫線に囲まれた項目名の文字列と項目値の文字列をそれぞれセルとして抽出する。また、セル抽出部112は、例えば、表204の罫線に囲まれていない帳票のタイトル202や会社名203の文字列もセルとして抽出してもよい。
【0034】
セル抽出部112は、独立したセルの帳票のタイトル202と会社名203を、それぞれレイアウトとして抽出してもよい。
【0035】
セル抽出部112は、互いに接する複数のセルの集合である表204、表205、表206、表207をそれぞれレイアウトとして認識してもよい。
【0036】
セル抽出部112は、抽出したレイアウトにレイアウト番号(L♯0~5)を採番する。セル抽出部112は、例えば、採番したレイアウト番号を、レイアウトそれぞれに左上から右下へと割り付けてもよい。
【0037】
セル抽出部112は、例えば、抽出したセルの項目名「申込者氏名」のセルや項目値「田中一郎」のセルに、当該セルが属する集合のレイアウト番号「L♯2」を付与してもよい。
【0038】
セル抽出部112は、表204において、行それぞれに行番号(行#0~2)と、列それぞれに列番号(列#0~1)を採番する。セル抽出部112は、図示していないが、他の表205~207においても同様に採番する。
【0039】
図3(b)に示すように、セル抽出部112は、セルそれぞれにおいて、左上の頂点の座標(x、y)と、幅(w)と、高さ(h)と、文字列(「口座振替依頼」)と、を特定する。言い換えれば、セルそれぞれは、左上の頂点の座標(x、y)と、幅(w)と、高さ(h)と、文字列と、を持つ。
【0040】
-第1受付部-
図2に戻って説明を続ける。第1受付部113は、セル抽出部112により抽出されたセルの中から、アンカとして、所定の項目名を含むセルの指定を、ユーザから受け付ける。
【0041】
第1受付部113は、例えば、端末200に表示された帳票イメージ201を含む画面(以下、「帳票読取画面」という)へのユーザの操作入力により、当該ユーザからの指定を受け付けてもよい。なお、以降の説明において、このユーザからの「指定」は、例えば、新規登録、既存の変更又は既存の削除等の端末200による操作入力を含むものとする。
【0042】
帳票読取画面は、例えば、各種条件や抽出したセルに関する情報の出力するための出力領域、ユーザからの各種指定を受け付けるための入力フィールド等を含んでもよい。
【0043】
「アンカ」とは、セルの種類の一つであり、項目名を示すものである。また項目名のセルから項目値のセルに到達するまでに経由する中間のセルもアンカとしてもよい。なお以降の説明において、アンカに指定されたセルを、「アンカセル」ともいう。セルの種類は、アンカの他に、「データ」、「Notセル」、「仮想セル」などを含んでもよい。この「データ」は、項目値を示すものである。なお以降の説明において、データに指定されたセルを、「データセル」ともいう。「Notセル」及び「仮想セル」については、後述する。
【0044】
第1受付部113は、例えば、アンカセルにおいて、指定された順番に沿って、ac1、ac2、ac3…と採番してもよい。
【0045】
第1受付部113は、例えば、所定の項目名のセルに含まれる1つ以上の文字、又は所定の項目名のセルに含まれない1つ以上の文字の指定をユーザから受け付けてもよい。この際、所定の項目名を検出するための条件(以下、「検出条件」ともいう)は、例えば、所定の項目名のセルに含まれると指定された文字を含むこと、又は所定の項目名のセルに含まれないと指定された文字を含まないことを含んでもよい。
【0046】
上記構成によれば、所定の項目名に含まれる(又は含まれない)1つ以上の文字により、画像データから所定の項目名のセルを検出することができる。このため上記構成によれば、精度よく画像データから所定の項目名のセルを検出することができる。
【0047】
第1受付部113は、例えば、項目名2041a(申込者氏名)のアンカセルに含まれる1つ以上の文字「申込」、「込者」または「者氏」の指定をユーザから受け付けてもよい。この際、項目名2041a(申込者氏名)のアンカセルの検出条件には、『「申込」、「込者」または「者氏」の文字を含むこと』とする文字の制約条件(以下、「文字制約条件」ともいう)が含まれる。
【0048】
第1受付部113は、例えば、検出条件それぞれに、和名及び/又は英名の指定をユーザから受け付けてもよい。第1受付部113は、例えば、上記の文字制約条件に対して和名(例えば、『「申込」等が含まれるか』)及び/又は英名(例えば、「moushikomi」)の指定をユーザから受け付けてもよい。
【0049】
第1受付部113は、例えば、所定の項目名のセルの文字長の指定をユーザから受け付けてもよい。
【0050】
第1受付部113は、例えば、所定の項目名のセルが存在しうる画像データ上の範囲の指定をユーザから受け付けてもよい。
【0051】
第1受付部113は、例えば、
図9(a)に示すように、帳票イメージ201上において、所定項目名のセルが存在しうる画像データ上の範囲の指定を、クリック操作により始点を受け付けてもよい。そして第1受付部113は、当該始点からドラッグ&ドロップ操作して描画した四角枠、すなわち画像データ上の範囲401を、所定項目名のセルが存在しうる範囲としてユーザから受け付けてもよい。
【0052】
第1受付部113は、上記画像データ上の範囲の指定について、他の例として、対象とするセルの選択を受け付け、選択されたセルを囲う四角枠(例えば、
図9(a)の範囲401)を生成してもよい。そして第1受付部113は、当該生成した四角枠が囲う範囲を、所定項目名のセルが存在しうる範囲としてユーザから受け付けてもよい。
【0053】
第1受付部113は、他の例として、
図9(b)に示すように、所定項目名のセルが存在しうる画像データ上の範囲の指定を、対象の範囲の左上の頂点の座標(x,y)(例えば、x=178、y=374)と、取りうる幅(w)(例えば、w≦862)と、取りうる高さ(h)(例えば、h≦132)のそれぞれの数値でユーザから受け付けてもよい。
【0054】
第1受付部113は、例えば、第1受付部113でアンカとして指定されたセルと他のアンカの少なくとも1つとの位置関係(以下、単に「位置関係」ともいう)の指定をユーザから受け付けてもよい。
【0055】
第1受付部113は、例えば、ユーザから、フィールド名の定義の指定を受け付けてもよい。第1受付部113は、例えば、データセルそれぞれに対してフィールド名の定義の指定を受け付けてもよい。
【0056】
「フィールド名」とは、項目値(データセルの文字列)を出力する際に、当該項目値に対応付ける名前である。例えば、項目値2042b(dc4)に関して、読み込んだ帳票の項目名(例えば、「カナ氏名」)とは異なる名前を付けたい場合、このフィールド名(例えば、「お客様カナ氏名」)を定義することで異なる新しい名前を付けて項目値を出力することができる。また、フィールド名は、例えば、二つの項目値を合わせて出力させる際、この出力させる単位ごとに定義できてもよい。
【0057】
-第1登録部-
第1登録部114は、第1受付部113で指定されたセルに対して、所定の項目名を検出するための条件(検出条件)と、他のアンカがすでに指定されているとき、他のアンカの少なくとも1つと第1受付部113で指定されたセルとの位置関係を示す条件(以下、「位置制約条件」ともいう)とを登録する。
【0058】
第1登録部114は、例えば、条件それぞれを関数として登録してもよい。第1登録部114は、例えば、使用する言語がC++の場合、上記の文字制約条件を、find関数(指定する1以上の文字が検出された場合はその位置を、指定する1以上の文字が検出されなかった場合は、「-1」を返す関数)として登録してもよい。第1登録部114は、例えば、条件(関数)それぞれに対して、ユーザから指定された和名及び/又は英名を対応付けて登録してもよい。
【0059】
第1登録部114は、例えば、上記位置関係を算出してもよいし、ユーザからの指定された上記位置関係を登録してもよい。第1登録部114は、例えば、上記位置関係として、ユーザから指定された後述の
図6や
図8で示すような数式(例えば、x方向の位置関係を表す数式「x1-xA<x4<=x1+xA」やy方向の位置関係を表す数式「y1+h1-yA<y4」等)を登録してもよい。
【0060】
第1登録部114が登録する位置関係は、例えば、画像データ上において、第1受付部で指定されたセルの座標に対して他のアンカの少なくとも1つの座標が取りうる範囲を規定してもよい。
【0061】
上記構成によれば、第1登録部114は、指定されたアンカセルに対して、他のアンカセルの取りうる範囲を規定することで、アンカセル間の相対的な位置関係を登録することができる。このため上記構成によれば、登録された位置関係に基づいて、指定されたアンカセルが他のアンカセルに対してどの方向に配置されていても特定することができる。
【0062】
ここで
図4~8を参照して、第1登録部114が登録する条件の位置関係の一例を説明する。
【0063】
図4(a)は、セルの指定操作の出力の例を示す図である。
図4(b)は、算出されたセル間の位置関係における裕度の例を模式的に示す図である。
図5は、ac1とac2のx方向の位置関係を模式的に表した図である。
図6は、
図5で示したac1とac2のx方向の位置関係を数式で表した図である。
図7は、ac1とac2のy方向の位置関係を模式的に表した図である。
図8は、
図7で示したac1とac2のy方向の位置関係を数式で表した図である。
【0064】
本例では、ac1の左上の頂点の座標(x,y)は(x1,y1)という。またac1の幅(w)はw1といい、ac1の高さ(h)はh1という。
【0065】
図4(a)に示すように、先ず、第1受付部113は、例えば、ユーザから、項目名2041a(申込者氏名)のセルをアンカとする指定を受け付ける。第1受付部113は、この際、項目名2041aのセルを「ac1」と採番する。
【0066】
次に、第1受付部113は、項目名2041b(カナ氏名)のセルをアンカとする指定を受け付ける。第1受付部113は、この際、項目名2041bのセルを「ac2」と採番する。次に、第1受付部113は、項目名2041cのセル(口座番号)をアンカとする指定を受け付ける。第1受付部113は、この際、項目名2041cのセルを「ac3」と採番する。
【0067】
この際、後述の出力部117は、帳票イメージ201上に、項目名2041aのアンカセルの指定とその次に項目名2041bのアンカセルの指定を受け付けたことを示す画像、言い換えればこれらのアンカセル間の位置関係を示す画像(項目名2041aから項目名2041bに向けて伸びる矢印)を、出力させてもよい。また出力部117は、帳票イメージ201上に、さらにその次に項目名2041cのアンカセルの指定を受け付けたことを示す画像(項目名2041bから項目名2041cに向けて伸びる矢印)を、出力させてもよい。
【0068】
次に、第1登録部114は、第1受付部113が項目名2041bのアンカセルの指定を受け付けた際に、項目名2041aのアンカセルと項目名201bのアンカセルとの位置関係を算出する。
【0069】
第1登録部114は、例えば、二つのセル(四角枠)間の位置関係の算出を、例えば、x方向(例えば、
図3に示す帳票イメージの横方向)とy方向(例えば、
図3(a)に示す帳票イメージ201の横方向と垂直の方向(縦方向))で行ってもよい。
【0070】
図4(b)に示すように、第1登録部114は、例えば、帳票イメージ取得時の位置の揺らぎ等を考慮するために、x方向やy方向の相対位置において、それぞれに裕度を持たせてもよい。この裕度の値は、例えば、帳票の種類等に応じて4ピクセル等の値を適宜設定すればよい。またこの裕度の値は、例えば、企業単位、業務単位、または帳票単位等で設定されてもよい。本例では、x方向の裕度をX裕度(xA)といい、y方向の裕度をY裕度(yA)という。
【0071】
図5に示すように、第1登録部114は、ac1の左辺にX裕度(xA)をもたせて、その左右に境界線(破線)を設定する。また第1登録部114は、ac1の右辺にもX裕度(xA)を持たせて、その左右に境界線を設定する。第1登録部114は、ac1に対するac2の位置パターン(1)から(13)について、ac2の左辺と右辺がこれら境界線のどちら側にあるかでac2を分類し、x方向のac1との位置関係を算出する。
【0072】
第1登録部114が上記算出したac1とac2のx方向の位置関係は、例えば、
図6で示すような数式(関数)であってもよい。すなわちac1とac2のx方向の位置関係は、ac1のx座標(x1)に対してac2の少なくとも1つのx座標(x2)が取りうる範囲を規定する数式であってもよい。
【0073】
上記ac1とac2のx方向の位置関係は、上記のようにx座標が取りうる範囲を規定することに加えて又は替えて、レイアウトの列番号(列#)で規定されてもよい。例えば、
図5に示すac1に対するac2の位置パターン(1)や(13)の場合、x方向の位置関係は、a2の列番号(例えば、列#=2)とa1の列番号(例えば、列#=0)の差分(列数=2)により規定されてもよい。このような構成によれば、セルの間が左右に離れていても、より精密にx方向の位置関係を規定することができる。
【0074】
図7に示すように、第1登録部114は、ac1の上辺に、Y裕度(yA)をもたせて、その上下に境界線を設定する。また第1登録部114は、ac1の下辺にも、Y裕度(yA)をもたせて、その上下に境界線を設定する。第1登録部114は、ac1に対するac2の位置パターン(1)から(13)について、ac2の上辺と下辺がこれら境界線のどちら側にあるかでac2を分類し、y方向のac1との位置関係を算出する。
【0075】
第1登録部114が上記算出したac1とac2のy方向の位置関係は、例えば、
図8に示すような数式であってもよい。すなわちac1とac2のy方向の位置関係は、ac1のy座標(y1)に対してac2の少なくとも1つのy座標(y2)が取りうる範囲を規定する数式であってもよい。
【0076】
上記ac1とac2のy方向の位置関係は、上記のようにy座標が取りうる範囲を規定することに加えて又は替えて、レイアウトの行番号(行#)で規定されてもよい。例えば、
図7に示すac1に対するac2の位置パターン(1)や(13)の場合、y方向の位置関係は、a2の行番号(例えば、行#=2)とa1の行番号(例えば、行#=0)の差分(行数=2)により規定されてもよい。このような構成によれば、セルの間が上下に離れていても、より精密にy方向の位置関係を規定することができる。
【0077】
第1登録部114は、例えば、
図4(a)を用いた上記の説明のとおり、第1受付部113が項目名2041aと項目名2041bとをアンカac1とac2とする指定を受け付けると、ac1とac2のx方向の位置関係を
図6のパターン(7)の数式として算出する。また第1登録部114は、同様に、ac1とac2のy方向の位置関係を
図8のパターン(12)として算出する。第1登録部114は、これらの算出したac1とac2の位置関係を条件の一つとして記憶部140に登録する。なお、第1登録部114において、第1受付部113が項目名2041cをac3とする指定をさらに受け付けた場合も同様に、ac2とac3の位置関係を算出する。第1登録部114は、算出したac2とac3の位置関係を条件の一つに加えて記憶部140に登録する。
【0078】
図2に戻って説明を続ける。第1登録部114はさらに、ユーザから指定されたアンカセルの文字長に関する文字制約条件を登録してもよい。ここで「文字長」とは、例えば、セルの文字列における文字数やバイト数の取りうる範囲を示すものである。例えば、第1登録部114が文字長を「6(文字)以下」とする文字制約条件(文字長<=6)を登録する場合、出力部117は、読み込んだ帳票のセルの文字長が6文字以下であれば当該文字制約条件に合致するとして当該セルの文字列を所定の項目名の文字列として出力する。
【0079】
上記構成によれば、第1登録部114は、読み込んだ帳票の項目名の文字列について、文字長で制約を付けて抽出することができる。このため上記構成によれば、より精度よく画像データから所定の項目名のセルを検出することができる。
【0080】
第1登録部114はさらに、ユーザから指定されたセルが存在しうる画像データ上の範囲に関する位置制約条件を登録してもよい。例えば、第1登録部114が
図9(a)に示すように帳票イメージ上で指定されたセルが存在しうる画像データ上の範囲401を登録する場合、出力部117は、この範囲401に含まれるセルに限定して出力する。
【0081】
上記構成によれば、第1登録部114は、セル間の位置関係のような相対的なセルの位置ではなく、絶対的なセルの位置についてその存在しうる範囲を条件として登録することができる。
【0082】
第1登録部114は、例えば、帳票の種類ごとに、条件を登録してもよい。第1登録部114は、例えば、複数の条件が登録されている場合、帳票の種類ごとに、複数の条件それぞれに優先度を登録してもよい。第1登録部114は、この優先度を、例えば、条件の種類(例えば、位置制約条件や文字制約条件等)に応じて自動で登録してもよいし、ユーザからの指定を受け付けて登録してもよい。
【0083】
-第2受付部-
第2受付部115は、セル抽出部112により抽出されたセルの中から、データセルとして、特定の項目名に対応する項目値を含むセルの指定を、ユーザから受け付ける。
【0084】
第2受付部115は、例えば、
図4(a)に示すように、データセルとして、項目名2041a~cに対応する項目値2042a~cのセルの指定を受け付ける。
【0085】
第2受付部115は、指定された順番に沿って、データセルにおいて、dc1、dc2、dc3…と採番してもよい。なお本例では、下一桁の番号をアンカセルとデータセルとを合わせた連番とする例を説明するが、これに限る趣旨ではない。第2受付部115は、ユーザから指定された項目値2042aのデータセルに「dc4」を、次に指定された項目値2042bのデータセルに「dc5」を、次に指定された項目値2042cのデータセルに「dc6」を採番する。
【0086】
第2受付部115は、例えば、ユーザから、データセルに関して、第1受付部113と同様の指定を受け付けてもよい。この「第1受付部113と同様の指定」とは、例えば、条件それぞれに対する和名及び/又は英名の指定、文字長の指定、位置関係の指定、画像データ上の存在しうる範囲の指定等である。
【0087】
第2受付部115は、例えば、ユーザから、データセルに対して、出力する項目値のフォーマットの編集(以下、「出力編集」ともいう)の指定を受け付けてもよい。この「出力編集」は、例えば、項目値の文字列の編集またはセルの位置(xy座標)や大きさ(高さや幅)の編集を含んでもよい。この文字列編集は、例えば、(ア)複数の項目値の文字列を組み合わせる編集、(イ)項目値の文字列の少なくとも一部を別の文字列に変換させる編集、(ウ)項目値の文字列の一部を取り出す編集等であってもよい。
【0088】
第2受付部115は、上記(ア)の例として、例えば、項目値2042a(dc4)と項目値2042b(dc5)とを合わせて「申込者氏名(カナ氏名)」(すわなち、「田中一郎(タナカイチロウ)」)とするフォーマットで出力させるような場合、この出力編集を受け付ける。具体的には、第2受付部115は、文字列の編集として、dc4とdc5の文字列の変数をそれぞれs4とs5とすると、「s4(s5)」とする指定をユーザから受け付ける。また、セルの大きさの編集として、「w4+w4」とする指定をユーザから受け付ける。
【0089】
-第2登録部-
第2登録部116は、第2受付部115で指定されたセルに対して、複数のアンカの少なくとも1つ及び/又は他の項目値を含むセルの少なくとも1つとの間の位置関係を示す条件を登録する。
【0090】
第2登録部116が登録する位置関係は、例えば、画像データ上において、第2受付部115で指定されたセルに対して複数のアンカの少なくとも1つ及び/又は他の項目値を含むセルの少なくとも1つの座標が取りうる範囲を規定してもよい。
【0091】
上記構成によれば、第2登録部116は、指定されたデータセルに対して、アンカセルまたは他のデータセルの取りうる範囲を規定することで、セル間の相対的な位置関係を登録することができる。このため上記構成によれば、登録された位置関係に基づいて、指定されたデータセルがアンカセルに対してどの方向に配置されていても特定することができる。
【0092】
第2登録部116は、例えば、
図4(a)に示すように、第2受付部115で指定された項目値2042aのデータセル(dc4)に対して、項目名2041aのアンカセル(ac1)との間の位置関係を算出してもよい。第2登録部116は、算出した位置関係を条件の一つとして記憶部140に登録する。
【0093】
第2登録部116は、例えば、ac1とdc4のx方向の位置関係を、
図5及び6の位置パターン(12)の数式として算出する。また第2登録部116は、例えば、ac1とdc4のy方向の位置関係を、
図7及び
図8の位置パターン(7)として算出する。第2登録部116は、算出したこれらの位置関係それぞれを条件として記憶部140に登録する。
【0094】
第2登録部116は、例えば、
図4(a)に示すように、第2受付部115で指定された項目値2042bのデータセル(dc5)に対して、項目値2042aのデータセル(dc4)との間の位置関係を算出してもよい。第2登録部116は、算出した位置関係を条件の一つとして記憶部140に登録する。
【0095】
第2登録部116は、例えば、dc4とdc5のx方向の位置関係を、
図5及び6の位置パターン(7)の数式として算出する。また第2登録部116は、例えば、dc4とdc5のy方向の位置関係を、
図7及び
図8の位置パターン(12)として算出する。第2登録部116は、算出したこれらの位置関係それぞれを条件として記憶部140に登録する。
【0096】
第2登録部116はさらに、指定されたセルの文字長に関する条件を登録してもよい。
【0097】
第2登録部116はさらに、指定されたセルが存在しうる画像データ上の範囲に関する条件を登録してもよい。
【0098】
第2登録部116は、例えば、条件それぞれに対して、ユーザから指定された和名及び/又は英名を対応付けて登録してもよい。
【0099】
第2登録部116は、例えば、第1登録部114と同様に、帳票の種類ごとに、条件を登録してもよい。第2登録部116は、例えば、複数の条件が登録されている場合、帳票の種類ごとに、複数の条件それぞれに優先度を登録してもよい。
【0100】
-出力部-
出力部117は、例えば、
図10(a)に示すように、セル抽出部112により抽出されたセルに関する情報を帳票読取画面等に出力してもよい。この「セルに関する情報」とは、例えば、セルそれぞれのレイアウト番号、行番号、列番号、セルを構成する文字列(
図10(a)では、「認識結果」と表記)、セルの左上の頂点のx座標の値及びy座標の値、幅、高さ等を含んでもよい。出力部117は、例えば、帳票読取画面を出力するための出力情報を生成して、通信部130を介して端末200に送信してもよい。
【0101】
出力部117は、取得部111において、新たな帳票の画像データが取得されたとき、第1登録部114及び第2登録部116で登録された条件に基づいて、当該画像データから項目名と項目値とを関連付けて出力する。出力部117は、例えば、新たな帳票の画像データから抽出されたセルが登録された条件に合致した場合には、出力してもよい。また出力部117は、例えば、新たな帳票の画像データから抽出されたセルに対して、第1登録部114及び第2登録部116で登録された条件の優先順位で条件に合致するか否か判定し、項目名と項目値を出力してもよい。
【0102】
上記構成によれば、出力部117は、登録された位置制約条件等の条件に基づいて、画像データから項目名と項目値とを関連付けて出力することができる。このため上記構成によれば、帳票の画像データから項目値を読み取って出力する際に、項目名に対応する項目値の様々な配置の方向に対応できる。
【0103】
出力部117は、例えば、第1登録部114及び第2登録部116で登録された上記の条件に基づいて、
図3(a)の帳票イメージから、
図10(b)に示すように、項目名と項目名に対応する項目値とを関連付けて、帳票読取画面等に出力する。本例では、項目名は「認識箇所名称」、項目値は「認識結果」とする。
【0104】
出力部117はさらに、画像データに含まれるセルから読み出された項目値に対して、当該セルに予め定義されたフィールド名を割り当てて出力してもよい。出力部117は、例えば、
図11(a)に示すように画像データに含まれるセルが読み出された場合、
図11(b)に示すように、読み込んだ項目名とは異なる定義されたフィールド名(本例では、「認識箇所名称」と表記)を項目値(本例では、「認識結果」と表記)に対して割り当てて出力してもよい。
【0105】
上記構成によれば、出力部117は、ユーザが希望する名前を付けて項目値を出力することができる。
【0106】
出力部117さらに、フィールド名に予め定義された表番号(表♯)を割り当てて、画像データに含まれるセルから読み出された項目値を、表ごとに出力してもよい。
【0107】
上記構成によれば、出力部117は、読み込んだ帳票のレイアウトとは異なる表構成で、項目値を出力することができる。
【0108】
出力部117は、さらに後述の第4受付部118で指定された出力回数に基づいて、画像データから項目値を出力してもよい。出力部117は、例えば、この出力回数分、画像データに含まれるセルから読み込んだ項目値を表ごとにフィールド名を割り当てて出力してもよい。なお、この「出力回数」は、典型的には、出力する回数だが、これに限定されない。出力回数は、他の例として、画像データに含まれるセルが条件に合致できる回数であってもよい。
【0109】
例えば、読み込んだ帳票において項目名や項目値が重複するレイアウトがあった場合に、登録された条件に重複して合致してしまい、重複して出力されてしまうことがある。上記構成によれば、出力部117は、このような場合において、重複して出力してしまうことを抑止することができる。
【0110】
出力部117はさらに、画像データに含まれるセルから読み出された項目値又は当該セルの位置もしくは大きさを、画像データの他のセルに含まれる文字又は他のセルの位置もしくは大きさに基づいて変更して出力してもよい。
【0111】
出力部117は、例えば、第2受付部115で指定された出力編集に基づいて、セルから読み出された項目値又は当該セルの位置もしくは大きさを、他のセルに含まれる文字又は他のセルの位置もしくは大きさに基づいて変更して出力してもよい。
【0112】
第4受付部118は、セルに対する項目値のセルとして出力できる出力回数の指定を、ユーザから受け付ける。
【0113】
通信部130は、ネットワークNを介して、スキャナー300から帳票の画像データを受信したり、画像データから抽出した項目名や項目値を出力するための出力情報を端末200に送信したりする。
【0114】
記憶部140は、例えば、登録された条件を示す条件情報や出力情報などを記憶してもよい。また記憶部140は、データベースマネジメントシステム(DBMS)を利用して各情報を記憶してもよいし、ファイルシステムを利用して上記情報を記憶してもよい。DBMSを利用する場合は、記憶部140では、上記情報ごとにテーブルを設けて、当該テーブル間を関連付けて上記情報が管理されてもよい。
【0115】
<4.動作例>
【0116】
図12を参照して、本実施形態に係るサーバ装置100の動作例を説明する。
図12(a)は、条件を登録する場面のサーバ装置100の処理の流れの一例を示すフロー図である。
図12(b)は、登録した条件に基づいて新たな帳票を読み取る場面のサーバ装置100の処理の流れの一例を示すフロー図である。
【0117】
図12(a)に示すように、取得部111は、帳票の画像データを取得する(S10)。セル抽出部112は、画像データ上の罫線と当該罫線に囲まれた文字列とによって構成されるセルを抽出する(S11)。
【0118】
第1受付部113は、セルの中から、アンカとして、所定の項目名を含むセルの指定を、ユーザから受け付ける(S12)。第1登録部114は、第1受付部113で指定されたセルに対して、所定の項目名を検出するための条件と、他のアンカがすでに指定されているとき、他のアンカの少なくとも1つと第1受付部113で指定されたセルとの位置関係を示す条件とを登録する(S13)。
【0119】
第2受付部115は、セルの中から、特定の項目名に対応する項目値を含むセルの指定を、ユーザから受け付ける(S14)。第2登録部116は、第2受付部115で指定されたセルに対して、複数のアンカの少なくとも1つ及び/又は他の項目値を含むセルの少なくとも1つとの間の位置関係を示す条件を登録する(S15)。
【0120】
図12(b)に示すように、取得部111は、新たな帳票の画像データが取得する(S20)。出力部117は、第1登録部114及び第2登録部116で登録された条件に基づいて、当該画像データから項目名と項目値とを関連付けて出力する(S21)。
【0121】
<3.ハードウェア構成>
図20を参照して、上述してきたサーバ装置100をコンピュータ800により実現する場合のハードウェア構成の一例を説明する。なお、それぞれの装置の機能は、複数台の装置に分けて実現することもできる。
【0122】
図20に示すように、コンピュータ800は、中央処理装置801と、メモリ803と、記憶装置805と、入力装置807と、データI/F装置809と、通信装置811、および表示装置813を含む。
【0123】
中央処理装置801は、メモリ803に記憶されているプログラムを実行することによりコンピュータ800における様々な処理を制御するプロセッサである。例えば、サーバ装置100の制御部110が備える各機能部などは、メモリ803に一時記憶されたプログラムを中央処理装置801が実行することにより実現可能である。
【0124】
メモリ803は、例えばRAM(Random Access Memory)等の記憶媒体である。メモリ803は、中央処理装置801によって実行されるプログラムのプログラムコードや、プログラムの実行時に必要となるデータを一時的に記憶する。
【0125】
記憶装置805は、例えばハードディスクドライブ(HDD)やフラッシュメモリ等の不揮発性の記憶媒体である。記憶装置805は、オペレーティングシステムや、上記各構成を実現するための各種プログラムを記憶する。この他、記憶装置805は、各条件などを登録するテーブルと、このテーブルを管理するDBを記憶することも可能である。このようなプログラムやデータは、必要に応じてメモリ803にロードされることにより、中央処理装置801から参照される。
【0126】
入力装置807は、ユーザからの入力を受け付けるためのデバイスである。入力装置807の具体例としては、キーボードやマウス、タッチパネル、各種センサ、ウェアラブル・デバイス等が挙げられる。入力装置807は、例えばUSB(Universal Serial Bus)等のインタフェースを介してコンピュータ800に接続されても良い。
【0127】
データI/F装置809は、コンピュータ800の外部との間でデータを入出力するためのデバイスである。データI/F装置809の具体例としては、各種記憶媒体に記憶されているデータを読み取るためのドライブ装置等がある。データI/F装置809は、コンピュータ800の外部に設けられることも考えられる。その場合、データI/F装置809は、例えばUSB等のインタフェースを介してコンピュータ800へと接続される。またデータI/F装置809は、例えば、光ディスク等のメディアにデータを出力するためのデバイスであってもよい。
【0128】
通信装置811は、コンピュータ800の外部の装置と有線または無線により、インターネットNを介したデータ通信を行うためのデバイスである。通信装置811は、コンピュータ800の外部に設けられることも考えられる。その場合、通信装置811は、例えばUSB等のインタフェースを介してコンピュータ800に接続される。
【0129】
表示装置813は、各種情報を表示するためのデバイスである。表示装置813の具体例としては、例えば液晶ディスプレイや有機EL(Electro-Luminescence)ディスプレイ、ウェアラブル・デバイスのディスプレイ等が挙げられる。表示装置813は、コンピュータ800の外部に設けられても良い。その場合、表示装置813は、例えばディスプレイケーブル等を介してコンピュータ800に接続される。また、入力装置807としてタッチパネルが採用される場合には、表示装置813は、入力装置807と一体化して構成することが可能である。
【0130】
なお、本実施形態は、本発明を説明するための例示であり、本発明をその実施の形態のみに限定する趣旨ではない。また、本発明は、その要旨を逸脱しない限り、さまざまな変形が可能である。さらに、当業者であれば、以下に述べる各要素を均等なものに置換した実施の形態を採用することが可能であり、かかる実施の形態も本発明の範囲に含まれる。
【0131】
また、上記実施の形態で記載されたサーバ装置100が備える構成要素は、記憶装置805に格納されたプログラムが中央処理装置801によって実行されることで、定められた処理が他のハードウェアと協働して実現されるものとする。また、言い換えれば、これらの構成要素は、ソフトウェア又はファームウェアとしても、それと対応するハードウェアとしても想定され、その双方の概念において、「機能」、「手段」、「部」、「処理回路」、「ユニット」、又は「モジュール」等とも記載され、またそれぞれに読み替えることができる。
【0132】
[変形例]
なお、本発明を上記実施の形態に基づいて説明してきたが、以下のような場合も本発明に含まれる。
【0133】
[第1変形例]
(1)本変形例では、新たな帳票の画像データが第1登録部114及び第2登録部116で登録された条件に合致しても当該帳票を出力させないためのセル(以下、「Notセル」ともいう)の条件を登録する例を説明する。このNotセルは、例えば、画像データを読み込んで出力させたい帳票と似たようなレイアウトの他の帳票(以下、「類似帳票」ともいう)があった場合、この帳票に対して登録された条件が類似帳票にも合致してしまい誤って出力されてしまうことを回避する。
【0134】
ここで
図14を参照して、類似帳票とNotセルの一例について説明する。
図14(a)は出力させたい帳票(以下、「出力帳票」ともいう)の帳票イメージ501aと当該帳票の類似帳票の類似帳票イメージ501bの例を示す図である。
図14(b)はNotセルの位置関係のイメージの例を模式的に示す図である。
【0135】
図14(a)に示すように、類似帳票は、出力帳票と比較して「申込日」の欄が加えて最後にある以外は同じレイアウトである。このため、出力帳票を読み取って出力するための位置制約条件や文字制約条件等(以下、「出力帳票の条件」ともいう)が類似帳票にも合致してしまう可能性がある。仮に類似帳票イメージ501bが出力帳票の条件に合致した場合、「申込日」の欄はアンカセルやデータセルとして指定されていないため出力されず一部が欠けた状態で出力されてしまうことが考えられる。
【0136】
上記のような事象を解消するため、出力帳票の条件の一つとして、類似帳票にだけ存在する「申込日」欄に該当するセルをNotセルとして指定し、Notセルに対する条件を登録する。これにより、出力帳票の他の条件に類似帳票が合致しても、Notセルに対する条件に類似帳票が合致した場合には、類似帳票が出力帳票の条件に基づいて出力されないようにできる。
【0137】
上記のような事象を解消するための他の方法として、出力回数(本例では、画像データに含まれるセルが条件に合致できる回数とする)を「1」と指定し、また類似帳票に対して登録した条件(以下、「類似帳票の条件」ともいう)を出力帳票の条件より優先度を高くする方法がある。このような方法によれば、類似帳票イメージ501bが読み込まれた際に先に類似帳票の条件に合致し出力帳票の条件には合致できないため、類似帳票が出力帳票の条件に基づいて出力されないようにできる。
【0138】
制御部110はさらに、第3受付部と、第3登録部と、を備える。
【0139】
第3受付部は、アンカとして、Notセルの指定を、ユーザから受け付ける。また、第3受付部は、アンカセルやデータセルと同様に、Notセルに対して、ユーザから各種指定を受け付けることができる。
【0140】
第3受付部は、例えば、所定の項目名のNotセルに含まれる1つ以上の文字、又は所定の項目名のNotセルに含まれない1つ以上の文字の指定をユーザから受け付けてもよい。この際、所定の項目名を検出するための条件は、所定の項目名のNotセルに含まれると指定された文字を含むこと、又は所定の項目名のNotセルに含まれないと指定された文字を含まないことを含んでもよい。
【0141】
第3受付部は、例えば、Notセルが存在しうる画像データ上の範囲の指定をユーザから受け付けてもよい。
【0142】
第3受付部は、帳票イメージ501a上において、Notセルが存在しうる画像データ上の範囲の指定を、クリック操作により始点を受け付けてもよい。そして第3受付部は、当該始点からドラッグ&ドロップ操作して描画した四角枠601を、Notセルが存在しうる範囲としてユーザから受け付けてもよい。
【0143】
第3受付部は、他の例として、Notセルが存在しうる画像データ上の範囲の指定を、対象の範囲の左上の頂点の座標と、取りうる幅と、取りうる高さそれぞれの数値でユーザから受け付けてもよい。
【0144】
第3登録部は、アンカセルやデータセルと同様に、Notセルに対して、各種条件を登録することができる。
【0145】
第3登録部は、第3受付部で指定されたNotセルに対して、所定の項目名を検出するための条件と、他のアンカがすでに指定されているとき、他のアンカの少なくとも1つと第3受付部で指定されたセルとの位置関係を示す条件とを登録する。
【0146】
第3登録部が登録する位置関係は、例えば、画像データ上において、第3受付部で指定されたセルの座標に対して他のアンカの少なくとも1つの座標が取りうる範囲を規定してもよい。
【0147】
第3登録部はさらに、指定されたNotセルの文字長に関する条件を登録してもよい。
【0148】
第3登録部はさらに、指定されたNotセルが存在しうる画像データ上の範囲に関する条件を登録してもよい。第3登録部は、例えば、
図14(b)に示すように、
【0149】
出力部117はさらに、取得部111において、新たな帳票の画像データが取得されたとき、第3登録部で登録されたNotセルの条件に基づいて、当該画像データから項目名と項目値の少なくとも一部を出力しない。出力部117は、例えば、新たな帳票の画像データから抽出されたセルが登録されたNotセルの条件に合致した場合、画像データから、合致したセルが属する帳票に含まれる項目名と項目値を出力しなくてもよい。出力しない単位は、典型的には帳票単位だが、その他に、セル単位又はレイアウト単位等が考えられる。
【0150】
上記構成によれば、出力部117は、上記のような類似帳票が出力帳票に対して登録された条件に合致して出力されてしまうことを抑止できる。
【0151】
[第2変形例]
(2)本変形例では、帳票の罫線が複数行の文字列を囲う場合、それぞれの行の文字列で構成されたセル(以下、「仮想セル」ともいう)の指定を受け付けて、仮想セルの行を示す条件を登録する例を説明する。
【0152】
セル抽出部112は、例えば、罫線が複数行の文字列を囲う場合、それぞれの行の文字列で構成された仮想セルを抽出してもよい。
【0153】
ここで
図15を参照して、抽出する仮想セルの一例について説明する。
図15(a)は取得した仮想セルを含む帳票イメージ701の例を示す図である。
図15(b)は帳票イメージ701から出力されたセルに関する情報の例を示す図である。
【0154】
図15(a)に示すように、帳票イメージ701は、一つのセルが複数行の文字列(例えば、上段「タナカイチロウ」と下段「田中一郎」)から構成されている。セル抽出部112は、これらの行の文字列それぞれを仮想セルとして抽出する。
【0155】
図15(b)に示すように、セル抽出部112は、例えば、抽出した仮想セルに、これらの仮想セルが含まれるセル内の行番号(V♯)を採番してもよい。
【0156】
第1受付部113は、例えば、仮想セルの中から、アンカとして、所定の項目名を含むセルの指定を、ユーザから受け付けてもよい。
【0157】
第1登録部114は、例えば、第1受付部113で指定された仮想セルに対して、仮想セルの行を示す条件(例えば、行番号を含む条件)を登録してもよい。
【0158】
第2受付部115は、仮想セルの中から、特定の項目名に対応する項目値を含むセルの指定を、ユーザから受け付けてもよい。
【0159】
第2登録部116は、第2受付部115で指定された仮想セルに対して、仮想セルの行を示す条件を登録してもよい。
【0160】
第3受付部は、例えば、仮想セルの中から、アンカとして、新たな帳票の画像データが第1登録部114及び第2登録部116で登録された条件に合致しても当該帳票を出力させないための仮想セルの指定を、ユーザから受け付けてもよい。
【0161】
第3登録部は、例えば、第3受付部で指定された仮想セルに対して、仮想セルの行を示す条件を登録してもよい。
【0162】
上記構成によれば、帳票の罫線が複数行の文字列を囲う場合でも、アンカセル、データセルやNotセルとして指定することができ、各種条件を登録することができる。
【0163】
[第3変形例]
(3)上記実施形態では示していないが、第2受付部115は、ユーザから指定されたデータセルに対して、項目値の文字列が空白またはNULL値だった場合、代替するフィールド(以下、「代替フィールド」ともいう)のフィールド名の指定を受け付けてもよい。この「代替フィールド」とは、項目値が所定の値(空白またはNULL値)だった場合、そのまま所定の値を出力せずに代わりに出力させるために参照するフィールドである。
【0164】
第2登録部116は、例えば、ユーザから指定されたデータセルに対して、第2受付部115で指定された代替フィールドを登録する。
【0165】
出力部117は、例えば、画像データに含まれるセルから読み出された項目値の文字列が所定の値だった場合、代替フィールドの値を参照して、当該所定の値の代わりに出力してもよい。
【0166】
[第4変形例]
(4)上記実施形態では示していないが、第1受付部113、第2受付部115及び/又は第3受付部は、登録された条件それぞれについて、ユーザから、Notで逆転させる、すなわちNot条件(Not関数)の指定を受け付けてよい。第1登録部114、第2登録部116及び/又は第3登録部は、ユーザから指定されたセルの条件に対して、これらの受付部で指定されたNot条件を登録する。
【0167】
[第5変形例]
(5)上記実施形態では示していないが、第1受付部113、第2受付部115及び/又は第3受付部は、画像データに含まれるレイアウトの空白行を出力しない指定を受け付けてもよい。第1登録部114、第2登録部116及び/又は第3登録部は、この指定を登録する。出力部117は、この登録に基づいて、画像データに含まれるレイアウトに空白行が含まれる場合、この空白行を出力しない。
【0168】
上記実施形態において説明した各種制御手段および処理手順は一例であり、本発明、その適用物、またはその用途の範囲を制限することを意図するものではない。各種制御手段および処理手順は、本発明の要旨を変更しない範囲で適宜設計変更が可能である。
【符号の説明】
【0169】
1…帳票読取システム、100…サーバ装置(情報処理装置)、110…制御部、111…取得部、112…セル抽出部、113…第1受付部、114…第1登録部、115…第2受付部、116…第2登録部、117…出力部、118…第4受付部、140…記憶部、200…端末、300…スキャナー、800…コンピュータ、801…中央処理装置、803…メモリ、805…記憶装置、807…入力装置、809…データI/F装置、811…通信装置、813…表示装置。