生成装置、存储介质、识别系统以及生成方法与流程

文档序号:15518745发布日期:2018-09-25 18:55阅读:156来源:国知局

实施方式涉及生成装置、存储介质、识别系统以及生成方法。



背景技术:

以往以来,已知有使用在账票或物品等对象物上打印的识别编号来识别对象物、或追踪对象物、或管理对象物、或检索对象物的系统。在这种系统中,使用拍摄处理以及光学的字符识别处理,自动识别对象物上打印的识别编号。

在这种系统中,执行字符识别处理的情况下,使用某些方法进行误识别的订正处理的情况较多。作为一般的误识别的订正处理,已知有例如单词后处理、n-gram后处理、使用bch码等代数学的错误订正代码的订正处理等。

但是,在识别对象为识别编号的情况下,无法使用单词后处理以及n-gram后处理作为订正处理。另外,在使用了代数学的错误订正代码的订正处理中,能够使用的字符的种类会产生制约。另外,在单词后处理、n-gram后处理以及使用代数学的错误订正代码的订正处理中,不能将由光学的字符识别处理等引起的特有的误识别的倾向反映于订正处理。



技术实现要素:

本发明要解决的课题在于,高精度地识别对象物上形成的代码字。

实施方式的生成装置,生成由图像形成装置以及识别装置使用的包括多个代码字的代码表。所述图像形成装置在对象物上形成表示从所述代码表选择的代码字的代码图像。所述识别装置基于对形成于所述对象物的所述代码图像进行字符识别的识别结果、所述代码表和预先生成的混淆矩阵,确定所述代码图像所表示的代码字。所述混淆矩阵,表示在由所述图像形成装置在所述对象物上形成表示各个字符的图像并由所述识别装置对所述图像进行了字符识别的情况下,被识别为各个字符的概率。所述生成装置具有:变更部,变更所述代码表;评价值计算部,使用所述混淆矩阵,计算表示变更后的所述代码表中包含的代码字被误识别的可能性的评价值;以及控制部,反复执行所述代码表的变更以及所述评价值的计算以使所述评价值变小,在达到了预先确定的条件的阶段,输出所述代码表。

根据上述生成装置,能够高精度地识别在对象物上形成的代码字。

附图说明

图1是表示第1实施方式的识别系统的图。

图2是表示识别系统的处理的流程的时序图。

图3是表示代码表的一例的图。

图4是表示字符集合的一例的图。

图5是表示图像形成装置打印从代码表中选择的代码字的状态的图。

图6是表示识别装置的功能构成的图。

图7是表示字符识别处理的流程图。

图8是表示连结成分的分组的一例的图。

图9是表示外接矩形的一例的图。

图10是表示代码识别部的功能构成的图。

图11是表示混淆矩阵的要素的配置的图。

图12是表示代码识别处理的流程图。

图13是表示生成装置的功能构成的图。

图14是表示第1实施方式的生成装置的处理的流程的流程图。

图15是表示第2实施方式的生成装置的处理的流程的流程图。

图16是表示第3实施方式的生成装置的处理的流程的流程图。

图17是表示实施方式的计算机的构成的图。

具体实施方式

(第1实施方式)

图1是表示第1实施方式的识别系统10的图。

第1实施方式的识别系统10,在账票或物品等对象物20的表面形成代码图像,该代码图像表示用于识别对象物20的信息即代码字。并且,在对象物20被加工或输送等后,识别系统10拍摄在对象物20的表面形成的代码图像,并对拍摄到的图像进行识别处理,来确定代码图像中包含的代码字。据此,识别系统10能够识别、或追踪、或管理、或检索被加工或输送等的对象物20。

识别系统10具备生成装置12、图像形成装置14、识别装置16及数据库服务器18。

生成装置12生成包括不同的多个代码字的代码表。另外,关于代码表的详细,参照图3以及图4等在后面叙述。

生成装置12将所生成的代码表提供给图像形成装置14以及识别装置16。生成装置12既可以经由网络对图像形成装置14以及识别装置16发送代码表,也可以将代码表记录于记录介质并供图像形成装置14以及识别装置16读取。

图像形成装置14受理对象物20。例如,图像形成装置14受理由输送装置输送的对象物20。图像形成装置14为,以对象物20被配置于规定的场所的定时,图像形成装置14从由生成装置12所生成的代码表中选择应当对该对象物20分配的代码字。并且,图像形成装置14在对象物20上的规定的位置形成表示所选择的代码字的代码图像。

例如,图像形成装置14在对象物20上的规定的位置印刷表示所选择的代码字的代码图像。在此情况下,图像形成装置14具有第1传感器装置22、印刷装置24及第1信息处理装置26。第1传感器装置22对在规定的场所配置了对象物20的情况进行检测。印刷装置24在对象物20的表面的规定的位置,印刷表示从第1信息处理装置26提供的代码字的代码图像。

