(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2023165062
(43)【公開日】2023-11-15
(54)【発明の名称】情報読取装置、情報読取方法、およびプログラム
(51)【国際特許分類】
G06V 30/00 20220101AFI20231108BHJP
【FI】
G06V30/00 P
【審査請求】未請求
【請求項の数】33
【出願形態】OL
(21)【出願番号】P 2022075652
(22)【出願日】2022-05-02
(71)【出願人】
【識別番号】518421751
【氏名又は名称】VANDDD株式会社
(74)【代理人】
【識別番号】100140899
【弁理士】
【氏名又は名称】竹本 如洋
(72)【発明者】
【氏名】阿部 諒馬
【テーマコード(参考)】
5B064
【Fターム(参考)】
5B064AA01
5B064DC17
5B064EA13
5B064FA02
(57)【要約】 (修正有)
【課題】様々な形式を有する諸表等の情報を読み取る情報読取装置、情報読取方法及びプログラムを提供する。
【解決手段】1又は複数のユーザ端末が、ネットワークを介して1又は複数の管理サーバに接続可能な情報読取システムにおいて、情報読取装置としての情報読取システムの管理サーバ101は、読取対象である情報についての画像データを取得するイメージ管理モジュール212と、画像データにおいて、表を構成する複数の枠部を認識する枠認識モジュール213と、認識された複数の枠部に関する情報を出力する出力手段と、を備える。
【選択図】
図2
【特許請求の範囲】
【請求項1】
読取対象である情報についての画像データを取得する画像管理手段と、
前記画像データにおいて、表を構成する複数の枠部を認識する枠認識手段と、
認識された前記複数の枠部に関する情報を出力する出力手段と、
を備える、情報読取システム。
【請求項2】
前記枠認識手段は、第1の方向に沿うとともに隣り合う二つの罫線と、前記第1の方向に交わる第2の方向に沿うとともに隣り合う2つの罫線と、が4つの交点によって交わっている場合に、前記4つの交点の間に配される線分を前記枠部と認識する、
請求項1に記載の情報読取システム。
【請求項3】
前記枠認識手段は、
文字列の存在する部分に対応する複数のアノテーションを生成し、
前記複数のアノテーションのそれぞれについて2次元座標表示した場合に、前記複数のアノテーションを包含し、かつ、最小X座標および最小Y座標で表される第1座標と、最大X座標および最大Y座標で表される第2座標と、を対角点とする矩形を前記枠部と認識する、
請求項1または2に記載の情報読取システム。
【請求項4】
前記枠認識手段は、
文字列の存在する部分に対応する複数のアノテーションを生成し、
前記複数のアノテーションを所定の大きさだけ拡大し、拡大された前記複数のアノテーションが重畳した場合は重畳したアノテーションを連結して、新たなアノテーションを生成し、連結された前記新たなアノテーションに基づいて前記枠部を認識する、
請求項1または2に記載の情報読取システム。
【請求項5】
前記所定の大きさは、前記文字列における1文字の大きさに対する相対値として定められる、
請求項4に記載の情報読取システム。
【請求項6】
前記枠認識手段は、前記複数のアノテーションを、文字列が延びる第1の方向に沿う線と、前記第1の方向に交わる第2の方向に沿う線と、によって形成する、
請求項3~5のいずれか1項に記載の情報読取システム。
【請求項7】
前記枠認識手段は、
前記画像データの認識対象領域に罫線が含まれる場合に、前記枠部の内部を新たな認識対象領域として前記複数のアノテーションを生成し、
前記複数のアノテーションに基づいて前記枠部を認識する、
請求項3~6のいずれか1項に記載の情報読取システム。
【請求項8】
前記複数の枠部のうち、所定の枠設定条件を満たすものを選択する枠選択手段を備え、
前記出力手段は、選択された前記複数の枠部に関する情報を出力する、
請求項1~7のいずれか1項に記載の情報読取システム。
【請求項9】
前記枠選択手段は、前記枠部の面積および辺の長さの少なくとも一方が所定の閾値以上である場合に、前記枠部が所定の枠設定条件を満たすと判断する、
請求項8に記載の情報読取システム。
【請求項10】
前記枠設定条件の変更を受け付ける枠補正手段を備える、
請求項8または9に記載の情報読取システム。
【請求項11】
前記枠補正手段は、現在の前記枠設定条件における閾値の大きさに対応する図形を画面に表示する、
請求項10に記載の情報読取システム。
【請求項12】
前記図形は、円、目盛り、およびスライドバーの少なくとも一つである、
請求項11に記載の情報読取システム。
【請求項13】
前記枠補正手段は、現在の前記枠設定条件における閾値の大きさに対応する図形を前記画面に表示するとともに、操作入力に応じて前記閾値の大きさを変更し、変更された前記閾値の大きさに対応して前記図形の位置、大きさ、形状の少なくとも1つを変更する、
請求項11または12に記載の情報読取システム。
【請求項14】
前記図形は円であり、前記枠補正手段は、前記操作入力に応じて前記円の半径を変更する、
請求項13に記載の情報読取システム。
【請求項15】
認識された前記複数の枠部ごとに、その枠部の内部に配された文字列を認識する文字列認識手段をさらに備え、
前記出力手段は、認識された前記文字列を出力する、
請求項1~14のいずれか1項に記載の情報読取システム。
【請求項16】
認識された前記文字列を項目と値とに分類するとともに、互いに対応づける分類手段をさらに備え、
前記出力手段は、対応付けられた前記文字列を出力する、
請求項15に記載の情報読取システム。
【請求項17】
読取対象である情報についての画像データを取得する画像取得ステップと、
前記画像データにおいて、表を構成する複数の枠部を認識する枠認識ステップと、
認識された前記複数の枠部に関する情報を出力する出力ステップと、
を備える、情報読取方法。
【請求項18】
前記枠認識ステップは、第1の方向に沿うとともに隣り合う二つの罫線と、前記第1の方向に交わる第2の方向に沿うとともに隣り合う2つの罫線と、が4つの交点によって交わっている場合に、前記4つの交点の間に配される線分を前記枠部と認識する、
請求項17に記載の情報読取方法。
【請求項19】
前記枠認識ステップは、
文字列の存在する部分に対応する複数のアノテーションを生成し、
前記複数のアノテーションのそれぞれについて2次元座標表示した場合に、前記複数のアノテーションを包含し、かつ、最小X座標および最小Y座標で表される第1座標と、最大X座標および最大Y座標で表される第2座標と、を対角点とする矩形を前記枠部と認識する、
請求項17または18に記載の情報読取方法。
【請求項20】
前記枠認識ステップは、
文字列の存在する部分に対応する複数のアノテーションを生成し、
前記複数のアノテーションを所定の大きさだけ拡大し、拡大された前記複数のアノテーションが重畳した場合は重畳したアノテーションを連結して、新たなアノテーションを生成し、連結された前記新たなアノテーションに基づいて前記枠部を認識する、
請求項19に記載の情報読取方法。
【請求項21】
前記所定の大きさは、前記文字列における1文字の大きさに対する相対値として定められる、
請求項20に記載の情報読取方法。
【請求項22】
前記枠認識ステップは、前記複数のアノテーションを、文字列が延びる第1の方向に沿う線と、前記第1の方向に交わる第2の方向に沿う線と、によって形成する、
請求項19~21のいずれか1項に記載の情報読取方法。
【請求項23】
前記枠認識ステップは、
前記画像データの認識対象領域に罫線が含まれる場合に、前記枠部の内部を新たな認識対象領域として前記複数のアノテーションを生成し、
前記複数のアノテーションに基づいて前記枠部を認識する、
請求項19~22のいずれか1項に記載の情報読取方法。
【請求項24】
前記複数の枠部のうち、所定の枠設定条件を満たすものを選択する枠選択ステップを備え、
前記出力ステップは、選択された前記複数の枠部に関する情報を出力する、
請求項17~23のいずれか1項に記載の情報読取方法。
【請求項25】
前記枠選択ステップは、前記枠部の面積および辺の長さの少なくとも一方が所定の閾値以上である場合に、前記枠部が所定の枠設定条件を満たすと判断する、
請求項24に記載の情報読取方法。
【請求項26】
前記枠設定条件の変更を受け付ける枠補正ステップを備える、
請求項24または25に記載の情報読取方法。
【請求項27】
前記枠補正ステップは、現在の前記枠設定条件における閾値の大きさに対応する図形を画面に表示する、
請求項26に記載の情報読取方法。
【請求項28】
前記図形は、円、目盛り、およびスライドバーの少なくとも一つである、
請求項27に記載の情報読取方法。
【請求項29】
前記枠補正ステップは、現在の前記枠設定条件における閾値の大きさに対応する図形を前記画面に表示するとともに、操作入力に応じて前記閾値の大きさを変更し、変更された前記閾値の大きさに対応して前記図形の位置、大きさ、形状の少なくとも1つを変更する、
請求項27または28に記載の情報読取方法。
【請求項30】
前記図形は円であり、前記操作入力に応じて前記円の半径を変更する、
請求項29に記載の情報読取方法。
【請求項31】
認識された前記複数の枠部ごとに、その枠部の内部に配された文字列を認識する文字列認識ステップをさらに備え、
前記出力ステップは、認識された前記文字列を出力する、
請求項17~30のいずれか1項に記載の情報読取方法。
【請求項32】
認識された前記文字列を項目と値とに分類するとともに、互いに対応づける分類ステップをさらに備え、
前記出力ステップは、対応付けられた前記文字列を出力する、
請求項31に記載の情報読取方法。
【請求項33】
コンピュータに請求項17~32のいずれか1項に記載の情報読取方法の各ステップを実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、情報読取装置、情報読取方法、およびプログラムに関する。
【背景技術】
【0002】
本技術分野の背景技術として、特開2006-252575号公報(特許文献1)がある。この公報には、「諸表を、スキャナーによりイメージ入力した入力結果を、科目欄・金額欄別の認識処理し、イメージ情報の文字をデジタル化処理手段と、デジタル化認識の文字を文字列と数値を分割し、文字列を勘定科目辞書と突合わせチェックする突合わせ処理手段を備え、前記誤読文字と判定の文字列を正しい文字列に置換する処理手段と、デジタル化処理手段に、認識処理に際し、画面に表示された読み取り枠パターンから最も類似したパターンの選択により自動的に勘定科目、金額範囲を枠でくくる処理を含む」と記載されている(要約参照)。
【先行技術文献】
【特許文献】
【0003】
【発明の概要】
【発明が解決しようとする課題】
【0004】
前記特許文献1には、スキャンが完了した後、画面に表示されたイメージと見比べながら諸表パターンを選択すると、自動的にイメージ上に読み取り範囲を示す枠が表示されること、が記載されている。しかしながら、特許文献1では、様々な形式を有する諸表等の情報を読み取る仕組みについては検討がなされていない。
そこで、本発明は、様々な形式を有する諸表等の情報を読み取る仕組みを提供する。
【課題を解決するための手段】
【0005】
上記課題を解決するために、例えば特許請求の範囲に記載の構成を採用する。
本願は上記課題を解決する手段を複数含んでいるが、その一例を挙げるならば、画像認識することで生成された画像データを取得する画像管理手段と、前記画像データにおいて、表を構成する複数の枠部を認識する枠認識手段と、認識された前記複数の枠部に関する情報を出力する出力手段と、を備える情報読取システムを提供することを特徴とする。
【発明の効果】
【0006】
本発明によれば、様々な形式を有する諸表等の情報を読み取る仕組みを提供することができる。
上記した以外の課題、構成及び効果は、以下の実施形態の説明により明らかにされる。
【図面の簡単な説明】
【0007】
【
図1】
図1は、全体の情報読取システム100の構成の例である。
【
図2】
図2は、管理サーバ101のハードウェア構成の例である。
【
図3】
図3は、ユーザ端末102のハードウェア構成の例である。
【
図6】
図6は、貸借対照表辞書情報600の例である。
【
図16】
図16(A)(B)は、枠部の分類1600の例である。
【
図20】
図20(A)~(C)は、枠部の認識結果2000の例である。
【
図22】
図22は、アノテーション確認画面2200の例である。
【
図23】
図23は、アノテーション確認画面2300の他の例である。
【
図24】
図24は、アノテーション確認画面2400の他の例である。
【
図25】
図25は、アノテーション確認画面2500の他の例である。
【
図26】
図26は、読取結果表示画面2600の他の例である。
【
図29】
図29は、アノテーション認識結果2900の例である。
【発明を実施するための形態】
【0008】
以下、実施例を図面を用いて説明する。なお各図面において、同一の機能を有する構成については、符号の付与と重ねての説明を省略する場合がある。
【実施例0009】
図1は、一実施形態に係る情報読取システム100の構成図の例である。
情報読取システム100は、1又は複数の管理サーバ101と、1又は複数のユーザ端末102と、を備えている。管理サーバ101は、本技術における情報読取装置の一例である。1又は複数のユーザ端末102は、ネットワークを介して1又は複数の管理サーバ101に接続可能に構成されている。なお、ネットワークは、有線、無線を問わず、それぞれの端末はネットワークを介して情報を送受信することができる。
【0010】
ユーザ端末102は、管理サーバ101から出力される情報確認コンテンツを利用して、認識した情報の確認や補正を実施するためにユーザが使用する端末である。また、本情報読取システム100において、ユーザ端末102は、管理サーバ101と別個に設けてもよいし、管理サーバ101と同一のサーバに設けてもよい。また、管理サーバ101を単独で本情報読取システム100とすることができる。
【0011】
情報読取システム100のそれぞれの端末102や管理サーバ101は、例えば、スマートフォン、タブレット、携帯電話機、携帯情報端末(PDA)などの携帯端末(モバイル端末)でもよいし、メガネ型や腕時計型、着衣型などのウェアラブル端末でもよい。また、これらは、据置型または携帯型のコンピュータや、クラウドやネットワーク上に配置されるサーバでもよい。また、機能としてはVR(仮想現実:Virtual Reality)端末、AR(拡張現実:Augmented Reality)端末、MR(複合現実:Mixed Reality)端末でもよい。あるいは、これらの複数の端末の組合せであってもよい。例えば、1台のスマートフォンと1台のウェアラブル端末との組合せが論理的に一つの端末として機能し得る。またこれら以外の情報処理端末であってもよい。
【0012】
情報読取システム100のそれぞれの端末や管理サーバ101は、それぞれオペレーティングシステムやアプリケーション、プログラムなどを実行するプロセッサと、RAM(Random Access Memory)等の主記憶装置と、ICカードやハードディスクドライブ、SSD(Solid State Drive)、フラッシュメモリ等の補助記憶装置と、ネットワークカードや無線通信モジュール、モバイル通信モジュール等の通信制御部と、タッチパネルやキーボード、マウス、音声入力装置、カメラ部の撮像による動き検知による入力装置などの入力装置と、モニタやディスプレイ、プリンタ、音声出力装置、発振器等の出力装置と、を備える。なお、出力装置、外部のモニタやディスプレイ、プリンタ、機器などに、出力するための情報を送信する装置や端子であってもよい。
【0013】
主記憶装置には、各種プログラムやアプリケーションなど(ソフトウェア・モジュール)が記憶されており、これらのプログラムやアプリケーションをプロセッサが実行することで全体システムの各機能要素が実現される。なお、各モジュールはそれぞれ独立したプログラムやアプリケーションであってもよいが、1つの統合プログラムやアプリケーションの中の一部のサブプログラムや関数などの形で実装されていてもよい。また、これらの各モジュールは回路を集積化したりマクロコンピュータを採用することなどにより、ハードウェアとして実装してもよい(ハードウェア・モジュール)。
【0014】
本明細書では、各モジュールが、処理を行う主体(主語)として記載されているが、実際には各種プログラムやアプリケーションなど(モジュール)を処理するプロセッサが処理を実行する。
【0015】
補助記憶装置には、各種データベース(DB)が記憶されている。「データベース」とは、プロセッサまたは外部のコンピュータからの任意のデータ操作(例えば、抽出、追加、削除、上書きなど)に対応できるように整理して収集されたデータ集合である。補助記憶装置は、1又は複数のデータ集合を記憶する機能要素(記憶部)である。データベースの実装方法は限定されず、例えばデータベース管理システムでもよいし、表計算ソフトウェアでもよいし、XML、JSONなどのテキストファイルでもよい。
【0016】
情報読取システム100が読取の対象とする情報は特に限定されない。本技術に係る情報読取システム100は、読取対象の情報を、例えば、紙媒体に各種情報が記載された資料をイメージデータ化(画像データ化)したものであってよい。読取対象の情報は、これに限定されるものではないが、典型的には、例えば、貸借対照表、損益計算書、利益処分案、キャッシュフロー計算書、株主資本等変動計算書、有価証券報告書、計算書類、会計帳簿、請求書等の財務諸表であってよい。また、読取の対象とする情報は、不動産鑑定評価書、不動産情報資料(例えば、不動産の概要,間取り図,契約情報などが取りまとめられている資料であって、一例として「マイソク」等と呼ばれるもの)等の不動産情報や、各種契約書、医療用カルテ、フローチャート等の各種資料であってよい。
【0017】
これらの資料は多くの情報を含み、それらの情報は、典型的には表形式で、項目ごとに内容が記載されている。表は、一の欄内(項目)に1又は複数の項目(下位項目)を含む場合がある。そして、このような情報は、紙媒体の資料からイメージデータ化する際に、読取角度がずれることがある。OCR技術は高精度になってきており、一定のフォーマットで記載された資料であれば、テンプレートや教師データを用意することで読取困難性はさほど高くない場合がある。しかしながら、テンプレートや教師データのない不特定多数のフォーマットで記載された資料を読み取る場合や、多数枚の資料を自動的に読取する場合、さらにその読取角度がズレた場合などには、文字列の読み取りが困難となり得る。本技術は、テンプレートを選択することなく情報を読み取るようにしている。また、この仕組みによって、資料中の文字列に何らかの関連性があれば、そのような関連性を対応付けて文字列を認識するようにしている。したがって、本技術は、上述したような資料の読み取りに特に有用となり得る。
【0018】
以下では、情報読取システム100による主たる読取対象を貸借対照表とし、貸借対照表について情報の読み取りを行う場合を例にして、本技術について説明する。
【0019】
図2は、管理サーバ101のハードウェア構成を例示している。
管理サーバ101は、本実施例の情報読取システム100を管理する要素である。管理サーバ101は、例えばクラウド上に配置されたサーバによって構成される。管理サーバ101は、主記憶装置201と、補助記憶装置202と、を備える。管理サーバ101はまた、上述のとおりのプロセッサ203と、入力装置204と、出力装置205(出力手段の一例)と、通信制御部206と、を備える。
【0020】
主記憶装置201には、ユーザ端末管理モジュール211、イメージ管理モジュール212(画像管理手段の一例)、枠認識モジュール213、枠補正モジュール214、枠選択モジュール215、文字列認識モジュール216、分類モジュール217等のプログラムやアプリケーションが記憶されている。管理サーバ101の各機能要素は、主記憶装置201に記憶されたこれらのプログラムやアプリケーションをプロセッサ203が実行することによって実現される。
【0021】
補助記憶装置202には、情報読取システム100の動作に必要な情報が記憶される。補助記憶装置202には、例えば、ユーザ情報400、辞書情報500、貸借対照表辞書情報600等が記憶されている。補助記憶装置202にはまた、例えば、オリジナルイメージデータ221、処理後イメージデータ222等が記憶されている。これらの情報の詳細については、後述する。
【0022】
まず、管理サーバ101の各機能要素について説明する。
ユーザ端末管理モジュール211は、ユーザ端末102の動作を管理する。ユーザ端末管理モジュール211は、ユーザ端末102のユーザ実行モジュール311と連携して、ユーザ端末102において情報読取システム100を用いて実行される、情報の読み取りのための基本的な動作を制御する。
【0023】
例えば、ユーザ端末管理モジュール211は、ユーザ実行モジュール311と連携して、ユーザ端末102のディスプレイ等の出力装置305に、管理サーバ101が実行する情報読取に使用するログインページ、ユーザ情報管理ページ等を出力(表示)する。また、ユーザ端末管理モジュール211は、ユーザ端末102のユーザ実行モジュール311と連携して、これらのページを経てユーザ端末102から入力された入力情報を取得する。ユーザ端末管理モジュール211は、例えば、取得した情報(各種情報、指示等)に基づいて動作したり、取得した情報をユーザ情報400等として補助記憶装置202に出力(記憶)したりする。
【0024】
イメージ管理モジュール212は、読取対象である情報についてのイメージデータ(画像データ)(以下、単に「オリジナルイメージデータ」という場合がある。)を取得するする。イメージ管理モジュール212は、例えば、入力装置204を介してオリジナルイメージデータを取得してもよいし、通信制御部206を介して外部機器等からオリジナルイメージデータを取得してもよい。一例として、イメージ管理モジュール212は、例えば、ユーザ端末102のユーザ実行モジュール311と連携し、ユーザ端末102を介して、オリジナルイメージデータを取得する。オリジナルイメージデータは、例えば、ユーザ端末102に保存されていてもよいし、ユーザ端末102の操作によってユーザ端末102のカメラ306やイメージスキャナ(入力装置304の一例)等によって生成されるものであってもよい。イメージ管理モジュール212はまた、例えば、ユーザ端末102とは異なる保存場所にアクセスすることにより、当該保存場所に保存されているオリジナルイメージデータを取得してもよい。
【0025】
イメージ管理モジュール212は、取得したオリジナルイメージデータ221を、例えば補助記憶装置202に出力(記録)する。
【0026】
枠認識モジュール213は、オリジナルイメージデータ221において、表構造を構成する複数の枠部を認識する。資料に記載される情報は、例えば整理されて、表構造的に配されていることが多い。情報読取システム100では、文字列について文字認識するよりも前に、枠認識モジュール213によって枠部を認識するようにしている。
【0027】
表構造は、各欄(セル)を区画する枠部の集合とみなすことができる。ここで枠部とは、オリジナルイメージデータ221が表を含む場合は、当該表の各欄を区画する罫線の集合であり得る。また、オリジナルイメージデータ221が表を含まない場合は、オリジナルイメージデータ221に含まれる文字列の配置の秩序性に対応して各文字列を区画するために設けることができる、仮想的な表について各欄を区画する罫線の集合であり得る。枠部は、一般的には四角形状をなしており、典型的には矩形であり得る。枠認識モジュール213の具体的な動作については、後述する。
【0028】
枠認識モジュール213は、例えば、光学文字認識(Optical Character Reader:OCR)機能やAI搭載OCR(Intelligent Character Recognition:ICR)に代表される文字認識機能を備えている。文字認識機能は、イメージデータから、文字列を識別する機能である。ここで、本技術における「文字列」とは、1つ以上の文字または記号であり、文字(かな、漢字、アルファベット、数字等)および記号の少なくとも一つが単独で配されているか、または複数が連なって配されているものである。文字認識機能は、例えば、イメージデータから文字列をテキストデータとして認識することができる。
【0029】
文字認識機能はまた、オリジナルイメージデータ221から、文字列とは区別される直線性を有する罫線を認識する罫線認識機能を備えている。罫線は、例えば、線と点の特徴(一例として、任意の点座標、始点、終点、方向ベクトル、曲率(直線性を含む)、傾き等のいずれか1つ又は2以上の組み合わせ)に基づいて識別することができる。文字認識機能は、罫線の始点や終点の情報に加え、異なる二つの罫線が交わる交点の情報を取得することができる。
【0030】
文字認識機能はさらに、文字列が属する領域を示す「アノテーション」を作成するアノテーション作成機能を備えている。アノテーション作成機能は、例えば、画像のなかから文字列であることを検出した領域に対して、当該領域を示す注釈情報(典型的には、輪郭線または矩形のバウンディングボックス)を付与する機能である。アノテーションは、文字列を構成する個々の文字をテキスト認識する前に、文字列であることを認識した状態で付与される。文字認識機能はさらに、オリジナルイメージデータ221における画素、およびこれに基づいて認識した文字列、罫線、交点、アノテーション等の位置情報を、例えば2次元XY座標に基づいて把握することができるようになっている。
【0031】
枠補正モジュール214は、管理サーバ101の付加的な要素であって、枠認識モジュール213によって認識された枠部の補正指示を受け付ける。枠補正モジュール214は、例えば、ユーザ端末102のユーザ枠補正モジュール312と連携し、ユーザ端末102から送られる枠部またはアノテーションの補正指示に基づいて、枠部またはアノテーションに関する情報を補正する。枠補正モジュール214の具体的な動作については、後述する。補正された枠部に関する情報は、例えば、処理後イメージデータ222として、オリジナルイメージデータ221に紐づけて補助記憶装置202に出力(記憶)される。補正された枠部に関する情報は、元の枠部に関する情報に変えて記録(上書き保存)されてもよいし、元の枠部に関する情報に紐づけられて記録されてもよい。
【0032】
枠選択モジュール215は、管理サーバ101の付加的な要素であって、枠認識モジュール213によって認識された複数の枠部のうち、所定の枠設定条件を満たすものを選択する。枠設定条件については、後述する。選択された枠部に関する情報は、例えば、処理後イメージデータ222として、オリジナルイメージデータ221に紐づけて補助記憶装置202に出力(記憶)される。枠選択モジュール215は、例えば、
選択された枠部に関する情報のみを補助記憶装置202に記憶するようにしてもよいし、選択された枠部に関する情報を枠設定条件を満たすことを示す情報(フラグ等)とともに補助記憶装置202に記憶するようにしてもよい。
【0033】
文字列認識モジュール216は、管理サーバ101の付加的な要素であって、枠認識モジュール213によって認識された複数の枠部ごとに、その枠部の内部に配された文字列を認識する。文字列認識モジュール216は、例えば、文字認識機能を備えている。この文字認識機能は、枠認識モジュール213が備える文字認識機能と共通の構成によって実現されるものであってよい。また、枠認識モジュール213が、文字列認識モジュール216の文字認識機能を使用する構成でもよい。
【0034】
分類モジュール217は、管理サーバ101の付加的な要素であって、文字列の認識結果を、例えば項目と値(内容)とに分類する。
【0035】
図3は、ユーザ端末102のハードウェア構成の例である。ユーザ端末102は、本情報読取システムを利用するユーザが操作する端末であり、例えばスマートフォン、タブレット、ノートPC、デスクトップPC等の端末で構成される。ユーザ端末102は、主記憶装置301と、補助記憶装置302と、を備える。ユーザ端末102はまた、上述のとおりのプロセッサ303と、入力装置304と、出力装置305と、カメラ306と、通信制御部307と、を備える。
【0036】
主記憶装置301には、ユーザ実行モジュール311、ユーザ枠補正モジュール312等のプログラムやアプリケーションが記憶されており、これらのプログラムやアプリケーションをプロセッサ303が実行することで、ユーザ端末102の各機能要素が実現される。
【0037】
ユーザ実行モジュール311は、ユーザ端末102の基本的な動作を制御する。ユーザ実行モジュール311は、例えば、管理サーバ101のユーザ端末管理モジュール211と連携して、情報読取システム100を用いて実行される、情報の読み取りのための基本的な動作を制御する。
【0038】
ユーザ枠補正モジュール312は、管理サーバ101によって読み取られた枠部に関する情報を補正するための動作を制御する。ユーザ枠補正モジュール312は、例えば、管理サーバ101の枠補正モジュール214と連携して、ユーザ端末102にオリジナルイメージデータ221と、管理サーバ101によって読み取られた枠部を含む処理後イメージデータと、を出力(表示)する。ユーザ枠補正モジュール312はまた、例えば、処理後イメージデータにおける枠部を補正するための画面およびユーザーインターフェイス(UI)をユーザ端末102に出力(表示)する。ユーザ枠補正モジュール312はさらに、例えば、ユーザによってユーザ端末102に入力された、処理後イメージデータにおける枠部への補正指示を、管理サーバ101に送信する。
【0039】
補助記憶装置302には、ユーザ端末102の動作に必要な情報が記憶される。補助記憶装置302には、例えば、ユーザ情報400、オリジナルイメージデータ221、処理後イメージデータ222等が記憶されている。これらの情報は、管理サーバ101に記憶されたユーザ情報400、オリジナルイメージデータ221、処理後イメージデータ222等のうち、当該ユーザ端末102に関連する情報の一部又は全部であってよい。
【0040】
図4~
図6は、管理サーバ101に記憶されている各種情報である。これに限定されるものではないが、これらの情報の一部又は全部は、JSON形式のファイルに記憶することを想定している。これらの情報の一部又は全部は、リレーショナルデータベースや、非リレーショナルデータベースに記憶される構成であってよい。
【0041】
図4は、ユーザ情報400の例である。
ユーザ情報400は、情報読取システム100を利用するユーザに関する情報である。ユーザ情報400は、例えば、ユーザID、ユーザ表示ID、ユーザ名、業種ID、業種、資本金、責任者、住所等の情報を含み、それぞれフィールド名(項目名)410に対してサンプル値420で例示するような値が入力されている。
【0042】
ユーザIDは、ユーザを識別するために各ユーザに付される記号であり、ハッシュ値等として自動的に生成される。各ユーザに関する情報は、基本的にはこのユーザIDによって紐づけられる。ユーザIDは、他の情報から参照される主キーである。ユーザ表示IDは、管理サーバ101やユーザ端末102等の画面に表示されるユーザの表示用のIDであり、任意に設定することができる。ユーザ表示IDは、例えばユーザが、所定の記号または文字を用い、所定の条件(例えば、10字以内)の範囲内で任意に設定することができる。ユーザ名、資本金、責任者、住所はそれぞれ、ユーザ(自然人および法人を含む。以下同じ。)についての、氏名または名称、資本金、情報読取システム100の利用責任者、住所または所在地、に関する情報である。業種ID、業種は、ユーザについての業種と、当該業種を識別するための記号に関する情報である。業種および業種IDは、例えば、日本標準産業分類にしたがう分類と分類コードを採用することができる。ユーザ情報400は、その他各種の手続情報,ユーザ登録情報等を含んでもよい。
【0043】
図5は、辞書情報500の例である。
辞書情報500は、情報読取システム100が読み取りの対象とする文字列(例えば、用語)等に関する辞書情報である。辞書情報500は、用途に応じて、例えば、(A)貸借対照表の読み取りに利用する貸借対照表用情報、(B)不動産情報資料の読み取りに利用する不動産資料用情報、等を含むことができる。辞書情報500は、例えば、辞書ID、辞書名、単語格納先URL等の情報を含み、それぞれフィールド名510に対してサンプル値520で例示するような値が入力されている。
【0044】
辞書IDは、読取の対象となる資料に関連する用語情報(辞書)を識別するためのIDである。辞書名は、読取の対象となる資料に関連する辞書を示す情報である。単語格納先URLは、辞書情報の格納先を示す。例えば、辞書情報500が複数の資料または技術分野に関する用語辞書情報を備える場合、それぞれの用語辞書情報ごとに異なる格納先を用意することができる。
【0045】
図6は、貸借対照表辞書情報600の例である。
貸借対照表辞書情報600は、情報読取システム100が貸借対照表を読み取る場合に利用する辞書情報である。貸借対照表辞書情報600は、例えば、項目610、階層620、内容の属性630等の情報を含み、項目610で例示するような項目の情報が格納されている。
【0046】
項目610は、貸借対照表の項目名として用いられる用語に関する情報である。項目610は、典型的には、認識対象のイメージデータの中の表の行または列の項目名または内容が勘定科目であることを示す「科目」と、表の行または列の項目名または内容が金額であることを示す「金額」と、具体的な勘定科目名(例えば、資産の部、流動資産…等)と、に関する情報を含む。
【0047】
図6の例では、項目610は、一つの欄に一つの単語に関する情報が格納されているが、同じ内容(勘定科目)を示す異なる複数の単語に関する情報が格納されていてもよい。例えば、単語「資産の部」と、同じ意味で用いられる単語「資産」と、が同じ項目欄に格納されていてもよい。
【0048】
階層620は、項目610に示された単語の階層を示す。例えば、貸借対照表の勘定科目は、例えば大きく(換言すれば、第1の階層としての)、資産と、負債と、純資産と、から構成される。また、勘定科目における資産は、例えばさらに(換言すれば、第2の階層としての)、流動資産と、固定資産と、繰延資産と、から構成される。勘定科目における流動資産は、例えばさらに(換言すれば、第3の階層として)、現金及び預金と、売掛金と、仕掛金と、を含み得る。階層620には、このような勘定項目(用語)の階層を示す情報(ここでは、例えば1~8の数情報)が格納される。なお、項目610に示される単語のうち「科目」と「金額」は、表の行または列の項目名または内容を示し、勘定科目の階層を示すものではないため、階層620には、所定の情報(ここでは、9の数情報)を付して識別している。
【0049】
内容の属性630は、貸借対照表の項目610に示された項目に対応する内容の属性を示す。例えば、貸借対照表の項目「資産の部」に対応する内容は、より下位の階層の科目と金額とを含むため、その属性は、「文字列」および「数値」である。項目「科目」に対応する内容は、各種の勘定科目であるため、その属性は「文字列」である。各勘定科目の項目に対応する内容は、当該勘定科目ごとの金額であるため、その属性は「数値」である。
【0050】
図14は、貸借対照表1400の例である。オリジナルイメージデータ221は、貸借対照表1400に対応した画像情報を備えている。
以下、情報読取システム100を用いて、この貸借対照表1400のオリジナルイメージデータ221から、貸借対照表1400の記載情報を読み取る方法について説明する。
【0051】
まず、ユーザの操作によって、ユーザ端末102のユーザ実行モジュール311が実行され、ユーザ端末102と管理サーバ101が接続される。管理サーバ101のユーザ端末管理モジュール211は、ユーザ端末102のユーザ実行モジュール311等と連携して、ユーザのログイン等の処理を実行する。
【0052】
図7は、情報読取フロー700の例である。情報読取システム100は、典型的には、情報読取フロー700の各ステップ(S710~S770)にしたがって、貸借対照表1400の記載情報を読み取る。
まず、イメージ管理モジュール212は、情報の読取対象であるオリジナルイメージデータ221を取得する(S710)。例えば、イメージ管理モジュール212は、管理サーバ101の入力装置204であるスキャナにより資料をスキャンすることでイメージデータを取得する。また、イメージ管理モジュール212は、ユーザ端末102から送信されたイメージデータを取得する。
【0053】
イメージ管理モジュール212は、ユーザ端末102のユーザ実行モジュール311と連携して、ユーザ端末102のディスプレイに、情報読み取り対象であるイメージデータを指定するための画面を出力(表示)することもできる。これにより、ユーザは情報読取対象のイメージデータを指定することができる。このとき、ユーザは、ユーザ端末102を介して、読取対象資料がどのような種類の資料であるかを、指定したり、選択できるように構成されていてもよい。
【0054】
イメージデータの指定方法は、例えば、ユーザ端末102の補助記憶装置302に既に格納されているイメージデータの中から、読取対象とするオリジナルイメージデータ221を選択するものであってよい。あるいは、イメージデータの指定方法は、例えば、ユーザ端末102のスキャナ(入力装置304の一例)またはカメラ306を用いて、紙媒体からなる貸借対照表1400をスキャンまたは撮像することにより生成されたイメージデータを、読取対象のオリジナルイメージデータ221とするものであってよい。
【0055】
指定されたオリジナルイメージデータ221は、ユーザ端末102から管理サーバ101に送られる。イメージ管理モジュール212は、オリジナルイメージデータ221を受信し、例えば補助記憶装置202に格納する。
【0056】
次いで、枠認識モジュール213は、オリジナルイメージデータ221における枠部を認識する(S720)。
図8は、枠部認識フロー800の例である。
枠認識モジュール213は、罫線認識機能によって、オリジナルイメージデータ221に含まれる罫線及びそれらの交点の情報を取得する(S810)。交点の位置情報は、これに限定されるものではないが、例えば、文字列の上下方向の下方をY軸方向とし、文字列の左右方向の右方をX軸方向とした、XY座標情報などによって表すことができる。
【0057】
図15は、罫線の認識結果1500の例である。
罫線の認識結果1500は、オリジナルイメージデータ221に含まれる、罫線及び交点を抽出したイメージに対応する。枠認識モジュール213は、情報を取得した罫線および交点のうち、最も左上に配されている交点を第1交点P1に設定する(S820)。換言すると、イメージの左上角(原点)からの距離が最小となる交点を第1交点P1に設定する。
【0058】
枠認識モジュール213は、第1交点P1から罫線(緯線)上をX軸方向(右方)に進んだ場合に存在する交点を順に、交点X1,X2…,Xn(nは自然数)と設定する。枠認識モジュール213は、第1交点P1から罫線(経線)上をY軸方向(下方)に進んだ場合に存在する交点を順に、交点Y1,Y2…,Ym(mは自然数)と設定する(S830)。ここで、枠認識モジュール213は、第1交点P1からX軸方向(右方)について隣り合う交点が、交点X1である。枠認識モジュール213は、第1交点P1からY軸方向(下方)について隣り合う交点が、交点Y1である。
【0059】
そして、枠認識モジュール213は、第1交点P1と交点X1,Y1とをそれぞれ繋ぐ線分、およびこれら線分に直交する線分、が存在し、直交線分が第2交点P2で交わる場合に、矩形P1-X1-P2-Y1を枠部と認識する(S840)。枠認識モジュール213は、交点X1,Y1,P2が存在しても、線分P1-X1,X1-P2,P2-Y1,Y1-P1のいずれか1つでも存在しない場合は、第1交点P1について枠部を認識しない。また、枠認識モジュール213は、交点X1,Y1、線分P1-X1,Y1-P1,これら線分に直交する線分が存在しても、直交線分が第2交点P2で交わらない場合は、第1交点P1について枠部を認識しない。
【0060】
以上のことから、枠認識モジュール213は、X軸方向(第1の方向の一例)に沿うとともに隣り合う二つの罫線と、Y軸方向(第1の方向に交わる第2の方向の一例)に沿うとともに隣り合う2つの罫線と、が4つの交点によって交わっている場合に、これら4つの交点の間に配される線分を枠部として認識するように構成されている。
【0061】
第1交点P1と交点X1,Y1との間で枠部を認識しない場合、枠認識モジュール213は、例えば、交点X1を交点X2に置き換えて、上記のとおり枠部を認識するか否かを判断する。枠認識モジュール213は、第1交点P1と交点Xn,Y1とについて枠部を認識するまで交点Xnを一つずつ変更する。なお枠部を認識しない場合は、枠認識モジュール213は、交点Y1を交点Y2に置き換えて、第1交点P1と交点X1,Y2との間で枠部を認識するか否かを判断する。このことを、第1交点P1と交点Xn,Ymとの間で枠部を認識するまで繰り返す。第1交点P1と交点Xn,Ymとの間で枠部を認識しなかった場合、枠認識モジュール213は、第1交点P1について枠部を認識しないと判断する。
【0062】
枠認識モジュール213は、上記のとおり、第1交点P1について枠部を認識するか否かを判断したのち、上記第1交点P1を同一緯線上の次の交点X1に置き換えて、引き続き、上記と同様に置き換えた第1交点P1について枠部を認識するか否かを判断する。このことを、第1交点P1を交点Xn-1に置き換えるまで繰り返す。これにより、第1の緯線に沿って左右方向に存在する枠部をすべて認識することができる。
【0063】
枠認識モジュール213は、引き続き、既に第1交点P1とされた交点を除いて、最も左上に配されている交点を、第1交点P1に設定する。そして上記S830,S840と同様に、第1交点P1について枠部を認識するか否かを判断する。このことを、第1交点P1を同一緯線上の交点Xn-1に置き換えるまで繰り返す。これにより、第2の緯線に沿って左右方向に存在する枠部をすべて認識することができる。
【0064】
枠認識モジュール213は、以上のことを、全ての緯線について網羅的に繰り返す。これにより、オリジナルイメージデータ221に含まれる全ての枠部を認識することができる。なお、当業者であれば、緯線に代えて、経線に沿って上下方向に走査して枠部を認識してよいことは理解できる。
【0065】
枠認識モジュール213が認識した枠部に関する情報は、例えば、処理後イメージデータ222として、オリジナルイメージデータ221に紐づけて補助記憶装置202に出力(記憶)する。
【0066】
また、貸借対照表1400は、
図14に示されるように、一つの枠部内に、複数の文字列が配置されている場合があり得る。そこで、枠認識モジュール213は、一の文字列に対して一つの枠部を認識する構成を備えていてもよい。例えば、枠認識モジュール213は、オリジナルイメージデータ221から文字列を認識するとともに、当該文字列の存在する部分に対応するアノテーションを作成し、作成されたアノテーションを枠部として認識する構成を備えていてもよい。なお、アノテーションは、文字列の占める領域を取り囲む枠状をなしている場合、枠認識モジュール213は、例えばアノテーションをそのまま枠部として利用することができる。一方、アノテーションが文字列の占める領域に対応した面状をなしている場合は、枠認識モジュール213は、当該アノテーションの輪郭を枠部として認識することができる。
【0067】
枠認識モジュール213は、例えば、罫線及び交点の情報に基づいて枠部を認識することの他に、アノテーションに関する情報に基づいて枠部を認識することもできる。
図12は、枠部認識フロー1200の他の例である。なお、枠認識モジュール213は、アノテーションに関する情報と罫線及び交点の情報との少なくとも一方(枠部認識フロー800、1200の少なくとも一方)に基づいて枠部を認識することができる。以下では、先に枠部認識フロー800を実行した後で、枠部認識フロー1200を追加して行う実施形態を例示して説明する。すなわち、枠認識モジュール213は、画像データの認識対象領域に罫線からなる枠部が含まれる場合に、この枠部の内部を新たな認識対象領域としてアノテーションを生成し、複数のアノテーションに基づいて新たに枠部を認識することができる。なお、枠部認識フロー1200において、S1220およびS1230は必須の工程ではなく、付加的に実行することができる工程である。
【0068】
枠認識モジュール213は、具体的には罫線及び交点の情報に基づいて認識した枠部ごとに、その内部に配される文字列についてアノテーションを作成する(S1210)。枠認識モジュール213は、これに限定されるものではないが、アノテーションを、文字列に沿う第1の方向に沿う線と、第1の方向に交わる第2の方向に沿う線と、によって枠状に形成するとよい。アノテーションは、これに限定されるものではないが、認識された文字列の最小外接矩形ないしはその相似形状となるように形成してもよい。これにより、アノテーションの形状に関する情報を簡略化することができる。
【0069】
枠認識モジュール213は、作成したアノテーションを所定の大きさだけ拡大する(S1220)。このとき、「所定の大きさ」とは、例えば、文字列における1文字の大きさや文字間ピッチ(行間ピッチ)に対する相対値として定めることができる。「所定の大きさ」は、これに限定されるものではないが、例えば、文字列における1文字の大きさを基準として、0.1文字以上2文字以下(換言すれば、1文字の大きさに対して1.1倍以上3倍以下)程度とすることができる。これによって、アノテーションを文字単位のブロックから、単語単位や、文単位につなげ、更には複数文よりなる文節単位のブロックとして認識することができる。上記「所定の大きさ」は、例えば、読取対象の情報ごとに定められていてもよいし、機械学習等により適宜設定可能とされていてもよい。
【0070】
ここで、拡大された複数のアノテーションが重畳しない場合、枠認識モジュール213は、それぞれの文字列は互いに独立していると判断して、各文字列のアノテーションを枠部として認識する(S1250)。一方で、このようにアノテーションを拡大すると、拡大された複数のアノテーションが重畳する場合があり得る。重畳した複数のアノテーションは、本来、一の文字列に付与すべき一つのアノテーションであったと考えることができる。そこで、拡大されたアノテーションが重畳した場合は、枠認識モジュール213は、重畳したアノテーションを連結して一つの新たなアノテーションを生成する(S1230)。これにより、本来一つの文字列について、その文字間ピッチ等に起因して複数の文字列と誤認識する事態の発生を低減することができる。
【0071】
例えば、アノテーションの幅を0.1文字分左右に拡大した場合には、隣に連続する文字との間隔が0.1文字より小さければ、隣の文字部分のアノテーションと連結されることになる。一方、例えば1文字以上離れた間隔があいている2つの文字列は結合されないことになる。
また、例えば、アノテーションの幅を2文字分左右に拡大した場合には、隣の文字列部分との間が2文字以下の間隔の場合にはアノテーションと連結されることになる。一方、例えば3文字以上離れた間隔があいている2つの文字列は結合されないことになる。
【0072】
枠認識モジュール213は、アノテーションのそれぞれについてアノテーションの占める領域を2次元XY座標で表した場合に、各アノテーションについて、左上座標および右下座標に関する情報を取得する(S1240)。より具体的には、枠認識モジュール213は、アノテーションの占めるXY座標のうち、当該アノテーションを包含し、かつ、最も小さいX座標と最も小さいY座標とで表される第1座標A1と、最も大きいX座標と最も大きいY座標とで表される第2座標A2と、に関する情報を取得する。そして枠認識モジュール213は、これら第1座標A1および第2座標A2を対角点とする矩形(枠状)を枠部として認識する(S1250)。枠認識モジュール213は、認識された枠部に関する情報を、例えば、処理後イメージデータ222等として補助記憶装置202に出力(記憶)する(S1260)。本実施例では、枠部認識フロー800で1つの枠として認識された枠を複数の枠に細分して認識している。
【0073】
図29は、枠部認識フロー1200の各工程におけるアノテーション認識結果2900の例である。
図29に示すように、各種情報資料等においては、項目と値との組み合わせにおいて、項目の文字列は文字数が少ないのに対し、値の文字列については、項目に比して文字数が大幅に多くなることがあり得る。例えば、値の文字列は、複数行にわたる複数の文を含み得る。
【0074】
一つの枠部に配されている文字列に対してアノテーションを作成する場合(S1210)、文字列の文字数が多く、特に句読点を含む場合は、認識結果(B)に示すように、文字列の全体が一つの塊(値)とは認識されず、複数の文字列(値)に分割して認識されやすい。これに対し、枠認識モジュール213は、すでに説明したとおり、枠部認識フロー1200にしたがって、認識された複数のアノテーションを拡大し(S1220)、重畳するアノテーションについては、認識結果(C)に示すように互いに連結することができる(S1230)。また、枠認識モジュール213は、連結したアノテーションについて、第1交点P1(左上座標)および第2交点P2(右下座標取得)に関する情報を取得し、これら第1交点P1および第2交点P2に基づいて枠部を認識する(S1240)。その結果、認識結果(D)に示すように、文字数が極めて多い文字列であっても、一つの文字列(すなわち、一つの値)として認識することができる。
【0075】
文字列認識モジュール216は、枠認識モジュール213によって認識された枠部ごとに、文字認識機能によって、その内部に配される文字列を構成する各文字を認識する(S730)。文字列認識モジュール216は、例えば、認識された文字列に関する情報を、処理後イメージデータ222等として補助記憶装置202に出力(記憶)する。文字列認識モジュール216は、例えば、認識された文字列に関する情報を、分類モジュール217に受け渡す(出力する)ように構成されていてもよい。
【0076】
例えば人の作成する資料の特徴として、文字列は、項目および値の組み合わせを含むように構成され、これらは一般に、1つの項目に対して1又は複数の値を紐づけたものであり得る。そこで分類モジュール217は、文字列認識モジュール216によって認識された文字列を、例えば項目と、値と、に分類する(S740)。分類モジュール217は、これに限定されるものではないが、例えば、項目に関する情報を含む辞書に基づいて、文字列を項目と値とに分類することができる。
【0077】
(分類方法1)
分類モジュール217は、例えば、文字列が数字のみからなる場合は値と判断し、文字列が文字を含む場合は項目と判断していてもよい。なお、年、年度、円、¥、ドル、$等の所定の文字列が数値と連続して用いられている場合は、当該文字列を数値の単位として認識し、当該単位が付属した数値を一つの値と判断することができる。これらの所定の文字列は、例えば、値に関する情報の一つとして辞書に記憶されていてもよく、分類モジュール217は、かかる辞書に基づいて、当該単位が付属した数値を値と判断してもよい。
【0078】
(分類方法2)
人の作成する資料の特徴として、項目の先頭に特定の文字や記号(以下、単に「特定文字」という。)を用いて見出しを付すことがあり得る。この場合、特定文字としては、一般的に、同一の階層の項目について付される文字を考慮することができ、例えば、序数(例えば、1.、(1)、1)、i、I、丸付き数字等)、アルファベット(例えば、A,B,C)、括弧(例えば、丸括弧、角括弧、隅付括弧等)、中点、箇条書きマーク(例えば、中丸、二重丸、三角記号、四角記号、バツ印等)、セクションマーク等のいずれか1つ、または2つ以上の組み合わせ等が挙げられる。これらの特定文字は、資料中に、同一の階層において、2つ以上(例えば、3つ以上)繰り返し配されるという特徴(規則性)がある。
【0079】
そこで、分類モジュールは217は、一の方向(例えば、左右方向)に延びる文字列については左端に特定文字が2回以上配置されている場合、および、一の方向に対して交わる他の方向(例えば、上下方向)に延びる文字列については上端に特定文字が2回以上配置されている場合に、これらの文字列が項目であると判断することができる。また、分類モジュールは217は、これらの特定文字を含む文字列が一の方向(例えば、左右方向または上下方向)について2回以上配されている場合、分類モジュールは217は、当該文字列に対して他の方向(例えば、下側または右側)に配される文字列を全て、当該項目に対応する値として分類するとともに、互いに対応づけることができる。
【0080】
また、分類モジュール217は、例えば、他の文字列に対して、相対的に太字(特定の文字情報の一例)で記載された文字列は、項目とみなすこともできる。また、他の文字と比較して、異なる特定のフォントや色(特定の文字情報の一例)が使われている文字列を、項目とみなすこともできる。
以上の特定文字や、特定の文字情報は、例えば、項目に関する情報の一つとして辞書に記憶されていてもよく、分類モジュール217は、かかる辞書に基づいて、当該文字列を項目と判断してもよい。
また、特定文字の配置に基づく項目と値との対応づけのルールについては、項目と値との対応に関する情報の一つとして辞書に記憶されていてもよく、分類モジュール217は、かかる辞書に基づいて、当該項目と値とを対応づけてもよい。
【0081】
なお、分類方法2により文字列を項目と値とに分類する場合、分類モジュール217は、これらの文字列の分類と同時に、紐づけ(S750)および構造化(S760)を行うことができる。
【0082】
(分類方法3)
あるいは、分類モジュール217は、予め用意された辞書情報に基づいて、文字列認識モジュール216によって認識された文字列を、項目と、値と、に分類してもよい。例えば、分類モジュール217は、辞書情報500のうち、貸借対照表辞書情報600に基づいて、認識された文字列のうち貸借対照表辞書情報600の項目610に該当する文字列については項目と判断し、項目610に該当しない文字列については値であると判断する構成を備えていてもよい。
【0083】
なお、分類方法3により文字列を項目と値とに分類する場合、分類モジュール217は、項目610に該当する文字列については、貸借対照表辞書情報600の階層620および内容の属性630に関する情報に基づいて、当該文字列の階層情報や、紐づけられる文字列の属性情報を、併せて取得してもよい。これにより、管理サーバ101による分類と、後述する紐づけおよび階層化(構造化)の精度を高めることができる。
【0084】
分類モジュール217は、項目と値とに分類された文字列を紐づける(S750)。また、分類モジュール217は、項目と値とに分類された文字列の階層情報を取得する(S760)。文字列の紐づけ(S750)と階層情報の取得(S760)とは、いずれを先に実施してもよいし、両方を同時に(並行して)実施してもよい。
【0085】
図10は、紐づけフロー1000の例である。
図11は、階層取得フロー1100の例である。
分類モジュール217は、文字列の認識結果を取得し(S1010)、文字列の項目と値を紐づけ(S1020)、その結果を補助記憶装置202に出力する。分類モジュール217はまた、文字列の認識結果を取得し(S1110)、それぞれの文字列について階層に関する情報を取得し(S1120)、その結果を補助記憶装置202に出力する。
【0086】
(紐づけ方法1)
分類モジュール217は、これに限定されるものではないが、例えば、罫線の認識結果1500における枠部の配置の特徴に基づいて、文字列を紐づけたり、階層構造化するように構成されていてもよい。例えば、罫線の認識結果1500には、最も上方に配される枠部W1,W2が複数(ここでは二つ)存在する。また、これらの枠部W1,W2の間に配される罫線L1は、表の最上部から最下部にまで至っている。また例えば、枠部W1の下方には、枠部W1と幅が等しくなるように、1又は複数の枠部が配列されている。枠部W2の下方には、枠部W2と幅が等しくなるように、1又は複数の枠部が配列されている。
【0087】
図16(A)(B)は、枠部の分類1600の仕方を示した例である。
罫線L1が最上部から最下部にまで至っているということは、すなわち、罫線L1は当該罫線と平行な外枠と同じ長さを有すると言える。このような場合、分類モジュール217は、例えば
図16(A)に示すように、外枠と同じ長さを有する罫線L1によって、表を二つに分割できると判断する。分類モジュール217は、罫線の認識結果1500からなる表を、枠部W1を含む表部分と、枠部W2を含む表部分と、の左右二つに分割する。
【0088】
なお、枠部W1およびW2の下辺をなす罫線、ならびにこれと並行かつ同じ長さの2本の罫線も、罫線L1と同等の条件を満たし得る。しかしながら、例えば枠部W1およびW2の下辺をなす罫線で表を上下に二分割すると、分割された上側の表は、含まれる枠部(セル:区画される枠部の最小単位;ともいう)がW1とW2だけとなり、分割された下側の表が包含するセルの数と比べて著しく少なくなり、表の分割線として適切ではないと判断することができる。したがって、例えば、分類モジュール217は、罫線に基づいて分割された後の各表が包含するセル数の差に基づいて、表を分割する分割線として採用する罫線の優先度を判断することができる。分類モジュール217は、例えば、分割後の表のセル数の差が小さくなる罫線ほど、分割線としての優先度を上げることができる。したがって、
図15の表の場合、分類モジュール217は、枠部W1およびW2の下辺等については、分割線としての優先度を下げ、分割後の表に内包される枠部(セル)の数の差が小さくなる罫線L1を分割線として採用する。
【0089】
また、
図16(A)の右側に示す、分割された枠部W2を含む表右部分は、枠部W2と同じ寸法の枠部W3を含む。枠部W2とW3は、枠部としての長さが外枠(この場合、分割後の表右部分の外枠)と同じ長さである。このような場合、分類モジュール217は、例えば
図16(B)に示すように、枠部W2を含む表部分を、枠部W3よりも上の部分(枠部W2を含む表部分)と、枠部W3から下の部分(枠部W3を含む表部分)と、に上下二つに分割できると判断する。
【0090】
分類モジュール217は、分割後の3つの表について、さらに分割可能かを検討する。3つの各表において、枠部W1、W2、W3の下辺をなす罫線は、他の罫線に横断されることなく外枠の左端から右端まで延びている。なお、枠部W1、W2、W3の下辺をなす罫線と並行かつ同じ長さの2本の罫線も、同等の条件を満たし得る。ここで、枠部W1、W2、W3の下辺をなす罫線で各表部分を分割した場合、分割後に枠部W1、W2、W3はそれぞれ単独セルとなる。このような枠部W1、W2、W3は、分割された他のセルと比較して、相対的に高い階層の文字列が記載された項目セルであることが多い。そこで、分類モジュール217は、罫線に基づいて分割された後の各表が包含するセル数に基づいて、項目セルを区画する分割線として採用する罫線の優先度を判断することができる。分類モジュール217は、例えば、分割後の表のセル数が1となる罫線について、分割線としての優先度を上げ、分割後の単独セルを項目セルとして認識することができる。なお、項目セルを区画する分割線は、他の罫線と交わるものの、他の罫線に横断されないという特徴も有し得る。そこで、分類モジュール217は、他の罫線に横断されることなく外枠の一の辺と同じ長さの罫線について、項目セルを区画する分割線であると判断してもよい。
【0091】
分類モジュール217は、分割の結果、他の枠部が含まれない単独セルとなった枠部W1,W2,W3をそれぞれ、分割後の3つの表の最上位の階層と判断し、枠部W1,W2,W3よりも下方に配される枠部をそれぞれ、枠部W1,W2,W3に対して相対的に下位の階層の枠部であると判断する。そして、分類モジュール217は、分割の結果、単独セル(単一の枠部)が現れた段階で、表の分割処理を終了する。分類モジュール217は、枠部W1,W2,W3と、枠部W1,W2,W3よりも下方に配される枠部と、をそれぞれ階層化しつつ、対応付けることができる(第1の階層化および紐づけ)。
【0092】
図17は、枠部の分類1700の例である。
図16(B)に示すように、枠部W1,W2,W3よりも階層が下位の枠部からなる表部分において、罫線L2,L3,L4はそれぞれ最上部から最下部にまで至っている。このような場合、分類モジュール217は、例えば
図17に示すように、枠部W1,W2,W3よりも下位の表部分について、それぞれ罫線L2,L3,L4によって左右二つに区画できると判断する。すなわち、枠部W1の下位の表部分については、枠部W11およびその下方に配される枠部W13,W15と、枠部W12およびその下方に配される枠部W14,W16と、に区画(分類)することができる。枠部W2の下位の表部分については、枠部W21およびその下方に配される枠部W23,W25と、枠部W22およびその下方に配される枠部W24,W26と、に区画することができる。枠部W3の下位の表部分については、枠部W31およびその下方に配される枠部W33,W35,W37と、枠部W32およびその下方に配される枠部W34,W36,W38と、に区画することができる。分類モジュール217は、枠部W11~W32と、枠部W11~W32よりも下方に配される枠部と、をそれぞれ階層化しつつ、対応付けることができる(第2の階層化および紐づけ)。
【0093】
ただし、枠部W11およびその下方に配される枠部W13,W15と、枠部W12およびその下方に配される枠部W14,W16とは、枠部W1によって不可分なものとして対応づけられている。したがって、枠部W11およびその下方に配される枠部W13,W15の中の文字列と、枠部W12およびその下方に配される枠部W14,W16の中の文字列とは、左右方向に沿って、互いに対応づけることができる(第3の階層化および紐づけ)。枠部W13,W14については、その内部に、アノテーションに基づいて認識された複数の枠部がそれぞれ存在する。分類モジュール217は、枠部W13内の複数の枠部と、枠部W14内の複数の枠部と、についても左右方向に沿って互いに対応づけることができる。
【0094】
分類モジュール217は、枠部W21と枠部W22、枠部W23と枠部W24、枠部W25と枠部W26、枠部W31と枠部W32、枠部W33と枠部W34、枠部W35と枠部W36、枠部W37と枠部W38についても同様に対応づけることができる(第3の階層化および紐づけ)。
【0095】
また、分類モジュール217は、上記の罫線の認識結果1500における枠部の配置の特徴が90度異なる場合(行列構成が逆の表構造の場合)についても、同様に、文字列の階層化と紐づけとを行うことができる。
【0096】
(紐づけ方法2)
あるいは、分類モジュール217は、予め定められたテーブルルールに基づいて、それぞれの枠部に配される文字列を対応付けるようにしてもよい。
【0097】
分類モジュール217は、まず上述した方法によって、各枠部に配される文字列を項目と値とに分類する(S740)。そしてこのとき、X軸方向およびY軸方向の少なくとも一方に沿って順に、項目と値の出方について所定の規則性(ルール)が見られるかどうかを確認する。分類モジュール217は、例えば上記の「紐づけ方法1」において同じ階層と判断された文字列について、所定のルールが見られるかどうかを確認してもよい。分類モジュール217は、所定のルールが見られた場合にルールごとのフラグを付け、1つの資料の読み取りにおいて同じルールが複数回(例えば、3回以上)現れた場合は、そのルールを当該表の共通ルールとし、このルールに従って項目と内容とを紐づける(S760)。項目および値の出方と、その場合の各文字列の紐づけ方法(ルール)としては、以下のものが挙げられる。
なお、分類モジュール217は、同じルールが1つのテーブルの中に複数回現れた場合を共通ルールとしてもよく、また同じルールが複数の表を持つ資料全体について複数回現れた場合に共通ルールとしてもよく、その両方であってもよい。
【0098】
(1)例えば、ある配列における文字列の属性が、順に「文字」、「数字」、「文字」、「数字」となった場合、最初の「文字」、「数字」を1つの組み合わせとして紐づけし、続く「文字」,「数字」を1つの組み合わせとして紐づける。
(2)例えば、ある配列における文字列の属性が、順に「文字」、「数字」、「数字」、「文字」、「数字」となった場合、最初の「文字」、「数字」、「数字」を1つの組み合わせとして紐づけし、続く「文字」,「数字」を1つの組み合わせとして紐づける。
(3)例えば、ある配列における文字列の属性が、順に「文字」、「数字」、「数字」、「数字」となった場合、「文字」を項目とし、続く3つの「数字」を値として当該項目に紐づける。
【0099】
分類モジュール217は、このような処理によって、枠部の内部の文字列を項目と値に簡便に分類し、紐づけることができる。文字列は、これに限定されるものではないが、例えば、キー・バリュー形式で紐づけることができる。これにより、例えば大量の資料から情報を読み取る場合でも、予めスキーマを定義する必要なく、情報を記憶することができる。
また例えば、分類モジュール217は、項目や項目の階層構造を特定した後、その項目の近傍に存在する値を特定し、紐付けることができる。例えば、項目の階層構造と同じ階層構造を持つ値を、それぞれの項目と対応付けることができる。また、項目のすぐ右に存在する文字列を値として対応付けることができる。また、項目と値の構造が上下の位置関係に存在する場合には、項目のすぐ下に存在する文字列を値として対応付けることができる。
【0100】
図18は、読取情報1800の例である。
分類モジュール217は、読取情報1800を、例えばJSON形式のファイルに出力(記億)する(S770)。分類モジュール217は、読取情報1800を、キー・バリュー型の構造化された項目と値として出力(記億)する。しかしながら、読取情報1800のデータ構造はこの例に限定されない。読取情報1800は、例えば、キー・バリュー型以外であってよく、例えば、ソート済みカラム指向型、ドキュメント指向型、グラフ志向型等に代表される非リレーショナル型、階層型、ネットワーク型などであってよい。
【0101】
図19は、読取結果表示画面1900の例である。
ユーザ端末管理モジュール211は、例えば、ユーザ端末102のユーザ実行モジュール311と連携し、ユーザ端末102のディスプレイ(出力装置305の一例)に、読取結果表示画面1900を出力(表示)する。
【0102】
ユーザ端末管理モジュール211は、読取結果表示画面1900において、オリジナルイメージデータ221に基づくイメージ1901と、処理後イメージデータ222に基づくイメージ1902(枠部の認識結果)と、を上下または左右に並べて表示する。これにより、管理サーバ101による資料の読み取りが適切に行われたかどうかを容易に比較して確認することができる。なお、イメージ1902では、枠部の認識結果を表示していることを明確にするために、文字列の表示を省略している。
【0103】
ユーザ端末管理モジュール211は、読取結果表示画面1900において、例えば、スライドバーアイコン1903、前頁ボタン1904、次頁ボタン1905、およびモード切替ボタン1906を表示する。前頁ボタン1904および次頁ボタン1905はそれぞれ、複数の資料について情報を読み取っている場合に、一つ前の資料についての読取結果を表示させたり、次の資料についての読取結果を表示させたりする、ページ送り用のボタンである。
【0104】
ユーザ端末管理モジュール211は、読取結果表示画面1900に、目的の資料読取結果を表示するページに飛ぶ移動ボタン等を表示してもよい。モード切替ボタン1906は、例えば、認識結果のイメージ1902に補正が必要な場合に、補正モードに移行するためのボタンであり、また、補正モードにおいて補正を終えた場合に、補正内容を確定して通常モード(確認モード)に復帰するためのボタンである。スライドバーアイコン1903は、例えば、補正モードにおいて、認識結果等に様々な補正を加えるために使用するUIである。
【0105】
図20(A)~(C)は、枠部の認識結果2000の他の例である。
認識結果(A)は、文字認識機能によって文字列を高精度に読み取っていることから、罫線と交点とに基づいて枠部を認識するとき、文字(ここでは漢字「部」「固」「合」)の一部を枠部として誤認識している。認識結果(B)は、認識結果(A)ほどではないものの、なお文字(ここでは漢字「合」)の一部を枠部として誤認識している。認識結果(C)は、文字の一部を枠部として認識してはいないものの、代わりに、複数の枠部として認識すべきところを一つの枠部として過度に大きく認識している個所がある。
【0106】
このような枠部の認識不良を低減するために、枠選択モジュール215は、枠認識モジュール213によって認識された複数の枠部のうち、所定の枠設定条件を満たすものを選択する。そしてユーザ端末管理モジュール211は、選択された前記複数の枠部に関する情報を出力するように構成されている。
【0107】
(補正方法1)
図9は、枠補正フロー900の例である。
枠補正フロー900において、枠選択モジュール215は、まず、認識されたそれぞれの枠部について、枠部の情報を取得する(S910)。枠部の情報としては、例えば、座標、および寸法に関する情報等が挙げられる。座標は、例えば、枠部の左上の頂点(第1交点P1に相当)の座標を代表座標としてもよい。
【0108】
次いで、枠選択モジュール215は、枠設定条件を取得する(S920)。枠設定条件としては、例えば、枠部の大きさを示す指標(例えば、面積、辺の寸法)に下限の閾値を設けること等が挙げられる。閾値は、例えば、枠部の大きさが、文字列における「一文字」よりも大きくなるように適宜設定することができる。閾値は、その他に、例えば、イメージの全体寸法(すなわち用紙の大きさに相当)に対する枠部の大きさの割合等として設定してもよい。
【0109】
そして、枠選択モジュール215は、認識された複数の枠部のうち、枠設定条件を満たす枠部を選択し、例えば、選択された枠部に関する情報を、補助記憶装置202出力(記憶)する。これにより、後工程で、枠選択モジュール215によって選択された枠部に基づいて、文字列の認識を行うことができる。その結果、資料の情報を、適切かつ高精度に読み取ることができる。また、ユーザ端末管理モジュール211は、例えば、読取結果表示画面1900において、枠選択モジュール215によって選択された枠設定条件を満たす枠部のみを表示することができる。
【0110】
(補正方法2)
図13は、枠補正フロー1300の他の例である。
枠選択モジュール215は、枠補正フロー1300にしたがって適切な枠部を選択するようにしてもよい。具体的には、枠選択モジュール215は、枠認識モジュール213によって認識された枠部についての情報と、枠設定条件と、を取得する(S1310,S1320)。ここで、枠設定条件は、枠部の大きさを示す指標(例えば、面積)の下限の閾値であると仮定する。枠選択モジュール215は、認識されたそれぞれの枠部の情報に基づいて、認識された枠部の面積が、枠設定条件における面積の下限の閾値以上であるかどうか(つまり、枠設定条件を満たすかどうか)を判断する(S1330)。
【0111】
そして、認識された枠部の面積が、枠設定条件における面積の下限閾値よりも小さい場合に(S1330でNo)、枠選択モジュール215は、当該認識された枠部についての情報を削除する(S1340)。一方で、認識された枠部の面積が、枠設定条件における面積の下限閾値以上の場合(S1330でYes)、枠選択モジュール215は、当該認識された枠部についての情報をそのまま出力(記憶)する(S1350)。
【0112】
枠選択モジュール215は、枠部についての情報を削除したとき(S1340)、枠認識モジュール213に対して、当該枠部に対応する罫線および交点(例えば、第1交点P1)に基づいて、枠部を認識しなおすように、指示する構成を備えていてもよい。
枠選択モジュール215は、枠補正フロー1300による枠部の選択を、例えば、枠認識モジュール213がすべての枠部を認識し終わってから実行してもよいし、枠認識モジュール213が枠部を認識するのに合わせて逐次実行してもよい。
このような構成によっても、資料の情報を、適切かつ高精度に読み取ることができる。
【0113】
(補正方法3)
枠補正モジュール214は、枠設定条件の変更を受け付ける構成を備えている。枠設定条件の変更指示は、管理サーバ101に直接入力されてもよいし、ユーザ端末102を介して管理サーバ101に入力されてもよい。
【0114】
(補正方法3-1)
図21は、枠補正画面2100の例である。
枠補正モジュール214は、例えば、ユーザ枠補正モジュール312と連携し、ユーザがユーザ端末102に入力した枠設定条件の変更指示を受け付ける構成を備えている。例えば、読取結果表示画面1900において表示された読取結果において誤認識された枠部が表示されている場合などに、枠補正モジュール214は、例えば、ユーザ端末102からの補正モード移行指示(例えば、モード切替ボタン1906の選択)を受け付け、ユーザ端末102のディスプレイ(出力装置305の一例)に枠補正画面2100を出力(表示)する。
【0115】
そして枠補正モジュール214は、枠補正画面2100において、ユーザ操作に基づいて枠補正画面2100がクリック(選択)された場合に、現在の枠設定条件における閾値の大きさに対応する図形2101(ここでは、中心点を有した円)を枠補正画面2100上に表示する。枠補正モジュール214は、ユーザ操作に基づいて枠補正画面2100がクリック&ドラッグされた場合に、ドラッグ幅に応じて図形の大きさを(ここでは、円の半径)変更する。
【0116】
枠補正モジュール214はさらに、ドラッグ幅に応じて枠設定条件における閾値の大きさを変更する。枠選択モジュール215は、変更された枠設定条件に基づいて、枠設定条件を満たす枠部を選択し、ユーザ端末管理モジュール211は、選択された枠部のみをユーザ端末102のディスプレイに表示する。変更された枠設定条件に基づく選択された枠部の表示は、枠設定条件の変更とともに、リアルタイムで反映されるようになっている。ドラッグ操作はカーソルを連続的に移動させるため、閾値を連続的に変化させることができる。ユーザは、カーソルを連続的に移動させながら、最適な閾値に変更させたところでクリックを開放して、閾値の値(ひいては枠部の認識結果)を確定することができる。
【0117】
枠補正モジュール214は、認識されているすべての枠部について枠設定条件を変更するように構成されていてもよいし、予め選択した1または複数の枠部について、枠設定条件を変更するように構成されていてもよい。1または複数の枠部についてのみ枠設定条件を変更する場合、枠補正モジュール214は、ユーザ端末102を介して、枠補正画面2100に表示された複数の枠部の中から枠設定条件を変更する枠部の選択指示を予め受け付ける。その後、枠補正モジュール214は、上記の手順にしたがい、ドラッグ幅に応じて、図形の大きさと枠設定条件とを変更する。
【0118】
(補正方法3-2)
なお、閾値の大きさに対応する図形2101は円に限定されず、例えば、他の幾何学図形や、目盛り、スライドバー(スライドバーアイコン2103であり得る)、およびこれらの組み合わせなどであってよい。枠補正モジュール214は、例えば、スライドバーアイコン210の操作によって枠設定条件の変更の割合を、例えば0.1倍から10倍程度の範囲で変更する指示を受け付けるように構成されていてもよい。
【0119】
また、(補正方法3-1)で示した円の半径による補正と、スライドバーアイコン2103による補正と、を組み合わせてもよい。例えば、枠補正モジュール214は、ドラッグ幅に応じて枠設定条件における閾値の大きさを変更することに代えて、スライドバーアイコン2103のスライド操作によって閾値の大きさを変更するように構成されていてもよい。この場合、ユーザはカーソルをクリックしたのちに連続して(ホールド状態で)ドラッグさせる必要がない。
【0120】
(補正方法3-3)
また、枠補正モジュール214は、例えば、枠補正画面2100に、1又は複数のスライドバーアイコン2103を表示し、このスライドバーアイコン2103の操作による補正指示を受け付ける構成を備えていてもよい。枠補正モジュール214は、例えば、枠補正画面2100に、機能の異なる4つのスライドバーアイコン2103を表示している。
【0121】
補正指示の内容はこれに限定されるものではないが、上から1つ目のスライドバーアイコン2103は、例えば、除去するノイズの上限の大きさの変更を受け付けることができる構成となっている。上から2つ目のスライドバーアイコン2103は、例えば、後述する傾き補正における補正角度(回転角度)の変更を受け付けることができる構成となっている。上から3つ目のスライドバーアイコン2103は、例えば、資料の読取時のゆがみ(紙面の法線方向のズレに起因するゆがみ)を補正する台形補正における補正角度の変更を受け付けることができる構成となっている。上から4つ目のスライドバーアイコン2103は、例えば、二値化における閾値の変更を受け付けることができる構成となっている。
【0122】
(補正方法3-4)
また、枠補正モジュール214は、罫線編集機能を備えていてもよい。罫線編集機能は、例えば、罫線追加、罫線削除、罫線変形等の機能を備えている。枠補正モジュール214は、罫線編集機能によって、枠補正画面2100の任意の位置に罫線を追加したり、任意の罫線を削除したり、任意の枠部を変形したり、することができる構成を備えている。
【0123】
枠補正モジュール214は、例えば、罫線追加モードが選択された状態で、枠補正画面2100上でクリック操作がなされた場合、枠補正画面2100に罫線を追加する。枠補正モジュール214は、例えば、罫線変形モードが選択された状態で、ポインティングデバイス等による操作を受け付けることによって、罫線の位置や、罫線の一端または他端の位置を、それぞれ独立して変更できるように構成されている。
【0124】
枠補正モジュール214は、例えば、罫線削除モードが選択された状態で、ポインティングデバイス等による操作で罫線が選択された場合、当該罫線を削除できるように構成されている。これにより、例えば、
図20の認識結果(C)における、過度に大きく認識されている枠部について、罫線を追加することで二つに分割することができる。枠補正モジュール214は、罫線編集機能による罫線の補正処理にしたがって、枠部に関する情報を変更する。
【0125】
(補正方法3-5)
また、枠補正モジュール214は、例えば、枠補正画面2100に、認識結果(A)~(C)のような、枠設定条件の閾値の異なる複数通り(典型的には、2~6通りであり、例えば3通り)の認識結果を同時に並べて表示するように構成されていてもよい。この場合、枠補正モジュール214は、枠設定条件の閾値として、適正よりもやや小さめの閾値と、適正よりもやや大きめの閾値と、が含まれるように閾値を決定することができる。そして、表示された複数の認識結果に適切なものが含まれていれば、当該適切な認識結果を選択することで、枠補正モジュール214は、枠設定条件の閾値を選択された認識結果に対応する閾値に変更するようにしてもよい。
【0126】
表示された複数の認識結果に適切なものが含まれていない場合は、いずれか二つの認識結果(例えば、認識結果(A)と(B)と仮定する。)に対応する閾値の間に、適切な認識結果を生成する閾値が含まれることになる。このような場合、ユーザは、認識結果(A)および(B)のいずれか一方を選択し、他方に向けてドラッグする。すると、枠補正モジュール214は、ドラッグされている一方の認識結果の閾値を、他方の認識結果の閾値に近づくように、ドラッグ幅に応じて閾値を変化させるとともに、一方の認識結果における枠部の形状を当該閾値に合わせて変更する。これにより、ユーザは、一方の認識結果をドラッグするという簡単な操作によって、枠設定条件を直感的に適切に内容に補正することができる。
【0127】
なお、枠補正モジュール214は、枠補正画面2100に、スライドバーアイコン2103と確定用アイコン2106とを表示している。そして、枠補正モジュール214は、一方の認識結果が選択されたときに、当該一方の認識結果をドラッグすることで閾値を変更することに代えて、スライドバーを移動させることによって移動幅に応じて閾値を変更する構成としてもよい。また、枠補正モジュール214は、閾値を変更せずに、または変更した後に、確定用アイコン2106が選択されることにより、当該閾値を確定させる構成としてもよい。
【0128】
すなわち、枠補正モジュール214は、現在の前記枠設定条件における閾値の大きさに対応する図形を前記画面に表示するとともに、操作入力に応じて前記閾値の大きさを変更し、変更された前記閾値の大きさに対応して前記図形の位置、大きさ、形状の少なくとも1つを変更することができる。
以上のような構成によると、ユーザは、枠設定条件の閾値の大きさを簡便に変更することができるとともに、変更の度合いを直感的に把握することができる。また、枠設定条件の変更の度合いをリアルタイムで視認しながら調整することができる。
【0129】
なお、枠補正モジュール214は、枠補正画面2100の下方において、確定用アイコン2106の他に、左向きの三角アイコン2104と、右向きの三角アイコン2105と、を表示している。枠補正モジュール214は、枠補正画面2100におけるこれらのアイコンを、ページ移動用のボタンではなく、例えば、補正操作の取り消し用のアイコン2104、および、補正操作の繰り返し用のアイコン2105、として機能させることができる。
【0130】
ユーザ端末102において左向きの三角アイコン2104が選択されることで、枠補正モジュール214は、ユーザによる枠設定条件の変更操作を1工程分だけ元に戻すように構成されている。ユーザ端末102において右左向きの三角アイコン2105が選択されることで、例えば、枠補正モジュール214は、ユーザによって戻された枠設定条件の変更操作を1工程分だけ進めるように構成されている。ユーザ端末102において確定用アイコン2106が選択されることで、枠補正モジュール214は、ユーザによって変更された枠設定条件の変更操作を確定するように構成されている。
【0131】
図22は、アノテーション確認画面2200の例である。
ユーザ端末管理モジュール211は、例えば、文字列にアノテーションの付与を行った場合に、ユーザ端末102のユーザ実行モジュール311と連携し、ユーザ端末102のディスプレイ(出力装置305の一例)に、アノテーション確認画面2200を出力(表示)する。
ユーザ端末管理モジュール211は、アノテーション確認画面2200において、オリジナルイメージデータ221に基づくイメージ2201と、アノテーション認識結果を反映した処理後イメージデータ222に基づくイメージ2202と、を上下または左右に並べて表示する。これにより、管理サーバ101による資料の読み取りが適切に行われたかどうかを容易に比較して確認することができる。
【0132】
図23は、アノテーション確認画面2300の他の例である。紙ベースの資料を読取装置で読み取る際に、紙の姿勢が傾いたまま読み取りが行われると、オリジナルイメージデータ221における文字列自体が傾き、処理後イメージデータ222に基づくイメージ2302の領域に対してアノテーションの認識結果も傾くこととなる。このとき、文字列に対して作成するアノテーションの角度にも、ばらつきが生じやすい。このような場合、例えばAIでは、いずれのアノテーションが水平または垂直となるように回転補正を行えばよいのか、判断を誤る事態が生じやすい。
【0133】
枠補正モジュール214は、寸法の大きい(すなわち長い)複数(例えば2~3個)のアノテーションについて、水平線または垂直線と、アノテーションの傾斜角度に沿う線と、からなる角度アイコン2303をアノテーション確認画面2300上に表示する。また、枠補正モジュール214は、アノテーション確認画面2300においてカーソルが角度アイコン2303に近接または重畳すると、傾斜したアノテーションを水平または垂直に「修正」(回転補正)するか、「無視」するか、を選択可能な選択アイコン2304をアノテーション確認画面2300上に表示する。枠補正モジュール214は、「無視」が選択されると補正を行わない。枠補正モジュール214は、「修正」が選択されると、処理後イメージデータ222に対して角度アイコン2303がなす角度だけ(すなわち、アノテーションが水平または垂直となるように)回転補正を施す。
【0134】
なお、回転補正後の処理後イメージデータ222に基づくイメージにおいて、所定の角度以上傾いているアノテーションについては、それぞれ、水平線または垂直線と、アノテーションの傾斜角度に沿う線と、からなる角度アイコン2303および選択アイコン2304が表示されるようになっている。枠補正モジュール214は、選択アイコン2304を表示させたアノテーションのそれぞれについて、「無視」が選択されると補正を行わず、「修正」が選択されると回転補正を施す。これにより、枠部ごとに文字列認識を行う前に文字列の傾斜を補正するすることができ、文字列の認識精度を高めることができる。なお、回転補正の角度は、角度アイコン2303によって定められたものに限定されず、枠補正モジュール214は、上記のように、スライドバーアイコンなどによって調整された角度で回転補正する構成とされていてもよい。
【0135】
図24は、アノテーション確認画面2400の他の例である。
枠認識モジュール213は、アノテーションの作成に際し、
図24に示すように、予め定められた特定文字2403については、アノテーションを付与しないように構成されていてもよい。例えば、枠認識モジュール213は、アノテーションを作成する際の文字列の認識において、事前に登録された特定文字を検出した場合に、特定文字をアイコンとして認識し、文字列の残りの部分にアノテーションを作成する。特定文字は、(分類方法2)で説明したものと同じとすることができる。これにより、文字列認識モジュール216は、例えば特定文字に対して文字認識を行わない。その結果、当該文字列において、特定文字と項目とが一体となって一つの意味のある単語を形成していると誤まって認識されることを抑制することができる。
【0136】
図25は、アノテーション確認画面2500の他の例である。
文字列のうち、特定文字の部分を高精度に抽出する処理は比較的困難となり得る。例えば
図25のアノテーション2503に示すように、特定文字を検出できずに、特定文字を含む文字列の全体にアノテーションを作成することがあり得る。また、特定文字のうちでも、面積の小さい中点2504等はノイズとして認識されない可能性があり得る。
【0137】
ユーザは、このような誤認識を見つけた場合、例えば、アノテーション確認画面2500における当該誤認識の箇所をダブルクリックすることで、当該箇所の再認識の指示をすることができる。枠認識モジュール213は、ユーザ端末102からの指示(ここでは、例えば、ダブルクリック)を受けて、当該箇所(文字列であってよい)について特定文字の有無を再認識するとともにアノテーションを作成しなおす。このとき、枠認識モジュール213は、例えば、アノテーション確認画面2500に特定文字選択ボタン(不図示)を表示するなどして、強制的に特定文字を認識させることができるようにしてもよい。また、枠認識モジュール213は、アノテーション確認画面2500に1又は複数のスライドバーアイコン2505を表示し、1又は複数のスライドバーによる各種の閾値の変更によって、枠認識モジュール213が特定文字を認識しやすくなるように認識結果を変更可能にしてもよい。
【0138】
図26は、読取結果表示画面2600の他の例である。
枠認識モジュール213は、読取結果を表示する際に、例えば
図26に示すように、所定の枠部について、着色,網掛け等の加飾を施して表示するようにしてもよい。例えば、枠認識モジュール213は、上位の階層(例えば、階層1および2)の項目について、文字列の認識結果の確認を妨げないように、例えば、背景に鮮やかな色(例えば、蛍光色)で色彩を施すようにしてもよい。これにより、ユーザが読取結果表示画面2600において読取結果を確認する際に、情報の視認性を高めることができる。
具体的には、例えば、認識結果2800の左上方に示すように、加飾枠部および非加飾枠部が上下に隣接して配置された組み合わせが、左右方向に2つ以上(ここでは3つ)並んでいるとき、分類モジュール217は、それぞれの加飾枠部が項目であり、それぞれの非加飾枠部が値であり、上下に並ぶ加飾枠部および非加飾枠部が互いに紐づけられていると判断することができる。すなわち、「間取り」と「1LDK」、「賃料」と「215,000円」、「管理料等」と「15,000円」がそれぞれ紐づけられる。また、認識結果2800の右方に示すように、加飾枠部および非加飾枠部が左右に隣接して配置された組み合わせが、上下方向に2つ以上(ここでは、2つ、3つ、16個)並んでいるとき、分類モジュール217は、それぞれの加飾枠部が項目であり、それぞれの非加飾枠部が値であり、左右に並ぶ加飾枠部および非加飾枠部が互いに紐づけられていると判断することができる。すなわち、「敷金」と「215,000円」、「礼金」と「215,000円」、「物件種別」と「マンション」等のようにそれぞれ紐づけられる。なお、分類モジュール217は、加飾枠部が値であり、非加飾枠部が項目である、と判断するように構成されていてもよい。
なお、本発明は上記した実施例に限定されるものではなく、様々な変形例が含まれる。例えば、上記した実施例は本発明を分かりやすく説明するために詳細に説明したものであり、必ずしも説明した全ての構成を備えるものに限定されるものではない。また、ある実施例の構成の一部を他の実施例の構成に置き換えることが可能であり、また、ある実施例の構成に他の実施例の構成を加えることも可能である。また、各実施例の構成の一部について、他の構成の追加・削除・置換をすることが可能である。
また、上記の各構成、機能、処理部、処理手段等は、それらの一部又は全部を、例えば集積回路で設計する等によりハードウェアで実現してもよい。また、上記の各構成、機能等は、プロセッサがそれぞれの機能を実現するプログラムを解釈し、実行することによりソフトウェアで実現してもよい。各機能を実現するプログラム、テーブル、ファイル等の情報は、メモリや、ハードディスク、SSD(Solid State Drive)等の記録装置、または、ICカード、SDカード、DVD等の記録媒体に置くことができる。
また、制御線や情報線は説明上必要と考えられるものを示しており、製品上必ずしも全ての制御線や情報線を示しているとは限らない。実際には殆ど全ての構成が相互に接続されていると考えてもよい。
なお、上記の実施例は少なくとも特許請求の範囲に記載の構成を開示している。