欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

基于CUDA的監(jiān)控視頻前景提取加速方法與流程

文檔序號:12826144閱讀:335來源:國知局
基于CUDA的監(jiān)控視頻前景提取加速方法與流程

本發(fā)明涉及視頻處理及并行計算技術領域,尤其涉及一種基于cuda的監(jiān)控視頻前景提取加速方法。



背景技術:

在視頻監(jiān)控被廣泛應用的情況下,基于視頻的運動目標檢測和跟蹤的應用越來越廣泛,也顯得越來越重要,并朝著網(wǎng)絡化、高清化和智能化方向發(fā)展,這對監(jiān)控系統(tǒng)的實時性和可靠性提出了更高的要求。為了提高系統(tǒng)的實時性,可以從降低圖像的量化位數(shù)、選擇效率更高的圖像處理算法和選擇處理能力更強的硬件等方面入手。然而降低像素的位數(shù)會丟失許多信息,也會降低圖像質量,而圖像算法的計算效率和準確性往往難以兼顧,尤其是在應用場景比較復雜時,因此選擇處理能力更強的硬件往往成了現(xiàn)實的選擇。目前,pc機中的顯卡一般都帶有gpu(graphicsprocessingunit,圖形處理器),相對于cpu來說,gpu具有更強的計算能力。

2007年,nvidia公司發(fā)布的cuda(computeunifieddevicearchitecture,統(tǒng)一計算設備架構)并行計算架構能夠有效利用gpu強大的處理能力進行圖形渲染以外的通用計算,引發(fā)了產業(yè)界和學術界的巨大反響。與傳統(tǒng)的gpu通用計算相比,cuda編程更簡單,能夠更加方便地利用gpu的硬件資源并提供更強大的功能?,F(xiàn)在,cuda技術己在天體物理學、石油勘探、模式識別、生物工程等諸多領域獲得廣泛應用。隨著gpu通用計算地快速發(fā)展,計算正在由僅使用cpu計算向cpu+gpu的協(xié)同計算方向發(fā)展。

在此背景下,需要在已有的前景提取算法基礎上,如何通過將gpu的高性能計算能力和cpu的分支運算能力相結合,實現(xiàn)高效處理視頻前景提取成為了亟待解決的問題。



技術實現(xiàn)要素:

為了解決現(xiàn)有技術中的上述問題,即為了解決如何通過將gpu的高性能計算能力和cpu的分支運算能力相結合,實現(xiàn)高效處理視頻前景提取的問題,本發(fā)明提供了一種基于cuda的監(jiān)控視頻前景提取加速方法,應用于包含cpu和gpu的圖形處理裝置,包括:

gpu依據(jù)背景模型對視頻幀進行前景處理,得到前景信息;

cpu在獲取gpu中輸出的某一個視頻幀的前景信息后,根據(jù)該視頻幀的前景信息對背景模型進行修正,并將修正后的背景模型用于gpu對下一視頻幀的前景處理。

優(yōu)選地,gpu采用三個可并行進行數(shù)據(jù)處理的cuda流進行前景處理,對于第n個處理周期,處理方法包括:

第一cuda流從cpu接收第n個視頻幀數(shù)據(jù);

第二cuda流對第n-1個視頻幀數(shù)據(jù)依據(jù)背景模型,通過設定的前景信息計算方法進行前景處理;

第三cuda流將第n-2個視頻幀數(shù)據(jù)的前景信息發(fā)送至cpu。

優(yōu)選地,在對三個cuda流初始化的同時,在主機內存中為連續(xù)3幀分配在cuda流中使用的頁鎖定內存、為連續(xù)3幀分配傳回數(shù)據(jù)的頁鎖定內存,在gpu的全局內存中為連續(xù)3幀分配存儲空間和與視頻幀相同大小的布爾值空間。

優(yōu)選地,cpu和gpu之間采用異步方式進行數(shù)據(jù)傳輸。

優(yōu)選地,所述的前景處理包括視頻幀預處理、前景概率計算和隨機數(shù)生成。

優(yōu)選地,所述前景概率,其計算方法::

其中,μ表示在對預設背景模型進行計算以后的均值系數(shù),pt為視頻幀預處理過程中當前視頻幀中像素點歸一化處理后的值,α為影響力參數(shù),σ為當前像素點的前景概率。

優(yōu)選地,基于底圖生成初始化的背景模型,其方法為:

