基于gpu的視頻采集與處理裝置及系統(tǒng)的制作方法
【專利摘要】本發(fā)明涉及一種基于GPU的視頻采集與處理裝置及系統(tǒng),該裝置包括:至少一個并行工作的視頻采集與處理單元,每個視頻采集與處理單元包括:視頻采集模塊,針對與所述視頻采集與處理單元相對應的視頻獲取部件所獲取的視頻流信息生成視頻幀;視頻處理模塊,與所述視頻采集模塊連接,對所生成的視頻幀進行至少一種處理并生成結(jié)果數(shù)據(jù),所述視頻處理模塊針對各處理分別調(diào)用基于圖形處理器GPU的處理接口以進行并行處理;以及數(shù)據(jù)發(fā)送模塊,與所述視頻處理模塊連接,將來自所述視頻處理模塊的結(jié)果數(shù)據(jù)發(fā)送到服務器。本發(fā)明實施例的裝置在提高了視頻分析處理實時性的同時,節(jié)省了用于遠程視頻數(shù)據(jù)傳輸?shù)膫鬏攷挕?br>【專利說明】
基于GPU的視頻采集與處理裝置及系統(tǒng)
技術領域
[0001 ] 本發(fā)明涉及視頻領域,尤其涉及一種基于GPU(Graphics Processing Unit,圖形處理器)的視頻采集與處理裝置及系統(tǒng)。
【背景技術】
[0002]近年來,隨著計算機和網(wǎng)絡技術的發(fā)展,遠程視頻采集與處理技術也得到了進步,視頻采集與處理系統(tǒng)已在交通、安防等領域取得了廣泛的應用。目前,現(xiàn)有的頻采集與處理系統(tǒng)是把前端的原始視頻通過網(wǎng)絡直接輸入到后端服務器,然后由后端服務器進行視頻分析,這種方式主要存在以下問題:一是需要從前端到后端傳輸大量原始視頻數(shù)據(jù),占用大量網(wǎng)絡帶寬;二是存在一定的視頻分析處理的延遲。
【發(fā)明內(nèi)容】
[0003]技術問題
[0004]有鑒于此,本發(fā)明要解決的技術問題是,視頻傳輸占用的傳輸帶寬過大和視頻分析處理的延遲過大。
[0005]解決方案
[0006]為了解決上述技術問題,提出一種基于GPU的視頻采集與處理裝置,包括至少一個并行工作的視頻采集與處理單元,每個視頻采集與處理單元包括:視頻采集模塊,針對與所述視頻采集與處理單元相對應的視頻獲取部件所獲取的視頻流信息生成視頻幀;視頻處理模塊,與所述視頻采集模塊連接,對所生成的視頻幀進行至少一種處理并生成結(jié)果數(shù)據(jù),所述視頻處理模塊針對各處理分別調(diào)用基于圖形處理器GPU的處理接口以進行并行處理;以及數(shù)據(jù)發(fā)送模塊,與所述視頻處理模塊連接,將來自所述視頻處理模塊的結(jié)果數(shù)據(jù)發(fā)送到服務器。
[0007]在一個示例中,所述視頻采集模塊針對所述相對應的視頻獲取部件建立獨立的視頻采集線程,以根據(jù)所述相對應的視頻獲取部件所獲取的視頻流信息生成視頻幀;所述視頻處理模塊針對所述相對應的視頻獲取部件建立獨立的視頻處理線程,以對所生成的視頻幀進行至少一種處理并生成結(jié)果數(shù)據(jù);所述數(shù)據(jù)發(fā)送模塊針對所述相對應的視頻獲取部件建立獨立的數(shù)據(jù)發(fā)送線程,以將來自所述視頻處理模塊的結(jié)果數(shù)據(jù)發(fā)送到服務器。
[0008]在一個示例中,所述視頻處理模塊,包括:判斷子模塊,用于判斷所述視頻采集模塊所生成的視頻幀是否需要進行預處理;預處理子模塊,用于在所述視頻采集模塊所生成的視頻幀需要進行預處理的情況下,對所述視頻幀先進行至少一種預處理;處理子模塊,用于對經(jīng)過預處理的視頻幀進行所述處理并生成結(jié)果數(shù)據(jù),其中,所述預處理子模塊對各預處理分別調(diào)用基于GPU的預處理接口以進行并行處理。
[0009]在一個示例中,所述基于GPU的處理接口包括:基于GPU的人臉識別處理接口、基于GHJ的車牌識別處理接口、和基于GPU的視頻摘要處理接口中的一個或多個。
[0010]在一個示例中,所述基于GPU的預處理接口包括:基于GPU的去噪預處理接口、基于GPU的銳化預處理接口、基于GPU的去霧預處理接口、和基于GPU的夜間增強預處理接口中的一個或多個。
[0011 ]在一個示例中,所述視頻處理模塊,還包括:并行處理子模塊,用于響應于對各基于GPU的預處理接口或處理接口的調(diào)用,對每個所述預處理或者所述處理進行基于GPU的并行化處理,所述并行處理子模塊包括:定位單元,用于定位所述預處理或者所述處理中耗時多的性能瓶頸部位;劃分單元,用于將所述性能瓶頸部位劃分成包含至少一層循環(huán)體的單獨模塊;復制單元,用于將內(nèi)存中所述循環(huán)體涉及的輸入、輸出數(shù)據(jù)復制到GHJ顯存;運算單元,用于編寫GPU設備核心函數(shù)替換所述的單獨模塊,利用所述GPU顯存中的輸入、輸出數(shù)據(jù)進行GPU運算,并將運算結(jié)果復制回所述內(nèi)存。
[0012]為了解決上述技術問題,提出一種基于GPU的視頻采集與處理系統(tǒng),包括:上述的基于GPU的視頻采集與處理裝置;至少一個視頻獲取部件,各視頻獲取部件與所述視頻采集與處理裝置中的相對應的視頻采集與處理單元的視頻采集模塊連接,用于為所述視頻采集模塊提供視頻流信息;以及服務器,分別與所述視頻采集與處理裝置中的各視頻采集與處理單元通信連接。
[0013]在一個示例中,所述服務器包括:數(shù)據(jù)接收模塊,分別與各視頻采集與處理單元的數(shù)據(jù)發(fā)送模塊連接,用于接收所述數(shù)據(jù)發(fā)送模塊發(fā)送的所述結(jié)果數(shù)據(jù);數(shù)據(jù)存儲模塊,與所述數(shù)據(jù)接收模塊連接,用于存儲所述的結(jié)果數(shù)據(jù)。
[0014]在一個示例中,所述服務器還包括:數(shù)據(jù)檢索模塊,與所述數(shù)據(jù)接收模塊和/或所述數(shù)據(jù)存儲模塊連接,用于針對所述數(shù)據(jù)接收模塊所接收的結(jié)果數(shù)據(jù)和/或所述數(shù)據(jù)存儲模塊所存儲的結(jié)果數(shù)據(jù)進行檢索,生成檢索信息。
[0015]在一個示例中,所述服務器還包括:數(shù)據(jù)顯示模塊,與所述數(shù)據(jù)接收模塊、所述數(shù)據(jù)存儲模塊和所述數(shù)據(jù)檢索模塊中的一個或多個連接,用于顯示所述數(shù)據(jù)接收模塊所接收的結(jié)果數(shù)據(jù)、所述數(shù)據(jù)存儲模塊所存儲的結(jié)果數(shù)據(jù)和所述檢索信息中的一個或多個。
[0016]有益效果
[0017]本發(fā)明實施例的基于GPU的視頻采集與處理裝置可應用于視頻采集前端,通過為各視頻獲取部件設立并行工作的視頻采集與處理單元,而且每個視頻采集與處理單元包括視頻采集模塊、視頻處理模塊和數(shù)據(jù)發(fā)送模塊,每個視頻處理模塊分別調(diào)用基于GHJ的處理接口對視頻幀進行并行處理,并且每個數(shù)據(jù)發(fā)送模塊可將分析處理后結(jié)果數(shù)據(jù)并行發(fā)送到服務器。通過上述并行處理的技術手段,相比于現(xiàn)有的視頻采集與處理系統(tǒng),本發(fā)明實施例在前端高效地完成了視頻采集和處理,并將處理后的結(jié)果數(shù)據(jù)而非采集的原始數(shù)據(jù)發(fā)送給服務器,由此提高了視頻分析處理實時性的同時,節(jié)省了用于遠程視頻數(shù)據(jù)傳輸?shù)膫鬏攷挕?br>[0018]根據(jù)下面參考附圖對示例性實施例的詳細說明,本發(fā)明的其它特征及方面將變得清楚。
【附圖說明】
[0019]包含在說明書中并且構(gòu)成說明書的一部分的附圖與說明書一起示出了本發(fā)明的示例性實施例、特征和方面,并且用于解釋本發(fā)明的原理。
[0020]圖1示出根據(jù)本發(fā)明一實施例的基于GPU的視頻采集與處理裝置的結(jié)構(gòu)圖;
[0021]圖2示出根據(jù)本發(fā)明一實施例的基于GPU的視頻采集與處理裝置的多線程工作的示意圖;
[0022]圖3示出根據(jù)本發(fā)明一實施例的基于GPU的視頻采集與處理裝置的視頻采集線程的處理流程圖;
[0023]圖4示出根據(jù)本發(fā)明一實施例的視頻采集與處理單元的結(jié)構(gòu)圖;
[0024]圖5示出根據(jù)本發(fā)明一實施例的視頻處理線程中的視頻處理流程圖;
[0025]圖6示出根據(jù)本發(fā)明一實施例的去噪預處理的流程圖;
[0026]圖7示出根據(jù)本發(fā)明一實施例的銳化預處理的流程圖;
[0027]圖8示出根據(jù)本發(fā)明一實施例的去霧預處理的流程圖;
[0028]圖9示出根據(jù)本發(fā)明一實施例的間增強預處理的流程圖;
[0029]圖10示出根據(jù)本發(fā)明一實施例的人臉檢測的流程圖;
[0030]圖11示出根據(jù)本發(fā)明一實施例的人臉識別的流程圖;
[0031]圖12示出根據(jù)本發(fā)明一實施例的人臉識別庫建立的流程圖;
[0032]圖13示出根據(jù)本發(fā)明一實施例的車牌識別處理的流程圖;
[0033]圖14示出根據(jù)本發(fā)明一實施例的基于GPU的并行化處理的流程圖;
[0034]圖15示出根據(jù)本發(fā)明另一實施例的基于GPU的視頻采集與處理系統(tǒng)的結(jié)構(gòu)圖;
[0035]圖16示出根據(jù)本發(fā)明另一實施例的基于GHJ的視頻采集與處理系統(tǒng)的另一結(jié)構(gòu)圖;
[0036]圖17示出根據(jù)本發(fā)明另一實施例的建立通信連接的流程圖;
[0037]圖18示出根據(jù)本發(fā)明另一實施例的發(fā)送結(jié)果數(shù)據(jù)到服務器的流程圖。
【具體實施方式】
[0038]以下將參考附圖詳細說明本發(fā)明的各種示例性實施例、特征和方面。附圖中相同的附圖標記表示功能相同或相似的元件。盡管在附圖中示出了實施例的各種方面,但是除非特別指出,不必按比例繪制附圖。
[0039]在這里專用的詞“示例性”意為“用作例子、實施例或說明性”。這里作為“示例性”所說明的任何實施例不必解釋為優(yōu)于或好于其它實施例。
[0040]另外,為了更好的說明本發(fā)明,在下文的【具體實施方式】中給出了眾多的具體細節(jié)。本領域技術人員應當理解,沒有某些具體細節(jié),本發(fā)明同樣可以實施。在一些實例中,對于本領域技術人員熟知的方法、手段、元件和電路未作詳細描述,以便于凸顯本發(fā)明的主旨。[0041 ] 實施例1
[0042]圖1示出根據(jù)本發(fā)明一實施例的基于GPU的視頻采集與處理裝置10的結(jié)構(gòu)圖。如圖1所示,該裝置10主要包括:至少一個并行工作的視頻采集與處理單元20,每個視頻采集與處理單元20包括:視頻采集模塊21,針對與所述視頻采集與處理單元相對應的視頻獲取部件所獲取的視頻流信息生成視頻幀;視頻處理模塊22,與視頻采集模塊21連接,對所生成的視頻幀進行至少一種處理并生成結(jié)果數(shù)據(jù),視頻處理模塊22針對各處理分別調(diào)用基于圖形處理器GPU的處理接口以進行并行處理;數(shù)據(jù)發(fā)送模塊23,與視頻處理模塊22連接,將來自視頻處理模塊22的結(jié)果數(shù)據(jù)發(fā)送到服務器。
[0043]本發(fā)明實施例的基于GPU的視頻采集與處理裝置可應用于視頻采集前端,通過為各視頻獲取部件設立并行工作的視頻采集與處理單元,而且每個視頻采集與處理單元包括視頻采集模塊、視頻處理模塊和數(shù)據(jù)發(fā)送模塊,每個視頻處理模塊分別調(diào)用基于GHJ的處理接口對視頻幀進行并行處理,并且每個數(shù)據(jù)發(fā)送模塊可將分析處理后結(jié)果數(shù)據(jù)并行發(fā)送到服務器。通過上述并行處理的技術手段,相比于現(xiàn)有的視頻采集與處理系統(tǒng),本發(fā)明實施例在前端高效地完成了視頻采集和處理,并將處理后的結(jié)果數(shù)據(jù)而非采集的原始數(shù)據(jù)發(fā)送給服務器,由此提高了視頻分析處理實時性的同時,節(jié)省了用于遠程視頻數(shù)據(jù)傳輸?shù)膫鬏攷挕?br>[0044]圖2示出根據(jù)本發(fā)明一實施例的基于GPU的視頻采集與處理裝置10的多線程工作的示意圖。
[0045]在一個示例中,如圖2所述,視頻采集模塊21可針對相對應的視頻獲取部件建立獨立的視頻采集線程,以根據(jù)該相對應的視頻獲取部件所獲取的視頻流信息生成視頻幀;視頻處理模塊22可針對相對應的視頻獲取部件建立獨立的視頻處理線程,以對所生成的視頻幀進行至少一種處理并生成結(jié)果數(shù)據(jù);數(shù)據(jù)發(fā)送模塊23可針對相對應的視頻獲取部件建立獨立的數(shù)據(jù)發(fā)送線程,以將來自視頻處理模塊的結(jié)果數(shù)據(jù)發(fā)送到服務器。
[0046]以通過Nvidia公司的基于GHJ的JESTON TKl型嵌入式計算機(以下簡稱TKl計算機)來實現(xiàn)基于GPU的視頻采集與處理裝置10為例,TKl計算機可包括多個并行工作的視頻采集與處理單元20,視頻獲取部件可以為攝像機,例如球型攝像機(以下簡稱球機)或者槍型攝像機(以下簡稱槍機)。通常,用于人臉識別的攝像機一般選擇球機,用于車牌識別的攝像機一般選擇槍機。一個TKl計算機可以連接多個攝像機,每個攝像機可進行視頻采集,為與每個攝像機連接的視頻采集與處理單元20中的視頻采集模塊21提供視頻流信息。每個視頻采集與處理單元20可包括三個模塊:視頻采集模塊21、視頻處理模塊22、數(shù)據(jù)發(fā)送模塊23。可通過視頻采集和視頻處理的分離,做到了視頻采集和視頻處理互不影響,為視頻處理分析的并行打下基礎。
[0047]視頻采集模塊21可為每個(或根據(jù)需要分組后的每組)連接到TKl計算機的攝像機建立一個獨立的視頻采集線程進行采集,如圖2所示,視頻采集線程可通過H.264協(xié)議同攝像機進行通信,可采用FFMPEG(Fast Forward MPEG)軟件接口,每個視頻采集線程可為其對應的視頻建立多個緩沖區(qū),持續(xù)不斷地采集視頻幀并把這些視頻幀放入緩沖區(qū)。圖3示出根據(jù)本發(fā)明一實施例的基于GHJ的視頻采集與處理裝置的視頻采集線程的處理流程圖。如圖3所示,視頻采集線程可采用FFMPEG庫進行視頻的采集。首先可進行FFMPEG解碼器的注冊以及FFMPEG注冊,然后可尋找FFMPEG H.264解碼器并打開FFMPEG H.264解碼器,然后可用FFMPEG打開攝像機并獲取視頻流信息,選取視頻流,把視頻流信息寫入FFMPEG解碼器上下文,根據(jù)FFMPEG解碼器上下文獲取視頻幀轉(zhuǎn)換信息,可分配視頻幀接收緩沖區(qū),然后可進行視頻采集循環(huán):讀取一原始幀到原始幀接收緩沖區(qū),然后解碼原始視頻幀,解碼后得到RGB24(Red Green Blue 24)格式視頻幀,可把RGB24格式視頻幀寫入與數(shù)據(jù)處理線程共享的緩沖區(qū),并可通知數(shù)據(jù)處理線程有新的視頻幀已經(jīng)采集到。
[0048]視頻處理模塊22可為每個(或根據(jù)需要分組后的每組)攝像機建立一個獨立的視頻處理線程,如圖2所示,此視頻處理線程總是拿到此攝像機對應的視頻采集線程采集的最新的視頻幀,并進行處理分析,處理過程中可調(diào)用基于GPU的處理接口,針對每種處理,系統(tǒng)都提供了基于GHJ的處理接口,通過針對各處理分別調(diào)用相應的處理接口,可并行執(zhí)行各處理。由于為每個攝像機分配一個視頻采集線程,一個視頻處理線程,大大提高了多路視頻處理的并行性和實時性,而且每個視頻處理線程所調(diào)用的基于GPU的處理接口實現(xiàn)了每次單元視頻幀處理的高并發(fā)和高吞吐量,相比于在CPU(Central Processing Unit,中央處理器)模式下極大地節(jié)省了處理時間,確保了在嵌入式計算機中進行視頻分析處理的實時性。
[0049]數(shù)據(jù)發(fā)送模塊23可為每個(或根據(jù)需要分組的每組)攝像機建立了一個數(shù)據(jù)發(fā)送線程,可把對應到此攝像機的視頻分析和處理線程中的結(jié)果數(shù)據(jù)發(fā)送到服務器,這種每個(或每組)攝像機一個單獨的數(shù)據(jù)發(fā)送線程也極大地增強了多路視頻的結(jié)果數(shù)據(jù)發(fā)送的并發(fā)和實時性。數(shù)據(jù)發(fā)送線程可采用套接字同服務器進行連接并發(fā)送結(jié)果數(shù)據(jù)。
[0050]圖4示出根據(jù)本發(fā)明一實施例的視頻采集與處理單元20的結(jié)構(gòu)圖。
[0051 ]在一個示例中,如圖4所示,視頻處理模塊22可包括:判斷子模塊221,可用于判斷所述視頻采集模塊21所生成的視頻幀是否需要進行預處理;預處理子模塊222,可用于在所述視頻采集模塊21所生成的視頻幀需要進行預處理的情況下,可對所述視頻幀先進行至少一種預處理,處理子模塊223,可用于對經(jīng)過預處理的視頻幀進行所述處理并生成結(jié)果數(shù)據(jù),其中,所述預處理子模塊222對各預處理可分別調(diào)用基于GPU的預處理接口以進行并行處理。通過在對視頻幀進行處理之前,根據(jù)需要進行適當?shù)念A處理,可以進一步提高處理質(zhì)量和效率。
[0052]在視頻處理模塊22針對相對應的視頻獲取部件建立獨立的視頻處理線程的情況下,可通過上述判斷子模塊221、預處理子模塊222、和處理子模塊223來實現(xiàn)視頻處理線程的處理過程。圖5示出根據(jù)本發(fā)明一實施例的視頻處理線程中的視頻處理流程圖。視頻處理線程可循環(huán)地執(zhí)行圖5所示的過程:根據(jù)最新幀所在的位置,讀取在與視頻采集線程共享的緩沖區(qū)中的最新視頻幀,然后依據(jù)視頻幀的情況(例如,視頻幀的圖像有噪點或曝光不足時)判斷是否需要某種或者幾種預處理(可由判斷子模塊221進行判斷),如果需要則可調(diào)用預處理接口進行預處理(可由預處理子模塊222進行預處理),預處理完畢后,進行處理(可由處理子模塊223進行處理),處理完畢后,可把需要發(fā)送給服務器端的結(jié)果數(shù)據(jù)存儲入與數(shù)據(jù)發(fā)送線程共享的緩沖區(qū),并可通知數(shù)據(jù)發(fā)送線程進行發(fā)送。
[0053]在一個示例中,所述基于GPU的預處理接口可包括:基于GPU的去噪預處理接口、基于GPU的銳化預處理接口、基于GPU的去霧預處理接口、和基于GPU的夜間增強預處理接口中的一個或多個。舉例而言,視頻幀的處理可經(jīng)過兩個階段:一是預處理階段,二是處理階段。預處理階段可包括去噪預處理,去霧預處理,銳化預處理,夜間增強預處理等。為了提高視頻處理的質(zhì)量,可先進行預處理。例如,當視頻幀的圖像中有噪點存在時,可先進行去噪預處理;當是有霧的天氣時,可先進行去霧預處理,在夜間時,可先進行夜間增強預處理,也可以針對某個視頻幀進行多種預處理,例如對某個視頻幀先進行夜間增強預處理,然后再進行去噪預處理。
[0054]舉例而言,調(diào)用基于GPU的去噪預處理接口可進行如圖6所示的去噪預處理,可首先獲取視頻幀的RGB圖像,將所述RGB圖像轉(zhuǎn)為灰度圖像;接著可判斷噪聲所在行列號;然后可對判定為噪聲的像元進行鄰域中值濾波;最后可獲取濾波后的RGB圖像。
[0055]調(diào)用基于GPU的銳化預處理接口可進行如圖7所示的銳化預處理,可首先獲取視頻幀的RGB圖像,接著可擴展所述RGB圖像;對所擴展的RGB圖像進行卷積;然后可采用線性二階微分Lap Iacian算子對所卷積的RGB圖像進彳丁銳化;最后可獲取銳化后的RGB圖像。
[0056]調(diào)用基于GPU的去霧預處理接口可進行如圖8所示的去霧預處理,可首先獲取視頻幀的RGB圖像,以暗原色先驗知識作為約束條件,從有霧的所述RGB圖像中恢復場景輻射、大氣光和透射率;接著可估算出成像時刻的霧濃度;然后可采用包濾波器減小或去除霧影響;獲取去霧處理后的RGB圖像。
[0057]調(diào)用基于GPU的夜間增強預處理接口可進行如圖9所示的夜間增強預處理,可首先獲取視頻幀的RGB圖像,擴展所述RGB圖像;接著可對所擴展的RGB圖像進行卷積及高斯濾波;對尚斯濾波后的RGB圖像進彳丁引導濾波;最后可獲取引導濾波后的RGB圖像。
[0058]在一個示例中,所述基于GPU的處理接口可包括:基于GPU的人臉識別處理接口、基于GPU的車牌識別處理接口、和基于GPU的視頻摘要處理接口中的一個或多個。調(diào)用上述接口,可進行人臉識別處理、車牌識別處理和摘要處理等。人臉識別處理可從視頻幀的圖像中找到并識別出人臉,并可獲得與人臉相對應的編號;車牌識別處理可識別出車牌號碼;摘要處理可從若干視頻幀中選取出摘要幀,這些處理都可生成最終的結(jié)果數(shù)據(jù)。
[0059]舉例而言,調(diào)用基于GPU的人臉識別處理接口進行人臉識別處理可先進行人臉檢測,然后再進行人臉識別。人臉檢測的一個示例性的處理過程如圖10所示,可首先獲取視頻幀的RGB圖像,將所述RGB圖像變?yōu)榛叶葓D像;接著可調(diào)整所述灰度圖像的大小;然后可利用級聯(lián)分類器方法獲取人臉所在的矩形;最后可獲取人臉圖像部分,生成待識別的頭片圖像。人臉識別的一個示例性的處理過程如圖11所示,可首先獲取待識別的頭片圖像;然后可將所述頭片圖像轉(zhuǎn)為灰度圖像;調(diào)整所述灰度圖像的大小;接著可采用特征臉算法進行識別;最后可得到人臉識別代碼。進行人臉識別處理依賴于已經(jīng)訓練好的人臉識別庫,人臉識別庫建立的流程如圖12所示,可首先獲取待訓練的頭片圖像;將所述頭片圖像轉(zhuǎn)為灰度圖像;然后可調(diào)整所述灰度圖像的大小;最后可采用特征臉算法進行訓練;如果還有人臉圖片需要訓練,可重復上述過程。在人臉識別庫建立完成后,便可以進行人臉識別。
[0060]調(diào)用基于GPU的車牌識別處理接口可進行如圖13所示的車牌識別處理,可首先獲取視頻幀的RGB圖像,對所述RGB圖像進行HSV濾波;接著可對濾波后的RGB圖像進行去噪;對去噪后的RGB圖像進行邊緣檢測;獲得車牌在RGB圖像中矩形位置;最后可利用OCR算法獲取車牌號碼。
[0061]本領域技術人員應理解,以上各種預處理、處理及其各自的示例性處理過程僅僅是出于舉例說明的目的,而非以任何形式限制本發(fā)明。
[0062]在一個示例中,如圖4所示,視頻處理模塊22還可包括:并行處理子模塊224,可用于響應于對各基于GPU的預處理接口或處理接口的調(diào)用,對每個所述預處理或者所述處理進行基于GPU的并行化處理。并行處理子模塊224可包括:定位單元2241,可用于定位所述預處理或者所述處理中耗時多的性能瓶頸部位;劃分單元2242,可用于將所述性能瓶頸部位劃分成包含至少一層循環(huán)體的單獨模塊;復制單元2243,可用于將內(nèi)存中所述循環(huán)體涉及的輸入、輸出數(shù)據(jù)復制到GPU顯存;運算單元2244,可用于編寫GPU設備核心函數(shù)替換所述的單獨模塊,利用所述GHJ顯存中的輸入、輸出數(shù)據(jù)進行GPU運算,并將運算結(jié)果復制回所述內(nèi)存。并行處理子模塊224可對每個預處理或者處理進行如圖14所示的基于GPU的并行化處理,可首先定位處理或者預處理中耗時最多的性能瓶頸部位(可由定位單元2241實現(xiàn));然后可將所述性能瓶頸部分獨立成包含至少一層(例如I至3層)循環(huán)體的單獨模塊(可由劃分單元2242實現(xiàn));接著可將內(nèi)存中所述循環(huán)體涉及的輸入、輸出內(nèi)存數(shù)據(jù)復制到GPU顯存(可由復制單元2243實現(xiàn));編寫GPU設備核心函數(shù)kernel替換所述單獨模塊,利用所述GPU顯存中的輸入、輸出數(shù)據(jù)進行GPU運算,最后可將GHJ運算結(jié)果復制回所述內(nèi)存(可由運算單元2244實現(xiàn)),其中,針對所述核心函數(shù)kerne I所涉及的輸入、輸出數(shù)據(jù)可進行對齊和合并訪問等性能優(yōu)化。對上述預處理和處理進行基于GPU的并行化處理后,預處理和處理的性能比未并行化處理前有大幅提升。例如,針對于1280*720格式標準的圖像,去噪預處理處理的時間可由52ms減少到8.7ms,銳化預處理的時間可由132ms減少到9.3ms,夜間增強預處理的時間可由1430ms減少到47ms,去霧預處理的時間可由2700ms減少到68ms,人臉識別處理的時間可由121ms減少到21ms,車牌識別處理的時間可由135ms減少到31ms。通過基于GPU的并行化處理后,視頻分析處理實時性獲得極大地提高。
[0063]實施例2
[0064]圖15示出根據(jù)本發(fā)明另一實施例的基于GPU的視頻采集與處理系統(tǒng)30的結(jié)構(gòu)圖。如圖15所示,基于GPU的視頻采集與處理系統(tǒng)30包括:實施例1中所述的基于GPU的視頻采集與處理裝置10,至少一個視頻獲取部件31,各視頻獲取部件31與所述視頻采集與處理裝置1中的相對應的視頻采集與處理單元20的視頻采集模塊21連接,用于為視頻采集模塊21提供視頻流信息,服務器32,分別與視頻采集與處理裝置10中的各視頻采集與處理單元20通信連接。
[0065]在一個示例中,視頻獲取部件31可以為攝像機,例如球機或者槍機。視頻采集與處理單元20可以通過TKl計算機實現(xiàn),TKl計算機可對多個攝像機采集的視頻流信息進行并行分析處理后,將結(jié)果數(shù)據(jù)并行發(fā)送給服務器。
[0066]圖16示出根據(jù)本發(fā)明另一實施例的基于GPU的視頻采集與處理系統(tǒng)30的另一結(jié)構(gòu)圖。
[0067]在一個示例中,服務器32可包括:數(shù)據(jù)接收模塊321,分別與各視頻采集與處理單元20的數(shù)據(jù)發(fā)送模塊23連接,可用于接收數(shù)據(jù)發(fā)送模塊23發(fā)送的結(jié)果數(shù)據(jù);數(shù)據(jù)存儲模塊322,與所述數(shù)據(jù)接收模塊321連接,可用于存儲結(jié)果數(shù)據(jù)。
[0068]舉例而言,數(shù)據(jù)發(fā)送模塊23與服務器32中的數(shù)據(jù)接收模塊321可建立通信連接。通信連接的流程如圖17所示,數(shù)據(jù)發(fā)送模塊23可首先在數(shù)據(jù)發(fā)送線程中生成套接字,并按照TKl計算機的IP和與數(shù)據(jù)發(fā)送線程對應的攝像機的端口號進行初始化,然后可監(jiān)聽來自后端的服務器的連接請求,如果有請求針對于該IP地址和端口號,則可建立連接。數(shù)據(jù)發(fā)送線程發(fā)送結(jié)果數(shù)據(jù)到服務器的流程如圖18所示,當數(shù)據(jù)發(fā)送線程收到前端的視頻處理線程的通知(即有新的結(jié)果數(shù)據(jù)需要發(fā)送給服務器)后,數(shù)據(jù)發(fā)送模塊23便利用與服務器32建立的套接字連接,把結(jié)果數(shù)據(jù)發(fā)送給服務器。
[0069]數(shù)據(jù)存儲模塊322可以為數(shù)據(jù)庫,例如MYSQL數(shù)據(jù)庫或者Oracle數(shù)據(jù)庫,用來存儲接收到的結(jié)果數(shù)據(jù)。
[0070]在一個示例中,服務器32還可包括:數(shù)據(jù)檢索模塊323,與數(shù)據(jù)接收模塊321和/或數(shù)據(jù)存儲模塊322連接,可用于針對數(shù)據(jù)接收模塊321所接收的結(jié)果數(shù)據(jù)和/或數(shù)據(jù)存儲模塊322所存儲的結(jié)果數(shù)據(jù)進行檢索,并可生成檢索信息。
[0071 ]在一個示例中,服務器32還可包括:數(shù)據(jù)顯示模塊324,與數(shù)據(jù)接收模塊321、數(shù)據(jù)存儲模塊322和數(shù)據(jù)檢索模塊323中的一個或多個連接,可用于顯示數(shù)據(jù)接收模塊321所接收的結(jié)果數(shù)據(jù)、數(shù)據(jù)存儲模塊322所存儲的結(jié)果數(shù)據(jù)和檢索信息中的一個或多個。
[0072]舉例而言,在重要的交通路口可部署幾部槍機作為視頻獲取部件31,可部署TKl計算機來實現(xiàn)基于GPU的視頻采集與處理裝置10,然后啟動本系統(tǒng),可在某綜合大樓里部署后端的服務器32。服務器可根據(jù)TKl計算機的IP地址和每臺槍機對應的端口號,與TKl計算機進行連接。TKl計算機可對每臺槍機開啟視頻采集線程進行視頻采集,同時開啟視頻處理線程。如果是大霧天氣,可對采集到視頻先進行去霧預處理,然后進行車牌識別處理,可把進入違規(guī)區(qū)域的車牌號分析出來,并可通過啟動的數(shù)據(jù)發(fā)送線程把違規(guī)的車牌號發(fā)送到后端的服務器,后端的服務器的數(shù)據(jù)接收線程可接收到違規(guī)的車牌號,把違規(guī)的車牌號違規(guī)記錄存儲入數(shù)據(jù)存儲模塊322(例如MySQL數(shù)據(jù)庫),以備以后查詢。數(shù)據(jù)檢索模塊323可在MySQL數(shù)據(jù)庫中檢索出車牌號對應的車主及其聯(lián)系方式等信息,可將所述信息發(fā)送至數(shù)據(jù)顯示模塊324,數(shù)據(jù)顯示模塊324可將接收到的信息顯示出來,從而方便相關人員進行進一步處理。
[0073]舉例而言,可在火車站候車大廳安裝多個球機作為視頻獲取部件31,可部署TKl計算機來實現(xiàn)基于GPU的視頻采集與處理裝置10,然后啟動本系統(tǒng),可在火車站駐守的公共安全機關的某個應急響應房間里部署服務器32,服務器可根據(jù)TKl計算機的IP地址和每臺球機對應的端口號,與TKl計算機進行連接。TKl計算機可對每臺球機開啟視頻采集線程進行視頻采集,同時可開啟視頻處理線程,進行人臉識別處理,識別目的可以是識別出全國的流竄作案的犯罪分子或者恐怖分子。視頻采集線程采集到視頻幀信息后可將該視頻幀信息傳遞給視頻處理線程,視頻處理線程可對視頻幀進行針對上述人群的人臉識別。例如,如果是晚上,可以先做夜間增強預處理,再做人臉識別處理。如果識別出某個犯罪分子的人臉,可把與該犯罪分子對應的識別代號(即結(jié)果數(shù)據(jù))發(fā)送到后端的服務器,服務器的數(shù)據(jù)檢索模塊323可在數(shù)據(jù)存儲模塊322(例如MySQL數(shù)據(jù)庫)中,把該犯罪分子的相關信息全部檢索出來,然后將信息發(fā)送至數(shù)據(jù)顯示模塊324以供顯示,方便相關公共安全人員進行應急處理。服務器也可把該犯罪分子在此車站出現(xiàn)的記錄存儲在MySQL數(shù)據(jù)庫中。
[0074]以上所述,僅為本發(fā)明的【具體實施方式】,但本發(fā)明的保護范圍并不局限于此,任何熟悉本技術領域的技術人員在本發(fā)明揭露的技術范圍內(nèi),可輕易想到變化或替換,都應涵蓋在本發(fā)明的保護范圍之內(nèi)。因此,本發(fā)明的保護范圍應以所述權(quán)利要求的保護范圍為準。
【主權(quán)項】
1.一種基于GHJ的視頻采集與處理裝置,包括至少一個并行工作的視頻采集與處理單元,每個視頻采集與處理單元包括: 視頻采集模塊,針對與所述視頻采集與處理單元相對應的視頻獲取部件所獲取的視頻流?目息生成視頻幀; 視頻處理模塊,與所述視頻采集模塊連接,對所生成的視頻幀進行至少一種處理并生成結(jié)果數(shù)據(jù),所述視頻處理模塊針對各處理分別調(diào)用基于圖形處理器GPU的處理接口以進行并行處理;以及 數(shù)據(jù)發(fā)送模塊,與所述視頻處理模塊連接,將來自所述視頻處理模塊的結(jié)果數(shù)據(jù)發(fā)送到服務器。2.根據(jù)權(quán)利要求1所述的基于GRJ的視頻采集與處理裝置,其中, 所述視頻采集模塊針對所述相對應的視頻獲取部件建立獨立的視頻采集線程,以根據(jù)所述相對應的視頻獲取部件所獲取的視頻流信息生成視頻幀; 所述視頻處理模塊針對所述相對應的視頻獲取部件建立獨立的視頻處理線程,以對所生成的視頻幀進行至少一種處理并生成結(jié)果數(shù)據(jù); 所述數(shù)據(jù)發(fā)送模塊針對所述相對應的視頻獲取部件建立獨立的數(shù)據(jù)發(fā)送線程,以將來自所述視頻處理模塊的結(jié)果數(shù)據(jù)發(fā)送到服務器。3.根據(jù)權(quán)利要求1所述的基于GPU的視頻采集與處理裝置,其中,所述視頻處理模塊,包括: 判斷子模塊,用于判斷所述視頻采集模塊所生成的視頻幀是否需要進行預處理; 預處理子模塊,用于在所述視頻采集模塊所生成的視頻幀需要進行預處理的情況下,對所述視頻幀先進行至少一種預處理; 處理子模塊,用于對經(jīng)過預處理的視頻幀進行所述處理并生成結(jié)果數(shù)據(jù), 其中,所述預處理子模塊對各預處理分別調(diào)用基于GHJ的預處理接口以進行并行處理。4.根據(jù)權(quán)利要求1所述的基于GPU的視頻采集與處理裝置,其中,所述基于GPU的處理接口包括:基于GPU的人臉識別處理接口、基于GPU的車牌識別處理接口、和基于GPU的視頻摘要處理接口中的一個或多個。5.根據(jù)權(quán)利要求3所述的基于GPU的視頻采集與處理裝置,其中,所述基于GPU的預處理接口包括:基于GPU的去噪預處理接口、基于GPU的銳化預處理接口、基于GPU的去霧預處理接口、和基于GPU的夜間增強預處理接口中的一個或多個。6.根據(jù)權(quán)利要求3所述的基于GPU的視頻采集與處理裝置,其中所述視頻處理模塊,還包括: 并行處理子模塊,用于響應于對各基于GPU的預處理接口或處理接口的調(diào)用,對每個所述預處理或者所述處理進行基于GPU的并行化處理,所述并行處理子模塊包括: 定位單元,用于定位所述預處理或者所述處理中耗時多的性能瓶頸部位; 劃分單元,用于將所述性能瓶頸部位劃分成包含至少一層循環(huán)體的單獨模塊; 復制單元,用于將內(nèi)存中所述循環(huán)體涉及的輸入、輸出數(shù)據(jù)復制到GRJ顯存; 運算單元,用于編寫GPU設備核心函數(shù)替換所述的單獨模塊,利用所述GHJ顯存中的輸入、輸出數(shù)據(jù)進行GHJ運算,并將運算結(jié)果復制回所述內(nèi)存。7.一種基于GRJ的視頻采集與處理系統(tǒng),包括: 根據(jù)權(quán)利要求1至6中任意一項所述的基于GRJ的視頻采集與處理裝置; 至少一個視頻獲取部件,各視頻獲取部件與所述視頻采集與處理裝置中的相對應的視頻采集與處理單元的視頻采集模塊連接,用于為所述視頻采集模塊提供視頻流信息;以及服務器,分別與所述視頻采集與處理裝置中的各視頻采集與處理單元通信連接。8.根據(jù)權(quán)利要求7所述的基于GRJ的視頻采集與處理系統(tǒng),其中,所述服務器包括: 數(shù)據(jù)接收模塊,分別與各視頻采集與處理單元的數(shù)據(jù)發(fā)送模塊連接,用于接收所述數(shù)據(jù)發(fā)送模塊發(fā)送的所述結(jié)果數(shù)據(jù); 數(shù)據(jù)存儲模塊,與所述數(shù)據(jù)接收模塊連接,用于存儲所述的結(jié)果數(shù)據(jù)。9.根據(jù)權(quán)利要求8所述的基于GRJ的視頻采集與處理系統(tǒng),其中,所述服務器還包括: 數(shù)據(jù)檢索模塊,與所述數(shù)據(jù)接收模塊和/或所述數(shù)據(jù)存儲模塊連接,用于針對所述數(shù)據(jù)接收模塊所接收的結(jié)果數(shù)據(jù)和/或所述數(shù)據(jù)存儲模塊所存儲的結(jié)果數(shù)據(jù)進行檢索,生成檢索信息。10.根據(jù)權(quán)利要求9所述的基于GRJ的視頻采集與處理系統(tǒng),其中,所述服務器還包括: 數(shù)據(jù)顯示模塊,與所述數(shù)據(jù)接收模塊、所述數(shù)據(jù)存儲模塊和所述數(shù)據(jù)檢索模塊中的一個或多個連接,用于顯示所述數(shù)據(jù)接收模塊所接收的結(jié)果數(shù)據(jù)、所述數(shù)據(jù)存儲模塊所存儲的結(jié)果數(shù)據(jù)和所述檢索信息中的一個或多個。
【文檔編號】H04N5/217GK105827976SQ201610266790
【公開日】2016年8月3日
【申請日】2016年4月26日
【發(fā)明人】馮偉明
【申請人】北京博瑞空間科技發(fā)展有限公司