IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ グローリー株式会社の特許一覧 ▶ ブレインズコンサルティング株式会社の特許一覧

特許7456580情報処理装置、情報処理システム及び情報処理方法
<>
  • 特許-情報処理装置、情報処理システム及び情報処理方法 図1
  • 特許-情報処理装置、情報処理システム及び情報処理方法 図2
  • 特許-情報処理装置、情報処理システム及び情報処理方法 図3
  • 特許-情報処理装置、情報処理システム及び情報処理方法 図4
  • 特許-情報処理装置、情報処理システム及び情報処理方法 図5
  • 特許-情報処理装置、情報処理システム及び情報処理方法 図6
  • 特許-情報処理装置、情報処理システム及び情報処理方法 図7
  • 特許-情報処理装置、情報処理システム及び情報処理方法 図8
  • 特許-情報処理装置、情報処理システム及び情報処理方法 図9
  • 特許-情報処理装置、情報処理システム及び情報処理方法 図10
  • 特許-情報処理装置、情報処理システム及び情報処理方法 図11
  • 特許-情報処理装置、情報処理システム及び情報処理方法 図12
  • 特許-情報処理装置、情報処理システム及び情報処理方法 図13
  • 特許-情報処理装置、情報処理システム及び情報処理方法 図14
  • 特許-情報処理装置、情報処理システム及び情報処理方法 図15
  • 特許-情報処理装置、情報処理システム及び情報処理方法 図16
  • 特許-情報処理装置、情報処理システム及び情報処理方法 図17
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-03-18
(45)【発行日】2024-03-27
(54)【発明の名称】情報処理装置、情報処理システム及び情報処理方法
(51)【国際特許分類】
   G06V 30/24 20220101AFI20240319BHJP
   G06V 30/14 20220101ALI20240319BHJP
   G06V 30/42 20220101ALI20240319BHJP
