説明

レシートデータ認識装置およびそのプログラム

【課題】各テナントの店舗から売上管理データを正確かつ効率よく収集し,テナント売上管理業務におけるスピード化,効率化を図る。
【解決手段】レシート画像から読み取られた認識文字について,レシートデータ抽出部141は,店舗ごとに異なる定義データに登録された項目名称の文字列に一致する認識文字を抽出し,同一名称判定部140は,抽出された認識文字に該当する項目名称が,定義データ中でレシート内に同一の項目名称を持つ他の文字列が存在すると定義されている場合に,定義データに登録されたアンカー文字または複数のキーワードに一致する認識文字の位置を取得し,レシートデータ特定部144は,その位置と抽出された認識文字の位置とを用いて金額項目を表す認識文字を抽出し,売上管理データ生成部15は,項目名称に一致する認識文字と金額項目を表す認識文字とから認識結果のデータを出力または記憶する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は,レシートデータ認識装置およびそのプログラムに関し,特に,例えばショッピングモールなどの複数の店舗の売上を管理するために,文字認識により読み取ったレシートデータから必要なデータを正確に抽出する技術に関するものである。
【背景技術】
【0002】
ショッピングセンター,ショッピングモール等に出店するテナント(店舗を運営する会社など)の店舗を管理するテナント管理部門では,各店舗の一日の売上を収集し,現金売上,クーポン売上,…といった売上内訳(売上管理項目)を作成している。この売上内訳作成の際には,各店舗から提供される精算レシートが集められて,売上管理項目の数値を算出することが行われる。しかし,各店舗から提供される精算レシートの形式は,店舗ごとに導入されているPOSシステムに依存するため,さまざまな形式で作成されているのが現状である。そのため,テナント管理部門が処理する精算レシートは,項目の種類,項目名,印字サイズ,印字字体などにおいて多種多様である。
【0003】
例えば,精算レシートの項目の名称について,売上合計,売上計,合計売上,総売上,…等は,同等の内容を示すものであっても,POSシステムによって異なる名称が印字されている。また,出店するテナントの店舗の入れ替えなどが頻繁に行われるため,新たな精算レシートの形式にも対応しなければならない。そのため,テナント管理部門では,精算レシートを統一された売上データとして集計する売上集計作業に莫大な労力を要し,そのための人的および時間的負担に多大なコストを要しているのが現状である。
【0004】
なお,特許文献1には,文書画像認識装置が開示されている。この文書画像認識装置では,文書画像を参照して文字を構成する成分の集合を抽出し,これをもとに横および縦の行候補を抽出し,行候補に対して信頼度を推定する。その後,推定した行信頼度に基づいて確度の高い行の集合を抽出し,その結果をもとに確度の高い行の集合の文字成分の配置を用いて傾きを推定する。そして,文書画像を構成する基礎要素の集合から行方向の確定した行集合を抽出し,行同士の関連付けによる段抽出と段を制約とした行抽出とを相互に実行して行と段を抽出する。
【0005】
また,特許文献2には,レシート処理装置が開示されている。このレシート処理装置では,レシートの画像から文字を認識してテキストデータを生成し,テキストデータから所定の文字列を選択し,選択された所定の文字列が含まれる行位置を検出する。そして,検出された行位置に基づいて定まるテキストデータ上の所定の行範囲から行を単位とするラインデータを順に選択し,ラインデータから品目に関わるデータを抽出する。
【先行技術文献】
【特許文献】
【0006】
【特許文献1】特開平11−219407号公報
【特許文献2】特開2004−164218号公報
【発明の概要】
【発明が解決しようとする課題】
【0007】
前述したような,ショッピングセンター等の各店舗から提供される精算レシート(以下,レシートという)を集計するために,ショッピングセンター等を運営する会社(組織)のテナント管理部門では,従来,事務員が目視でレシートを読み取り,読み取ったデータを手作業でデータ処理装置に入力していた。この売上集計作業の作業量は,店舗数が100店舗以上に及ぶこともあり,しかも毎日行わなければならない作業であるため,非常に負担が大きいものであった。
【0008】
この負担を軽減するための一案としては,各店舗の売上データ(レシートデータ)を,各店舗の端末からネットワークを介して自動収集することが考えられる。しかし,一般に各店舗は企業体が異なるため,個々にネットワーク開設の許諾を得る必要があり,さらに導入されているシステムによって接続するネットワーク種類やアプリケーションの追加・修正の難易度が異なるなど,解決が困難な問題が存在する。
【0009】
既存のシステムの変更,特に各店舗における端末などの情報機器の変更をできるだけ行わないで,前述した作業負担を軽減する他の案としては,レシートデータを人間が読み取るのではなく,文字画像の認識によって読み取る方法が考えられる。すなわち,各店舗のレシートを,例えばOCR(Optical Character Recognition )機能を有する読取装置,スキャナー等で読み取り,読み取ったレシート項目とその数値データについて売上管理項目に必要なものを抽出し,売上管理データに入力し直す方法である。
【0010】
しかし,この方法の場合にも,一般的な従来の文字画像の認識では解決できない問題を解決しなければならない。次に,この問題について説明する。
【0011】
OCR機能を有する読取装置等によりレシートを読み取らせる場合,売上管理データを集計するために必要なレシートに印字されるレシート項目と,売上管理項目との対応関係を予め登録し,読取装置等から読み取ったレシート画像から必要なレシート項目を抽出する必要がある。例えば,その場合の解決できない問題を,図16および図17に従って,以下に説明する。
【0012】
図16および図17は,レシート項目と売上管理項目との対応関係の一例を説明する図である。特に,図16では,レシート内にレシート項目の項目名称に同一名称がない場合の例を示し,図17では,レシート内にレシート項目の項目名称(レシート項目名称)に同一名称が複数存在する場合の例を示す。
【0013】
例えば,図16に示すように,印字されたレシート22uには,売上管理項目1001uの「総売上」に対応するレシート項目名称「総売上」が,レシート22u内の行Line#101のみに印字されている。また,同様に,売上管理項目1001uの「商品券」に対応するレシート項目名称「商品券」が,レシート22u内の行Line#102のみに印字されている。売上管理項目1001uのその他の「クレジット売上」および「消費税」に対応するレシート項目名称についても,レシート22u内の行Line#103および行Line#104にのみ,各々,「クレジット」および「税合計」が印字されている。すなわち,図16に示すレシート22uには,売上管理項目の対象となるレシート項目について,同一名称のレシート項目名称が存在しない。
【0014】
一方,図17に示すレシート22vでは,売上管理項目1001vの「総売上」に対応するレシート項目名称「総売上」が,レシート22v内の行Line#201,#204,#206の複数の箇所(異なる行)に印字されている。また,売上管理項目1001v の「商品券」に対応するレシート項目名称「商品券在高」が,レシート22v内の行Line#202のみに印字されている。売上管理項目1001v の「クレジット売上」については,レシート22v内の行Line#203,#205,#207に,「クレジット在高」という名称で複数の箇所(3箇所)に印字されている。すなわち,図17に示すレシート22vには,売上管理項目の対象となるレシート項目について同一名称のレシート項目名称が複数存在している。なお,売上管理項目1001vの「消費税」に対応するレシート項目名称は,レシート22vに印字されていないものとする。
【0015】
図17では,売上管理項目として本来抽出すべきレシート項目名称に対応する金額項目は,グループG#1の行Line#201〜203にある金額項目である。グループG#2およびG#3の行Line#204〜207にある「総売上」および「クレジット在高」は,店舗内の担当者グループごとの内訳を示しており,これらは,テナント管理部門が売上管理項目として必要とするレシート項目ではない。レシート項目名称が同一の名称で,かつ,金額内容が異なるものが複数存在する場合,例えば図17に示すレシート22vでは,複数の段落ごとの小計として印字されており,売上管理項目1001vの「総売上」に対応するレシート項目名称「総売上」として,OCR処理による文字認識だけでは,その中の抽出すべきレシート項目と区別できない。すなわち,レシート項目名称だけでは,売上管理項目として抽出すべきレシートデータか否かを判断できない。
【0016】
これらを区別するために,例えば上端のレシート印字位置を基準とした位置データを用いることも考えられる。しかし,固定位置を基準とする位置データを用いる場合には,その日のレシートの印字内容で,空行や複数のレシート項目の増減が生じるような,位置データが変わるPOSシステムには対応できない。実際には,店舗ごとの精算レシートは,その日の印字内容で,空行や複数のレシート項目の増減する場合が多い。
【0017】
上述したように,レシートに印字されるレシート項目名称に,同一名称が複数存在し,その各々に対応する金額が異なる内容の金額項目である場合に,このようなレシートを読取装置等で読み取り,レシートの数値データをOCR処理すると,本来抽出すべきレシート項目名称と対応しない金額項目が抽出されて処理されることがあり,売上管理データに集計エラーが発生することになる。これを回避するために,上述したような同一名称のレシート項目が存在するような店舗の精算レシートは,売上管理項目を手作業で集計しなければならず,またそのように手作業で集計した場合でも,同一名称であるため,作業者が集計箇所を誤認することもある。そのために,精算レシートを照合する作業が必要となり,人的負担が軽減されない。
【0018】
本発明は,以上の点に鑑み,各店舗の情報機器などの現状のシステムを大幅に変えることなく,各テナントの店舗のレシートから売上管理データを正確かつ効率よく収集し,売上管理業務におけるスピード化,効率化を図ることを目的としている。
【課題を解決するための手段】
【0019】
本発明は,例えば店舗ごとに印刷されたレシートを,統一された売上管理項目に集計し直すために,レシート画像を読み取り得られた認識文字について,レシートを発行した店舗ごとに異なる定義データに登録されたレシート内の項目名称の文字列と,読取り対象の項目名称と同一の名称が存在するか否かの情報と,レシート内に同一の項目名称を持つ他の文字列が存在する場合に,当該項目名称とレシート印字位置が関連付けられている他の項目名称の文字列との位置情報とから,レシート内の項目名称において同一である項目名称が複数存在する場合に,売上管理項目として抽出すべきレシートデータか否かを判断して,必要な認識文字を抽出し,抽出された認識文字の位置データから,認識文字とその位置データから金額項目を表す認識文字を抽出し,項目名称に一致する認識文字と金額項目を表す認識文字とから,認識結果のデータを出力または記憶することを特徴とする。
【0020】
すなわち,レシート画像を読取機で読み取るときに,正確にレシート内の項目と金額を読み取ることができるようにしたものであり,複数の異なる形式で印刷されたレシートから,読取り対象となる項目名称と同一の項目名称が複数存在した場合であっても,売上管理項目として必要な項目のみを正確に抽出して,売上管理に必要なレシート内の項目と金額を,認識結果のデータとして出力または記憶することができるようにしている。詳しくは,本発明は以下の手段を備える。
【0021】
(1)本発明は,レシートデータ認識装置が,レシート画像を文字認識することにより得られた認識文字とその位置データとを記憶する画像データ記憶部と,レシートに印字される項目名称の文字列と,レシート内に同一の項目名称を持つ他の文字列が存在するか否かを示す情報と,レシート内に同一の項目名称を持つ他の文字列が存在する場合に,前記項目名称とレシート印字位置が関連付けられている他の項目名称の文字列であるアンカー文字と,前記項目名称の文字列と前記アンカー文字間の距離の情報とを,レシートにおける読取り対象となる各項目名称ごとに定義した定義データを記憶する定義データ記憶部と,前記画像データ記憶部に記憶された認識文字から前記定義データに定義された項目名称の文字列に一致する認識文字を抽出するレシートデータ抽出部と,抽出された認識文字に該当する項目名称が,前記定義データ中でレシート内に同一の項目名称を持つ他の文字列が存在すると定義されている場合に,対応する前記アンカー文字に一致する認識文字の位置を取得し,その位置と前記抽出された認識文字の位置との距離を算出する同一名称判定部と,前記抽出された認識文字に該当する項目名称が,前記定義データ中でレシート内に同一の項目名称を持つ他の文字列が存在すると定義されている場合に,前記算出された距離と,前記定義データにおいて定義されている距離の情報とを比較し,最も近い距離の認識文字を,読取り対象の項目名称として特定し,前記抽出された認識文字に該当する項目名称が,前記定義データ中でレシート内に同一の項目名称を持つ他の文字列が存在しないと定義されている場合に,前記抽出された認識文字を,読取り対象の項目名称として特定するレシートデータ特定部と,前記読取り対象の項目名称と,その項目名称に一致する認識文字に対応する金額項目を表す認識文字とから,認識結果のデータを生成し,認識結果のデータを出力または記憶するデータ生成部とを備えることを特徴とする。
【0022】
これによって,レシートを読み取り得られるレシート画像について,読取り対象となる各項目名称ごとに,レシート内の項目名称の文字列と,読取り対象の項目名称と同一の名称が存在するか否かの情報と,レシート内の項目名称において同一である項目名称が複数存在する場合に,定義データにレシート内の項目名称と関連付けられたユニークな項目名称であるアンカー文字との位置情報の関連付けとが定義データに登録されているため,レシート内の項目名称において同一である項目名称が複数存在する場合であっても,レシート画像を読み取り得られた認識文字について,アンカー文字に一致する認識文字を抽出することにより,抽出された認識文字と読取り対象の項目名称と一致する認識文字の位置データの関係を用いて,読取り対象の項目名称とそれに対応する金額項目を表す認識文字を正確に抽出し,認識結果のデータを出力または記憶することができる。
【0023】
(2)また,本発明は,レシートデータ認識装置が,レシート画像を文字認識することにより得られた認識文字とその位置データとを記憶する画像データ記憶部と,レシートに印字される項目名称の文字列と,レシート内に同一の項目名称を持つ他の文字列が存在するか否かを示す情報と,レシート内に同一の項目名称を持つ他の文字列が存在する場合に,前記項目名称とレシート印字位置が関連付けられている他の項目名称の文字列である複数のキーワードの情報とを,レシートにおける読取り対象となる各項目名称ごとに定義した定義データを記憶する定義データ記憶部と,前記画像データ記憶部に記憶された認識文字から前記定義データに定義された項目名称の文字列に一致する認識文字を抽出するレシートデータ抽出部と,抽出された認識文字に該当する項目名称が,前記定義データ中でレシート内に同一の項目名称を持つ他の文字列が存在すると定義されている場合に,その項目名称に対して定義されている前記複数のキーワードに一致する複数の認識文字が存在するか否かを判定する同一名称判定部と,前記複数のキーワードに一致する複数の認識文字が存在する場合に,前記複数のキーワードに一致する複数の認識文字の中の前記定義データに定義された項目名称の文字列に一致する認識文字を,読取り対象の項目名称として特定し,前記抽出された認識文字に該当する項目名称が,前記定義データ中でレシート内に同一の項目名称を持つ他の文字列が存在しないと定義されている場合に,前記抽出された認識文字を,読取り対象の項目名称として特定するレシートデータ特定部と,前記読取り対象の項目名称と,その項目名称に一致する認識文字に対応する金額項目を表す認識文字とから,認識結果のデータを生成し,認識結果のデータを出力または記憶するデータ生成部とを備えることを特徴とする。
【0024】
これによって,レシート内の項目名称の文字列と,読取り対象の項目名称と同一の名称が存在するか否かの情報と,レシート内の項目名称において同一である項目名称が複数存在する場合に,定義データにレシート内の項目名称と関連付けられた複数のキーワードの一群との位置情報の関連付けとが定義データに登録されているため,レシート内の項目名称において同一である項目名称が複数存在する場合であっても,レシート画像を読み取り得られた認識文字について,複数のキーワードに一致する認識文字を抽出することにより,抽出された認識文字と読取り対象の項目名称と一致する認識文字の位置データの関係を用いて,読取り対象の項目名称とそれに対応する金額項目を表す認識文字を正確に抽出し,認識結果のデータを出力または記憶することができる。
【0025】
(3)また,本発明は,さらに前記発明のいずれかにおいて,前記レシートは,店舗ごとに異なるフォーマットで印刷されたレシートであり,前記定義データ記憶部には,店舗ごとに前記定義データが記憶され,レシートを発行した店舗ごとに異なる定義データを用いて,前記レシートデータ抽出部と,前記同一名称判定部と,前記レシートデータ特定部と,前記データ生成部とによる処理を実行することを特徴とする。
【0026】
これによって,店舗ごとに印刷されたレシートの項目名称や印字位置が異なる場合であっても,店舗ごとに項目名称とそれに対応する金額欄の相対位置とを定義データに登録するため,店舗ごとのレシート項目名称およびそれに対応する金額欄の位置の相違に関係なく,レシート画像から必要なレシートデータを読み取ることができる。
【0027】
(4)また,本発明は,さらに前記発明において,前記定義データ記憶部に記憶される定義データは,前記レシートに印字される項目名称の文字列に対応して,複数の店舗の売上管理に共通に用いられる管理項目名称のデータを含み,前記データ生成部は,前記項目名称に一致する認識文字を,前記定義データに定義された対応する管理項目名称に変換した認識結果のデータを生成することを特徴とする。
【0028】
これによって,店舗ごとに印刷されたレシートの項目名称や印字位置が異なる場合であっても,事前に入力された売上管理項目に変換すべきレシート項目について,店舗ごとに項目名称とそれに対応する金額欄の相対位置とを定義データに登録するため,店舗ごとのレシート項目名称およびそれに対応する金額欄の位置の相違に関係なく,レシート画像から必要なレシートデータを読み取り,統一した売上管理データを生成することができる。
【発明の効果】
【0029】
本発明の効果は以下のとおりである。
(1)レシートから売上管理項目に必要なレシート項目を予め定義データに登録することにより,それらを用いて自動的に必要なレシートデータを抽出することができるため,売上情報の入力作業の省力化およびスピード化が達成できる。
(2)レシートから売上管理項目に必要なレシート項目について項目名称に同一の名称が複数存在する場合に,その中で売上管理項目に必要な金額に関する相対位置を,他のユニークな項目名称または複数のキーワードとなる項目名称の一群の位置情報に関連付けて定義データに登録できるため,レシートデータの抽出の誤認識を回避し,正しいレシートデータを抽出することができる。このため,チェック作業の省力化およびスピード化が達成できる。
(3)予め店舗ごとに登録,設定された定義データによって,どのような種類のレシートであるか,どのような項目名称を有し,金額に関する相対位置などの情報を画像の解析に利用することができ,文字認識などを含めて読み取りの精度を高めることができる。
(4)また,レシートの項目が異なる各店舗のレシートデータから,売上管理部門が必要とする基本的なデータを統一的に収集し,売上管理データベースなどに保存することができるようになる。
【図面の簡単な説明】
【0030】
【図1】本発明の実施形態の装置構成例を示す図である。
【図2】レシート挟持用シートを説明する図である。
【図3】売上管理項目とレシート項目との対応関係の例を示す図である。
【図4】本発明の実施形態に係るレシートデータ認識装置の処理フローチャートである。
【図5】レシート画像の例を示す図である。
【図6】認識文字データの一例を示す図である。
【図7】認識文字テーブルの例を示す図である。
【図8】定義データテーブルを説明する図である。
【図9】レシートデータ処理のフローチャートである。
【図10】同一名称判定処理のフローチャートである。
【図11】同一名称判定処理のフローチャートである。
【図12】レシートとそれに対応する定義データの一例を示す図である。
【図13】レシートとそれに対応する定義データの一例を示す図である。
【図14】売上管理データ生成処理のフローチャートである。
【図15】売上管理DBの例を示す図である。
【図16】本発明の課題を説明する図である。
【図17】本発明の課題を説明する図である。
【発明を実施するための形態】
【0031】
以下,図面を用いながら,本発明の実施の形態について詳細に説明する。なお,以下では,主に店舗売上を集計する装置の例について説明するが,本発明は売上集計に限られるわけではなく,仕入集計データやその他の伝票などに印字された実績データを集計するための装置などにも同様に適用することができる。
【0032】
図1は,本発明の概要を説明するための装置構成例を示す。図1において,1はCPUおよびハードディスクやメモリ等の記憶装置等から構成され,レシートから読み取ったデータをもとに売上の集計に関する処理を実行するレシートデータ認識装置,20は各店舗に対応付けられた識別コード21(図2に示す)がマーキングされ,各店舗のレシート22を挟持するレシート挟持用シートである。レシート22は,店舗ごとに異なるフォーマットで印刷されたレシートである。
【0033】
なお,レシート22は,テナントの店舗ごとに,例えば一日の店舗の売上を各店舗に備えられたキャッシュレジスタなどで集計した結果が印刷されたものである。また,これらのレシート22は,売上集計に関する一例として示したものであり,売上集計以外にも,仕入集計,その他帳票処理に関するものであってもよい。
【0034】
最初に,レシート挟持用シート20について説明する。図2は,レシート挟持用シート20の一実施態様の構成を示す図である。特に,図2(A)は,レシート挟持用シート20を透明フィルム231側から見た上面図であり,図2(B)は,レシート挟持用シート20においてレシート22が透明シート23に挟持される前の状態を説明する斜視図である。
【0035】
図2(A)に示すように,例えばレシート挟持用シート20は各店舗のレシート22を台紙付の透明シート23に挟持する。透明シート23の上右端隅には,当該店舗に対応する識別コード21(QRコード(登録商標)などの2次元コード等)が印刷,またはシールなどでマーキングされる。
【0036】
図2(B)に示すように,透明シート23は,例えば透明フィルム(シート)231と台紙232とが一端233で接続(粘着等)されており,レシート22を挟持する前の状態では透明シート23が半開封状態にある。この半開封状態の透明シート23の台紙232上にレシート22が載せられ,例えば密着面が多少粘着性を有する透明フィルム231と台紙232とが貼り合わされることにより,レシート22が挟持される。なお,前述の識別コード21は,例えば台紙232の上右端隅に位置決めされた範囲で,印刷,シールなどによりマーキングされる。
【0037】
次に,レシートデータ認識装置1が処理する,店舗ごとのレシート22におけるレシート項目と,テナント管理部門が集計する売上管理項目との対応関係について説明する。
【0038】
図3は,売上管理項目とレシート項目との対応関係の一例を示す図である。図3の例では,テナント管理部門が店舗の売上管理に実際に必要な売上集計のデータは,No.1の現金売上からNo.11の客数までの11個の売上管理項目である。しかし,これらの売上管理項目が各店舗のレシート22のレシート項目として,そのまま1対1の関係で印字されていることはない。そこで,店舗ごとの対応関係情報1022(1022a)を用いて,各店舗のレシート項目から11個の各売上管理項目を算出する処理を行う。
【0039】
図3に示すレシート22aの場合,14番目のレシート項目の「現金売上金額」が,No.1の売上管理項目の「現金売上」に相当することが,対応関係情報1022(1022a)に示されている。その他の売上管理項目についても,それぞれ対応関係情報1022によって対応付けられる。なお,図3に示すような店舗ごとの売上管理項目とレシート項目との対応関係情報1022(1022a)は,定義データ記憶部102(図1に示す)に予め登録され,格納される。
【0040】
図3では,レシート22aに示すレシート項目が,例えば14番目に「現金売上金額」等と示しているが,実際には,14番目(n番目)がレシート内の最上段の位置から固定した行の位置にあるわけではない。店舗の当日のレシート集計結果により,n番目以前のレシート項目で印字行数が増えたり,また印刷時に省かれるレシート項目などがある。このため,レシートデータ認識装置1では,レシート項目におけるレシート項目名称とそれに対応する金額項目の相対位置(相対的な金額欄の位置)とを含む定義データを予め登録し,対応関係情報1022(1022a)と共に用いることで,上記課題の解決を図っている。
【0041】
レシートデータ認識装置1は,以上のような定義データおよび対応関係情報1022(1022a)に従って,店舗コードごとに,「売上日付」,売上管理項目No.1「現金売上」,No.2「掛売上」,No.3「クレジット売上」,…などの売上に関する項目に対応する金額を集計し,売上管理データ記憶部103に格納する。そのために,レシートデータ認識装置1は,以下に説明する処理を実行する。
【0042】
レシートデータ認識装置1は,レシート挟持用シート20からレシート22を読み取る。レシートデータ認識装置1は,レシート22についての定義データを用いて,レシート項目中の項目名称および金額を含むレシートデータを抽出する。レシートデータ認識装置1は,売上管理項目とレシート項目との対応関係情報1022(1022a)を用いて,抽出したレシートデータの項目を売上管理データに変換する。すなわち,売上管理データに必要となるレシート項目が抽出され,レシート項目の金額が売上管理データとして集計される。
【0043】
以上のように,レシートデータ認識装置1は,レシート22を発行した店舗ごとに定義データを用いて,レシートデータ認識処理を実行する。
【0044】
以下,上述したレシートデータ認識処理を実行するための,図1に示すレシートデータ認識装置1の構成について,具体的に説明する。
【0045】
画像データ記憶部101は,読取機10により読み取られたレシート挟持用シート20の画像データを記憶する。画像データは,レシート22の画像をOCR処理することにより得られた認識文字およびその座標(位置データ)を含むデータである。さらに,画像データは,識別コード21を含んでもよい。また,画像データ記憶部101は,画像データに関連付けて,レシート挟持用シート20の画像ファイル,例えばビットマップ形式ファイル等を格納してもよい。
【0046】
定義データ記憶部102は,レシートデータ認識装置1に用いられる定義データを格納する記憶手段である。定義データは,店舗ごとにレシート22のレシート項目および金額の位置などの情報を含む。
【0047】
具体的には,定義データには,レシート22に印字されるレシート項目名称の文字列に対応して,複数の店舗の売上管理に共通に用いられる売上管理項目名称が登録される。例えば,定義データは,レシート22に印字されるレシート項目名称の文字列と,レシート項目名称のレシート内位置からの,そのレシート項目名称に対応する金額項目の相対位置データとを含み,レシート22における読取り対象となるレシート項目の項目名称(レシート項目名称)ごとに定義される。このような定義データは,集計する店舗のレシート22ごとに,予め作成され,定義データ記憶部102に格納される。なお,定義データの詳細は,図8を用いて後述する。
【0048】
さらに,定義データには,レシート22に印字されるレシート項目名称の文字列と,レシート22内に同一のレシート項目名称を持つ他の文字列が存在するか否かを示す情報と,レシート22内に同一のレシート項目名称を持つ他の文字列が存在する場合に,レシート項目名称とレシート印字位置が関連付けられている他のレシート項目名称の文字列であるアンカー文字と,レシート項目名称の文字列とアンカー文字間の距離の情報とが,レシートにおける読取り対象となるレシート項目名称ごとに,登録される。
【0049】
もしくは,定義データには,レシート22に印字されるレシート項目名称の文字列と,レシート22内に同一のレシート項目名称を持つ他の文字列が存在するか否かを示す情報と,レシート22内に同一のレシート項目名称を持つ他の文字列が存在する場合に,レシート項目名称とレシート印字位置が関連付けられている他のレシート項目名称の文字列である複数のキーワードの情報とが,レシート22における読取り対象となるレシート項目名称ごとに,登録される。
【0050】
売上管理データ記憶部103は,レシートデータ認識装置1が生成する売上管理データを保存する記憶手段である。売上管理データは,店舗ごとに異なるレシート項目を統一した売上管理項目に対応させて,各店舗のレシート項目の金額を収集した結果のデータである。なお,売上管理データの詳細は,図15を用いて後述する。
【0051】
読取機10は,画像のスキャンニングに光学方式などを用いて,レシート挟持用シート20の画像を読み取る装置である。読取機10は,レシート挟持用シート20が入力されると,レシート挟持用シート20を画像データに変換する。画像データは,例えば画像ファイル,OCRによる認識文字データを含む。読取機10は,変換した画像データを画像データ記憶部101に保存する。例えば,読取機10は,スキャナー,OCR処理装置などの周知の技術によるものである。
【0052】
画像データ読込部11は,画像データ記憶部101に保存された画像データを読み出す。なお,画像データ読込部11が,レシートデータ認識装置1の外部の入力装置から画像データを入力してもよい。外部の入力装置は,読取装置,ネットワーク装置などである。この場合には,例えばネットワーク等を介して,レシートデータ認識装置1の設置場所以外に設置されている読取装置で入力されたレシート挟持用シート20の画像データを,入力装置(図示しない)が入力し,画像データ記憶部101に保存する。
【0053】
店舗特定部12は,レシート挟持用シート20の識別コード21を識別して,店舗コード(または店舗)を特定する。なお,図1の構成例では,店舗コードのための識別コード21がレシート挟持用シート20上に認識マーク化されているが,店舗コードの読み取り方法は本実施例に限定されない。例えば,レシート22の読み取りの際に,ユーザが,店舗コードをテンキー,カードリーダなどの外部の入力装置を介して入力してもよい。その場合には,外部の入力装置から入力された店舗コードを店舗特定部12が受ける。また,読取機10がレシート挟持用シート20の識別コード21を読み取り,店舗特定部12がその読み取られた識別コード21から店舗コードを特定してもよい。
【0054】
定義データ読込部13は,店舗特定部12により特定された店舗コードを受けると,定義データ記憶部102から店舗コードに対応付けられた定義データを検索する。定義データ読込部13は,定義データ記憶部102から検索した定義データを読み出し,読み出した定義データをレシートデータ処理部14に送る。
【0055】
レシートデータ処理部14は,店舗コードごとの定義データを用いて,画像データからレシート項目名称およびその金額を含むレシートデータを抽出し,抽出したレシートデータから売上管理項目に必要となるレシートデータを特定する。そのために,レシートデータ処理部14は,図1に示すように,以下の機能部を含む。
【0056】
レシートデータ抽出部141は,画像データ記憶部101に記憶された画像データの認識文字データから,定義データに定義されたレシート項目名称の文字列に一致する認識文字を検索し,その認識文字データを抽出する。認識文字データは,予めレシートデータ認識装置1が備える辞書(図示しない)による候補文字と,OCR処理による認識文字との相違度を示す値と,文字の範囲を示す相対的な座標位置(相対位置)を含む。なお,認識文字データについては,図6を用いて後述する。
【0057】
同一名称判定部140は,レシートデータ抽出部141により画像データから抽出された認識文字について,該当するレシート項目名称がレシート22内に同一名称の項目名称を含むか否か,定義データを用いて判定する。
【0058】
具体的には,同一名称判定部140は,抽出された認識文字に該当するレシート項目名称が,定義データ中でレシート22内に同一のレシート項目名称を持つ他の文字列が存在すると定義されている場合に,そのレシート項目名称に対して定義されている,例えばアンカー文字または複数のキーワードに一致する認識文字が存在するか否かを判定する。
【0059】
ここで,アンカー文字とは,売上管理項目の対象となるレシート項目名称に,レシート印字位置などの位置情報と関連付けられた,他のレシート項目名称の中でユニークな項目名称である。複数のキーワードとは,売上管理項目の対象となるレシート項目名称を含み,かつレシート印字位置などの位置情報と関連付けられた,他のレシート項目名称を1または複数含むキーワードの一群であり,当該キーワードの一群が,例えばレシート行として連続となるものである。
【0060】
同一名称判定部140は,画像データからアンカー文字および複数のキーワードを検出するために,アンカー文字検出部142およびキーワード検出部143を有する。以下,アンカー文字検出部142およびキーワード検出部143について説明する。
【0061】
(1)アンカー文字検出処理
アンカー文字検出部142は,読み取ったレシート22に対応する定義データについて,読取り対象のレシート項目の項目名称が,定義データ中でレシート内に同一の項目名称を持つ他の文字列が存在すると定義され,かつアンカー文字が定義されている場合に,以下のように,アンカー文字の検出処理を実行する。
【0062】
アンカー文字検出部142は,定義データの読取文字に関連付けられてアンカー文字が設定されている場合に,画像データ記憶部101に記憶された画像データから,設定されているアンカー文字に一致する認識文字の位置を取得し,その位置と抽出された認識文字の位置との距離を算出する。
【0063】
(2)複数のキーワード検出処理
キーワード検出部143は,読み取ったレシート22に対応する定義データについて,読取り対象のレシート項目の項目名称が,定義データ中でレシート内に同一の項目名称を持つ他の文字列が存在すると定義され,かつ複数のキーワードが定義されている場合に,以下のように,複数のキーワード検出処理を実行する。
【0064】
キーワード検出部143は,定義データの読取文字に関連付けられて複数のキーワードが設定されている場合に,画像データ記憶部101に記憶された画像データから,設定されている複数のキーワードに一致する複数の認識文字が存在するか否かを判定する。
【0065】
(3)レシート22内に同一名称が存在し,かつアンカー文字が検出された場合
レシートデータ特定部144は,アンカー文字検出部142によりアンカー文字が検出された場合に,算出された距離と,定義データにおいて設定されている距離の情報とを比較し,検出されたアンカー文字の認識文字に最も近い距離の認識文字を,読取り対象のレシート項目の項目名称(レシート項目名称)として特定する。
【0066】
(4)レシート22内に同一名称が存在し,かつ複数キーワードが検出された場合
レシートデータ特定部144は,キーワード検出部143により複数のキーワードが検出された場合に,複数のキーワードの中で一つのレシート項目名称の文字列に一致する認識文字を,読取り対象のレシート項目の項目名称として特定する。
【0067】
(5)レシート22内に同一名称が存在しない場合
一方,レシートデータ特定部144は,レシートデータ抽出部141により抽出された認識文字に該当するレシート項目名称が,定義データ中でレシート内に同一のレシート項目名称を持つ他の文字列が存在しないと定義されている場合に,抽出された認識文字を,読取り対象のレシート項目の項目名称として特定する。
【0068】
(6)特定された認識文字をレシートデータとして特定
レシートデータ特定部144は,(3)〜(5)のいずれかで特定した認識文字の位置データと,読取り対象のレシート項目の項目名称に対応する金額項目の相対位置データとから,その金額項目を表す認識文字を抽出する。
【0069】
以上説明したように,レシートデータ特定部144は,レシートデータ抽出部141または同一名称判定部140から,レシート項目名称に対応する金額項目の相対位置を受けると,画像データ記憶部101に記憶された認識文字の中から,その金額項目の相対位置に対応する認識文字を抽出する。これにより,レシートデータ特定部144は,レシート項目名称に対応する金額項目を正確に特定することができる。すなわち,レシート項目に関する,レシート項目名称の文字列と,それに対応する金額欄の金額項目の文字列とを含むレシートデータを特定することができる。
【0070】
以上のように,レシート22に印字される読取り対象のレシート項目名称に同一の名称が複数存在する場合であっても,定義データに設定されるアンカー文字または複数のキーワードの情報により,これらの他の項目名称との相対位置を判定することにより,読取り対象のレシート項目名称に対応する金額項目を正確に読み取ることができる。
【0071】
売上管理データ生成部15は,レシートデータ処理部14により特定されたレシートデータを用いて,売上管理データを生成する。具体的には,売上管理データ生成部15は,レシート項目名称に一致する認識文字と,定義データに定義された対応する売上管理項目名称とに対応付けられる対応関係情報1022とを用いて,認識結果における金額項目の数値データを演算(変換)し,売上管理データを生成する。売上管理データは,店舗コード,売上管理項目および売上管理項目に対応する金額を含む。
【0072】
例えば,売上管理データ生成部15は,売上管理項目とレシート項目との対応関係情報1022に従って,店舗コードごとに,「売上日付」,売上管理項目No.1「現金売上」,No.2「掛売上」,No.3「クレジット売上」,…などの売上に関する項目に対応する金額に変換し,これらを売上管理データ記憶部103に記憶する。
【0073】
以下に,図4,図9,図10,図11および図14の処理フローチャートに従って,その他の図も用いながら,図1に示すレシートデータ認識装置1の詳細な機能について説明する。
【0074】
図4は,本発明の実施形態に係るレシートデータ認識装置1の処理フローチャートである。図4に従って,レシートデータ認識装置1が実行する処理について具体的に説明する。
【0075】
レシートデータ認識装置1が起動されて,本処理が開始される。読取機10にレシート挟持用シート20が入力されると,読取機10がレシート挟持用シート20を読み取り,読み取ったレシート挟持用シート20の画像データを,画像データ記憶部101に保存する(ステップS11)。
【0076】
具体的に説明するために,図5〜図7を用いて,レシートの画像データからOCR処理される文字列を説明する。
【0077】
図5は,読取機10により読み取られたレシート22bの画像の例を示している。読取機10により生成された画像データは,OCR処理による認識文字データを含む。読取機10は,レシート22(22b)の画像をOCR処理すると,認識文字データを生成し,画像データ読込部11に記憶する。認識文字データは,認識文字からなる文字列の文字数および文字列の座標,文字列を構成する文字の座標および辞書からの候補文字とされる認識文字リストを含む。OCR処理による認識文字の対象は,レシート22bに印刷されている文字列#1,文字列#2,…,文字列#14,…等である。例えば,文字列#14は,「総売上」である。
【0078】
図6は,OCR処理による認識文字データの一例を示す図である。特に,図6には,図5に示す文字列#14「総売上」の認識文字データ110について示す。
【0079】
図6において,認識文字データ110は,文字列#14「総売上」の文字数3,座標(x,y)−(x’,y’)を含む。また,認識文字データ110は,文字列#14を構成する文字#141「総」,#142「売」および#143「上」の3文字について,各々の座標を含む。例えば,文字#141「総」の座標は,(x1,y1)−(x’1,y’1)であり,その他の文字についても,図示のとおりである。なお,(x,y)−(x’,y’)等は,図示の長方形枠の座標を表すものであり,紙面上から見て(x,y)が左上,(x’,y’)が右下に対応する座標である。例えば,左上が座標原点へ向かう方向であり,右下が原点座標から離れる方向である。座標原点は,例えばレシート挟持用シート20における画像の特定位置とされる。
【0080】
さらに,認識文字データ110は,文字#141「総」,#142「売」および#143「上」の3文字の認識文字リストを含む。認識文字リストは,辞書からの候補文字とされる認識順位に応じて,その候補とされる認識文字と,その認識文字と読み取られた文字の相違度(または一致度)とが格納される。例えば,文字#141「総」の認識文字リストでは,順位「1」が,認識文字「総」,相違度「1311」であり,順位「2」が,「脆」,相違度「1581」であり,その他の順位についても同様に示される。相違度は,例えば0に近い数値ほど,予め備えられた辞書(図示しない)の候補文字と一致する度合いが大きく,その値が大きいほど,辞書の候補文字と相違する度合いが大きいことを示す。文字#142「売」および#143「上」の認識文字リストについても,図6に示すとおりである。
【0081】
図7は,画像データ記憶部101に保存される認識文字テーブル1011の一例を示す図である。認識文字テーブル1011は,読み込まれた画像データごとに,認識文字データを格納するテーブルである。さらに,認識文字テーブル1011は,レシート22の認識された文字列ごとに,認識文字データを含む。認識文字データは,前述したとおりである。
【0082】
図7に示す認識文字テーブル1011は,図5で示す文字列#1〜#14,…等の認識文字データを格納する。例えば,前述した文字列#14「総売上」,文字列#14を構成する文字#141「総」,#142「売」および#143「上」が,認識文字テーブル1011に格納されている。その他の文字列についても同様に格納されている。なお,図7に示す認識文字テーブル1011における項目,設定等の定義は,図6の認識文字データのそれらと同様であるため,ここでは説明を省く。
【0083】
次に,画像データ読込部11が,画像データ記憶部101から画像データを読み込むと,店舗特定部12は,画像データからレシート挟持用シート20の識別コード21を判別し,判別した識別コード21から店舗コードを読み取る(ステップS12)。
【0084】
具体的には,店舗特定部12は,例えばQRコード等を復号し,復号したデータから店舗コード,もしくは,店舗コードに対応付けられた識別番号などを特定する。なお,読取機10によりQRコードを復号し,店舗特定部12が復号したデータから店舗コードを特定してもよく,その特定方法は限定されない。
【0085】
次に,定義データ読込部13は,店舗特定部12により特定された店舗コードを受けると,店舗コードに対応付けられた定義データを,定義データ記憶部102から取得する(ステップS13)。
【0086】
図8は,定義データテーブル1021を説明する図である。以下,図8を用いて,定義データ読込部13が取得する定義データの一例を説明する。
【0087】
図8に示すレシート22tは,ある店舗の定義データの作成のために用意されるレシート22(基準レシートとする)の画像の一部である。また,図8において,定義データテーブル1021は,予め作成された定義データを格納し,定義データ記憶部102に記憶されるデータである。なお,レシート22tには,行番号と,レシート項目名称と,金額とが表示されている。このレシート22tから,14行目(BX14)の「現金売上金額」と,18行目(BX18)の「その他金券金額」とが抽出対象のレシート項目であるとする。
【0088】
定義データテーブル1021では,抽出対象のレシート項目が,定義データとして登録される。定義データを予め作成するために,店舗ごとの基準とされる基準レシート(レシート22t)が用いられ,基準レシートをもとにして店舗ごとのレシート22に対する定義データが作成される。
【0089】
定義データテーブル1021には,対象の店舗コードと,抽出するレシート項目ごとに,「読取項目」,「項目属性」,「読取文字」および「金額欄の読取位置」とが格納される。「店舗コード」は,対象となるレシートの店舗に対応する店舗ごとの識別番号である。「読取項目」は,売上管理項目の名称である。「項目属性」は,読み取るべきレシート項目名称の属性である。その属性は,例えば“1”,“2”または“3”のいずれかの値である。“1”は売上管理項目に対応するレシート項目名称が基準レシートに重複していない(通常の項目)場合,“2”は重複している同一名称がありかつアンカー文字を設定する場合,“3”は重複している同一名称がありかつ複数キーワードを設定する場合の属性とされる。「読取文字」は,売上管理項目に対応する基準レシート上に印字されるレシート項目名称である。「金額欄の読取位置」は,読取文字からのレシート項目の金額(数値文字,通貨記号などを含む)の相対位置である。
【0090】
図8に示す基準レシートとされるレシート22tにおいて,画像位置BX14には,「現金売上金額」および「¥139,639」とされる文字列Str#1およびDat#1がある。また,文字列Str#1と文字列Dat#1との相対距離は,Dis#1とする。画像位置BX18には,「その他金券金額」および「¥8,000」とされる文字列Str#2およびDat#2がある。また,文字列Str#2と文字Dat#2との相対距離は,Dis#2とする。
【0091】
図8に示す定義データテーブル1021は,図8に示すレシート22tから作成される定義データを格納する。図8に示すように,定義データテーブル1021には,「店舗コード」:“100001”が,基準レシートの対象となる店舗コードとして設定される。「読取項目#1」:“現金売上”は,売上管理項目No.1の項目名称“現金売上”が設定された結果である。「項目属性#1」:“1”は,前述した通常の項目が設定された結果である。「読取文字#1」:“現金売上金額”は,レシート22tの画像位置BX14における文字列Str#1が設定された結果である。「金額欄の読取位置#1」:“(x11,y11)−(x’11,y’11)”は,文字列Str#1と文字列Dat#1との相対距離Dis#1として,文字列Str#1の位置から文字列Dat#1の位置の相対位置が設定された結果である。なお,相対位置として,図示された文字列Dat#1の長方形枠の左上の座標(x11,y11),同じく右下の座標(x’11,y’11)が格納されていることを示す。なお,これらの座標は,相対的な座標である。その他の定義データについても同様に格納されている。なお,図8に示す定義データテーブル1021における#nは,複数の定義データの設定項目を区別するための識別子であり,nは1,2,…等の整数とする。
【0092】
以上説明した定義データテーブル1021は,レシートデータ抽出部141がレシートデータを抽出する際に,定義データ読込部13を介して参照される。レシートデータ抽出部141は,定義データテーブル1021に格納された定義データに基づき,読み込んだ画像データ(レシート22の認識文字)について,レシート項目を抽出する。すなわち,レシートデータ抽出部141は,基準レシートの定義データにより,抽出すべきレシート項目を判断することができる。
【0093】
なお,実際には,精算レシート(レシート22)は,同じPOSシステムで印刷した場合であっても,その時々の出力により,途中のレシート項目の一部を飛ばして(抜かして)印刷する場合がある。従って,定義データテーブル1021における「金額欄の読取位置」を固定座標で作成すると,このような一部のレシート項目を飛ばして印刷する場合に対応できない。そのため,図8に示す定義データテーブル1021のように,レシート項目名称の文字列位置からの相対位置の座標位置を定義データとして用いることにより,このような一部のレシート項目を飛ばして印刷する場合に対応することができる。また,図8においては,レシート項目の項目名称とそれに対応する金額が,同じ行に印刷されている例で説明しているが,レシート項目の項目名称とそれに対応する金額が,異なる行であっても良い。その場合には,定義データにその異なる行の金額の相対位置などが登録される。
【0094】
次に,レシートデータ処理部14は,定義データ読込部13から店舗コードに対応付けられた定義データを受けると,レシートデータ処理を実行する(ステップS14)。このレシートデータ処理の詳細なフローについては,図9を用いて後述する。
【0095】
レシートデータ処理部14によりレシートデータ処理された後に,売上管理データ生成部15は,処理されたレシートデータから売上管理データを生成する。売上管理データ生成部15は,生成した売上管理データを売上管理データ記憶部103に保存する(ステップS15)。売上管理データを保存後,レシートデータ認識装置1は,本処理を終了する。なお,ステップS15の詳細な処理フローについては,図14を用いて後述する。
【0096】
以上説明した処理フローが,レシートデータ認識装置1が実行する処理全体のフローである。
【0097】
図9は,図4に示すステップS14におけるレシートデータ処理の詳細な処理フローチャートである。図9に従って,レシートデータ処理部14が実行するレシートデータ処理について具体的に説明する。
【0098】
レシートデータ抽出部141は,画像データの中からレシート22の対象とする行の項目名称のみを抽出する(ステップS21)。
【0099】
具体的には,レシートデータ抽出部141は,画像データ読込部11から画像データ(認識文字データ)を受けると,レシート22の1行目から項目名称のみを抽出する。例えば,図5の画像データである場合,レシート22bの文字列#1「2010年10月10日(日) 22:30 No:0002」が抽出され,文字列#2「**」,…,文字列#7「売計」,文字列#8「297点」,文字列#9「¥226,701」,…等が抽出され,空行などは抽出されない。なお,このステップS21では,項目名称として,レシート項目名称,金額,記号(例えば「**」)なども含めて抽出される。
【0100】
次に,レシートデータ抽出部141は,定義データテーブル1021に格納された定義データを参照する(ステップS22)。
【0101】
具体的には,定義データ読込部13が,定義データ記憶部102に格納された定義データテーブル1021から店舗コードに対応する定義データを読み出す。定義データ読込部13は,読み出した定義データをレシートデータ抽出部141に送る。レシートデータ抽出部141は,ステップS23以降の処理において,定義データ読込部13から送られた定義データを用いる。なお,レシートデータ抽出部141は,定義データ読込部13から送られた定義データを,ワークメモリ(図示しない)に保存し,ワークメモリ上で定義データを参照する。
【0102】
次に,レシートデータ抽出部141は,抽出した項目名称が定義データに設定されているかをチェックする(ステップS23)。
【0103】
具体的には,レシートデータ抽出部141は,図5に示す文字列#14「総売上」について,定義データテーブル1021の読取文字#n(nは整数)の中に一致するものがあるかをチェックする。
【0104】
次に,抽出した項目名称が定義データに設定されている場合(ステップS23:Yes),同一名称判定部140は,読取り対象のレシート項目名称の項目属性を参照する(ステップS24)。一方,抽出した項目名称が定義データに設定されていない場合(ステップS23:No),ステップS28に処理を移す。
【0105】
次に,同一名称判定部140は,定義データに同一名称のレシート項目名称があると定義されているか否かチェックする(ステップS25)。定義データに同一名称のレシート項目名称があると定義されている場合に(ステップS25:Yes),同一名称判定部140は,同一名称判定処理を実行する(ステップS26)。一方,定義データに同一名称のレシート項目名称がないと定義されている場合に(ステップS25:No),同一名称判定部140は,ステップS27に処理を移す。
【0106】
図10および図11は,ステップS26における同一名称判定処理の詳細な処理フローチャートである。以下,図10および図11に従って,同一名称判定部140が実行する同一名称判定処理について具体的に説明する。
【0107】
アンカー文字検出部142は,定義データから,読取り対象のレシート項目名称の項目属性がアンカー文字か否か判定する(ステップS261)。項目属性がアンカー文字である場合に(ステップS261:Yes),ステップS262に処理を移す。一方,項目属性がアンカー文字でない場合(ステップS261:No),すなわち,項目属性が複数のキーワードである場合に,ステップS267に処理を移す。
【0108】
ステップS261から処理が移ると,アンカー文字検出部142は,レシート項目名称に一致する認識文字の位置データを取得する(ステップS262)。
【0109】
具体的に説明するため,図12に,レシート22cと,それに対応するアンカー文字が設定された定義データテーブル1021cとの例を示す。なお,図12に示すレシート22cでは,例えばレシート項目名称「総売上」に一致する認識文字として,レシート22c上に文字列Str#11,Str#21,Str#31がある場合を示している。また,その各々に対応する金額項目(金額の文字列)Dat#11「¥168,735」,Dat#21「¥48,195」およびDat#31「¥32,025」とする。以下,図12を用いて,ステップS262〜S266の処理を,具体例と共に説明する。
【0110】
図12に示す定義データテーブル1021cは,例えば店舗コード「100001」に対応する定義データが格納されたテーブルである。図12に示す定義データテーブル1021cにおいて,読取項目#1:「総売上」は,売上管理項目No.5の項目名称であり,レシート22cのレシート項目名称「総売上」に対応する。そして,項目属性#1:「2」は,読取項目の属性として,読取り対象のレシート項目名称に同一名称があり,アンカー文字が設定されていることを示す。読取文字#1:「総売上」は,レシート22cのレシート項目名称「総売上」が読取文字として設定されている。金額欄の読取位置#1は,(x11,y11)−(x’11,y’11)であり,レシート22c上では,例えば文字列Str#11「総売上」から金額欄にある金額項目Dat#11「¥168,735」までの相対距離を示す。
【0111】
また,図12に示す定義データテーブル1021cにおいて,アンカー文字は,レシート22c内の他のレシート項目名称であり,かつ,ユニークな文字である。例えば,アンカー文字「貸在高」は,読取文字#1:「総売上」に関連付けられたユニークな文字である。アンカー文字の距離は,レシート22上のアンカー文字とされる文字列から,レシート22上のレシート項目名称に該当する読取文字#1までのy座標を基準とする距離である。例えば,アンカー文字の距離「+100」は,アンカー文字とされるレシート22c上の文字列Str#41「貸在高」から,レシート22c上のレシート項目名称の文字列Str#11「総売上」までのy座標を基準とする距離「+100」であり,文字列Str#11「総売上」が,文字列Str#41「貸在高」よりも行の上端側にy座標の差として相対値「100」であることを意味する。
【0112】
例えば,前述のステップS262においては,アンカー文字検出部142は,図12に示すレシート22cの画像データから,レシート項目名称「総売上」に一致する認識文字として,文字列Str#11,Str#21,Str#31の位置データを取得する。
【0113】
次に,アンカー文字検出部142は,画像データからアンカー文字に一致する認識文字の位置データを取得する(ステップS263)。
【0114】
具体的には,アンカー文字検出部142は,画像データ読込部11を介して,画像データ記憶部101に格納されたレシート22cの画像データから,アンカー文字に一致する文字列Str#41「貸在高」に該当する認識文字の位置データを取得する。
【0115】
次に,アンカー文字検出部142は,レシート項目名称に一致する認識文字の位置と,アンカー文字に一致する認識文字の位置とから,各々の距離を算出する(ステップS264)。
【0116】
具体的には,図12に示すように,定義データテーブル1021cでは,金額欄の読取位置#1は,(x11,y11)−(x’11,y’11)であり,レシート22c内の文字列Str#11「総売上」から金額項目Dat#11までの相対距離を示す。アンカー文字「貸在高」は,読取文字#1「総売上」に関連付けられたユニークな文字である。アンカー文字の距離Ref#1は,レシート22c上のレシート項目名称に該当する読取文字#1までのy座標を基準とする距離である。
【0117】
例えば,アンカー文字の距離Ref#1は,レシート22c上の文字列Str#41「貸在高」から,レシート22c上の文字列Str#11「総売上」までのy座標を基準とする距離「+100」であるとする。すなわち,文字列Str#11「総売上」が,文字列Str#41「貸在高」よりも行の上端側にy座標の差として相対値「100」であることを意味する。その他の認識文字については,例えば,文字列Str#21「総売上」とアンカー文字Str#41「貸在高」と間の距離Ref#2であり,文字列Str#31「総売上」とアンカー文字Str#41「貸在高」と間の距離Ref#3である。距離Ref#2およびRef#3は,図12に示すように,文字列Str#41「貸在高」の行よりも下端側のy座標である。
【0118】
次に,アンカー文字検出部142は,定義データに設定されたアンカー文字との距離と,算出した各々の距離とを比較し,差分が小さいものを該当する(売上管理項目の対象となる)レシート項目の項目名称と判定する(ステップS265)。
【0119】
具体的には,図12に示すように,アンカー文字検出部142は,距離Ref#2および距離Ref#3については負の距離であり,「+100」に近い値ではないと判断し,文字列Str#21「総売上」およびStr#31「総売上」は,読取文字#1「総売上」の読取り対象でないと判断する。一方,アンカー文字検出部142は,距離Ref#1が距離「+100」に最も近い値であるため,文字列Str#11「総売上」が,読取文字#1「総売上」の読取り対象であると判断する。すなわち,アンカー文字検出部142は,アンカー文字Str#41「貸在高」およびアンカー文字との距離「+100」から,文字列Str#11「総売上」が,読取り対象のレシート項目名称であることを検出する。
【0120】
次に,レシートデータ特定部144は,該当すると判定されたレシート項目名称の位置情報を用いて,画像データから金額項目を表す認識文字を抽出する(ステップS266)。
【0121】
具体的には,レシートデータ特定部144は,アンカー文字検出部142により該当すると判定されたレシート項目名称の位置データと,定義データに設定されたそのレシート項目名称に対応する金額項目の相対位置データとから,画像データの中から金額項目を表す認識文字を抽出する。
【0122】
例えば,図12に示すように,定義データテーブル1021cでは,金額欄の読取位置#1は,(x11,y11)−(x’11,y’11)であり,レシート22c内の文字列Str#11「総売上」から金額項目Dat#11までの相対距離を示す。レシートデータ特定部144は,この相対距離を,定義データテーブル1021cから取得する。また,レシートデータ特定部144は,文字列Str#11「総売上」に対応する認識文字の位置データを,画像データ記憶部101に記憶されている画像データから取得する。これにより,レシートデータ特定部144は,この相対距離と,文字列Str#11「総売上」に対応する認識文字の位置データとを用いて,画像データ記憶部101に記憶されている画像データから,文字列Str#11「総売上」からの距離Dis#11にある金額項目Dat#11「¥168,735」を抽出する。
【0123】
この金額項目を表す認識文字を抽出後,本処理を終了する。すなわち,ステップS26(ステップS261〜S2610)の処理が終了する。
【0124】
他方,ステップS261から処理が移ると,キーワード検出部143は,定義データの設定から複数のキーワードを取得する(ステップS267)。
【0125】
具体的に説明するため,図13に,レシート22dと,それに対応する複数のキーワードが設定された定義データテーブル1021dとの例を示す。なお,図13に示すレシート22dでは,例えばレシート項目名称「総売上」に一致する認識文字として,レシート22d上に文字列Str#12,Str#22,Str#32がある場合を示している。また,その各々に対応する金額項目(金額の文字列)Dat#12「¥168,735」,Dat#22「¥48,195」およびDat#32「¥32,025」とする。以下,図13を用いて,ステップS268〜S2610の処理を,具体例と共に説明する。
【0126】
例えば,キーワード検出部143は,図13に示すように,定義データテーブル1021dの項目属性#1:「3」であることから,読取文字#1:「総売上」,「純売上」,「現金在高」および「貸在高」を含む複数のキーワードKey#1を取得する。
【0127】
次に,キーワード検出部143は,画像データの中で,複数のキーワードと一致する認識文字の一群を検索する(ステップS268)。
【0128】
具体的には,キーワード検出部143は,画像データ読込部11を介して,画像データ記憶部101に格納されたレシート22dの画像データから,複数のキーワードKey#1「総売上」,「純売上」,「現金在高」および「貸在高」に一致する認識文字の一群を検索する。キーワード検出部143は,検索したこれらの認識文字データを取得する。
【0129】
次に,キーワード検出部143は,検索した複数のキーワードと一致する認識文字の一群の中から,レシート項目名称に一致する認識文字を該当するレシート項目の項目名称であると判定する(ステップS269)。
【0130】
具体的には,図13に示すように,キーワード検出部143は,文字列Str#22「総売上」に一致する認識文字の位置データと,複数のキーワードKey#1に含まれる認識文字の位置データとの関係から,文字列Str#22「総売上」が複数のキーワードKey#1と一群とされる行でないと判定する。同様に,文字列Str#32「総売上」についても,一群とされる行でないと判定する。
【0131】
一方,キーワード検出部143は,文字列Str#12「総売上」に一致する認識文字の位置データと,複数のキーワードKey#1に含まれる認識文字の位置データとの関係から,文字列Str#12「総売上」が複数のキーワードKey#1の一群に含まれる行の位置にあると判定する。すなわち,キーワード検出部143は,複数のキーワードKey#1「総売上」,「純売上」,「現金在高」および「貸在高」から,文字列Str#12「総売上」が,読取り対象のレシート項目の項目名称であることを検出する。
【0132】
なお,図13に示すレシート22dでは,複数のキーワードKey#1の一群のキーワード間に,空行がない場合を示したが,一群のキーワード間に空行やレシート項目名称の存在しない行等を含んでもよい。その場合には,空行やレシート項目名称の存在しない(印字されない)行等を除いて,複数のキーワードKey#1を一群のキーワードと見なしてもよい。また,図13に示す定義データテーブル1021dでは,読取り文字#1:「総売上」を上段の行に位置するものとして,複数のキーワードの一群を設定する例を示したが,複数のキーワードの一群の中で上から2段目の行であってもよく,その他の行であってもよい。その場合には,複数のキーワードの中のいずれの項目名称が売上管理項目に対応する項目名称かの情報を有すればよい。
【0133】
次に,レシートデータ特定部144は,該当すると判定されたレシート項目名称の位置情報を用いて,画像データから金額項目を表す認識文字を抽出する(ステップS2610)。
【0134】
具体的には,レシートデータ特定部144は,キーワード検出部143により該当すると判定したレシート項目名称の位置データと,定義データに設定されたそのレシート項目名称に対応する金額項目の相対位置データとから,画像データの中から金額項目を表す認識文字を抽出する。
【0135】
例えば,図13に示すように,定義データテーブル1021dでは,金額欄の読取位置#1は,(x11,y11)−(x’11,y’11)であり,レシート22d内の文字列Str#12「総売上」から金額項目Dat#12までの相対距離を示す。レシートデータ特定部144は,この相対距離を,定義データテーブル1021dから取得する。また,レシートデータ特定部144は,文字列Str#12「総売上」に対応する認識文字の位置データを,画像データ記憶部101に記憶されている画像データから取得する。これにより,レシートデータ特定部144は,この相対距離と,文字列Str#12「総売上」に対応する認識文字の位置データとを用いて,画像データ記憶部101に記憶されている画像データから,文字列Str#12「総売上」からの距離Dis#12にある金額項目Dat#12「¥168,735」を抽出する。
【0136】
この金額項目を表す認識文字を抽出後,本処理を終了する。すなわち,ステップS26(ステップS261〜S2610)の処理が終了する。
【0137】
次に,レシートデータ抽出部141は,レシート項目の最終行の処理が終了したかを判断する(ステップS28)。レシート項目の最終行の処理が終了していない場合(ステップS28:No),ステップS21に処理を戻し,次のレシート項目の行からのステップS21〜S27の処理を繰り返す。一方,レシート項目の最終行の処理が終了した場合(ステップS28:Yes),本処理を終了する。
【0138】
以上の同一名称判定処理などにより,図12または図13に示すように,レシートデータ特定部144は,例えばレシート項目名称「総売上」に対応する金額項目「¥168,735」を特定することができる。
【0139】
以上のように,レシートデータ処理部14は,登録された定義データを用いて,レシート画像から読み取ったレシート項目の認識文字に対して,必要なレシートデータを抽出することができる。
【0140】
また,レシートデータ処理部14は,売上管理データに必要なレシートデータを抽出することができ,抽出したレシートデータのレシート項目名称および金額を,予め定めた対応関係で売上管理項目の売上管理データに変換(集計)することができる。
【0141】
以上説明したレシートデータ認識処理によって,レシート22内に読取り対象となるレシート項目の項目名称と同一名称が存在する場合であっても,定義データを用いて,項目名称に関連付けられたユニークなアンカー文字,または,複数のキーワードを検索することにより,売上管理項目に必要なレシート項目の項目名称および対応する金額項目を正確に抽出することができる。これにより,売上管理データを正確に集計することができる。
【0142】
図14は,ステップS15における売上管理データ生成処理の詳細な処理フローチャートを示す。図14に従って,売上管理データ生成部15が実行する売上管理データ生成処理について具体的に説明する。
【0143】
売上管理データ生成部15は,レシートデータ特定部144から売上集計に必要となるレシートデータを取得する(ステップS31)。
【0144】
具体的には,売上管理データ生成部15は,店舗コードと,認識文字データから特定したレシート項目名称およびその金額を含むデータと,図3に示す対応関係情報1022(1022a)とを含むレシートデータを,レシートデータ特定部144から取得する。
【0145】
次に,売上管理データ生成部15は,対応関係情報1022(1022a)を用いて,売上管理項目の売上管理データを集計する(ステップS32)。
【0146】
具体的には,売上管理データ生成部15は,対応関係情報1022(1022a)から売上管理項目とレシート項目の対応関係に基づいて,レシート項目名称に対応する金額を,売上管理項目の売上管理データとして集計する。以上により,レシート項目の金額(数値データ)が,売上管理項目の数値データに変換される。
【0147】
次に,売上管理データ生成部15は,保存対象となる店舗コードの売上管理データを,売上管理データ記憶部103の売上管理DB1031に保存する(ステップS33)。
【0148】
例えば,図15に,売上管理DB(データベース)1031の例を示す。売上管理DB1031には,図15に示すように,店舗コードごとに,「売上日付」,売上管理項目No.1「現金売上」,No.2「掛売上」,No.3「クレジット売上」,…などの売上に関する精算項目に対応する数値(金額)が格納される。
【0149】
以上により,売上管理DB1031には,店舗ごとにまったく異なるフォーマット(シート形式)であったレシート22のレシート項目が一元化され,各テナントの店舗により出力されたレシートで統一の取れないレシート項目,名称,数値などが,統一性のとれた売上管理項目による売上管理データとして,手入力による作業なしに自動的に収集できるようになる。これにより,テナント管理部門の業務担当者は,自動的に店舗ごとの売上を集計することができるため,店舗の売上管理業務を効率よく,スピーディに行うことができる。
【0150】
また,各店舗に備えられたキャッシュレジスタなどのレシート出力装置を変更する必要がないため,テナント側にとっては余計な出費を抑えることができる。
【0151】
以上のレシートデータ認識装置が行う処理は,コンピュータとソフトウェアプログラムとによって実現することができ,そのプログラムをコンピュータ読み取り可能な記録媒体に記録することも,ネットワークを通して提供することも可能である。
【符号の説明】
【0152】
1 レシートデータ認識装置
10 読取機
11 画像データ読込部
12 店舗特定部
13 定義データ読込部
14 レシートデータ処理部
15 売上管理データ生成部
20 レシート挟持用シート
22 レシート
101 画像データ記憶部
102 定義データ記憶部
103 売上管理データ記憶部
140 同一名称判定部
141 レシートデータ抽出部
142 アンカー文字検出部
143 キーワード検出部
144 レシートデータ特定部