采用沒有任何前景物體的視頻幀為底圖,對底圖進行n次拷貝得到初始化的背景模型;n為預設次數(shù)。

優(yōu)選地,在對三個cuda流初始化后,還包括線程塊的數(shù)量計算的步驟,計算的方法為:

其中,bx和by分別為x方向和y方向上的線程塊數(shù)量,tx和ty是每個線程塊中線程的數(shù)量,w和h是視頻幀的橫向和縱向的像素個數(shù)。

優(yōu)選地,所述tx和tt為預設值,所述tx與ty之積為32的倍數(shù)。

優(yōu)選地,所述對背景模型進行修正,其方法為:

依據(jù)所獲取gpu中輸出的某一個視頻幀的前景信息中的布爾值,確定為真的布爾值對應的隨機數(shù),并進一步對背景模型進行修正。

與現(xiàn)有技術相比,本發(fā)明至少具有以下優(yōu)點:

通過本發(fā)明中基于cuda的監(jiān)控視頻前景提取加速方法的設計,實現(xiàn)了將gpu的高性能計算能力和cpu的分支運算能力相結合,達到了對視頻前景的高效提取處理。

附圖說明

圖1是本發(fā)明所提供的基于cuda的監(jiān)控視頻前景提取加速方法的結構示意圖;

圖2是本發(fā)明所提供的cpu、gpu和cuda流間數(shù)據(jù)傳輸?shù)姆止f(xié)作并行處理示意圖;

圖3是本發(fā)明所提供的基于cuda的監(jiān)控視頻前景提取加速方法的步驟流程示意圖。

具體實施方式

下面參照附圖來描述本發(fā)明的優(yōu)選實施方式。本領域技術人員應當理解的是,這些實施方式僅僅用于解釋本發(fā)明的技術原理,并非旨在限制本發(fā)明的保護范圍。

本發(fā)明中,根據(jù)cuda的特性對算法進行拆分,將算法分為適合于gpu的處理部分和適合于cpu的處理部分,并利用頁鎖定內存和異步傳輸將cpu端內存和設備端內存之間數(shù)據(jù)傳輸時間隱藏,從而大幅加速視頻前景提取的計算速度,進而滿足視頻處理的要求。

本發(fā)明主要利用cuda對視頻前景提取進行了并行化加速,同時根據(jù)cpu和gpu各自的特點對算法進行拆分和優(yōu)化,最高加速比能達到15倍以上。

為了實現(xiàn)本發(fā)明的目的,結合圖1~2,本發(fā)明提供了一種基于cuda的監(jiān)控視頻前景提取加速方法,應用于包含cpu和gpu的圖形處理裝置,包括:

gpu依據(jù)背景模型對視頻幀進行前景處理,得到前景信息;

cpu在獲取gpu中輸出的某一個視頻幀的前景信息后,根據(jù)該視頻幀的前景信息對背景模型進行修正,并將修正后的背景模型用于gpu中下一視頻幀的前景處理。

gpu采用三個可并行進行數(shù)據(jù)處理的cuda流進行前景處理,對于第n個處理周期,處理方法包括:

第一cuda流從cpu接收第n個視頻幀數(shù)據(jù);

第二cuda流對第n-1個視頻幀數(shù)據(jù)依據(jù)背景模型,通過設定的前景信息計算方法進行前景處理;

第三cuda流將第n-2個視頻幀數(shù)據(jù)的前景信息發(fā)送至cpu。

本發(fā)明中,cpu和gpu之間采用異步方式進行數(shù)據(jù)傳輸。

下面通過實施例的詳細步驟對本發(fā)明視頻幀的處理流程進行進一步細化說明,如圖3所示,包括:

步驟301,用底圖生成初始化的背景模型。

本實施例采用統(tǒng)一內存(unifiedmemory),將背景模型存儲在統(tǒng)一內存中。由于背景模型在cpu和gpu端同時需要,而且背景模型的修改量比較小,可以交給cuda的驅動在合適的時候自動完成傳遞,所以可以將背景模型儲存在一個統(tǒng)一內存中。

底圖是視頻幀中無前景物體的特殊幀,本實施例中首選選定作為底圖的為沒有任何前景物體的視頻幀,對底圖進行n次拷貝得到初始化的背景模型。n的取值與視頻幀率有關,在本實施案例中n的取值為20。

步驟302,cuda流及存儲空間初始化。