【FI】
G06V30/24 620D
G06V30/14 340K
G06V30/42
【請求項の数】 5
(21)【出願番号】P 2020040753
(22)【出願日】2020-03-10
(65)【公開番号】P2021144289
(43)【公開日】2021-09-24
【審査請求日】2022-11-14
(73)【特許権者】
【識別番号】000001432
【氏名又は名称】グローリー株式会社
(73)【特許権者】
【識別番号】515242180
【氏名又は名称】ブレインズコンサルティング株式会社
(74)【代理人】
【識別番号】100104880
【弁理士】
【氏名又は名称】古部 次郎
(74)【代理人】
【識別番号】100125346
【弁理士】
【氏名又は名称】尾形 文雄
(74)【代理人】
【識別番号】100166981
【弁理士】
【氏名又は名称】砂田 岳彦
(72)【発明者】
【氏名】柴田 健太
(72)【発明者】
【氏名】小野 龍
(72)【発明者】
【氏名】蝦名 英樹
(72)【発明者】
【氏名】岩田 希彦
(72)【発明者】
【氏名】古崎 知昭
【審査官】伊知地 和之
(56)【参考文献】
【文献】特開2012-226402(JP,A)
【文献】特開平07-325846(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06V 30/24
G06V 30/14
G06V 30/42
(57)【特許請求の範囲】
【請求項1】
制御部と、
撮像部が撮像した精算レシートの画像データを、当該撮像部から取得する取得部と、
前記画像データのうち文字が含まれる各行の先頭側から固定文字数部分画像データを1行ずつ順番に切り出す切出処理部と、
切り出された前記部分画像データから文字情報を認識する文字認識部と
を有し、
前記制御部は、
前記文字認識部から出力される前記文字情報に対応する登録単語が存在する場合、対応する行全体を文字認識の対象決定し、
前記文字認識部から出力される前記文字情報に対応する登録単語が存在しない場合、対応する行全体を文字認識の対象から除外する
情報処理装置。
【請求項2】
前記制御部は、前記文字認識部から出力される前記文字情報に対応する金額情報を決定する、請求項1に記載の情報処理装置。
【請求項3】
1つの前記部分画像データについて、前記文字認識部が前記文字情報の認識を開始する行よりも、当該文字情報の認識を終了する行がレシートの上方に位置する、請求項1又は2に記載の情報処理装置。
【請求項4】
制御部と、
精算レシートを撮像して画像データを出力する撮像部と、
前記撮像部から前記画像データを取得する取得部と、
前記画像データのうち文字が含まれる各行の先頭側から固定文字数部分画像データを1行ずつ順番に切り出す切出処理部と、
切り出された前記部分画像データから文字情報を認識する文字認識部と
を有し、
前記制御部は、前記文字認識部から出力される前記文字情報に対応する登録単語が存在する場合、対応する行全体を文字認識の対象決定し、
前記文字認識部から出力される前記文字情報に対応する登録単語が存在しない場合、対応する行全体を文字認識の対象から除外する
情報処理システム。
【請求項5】
精算レシート画像データを取得する処理と、
前記画像データのうち文字が含まれる各行の先頭側から固定文字数部分画像データを1行ずつ順番に切り出す処理と、
切り出された前記部分画像データから文字情報を認識する処理と、
認識された前記文字情報に対応する登録単語が存在する場合、対応する行全体を文字認識の対象決定する処理と
文字認識部から出力される前記文字情報に対応する登録単語が存在しない場合、対応する行全体を文字認識の対象から除外する処理と、
を有する情報処理方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、情報処理装置、情報処理システム及び情報処理方法に関する。
【背景技術】
【0002】
各店舗における1日の売上を管理する目的で、POS(=Point Of sale System)レジスタには、1日の売上を集計した精算レシートを出力する機能が用意されている。また、一部のユーザは、精算レシートに印字された情報を表計算ソフト等に手入力して活用している。
【先行技術文献】
【特許文献】
【0003】
【文献】特開2012-221183号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
ところで、精算レシートは一般に長く、その紙面には多くの文字が印字される。このため、一般的なOCR(=Optical Character Recognition)技術を適用して、精算レシートに印字されている全ての文字を認識しようとすると、その処理時間が長くなる問題がある。例えば1枚の精算レシートのOCR処理に数十秒もの時間を必要とする。数十秒は、OCR処理の結果を待つユーザには十分に長い時間であり、複数枚の精算レシートをまとめてOCR処理したい場合には、待ち時間だけ作業時間が長くなる。
【0005】
本発明は、レシートから必要とする文字情報を認識するために要する時間の短縮を目的とする。
【課題を解決するための手段】
【0006】
請求項1に記載の発明は、制御部と、撮像部が撮像した精算レシートの画像データを、当該撮像部から取得する取得部と、前記画像データのうち文字が含まれる各行の先頭側から固定文字数部分画像データを1行ずつ順番に切り出す切出処理部と、切り出された前記部分画像データから文字情報を認識する文字認識部とを有し、前記制御部は、前記文字認識部から出力される前記文字情報に対応する登録単語が存在する場合、対応する行全体を文字認識の対象決定し、前記文字認識部から出力される前記文字情報に対応する登録単語が存在しない場合、対応する行全体を文字認識の対象から除外する情報処理装置である。
請求項2に記載の発明は、前記制御部は、前記文字認識部から出力される前記文字情報に対応する金額情報を決定する、請求項1に記載の情報処理装置である。
請求項3に記載の発明は、1つの前記部分画像データについて、前記文字認識部が前記文字情報の認識を開始する行よりも、当該文字情報の認識を終了する行がレシートの上方に位置する、請求項1又は2に記載の情報処理装置である。
請求項に記載の発明は、制御部と、精算レシートを撮像して画像データを出力する撮像部と、前記撮像部から前記画像データを取得する取得部と、前記画像データのうち文字が含まれる各行の先頭側から固定文字数部分画像データを1行ずつ順番に切り出す切出処理部と、切り出された前記部分画像データから文字情報を認識する文字認識部とを有し、前記制御部は、前記文字認識部から出力される前記文字情報に対応する登録単語が存在する場合、対応する行全体を文字認識の対象決定し、前記文字認識部から出力される前記文字情報に対応する登録単語が存在しない場合、対応する行全体を文字認識の対象から除外する情報処理システムである。
請求項に記載の発明は、精算レシート画像データを取得する処理と、前記画像データのうち文字が含まれる各行の先頭側から固定文字数部分画像データを1行ずつ順番に切り出す処理と、切り出された前記部分画像データから文字情報を認識する処理と、認識された前記文字情報に対応する登録単語が存在する場合、対応する行全体を文字認識の対象決定する処理と、文字認識部から出力される前記文字情報に対応する登録単語が存在しない場合、対応する行全体を文字認識の対象から除外する処理と、を有する情報処理方法である。
【発明の効果】
【0007】
本発明によれば、レシートから必要とする文字情報を認識するために要する時間を短縮できる。
【図面の簡単な説明】
【0008】
図1】実施の形態1で使用する情報処理システムの構成例を説明する図である。
図2】精算レシートで使用される可能性がある単語と、売上金等の自動入力サービスで扱う単語との対応関係の一例を示す図である。
図3】実施の形態1で使用するユーザ端末の構成例を説明する図である。
図4】実施の形態1で使用するOCRサーバの構成例を説明する図である。
図5】実施の形態1で使用するOCRサーバが実行する処理動作の一例を示すフローチャートである。
図6】ユーザ端末の表示部に表示される画像の例を示す図である。
図7】各行に対応する文字画像データのうち対象文字のサーチに用いる部分を説明する図である。
図8】対象文字のサーチの結果の具体例を説明する図である。
図9】OCR処理で認識される情報に紐付けられる情報の例を説明する図である。
図10】マッチングの一例を説明する図である。
図11】値の選択に使用される処理の内容を説明するフローチャートである。
図12】ステップ7における値の選択を説明する図である。
図13】グループ別に値を選択する処理の内容を説明するフローチャートである。
図14】グループ「現金売上」に紐付けられている2つの値から1つを選択する例を説明する図である。
図15】グループ「純売上」に紐付けられている2つの値から1つを選択する例を説明する図である。
図16】ユーザ端末の表示部に表示される売上金等の自動入力結果の画面例を説明する図である。
図17】実施の形態2におけるOCRサーバがOCR処理を実行する範囲を説明する図である。
【発明を実施するための形態】
【0009】
以下、添付図面を参照して、実施の形態について詳細に説明する。
<実施の形態1>
<システムの構成>
図1は、実施の形態1で使用する情報処理システム1の構成例を説明する図である。
図1に示す情報処理システム1は、複数台のユーザ端末100と、ユーザ端末100からアップロードされた画像データをOCR処理し、認識された文字の中から予め定めた情報をユーザ端末100に通知するOCRサーバ200とで構成される。
図1に示す情報処理システム1の場合、ユーザ端末100とOCRサーバ200は、クラウドネットワーク300を通じて接続されている。従って、OCRサーバ200は、クラウドサーバの一例である。
【0010】
本実施の形態におけるユーザ端末100は、精算レシートの撮像により生成された画像データをOCRサーバ200にアップロードする。本実施の形態における精算レシートとは、日毎の売上を統計的に処理した情報が印字されたレシートの意味で使用する。換言すると、精算レシートは、個々の取引に伴う金額を個別に印字したレシートの意味ではなく、営業日を単位として予め設定された項目別に集計された金額が印字されているレシートである。売上には、例えば現金による売上、クレジットカードによる売上、電子マネーによる売上等がある。この他、精算レシートには、1つの項目に紐付けられる値が1つに限らないという特徴がある。換言すると、精算レシートは、複数の値が紐付けられた項目を含むことがある。一方、消費者が受け取るレシートでは、消費者が購入した又は提供を受けたサービスの内容と対応する金額とが1対1に紐づけられている。
【0011】
図1に示すユーザ端末100は、スマートフォンを想定している。もっとも、ユーザ端末100は、スマートフォン以外の端末、例えばタブレット端末でもよい。
本実施の形態におけるユーザ端末100は、本体のカメラで撮像された精算レシートの画像データを、OCRサーバ200にアップロードする。もっとも、ユーザ端末100とは別の装置であるデジタルカメラやスキャナで精算レシートを撮像し、各装置から出力される画像データを取得して、OCRサーバ200にアップロードしてもよい。
なお、デジタルカメラ等で撮像された画像データをOCRサーバ200にアップロードする形態であれば、ユーザ端末100として、ノート型のコンピュータやデスクトップ型のコンピュータを使用してもよい。
【0012】
本実施の形態におけるユーザ端末100とOCRサーバ200とは、連携により売上金等の自動入力サービスを提供する。このため、ユーザ端末100には、売上金等の自動入力サービスと連携する専用のアプリケーションプログラム(以下「アプリ」という)がインストールされている。従って、ユーザによる精算レシートの撮像は、起動されたアプリの指示に従って行われる。
勿論、他の種類のアプリがユーザ端末100で実行されている場合には、撮像の対象は精算レシートに限らない。
【0013】
本実施の形態におけるOCRサーバ200は、ユーザ端末100で実行されるアプリとの連携により売上金等の自動入力サービスを提供する。OCRサーバ200は、受信した精算レシートの画像データから売上等に関連する数値を読み出し、アップロード元であるユーザ端末100に通知する機能を実行する。
なお、精算レシートに印字される売上等に関する単語の表現は、POSレジスタのメーカによって異なる。そこで、本実施の形態におけるOCRサーバ200には、ユーザ端末100で実行されるアプリで使用される単語に、精算レシートに印字される可能性がある単語との対応関係を記録したテーブルを用意する。本実施の形態では、精算レシートに印字される単語のうちテーブルに登録されている単語を登録単語という。
【0014】
図2は、精算レシートで使用される可能性がある単語と、売上金等の自動入力サービスで扱う単語との対応関係の一例を示す図である。
図2においては、売上金等の自動入力サービスで扱う単語をグループ欄に示している。図2に示す対応関係は、登録単語テーブルとしてOCRサーバ200に保持されている。図2の場合、グループ欄の「純売上」に対応する登録単語として「純売」、「純売上」、「純売上合計」、「純売上高」、「**総合計」が例示されている。登録単語の表現のゆらぎは、POSレジスタのメーカの設定に依存する。
また、グループ欄の「現金売上」に対応する登録単語として「現金」、「現金残高」が例示されている。
なお、グループ欄に設定される単語は一例である。また、グループ欄に設定される単語は、売上金等の自動入力サービスで使用する表現に依存する。
【0015】
<ユーザ端末の構成>
図3は、実施の形態1で使用するユーザ端末100の構成例を説明する図である。
ユーザ端末100は、いわゆるコンピュータである。ユーザ端末100は、各部の動作を制御する制御部101と、カメラ102と、表示部103と、操作入力部104と、記憶部105と、通信部106とを有している。
制御部101は、不図示のCPU(=Central Processing Unit)、ROM(=Read Only Memory)、RAM(=Random Access Memory)等で構成されている。ROMには、BIOS(=Basic Input Output System)等のデータが記憶されている。また、RAMは、アプリの作業エリアとして使用される。
【0016】
本実施の形態における制御部101は、売上金等の自動入力サービスと連携するアプリの実行に伴って、精算レシートの撮像を促す画面の表示、撮像された画像データのOCRサーバ200へのアップロード、OCRサーバ200から通知された売上金等の数値をはめ込んだ画面の表示等を実行する。
勿論、他のアプリが起動されている場合、制御部101は、起動されているアプリに応じた処理を実行する。
カメラ102は、撮像部の一例である。本実施の形態の場合、カメラ102は、ユーザ端末100の本体に設けられている。なお、カメラ102の用途に制約はなく、精算レシートの撮像以外にも用いられる。
表示部103は、例えば液晶ディスプレイや有機EL(=Electro Luminescence)ディスプレイである。表示部103には、カメラ102で撮像された画像や自動入力された売上金等の確認画面が表示される。
【0017】
操作入力部104は、例えばタッチセンサや物理的なボタンで構成される。タッチセンサとしての操作入力部104は表示部103の表面に配置され、タッチパネルを構成する。
記憶部105は、例えば半導体メモリで構成され、撮像された画像データ105Aやアプリが記憶される。なお、ユーザ端末100がノート型のコンピュータやデスクトップ型のコンピュータの場合、記憶部105はハードディスク装置でもよい。
通信部106は、クラウドネットワーク300等に接続された外部端末との通信に用いるデバイスである。通信部106は、各種の通信規格に準拠する。通信部106は、例えば無線LAN(=Local Area Network)や有線LANの通信規格、4Gや5G等の移動通信システムに準拠する。
【0018】
<OCRサーバの構成>
図4は、実施の形態1で使用するOCRサーバ200の構成例を説明する図である。
OCRサーバ200は、いわゆるコンピュータである。OCRサーバ200は、各部の動作を制御する制御部201と、記憶部202と、通信部203とを有している。
制御部201は、不図示のCPU、ROM、RAM等で構成される。ROMには、BIOS等のデータが記憶されている。また、RAMは、アプリの作業エリアとして使用される。OCRサーバ200は、情報処理装置の一例である。
【0019】
本実施の形態における制御部201は、アプリの実行を通じ、画像データ取得部201A、文字切出処理部201B、OCR処理部201C、マッチング部201D、値選択部201E、グループ別結果選択部201Fとして機能する。これらの機能部は、ユーザ端末100との連携により自動入力サービスを実現する。
画像データ取得部201Aは、ユーザ端末100から画像データ105Aを取得する機能部である。画像データ取得部201Aは、取得部の一例であり、取得した画像データ105Aを、画像データ202Aとして記憶部202に記憶する。
【0020】
文字切出処理部201Bは、画像データ202Aの中から文字を含む文字画像データを切り出す機能部である。文字を含む行に対応する画像部分は、文字画像データの一例である。また、文字切出処理部201Bは、切出処理部の一例である。
本実施の形態における文字切出処理部201Bは、切り出した文字列画像データのうち予め定めた特定部分を切り出してOCR処理し、登録単語を含む行か否かを判定する。本実施の形態における文字切出処理部201Bは、文字画像データの先頭に現れる2文字を特定部分とする。
【0021】
文字切出処理部201Bは、画像データ内の各文字の上下(天地)が正しい向きになるように調整した状態で画像データ202Aの処理を開始する。
本実施の形態の場合、文字を含む各行の先頭から2文字を切り出してOCR処理しているが、切り出す文字は各行の先頭に現れる1文字でも、3文字以上でもよい。
なお、各行の先頭から切り出す文字の数は事前に設定される。文字の数は、文字画像データに登録単語が含まれるか否かの判定が可能であればよい。このため、切り出す文字の数は、登録単語の内容に応じて定められる。もっとも、切り出す文字の数は少ないほどOCR処理の時間が短くなるため好ましい。先頭2文字が印字される部分は、文字画像データの左端部分の一例である。
【0022】
本実施の形態の場合、読み出した2文字は、項目部の一部である。切り出した2文字が登録単語の先頭側の一部を含む場合、文字切出処理部201Bは、対応する行全体の文字をOCR処理する行に決定する。一方、切り出した2文字が登録単語の先頭側の一部を含まない場合、文字切出処理部201Bは、次の行の文字画像データの判定に移行する。
文字画像データの先頭に位置する数文字だけをOCR処理して、行全体の文字をOCR処理するか否かを判定するので、全ての行の全ての文字をOCR処理する場合に比して、OCR処理される文字数を削減できる。このことは、OCR処理に要する時間の短縮に通じる。
【0023】
本実施の形態における文字切出処理部201Bは、画像データ202Aの下端から上端の方向に向けて順番に文字画像データを判定の対象とする。本実施の形態で自動入力の対象とする売上金等の文字は、POSレジスタの違いによらず、精算レシートの下部に出現するためである。換言すると、文字切出処理部201Bは、画像データ202Aを、その下端から上端の方向に向けてスキャンする。
文字切出処理部201Bは、特定部分に文字が印字されていない文字画像データが見つかった場合、その上の行で最初に特定部分に文字が現れる行を、処理対応である文字画像データに対する親の行(親行)として紐付ける。換言すると、親行を有する行の数値部には、親行の項目部が紐付けられる。親行を有する行も、行全体の文字をOCR処理する行に設定される。
【0024】
OCR処理部201Cは、特定部分やOCR処理の対象に設定された行の文字画像データをOCR処理して文字情報を認識する。OCR処理部201Cは、文字認識部の一例である。
本実施の形態におけるOCR処理部201Cは、OCR処理の対象に設定された行に対応する文字画像データを項目部と数値部に分解し、それぞれに専用のOCRモデルを適用して各部に対応する文字情報を認識する。
ここでのOCRモデルは、ディープラーニング技術を用いて生成される。OCRモデルは、1文字と識別された文字画像データが入力されると、確からしい文字情報(例えば文字コード)を出力する。各文字には、認識の確からしさを示す信頼度が計算される。なお、認識された単語の信頼度は、例えば単語を構成する各文字の信頼度の平均値として与えられる。
【0025】
マッチング部201Dは、登録単語テーブル202Bを参照し、OCR処理の結果として認識された文字情報(以下「生のOCR結果」という)を、登録単語テーブル202Bに従って、対応するグループの単語に紐付けを行う機能である。
値選択部201Eは、1つの項目(項目部)が複数の値を持つ場合、該当する項目に対応付ける1つの値を選択する機能である。1つの項目が複数の値を持つ場合には、親行が存在する場合がある。例えば2つの値が1つの項目に対応付けられている場合、値選択部201Eは、Currency型に変換可能な値の方を選択する。ただし、2つの値のいずれもがCurrency型に変換可能である場合、値選択部201Eは、2つの値のうちで大きい方の値を選択する。
グループ別結果選択部201Fは、グループ欄の1つの単語が複数の値を持つ場合、該当する単語に対応付ける1つの値を選択する機能である。例えば2つの値がグループの1つの単語に対応付けられている場合、グループ別結果選択部201Fは、項目部をOCR処理した結果の信頼度が高い方の値を選択する。
【0026】
記憶部202は、アップロードされた画像データ202A、登録単語テーブル202B、ユーザ端末100側のアプリと連携して売上金等の自動入力サービスを実現するアプリを記憶する。
記憶部202は、例えばハードディスク装置や半導体メモリで構成される。なお、記憶部202は、クラウドストレージサーバとして、クラウドネットワーク300に接続されていてもよい。
通信部203は、クラウドネットワーク300等に接続された外部端末との通信に用いるデバイスである。通信部203は、各種の通信規格に準拠する。通信部203は、例えば無線LANや有線LANの通信規格、4Gや5G等の移動通信システムに準拠する。
【0027】
<処理動作>
次に、OCRサーバ200が実行する処理動作例を説明する。
図5は、実施の形態1で使用するOCRサーバ200が実行する処理動作の一例を示すフローチャートである。図中に示す記号のSはステップを意味する。図5に示す処理動作は、情報処理方法の一例である。
なお、OCRサーバ200が実行する一連の動作は、ユーザ端末100から精算レシートの画像がアップデートされることで開始される。
まず、ユーザ端末100では、ユーザによって、売上金等の自動入力サービスに連携するアプリが起動される(ステップ1)。
【0028】
アプリが起動すると、ユーザ端末100の表示部103(図3参照)には、カメラ102(図3参照)による精算レシートの撮像を促す画像が表示されると共に、カメラ102から出力されるライブ画像が表示される。
図6は、ユーザ端末100の表示部103に表示される画像の例を示す図である。表示部103には、カメラ102(図3参照)で撮像された精算レシートの画像110と、シャッターボタン120とが表示されている。図6の場合、精算レシートの画像110のうち上端側の表記を省略している。
【0029】
ユーザがシャッターボタン120をタップすると、表示部103に表示されている画像のデータ(画像データ105A)が記憶部105(図3参照)に記憶される。なお、精算レシートの画像110は、1枚に限らず、複数枚撮像することも可能である。
図5の説明に戻る。
ユーザ端末100を操作するユーザがアップロードする画像データ105Aを選択すると、ユーザ端末100は、精算レシートの画像データ105Aをアップロードする(ステップ2)。なお、シャッターボタン120(図6参照)の操作によって記憶された画像データ105Aを自動的にアップロードする設定の場合には、ユーザによるアップロードする画像データの選択は不要である。
【0030】
OCRサーバ200は、アップロードされた画像データ105Aを、記憶部202(図4参照)に画像データ202A(図4参照)として記憶する。
記憶部202に画像データ202Aが記憶されると、OCRサーバ200は、画像データ202Aに含まれる文字画像データを切り出す(ステップ3)。従って、文字を含まない背景部分や余白部分は、切り出しの対象から除外される。
次に、OCRサーバ200は、各行に対応する文字画像データの特定部分だけをOCR処理して対象文字をサーチする(ステップ4)。本実施の形態の場合、対象文字は、登録単語の先頭側の2文字である。
【0031】
図7は、文字画像データのうち対象文字のサーチに用いる部分を説明する図である。本実施の形態の場合、文字画像データの先頭側の2文字が切り出される。図7に示すように、文字の切り出しは、精算レシートの画像データ202A(図4参照)の下端側から上方に1行ずつ順番に実行される。図7では、この切り出し処理が実行される方向をスキャン方向と示している。
例えば精算レシートの最下端の行には「現金残高 \37,462」が印字されているが、行の先頭に位置する「現金」が特定部分として切り出される。因みに、「現金残高」が項目部であり、「\37,462」が数値部である。
「現金」は、登録単語である「現金残高」の先頭2文字であり、対象文字の一例である。従って、最下端の行は、行全体の文字をOCR処理する対象に判定される。
【0032】
また、最下端から2つ目の行には「取引数 4数」が印字されているが、行の先頭に位置する「取引」が特定部分として切り出される。因みに、「取引数」が項目部であり、「4数」が数値部である。「取引」は、登録単語でも、その一部でもない。このため、OCRサーバ200は、最下端から2つ目の行を、行全体の文字をOCR処理の対象に設定せず、次の行の判定に移行する。
【0033】
図8は、対象文字のサーチの結果の具体例を説明する図である。図8は、サーチの対象文字が「現金」と「**」と「純売」の場合である。
図8の場合、破線で囲んだ4つの領域が行全体の文字をOCR処理する対象に設定されている。なお、上から3つ目の領域は、親行としての「現金 4数」が印字された行と、親行を有する「 \16,520」が印字された行の2行を含んでいる。
【0034】
図5の説明に戻る。
次に、OCRサーバ200は、これら4つの領域を対象として、行全体をOCR処理する(ステップ5)。
図9は、OCR処理で認識される情報に紐付けられる情報の例を説明する図である。
上から1つ目の領域に対応する文字画像データは、精算レシートの19行目にあたる。項目部の生のOCR処理の結果は「**純売」であり、数値部の値は「\15,297」である。
上から2つ目の領域に対応する文字画像データは、精算レシートの21行目にあたる。項目部の生のOCR処理の結果は「**総総合計」であり、数値部の値は「\16,520」である。
【0035】
上から3つ目の領域に対応する文字画像データは、精算レシートの27行目と28行目にあたる。
28行目の項目部には文字が無いが、1行上の27行目の項目部には対象文字が存在している。このため、27行目は、28行目の親行である。28行目における生のOCR処理の結果は、27行目にも紐付けられる。
図9の場合、精算レシートの27行目の生のOCR処理の結果は「現金」であり、数値部の値は「4数」である。
一方、精算レシートの28行目には、生のOCR処理の結果として、27行目の生のOCR処理の結果である「現金」が紐付けられる。なお、同行における数値部の値は「\16,520」である。
上から4つ目の領域に対応する文字画像データは、精算レシートの31行目にあたる。項目部の生のOCR処理の結果は「現金残高」であり、数値部の値は「\37,462」である。
【0036】
図5の説明に戻る。
次に、OCRサーバ200は、マッチング処理を実行する(ステップ6)。マッチング処理では、生のOCR処理の結果である文字を登録単語に紐付ける処理と、登録単語が対応付けられているグループの単語に紐付ける処理とが実行される。
図10は、マッチングの一例を説明する図である。図10では、紙面の都合から精算レシートの上から3つ目と4つ目の領域についてのみ表している。
精算レシートの27行目の項目部をOCR処理して認識された文字「現金」は、登録単語の「現金」に一致する。このため、認識された単語「現金」の信頼度は1.0である。信頼度は、生のOCR処理した結果の確からしさを表している。本実施の形態の場合、1.0が最大値である。なお、登録単語の「現金」はグループの「現金売上」に対応する。
【0037】
精算レシートの28行目の項目部をOCR処理して認識された文字「現金」も、登録単語の「現金」に対応する。この単語の信頼度も1.0である。登録単語の「現金」はグループの「現金売上」に対応する。
精算レシートの31行目の項目部から読み出された文字「現金残高」は、登録単語の「現金」に対応する。信頼度は0.5である。なお、登録単語の「現金」はグループの「現金売上」に対応する。
【0038】
図5の説明に戻る。
次に、OCRサーバ200は、1つの項目に紐付ける値の選択を実行する(ステップ7)。本実施の形態の場合、項目部の「現金」に紐付けられている27行目の値と28行目の値の中から1つを選択する。
図11は、値の選択に使用される処理の内容を説明するフローチャートである。
まず、OCRサーバ200は、処理対象が1つの項目に複数の値を持つか否かを判定する(ステップ11)。
【0039】
ステップ11で肯定結果が得られた場合、OCRサーバ200は、金額と思われる方の値を選択する(ステップ12)。具体的には、Current型への変換が可能な数値を選択する。
一方、ステップ11で否定結果が得られた場合、OCRサーバ200は、対応する値をそのまま使用する(ステップ13)。
図12は、ステップ7における値の選択を説明する図である。
精算レシートの27行目の値「4数」はCurrent型に変換できない値である。一方、28行目の値「\16,520」はCurrent型に変換できる値である。このため、この例では、28行目の値「\16,520」が、グループ「現金売上」に対応付けられる値として選択されている。
【0040】
図5の説明に戻る。
4つの領域の全てについて値の選択が完了すると、OCRサーバ200は、グループ別に値を選択する(ステップ8)。
本実施の形態の場合、精算レシートの19行目の値「\15,297」と同21行目の値「\16,520」は、いずれもグループの単語「純売上」に対応付けられている。また、精算レシートの28行目の値「\16,520」と同31行目の値「\37,462」は、いずれもグループの単語「現金売上」に対応付けられる。このため、各グループの単語に紐付ける1つの値を選択する必要がある。
【0041】
図13は、グループ別に値を選択する処理の内容を説明するフローチャートである。
まず、OCRサーバ200は、同じグループに紐付けられる値が複数あるか否かを判定する(ステップ21)。
ステップ21で肯定結果が得られた場合、OCRサーバ200は、信頼度は同じか否かを判定する(ステップ22)。
ステップ22で肯定結果が得られた場合、OCRサーバ200は、値が大きい方の値を選択する(ステップ23)。一方、ステップ22で否定結果が得られた場合、OCRサーバ200は、信頼度の高い方の値を選択する。
なお、ステップ21で否定結果が得られた場合、OCRサーバ200は、対応する行の値をそのまま抽出する。この場合は、1つのグループに紐付けられる値が1つしか存在しないためである。
【0042】
図14は、グループ「現金売上」に紐付けられている2つの値から1つを選択する例を説明する図である。
グループ「現金売上」の場合、精算レシートの28行目の値「\16,520」と31行目の値「\37,462」が紐付けられている。ただし、28行目の生のOCR処理の結果の信頼度が1.0であるのに対し、31行目の生のOCR処理の結果の信頼度は0.5である。このため、信頼度が相対的に高い28行目の値「\16,520」がグループ「現金売上」の値として選択される。
【0043】
図15は、グループ「純売上」に紐付けられている2つの値から1つを選択する例を説明する図である。
グループ「純売上」の場合、精算レシートの19行目の値「\15,297」と21行目の値「\16,520」が紐付けられている。ただし、21行目の生のOCR処理の結果の信頼度が0.9であるのに対し、19行目の生のOCR処理の結果の信頼度は0.4である。このため、信頼度が相対的に高い21行目の値「\16,520」がグループ「純売上」の値として選択される。
【0044】
図5の説明に戻る。
グループ別に値が選択されると、OCRサーバ200は、ユーザ端末100に対し、選択結果を送信する(ステップ9)。具体的には、「現金売上」の値として「\16,520」が送信され、純売上の値として「\16,520」が送信される。
これらの情報を受信したユーザ端末100は、結果を合成した画面を表示部103(図3参照)に表示する(ステップ10)。
図16は、ユーザ端末100の表示部103に表示される売上金等の自動入力結果の画面例を説明する図である。図16に示す画面には、撮像された精算レシートの年月日の情報、天気の情報、現金売上の情報、現金外売上の情報、純売上の情報、キャンセルボタン121、登録ボタン122が表示されている。
【0045】
ここで、現金外売上の欄には、純売上から現金売上を減算した値が表示される。現金外売上には、例えばクレジット払いされた金額や電子マネーで支払われた金額がある。なお、年月日には、精算レシートからOCR処理で認識された年月日を自動的に表示してもよいし、ユーザがカレンダー機能から指定した年月日を表示してもよい。また、天気の欄には、ユーザが入力した情報が表示される。
なお、OCR処理により自動入力された値が間違っている場合には、手入力による数値の修正も可能である。
ユーザが登録ボタン122をタップすると、表示された金額が確定する。
【0046】
<実施の形態2>
前述の実施の形態1の場合には、図7を用いて説明したように、文字画像データの先頭2文字をOCR処理した結果に対象文字が含まれるかサーチすることで、OCR処理の対象となる文字数を低減させ、その結果として、OCR処理に要する時間の短縮を実現している。
ただし、OCR処理に要する時間の短縮は、他の手法によっても実現が可能である。
【0047】
図17は、実施の形態2におけるOCRサーバ200がOCR処理を実行する範囲を説明する図である。本実施の形態では、OCR処理を実行する範囲を、純売上や現金売上の情報が出現する可能性が高い範囲に限定する。図17の例では、精算レシートの下から3分の2の範囲に限定している。OCR処理の範囲が精算レシートの全体の3分の2になれば、OCR処理の対象となる文字数も概略3分の2となり、OCR処理に要する時間の短縮が可能になる。なお、3分の2は一例であり、3分の1や4分の1等でもよい。必要とする情報を認識できるのであれば、OCR処理を実行する範囲は狭いほどよい。
【0048】
図17の場合にも、精算レシートの下端側から上端方向に順番に各行に対応する文字画像データをOCR処理している。また、実施の形態2の場合にも、図5のステップ5以降の処理は同じである。
もっとも、実施の形態2の場合も、各行の先頭2文字だけを読み取り、行全体の文字をOCR処理するか否かを判定する機能を組み合わせてもよい。この場合、OCR処理が対象とする文字数は実施の形態1よりも少なくなり、更なるOCR処理の時間の短縮が実現される。
【0049】
<他の実施の形態>
以上、本発明の実施の形態について説明したが、本発明の技術的範囲は前述した実施の形態に記載の範囲に限定されない。前述した実施の形態に、種々の変更又は改良を加えたものも、本発明の技術的範囲に含まれることは、特許請求の範囲の記載から明らかである。
【0050】
(1)例えば前述の実施の形態1の場合には、精算レシートの下端側から上端方向に、各行に対応する文字画像データの対象文字をサーチしているが、精算レシートの上端側から下端方向に対象文字をサーチしてもよい。
(2)前述の実施の形態は、いずれも精算レシートを読み取りの対象としているが、消費者が受け取るレシートの特定の情報だけをOCR処理して自動入力する用途にも利用できる。
【0051】
(3)前述の実施の形態においては、精算レシートに印字される可能性がある登録単語と対応付けられるグループの単語との関係を登録単語テーブル202Bとして用意する場合について説明したが、精算レシートに印字される売上に関連する単語や各単語とグループとの対応関係をディープラーニングにより学習してもよい。ディープラーニングにより生成された辞書を用いることにより、グループとして登録されている単語に紐付けられるべき未知の登録単語が認識された場合にも、対象文字として検出し、当該単語を含む行の全体をOCR処理の対象に設定することができる。また、この未知の単語を、グループとして登録されている単語に紐付けることもできる。
【0052】
(4)前述の実施の形態の場合、精算レシートの画像データから売上金等の数値を認識する機能をOCRサーバ200(図1参照)で実行しているが、図4に示す機能の全部又は一部をユーザ端末100(図1参照)で実行してもよい。この場合のユーザ端末100は、情報処理装置の一例である。
(5)前述の実施の形態の場合、1台のOCRサーバ200が図4に示す機能の全てを実行しているが、これらの機能の一部をクラウドネットワーク300に接続される他のサーバや端末との協働により実行してもよい。
【符号の説明】
【0053】
100…ユーザ端末、101…制御部、102…カメラ、103…表示部、104…操作入力部、105…記憶部、105A…画像データ、106…通信部、110…精算レシートの画像、120…シャッターボタン、121…キャンセルボタン、122…登録ボタン、200…OCRサーバ、201…制御部、201A…画像データ取得部、201B…文字切出処理部、201C…OCR処理部、201D…マッチング部、201E…値選択部、201F…グループ別結果選択部、202…記憶部、202A…画像データ、202B…登録単語テーブル、203…通信部、300…クラウドネットワーク
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13
図14
図15
図16
図17