第1信息处理装置26是计算机等,执行规定的应用程序,控制第1传感器装置22以及印刷装置24。第1信息处理装置26从生成装置12预先接收代码表,并存储所接收到的代码表。在通过第1传感器装置22检测到对象物20被配置在规定的场所的情况的定时,第1信息处理装置26从代码表中选择应当对对象物20分配的代码字,通过印刷装置24将表示所选择的代码字的代码图像印刷在对象物20的规定的位置。

另外,图像形成装置14也可以具有切削对象物20的表面等的切削装置来代替印刷装置24。在此情况下,切削装置在对象物20的表面等用激光器等形成表示代码字的凹凸。图像形成装置14使用这种切削装置,也能够将表示代码字的代码图像形成在对象物20上。

识别装置16接收形成有代码图像的对象物20。例如,识别装置16接收由输送装置输送的对象物20。在对象物20配置在规定的拍摄位置的定时,识别装置16拍摄形成于对象物20的代码图像。识别装置16对于拍摄得到的代码图像进行字符识别处理,取得字符串即识别结果。并且,识别装置16基于对代码图像进行了字符识别的识别结果、由生成装置12所生成的代码表及预先生成的混淆矩阵,确定代码图像所表示的代码字。

另外,图像形成装置14使用的代码表和识别装置16使用的代码表相同。另外,关于混淆矩阵的详细,参照图11等在后面叙述。

例如,识别装置16具有第2传感器装置28、拍摄装置30及第2信息处理装置32。第2传感器装置28检测对象物20配置在规定的拍摄位置的情况。拍摄装置30拍摄对象物20的表面的规定的位置。

第2信息处理装置32是计算机等,执行规定的应用程序,控制第2传感器装置28以及拍摄装置30。第2信息处理装置32预先存储代码表以及混淆矩阵。第2信息处理装置32在由第2传感器装置28检测到对象物20配置在规定的拍摄位置的定时,使拍摄装置30拍摄对象物20的表面的规定的位置,取得代码图像。第2信息处理装置32对于代码图像进行字符识别处理,取得字符串即识别结果。并且,第2信息处理装置32基于识别结果、代码表及混淆矩阵,确定代码图像所表示的代码字。

数据库服务器18经由网络从识别装置16取得所确定的代码字等,并存储在内部。

图2是表示识别系统10的处理的流程的时序图。识别系统10以例如图2所示的流程执行处理。

生成装置12生成代码表(s11)。接着,生成装置12将所生成的代码表提供给图像形成装置14以及识别装置16(s12,s13)。

接着,图像形成装置14检测对象物20配置在规定的场所的情况(s14)。接着,图像形成装置14从代码表中选择应当对在规定的场所配置的对象物20分配的代码字(s15)。接着,图像形成装置14将表示所选择的代码字的代码图像形成在对象物20的表面上(s16)。另外,图像形成装置14每当新的对象物20配置在规定的场所,反复执行s14~s16的处理。

接着,形成有代码图像的对象物20向识别装置16移动(s17)。

接着,识别装置16检测对象物20配置在规定的拍摄位置的情况(s18)。接着,识别装置16拍摄对象物20上的表面的规定的位置,取得代码图像(s19)。接着,识别装置16对所取得的代码图像进行识别处理,确定代码图像所表示的代码字(s20)。接着,识别装置16输出所确定的代码字(s21)。接着,识别装置16例如对数据库服务器18发送所确定的代码字。另外,每当新的对象物20配置在规定的拍摄位置,识别装置16反复执行s18~s21的处理。

图3是表示代码表的一例的图。图4是表示字符集合的一例的图。

代码表包括不同的多个代码字。代码表包括m个(m是2以上的整数)代码字。代码表例如将各个代码字与从第1个到第m个的编号(代码索引)建立对应地存储。代码表可以是例如阵列。

各个代码字是从预先确定的字符集合中所选择的多个字符的排列。代码字例如是预先确定的n个(n是2以上的整数)字符的排列。字符集合中包含的字符可以是数字,可以是字母,可以是日语的平假名,可以是日语的汉字,还可以是它们的组合。例如,如图4所示,字符集合可以包含0至9的数字、及a、b、c、d、e以及f的字母。

将字符集合中包含的各个字符表示为s(i)。

i是对字符集合中的字符进行指定的编号(字符索引),是1以上且z以下的整数。z是字符集合中包含的字符的个数。例如,在图4所示的字符集合的情况下,各个字符为,s(1)=0,s(2)=1,s(3)=2,…,s(15)=e,s(16)=f。

将代码表中的第j个代码字如下述那样表示为a(j)。

a(j)=s(a(j,1)),s(a(j,2)),s(a(j,3)),…,s(a(j,n))

j是代码索引,是1以上且m以下的整数。a(j,k)是在字符集合中指定代码表中的第j个代码字的第k个(k是1以上且n以下的整数)字符的字符索引。

