本發(fā)明整體涉及目標(biāo)檢測,如從車輛對行人和其它目標(biāo)的檢測。
背景技術(shù):
現(xiàn)今,車輛配備有用以檢測目標(biāo)(如道路上的行人)的目標(biāo)檢測器,并向駕駛員提供警告/制動輔助。目標(biāo)檢測器采用攝像機(jī)來捕獲在車輛前方和周圍的視頻/圖像,并在其中應(yīng)用圖像處理技術(shù)以用于識別在車輛前方和周圍的障礙物和行人。
現(xiàn)有目標(biāo)檢測器采用基于方向梯度直方圖(hog)的目標(biāo)檢測技術(shù),其中將圖像分成多個塊(block),對每個塊中在任一方向上的像素梯度的量值的量進(jìn)行計數(shù)以形成圖像的hog。機(jī)器學(xué)習(xí)方法對hog應(yīng)用識別和分類技術(shù),以便有效地識別圖像中的行人和預(yù)定義目標(biāo)。圖像的hog基于每個圖像像素的梯度方向和梯度量值來計算。對于圖像像素,對應(yīng)的梯度方向θ表達(dá)為θ=tan-1(y/x),其中y=在豎直方向上的梯度,且x=在水平方向上的梯度。
常規(guī)地,定點處理器中對梯度方向θ的計算通過使用兩個查找表來實施,所述查找表包括用于除法的查找表和用于反正切(tan-1)的查找表。使用這兩個查找表來計算每個圖像像素的梯度方向是非常耗時的,且需要非常大量的計算和非常高的存儲器帶寬,這使得難以在嵌入式系統(tǒng)上以實時性能實施。存儲器帶寬是任何系統(tǒng)尤其是多核系統(tǒng)中的重要資源。存儲器帶寬在優(yōu)化系統(tǒng)性能中起到重要作用。因此,使存儲器帶寬盡可能小是非常重要的,這樣才使得其它處理器也有效地并行工作。
其它目標(biāo)檢測技術(shù)包括計算積分圖像以用于減少計算的次數(shù)。然而,計算積分圖像減少計算的次數(shù),但增加中間數(shù)據(jù)元素大小,這同樣需要高存儲器帶寬。
技術(shù)實現(xiàn)要素:
在所描述的用于檢測包括多個圖像像素的圖像中的目標(biāo)的目標(biāo)檢測系統(tǒng)的示例中,所述系統(tǒng)包括存儲器,其用以存儲指令;以及處理器,其響應(yīng)于所存儲的指令來執(zhí)行以下步驟:針對圖像的每個圖像像素計算一種或更多種類型的一個或更多個特征平面,并在圖像中定義多個單元(cell)。每個單元包括第一至第n數(shù)目的像素。圖像中的每個單元在水平和豎直方向上的起始位置分別為預(yù)定義水平和豎直步長大小的整數(shù)倍。處理器進(jìn)一步響應(yīng)于所存儲的指令來執(zhí)行以下步驟:針對單元中的每個計算一種或更多種類型的一個或更多個特征平面總和。單元的一種類型的特征平面總和通過對所述單元的第一至第n數(shù)目像素的對應(yīng)的特征求和來計算,其中n為整數(shù)。處理器還響應(yīng)于所存儲的指令來執(zhí)行以下步驟:確定圖像的圖像部分的特征向量,其中所述特征向量包括在所述圖像部分中定義的一個或更多個單元的特征平面總和的集合;以及比較所述特征向量與對應(yīng)的目標(biāo)分類器以檢測在圖像的所述圖像部分中的目標(biāo)的存在。
并且,在所描述的檢測包括多個圖像像素的圖像中的目標(biāo)的方法的示例中,所述方法包括針對圖像的每個圖像像素計算一種或更多種類型的一個或更多個特征平面,以及在圖像中定義多個單元。每個單元包括第一至第n數(shù)目的像素。圖像中的每個單元在水平和豎直方向上的起始位置分別為預(yù)定義水平和豎直步長大小的整數(shù)倍。另外,所述方法包括針對單元中的每個計算一種或更多種類型的一個或更多個特征平面總和。單元的一種類型的特征平面總和通過對所述單元的第一至第n數(shù)目像素的對應(yīng)的特征求和來計算,其中n為整數(shù)。并且,所述方法包括確定圖像的圖像部分的特征向量。所述特征向量包括在所述圖像部分中定義的一個或更多個單元的特征平面總和的集合。此外,所述方法包括比較所述特征向量與對應(yīng)的目標(biāo)分類器以檢測在圖像的所述圖像部分中的目標(biāo)的存在。
在其它所描述的檢測包括多個圖像像素的圖像中的目標(biāo)的方法的示例中,所述方法包括針對圖像的每個圖像像素計算一種或更多種類型的一個或更多個特征平面,并在圖像中定義多個單元。每個單元包括第一至第n數(shù)目的像素。圖像中的每個單元在水平和豎直方向上的起始位置分別為預(yù)定義水平和豎直步長大小的整數(shù)倍。另外,所述方法包括針對單元中的每個計算一種或更多種類型的一個或更多個特征平面總和。單元的一種類型的特征平面總和通過對所述單元的第一至第n數(shù)目像素的對應(yīng)的特征求和來計算,其中n為整數(shù)。并且,所述方法包括以迭代方式執(zhí)行:從一種或更多種類型的特征平面選擇一種類型的特征平面;計算局部特征向量;比較所述局部特征向量與目標(biāo)的對應(yīng)局部分類器;并將比較的結(jié)果存儲在存儲器中。局部特征向量包括圖像部分的一個或更多個單元的選定類型的一個或更多個特征平面總和。此外,所述方法包括核對對應(yīng)于每種類型的特征平面的一個或更多個比較結(jié)果,并基于經(jīng)核對的結(jié)果檢測圖像中的目標(biāo)的存在。
附圖說明
圖1示出在一個示例情境中的包括多個圖像像素的圖像。
圖2示出在一個示例情境中的第一至第m數(shù)目的hog區(qū)間(bin)。
圖3a和圖3b分別示出在一個示例情境中的六個hog區(qū)間和八個hog區(qū)間的第一集合和第二集合。
圖4示出在一個實施例中的目標(biāo)檢測系統(tǒng)的框圖。
圖5a和5b示出在一個示例情境中在大小為(64,128)的圖像中定義的大小為(6,6)的單元。
圖6a和6b示出在一個示例情境中在大小為(64,128)的圖像中定義的大小為(4,4)的單元。
圖6c示出在一個示例情境中在大小為(64,128)的圖像中定義的大小為(8,8)的單元。
圖7示出在一個實施例中在圖像幀內(nèi)的檢測窗。
圖8是在一個實施例中的檢測圖像中的目標(biāo)的方法的流程圖。
具體實施方式
除非具體指出,否則圖式未必按比例繪制,且此類圖式本質(zhì)上僅為示例。
參考圖1,示出由多個圖像像素形成的圖像100。對于第i圖像像素,第i+1(x)和第i-1(x)是在x方向上的相鄰圖像像素,且第i+1(y)和第i-1(y)是在y方向上的相鄰圖像像素。每個圖像像素具有強(qiáng)度和梯度,其中第i圖像像素的梯度具有量值mgi和方向θi。第i圖像像素的梯度的方向θi通過下式表示:
θi=tan-1yi/xi(1)
其中xi=第i像素的水平梯度,且yi=第i像素的豎直梯度。
在一個示例中,第i像素的水平梯度具有量值和方向性“正”或“負(fù)”,且通過下式表示:
xi=i(xi-1)-i(xi+1)(2)
其中i(xi-1)=對應(yīng)的水平左像素,即,第i-1(x)像素的強(qiáng)度,且i(xi+1)=對應(yīng)的水平右像素,即,第i+1(x)像素的強(qiáng)度。
類似地,在此示例中,第i像素的豎直梯度具有量值和方向性“正”或“負(fù)”,且通過下式表示:
yi=i(yi-1)-i(yi+1)(3)
其中i(yi+1)=對應(yīng)的豎直上方像素,即,第i+1(y)像素的強(qiáng)度,且i(yi-1)=對應(yīng)的豎直下方像素,即,第i-1(y)像素的強(qiáng)度。
水平梯度的量值mgxi通過下式表示:
mgxi=abs(i(xi-1)-i(xi+1))(4)
豎直梯度的量值mgyi通過下式表示:
mgyi=abs(i(yi-1)-i(yi+1))(5)
第i像素的梯度的量值mgi通過下式表示:
替代性地,第i像素的梯度的量值mgi可通過下式表示:
mgi=mgxi+mgyi(7)
以上等式中提供的第i像素的梯度的計算不應(yīng)被認(rèn)為是限制性的,且其它數(shù)學(xué)等式也可用于計算梯度。在另一示例中,第i像素的水平梯度可使用第i像素與第i+1(x)像素或第i-1(x)像素之間的強(qiáng)度差來確定;且第i像素的豎直梯度可使用第i像素與第i+1(y)像素或第i-1(y)像素之間的強(qiáng)度差來確定。
圖2示出一個示例實施例中的用于圖像100中的目標(biāo)檢測的梯度直方圖(hog)區(qū)間200。hog區(qū)間200包括第一至第m區(qū)間,所述區(qū)間為區(qū)間0至區(qū)間m-1。出于目標(biāo)檢測的目的,圖像100的每個圖像像素基于對應(yīng)梯度的方向θ歸類在第一至第m區(qū)間中的一個中。在此示例中,m的值=6。然而,在另一示例情境中,m的值可不同,例如為8或10。
圖3a和圖3b分別示出在一個示例情境中的六個hog區(qū)間的第一集合300和八個hog區(qū)間的第二集合302。
在常規(guī)的實施方式中(即,不根據(jù)示例實施例),第一集合300和第二集合302的每個hog區(qū)間分配有在0°至180°內(nèi)的相同方向范圍。例如,當(dāng)m=6時,每個hog區(qū)間分配有30°,因此區(qū)間0從0°延伸到30°,區(qū)間1從30°延伸到60°等等。類似地,當(dāng)m=8時,每個hog區(qū)間分配有22.5°,因此區(qū)間0從0°延伸到22.5°,區(qū)間1從22.5°延伸到45°等等。圖像像素通過以下操作而分配有hog區(qū)間:比較對應(yīng)的豎直和水平梯度的比值與對應(yīng)的方向范圍的正切值。例如,當(dāng)m的值=6時,可比較圖像像素的豎直和水平梯度的比值(y/x)與tan0°和tan30°值,以檢查對應(yīng)的梯度是否在區(qū)間0中。類似地,可比較比值(y/x)與tan30°和tan60°值,以檢查對應(yīng)的梯度是否在區(qū)間1中等等。tan30°、tan60°、tan120°以及tan150°的值分別為
在示例實施例中(與常規(guī)的實施方式不同),第一集合300和第二集合302的hog區(qū)間分配有不相同的方向范圍以簡化圖像的圖像像素的hog區(qū)間的計算。在一個實施例中,第一集合300和第二集合302中的每個區(qū)間的最大和最小區(qū)間化(binning)角θmin和θmax以如此方式選定,所述方式為使得tanθmin和tanθmax中的每個為有理數(shù),且可在無除法或乘法運算的情況下計算。另外,移位運算、減法運算以及比較運算中的至少一個中的每個用于計算圖像像素的hog區(qū)間。對于hog區(qū)間的第一集合300,每個區(qū)間的最小區(qū)間化角和最大區(qū)間化角在下面表ⅰ中示出。
表ⅰ
對于hog區(qū)間的第二集合302,每個區(qū)間的最小區(qū)間化角和最大區(qū)間化角在下面表ⅱ中示出。
表ⅱ
圖4示出在一個實施例中的目標(biāo)檢測系統(tǒng)400的框圖。在一個示例情境中,目標(biāo)為道路上的行人,且目標(biāo)檢測系統(tǒng)400在車輛或任何其它移動平臺中用于輔助道路上的目標(biāo)檢測。目標(biāo)檢測系統(tǒng)400還可被稱為行人檢測系統(tǒng)400。目標(biāo)檢測系統(tǒng)400包括:存儲器402,其用于存儲指令;以及處理器404,其響應(yīng)于所存儲的指令來執(zhí)行圖像中的目標(biāo)檢測的步驟。處理器404包括特征平面計算模塊406、特征向量計算和局部分類模塊408以及最終分類模塊410。存儲器402可為任何易失性或非易失性存儲器,如隨機(jī)存取存儲器(ram)、只讀存儲器(rom)、靜態(tài)動態(tài)ram(sdram)、雙數(shù)據(jù)速率(ddr)ram以及ddrsdram。類似地,處理器404可包括多種已知裝置以促進(jìn)或?qū)崿F(xiàn)存儲在存儲器402上的軟件指令、協(xié)議或邏輯指令的運行或執(zhí)行。例如,處理器404可實施為一個或更多個集成電路裝置、中央處理單元(cpu)或微處理器。處理器404還可包括存儲器裝置(例如,處理器高速緩存)、計時裝置(例如,實時時鐘(rtc))和/或另外的電路或數(shù)據(jù)傳輸通道。處理器404的一個典型的示例包括嵌入式視覺引擎(eve)。因此,處理器404內(nèi)的模塊(例如模塊406、408以及410)可以單一實體或不同實體(如集成電路,具有或沒有軟件或固件)的形式實施。處理器404還可包括硬件系統(tǒng)或另外與硬件系統(tǒng)通信,所述硬件系統(tǒng)用于輔助對道路上的目標(biāo)的圖像和/或視頻的捕獲和/或后處理。圖像和/或視頻可通過圖像捕獲裝置(如處理器404可存取的相機(jī))來捕獲。
特征平面計算模塊406接收輸入圖像,如圖像100(圖1),并計算圖像100的每個圖像像素的“h”個特征平面。通常,h=m+4,其中m等于hog區(qū)間的總數(shù)目。在一個示例情境中,當(dāng)hog區(qū)間的數(shù)目等于6時,特征平面的數(shù)目h等于10。對于以下描述,除非另外指定,否則特征平面的數(shù)目“h”始終被認(rèn)為是十。
特征平面計算模塊406計算圖像100的每個圖像像素的十種類型的特征平面的特征集合fi。第i像素的特征集合fi通過下式表示:
fi={yi,ui,vi,mi,bi0,bi1,bi2,bi3,bi4,bi}(8)
其中:yi、ui、vi是表示第i像素的預(yù)定義配色方案的配色特征平面;mi是表示第i像素的梯度量值的量值特征平面;且bi0、bi1、bi2、bi3、bi4、bi5是分別表示第i像素在區(qū)間0、區(qū)間1、區(qū)間2、區(qū)間3、區(qū)間4以及區(qū)間5中的梯度量值的hog特征平面。在一個示例實施例中,第i像素在一個區(qū)間中具有非零梯度量值,且在其它五個區(qū)間中具有零梯度。
在一個示例實施例中,特征平面計算模塊406基于常規(guī)的技術(shù)來計算或以其他方式存取第i像素的yi、ui、vi、mi的值。特征平面計算模塊406基于第i像素的梯度的量值和方向來計算bi0、bi1、bi2、bi3、bi4、bi5的值,所述梯度的量值和方向繼而基于對應(yīng)的水平和豎直梯度xi和yi來估計。
特征平面計算模塊406參考在下面的表ⅲ中指定的第一閾值和第二閾值以及比較條件來計算第i像素的梯度的hog區(qū)間,其中hog區(qū)間的數(shù)目等于6。
表ⅲ
特征平面計算模塊406參考在下面表ⅳ中指定的第一閾值和第二閾值以及比較條件來計算第i像素的梯度的hog區(qū)間,其中hog區(qū)間的數(shù)目等于8。
表ⅳ
當(dāng)?shù)趇像素的水平和豎直梯度xi和yi滿足對應(yīng)的比較條件時,將區(qū)間分配給第i像素?;诒恝:捅恝?,圖像像素的hog區(qū)間的計算主要包括移位和比較。這是有可能的,因為每個hog區(qū)間的θmin和θmax經(jīng)定義使得tanθmin和tanθmax中的每個為有理數(shù)。
在計算第i像素的梯度的hog區(qū)間之后,特征平面計算模塊406基于等式(6)來計算對應(yīng)梯度的量值。之后,特征平面計算模塊406將所述量值分配給對應(yīng)于計算出的hog區(qū)間的hog特征平面,并將零值分配給其余的hog特征平面。在一個示例情境中,當(dāng)特征平面計算模塊406計算第i個圖像像素在區(qū)間1中的梯度量值mi時,特征集合fi表示為:
fi={yi,ui,vi,mi,0,mi,0,0,0,0}
以類似方式,特征計算模塊406計算輸入圖像的每個圖像像素的特征集合,并將所述特征集合存儲在存儲器402中。在常規(guī)的情境中(不根據(jù)示例實施例),當(dāng)特征集合的數(shù)目等于圖像像素的數(shù)目時,特征平面計算的最耗時部分為計算梯度的方向θ以用于確定對應(yīng)的hog區(qū)間。相反,在示例實施例中,特征計算模塊406繞開方向θ的計算,并基于圖像像素的水平和豎直梯度之間的數(shù)學(xué)關(guān)系來確定圖像像素的hog區(qū)間。這引起特征平面計算的約30%至45%的性能改進(jìn)。
特征平面計算模塊406進(jìn)一步定義圖像100中的多個單元。單元是圖像100的具有大小為(cx,cy)的單元,其中cx是單元寬度,cy是單元高度,且(cx*cy)是所述單元中的像素的總數(shù)目。圖像100中的每個單元在水平和豎直方向上的起始位置分別為預(yù)定義水平和豎直步長大小的整數(shù)倍。輸入圖像內(nèi)的單元進(jìn)一步參考圖5a和圖5b以及圖6a、圖6b和圖6c示出。
圖5a和圖5b示出在一個示例實施例中的大小為(64,128)的圖像500,包括大小為(6,6)的第一、第二以及第三單元502、504、506。僅示出幾個單元502、504、506以便于描述一些示例實施例。在整個圖像500中定義單元。第一單元502在x方向和y方向兩者上從第0像素延伸到第六像素。第二單元504在x方向上從第四像素延伸到第十像素,且在y方向上從第0像素延伸到第六像素。第三單元506在x方向上從第0像素延伸到第六像素,且在y方向上從第四像素延伸到第十像素。
在一個實施例中,圖像500中的每個單元在x和y方向上的起始位置分別為預(yù)定義水平和豎直步長大小的倍數(shù)。例如,當(dāng)水平和豎直步長大小各自為4個像素時,則不論單元大小如何,單元的起始位置為在x和y方向上的0、4、8、12...個像素處。在一個示例情境中,第一單元502和第二單元504沿著x方向的起始位置分別為第0像素和第4像素。另外,第一單元502和第三單元506沿著y方向的起始位置分別為第0像素和第4像素。當(dāng)水平和豎直單元大小與對應(yīng)的步長大小不同時,相鄰單元的一些圖像像素彼此重疊。
特征平面計算模塊406(圖4)針對輸入圖像500的每個單元計算每種類型的特征平面的特征平面總和。單元的特征平面總和通過對所述單元的圖像像素的相似類型的那些特征求和來計算。在一個示例情境中,大小為(6*6)的第一單元502的(類型y特征平面的)特征平面總和c1(y)通過對第一單元502的所有36個像素的y特征平面求和來計算,且通過下式表示:
大小為(6*6)的第一單元502的(類型u平面的)特征平面總和c1(u)通過對第一單元502的所有36個像素的u特征平面求和來計算,且通過下式表示:
因此,特征平面計算模塊406針對圖像500的第i單元計算對應(yīng)于十個特征平面的十個特征平面總和。第i單元的特征平面總和的集合si通過下式表示:
si={ci(y),ci(u),ci(v),ci(m),ci(b0),ci(b1),ci(b2),ci(b3),ci(b4),ci(b5)}......(11)其中:ci(y)、ci(u)以及ci(v)是第i單元的y、u以及v特征平面總和;c1(m)是第i單元的m特征平面總和;且ci(b0)、ci(b1)、ci(b2)、ci(b3)、ci(b4)以及ci(b5)是第i單元的hog特征平面總和。
圖6a和6b示出大小為(如64或128)的圖像600,包括第一至第九單元602至618,其中單元602至618中的每個的大小為4*4(例如,16個像素)。例如,單元602在x方向和y方向兩者上從第0像素延伸到第四像素;單元604在x方向上從第四像素延伸到第八像素,并在y方向上從第0像素延伸到第四像素;單元606在x方向上從第八像素延伸到第十二像素,并在y方向上從第0像素延伸到第四像素,等等。
特征平面計算模塊406(圖4)針對輸入圖像600的每個單元計算每個類型的特征平面總和。在一個示例情境中,大小為(4*4)的第一單元602的(類型v平面的)特征平面總和c2(v)通過對第一單元602的所有16個像素的v特征平面求和來計算,且通過下式表示:
大小為(4*4)的單元602的(類型m特征平面的)特征平面總和c2(m)通過對第一單元604的所有16個像素的m特征平面求和來計算,且通過下式表示:
類似于等式(11)和(12),特征平面計算模塊406針對圖像600的每個單元計算對應(yīng)于十個特征平面的十個特征平面總和。
圖6c示出表示大小為(8*8)的單元620和單元622的大小為(64,128)的圖像600。在一個實施例中,大小為(8*8)的單元620通過合并如參考圖6a和6b所描述的大小為(4*4)的單元602、604、608以及610來形成。在一個示例中,特征平面計算模塊406通過對單元602、604、608以及610的y特征平面總和求和,來計算大小為(8*8)的單元620的(類型y平面的)特征平面總和c3(y)。大小為(8*8)的單元620的(類型y平面的)特征平面總和c3(y)通過下式表示:
c3(y)=c11(y)+c21(y)+c41(y)+c51(y)(14)
其中:c11(y)=單元602的y特征平面總和;c21(y)=單元604的y特征平面總和;c41(y)=單元608的y特征平面總和;且c51(y)=單元610的y特征平面總和。
類似地,大小為(8*8)的單元622通過合并大小為(4*4)的單元608、610、614以及616來形成。在一個實施例中,特征平面計算模塊406通過對大小為(4*4)的單元608、610、614以及616的y特征平面總和求和,來計算大小為(8*8)的單元622的(類型y平面的)特征平面總和c4(y)。因此,特征平面計算模塊406在計算第十一單元622的y特征平面總和時再使用單元608和610的y特征平面總和。類似地,還計算其它平面(例如,u平面、v平面以及6個hog平面)的總和。
圖7示出用于輸入圖像704中的目標(biāo)檢測的檢測窗700和702的示例。輸入圖像704具有幀大小(fw,fh),其中fw是幀寬度,fh是幀高度,且fh*fw是輸入圖像704中的圖像像素的總數(shù)目。在一個實施例中,檢測窗700和702中的每個是輸入圖像704中的具有大小(swx,swy)的圖像部分,其中swx是窗寬度,swy是窗高度,且swx*swy是檢測窗(700、702)中的圖像像素的總數(shù)目。檢測窗(700、702)的步長大小被稱為sx*sy,其中sx是通過檢測窗(700、702)在沿著x方向的一次移動中遍歷的像素數(shù)目,且sy是通過檢測窗(700、702)在沿著y方向的一次移動中遍歷的像素數(shù)目。
模塊408(圖4)選擇第一檢測窗700,并選擇一種類型的特征平面以用于計算其中的第一局部特征向量。第一局部特征向量是對應(yīng)于第一檢測窗700的每個單元的選定類型的特征平面總和的集合。在一個示例中,當(dāng)模塊408選擇y特征平面時,第一局部特征向量是包括在第一檢測窗700內(nèi)定義的單元的y特征平面總和的集合。第一檢測窗700(包括第一到第n單元)的y特征平面的第一局部特征向量p11(y)通過下式表示:
p11(y)={c1(y),c2(y),c3(y)......cn(y)}(15)
其中:c1(y)=第一檢測窗700的第一單元的y特征平面總和;c2(y)=第一檢測窗700的第二單元的y特征平面總和;且cn(y)=第一檢測窗700的第n單元的y特征平面總和。
在一個示例情境中,當(dāng)?shù)谝粰z測窗700的大小為(64*128)且單元大小為(8*8)時,第一檢測窗中的單元的數(shù)目等于(64/8)*(128/8)=128。因此,局部特征向量中的元素的數(shù)目等于單元的總數(shù)目,即,128,且局部特征向量的數(shù)目等于10。另外,完整特征向量包括第一檢測窗700的每個單元的每個類型的特征平面總和。當(dāng)特征平面總和類型的數(shù)目為十時,完整特征向量包括128*10=1280個元素。
模塊408比較第一局部特征向量與目標(biāo)的對應(yīng)局部分類器,以檢測目標(biāo)的y數(shù)據(jù)在第一檢測窗700中的存在,并將比較的結(jié)果存儲在存儲器402中,而非存儲第一局部特征向量。模塊408隨后選擇下一類型的特征平面,例如u特征平面,以用于計算第一檢測窗700的第二局部特征向量。之后,所述模塊比較第二局部特征向量與目標(biāo)的對應(yīng)局部分類器,以檢測在第一檢測窗700中是否檢測到目標(biāo)的u數(shù)據(jù),并將比較的結(jié)果存儲在存儲器402中。在一個示例情境中,局部目標(biāo)分類器是adaboost分類器。
類似地,模塊408以迭代方式執(zhí)行以下步驟:計算下一特征平面的局部特征向量,并與對應(yīng)局部分類器進(jìn)行比較以將比較的結(jié)果存儲在存儲器402中。因此,模塊408迭代地計算十個局部特征向量,并執(zhí)行與對應(yīng)的局部目標(biāo)分類器的十次比較以將十個比較結(jié)果存儲在存儲器402中。
模塊408僅將比較結(jié)果存儲在存儲器402中,而非存儲第一檢測窗700的單元的特征平面總和,因此大大節(jié)約存儲器帶寬(如雙數(shù)據(jù)速率(ddr)存儲器帶寬)。模塊408繞過對第一檢測窗700的完整特征向量的計算(需要一起計算1280個元素),且一次僅計算一個局部特征向量(需要一起計算128個元素),因此大大節(jié)約ddr帶寬。
最終分類模塊410核對通過模塊408產(chǎn)生的比較結(jié)果,并因此最終判定目標(biāo)是否存在于第一檢測窗700中。在一個實施例中,模塊408基于與對應(yīng)的局部目標(biāo)分類器之間的比較來計算對應(yīng)于每個局部特征向量的得分,且因此產(chǎn)生對應(yīng)于每個特征平面類型的總共十個局部得分。最終分類模塊410將十個局部得分相加以產(chǎn)生最終得分,以用于指示目標(biāo)是否存在于第一檢測窗700中。
之后,模塊408選擇第二檢測窗702(圖7),并計算對應(yīng)的局部特征向量和局部得分。最終分類模塊410隨后核對局部得分以檢測目標(biāo)在第二檢測窗702中的存在。模塊408計算局部得分,且最終分類模塊410以順序方式核對圖像704的其余檢測窗中的每個的局部得分,由此檢測對應(yīng)的目標(biāo)在圖像704中的存在。在一些示例實施例中,還可在單一周期中計算全部1280個元素,且之后可將這些元素與分類器比較以檢測目標(biāo)在檢測窗(圖像部分)中的存在。
圖8是在一個實施例中的檢測圖像中的目標(biāo)的方法的流程圖。在某些實施例中,方法800的操作通過處理器執(zhí)行,如通過處理器400(圖4)執(zhí)行。
在框802處,所述方法包括針對圖像(輸入圖像)的每個圖像像素計算一種或更多種類型的一個或更多個特征平面,所述圖像如示例圖像100(圖1)。在至少一個示例中,針對每個圖像像素計算十種類型的特征平面,其中十種類型的特征平面包括y、u、v特征平面、m特征平面以及六個hog特征平面。圖像像素的六個hog特征平面基于圖像像素的水平和豎直梯度來計算。
在框804處,所述方法包括在圖像100中定義多個單元,其中每個單元包括第一至第n數(shù)目的像素。圖像100中的每個單元在水平和豎直方向上的起始位置分別為預(yù)定義水平和豎直步長大小的整數(shù)倍。例如,當(dāng)水平和豎直步長大小各自為4個像素時,則不論單元大小如何,單元的起始位置在x和y方向上的0、4、8、12...個像素處。
在框806處,所述方法包括針對單元中的每個計算一種或更多種類型的一個或更多個特征平面總和。單元的一種類型的特征平面總和通過對所述單元的第一至第n數(shù)目像素的對應(yīng)的特征平面求和來計算。在一個示例情境中,大小為(6*6)的單元(如第一單元502(圖5))的(類型y特征平面的)特征平面總和c1(y)通過對第一單元502的全部36個像素的y特征平面求和來計算。
在框808處,所述方法包括確定圖像704(圖7)的圖像部分(如第一檢測窗700)的特征向量。所述圖像部分的特征向量包括在圖像部分中定義的單元的特征平面總和的集合。在一個實施例中,特征向量是局部特征向量,所述局部特征向量包括針對在圖像部分中定義的單元的僅一種類型的特征平面總和的集合。
在框810處,所述方法包括比較特征向量與對應(yīng)的目標(biāo)分類器以檢測對應(yīng)的目標(biāo)在圖像的所述圖像部分中的存在。在一個實施例中,特征向量是局部特征向量且與對應(yīng)的局部目標(biāo)分類器進(jìn)行比較,以檢測對應(yīng)的目標(biāo)在圖像部分中的存在。在各種圖像部分中(例如在參考圖7描述的各種檢測窗中)檢測目標(biāo)的存在以確定目標(biāo)在整個圖像中的存在。
在局部特征向量的實一個施例中,針對每種類型的特征平面迭代地確定局部特征向量,且將每種類型的局部特征向量與對應(yīng)的每種類型的局部分類器進(jìn)行比較。另外,將每種類型的比較的結(jié)果存儲在存儲器中。并且,核對對應(yīng)于每種類型的特征平面的一個或更多個比較結(jié)果,并基于經(jīng)核對的結(jié)果檢測目標(biāo)在圖像中的存在。
示例實施例中的一個或更多個的優(yōu)點包括檢測輸入圖像中的目標(biāo)。在各種實施例的目標(biāo)檢測系統(tǒng)中,圖像像素梯度的hog區(qū)間基于圖像像素的水平梯度和豎直梯度之間的數(shù)學(xué)關(guān)系來確定,而不必計算梯度的方向,由此引起特征平面計算的約30%至45%的性能改進(jìn)。另外,局部特征向量計算而非完整特征向量計算大大節(jié)約約95%的存儲器帶寬。目標(biāo)檢測系統(tǒng)的計算復(fù)雜性和占用面積比常規(guī)設(shè)計的計算復(fù)雜性和占用面積要小得多。另外,目標(biāo)檢測系統(tǒng)可適合于任何單元大小、檢測窗大小、步長大小、特征平面的數(shù)目、特征向量的數(shù)目以及分類器的類型。
貫穿此說明書提及特征、優(yōu)點或類似的語言并不意味著所有特征和優(yōu)點都應(yīng)在或在所有實施例中。因此,貫穿此說明書對特征和優(yōu)點的論述以及類似的措辭未必是指相同的實施例。
在權(quán)利要求書的范圍內(nèi),在所描述的實施例中修改是可能的,且其它實施例是可能的。例如,如上文所論述,各種實施例以不同次序的步驟和/或操作來實踐,和/或以不同配置的硬件元件來實踐。