具体实施方式
以下,一边使用附图,一边针对本发明的实施方式详细地进行说明。再有,在以下主要针对对店铺营业额进行总计的装置的例子进行说明,但本发明并不仅限于营业额总计,在用于对采购总计数据、印字在其它凭单等的实绩数据进行总计的装置等中也能同样地适用。
图1表示用于说明本发明的概要的装置结构例。在图1中,1是由CPU以及硬盘、存储器等的存储装置等构成的、基于从收据中读取的数据来执行与营业额的总计相关的处理的收据数据识别装置,20是标记有与各店铺对应的标识码21(在图2中示出)的、对各店铺的收据22进行夹持的收据夹持用片材。收据22是以按每个店铺而不同的格式进行印刷的收据。
再有,收据22按每个租户的店铺,通过在各店铺中准备的现金出纳机(cash register)等印刷有对例如一天的店铺的营业额进行总计的结果。此外,这些收据22作为与营业额总计相关的一个例子而示出,除了营业额总计以外,与采购总计、其它帐票处理相关也可。
最初,针对收据夹持用片材20进行说明。图2是表示收据夹持用片材20的一个实施方式的结构的图。特别地,图2(A)是从透明薄膜231侧观察收据夹持用片材20的俯视图,图2(B)是说明在收据夹持用片材20中收据22被透明片材23夹持之前的状态的立体图。
如图2(A)所示那样,例如,收据夹持用片材20将各店铺的收据22夹持在带有衬纸的透明片材23中。在透明片材23的右上端角以印刷或封印(seal)等标记有与该店铺对应的标识码21(QR码(注册商标)等的2维码等)。
如图2(B)所示那样,在透明片材23中,例如透明薄膜(片材)231和衬纸232在一端233被连接(粘接等),在夹持收据22之前的状态下,透明片材23处于半开封状态。在该半开封状态下的透明片材23的衬纸232上载置有收据22,通过将例如密接面稍微具有粘接性的透明薄膜231和衬纸232贴合,从而夹持收据22。再有,上述的标识码21例如在定位于衬纸232的右上端角的范围内通过印刷、封印等被标记。
接着,针对收据数据识别装置1处理的、每个店铺的收据22中的收据项目、和租户管理部门总计的营业额管理项目的对应关系进行说明。
图3是表示营业额管理项目和收据项目的对应关系的一个例子的图。在图3的例子中,租户管理部门在店铺的营业额管理中实际需要的营业额总计的数据是从No.1的现金营业额到No.11的顾客数这11个营业额管理项目。可是,这些营业额管理项目作为各店铺的收据22的收据项目,并不是直接以1对1的关系被印字的。因此,使用每个店铺的对应关系信息1022(1022a),根据各店铺的收据项目进行计算11个的各营业额管理项目的处理。
在图3示出的收据22a的情况下,在对应关系信息1022(1022a)中示出了第14个收据项目的“现金营业额金额”相当于No.1的营业额管理项目的“现金营业额”。针对其它的营业额管理项目,也分别通过对应关系信息1022进行对应。再有,在图3中示出的那样的每个店铺的营业额管理项目和收据项目的对应关系信息1022(1022a)预先被注册并储存在定义数据存储部102(在图1中示出)中。
在图3中,在收据22a示出的收据项目,例如第14个示出为“现金营业额金额”等,但实际上,第14个(第n个)并不是位于收据内的从最上段的位置起固定的行的位置。根据店铺当日的收据总计结果,在第n个以前的收据项目中存在印字行数增加、或在印刷时被省略的收据项目等。因此,在收据数据识别装置1中对包含收据项目中的收据项目名称和与其对应的金额项目的相对位置(相对的金额栏的位置)的定义数据预先进行注册,与对应关系信息1022(1022a)一起使用,由此谋求上述课题的解决。
收据数据识别装置1根据以上那样的定义数据以及对应关系信息1022(1022a),按每个店铺码,对“营业额日期”、营业额管理项目No.1“现金营业额”、No.2“赊销营业额”、No.3“信用营业额”、…等的与营业额相关的项目所对应的金额进行总计,储存在营业额管理数据存储部103中。因此,收据数据识别装置1执行以下说明的处理。
收据数据识别装置1从收据夹持用片材20中读取收据22。收据数据识别装置1使用针对收据22的定义数据,提取出包含收据项目中的项目名称以及金额的收据数据。收据数据识别装置1使用营业额管理项目和收据项目的对应关系信息1022(1022a),将提取出的收据数据的项目变换为营业额管理数据。即,提取营业额管理数据所需要的收据项目,将收据项目的金额作为营业额管理数据进行总计。
如以上那样,收据数据识别装置1按每个发行收据22的店铺使用定义数据,执行收据数据识别处理。
以下,针对用于执行上述的收据数据识别处理的、在图1中示出的收据数据识别装置1的结构,具体地进行说明。
图像数据存储部101存储通过读取机10读取的收据夹持用片材20的图像数据。图像数据是包含通过对收据22的图像进行OCR处理而得到的识别字符及其坐标(位置数据)的数据。进而,图像数据包含标识码21也可。此外,图像数据存储部101与图像数据关联地储存收据夹持用片材20的图像文件、例如位图形式文件等也可。
定义数据存储部102是储存在收据数据识别装置1中使用的定义数据的存储单元。定义数据按每个店铺包含收据22的收据项目以及金额的位置等的信息。
具体地,在定义数据中,与在收据22上印字的收据项目名称的字符串对应地,注册有在多个店铺的营业额管理中共同使用的营业额管理项目名称。例如,定义数据包含:在收据22上印字的收据项目名称的字符串,和从收据项目名称的收据内位置起的、与该收据项目名称对应的金额项目的相对位置数据,该定义数据按照收据22中的成为读取对象的各收据项目名称的每一个而被定义。这样的定义数据按每个进行总计的店铺的收据22被预先制作,并储存在定义数据存储部102中。再有,定义数据的细节使用图8在后面叙述。
进而,在定义数据中,按照收据22中的成为读取对象的收据项目名称的每一个,注册有:印字在收据22的收据项目名称的字符串、表示在收据22内是否存在具有同一收据项目名称的其它字符串的信息、在收据22内存在具有同一收据项目名称的其它字符串的情况下作为将收据项目名称和收据印字位置关联起来的其它的收据项目名称的字符串的锚点(anchor)字符、以及收据项目名称的字符串和锚点字符间的距离的信息,
或者,在定义数据中,按照收据22中的成为读取对象的收据项目名称的每一个,注册有:印字在收据22的收据项目名称的字符串、表示在收据22内是否存在具有同一收据项目名称的其它字符串的信息、以及在收据22内存在具有同一收据项目名称的其它字符串的情况下作为将收据项目名称和收据印字位置关联起来的其它的收据项目名称的字符串的多个关键词的信息,
营业额管理数据存储部103是对收据数据识别装置1生成的营业额管理数据进行保存的存储单元。营业额管理数据是使按每个店铺而不同的收据项目与统一的营业额管理项目对应地收集各店铺的收据项目的金额的结果的数据。再有,营业额管理数据的细节使用图15在后面叙述。
读取机10是在图像的扫描中使用光学方式等、对收据夹持用片材20的图像进行读取的装置。当收据夹持用片材20被输入时,读取机10将收据夹持用片材20变换为图像数据。图像数据包含例如图像文件、根据OCR的识别字符数据。读取机10将变换后的图像数据保存在图像数据存储部101中。例如,读取机10是扫描仪、OCR处理装置等利用众所周知的技术的装置。
图像数据读入部11读出在图像数据存储部101中保存的图像数据。再有,图像数据读入部11从收据数据识别装置1的外部的输入装置输入图像数据也可。外部的输入装置是读取装置、网络装置等。在该情况下,例如经由网络等,输入装置(未图示)输入通过设置在收据数据识别装置1的设置场所以外的读取装置所输入的收据夹持用片材20的图像数据,并保存在图像数据存储部101中。
店铺特别指定部12对收据夹持用片材20的标识码21进行标识,特别指定店铺码(或店铺)。再有,在图1的结构例中,用于店铺码的标识码21在收据夹持用片材20上被识别标记化,但店铺码的读取方法并不限定于本实施例。例如,在收据22的读取时,用户经由数字键盘、读卡器等外部输入装置输入店铺码也可。在该情况下,店铺特别指定部12接收从外部的输入装置输入的店铺码。此外,读取机10读取收据夹持用片材20的标识码21,店铺特别指定部12根据该读取的标识码21特别指定店铺码也可。
定义数据读入部13当接收通过店铺特别指定部12特别指定的店铺码时,从定义数据存储部102中检索与店铺码对应的定义数据。定义数据读入部13读出从定义数据存储部102中检索到的定义数据,将读出的定义数据发送到收据数据处理部14。
收据数据处理部14使用每个店铺码的定义数据,从图像数据中提取出包含收据项目名称及其金额的收据数据,根据提取出的收据数据特别指定营业额管理项目所需要的收据数据。因此,收据数据处理部14如图1所示那样,包含以下的功能部。
收据数据提取部141从存储在图像数据存储部101中的图像数据的识别字符数据中检索与在定义数据中定义的收据项目名称的字符串一致的识别字符,提取该识别字符数据。识别字符数据包含:表示根据收据数据识别装置1预先准备的词典(未图示)的候补字符与通过OCR处理的识别字符的差异度的值、和表示字符范围的相对的坐标位置(相对位置)。再有,针对识别字符数据,使用图6在后面叙述。
同一名称判定部140针对通过收据数据提取部141从图像数据提取的识别字符,使用定义数据判定相应的收据项目名称在收据22内是否包含同一名称的项目名称。
具体地,同一名称判定部140在与提取的识别字符相应收据项目名称在定义数据中定义为在收据22内存在具有同一收据项目名称的其它字符串的情况下,判定对该收据项目名称定义的、例如与锚点字符或多个关键词一致的识别字符是否存在。
在这里,锚点字符是将成为营业额管理项目的对象的收据项目名称与收据印字位置等的位置信息关联起来的、在其它的收据项目名称中独特的项目名称。多个关键词指的是包含成为营业额管理项目的对象的收据项目名称、并且与收据印字位置等的位置信息关联起来的、包含1个或多个其它的收据项目名称的一组关键词,该一组关键词是例如作为收据行而连续的关键词。
同一名称判定部140为了从图像数据检测锚点字符和多个关键词,具有锚点字符检测部142和关键词检测部143。以下,针对锚点字符检测部142和关键词检测部143进行说明。
(1)锚点字符检测处理
锚点字符检测部142针对与读取的收据22对应的定义数据,在读取对象的收据项目的项目名称在定义数据中定义为在收据内存在具有同一项目名称的其它字符串、并且定义有锚点字符的情况下,以下述方式执行锚点字符检测处理。
锚点字符检测部142在设定有与定义数据的读取字符关联起来的锚点字符的情况下,从在图像数据存储部101中存储的图像数据取得与设定的锚点字符一致的识别字符的位置,计算该位置与提取的识别字符的位置的距离。
(2)多个关键词检测处理
关键词检测部143针对与读取的收据22对应的定义数据,在读取对象的收据项目的项目名称在定义数据中定义为在收据内存在具有同一项目名称的其它字符串、并且定义有多个关键词的情况下,以下述方式执行多个关键词检测处理。
关键词检测部143在设定有与定义数据的读取字符关联起来的多个关键词的情况下,根据在图像数据存储部101中存储的图像数据,判定是否存在与设定的多个关键词一致的多个识别字符。
(3)在收据22内存在同一名称,并且检测出锚点字符的情况
收据数据特别指定部144在通过锚点字符检测部142检测出锚点字符的情况下,比较计算出的距离和在定义数据中设定的距离的信息,将与检测出的锚点字符的识别字符距离最近的识别字符作为读取对象的收据项目的项目名称(收据项目名称)而特别指定。
(4)在收据22内存在同一名称,并且检测出多个关键词的情况
收据数据特别指定部144在通过关键词检测部143检测出多个关键词的情况下,在多个关键词中将与1个收据项目名称的字符串一致的识别字符作为读取对象的收据项目的项目名称进行特别指定。
(5)在收据22内不存在同一名称情况
另一方面,收据数据特别指定部144在与通过收据数据提取部141提取的识别字符相应的收据项目名称在定义数据中定义为在收据内不存在具有同一收据项目名称的其它字符串的情况下,将提取的识别字符作为读取对象的收据项目的项目名称进行特别指定。
(6)将特别指定的识别字符作为收据数据进行特别指定
收据数据特别指定部144根据在(3)~(5)的任一个中特别指定的识别字符的位置数据、和与读取对象的收据项目的项目名称对应的金额项目的相对位置数据,提取表示该金额项目的识别字符。
如以上说明的那样,收据数据特别指定部144当从收据数据提取部141或同一名称判定部140接收与收据项目名称对应的金额项目的相对位置时,从在图像数据存储部101中存储的识别字符中,提取与该金额项目的相对位置对应的识别字符。由此,收据数据特别指定部144能够正确地特别指定与收据项目名称对应的金额项目。即,能够特别指定与收据项目相关的收据数据,该收据数据包含:收据项目名称的字符串和与其对应的金额栏的金额项目的字符串。
如上所述,即使在印字在收据22的读取对象的收据项目名称中存在多个同一名称的情况下,通过在定义数据中设定的锚点字符或多个关键词的信息,判定与这些其它的项目名称的相对位置,由此能够正确地读取与读取对象的收据项目名称对应的金额项目。
营业额管理数据生成部15使用通过收据数据处理部14特别指定的收据数据,生成营业额管理数据。具体地,营业额管理数据生成部15使用与收据项目名称一致的识别字符、和在定义数据中定义的与对应的营业额管理项目名称对应起来的对应关系信息1022,对识别结果中的金额项目的数值数据进行运算(变换),生成营业额管理数据。营业额管理数据包含:店铺码、营业额管理项目以及与营业额管理项目对应的金额。
例如,营业额管理数据生成部15根据营业额管理项目和收据项目的对应关系信息1022,按每个店铺码,变换为与“营业额日期”、营业额管理项目No.1“现金营业额”、No.2“赊销营业额”、No.3“信用营业额”、…等与营业额相关的项目对应的金额,将其存储在营业额管理数据存储部103中。
以下,按照图4、图9、图10、图11和图14的处理流程图,一边也使用其它的图,一边针对在图1中表示的收据数据识别装置1的详细的功能进行说明。
图4是本发明的实施方式的收据数据识别装置1的处理流程图。根据图4,针对收据数据识别装置1执行的处理具体地进行说明。
起动收据数据识别装置1,开始本处理。当向读取机10输入收据夹持用片材20时,读取机10读取收据夹持用片材20,将读取的收据夹持用片材20的图像数据保存在图像数据存储部101中(步骤S11)。
为了具体地进行说明,使用图5~图7,说明从收据的图像数据进行OCR处理的字符串。
图5示出了通过读取机10读取的收据22b的图像的例子。通过读取机10生成的图像数据包含利用OCR处理的识别字符数据。读取机10当对收据22(22b)的图像进行OCR处理时,生成识别字符数据,存储在图像数据读入部11中。识别字符数据包含由识别字符组成的字符串的字符数以及字符串的坐标、构成字符串的字符的坐标以及来自词典的作为候补字符的识别字符列表。OCR处理的识别字符的对象是在收据22上印刷的字符串#1、字符串#2、…字符串#14、…等。例如,字符串#14是“総売上”(总营业额)。
图6是表示利用OCR处理的识别字符数据的一个例子的图。特别地,在图6中针对在图5中示出的字符串#14“総売上”(总营业额)的识别字符数据110而进行表示。
在图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中的图像的特定位置。
进而,识别字符数据110包含字符#141“総”、#142“売”、以及#143“上”的3个字符的识别字符列表。识别字符列表根据来自词典的被作为候补字符的识别位次,储存有被作为其候补的识别字符、和该识别字符与读取的字符的差异度(或一致度)。例如,在字符#141“総”的识别字符列表中,位次“1”是识别字符“総”,差异度是“1311”,位次“2”是“脆”,差异度是“1581”,对于其它的位次也同样地被示出。差异度表示例如越是接近0的数值,与预先准备的词典(未图示)的候补字符一致的程度越大,该值越大,与词典的候补字符差异的程度越大。对于字符#142“売”以及#143“上”的识别字符列表也如图6所示。
图7是表示在图像数据存储部101中保存的识别字符表1011的一个例子的图。识别字符表1011是按每个被读入的图像数据来储存识别字符数据的表。进而,识别字符表1011按收据22的每个被识别的字符串,包含识别字符数据。识别字符数据如上所述。
在图7中示出的识别字符表1011储存在图5中示出的字符串#1~#14、…等识别字符数据。例如,上述的字符串#14“総売上”(总营业额)、构成字符串#14的字符#141“総”、#142“売”、以及#143“上”被储存在识别字符表1011中。对于其它的字符串也同样地被储存。再有,由于在图7中示出的识别字符表1011中的项目、设定等的定义和图6的识别字符数据的这些定义是同样的,所以在此省略说明。
接着,当图像数据读入部11从图像数据存储部101中读入图像数据时,店铺特别指定部12根据图像数据判别收据夹持用片材20的标识码21,从判别出的标识码21中读取店铺码(步骤S12)。
具体地,店铺特别指定部12对例如QR码等进行译码,根据译码后的数据特别指定店铺码、或与店铺码对应的标识号码等。再有,通过读取机10对QR码进行译码,店铺特别指定部12根据译码后的数据来特别指定店铺码也可,该特别指定方法并不被限定。
接着,定义数据读入部13当接收通过店铺特别指定部12特别指定的店铺码时,从定义数据存储部102中取得与店铺码对应的定义数据(步骤S13)。
图8是说明定义数据表1021的图。以下,使用图8,说明定义数据读入部13取得的定义数据的一个例子。
在图8中示出的收据22t是为了某个店铺的定义数据的制作而准备的收据22(作为基准收据)的图像的一部分。此外,在图8中,定义数据表1021是对预先制作的定义数据进行储存并被存储在定义数据存储部102中的数据。再有,在收据22t中显示有行号码、收据项目名称和金额。假设从该收据22t,第14行(BX14)的“现金营业额金额”、和第18行(BX18)的“其它兑换券金额”是提取对象的收据项目。
在定义数据表1021中,提取对象的收据项目作为定义数据而被注册。为了预先制作定义数据,使用作为每个店铺的基准的基准收据(收据22t),基于基准收据,制作对每个店铺的收据22的定义数据。
在定义数据表1021中,储存有对象的店铺码、和提取出的每个收据项目的“读取项目”、“项目属性”、“读取字符”以及“金额栏的读取位置”。“店铺码”是与成为对象的收据的店铺对应的每个店铺的标识号码。“读取项目”是营业额管理项目的名称。“项目属性”是要读取的收据项目名称的属性。该属性例如是“1”、“2”或“3”的任一个值。“1”被设为是在与营业额管理项目对应的收据项目名称与基准收据未重复(通常的项目)的情况下的属性,“2”被设为是在有重复的同一名称且设定锚点(anchor)字符的情况下的属性,“3”被设为是在有重复的同一名称且设定多个关键词的情况下的属性。“读取字符”是与营业额管理项目对应的在基准收据上印字的收据项目名称。“金额栏的读取位置”是从读取字符起的收据项目的金额(包含数值字符、货币记号等)的相对位置。
在图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。
在图8中示出的定义数据表1021对根据在图8中示出的收据22t而制作的定义数据进行储存。如图8所示那样,在定义数据表1021中,“店铺码”:“100001”被设定为成为基准收据的对象的店铺码。“读取项目#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等整数。
以上说明的定义数据表1021在收据数据提取部141提取收据数据时,经由定义数据读入部13被参照。收据数据提取部141基于储存在定义数据表1021中的定义数据,针对读入的图像数据(收据22的识别字符),提取收据项目。即,收据数据提取部141利用基准收据的定义数据,能判断要提取的收据项目。
再有,实际上,即使在细算收据(收据22)是以相同的POS系统进行印刷的情况下,也存在由于偶尔的输出导致跳过(漏掉)中途的收据项目的一部分而进行印刷的情况。因此,当以固定坐标制作在定义数据表1021中的“金额栏的读取位置”时,无法应对这样的跳过一部分的收据项目而进行印刷的情况。因此,如图8中示出的定义数据表1021那样,通过作为定义数据使用从收据项目名称的字符串位置起的相对位置的坐标位置,从而能够应对这样的跳过一部分的收据项目而进行印刷的情况。此外,在图8中,以收据项目名称和其对应的金额在相同的行进行印刷的例子进行了说明,但收据项目名称和其对应的金额在不同的行也可。在该情况下,在定义数据中注册该不同的行的金额的相对位置等。
接着,收据数据处理部14当从定义数据读入部13中接收与店铺码对应的定义数据时,执行收据数据处理(步骤S14)。针对该收据数据处理的详细的流程,使用图9在后面叙述。
在通过收据数据处理部14进行收据数据处理之后,营业额管理数据生成部15根据处理后的收据数据生成营业额管理数据。营业额管理数据生成部15将生成的营业额管理数据保存在营业额管理数据存储部103中(步骤S15)。在对营业额管理数据进行保存之后,收据数据识别装置1结束本处理。再有,针对步骤S15的详细的处理流程,使用图14在后面叙述。
以上说明的处理流程是收据数据识别装置1执行的处理整体的流程。
图9是在图4示出的步骤S14中的收据数据处理的详细的处理流程图。根据图9,针对收据数据处理部14执行的收据数据处理,具体地进行说明。
收据数据提取部141从图像数据中仅提取作为收据22的对象的行的项目名称(步骤S21)。
具体地,收据数据提取部141当从图像数据读入部11接收图像数据(识别字符数据)时,从收据22的第1行仅提取项目名称。例如,在为图5的图像数据的情况下,收据22b的字符串#1“2010年10月10日(日) 22:30 No:0002”被提取。字符串#2“**”、…、字符串#7“销售合计”、字符串#8“297点”、字符串#9“¥226,701”、…等被提取,空行等未被提取。再有,在该步骤S21中,作为项目名称,也包含收据项目名称、金额、记号(例如“**”)等而被提取。
接着,收据数据提取部141参照在定义数据表1021中储存的定义数据(步骤S22)。
具体地,定义数据读入部13从储存在定义数据存储部102中的定义数据表1021读出与店铺码对应的定义数据。定义数据读入部13将读出的定义数据发送至收据数据提取部141。收据数据提取部141在步骤S23以后的处理中,使用从定义数据读入部13发送的定义数据。再有,收据数据提取部141将从定义数据读入部13发送的定义数据保存在工作存储器(未图示)中,在工作存储器上参照定义数据。
接着,收据数据提取部141检查提取出的项目名称是否在定义数据中被设定(步骤S23)。
具体地,收据数据提取部141针对在图5中示出的字符串#14“総売上”(总营业额),检查在定义数据表1021的读取字符#n(n为整数)中是否存在一致的。
接着,在提取的项目名称被设定在定义数据中的情况下(步骤S23:“是”),同一名称判定部140参照读取对象的收据项目名称的项目属性(步骤S24)。另一方面,在提取的项目名称没有被设定在定义数据中的情况下(步骤S23:“否”),转移到步骤S28。
接着,同一名称判定部140检查在定义数据中是否定义有同一名称的收据项目名称(步骤S25)。在定义数据中定义有同一名称的收据项目名称的情况下(步骤S25:“是”),同一名称判定部140执行同一名称判定处理(步骤S26)。另一方面,在定义数据中定义为没有同一名称的收据项目名称的情况下(步骤S25:“否”),同一名称判定部140将处理转移到步骤S27。
图10是图11是步骤S26中的同一名称判定处理的详细的处理流程图。以下,按照图10和图11,针对同一名称判定部140执行的同一名称判定处理具体进行说明。
锚点字符检测部142根据定义数据,判定读取对象的收据项目名称的项目属性是否是锚点字符(步骤S261)。在项目属性是锚点字符的情况下(步骤S261:“是”),将处理转移到步骤S262。另一方面,在项目属性不是锚点字符的情况下(步骤S261:“否”),即在项目属性是多个关键词的情况下,将处理转移到步骤S267。
当从步骤S261转移处理时,锚点字符检测部142取得与收据项目名称一致的识别字符的位置数据(步骤S262)。
为了具体进行说明,在图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的处理。
图12所示的定义数据表1021c例如是存储有与店铺码“100001”对应的定义数据的表。在图12所示的定义数据表1021c中,读取项目#1:“总营业额”是营业额管理项目No.5的项目名称,与收据22的收据项目名称“总营业额”对应。而且,项目属性#1:“2”表示作为读取项目的属性,在读取对象的收据项目名称中有同一名称,设定有锚点字符。读取字符#1:“总营业额”是收据22c的收据项目名称“总营业额”作为读取字符而被设定。金额栏的读取位置#1是(x11,y11)-(x’11,y’11),在收据22c上,表示例如从字符串Str#11“总营业额”到金额栏中的金额项目Dat#11“¥168,735”的相对距离。
此外,在图12所示的定义数据表1021c中,锚点字符是收据22c内的其它的收据项目名称,并且是独特的字符。例如,锚点字符“贷款现额”是与读取字符#1:“总营业额”关联起来的独特的字符。锚点字符的距离,是从收据22上的被设为锚点字符的字符串到收据22上的与收据项目名称相应的读取字符#1为止的将y坐标作为基准的距离。例如,锚点字符的距离“+100”,是从被设为锚点字符的收据22c上的字符串Str#41“贷款现额”到收据22c上的收据项目名称的字符串Str#11“总营业额”为止的将y坐标作为基准的距离“+100”,意味着字符串Str#11“总营业额”与字符串Str#41“贷款现额”相比在行的上端侧,作为y坐标的差是相对值“100”。
例如,在上述的步骤S262中,锚点字符检测部142从图12所示的收据22c的图像数据取得字符串Str#11,Str#21,Str#31的位置数据,作为与收据项目名称“总营业额”一致的识别字符。
接着,锚点字符检测部142从图像数据取得与锚点字符一致的识别字符的位置数据(步骤S263)。
具体地,锚点字符检测部142经由图像数据读入部11,从在图像数据存储部101中储存的收据22c的图像数据,取得与锚点字符一致的字符串Str#41“贷款现额”所相应的识别字符的位置数据。
接着,锚点字符检测部142根据与收据项目名称一致的识别字符的位置、和与锚点字符一致的识别字符的位置,计算各自的距离(步骤S264)。
具体地,如图12所示,在定义数据表1021c中,金额栏的读取位置#1是(x11,y11)-(x’11,y’11),表示从收据22c内的字符串Str#11“总营业额”到金额项目Dat#11的相对距离。锚点字符“贷款现额”是与读取字符#1“总营业额”关联起来的独特的字符。锚点字符的距离Ref#1,是到收据22c上的与收据项目名称相应的读取字符#1的将y坐标作为基准的距离。
例如,锚点字符的距离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坐标。
接着,锚点字符检测部142比较在定义数据中设定的与锚点字符的距离和计算出的各个距离,将差分小的判断为是相应的(成为营业额管理项目的对象的)收据项目的项目名称(步骤S265)。
具体地,如图12所示,锚点字符检测部142针对距离Ref#2和距离Ref#3判断为其是负的距离,不是接近于“+100”的值,判断为字符串Str#21“总营业额”和Str#31“总营业额”不是读取字符#1“总营业额”的读取对象。另一方面,由于距离Ref#1是与距离“+100”最接近的值,所以锚点字符检测部142判断为字符串Str#11“总营业额”是读取字符#1“总营业额”的读取对象。即,锚点字符检测部142根据锚点字符Str#41“贷款现额”以及锚点字符的距离“+100”,检测出字符串Str#11“总营业额”是读取对象的收据项目名称。
接着,收据数据特别指定部144使用判断为是相应的收据项目名称的位置信息,从图像数据提取表示金额项目的识别字符(步骤S266)。
具体地,收据数据特别指定部144根据通过锚点字符检测部42判断为是相应的收据项目名称的位置数据、和与设定在定义数据的该收据项目名称对应的金额项目的相对位置数据,从图像数据中提取表示金额项目的识别字符。
例如,如图12所示,在定义数据表1021c中,金额栏的读取位置#1是(x11,y11)-(x’11,y’11),表示从收据22c内的字符串Str#11“总营业额”到金额项目Dat#11的相对距离。收据数据特别指定部144从定义数据表1021c取得该相对距离。此外,收据数据特别指定部144从在图像数据存储部101中存储的图像数据取得与字符串Str#11“总营业额”对应的识别字符的位置数据。由此,收据数据特别指定部144使用该相对距离和与字符串Str#11“总营业额”对应的识别字符的位置数据,从在图像数据存储部101中存储的图像数据取得位于从字符串Str#11“总营业额”起距离Dis#11的金额项目Dat#11“¥168,735”。
在提取表示该金额项目的识别字符之后,结束本处理。即,步骤S26(步骤S261~S2610)的处理结束。
另一方面,当从步骤S261转移处理时,关键词检测部143根据定义数据的设定取得多个关键词(步骤S267)。
为了具体进行说明,在图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的处理。
例如,关键词检测部143如图13所示,由于定义数据表1021d的项目属性是#1:“3”,所以取得包含读取字符#1:“总营业额”、“纯营业额”、“现金现额”和“贷款现额”的多个关键词key#1。
接着,关键词检测部143在图像数据中检索与多个关键词一致的一组识别字符(步骤S268)。
具体地,关键词检测部143经由图像数据读入部11,从在图像数据存储部101中储存的收据22d的图像数据,检索与多个关键词Key#1“总营业额”、“纯营业额”、“现金现额”和“贷款现额”一致的一组识别字符。关键词检测部143取得检索到的这些识别字符数据。
接着,关键词检测部143从与检索到的多个关键词一致的一组识别字符中,将与收据项目名称一致的识别字符判定为是相应的收据项目的项目名称(步骤S269)。
具体地,如图13所示,关键词检测部143根据与字符串Str#22“总营业额”一致的识别字符的位置数据、和在多个关键词Key#1中包含的识别字符的位置数据的关系,判定为字符串Str#22“总营业额”不是在作为一组的多个关键词Key#1的行。同样地,针对字符串Str#32“总营业额”,也判定为不是在被作为一组的行。
另一方面,关键词检测部143根据与字符串Str#12“总营业额”一致的识别字符的位置数据、和在多个关键词Key#1中包含的识别字符的位置数据的关系,判定为字符串Str#12“总营业额”处于在一组多个关键词Key#1中包含的行的位置。即,关键词检测部143根据多个关键词Key#1“总营业额”、“纯营业额”、“现金现额”和“贷款现额”,检测到字符串Str#12“总营业额”是读取对象的收据项目的项目名称。
再有,图13所示的收据22d中,表示在一组多个关键词Key#1的关键词之间没有空行的情况,但在一组关键词之间包含空行或不存在收据项目名称的行等也可。在该情况下,除了空行、不存在收据项目名称(没有印字)的行等,将多个关键词Key#1看作一组关键词也可。此外,在图13表示的定义数据表1021d中,表示了将读取字符#1:“总营业额”设为位于上段的行中,设定一组多个关键词的例子,但在一组多个关键词中是从上起第2段的行也可,是其它的行也可。在该情况下,只要具有多个关键词中的哪一个项目名称是与营业额管理项目对应的项目名称的信息即可。
接着,收据数据特别指定部144使用判断为是相应的收据项目名称的位置信息,从图像数据提取表示金额项目的识别字符(步骤S2610)。
具体地,收据数据特别指定部144根据通过关键词检测部143判定为是相应的收据项目名称的位置数据、和与设定在定义数据的该收据项目名称对应的金额项目的相对位置数据,从图像数据中提取表示金额项目的识别字符。
例如,如图13所示,在定义数据表1021d中,金额栏的读取位置#1是(x11,y11)-(x’11,y’11),表示从收据22d内的字符串Str#12“总营业额”到金额项目Dat#12的相对距离。收据数据特别指定部144从定义数据表1021d取得该相对距离。此外,收据数据特别指定部144从在图像数据存储部101中存储的图像数据取得与字符串Str#12“总营业额”对应的识别字符的位置数据。由此,收据数据特别指定部144使用该相对距离和与字符串Str#12“总营业额”对应的识别字符的位置数据,从在图像数据存储部101中存储的图像数据取得位于从字符串Str#12“总营业额”起距离Dis#12的金额项目Dat#12“¥168,735”。
在提取表示该金额项目的识别字符之后,结束本处理。即,步骤S26(步骤S261~S2610)的处理结束。
接着,收据数据提取部141判断收据项目的最终行的处理是否结束(步骤S28)。在收据项目的最终行的处理没有结束的情况下(步骤S28:“否”),使处理返回步骤S21,反复进行下一个数据项目的行起的步骤S21~S27的处理。另一方面,在收据项目的最终行的处理结束的情况下(步骤S28:“是”),结束本处理。
通过以上的同一名称判定处理等,如图12或图13所示,收据数据特别指定部144能够特别指定例如与收据项目名称“总营业额”对应的金额项目“¥168,735”。
如上所述,收据数据处理部14能够使用注册的定义数据,对从收据图像读取的收据项目的识别字符,提取必要的收据数据。
此外,收据数据处理部14能够提取营业额管理数据需要的收据数据,能够将提取的收据数据的收据项目名称和金额以预先决定的对应关系变换(总计)为营业额管理项目的营业额管理数据。
通过以上说明的收据数据识别处理,即使在收据22内存在与成为读取对象的收据项目的项目名称同一名称的情况下,也能够使用定义数据,通过检索与项目名称关联起来的独特的锚点字符或多个关键词,正确地提取营业额管理项目所需要的收据项目的项目名称和对应的金额项目。由此,能够正确地总计营业额管理数据。
图14表示在步骤S15中的营业额管理数据生成处理的详细的处理流程图。根据图13,针对营业额管理数据生成部15执行的营业额管理数据生成处理具体地进行说明。
营业额管理数据生成部15从收据数据特别指定部144中取得营业额总计所需要的收据数据(步骤S31)。
具体地,营业额管理数据生成部15从收据数据特别指定部144中取得收据数据,该收据数据包含:店铺码、包含根据识别字符而特别指定的收据项目名称以及其金额的数据、和在图3中示出的对应关系信息1022(1022a)。
接着,营业额管理数据生成部15使用对应关系信息1022(1022a),对营业额管理项目的营业额管理数据而进行总计(步骤S32)。
具体地,营业额管理数据生成部15根据对应关系信息1022(1022a),基于营业额管理项目和收据项目的对应关系,将与收据项目名称对应的金额作为营业额管理项目的营业额管理数据而进行总计。通过以上,收据项目的金额(数值数据)被变换成营业额管理项目的数值数据。
接着,营业额管理数据生成部15将成为保存对象的店铺码的营业额管理数据保存在营业额管理数据存储部103的营业额管理DB1031中(步骤S33)。
例如,图15表示营业额管理DB(数据库)1031的例子。在营业额管理DB1031中,如图15所示那样,按每个店铺码储存有“营业额日期”、营业额管理项目No.1“现金营业额”、No.2“赊销营业额”、No.3“信用营业额”、…等的与营业额相关的细算项目所对应的数值(金额)。
通过以上,在营业额管理DB1031中,按每个店铺是完全不同的格式(片材形式)的收据22的收据项目被一元化,能将在从各租户的店铺输出的收据中未取得统一的收据项目、名称、数值等作为取得了统一性的营业额管理项目的营业额管理数据,不通过手工输入的作业而自动地进行收集。由此,由于租户管理部门的业务负责人能自动地总计每个店铺的营业额,所以能高效率地、高速地进行店铺的营业额管理业务。
此外,由于不需要变更在各店铺中准备的现金出纳机等的收据输出装置,所以对于租户侧来说能抑制多余的开销。
以上的收据数据识别装置进行的处理能通过计算机和软件程序实现,也能将该程序记录在计算机可读取的记录介质中,也能通过网络来提供。
附图标记说明
1 收据数据识别装置;
10 读取机;
11 图像数据读入部
12 店铺特别指定部;
13 定义数据读入部
14 收据数据处理部;
15 营业额管理数据生成部;
20 收据夹持用片材;
22 收据;
101 图像数据存储部
102 定义数据存储部
103 营业额管理数据存储部;
104 同一名称判定部;
141 收据数据提取部;
42 锚点字符检测部;
143 关键词检测部;
144 收据数据特别指定部。