图5是表示图像形成装置14打印从代码表中选择的代码字的状态的图。图像形成装置14例如在内部保持计数器。图像形成装置14每当对象物20被配置在规定的场所,使计数器的值一个一个递增。图像形成装置14从代码表中取得与计数器的值一致的代码索引的代码字。并且,图像形成装置14将表示所取得的代码字的代码图像印刷于对象物20。据此,图像形成装置14能够在多个对象物20的每个对象物20上形成表示不同的代码字的代码图像。

图6是表示识别装置16的第2信息处理装置32的功能构成的图。识别装置16的第2信息处理装置32具有图像取得部42、字符识别部44及代码识别部46。

图像取得部42取得拍摄装置30拍摄到的代码图像。字符识别部44使用光学的字符识别处理,识别代码图像中包含的字符串。字符识别部44将字符串即识别结果提供给代码识别部46。另外,在字符识别部44识别而得到的识别结果中,有可能包含有错误。

代码识别部46基于对代码图像进行了字符识别的识别结果、代码表及预先生成的混淆矩阵,确定代码图像所表示的代码字。并且,代码识别部46输出所确定的代码字。另外,关于代码识别部46的详细,参照图10等在后面叙述。

图7是表示字符识别部44的字符识别处理的一例的流程图。图8是表示连结成分的分组的一例的图。图9是表示外接矩形的一例的图。

字符识别部44例如按照图7所示的流程图,对代码图像执行识别处理。首先,字符识别部44从代码图像中检测构成字符的像素(例如黑像素)连结而成的成分(区域)(s31)。

接着,字符识别部44将连结成分中距离为预先确定的阈值以下的连结成分彼此汇总并分组化(s32)。例如,字符识别部44如图8所示,将连结成分分组化。

接着,字符识别部44对于各个分组,计算外接于黑像素的矩形(外接矩形)(s33)。例如,字符识别部44如图9所示,对于各个分组计算外接矩形。

接着,字符识别部44对于各个分组,通过例如部分空间法对外接矩形的内部进行识别处理,取得外接矩形内的字符(s34)。接着,字符识别部44将从各个分组取得的字符在规定的方向上连结并生成由多个字符构成的字符串(s35)。然后,字符识别部44将所生成的字符串作为识别结果输出至代码识别部46(s36)。

图10是表示代码识别部46的功能构成的图。代码识别部46具有代码表存储部52、第1混淆矩阵存储部54、似然度计算部56及确定部58。

代码表存储部52存储由生成装置12预先生成的代码表。第1混淆矩阵存储部54存储预先生成的混淆矩阵。关于混淆矩阵,参照图11在后面叙述。

似然度计算部56从字符识别部44取得对形成于对象物20的代码图像进行了字符识别而得到的字符串即识别结果。似然度计算部56使用混淆矩阵计算代码表中包含的多个代码字的每个代码字的相对于识别结果的似然度。似然度计算部56也可以计算代码表中包含的多个代码字的每个代码字的相对于识别结果的对数似然度。

确定部58根据由似然度计算部56计算出的似然度,确定代码表中包含的多个代码字中、相对于识别结果的似然度最大的1个代码字。例如,确定部58确定代码表中包含的多个代码字中、相对于识别结果的对数似然度最小的代码字。并且,确定部58输出所确定的代码字。

图11是表示混淆矩阵的要素的配置的图。混淆矩阵表示,在由图像形成装置14在对象物20上形成表示字符集合中包含的各个字符的图像,并由识别装置16对形成于对象物20的图像进行字符识别的情况下,被识别为字符集合中包含的各个字符的概率。

混淆矩阵例如预先通过图像形成装置14实际在对象物20上形成多个字符并实际通过识别装置16进行字符识别来计算。另外,混淆矩阵既可以通过对形成处理和识别处理进行仿真来计算,也可以根据字符的形状等估计。

混淆矩阵例如可以是将字符集合中包含的多个字符的个数(n个)作为行数以及列数的对称矩阵。例如,混淆矩阵中,各列对应于表示正确的字符的字符索引(a),各行对应于表示识别结果的字符的字符索引(r)。

并且,将混淆矩阵中的a列、r行的要素表示为c(a,r)。c(a,r)表示,在由图像形成装置14在对象物20上形成表示以字符索引(a)所示的字符(s(a))的第1图像,并由识别装置16对形成于对象物20的第1图像进行了字符识别的情况下,被识别为以字符索引(r)所示的字符(s(r))的概率。

似然度计算部56计算代码表中包含的多个代码字的每个代码字的相对于识别结果的似然度。具体而言,似然度计算部56通过下述的数式(1)计算第j个代码字{a(j)=s(a(j,1)),s(a(j,2)),…,s(a(j,n))}的相对于识别结果{r=r(1),r(2),…,r(n)}的似然度(l(j))。

【数式1】

l(j)≡c(a(j,1),r(1))c(a(j,2),r(2))...c(a(j,n),r(n))…(1)

即,似然度计算部56,针对识别结果中包含的各个字符,从混淆矩阵取得将第j个代码字中的对应的字符作为正解的概率,并将全部所取得的概率相乘,由此计算第j个代码字的相对于识别结果的似然度。

