一種基于圖形處理器的運(yùn)動(dòng)目標(biāo)檢測(cè)方法及裝置的制造方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明屬于圖像處理領(lǐng)域,尤其涉及一種基于圖形處理器的運(yùn)動(dòng)目標(biāo)檢測(cè)方法及
目.0
【背景技術(shù)】
[0002]相關(guān)的運(yùn)動(dòng)目標(biāo)檢測(cè)技術(shù)的研宄往往是基于CPU串行處理,CPU在同一時(shí)間點(diǎn)只能執(zhí)行一個(gè)指令,由于在檢測(cè)的過(guò)程中,會(huì)有大量的緩存數(shù)據(jù)產(chǎn)生并存儲(chǔ)于CPU中,并且CPU需要頻繁地將緩存數(shù)據(jù)發(fā)給執(zhí)行檢測(cè)的圖形處理器,從而降低了目標(biāo)檢測(cè)的速度,難以進(jìn)行快速、有效的運(yùn)動(dòng)目標(biāo)檢測(cè)。
【發(fā)明內(nèi)容】
[0003]本發(fā)明提供一種基于圖形處理器的運(yùn)動(dòng)目標(biāo)檢測(cè)方法及裝置,以解決上述問(wèn)題。
[0004]本發(fā)明提供一種基于圖形處理器的運(yùn)動(dòng)目標(biāo)檢測(cè)方法。上述方法包括以下步驟:針對(duì)當(dāng)前幀圖像中的任一目標(biāo)圖像塊,在所述當(dāng)前幀圖像的相鄰幀圖像中確定與所述任一目標(biāo)圖像塊對(duì)應(yīng)的多個(gè)搜索圖像塊;將各目標(biāo)圖像塊及其對(duì)應(yīng)的多個(gè)搜索圖像塊保存至所述圖形處理器中;所述圖形處理器為每個(gè)目標(biāo)圖像塊分配一個(gè)線(xiàn)程塊,其中,所述線(xiàn)程塊包含多個(gè)線(xiàn)程,所述多個(gè)線(xiàn)程與所述多個(gè)搜索圖像塊一一對(duì)應(yīng);所述線(xiàn)程塊中的任一線(xiàn)程用于計(jì)算所述目標(biāo)圖像塊與任一搜索圖像塊之間的絕對(duì)差值和,多個(gè)線(xiàn)程并行計(jì)算;根據(jù)多個(gè)線(xiàn)程塊的計(jì)算結(jié)果檢測(cè)出運(yùn)動(dòng)目標(biāo)。
[0005]本發(fā)明還提供一種基于圖形處理器的運(yùn)動(dòng)目標(biāo)檢測(cè)裝置,上述裝置包括:包括圖形處理器,其中所述圖形處理器包括搜索圖像塊確定單元、存儲(chǔ)單元、線(xiàn)程分配單元和檢測(cè)單元,所述搜索圖像塊確定單元用于針對(duì)當(dāng)前幀圖像中的任一目標(biāo)圖像塊,在所述當(dāng)前幀圖像的相鄰幀圖像中確定與所述任一目標(biāo)圖像塊對(duì)應(yīng)的多個(gè)搜索圖像塊;所述存儲(chǔ)單元用于保存各目標(biāo)圖像塊及其對(duì)應(yīng)的多個(gè)搜索圖像塊;所述線(xiàn)程分配單元用于為每個(gè)目標(biāo)圖像塊分配一個(gè)線(xiàn)程塊,其中,所述線(xiàn)程塊包含多個(gè)線(xiàn)程,所述多個(gè)線(xiàn)程與所述多個(gè)搜索圖像塊一一對(duì)應(yīng),所述線(xiàn)程塊中的任一線(xiàn)程用于計(jì)算所述目標(biāo)圖像塊與任一搜索圖像塊之間的絕對(duì)差值和,多個(gè)線(xiàn)程并行計(jì)算;所述檢測(cè)單元用于根據(jù)多個(gè)線(xiàn)程塊的計(jì)算結(jié)果檢測(cè)出運(yùn)動(dòng)目標(biāo)。
[0006]相比較于相關(guān)的基于CPU的運(yùn)動(dòng)目標(biāo)檢測(cè)方案,本發(fā)明提供的基于圖形處理器的運(yùn)動(dòng)檢測(cè)方法及裝置利用圖形處理器的多個(gè)線(xiàn)程,并設(shè)置了線(xiàn)程分配規(guī)則,同時(shí)進(jìn)行絕對(duì)差值和計(jì)算,大大提高了計(jì)算速度,增強(qiáng)了運(yùn)動(dòng)目標(biāo)檢測(cè)的實(shí)時(shí)性。
【附圖說(shuō)明】
[0007]此處所說(shuō)明的附圖用來(lái)提供對(duì)本發(fā)明的進(jìn)一步理解,構(gòu)成本申請(qǐng)的一部分,本發(fā)明的示意性實(shí)施例及其說(shuō)明用于解釋本發(fā)明,并不構(gòu)成對(duì)本發(fā)明的不當(dāng)限定。在附圖中:
[0008]圖1所示為根據(jù)本發(fā)明的較佳實(shí)施例提供的基于圖形處理器的運(yùn)動(dòng)目標(biāo)檢測(cè)方法的流程圖;
[0009]圖2A所示為根據(jù)本發(fā)明的較佳實(shí)施例提供的圖像塊搜索示意圖;
[0010]圖2B所示為根據(jù)本發(fā)明的較佳實(shí)施例提供的線(xiàn)程分配示意圖;
[0011]圖3所示為根據(jù)本發(fā)明的較佳實(shí)施例提供的基于圖形處理器的運(yùn)動(dòng)目標(biāo)檢測(cè)裝置的框圖。
【具體實(shí)施方式】
[0012]下文中將參考附圖并結(jié)合實(shí)施例來(lái)詳細(xì)說(shuō)明本發(fā)明。需要說(shuō)明的是,在不沖突的情況下,本申請(qǐng)中的實(shí)施例及實(shí)施例中的特征可以相互組合。
[0013]圖1所示為根據(jù)本發(fā)明的較佳實(shí)施例提供的基于圖形處理器的運(yùn)動(dòng)目標(biāo)檢測(cè)方法的流程圖。
[0014]如圖1所示,根據(jù)本發(fā)明的實(shí)施例的基于圖形處理器的運(yùn)動(dòng)目標(biāo)檢測(cè)方法包括以下步驟:
[0015]步驟102,針對(duì)當(dāng)前幀圖像中的任一目標(biāo)圖像塊,在當(dāng)前幀圖像的相鄰幀圖像中確定與任一目標(biāo)圖像塊對(duì)應(yīng)的多個(gè)搜索圖像塊。
[0016]步驟104,將各目標(biāo)圖像塊及其對(duì)應(yīng)的多個(gè)搜索圖像塊保存至圖形處理器中。
[0017]步驟106,圖形處理器為每個(gè)目標(biāo)圖像塊分配一個(gè)線(xiàn)程塊,其中,線(xiàn)程塊包含多個(gè)線(xiàn)程,多個(gè)線(xiàn)程與多個(gè)搜索圖像塊一一對(duì)應(yīng),線(xiàn)程塊中的任一線(xiàn)程用于計(jì)算目標(biāo)圖像塊與任一搜索圖像塊之間的絕對(duì)差值和,多個(gè)線(xiàn)程并行計(jì)算。
[0018]步驟108,根據(jù)多個(gè)線(xiàn)程塊的計(jì)算結(jié)果檢測(cè)出運(yùn)動(dòng)目標(biāo)。
[0019]在上述步驟106中,對(duì)于每個(gè)線(xiàn)程塊,同步線(xiàn)程塊中各線(xiàn)程的計(jì)算結(jié)果;
[0020]從各線(xiàn)程的計(jì)算結(jié)果中比較出最小的絕對(duì)差值和,所述最小的絕對(duì)差值和對(duì)應(yīng)的搜索圖像塊是檢測(cè)出的與所述目標(biāo)圖像塊最匹配的搜索圖像塊;計(jì)算多個(gè)最匹配的搜索圖像塊與相應(yīng)的目標(biāo)圖像塊之間的運(yùn)動(dòng)矢量,以確定所述運(yùn)動(dòng)目標(biāo)。
[0021]在上述步驟106中,采用所述線(xiàn)程塊中的多個(gè)線(xiàn)程用于比較出所述最小的絕對(duì)差值和。
[0022]在進(jìn)行運(yùn)動(dòng)目標(biāo)檢測(cè)之前,根據(jù)所述目標(biāo)圖像塊的數(shù)目來(lái)確定所述線(xiàn)程塊的數(shù)目,根據(jù)與目標(biāo)圖像塊對(duì)應(yīng)的搜索圖像塊的數(shù)目來(lái)確定每個(gè)線(xiàn)程塊包含的線(xiàn)程數(shù)目。
[0023]下面結(jié)合圖2進(jìn)一步說(shuō)明根據(jù)本發(fā)明的技術(shù)方案,在說(shuō)明本發(fā)明的基于圖形處理器的運(yùn)動(dòng)目標(biāo)檢測(cè)方法之前,首先解釋一下本實(shí)施例采用的運(yùn)動(dòng)目標(biāo)檢測(cè)原理:
[0024]跟蹤運(yùn)動(dòng)目標(biāo)首先需要確定運(yùn)動(dòng)目標(biāo),然后確定運(yùn)動(dòng)目標(biāo)的運(yùn)動(dòng)矢量,從而發(fā)現(xiàn)運(yùn)動(dòng)目標(biāo)的運(yùn)動(dòng)軌跡。如圖2A所示,在當(dāng)前幀圖像中確定目標(biāo)圖像塊,可以對(duì)當(dāng)前幀圖像進(jìn)行劃分,例如劃分成4X4的圖像塊,每一圖像塊即目標(biāo)圖像塊。對(duì)于當(dāng)前幀圖像中的一個(gè)目標(biāo)圖像塊,在當(dāng)前幀圖像的前一幀圖像中確定與該目標(biāo)圖像塊對(duì)應(yīng)的多個(gè)搜索圖像塊,該多個(gè)搜索圖像塊是以在前一幀圖像中的與該目標(biāo)圖像塊相同的位置為中心的預(yù)定范圍內(nèi)確定的。將該多個(gè)搜索圖像塊與目標(biāo)圖像塊進(jìn)行比較,找出最匹配的一個(gè)搜索圖像塊,即找出絕對(duì)差值和最小的搜索圖像塊,絕對(duì)差值和(SAD)按照以下公式計(jì)算:
[0025]SAD= Σ Σ abs (src_blockl-search_block)。
[0026]以此類(lèi)推,找出與各目標(biāo)圖像塊最匹配的搜索圖像塊。最后,判斷最匹配的搜索圖像塊與相應(yīng)的目標(biāo)圖像塊之間是否具有運(yùn)動(dòng)矢量,如果具有運(yùn)動(dòng)矢量,則檢測(cè)出運(yùn)動(dòng)目標(biāo),否則是背景圖像。
[0027]以上簡(jiǎn)述了運(yùn)動(dòng)目標(biāo)檢測(cè)原理,為了提高運(yùn)動(dòng)目標(biāo)檢測(cè)速度,在本實(shí)施例中提供了一個(gè)基于圖形處理器的運(yùn)動(dòng)目標(biāo)檢測(cè)計(jì)算方法。將各目標(biāo)圖像塊及其對(duì)應(yīng)的多個(gè)搜索圖像塊保存至GPU的共享內(nèi)存中。如圖2B所示,圖形處理器為每個(gè)目標(biāo)圖像塊分配一個(gè)線(xiàn)程塊,其中,線(xiàn)程塊包含多個(gè)線(xiàn)程,多個(gè)線(xiàn)程與多個(gè)搜索圖像塊一一對(duì)應(yīng),線(xiàn)程塊中的任一線(xiàn)程用于計(jì)算目標(biāo)圖像塊與任一搜索圖像塊之間的絕對(duì)差值和,多個(gè)線(xiàn)程并行計(jì)算。
[0028]假設(shè)當(dāng)前幀圖像經(jīng)過(guò)劃分之后,得到2個(gè)目標(biāo)圖像塊,則確定需要的線(xiàn)程塊是2個(gè),每一個(gè)線(xiàn)程塊對(duì)應(yīng)一個(gè)目標(biāo)圖像塊。假設(shè)每個(gè)目標(biāo)圖像塊對(duì)應(yīng)的搜索圖像塊的數(shù)目是6個(gè),則每個(gè)線(xiàn)程塊包含