本申請涉及圖像處理技術領域,尤其涉及一種基于可形變部件模型算法的目標檢測硬件結構。
背景技術:
圖像處理是最近非常熱門的一個領域,涉及軍事,工業(yè)以及生活的方方面面。而目標檢測作為圖像處理領域中的子領域,在行人檢測和自動駕駛、安保安防等領域具有廣泛的應用??尚巫儾考P?dpm,deformablepartmodels)是近年來最為流行的圖像中物體檢測模型,由于其能準確地檢測出目標而受到歡迎,是公認的較好的目標檢測算法。dpm算法是由pedrof.felzenszwalb等人提出,該算法在視覺對象的分類識別和檢測的一個基準測試pascalvoc挑戰(zhàn)賽中連續(xù)三年獲得檢測冠軍。
dpm算法采用廣泛用于目標檢測的方向梯度直方圖(hog,histogramoforientedgradient)特征,hog特征是圖片的一種統(tǒng)計梯度直方圖,這種特征對光照不敏感,能夠很好地描繪圖片中目標的輪廓信息。dpm算法采用一種多層次建模的方法,對目標的整體形象建立一個主模型,對由目標整體細分的多個組成部分建立若干次模型,并且對主模型和次模型的位置關系進行建模。這種建模方法使得dpm算法在檢測柔性目標或者具有多種動作特征的目標方面顯著優(yōu)于其他算法。dpm算法同時引入多組件的概念,一個組件可代表目標的一種可視化形態(tài),每個組件包括一個主模型和若干個次模型,多組件方法也提高了目標檢測的準確率。
然而,在目標檢測的硬件實現(xiàn)中,關注的是在滿足準確率和召回率要求的情況下達到一定的檢測速度?,F(xiàn)有dpm目標檢測算法采用軟件編程方式實現(xiàn),其流程主要為先將待檢測的圖片按照一定的縮小比例進行不斷地縮小,形成一個圖片的金字塔;對圖片金子塔中的每一張圖片提取hog特征,得到相應的圖片特征圖金子塔;利用訓練得到的主模型和次模型的參數(shù)矩陣分別與圖片特征金子塔中的對應特征圖進行卷積得到相應響應矩陣;次模型參數(shù)矩陣與特征圖的卷積響應矩陣再進行一次距離變換操作得到變換矩陣;最后將主模型響應矩陣和所有變換矩陣對應位置相減,如果某個位置的值大于閾值則可判斷目標存在于該點。現(xiàn)有軟件實現(xiàn)存在以下缺點:保存所有的圖片金子塔和特征金字塔浪費了大量的內(nèi)存資源,而且必須在保存完所有圖片金子塔和特征金字塔計算完成后才開始進行后續(xù)的檢測操作,不利于流水的實現(xiàn)。另外,目標檢測算法在實際應用中為了達到更好的效果,往往同時處理多個組件的模型,更加減慢了其檢測速度。
技術實現(xiàn)要素:
本申請實施例旨在提供一種基于可形變部件模型算法的目標檢測硬件結構,用以解決現(xiàn)有技術采用軟件編程存在的浪費大量的內(nèi)存資源、檢測速度慢的問題。
本申請的一個方面提供了一種基于可形變部件模型算法的目標檢測硬件結構,包括:
圖片解碼模塊,用于依次接收外部輸入的編碼圖片數(shù)據(jù),將接收到的數(shù)據(jù)解碼成紅綠藍rgb格式數(shù)據(jù)輸出;
雙線性插值模塊,與所述圖片解碼模塊連接,用于接收所述圖片解碼模塊的rgb三通道數(shù)據(jù),并對其進行插值計算,輸出插值后的數(shù)據(jù);
外部緩存結構模塊,與所述雙線性插值模塊連接,用于將經(jīng)過雙線性插值模塊插值得到的圖片數(shù)據(jù)依次輪流存放在乒乓存儲區(qū)域;
圖片調(diào)度控制模塊,與所述外部緩存結構模塊連接,用于讀取外部緩存結構模塊中對應區(qū)域的圖片數(shù)據(jù),并將其傳遞給后續(xù)模塊使用;
hog特征提取模塊,與所述外部緩存結構模塊連接,用于從所述外部緩存結構模塊中提取圖片數(shù)據(jù),并求出圖片數(shù)據(jù)的梯度信息和統(tǒng)計直方圖信息;
卷積模塊,包括主卷積模塊和次卷積模塊,與所述hog特征提取模塊連接,用于在所述hog特征提取模塊產(chǎn)生的hog特征圖上滑動,求得卷積值,輸出卷積響應;
距離變換模塊,與所述次卷積模塊連接,用于接收所述次卷積模塊輸出的卷積響應,并對其進行行與列方向的距離變換;
得分值計算模塊,與所述主卷積模塊和距離變換模塊連接,用于讀取經(jīng)過距離變換模塊的次卷積模塊的卷積響應,并與未經(jīng)過距離變換模塊的主卷積模塊的卷積響應相減,待所有次卷積模塊的卷積響應都讀取完畢,得分計算結束,若得分值大于閾值的位置,則該位置為目標出現(xiàn)的位置。
進一步的,還包括:
主模型乒乓緩存模塊,與所述主卷積模塊連接,用于存儲來自主卷積模塊輸出的卷積響應;
次模型乒乓緩存模塊,與所述次卷積模塊連接,用于存儲來自次卷積模塊輸出的卷積響應。
進一步的,所述外部緩存結構模塊,包括6個依次被標為a1、a2、b1、b2、c1、c2的乒乓存儲區(qū)域。
進一步的,所述雙線性插值模塊包括:
第一雙線性插值模塊,與所述圖片解碼模塊和外部緩存結構模塊連接,用于接收所述圖片解碼模塊的rgb三通道數(shù)據(jù),并對其進行插值計算,輸出插值后的數(shù)據(jù)存放在外部緩存結構模塊的a1、a2區(qū)域;
第二雙線性插值模塊,與所述外部緩存結構模塊連接,接收外部緩存結構模塊a1、a2區(qū)域的數(shù)據(jù),并對其進行插值計算,將插值后的圖片依次輪流存放在b1、b2區(qū)域;
第三雙線性插值模塊,與所述外部緩存結構模塊連接,接收外部緩存結構模塊a1、a2、b1、b2區(qū)域的數(shù)據(jù),并對其進行插值計算,將插值后的圖片依次輪流存放在c1、c2區(qū)域。
進一步的,所述雙線性插值模塊包括:
緩存單元,用于將行與列的插值參數(shù)預先存儲;
行插值單元,用于根據(jù)進入的圖片數(shù)據(jù)和存儲在存儲單元中的行參數(shù)信息進行線性插值并將數(shù)據(jù)傳送給列插值單元進行處理;
列插值單元,用于接收來自行插值的結果和存儲單元中的列參數(shù)信息進行列插值,輸出插值后的數(shù)據(jù)。
進一步的,所述第一雙線性插值模塊的插值系數(shù)為0.4。
進一步的,所述第二雙線性插值模塊的插值系數(shù)為0.933。
進一步的,所述第三雙線性插值模塊的插值系數(shù)為0.5。
進一步的,所述hog特征提取模塊,包括:
梯度計算單元,用于求出圖片中每個像素點的梯度幅度和方向;
統(tǒng)計直方圖單元,用于根據(jù)梯度方向統(tǒng)計每個區(qū)域塊的梯度直方圖信息。
進一步的,所述hog特征提取模塊的塊大小為4x4,每個塊提取的特征維度為31。
進一步的,所述卷積模塊,包括:
計算單元,用于在所述hog特征提取模塊產(chǎn)生的hog特征圖上滑動,求得卷積值;
分布式存儲單元,用于存儲hog特征提取模塊輸出的參數(shù)數(shù)據(jù)和特征圖的數(shù)據(jù)。
進一步的,所述計算單元,包括:
乘累加單元陣列,用于形成卷積窗口,在hog特征提取模塊輸出的特征圖中滑動,并同時讀取分布式存儲單元的參數(shù)數(shù)據(jù)和特征圖的數(shù)據(jù)進行乘累加運算。
進一步的,所述距離變換模塊,包括:
行距離變換單元,用于按行接收所述次卷積模塊的卷積響應,并對其進行行距離變換;待行距離變換完成后,將結果按列傳遞給列距離變換單元;
列距離變換單元,用于對行距離變換完成后,傳遞給的結果進行列距離變換。
進一步的,所述每一個行距離變換單元和列距離變換單元,包括:
級聯(lián)運算單元,用于從前一級原始數(shù)據(jù)緩存單元和中間數(shù)據(jù)緩存單元中讀取原始數(shù)據(jù)和中間數(shù)據(jù),并將兩者輸入級聯(lián)運算單元;
原始數(shù)據(jù)緩存單元,用于存儲原始數(shù)據(jù);
中間數(shù)據(jù)緩存單元,用于存儲中間數(shù)據(jù);
輸出控制單元,用于將通過級聯(lián)運算單元得到的輸出緩存至下一級的原始數(shù)據(jù)緩存單元和中間數(shù)據(jù)緩存單元中。
進一步的,所述得分值計算模塊,包括:
狀態(tài)機,用于控制讀寫次序;
得分緩存結構單元,用于存儲依次讀取的經(jīng)過距離變換模塊的次卷積模塊的卷積響應;
得分計算單元,用于將讀取的主卷積模塊的卷積響應和得分緩存結構單元中的次卷積模塊的卷積響應相減,若得分值大于閾值的位置,則該位置為目標出現(xiàn)的位置。
進一步的,基于可形變部件模型算法的目標檢測硬件結構采用現(xiàn)場可編程門陣列fpga芯片實現(xiàn)。
與現(xiàn)有技術相比,本申請實施例包括圖片解碼模塊,與所述圖片解碼模塊相連接的雙線性插值模塊,與所述雙線性插值模塊相連接的外部緩存結構模塊,與所述外部緩存結構模塊相連接的hog特征提取模塊,與所述hog特征提取模塊相連接的主卷積模塊和次卷積模塊,與所述次卷積模塊相連接的距離變換模塊,與所述主卷積模塊和所述距離變換模塊相連接的得分值計算模塊;還包括與主卷積模塊相連的主模型乒乓緩存模塊;與次卷積模塊相連的次模型乒乓緩存模塊,以及與外部緩存結構模塊相連接的控制整個計算流程的圖片調(diào)度控制模塊。本申請的硬件架構連續(xù)接收編碼后的圖片,并且對圖片進行特定尺度的縮放,同時對每次縮放的圖片求hog特征,將所求的hog特征矩陣與參數(shù)矩陣進行卷積操作,然后對次模型卷積結果矩陣進行距離變換,最后通過將主模型卷積結果矩陣與進行距離變換的次模型卷積結果矩陣對應相減得到得分矩陣,通過獲取得分矩陣大于閾值的點,得到目標所在的坐標,實現(xiàn)目標檢測的功能。
附圖說明
通過閱讀參照以下附圖所作的對非限制性實施例所作的詳細描述,本申請的其它特征、目的和優(yōu)點將會變得更明顯:
圖1示出根據(jù)本申請一個方面的一種基于可形變部件模型算法的目標檢測硬件結構示意圖。
附圖中相同或相似的附圖標記代表相同或相似的部件。
具體實施方式
為了使本申請的目的、技術方案和優(yōu)點更加清楚,下面將結合附圖對本申請作進一步地詳細描述,顯然,所描述的實施例僅僅是本申請一部分實施例,而不是全部的實施例?;诒旧暾堉械膶嵤├?,本領域普通技術人員在沒有做出創(chuàng)造性勞動前提下所獲得的所有其它實施例,都屬于本申請保護的范圍。
下面結合說明書附圖對本申請實施例作進一步詳細描述。
如圖1所示,根據(jù)本申請的一個方面提供了一種基于可形變部件模型算法的目標檢測硬件結構,該硬件結構可采用現(xiàn)場可編程門陣列fpga芯片實現(xiàn),具體包括:
圖片解碼模塊,用于依次接收外部輸入的編碼圖片數(shù)據(jù),將接收到的數(shù)據(jù)解碼成紅綠藍rgb格式數(shù)據(jù)輸出。本申請實施例圖片解碼模塊,其被配置為:依次接收外部輸入的經(jīng)過壓縮的圖片數(shù)據(jù),經(jīng)過解壓縮處理后輸出對應像素點的r,g,b三通道像素值。
雙線性插值模塊,與所述圖片解碼模塊連接,用于接收所述圖片解碼模塊的rgb三通道數(shù)據(jù),并對其進行插值計算,輸出插值后的數(shù)據(jù)。具體的,本申請實施例雙線性插值模塊不斷接受來自所述圖片解碼模塊的r,g,b三通道數(shù)據(jù),并對其進行行插值計算,行插值運算得到的結果傳遞給列插值模塊進行列插值,直到所有行列插值完畢。
進一步的,所述雙線性插值模塊包括:
緩存單元,用于將行與列的插值參數(shù)預先存儲;
行插值單元,用于根據(jù)進入的圖片數(shù)據(jù)和存儲在存儲單元中的行參數(shù)信息進行線性插值并將數(shù)據(jù)傳送給列插值單元進行處理;
列插值單元,用于接收來自行插值的結果和存儲單元中的列參數(shù)信息進行列插值,輸出插值后的數(shù)據(jù)。
本申請實施例雙線性插值模塊包括緩存單元,行插值單元和列插值單元。該雙線性插值模塊被配置為:將行與列的插值參數(shù)預先存儲在緩存單元中,行插值單元利用按行讀取的方式,每個周期從圖片解碼模塊解碼出來的數(shù)據(jù)中讀取一個rgb三通道像素數(shù)據(jù),同時從緩存單元中讀取插值參數(shù),然后根據(jù)讀取的像素數(shù)據(jù)和插值參數(shù)數(shù)據(jù)進行行插值,插值后的數(shù)據(jù)按照同樣的方式輸入到列插值模塊進行相應的列插值。列插值單元接受來自行插值的結果和緩存單元中的列參數(shù)進行列插值,最后該模塊輸出插值后的數(shù)據(jù)進入下一個模塊。
外部緩存結構模塊,與所述雙線性插值模塊連接,用于將經(jīng)過雙線性插值模塊插值得到的圖片數(shù)據(jù)依次輪流存放在乒乓存儲區(qū)。進一步的,本申請實施例外部緩存結構模塊,包括6個依次被標為a1、a2、b1、b2、c1、c2的乒乓存儲區(qū)域,經(jīng)過雙線性插值模塊插值得到的圖片依次輪流存放在上述區(qū)域中。本申請利用外部緩存結構模塊可以節(jié)省大量片上資源,并且也保持高性能。
進一步的,所述雙線性插值模塊包括:
第一雙線性插值模塊,與所述圖片解碼模塊和外部緩存結構模塊連接,其包括一個行插值單元,一個列插值單元以及預先存儲插值系數(shù)的緩存單元。進一步的,該第一雙線性插值模塊的插值系數(shù)被配置為0.4。實施中,第一雙線性插值模塊不斷接受來著所述圖片解碼模塊的r,g,b三通道數(shù)據(jù),并對其進行行插值計算,行插值運算得到的結果傳遞給列插值模塊進行列插值,直到所有行列插值完畢,最后輸出插值后的數(shù)據(jù)存放在外部緩存結構模塊的a1、a2區(qū)域。
第二雙線性插值模塊,與所述外部緩存結構模塊連接,其包括一個行插值單元,一個列插值單元以及預先存儲插值系數(shù)的緩存單元。進一步的,該第二雙線性插值模塊的插值系數(shù)被配置為0.933。實施中,第二雙線性插值模塊輪流接受來自外部緩存結構模塊a1,a2區(qū)域的數(shù)據(jù),并對其進行行插值計算,行插值運算得到的結果傳遞給列插值模塊進行列插值,并將插值后的圖片依次輪流存放在b1,b2區(qū)域。
第三雙線性插值模塊,與所述外部緩存結構模塊連接,其包括一個行插值單元,一個列插值單元以及預先存儲插值系數(shù)的緩存單元。進一步的,該第三雙線性插值模塊的插值系數(shù)被配置為0.5。實施中,第三雙線性插值模塊輪流接受來自外部緩存結構模塊a1,a2,b1,b2區(qū)域的數(shù)據(jù),并對其進行行插值計算,行插值運算得到的結果傳遞給列插值模塊進行列插值,并將插值后的圖片依次輪流存放在c1,c2區(qū)域。
本申請實施例,為了適應流水線的架構,第一雙線性插值模塊將插值后的圖片數(shù)據(jù)先存儲在a1區(qū)域,存完一張圖片后,后續(xù)模塊開始讀取a1區(qū)域數(shù)據(jù)并且同時第一雙線性插值模塊把插值的圖片存儲到a2區(qū)域,與外部緩存結構模塊相連的另外兩個第二雙線性插值模塊和第三雙線性插值模塊各自利用兵乓緩存的方式把插值之后的圖片數(shù)據(jù)存儲到b1,b2,c1,c2中。
圖片調(diào)度控制模塊,與所述外部緩存結構模塊連接,用于讀取外部緩存結構模塊中對應區(qū)域的圖片數(shù)據(jù),并將其傳遞給后續(xù)模塊使用。本申請實施例圖片調(diào)度控制模塊被配置為:按照一定的順序依次讀取外部緩存結構模塊中對應區(qū)域的圖片數(shù)據(jù),并將其傳遞給后續(xù)模塊使用。本申請實施例第一幅圖片存放在a1區(qū)域,當?shù)谝环鶊D片存儲完成后,同時可以開始存放第二幅圖片到a2區(qū)域,與此同時圖片調(diào)度控制模塊會讀取a1區(qū)域的圖片給hog特征提取模塊進行特征提取,同時圖片調(diào)度控制模塊讀取出來的圖片會經(jīng)過第二雙線性插值模塊和第三雙線性插值模塊進行插值,并且把圖片依次存放在b1,b2區(qū)域和c1,c2區(qū)域。
本申請實施例圖片調(diào)度控制模塊,其包括一個嵌套的狀態(tài)機,該圖片調(diào)度控制模塊被配置為:總共10輪的主狀態(tài),每個主狀態(tài)包含若干次狀態(tài),次狀態(tài)的數(shù)目由原始圖片大小決定。
實施中,在第一輪調(diào)度過程中,先從a1區(qū)域讀取圖片,并且把讀出的圖片分別進行兩次雙線性插值(由第二雙線性插值模塊和第三雙線性插值模塊執(zhí)行),分別存放在b1,c1區(qū)域,直到b1,c1區(qū)域圖片存儲完成,開始讀取c1區(qū)域的圖片并且對其進行雙線性插值,放入c2區(qū)域,輪流在c1區(qū)域和c2區(qū)域讀取圖片并進行雙線性插值直到第一輪結束。
實施中,第二輪調(diào)度先讀取b1區(qū)域圖片,并且把讀出的圖片分別進行兩次雙線性插值(由第二雙線性插值模塊和第三雙線性插值模塊執(zhí)行),分別存放在b2,c1區(qū)域,然后輪流從c1,c2區(qū)域讀取圖片并進行雙線性插值直到第二輪結束。
實施中,第三至第十輪調(diào)度過程中先按照乒乓的規(guī)則讀取b1、b2區(qū)域中一個圖片的數(shù)據(jù),并且把讀出的圖片分別進行兩次雙線性插值,分別存放b1、b2區(qū)域中另一個區(qū)域,然后輪流從c1,c2區(qū)域讀取圖片直到該輪結束;這樣就完成了整個十輪的檢測,每一輪包含若干次檢測。
hog特征提取模塊,與所述外部緩存結構模塊連接,用于從所述外部緩存結構模塊中提取圖片數(shù)據(jù),并求出圖片數(shù)據(jù)的梯度信息和統(tǒng)計直方圖信息。進一步的,本申請實施例hog特征提取模塊,包括:梯度計算單元和統(tǒng)計直方圖單元,該hog特征提取模塊被配置為:接受來自所述外部緩存結構模塊的圖片像素數(shù)據(jù),由梯度計算單元求出圖片中每個像素點的梯度幅度和方向,統(tǒng)計直方圖單元根據(jù)梯度方向統(tǒng)計每個區(qū)域塊的梯度直方圖信息,輸出的直方圖信息到后續(xù)模塊;
進一步的,本申請實施例hog特征提取模塊的塊大小為4x4,每個塊提取的特征維度為31。本申請實施例在所述圖片調(diào)度控制模塊給第二雙線性插值模塊和第三雙線性插值模塊調(diào)度圖片時,該數(shù)據(jù)同時會傳遞到hog特征提取模塊進行特征提取操作。hog特征提取模塊將提取圖片數(shù)據(jù)分成4x4的塊,每個塊提取的特征的維度為31,通過梯度計算單元求出圖片數(shù)據(jù)的梯度信息,利用滑動窗口在梯度信息矩陣中滑動求得每個塊的梯度統(tǒng)計直方圖信息,滑動的步長為4。
卷積模塊,包括主卷積模塊和次卷積模塊,與所述hog特征提取模塊連接,用于在所述hog特征提取模塊產(chǎn)生的hog特征圖上滑動,求得卷積值,輸出卷積響應。進一步的,本申請卷積模塊,包括:計算單元和分布式存儲單元。所述計算單元,由乘累加單元陣列構成。優(yōu)選的,本申請實施例卷積模塊包括14個并行計算單元,主卷積模塊包含2個計算單元,次卷積模塊包括12個計算單元,大量的乘累加單元組成一個計算單元,每個計算單元在所述hog特征提取模塊產(chǎn)生的hog特征圖上滑動,滑動的步長是1,通過滑動方法求得一個響應矩陣。
本申請實施例卷積模塊被配置為:與所述hog特征提取模塊相連接的主卷積模塊和次卷積模塊,其包括14個由大量的乘累加單元構成的計算單元和大量的分布式存儲單元。所述乘累加單元構成的陣列形成一個卷積窗口,這個窗口在hog特征提取模塊輸出的特征圖中滑動,與此同時按順序讀取分布式存儲單元的參數(shù)數(shù)據(jù)和特征圖的數(shù)據(jù)進行乘累加運算,每滑動一次求得一個卷積值,卷積模塊的輸出稱為卷積響應。
本申請實施例在卷積運算過程中,利用14個計算單元構成主模型和次模型卷積模塊,讓14個卷積模塊并行執(zhí)行,各個計算單元中乘累加運算陣列并行執(zhí)行,大大地提高了數(shù)據(jù)的吞吐率,提升了卷積的性能。
主模型乒乓緩存模塊,與所述主卷積模塊連接,用于存儲來自主卷積模塊輸出的卷積響應;
次模型乒乓緩存模塊,與所述次卷積模塊連接,用于存儲來自次卷積模塊輸出的卷積響應。
本申請實施例,與主卷積模塊和次卷積模塊連接的緩存單元,被配置為:主卷積模塊輸出的卷積響應輪流存放在主模型乒乓緩存模塊1a、1b,次卷積模塊輸出的卷積響應輪流存放在次模型乒乓緩存模塊2a、2b,等到該輪該次的卷積結束,開始從緩存模塊1a、1b、2a、2b中依次讀取14個模型卷積響應矩陣,達到并行存入,串行讀出。
距離變換模塊,與所述次卷積模塊連接,用于接收所述次卷積模塊輸出的卷積響應,并對其進行行與列方向的距離變換。具體實施中,本申請距離變換模塊與所述次模型乒乓緩存模塊2a、2b連接,其包括行距離變換單元和列距離變換單元。所述行距離變換單元按行依次接受所述次模型乒乓緩存模塊中存儲的次卷積模塊輸出的卷積響應,對其進行行距離變換,輸出結果緩存在乒乓存儲結構中,列距離變換模塊根據(jù)乒乓緩存結構中的數(shù)據(jù),進行列方向的距離變換。
進一步的,所述每一個行距離變換單元和列距離變換單元,包括:級聯(lián)運算單元,原始數(shù)據(jù)緩存單元、中間數(shù)據(jù)緩存單元以及輸出控制單元。本申請實施例行距離變換模塊和列距離變換模塊分別包括8個級聯(lián)的運算單元、14個乒乓原始數(shù)據(jù)緩存單元用來存儲原始數(shù)據(jù)、28個乒乓中間數(shù)據(jù)緩存單元用來存儲中間結果和輸入控制單元。所述級聯(lián)運算單元被進一步配置為:從前一級乒乓的原始數(shù)據(jù)緩存單元讀取原始數(shù)據(jù),以及從前一級的中間數(shù)據(jù)緩存單元讀取中間數(shù)據(jù),將這兩者輸入級聯(lián)運算單元,得到的輸出緩存到下一級的中間數(shù)據(jù)緩存單元,并且把原始數(shù)據(jù)也緩存到下一級原始數(shù)據(jù)緩存單元。本申請距離變換模塊采用多級緩存,8級運算單元級聯(lián)方法,能夠達到1.5個時鐘周期處理1個數(shù)據(jù),相對軟件編程方式實現(xiàn)了巨大的加速比。
得分值計算模塊,與所述主卷積模塊和距離變換模塊連接,用于讀取經(jīng)過距離變換模塊的次卷積模塊的卷積響應,并與未經(jīng)過距離變換模塊的主卷積模塊的卷積響應相減,待所有次卷積模塊的卷積響應都讀取完畢,得分計算結束,若得分值大于閾值的位置,則該位置為目標出現(xiàn)的位置。
進一步的,本申請實施例得分值計算模塊,包括:控制讀寫次序的狀態(tài)機、得分緩存結構單元和得分計算單元。所述得分緩存結構單元為乒乓緩存結構。所述得分計算單元被配置為:按照狀態(tài)機約定的順序依次從得分緩存結構單元中讀取經(jīng)過距離變換的次模型乒乓緩存模塊中存儲的次卷積模塊輸出的卷積響應,并與未經(jīng)過距離變換的主模型乒乓緩存模塊中存儲的主卷積模塊輸出的卷積響應對應相減,待所有經(jīng)過距離變換的次模型卷積響應都讀取完畢,得分計算結束,判斷得分值大于閾值的位置,該位置即為目標出現(xiàn)的地方。本申請在得分值計算模塊也采用乒乓緩存結構,讓計算能夠完成流水,實現(xiàn)較大的數(shù)據(jù)吞吐率。
具體實施中,如存在多個主模型乒乓緩存模塊的卷積響應和多個次模型乒乓緩存模塊的卷積響應,則首先依次讀取次模型1乒乓緩存模塊中卷積響應經(jīng)過距離變換的矩陣,并且將其存入得分緩存結構單元中,再讀取次模型2卷積經(jīng)過距離變換的矩陣,并且從得分緩存結構單元中讀取相應的值,兩者相加,再次存入得分緩存結構單元,然后依次讀取次模型3,4,5,6,…的卷積距離變換矩陣,按照如前所述操作,最終將n個次模型卷積變換相加完畢,并且存入到得分緩存結構單元中;其次分別讀取主模型乒乓緩存模塊中卷積模塊的值和得分緩存結構單元中的值,將兩者相減并且加上偏移值,判斷得分值如果大于閾值,將其對應的坐標信息和對應值輸出,即完成目標檢測。
本申請實施例包括圖片解碼模塊,與所述圖片解碼模塊相連接的雙線性插值模塊,與所述雙線性插值模塊相連接的外部緩存結構模塊,與所述外部緩存結構模塊相連接的hog特征提取模塊,與所述hog特征提取模塊相連接的主卷積模塊和次卷積模塊,與所述次卷積模塊相連接的距離變換模塊,與所述主卷積模塊和所述距離變換模塊相連接的得分值計算模塊;還包括與主卷積模塊相連的主模型乒乓緩存模塊;與次卷積模塊相連的次模型乒乓緩存模塊,以及與外部緩存結構模塊相連接的控制整個計算流程的圖片調(diào)度控制模塊。本申請通過采用圖片解碼模塊在不斷解碼圖片并存入外存,同時從外存中讀取圖片給hog特征提取模塊進行特征提取,然后將提取的特征輸出給卷積模塊進行卷積運算,并且對次模型的卷積結果進行一次距離變換操作,最后得分值計算模塊讀取主模型卷積結果和經(jīng)過變換的次模型卷積的結果進行得分計算,找出得分大于閾值點,判斷目標的具體位置。本申請充分利用了數(shù)據(jù)帶寬采用硬件流水線處理和并行計算處理,從而大大提高了數(shù)據(jù)處理的并行度,最終實現(xiàn)對輸入測試圖片的目標識別,有效提高了數(shù)據(jù)的吞吐率,使得目標檢測速度獲得了大幅度的提升。
本領域內(nèi)的技術人員應明白,本申請的實施例可提供為方法、或計算機程序產(chǎn)品。因此,本申請可采用完全硬件實施例、完全軟件實施例、或結合軟件和硬件方面的實施例的形式。而且,本申請可采用在一個或多個其中包含有計算機可用程序代碼的計算機可用存儲介質(zhì)(包括但不限于磁盤存儲器、cd-rom、光學存儲器等)上實施的計算機程序產(chǎn)品的形式。
本申請是參照根據(jù)本申請實施例的方法、設備(系統(tǒng))、和計算機程序產(chǎn)品的流程圖和/或方框圖來描述的。應理解可由計算機程序指令實現(xiàn)流程圖和/或方框圖中的每一流程和/或方框、以及流程圖和/或方框圖中的流程和/或方框的結合。可提供這些計算機程序指令到通用計算機、專用計算機、嵌入式處理機或其他可編程數(shù)據(jù)處理設備的處理器以產(chǎn)生一個機器,使得通過計算機或其他可編程數(shù)據(jù)處理設備的處理器執(zhí)行的指令產(chǎn)生用于實現(xiàn)在流程圖一個流程或多個流程和/或方框圖一個方框或多個方框中指定的功能的硬件結構。
這些計算機程序指令也可存儲在能引導計算機或其他可編程數(shù)據(jù)處理設備以特定方式工作的計算機可讀存儲器中,使得存儲在該計算機可讀存儲器中的指令產(chǎn)生包括指令硬件結構的制造品,該指令硬件結構實現(xiàn)在流程圖一個流程或多個流程和/或方框圖一個方框或多個方框中指定的功能。
這些計算機程序指令也可裝載到計算機或其他可編程數(shù)據(jù)處理設備上,使得在計算機或其他可編程設備上執(zhí)行一系列操作步驟以產(chǎn)生計算機實現(xiàn)的處理,從而在計算機或其他可編程設備上執(zhí)行的指令提供用于實現(xiàn)在流程圖一個流程或多個流程和/或方框圖一個方框或多個方框中指定的功能的步驟。
盡管已描述了本申請的優(yōu)選實施例,但本領域內(nèi)的技術人員一旦得知了基本創(chuàng)造性概念,則可對這些實施例作出另外的變更和修改。所以,所附權利要求意欲解釋為包括優(yōu)選實施例以及落入本申請范圍的所有變更和修改。
顯然,本領域的技術人員可以對本申請進行各種改動和變型而不脫離本申請的精神和范圍。這樣,倘若本申請的這些修改和變型屬于本申請權利要求及其等同技術的范圍之內(nèi),則本申請也意圖包含這些改動和變型在內(nèi)。