另外,似然度计算部56也可以计算对数似然度。在此情况下,似然度计算部56通过下述的式(2)计算第j个代码字{a(j)=s(a(j,1)),s(a(j,2)),…,s(a(j,n))}的相对于识别结果{r=r(1),r(2),…,r(n)}的对数似然度(d(j))。

【数式2】

d(j)≡-lnc(a(j,1),r(1))-lnc(a(j,2),r(2))-...-lnc(a(j,n),r(n))…(2)

即,似然度计算部56,对于识别结果中包含的各个字符,从混淆矩阵取得将第j个代码字中的对应的字符作为正解的概率,并对所取得的概率的对数值乘以-1,并将全部的乘以-1后的概率的对数值相加,由此计算第j个代码字的相对于识别结果的对数似然度。另外,在计算对数似然度的情况,混淆矩阵也可以对于各个要素存储对应的概率的对数值。

图12是表示由代码识别部46进行的代码识别处理的流程图。代码识别部46例如按照图12所示的流程图,执行代码识别处理。

首先,在s41中,代码识别部46从字符识别部44取得字符串即识别结果。接着,代码识别部46对代码表中包含的每个代码字,执行s43的处理(s42与s44之间的循环处理)。在s43中,代码识别部46使用混淆矩阵,计算对象的代码字的相对于识别结果的似然度。具体而言,代码识别部46通过上述的式(1)计算似然度。也可以代替于此,代码识别部46通过上述的式(2)计算对数似然度。

在对于全部代码字结束了s43的处理的情况下,代码识别部46使处理进入到s45。在s45中,代码识别部46确定并输出代码表中包含的多个代码字中、似然度最大的1个代码字。另外,代码识别部46在计算出了对数似然度的情况下,确定并输出对数似然度最小的1个代码字。

图13是表示生成装置12的功能构成的图。生成装置12具有初始代码表生成部62、变更部64、第2混淆矩阵存储部66、评价值计算部68及控制部70。

初始代码表生成部62生成初始阶段的代码表。例如,初始代码表生成部62从字符集合随机地选择字符并生成多个代码字。然后,初始代码表生成部62生成表示包含所生成的多个代码字的初始阶段的代码表。另外,初始代码表生成部62也可以将预先登记的代码表作为初始阶段的代码表输出。

变更部64变更代码表,生成新的代码表。例如,变更部64在第1次时变更由初始代码表生成部62所生成的初始阶段的代码表,生成新的代码表。另外,变更部64在第2次以后进一步变更刚刚之前的一次变更后的代码表,生成新的代码表。在此情况下,变更部64变更代码表,以避免与过去已生成的代码表相同。

另外,在本实施方式中,变更部64变更代码表中包含的一部分的代码字中包含的字符,生成新的代码表。例如,变更部64变更代码表中包含的1个代码字中的1个字符,生成新的代码表。

第2混淆矩阵存储部66存储预先生成的混淆矩阵。第2混淆矩阵存储部66存储与识别装置16存储的混淆矩阵相同的混淆矩阵。

评价值计算部68对于由初始代码表生成部62所生成的初始阶段的代码表以及由变更部64变更后的代码表,使用混淆矩阵计算评价值。评价值是表示代码表中包含的代码字被误识别的可能性的值。因此,在与评价值大的代码表相比较而实际地使用了评价值小的代码表的情况下,能够减少识别装置16中的误识别。

另外,关于评价值的计算方法,在后面叙述详细情况。

控制部70反复使变更部64以及评价值计算部68执行代码表的变更以及评价值的计算,以使评价值变小。例如,控制部70使用梯度法,使变更部64以及评价值计算部68执行处理以使评价值变小。

具体而言,控制部70在变更后的代码表的评价值比变更前的代码表的评价值减少的情况下,确定代码表的变更,并通过变更部64进一步使变更已确定的代码表变更。另一方面,控制部70,在变更后的代码表的评价值未比变更前的代码表的评价值减少的情况下,取消代码表的变更,再次通过变更部64使代码表变更。据此,控制部70能够使代码表变更以使评价值变小。

并且,控制部70在达到了预先确定的条件的阶段,输出代码表。例如,控制部70在评价值的减少停止的情况下,输出代码表。更具体而言,控制部70在即使使代码表变更了预先确定的次数以上但评价值也未减少的情况下,输出评价值最小的代码表。另外,控制部70也可以在一定时间以上使代码表变更了的情况下强制地结束处理,输出在该时刻评价值最小的代码表。

图14是表示第1实施方式的生成装置12的处理的流程的流程图。第1实施方式的生成装置12按照图14所示的流程图生成代码表。

首先,在s51中,初始代码表生成部62生成初始阶段中的第1代码表。接着,在s52中,评价值计算部68使用混淆矩阵计算相对于第1代码表的评价值(第1评价值)。