初始化三個cuda流,在主機內存中為連續(xù)3幀分配在cuda流中使用的頁鎖定內存、為連續(xù)3幀分配傳回數(shù)據(jù)的頁鎖定內存,在gpu的全局內存(globalmemory)中為連續(xù)3幀分配存儲空間和與視頻幀相同大小的布爾值空間。

由于視頻幀的像素值只有一次存取過程,這個數(shù)據(jù)存儲在全局內存中即可。3個流所執(zhí)行的計算依次為向gpu拷貝數(shù)據(jù)、執(zhí)行gpu計算、將數(shù)據(jù)拷貝回主機,并且3個流同時啟動。其中,gpu運算過程為公式計算等,盡量避免了if語句和修改模型等分支較多的語句,這些步驟將通過步驟306由cpu執(zhí)行。

步驟303,cuda流中線程塊的計算。

設定每個線程塊(block)中的線程數(shù),并計算所需的線程塊數(shù)量。線程塊的數(shù)量和視頻幀的分辨率有關,計算方法如公式(1)所示:

其中,bx和by分別為x方向和y方向上的線程塊數(shù)量,tx和ty是每個線程塊中線程的數(shù)量,w和h是視頻幀的橫向和縱向的像素個數(shù)。

利用公式(1)計算得到的線程塊個數(shù)與每個線程塊包含的線程的數(shù)量,包括x方向上的和y方向上的個數(shù),均可以保證大于或者等于圖像的像素數(shù)量,既不會出現(xiàn)線程分配的冗余又不會出現(xiàn)線程數(shù)不足的錯誤。其中tx和ty是預先定義好的,保證tx×ty是32的倍數(shù)即可。

在本實施例中,tx和ty均取16。

步驟304,對頁鎖定內存以異步方式復制到設備中的視頻數(shù)據(jù),啟動核函數(shù)對視頻幀進行前景處理。

上文已經對三個cuda流的功能設置,以及所處理的視頻幀的序號規(guī)則進行了說明,此處不再對各cuda流中所對應的視頻幀進行進一步描述,僅僅為了說明第二cuda流中的視頻幀前景處理方法。

本實施中,前景處理包括視頻幀預處理、前景概率計算和隨機數(shù)生成。

在核函數(shù)的計算過程中,采取每個線程對1個像素進行處理的策略,由于各個像素之間計算相對獨立,線程之間不需要進行交互。在預處理過程中,對視頻幀的每一個像素進行歸一化處理。

前景概率利用公式(2)進行計算:

其中,μ表示在對預設背景模型進行計算以后的均值系數(shù),pt為視頻幀預處理過程中當前視頻幀中像素點歸一化處理后的值,α為影響力參數(shù),σ為當前像素點的前景概率。

對背景中的n個底圖進行計算,可以得到n個μ值,將各個μ值帶入σ的計算公式,可以得到最終結果σ,這個數(shù)值代表此像素點是前景點的概率的大小,數(shù)值越大,代表這個點是前景點的概率越大。之后,使用閾值ε對這個點進行分割,如果σ>ε代表這個點是前景點,反之是背景點。將得到的結果布爾值儲存在預先申請好的內存中。

在隨機數(shù)生成的階段,利用cuda的隨機數(shù)生成子生成隨機數(shù)。在本實施例中,隨機數(shù)取值為1到20的整數(shù),這個隨機數(shù)代表了背景模型的具體位置。

在本實施例中,閾值ε取值0.85。

步驟305,將計算得到的布爾值空間和隨機數(shù)以異步的方式傳回頁鎖定內存中。

步驟306,對背景模型進行修正。

依據(jù)所獲取gpu中輸出的某一個視頻幀的前景信息中的布爾值,如果布爾值為真,則獲取已經生成的隨機數(shù)?;诓紶栔悼臻g和隨機數(shù)對背景模型進行修正。

cpu在獲取gpu中輸出的某一個視頻幀的前景信息后,根據(jù)該視頻幀的前景信息對背景模型進行修正,并將修正后的背景模型用于gpu中下一視頻幀的前景處理。

上述對背景模型的修改方式為本領域中較常見的算法,為本領域公知常識,此處不再贅述。

由于對背景模型進行修正不符合gpu中全局內存的結合訪問模型,訪問所需的周期較長,所以比較適合于在cpu中進行修改,再由統(tǒng)一內存進行傳輸。

