(57)【要約】【課題】レシートからＯＣＲ認識により必要なデータを正確に抽出するためのレシート定義データを簡単な操作で効率よく作成できるようにする。【解決手段】確信度算出部１２は，レシート２のＯＣＲ処理による認識結果の文字列の認識の安定性を示す確信度を算出する。定義入力画面表示部１３は，定義入力画面を表示するときに，レシート画像の表示における読取項目対象の文字列を，確信度に応じた表示態様で表示する。入力データ処理部１４および定義データ作成部１６は，ドラッグ・アンド・ドロップ操作によって，読取項目として選択された文字列が誤認識であっても，誤認識された文字列のままレシート定義データを作成する。【選択図】図１
2014137605.tif 000002
【特許請求の範囲】
【請求項１】
レシート認識システムがレシートの認識に用いる，少なくともレシート内の読取項目の文字列を定義する情報を含むレシート定義データを作成するレシート定義データ作成装置であって，
レシートのイメージデータを含む画像データを記憶する画像データ記憶手段と，
前記レシートのイメージデータに対する文字認識処理により認識した文字列の認識安定性を示す確信度を，前記文字列を構成する各文字の認識結果の確かさを示す値から算出する確信度算出手段と，
前記画像データ記憶手段に記憶されたレシートのイメージデータにおいて前記認識した文字列の確信度を示す情報をレシート内の文字画像に重畳させたイメージ表示画面を含む定義入力画面を表示する定義入力画面表示手段と，
前記イメージ表示画面において選択された文字列を読取項目として入力する入力データ処理手段と，
前記入力データ処理手段が入力した読取項目の文字列が誤認識であるか否かにかかわらず，認識結果の文字列を読取項目とするレシート定義データを作成する定義データ作成手段と，
作成されたレシート定義データを記憶する定義データ記憶手段とを備える
ことを特徴とするレシート定義データ作成装置。
【請求項２】
請求項１記載のレシート定義データ作成装置において，
前記定義入力画面は，レシートにおいて読取対象となる読取項目の文字列を表示する読取定義画面を含み，
前記入力データ処理手段は，前記イメージ表示画面における文字列に対する前記読取定義画面への操作員によるドラッグ・アンド・ドロップ操作により，読取項目を入力する
ことを特徴とするレシート定義データ作成装置。
【請求項３】
請求項２記載のレシート定義データ作成装置において，
前記読取定義画面は，前記読取項目に対応する金額の領域の設定を示す金額領域表示画面を有し，
前記入力データ処理手段は，入力された読取項目と同じ行にある金額を示す文字列を金額の領域として仮に設定し，確認操作があった場合にその金額の領域を本設定とし，または，前記金額領域表示画面への金額を示す文字列のドラッグ・アンド・ドロップ操作があった場合に，操作された金額の領域を本設定とし，
前記定義データ作成手段は，前記読取項目とそれに対応する金額の領域を示す情報を含むレシート定義データを作成する
ことを特徴とするレシート定義データ作成装置。
【請求項４】
請求項１，請求項２または請求項３記載のレシート定義データ作成装置において，
前記入力データ処理手段は，前記イメージ表示画面において選択された第１の文字列の確信度がある基準の値よりも小さい場合に，前記第１の文字列の代替文字列を設定することを推奨するメッセージを表示するか，または，前記第１の文字列よりも確信度の大きいレシート内の第２の文字列を前記第１の文字列の代替文字列として設定し，
前記定義データ作成手段は，前記第２の文字列が前記第１の文字列の代替文字列として設定された場合に，前記第１の文字列の代わりに前記第２の文字列を読取項目とするレシート定義データを作成する
ことを特徴とするレシート定義データ作成装置。
【請求項５】
コンピュータを，請求項１から請求項４までのいずれか１項に記載されたレシート定義データ作成装置が備える前記画像データ記憶手段，前記確信度算出手段，前記定義入力画面表示手段，前記入力データ処理手段，前記定義データ作成手段，および，前記定義データ記憶手段として機能させるためのレシート定義データ作成プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は，レシート定義データ作成装置およびそのプログラムに関し，特に，例えばショッピングモールなどの複数の店舗の売上を管理するために，文字認識により読み取ったレシートデータから必要なデータを正確に抽出するときに必要となる定義データの作成を支援する技術に関するものである。
【背景技術】
【０００２】
ショッピングセンター，ショッピングモール等に出店するテナント（店舗を運営する会社など）の店舗を管理するテナント管理部門では，各店舗の一日の売上を収集し，現金売上，クーポン売上，…といった売上内訳（売上管理項目）を作成している。この売上内訳作成の際には，各店舗から提供される精算レシートが集められて，売上管理項目の数値を算出することが行われる。しかし，各店舗から提供される精算レシートの形式は，店舗ごとに導入されているＰＯＳシステムに依存するため，さまざまな形式で作成されているのが現状である。そのため，テナント管理部門が処理する精算レシートは，項目の種類，項目名，印字サイズ，印字字体などにおいて多種多様である。
【０００３】
例えば，精算レシートの項目の名称について，売上合計，売上計，合計売上，総売上，…等は，同等の内容を示すものであっても，ＰＯＳシステムによって異なる名称が印字されている。また，出店するテナントの店舗の入れ替えなどが頻繁に行われるため，新たな精算レシートの形式にも対応しなければならない。そのため，テナント管理部門では，精算レシートを統一された売上管理データとして集計する売上集計作業に莫大な労力を要し，そのための人的および時間的負担に多大なコストを要しているのが現状である。
【０００４】
この課題を解決するための技術として，例えば特許文献１には，ショッピングセンターの管理会社が各店舗から精算レシートを収集し，その精算レシートをＯＣＲ（Optical Character Recognition ）技術により認識させ，売上データの集計やチェックを行う仕組みが記載されている。
【０００５】
特許文献１において開示されているように，レシートデータのような帳票から印字されている項目に対応する文字列をＯＣＲ認識により読み取る場合，読取定義データに読み取りたい項目の文字列をあらかじめ定義しておき，定義されている項目情報に基づいて，ＯＣＲ認識された処理結果から，項目情報を抽出して読み取るといった方法が行われている。
【０００６】
ここで，ＯＣＲ認識された処理結果から，項目情報を抽出して読み取るといった方法としては，従来から種々の手法が考えられている。例えば，特許文献２には，帳票を読み取るための，処理項目，処理領域，および処理内容を含む定義情報が定義された定義データに基づき，読み取った帳票を処理する装置が開示されている。このような帳票読取装置においては，ＯＣＲの認識精度により項目名の文字列が正しく読み取れずに，読取定義データに定義されている文字列と異なる文字列として認識してしまうことがあるという問題がある。
【０００７】
このような誤認識の問題を解決するために，例えば特許文献３においては，定義項目の近傍にある文字列との位置関係を併せて定義することによって，所望の項目の文字位置を認識する技術が開示されている。
【先行技術文献】
【特許文献】
【０００８】
【特許文献１】特開２０１２−０３２９７９号公報
【特許文献２】特開２０１２−０５９２２６号公報
【特許文献３】特開２００５−１６５９７８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００９】
レシートの文字画像を認識して，売上管理データを自動で作成する場合，売上管理データとして必要な売上管理項目とレシートの読取項目とがどのように対応しているかの対応情報，また，レシートの読取項目の文字列（項目名称）およびその読取項目に対応する金額欄の画像上の位置情報を，レシート定義データとして事前に用意する必要がある。
【００１０】
このレシート定義データを一度作成して，レシート認識装置に登録すれば，ＯＣＲ機能を有する読取装置等によりレシート画像を読み取り，その読み取ったレシート画像から売上管理データの作成に必要なレシート項目を抽出し，毎日の売上管理データをある程度自動で収集することができる。
【００１１】
従来，レシートなどの帳票の項目をＯＣＲ認識するための読取定義データにおいては，定義データに帳票に記載された文字の何れかが正しくＯＣＲ認識されることを前提として定義が行われている。しかし，最近の技術ではＯＣＲ処理による認識の精度が向上しているとはいうものの，必ずしも帳票内の文字列が常に正しく認識されるとは限らない。
【００１２】
例えば，特許文献３に記載されている方法では，定義項目名が正しく認識できない場合であっても，定義項目の近傍にある項目名が正しく認識されれば，読取位置を正しく取得することができるようにしている。しかし，定義項目の近傍にある項目名が正しく認識できなかった場合には，読取位置を取得することができない。
【００１３】
ところで，前述したレシート認識による売上管理データの自動収集では，レシート項目の項目名を正しく読み取ることができたかどうかよりも，売上管理データとして収集すべき項目の金額を正しく読み取ることができたかどうかが重要である。仮にレシート項目の項目名が実際には誤って認識されたとしても，それに対応する本来の項目の金額を正しく読み取ることができれば，売上管理データの収集の目的は達成される。
【００１４】
本発明は，この点に着目して，レシートからＯＣＲ認識により必要なデータを正確に抽出するための実用的な新しいレシート定義データを作成する技術を提供することを目的とする。
【課題を解決するための手段】
【００１５】
本発明は，上記課題を解決するため，レシート定義データでは，レシートに記載されている本来の文字列で項目定義を行うのではなく，誤認識であるか否かにかかわらず，ＯＣＲによって認識されるであろう文字列で項目定義を行う。ＯＣＲによって認識されるであろう文字列によって，読取項目の定義データを作成することによって，たとえＯＣＲによる認識が誤認識であっても，その誤認識の文字列で定義データに項目定義がされているため，確実に読取項目を認識することができる。
【００１６】
この際に，ＯＣＲによりどの文字がどのように誤認識されるかを事前に把握することは，ＯＣＲエンジンの機能に左右されるため困難である。さらには，常に同じ文字が同じ誤認識の結果になるかどうかも不明確である。そのため，誤認識されるであろう文字で事前に読取定義データを作成するにあたって，認識対象文字列の安定性・信頼性を示す確信度という尺度の概念を導入し，予め誤認識されるであろう文字列を予測し，予測結果に基づいて，たとえ誤認識された文字列であっても読取精度の高い文字列を項目定義文字とする読取定義データを作成し，レシートイメージのＯＣＲ認識結果の読取を行うことによって，高い精度でのレシートイメージからのレシート項目の読取を可能とする。
【００１７】
すなわち，本発明は，レシート定義データを作成するにあたって，レシートの認識文字列の確信度を算出し，確信度に応じて，誤認識した文字を含んでいてもそのままその認識文字列を用いて，レシートの読取定義データであるレシート定義データを作成する。
【００１８】
例えば，レシートに「総売上    ￥５００，０００」と印字されていたとする。レシート定義データとしては，売上管理データの収集のために，少なくともレシート内の読取項目の文字列と，それに対応する金額欄の相対的な位置情報が必要になる。この場合，読取項目は「総売上」であり，金額欄の相対的な位置情報は，レシート画像における「総売上」と「￥５００，０００」の金額欄の相対的な位置情報（距離情報）である。
【００１９】
従来のレシート定義データでは，読取項目の文字列の定義データとして，「総売上」の文字列が定義されていた。もし，レシート定義データの作成時に，「総売上」を「総亮上」というように誤認識したことが分かると，定義データの作成者は，「総亮上」の文字列を「総売上」の文字列に手入力により修正し，読取項目の定義データを作成していた。
【００２０】
しかし，レシートの印字特性やＯＣＲの特性などにより，ある店舗のレシートについて，認識の第１候補が「総売上」ではなく「総亮上」であることがほとんどであるような場合，実際には誤認識であっても読取項目の定義データを「総亮上」としたほうが精度よく金額データを読み取ることができる。
【００２１】
そこで，本発明では，認識した「総亮上」という文字列の確信度を算出し，例えば確信度が所定の閾値より大きかったならば，誤認識であるか否かにかかわらず，「総亮上」という文字列で読取項目の定義データを作成することができるようにする。ここで，確信度とは，認識結果の正しさではなく，認識対象レシートにおける認識対象文字列が常に定義データと同じ文字列に認識されるという認識の安定性を示す値であり，ＯＣＲによる読取項目を構成する各文字の認識の確からしさから算出される。すなわち，確信度は，同種の他のレシートにおいても，ＯＣＲが同じ文字列として認識する可能性の高さを示す値であり，例えば，認識時に用いられた認識用辞書の文字と認識対象文字との類似度（距離の逆数など）から算出される。
【００２２】
以上を踏まえ，レシート定義データの作成は，例えば以下のように行う。
１．レシートをスキャナーで画像として読み込み画面上にレシートイメージ画像を表示する。
２．レシートイメージ画像の文字列項目をＯＣＲ機能により認識し，略矩形にて文字列項目を囲んで表示する。
３．認識結果の文字列の認識の安定性を示す確信度を，文字列を構成する各文字の認識の確からしさを示す値によって算出し，算出された確信度に応じて，前記略短形の表示色を変える。例えば，確信度が高い場合，青色で表示し，確信度が中の場合，黄色で表示し，確信度が低い場合，赤色で表示する。
４．操作員がレシートイメージ画像上の項目文字列をドラッグし，定義項目表示欄にドロップすると，その項目文字列を読取項目として定義する。
５．操作員がレシートイメージ画像上の読取項目に対応するデータ項目（例えば金額）をドラッグし，データ項目表示欄にドロップすると，読取項目に対応するデータ項目の位置を定義する。
６．同じ認識文字列が複数ある文字列を選択した場合や，確信度の低い文字を選択した場合には，読取項目を代替する文字列の代替項目を指定することを推奨するメッセージを出力する。または，レシート内においてその読取項目の近くに存在する確信度の高い文字列を代替項目として自動で設定する。
【００２３】
以上述べた本技術の主要な点は，（１）誤認識した文字列であっても，それが適切であればその文字列を用いて読取項目の定義データを作ること，（２）確信度に基づいて，読取項目を定義する文字列を選択できること，（３）ドラッグ・アンド・ドロップなどの簡単な操作で読取項目の定義データを作成できること，である。
【発明の効果】
【００２４】
本発明によれば，文字単位ではなく文字列単位で認識の信頼度（同じ文字として認識する確度）の算出を行うことにより，認識精度（同じ文字として認識される可能性が高い文字）を項目定義文字として定義することができる。
【００２５】
したがって，誤認識文字であっても，信頼度の高い文字であれば，ドラッグ・アンド・ドロップなどの簡単な操作で容易に定義データを作成することができる。
【図面の簡単な説明】
【００２６】
【図１】レシート定義データ作成装置の構成例を示すブロック図である。
【図２】レシート定義データ作成装置の処理の概要を示すフローチャートである。
【図３】読取機によって読み取られるレシートの例を示す図である。
【図４】画像データ記憶部に格納される画像データの例を示す図である。
【図５】基本データ記憶部に格納される基本テーブルの例を示す図である。
【図６】店舗マスタの例を示す図である。
【図７】レシート定義データの例を示す図である。
【図８】確信度算出の処理フローチャートである。
【図９】確信度算出の処理フローチャートである。
【図１０】確信度データのデータ構造を示す図である。
【図１１】「総売上」の各文字のリジェクト／アクセプトの判定例を示す図である。
【図１２】定義入力画面の構成例を示す図である。
【図１３】読取項目の定義の入力例を示す図である。
【図１４】定義入力処理のフローチャートである。
【図１５】読取項目設定処理のフローチャート（その１）である。
【図１６】読取項目設定処理のフローチャート（その２）である。
【図１７】代替項目の設定例を示す図である。
【発明を実施するための形態】
【００２７】
以下，図面を用いながら，本発明の実施の形態について詳細に説明する。なお，以下では，主に店舗売上を集計する装置の例について説明するが，本発明は売上集計に限られるわけではなく，仕入集計データやその他の伝票などに印字された実績データを集計するための装置などにも同様に適用することができる。
【００２８】
図１は，本発明の概要を説明するための装置構成例を示す。図１において，１はＣＰＵおよびハードディスクやメモリ等の記憶装置等から構成され，レシートから読み取った画像データをもとに，レシート定義データを作成する処理を実行するレシート定義データ作成装置，２はレシート定義データの作成対象となるレシート，３は光学方式などによる画像のスキャンニングによりレシート２の画像を読み取る読取機，４は表示装置，５はキーボードやマウス等の入力装置である。
【００２９】
レシート２は，透明なキャリアシート等に挟まれた状態で読取機３に読み取られる。画像データ読込部１０は，周知のＯＣＲ処理機能を持ち，読取機３により読み取った画像を所定の画像データに変換する。なお，読取機３がＯＣＲ処理機能を有する場合には，画像データ読込部１０は，ＯＣＲ処理機能を持たなくてもよい。画像データは，例えばイメージデータが格納された画像ファイル，ＯＣＲによる認識文字データを含む。画像データ読込部１０は，ＯＣＲ処理結果の画像データを画像データ記憶部１０１に保存する。
【００３０】
確信度算出部１２は，レシートのイメージデータに対するＯＣＲ処理により認識した文字列の確信度を，その文字列を構成する各文字の認識結果の信頼度から算出する。各文字の信頼度とは，例えばＯＣＲ処理において用いた認識候補文字と認識対象文字とのパターンの違いを示す距離（非類似度）である。確信度算出部１２は，算出した各文字列の確信度を確信度データ記憶部１０４に記憶する。
【００３１】
定義入力画面表示部１３は，店舗マスタ１０３を参照し，レシート定義データを作成するために，基本データ記憶部１０２に格納されている基本的な売上管理項目の情報と，画像データ記憶部１０１に格納されているレシートのイメージデータを含む画像データの表示領域を有する定義入力画面を，表示装置４に表示する。このとき，後に詳述するように，確信度データ記憶部１０４に記憶されている各文字列の確信度を用いて，読取項目の定義入力および設定の支援を行う。
【００３２】
入力データ処理部１４は，表示された定義入力画面から，レシートの読取項目と，イメージデータにおける読取項目に対応する金額欄の位置情報と，読取項目と売上管理項目との対応情報とを入力する。座標取得部１５は，入力データ処理部１４の配下で動作し，イメージデータにおける読取項目の位置の座標およびそれに対応する金額欄の位置の座標を入力装置５から取得する。
【００３３】
また，入力データ処理部１４は，入力した読取項目について確信度が低い値であった場合に，読取項目に代替する他のレシート項目を代替項目として設定することを推奨するメッセージを出力したり，代替項目を自動で選択する処理機能を持つ。
【００３４】
定義データ作成部１６は，入力データ処理部１４によって入力した情報をもとに，店舗ごとのレシート定義データを作成し，定義データ記憶部１０５に格納する。作成されるレシート定義データの具体例については後述する。レシート定義データは，レシートの読取項目における項目名称とそれに対応する金額項目の相対位置（相対的な金額欄の位置）などの情報を含むとともに，売上管理項目との対応関係情報を含んでいる。
【００３５】
図２は，図１に示すレシート定義データ作成装置１の処理の概要を示すフローチャートである。
【００３６】
画像データ読込部１０は，読取機３が読み取ったレシート２のレシート画像を読み込み，そのレシート画像のイメージデータを画像データ記憶部１０１に格納する（ステップＳ１）。この例のレシート２は，各店舗における１日分の売上情報の集計データであり，レシート項目は各店舗が使用しているＰＯＳシステムによって異なっている。精算レシートと呼ばれることもある。
【００３７】
次に，画像データ読込部１０は，レシート画像についてＯＣＲ処理により文字認識を行い（ステップＳ２），得られた認識文字列とその認識文字列の画像内の位置を画像データ記憶部１０１に格納する（ステップＳ３）。
【００３８】
確信度算出部１２は，レシート画像について認識した各文字列の確信度を，文字列を構成する各文字の信頼度から算出し（ステップＳ４），算出した確信度を確信度データ記憶部１０４に格納する（ステップＳ５）。
【００３９】
定義入力画面表示部１３は，画像データ記憶部１０１，基本データ記憶部１０２，店舗マスタ１０３のデータから定義入力画面を作成し，表示装置４に表示する（ステップＳ６）。定義入力画面には，レシートの全体イメージの表示も行われる。このレシートのイメージの表示において，認識した文字列の各項目を略矩形で囲んで表示し，確信度算出部１２により算出された確信度に応じて，各項目を囲む略矩形の表示色を変更する。例えば，確信度が高い項目は青色で表示し，確信度が中の項目は黄色で表示し，確信度が低い項目は赤色で表示する。
【００４０】
入力データ処理部１４は，定義入力画面からの入力により，レシートの項目について，読取項目および演算式などを設定し，読取項目と売上管理項目との対応関係，読取項目とその読取項目に対応する金額欄の位置関係を定める（ステップＳ７）。この入力において，同じ認識文字列が複数ある文字列が選択されたり，確信度の低い文字列の項目が選択さたりした場合には，入力データ処理部１４は，代替文字列を指定するように操作員にメッセージを表示して促す。
【００４１】
定義データ作成部１６は，入力データ処理部１４により入力した情報をもとに，レシート定義データを作成し，定義データ記憶部１０５に格納する（ステップＳ８）。
【００４２】
以上，レシート定義データ作成装置１が実行する大まかな処理を説明したが，以下では，具体的な処理内容やデータ構造について詳しく説明する。
【００４３】
図３は，読取機３によって読み取られるレシート２の例を示す図である。読取機３が図３に示すようなレシート２を読み取ると，読取機３または画像データ読込部１０のＯＣＲ処理により，画像の解析による文字認識が行われる。この文字認識では，図３に示すレシート２における文字列＃１，＃２，…，＃１４，…のように，一連の文字列ごとに，文字列を構成する各認識文字の候補とその位置情報とが画像データとして抽出され，画像データ記憶部１０１に格納される。
【００４４】
図４は，画像データ記憶部１０１に格納される画像データの例を示す図である。画像データ記憶部１０１には，図４（Ａ）に示すように，レシート画像のイメージデータに関するデータと，図４（Ｂ）に示すように，レシートの文字認識結果のデータ（以下，認識文字データという）とが格納される。
【００４５】
レシート画像のイメージデータは，例えばレシート全体またはレシートにおける文字が印字された部分全体の矩形領域の画像イメージがビットマップ形式の画像ファイルとして格納され，また，このレシート２を発行した店舗を識別する店舗コードが付与される。この店舗コードは，入力装置５から事前に入力してもよいし，また，レシート２を読取機３に読み取らせるときのレシート挟持用シート（キャリアシート）に付与された各店舗識別用の２次元コード等を解析して入力するようにしてもよい。
【００４６】
図４（Ｂ）に示す認識文字データは，一連の文字列＃ｎ（ｎ＝１，２，…）についての文字認識の結果が格納されるが，その内容を図３に示す文字列＃１４の例を用いて説明する。まず，文字列＃１４がレシート２における１４番目の文字列であり，識別番号がそれを示している。文字列＃１４の文字数は３（第１候補の並びは「総亮上」）であり，文字列＃１４の座標は，（ｘ，ｙ）−（ｘ’，ｙ’）である。この座標は，あらかじめ定められたレシート２の画像の基準位置（例えばレシート画像の左上角または文字列群を囲む矩形領域の左上角など）を原点とした座標である。なお，この例では実際には「売」の文字について「亮」を第１候補として認識している。
【００４７】
さらに，認識文字データは，文字列＃１４を構成する各文字＃１４１，＃１４２，＃１４３の３文字について，各々の座標情報を持つ。また，認識結果の文字と認識用の辞書の文字との相違度の小さい順に，認識結果のいくつかの文字が相違度とともに格納される。例えば，文字＃１４１の認識結果の第１番目の候補は「総」（相違度＝１５７１）であり，第２番目の候補は「脆」（相違度＝１５８１），第３番目の候補は「聡」（相違度＝１６４０）である。この相違度は，辞書の文字との距離であるが，この相違度が小さいほど認識の信頼度が高いことになる。
【００４８】
図５は，基本データ記憶部１０２に格納される基本テーブルの例を示す図である。この基本テーブルは，テナント管理部門が集計する売上管理項目の情報を格納している。具体的には，ショッピングセンターにおける売上管理データの管理を対象とした場合，ショッピングセンターを識別するショッピングセンターコード，ショッピングセンターの名称および所在地，ショッンピングセンター内の店舗数の情報を格納している。また，テナント管理に必要な各売上管理項目の項目名称が格納される。
【００４９】
この例では，売上管理項目として４個の項目があり，これらの各項目の名称が「総売上」，「消費税」，「現金売上」，「その他売上」である。なお，実際には「クレジット売上」などもっと多くあるが，ここでは説明を簡単にするため，４個の項目の例を示している。本システムは，各店舗ごとに異なる各種のレシートの項目の中から，これらの売上管理項目の情報を自動で抽出するための認識精度のよいレシート定義データを，単純な操作で作成することができるようにすることを目的としている。
【００５０】
図６は，店舗マスタ１０３の例を示す図である。店舗マスタ１０３は，レシートを発行する個別の店舗の情報を格納するテーブルであり，あらかじめ用意される。１番目の設定項目である店舗コードは，店舗を識別する番号である。２番目の店舗名称は，店舗の名称である。３番目の業種コードは，店舗の業種を表すコードである。４番目の業種名は，業種の名称である。続いてＰＯＳシステム情報１，２，３として，順に，導入されているＰＯＳシステムの識別コード（例：Ｆ００１），ＰＯＳシステムのメーカー（例：ＡＡＡＡＡ），ＰＯＳシステムの導入年月日（例：２０００年１月１日）などの情報が格納される。また，精算レシート情報１，２，３，４として，順に，精算レシートの長さ，読込形式，精算レシート中の印字項目数，その他の必要な情報が格納される。読込形式の欄には，読取機３がレシート２をそのままの形で読み込む場合には“０”，レシート２が長過ぎるため，レシート２を複数片にカットして読み込む場合には“１”の値が設定される。
【００５１】
本システムは，以上の画像データ記憶部１０１，基本データ記憶部１０２，店舗マスタ１０３に格納されているデータをもとに，レシート定義データを作成する。なお，店舗マスタ１０３は，店舗情報が既知であるか入力装置５から事前に入力される場合には必須ではない。
【００５２】
図７は，本システムにより作成するレシート定義データの例を示している。店舗コードは，どの店舗のレシート定義データであるかを示す店舗の識別コードである。続いて，レシートから読み取るレシート項目の情報が，各項目ごとに格納される。読取項目１識別コードは，１番目の読取項目１の識別コードであり，レシート定義データ内で読取項目を一意に識別するコードである。
【００５３】
項目属性には，読取項目の属性が設定される。通常の読取項目の場合，属性値＝１である。レシート内に同一名称の読取項目が存在したり，読取項目の文字列の確信度が低いために，代替項目を設定した場合には，属性値＝２である。
【００５４】
図７（Ａ）のレシート定義データは，項目属性の属性値が１であり，通常の項目の場合の例である。ここで，従来技術と異なるのは，例えば，実際にレシートに印字された文字列が「総売上」であっても，ＯＣＲ処理による認識の結果，「総売上」の文字列よりも「総亮上」の文字列のほうの認識の確信度が高い場合，読取文字として「総亮上」の文字列が設定されることである。
【００５５】
金額欄の相対読取位置１は，「総亮上」に対応する金額の文字列がどの部分に印字されているかを「総亮上」の文字列の位置からの相対位置で示す。ここで相対位置とは，例えば「総亮上」の文字列領域の左上角を原点としたときの金額欄の位置の座標である。金額欄の位置を読取文字１の位置からの相対位置で示すのは，同じレシートであっても，日によって実際にレシートに印字される行数が異なり，読取文字１の位置が可変であるからである。
【００５６】
２番目の読取項目の読取文字２「外税計」，３番目の読取項目の読取文字３「現計」についても，同様に識別コード，項目属性，読取文字，金額欄の相対読取位置のデータがレシート定義データとして格納される。
【００５７】
図７（Ｂ）のレシート定義データは，読取項目の文字列の確信度が低い場合の例であり，項目属性の属性値は２となっている。この場合，読取項目（例えば消費税）の認識の代わりとなる項目を代替項目（例えば小計）として定義し，「消費税」の金額欄の相対読取位置として代替項目である「小計」からの相対距離を設定する。「小計！消費税」の文字列中，「小計」が代替項目であり，「！」は区切り記号であり，「消費税」が本来の読取項目である。
【００５８】
次に，レシート定義データ作成装置１が実行する処理において特に本技術に関連する部分について，さらに詳しく説明する。
【００５９】
図８は，確信度算出部１２が実行する確信度算出処理のフローチャートである。確信度は，認識文字列ごとに他の同種のレシートにおいても同じ文字列として認識されるであろうと推定される認識結果の安定性を示す値である。すなわち，確信度が高いほど，レシートを何枚認識しても同じ結果がでることが期待できるということを表す量である。この場合，認識結果が本来の文字列であるか誤認識であるかは問わない。
【００６０】
まず，ステップＳ４０１では，確信度算出部１２は，確信度の算出対象となる項目の文字列の長さをＬとし，リジェクト数Ｒを０に初期化する。次に，項目を構成する文字列ごとに，以下のステップＳ４０３〜Ｓ４１０の処理を繰り返す（ステップＳ４０２）。この例では，項目を構成する各文字ごとに，その文字が認識結果として適切であるか否かを判定し，適切である場合にはアクセプト，不適切である場合にはリジェクトとして，これをもとに確信度を算出する。
【００６１】
ステップＳ４０３では，認識文字（以下，カテゴリという）が存在するかどうかを判定する。カテゴリが存在しない場合，ステップＳ４０９へ進む。カテゴリが存在する場合，カテゴリに含まれる文字種によって，第１の閾値１と第２の閾値２を次のように設定する（ステップＳ４０４）。
・カテゴリに漢字を含む場合：閾値１＝１８００，閾値２＝１５
・カテゴリにカナを含む場合：閾値１＝１８００，閾値２＝５０
・カテゴリに数字を含む場合：閾値１＝１５７０，閾値２＝２１０
・カテゴリに他の文字を含む場合：閾値１＝１７００，閾値２＝９０
１位の認識候補の距離値（辞書の文字との相違度）と閾値１とを比較し，距離値のほうが大きい場合，ステップＳ４０９へ進む。そうでない場合，２位の認識候補が存在するかどうかを判定する（ステップＳ４０５）。２位の認識候補が存在しない場合，ステップＳ４０８へ進む。存在する場合，１位の認識候補の距離値と２位の認識候補の距離値との差の絶対値が閾値２より小さいかどうかを判定する。小さい場合，ステップＳ４０９へ進み，そうでない場合，ステップＳ４０８へ進む。
【００６２】
ステップＳ４０８では，その文字に対してアクセプトを記録する。一方，ステップＳ４０９では，その文字に対してリジェクトを記録し，リジェクト数Ｒに１を加算する。
【００６３】
以上の処理を項目のすべての文字について処理したならば，次のステップＳ４１１へ進み，そうでないならば，ステップＳ４０２へ戻る（ステップＳ４１０）。
【００６４】
ステップＳ４１１では，文字列のリジェクト数Ｒが確定するので，リジェクト数に応じて確信度を決定する処理に移る。
【００６５】
まず，リジェクト数Ｒが０かどうかを判定し（ステップＳ４１２），リジェクト数Ｒが０であれば，確信度を「安全」に設定する（ステップＳ４１３）。リジェクト数Ｒが０でない場合，リジェクトされた文字が２文字以上連続しているかどうかを判定し（ステップＳ４１４），２文字以上連続している場合には，確信度を「危険」に設定する（ステップＳ４１５）。そうでない場合，リジェクト数Ｒと文字列の長さＬとの比（Ｒ／Ｌ）が，第３の閾値３（この例では，閾値３＝０．４）より小さいかどうかを判定する（ステップＳ４１６）。閾値３より小さい場合，確信度を「注意」に設定し（ステップ４１７），そうでない場合，確信度を「危険」に設定する。
【００６６】
図１０は，以上の確信度算出部１２の処理によって確信度データ記憶部１０４に格納される確信度データのデータ構造の例を示している。図１０の例において，判定状況のＡはアクセプト，Ｒはリジェクトを表している。識別番号が文字列＃１４の項目は，認識文字列が「総売上」で，リジェクト数Ｒが０なので，確信度が「安全」に認定されている。一方，文字列＃１５の項目は，認識文字列が「丙悦計」で，リジェクトされた文字が２文字以上連続しているので，確信度が「危険」に認定されている。
【００６７】
以上の確信度の考え方は，以下のとおりである。
（１）リジェクト文字があれば，認識結果は信頼できない。ここでは，認識候補が１位の距離値の閾値１と，１位−２位の距離差の閾値２を用いて，アクセプトするかリジェクトするかを決める。アクセプトした認識結果は，ある意味で安定していると言え，リジェクトした認識結果は，不安定と言える。
（２）文字列長は，長いほど信頼できる。２文字の単語，５文字の単語について，ともにリジェクトした文字が１文字だけであるとすると，５文字の単語の認識結果のほうが信頼できる。
（３）数字より，漢字のほうが信頼できる。特徴量の少ない文字（数字など）は，距離値が相対的に小さくなるため，特徴量の多い文字（漢字など）と比べて，たとえ同じ距離値であるとしても，特徴量の多い文字（漢字など）のほうが信頼できる。
（４）連続してリジェクトの場合には，信頼できない。この場合，文字の切り出しが失敗している可能性が高いので信頼できない。
【００６８】
なお，この例では，確信度を「安全」，「注意」，「危険」の３種類に分類しているが，もちろん２種類だけでも，４種類以上に分類しても考え方は同じであり，同様に実施することができる。
【００６９】
図１１は，「総売上」の各文字のリジェクト／アクセプトの判定例を示している。この例では，「総」の文字については，図１１（Ａ）に示すように，１位の認識文字の距離値（１５７１）と２位の認識文字の距離値（１５８１）との差（１０）が，閾値２（１５）より小さいので，図８のステップＳ４０７の判定により，リジェクトとなっている。
【００７０】
２番目の「売」の文字については，図１１（Ｂ）に示すように，１位の認識文字の距離値（８４１）と２位の認識文字の距離値（１１２９）との差（２８８）が，閾値２（１５）より大きいので，ステップＳ４０７の判定により，アクセプトとなっている。この場合，１位の認識文字は「亮」であり，実際には誤認識であるが，認識結果に安定性があると考えられるのでアクセプトと判定されている。
【００７１】
３番目の「上」の文字については，図１１（Ｃ）に示すように，１位の認識文字の距離値（１６４１）と２位の認識文字の距離値（１７８５）との差（１４４）が，閾値２（１５）より大きいので，ステップＳ４０７の判定により，アクセプトとなっている。
【００７２】
この認識結果が１位の文字列「総亮上」は，文字列長Ｌが３で，リジェクト数Ｒが１であり，リジェクト数Ｒと文字列長Ｌとの比（Ｒ／Ｌ＝１／３）が，閾値３＝０．４より小さいので，図９のステップＳ４１６の判定により，確信度が「注意」と設定されることになる。
【００７３】
本実施形態では，認識文字列の確信度を，認識文字列を構成する各文字のアクセプト／リジェクトを判定することにより決定しているが，本発明の実施は必ずしもこれに限られるわけではない。例えば，各文字の認識距離値を文字種により重み付けしたものの和や，それを文字数で除算して正規化したものなどを確信度として定義してもよい。要は，認識文字列の認識の安定性を示す値であることが重要であり，認識文字列の認識の安定性を示す値であれば，それを確信度として定義して用いることができる。
【００７４】
図１２に，定義入力画面の構成例を示す。定義入力画面４０には，レシート定義データを作成する施設とテナント（店舗）情報の表示領域の下に，売上管理項目一覧表示領域４１，ＯＣＲ読取定義一覧表示領域４２，レシート画像表示領域４３，計算式入力用領域４４が設けられる。
【００７５】
売上管理項目一覧表示領域４１には，売上管理項目一覧が表示される。売上管理項目一覧は，図５で説明した基本テーブルに格納されている売上管理項目の項目名称と，売上管理項目と読取項目とを対応づける計算式（演算式）が確定したときに，その計算式が表示される欄を持つ。
【００７６】
また，ＯＣＲ読取定義一覧表示領域４２には，操作員の入力操作によって入力されるＯＣＲの読取項目や，レシート画像内においてその項目の領域情報が設定されたかどうかを示す情報（項目領域），その項目に対応する金額欄の領域情報が設定されたかどうかを示す情報（金額領域）が表示される。
【００７７】
レシート画像表示領域４３には，読取機３で読み取ったレシートの画像（イメージデータ）が表示される。この領域の表示においては，スクロール，拡大／縮小などの機能が設けられている。
【００７８】
また，計算式入力用領域４４には，入力された売上管理項目と読取項目とを対応づける計算式が操作員の入力によって表示される。
【００７９】
本実施形態では，定義入力画面表示部１３が，レシート画像表示領域４３にレシートのイメージを表示する際に，認識した文字列の確信度を示す情報を重畳させた表示を行う。図１２の例では，読取項目の対象となる文字列を各々矩形の線で囲み，確信度に応じて表示色を変えている。例えば，「値引」，「総売上」，「現計」，「お買い物券」の文字列の確信度が「安全」であれば，これらの矩形が青色で表示され，「値引合計」，「商品券」の文字列の確信度が「注意」であれば，これらの矩形が黄色で表示され，「外税計」の文字列の確信度が「危険」であれば，この矩形が赤色で表示される。
【００８０】
ＯＣＲ読取項目の定義は，レシート画像表示領域４３におけるレシートイメージ内の矩形で囲まれた文字列を，ＯＣＲ読取定義一覧表示領域４２内のＯＣＲ読取定義一覧における項目領域（または読取項目）の欄にドラッグすることによって行われる。ＯＣＲ読取定義一覧における読取項目のＩＤは，読取項目を一意に識別する識別子であり，自動で付与される。レシートイメージにおける項目領域が定まれば，項目領域の欄に○印が付けられる。その後に，読取項目に対応するレシートイメージにおける金額領域がクリックやドラッグ操作等により指定されると，ＯＣＲ読取定義一覧における金額領域の欄にも○印が付けられて，１つの読取項目が定義されることになる。この操作を必要なすべての読取項目ごとに繰り返す。
【００８１】
なお，多くのレシートでは，読取項目の文字列の領域と，それに対応する金額の領域とが同じ行にあり，異なる行にあることは少ない。そこで，金額領域の入力操作を簡易化するために，入力データ処理部１４の入力において，選択された読取項目と同じ行にある金額を示す文字列を金額の領域として仮に設定し，簡単な確認操作で，その金額の領域を本設定とするような実施も可能である。同じ行にない場合にだけ，ＯＣＲ読取定義一覧における金額領域への金額を示す文字列のドラッグ・アンド・ドロップ操作により，操作された金額の領域を読取項目に対応する金額領域として設定する。
【００８２】
次に，計算式入力用領域４４における計算式の入力により，売上管理項目一覧表示領域４１内に表示されている売上管理項目一覧の各管理項目と，１または複数の読取項目との対応関係が定義される。例えば，売上管理項目の管理項目の名称は「消費税」であるが，レシート発行元の店舗によって「外税計」というように異なる名称を用いていることがある。図１２の例の場合，「外税計」のＩＤは「ｂ」であるので，売上管理項目の管理項目「消費税」を選択した後に，計算式入力用領域４４に「ｂ」の計算式を入力する。これにより，管理項目の「消費税」とレシート内の「外税計」とは同じものであることが認識されることになる。なお，計算式は，例えば「ｃ＋ｄ」，「ａ×０．０５」などというように複数のＩＤや定数と，所定の演算記号とを用いて指定することもできる。
【００８３】
図１３は，定義入力画面４０を用いた読取項目の定義の入力例を示している。例えば，レシート画像表示領域４３におけるレシートイメージ内の「総売上」の文字列に，マウスポインタ４５を合わせると，その文字列についてのＯＣＲ認識結果のポップアップ表示４６が行われる。この例では，認識結果の「総亮上」がポップアップ表示されている。これを，ＯＣＲ読取定義一覧表示領域４２における項目領域の欄にドラッグ・アンド・ドロップすると，その認識結果の文字列「総亮上」が読取項目の欄に表示されることになる。
【００８４】
従来の方法では，「総亮上」は誤認識であるので，操作員はこれを本来の正しい「総売上」の文字列に修正することが一般的であるが，本実施形態では，「総亮上」が誤認識であっても，認識結果としての安定性があるので，このままレシート定義データとして用いられることになる。
【００８５】
図１４は，入力データ処理部１４による定義入力処理のフローチャートである。定義入力画面表示部１３が前述したような定義入力画面４０の初期画面を表示した後，入力データ処理部１４は，操作員の入力を待ち合わせる（ステップＳ７０１）。操作員によって，レシートイメージにおける文字列領域がドラッグされると（ステップＳ７０２），ドラッグされた文字列情報を，図４で説明した認識文字列データ構造から読込んで，メモリ内に保持する（ステップＳ７０３）。
【００８６】
また，ドラッグ文字列のドロップであれば，ドロップ先がＯＣＲ読取定義一覧内の項目領域の欄かどうかを判定する（ステップＳ７０５）。ドロップ先が項目領域の場合，ステップＳ７０６へ進み，後述する読取項目設定処理を行う（ステップＳ７０６）。そうでない場合，ドロップ先がＯＣＲ読取定義一覧内の金額領域の欄かどうかを判定する（ステップＳ７０７）。ドロップ先が金額領域でない場合，何もしないでステップＳ７０１へ戻る。
【００８７】
ドロップ先が金額領域の場合，対応する項目領域がすでに設定されているかどうかを判定する（ステップＳ７０８）。未設定の場合，何もしないでステップＳ７０１へ戻る。設定されていれば，設定された読取項目について代替項目が設定されているかどうかを判定する（ステップＳ７０９）。代替項目が設定されていなければ，レシートイメージにおける項目領域の文字列からの金額領域の相対座標を算出し，ＯＣＲ読取定義一覧内の金額領域の欄に○を表示する（ステップＳ７１０）。一方，代替項目が設定されている場合，レシートイメージにおける項目領域の代替項目の文字列からの金額領域の相対座標を算出し，ＯＣＲ読取定義一覧内の金額領域の欄に○を表示する（ステップＳ７１１）。その後に，ステップＳ７０１へ戻る。
【００８８】
ドラッグやドロップの操作以外の操作であった場合（ステップＳ７１２），保存処理等の操作に対応した処理を行う。例えば，すべての項目の入力が終わり，操作員が「定義確定」のキーを押した場合には，定義データ作成部１６によるレシート定義データの作成に移る。
【００８９】
図１５は，図１４に示したステップＳ７０６における読取項目設定処理の第１の例のフローチャートである。まず，保持する文字列情報の確信度を確信度データ記憶部１０４から取得する（ステップＳ７２１）。取得した確信度が安全かどうかを判定し（ステップＳ７２２），安全であれば，保持する文字列情報の認識文字列をＯＣＲ読取定義一覧内の読取項目欄に表示し，項目領域に○を表示する（ステップＳ７２３）。確信度が安全でなければ，操作員に対し，「注意」または「危険」の確信度に応じた警告メッセージを出力し（ステップＳ７２４），操作員の応答が「ＯＫ」であれば，ステップＳ７２３へ進む。操作員の応答が「ＯＫ」でなければ，何もしないで読取項目設定処理を終了する（ステップＳ７２５）。
【００９０】
図１６は，図１４に示したステップＳ７０６における読取項目設定処理の第２の例のフローチャートである。第２の例は，確信度に応じて，読取項目の代替項目を自動で選択する場合の例である。まず，保持する文字列情報の確信度を確信度データ記憶部１０４から取得する（ステップＳ７３１）。取得した確信度が安全かどうかを判定し（ステップＳ７３２），安全であれば，保持する文字列情報の認識文字列をＯＣＲ読取定義一覧内の読取項目欄に表示し，項目領域に○を表示する（ステップＳ７３３）。確信度が安全でなければ，レシートイメージ内において，保持する文字列の最も近くにある確信度が安全の文字列を取得する（ステップＳ７３４）。次に，取得した文字列の認識文字列を代替項目として読取項目欄に表示し，項目領域に○を表示する（ステップＳ７３５）。
【００９１】
図１７は，代替項目の設定例を示す図である。前述した代替項目の設定について，さらに詳しく説明する。
【００９２】
今，図１７（Ａ）に示すように，ＯＣＲ読取定義一覧表示領域４２において，レシート画像表示領域４３から，消費税の文字列のドラッグ・アンド・ドロップ操作が行われたとする。この文字列「消費税」の認識結果の確信度が調べられる。その確信度が「安全」の場合，そのまま読取項目の設定処理が続けられ，次に「消費税」に対応する金額「￥７，２３４」の項目の金額領域へのドラッグ・アンド・ドロップ操作（または選択操作でもよい）によって，「消費税」の読取項目が定義される。
【００９３】
文字列「消費税」の確信度が「安全」でない場合，図１７（Ｂ）に示すように，「確信度が低い文字列が設定されました。代替項目での設定を推奨します。」というような警告メッセージを出力し，操作員の応答を待つ。操作員が「ＯＫ」のボタンを押した場合，そのまま「消費税」を読取項目として設定する。一方，操作員が「代替項目設定」のボタンを押した場合，代替項目の設定処理に移行する。
【００９４】
確信度が低い「消費税」の文字列に対する代替項目を設定する場合，操作員は，図１７（Ｃ）のレシート画像表示領域４３における「小計」のような確信度が「安全」で読取が容易なレシート項目を代替項目として指定する。代替項目は，本来の読取項目（消費税）の上側であっても下側であってもどちらでもよいが，行が近いほうが望ましい。この例のように，「小計」が代替項目として指定されると，消費税に対応する金額「￥７，２３４」の相対読取位置の情報は，レシート定義データ内において，「消費税」からの相対位置ではなく，読取が容易な「小計」からの相対位置が定義される。
【００９５】
また，代替項目によって定義されたことを示すために，ＯＣＲ読取定義一覧表示領域４２内では，図１７（Ｄ）に示すように，代替項目「小計」と本来の読取項目「消費税」とが所定の区切記号「！」で連結されて表示される。レシート定義データ内においても，図７（Ｂ）で説明したように，読取項目が「小計！消費税」と定義され，代替項目によって定義されたことが示される。
【００９６】
なお，選択された読取項目の文字列の確信度が「注意」であった場合に，図１５で説明した第１の例の読取項目設定処理を行い，選択された読取項目の文字列の確信度が「危険」であった場合に，図１６で説明した第２の例の読取項目設定処理を行うというように，確信度に応じて設定処理を変えるような実施も可能である。
【００９７】
すなわち，入力データ処理部１４は，確信度に応じて，レシートイメージにおいて選択された読取項目の文字列の確信度よりも大きい確信度を持つ他の文字列が所定の範囲内に存在する場合に，前記他の文字列を，選択された読取項目の文字列の代替文列として設定することを推奨するメッセージを表示したり，または，前記他の文字列を前記読取項目の文字列の代替文字列として設定するようなこともできる。
【００９８】
以上のような定義入力画面４０からの入力によって，定義データ作成部１６は，図７で説明したようなレシート定義データを作成し，定義データ記憶部１０５に保存することができる。
【００９９】
以上のレシート定義データを作成する処理は，コンピュータとソフトウェアプログラムとによって実現することができ，そのプログラムをコンピュータ読み取り可能な記録媒体に記録することも，ネットワークを通して提供することも可能である。
【符号の説明】
【０１００】
１      レシート定義データ作成装置
２      レシート
３      読取機
４      表示装置
５      入力装置
１０    画像データ読込部
１２    確信度算出部
１３    定義入力画面表示部
１４    入力データ処理部
１５    座標取得部
１６    定義データ作成部
１０１  画像データ記憶部
１０２  基本データ記憶部
１０３  店舗マスタ
１０４  確信度データ記憶部
１０５  定義データ記憶部
【図１】
2014137605.tif 000003
【図２】
2014137605.tif 000004
【図３】
2014137605.tif 000005
【図４】
2014137605.tif 000006
【図５】
2014137605.tif 000007
【図６】
2014137605.tif 000008
【図７】
2014137605.tif 000009
【図８】
2014137605.tif 000010
【図９】
2014137605.tif 000011
【図１０】
2014137605.tif 000012
【図１１】
2014137605.tif 000013
【図１２】
2014137605.tif 000014
【図１３】
2014137605.tif 000015
【図１４】
2014137605.tif 000016
【図１５】
2014137605.tif 000017
【図１６】
2014137605.tif 000018
【図１７】
2014137605.tif 000019