接着,在s53中,变更部64变更第1代码表的一部分,生成第2代码表。例如,变更部64变更第1代码表中包含的1个代码字中的1个字符。

接着,在s54中,评价值计算部68使用混淆矩阵计算相对于第2代码表的评价值(第2评价值)。接着,在s55中,控制部70判断第2评价值是否比第1评价值小。在第2评价值比第1评价值小的情况下,即,变更了代码表以使评价值变小的情况下(s55的是),控制部70,使处理进入到s56。在第2评价值不比第1评价值小的情况下,即,未变更代码表以使评价值变小的情况下(s55的是),控制部70使处理进入到s58。

在s56中,控制部70将第2代码表置换为第1代码表。即,控制部70将第1代码表置换为评价值小的代码表。接着,在s57中,控制部70将第2评价值置换为第1评价值。然后,控制部70使处理返回到s53,从s53起反复执行处理。据此,控制部70能够在变更后的代码表的评价值比变更前的代码表的评价值减少的情况下,确定代码表的变更,进一步使变更已确定的代码表变更。

在s58中,控制部70判断是否达到了预先确定的条件。例如,控制部70判断是否是即使使第1代码表变更了预先确定的次数以上但评价值也未变小。在未达到预先确定的条件的情况下(s58的是),控制部70不执行任何处理而使处理返回到s53,从s53起反复执行处理。据此,控制部70能够在变更后的代码表的评价值不比变更前的代码表的评价值减少的情况下,取消代码表的变更,再次使代码表变更。

在达到了预先确定的条件的情况下(s58的是),控制部70使处理进入到s59。在s59中,控制部70输出在当前时刻评价值最小的代码表即第1代码表。

通过如以上那样进行处理,生成装置12能够生成在识别装置16中误识别减少的代码表。据此,本实施方式的识别系统10能够高精度地识别形成于对象物20的代码字。

(评价值)

接下来,进一步说明评价值。

评价值是表示代码表中包含的代码字被误识别的可能性的值。更详细而言,评价值是表示在由图像形成装置14在对象物20上形成表示代码表中包含的各个代码字的代码图像并由识别装置16对形成于对象物20的代码图像进行了字符识别的情况下,被误识别的可能性的大小的值。

生成装置12的评价值计算部68通过下述的式(11)计算评价值。

【数式3】

e是代码表的评价值。j表示1至m的整数,是对代码表中包含的代码字进行指定的编号。m是代码字中包含的代码字的个数。e(j)是对于代码表中的第j个代码字(a(j))的个别评价值。

即,生成装置12计算将对于代码表中包含的多个代码字的每个代码字的个别评价值合计而得到的值作为评价值。

个别评价值是对于对应的代码字确定根据识别装置16而不同的代码字的概率的近似值。更详细而言,个别评价值表示,在由图像形成装置14在对象物20上形成表示对应的代码字的代码图像、并由识别装置16对形成于对象物20的代码图像进行字符识别并从字符识别而得到的识别结果确定了代码字的情况下,确定与对应的代码字不同的代码字的概率的近似值。

生成装置12的评价值计算部68通过下述的式(12)计算个别评价值。

【数式4】

h表示1至m的整数,是对代码表中包含的代码字进行指定的编号。

e(j,h)表示,在由图像形成装置14在对象物20上形成表示第j个代码字的代码图像并由识别装置16对代码图像进行了字符识别的情况下,第j个代码字的相对于识别结果的对数似然度比第h个代码字的相对于识别结果的对数似然度大的概率的估计值。

更具体而言,e(j,h)通过下述的式(13)表示。

【数式5】

e(j,h)=p(d(h)<d(j))…(13)

d(j)是,在由图像形成装置14在对象物20上形成表示第j个代码字的代码图像并由识别装置16对代码图像进行了字符识别的情况下,代码表中包含的第j个代码字的相对于识别结果的对数似然度。d(h)是,在由图像形成装置14在对象物20上形成表示第j个代码字的代码图像并由识别装置16对代码图像进行了字符识别的情况下,代码表中包含的第h个代码字的相对于识别结果的对数似然度。p(d(h)<d(j))是d(h)比d(j)小的概率。

另外,关于代码表中包含的3个任意的代码字即a(j)、a(h)、a(g),“d(h)<d(j)”并且“d(g)<d(j)”的概率不是0。但是,本实施方式的生成装置12,假定“d(h)<d(j)”并且“d(g)<d(j)”的概率足够小,计算e(j)。因此,生成装置12计算出选择不同的代码字的概率的近似值而不是真值,来作为e(j)。

以下,对e的更具体的计算方法进一步进行说明。

在对表示e的式(11)中代入表示e(j)的式(12)时,成为下述的式(14)。

【数式6】

另外,e(j,h)如下述的式(15)那样表示。

【数式7】

将d(h,j)如下述的式(16)那样定义。

【数式8】

d(h,j)≡d(h)-d(j)…(16)

在使用式(16)的定义时,式(15)变形为如下述的式(17)那样。