上述步驟描述僅為了說明視頻幀數(shù)據(jù)處理的流程,并未對三個cuda流的并行處理機制進行詳細展開,具體可以結合圖1、圖2來看,在一個處理周期內,假設該處理周期為n,則三個cuda流同時啟動,并分別執(zhí)行:第一cuda流從cpu接收第n個視頻幀數(shù)據(jù);第二cuda流對第n-1個視頻幀數(shù)據(jù)依據(jù)背景模型,通過設定的前景信息計算方法進行前景處理;第三cuda流將第n-2個視頻幀數(shù)據(jù)的前景信息發(fā)送至cpu。從而通過對視頻幀處理流程拆解、并行的方式,實現(xiàn)處理周期的縮短。

在第二cuda流進行前景處理過程中,在前景概率計算前,cpu已完成第三cuda流輸出數(shù)據(jù)的接收、和依據(jù)第n-2個視頻幀數(shù)據(jù)的前景信息對背景模型的修正,該修正后的模型可以用于第二cuda流中對第n-1個視頻幀數(shù)據(jù)的處理。

本實施例中,涉及到cpu、gpu和cuda流間的數(shù)據(jù)傳輸,三者之間的分工與時間的關系如圖2所示,在同一個處理周期內需并行完成后一視頻幀的輸入、當前視頻幀的處理、以及前一視頻幀處理數(shù)據(jù)的輸出和處理;其中前一視頻幀處理數(shù)據(jù)的輸出和處理為順次執(zhí)行的兩個步驟:前一視頻幀處理數(shù)據(jù)的輸出、依據(jù)前一視頻幀數(shù)據(jù)的前景信息對背景模型的修正。

本發(fā)明采用的基于cuda的監(jiān)控視頻前景提取加速方法具有如下優(yōu)點:

1.利用cuda計算模型的優(yōu)勢,將每個像素點的計算分配給gpu中的虛擬線程,所有線程同時執(zhí)行,大幅提高了算法的執(zhí)行速度,而且保證提取效果不會受到影響;

2.根據(jù)cpu和gpu各自的計算特點,對計算任務進行了分工,將密集計算的工作交給gpu進行處理,模型修改等分支和訪存較多工作交給cpu進行處理;

3.利用cuda的流處理特性,采用3個流的設計,在計算的同時進行數(shù)據(jù)的傳輸,將數(shù)據(jù)傳輸需要的時間進行了隱藏。

本領域技術人員應該能夠意識到,結合本文中所公開的實施例描述的各示例的方法步驟,能夠以電子硬件、計算機軟件或者二者的結合來實現(xiàn),為了清楚地說明電子硬件和軟件的可互換性,在上述說明中已經按照功能一般性地描述了各示例的組成及步驟。這些功能究竟以電子硬件還是軟件方式來執(zhí)行,取決于技術方案的特定應用和設計約束條件。本領域技術人員可以對每個特定的應用來使用不同方法來實現(xiàn)所描述的功能,但是這種實現(xiàn)不應認為超出本發(fā)明的范圍。

術語“包括”或者任何其它類似用語旨在涵蓋非排他性的包含,從而使得包括一系列要素的過程、方法、物品或者設備/裝置不僅包括那些要素,而且還包括沒有明確列出的其它要素,或者還包括這些過程、方法、物品或者設備/裝置所固有的要素。

至此,已經結合附圖所示的優(yōu)選實施方式描述了本發(fā)明的技術方案,但是,本領域技術人員容易理解的是,本發(fā)明的保護范圍顯然不局限于這些具體實施方式。在不偏離本發(fā)明的原理的前提下,本領域技術人員可以對相關技術特征作出等同的更改或替換,這些更改或替換之后的技術方案都將落入本發(fā)明的保護范圍之內。

當前第1頁1 2 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
琼中| 吉首市| 雷山县| 定襄县| 南康市| 龙泉市| 房山区| 灌阳县| 若羌县| 东阿县| 双鸭山市| 开远市| 南投县| 苏尼特右旗| 庆城县| 民丰县| 城步| 海口市| 泰宁县| 台中县| 永安市| 安庆市| 洪江市| 聂荣县| 肥乡县| 扎鲁特旗| 香河县| 鹤岗市| 介休市| 昌黎县| 青海省| 波密县| 九寨沟县| 昭平县| 缙云县| 凤冈县| 大理市| 玉龙| 陕西省| 屏东县| 石景山区|