CN101681503B - 信息处理方法及装置 - Google Patents

信息处理方法及装置 Download PDF

Info

Publication number
CN101681503B
CN101681503B CN2008800180100A CN200880018010A CN101681503B CN 101681503 B CN101681503 B CN 101681503B CN 2008800180100 A CN2008800180100 A CN 2008800180100A CN 200880018010 A CN200880018010 A CN 200880018010A CN 101681503 B CN101681503 B CN 101681503B
Authority
CN
China
Prior art keywords
information
value
cumulative information
cumulative
elements
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.)
Active
Application number
CN2008800180100A
Other languages
English (en)
Other versions
CN101681503A (zh
Inventor
伊藤嘉则
鸟居宽
山本贵久
加藤政美
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Canon Inc
Original Assignee
Canon Inc
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Canon Inc filed Critical Canon Inc
Publication of CN101681503A publication Critical patent/CN101681503A/zh
Application granted granted Critical
Publication of CN101681503B publication Critical patent/CN101681503B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/60Memory management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/21Design or setup of recognition systems or techniques; Extraction of features in feature space; Blind source separation
    • G06F18/214Generating training patterns; Bootstrap methods, e.g. bagging or boosting
    • G06F18/2148Generating training patterns; Bootstrap methods, e.g. bagging or boosting characterised by the process organisation or structure, e.g. boosting cascade
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/10Segmentation; Edge detection
    • G06T7/11Region-based segmentation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/10Segmentation; Edge detection
    • G06T7/143Segmentation; Edge detection involving probabilistic approaches, e.g. Markov random field [MRF] modelling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/40Extraction of image or video features
    • G06V10/44Local feature extraction by analysis of parts of the pattern, e.g. by detecting edges, contours, loops, corners, strokes or intersections; Connectivity analysis, e.g. of connected components
    • G06V10/443Local feature extraction by analysis of parts of the pattern, e.g. by detecting edges, contours, loops, corners, strokes or intersections; Connectivity analysis, e.g. of connected components by matching or filtering
    • G06V10/446Local feature extraction by analysis of parts of the pattern, e.g. by detecting edges, contours, loops, corners, strokes or intersections; Connectivity analysis, e.g. of connected components by matching or filtering using Haar-like filters, e.g. using integral image techniques
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/70Arrangements for image or video recognition or understanding using pattern recognition or machine learning
    • G06V10/77Processing image or video features in feature spaces; using data integration or data reduction, e.g. principal component analysis [PCA] or independent component analysis [ICA] or self-organising maps [SOM]; Blind source separation
    • G06V10/774Generating sets of training patterns; Bootstrap methods, e.g. bagging or boosting
    • G06V10/7747Organisation of the process, e.g. bagging or boosting
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/94Hardware or software architectures specially adapted for image or video understanding
    • G06V10/955Hardware or software architectures specially adapted for image or video understanding using specific electronic processors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V40/00Recognition of biometric, human-related or animal-related patterns in image or video data
    • G06V40/10Human or animal bodies, e.g. vehicle occupants or pedestrians; Body parts, e.g. hands
    • G06V40/16Human faces, e.g. facial parts, sketches or expressions
    • G06V40/161Detection; Localisation; Normalisation
    • G06V40/165Detection; Localisation; Normalisation using facial parts and geometric relationships
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
    • H03M7/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
    • H03M7/3059Digital compression and data reduction techniques where the original information is represented by a subset or similar information, e.g. lossy compression
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/20Special algorithmic details
    • G06T2207/20021Dividing image into blocks, subimages or windows
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/30Subject of image; Context of image processing
    • G06T2207/30196Human being; Person
    • G06T2207/30201Face

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Multimedia (AREA)
  • Software Systems (AREA)
  • Health & Medical Sciences (AREA)
  • Oral & Maxillofacial Surgery (AREA)
  • General Health & Medical Sciences (AREA)
  • Artificial Intelligence (AREA)
  • Evolutionary Computation (AREA)
  • Computing Systems (AREA)
  • Geometry (AREA)
  • Data Mining & Analysis (AREA)
  • Probability & Statistics with Applications (AREA)
  • Medical Informatics (AREA)
  • Human Computer Interaction (AREA)
  • Databases & Information Systems (AREA)
  • Bioinformatics & Cheminformatics (AREA)
  • General Engineering & Computer Science (AREA)
  • Evolutionary Biology (AREA)
  • Bioinformatics & Computational Biology (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Image Processing (AREA)
  • Image Analysis (AREA)
  • Image Input (AREA)
  • Information Transfer Systems (AREA)

Abstract

本发明涉及一种信息处理方法及装置。该信息处理方法包括如下步骤:输入多维阵列的输入信息;计算与所述输入信息的各元素的位置相对应的累积信息值;以及将所述累积信息值保持在具有预定位的大小的缓冲区中,其中,在所述保持步骤中,在所述计算步骤中计算的累积信息值相对于所述大小溢出的情况下,保持不多于所计算的累积信息值的所述预定位的部分作为所述累积信息值。

Description

信息处理方法及装置
技术领域
本发明涉及一种用于图像处理、图像识别、图像合成以及信息分析等的信息处理方法及装置。
背景技术
在信息处理领域中,频繁处理多维阵列信息。与图像处理、图像识别以及图像合成等相关联的局部处理和统计处理等经常计算并使用特定区域范围内的元素的总和值。
为此,作为实现信息处理的应用程序的示例的电子表格应用程序(例如Microsoft
Figure G68344808150138000D000011
等)具有计算二维表中的指定矩形内的元素的和的功能。用于计算的编程语言(例如MathWorks
Figure G68344808150138000D000012
)包括计算矩阵的元素的和的函数。
在计算机图形学领域,F.C.Crow提出了称为“求和面积表(summed-area table)”的针对原始输入图像信息的累积图像信息的概念(F.C.Crow,″Summed-Area Tables For Texture Mapping″,ComputerGraphics,1984.,下文中称为“Crow84”)。在该参考文献中,假设求和面积表是具有与输入图像相同的大小(相同的元素数量)的二维阵列,设I(x,y)为输入图像的坐标位置(x,y)处的像素值,求和面积表的相同位置(x,y)处的分量C(x,y)定义为:
C ( x , y ) = Σ x ′ ≤ x I y ′ ≤ y ( x ′ , y ′ ) - - - ( 1 )
也就是说,如图4所示,由原始输入图像4a上作为对角位置的原点位置(0,0)和位置(x,y)定义的矩形中的像素的总和值为求和面积表4b的位置(x,y)处的值C(x,y)(注意,Crow84的原始求和面积表将图像的左下角作为原点位置,但是为了与下面的描述衔接,使用左上角作为原点)。
根据该定义,可以使用下面的方程式仅参照求和面积表上的4个点的值,来计算水平或垂直地位于输入图像上的任意区域中的像素值I(x,y)的和。例如,如图5所示,可以通过下面的方程式来计算由作为对角点的(x0,y0)和(x1,y1)定义的矩形区域中的像素值的总和C(x0,y0;x1,y1):
C(x0,y0;x1,y1)=C(x0-1,y0-1)-C(x0-1,y1)-C(x1,y0-1)+C(x1,y1)    (2)
以这种方式,可以高速计算图像上的任意矩形区域中的值的总和。
另一方面,在图像识别领域,将相当于求和面积表的累积图像信息称为“积分图像(Integral image)”。此外,提出了级联连接各个包括多个矩形滤波器的弱分类器的面部检测装置(例如P.Viola,M.Jones,″RapidObject Detection using a Boosted Cascade of Simple Features″,Proc.IEEEConf.on Computer Vision and Pattern Recognition,Vol.1,pp.511-518,December 2001.,下文中称为“Viola01”)。
此外,基于Viola01的观点,提出了连续帧中的实时面部提取(例如参见日本特开2004-185611号公报)、面部表情识别(例如参见日本特开2005-44330号公报)以及利用面部姿态进行的指令输入(例如参见日本特开2005-293061号公报)等。
下面将详细描述在Viola01中描述的模式识别方法,可以将该方法作为本发明的实施例中的后续处理(稍后描述)来应用。
在Viola01中,如图8所示,具有特定大小的矩形区域801(下文中称为“处理窗口”)在要处理的图像800中移动,并且确定各移动目的地处的处理窗口801是否包括人脸。
图9示出了在各移动目的地处的处理窗口801中、在Viola01中执行的面部检测处理的序列。以多个阶段执行某一处理窗口中的面部检测处理。对各阶段分配弱分类器的不同组合。各弱分类器检测所谓的类哈尔(Haar-like)特征,并包括矩形滤波器的组合。
如图9所示,对各阶段分配不同数量的弱分类器。各阶段使用分配给其自己的模式的弱分类器来确定处理窗口是否包括人脸。
对各阶段分配确定处理的执行顺序,各阶段根据该顺序来级联执行处理。即,例如,在图9中,按照第一阶段、第二阶段和第三阶段的顺序执行确定处理。
如果在给定阶段中确定某一位置处的处理窗口不包括人脸,则中断针对该位置处的处理窗口的处理,以跳过后续阶段中的确定处理。如果在最后阶段中确定处理窗口包括人脸,则确定该位置处的处理窗口包括人脸。
图10是示出面部检测处理的序列的流程图。下面将参照图10描述面部检测处理的实际序列。
在面部检测处理中,要处理的处理窗口801位于面部检测目标图像800上的初始位置(步骤S1001)。基本上,该处理窗口801从面部检测目标图像800的一端开始,以预定时间间隔依次在垂直和水平方向上移动。通过该移动,全面选择整个图像。例如,通过光栅扫描面部检测目标图像800,来选择处理窗口801。
执行关于所选择的处理窗口801是否包括人脸的确定处理。如上面使用图9所描述的,在多个阶段中执行该确定处理。由于该原因,从第一阶段开始依次选择执行确定处理的阶段(步骤S1002)。
所选择的阶段执行确定处理(步骤S1003)。在该阶段的确定处理中,计算累积得分(稍后描述),并且确定计算的累积得分是否超过针对各阶段预先设置的阈值(步骤S1004)。如果累积得分没有超过阈值(步骤S1004中的“否”),则确定处理窗口不包括人脸(步骤S1008),执行步骤S1007及后续步骤中的处理。稍后将描述步骤S1007及后续步骤中的处理。
另一方面,如果累积得分(稍后描述)超过阈值(步骤S1004中的“是”),则确定该确定处理(步骤S1003)是否由最后的阶段执行(步骤S1005)。如果确定处理不是由最后的阶段执行的(步骤S1005中的“否”),则处理返回到步骤S1002以选择下一阶段,并由新选择的阶段执行确定处理。另一方面,如果确定处理是由最后的阶段执行的(步骤S1005中的“是”),则最终确定当前处理窗口包括人脸(步骤S1006)。此时,确定该处理窗口包括人脸。
然后,确定经过确定处理的处理窗口是否是面部检测目标图像中的最后位置的处理窗口(步骤S1007)。如果处理窗口不是最后位置的处理窗口(步骤S1007的“否”),则处理返回到步骤S1001,以将处理窗口移动到下一位置并执行步骤S1002及后续步骤中的处理。如果处理窗口是最后位置的处理窗口,则针对进行面部检测的该输入图像的面部检测处理结束。
下面将描述各阶段中的确定处理的内容。对各阶段分配一个或更多个模式的弱分类器。该分配通过学习处理中的诸如AdaBoost(自适应增强)等的增强学习(boosting learning)算法来执行。各阶段基于分配给其自己的弱分类器模式来确定处理窗口是否包括面部。
在各阶段中,基于分配给该阶段的弱分类器模式计算处理窗口中的多个矩形区域中的特征量。在这种情况下使用的特征量是使用各矩形区域中的像素值的总和计算的值,例如矩形区域中的像素值的总数和平均值等。如使用图5关于Crow84所描述的,使用输入图像的累积图像信息(求和面积表或积分图像)可以高速计算矩形区域中的总和值。
作为计算的特征量的相对值(例如比率或差值;在这种情况下使用差值),计算差值,并基于该差值确定处理窗口是否包括人脸。更具体地说,确定计算的差值是大于还是小于在确定中使用的弱分类器模式中设置的阈值。根据该确定结果,确定处理窗口是否包括人脸。
然而,虽然基于各弱分类器模式获得此时的确定结果,但是该结果不是阶段的结果。以这种方式,在各阶段中,基于所有分配的弱分类器模式单独执行确定处理,并获得各自的确定结果。
接下来,计算该阶段的累积得分。对弱分类器模式分配各自的得分。如果确定处理窗口包括人脸,则参照分配给此时使用的弱分类器模式的得分,将其与该阶段的累积得分相加。以这种方式,计算得分的总和作为该阶段的累积得分。如果该阶段的累积得分超过特定阈值(累积得分阈值),则在该阶段中确定处理窗口很可能包括人脸,处理前进到下一阶段。另一方面,如果该阶段的累积得分没有超过累积得分阈值,则在该阶段中确定处理窗口不包括人脸,中止级联处理。
在Viola01中,以这种序列实现面部检测代表的高速模式识别。注意,如果图9和图10中的检测器预先经过适当的学习,则其可以用作用于识别除面部以外的对象的模式识别器。
在根据输入图像信息生成前述累积图像信息(求和面积表或积分图像)时,通常,基于计算的最差值来确定存储缓冲区的位精度和大小(临时保持区的位精度和大小)。即,设Ximg为输入图像信息的宽度(水平方向上的像素数量),Yimg为高度(垂直方向上的像素数量)。此外,Nimg位(N为正整数)表示各像素的位精度。则,当所有像素值取最大值:
I max = ( 2 N img - 1 ) 时,
最差值Cmax是所有像素的总和值:
C max = &Sigma; 0 &le; x < X img 0 &le; y < Y iimg I ( x , y ) = I max X img Y img - - - ( 3 )
因此,尽管存储累积图像信息的缓冲区的每个元素的位精度Nbuf依赖于图像大小,但是需要位精度Nbuf是可以存储Cmax的位精度Nbuf_max,并且取远大于Nimg的值。例如,当具有VGA大小的8位灰度级(Grayscale)图像是输入图像时,Nimg=8,Ximg=640,Yimg=480。因此,需要确保Cmax=78336000=4AB5000h的缓冲区,换句话说,需要确保Nbuf=Nbuf_max=27位精度(大小)。当必须同时保持输入图像信息的整个区域的累积图像信息时,必须确保大小为Nbuf_max×Ximg×Yimg=8294400位的诸如RAM等的存储区域,这占用处理资源。
因此,需要通过任意方法降低缓冲区的位精度Nbuf。尤其是,由于在硬件实现基于这种累积信息的处理的情况下,工作存储器的大小直接影响电路规模,因此降低Nbuf是切实的问题。即使在软件实现该处理时,如果可以降低Nbuf,则可以使用更小的大小,由此抑制资源消耗量。
Crow84描述了一种降低缓冲区的位精度Nbuf的方法。即,将输入信息分割为块,每个块由16像素×16像素定义,并针对每个块独立地计算求和面积表。如果输入信息的位精度Nimg=8位,则此时所需的缓冲区的位精度为16位。另外,针对各块保持与在向左上角左上倾斜的方向上邻接的像素位置对应的原始求和面积表的32位值。为了恢复与期望位置对应的值,可以将由包括该位置的块保持的32位值与该位置的16位值相加(然而,实际上,这种计算不足以恢复原始求和面积表的值)。
然而,在传统方法中,可以参照4个点使用例如方程式(2)的简单的加法和减法来计算期望区域的总和值,然而增加了用于恢复各点的值的计算,这导致非常大的计算负荷。在硬件实现处理的情况下,增大了用于计算的电路规模。即使在软件实现处理的情况下,处理速度也降低。
发明内容
做出本发明以解决这些问题,本发明的目的是大大减小保持累积信息所需的缓冲区容量,而不增大用于计算的电路规模或处理负荷,或者同时减小用于计算的电路规模或处理负荷。
根据本发明的一方面,提供了一种信息处理方法,该信息处理方法包括如下步骤:输入多维阵列的输入信息;计算与所述输入信息的各元素的位置相对应的累积信息值;以及将所述累积信息值保持在具有预定位的大小的缓冲区中,其中,在所述保持步骤中,在所述计算步骤中计算的累积信息值相对于所述大小溢出的情况下,保持不多于所计算的累积信息值的所述预定位的部分作为所述累积信息值。
根据本发明的另一方面,提供了一种信息处理装置,该信息处理装置包括:输入单元,其适合于输入多维阵列的输入信息;计算单元,其适合于计算对应于所述输入信息的各元素的位置的累积信息值;以及保持单元,其适合于将所述累积信息值保持在具有预定位的大小的缓冲区中,其中,在所述计算单元计算的累积信息值溢出所述预定位的情况下,所述保持单元保持不多于所计算的累积信息值的所述预定位的部分作为所述累积信息值。
通过下面参照附图对示例性实施例的描述,本发明的其它特征将变得清楚。
附图说明
图1是示出根据第一实施例的信息处理装置的配置的框图;
图2是示出累积信息生成单元的配置的框图;
图3是示出累积信息使用计算单元的配置的框图;
图4是用于说明基于二维输入信息生成累积图像信息的传统方法的图;
图5是使用累积图像信息计算期望的矩形区域中的像素的总和值的方法的说明图;
图6A和图6B是降低保持累积信息的缓冲区的位精度的相关技术的说明图;
图7是示出溢出(overflow)累积信息的示例图;
图8是用于说明作为模式识别处理的示例的面部检测处理的图;
图9是示出包括多个弱分类器的模式识别器的配置的示例图;
图10是包括多个弱分类器的模式识别器中的检测处理的流程图;
图11是示出第一实施例的总体处理的序列的流程图;
图12是用于说明由带缓冲区保持累积信息的图;
图13是示出在带缓冲区保持累积信息的情况下的总体处理的序列的流程图;
图14是用于说明由块缓冲区保持累积信息的图;
图15A和图15B是示出在块缓冲区保持累积信息的情况下出现计算开销的区域的图;
图16是示出在块缓冲区保持累积信息的情况下的总体处理的序列的流程图;
图17A和图17B是块缓冲区包括双缓冲区时的说明图;
图18A和图18B是作为多维累积信息的示例的三维累积信息的说明图;
图19是用于说明在使用三维累积信息的情况下的处理窗口的图;以及
图20A、图20B和图20C是示出保持三维累积信息所需的缓冲区的形式的图。
具体实施方式
下文中,将参照附图详细描述根据本发明的实施例。
在本实施例中,将基于具有相同维数的阵列的输入信息通过累积加法计算生成的多维(二维或更多维)阵列信息(例如前述求和面积表或积分图像)简称为累积信息。尤其是,当输入信息是二维阵列的图像信息时,将该阵列信息称为累积图像信息。在本实施例中,将输入信息的各元素表示为正整数(或定点数)。
(第一实施例)
图1是示出根据本发明的一个实施例的信息处理装置的配置的框图。
CPU 101控制经由总线105连接的各单元,并实现信息处理装置的预期处理。信息输入单元102输入多维的输入信息,并将例如要处理的输入图像数据取入到装置中。信息输入单元102可以包括诸如CCD等的图像传感器,或经由诸如网络等的预定通信路径从外部装置接收要处理的数据的I/F设备。外部存储器104连接到总线105,并包括诸如ROM、RAM以及HDD等的存储设备。外部存储器104存储CPU 101运行所需的程序代码,并用作执行各种处理时的工作区。外部存储器104还根据需要用作保持输入信息的区域。
DMA控制器(DMAC)103接收CPU 101设置的操作指令,并能够自发并连续地在信息输入单元102、外部存储器104和累积信息处理器100(稍后描述)之间执行预定大小的数据传输。当完成指令的传输操作时,DMAC 103经由总线105向CPU 101发送中断信号。
累积信息处理器100包括用于连接总线105的总线I/F 110、累积信息生成单元111、累积信息使用计算单元112以及累积信息保持单元113。累积信息保持单元113包括用于保持累积信息的位精度为Nbuf的专用存储器,以及用于控制对专用缓冲存储器的输入输出访问的存储器控制器。稍后将描述位精度Nbuf
累积信息生成单元111生成信息输入单元102输入的要处理的信息(例如图像数据等)的累积信息,并将生成的累积信息存储在累积信息保持单元113中。响应于来自CPU 101的请求,累积信息使用计算单元112使用在累积信息保持单元113中保持的累积信息执行计算处理,并将结果返回给CPU 101。注意,当输入信息是二维图像数据时,累积信息是对应于Crow84或Viola01的求和面积表或积分图像的累积图像信息。可以基于多维(例如三维或更多维)输入信息生成类似的累积信息(稍后描述)。
(包括后续处理的处理序列)
下面将描述图1所示的信息处理装置中的包括后续处理的总体处理的序列。
响应于用户操作或来自外部装置(未示出)的处理开始触发信号,本实施例的信息处理装置首先执行信息输入处理步骤S1101。在该处理中,信息输入单元102接收输入信息,并根据需要将接收的信息存储在外部存储器104中。下面将假设输入信息是表示为预定大小的二维阵列的图像数据,来描述本实施例。然而,根据本发明的主旨,三维或更多维的多维阵列信息可以是输入信息。
在步骤S1102中,信息处理装置使用存储在外部存储器104中的输入信息执行累积信息生成处理。如稍后所描述的,该处理基于输入信息在累积信息保持单元113中生成累积信息。CPU 101设置DMAC 103,以依次将输入信息元素值从外部存储器104传输到累积信息处理器100。
当在该装置的后续处理等中不按原样使用输入信息时,可以并行执行步骤S1101和S1102中的处理。更具体地说,每次输入一行数据时,可以重复步骤S1101和S1102,或者每次输入一个元素值时,可以以流水线方式相继处理步骤S1101和S1102。此时,CPU 101可以设置DMAC 103,以自动依次将输入信息的各元素从信息输入单元102传输到累积信息处理器100。
在累积信息保持单元113中生成累积信息之后,信息处理装置在步骤S1103中执行主处理。本实施例的信息处理装置执行使用图10描述的模式识别处理作为主处理。当然,可以应用使用累积信息的其它种类的处理。如上所述,在图10的模式识别处理中,必须获得各矩形区域中的元素的总和值,以在步骤S1003中的确定处理中通过各弱分类器来检测预定类哈尔特征。CPU 101能够通过操作累积信息使用计算单元112高速地获得该总和值。稍后将详细描述累积信息使用计算单元112的操作。注意,在本说明书中描述的后续处理是指步骤S1103中的主处理之后的处理。
当完成步骤S1103中的主处理(例如模式识别处理)时,信息处理装置执行作为期望的后续处理的步骤S1104。后续处理包括将处理结果通知给外部装置和用户等的处理或要使用识别结果来执行的各种处理。
(累积信息生成单元的描述)
下面将描述累积信息生成单元111的配置和操作。图2是示出累积信息生成单元111的配置以及总线I/F 110和累积信息保持单元113的连接状态的框图。
输入信息大小存储寄存器201存储从信息输入单元102输入的多维阵列信息的大小。在寄存器201中,CPU 101在处理开始之前经由总线I/F 110设置值。在CPU 101或DMAC 103的控制下,输入元素值保持寄存器203临时依次保持经由总线I/F输入的输入阵列信息的一个元素值。
每次将元素值输入到输入元素值保持寄存器203中时,地址计数器202基于输入信息大小存储寄存器201中存储的输入阵列信息的大小,来计算用于存储与元素值对应地生成的累积信息值的累积信息保持单元113的存储地址。当输进输入信息的第一个像素(原点位置)时,地址计数器202将存储地址重置为0或预定偏移值,并逐一递增存储地址,直到输入图像的最后的像素为止。
地址计数器202参照输入信息大小存储寄存器201中存储的输入阵列信息的大小,在输入属于第二行或后续行的元素值时,计算存储处于一行之前的同一列的位置的累积信息值的先前行累积信息地址。地址计数器202通过从之前计算的存储地址中减去元素阵列的一行的元素数量,来获得该地址。当如本实施例中输入二维数据时,如果该减法结果为负值(或者小于偏移量),则可以确定仍在进行第一行的元素值的输入处理。
将地址计数器202计算的地址提供给存储器控制器113-2,由此实现累积信息保持存储器113-1对该地址的写入或读取访问。
在先前行累积值参照寄存器205中临时保持基于先前行累积信息地址所参照的先前行累积值。然而,在当前输入像素属于第一行时,在该寄存器中设置“0”。
当前行累积值保持寄存器204仅针对当前输入的行保持来自第一个元素(原点)的累积和信息。在将元素输入到输入元素值保持寄存器203的时刻,当前行累积值保持寄存器204保持在当前元素之前输入的元素的累积和的值。由于仅针对正在输入的一行保持该值,因此在输入行改变时,该值被重置为“0”。
累积加法处理器206包括两个加法器206-1和206-2。加法器206-1和206-2都输入和输出位精度为Nbuf的正整数。
如下执行累积信息的生成操作。CPU 101经由总线I/F 110在输入信息大小存储寄存器201中设置要输入的阵列信息的各维方向上的大小。通过CPU 101或DMAC 103的传输功能将从信息输入单元102输入的阵列信息的第一个元素输入到输入元素值保持寄存器。同时,将地址计数器重置为“0”或预定偏移值。此外,同时,由于要输入第一行的元素,因此将先前行累积值参照寄存器205重置为“0”,并且由于输入一行的第一个元素,因此将当前行累积值保持寄存器204重置为“0”。
累积加法处理器206的加法器206-1将当前行累积值和输入元素值相加。由于将和反馈到当前行累积值保持寄存器204并存储在其中,因此可以在输入下一个元素值时使用该和。还将该和值输入到加法器206-2,并与在先前行累积值参照寄存器205中保持的先前行累积值相加。该和是对应于输入元素位置的累积信息值,并经由存储器控制器113-2存储在前述地址计数器202计算的累积信息保持存储器的存储地址中。之后,通过在每次输入阵列元素值时重复相同的处理,在对第二及后续行的处理中,将输入阵列元素值与当前行累积值和先前行中相同位置的累积信息值相加,由此生成对应于输入信息的累积信息。
(累积信息使用计算单元的描述)
下面将描述在步骤S1103中的主处理中使用的累积信息使用计算单元112的配置和操作。在本实施例中,使用累积信息执行作为使用计算结果的后续处理的、参照图8至图10描述的模式识别处理。因此,所需的计算结果是相对地布置在处理窗口801中并检测类哈尔特征的弱分类器的各矩形中的元素的总和值。如上面参照图5所描述的,可以参照累积图像信息的4个点的元素值,来计算输入图像的任意矩形区域中的元素的总和值。
图3是示出累积信息使用计算单元112的配置以及与总线I/F 110及累积信息保持单元113的连接的框图。与在图2中描述的相同,附图标记201表示输入信息大小存储寄存器。如上所述,CPU 101经由总线I/F 110在该输入信息大小存储寄存器201中预先设置输入信息的大小。
CPU 101指定要计算处理窗口中的总和值的矩形区域。CPU 101根据输入信息的原点,将表示该矩形区域的、处理窗口中的2个点的对角坐标(相对坐标)转换为绝对坐标,换句话说,图5中的(x0,y0)和(x1,y1)。CPU101经由总线I/F 110在区域指定寄存器301中设置这些绝对坐标值。
响应于经由总线I/F 110来自CPU 101的计算开始触发信号,参照地址计算单元302参照在区域指定寄存器301中设置的值,并计算存储图5中的4个点A、B、C和D的位置处的值的地址。参照地址计算单元302将地址值依次传递到存储器控制器113-2。
存储器控制器113-2访问累积信息保持存储器113-1,并在参照值临时保持寄存器303中设置依次获取的4个点的累积信息值。
在参照值临时保持寄存器303保持4个点的值之后,加法和减法处理器304使用这4个点的值执行预定加法和减法处理。注意,预定加法和减法处理进行方程式(2)给出的计算。将该计算结果保持在计算结果保持寄存器305中。CPU 101可以通过经由总线I/F 110接收中断消息,参照完成标记等,来检测计算的完成。CPU 101获取计算结果保持寄存器305的值,并使用其作为设置的矩形区域的总和值。
注意,在加法和减法处理器304中使用的所有加法器和减法器输入和输出Nbuf位的正值。
(基于Crow84的描述的位减少方法)
下面将详细描述在Crow84中描述的、通过保持在块分割之后生成的累积信息来降低缓冲区的位精度的方法。如上所述,由于仅使用在Crow84中指定的计算不足以恢复原始的未分割的累积信息值,因此下面将参照图6A和图6B描述改进这一点的方法。
图6A是用于说明块分割之后的累积信息的保持方法的示例图。图像600表示将大小为Ximg×Yimg像素的输入图像分割为各个大小为Xsub×Ysub像素的块,并且以左上端的像素作为原点,针对各块生成累积图像信息的状态。设Csub(j,k)为各块的累积图像信息(下文中称为子累积信息),则Csub(j,k)(Xsub,Ysub)为在各块中使用左上端的像素作为原点(0,0)时,位置(Xsub,Ysub)处的值(子累积信息值)。注意,j表示水平块位置,k表示垂直块位置(二者都是从“0”开始的整数值)。此外,0≤xsub<Xsub且0≤ysub<Ysub。此时,由下式给出各Csub(j,k)(Xsub,Ysub)的最差值Cmax_sub
Cmax_sub=ImaxXsubYsub    (4)
可以存储该最差值的位精度Nbuf_sub是存储Csub(j,k)所需的缓冲区所需的位精度。(Imax是可以取为位精度为Nimg的输入信息值的最大值,即2Nimg-1。)
独立准备存储针对传统的整个区域在各块Csub(j,k)的右下端位置计算的累积信息值Rsub(j,k)(下文中称为代表累积信息值)601的缓冲区Rsub 602。也就是说,结合方程式(1),可以得到:
Rsub(j,k)=C(Xsub(j+1)-1,Ysub(k+1)-1)    (5)
由于是传统的累积信息,因此Rsub(j,k)的位精度为Nbuf_max。因此,如果:
Jmax=(Ximg-1)/Xsub,Kmax=(Yimg-1)/Ysub    (6)
则因为Rsub的元素的数量与块的数量相等,所以由(Jmax+1)(Kmax+1)来表示Rsub的元素的数量(这些方程式中的“/”表示整数除法,舍去余数)。
假设存储了所有块的一组子累积信息Csub(j,k)和代表累积信息Rsub。此时,仅将子累积信息值611的值与位置610处的代表累积信息值相加,不足以恢复与图6B所示的点X的位置相对应的传统累积图像信息值C(x,y),需要与位置612-1至612-5处的子累积信息值相加。因此,取:
xsub=mod(x,Xsub),ysub=mod(y,Ysub)
j=x/Xsub,k=y/Ysub    (7)
通过进行下式给出的计算:
C ( x , y ) = R sub ( j - 1 , k - 1 ) + C sub ( j , k ) ( x sub , y sub )
+ &Sigma; 0 &le; k &prime; < k C sub ( j , k &prime; ) ( x sub , Y sub - 1 ) + &Sigma; 0 &le; j &prime; < j C sub ( j , k ) ( X sub - 1 , y sub ) - - - ( 8 )
可以再现期望的位置X处的传统累积信息值。(注意,mod(a,b)是进行整数除法a/b时的余数。当j=0或k=0时,可以得到Rsub(j-1,k-1)=0。)
在以这种方式计算4个点的值之后,如在通常的累积图像信息中一样,计算方程式(2),由此计算矩形区域的总和值。
当采用这种累积信息保持方法时,如果对于Nimg=8,Ximg=640,Yimg=480的输入图像,Xsub=Ysub=16,则由于Cmax_sub=ImaxXsubYsub=65280=FF00h,因此Nbuf_sub=16位。即使在临时保持所有生成的累积信息时,要确保的总缓冲区大小也为Nbuf_sub×Ximg×Yimg+Nbuf_sub×Jmax×Kmax=4947600位。也就是说,从上面的描述中可以看出,与保持所有C(x,y)值的情况相比,可以大大减小缓冲区大小。
然而,基于块分割的缓冲区大小减小方法遇到了下面描述的问题。即,在传统方法中,可以仅通过参照4个点的值,通过进行由方程式(2)给出的简单的加法和减法计算,来计算期望的矩形区域的总和值。然而,在该方法中,需要针对4个点进行方程式(7)和(8)的计算,以恢复它们的值。即,获得期望的结果所需的计算负荷显著增加。
尤其是,在硬件实现处理时,计算方程式(7)所需的除法器的实现使电路规模显著增加。由于计算方程式(2)所需的加法器和减法器使用传统的累积信息值,尽管降低了缓冲区的位精度,但是需要输入与传统方法相同的位精度Nbuf_max。由于该位精度通常大于存储部分区域的要计算的总和值所需的位精度,因此这可能是增加电路规模的因素。
此外,当执行并行计算处理以增大处理速度时,由于这些增加的电路以并行度的倍数起作用,因此引起了更切实的问题,并且它们影响操作时钟和流水线阶段(pipeline stage)的数量。即使在软件实现处理时,由于对应于恢复计算的处理负荷增加,因此执行速度显著降低。
因此,在本实施例中,执行不进行块分割(下面描述)的方法。
(位精度和生成的溢出累积信息)
如上所述,假设当所有输入阵列元素取最大值时,位精度Nbuf是能够存储最差累积值Cmax的位精度Nbuf_max。此时,生成图4所示的传统累积信息4b,当输入信息是二维阵列时,值在右下方向上单调增加。然而,当用于保持累积信息的缓冲区被设置为具有满足Nbuf<Nbuf_max的位精度(预定位)时,如图7所示,值在右下方向上的某一位置溢出,并返回小的值。重复该处理,生成与原始累积信息的预定位的一部分或更少的位相对应的累积信息。下文中,将这种累积信息称为溢出累积信息。
注意,图7使用等高线例示了溢出位置。通常,由于累积值向右下位置进行存储,因此溢出出现的频率增大,并且等高线间隔较小。也就是说,即使在同样大小的区域(例如在处理窗口中),溢出出现的频率也向右下位置增大。
本实施例的信息处理装置使用生成这种溢出累积信息的位精度为Nbuf的累积信息生成单元111和累积信息保持单元113。如上所述,由于在加法和减法处理器304中使用的加法器和减法器输入和输出Nbuf位的正值,因此根据要参照的4个点的值,可能出现溢出或下溢(underflow)。
如上所述,累积信息保持单元113包括累积信息保持存储器113-1和存储器控制器113-2。累积信息保持存储器113-1能够在各地址存储Nbuf位的值,而通过设计存储器控制器113-2,可以使用通用的8位或32位的RAM。在这种情况下,存储器控制器113-2将地址和位彼此相关联,并分配作为与Nbuf的差的分数位(fractional bit)作为另一地址值。由此,可以通过打包来使用最小需要RAM大小。
下面将描述即使在利用图7所示的位精度为Nbuf的溢出累积信息、使用Nbuf位的加法器和减法器来执行加法和减法处理时、在后续处理中使用计算结果值时也不会产生问题的原因以及决定没有问题的、最小需要位精度的方法。
(溢出累积信息的原理和位精度的决定要件)
在本实施例中,生成溢出累积信息,使Nbuf=Nov(下面描述)。图5是用于说明即使使用溢出累积信息也能够正确计算矩形区域中的元素的总和值的原理的图。注意,图5对应于通常的累积信息、即背景技术的描述(方程式(2)中的图4中的4b,但是通过用溢出累积信息、即对应于图6A和图6B的累积信息替换通常的累积信息,来给出下面的说明。就计算原始输入图像(图4中的4a)中的特定区域中的元素值的总和而言,适用相同的使用目的。
在图5中,设A、B、C和D为点(x0-1,y0-1)、(x1,y0-1)、(x0-1,y1)以及(x1,y1)的位置处的元素值(溢出累积值)。假设累积信息保持单元的专用缓冲存储器的位精度为Nov,且X=2Nov。注意,将计算mod(S′,T)定义为S′除以T的余数,并用S表示。注意,T是正整数,S′是可以具有正号或负号的整数。当S′为负时,将通过相加T直到值等于或大于0而获得的值定义为mod(S′,T)的计算结果S。因此,S是非负整数。
假设S′为通过相加和/或相减多个正整数或者其组合而获得的计算结果。如果使用输入和输出Nov位正整数的加法器和减法器,则在获得的输出超过X的情况下,获得的输出溢出,或者在获得的输出小于0的情况下,获得的输出下溢。因此,结果等于S=mod(S′,X′)。即,如果实际的加法和减法计算结果S′等于或大于X,则S变成被X除的余数;如果S′为负值,则S变成通过将X与S′相加直到其变成正值而获得的值。结果,获得总是满足0≤S<X的值S。
如果缓冲区的位精度为Nov,则可以通过下式表示图5所示的溢出累积值A、B、C和D:
A=mod(A′,X)
B=mod(B′,X)
C=mod(C′,X)
D=mod(D′,X)    (9)
其中,A′、B′、C′和D′是在没有任何溢出的、通常的传统累积信息的情况下的相同位置的值,这些值为正整数,并且根据方程式(2)的描述,通过下式来分别给出:
A′=C(x0-1,y0-1)
B′=C(x1,y0-1)
C′=C(x0-1,y1)
D′=C(x1,y1)    (10)
在本实施例中,图2所示的累积加法处理器206使用输入和输出与缓冲区的位精度相对应的Nov位正整数的加法器。因此,当生成溢出累积信息时,避免了进行对应于方程式(9)的计算的需要,因此进行这些计算。
设C(x0,y0;x1,y1)=S′为由作为对角点的(x0,y0)和(x1,y1)定义的矩形区域中的总和值,根据方程式(2)和方程式(10),要计算的值为:
S′=C(x0-1,y0-1)-C(x0-1,y1)-C(x1,y0-1)+C(x1,y1)=A′-B′-C′+D′    (11)
分别通过下式来表示A′、B′、C′和D′:
A′=A″X+A
B′=B″X+B
C′=C″X+C
D′=D″X+D    (12)
此时,A″、B″、C″和D″分别是通过A′、B′、C′和D′除以X获得的商。
下面将分析代替A′、B′、C′和D′按原样使用A、B、C和D执行与方程式(11)相同的加法和减法处理的情况。假设使用的所有加法器和减法器都输入和输出Nov位正整数。(也就是说,在本实施例中,加法和减法处理器304还包括输入和输出Nov位正整数的加法器和减法器)。此时,如果由于对加法器和减法器的位限制,(A-B-C+D)大于X,则计算结果S溢出;或者,如果(A-B-C+D)小于0,则S下溢。因此,0≤S<X。也就是说,根据mod计算的前述定义,可以得到:
S=mod{(A-C-B+D),X}    (13)
将方程式(12)代入方程式(13),其变形得出:
S=mod{(A-C-B+D),X}
=mod[{(A′-C′-B′+D′)-(A″-C″-B″+D″)X},X]
=mod{(A′-C′-B′+D′),X}
=mod(S′,X)                (14)
也就是说,从方程式(14)可以看出,如果保证0≤S′<X,则S=S′。
由于基于S′的原始定义,S′是具有正整数(或定点数)的元素值的输入信息的特定矩形区域中的总和值,因此保证S′≥0。因此,当选择能够保证0≤S<X=2Nov的Nov,并将其用作缓冲区的位精度Nbuf时,可以保证S=S′。
这表示仅需要根据后续处理中所需的特定矩形区域的大小来确定Nov。设Xrect_max和Yrect_max为在后续处理中使用的最大矩形区域的大小,则通过下式给出该矩形中的总和值的最差值:
Crect_max=Irect_maxXrect_maxYrect_max    (15)
因此,在不发生溢出的情况下,仅需要确定Nov等于或大于存储Crect_max所需的大小。
例如,在背景技术部分中对背景技术的描述中所例示的相同条件下进行以下分析。即,假设输入图像的Nimg=8,Ximg=640,Yimg=480。假设由例如Xrect_max=Yrect_max=16来定义在后续处理中使用的最大矩形区域的大小。
在这种情况下,由于Crect_max=Irect_maxXrect_maxYrect_max=65280=FF00h(与Cmax_sub相同的值),因此Nov=16位(与上述进行块分割时的Nbuf_sub相同的值)。即使在要临时保持针对输入图像的整个区域生成的所有累积信息时,要确保的缓冲区大小也是Nov×Ximg×Yimg=4915200位。也就是说,在该条件下,与前述进行块分割+保持代表累积信息值的方法相比,可以进一步减小缓冲区大小。
当然,在本实施例的方法中,由于Nov的位数随着要使用的最大矩形区域大小的增大而增加,因此根据条件,与前述使用块分割的方法相比,并不总是减小缓冲区大小。然而,如之前所描述的,由于要使用的计算单元仅是位精度Nbuf=Nov的加法器和减法器,因此结构非常简单。
如上面已经描述的,前述使用块分割的方法需要复杂的额外计算(电路),例如用于恢复计算的除法器、位精度Nbuf_max>Nov的加法器和减法器以及寄存器等。相比之下,根据本实施例的方法,计算的次数与传统的不进行分割的累积信息的计算次数相等,并且能够降低计算单元的位精度。由于减少了电路的段数,因此可以使电路超频(overclock)。也就是说,本实施例的方法不仅在减小缓冲区大小上有大的优势,在提高处理速度和缩小电路规模上也有大的优势。
如果电路规模和缓冲区大小有足够的余量,则Nov的上限是任意的。如果Nov=Nbuf_max,则生成无溢出的传统累积信息。然而,如果Nov>Nbuf_max,则仅仅增加没有有效使用的位的数量是没有意义的。如果Nov<Nbuf_max,则有可能根据输入图像的值生成前述溢出累积信息。然而,如上所述,只要Nov等于或大于基于在后续处理中需要的特定矩形区域的大小设置的下限Nov_min,则在生成溢出累积信息的情况下,不会出现问题。
通常,设置Nov=Nov_min是最有利的。当存在未来用相同的电路执行的其它处理的可能性时,只要电路规模和处理时间允许,则将Nov设置为尽可能大,增大应对更多处理的可能性。
(位精度决定方法:矩形基准和处理窗口基准)
下面将描述基于本发明的原理的决定位精度Nov的下限Nov_min的方法的两个示例。假设执行与背景技术中的Viola01中的模式识别处理相同的模式识别处理作为后续处理的示例。
作为第一个方法,在图9中,作为学习结果而获得的各弱分类器包括作为多个矩形区域的组合的滤波器。通过核查所有这些滤波器,而不考虑它们的正和负(白和黑)模式,来选择具有最大大小(包括最大元素数量)的区域的滤波器。然后,基于最大矩形区域来决定Nov_min。该方法使得能够在执行模式识别处理时决定最有效的Nov_min。然而,如果由于识别条件等的变化而导致需要再学习,则在学习之后生成的滤波器可能使用更大的矩形区域,并且可能不满足条件。
相比之下,作为第二个方法,可以采用利用使用图8描述的处理窗口801的大小作为最大矩形区域、并类似地决定Nov_min的方法。使用该方法,尽管效率更有可能低于第一个方法,但是只要处理窗口大小不改变,可以配置能够应对再学习的电路。
(第二实施例)
第一实施例描述了在累积信息保持单元113中保持与输入信息的整个区域对应的溢出累积信息的示例。然而,本发明并不局限于该特定示例。
图12示出了当累积信息保持单元113的累积信息保持存储器113-1用作带缓冲区时要临时保持的溢出累积信息的区域。区域1200表示在图7中描述的溢出累积信息的整个区域。相对于溢出累积信息的整个区域1200,区域1202表示用于临时保持累积信息的具有预定高度的带区域。
将带区域1202的高度设置为等于后续处理的处理窗口1201的高度,其宽度等于输入信息的宽度。注意,本实施例中的后续处理与第一实施例中的后续处理相同,将其作为图10和图11所示的主处理之后的后续处理进行了描述。然而,对各带区域执行对应于步骤S1103的主处理的处理。当一个带位置处的带处理完成时,要保持的溢出累积信息下滑一行,并且将滑动后的区域作为逻辑连续的区域,从该带位置的左端的处理窗口开始,执行主处理。
区域1202表示最初在处理开始时保持的带区域,区域1203表示将保持的带区域向下移动一行的状态。将本实施例的带缓冲区针对各行配置为环形(ring)缓冲区。因此,当生成新的行时,丢弃最早的行,并在该区域中保持新的行。因此,尽管需要将溢出累积信息的期望位置转换为当前缓冲区中的地址,但是与保持整个区域的信息的情况相比较,几乎没有处理开销。
图13是示出带缓冲区保持溢出累积信息的情况下的总体处理的序列的流程图,其对应于第一实施例中的图11。
步骤S1301是与步骤S1101相同的信息输入处理。与第一实施例相同,步骤S1301可以实现为与稍后描述的步骤S1302和步骤S1305并行执行。
步骤S1302是累积信息生成处理。与步骤S1102中不同,该处理仅生成在带区域1202中的顶部带位置的累积信息。注意,除了范围以外,CPU101、DAMC 103以及累积信息处理器100的操作与第一实施例中的操作相同。
如果在步骤S1302中累积信息保持单元113中的带缓冲区保持区域1202指示的位置(原点位置)的累积信息,则在步骤S1303中执行主处理(对应于步骤S1103)。在本实施例中,同样执行使用图10描述的模式识别处理。
当处理窗口1201位于带的顶部位置(如图12所示)时,执行如图10中的步骤S1002至S1008描述的预定处理。接下来,与对应于步骤S1001的处理相同,将处理窗口1201从顶部位置移动到向右移位一个像素的位置,并再次执行预定处理。之后,与第一实施例中相同,重复预定处理,直到处理窗口1201到达带区域1202的右端为止。也就是说,在本实施例中,步骤S1001是将处理窗口1201从带的左端位置逐像素地移动到右端的处理,而步骤S1007中的扫描的完成是用于检测直到一个带的右端为止的处理完成的处理。
当完成针对一个带的步骤S1303中的主处理时,在步骤S1304中确定当前处理带是否位于包含输入信息的末行的位置。
如果带不位于包含末行的位置,则处理前进到步骤S1305,针对下一行生成并保持累积信息。此时,由于先前行的累积信息已经保持在累积信息保持存储器113-1的带缓冲区中,因此可以通过与第一实施例中描述的生成方法相同的生成方法生成一行的累积信息。也就是说,该计算处理不会引起任何由于使用带缓冲区所致的开销。
在生成并保持下一行的累积信息之后,累积信息的带位置移动到区域1203,并再次执行步骤S1303中的主处理。之后,在向下逐行移动带时,重复相同的处理,直到在步骤S1304中确定末行为止。
如果在步骤S1304中确定到达了末行,则与步骤S1104相同,在步骤S1306中执行后续处理,由此结束处理。
与第一实施例不同,根据本实施例,可以在不产生任何计算开销的情况下,大大减小累积信息保持存储器113-1的存储器大小。即使在使用带缓冲区进行保持的情况下,很明显,由于后续的加法和减法计算处理是等同的处理,因此位精度Nbuf可以是在第一实施例中描述的Nov。当然,不特别限制带缓冲区的溢出次数。
下面将描述与第一实施例相同的Nimg=8,Ximg=640,Yimg=480,并且处理窗口大小为16×16像素(即Xrect_max=Yrect_max=16)的情况。由于需要临时保持的大小是针对一个带的,因此要确保的最小需要缓冲区大小为Nov×Ximg×Yimg=16×480×16=163840位,与第一实施例相比,该大小能够大大减小。
可以基于实际要使用的矩形区域的最大大小来定义带高度,并可以进一步减小缓冲区大小。然而,在这种情况下,需要将后续处理修改为针对各滤波器类型的处理,以代替针对各处理窗口的处理。此外,可能会产生由于修改后续处理而导致的开销。
(第三实施例)
作为进一步减小缓冲区大小的方法,块缓冲区可以保持溢出累积信息。
图14示出了用于针对整个区域的累积信息、临时存储信息的块缓冲区的状态。附图标记1400代表表示当前处理带位置的虚线。在图14中,虚线1400表示顶部带位置。附图标记1401代表块缓冲区中当前保持的累积信息的区域。在图14中,区域1401位于起始位置(原点位置)。该区域1401的位置与处理窗口的当前位置一致。附图标记1402代表处理窗口向右移动一个像素的区域。在处理该区域时,块缓冲区将累积信息保持在该区域中。
在本实施例中,块缓冲区包括针对各纵向线段的环形缓冲区。注意,纵向线段表示长度与处理窗口的高度一致的线段。当将块缓冲区中保持的累积信息从区域1401的位置移动到区域1402的位置时,丢弃在块缓冲区中保持的累积信息的纵向线段1403的区域中存储的累积信息值,并在该区域中保持针对纵向线段1404的区域的新计算的累积信息值。依次重复该处理,直到处理窗口的右端位置。
图16是示出在块缓冲区保持溢出累积信息的情况下的总体处理的序列的流程图。
步骤S1601是与图11中的步骤S1101相同的信息输入处理。注意,与第一实施例中相同,如果后续处理不直接使用输入信息,则可以与步骤S1602、S1605和S1608(稍后描述)同步执行步骤S1601。
在步骤S1602中,生成并存储顶部带位置处的起始块的累积信息。即,生成图14中的区域1401的位置处的累积信息。注意,本实施例的块缓冲区具有双缓冲区结构,其中配置了各自具有处理窗口大小的两个缓冲区。图17A和图17B示出了两个缓冲区。在图17A的区域中保持针对区域1401的一个块的生成的累积信息值。同时,在图17B中的阴影部分1702指示的区域中存储与通过排除图17A中的一行顶部线段而获得的阴影部分1701的区域中的累积信息值相同的值。稍后将描述其原因。
除了图17A和图17B所示的双缓冲区以外,还需要配置对应于图14中的区域1405的存储区域,换句话说,当前处理带中的顶部一行(除顶部块以外)的区域。下文中,将该区域称为顶部列方向累积值缓冲区。当完成步骤S1602中的处理时,在顶部列方向累积值缓冲区中全部设置“0”。
接下来,在步骤S1603中执行主处理。该处理与图10所示的处理基本相同。然而,在本实施例中,由于仅需要执行针对一个处理窗口的处理,因此省略步骤S1001和S1007。
当完成针对一个处理窗口(换句话说,一个块)的主处理时,确定处理的块的位置是否是当前处理带(由虚线1400指示)的最后块的位置,换句话说,是否是右端。
如果还未到达最后块,则生成邻接块的右端的线段区域1404的累积信息值,并将其保持在保持线段区域1403的累积信息值的缓冲区中。可以基于该区域的输入信息、当前在块缓冲区中保持的累积信息值、以及在顶部列方向累积值缓冲区中保持的值,来计算对应于该线段1404的位置的累积信息值。也就是说,对于线段中的各像素,将线段中从顶部像素到关注像素的值的和,加到与该线段相同列的顶部列方向累积值缓冲区中的值中,然后进一步将已保持在块缓冲区中的关注像素的左邻接累积信息值与该和相加。
在将对应于线段1404的一组累积信息存储在块缓冲区中之后,重新存储线段1404的顶部像素值到已经存储在顶部列方向累积值缓冲区的相同列位置的值的和。也就是说,顶部列方向累积值缓冲区是针对各列保持纵向累积值的缓冲区,纵向累积值通过累积从起始行的像素到生成了累积信息的线段的上端像素的值来获得。通过保持该值,可以与处理带位置的向下移动同步地计算对应于各位置的累积信息值。这是与第一或第二实施例的溢出累积信息中的、通过将仅在行方向上的累积值与相同列位置处的正上方的行中的累积信息值相加的处理相同的处理。也就是说,由于本实施例使用列方向累积值来代替行方向累积值,因此可以代替先前行累积信息值,按原样使用先前列累积信息值。例如,为了计算从位置1407开始的垂直线段,仅需要将相同列中直到位置1406的纵向累积值与该位置的像素值和左邻接先前列累积信息值相加。之后,根据各行的处理带的进程,更新顶部列方向累积值缓冲区的值。
在生成下一线段累积信息之后,将处理窗口向右移动一个像素,处理返回到步骤S1603,针对该区域执行主处理。重复相同的处理,直到在步骤S1604中确定处理窗口到达当前处理带的右端块为止。
当完成直到处理带位置处的最后块位置(右端)的处理时,然后在步骤S1606中确定是否完成了直到整个输入信息的末行位置的处理。如果处理带位置还没有到达末行位置,则在步骤S1607中,将处理带位置重置在下面一行的位置。
在步骤S1608中,执行新设置的处理带位置左端的第一块的累积信息的生成和存储处理。该处理使用与在先前处理带位置所使用的双缓冲区中的一个缓冲区不同的块缓冲区。如果在先前处理带中使用图17A中的块缓冲区,则在当前处理带中使用图17B中的块缓冲区。此时,当图17A中的缓冲区位于先前处理带位置的顶部时,区域1702已经存储了与对应于区域1701的累积信息相同的值。(当然,由于作为环形缓冲区使用图17A中的缓冲区,因此当前值是不同的。)因此,当生成位置1703处的横向线段的新的累积信息,并将其存储在图17B中的缓冲区中时,当前处理带位置处的第一块的累积信息的生成完成。注意,与从图17A中的缓冲器到图17B中的缓冲器的位置关系相同,以将一个线段向上移位的位置关系,将生成的累积信息的相同值从图17B中的缓冲区复制到图17A中的缓冲区,从而为下一行的处理作准备。
当完成当前处理带中的第一(左端)位置处的块的累积信息的生成时,处理返回到步骤S1603,对各块执行主处理。之后,针对输入信息的整个区域依次重复该处理,直到在步骤S1606中到达末行为止。在步骤S1609中,执行与步骤S1104相同的后续处理,由此结束总体处理。
在本实施例中,缓冲区的位精度Nbuf同样可以是在第一实施例中描述的Nov。当然,根据输入信息和要保持的块的位置,在块中发生多次溢出。然而,与第一实施例中相同,可以使用该利用溢出累积信息的计算结果,而不产生任何问题。
当在本实施例中在与第一和第二实施例描述的示例中相同的条件下计算缓冲区大小时,Nov×{Xrect_max×Yrect_max×2+(Ximg-Xrect_max)}=16×{16×16×2+(640-16)}=18176位。因此,可以实现非常小的缓冲区大小。在上述公式中,×2表示双缓冲区,(Ximg-Xrect_max)表示顶部累积值缓冲区。
在使用本实施例的块缓冲区的实施中,产生了计算累积信息时的开销。下面将参照图15A和图15B说明计算开销。在图15A中,将通过排除起始处理窗口1500以及顶部行和末行而获得的区域1501中的累积信息值计算二次或更多次。例如,当处理带位于虚线1400所示的位置时,计算一次图14中的位置1407处的累积信息值,当将处理行移动到下面的一行的下一位置时,再次计算一次位置1407处的累积信息值。因此,在位置1407,相同的值计算两次。将下面的一个像素的累积信息值计算三次,将下面的两个像素的累积信息值计算四次。因此,当块大小为16×16时,存在计算最多15次的累积信息值。在图15A中,没有在按照窗口1500的宽度到末行的区域中重新计算累积信息值的原因是,使用利用图17A和图17B描述的双缓冲区结构。
也可以采用使用单个块缓冲区而不采用双缓冲区结构的配置方法。在这种情况下,每次处理带向下移动一行时,都重新计算起始块区域的所有累积信息值。与之前描述的累积信息不同,输入信息的基准元素的位置不必须是原点位置,而可以是处理带的左上端位置的元素。也就是说,要生成的溢出累积信息取与使用图7描述的值不同的值。此外,每次根据带的的移动而进行重新计算时,即使在同一位置也存储不同的累积值。在这种情况下,尽管以与上述方法相同的方式在块大小为16×16的情况下,一些值最多重新计算了15次,但是进行重新计算的区域是图15B所示的区域。所需的缓冲区大小为Nov×Xrect_max×Yrect_max=16×16×16=4096位。尽管计算累积信息所需的负荷变大,但是可以使所需的缓冲区大小最小化。注意,由于位精度Nbuf=Nov,因此累积信息使用计算单元112中的加法和减法负荷仍然与之前描述的实施例中相同。
(其它实施例)
还可以针对三维或更多维的多维阵列信息生成前述累积信息。图18A和图18B是示出三维输入信息的累积信息的状态的示例图。三维阵列的输入信息是例如电影信息,通过对二维图像添加一维时间轴,来定义三维信息。
在图18A中,三维累积信息阵列中的点X的位置处的元素取包括在由输入三维信息中的作为对角点的原点和点X定义的长方体中的元素的总和值。
使用该三维累积信息,可以计算例如图18B所示的长方体1801中的元素的总和值。设(x0,y0,t0)和(x1,y1,t1)为作为长方体1801的对角点的两个点的坐标。假设A、B、C、D、E、F、G和H为如下位置的累积信息值:
A:(x0-1,y0-1,t0-1)
B:(x1,y0-1,t0-1)
C:(x0-1,y1,t0-1)
D:(x1,y1,t0-1)
E:(x0-1,y0-1,t1)
F:(x1,y0-1,t1)
G:(x0-1,y1,t1)
H:(x1,y1,t1)        (16)
可以通过下式来计算输入信息的长方体1801中的元素的总和值S3d
S3d=H-D-F+B-(G-C-E+A)        (17)
本发明的观点可以应用于该三维累积信息,该三维累积信息可以由溢出累积信息代替。在图19中,附图标记1901代表在三维输入信息的情况下的处理窗口的示例。当该处理窗口大小为(Xrect_max,Yrect_max,Trect_max)时,与二维信息中相同,计算能够存储该窗口中的所有元素取最大值时的总和值、而不发生溢出的位精度Nov。然后,可以将计算的位精度Nov设置为缓冲区的位精度Nbuf。例如,假设输入信息为8位,并且Xrect_max=16,Yrect_max=16,Trect_max=4。此时,Crect_max=ImaxXrect_maxYrect_maxTrect_max=255×16×16×4=261120=3FC00h,并且Nov=18位。当然,在该位精度Nbuf=Nov的情况下,随着窗口位置进一步远离原点位置,在处理窗口中发生溢出时,计算累积信息。与二维信息中相同,可以使用方程式(14)来计算期望的长方体中的总和值。
当使用带或块型缓冲区保持累积信息时,如图20A、图20B和图20C所示,与二维信息的情况下相同,可以进一步减小缓冲区大小。如果使用图20A、图20B和图20C中的图20A所示的类型的缓冲区,则在计算累积信息时不会产生额外开销。在图20B和图20C所示的类型的缓冲区的情况下,可以进一步减小缓冲区大小,但是与二维信息的情况相同,需要重新计算大量的累积信息值。
从以上描述可以看出,如果使用超长方体(hyper rectangularparallelepiped),则本发明可以类似地应用于超过三维的多维输入信息的累积信息。
本发明不仅适用于硬件电路,还适用于软件处理。例如,需要27位精度的前述传统累积信息必须使用32位的长型阵列,而当如在实施例所描述的,可以将位精度降低到16位时,可以使用16位的短型阵列。也就是说,使用的缓冲区大小可以减小到一半。
此外,即使在需要不能整除的位精度时,也可以通过权衡存储器存储时间,使用例如C语言的位字段(bit field)功能等,来提高存储器使用效率。
以上实施例例示了作为环形缓冲区使用带缓冲区或块缓冲区。然而,本发明并不局限于这种特定存储器使用方法。例如,可以使用配置对应于环形计数器的存储器地址表、并在参照该表针对各预定处理分配不连续的区域时执行处理的方法。也就是说,本发明描述的环形缓冲区并不局限于狭义的环形缓冲区或循环缓冲区(cyclic buffer)。
在前述各实施例中作为主处理描述的后续处理并不局限于模式识别处理。本发明适用于其它领域(例如在背景技术中描述的计算机图形学等)的处理,只要处理使用累积信息并可以限制可能要使用的最大区域的大小即可。
注意,本发明包括通过CPU基于从计算机可读存储介质读出的程序代码的指令进行处理,来实现前述实施例的功能的情况。
作为用来提供程序代码的存储介质,可以使用例如软(
Figure G68344808150138000D000271
)盘、硬盘、光盘、磁光盘、CD、DVD、磁带、非易失性存储卡和ROM等。
此外,本发明包括在图像输入装置和信息存储装置、或者集成或连接这些装置的装置中的一者或者两者中配设的CPU执行部分或全部实际处理时,实现前述实施例的功能的情况。
作为图像输入装置,可以使用各种使用CCD的照相机和扫描器(例如摄像机、数字照相机和监视照相机等)和输入来自模拟图像输入装置的通过AD转换所转换的数字图像的图像输入装置。作为信息存储装置,可以使用外部硬盘和视频记录器等。
根据本发明,可以减小计算多维阵列的输入信息的特定区域中的元素的总和值所需的处理负荷和缓冲区大小。在硬件实现根据本发明的装置的情况下,可以使用小的电路规模来实现高速处理。
虽然参照示例性实施例对本发明进行了描述,但是应当理解,本发明并不局限于所公开的示例性实施例。应当对所附权利要求的范围给予最宽的解释,以使其涵盖所有这种变型、等同结构和功能。
本申请要求2007年5月31日提交的日本专利申请第2007-145448号的优先权,该申请的全部内容通过引用包含于此。

Claims (17)

1.一种信息处理方法,该信息处理方法包括如下步骤:
输入多维阵列的输入信息;
计算与特定矩形区域中的所述输入信息的各元素的位置相对应的累积信息值;以及
将所述累积信息值保持在具有预定位的大小的缓冲区中,
其中,在所述保持步骤中,在所述计算步骤中计算的累积信息值溢出所述预定位的情况下,保持所计算的累积信息值的低位部分作为所述累积信息值,其中所述累积信息值对应于所述预定位的一部分或更少的位,其中,当所述多维阵列的所述输入信息的所有元素取最大值时,所述预定位的大小小于没有溢出地存储与所述输入信息的最后元素位置相对应的累积信息值所需的大小,而当所述特定矩形区域中的所有元素取最大值时,所述预定位的大小不小于没有溢出地存储所述特定矩形区域中的所有元素的总和值所需的大小。
2.根据权利要求1所述的信息处理方法,所述信息处理方法还包括:在所述保持步骤所保持的多个累积信息值之间,进行加法和/或减法的步骤,
其中,在所述加法/减法步骤中,当所述加法和/或减法的计算结果溢出或下溢所述预定位时,将所述计算结果的所述预定位的一部分作为所述加法和/或减法的结果输出。
3.根据权利要求2所述的信息处理方法,其中,所述加法/减法步骤所输出的所述加法和/或减法的所述结果,表示与由所述多个累积信息值的元素的位置指示的所述输入信息的特定区域相关联的信息。
4.根据权利要求3所述的信息处理方法,其中,与所述特定区域相关联的所述信息是所述输入信息的所述特定区域中的所有元素的总和值,或者是基于所述总和值的信息。
5.根据权利要求3所述的信息处理方法,所述信息处理方法还包括:以包括多个特定区域的区域为单位,使用所述多个特定区域的所述加法和/或减法的结果,执行后续处理的步骤,
其中,所述预定位的大小,是在作为所述后续处理的所述单位的所述区域中,不发生溢出地存储当所述输入信息的所有元素取针对所述预定位的大小的最大值时的总和值所需的大小。
6.根据权利要求3所述的信息处理方法,其中,所述预定位的大小不小于,在所述多个特定区域中的具有最大数量的元素的区域中,存储当所述输入信息的所有元素取针对所述预定位的所述大小的最大值时的总和值所需的大小。
7.根据权利要求1所述的信息处理方法,其中,所述输入信息是二维阵列,并且在所述计算步骤中,计算由作为对角位置的所述输入信息的原点位置和各元素的位置定义的矩形区域中的所有元素的总和值,作为对应于该元素位置的所述累积信息值。
8.根据权利要求3所述的信息处理方法,其中,所述输入信息是二维阵列,并且所述特定区域是由与所述二维阵列中的所述多个累积信息值相对应的位置指示的矩形区域。
9.根据权利要求1所述的信息处理方法,其中,所述输入信息是不少于三维的多维阵列,并且在所述计算步骤中,计算由作为对角位置的所述输入信息的原点位置和各元素的位置定义的超长方体区域中的所有元素的总和值,作为对应于该元素位置的所述累积信息值。
10.根据权利要求3所述的信息处理方法,其中,所述输入信息是不少于三维的多维阵列,并且所述特定区域是由作为不少于三维的所述多维阵列的所述输入信息中的与所述多个累积信息值相对应的位置指示的超长方体区域。
11.一种信息处理装置,该信息处理装置包括:
输入单元,其适合于输入多维阵列的输入信息;
计算单元,其适合于计算与特定矩形区域中的所述输入信息的各元素的位置相对应的累积信息值;以及
保持单元,其适合于将所述累积信息值保持在具有预定位的大小的缓冲区中,
其中,在所述计算单元计算的累积信息值溢出所述预定位的情况下,所述保持单元保持所计算的累积信息值的低位部分作为所述累积信息值,其中所述累积信息值对应于所述预定位的一部分或更少的位,其中,当所述多维阵列的所述输入信息的所有元素取最大值时,所述预定位的大小小于没有溢出地存储与所述输入信息的最后元素位置相对应的累积信息值所需的大小,而当所述特定矩形区域中的所有元素取最大值时,所述预定位的大小不小于没有溢出地存储所述特定矩形区域中的所有元素的总和值所需的大小。
12.根据权利要求11所述的信息处理装置,所述信息处理装置还包括:
加法/减法单元,其适合于在与所述输入信息的特定区域相关联的多个累积信息值之间,进行加法和/或减法;以及
后续处理单元,其适合于以包括多个特定区域的区域作为单位,使用所述多个特定区域的所述加法和/或减法的结果,执行后续处理。
13.根据权利要求12所述的信息处理装置,其中,所述保持单元具有逻辑上与所述输入信息的维数相同的结构,在各维方向中,至少一维方向由基于所述输入信息的某一维方向上的元素数量的所述元素数量构成,而其它维方向由基于作为所述后续处理的单位的区域的各维方向上的元素数量的元素数量构成。
14.根据权利要求13所述的信息处理装置,其中,所述计算单元依次计算在具有基于所述输入信息的同一维方向上的元素数量的元素数量的一维方向上排列元素的元素阵列,作为所述累积信息值,
当所述计算单元计算所述累积信息的新的元素阵列时,所述保持单元将所述新的元素阵列的计算结果存储在存储了所存储的累积信息的最早计算的元素阵列的区域中,并且
所述后续处理单元在新存储在所述保持单元中的所述元素阵列与存储了一段时间的其余元素阵列逻辑上连续的状况下,执行所述后续处理。
15.根据权利要求12所述的信息处理装置,其中,所述保持单元具有逻辑上与所述输入信息的维数相同的结构,并且各维方向由基于作为所述后续处理的单位的区域的各维方向上的所述元素数量的元素数量构成。
16.根据权利要求15所述的信息处理装置,其中,所述计算单元首先计算包括与所述输入信息的所有维的原点相对应的位置处的元素的区域的所述累积信息,然后新计算通过仅移位所述结构中的预定一维方向上的一个元素、直到到达所述预定一维方向上的最后位置而相加的各区域的所述累积信息,
所述保持单元将新计算的累积信息存储在保持了所保持的累积信息中落在所移位的区域外部的累积信息的区域中,并且
所述后续处理单元在新存储在所述保持单元中的所述累积信息与存储了一段时间的其余累积信息逻辑上连续的状况下,执行所述后续处理。
17.根据权利要求16所述的信息处理装置,其中,在所述移位区域到达所述预定一维方向上的所述最后位置之后,所述区域临时返回到所述预定一维方向上的原点位置,以通过在另一维方向上移位一个元素而获得的位置作为新的起始位置,类似地重复所述计算单元进行的所述预定一维方向上的所述一个元素移位处理和所述累积信息的所述计算处理、所述保持单元进行的所述保持处理、以及所述后续处理单元进行的所述后续处理,并且
通过在所述输入信息的其它维方向上类似地依次重复所述处理,对所述输入信息的整个区域进行所述处理。
CN2008800180100A 2007-05-31 2008-05-27 信息处理方法及装置 Active CN101681503B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2007145448A JP5058681B2 (ja) 2007-05-31 2007-05-31 情報処理方法及び装置、プログラム、記憶媒体
JP145448/2007 2007-05-31
PCT/JP2008/060106 WO2008146934A1 (en) 2007-05-31 2008-05-27 Information processing method and apparatus, program, and storage medium

Publications (2)

Publication Number Publication Date
CN101681503A CN101681503A (zh) 2010-03-24
CN101681503B true CN101681503B (zh) 2013-08-21

Family

ID=40173091

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2008800180100A Active CN101681503B (zh) 2007-05-31 2008-05-27 信息处理方法及装置

Country Status (5)

Country Link
US (1) US9021347B2 (zh)
EP (1) EP2165311A4 (zh)
JP (1) JP5058681B2 (zh)
CN (1) CN101681503B (zh)
WO (1) WO2008146934A1 (zh)

Families Citing this family (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101522985B1 (ko) * 2008-10-31 2015-05-27 삼성전자주식회사 영상처리 장치 및 방법
JP5349931B2 (ja) * 2008-12-04 2013-11-20 キヤノン株式会社 情報処理装置、情報処理方法及びプログラム
TWI382351B (zh) * 2009-03-20 2013-01-11 Ind Tech Res Inst 具積分影像輸出之影像感測器
JP5340088B2 (ja) * 2009-09-07 2013-11-13 キヤノン株式会社 情報処理方法及び装置
JP5451302B2 (ja) * 2009-10-19 2014-03-26 キヤノン株式会社 画像処理装置及び方法、プログラム及び記憶媒体
JP5336995B2 (ja) * 2009-10-19 2013-11-06 キヤノン株式会社 特徴点位置決め装置、画像認識装置、その処理方法及びプログラム
JP5427577B2 (ja) * 2009-12-04 2014-02-26 パナソニック株式会社 表示制御装置及び表示画像形成方法
JP2011128990A (ja) * 2009-12-18 2011-06-30 Canon Inc 画像処理装置とその方法
JP5388835B2 (ja) 2009-12-24 2014-01-15 キヤノン株式会社 情報処理装置及び情報処理方法
JP5406705B2 (ja) * 2009-12-28 2014-02-05 キヤノン株式会社 データ補正装置及び方法
JP5574816B2 (ja) * 2010-05-14 2014-08-20 キヤノン株式会社 データ処理装置及びデータ処理方法
JP5759126B2 (ja) * 2010-08-25 2015-08-05 キヤノン株式会社 パターン識別装置及びその制御方法、プログラム
JP5848551B2 (ja) 2011-08-26 2016-01-27 キヤノン株式会社 学習装置、学習装置の制御方法、検出装置、検出装置の制御方法、およびプログラム
JP5799681B2 (ja) * 2011-09-05 2015-10-28 株式会社リコー 画像処理装置、積分画像作成方法及びプログラム
JP5777458B2 (ja) 2011-09-12 2015-09-09 キヤノン株式会社 パターン識別装置、パターン識別方法及びプログラム
US8873112B2 (en) 2011-10-21 2014-10-28 Canon Kabushiki Kaisha Image processing apparatus and determination method
JP5963566B2 (ja) 2012-06-21 2016-08-03 キヤノン株式会社 パターン識別装置
JP6116271B2 (ja) * 2013-02-08 2017-04-19 キヤノン株式会社 特徴量算出装置、方法及びプログラム
US9398297B2 (en) * 2013-11-04 2016-07-19 Intel Corporation Integral image coding
US20160357690A1 (en) * 2014-03-07 2016-12-08 Mitsubishi Electric Corporation Information processing device and information processing method
JP2016009387A (ja) * 2014-06-25 2016-01-18 本田技研工業株式会社 画像処理装置
KR102574449B1 (ko) * 2016-11-17 2023-09-04 삼성전자 주식회사 데이터 처리 방법 및 장치
CN106843813B (zh) * 2016-12-28 2018-08-14 华为技术有限公司 一种数据处理方法及装置
CN108827880B (zh) * 2018-04-23 2021-04-16 吉林大学 基于多光谱影像和ndvi时间序列的地表覆盖变化检测方法
JP7402623B2 (ja) 2019-06-17 2023-12-21 キヤノン株式会社 フィルタ処理装置及びその制御方法

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1506686A (zh) * 2002-12-09 2004-06-23 北京中星微电子有限公司 运动图像检测方法
CN1731417A (zh) * 2005-08-19 2006-02-08 清华大学 复杂背景图像中的鲁棒人脸检测方法

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5038209A (en) * 1990-09-27 1991-08-06 At&T Bell Laboratories Adaptive buffer/quantizer control for transform video coders
US5508823A (en) * 1991-08-28 1996-04-16 Canon Kabushiki Kaisha Image processing method and apparatus
JP3224465B2 (ja) * 1993-12-22 2001-10-29 シャープ株式会社 画像符号化装置
US5668599A (en) * 1996-03-19 1997-09-16 International Business Machines Corporation Memory management for an MPEG2 compliant decoder
JPH09261463A (ja) * 1996-03-26 1997-10-03 Casio Electron Mfg Co Ltd 画像データ補正装置
JPH1056565A (ja) * 1996-08-08 1998-02-24 Sharp Corp 画像処理装置
US6452603B1 (en) * 1998-12-23 2002-09-17 Nvidia Us Investment Company Circuit and method for trilinear filtering using texels from only one level of detail
US6778181B1 (en) * 2000-12-07 2004-08-17 Nvidia Corporation Graphics processing system having a virtual texturing array
US7369687B2 (en) * 2002-11-21 2008-05-06 Advanced Telecommunications Research Institute International Method for extracting face position, program for causing computer to execute the method for extracting face position and apparatus for extracting face position
JP4166143B2 (ja) 2002-11-21 2008-10-15 株式会社国際電気通信基礎技術研究所 顔位置の抽出方法、およびコンピュータに当該顔位置の抽出方法を実行させるためのプログラムならびに顔位置抽出装置
US7508961B2 (en) * 2003-03-12 2009-03-24 Eastman Kodak Company Method and system for face detection in digital images
JP2005044330A (ja) 2003-07-24 2005-02-17 Univ Of California San Diego 弱仮説生成装置及び方法、学習装置及び方法、検出装置及び方法、表情学習装置及び方法、表情認識装置及び方法、並びにロボット装置
JP4206053B2 (ja) * 2004-03-31 2009-01-07 株式会社国際電気通信基礎技術研究所 ユーザインタフェース装置およびユーザインタフェースプログラム
JP5008269B2 (ja) * 2005-04-08 2012-08-22 キヤノン株式会社 情報処理装置、情報処理方法
WO2008004710A1 (fr) * 2006-07-07 2008-01-10 Canon Kabushiki Kaisha Dispositif de traitement d'image, procédé de traitement d'image, et programme de traitement d'image
JP4582079B2 (ja) * 2006-10-19 2010-11-17 トヨタ自動車株式会社 画像識別装置および画像識別方法
JP4948379B2 (ja) * 2007-12-18 2012-06-06 キヤノン株式会社 パターン識別器生成方法、情報処理装置、プログラム及び記憶媒体
US8331655B2 (en) * 2008-06-30 2012-12-11 Canon Kabushiki Kaisha Learning apparatus for pattern detector, learning method and computer-readable storage medium

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1506686A (zh) * 2002-12-09 2004-06-23 北京中星微电子有限公司 运动图像检测方法
CN1731417A (zh) * 2005-08-19 2006-02-08 清华大学 复杂背景图像中的鲁棒人脸检测方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
JP特开2005-293061A 2005.10.20
JP特开平10-56565A 1998.02.24

Also Published As

Publication number Publication date
US9021347B2 (en) 2015-04-28
EP2165311A4 (en) 2014-06-11
JP5058681B2 (ja) 2012-10-24
CN101681503A (zh) 2010-03-24
JP2008299627A (ja) 2008-12-11
WO2008146934A1 (en) 2008-12-04
EP2165311A1 (en) 2010-03-24
US20100180189A1 (en) 2010-07-15

Similar Documents

Publication Publication Date Title
CN101681503B (zh) 信息处理方法及装置
JP5340088B2 (ja) 情報処理方法及び装置
JP4545641B2 (ja) 類似画像検索方法,類似画像検索システム,類似画像検索プログラム及び記録媒体
CN102110284B (zh) 信息处理设备及信息处理方法
JP6393058B2 (ja) 情報処理装置、情報処理方法
WO2017077938A1 (ja) 粗密探索方法および画像処理装置
CN110663064A (zh) 用于矢量图形和图像处理的并行化流水线
CN108765315B (zh) 图像补全方法、装置、计算机设备及存储介质
JP2018045302A (ja) 情報処理装置、情報処理方法及びプログラム
US9946645B2 (en) Information processing apparatus and memory control method
CN111008631A (zh) 图像的关联方法及装置、存储介质和电子装置
US8068673B2 (en) Rapid and high precision centroiding method and system for spots image
US9171227B2 (en) Apparatus and method extracting feature information of a source image
JP6970827B2 (ja) 演算処理装置
CN109961061A (zh) 一种边缘计算视频数据结构化方法及系统
CN112383819B (zh) 视频帧提取方法及相关设备
TW200422851A (en) Image processing apparatus
JP5095790B2 (ja) 特徴量算出装置及び識別装置
CN113361511B (zh) 修正模型的建立方法、装置、设备及计算机可读存储介质
US20200372280A1 (en) Apparatus and method for image processing for machine learning
Ke et al. Efficient GPU computing framework of cloud filtering in remotely sensed image processing
JP2011141664A (ja) 文書比較装置、文書比較方法、及びプログラム
CN111712833A (zh) 一种筛选局部特征点的方法及装置
JP6336827B2 (ja) 画像検索装置、画像検索方法および検索システム
JP6362947B2 (ja) 映像分割装置、方法及びプログラム

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