【数式9】

e(j,h)=p(d(h,j)<0)…(17)

这里,将d(k,h,j)如下述的式(18)那样定义。

【数式10】

d(k,h,j)≡lnc(a(j,k),r(k))-lnc(a(h,k),r(k))…(18)

在对式(16)代入式(18)时,如下述的式(19)那样变形。

【数式11】

d(h,j)≡d(h)-d(j)

=(-lnc(a(h,1),r(1))-...-lnc(a(h,n),r(n)))-(-lnc(a(j,1),r(1))-...-lnc(a(j,n),r(n)))

=(lnc(a(j,1),r(1))-lnc(a(h,1),r(1)))+...+(lnc(a(j,n),r(n))-lnc(a(h,n),r(n)))

=d(1,h,j)+d(2,h,j)+...d(n,h,j)

…(19)

独立的概率变量的和的概率密度函数,通过对原来的概率密度函数进行卷积积分来计算。在本实施方式中,假定为识别结果的字符即s(r(1)),s(r(2)),…,s(r(n))互相独立。另外,假定为概率变量即d(1,h,j),d(2,h,j),…,d(n,h,j)也互相独立。

d(h,j)的概率密度函数即p(d(h,j)=x)如下述的式(20)那样表示。

【数式12】

p(d(h,j)=x)=p(d(1,h,j)=x)*p(d(2,h,j)=x)*...*p(d(n,h,j)=x)…(20)

另外,*表示对左右的式的卷积积分运算。

生成装置12的评价值计算部68,通过将式(20)所示的概率密度函数在d(h,j)<0的范围内积分,能够计算e(j,h)=p(d(h,j)<0)。

这里,概率密度函数(p(d(k,h,j)=x)),使用迪拉克的德尔塔函数(δ(·)),如下述的式(21)那样表示。

【数式13】

概率密度函数(p(d(k,h,j)=x))以及概率密度函数(p(d(h,j)=x))是变量x的连续函数,无法通过计算机处理。因此,生成装置12的评价值计算部68,对变量x设定下限值xmin、上限值xmax以及量化分级数nx,并按阵列处理概率密度函数(p(d(k,h,j)=x))以及概率密度函数(p(d(h,j)=x))。

在将以阵列表示的概率密度函数设为p(x)的情况下,阵列的第α个(α是1以上的整数)要素(p(α))通过下述的式(22)表示。

【数式14】

因此,表示概率密度函数(p(d(k,h,j)=x))的阵列中的第α个要素(p(α;d(k,h,j))),通过下述的式(23)表示。

【数式15】

生成装置12的评价值计算部68能够通过对p(α;d(k,h,j))执行接下来的第1步骤至第4步骤来计算。

首先,在第1步骤中,评价值计算部68将p(α;d(k,h,j))(α=1,…,nx)初始化为0。

在接下来的第2步骤中,评价值计算部68对于s=1,…,z,执行以下的第3步骤以及第4步骤。

在第3步骤中,评价值计算部68对α代入下述的式(24)的值。

【数式16】

