專利名稱::信息處理方法及裝置、程序和存儲介質(zhì)的制作方法
技術(shù)領域:
:本發(fā)明涉及一種用于圖像處理、圖像識別、圖像合成以及信息分析等的信息處理方法及裝置。
背景技術(shù):
:在信息處理領域中,頻繁處理多維陣列信息。與圖像處理、圖像識別以及圖像合成等相關(guān)聯(lián)的局部處理和統(tǒng)計處理等經(jīng)常計算并使用特定區(qū)域范圍內(nèi)的元素的總和值。為此,作為實現(xiàn)信息處理的應用程序的示例的電子表格應用程序(例如MicrosoftExcef等)具有計算二維表中的指定矩形內(nèi)的元素的和的功能。用于計算的編程語言(例如MathWorksMATLAB)包括計算矩陣的元素的和的函數(shù)。在計算機圖形學領域,F(xiàn).C.Crow提出了稱為"求和面積表(summed-areatable)"的針對原始輸入圖像信息的累積圖像信息的概念(F.C.Crow,"Summed-AreaTablesForTextureMapping",ComputerGraphics,1984.,下文中稱為"Crow84")。在該參考文獻中,假設求和面積表是具有與輸入圖像相同的大小(相同的元素數(shù)量)的二維陣列,設I(x,y)為輸入圖像的坐標位置(x,y)處的像素值,求和面積表的相同位置(x,y)處的分量C(x,y)定義為CTxj^》(x',/)(1)也就是說,如圖4所示,由原始輸入圖像4a上作為對角位置的原點位置(0,0)和位置(x,y)定義的矩形中的像素的總和值為求和面積表4b的位置(x,y)處的值C(x,y)(注意,Crow84的原始求和面積表將圖像的左下角作為原點位置,但是為了與下面的描述銜接,使用左上角作為原點)。根據(jù)該定義,可以使用下面的方程式僅參照求和面積表上的4個點的值,來計算水平或垂直地位于輸入圖像上的任意區(qū)域中的像素值I(x,y)的和。例如,如圖5所示,可以通過下面的方程式來計算由作為對角點的(xo,yo)和(&,yO定義的矩形區(qū)域中的像素值的總和C(xo,yo;Xl,yi):C(xo,y0;Xl,yi)=C(x0-1,y0-l)-C(x0-1,y!)-C(xby0-l)+C(Xl,yi)(2)以這種方式,可以高速計算圖像上的任意矩形區(qū)域中的值的總和。另一方面,在圖像識別領域,將相當于求和面積表的累積圖像信息稱為"積分圖像(Integralimage)"。此外,提出了級聯(lián)連接各個包括多個矩形濾波器的弱分類器的面部檢測裝置(例如P.Viola,M.Jones,"RapidObjectDetectionusingaBoostedCascadeofSimpleFeatures",Proc.IEEEConf.onComputerVisionandPatternRecognition,Vol.1,pp.511-518,December2001.,下文中稱為"ViolaO1")。此外,基于Viola01的觀點,提出了連續(xù)幀中的實時面部提取(例如參見日本特開2004-185611號公報)、面部表情識別(例如參見日本特開2005-44330號公報)以及利用面部姿態(tài)進行的指令輸入(例如參見日本特開2005-293061號公報)等。下面將詳細描述在ViolaOl中描述的模式識別方法,可以將該方法作為本發(fā)明的實施例中的后續(xù)處理(稍后描述)來應用。在ViolaOl中,如圖8所示,具有特定大小的矩形區(qū)域801(下文中稱為"處理窗口")在要處理的圖像800中移動,并且確定各移動目的地處的處理窗口801是否包括人臉。圖9示出了在各移動目的地處的處理窗口801中、在Viola01中執(zhí)行的面部檢測處理的序列。以多個階段執(zhí)行某一處理窗口中的面部檢測處理。對各階段分配弱分類器的不同組合。各弱分類器檢測所謂的類哈爾(Haar-like)特征,并包括矩形濾波器的組合。如圖9所示,對各階段分配不同數(shù)量的弱分類器。各階段使用分配給其自己的模式的弱分類器來確定處理窗口是否包括人臉。對各階段分配確定處理的執(zhí)行順序,各階段根據(jù)該順序來級聯(lián)執(zhí)行處理。S卩,例如,在圖9中,按照第一階段、第二階段和第三階段的順序執(zhí)行確定處理。如果在給定階段中確定某一位置處的處理窗口不包括人臉,則中斷針對該位置處的處理窗口的處理,以跳過后續(xù)階段中的確定處理。如果在最后階段中確定處理窗口包括人臉,則確定該位置處的處理窗口包括人臉。圖IO是示出面部檢測處理的序列的流程圖。下面將參照圖IO描述面部檢測處理的實際序列。在面部檢測處理中,要處理的處理窗口801位于面部檢測目標圖像800上的初始位置(步驟S1001)?;旧希撎幚泶翱?01從面部檢測目標圖像800的一端開始,以預定時間間隔依次在垂直和水平方向上移動。通過該移動,全面選擇整個圖像。例如,通過光柵掃描面部檢測目標圖像800,來選擇處理窗口801。執(zhí)行關(guān)于所選擇的處理窗口801是否包括人臉的確定處理。如上面使用圖9所描述的,在多個階段中執(zhí)行該確定處理。由于該原因,從第一階段開始依次選擇執(zhí)行確定處理的階段(步驟S1002)。所選擇的階段執(zhí)行確定處理(步驟S1003)。在該階段的確定處理中,計算累積得分(稍后描述),并且確定計算的累積得分是否超過針對各階段預先設置的閾值(步驟S1004)。如果累積得分沒有超過閾值(步驟S1004中的"否"),則確定處理窗口不包括人臉(步驟S1008),執(zhí)行步驟S1007及后續(xù)步驟中的處理。稍后將描述步驟S1007及后續(xù)步驟中的處理。另一方面,如果累積得分(稍后描述)超過閾值(步驟S1004中的"是"),則確定該確定處理(步驟S1003)是否由最后的階段執(zhí)行(步驟S1005)。如果確定處理不是由最后的階段執(zhí)行的(步驟S1005中的"否"),則處理返回到步驟S1002以選擇下一階段,并由新選擇的階段執(zhí)行確定處理。另一方面,如果確定處理是由最后的階段執(zhí)行的(步驟S1005中的"是"),則最終確定當前處理窗口包括人臉(步驟S1006)。此時,確定該處理窗口包括人臉。然后,確定經(jīng)過確定處理的處理窗口是否是面部檢測目標圖像中的最后位置的處理窗口(步驟S1007)。如果處理窗口不是最后位置的處理窗口(步驟S1007的"否"),則處理返回到步驟SIOOI,以將處理窗口移動到下一位置并執(zhí)行步驟S1002及后續(xù)步驟中的處理。如果處理窗口是最后位置的處理窗口,則針對進行面部檢測的該輸入圖像的面部檢測處理。下面將描述各階段中的確定處理的內(nèi)容。對各階段分配一個或更多個模式的弱分類器。該分配通過學習處理中的諸如AdaBoost(自適應增強)等的增強學習(boostinglearning)算法來執(zhí)行。各階段基于分配給其自己的弱分類器模式來確定處理窗口是否包括面部。在各階段中,基于分配給該階段的弱分類器模式計算處理窗口中的多個矩形區(qū)域中的特征量。在這種情況下使用的特征量是使用各矩形區(qū)域中的像素值的總和計算的值,例如矩形區(qū)域中的像素值的總數(shù)和平均值等。如使用圖5關(guān)于Crow84所描述的,使用輸入圖像的累積圖像信息(求和面積表或積分圖像)可以高速計算矩形區(qū)域中的總和值。作為計算的特征量的相對值(例如比率或差值;在這種情況下使用差值),計算差值,并基于該差值確定處理窗口是否包括人臉。更具體地說,確定計算的差值是大于還是小于在確定中使用的弱分類器模式中設置的閾值。根據(jù)該確定結(jié)果,確定處理窗口是否包括人臉。然而,雖然基于各弱分類器模式獲得此時的確定結(jié)果,但是該結(jié)果不是階段的結(jié)果。以這種方式,在各階段中,基于所有分配的弱分類器模式單獨執(zhí)行確定處理,并獲得各自的確定結(jié)果。接下來,計算該階段的累積得分。對弱分類器模式分配各自的得分。如果確定處理窗口包括人臉,則參照分配給此時使用的弱分類器模式的得分,將其與該階段的累積得分相加。以這種方式,計算得分的總和作為該階段的累積得分。如果該階段的累積得分超過特定閾值(累積得分閾值),則在該階段中確定處理窗口很可能包括人臉,處理前進到下一階段。另一方面,如果該階段的累積得分沒有超過累積得分閾值,則在該階段中確定處理窗口不包括人臉,中止級聯(lián)處理。在Viola01中,以這種序列實現(xiàn)面部檢測代表的高速模式識別。注意,如果圖9和圖10中的檢測器預先經(jīng)過適當?shù)膶W習,則其可以用作用于識別除面部以外的對象的模式識別器。在根據(jù)輸入圖像信息生成前述累積圖像信息(求和面積表或積分圖像)時,通常,基于計算的最差值來確定存儲緩沖區(qū)的位精度和大小(臨時保持區(qū)的位精度和大小)。即,設Ximg為輸入圖像信息的寬度(水平方向上的像素數(shù)量),Yimg為高度(垂直方向上的像素數(shù)量)。此外,N一位(N為正整數(shù))表示各像素的位精度。貝U,當所有像素值取最大值/皿=(2、-l)時,最差值Q^是所有像素的總和值cmax=S4,少)",V卿(3)因此,盡管存儲累積圖像信息的緩沖區(qū)的每個元素的位精度Nbuf依賴于圖像大小,但是需要位精度Nbuf是可以存儲Q^的位精度Nbuf—max,并且取遠大于N—的值。例如,當具有VGA大小的8位灰度級(Grayscale)圖像是輸入圖像時,Nimg=8,Ximg=640,Yimg=480。因此,需要確保Cmax=78336000=4AB5000h的緩沖區(qū),換句話說,需要確保Nbuf=Nbufmax=27位精度(大小)。當必須同時保持輸入圖像信息的整個區(qū)域的累積圖像信息時,必須確保大小為NbufmaxxXimgxYimg=8294400位的諸如RAM等的存儲區(qū)域,這占用處理資源。因此,需要通過任意方法降低緩沖區(qū)的位精度Nbuf。尤其是,由于在硬件實現(xiàn)基于這種累積信息的處理的情況下,工作存儲器的大小直接影響電路規(guī)模,因此降低Nbuf是切實的問題。即使在軟件實現(xiàn)該處理時,如果可以降低Nbuf,則可以使用更小的大小,由此抑制資源消耗量。Crow84描述了一種降低緩沖區(qū)的位精度Nbuf的方法。即,將輸入信息分割為塊,每個塊由16像素xl6像素定義,并針對每個塊獨立地計算求和面積表。如果輸入信息的位精度Nim^8位,則此時所需的緩沖區(qū)的位精度為16位。另外,針對各塊保持與在向左上角左上傾斜的方向上鄰接的像素位置對應的原始求和面積表的32位值。為了恢復與期望位置對應的值,可以將由包括該位置的塊保持的32位值與該位置的16位值相加(然而,實際上,這種計算不足以恢復原始求和面積表的值)。然而,在傳統(tǒng)方法中,可以參照4個點使用例如方程式(2)的簡單的加法和減法來計算期望區(qū)域的總和值,然而增加了用于恢復各點的值的計計算的電路規(guī)模。即使在軟件實現(xiàn)處理的情況下,處理速度也降低。
發(fā)明內(nèi)容做出本發(fā)明以解決這些問題,本發(fā)明的目的是大大減小保持累積信息所需的緩沖區(qū)容量,而不增大用于計算的電路規(guī)模或處理負荷,或者同時減小用于計算的電路規(guī)模或處理負荷。根據(jù)本發(fā)明的一方面,提供了一種信息處理方法,該信息處理方法包括如下步驟輸入多維陣列的輸入信息;計算與所述輸入信息的各元素的位置相對應的累積信息值;以及將所述累積信息值保持在具有預定位的大小的緩沖區(qū)中,其中,在所述保持步驟中,在所述計算步驟中計算的累積信息值相對于所述大小溢出的情況下,保持不多于所計算的累積信息值的所述預定位的部分作為所述累積信息值。根據(jù)本發(fā)明的另一方面,提供了一種信息處理裝置,該信息處理裝置包括輸入單元,其適合于輸入多維陣列的輸入信息;計算單元,其適合于計算對應于所述輸入信息的各元素的位置的累積信息值;以及保持單元,其適合于將所述累積信息值保持在具有預定位的大小的緩沖區(qū)中,其中,在所述計算單元計算的累積信息值溢出所述預定位的情況下,所述保持單元保持不多于所計算的累積信息值的所述預定位的部分作為所述累積信息值。通過下面參照附圖對示例性實施例的描述,本發(fā)明的其它特征將變得清楚。圖1是示出根據(jù)第一實施例的信息處理裝置的配置的框圖2是示出累積信息生成單元的配置的框圖3是示出累積信息使用計算單元的配置的框圖4是用于說明基于二維輸入信息生成累積圖像信息的傳統(tǒng)方法的圖;圖5是使用累積圖像信息計算期望的矩形區(qū)域中的像素的總和值的方法的說明圖6A和圖6B是降低保持累積信息的緩沖區(qū)的位精度的相關(guān)技術(shù)的說明圖7是示出溢出(overflow)累積信息的示例圖8是用于說明作為模式識別處理的示例的面部檢測處理的圖9是示出包括多個弱分類器的模式識別器的配置的示例圖10是包括多個弱分類器的模式識別器中的檢測處理的流程圖11是示出第一實施例的總體處理的序列的流程圖12是用于說明由帶緩沖區(qū)保持累積信息的圖13是示出在帶緩沖區(qū)保持累積信息的情況下的總體處理的序列的流程圖14是用于說明由塊緩沖區(qū)保持累積信息的圖;圖15A和圖15B是示出在塊緩沖區(qū)保持累積信息的情況下出現(xiàn)計算開銷的區(qū)域的圖16是示出在塊緩沖區(qū)保持累積信息的情況下的總體處理的序列的流程圖17A和圖17B是塊緩沖區(qū)包括雙緩沖區(qū)時的說明圖18A和圖18B是作為多維累積信息的示例的三維累積信息的說明圖19是用于說明在使用三維累積信息的情況下的處理窗口的圖;以及圖20A、圖20B和圖20C是示出保持三維累積信息所需的緩沖區(qū)的形式的圖。具體實施例方式下文中,將參照附圖詳細描述根據(jù)本發(fā)明的實施例。在本實施例中,將基于具有相同維數(shù)的陣列的輸入信息通過累積加法計算生成的多維(二維或更多維)陣列信息(例如前述求和面積表或積分圖像)簡稱為累積信息。尤其是,當輸入信息是二維陣列的圖像信息時,為正整數(shù)(或定點數(shù))。(第一實施例)圖1是示出根據(jù)本發(fā)明的一個實施例的信息處理裝置的配置的框圖。CPU101控制經(jīng)由總線105連接的各單元,并實現(xiàn)信息處理裝置的預期處理。信息輸入單元102輸入多維的輸入信息,并將例如要處理的輸入圖像數(shù)據(jù)取入到裝置中。信息輸入單元102可以包括諸如CCD等的圖像傳感器,或經(jīng)由諸如網(wǎng)絡等的預定通信路徑從外部裝置接收要處理的數(shù)據(jù)的I/F設備。外部存儲器104連接到總線105,并包括諸如ROM、RAM以及HDD等的存儲設備。外部存儲器104存儲CPU101運行所需的程序代碼,并用作執(zhí)行各種處理時的工作區(qū)。外部存儲器104還根據(jù)需要用作保持輸入信息的區(qū)域。DMA控制器(DMAC)103接收CPU101設置的操作指令,并能夠自發(fā)并連續(xù)地在信息輸入單元102、外部存儲器104和累積信息處理器100(稍后描述)之間執(zhí)行預定大小的數(shù)據(jù)傳輸。當完成指令的傳輸操作時,DMAC103經(jīng)由總線105向CPU101發(fā)送中斷信號。累積信息處理器100包括用于連接總線105的總線I/F110、累積信息生成單元111、累積信息使用計算單元112以及累積信息保持單元113。累積信息保持單元113包括用于保持累積信息的位精度為Nbuf的專用存儲器,以及用于控制對專用緩沖存儲器的輸入輸出訪問的存儲器控制器。稍后將描述位精度Nbuf。累積信息生成單元111生成信息輸入單元102輸入的要處理的信息(例如圖像數(shù)據(jù)等)的累積信息,并將生成的累積信息存儲在累積信息保持單元113中。響應于來自CPU101的請求,累積信息使用計算單元112使用在累積信息保持單元113中保持的累積信息執(zhí)行計算處理,并將結(jié)果返回給CPU101。注意,當輸入信息是二維圖像數(shù)據(jù)時,累積信息是對應于Crow84或ViolaOl的求和面積表或積分圖像的累積圖像信息??梢曰诙嗑S(例如三維或更多維)輸入信息生成類似的累積信息(稍后描述)。(包括后續(xù)處理的處理序列)下面將描述圖1所示的信息處理裝置中的包括后續(xù)處理的總體處理的序列。響應于用戶操作或來自外部裝置(未示出)的處理開始觸發(fā)信號,本實施例的信息處理裝置首先執(zhí)行信息輸入處理步驟SllOl。在該處理中,信息輸入單元102接收輸入信息,并根據(jù)需要將接收的信息存儲在外部存儲器104中。下面將假設輸入信息是表示為預定大小的二維陣列的圖像數(shù)據(jù),來描述本實施例。然而,根據(jù)本發(fā)明的主旨,三維或更多維的多維陣列信息可以是輸入信息。在步驟S1102中,信息處理裝置使用存儲在外部存儲器104中的輸入信息執(zhí)行累積信息生成處理。如稍后所描述的,該處理基于輸入信息在累積信息保持單元113中生成累積信息。CPU101設置DMAC103,以依次將輸入信息元素值從外部存儲器104傳輸?shù)嚼鄯e信息處理器100。當在該裝置的后續(xù)處理等中不按原樣使用輸入信息時,可以并行執(zhí)行步驟S1101和S1102中的處理。更具體地說,每次輸入一行數(shù)據(jù)時,可以重復步驟S1101和S1102,或者每次輸入一個元素值時,可以以流水線方式相繼處理步驟SllOl和S1102。此時,CPUIOI可以設置DMAC103,以自動依次將輸入信息的各元素從信息輸入單元102傳輸?shù)嚼鄯e信息處理器100。在累積信息保持單元113中生成累積信息之后,信息處理裝置在步驟S1103中執(zhí)行主處理。本實施例的信息處理裝置執(zhí)行使用圖IO描述的模式識別處理作為主處理。當然,可以應用使用累積信息的其它種類的處理。如上所述,在圖10的模式識別處理中,必須獲得各矩形區(qū)域中的元素的總和值,以在步驟S1003中的確定處理中通過各弱分類器來檢測預定類哈爾特征。CPU101能夠通過操作累積信息使用計算單元112高速地獲得該總和值。稍后將詳細描述累積信息使用計算單元112的操作。注意,在本說明書中描述的后續(xù)處理是指步驟S1103中的主處理之后的處理。當完成步驟S1103中的主處理(例如模式識別處理)時,信息處理裝置執(zhí)行作為期望的后續(xù)處理的步驟S1104。后續(xù)處理包括將處理結(jié)果通知給外部裝置和用戶等的處理或要使用識別結(jié)果來執(zhí)行的各種處理。(累積信息生成單元的描述)下面將描述累積信息生成單元111的配置和操作。圖2是示出累積信息生成單元111的配置以及總線I/FIIO和累積信息保持單元113的連接狀態(tài)的框圖。輸入信息大小存儲寄存器201存儲從信息輸入單元102輸入的多維陣列信息的大小。在寄存器201中,CPU101在處理開始之前經(jīng)由總線I/F110設置值。在CPU101或DMAC103的控制下,輸入元素值保持寄存器203臨時依次保持經(jīng)由總線I/F輸入的輸入陣列信息的一個元素值。每次將元素值輸入到輸入元素值保持寄存器203中時,地址計數(shù)器202基于輸入信息大小存儲寄存器201中存儲的輸入陣列信息的大小,來計算用于存儲與元素值對應地生成的累積信息值的累積信息保持單元113的存儲地址。當輸進輸入信息的第一個像素(原點位置)時,地址計數(shù)器202將存儲地址重置為0或預定偏移值,并逐一遞增存儲地址,直到輸入圖像的最后的像素為止。地址計數(shù)器202參照輸入信息大小存儲寄存器201中存儲的輸入陣列信息的大小,在輸入屬于第二行或后續(xù)行的元素值時,計算處于一行之前的同一列的位置的累積信息值的先前行累積信息地址。地址計數(shù)器202通過從之前計算的存儲地址中減去元素陣列的一行的元素數(shù)量,來獲得該地址。當如本實施例中輸入二維數(shù)據(jù)時,如果該減法結(jié)果為負值(或者小于偏移量),則可以確定仍在進行第一行的元素值的輸入處理。將地址計數(shù)器202計算的地址提供給存儲器控制器113-2,由此實現(xiàn)累積信息保持存儲器113-1對該地址的寫入或讀取訪問。在先前行累積值參照寄存器205中臨時保持基于先前行累積信息地址所參照的先前行累積值。然而,在當前輸入像素屬于第一行時,在該寄存器中設置"O"。當前行累積值保持寄存器204僅針對當前輸入的行保持來自第一個元素(原點)的累積和信息。在將元素輸入到輸入元素值保持寄存器203的時刻,當前行累積值保持寄存器204保持在當前元素之前輸入的元素的累積和的值。由于僅針對正在輸入的一行保持該值,因此在輸入行改變時,該值被重置為"0"。累積加法處理器206包括兩個加法器206-1和206-2。加法器206-1和206-2都輸入和輸出位精度為Nbuf的正整數(shù)。如下執(zhí)行累積信息的生成操作。CPU101經(jīng)由總線I/F110在輸入信息大小存儲寄存器201中設置要輸入的陣列信息的各維方向上的大小。通過CPU101或DMAC103的傳輸功能將從信息輸入單元102輸入的陣列信息的第一個元素輸入到輸入元素值保持寄存器。同時,將地址計數(shù)器重置為"O"或預定偏移值。此外,同時,由于要輸入第一行的元素,因此將先前行累積值參照寄存器205重置為"0",并且由于輸入一行的第一個元素,因此將當前行累積值保持寄存器204重置為"O"。累積加法處理器206的加法器206-1將當前行累積值和輸入元素值相加。由于將和反饋到當前行累積值保持寄存器204并存儲在其中,因此可以在輸入下一個元素值時使用該和。還將該和值輸入到加法器206-2,并與在先前行累積值參照寄存器205中保持的先前行累積值相加。該和是對應于輸入元素位置的累積信息值,并經(jīng)由存儲器控制器113-2存儲在前述地址計數(shù)器202計算的累積信息保持存儲器的存儲地址中。之后,通過在每次輸入陣列元素值時重復相同的處理,在對第二及后續(xù)行的處理中,將輸入陣列元素值與當前行累積值和先前行中相同位置的累積信息值相加,由此生成對應于輸入信息的累積信息。(累積信息使用計算單元的描述)下面將描述在步驟S1103中的主處理中使用的累積信息使用計算單元112的配置和操作。在本實施例中,使用累積信息執(zhí)行作為使用計算結(jié)果的后續(xù)處理的、參照圖8至圖IO描述的模式識別處理。因此,所需的計算結(jié)果是相對地布置在處理窗口801中并檢測類哈爾特征的弱分類器的各矩形中的元素的總和值。如上面參照圖5所描述的,可以參照累積圖像信息的4個點的元素值,來計算輸入圖像的任意矩形區(qū)域中的元素的總和值。圖3是示出累積信息使用計算單元112的配置以及與總線I/F110及累積信息保持單元113的連接的框圖。與在圖2中描述的相同,附圖標記201表示輸入信息大小存儲寄存器。如上所述,CPU101經(jīng)由總線I/F110在該輸入信息大小存儲寄存器201中預先設置輸入信息的大小。CPU101指定要計算處理窗口中的總和值的矩形區(qū)域。CPU101根據(jù)輸入信息的原點,將表示該矩形區(qū)域的、處理窗口中的2個點的對角坐標(相對坐標)轉(zhuǎn)換為絕對坐標,換句話說,圖5中的(Xo,yo)和(x^)。CPU101經(jīng)由總線I/F110在區(qū)域指定寄存器301中設置這些絕對坐標值。響應于經(jīng)由總線I/F110來自CPU101的計算開始觸發(fā)信號,參照地址計算單元302參照在區(qū)域指定寄存器301中設置的值,并計算存儲圖5中的4個點A、B、C和D的位置處的值的地址。參照地址計算單元302將地址值依次傳遞到存儲器控制器113-2。存儲器控制器113-2訪問累積信息保持存儲器113-1,并在參照值臨時保持寄存器303中設置依次獲取的4個點的累積信息值。在參照值臨時保持寄存器303保持4個點的值之后,加法和減法處理器304使用這4個點的值執(zhí)行預定加法和減法處理。注意,預定加法和減法處理進行方程式(2)給出的計算。將該計算結(jié)果保持在計算結(jié)果保持寄存器305中。CPU101可以通過經(jīng)由總線I/F110接收中斷消息,參照完成標記等,來檢測計算的完成。CPU101獲取計算結(jié)果保持寄存器305的值,并使用其作為設置的矩形區(qū)域的總和值。注意,在加法和減法處理器304中使用的所有加法器和減法器輸入和輸出Nbuf位的正值。(基于Crow84的描述的位減少方法)下面將詳細描述在Crow84中描述的、通過保持在塊分割之后生成的累積信息來降低緩沖區(qū)的位精度的方法。如上所述,由于僅使用在Crow84中指定的計算不足以恢復原始的未分割的累積信息值,因此下面將參照圖6A和圖6B描述改進這一點的方法。圖6A是用于說明塊分割之后的累積信息的保持方法的示例圖。圖像600表示將大小為XimgxYimg像素的輸入圖像分割為各個大小為XsubxYsub像素的塊,并且以左上端的像素作為原點,針對各塊生成累積圖像信息的狀態(tài)。設C^a,k)為各塊的累積圖像信息(下文中稱為子累積信息),則CsubCi,k)(Xsub,Y^)為在各塊中使用左上端的像素作為原點(0,0)時,位置(Xsub,Yg)處的值(子累積信息值)。注意,j表示水平塊位置,k表示垂直塊位置(二者都是從"0"開始的整數(shù)值)。此外,0"sub<Xsubi0^ysub<Ysubo此時,由下式給出各Csuba,k)(Xsub,Ysub)的最差值Cmaxsub:Cmax_sub-ImaxXsubYsub(^")可以存儲該最差值的位精度Nbuf—sub是存儲Csub(j,k)所需的緩沖區(qū)所需的位精度。(Imax是可以取為位精度為Nimg的輸入信息值的最大值,即2"—-1。)獨立準備存儲針對傳統(tǒng)的整個區(qū)域在各塊Csub(j,k)的右下端位置計算的累積信息值Rsub(j,k)(下文中稱為代表累積信息值)601的緩沖區(qū)Rsub602。也就是說,結(jié)合方程式(1),可以得到Rsub(j,k)=C(Xsub(j+l)-l,Ysub(k+1)-1)(5)因為由于傳統(tǒng)的累積信息,Rsub(j,k)的位精度為Nbuf—max。因此,如果Jmax=(乂img—1)/Xsub,Kmax=(Yimg-1)/Ysub(6)則因為Rsub的元素的數(shù)量與塊的數(shù)量相等,所以由(Jmax+l)(Kmax+l)來表示Rsub的元素的數(shù)量(這些方程式中的"/"表示整數(shù)除法,舍去余數(shù))。假設存儲了所有塊的一組子累積信息CsubG,k)和代表累積信息Rsub。此時,僅將子累積信息值611的值與位置610處的代表累積信息值相加,不足以恢復與圖6B所示的點X的位置相對應的傳統(tǒng)累積圖像信息值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)=i,A(/-1,A:—1)+CraAU>),)可以再現(xiàn)期望的位置X處的傳統(tǒng)累積信息值。(注意,mod(a,b)是進行整數(shù)除法a/b時的余數(shù)。當j峋或k-0時,可以得到Rsub(H,k-l一0。)在以這種方式計算4個點的值之后,如在通常的累積圖像信息中一樣,計算方程式(2),由此計算矩形區(qū)域的總和值。當采用這種累積信息保持方法時,如果對于Nimg-8,Ximg=640,Yimg18=480的輸入圖像,Xsub=Ysub=16,則由于C謹sub-I麗XsubYsu「65280=FF00h,因此Nbuf—^=16位。即使在臨時保持所有生成的累積信息時,要確保的總緩沖區(qū)大小也為Nbuf—subxXimgxYimg+Nbuf—subxJ墮xK腿=4947600位。也就是說,從上面的描述中可以看出,與保持所有C(x,y)值的情況相比,可以大大減小緩沖區(qū)大小。然而,基于塊分割的緩沖區(qū)大小減小方法遇到了下面描述的問題。艮口,在傳統(tǒng)方法中,可以僅通過參照4個點的值,通過進行由方程式(2)給出的簡單的加法和減法計算,來計算期望的矩形區(qū)域的總和值。然而,在該方法中,需要針對4個點進行方程式(7)和(8)的計算,以恢復它們的值。即,獲得期望的結(jié)果所需的計算負荷顯著增加。尤其是,在硬件實現(xiàn)處理時,計算方程式(7)所需的除法器的實現(xiàn)使電路規(guī)模顯著增加。由于計算方程式(2)所需的加法器和減法器使用傳統(tǒng)的累積信息值,盡管降低了緩沖區(qū)的位精度,但是需要輸入與傳統(tǒng)方法相同的位精度Nbuf—max。由于該位精度通常大于存儲部分區(qū)域的要計算的總和值所需的位精度,因此這可能是增加電路規(guī)模的因素。此外,當執(zhí)行并行計算處理以增大處理速度時,由于這些增加的電路以并行度的倍數(shù)起作用,因此引起了更切實的問題,并且它們影響操作時鐘和流水線階段(pipelinestage)的數(shù)量。即使在軟件實現(xiàn)處理時,由于對應于恢復計算的處理負荷增加,因此執(zhí)行速度顯著降低。因此,在本實施例中,執(zhí)行不進行塊分割(下面描述)的方法。(位精度和生成的溢出累積信息)如上所述,假設當所有輸入陣列元素取最大值時,位精度Nbuf是能夠存儲最差累積值Q^的位精度Nbuf—max。此時,生成圖4所示的傳統(tǒng)累積信息4b,當輸入信息是二維陣列時,值在右下方向上單調(diào)增加。然而,當用于保持累積信息的緩沖區(qū)被設置為具有滿足Nbuf<NbuiLmax的位精度(預定位)時,如圖7所示,值在右下方向上的某一位置溢出,并返回小的值。重復該處理,生成與原始累積信息的預定位的一部分或更少的位相對應的累積信息。下文中,將這種累積信息稱為溢出累積信息。注意,圖7使用等高線例示了溢出位置。通常,由于累積值向右下位是說,即使在同樣大小的區(qū)域(例如在處理窗口中),溢出出現(xiàn)的頻率也向右下位置增大。本實施例的信息處理裝置使用生成這種溢出累積信息的位精度為Nbuf的累積信息生成單元111和累積信息保持單元113。如上所述,由于在加法和減法處理器304中使用的加法器和減法器輸入和輸出Nbuf位的正值,因此根據(jù)要參照的4個點的值,可能出現(xiàn)溢出或下溢(imderflow)。如上所述,累積信息保持單元113包括累積信息保持存儲器113-1和存儲器控制器113-2。累積信息保持存儲器113-1能夠在各地址存儲Nbuf位的值,而通過設計存儲器控制器113-2,可以使用通用的8位或32位的RAM。在這種情況下,存儲器控制器113-2將地址和位彼此相關(guān)聯(lián),并分配作為與Nbuf的差的分數(shù)位(fractionalbit)作為另一地址值。由此,可以通過打包來使用最小需要RAM大小。下面將描述即使在使用Nbuf位的加法器和減法器來執(zhí)行圖7所示的位精度為Nbuf的溢出累積信息及加法和減法處理時、在后續(xù)處理中使用計算結(jié)果值時也不會產(chǎn)生問題的原因以及決定沒有問題的、最小需要位精度的方法。(溢出累積信息的原理和位精度的決定要件)在本實施例中,生成溢出累積信息,使Nbuf=N。v(下面描述)。圖5是用于說明即使使用溢出累積信息也能夠正確計算矩形區(qū)域中的元素的總和值的原理的圖。注意,圖5對應于通常的累積信息、即
背景技術(shù):
的描述(方程式(2)中的圖4中的4b,但是通過用溢出累積信息、即對應于圖6A和圖6B的累積信息替換通常的累積信息,來給出下面的說明。就計算原始輸入圖像(圖4中的4a)中的特定區(qū)域中的元素值的總和而言,適用相同的使用目的。在圖5中,設A、B、C和D為點(Xo-l,yo隱l)、(Xl,yo-l)、(x0-l,y,)以及(Xi,yi)的位置處的元素值(溢出累積值)。假設累積信息保持單元的專用緩沖存儲器的位精度為N。v,iX=2N。v。注意,將計算mod(S',T')定義為S條以T'的余數(shù),并用S表示。注意,T是正整數(shù),S'是可以具有正號或負號的整數(shù)。當S'為負時,將通過相加T直到值等于或大于O而獲得的值定義為mod(S',T')的計算結(jié)果S。因此,S是非負整數(shù)。假設S'為通過相加和/或相減多個正整數(shù)或者其組合而獲得的計算結(jié)果。如果使用輸入和輸出N。v位正整數(shù)的加法器和減法器,則在獲得的輸出超過X的情況下,獲得的輸出溢出,或者在獲得的輸出小于0的情況下,獲得的輸出下溢。因此,結(jié)果等于S-mod(S',X')。艮口,如果實際的加法和減法計算結(jié)果S'等于或大于X,則S變成被X除的余數(shù);如果S'為負值,則S變成通過將X與S'相加直到其變成正值而獲得的值。結(jié)果,獲得總是滿足0SS〈X的值S。如果緩沖區(qū)的位精度為N。v,則可以通過下式表示圖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'是在沒有任何溢出的、通常的傳統(tǒng)累積信息的情況下的相同位置的值,這些值為正整數(shù),并且根據(jù)方程式(2)的描述,通過下式來分別給出A'=C(x0-l,y0-l)B'^C(Xi,yo-l)C'=C(Xo-l,yi)D'=C(Xl,yi)(10)在本實施例中,圖2所示的累積加法處理器206使用輸入和輸出與緩沖區(qū)的位精度相對應的N。v位正整數(shù)的加法器。因此,當生成溢出累積信息時,避免了進行對應于方程式(9)的計算的需要,因此進行這些計算。設C(xo,yQ;Xl,yi)=S'為由作為對角點的(xo,yo)和(Xi,y,)定義的矩形區(qū)域中的總和值,根據(jù)方程式(2)和方程式(10),要計算的值為S'=C(x。-1,y0-l)-C(x0-1,yi)-C(Xl,y0-l)+C(xhy,)=A'-B'隱C'+D'(11)分別通過下式來表示A'、B'、C'和D':A'=A"X+AB'-B"X+BC'=C"X+CD'=D"X+D(12)此時,A"、B"、C"和D"分別是通過A'、B'、C鄰D'除以X獲得的商。下面將分析代替A'、B'、C'和D'按原樣使用A、B、C和D執(zhí)行與方程式(11)相同的加法和減法處理的情況。假設使用的所有加法器和減法器都輸入和輸出N。v位正整數(shù)。(也就是說,在本實施例中,加法和減法處理器304還包括輸入和輸出N。v位正整數(shù)的加法器和減法器)。此時,如果由于對加法器和減法器的位限制,(A-B-C+D)大于X,則計算結(jié)果S溢出;或者,如果(A-B-C+D)小于0,則S下溢。因此,OSS<X。也就是說,根據(jù)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)可以看出,如果保證OSS'〈X,貝US-S'。由于基于s'的原始定義,s'是具有正整數(shù)(或定點數(shù))的元素值的輸入信息的特定矩形區(qū)域中的總和值,因此保證S'20。因此,當選擇能夠保證0SS〈X-2N。J勺N。v,并將其用作緩沖區(qū)的位精度Nbuf時,可以保這表示僅需要根據(jù)后續(xù)處理中所需的特定矩形區(qū)域的大小來確定N。v。設Xreet_ma5^nY^t一:nax為在后續(xù)處理中使用的最大矩形區(qū)域的大小,則通過下式給出該矩形中的總和值的最差值Crectmax_IrectmaxXrectmaxYrectmax(15)因此,在不發(fā)生溢出的情況下,僅需要確定N。v等于或大于存儲Creetmax所需的大小。例如,在
背景技術(shù):
部分中對
背景技術(shù):
的描述中所例示的相同條件下進行以下分析。即,假設輸入圖像的Ni啤-8,Ximg=640,Yimg=480。假設由例如Xreet_max=Yreet—raax=16來定義在后續(xù)處理中使用的最大矩形區(qū)域的大小。在這種情況下,由于Crect—max=Irect—maxXrect—maxYrect—腿=65280=FFOOh(與Cma、sub相同的值),因此N。v-16位(與上述進行塊分割時的Nbuf—sub相同的值)。即使在要臨時保持針對輸入圖像的整個區(qū)域生成的所有累積信息時,要確保的緩沖區(qū)大小也是NcvxXimgxYimg-4915200位。也就是說,在該條件下,與前述進行塊分割+保持代表累積信息值的方法相比,可以進一步減小緩沖區(qū)大小。當然,在本實施例的方法中,由于N。v的位數(shù)隨著要使用的最大矩形區(qū)域大小的增大而增加,因此根據(jù)條件,與前述使用塊分割的方法相比,并不總是減小緩沖區(qū)大小。然而,如之前所描述的,由于要使用的計算單元僅是位精度Nbuf-N。v的加法器和減法器,因此結(jié)構(gòu)非常簡單。如上面已經(jīng)描述的,前述使用塊分割的方法需要復雜的額外計算(電路),例如用于恢復計算的除法器、位精度Nbuf—m^〉N。v的加法器和減法器以及寄存器等。相比之下,根據(jù)本實施例的方法,計算的次數(shù)與傳統(tǒng)的不進行分割的累積信息的計算次數(shù)相等,并且能夠降低計算單元的位精度。由于減少了電路的段數(shù),因此可以使電路超頻(overclock)。也就是說,本實施例的方法不僅在減小緩沖區(qū)大小上有大的優(yōu)勢,在提高處理速度和縮小電路規(guī)模上也有大的優(yōu)勢。如果電路規(guī)模和緩沖區(qū)大小有足夠的余量,則N。v的上限是任意的。如果N。v=Nbuf—max,則生成無溢出的傳統(tǒng)累積信息。然而,如果N。v>Nbufmax,則僅僅增加沒有有效使用的位的數(shù)量是沒有意義的。如果N。v<Nbufmax,則有可能根據(jù)輸入圖像的值生成前述溢出累積信息。然而,如上所述,只要N。v等于或大于基于在后續(xù)處理中需要的特定矩形區(qū)域的大小設置的下限N。vmi。,則在生成溢出累積信息的情況下,不會出現(xiàn)問題。通常,設置N。v=N。v^是最有利的。當存在未來用相同的電路執(zhí)行的其它處理的可能性時,只要電路規(guī)模和處理時間允許,則將N。v設置為盡可能大,增大應對更多處理的可能性。(位精度決定方法矩形基準和處理窗口基準)下面將描述基于本發(fā)明的原理的決定位精度N。v的下限N。vmin的方法的兩個示例。假設執(zhí)行與
背景技術(shù):
中的Viola01中的模式識別處理相同的模式識別處理作為后續(xù)處理的示例。作為第一個方法,在圖9中,作為學習結(jié)果而獲得的各弱分類器包括通過將多個矩形區(qū)域組合的濾波器。通過核査所有這些濾波器,而不考慮它們的正和負(白和黑)模式,來選擇具有最大大小(包括最大元素數(shù)量)的區(qū)域的濾波器。然后,基于最大矩形區(qū)域來決定N。v—min。該方法使得能夠在執(zhí)行模式識別處理時決定最有效的N。vmin。然而,如果由于識別條件等的變化而導致需要再學習,則在學習之后生成的濾波器可能使用更大的矩形區(qū)域,并且可能不滿足條件。相比之下,作為第二個方法,可以采用利用使用圖8描述的處理窗口801的大小作為最大矩形區(qū)域、并類似地決定N。v一min的方法。使用該方法,盡管效率更有可能低于第一個方法,但是只要處理窗口大小不改變,可以配置能夠應對再學習的電路。(第二實施例)第一實施例描述了在累積信息保持單元113中保持與輸入信息的整個區(qū)域?qū)囊绯隼鄯e信息的示例。然而,本發(fā)明并不局限于該特定示例。圖12示出了當累積信息保持單元113的累積信息保持存儲器113-1用作帶緩沖區(qū)時要臨時保持的溢出累積信息的區(qū)域。區(qū)域1200表示在圖7中描述的溢出累積信息的整個區(qū)域。相對于溢出累積信息的整個區(qū)域1200,區(qū)域1202表示用于臨時保持累積信息的具有預定高度的帶區(qū)域。將帶區(qū)域1202的高度設置為等于后續(xù)處理的處理窗口1201的高度,其寬度等于輸入信息的寬度。注意,本實施例中的后續(xù)處理與第一實施例中的后續(xù)處理相同,將其作為圖10和圖11所示的主處理之后的后續(xù)處理進行了描述。然而,對各帶區(qū)域執(zhí)行對應于步驟S1103的主處理的處理。當一個帶位置處的帶處理完成時,要保持的溢出累積信息下滑一行,并且將滑動后的區(qū)域作為邏輯連續(xù)的區(qū)域,從該帶位置的左端的處理窗口開始,執(zhí)行主處理。區(qū)域1202表示最初在處理開始時保持的帶區(qū)域,區(qū)域1203表示將保持的帶區(qū)域向下移動一行的狀態(tài)。將本實施例的帶緩沖區(qū)針對各行配置為環(huán)形(ring)緩沖區(qū)。因此,當生成新的行時,丟棄最早的行,并在該區(qū)域中保持新的行。因此,盡管需要將溢出累積信息的期望位置轉(zhuǎn)換為當前緩沖區(qū)中的地址,但是與保持整個區(qū)域的信息的情況相比較,幾乎沒有處理開銷。圖13是示出帶緩沖區(qū)保持溢出累積信息的情況下的總體處理的序列的流程圖,其對應于第一實施例中的圖11。步驟S1301是與步驟S1101相同的信息輸入處理。與第一實施例相同,步驟S1301可以實現(xiàn)為與稍后描述的步驟S1302和步驟S1305并行執(zhí)行。步驟S1302是累積信息生成處理。與步驟S1102中不同,該處理僅生成在帶區(qū)域1202中的頂部帶位置的累積信息。注意,除了范圍以外,CPU101、DAMC103以及累積信息處理器100的操作與第一實施例中的操作相同。如果在步驟S1302中累積信息保持單元113中的帶緩沖區(qū)保持區(qū)域1202指示的位置(原點位置)的累積信息,則在步驟S1303中執(zhí)行主處理(對應于步驟S1103)。在本實施例中,同樣執(zhí)行使用圖IO描述的模式識別處理。當處理窗口1201位于帶的頂部位置(如圖12所示)時,執(zhí)行如圖10中的步驟S1002至S1008描述的預定處理。接下來,與對應于步驟SIOOI的處理相同,將處理窗口1201從頂部位置移動到向右移位一個像素的位置,并再次執(zhí)行預定處理。之后,與第一實施例中相同,重復預定處理,直到處理窗口1201到達帶區(qū)域1202的右端為止。也就是說,在本實施例中,步驟S1001是將處理窗口1201從帶的左端位置逐像素地移動到右端的處理,而步驟S1007中的掃描的完成是用于檢測直到一個帶的右端為止的處理完成的處理。當完成針對一個帶的步驟S1303中的主處理時,在步驟S1304中確定當前處理帶是否位于包含輸入信息的末行的位置。如果帶不位于包含末行的位置,則處理前進到步驟S1305,針對下一行生成并保持累積信息。此時,由于先前行的累積信息已經(jīng)保持在累積信息保持存儲器113-1的帶緩沖區(qū)中,因此可以通過與第一實施例中描述的生成方法相同的生成方法生成一行的累積信息。也就是說,該計算處理不會引起任何由于使用帶緩沖區(qū)所致的開銷。在生成并保持下一行的累積信息之后,累積信息的帶位置移動到區(qū)域1203,并再次執(zhí)行步驟S1303中的主處理。之后,在向下逐行移動帶時,重復相同的處理,直到在步驟S1304中確定末行為止。如果在步驟S1304中確定到達了末行,則與步驟S1104相同,在步驟S1306中執(zhí)行后續(xù)處理,由此結(jié)束處理。與第一實施例不同,根據(jù)本實施例,可以在不產(chǎn)生任何計算開銷的情況下,大大減小累積信息保持存儲器113-1的存儲器大小。即使在使用帶緩沖區(qū)進行保持的情況下,很明顯,由于后續(xù)的加法和減法計算處理是等同的處理,因此位精度Nbuf可以是在第一實施例中描述的N。v。當然,不特別限制帶緩沖區(qū)的溢出次數(shù)。下面將描述與第一實施例相同的Ni呵-8,Ximg=640,Yimg=480,并且處理窗口大小為16X16像素(即Xre(max-Yrect—max=16)的情況。由于需要臨時保持的大小是針對一個帶的,因此要確保的最小需要緩沖區(qū)大小為N。vxXimgxYimg=16x480x16=163840位,與第一實施例相比,該大小能夠大大減小??梢曰趯嶋H要使用的矩形區(qū)域的最大大小來定義帶高度,并可以進一步減小緩沖區(qū)大小。然而,在這種情況下,需要將后續(xù)處理修改為針對各濾波器類型的處理,以代替針對各處理窗口的處理。此外,可能會產(chǎn)生由于修改后續(xù)處理而導致的開銷。(第三實施例)作為進一步減小緩沖區(qū)大小的方法,塊緩沖區(qū)可以保持溢出累積信息。圖14示出了用于針對整個區(qū)域的累積信息、臨時存儲信息的塊緩沖區(qū)的狀態(tài)。附圖標記1400代表表示當前處理帶位置的虛線。在圖14中,虛線1400表示頂部帶位置。附圖標記1401代表塊緩沖區(qū)中當前保持的累積信息的區(qū)域。在圖14中,區(qū)域1401位于起始位置(原點位置)。該區(qū)域1401的位置與處理窗口的當前位置一致。附圖標記1402代表處理窗口向右移動一個像素的區(qū)域。在處理該區(qū)域時,塊緩沖區(qū)將累積信息保持在該區(qū)域中。在本實施例中,塊緩沖區(qū)包括針對各縱向線段的環(huán)形緩沖區(qū)。注意,縱向線段表示長度與處理窗口的高度一致的線段。當將塊緩沖區(qū)中保持的累積信息從區(qū)域1401的位置移動到區(qū)域1402的位置時,丟棄在塊緩沖區(qū)中保持的累積信息的縱向線段1403的區(qū)域中存儲的累積信息值,并在該區(qū)域中保持針對縱向線段1404的區(qū)域的新計算的累積信息值。依次重復該處理,直到處理窗口的右端位置。圖16是示出在塊緩沖區(qū)保持溢出累積信息的情況下的總體處理的序列的流程圖。步驟S1601是與圖11中的步驟S1101相同的信息輸入處理。注意,與第一實施例中相同,如果后續(xù)處理不直接使用輸入信息,則可以與步驟S1602、S1605和S1608(稍后描述)同步執(zhí)行步驟S1601。在步驟S1602中,生成并存儲頂部帶位置處的起始塊的累積信息。艮口,生成圖14中的區(qū)域1401的位置處的累積信息。注意,本實施例的塊緩沖區(qū)具有雙緩沖區(qū)結(jié)構(gòu),其中配置了各自具有處理窗口大小的兩個緩沖區(qū)。圖17A和圖17B示出了兩個緩沖區(qū)。在圖17A的區(qū)域中保持針對區(qū)域1401的一個塊的生成的累積信息值。同時,在圖17B中的有點的部分1702指示的區(qū)域中存儲與通過排除圖17A中的一行頂部線段而獲得的有點的部分1701的區(qū)域中的累積信息值相同的值。稍后將描述其原因。除了圖17A和圖17B所示的雙緩沖區(qū)以外,還需要配置對應于圖14中的區(qū)域1405的存儲區(qū)域,換句話說,當前處理帶中的頂部一行(除頂部塊以外)的區(qū)域。下文中,將該區(qū)域稱為頂部列方向累積值緩沖區(qū)。當完成步驟S1602中的處理時,在頂部列方向累積值緩沖區(qū)中全部設置"O"。接下來,在步驟S1603中執(zhí)行主處理。該處理與圖IO所示的處理基處理窗口的處理,因此省略步驟S1001和S1007。當完成針對一個處理窗口(換句話說,一個塊)的主處理時,確定處理的塊的位置是否是當前處理帶(由虛線1400指示)的最后塊的位置,換句話說,是否是右端。如果還未到達最后塊,則生成鄰接塊的右端的線段區(qū)域1404的累積信息值,并將其保持在保持線段區(qū)域1403的累積信息值的緩沖區(qū)中??梢曰谠搮^(qū)域的輸入信息、當前在塊緩沖區(qū)中保持的累積信息值、以及在頂部列方向累積值緩沖區(qū)中保持的值,來計算對應于該線段"04的位置的累積信息值。也就是說,對于線段中的各像素,將線段中從頂部像素到關(guān)注像素的值的和,加到與該線段相同列的頂部列方向累積值緩沖區(qū)中的值中,然后進一步將已保持在塊緩沖區(qū)中的關(guān)注像素的左鄰接累積信息值與該和相加。在將對應于線段1404的一組累積信息存儲在塊緩沖區(qū)中之后,重新存儲線段1404的頂部像素值到已經(jīng)存儲在頂部列方向累積值緩沖區(qū)的相同列位置的值的和。也就是說,頂部列方向累積值緩沖區(qū)是針對各列保持縱向累積值的緩沖區(qū),縱向累積值通過累積從起始行的像素到生成了累積信息的線段的上端像素的值來獲得。通過保持該值,可以與處理帶位置的向下移動同步地計算對應于各位置的累積信息值。這是與第一或第二實施例的溢出累積信息中的、通過將僅在行方向上的累積值與相同列位置處的正上方的行中的累積信息值相加的處理相同的處理。也就是說,由于本實施例使用列方向累積值來代替行方向累積值,因此可以代替先前行累積信息值,按原樣使用先前列累積信息值。例如,為了計算從位置1407開始的垂直線段,僅需要將相同列中直到位置1406的縱向累積值與該位置的像素值和左鄰接先前列累積信息值相加。之后,根據(jù)各行的處理帶的進程,更新頂部列方向累積值緩沖區(qū)的值。在生成下一線段累積信息之后,將處理窗口向右移動一個像素,處理返回到步驟S1603,針對該區(qū)域執(zhí)行主處理。重復相同的處理,直到在步驟S1604中確定處理窗口到達當前處理帶的右端塊為止。當完成直到處理帶位置處的最后塊位置(右端)的處理時,然后在步驟S1606中確定是否完成了直到整個輸入信息的末行位置的處理。如果處理帶位置還沒有到達末行位置,則在步驟S1607中,將處理帶位置重置在下面一行的位置。在步驟S1608中,執(zhí)行新設置的處理帶位置左端的第一塊的累積信息的生成和存儲處理。該處理使用與在先前處理帶位置所使用的雙緩沖區(qū)中的一個緩沖區(qū)不同的塊緩沖區(qū)。如果在先前處理帶中使用圖17A中的塊緩沖區(qū),則在當前處理帶中使用圖17B中的塊緩沖區(qū)。此時,當圖17A中的緩沖區(qū)位于先前處理帶位置的頂部時,區(qū)域1702已經(jīng)存儲了與對應于區(qū)域1701的累積信息相同的值。(當然,由于作為環(huán)形緩沖區(qū)使用圖17A中的緩沖區(qū),因此當前值是不同的。)因此,當生成位置1703處的橫向線段的新的累積信息,并將其存儲在圖17B中的緩沖區(qū)中時,當前處理帶位置處的第一塊的累積信息的生成完成。注意,與從圖17A中的緩沖器到圖17B中的緩沖器的位置關(guān)系相同,以將一個線段向上移位的位置關(guān)系,將生成的累積信息的相同值從圖17B中的緩沖區(qū)復制到圖17A中的緩沖區(qū),從而為下一行的處理作準備。當完成當前處理帶中的第一(左端)位置處的塊的累積信息的生成時,處理返回到步驟S1603,對各塊執(zhí)行主處理。之后,針對輸入信息的整個區(qū)域依次重復該處理,直到在步驟S1606中到達末行為止。在步驟S1609中,執(zhí)行與步驟S1104相同的后續(xù)處理,由此結(jié)束總體處理。在本實施例中,緩沖區(qū)的位精度Nbuf同樣可以是在第一實施例中描述的N。v。當然,根據(jù)輸入信息和要保持的塊的位置,在塊中發(fā)生多次溢出。然而,與第一實施例中相同,可以使用該利用溢出累積信息的計算結(jié)果,而不產(chǎn)生任何問題。當在本實施例中在與第一和第二實施例描述的示例中相同的條件下計算緩沖區(qū)大小時,Novx{Xrect—隱xYrect—腿x2+(Ximg誦Xrect_max)}=16x{16x16x2+(640-16)〉-18176位。因此,可以實現(xiàn)非常小的緩沖區(qū)大小。在上述公式中,x2表示雙緩沖區(qū),(Ximg-Xrect—^x)表示頂部累積值緩沖區(qū)。在使用本實施例的塊緩沖區(qū)的實施中,產(chǎn)生了計算累積信息時的開銷。下面將參照圖15A和圖15B說明計算開銷。在圖15A中,將通過排除起始處理窗口1500以及頂部行和末行而獲得的區(qū)域1501中的累積信息值計算二次或更多次。例如,當處理帶位于虛線1400所示的位置時,計算一次圖14中的位置1407處的累積信息值,當將處理行移動到下面的一行的下一位置時,再次計算一次位置1407處的累積信息值。因此,在位置1407,相同的值計算兩次。將下面的一個像素的累積信息值計算三次,將下面的兩個像素的累積信息值計算四次。因此,當塊大小為16x16時,存在計算最多15次的累積信息值。在圖15A中,沒有在按照窗口1500的寬度到末行的區(qū)域中重新計算累積信息值的原因是,使用利用圖17A和圖17B描述的雙緩沖區(qū)結(jié)構(gòu)。也可以采用使用單個塊緩沖區(qū)而不采用雙緩沖區(qū)結(jié)構(gòu)的配置方法。在這種情況下,每次處理帶向下移動一行時,都重新計算起始塊區(qū)域的所有累積信息值。與之前描述的累積信息不同,輸入信息的基準元素的位置不必須是原點位置,而可以是處理帶的左上端位置的元素。也就是說,要生成的溢出累積信息取與使用圖7描述的值不同的值。此外,每次根據(jù)帶的的移動而進行重新計算時,即使在同一位置也存儲不同的累積值。在這種情況下,盡管以與上述方法相同的方式在塊大小為16x16的情況下,一些值最多重新計算了15次,但是進行重新計算的區(qū)域是圖15B所示的區(qū)域。所需的緩沖區(qū)大小為NovxXrect—隱xYrect—max=16x16x16=4096位。盡管計算累積信息所需的負荷變大,但是可以使所需的緩沖區(qū)大小最小化。注意,由于位精度Nbuf-N。v,因此累積信息使用計算單元112中的加法和減法負荷仍然與之前描述的實施例中相同。(其它實施例)還可以針對三維或更多維的多維陣列信息生成前述累積信息。圖18A和圖18B是示出三維輸入信息的累積信息的狀態(tài)的示例圖。三維陣列的輸入信息是例如電影信息,通過對二維圖像添加一維時間軸,來定義三維信息。在圖18A中,三維累積信息陣列中的點X的位置處的元素取包括在由輸入三維信息中的作為對角點的原點和點X定義的長方體中的元素的總和值。使用該三維累積信息,可以計算例如圖18B所示的長方體1801中的元素的總和值。設(X(),yQ,t。)和,yi,h)為作為長方體1801的對角點的兩個點的坐標。假設A、B、C、D、E、F、G和H為如下位置的累積信息值A:(x。-l,yo-l,to-l)B:(x!,yo-l,t。隱l)C:(x0-l,yi,t0-l)D:(Xi,y"-l)E:(Xo-l,yo-l,t)F:(x!,yo-l,tOG:(xo-l,y")H:(x!,力,t0(16)可以通過下式來計算輸入信息的長方體1801中的元素的總和值S3d:S3d=H-D畫F+B國(G-C-E+A)(17)本發(fā)明的觀點可以應用于該三維累積信息,該三維累積信息可以由溢出累積信息代替。在圖19中,附圖標記1901代表在三維輸入信息的情況下的處理窗口的示例。當該處理窗口大小為(X^t—max,Yreet—max,Treetmax^f,與二維信息中相同,計算能夠存儲該窗口中的所有元素取最大值時的總和值、而不發(fā)生溢出的位精度N。v。然后,可以將計算的位精度N。v設置為緩沖區(qū)的位精度Nbuf。例如,假設輸入信息為8位,并且Xrectj狀-16,Yrectmax=16,Trect—max—4。ji匕時,Crect_max—ImaxXrect_maxYreCt—maxTrect—max—255x16x16x4—261120=3FC00h,并且N。,18位。當然,在該位精度Nbu產(chǎn)N。v的情況下,隨著窗口位置進一步遠離原點位置,在處理窗口中發(fā)生溢出時,計算累積信息。與二維信息中相同,可以使用方程式(14)來計算期望的長方體中的總和值。當使用帶或塊型緩沖區(qū)保持累積信息時,如圖20A、圖20B和圖20C所示,與二維信息的情況下相同,可以迸一步減小緩沖區(qū)大小。如果使用圖20A、圖20B和圖20C中的圖20A所示的類型的緩沖區(qū),則在計算累況下,可以進一步減小緩沖區(qū)大小,但是與二維信息的情況相同,需要重新計算大量的累積信息值。從以上描述可以看出,如果使用超長方體(hyperrectangularparallelepiped),則本發(fā)明可以類似地應用于超過三維的多維輸入信息的累積信息。本發(fā)明不僅適用于硬件電路,還適用于軟件處理。例如,需要27位精度的前述傳統(tǒng)累積信息必須使用32位的長型陣列,而當如在實施例所描述的,可以將位精度降低到16位時,可以使用16位的短型陣列。也就是說,使用的緩沖區(qū)大小可以減小到一半。此外,即使在需要不能整除的位精度時,也可以通過權(quán)衡存儲器存儲時間,使用例如C語言的位字段(bitfield)功能等,來提高存儲器使用效率。以上實施例例示了作為環(huán)形緩沖區(qū)使用帶緩沖區(qū)或塊緩沖區(qū)。然而,本發(fā)明并不局限于這種特定存儲器使用方法。例如,可以使用配置對應于環(huán)形計數(shù)器的存儲器地址表、并在參照該表針對各預定處理分配不連續(xù)的區(qū)域時執(zhí)行處理的方法。也就是說,本發(fā)明描述的環(huán)形緩沖區(qū)并不局限于狹義的環(huán)形緩沖區(qū)或循環(huán)緩沖區(qū)(cyclicbuffer)。在前述各實施例中作為主處理描述的后續(xù)處理并不局限于模式識別處理。本發(fā)明適用于其它領域(例如在
背景技術(shù):
中描述的計算機圖形學等)的處理,只要處理使用累積信息并可以限制可能要使用的最大區(qū)域的大小即可。注意,本發(fā)明包括通過CPU基于從計算機可讀存儲介質(zhì)讀出的程序代碼的指令進行處理,來實現(xiàn)前述實施例的功能的情況。作為用來提供程序代碼的存儲介質(zhì),可以使用例如軟(floppy)盤、硬盤、光盤、磁光盤、CD、DVD、磁帶、非易失性存儲卡和ROM等。此外,本發(fā)明包括在圖像輸入裝置和信息存儲裝置、或者集成或連接這些裝置的裝置中的一者或者兩者中配設的CPU執(zhí)行部分或全部實際處理時,實現(xiàn)前述實施例的功能的情況。作為圖像輸入裝置,可以使用各種使用CCD的照相機和掃描器(例如攝像機、數(shù)字照相機和監(jiān)視照相機等)和輸入來自模擬圖像輸入裝置的通過AD轉(zhuǎn)換所轉(zhuǎn)換的數(shù)字圖像的圖像輸入裝置。作為信息存儲裝置,可以使用外部硬盤和視頻記錄器等。根據(jù)本發(fā)明,可以減小計算多維陣列的輸入信息的特定區(qū)域中的元素的總和值所需的處理負荷和緩沖區(qū)大小。在硬件實現(xiàn)根據(jù)本發(fā)明的裝置的情況下,可以使用小的電路規(guī)模來實現(xiàn)高速處理。雖然參照示例性實施例對本發(fā)明進行了描述,但是應當理解,本發(fā)明并不局限于所公開的示例性實施例。應當對所附權(quán)利要求的范圍給予最寬的解釋,以使其涵蓋所有這種變型、等同結(jié)構(gòu)和功能。本申請要求2007年5月31日提交的日本專利申請第2007-145448號的優(yōu)先權(quán),該申請的全部內(nèi)容通過引用包含于此。權(quán)利要求1.一種信息處理方法,該信息處理方法包括如下步驟輸入多維陣列的輸入信息;計算與所述輸入信息的各元素的位置相對應的累積信息值;以及將所述累積信息值保持在具有預定位的大小的緩沖區(qū)中,其中,在所述保持步驟中,在所述計算步驟中計算的累積信息值相對于所述大小溢出的情況下,保持不多于所計算的累積信息值的所述預定位的部分作為所述累積信息值。2.根據(jù)權(quán)利要求1所述的信息處理方法,其中,當所述多維陣列的所述輸入信息的所有元素取最大值時,所述預定位的大小小于沒有溢出地存儲與所述輸入信息的最后元素位置相對應的累積信息值所需的大小。3.根據(jù)權(quán)利要求1所述的信息處理方法,所述信息處理方法還包括在所述保持步驟所保持的多個累積信息值之間,進行加法和/或減法的步驟,其中,在所述加法/減法步驟中,當所述加法和/或減法的計算結(jié)果溢出或下溢所述預定位時,將所述計算結(jié)果的所述預定位的一部分作為所述加法和/或減法的結(jié)果輸出。4.根據(jù)權(quán)利要求3所述的信息處理方法,其中,所述加法/減法步驟所輸出的所述加法和/或減法的所述結(jié)果,表示與由所述多個累積信息值的元素的位置指示的所述輸入信息的特定區(qū)域相關(guān)聯(lián)的信息。5.根據(jù)權(quán)利要求4所述的信息處理方法,其中,與所述特定區(qū)域相關(guān)聯(lián)的所述信息是所述輸入信息的所述特定區(qū)域中的所有元素的總和,或者是基于所述總和值的信息。6.根據(jù)權(quán)利要求4所述的信息處理方法,所述信息處理方法還包括以包括多個特定區(qū)域的區(qū)域為單位,使用所述多個特定區(qū)域的所述加法和/或減法的結(jié)果,執(zhí)行后續(xù)處理的步驟,其中,所述預定位的大小,是在作為所述后續(xù)處理的所述單位的所述區(qū)域中,不發(fā)生溢出地存儲當所述輸入信息的所有元素取針對所述預定位的大小的最大值時的總和值所需的大小。7.根據(jù)權(quán)利要求4所述的信息處理方法,其中,所述預定位的大小不小于,在所述多個特定區(qū)域中的具有最大數(shù)量的元素的區(qū)域中,存儲當所述輸入信息的所有元素取針對所述預定位的所述大小的最大值時的總和值所需的大小。8.根據(jù)權(quán)利要求1所述的信息處理方法,其中,所述輸入信息是二維陣列,并且在所述計算步驟中,計算由作為對角位置的所述輸入信息的原點位置和各元素的位置定義的矩形區(qū)域中的所有元素的總和值,作為對應于該元素位置的所述累積信息值。9.根據(jù)權(quán)利要求4所述的信息處理方法,其中,所述輸入信息是二維陣列,并且所述特定區(qū)域是由與所述二維陣列中的所述多個累積信息值相對應的位置指示的矩形區(qū)域。10.根據(jù)權(quán)利要求1所述的信息處理方法,其中,所述輸入信息是不少于三維的多維陣列,并且在所述計算步驟中,計算由作為對角位置的所述輸入信息的原點位置和各元素的位置定義的超長方體區(qū)域中的所有元素的總和值,作為對應于該元素位置的所述累積信息值。11.根據(jù)權(quán)利要求4所述的信息處理方法,其中,所述輸入信息是不少于三維的多維陣列,并且所述特定區(qū)域是由作為不少于三維的所述多維陣列的所述輸入信息中的與所述多個累積信息值相對應的位置指示的超長方體區(qū)域。12.—種信息處理裝置,該信息處理裝置包括輸入單元,其適合于輸入多維陣列的輸入信息;計算單元,其適合于計算與所述輸入信息的各元素的位置相對應的累積信息值;以及保持單元,其適合于將所述累積信息值保持在具有預定位的大小的緩沖區(qū)中,其中,在所述計算單元計算的累積信息值溢出所述預定位的情況下,所述保持單元保持不多于所計算的累積信息值的所述預定位的部分作為所述累積信息值。13.根據(jù)權(quán)利要求12所述的信息處理裝置,所述信息處理裝置還包括:加法/減法單元,其適合于在與所述輸入信息的特定區(qū)域相關(guān)聯(lián)的多個累積信息值之間,進行加法和/或減法;以及后續(xù)處理單元,其適合于以包括多個特定區(qū)域的區(qū)域作為單位,使用所述多個特定區(qū)域的所述加法和/或減法的結(jié)果,執(zhí)行后續(xù)處理。14.根據(jù)權(quán)利要求13所述的信息處理裝置,其中,所述保持單元具有邏輯上與所述輸入信息的維數(shù)相同的結(jié)構(gòu),在各維方向中,至少一維方向由基于所述輸入信息的某一維方向上的元素數(shù)量的所述元素數(shù)量構(gòu)成,而其它維方向由基于作為所述后續(xù)處理的單位的區(qū)域的各維方向上的元素數(shù)量的元素數(shù)量構(gòu)成。15.根據(jù)權(quán)利要求14所述的信息處理裝置,其中,所述計算單元依次計算在具有基于所述輸入信息的同一維方向上的元素數(shù)量的元素數(shù)量的一維方向上排列元素的元素陣列,作為所述累積信息值,當所述計算單元計算所述累積信息的新的元素陣列時,所述保持單元將所述新的元素陣列的計算結(jié)果存儲在存儲了所存儲的累積信息的最早計算的元素陣列的區(qū)域中,并且所述后續(xù)處理單元在新存儲在所述保持單元中的所述元素陣列與存儲了一段時間的其余元素陣列邏輯上連續(xù)的狀況下,執(zhí)行所述后續(xù)處理。16.根據(jù)權(quán)利要求13所述的信息處理裝置,其中,所述保持單元具有邏輯上與所述輸入信息的維數(shù)相同的結(jié)構(gòu),并且各維方向由基于作為所述后續(xù)處理的單位的區(qū)域的各維方向上的所述元素數(shù)量的元素數(shù)量構(gòu)成。17.根據(jù)權(quán)利要求16所述的信息處理裝置,其中,所述計算單元首先計算包括與所述輸入信息的所有維的原點相對應的位置處的元素的區(qū)域的所述累積信息,然后新計算通過僅移位所述結(jié)構(gòu)中的預定一維方向上的一個元素、直到到達所述預定一維方向上的最后位置而相加的各區(qū)域的所述累積信息,所述保持單元將新計算的累積信息存儲在保持了所保持的累積信息中落在所移位的區(qū)域外部的累積信息的區(qū)域中,并且所述后續(xù)處理單元在新存儲在所述保持單元中的所述累積信息與存儲了一段時間的其余累積信息邏輯上連續(xù)的狀況下,執(zhí)行所述后續(xù)處理。18.根據(jù)權(quán)利要求17所述的信息處理裝置,其中,在所述移位區(qū)域到達所述預定一維方向上的所述最后位置之后,所述區(qū)域臨時返回到所述預定一維方向上的原點位置,以通過在另一維方向上移位一個元素而獲得的位置作為新的起始位置,類似地重復所述計算單元進行的所述預定一維方向上的所述一個元素移位處理和所述累積信息的所述計算處理、所述保持單元進行的所述保持處理、以及所述后續(xù)處理單元進行的所述后續(xù)處理,并且通過在所述輸入信息的其它維方向上類似地依次重復所述處理,對所述輸入信息的整個區(qū)域進行所述處理。19.一種計算機可讀程序,用于使計算機執(zhí)行根據(jù)權(quán)利要求1所述的信息處理方法。20.—種計算機可讀存儲介質(zhì),其存儲根據(jù)權(quán)利要求19所述的程序。全文摘要信息處理方法包括如下步驟輸入多維陣列的輸入信息;計算與所述輸入信息的各元素的位置相對應的累積信息值;以及將所述累積信息值保持在具有預定位的大小的緩沖區(qū)中,其中,在所述保持步驟中,在所述計算步驟中計算的累積信息值相對于所述大小溢出的情況下,保持不多于所計算的累積信息值的所述預定位的部分作為所述累積信息值。文檔編號G06T1/60GK101681503SQ200880018010公開日2010年3月24日申請日期2008年5月27日優(yōu)先權(quán)日2007年5月31日發(fā)明者伊藤嘉則,加藤政美,山本貴久,鳥居寬申請人:佳能株式會社