【特許請求の範囲】
【請求項1】
レシート画像を文字認識することにより得られた認識文字とその位置データとを記憶する画像データ記憶部と,
レシートに印字される項目名称の文字列と,レシート内に同一の項目名称を持つ他の文字列が存在するか否かを示す情報と,レシート内に同一の項目名称を持つ他の文字列が存在する場合に,前記項目名称とレシート印字位置が関連付けられている他の項目名称の文字列であるアンカー文字と,前記項目名称の文字列と前記アンカー文字間の距離の情報とを,レシートにおける読取り対象となる各項目名称ごとに定義した定義データを記憶する定義データ記憶部と,
前記画像データ記憶部に記憶された認識文字から前記定義データに定義された項目名称の文字列に一致する認識文字を抽出するレシートデータ抽出部と,
抽出された認識文字に該当する項目名称が,前記定義データ中でレシート内に同一の項目名称を持つ他の文字列が存在すると定義されている場合に,対応する前記アンカー文字に一致する認識文字の位置を取得し,その位置と前記抽出された認識文字の位置との距離を算出する同一名称判定部と,
前記抽出された認識文字に該当する項目名称が,前記定義データ中でレシート内に同一の項目名称を持つ他の文字列が存在すると定義されている場合に,前記算出された距離と,前記定義データにおいて定義されている距離の情報とを比較し,最も近い距離の認識文字を,読取り対象の項目名称として特定し,前記抽出された認識文字に該当する項目名称が,前記定義データ中でレシート内に同一の項目名称を持つ他の文字列が存在しないと定義されている場合に,前記抽出された認識文字を,読取り対象の項目名称として特定するレシートデータ特定部と,
前記読取り対象の項目名称と,その項目名称に一致する認識文字に対応する金額項目を表す認識文字とから,認識結果のデータを生成し,認識結果のデータを出力または記憶するデータ生成部とを備える
ことを特徴するレシートデータ認識装置。
【請求項2】
レシート画像を文字認識することにより得られた認識文字とその位置データとを記憶する画像データ記憶部と,
レシートに印字される項目名称の文字列と,レシート内に同一の項目名称を持つ他の文字列が存在するか否かを示す情報と,レシート内に同一の項目名称を持つ他の文字列が存在する場合に,前記項目名称とレシート印字位置が関連付けられている他の項目名称の文字列である複数のキーワードの情報とを,レシートにおける読取り対象となる各項目名称ごとに定義した定義データを記憶する定義データ記憶部と,
前記画像データ記憶部に記憶された認識文字から前記定義データに定義された項目名称の文字列に一致する認識文字を抽出するレシートデータ抽出部と,
抽出された認識文字に該当する項目名称が,前記定義データ中でレシート内に同一の項目名称を持つ他の文字列が存在すると定義されている場合に,その項目名称に対して定義されている前記複数のキーワードに一致する複数の認識文字が存在するか否かを判定する同一名称判定部と,
前記複数のキーワードに一致する複数の認識文字が存在する場合に,前記複数のキーワードに一致する複数の認識文字の中の前記定義データに定義された項目名称の文字列に一致する認識文字を,読取り対象の項目名称として特定し,前記抽出された認識文字に該当する項目名称が,前記定義データ中でレシート内に同一の項目名称を持つ他の文字列が存在しないと定義されている場合に,前記抽出された認識文字を,読取り対象の項目名称として特定するレシートデータ特定部と,
前記読取り対象の項目名称と,その項目名称に一致する認識文字に対応する金額項目を表す認識文字とから,認識結果のデータを生成し,認識結果のデータを出力または記憶するデータ生成部とを備える
ことを特徴するレシートデータ認識装置。
【請求項3】
請求項1または請求項2記載のレシートデータ認識装置において,
前記レシートは,店舗ごとに異なるフォーマットで印刷されたレシートであり,
前記定義データ記憶部には,店舗ごとに前記定義データが記憶され,
レシートを発行した店舗ごとに異なる定義データを用いて,前記レシートデータ抽出部と,前記同一名称判定部と,前記レシートデータ特定部と,前記データ生成部とによる処理を実行する
ことを特徴とするレシートデータ認識装置。
【請求項4】
請求項3記載のレシートデータ認識装置において,
前記定義データ記憶部に記憶される定義データは,前記レシートに印字される項目名称の文字列に対応して,複数の店舗の売上管理に共通に用いられる管理項目名称のデータを含み,
前記データ生成部は,前記項目名称に一致する認識文字を,前記定義データに定義された対応する管理項目名称に変換した認識結果のデータを生成する
ことを特徴とするレシートデータ認識装置。
【請求項5】
コンピュータを,
レシート画像を文字認識することにより得られた認識文字とその位置データとを記憶する画像データ記憶手段と,
レシートに印字される項目名称の文字列と,レシート内に同一の項目名称を持つ他の文字列が存在するか否かを示す情報と,レシート内に同一の項目名称を持つ他の文字列が存在する場合に,前記項目名称とレシート印字位置が関連付けられている他の項目名称の文字列であるアンカー文字と,前記項目名称の文字列と前記アンカー文字間の距離の情報とを,レシートにおける読取り対象となる各項目名称ごとに定義した定義データを記憶する定義データ記憶手段と,
前記画像データ記憶手段に記憶された認識文字から前記定義データに定義された項目名称の文字列に一致する認識文字を抽出するレシートデータ抽出手段と,
抽出された認識文字に該当する項目名称が,前記定義データ中でレシート内に同一の項目名称を持つ他の文字列が存在すると定義されている場合に,対応する前記アンカー文字に一致する認識文字の位置を取得し,その位置と前記抽出された認識文字の位置との距離を算出する同一名称判定手段と,
前記抽出された認識文字に該当する項目名称が,前記定義データ中でレシート内に同一の項目名称を持つ他の文字列が存在すると定義されている場合に,前記算出された距離と,前記定義データにおいて定義されている距離の情報とを比較し,最も近い距離の認識文字を,読取り対象の項目名称として特定し,前記抽出された認識文字に該当する項目名称が,前記定義データ中でレシート内に同一の項目名称を持つ他の文字列が存在しないと定義されている場合に,前記抽出された認識文字を,読取り対象の項目名称として特定するレシートデータ特定手段と,
前記読取り対象の項目名称と,その項目名称に一致する認識文字に対応する金額項目を表す認識文字とから,認識結果のデータを生成し,認識結果のデータを出力または記憶するデータ生成手段として
機能させるためのレシートデータ認識プログラム。
【請求項6】
コンピュータを,
レシート画像を文字認識することにより得られた認識文字とその位置データとを記憶する画像データ記憶手段と,
レシートに印字される項目名称の文字列と,レシート内に同一の項目名称を持つ他の文字列が存在するか否かを示す情報と,レシート内に同一の項目名称を持つ他の文字列が存在する場合に,前記項目名称とレシート印字位置が関連付けられている他の項目名称の文字列である複数のキーワードの情報とを,レシートにおける読取り対象となる各項目名称ごとに定義した定義データを記憶する定義データ記憶手段と,
前記画像データ記憶手段に記憶された認識文字から前記定義データに定義された項目名称の文字列に一致する認識文字を抽出するレシートデータ抽出手段と,
抽出された認識文字に該当する項目名称が,前記定義データ中でレシート内に同一の項目名称を持つ他の文字列が存在すると定義されている場合に,その項目名称に対して定義されている前記複数のキーワードに一致する複数の認識文字が存在するか否かを判定する同一名称判定手段と,
前記複数のキーワードに一致する複数の認識文字が存在する場合に,前記複数のキーワードに一致する複数の認識文字の中の前記定義データに定義された項目名称の文字列に一致する認識文字を,読取り対象の項目名称として特定し,前記抽出された認識文字に該当する項目名称が,前記定義データ中でレシート内に同一の項目名称を持つ他の文字列が存在しないと定義されている場合に,前記抽出された認識文字を,読取り対象の項目名称として特定するレシートデータ特定手段と,
前記読取り対象の項目名称と,その項目名称に一致する認識文字に対応する金額項目を表す認識文字とから,認識結果のデータを生成し,認識結果のデータを出力または記憶するデータ生成手段として
機能させるためのレシートデータ認識プログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate

【図15】
image rotate

【図16】
image rotate

【図17】
image rotate


【公開番号】特開2012−226402(P2012−226402A)
【公開日】平成24年11月15日(2012.11.15)
【国際特許分類】
【出願番号】特願2011−90594(P2011−90594)
【出願日】平成23年4月15日(2011.4.15)
【出願人】(598097552)株式会社富士通マーケティング (30)
【出願人】(309033839)株式会社富士通コンピュータテクノロジーズ (8)