在第4步骤中,评价值计算部68对p(α;d(k,h,j))加上c(a((j,k),s)。

评价值计算部68通过执行以上的处理,能够计算表示概率密度函数(p(d(k,h,j)=x))的阵列。

另外,概率密度函数(p(x))与概率密度函数(q(x))的卷积积分,通过下述的式(25)表示

【数式17】

因此,生成装置12的评价值计算部68,通过下述的式(26)计算以阵列表示的p(x)与以阵列表示的q(x)的卷积积分。

【数式18】

生成装置12的评价值计算部68能够通过执行如以上那样的运算,计算对于代码表的评价值。

(第2实施方式)

接下来,对第2实施方式的识别系统10进行说明。第2实施方式的识别系统10,代码表的生成方法不同,但关于其他的部分,具有与第1实施方式大致相同的功能以及构成。因此,关于第2实施方式,对大致相同的功能以及构成的框标以同一代码,除了区别点以外省略详细的说明。关于第3实施方式也是同样的。

图15是表示第2实施方式的生成装置12的处理的流程的流程图。第2实施方式的生成装置12按照图15所示的流程图生成代码表。

首先,在s61中,初始代码表生成部62生成初始阶段中的第1代码表。接着,在s62中,变更部64变更第1代码表的一部分,生成第2代码表。

接着,在s63中,评价值计算部68使用混淆矩阵计算差分评价值。差分评价值是表示第1评价值与第2评价值的差分的值,该第1评价值表示变更后的代码表中包含的代码字被误识别的可能性,该第2评价值表示变更前的代码表中包含的代码字被误识别的可能性。关于差分评价值的具体的计算方法,在后面叙述。

接着,在s64中,控制部70判断差分评价值是否小于0。即,控制部70判断第2评价值是否比第1评价值小。

在差分评价值小于0的情况下,即,变更了代码表以使评价值变小的情况下(s64的是),控制部70使处理进入s65。在差分评价值不小于0的情况下,即,未变更代码表以使评价值变小的情况下(s64的是),控制部70使处理进入s66。

在s65中,控制部70将第2代码表置换为第1代码表。即,控制部70将第1代码表置换为评价值小的代码表。然后,控制部70使处理返回到s62,从s62起反复执行处理。据此,控制部70能够在变更后的代码表的评价值比变更前的代码表的评价值减少的情况下,确定代码表的变更,进一步使变更已确定的代码表变更。

在s66中,控制部70判断是否达到了预先确定的条件。例如,控制部70判断是否是即使使第1代码表变更了预先确定的次数以上但评价值也未变小。在未达到预先确定的条件的情况下(s66的是),控制部70不执行任何处理而使处理返回到s62,从s62起反复执行处理。据此,控制部70能够在变更后的代码表的评价值未比变更前的代码表的评价值减少的情况下,取消代码表的变更,再次使代码表变更。

在达到了预先确定的条件的情况下(s66的是),控制部70使处理进入s67。在s67中,控制部70输出在当前时刻评价值最小的代码表即第1代码表。

如以上那样,第2实施方式的评价值计算部68使用混淆矩阵计算表示第1评价值与第2评价值的差分的差分评价值,该第1评价值表示变更后的代码表中包含的代码字被误识别的可能性,该第2评价值表示变更前的代码表中包含的代码字被误识别的可能性。然后,控制部70反复执行代码表的变更以及差分评价值的计算以使差分评价值小于0,并在达到了预先确定的条件的阶段输出代码表。

通过如以上那样进行处理,生成装置12能够生成在识别装置16中误识别减少的代码表。据此,本实施方式的识别系统10能够高精度地识别形成于对象物20的代码字。

(差分评价值)

将差分评价值表示为δe=(enew-e)。enew是表示变更后的代码表中包含的代码字被误识别的可能性的第1评价值。e是表示变更前的代码表中包含的代码字被误识别的可能性的第2评价值。在对δe进行数式变形后,成为如下述的式(27)那样。

【数式19】

enew(b,h)表示,在由图像形成装置14在对象物20上形成表示变更后的代码表中的第b个代码字的代码图像并由识别装置16对该代码图像进行了字符识别的情况下,第b个代码字的相对于识别结果的对数似然度比第h个代码字的相对于识别结果的对数似然度大的概率的估计值。另外,e(b,h)表示,在由图像形成装置14在对象物20上形成表示变更前的代码表中的第b个代码字的代码图像并由识别装置16对该对代码图像进行了字符识别的情况下,第b个代码字的相对于识别结果的对数似然度比第h个代码字的相对于识别结果的对数似然度大的概率的估计值。

enew(b,h)与e(b,h)的差,通过将代码表中的第j个代码字的第k个的字符,从a(j,k)置换为anew(j,k)而生成。因此,在b、h都不与j相等的情况下,enew(b,h)-e(b,h)=0。因此,式(27)如下述的式(28)那样变形。

【数式20】

生成装置12的评价值计算部68基于这样的式(28),计算差分评价值。

这样,生成装置12的评价值计算部68能够通过执行与变化的字符有关的运算来计算差分评价值。因此,生成装置12能够以与单独地计算变更前的代码表中的评价值和变更后的代码表中的评价值的各个评价值的情况相比更少的运算,计算差分评价值。

(第3实施方式)

接下来,对第3实施方式的识别系统10进行说明。第3实施方式的生成装置12使用遗传算法更新包含多个代码表的代码表集合,生成评价值小的代码表。

在第3实施方式中,用向量形式表现代码表。另外,将代码表对环境等的适应度作为代码表的评价值。据此,生成装置12能够通过选择处理、交叉处理以及突然变异处理等遗传算法中使用的处理方法使各个代码表进化。

代码表中的第j个代码字如下述那样表示。

a(j)=s(a(j,1)),s(a(j,2)),…,s(a(j,n))

第j个代码字也能够如下述那样,用对字符集合中的字符进行指定的字符索引的排列来表示。

a(j,1),a(j,2),…,a(j,n)

因此,代码表能够通过排列了第1个至第m个代码字中的字符索引的下述的式(29)那样的向量来表示。

【数式21】

t≡(a(1,1),a(1,1),...,a(1,n),a(2,1),...,a(2,n),...,a(m,1),a(m,2),...,a(m,n))

…(29)

生成装置12生成包含这样进行向量表现的多个代码表的代码表集合(t1,t2,t3,…,tm)。并且,生成装置12使这种代码表集合以遗传算法进化以使评价值变小,生成评价值小的代码表。

图16是表示第3实施方式的生成装置12的处理的流程的流程图。第3实施方式的生成装置12按照图16所示的流程图生成代码表。

首先,在s71中,初始代码表生成部62生成第1代的代码表集合,并将所生成的第1代的代码表集合作为当前一代的代码表集合。例如,初始代码表生成部62随机地选择字符,生成多个代码表,并将包括这多个代码表的代码表集合作为第1代的代码表集合。

接着,在s72中,评价值计算部68对于当前一代的代码表集合中包含的各个代码表,使用混淆矩阵,计算评价值。接着,在s73中,控制部70判断是否达到了预先确定的条件。

例如,控制部70检测代码表集合中包含的多个代码表的评价值中的最小的评价值。并且,控制部70判断是否有预先确定的世代数以上、最小的评价值未变。在预先确定的世代数以上、最小的评价值未变的情况下,控制部70判断为达到了预先确定的条件。

在未达到预先确定的条件的情况下(s73的是),控制部70使处理进入到s74。在达到了预先确定的条件的情况下(s73的是),控制部70使处理进入s76。

在s74中,变更部64根据遗传算法从当前一代的代码表集合生成下一代的代码表集合。例如,变更部64从当前一代的代码表集合之中选择适应度较高(评价值较小)的多个代码表,并对所选择的多个代码表进行交叉处理以及突然变异处理等,生成下一代的代码表集合。

接着,在s75中,控制部70将下一代的代码表集合置换为当前一代的代码表集合。接着,控制部70使处理返回到s72,从s72起反复执行处理。据此,控制部70能够根据遗传算法使代码表集合更新以使评价值变小。

另外,在s76中,控制部70输出达到了预先确定的条件的一代的代码表集合中包含的代码表中、评价值满足基准条件的代码表。例如控制部70输出达到了预先确定的条件的一代的代码表集合中包含的代码表中、评价值最小的代码表。

通过如以上那样进行处理,生成装置12能够生成减少了误识别的代码表。因此,本实施方式的识别系统10能够高精度地识别形成于对象物20的代码字。

(实施方式的计算机的构成)

图17是表示实施方式的计算机200的构成的图。在各实施方式中进行了说明的生成装置12、图像形成装置14的第1信息处理装置26以及识别装置16的第2信息处理装置32,能够通过例如图17所示的计算机200实现。

计算机200采用与通常的计算机同样的构成。即,计算机200具有处理电路202、rom204、ram206、存储装置208、网络if部210、器件if部212。处理电路202、rom204、ram206、存储装置208、网络if部210以及器件if部212通过总线连接。

处理电路202具有1个或多个处理器(例如,cpu(centralprocessingunit))。处理电路202将存储于存储装置208的程序在ram206中展开并执行,控制各部进行输入输出或进行数据的加工。rom204中存储有将启动用程序从存储装置208读出到ram206中的开始程序。ram206作为处理电路202的操作区域而存储数据。

存储装置208例如是硬盘驱动器或闪存存储器等。存储装置208存储操作系统、应用程序以及数据。这些程序以能够安装的形式或能够执行的形式的文件,记录在计算机可读取的记录介质中发布。另外,程序也可以通过从服务器下载而发布。

网络if部210是用于与网络连接的接口装置。器件if部212是用于与外部设备连接的接口装置。外部设备例如是第1传感器装置22、印刷装置24、第2传感器装置28以及拍摄装置30等。

本实施方式的计算机200执行的程序,以能够安装的形式或能够执行的形式的文件记录在cd-rom、软盘(fd)、cd-r、dvd等计算机可读取的记录介质中提供。另外,也可以构成为,将本实施方式的计算机200执行的程序,存储在与因特网等网络连接的计算机上并经由网络下载来提供。另外,也可以构成为经由因特网等网络来提供或发布本实施方式的计算机200执行的程序。另外,还可以构成为将本实施方式的程序预先装入到rom204等中提供。

用于使计算机200作为生成装置12发挥功能的程序,具有初始代码表生成模块、变更模块、评价值计算模块及控制模块。计算机200通过由1个或多个处理器(处理电路202)从存储介质(存储装置208等)读出并执行程序,各模块被装载到主存储装置(ram206)上,1个或多个处理器(处理电路202)作为初始代码表生成部62、变更部64、评价值计算部68以及控制部70发挥功能。另外,ram206或存储装置208作为第2混淆矩阵存储部66发挥功能。另外,初始代码表生成部62、变更部64、评价值计算部68以及控制部70,一部分或全部通过处理器以外的硬件来实现。

对本发明的几个实施方式进行了说明,但这些实施方式作为例子提示,无意限定发明的范围。这些新的实施方式,能够以其他各种各样的方式实施,在不脱离发明的主旨的范围内,能够进行各种省略、置换、变更。这些实施方式其变形,包含在发明的范围及主旨中,并且包含在权利要求书记载的发明及其等同的范围中。

例如,在实施方式下,对使用梯度法减小代码表的评价值的方法以及使用遗传算法减小代码表的评价值的方法进行了说明。但是,生成装置12只要不脱离生成减小评价值的代码表这一宗旨,作为最优化的启发式算法,不限于梯度法以及遗传算法,也可以使用例如模拟退火法、禁忌搜索等其他的方法。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1