(57)【要約】【課題】大多数のレシートについてのレシートデータの作成を可能として、実用性の向上を図る。【解決手段】レシートを光学的に読み込んで得られたスキャン画像データを文字認識してテキストデータを得る。次いで、そのテキストデータから、「小計」の文字列と日付の文字列を選択して（Ｓ３１０，Ｓ３３０）、各文字列が含まれる行の位置を保存する（Ｓ３２０，Ｓ３４０）。次いで、テキストデータ上において、小計の行位置から日付の行位置まで順に１行ずつ上方向にラインデータを選択して、該ラインデータから品目関連データを抽出する（Ｓ３５０〜Ｓ３９０）。これにより、大多数のレシートについての品目関連データを作成することができる。【選択図】        図５
2004164218.tif 000002
【特許請求の範囲】
【請求項１】
レシートの画像を読み取る画像読取手段と、
前記レシートの画像から文字を認識してテキストデータを生成する文字認識手段と、
前記テキストデータから家計簿処理に必要となるレシートデータを抽出するレシートデータ抽出手段と
を備えるレシート処理装置において、
前記レシートデータ抽出手段は、
前記テキストデータから、所定の文字列を選択する文字列選択手段と、
該選択された所定の文字列が含まれる行が、前記テキストデータ上で何行目にあたるかを示す行位置を検出する行位置検出手段と、
該検出された行位置に基づいて定まる前記テキストデータ上の所定の行範囲から行を単位とするラインデータを順に選択して、該ラインデータから品目に関わるデータを抽出する品目関連データ抽出手段と
を備えることを特徴とするレシート処理装置。
【請求項２】
前記所定の文字列は、各品目の金額の合計を意味する文字列である請求項１に記載のレシート処理装置。
【請求項３】
前記品目関連データ抽出手段は、前記行位置検出手段により検出された行位置から順に上方に向かって前記ラインデータを選択する手段を備える請求項２に記載のレシート処理装置。
【請求項４】
請求項１に記載のレシート処理装置であって、
前記文字列選択手段は、異なる２つの文字列をそれぞれ選択する構成であり、
前記行位置検出手段は、前記２つの文字列の各行位置を検出する構成であり、
前記品目関連データ抽出手段は、前記２つの文字列の各行位置を基に前記所定の行範囲を定める手段を備えるレシート処理装置。
【請求項５】
前記２つの文字列は、各品目の金額の合計を意味する文字列と、日付または時刻を示す文字列とである請求項４に記載のレシート処理装置。
【請求項６】
レシートから家計簿処理に必要となるレシートデータを作成するレシート処理方法であって、
（ａ）レシートの画像を読み取るステップと、
（ｂ）前記レシートの画像から文字を認識してテキストデータを生成するステップと、
（ｃ）前記テキストデータから前記レシートデータを抽出するステップと
を備え、
前記ステップ（ｃ）は、
（ｃ−１）前記テキストデータから、所定の文字列を選択するステップと、
（ｃ−２）該選択された所定の文字列が含まれる行が、前記テキストデータ上で何行目にあたるかを示す行位置を検出するステップと、
（ｃ−３）該検出された行位置に基づいて定まる前記テキストデータ上の所定の行範囲から行を単位とするラインデータを順に選択して、該ラインデータから品目に関わるデータを抽出するステップと
を備えることを特徴とするレシート処理方法。
【請求項７】
レシートから家計簿処理に必要となるレシートデータを作成する処理をコンピュータに実行させるためのコンピュータプログラムであって、
（ａ）レシートの画像を読み取る機能と、
（ｂ）前記レシートの画像から文字を認識してテキストデータを生成する機能と、
（ｃ）前記テキストデータから前記レシートデータを抽出する機能と
を実現するとともに、
前記機能（ｃ）は、
（ｃ−１）前記テキストデータから、所定の文字列を選択する機能と、
（ｃ−２）該選択された所定の文字列が含まれる行が、前記テキストデータ上で何行目にあたるかを示す行位置を検出する機能と、
（ｃ−３）該検出された行位置に基づいて定まる前記テキストデータ上の所定の行範囲から行を単位とするラインデータを順に選択して、該ラインデータから品目に関わるデータを抽出する機能と
を備えるコンピュータプログラム。
【請求項８】
請求項７に記載のコンピュータプログラムを記録したコンピュータ読み取り可能な記録媒体。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、レシートに印刷された画像を光学的に読み取り、該画像から、品目、品数、金額等の家計簿処理に必要となるレシートデータを作成する技術に関する。
【０００２】
【従来の技術】
近年、一般家庭においてもパーソナルコンピュータを利用して種々の情報管理を行うことが可能となってきた。パーソナルコンピュータを利用して、レシートから家計簿を作成する技術として、レシートに印刷されている文字情報を光学的に読み取って、その読み取った情報を認識して、家計簿を作成するものがある（例えば、特許文献１参照）。
【０００３】
また、レシートのフォーマットを予め登録しておき、そのフォーマットを参照して文字認識を行なうといった特徴を持つ家計簿処理装置も提案されている（例えば、特許文献２参照）。この構成によって、レシートから所望のレシートデータを確実に読み取ることが可能となった。
【０００４】
【特許文献１】
登録実用新案第３０１９１９２号
【特許文献２】
特開平１１−２６５４０９号公報
【０００５】
【発明が解決しようとする課題】
しかしながら、特許文献２を参照した従来の技術では、例えば、全国主要スーパーマーケット等のレシートというように、予め登録したフォーマットのレシートからしかレシートデータの作成を行なうことができないことから、汎用性が低く、家計簿に利用するには実用的ではなかった。
【０００６】
この発明は、上記問題に鑑みてなされたもので、大多数のレシートについてのレシートデータの作成を可能とすることで、実用性の向上を図ることを目的としている。
【０００７】
【課題を解決するための手段およびその作用・効果】
前述した課題の少なくとも一部を解決するための手段として、以下に示す構成をとった。
【０００８】
この発明のレシート処理装置は、
レシートの画像を読み取る画像読取手段と、
前記レシートの画像から文字を認識してテキストデータを生成する文字認識手段と、
前記テキストデータから家計簿処理に必要となるレシートデータを抽出するレシートデータ抽出手段と
を備えるレシート処理装置において、
前記レシートデータ抽出手段は、
前記テキストデータから、所定の文字列を選択する文字列選択手段と、
該選択された所定の文字列が含まれる行が、前記テキストデータ上で何行目にあたるかを示す行位置を検出する行位置検出手段と、
該検出された行位置に基づいて定まる前記テキストデータ上の所定の行範囲から行を単位とするラインデータを順に選択して、該ラインデータから品目に関わるデータを抽出する品目関連データ抽出手段と
を備えることを特徴としている。
【０００９】
レシートは、店舗毎に、サイズやフォーマットが異なることがよく知られている。しかしながら、近年のレシートは、大多数がロール紙をカットしたものであることから、フォーマットに一つの規則性があることがわかる。図１は、レシートの一例を示す説明図である。図示するように、レシートは、ロール紙をカットしたものであることから、縦長の形状で、店名データの欄Ｆ１、日付データの欄Ｆ２、品目関連データ（品目、品数、金額等）の欄Ｆ３、合計関連データの欄Ｆ４等が縦方向に順に配列されている。上記品目関連データは、１品目毎に改行がなさえて印刷されている。これらの点に着目されて、特許請求の範囲に記載された本願発明は発明されたものである。
【００１０】
上記構成のレシート処理装置によれば、レシートから得られたテキストデータから、文字列選択手段により、所定の文字列が選択されて、行位置検出手段により、その選択された所定の文字列が含まれる行位置が検出される。そして、品目関連データ抽出手段により、その検出された行位置に基づいて定まる前記テキストデータ上の所定の行範囲から行を単位とするラインデータが順に選択され、該ラインデータから品目関連データが抽出される。例えば、図１の例では、所定の文字列を「小計」とすることで、「小計」の行位置より上部の所定の行範囲が品目関連データの欄Ｆ３であることがわかる。しかも、品目関連データの欄Ｆ３に印刷される各品目関連データは、１行に複数品目が印刷されることがないことから、その行範囲から選択されたラインデータから品目関連データを容易に抽出することができる。このフォーマットの規則性は、レシートがロール紙をカットしたものに移行してきていることから、近年では大部分のレシートに当てはまる。したがって、上記レシート処理装置によれば、大多数のレシートから品目関連データを確実に作成することができる。この結果、実用性に優れている。
【００１１】
前記所定の文字列は、各品目の金額の合計を意味する文字列とすることができる。これにより、品目関連データの欄を容易にみつけることができる。
【００１２】
上記所定の文字列を金額の合計を意味する文字列としたレシート処理装置において、前記品目関連データ抽出手段は、前記行位置検出手段により検出された行位置から順に上方に向かって前記ラインデータを選択する手段を備える構成とすることができる。これにより、品目関連データを容易に抽出することができる。
【００１３】
本発明のレシート処理装置において、前記文字列選択手段は、異なる２つの文字列をそれぞれ選択する構成であり、前記行位置検出手段は、前記２つの文字列の各行位置を検出する構成であり、前記品目関連データ抽出手段は、前記２つの文字列の各行位置を基に前記所定の行範囲を定める手段を備える構成とすることができる。
【００１４】
この構成によれば、２位置から、品目関連データが記載された行範囲を見つけることができることから、作成する品目関連データの精度をより高めることができる。
【００１５】
前記２つの文字列は、各品目の金額の合計を意味する文字列と、日付または時刻を示す文字列とすることができる。これにより、品目関連データの欄を容易にみつけることができる。
【００１６】
この発明のレシート処理方法は、
レシートから家計簿処理に必要となるレシートデータを作成するレシート処理方法であって、
（ａ）レシートの画像を読み取るステップと、
（ｂ）前記レシートの画像から文字を認識してテキストデータを生成するステップと、
（ｃ）前記テキストデータから前記レシートデータを抽出するステップと
を備え、
前記ステップ（ｃ）は、
（ｃ−１）前記テキストデータから、所定の文字列を選択するステップと、
（ｃ−２）該選択された所定の文字列が含まれる行が、前記テキストデータ上で何行目にあたるかを示す行位置を検出するステップと、
（ｃ−３）該検出された行位置に基づいて定まる前記テキストデータ上の所定の行範囲から行を単位とするラインデータを順に選択して、該ラインデータから品目に関わるデータを抽出するステップと
を備えることを特徴としている。
【００１７】
この発明のコンピュータプログラムは、
レシートから家計簿処理に必要となるレシートデータを作成する処理をコンピュータに実行させるためのコンピュータプログラムであって、
（ａ）レシートの画像を読み取る機能と、
（ｂ）前記レシートの画像から文字を認識してテキストデータを生成する機能と、
（ｃ）前記テキストデータから前記レシートデータを抽出する機能と
を実現するとともに、
前記機能（ｃ）は、
（ｃ−１）前記テキストデータから、所定の文字列を選択する機能と、
（ｃ−２）該選択された所定の文字列が含まれる行が、前記テキストデータ上で何行目にあたるかを示す行位置を検出する機能と、
（ｃ−３）該検出された行位置に基づいて定まる前記テキストデータ上の所定の行範囲から行を単位とするラインデータを順に選択して、該ラインデータから品目に関わるデータを抽出する機能と
を備えることを特徴としている。
【００１８】
上記構成のレシート処理方法およびコンピュータプログラムは、上記レシート処理装置と同様な作用・効果を有しており、大多数のレシートについての品目関連データを確実に作成することができ、実用性に優れているという効果を奏する。
【００１９】
この発明の記録媒体は、この発明のコンピュータプログラムを記録したコンピュータ読み取り可能な記録媒体を特徴としている。この記録媒体は、この発明の各コンピュータプログラムと同様な作用・効果を有している。
【００２０】
【発明の他の態様】
この発明は、以下のような他の態様も含んでいる。その第１の態様は、この発明のコンピュータプログラムを通信経路を介して供給するプログラム供給装置としての態様である。この第１の態様では、コンピュータプログラムをコンピュータネットワーク上のサーバなどに置き、通信経路を介して、必要なプログラムをコンピュータにダウンロードし、これを実行することで、上記の方法や装置を実現することができる。
【００２１】
第２の態様は、
レシートの画像を読み取る画像読取手段と、
前記レシートの画像からロゴを表わすパーツ画像を切り出すロゴ切出手段と、
前記切り出したパーツ画像を、画像を表示する画像表示手段に表示させる表示制御手段と、
使用者の操作に従って、前記パーツ画像に対応する店名を入力する入力手段と、
前記パーツ画像を前記入力手段で入力された店名とともに管理するデータ管理手段と
を備えることを特徴とするレシート処理装置としての態様である。
【００２２】
【発明の実施の形態】
本発明の実施の形態を実施例に基づき説明する。この実施例を、次の順序に従って説明する。
Ａ．装置の構成：
Ｂ．コンピュータ処理：
Ｃ．作用・効果
Ｄ．他の実施形態：
【００２３】
Ａ．装置の構成：
図２は、この発明の第１実施例を適用するコンピュータシステムのハードウェアの概略構成を示すブロック図である。このコンピュータシステムは、いわゆるパーソナルコンピュータ（以下、単にコンピュータと呼ぶ）を中心に備え、その周辺にＣＲＴディスプレイ１２およびレシートスキャナ１４を備える。コンピュータは、コンピュータ本体１６とキーボード１８とマウス２０を備える。なお、このコンピュータ本体１６には、ＣＤ−ＲＯＭ２２の内容を読み取るＣＤドライブ２４が搭載されている。レシートスキャナ１４は、レシートを光学的にスキャンして、レシートＲの画像を読み取る画像読取用の装置である。このレシートスキャナ１４は、読取機構をレシートＲのサイズに合わせたレシート専用のものである。なお、レシート専用で必ずしもある必要はなく、汎用的なイメージスキャナを用いた構成とすることもできる。
【００２４】
コンピュータ本体１６は、中央演算処理装置としてのＣＰＵ３０を中心にバスにより相互に接続されたＲＯＭ３１、ＲＡＭ３２、表示画像メモリ３３、マウスインタフェース３４、キーボードインタフェース３５、ＣＤＣ３６、ＨＤＣ３７、ＣＲＴＣ３８、入出力機用インタフェース４０およびＩ／Ｏポート４１を備える。ＲＯＭ３１は、内蔵されている各種プログラム等を記憶する読み出し専用のメモリである。ＲＡＭ３２は、各種データ等を記憶する読み出し・書込み可能なメモリである。表示画像メモリ３３は、ＣＲＴディスプレイ１２に表示する画像の画像データを記憶するメモリである。
【００２５】
マウスインタフェース３４は、マウス２０とのデータ等のやり取りを司るインタフェースである。キーボードインタフェース３５は、キーボード１８からのキー入力を司るインタフェースである。ＣＤＣ３６は、ＣＤドライブ（ＣＤＤ）２４を制御するＣＤコントローラである。ＨＤＣ３７は、ハードディスクドライブ（ＨＤＤ）４２を制御するハードディスクコントローラである。ＨＤＤ４２には、後述するコンピュータプログラムや、後述する文字認識に用いられる文字辞書等が予め記憶されている。
【００２６】
ＣＲＴＣ３８は、表示画像メモリ３３に記憶される表示画像データに基づいてＣＲＴディスプレイ１２における画像の表示を制御するＣＲＴコントローラである。入出力機用インタフェース４０は、外部に接続された入出力機器、この実施例ではレシートスキャナ１４へのデータの入出力を制御するインタフェースである。Ｉ／Ｏポート４１は、シリアル出力のポートを備えており、モデム４４に接続されており、このモデム４４を介して、公衆電話回線４６に接続されている。コンピュータ本体１６は、モデム４４を介して、外部のネットワークに接続されており、特定のサーバ４７に接続可能となっている。
【００２７】
このコンピュータシステムでは、レシートスキャナ１４で取り込んだ画像（以下、スキャン画像と呼ぶ）から家計簿処理に必要となるレシートデータを作成するレシート処理用ソフトウェアが、ＣＤ−ＲＯＭ２２に予め格納されており、所定のインストールプログラムを起動することで、ＣＤドライブ２４からコンピュータ本体１６にインストールされる。このインストールされたコンピュータプログラムは、ＨＤＤ４２に記憶されており、所定の起動命令を受けたときに、ＲＡＭ３２の所定の領域にロードされる。また、ＣＤ−ＲＯＭ２２には、家計簿ソフトウェアが格納されており、同様に、ＣＤドライブ２４からＨＤＤ４２にインストールされる。この家計簿ソフトウェアは、上記レシート処理用ソフトウェアの起動とともに起動される。
【００２８】
上記レシート処理用ソフトウェア（コンピュータプログラム）をＣＰＵ３０が実行することによって本発明の各種構成要件は実現される。このコンピュータプログラムは、前述したように、ＣＤ−ＲＯＭ２２に格納されたものであるが、これに替えて、フロッピィディスク、光磁気ディスク、ＩＣカード等の他の携帯型記録媒体（可搬型記録媒体）に格納された構成としてもよい。また、前述したコンピュータプログラムは、外部のネットワークに接続される特定のサーバ４７から、ネットワークを介して提供されるプログラムデータをダウンロードして、ＲＡＭ３２またはＨＤＤ４２に転送することにより得るようにすることもできる。なお、上記ネットワークとしては、インターネットであってもよく、特定のホームページからダウンロードして得たコンピュータプログラムであってもよい。あるいは、電子メールの添付ファイルの形態で供給されたコンピュータプログラムであってもよい。
【００２９】
以上説明したハードウェア構成を有するコンピュータシステムによるレシート処理用ソフトウェアに従う制御処理の様子について次に説明する。図３は、コンピュータ本体１６によって実行されるレシート処理用ソフトウェア５０に従う処理の様子を示すブロック図である。
【００３０】
図３に示すように、コンピュータ本体１６の内部で動作しているレシート処理用ソフトウェア５０によれば、まず、画像取込モジュール５１によりスキャナドライバ６０を動作させてレシートスキャナ１４からレシートＲの画像（スキャン画像）を取り込む処理を行なう。次いで、画像取込モジュール５１によって取り込まれたスキャン画像についての文字認識を、文字認識モジュール５２によって行なう。この文字認識モジュール５２によって、レシートＲに記載された文字列のデータ（テキストデータ）が得られる。
【００３１】
続いて、文字認識モジュール５２により得られたテキストデータから家計簿処理に必要となるレシートデータを、レシートデータ抽出モジュール５３によって抽出する。レシートデータ抽出モジュール５３の働きは、詳しくは、次のようなものである。まず、文字認識モジュール５２により得られたテキストデータから、「小計」の文字列と、日付を示す文字列とを、文字列選択部５３ａによりそれぞれ選択し、次いで、その「小計」の文字列が含まれる行と、日付を示す文字列の含まれる行が、前記テキストデータ上でそれぞれ何行目にあたるかを示す２つの行位置を、行位置検出部５３ｂにより検出する。続いて、その検出された２つの行位置に基づいて定まるテキストデータ上の所定の行範囲から行を単位とするラインデータを順に選択して、該ラインデータから品目に関わるデータを、品目関連データ抽出部５３ｃにより抽出する。この抽出した品目に関わるデータ（品目関連データ）は、レシートデータの一部として、家計簿ソフトウェア７０に送られる。ここで、品目関連データとは、品目、品数、金額等のデータである。
【００３２】
Ｂ．コンピュータ処理：
コンピュータ本体１６のＣＰＵ３０でレシート処理用ソフトウェア５０を実行することで、上述した各モジュール５１〜５３を実現している。レシート処理用ソフトウェア５０に従う制御処理について、以下詳細に説明する。図４は、この制御処理のルーチンを示すフローチャートである。このルーチンは、レシートスキャナ１４にレシートＲがセットされたときに実行される。
【００３３】
図示するように、処理が開始されると、ＣＰＵ３０は、まず、レシートＲをスキャンするスキャン処理を実行する（ステップＳ１００）。詳細には、ＣＰＵ３０は、スキャナドライバ６０を動作させて、レシートＲがセットされたレシートスキャナ１４からレシートＲの画像を示すスキャン画像データを取り込む。
【００３４】
次いで、ＣＰＵ３０は、ステップＳ１００のスキャン処理により取り込まれたスキャン画像データから文字を認識してテキストデータを生成する文字認識処理を実行する（ステップＳ２００）。この文字列認識処理は、ＨＤＤ４２に予め用意した文字辞書（このレシート処理用ソフトウェア５０で用意されている）の各文字と、スキャン画像データで表わされる各文字についての画像とを比較し、一致度の最も高い文字を認識結果とする周知の技術であり、ここでは詳しい説明は省略する。
【００３５】
続いて、ＣＰＵ３０は、ステップＳ２００により得られたテキストデータから、家計簿処理に必要となるレシートデータを抽出するレシートデータ抽出処理を実行する（ステップＳ３００）。この抽出されたレシートデータは、ＲＡＭ３２に一旦記憶される。その後、その記憶されたレシートデータを、家計簿ソフトウェア７０に転送するレシートデータ転送処理を行なう（ステップＳ４００）。このレシートデータ転送処理は、ステップＳ３００により記憶されたレシートデータを、家計簿ソフトウェア７０のデータフォーマットに併せて、家計簿ソフトウェア７０側に自動的に送るものである。ステップＳ４００の実行後、このレシート処理のルーチンを終了する。
【００３６】
図５ないし図６は、ステップＳ３００のレシートデータ抽出処理の詳細を示すフローチャートである。図５に示すように、このレシートデータ抽出処理のルーチンに処理が移行すると、ＣＰＵ３０は、まず、ステップＳ２００により得られたテキストデータから日付を示す文字列を選択して（ステップＳ３１０）、その日付の文字列が含まれる行が、そのテキストデータ上で何行目にあたるかを判定して、その値を行位置Ｌ１としてＲＡＭ３２に保存する（ステップＳ３２０）。
【００３７】
次いで、ＣＰＵ３０は、ステップＳ２００により得られたテキストデータから「小計」の文字列を選択して（ステップＳ３３０）、その「小計」の文字列が含まれる行が、そのテキストデータ上で何行目にあたるかを判定して、その値を行位置Ｌ２としてＲＡＭ３２に保存する（ステップＳ３４０）。なお、ステップＳ３１０「小計」の文字列が見つからなかった場合には、「小計」の文字列に替えて、「合計」の文字列等、他の金額の合計を意味する文字列を選択するものとする。
【００３８】
ステップＳ３４０の実行後、ＣＰＵ３０は、ステップＳ３４０で保存した「小計」の文字列の行位置Ｌ２の値を、変数Ｓにセットする（ステップＳ３５０）。次いで、ＣＰＵ３０は、変数Ｓを値１だけデクリメントすることで、レシート上の処理の対象となる行を１行ずつ順に上に向かって移動する（ステップＳ３６０）。その後、ＣＰＵ３０は、変数Ｓで定まる行数のライン位置は、空白であるか否かを判別して（ステップＳ３７０）、ここで、否定判別、すなわち空白でないと判別されると、その変数Ｓが、ステップＳ３２０で保存された日付の行位置Ｌ１以下であるか否かを判別する（ステップＳ３８０）。このステップＳ３８０は、変数Ｓで定まる行数のライン位置が、日付の位置またはその日付の位置より上方に達したか否かを判別するものである。
【００３９】
ステップＳ３７０で否定判別されると、ＣＰＵ３０は、ステップＳ３９０に処理を進める。ステップＳ３９０では、ステップＳ２００により得られたテキストデータから、変数Ｓで定まる行数のライン位置のテキストデータ（ラインデータ）を選択して、この選択したラインデータから、品目関連データを抽出して、その品目関連データをＲＡＭ３２に保存する処理を行なう。ここで、品目関連データとは、品目に関わるデータであり、詳細には、「品目」、「品数」、「金額」の各データからなる。なお、ここでは、選択したラインデータから品目関連データを抽出すると述べたが、実際には、得られたテキストデータをスペースの部分で区分けすることで、「品目」、「品数」、「金額」の各データを得ることができる。
【００４０】
図１に示すように、レシートＲは、品数が１個の場合には、その品数の印刷が省略されている場合があるが、この場合には、「品数」のデータは値１とする。また、図１に示すように、品数が複数となる場合には、「単価」を印刷する関係から、２行でもって、１品目についての品目関連データが印刷されている場合があるが、この場合には、２行分のラインデータを抽出して、その２行分から、一品目についての「品目」、「品数」、「単価」、「金額」のデータを抽出する。このとき、変数Ｓは、値１だけさらに減算しておく必要がある。なお、「品目」が極端に長い文字列である場合にも、複数行で一つの品目関連データが示される場合があるが、こうした場合にも同様な処理を行なう。
【００４１】
ステップＳ３９０の実行後、ＣＰＵ３０は、ステップＳ３６０に処理を戻して、ステップＳ３６０ないしＳ３９０の処理を繰り返し実行する。ステップＳ３６０ないしＳ３９０の処理を繰り返し実行することで、小計の行位置Ｌ２から１行ずつ順に上に向かって品目関連データが抽出されることになる。そうして、処理対象の行が日付の行位置Ｌ１に達すると、このレシートＲからの品目関連データの抽出は終了したとして、図６のステップＳ４００に処理を移行する。
【００４２】
なお、図５のステップＳ３７０で、変数Ｓで定まる行数のライン位置が空白であると判別されると、品目関連データの抽出を行なうことなしに、ステップＳ３６０に処理を戻す。
【００４３】
すなわち、ステップＳ３５０ないしＳ３９０の処理によれば、レシートＲにおいて、日付の印刷された行から小計の印刷された行までの行範囲にわたって、順に１行ずつ品目関連データが抽出されることになる。なお、この実施例では、前述したように、小計の行位置Ｌ２から上に向かって品目関連データの抽出を行なっていたが、これに替えて、日付の行位置かＬ１から下に向かって、「小計」の行位置Ｌ２まで品目関連データの抽出を行なう構成としてもよい。
【００４４】
図６のステップＳ４００では、ステップＳ２００により得られたテキストデータから、内税か外税かを判断可能な文字列を選択する。具体的には、この文字列は、「内税」、「外税」、「消費税」等が該当する。その後、ＣＰＵ３０は、ステップＳ４００で判別した文字列に基づいて、内税／外税フラグに値１（＝外税）または０（＝内税）をセットする（ステップＳ４０２）。
【００４５】
ステップＳ４０２の実行後、ＣＰＵ３０は、ステップＳ４０４に処理を進めて、ステップＳ１００によるスキャン処理により取り込まれたスキャン画像データ中に、ロゴが含まれているか否かを判別する。ここでいう「ロゴ」とは、店名を独特の字体・デザインで表したものである。ステップＳ４０４では、具体的には、スキャン画像データの中に、ステップＳ２００で文字認識に失敗した比較的大きなパーツ画像が存在するか否かから判別を行なう。
【００４６】
ここで、スキャン画像データ中に、ロゴが含まれると判別されたときには、ＣＰＵ３０は、スキャン画像データの中からロゴを表わすパーツ画像を切り出して（ステップＳ４１０）、そのパーツ画像をＣＲＴディスプレイ１２に表示する処理を行なう（ステップＳ４２０）。その後、キーボード１８からの入力データに従って、パーツ画像に対応する店名を入力する処理を行なう（ステップＳ４３０）。操作者は、ＣＲＴディスプレイ１２に表示されたロゴのパーツ画像を見て、そのロゴに対応する店名をキーボード１８から入力するが、ステップＳ４３０では、このキーボード１８からの入力データを取り込んで店名データを入力する。その後、ステップＳ４１０で切り出したロゴのパーツ画像とステップＳ４３０で入力した店名データとを対にして、ＨＤＤ４２に用意したロゴ管理テーブルＴＢＬに登録する（ステップＳ４４０）。
【００４７】
図７は、ロゴ管理テーブルＴＢＬの一例を示す説明図である。図示するように、ロゴ管理テーブルＴＢＬは、店名のテキストデータを記憶する第１のフィールドＦＬ１と、ロゴを表わすパーツ画像ＬＰのＨＤＤ４２上の格納アドレスを記憶する第２のフィールドＦＬ２とを対にしたレコードを複数備えた構造である。ステップＳ３４０では、ステップＳ３１０で切り出したロゴのパーツ画像ＬＰのデータをＨＤＤ４２に保存するとともに、ロゴ管理テーブルＴＢＬに新たなレコードを追加して、その新たなレコードの第１フィールドＦＬ１に、ステップＳ３３０で取り込んだ店名データを保存し、第２フィールドＦＬ２に、ＨＤＤ４２上のそのパーツ画像ＬＰの保存先である格納アドレスを保存する。
【００４８】
図６に戻り、ステップＳ４４０の実行後、ステップＳ４６０に処理を進める。一方、ステップＳ４０４で否定判別された場合には、ステップＳ４５０に処理を進めて、ステップＳ２００により得られたテキストデータから店名のテキストデータを抽出する。詳細には、ステップＳ２００により得られたテキストデータの中で最も上方にある文字列を、店名データとして抽出する。なお、この抽出結果は、ＣＲＴディスプレイ１２に表示して、操作者により操作されたキーボード１８からの入力データにより、修正可能な構成とすることが好ましい。ステップＳ４５０の実行後、ステップＳ４６０に処理を進める。
【００４９】
ステップＳ４６０では、ステップＳ３７０で得られた品目関連データと、ステップＳ４０２で得られた内税／外税フラグと、ステップＳ４３０またはＳ４５０で得られた店名データとを１組にして、レシートデータを作成する。ステップＳ３５０の実行後、「リターン」に抜けて、このレシートデータ抽出処理のルーチンを終了する。
【００５０】
こうした構成の制御処理のうちのステップＳ３１０、Ｓ３３０の処理が、文字列選択部５３ａ（図３）に対応し、ステップＳ３２０、Ｓ３４０の処理が、行位置検出部５３ｂ（図３）に対応し、ステップＳ３５０ないしＳ３９０の処理が、品目関連データ抽出部５３（図３）に対応する。
【００５１】
Ｃ．作用・効果
以上のように構成された本実施例によれば、レシートＲを光学的に読み込んで得られたスキャン画像データから、品目関連データと店名データを備えるレシートデータを自動的に作成することができる。品目関連データは、スキャン画像から文字認識して得られたテキストデータ上において、小計の行から日付の行までの行範囲にわたって順に１行ずつラインデータを選択して、該ラインデータから抽出される。ロール紙からなる近年の大多数のレシートＲは、日付の行と小計の行との間に、品目関連データが１品毎に改行して印刷されていることから、この実施例によれば、大多数のレシートについて品目関連データを確実に作成することができる。したがって、実用性に優れているという効果を奏する。
【００５２】
特に、この実施例では、小計、日付の２つの位置とから品目関連データが記載された行範囲が見つけられることから、作成する品目関連データの精度をより高めることができる。
【００５３】
この実施例では、レシートＲにロゴが印刷されている場合には、ロゴのパーツ画像とともに店名をロゴ管理テーブルＴＢＬへ登録することができる。このために、ロゴの管理が可能となる。
【００５４】
Ｄ．他の実施形態：
第２実施例について次に説明する。この第２実施例は、第１実施例と比較して、相違するのは、コンピュータ処理の内のレシートデータ抽出処理の構成であり、装置およびその他のコンピュータ処理については同一である。以下、この第２実施例のレシートデータ抽出処理について詳細に説明する。
【００５５】
図８は、第２実施例におけるレシートデータ抽出処理を示すフローチャートである。図示するように、ＣＰＵ３０は、まず、ステップＳ２００（第１実施例参照）により得られたテキストデータから「小計」の文字列を選択して（ステップＳ５１０）、その「小計」の文字列が含まれる行が、そのテキストデータ上で何行目にあたるかを判定して、その値を行位置Ｌ２としてＲＡＭ３２に保存する（ステップＳ５２０）。次いで、ステップＳ５２０で保存した「小計」の文字列の行位置Ｌ２の値を、変数Ｓにセットして（ステップＳ５３０）、その変数Ｓを値１だけデクリメントする（ステップＳ５４０）。ステップＳ５１０ないしＳ５４０の処理は、第１実施例におけるステップＳ３３０ないしＳ３６０と同一である。
【００５６】
ステップＳ５４０の実行後、ＣＰＵ３０は、変数Ｓで定まる行数のライン位置は、空白であるか否かを判別して（ステップＳ５５０）、ここで、否定判別、すなわち空白でないと判別されると、ステップＳ５６０に処理を進める。ステップＳ５６０では、ＣＰＵ３０は、第１実施例のステップＳ３９０と同様な、品目関連データの抽出・保存を行なう処理を実行する。ステップＳ５６０の実行後、ＣＰＵ３０は、ステップＳ５４０に処理を戻して、ステップＳ５４０ないしＳ５６０の処理を繰り返し実行する。ステップＳ５４０ないしＳ５６０の処理を繰り返し実行することで、小計の行位置Ｌ２から１行ずつ順に上に向かって、空白の行が見つかるまで品目関連データが抽出されることになる。そうして、ステップＳ５５０で空白の行が見つかると、このレシートＲからの品目関連データの抽出は終了したとして、第１実施例と同一のステップＳ４００〜Ｓ４６０の処理を行ない、その後、「リターン」に抜けて、このレシートデータ抽出処理のルーチンを終了する。
【００５７】
以上のように構成されたこの第２実施例によれば、レシートＲを光学的に読み込んで得られたスキャン画像から文字認識して得られたテキストデータ上において、「小計」の文字列を含む行を検出して、その行からテキストデータの上方に向かって順に１行ずつラインデータを選択して、空白行が見つかるまで品目関連データの抽出がなされる。ロール紙からなる近年の大多数のレシートＲは、「小計」の行の上部に１行毎（ときには複数行にわたることはあるが、１品毎に改行はされる）に品目関連データが印刷されていることから、この実施例によれば、大多数のレシートについて品目関連データを確実に作成することができる。特にこの第２実施例では、日付データの欄Ｆ２の抽出が不要であることから、より一層簡単に、品目関連データを自動抽出することができる。
【００５８】
なお、本発明は上記の実施例や実施形態に限られるものではなく、本発明の要旨を逸脱しない範囲において種々なる態様にて実施することが可能であり、例えば次のような変形も可能である。
【００５９】
（１）前記第１または第２実施例では、「小計」または「合計」等の各品目の金額の合計を意味する文字を基準にして、品目関連データが印刷された行範囲を決めていたが、これに替えて、他の文字列、例えば「外税」や「消費税」等の文字列を基準にして前記行範囲を決める構成とすることもできる。
【００６０】
（２）前記第１実施例では、日付の行位置を検出するように構成していたが、これに替えて、時刻の行位置を検出する構成とすることもできる。一般的なレシートは、日付が記載された行に、時刻も記載されている場合も多い。こうした場合に、日付が汚れや印刷落ち等によって読み取り難いとき、日付に替えて時刻を検出する構成とすることができる。また、最初から時刻だけを検出する構成とすることもできるし、日付と時刻の双方を検出することでその行の検出精度を高める構成とすることもできる。
【００６１】
（３）前記第１または第２実施例では、品目関連データを、「品目」、「品数」、「金額」の各データとして、「内税／外税」の判断は、レシート毎に判断する構成であった。これは、読み取ろうとするレシート自体が、図１に示すように、小計に対する「外税」を表示するものであるからである。これに対して、店舗によって外税と内税の商品が混在するような場合には、レシートに表示された各品目毎に、「内」、「外」、「ウ」、「ソ」、「込」、「非」、「Ｔ」等の内税か外税かを判断可能な文字が表示されているレシートがある。このような場合には、品目関連データを、「品目」、「品数」、「金額」に加えて、「内税／外税」を判断するデータを含むものとして、ステップＳ３９０（またはステップＳ５６０）で、「内税／外税」を判断するデータの抽出、保存も共に行なう構成とすればよい。なお、この場合には、ステップＳ４００およびＳ４０２の処理は不要となる。
【００６２】
（４）前記第１または第２実施例では、レシート処理用ソフトウェア５０から家計簿ソフトウェア７０に自動的にレシートデータを転送するように構成されていたが、これに替えて、レシート処理用ソフトウェア５０からレシートデータを所定のファイル形式（例えばＣＳＶ形式）にてハードディスク等の記憶手段に出力する構成とすることもできる。この構成によれば、ファイル形式を汎用的なものとすることで、家計簿ソフトウェア７０ばかりでなく種々のソフトウェア７０にレシートデータを転送することが可能となる。
【００６３】
（５）前記第１または第２実施例では、レシートの画像を読み取る画像読取手段として、レシートスキャナ１４を備えていたが、これに替えて、スキャナを用いて予め読み取ったレシートの画像データを外部から入力する構成を画像読取手段とすることもできる。
【００６４】
（６）前記第１または第２実施例では、レシート処理用ソフトウェアは、外部のネットワークに接続される特定のサーバ４７から、ネットワークを介してダウンロード可能であるとしていたが、クライアントは、このようにプログラムをダウンロードして利用する形態の他、ＡＳＰ（Ａｐｐｌｉｃａｔｉｏｎ  Ｓｅｒｖｉｃｅ  Ｐｒｏｖｉｄｅｒ）のように、サーバからサービスのみの提供を受ける形態とすることもできる。すなわち、サーバが、本発明のレシート処理装置を構成し、クライアントはそのサービスの提供を受ける。具体的には、クライアントの作業者は、レシートスキャナ（汎用のイメージスキャナやカメラ付き携帯電話でも可）を用いてレシートを写し、得られた画像をサーバに送信することによって、レシートデータから抽出したレシートデータをサーバ側に登録する構成である。この構成によれば、作業者は、プログラムのインストールといった作業的および資源的な負担を強いることもなしに、レシートデータを手軽に集計することができる。
【図面の簡単な説明】
【図１】レシートの一例を示す説明図である。
【図２】この発明の第１実施例を適用するコンピュータシステムのハードウェアの概略構成を示すブロック図である。
【図３】コンピュータ本体１６によって実行されるレシート処理用ソフトウェア５０に従う処理の様子を示すブロック図である。
【図４】レシート処理用ソフトウェアに従う制御処理のルーチンを示すフローチャートである。
【図５】レシートデータ抽出処理の前半部分を示すフローチャートである。
【図６】レシートデータ抽出処理の後半部分を示すフローチャートである。
【図７】ロゴ管理テーブルＴＢＬの一例を示す説明図である。
【図８】第２実施例におけるレシートデータ抽出処理を示すフローチャートである。
【符号の説明】
１２…ＣＲＴディスプレイ
１４…レシートスキャナ
１６…コンピュータ本体
１８…キーボード
２０…マウス
３０…ＣＰＵ
３１…ＲＯＭ
３２…ＲＡＭ
３３…表示画像メモリ
３４…マウスインタフェース
３５…キーボードインタフェース
３６…ＣＤＣ
３７…ＨＤＣ
３８…ＣＲＴＣ
４０…入出力機用インタフェース
４１…Ｉ／Ｏポート
４２…ハードディスクドライブ
４４…モデム
４６…公衆電話回線
４７…サーバ
５０…レシート処理用ソフトウェア
５１…画像取込モジュール
５２…文字認識モジュール
５３…レシートデータ抽出モジュール
５３ａ…文字列選択部
５３ｂ…行位置検出部
５３ｃ…品目関連データ抽出部
６０…スキャナドライバ
７０…家計簿ソフトウェア
【図１】
2004164218.tif 000003
【図２】
2004164218.tif 000004
【図３】
2004164218.tif 000005
【図４】
2004164218.tif 000006
【図５】
2004164218.tif 000007
【図６】
2004164218.tif 000008
【図７】
2004164218.tif 000009
【図８】
2004164218.tif 000010