具体实施方式
以下,一边使用附图,一边针对本发明的实施方式详细地进行说明。再有,在以下主要针对对店铺营业额进行总计的装置的例子进行说明,但本发明并不仅限于营业额总计,在用于对采购总计数据、印字在其它凭单等的实绩数据进行总计的装置等中也能同样地适用。
图1表示用于说明本发明的概要的装置结构例。在图1中,1是由CPU以及硬盘、存储器等的存储装置等构成的、基于从收据中读取的数据来执行与营业额的总计相关的处理的收据数据识别装置,20是标记有与各店铺对应的标识码21(在图2中示出)的、对各店铺的收据22(在图2中示出)进行夹持的收据夹持用片材。收据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预先被注册并储存在定义数据存储部102(在图1中示出)中。
在图3中,在收据22a示出的收据项目,例如第14个示出为“现金营业额金额”等,但实际上,第14个(第n个)并不是位于收据内的从最上段的位置起固定的行的位置。根据店铺当日的收据总计结果,在第n个以前的收据项目中存在印字行数增加、或在印刷时被省略的收据项目等。因此,在收据数据识别装置1中对包含收据项目中的收据项目名称和与其对应的金额项目的相对位置(相对的金额栏的位置)的定义数据预先进行注册,与对应关系信息1022一起使用,由此谋求上述课题的解决。
收据数据识别装置1根据以上那样的定义数据以及对应关系信息1022,按每个店铺码,对“营业额日期”、营业额管理项目No.1“现金营业额”、No.2“赊销营业额”、No.3“信用营业额”、…等的与营业额相关的项目所对应的金额进行总计,储存在营业额管理数据存储部103中。因此,收据数据识别装置1执行以下说明的处理。
收据数据识别装置1从收据夹持用片材20中读取收据22。收据数据识别装置1使用针对收据22的定义数据,提取出包含收据项目中的项目名称以及金额的收据数据。收据数据识别装置1使用营业额管理项目和收据项目的对应关系信息1022,将提取出的收据数据的项目变换为营业额管理数据。即,提取营业额管理数据所需要的收据项目,将收据项目的金额作为营业额管理数据进行总计。
如以上那样,收据数据识别装置1按每个发行收据22的店铺使用定义数据,执行收据数据识别处理。
以下,针对用于执行上述的收据数据识别处理的、在图1中示出的收据数据识别装置1的结构,具体地进行说明。
图像数据存储部101存储通过读取机10读取的收据夹持用片材20的图像数据。图像数据是包含通过对收据22的图像进行OCR处理而得到的识别字符及其坐标(位置数据)的数据。进而,图像数据包含标识码21也可。此外,图像数据存储部101与图像数据关联地储存收据夹持用片材20的图像文件、例如位图形式文件等也可。
定义数据存储部102是储存在收据数据识别装置1中使用的定义数据的存储单元。定义数据按每个店铺包含收据22的收据项目以及金额的位置等的信息。
具体地,在定义数据中,与在收据22上印字的收据项目名称的字符串对应地,注册有在多个店铺的营业额管理中共同使用的营业额管理项目名称。例如,定义数据包含:在收据22上印字的收据项目名称的字符串,和从收据项目名称的收据内位置起的、与该收据项目名称对应的金额项目的相对位置数据,该定义数据按照收据22中的成为读取对象的各收据项目名称的每一个而被定义。这样的定义数据按每个进行总计的店铺的收据22被预先制作,并储存在定义数据存储部102中。再有,定义数据的细节使用图8在后面叙述。
营业额管理数据存储部103是对收据数据识别装置1生成的营业额管理数据进行保存的存储单元。营业额管理数据是使按每个店铺而不同的收据项目与统一的营业额管理项目对应地收集各店铺的收据项目的金额的结果的数据。再有,营业额管理数据的细节使用图14在后面叙述。
读取机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在后面叙述。
倾斜检测部142使用被提取出的识别字符数据的识别字符的相对位置,检测识别字符的倾斜。例如,为了检测识别字符的倾斜,倾斜检测部142针对与收据项目名称的字符串一致的、1个或多个识别字符,求取相对于预先成为基准的方向的相对位置的偏离。倾斜检测部142将相对位置的偏离的方向相对于预先成为基准的方向所形成的角作为倾斜的角度来进行求取。再有,针对倾斜的检测方法,使用图11在后面叙述。
倾斜校正部143在识别字符的倾斜被检测出的情况下,参照定义数据,根据检测出的倾斜的角度,校正与收据项目名称的字符串一致的识别字符所对应的金额项目的相对位置。另一方面,倾斜校正部143在识别字符的倾斜未被检测出的情况下,不校正与收据项目名称的字符串一致的识别字符所对应的金额项目的相对位置。
收据数据特别指定部144当从倾斜校正部143中接收与收据项目名称对应的金额项目的相对位置时,从存储在图像数据存储部101中的识别字符中,提取与该金额项目的相对位置对应的识别字符。由此,收据数据特别指定部144能正确地特别指定与收据项目名称对应的金额项目。
营业额管理数据生成部15使用通过收据数据处理部14特别指定的收据数据,生成营业额管理数据。具体地,营业额管理数据生成部15使用与收据项目名称一致的识别字符、和在定义数据中定义的与对应的营业额管理项目名称对应起来的对应关系信息1022,对识别结果中的金额项目的数值数据进行运算(变换),生成营业额管理数据。营业额管理数据包含:店铺码、营业额管理项目以及与营业额管理项目对应的金额。
例如,营业额管理数据生成部15根据营业额管理项目和收据项目的对应关系信息1022,按每个店铺码,变换为与“营业额日期”、营业额管理项目No.1“现金营业额”、No.2“赊销营业额”、No.3“信用营业额”、…等与营业额相关的项目对应的金额,将其存储在营业额管理数据存储部103中。
以下,根据图4、图9、图10以及图13的处理流程图,一边也使用其它的图,一边针对在图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的详细的处理流程,使用图13在后面叙述。
以上说明的处理流程是收据数据识别装置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:“是”),倾斜检测部142针对与定义数据的读取字符一致的识别字符计算倾斜(步骤S24)。另一方面,在定义数据中没有设定的情况下(步骤S23:“否”),将处理转移至步骤S28。
具体地,倾斜检测部142根据与定义数据的读取字符一致的识别字符的y坐标来检测倾斜。
图11是说明倾斜检测处理以及倾斜校正处理的图。特别地,图11(A)是表示在收据22d中的收据项目的排列的例子的图,图11(B)是对识别字符的倾斜的检测以及校正的工作进行说明的图。
如图11(A)以及图11(B)所示那样,字符串Str#20“総売上”(总营业额)是由识别字符Str#21“総”、Str#22「売」以及Str#23「上」组成字符串,设这些字符在图像数据上相对于成为基准的方向,形成倾斜的角度α。
针对从图像数据读入部11发送的识别字符,收据数据提取部141参照定义数据表1021的读取字符#n,检查是否存在一致的内容。例如,针对作为识别字符的字符串Str#20“総売上”(总营业额),设对应于定义数据表1021的读取字符#n“総売上”(总营业额)。
收据数据提取部141针对从图像数据读入部11发送的字符串Str#20“総売上”(总营业额),参照工作存储器上的识别字符表1011。收据数据提取部141取得在识别字符表1011上检索命中的识别字符Str#21“総”、Str#22「売」以及Str#23「上」的图像数据(识别字符数据)。即,收据数据提取部141作为收据项目名称而提取字符串Str#20“総売上”(总营业额)。
倾斜检测部142使用通过收据数据提取部141而取得的识别字符数据,如以下那样,求取识别字符的倾斜。
例如,通过收据数据提取部141取得的图像数据是如图6的例子所示那样的Str#21“総”的坐标位置(x1,y1)-(x’1,y’1),Str#22「売」的坐标位置(x2,y2)-(x’2,y’2),Str#23「上」的坐标位置(x3,y3)-(x’3,y’3)等。再有,坐标位置(x1,y1)-(x’1,y’1)等表示长方形框的左上以及右下的坐标。此外,作为在图11(B)中示出的坐标(在图示中是黑点)Pt1=(x’1,y’1)、坐标Pt2=(x’2,y’2)、坐标Pt3=(x’3,y’3)而进行说明。
倾斜检测部142针对在图11(B)中示出的x坐标间距离k1以及y坐标间距离k2,通过使用坐标Pt1~Pt3,从而如以下所示那样计算倾斜的角度α。当求取k1、k2、tan(α)时,成为
的关系。
接着,倾斜校正部143根据计算出的倾斜判断是否需要校正识别字符的倾斜(步骤S25)。在不需要校正倾斜的情况下(步骤S25:“否”),处理进入步骤S27。另一方面,在需要校正倾斜的情况下(步骤S25:“是”),倾斜校正部143执行倾斜校正处理(步骤S26)。
当具体地进行说明时,倾斜校正部143将计算出的倾斜角度α和预先确定的容许角度进行比较,在小于容许角度的情况下,判断为对在图11(B)中示出的金额项目Dat#30不需要校正Y坐标。另一方面,在计算出的倾斜的角度α是在容许角度以上的情况下,倾斜校正部143判断为对在图11(B)中示出的金额项目Dat#30需要校正Y坐标。再有,图11(B)的例子是计算出的倾斜的角度α在容许角度以上的情况。
图12是表示被特别指定的收据数据的一个例子的图。特别地,在图12中将收据22内的不同的行的字符串作为例子,进行比较说明。
(1)在未进行倾斜检测的情况下
收据数据提取部141使用OCR处理的结果以及定义数据表1021,识别为与收据项目名称的字符串Str#10“現金在高”(现金现额)对应的金额项目是Dat#10“¥335,275”。此外,识别为与收据项目名称的字符串Str#20“総売上”(总营业额)对应的金额项目是Dat#30“¥623,603”。这不是正确的结果。通过对其进行倾斜的检测,从而如下那样提取出正确的金额项目,解决问题。
(2)在进行倾斜检测的情况下
针对在图12中示出的字符串Str#10“現金在高”(现金现额),倾斜检测部142检测出倾斜的角度α1。倾斜校正部143将倾斜角度α1和预先确定的容许角度进行比较,判断为小于容许角度,不进行校正处理。
针对在图12中示出的字符串Str#20“総売上”(总营业额),倾斜检测部142检测出倾斜的角度α2。倾斜校正部143将倾斜角度α2和预先确定的容许角度进行比较,判断为在容许角度以上,进行校正处理。
图10是在步骤S26中的倾斜校正处理的详细的处理流程图。以下,根据图10,针对收据数据处理部14执行的倾斜校正处理,具体地进行说明。
收据数据提取部141从定义数据中取得与收据项目名称对应的金额项目的位置信息(金额栏的位置)(步骤S261)。
为了具体地进行说明,图11(A)表示成为收据数据的提取对象的收据22d。在图11(A)中,在收据22d中有作为收据项目名称而被识别的字符串Str#10~#30、和与其分别对应的金额项目(金额的字符串)Dat#10~#30。例如,设成作为收据项目名称而被识别的字符串是Str#10“現金在高”(现金现额)、Str#20“総売上”(总营业额)以及Str#30“純売上”(纯营业额),设与其分别对应的金额项目是Dat#10“¥335,275”、Dat#20“¥654,735”以及Dat#30“¥623,603”。
收据数据提取部141使用与收据22d对应的店铺码的定义数据表1021(例如图8),从“读取字符#10”中取得收据项目名称的字符串Str#10,从“金额栏的读取位置#10”中取得对应的金额项目Dat#10的位置信息(金额栏的位置)。此外,同样地,针对字符串Str#20以及Str#30,也同样地取得金额项目Dat#20以及Dat#30的位置信息。
接着,倾斜校正部143根据检测出的倾斜的角度计算出金额栏的位置的Y坐标的校正量(步骤S262)。接着,倾斜校正部143根据计算出的校正量对金额栏的位置的Y坐标进行校正(步骤S263)。
具体地,倾斜校正部143对金额项目Dat#30,如以下说明那样,校正金额栏的位置的Y坐标。
校正前的金额栏的位置如图11(B)的实线长方形框所示那样,位于从“金额栏的读取位置#20”取得的位置信息(x21,y21)-(x’21,y’21)。倾斜校正部143使用检测出的倾斜的角度α,计算出取得的位置信息的y坐标的校正量△y。在此,设为
。再有,在上述示出的倾斜角度以及校正量的计算方法是一个例子,是其它的计算方法也可。例如,如
那样,使用金额栏的读取位置#20的左端和右端的x坐标的平均值进行计算也可。
由此,如图11(B)的虚线长方形框所示那样,倾斜校正部143将校正后的金额栏的位置校正为(x21,y21+△y)-(x’21,y’21+△y)。由于在图11(B)的虚线长方形框内存在金额项目Dat#20“¥654,735”,所以倾斜校正部143判断为与字符串Str#20对应的金额项目是Dat#20。
在以上说明的校正处理后,结束步骤S26(S261~S263)。在此,返回到图9的处理流程图的步骤S27,根据图9进行说明。
接着,收据数据特别指定部144使用在定义数据设定的金额的位置信息或校正后的金额的位置信息,取得金额项目(步骤S27)。
具体地,收据数据特别指定部144取得与校正后的位置信息的坐标或未被校正而直接作为金额的位置信息的坐标接近的、定义数据的“读取项目#n”的坐标的字符串。
例如,针对在图12中示出的字符串Str#10“現金在高”(现金现额)的金额项目,由于倾斜的角度α1小于容许角度,所以倾斜校正部143不执行倾斜校正处理。由此,收据数据特别指定部144识别为与字符串Str#10“現金在高”(现金现额)对应的金额项目是Dat#10“¥335,275”。即,特别指定收据项目名称“現金在高”(现金现额)以及金额项目“¥335,275”的收据数据。
另一方面,在图12中,针对字符串Str#20“総売上”(总营业额)的金额项目,由于通过倾斜检测部142检测出的倾斜的角度α2在容许角度以上,所以倾斜校正部143执行倾斜校正处理。在执行倾斜校正处理后,倾斜校正部143针对字符串Str#20“総売上”(总营业额)的金额项目,设为处于方向L#21的距离Dis#21的金额项目Dat#20“¥654,735”。由此,收据数据特别指定部144识别为与字符串Str#20“総売上”(总营业额)对应的金额项目Dat#20“¥654,735”。即,特别指定收据项目名称“総売上”(总营业额)以及金额项目“654,735”的收据数据。
接着,判断收据项目的最终行的处理是否结束(步骤S28)。在收据项目的最终行的处理未结束的情况下(步骤S28:“否”),使处理返回至步骤S21,重复进行从下一个收据项目的行起的步骤S21~S27的处理。另一方面,在收据项目的最终行的处理结束的情况下(步骤S28:“是”),结束本处理。
通过以上的校正处理,如图11(A)所示那样,收据数据特别指定部144能够特别指定例如与收据项目名称Str#20“総売上”(总营业额)对应的金额项目Dat#20“¥654,735”。
如以上那样,收据数据处理部14使用定义数据,对从收据图像读取的收据项目的识别字符,能针对每一个检测出倾斜,根据检测出的倾斜执行校正处理,提取需要的收据数据。
此外,收据数据处理部14能够提取出营业额管理数据所需要的收据数据,能以预先确定的对应关系将提取出的收据数据的收据项目名称以及金额变换(总计)为营业额管理项目的营业额管理数据。
通过以上说明的收据数据识别处理,能对各个收据行的识别字符进行倾斜的检测和该倾斜的校正,因此能排除收据用纸在中途被折弯的情况、印刷偏离等的影响,能正确地提取出收据项目名称以及对应的金额项目。由此,能正确地对营业额管理数据进行总计。
图13表示在步骤S15中的营业额管理数据生成处理的详细的处理流程图。根据图13,针对营业额管理数据生成部15执行的营业额管理数据生成处理具体地进行说明。
营业额管理数据生成部15从收据数据特别指定部144中取得营业额总计所需要的收据数据(步骤S31)。
具体地,营业额管理数据生成部15从收据数据特别指定部144中取得收据数据,该收据数据包含:店铺码、包含根据识别字符而特别指定的收据项目名称以及其金额的数据、和在图3中示出的对应关系信息1022。
接着,营业额管理数据生成部15使用对应关系信息1022,作为营业额管理项目的营业额管理数据而进行总计(步骤S32)。
具体地,营业额管理数据生成部15根据对应关系信息1022,基于营业额管理项目和收据项目的对应关系,将与收据项目名称对应的金额作为营业额管理项目的营业额管理数据而进行总计。通过以上,收据项目的金额(数值数据)被变换成营业额管理项目的数值数据。
接着,营业额管理数据生成部15将成为保存对象的店铺码的营业额管理数据保存在营业额管理数据存储部103的营业额管理DB1031中(步骤S33)。
例如,图14表示营业额管理DB(数据库)1031的例子。在营业额管理DB1031中,如图14所示那样,按每个店铺码储存有“营业额日期”、营业额管理项目No.1“现金营业额”、No.2“赊销营业额”、No.3“信用营业额”、…等的与营业额相关的细算项目所对应的数值(金额)。
通过以上,在营业额管理DB1031中,按每个店铺是完全不同的格式(片材形式)的收据22的收据项目被一元化,能将在从各租户的店铺输出的收据中未取得统一的收据项目、名称、数值等作为取得了统一性的营业额管理项目的营业额管理数据,不通过手工输入的作业而自动地进行收集。由此,由于租户管理部门的业务负责人能自动地总计每个店铺的营业额,所以能高效率地、高速地进行店铺的营业额管理业务。
此外,由于不需要变更在各店铺中准备的现金出纳机等的收据输出装置,所以对于租户侧来说能抑制多余的开销。
以上的收据数据识别装置进行的处理能通过计算机和软件程序实现,也能将该程序记录在计算机可读取的记录介质中,也能通过网络来提供。
附图标记的说明
1 收据数据识别装置;
10 读取机;
11 图像数据读入部;
12 店铺特别指定部;
13 定义数据读入部;
14 收据数据处理部;
15 营业额管理数据生成部;
20 收据夹持用片材;
101 图像数据存储部;
102 定义数据存储部;
103 营业额管理数据存储部;
141 收据数据提取部;
142 倾斜检测部;
143 倾斜校正部;
144 收据数据特别指定部。