CN102243600B - 数据处理设备和数据处理方法 - Google Patents
数据处理设备和数据处理方法 Download PDFInfo
- Publication number
- CN102243600B CN102243600B CN2011101259221A CN201110125922A CN102243600B CN 102243600 B CN102243600 B CN 102243600B CN 2011101259221 A CN2011101259221 A CN 2011101259221A CN 201110125922 A CN201110125922 A CN 201110125922A CN 102243600 B CN102243600 B CN 102243600B
- Authority
- CN
- China
- Prior art keywords
- data
- processing
- different levels
- percent
- pass
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5061—Partitioning or combining of resources
- G06F9/5066—Algorithms for mapping a plurality of inter-dependent sub-tasks onto a plurality of physical CPUs
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Image Processing (AREA)
- Multi Processors (AREA)
- Image Analysis (AREA)
Abstract
本发明提供数据处理设备和数据处理的方法。数据处理设备包括连接单元,连接单元在各级上分配多个处理模块,并连接多个处理模块以使得并行处理多个部分数据。数据处理设备针对至少一部分级检测在后续级中进行了处理的数据量的比作为通过率,基于通过率获取要在检测到通过率的各级中处理的数据量的处理时间,并基于数据量确定分配给各级的处理模块的数量。
Description
技术领域
本发明涉及数据处理设备和数据处理方法,其中,多个处理模块串联连接,并且进行根据当前的处理结果判断是否执行后续处理的级联处理。
背景技术
一般地,提出了用于在数字照相机和打印机中检测输入图像中诸如人物或面部的特定被摄体,并进行适用于所检测到的被摄体的处理的技术。用于对面部进行皮肤颜色校正处理的面部检测处理是检测特定被摄体的例子。作为人面部检测处理,已经提出了各种方法,例如由P.Viola和M.Jones在“RobustReal-time Object Detection”,SECOND INTERNATIONALWORKSHOP ON STATISTICAL AND COMPUTATIONALTHEORIES OF VISION,July 13 2001(以下称为文献1)中提出的方法(称为Viola & Jones方法),以及利用人面部的对称特征、模板匹配和神经网络等的方法。
利用Viola & Jones方法,基于Adaboost学习的结果(特征量)来执行多个识别处理。通过级联处理来实现这些识别处理,并且各识别处理在将要进行下一识别处理时输出True(正确),或在将不进行下一识别处理时输出False(错误),作为进行了识别的结果。如果识别处理为False,则识别处理结束。图15A示出作为在这种处理时使用的学习的结果而获得的特征量的例子。特征量210呈现了以下特征:当眼部周围的小的矩形部分与眼部下面的部分(脸颊部分)相比较时,眼部周围的部分比眼部下面的部分黑。特征量211呈现以下特征:在眼部周围的部分中,眼部的部分黑,眉毛之间的眉间部分比眼部的部分白。将输入数据与这种学习的结果(学习的特征量)进行比较,如果针对所有的特征量识别处理输出True,则判断为输入数据表示(人的)面部。
而且,利用Viola & Jones方法,将识别处理分成多个区(以下称为级),针对每个级进行Ture/False识别,从而进行面部或非面部的识别。而且,前面的级仅使用简单的特征,以使得falsenegative(错误否定)(将面部判断为非面部、或漏失)的概率最小化,并且false positive(错误肯定)(将非面部判断为面部、或错误检测)的概率相对较高。仅使用简单的特征使得能够利用减少了的计算次数进行识别处理,由此即使使用处理器进行处理,也可以进行高速处理。此外,为了检测整个图像的一部分中存在的面部,从整个图像中剪切矩形区域来识别剪切出的区域。根据上述方法,在前面的级,可以将更多的矩形区域有效地识别为False(非面部),由此可以在短时间内完成对整个图像的面部检测处理。
当从整个图像中剪切矩形区域以在矩形区域上顺次进行识别处理时,考虑确定剪切矩形区域的顺序的几种方法。广泛使用的是以下方法:以图像的左上方的像素为起始点,在主扫描方向(水平方向)上逐像素地进行扫描。将参考图14A说明这种扫描方法。将通过以进行识别处理的矩形区域的高度、在主扫描方向上对输入图像进行分割而创建的带状的区域称为带(band)。在图14A中,Band_A是顶角为输入图像的左上方的像素的带。Band_a是顶角为从Band_A的顶角在副扫描方向(垂直方向)上偏移一个像素的位置处的像素的带。在这种扫描方法中,首先,将输入图像的左上方的像素设置为起始点,并对矩形区域的左上方的像素与起始点一致的该矩形区域(子窗口)进行识别处理。接着,对在主扫描方向上分别偏移一个像素的位置处的矩形区域顺次进行识别处理,直到矩形区域的右端与输入图像的右端一致为止。此时完成对Band_A的处理。接着,将从处理Band_A时使用的起始点在副扫描方向上偏移了一个像素的位置处的像素设置为起始点,并对在主扫描方向上分别偏移一个像素的位置处的矩形区域顺次进行识别处理,直到矩形区域的右端与输入图像的右端一致为止。此时完成对Band_a的处理。之后,通过在副扫描方向上偏移一个像素对各带进行处理,直到矩形区域的下端与输入图像的下端一致为止。
将参考图15A~15E说明当使用上述扫描方法进行顺次识别处理时,在识别处理的初始级(级0)中随着扫描的进行,识别结果从False转变到True然后从True转变到False。假定在级0,使用图15A中示出的特征量210来进行识别处理。图15B~15E是示出当针对输入图像的面部部分在主扫描方向上扫描矩形区域时、特征量210和面部部分之间的相对位置的图。在图15C中示出的矩形区域位置处,面部基本上位于矩形区域的中心,因此判断为True(可能是面部)作为与特征量210比较的结果。图15B和15D分别示出被判断为True(可能是面部)作为与特征量210比较的结果的左端和右端矩形区域。换句话说,将从图15B向左偏移一个像素的位置处的矩形区域判断为False(非面部),并将从图15D向右偏移一个像素的位置处的矩形区域判断为False(非面部),来作为识别的结果。图15E示出在进行从15A到图15D的扫描时,识别结果从False转变到True然后从True转变到False。
当通过一点一点地偏移矩形区域进行识别处理时,如上所述,识别结果随着扫描的进行而重复地从False转变到True然后从True转变到False。在这种情况下,True和False出现的频率根据输入图像中包括的面部部分的密度而变化。将参考图16A~16C说明True和False出现的频率由于面部部分的密度而在级0中如何变化。在图16A~16C中,在识别结果为True的矩形区域的左上方示出T,以及在识别结果为False的矩形区域的左上方示出F。
图16A示出在一个带内仅存在一个面部部分的例子。随着扫描的进行,9个T(True)连续并且之后27个F(False)连续。图16B示出两个面部部分在同一带内相互远离的例子。9个T(True)后跟随着6个F(False),并且另外的9个T(True)后跟随着6个F(False)。图16C示出两个面部部分在同一带内相互邻近的例子。9个T(True)后跟随着1个F(False),并且另外的9个T(True)后跟随着1个F(False)。
从上述可以看出,作为来自面部检测处理时使用的识别器的输出结果的True和False中哪一个具有较高的出现频率取决于输入图像中包括的面部部分的密度。在面部检测时,将识别处理分成各级,并针对各级判断True或False。以下将各级中True出现的概率称为“通过率”。在图16A的情况下,根据T(True)和F(False)之间的比计算出级0的通过率为1/4。同样,在图16B的情况下,通过率为3/5,以及在图16C的情况下,通过率为9/10。
接着将说明在多个级串联的级联处理中、各级的通过率与作为识别结果从初始级到特定级连续返回True的概率(累积通过率)之间的关系。
将第一或开头级的识别处理的处理总数(输入矩形区域的数量)定义为S。仅将作为前一级的第一级的识别处理中识别为True的矩形区域输入至接下来的第二级的识别处理。因此,第二级的识别处理所处理的数据量、或换句话说矩形区域的数量是通过将第一级的识别处理所处理的矩形区域的数量乘以第一级的识别处理的通过率p[1]而获得的积(S*p[1])。此外,第三级的识别处理所处理的数据量、或换句话说矩形区域的数量是通过将第二级的识别处理所处理的矩形区域的数量乘以第二级的识别处理的通过率p[2]而获得的积(S*p[1])*p[2]。以下利用相同的计算,可以将第N级的识别处理所处理的数据量、或换句话说矩形区域的数量表示如下:
S*p[0]*p[1]*...*p[N-2]*p[N-1]。
以下,将p[0]*p[1]*....*p[N-1]称为级N中的识别处理的累积通过率P[N]。而且,因为将所有的输入数据输入至第一级中的识别器,所以P[0]=1(以100%的通过率将数据输入至第一级中的识别器)。
如前所述,通过率根据输入图像的类型和图像内的处理位置(要被处理的矩形区域的位置)而变化。换句话说,诸如集体照片等的具有高的面部密度的图像的通过率一般高于诸如风景照片等的具有低的面部密度的图像的通过率。而且,即使在集体照片中,在输入图像在照片上部为风景并且照片下部为人物的情况下,在照片的下部面部密度较高。因此,对具有高的面部密度的照片下部(人物部分)进行识别处理期间的通过率一般高于对具有低的面部密度的照片上部(风景部分)进行识别处理期间的通过率。
将参考图14A、14B和14C具体说明累积通过率根据输入图像的类型和输入图像内的处理位置而如何变化。图14A是在输入图像中包括相对较多数量的面部部分的集体照片的例子。针对图14A中示出的Band_A、Band_B、Band_C和Band_D在图14C中示出的图形中标绘各级的平均累积通过率。在诸如Band_A的具有低的面部密度的带中,通过级0的识别处理将几乎所有的矩形区域判断为非面部,由此级1中的平均累积通过率基本为0%。另一方面,在诸如Band_D的具有高的面部密度的带中,在所有级中将大量的矩形区域判断为很可能是面部,由此级2中的平均累积通过率为50%以上。从前述可以看出,即使在整体上具有高的面部密度的输入图像中,累积通过率也根据处理位置而显著变化。
另一方面,图14B是与图14A的集体照片相比,输入图像中包括较少数量的面部部分的集体照片的例子。在图14C的图形中,还针对图14B中示出的Band_X、Band_Y和Band_Z来标绘各级的平均累积通过率。Band_X中的平均累积通过率与图14A的Band_A的平均累积通过率相同,但在图14B中具有最高面部密度的Band_Z中,级2的平均累积通过率在50%以下。换句话说,在图14A和14B中示出的不同输入图像中,即使在相同的处理位置,平均累积通过率也显著变化。
通过由多个级构成的多级级联处理并通过在前面的级中将更多的矩形区域判断为非面部来实施以Viola & Jones方法为代表的识别处理,实现了高速处理。然而,如上所述,各级中判断为非面部的概率根据输入图像的类型和输入图像内的处理位置而显著变化。
近来,越来越多的数字照相机等配备有面部检测功能。将来,除了简单地包含这种功能以外,还将增加高速处理的需求,以使得可以在摄像期间实时进行面部检测处理。用于不仅加速识别处理还加速数据处理的一般方法包括增大工作频率,并内部提供FIFO或RAM以防止传送输入/输出数据时的速率限制。而且,广泛使用用于时间上/空间上并行地进行处理的方法。利用时间上的并行处理(流水线处理),针对顺次执行的各级以级联方式安装和连接专用的识别器,以使得可以同时并行地操作这些识别器,因此可以实现高速处理。然而,各级中最长的处理时间对整个处理时间进行了速率限制。因此,假定在所有级中,通过率为100%并且处理时间均匀,则可以以与级的数量相对应的量来增大处理速度(如果有3个级,则为3倍)。
空间上的并行处理是以下加速技术:为了进一步加速上述流水线处理,安装多个流水线以同时处理多个输入数据。利用空间上的并行处理,如果可以将输入数据平滑地提供至各流水线处理,则可以以空间并行化的量来增大处理速度(如果安装了4个流水线,则为4倍)。因此,利用使用12个识别器安装各自具有3个级的4个流水线的结构,理论上,可以使处理速度增大12倍。
如上所述,为了加速面部检测时的识别处理,根据传统的技术,结合时间上的并行处理和空间上的并行处理以实现性能提高。例如,与安装了一个识别器的结构相比,传统的技术试图通过安装12个识别器,使性能提高了与流水线级的数量×空间并行度相对应的量(上述例子中为12倍)。
然而,如上所述,平均累积通过率根据输入图像的类型和输入图像内的处理位置而很大地变化。当面部密度高时,可以使性能提高与流水线级的数量×空间并行度所对应的量接近的量,但是当面部密度低时,性能提高不与流水线级的数量×空间并行度所对应的量接近。换句话说,根据传统技术的使用时间上/空间上的并行处理的加速技术的问题在于,根据通过率不能实现足够的性能提高,而且性能根据输入图像的类型和输入图像内的处理位置而显著地变化。
当级中的平均累积通过率由于变化而下降时,中断了对后续级的数据供应,从而针对后续级安装的识别器不工作,这一情况引起了性能下降和性能变化。将采用以下情况详细说明识别器不工作的情况:利用使用12个识别器安装各自具有3个级的4个流水线的结构来处理图14A和14B的图像。图17A~17H是示出当在Band_A、Band_B、Band_C、Band_D、Band_X、Band_Y和Band_Z进行识别处理时,识别器的平均工作状态的示意图。在图17A~17H所示的传统的例子中,固定安装了4×3个模块,4个流水线。应该注意,以下说明假定在所有识别器中,处理时间相同。
在图17A~17H中,非阴影线的圈表示恒定工作的识别器,以及阴影线的圈表示根据前一级的处理结果而工作或停止的模块。而且,交叉阴影线的圈表示恒定停止的模块。如果从图14C中示出的上述图中针对各带确定级N中的识别处理的平均累积通过率P[N],则在Band_A中,获得P[1]=10%和P[2]=2%。因此,4个识别器在级0恒定工作,但是在级1和级2中各自恒定停止3个识别器,级1中工作的仅有的识别器的工作率为40%,级2中工作的仅有的识别器的工作率为0.8%。因此,在Band_A中,仅可以获得增大约4.5(=4+0.4+0.08)倍的性能。另一方面,在Band_D中,获得高的平均累积通过率P[1]=92%和P[2]=90%,因此在级1和级2中,几乎所有的识别器恒定工作。结果,可以使处理速度增大约11.3(=4+4×0.92+4×0.9)倍,接近目标性能。然而,图14A的整个图像的平均累积通过率为P[1]=50%、P[2]=40%,因此,仅使处理速度增大了约7.6(=4+4×0.5+4×0.4)倍。
当以上述方式分析各带时,在图14A的Band_D中,因为各级中的平均累积通过率高,所以使性能提高了约11.3倍,接近于目标值的12倍。然而,性能在Band_C中仅提高了约8.4倍,在Band_B中仅提高了约5.8倍,以及在Band_A中仅提高了约4.5倍。因此,在整个图像中,仅使性能提高了约7.5倍。同样,在图14B中示出的图像中,性能在Band_X中仅提高了约4.5倍(与图14A的Band_A相同),在Band_Y中仅提高了约4.9倍,在Band_Z中仅提高了约6.8倍,以及在整个图像中,性能仅提高了4.7倍,甚至低于图14A。
假定在所有识别器中的处理时间相同的情况下给出以上说明,但实际上,各级具有不同的处理负载。因此,在之前所述的时间上的并行处理中可能发生处理的速率限制(各级中最长的处理时间可能对整个处理时间造成速率限制),这可能引起进一步的性能下降。
通过识别用的特征量来定义各级的识别器的识别处理。因此,如果可以改变识别器中的特征量和连接关系,可以将对各级的识别器的分配进行调整以分散负载。传统上,提出了各种动态负载平衡方法以通过使处理器的工作率均匀来提高和稳定处理性能。例如,日本特开2003-256221(以下称为文献2)提出以下建议。具体地,根据与针对各并行程序而预设的处理器分配率相对应的时间,将并行程序所生成的处理分配给多个处理器的处理时间带。然后判断是否可以将并行程序所生成的多个并行处理分配给处理器的处理时间中没有分配到处理的空闲时间带,以能够进行并行工作。如果可以进行并行工作,则将其它并行处理另外分配给空闲时间带,并且处理器执行分配给处理器的处理时间带的并行处理。
然而,根据文献2的技术,将需要保证运转时间的处理分配给预定时间带,并且将能够并行工作的多个并行处理另外分配给空闲时间带,从而在保证运转时间的同时提高了处理器的工作率。然而,文献2仅考虑了处理具有预定负载的处理的情况。换句话说,传统技术没有关注于各级的通过率和处理时间进行控制。因此,诸如根据Viola & Jones方法的面部检测的、基于处理结果来判断是否执行下一处理的、控制多个处理的数据处理(所谓的级联处理)的缺点在于,当处理的负载(执行时间)根据输入数据而变化时,抑制性能下降和性能变化的效果小。
发明内容
根据本发明的一个方面,提供以下的数据处理设备和数据处理方法,其性能几乎不根据输入图像的类型和图像内的处理位置而变化,并具有均匀和高的处理性能。
根据本发明的一个方面,提供一种数据处理设备,用于处理包括多个部分数据的输入数据,所述数据处理设备包括:多个处理模块,用于通过连续的多个级对所述输入数据的多个部分数据进行数据处理,其中,至少一个级具有所分配的数个处理模块以使得并行处理多个部分数据,并且在各部分数据的数据处理期间,根据前一级中的部分数据的处理结果来判断是否在后续级中对该部分数据进行处理;改变部件,用于通过改变所述多个处理模块的连接模式来改变针对所述多个级的所述多个处理模块的分配;确定部件,用于针对所述多个级中的至少一个级,确定输入到该级的且随后在后续级中处理的数据量的比例作为通过率;计算部件,用于基于所述确定部件所确定的通过率来计算分配给各级的处理模块的数量,其中,所述改变部件根据所述计算部件所计算出的分配,改变所述多个处理模块的连接模式。
根据本发明的另一个方面,提供一种在数据处理设备中的数据处理方法,所述数据处理设备用于处理包括多个部分数据的输入数据,所述数据处理设备包括:多个处理模块,用于通过连续的多个级对输入数据的多个部分数据进行数据处理,其中,至少一个级具有所分配的数个处理模块以使得并行处理多个部分数据,并且在各部分数据的数据处理期间,根据前一级中的部分数据的处理结果来判断是否在后续级中对该部分数据进行处理,所述数据处理方法包括以下步骤:确定步骤,用于针对所述多个级中的至少一个级,确定输入到该级的且随后在后续级中处理的数据量的比例作为通过率;计算步骤,用于基于所确定的通过率来计算分配给各级的处理模块的数量;以及改变步骤,用于根据所述计算步骤中计算出的分配,改变所述多个处理模块的连接模式。
通过以下参考附图对典型实施例的说明,本发明的其它特征将变得明显。
附图说明
图1是示出根据本发明实施例的数据处理设备的示例结构的框图。
图2是示出根据本发明实施例的模块结构改变单元的示例结构的图。
图3是示出利用多个识别器在时间上/空间上使处理并行化的连接的例子的图。
图4A~4D是示出各级的累积通过率和模块分配的例子的图。
图5是示出检测通过率的例子的图。
图6A~6D是示出24个识别器各自的工作状态的图。
图7A~7D是示出如何根据通过率改变24个识别器的连接模式的图。
图8A和8B是示出用于确定识别器的连接结构的过程的图。
图9A和9B是示出用于确定识别器的连接结构的过程的图。
图10是示出通过率检测单元所进行的检测通过率的处理的图。
图11A~11C是示出对图10中示出的通过率检测的例子进行模块结构改变的图。
图12A和12B是示出利用网络(互连接)来实现模块结构改变单元的例子的图。
图13是示出使用处理器来实现识别器的情况的图。
图14A和14B是示出进行面部检测的示例图像的图。
图14C是示出图像中的带的通过率的图。
图15A示出在面部识别时使用的特征量的例子。
图15B~15E是示出面部检测结果的例子的图。
图16A~16C是示出由于图像中不同的面部密度而引起的通过率变化的图。
图17A~17H是示出识别器工作率由于通过率变化而如何改变的图。
具体实施方式
以下将参考附图说明本发明的优选实施例。
图1是示出根据本发明实施例的数据处理设备的整体结构的例子的框图。根据本实施例的数据处理设备通过使用多个处理模块执行由预定数量的两个以上的级构成的数据处理。将处理模块分配给这些级。处理从输入数据中顺次提取的部分数据(例如,数据片段或数据部分),并根据前一级的处理结果来判断是否在后续级中处理部分数据。在以下说明中,使用图像数据作为输入数据,并且使用利用图像数据进行模式识别的识别器作为处理模块,但输入数据和处理模块不限于此。例如,也可以应用到与DNA碱基序列信息有关的模式识别或与音频信号有关的模式识别。
CPU 100通过执行在作为只读存储器的ROM 101中存储的各种程序来对数据处理设备进行整体控制。DRAM 103存储要被处理的图像数据。经由DRAM控制器102将DRAM 103中存储的图像数据提供至控制器105。处理单元106包括用于进行模式识别的识别器0~11。模块结构改变单元110分别将识别器0~11分配给预定数量的级,并连接识别器以使得在预定数量的级之间并且在至少一个级内并行处理多个部分数据,后面将参考图2和3进行详细说明。
当开始识别处理时,CPU 100从ROM 101中包括的处理设置数据存储单元104获得例如以特征量(例如,图像条件)为代表的设置数据,并将数据设置在处理单元106内的各识别器中。更具体地,在各识别器中,设置与识别器所属于的级相对应的特征量(例如,在属于级0的识别器中设置图15A中示出的特征量210,以及在属于级1的识别器中设置特征量211)。而且,CPU 100从处理设置数据存储单元104获得例如以图像数据位置(地址)为代表的设置数据,并将数据设置在控制器105中。此外,在该初始状态下,CPU 100初始化模块结构改变单元110。模块结构改变单元110在初始状态下设置识别器0~11的连接,以使得并行地连接各自具有3个级的4个流水线结构,后面将参考图2和3说明。
当在控制器105、处理单元106和模块结构改变单元110中的设置结束时,CPU 100将用于开始处理的通知发送至控制器105和处理单元106。控制器105通过基于所设置的图像数据位置(地址)访问DRAM控制器102,来从DRAM 103中存储的图像数据顺次读取矩形区域数据,并将该数据传送至处理单元106。以上参考图14A说明了矩形区域。处理单元106对传送来的矩形区域图像数据顺次执行识别处理。将处理结果存储在结果存储单元112中。CPU 100可以通过读取结果来获得图像数据中被判断为面部的矩形区域的坐标值。
图3是示出在模块结构改变单元110连接识别器0~11以使得并行连接各自具有3个级的4个流水线结构的情况下的识别器的连接模式(初始状态)。如图2所示,可以通过模块结构改变单元110切换连接来改变识别器的连接。在图2中,识别器0连接至控制器105,以规定的顺序连接识别器0、识别器1和识别器2,之后将识别器2的输出提供至结果存储单元112。
将说明作为从控制器105输入至识别器0的输入图像的一部分的矩形区域图像数据(输入数据0:data_in0)。这里使用的valid信号为用于控制data_in是否有效的控制信号。如果识别器0判断为True,则输出valid_out=1,以及如果识别器0判断为False,则输出valid_out=0。
在检测到控制信号的有效(valid_in0=1)时,控制器105检测到输入了有效数据(data_in0)。然后,控制器105将有效数据(data_in0)输出至识别器0的data_in,并将“1”输出至识别器0的valid_in,以表示输入数据有效。在检测到valid_in=1时,识别器0基于输入数据(data_in)进行识别处理,并输出识别结果(valid_out)。识别器0输出的结果为输入至识别器1的输入信号valid_in。如果识别器0识别为True,则将输入数据输出至接下来的识别器1的data_in,并将表示输入数据有效的“1”输出至识别器1的valid_in,从而识别器1可以检测和处理有效输入数据。以上述方式,使用数据线传递输入数据,利用有效线来控制是否输入有效数据(是否进行处理)。如果识别器0~2的所有识别结果都为True,则从识别器2输出valid_out=1,从而判断为输入数据0(data_in0)包括面部。利用上述结构,在3个级上分布的识别器可以同时完全并行地工作的情况下,与包括一个识别器的结构相比,可以使处理速度增大到3倍。
在图3中,为了进一步增大上述时间上的并行处理的处理速度,连接识别器以进行空间上的并行处理。具体地,并行地连接各自在3个级上执行处理的4个流水线结构以实现总体快12倍的处理速度。因此,在图3中示出的结构中,使用表示矩形区域的坐标位置的坐标数据(coord_in)以判断处理结果所属于的矩形区域的坐标,以进行空间上的并行处理。当将data_in和valid_in输入至控制器105时,将data_in0、data_in1、data_in2和data_in3依次输入至针对级0安装的4个识别器0、3、6和9。
然后,在进行了空间上的并行处理之后,将coord_out0、coord_out1、coord_out2和coord_out3从针对级2安装的4个识别器2、5、8和11输入至结果存储单元112。换句话说,针对级0安装的识别器的数量为4个,因此可以同时处理4个不同的矩形区域数据(data_in0、data_in1、data_in2和data_in3)。因此,与包括一个识别器的结构相比,在可以完全同时并行地操作12个识别器的情况下,可以使处理速度增大到12倍。在图2中,各信号线(输入信号in和输出信号out)是图1中示出的3种类型的输入/输出信号(坐标数据(coord_in/out)、图像数据(data_in/out)和控制信号(valid_in/out))集中至单个线中的表示。
返回至图1,本实施例的数据处理设备还包括通过率检测单元107、处理时间存储单元108和计算单元109。而且,模块结构改变单元110根据计算单元109的计算结果改变识别器之间的连接。
通过率检测单元107在接收到从各识别器输出的识别结果信号(结果信号,与本实施例中的有效线相同)的输入时,检测(判断)各级的通过率(使得后续级执行处理的处理结果的比)。计算单元109(CPU 100所执行的计算程序)通过使用通过率检测单元107所检测到的各级(识别器)的通过率和处理时间存储单元108中存储的各级的识别器处理时间来计算模块结构。
模块结构改变单元110基于计算单元109所计算出的结构信息来改变模块结构。模块结构改变单元110由交叉开关(crossbarswitch)构成,以使得可以设置来自控制器105的输入信号(in0~in11)、至结果存储单元的输出信号(out0~out11)以及识别器0~11的输入/输出信号的所有连接。通过连接(ON)多个水平设置的开关中的至多一个开关来建立输入和输出之间的连接。路径(开关)设置单元114控制开关的接通和断开(ON/OFF)(见图2)。
接着,将说明计算单元109通过使用通过率检测单元107检测到的各级的通过率和处理时间存储单元108中存储的各级的处理时间来计算模块结构的方法。以下将使用图4A~4D(以下称为例子1~4)中示出的特定时间时检测到的通过率和处理时间详细说明该方法。
将针对级N安装的每个识别器的处理时间定义为Tm[N],并将级N中的累积通过率定义为P[N]。在这种情况下,可以通过以下等式(1)给出级N中每个输入数据(矩形图像数据)的一个识别器所需的平均处理时间Td[N]:
Td[N]=Tm[N]*P[N]...(1)
因为Td[N]为每个识别器的平均处理时间,所以如果安装了能够处理同一级的多个识别器(模块),则可以共享级的处理。因此,如果将针对级N安装的识别器(模块)的数量定义为Num[N],则可以通过以下等式(2)给出级N中的每个输入数据(矩形图像数据)的处理时间T[N]:
T[N]=Td[N]/Num[N]=(Tm[N]*P[N])/Num[N]...(2)
如前所述,为了最优化时间上的并行处理的效率,需要级具有均匀的处理时间。换句话说,通过确定Num[N]以使得T[N]在所有级是均匀的,可以计算应该针对各级安装的识别器的最佳数量。以下将说明计算单元109进行的用于基于图4A的例子1中示出的各级中每个识别器的处理时间Tm和与累积通过率P有关的信息,来计算应该针对级0、1或2安装的识别器的最佳数量(Num[0]、Num[1]或Num[2])的方法。
为了使处理时间在所有级上均匀,仅需要确定针对各级分配的识别器的数量(Num[0]、Num[1]或Num[2])以满足:
(Tm[0]*P[0])/Num[0]=(Tm[1]*P[1])/Num[1]=(Tm[2]*P[2])/Num[2]...(3)
即,根据使用累积通过率所确定的各级的处理时间和各级中处理的数据量,来确定针对各级分配的识别器的数量,以使得在各级的处理时间均匀。将例子1中的每个识别器的处理时间Tm和累积通过率P代入等式(3)中得到
(1*1)/Num[0]=(1*1/2)/Num[1]=(1*(1/2*1/2))/Num[2],然后得到
Num[0]∶Num[1]∶Num[2]=4∶2∶1...(4)。
因此,通过构造各级以使得使用通过率检测单元107所检测到的通过率、各级的识别器(处理模块)的数量满足等式(4)的比,可以实现停止的模块的数量小的最佳电路结构。例子2、3和4还示出以相同的方式计算级中的模块的数量比的例子。
其中,在图4B的例子2中,
在图4C的例子3中,
在图4D的例子4中,
通过CPU 100进行如下操作,可以实施以上计算:
读取处理时间存储单元108中存储的每个识别器的处理时间;
根据通过率检测单元107所检测到的通过率计算累积通过率;以及
执行用于通过计算等式(3)的各项等确定等式(4)的识别器的数量比的计算程序(计算单元109)。
接着,将参考图5、图6A~6D和图7A~7D说明当进行根据本实施例的模块结构改变时获得的提高和稳定性能的效果。为了便于说明通过率变化和性能之间的关系,假定所有识别器具有例子1示出的相同的处理时间(Tm[0]=Tm[1]=Tm[2]=1)。还假定通过率检测单元107检测到图5的例子(1)~(3)中示出的通过率。
以下,假定处理单元106包括24个识别器,并且可以并行地连接8个3级的流水线结构。图6A~6D示出模块结构不变的传统例子。其中,图6B示出例子(1)在通过率处理期间;图6C示出例子(2)在通过率处理期间;图6D示出例子(3)在通过率处理期间。图7A~7D示出改变模块结构的本实施例的例子。其中,图7B示出例子(1)在通过率处理期间;图7C示出例子(2)在通过率处理期间;图7D示出例子(3)在通过率处理期间。图6A和7A是示出模块结构的初始状态的简化图。在初始状态下,针对3个级各自安装8个识别器,时间上的并行度为3以及空间上的并行度为8。识别器的总数为24。这相对于包括一个识别器的结构,将性能提高为24倍。
假定在开始工作之后,通过率p[0]=3/20和p[1]=1/3,并且通过率检测单元107检测到例子(1)中示出的级0和1的累积通过率P[1]=3/20和P[2]=1/20。这里假定所有的识别器具有相同的处理时间(Tm[0]=Tm[1]=Tm[2]=1)。因此,使用累积通过率P[1]=3/20和P[2]=1/20计算出满足等式(3)的模块的数量比为Num[0]∶Num[1]∶Num[2]=20∶3∶1。计算单元109指示模块结构改变单元110满足以这种方式计算出的模块的数量比。结果,如图7B所示,模块结构改变单元110改变结构(针对各级分配的模块数量),或换句话说,使得满足Num[0]=20、Num[1]=3和Num[2]=1。在这种情况下,所有识别器恒定工作,由此可以使性能提高为包括一个识别器的结构的性能的24倍。
另一方面,在根据传统技术的结构中,在例子(1)示出的通过率的情况下,如图6B所示,恒定停止针对级2安装的识别器中的7个识别器,并且剩余的1个识别器根据级0和1的结果而工作或停止。如在图17A~17H中,非阴影线的圈表示恒定工作的识别器,阴影线的圈表示根据前一级中的结果而工作或停止的模块,以及交叉阴影线的圈表示恒定停止的模块。因为累积通过率为P[1]=3/20和P[2]=1/20,所以该情况下的处理性能将大约为包括一个识别器的结构的9.6(=8+8×3/20+8×1/20)倍,仅提供了本实施例的40%的性能。
假定通过率进一步变化,并且通过率检测单元107检测到例子(2)中示出的通过率(级0和1的通过率p[0]=1/3和p[1]=4/5,以及累积通过率P[1]=1/3和P[2]=4/15)。在这种情况下,计算出满足等式(3)的模块的数量比为Num[0]∶Num[1]∶Num[2]=15∶5∶4,并且如图7C所示,改变结构以使得满足Num[0]=15、Num[1]=5和Num[2]=4。在这种情况下,如例子(1)中一样,所有识别器恒定工作,因此,可以使性能提高为包括一个识别器的结构的性能的24倍,而不会由于通过率变化而引起性能变化。
另一方面,在根据传统技术的结构中,如图6C所示,如在例子(1)的通过率的情况下一样停止大量识别器。因为累积通过率为P[1]=1/3和P[2]=4/15,所以处理性能将大约是包括一个识别器的结构的性能的12.8(=8+8×1/3+8×4/15)倍,仅提供了本实施例的50%的性能。
假定通过率进一步变化,并且检测到例子(3)中示出的通过率(级0和1的通过率p[0]=4/5和p[1]=3/4,以及累积通过率P[1]=4/5和P[2]=3/5)。在这种情况下,计算出满足等式(3)的模块的数量比为Num[0]∶Num[1]∶Num[2]=5∶4∶3,并且如图7D所示,改变结构以使得满足Num[0]=10、Num[1]=8和Num[2]=6。如在例子(1)和(2)中一样,可以使性能提高为包括一个识别器的结构的性能的24倍,仍然提供高水平的性能。
另一方面,在根据传统技术的结构中,如图6D所示,即使在通过率相对较高的例子(3)中,也不是所有的识别器都恒定工作。在这种情况下,因为累积通过率为P[1]=4/5和P[2]=3/5,所以处理性能将大约是包括一个识别器的结构的性能的19.2(=8+8×4/5+8×3/5)倍,提供了本实施例的80%的性能。
如上所述,根据传统技术,当级的平均累积通过率降低时,中断至后续级的数据供给,导致针对后续级安装的识别器不工作的情况并导致性能下降。而且,当平均累积通过率变化时,不工作的识别器的数量变化,引起性能变化。相反,根据本实施例,即使平均累积通过率下降或变化,也可以始终使不工作的识别器的数量最小化,由此可以获得恒定稳定的高水平的性能。
为了说明本发明的效果,使用模块的数量比为整数比的例子来进行了以上说明。然而,一般来说,模块的数量比不总是整数比。即使比是整数比,也存在不能根据所安装的模块的总数等改变结构以满足所计算出的比的情况。例如,在图4A中示出的例子1中,如果所安装的模块的总数为6,则不能获得满足比4∶2∶1的模块结构。如上所述,在满足等式(3)的模块的数量比不是整数比或不能通过使用所安装的模块的总数满足等式(3)的情况下,在以下过程中确定模块的数量的比。
为了分配所安装的所有的识别器,对于将在哪一级设置多少识别器存在多种选项。
第一过程
在第一过程中,例如通过从如何设置识别器的所有选项中选择来确定针对所有级安装至少一个识别器的选项(在各级中包括至少一个识别器的结构)。这是适当的选择标准,因为如果存在没有安装识别器的级,则整个处理将不能完成。然后,为了从第一过程中所选择的选项中确定最好的结构,应用以下第二过程。
第二过程
针对选项(例如,针对在第一过程中所选择的各结构),使用等式(2)针对所有级确定级N中的每个输入数据(矩形图像数据)的处理时间T[N],并将其最大值设置为选项的第一处理时间。如前所述,在流水线处理中,因为各级中最长的处理时间对整个处理时间进行了速率限制,所以将针对级处理时间的最大值(第一处理时间)认为是整个处理时间是合适的。然后,从第一过程中所选择的所有选项中选择具有第一处理时间的最小值的选项,并将其设置为最好的结构。如果在第二过程中选择了多个选项(如果多个结构具有第一处理时间的最小值),则进一步应用第三过程。
第三过程
针对选项(具有第一处理时间的最小值的结构),使用等式(2)针对所有级确定级N中的每个输入数据(矩形图像数据)的处理时间T[N],并将其第二最大值设置为选项的第二处理时间。然后,从第二过程中所选择的所有选项中选择具有第二处理时间的最小值的选项,并将其设置为最好的结构。
如果即使在应用了第三过程之后还存在多个所选择的选项,则使用第三最大值(第三处理时间)和第四最大值(第四处理时间)顺次做出相同的比较。当具有第N处理时间的最小值的一个选项剩下时,选择处理结束。在即使针对所有级做出相同的比较之后还剩下多个选项的情况下,将随机选择的选项设置为最好的结构。
以下将参考图8A和8B以及图9A和9B说明以上过程的具体例子。图8A和8B示出将以上过程应用至图4A的例子1中的例子。具体地,将在如下的情况下详细说明如何选择模块结构:作为通过使用例子1的条件计算应该针对各级分配的模块的数量的结果,获得Num[0]∶Num[1]∶Num[2]=4∶2∶1,但是所安装的识别器的数量为6。
作为关于如何将模块的数量分配给级0、1和2的选项,如第一过程中所示,图8B示出针对所有级安装至少一个识别器的选项1~10。接着,在第二过程中,从在第一过程中所选择的选项中确定最好的结构。因此,如上所述,针对选项,使用等式(2)针对所有级确定级N中的每个输入数据(矩形图像数据)的处理时间T[N],并将最大值设置为选项的第一处理时间。图8A示出对图8B中示出的第一至第五选项的结构的计算。从在第一过程中所选择的所有选项中选择具有第一处理时间的最小值的选项,并将其设置为最好的结构。在图8B中,选择具有最大级处理时间的1/3、并比其它选项小的值的第二选项作为最好的结构。
接着,将参考图9A和9B,采用与图8A和8B中相同的例子,即,使用图4C中示出的例子3中示出的条件安装了6个识别器,来说明由于在第二过程中选择多个选项而应用第三过程的例子。具体地,作为关于如何将模块的数量分配给级0、1和2的选项,如第一过程中所示,图9B示出针对所有级安装至少一个识别器的选项1~10。图9A示出对图9B中示出的第一至第六选项的结构的计算。
作为使用例子3的条件来计算模块的数量的结果,获得Num[0]∶Num[1]∶Num[2]=2∶1∶1。接着,通过使用上述第一过程和第二过程,选择所计算出的最大级处理时间最小的选项。在图9A和9B中示出的例子中,第一至第六选项具有相同的值1/2。因此,在第三过程中,比较第二最大级处理时间。结果,在图9B中,可以看出,第五选项具有1/4作为最大级处理时间的第二最大值,该值比其它选项小。因此,将第五选项选择为最好的结构。通过使用上述过程,即使当满足等式(3)的模块的数量比不是整数比时,也可以选择最好的结构。
如上所述,改变模块结构以使得在所有级的处理时间均匀。而且,改变模块结构以使得处理时间最长的级的处理时间缩短。由此,可以减少整体处理时间。
接着将参考图10和图11A~11C说明顺次处理输入图像时由通过率检测单元107进行的检测通过率的过程。作为图像扫描方法,使用之前所述的方法,其中,在输入图像的主扫描方向上逐像素的进行识别处理。
首先,在开始处理时,通过率检测单元107将通过率设置为默认值(例如,100%),并将模块结构设置为图11A中所示的默认结构。当处理开始时,通过率检测单元107基于逐像素输入的各级的识别结果,来更新各级的通过率。在预定数量的像素(矩形区域)在主扫描方向上进行了识别处理时的时间点,计算单元109基于此时的各级的通过率,来计算和确定用于在上述过程中处理接下来的和后续的像素的结构。所以当输入图像的带的更新区的处理完成时,计算单元109计算此时的通过率。通过主扫描方向上预定数量的像素和副扫描方向上带的宽度来定义更新区(对应于由从输入图像顺次提取的预定数量的矩形区域数据所覆盖的输入图像的区域)。然后,计算单元109指示模块结构改变单元110基于计算出的值来改变结构。当处理到达图像的右端时,通过率检测单元107将通过率复位至上述默认值。
将参考图10和图11A~11C说明以上过程的更具体的例子。作为主扫描方向上预定数量的像素,使用图10中示出的W0、W1、W2和W3。图11C示出当处理图10中示出的输入图像的Band_C时针对W0区和W1区的级0和1的平均通过率。
当开始对Band_C进行处理时,如前所述,将由通过率检测单元107示出的通过率设置为默认值。因此,处理Band_C的W0区(Band_C(W0))时的结构为图11A中示出的默认结构。当处理了Band_C(W0)的右端像素时,通过率检测单元107输出的通过率为如图11C的p[0]=1/3和p[1]=4/5。计算单元109计算满足等式(3)的模块数量比为Num[0]∶Num[1]∶Num[2]=15∶5∶4,以及将模块结构改变为图11B中示出的结构。
随后,处理Band_C的W1区(Band_C(W1)),并且当处理了Band_C(W1)的右端像素时,通过率检测单元107输出的通过率恰好为与图11C中的W0区的相同的值(p[0]=1/3 and p[1]=4/5)。在这种情况下,因为计算单元109计算出的模块的数量比相同,所以不改变结构。以下以相同的方式,每次处理了各区的右端像素时进行结构计算和结构改变,从而顺次处理区W1和W2。
接着将说明模块结构改变单元110的实施的具体例子。图2示出由模块结构改变单元110实现以下连接的例子:控制器105的输入信号(in0)→识别器0→识别器1→识别器2→至结果存储单元112的输出信号(out0)。如图2所示,可以通过连接(ON)在连接部分处的开关来实现该路径。
将说明针对各级改变识别器的数量的过程。假定例如计算单元109计算满足等式(4)的模块的数量比为Num[0]∶Num[1]∶Num[2]=6∶4∶2。在这种情况下,针对级0安装识别器0~5,针对级1安装识别器6~9,以及针对级2安装识别器10和11。控制单元(未示出)将各级处理所需的参数传送至各识别器。而且,路径(开关)设置单元114建立以下路径作为初始路径设置。
in0→识别器0→识别器6→识别器10→out0
in1→识别器1→识别器7→识别器11→out1
in2→识别器2→识别器8
in3→识别器3→识别器9
in4→识别器4
in5→识别器5
需要将识别器8和9连接至下一级的识别器10、11中之一,需要将识别器4和5连接至下一级的识别器6、7、8、9中之一,但不在初始路径设置中连接这些识别器。路径(开关)设置单元114监视从识别器输出的控制信号(valid)。例如,如果在识别器6和7都正在传送数据时(识别器6和7的valid信号有效),路径(开关)设置单元114检测到识别器8的valid信号有效,则路径(开关)设置单元114等待识别器6和7中较早完成数据传送(valid信号无效)的识别器(设置单元等待识别器6和7中先完成数据处理的识别器)。如果识别器6比识别器7较早完成数据传送,则紧挨在识别器6完成数据传送之后将连接路径改变如下:
in0→识别器0→识别器6
in1→识别器1→识别器7→识别器11→out1
in2→识别器2→识别器8→识别器10→out0
in3→识别器3→识别器9
in4→识别器4
in5→识别器5
采用使用交叉开关作为模块结构改变单元110的实施的例子进行了说明,但为了使其更通用,可以利用使用网络(互连接)实现模块结构改变单元的方法。
接着将参考图12A和12B说明使用网络(互连接)实现模块结构改变单元110的例子。将识别器0~11各自输出的识别结果输入至通过率检测单元107。将识别器连接至网络(互连接)80。当正在对给定的矩形图像数据执行识别处理时,将表示“处理中”(例如,占线信号有效)的状态发送至网络80。在网络80上安装的通信路径设置单元111确定将哪个识别器的处理结果发送至哪个识别器,或换句话说,识别器之间的连接关系(拓扑)。
例如,在图12A中示出的结构中,设置共享级0的处理的识别器0~2的输出以将该输出发送至共享级1的处理的识别器3~5。同样,设置识别器3~5的输出以将该输出发送至共享级2的处理的识别器6~8。基于计算单元109计算出的模块结构来确定通信路径设置单元111的设置内容。
例如,假定计算单元109计算出满足等式(3)的模块的数量比为Num[0]∶Num[1]∶Num[2]=6∶2∶1。在这种情况下,可以改变通信路径设置单元111的设置内容以使得将识别器0~2、5、7和8的输出发送至识别器3和4,并将识别器3和4的输出发送至识别器6。结果,实现了图12B所示的结构。
在将多个识别器设置为发送目的地的情况下,网络80从多个识别器中选择没有发送表示“处理中”的状态(占线信号无效)的识别器,并进行控制以建立连接。然而,如果处理时涉及所有的发送目的地,则网络80等待直到发送目的地中至少一个结束处理为止,然后再建立连接。
作为配置网络(互连接)的方法,考虑包括上述交叉开关方法、环方法和公共总线方法等的各种方法,但是任意一种方法都不会损害本发明的有效性。
其它实施例
接着将参考图13说明其它实施例。图13是利用处理器实施图12B的识别器的图。通过使用处理器的实施,可以通过改变处理器所执行的程序来简单地实现从图12A到图12B的识别模块结构改变。具体地,可以通过以下改变结构:
将处理器5a所执行的程序从级1的处理程序改变为级0的处理程序程序;以及
将处理器7a和8a所执行的程序从级2的处理程序改变为级0的处理程序。
在识别处理时,级联的级的数量通常可以为数十级,由此在电路规模方面可能很难针对各级安装至少一个专用识别器。在这种情况下,需要通过例如集成连续的多个级并且针对所集成的级安装识别器来优化电路规模。在使用处理器的实施中,可以通过改变程序容易地实现利用一个处理器的对连续的至少两个级处理的集成和所集成的级的执行。
在确定应该针对各级安装的识别器的最佳数量而进行的上述过程中,识别器的总数为给定的数量。然而,在使用处理器的实施中,在存在许多级的情况下,可以容易地进行单个处理器所执行的级处理的集成。因此,可以针对给定总数的处理器提供更宽的结构的选择,从而可以确定更好的模块结构。
而且,根据上述实施例,获得各级的通过率以改变模块结构。然而,本发明不限于此。可以针对通过率变化(相对)大的部分级来进行通过率的计算和模块结构的改变。期望该配置可以整体上增强本发明的效果。
根据上述实施例,基于针对各级处理检测到的通过率和各级的处理时间,动态地改变模块结构(各级的空间并行度,或换句话说,应该针对各级安装的识别器的数量)。因此,本发明具有性能几乎不根据输入图像的类型或图像内的处理位置而变化的效果,并可以获得均匀和高水平的处理性能。
还可以利用读出并执行记录在存储器装置上的程序以进行上述实施例的功能的系统或设备的计算机(或者CPU或MPU等装置)和通过下面的方法实现本发明的方面,其中,利用系统或设备的计算机通过例如读出并执行记录在存储器装置上的程序以进行上述实施例的功能来进行上述方法的步骤。为此,例如,通过网络或者通过用作存储器装置的各种类型的记录介质(例如,计算机可读介质)将该程序提供给计算机。
尽管已经参考典型实施例说明了本发明,但是应该理解,本发明不限于所公开的典型实施例。所附权利要求书的范围符合最宽的解释,以包含所有这类修改、等同结构和功能。
Claims (12)
1.一种数据处理设备,用于处理包括多个部分数据的输入数据,所述数据处理设备包括:
多个处理模块,用于通过连续的多个级对所述输入数据的多个部分数据进行数据处理,其中,至少一个级具有所分配的数个处理模块以使得并行处理多个部分数据,并且在各部分数据的数据处理期间,根据前一级中的部分数据的处理结果来判断是否在后续级中对该部分数据进行处理;
改变部件,用于通过改变所述多个处理模块的连接模式来改变针对所述多个级的所述多个处理模块的分配;
确定部件,用于针对所述多个级中的至少一个级,确定输入到该级的且随后在后续级中处理的数据量的比例作为通过率;
计算部件,用于基于所述确定部件所确定的通过率来计算分配给各级的处理模块的数量,
其中,所述改变部件根据所述计算部件所计算出的分配,改变所述多个处理模块的连接模式。
2.根据权利要求1所述的数据处理设备,其特征在于,
所述确定部件确定在要确定通过率的各级中处理的数据量,并基于所确定的数据量来确定各级的通过率。
3.根据权利要求2所述的数据处理设备,其特征在于,
所述计算部件根据所确定的数据量在各级之间的比,计算要分配给各级的处理模块的数量。
4.根据权利要求1~3中任一项所述的数据处理设备,其特征在于,还包括存储部件,所述存储部件用于针对所述多个级中的各级存储处理部分数据所需的处理时间,
其中,所述计算部件基于所述通过率计算各级中要处理的数据量;以及
所述计算部件计算要分配给各级的处理模块的数量,以针对各级使从要处理的数据量、所述处理时间和分配给各级的处理模块的数量所计算出的每个处理模块的平均处理时间的最大值减小。
5.根据权利要求1所述的数据处理设备,其特征在于,
所述确定部件针对所述输入数据的多个预定数据量确定所述通过率,
所述计算部件基于针对各个所述预定数据量所确定的通过率,计算分配给各级的处理模块的数量,以及
所述改变部件针对各个所述预定数据量,根据所述计算部件所计算出的分配来改变所述多个处理模块的连接模式。
6.根据权利要求5所述的数据处理设备,其特征在于,所述预定数据量与预定数量的部分数据相对应。
7.根据权利要求1~3和5~6中任一项所述的数据处理设备,其特征在于,
所述改变部件包括监视部件,所述监视部件用于监视所述处理模块的处理是否完成,以及所述改变部件在所分配的处理模块的数量在相邻级之间不同时,以前一级中的处理模块的处理完成的顺序,将前一级的处理模块连接至已经完成处理的后续级的处理模块。
8.根据权利要求1~3和5~6中任一项所述的数据处理设备,其特征在于,所述输入数据是图像数据,以及所述处理模块用于进行面部识别处理。
9.根据权利要求1~3和5~6中任一项所述的数据处理设备,其特征在于,所述计算部件计算要分配给各级的处理模块的数量以使得各级之间处理时间的差减小。
10.根据权利要求9所述的数据处理设备,其特征在于,所述计算部件基于各级中的处理模块的处理时间和所确定的各级的通过率来计算要分配给各级的处理模块的数量,以使得处理时间针对各级大致均匀。
11.根据权利要求1~3和5~6中任一项所述的数据处理设备,其特征在于,所述计算部件使用以下步骤来计算要分配给各级的处理模块的数量:
计算使至少一个处理模块分配给各级的分配选项的总数;
针对各分配选项计算各级的部分数据的处理时间,并将最大处理时间设置为该选项的处理时间;以及
选择具有最小处理时间的选项作为要由所述改变部件实现的分配。
12.一种在数据处理设备中的数据处理方法,所述数据处理设备用于处理包括多个部分数据的输入数据,所述数据处理设备包括:多个处理模块,用于通过连续的多个级对输入数据的多个部分数据进行数据处理,其中,至少一个级具有所分配的数个处理模块以使得并行处理多个部分数据,并且在各部分数据的数据处理期间,根据前一级中的部分数据的处理结果来判断是否在后续级中对该部分数据进行处理,所述数据处理方法包括以下步骤:
确定步骤,用于针对所述多个级中的至少一个级,确定输入到该级的且随后在后续级中处理的数据量的比例作为通过率;
计算步骤,用于基于所确定的通过率来计算分配给各级的处理模块的数量;以及
改变步骤,用于根据所述计算步骤中计算出的分配,改变所述多个处理模块的连接模式。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2010112661A JP5574816B2 (ja) | 2010-05-14 | 2010-05-14 | データ処理装置及びデータ処理方法 |
JP2010-112661 | 2010-05-14 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102243600A CN102243600A (zh) | 2011-11-16 |
CN102243600B true CN102243600B (zh) | 2013-01-23 |
Family
ID=44357938
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2011101259221A Expired - Fee Related CN102243600B (zh) | 2010-05-14 | 2011-05-16 | 数据处理设备和数据处理方法 |
Country Status (4)
Country | Link |
---|---|
US (1) | US9003167B2 (zh) |
EP (1) | EP2386950B1 (zh) |
JP (1) | JP5574816B2 (zh) |
CN (1) | CN102243600B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP5618670B2 (ja) | 2010-07-21 | 2014-11-05 | キヤノン株式会社 | データ処理装置及びその制御方法 |
JP7563468B2 (ja) | 2020-10-02 | 2024-10-08 | 日本電気株式会社 | 画像処理装置、画像処理方法及びプログラム |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101515286A (zh) * | 2009-04-03 | 2009-08-26 | 东南大学 | 基于图像特征多级过滤的图像匹配方法 |
CN101604386A (zh) * | 2008-06-09 | 2009-12-16 | 株式会社电装 | 图像识别设备及方法 |
CN101681503A (zh) * | 2007-05-31 | 2010-03-24 | 佳能株式会社 | 信息处理方法及装置、程序和存储介质 |
Family Cites Families (32)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS51112236A (en) | 1975-03-28 | 1976-10-04 | Hitachi Ltd | Shape position recognizer unit |
JPH0262671A (ja) | 1988-08-30 | 1990-03-02 | Toshiba Corp | カラー編集処理装置 |
WO1993004429A2 (en) * | 1991-08-13 | 1993-03-04 | Board Of Regents Of The University Of Washington | Method of generating multidimensional addresses in an imaging and graphics processing system |
US6407817B1 (en) | 1993-12-20 | 2002-06-18 | Minolta Co., Ltd. | Measuring system with improved method of reading image data of an object |
US5668631A (en) | 1993-12-20 | 1997-09-16 | Minolta Co., Ltd. | Measuring system with improved method of reading image data of an object |
US6545687B2 (en) | 1997-01-09 | 2003-04-08 | Canon Kabushiki Kaisha | Thumbnail manipulation using fast and aspect ratio zooming, compressing and scaling |
US6643400B1 (en) | 1999-03-31 | 2003-11-04 | Minolta Co., Ltd. | Image processing apparatus and method for recognizing specific pattern and recording medium having image processing program recorded thereon |
US20030228565A1 (en) | 2000-04-26 | 2003-12-11 | Cytokinetics, Inc. | Method and apparatus for predictive cellular bioinformatics |
US7092569B1 (en) | 1999-07-29 | 2006-08-15 | Fuji Photo Film Co., Ltd. | Method and device for extracting specified image subjects |
EP1205840B1 (en) * | 2000-11-08 | 2010-07-14 | Altera Corporation | Stall control in a processor with multiple pipelines |
US6855929B2 (en) | 2000-12-01 | 2005-02-15 | Ebara Corporation | Apparatus for inspection with electron beam, method for operating same, and method for manufacturing semiconductor device using former |
EP1324528A1 (en) * | 2001-12-31 | 2003-07-02 | TELEFONAKTIEBOLAGET LM ERICSSON (publ) | Apparatus and method for flexible data rate matching |
JP2003256221A (ja) | 2002-02-28 | 2003-09-10 | Fujitsu Ltd | 並列プロセス実行方法、及びマルチプロセッサ型コンピュータ |
US7181085B1 (en) * | 2002-04-04 | 2007-02-20 | Acorn Technologies, Inc. | Adaptive multistage wiener filter |
US20030226000A1 (en) * | 2002-05-30 | 2003-12-04 | Mike Rhoades | Collapsible pipeline structure and method used in a microprocessor |
US7444632B2 (en) * | 2003-09-25 | 2008-10-28 | International Business Machines Corporation | Balancing computational load across a plurality of processors |
JP4549352B2 (ja) | 2004-09-30 | 2010-09-22 | 富士フイルム株式会社 | 画像処理装置および方法,ならびに画像処理プログラム |
US20060200651A1 (en) * | 2005-03-03 | 2006-09-07 | Collopy Thomas K | Method and apparatus for power reduction utilizing heterogeneously-multi-pipelined processor |
US20060224864A1 (en) * | 2005-03-31 | 2006-10-05 | Dement Jonathan J | System and method for handling multi-cycle non-pipelined instruction sequencing |
JP4231516B2 (ja) * | 2006-08-04 | 2009-03-04 | 株式会社日立製作所 | 実行コードの生成方法及びプログラム |
KR20100005090A (ko) * | 2007-03-27 | 2010-01-13 | 가부시키가이샤 어드밴티스트 | 시험 장치 |
US8103108B2 (en) | 2007-05-01 | 2012-01-24 | Sharp Kabushiki Kaisha | Image processing apparatus, image forming apparatus, image processing system, and image processing method |
CN101334780A (zh) | 2007-06-25 | 2008-12-31 | 英特维数位科技股份有限公司 | 人物影像的搜寻方法、系统及存储影像元数据的记录媒体 |
US8284205B2 (en) * | 2007-10-24 | 2012-10-09 | Apple Inc. | Methods and apparatuses for load balancing between multiple processing units |
JP5101993B2 (ja) * | 2007-11-01 | 2012-12-19 | キヤノン株式会社 | 情報処理装置および情報処理方法 |
US20090125706A1 (en) * | 2007-11-08 | 2009-05-14 | Hoover Russell D | Software Pipelining on a Network on Chip |
JP4948379B2 (ja) * | 2007-12-18 | 2012-06-06 | キヤノン株式会社 | パターン識別器生成方法、情報処理装置、プログラム及び記憶媒体 |
US20090208112A1 (en) | 2008-02-20 | 2009-08-20 | Kabushiki Kaisha Toshiba | Pattern recognition method, and storage medium which stores pattern recognition program |
JP5100596B2 (ja) * | 2008-10-03 | 2012-12-19 | キヤノン株式会社 | 情報処理装置及び情報処理方法 |
JP5258506B2 (ja) | 2008-10-24 | 2013-08-07 | キヤノン株式会社 | 情報処理装置 |
JP2011076495A (ja) * | 2009-09-30 | 2011-04-14 | Toshiba Corp | マルチプロセッサによる並列処理装置 |
JP5618670B2 (ja) | 2010-07-21 | 2014-11-05 | キヤノン株式会社 | データ処理装置及びその制御方法 |
-
2010
- 2010-05-14 JP JP2010112661A patent/JP5574816B2/ja not_active Expired - Fee Related
-
2011
- 2011-05-06 US US13/102,168 patent/US9003167B2/en not_active Expired - Fee Related
- 2011-05-12 EP EP11165810.0A patent/EP2386950B1/en not_active Not-in-force
- 2011-05-16 CN CN2011101259221A patent/CN102243600B/zh not_active Expired - Fee Related
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101681503A (zh) * | 2007-05-31 | 2010-03-24 | 佳能株式会社 | 信息处理方法及装置、程序和存储介质 |
CN101604386A (zh) * | 2008-06-09 | 2009-12-16 | 株式会社电装 | 图像识别设备及方法 |
CN101515286A (zh) * | 2009-04-03 | 2009-08-26 | 东南大学 | 基于图像特征多级过滤的图像匹配方法 |
Non-Patent Citations (1)
Title |
---|
P.Viola,M.Jones.Robust Real-time Object Detection.《SECOND INTERNATIONAL WORKSHOP ON STATISTICAL AND COMPUTATIONAL THEORIES OF VISION》.2001, * |
Also Published As
Publication number | Publication date |
---|---|
JP2011242898A (ja) | 2011-12-01 |
EP2386950A2 (en) | 2011-11-16 |
US9003167B2 (en) | 2015-04-07 |
JP5574816B2 (ja) | 2014-08-20 |
US20110283088A1 (en) | 2011-11-17 |
CN102243600A (zh) | 2011-11-16 |
EP2386950A3 (en) | 2013-07-24 |
EP2386950B1 (en) | 2020-11-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102346856B (zh) | 数据处理设备及其控制方法 | |
CN111008640B (zh) | 图像识别模型训练及图像识别方法、装置、终端及介质 | |
CN110994704B (zh) | 一种暂态稳定预防控制辅助决策方法、装置及电子设备 | |
CN102243600B (zh) | 数据处理设备和数据处理方法 | |
CN112450080A (zh) | 一种温度调节方法、装置、系统及存储介质 | |
US9213906B2 (en) | Information processing apparatus and method | |
CN114612011A (zh) | 一种风险防控决策方法及装置 | |
CN114998877A (zh) | 一种烘干运载系统的控制方法、装置及电子设备 | |
CN117407178B (zh) | 一种自适应负载分配的加速子卡管理方法及系统 | |
CN112198817B (zh) | 无人机控制方法、装置、设备、无人机和介质 | |
GB2599464A (en) | Computing networks | |
CN108763373A (zh) | 人脸图像检索方法及装置 | |
CN110738770A (zh) | 人脸识别门禁处理方法、闸机、控制端和系统 | |
CN114155593B (zh) | 人脸识别的方法、装置、识别终端及存储介质 | |
US11983766B2 (en) | Debt management capability assessment system and method of analyzing debt management capability information using the same | |
CN111833634B (zh) | 一种信号灯故障检测方法及装置 | |
CN112163776A (zh) | 面料生产工序确定方法、装置、计算机设备和存储介质 | |
CN113079389B (zh) | 一种边缘计算环境下的资源自适应调节方法 | |
CN117021809A (zh) | 一种基于数码印刷的二维防伪码印刷调控方法及系统 | |
CN116229429A (zh) | 一种基于云边协同的驾驶安全检测方法 | |
CN115391054B (zh) | 车机系统的资源分配方法及车机系统 | |
CN108665794B (zh) | 一种广告机、广告机管理系统以及负载平衡方法 | |
Goebel et al. | State dependent parametrizations for nonlinear MPC | |
US20230196103A1 (en) | Weight precision configuration method and apparatus, computer device and storage medium | |
CN110570032B (zh) | 一种用户行为模型的初始权重优化方法及系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20130123 |
|
CF01 | Termination of patent right due to non-payment of annual fee |