基於GPU的視頻流智能感知協同處理系統及其處理方法與流程
2023-09-19 07:02:35 3

本發明涉及視頻處理技術,特別是涉及一種基於GPU的視頻流智能感知協同處理系統及其處理方法的技術。
背景技術:
隨著物聯網技術、雲計算、大數據分析技術的廣泛應用,視頻流的實時分析變得越來越重要。視頻流分析可以應用到安防監控、遠程設備診斷、交通路況分析以及智能汽車無人行駛系統等。目前,高清的視頻流主要採用H.265/H.264編碼格式,對這種編碼圖像的分析需要經歷解碼、圖像預處理、圖像分析等過程,這些過程所採用的數學模型需要很高的計算資源支持。因而,目前進行視頻流分析往往採用2種模式:
1)視頻流傳輸到局部監控中心,由監控人員通過眼睛進行分析;這種方式具有需要大量的人力,並且由於人員的疲勞而漏掉重要信息,進一步,這種分析模式缺乏全局性信息,因而人們亟需改進並放棄這種方法。
2)視頻流被傳輸到雲數據分析與存儲中心,需要大規模雲平臺予以支持。這種方法主要缺陷是:視頻流傳輸佔用了大量的廣域網絡資源,成本過高,規模難以擴大;大規模雲平臺需要投入大量的人力、物力,消耗了大量的電能,因而很難持續發展。
技術實現要素:
針對上述現有技術中存在的缺陷,本發明所要解決的技術問題是提供一種全局性好,視頻分析效果全面,並且佔用通信資源少的基於GPU的視頻流智能感知協同處理系統及其處理方法。
為了解決上述技術問題,本發明所提供的一種基於GPU的視頻流智能感知協同處理系統,其特徵在於:包括雲伺服器,及多個視頻流感知節點;
所述雲伺服器配置有雲存儲單元,視頻流感知節點、雲伺服器接入同一個廣域網絡;
所述視頻流感知節點包括節點攝像頭、節點主控模塊、節點GPU模塊、節點通信模塊,其中的節點GPU模塊與節點主控模塊互聯,節點攝像頭的視頻數據輸出埠接到節點主控模塊的數據採集埠,節點主控模塊通過節點通信模塊接入雲伺服器所在的網絡,使得節點主控模塊能與雲伺服器進行數據交換。
進一步的,所述視頻流感知節點設置有節點機箱,節點主控模塊、節點GPU模塊、節點通信模塊均安裝在節點機箱內,節點機箱上裝有用於控制節點攝像頭的鏡頭對準方向的節點雲臺,節點雲臺的控制埠接到節點主控模塊的控制信號輸出埠,所述節點攝像頭安裝在節點雲臺上,節點機箱上裝有用於節點機箱內的電氣部件散熱的節點散熱通風裝置,所述節點散熱通風裝置中設置有散熱風扇、空氣過濾部件及溫溼度傳感器,並且溫溼度傳感器的感應信號輸出埠接到節點主控模塊的數據採集埠。
本發明所提供的基於GPU的視頻流智能感知協同處理系統的處理方法,其特徵在於:
為每個視頻流感知節點設定一個節點編號id,並為每個視頻流感知節點設定一個節點狀態向量SV,節點狀態向量SV中包含有用於標識視頻流感知節點中的各個部件工作狀態的多個狀態元素;
視頻流感知節點啟動後,節點主控模塊通過節點通信模塊向雲伺服器發送一個包含有本節點註冊信息的註冊信息包,並等待雲伺服器的反饋信息包,視頻流感知節點的註冊信息包括視頻流感知節點的節點編號id、節點網絡地址ip、節點狀態向量SV;
在雲存儲單元中預先存入GPU算法庫GS;
雲伺服器收到視頻流感知節點發來的註冊信息包後,先檢測雲存儲單元是否存儲有該視頻流感知節點的註冊信息;
如果雲存儲單元中已存儲有該視頻流感知節點的註冊信息,雲伺服器則先為該視頻流感知節點分配一個視頻幀處理周期發生器CG及一個GPU算法子集GPUS,再為該視頻流感知節點構建一個反饋信息包並下發給該視頻流感知節點;
如果雲存儲單元中未存儲有該視頻流感知節點的註冊信息,雲伺服器則先從接收到的註冊信息包中獲取該視頻流感知節點的註冊信息,並將所獲取的註冊信息存入雲存儲單元,並為該視頻流感知節點分配一個視頻幀處理周期發生器CG及一個GPU算法子集GPUS,然後再構建一個反饋信息包並下發給該視頻流感知節點;
雲伺服器為視頻流感知節點構建的反饋信息包中包含有視頻流感知節點的節點編號id、節點網絡地址ip,及雲伺服器為視頻流感知節點所分配的視頻幀處理周期發生器CG的處理周期T,及雲伺服器為視頻流感知節點所分配的GPU算法子集GPUS;
視頻幀處理周期發生器CG是用於生成處理時間段序列的時間段序列發生器,並且視頻幀處理周期發生器CG所生成的處理時間段序列中,各個處理時間段的時長相等,視頻幀處理周期發生器CG的處理周期T是指單個處理時間段的時長;
GPU算法子集GPUS是GPU算法庫GS的子集,是由雲伺服器從雲存儲單元所提取的GPU算法的集合;
視頻流感知節點中,節點主控模塊通過節點通信模塊獲取來自雲伺服器的反饋信息包,並根據分配給本節點的視頻幀處理周期發生器CG的處理周期T、GPU算法子集GPUS來構建節點GPU模塊的工作流程,並發送給節點GPU模塊,使得節點GPU模塊按照分配給本節點的視頻幀處理周期發生器CG的處理周期T、GPU算法子集GPUS工作;
視頻流感知節點中,節點主控模塊按照分配給本節點的視頻幀處理周期發生器CG的處理周期T從節點攝像頭獲取當前視頻幀frameImg,並從分配給本節點的視頻幀處理周期發生器CG獲取當前處理時間段t,按照當前處理時間段t及當前視頻幀frameImg構建視頻幀GPU處理對象VFPO發送給節點GPU模塊;
視頻幀GPU處理對象VFPO由當前處理時間段t、視頻流VST、當前視頻幀frameImg、GPUAS構成,其中的當前處理時間段t由分配給本節點的視頻幀處理周期發生器CG所生成,視頻流VST從節點攝像頭獲取,當前視頻幀frameImg是當前處理時間段t內所要處理的當前幀,GPUAS是按照分配給本節點的GPU算法子集GPUS所設定的用於處理視頻流VST的算法集合;
視頻流感知節點中,節點GPU模塊根據視頻幀GPU處理對象VFPO中的GPUAS對當前視頻幀frameImg進行處理,並在處理完畢後構建一個包含有當前處理時間段t、視頻流VST及處理結果Rels的視頻幀處理結果對象VFPRO,然後再將視頻幀處理結果對象VFPRO發送給節點主控模塊,節點主控模塊再構建一個包含有視頻幀處理結果對象VFPRO,及本節點的節點編號id、節點網絡地址ip的處理結果消息包,並通過節點通信模塊發送給雲伺服器;
雲伺服器收到視頻流感知節點發來的處理結果消息包後,根據處理結果消息包中的節點編號id、節點網絡地址ip找出分配給該視頻流感知節點的視頻幀處理周期發生器CG,並從該視頻幀處理周期發生器CG獲取一個新的當前處理時間段tt,再從處理結果消息包中的視頻幀處理結果對象VFPRO中提取出視頻流VST及處理結果Rels,再按照新的當前處理時間段tt,利用GPU算法庫GS對所提取的視頻流VST、處理結果Rels進行深度分析,並將深度分析結果存入雲存儲單元。
進一步的,視頻流感知節點啟動後,節點主控模塊通過節點狀態向量SV檢測本節點中的各部件的工作狀態,節點主控模塊與節點GPU模塊、節點通信模塊協同通信,互報工作狀態。
進一步的,視頻流感知節點VSN啟動後,節點主控模塊通過節點狀態向量SV檢測到本節點中存在著故障部件時,構建一個包含有本節點的節點狀態向量SV的報警信息包並發送給雲伺服器。
本發明提供的基於GPU的視頻流智能感知協同處理系統及其處理方法,採用GPU模塊構建視頻流感知節點,視頻流感知節點利用GPU的強大處理能力對視頻進行預處理分析,然後把預處理後的信息傳輸給雲伺服器,然後由雲伺服器進行全局視頻信息分析;本發明具有以下有益效果:
1)利用GPU(圖形處理器)構建的視頻流感知節點具有強大的處理能力,可以對圖像執行高斯變換、光流分析、卡爾曼運算等算法對圖像預處理,甚至可以執行這些算法的組合,因此預處理的結果的信息量大大減少;
2)大大減少了通信系統的負擔,通信系統往往基於無線網絡(如3G),由於預處理後的信息量大大減少,因此3G網絡的通信佔有量縮小,因此節省了通信費用;並且由於通信量的減少,大大增加了雲處理中心的視頻流接入的數目,提高了系統的處理規模,因而擴大了全局性,使視頻分析效果更全面;
3)每個視頻流感知節點有自己獨立的視頻幀處理周期發生器,並且雲伺服器可以支持成千上萬個不同的處理周期的視頻流感知節點的協同分析,因此具有更大的靈活性和可擴展性;
4)可以根據各個視頻流感知節點的GPU處理能力來制定GPU處理算法,具有異構計算能力的良好支持;
5)GPU處理裝置具有低成本高性能的特性,可以促使視頻流感知節點的廣泛普及,進而促進了基於視頻物聯網工業的全面發展;例如一個具有2000個流處理單元的視頻流感知節點的成本不會超過4000元人民幣,隨著GPU技術的發展普及,這個成本將會大大降低。
附圖說明
圖1是本發明實施例的基於GPU的視頻流智能感知協同處理系統的結構示意圖;
圖2是本發明實施例的基於GPU的視頻流智能感知協同處理系統中的視頻流感知節點的結構示意圖。
具體實施方式
以下結合附圖說明對本發明的實施例作進一步詳細描述,但本實施例並不用於限制本發明,凡是採用本發明的相似結構及其相似變化,均應列入本發明的保護範圍,本發明中的頓號均表示和的關係,本發明中的英文字母區分大小寫。
如圖1-圖2所示,本發明實施例所提供的一種基於GPU的視頻流智能感知協同處理系統,其特徵在於:包括雲伺服器CLOUD,及多個視頻流感知節點VSN;
所述雲伺服器CLOUD配置有雲存儲單元CDB,視頻流感知節點VSN、雲伺服器CLOUD接入同一個廣域網絡;雲伺服器CLOUD為雲接入中心,雲伺服器CLOUD負責與視頻流感知節點VSN互動,並管理各個視頻流感知節點VSN,對每個視頻流感知節點VSN發過來的預處理過的視頻信息進行深度分析,雲存儲單元CDB用於存儲視頻數據信息及各個視頻流感知節點VSN的管理信息;
所述視頻流感知節點VSN包括節點攝像頭ca、節點主控模塊mc、節點GPU模塊gpum、節點通信模塊cm,其中的節點GPU模塊gpum與節點主控模塊mc互聯,節點攝像頭ca的視頻數據輸出埠接到節點主控模塊mc的數據採集埠,節點主控模塊mc通過節點通信模塊cm接入雲伺服器CLOUD所在的網絡,使得節點主控模塊mc能與雲伺服器CLOUD進行數據交換;節點主控模塊mc、節點GPU模塊gpum應用同一種模型(比如NVIDIA CUDA)協同計算,完成對視頻圖像的分析(比如高斯變換、光流分析、卡爾曼運算等);
所述視頻流感知節點VSN設置有節點機箱,節點主控模塊mc、節點GPU模塊gpum、節點通信模塊cm均安裝在節點機箱內,節點機箱上裝有用於控制節點攝像頭ca的鏡頭對準方向的節點雲臺pla,節點雲臺pla的控制埠接到節點主控模塊mc的控制信號輸出埠,所述節點攝像頭ca安裝在節點雲臺pla上,節點機箱上裝有節點吊掛裝置sm及用於節點機箱內的電氣部件散熱的節點散熱通風裝置VS,節點機箱通過節點吊掛裝置sm安裝在落地物上,節點機箱的底部開設有進氣口,並且在節點機箱的底部進氣口設置有空氣過濾部件,所述節點散熱通風裝置VS中設置有散熱風扇、空氣過濾部件及溫溼度傳感器,並且溫溼度傳感器的感應信號輸出埠接到節點主控模塊mc的數據採集埠。
本發明實施例所提供的基於GPU的視頻流智能感知協同處理系統的處理方法,其特徵在於:
為每個視頻流感知節點VSN設定一個節點編號id,並為每個視頻流感知節點VSN設定一個節點狀態向量SV,節點狀態向量SV中包含有與視頻流感知節點VSN中的各個部件一一對應的多個狀態元素,並且節點狀態向量SV中的每個狀態元素均有兩種狀態值,其中的一種狀態值用於標識該狀態元素所對應的部件的工作狀態為正常工作狀態,另一種狀態值用於標識該狀態元素所對應的部件的工作狀態為故障狀態;
視頻流感知節點VSN啟動後,節點主控模塊mc通過節點通信模塊cm向雲伺服器CLOUD發送一個包含有本節點註冊信息的註冊信息包,並等待雲伺服器CLOUD的反饋信息包,視頻流感知節點VSN的註冊信息包括視頻流感知節點VSN的節點編號id、節點網絡地址ip、節點狀態向量SV;
在雲存儲單元CDB中預先存入GPU算法庫GS(GPU算法庫GS為現有技術);
雲伺服器CLOUD收到視頻流感知節點VSN發來的註冊信息包後,先檢測雲存儲單元CDB是否存儲有該視頻流感知節點VSN的註冊信息;
如果雲存儲單元CDB中已存儲有該視頻流感知節點VSN的註冊信息,雲伺服器CLOUD則先為該視頻流感知節點VSN分配一個視頻幀處理周期發生器CG及一個GPU算法子集GPUS,再為該視頻流感知節點VSN構建一個反饋信息包並下發給該視頻流感知節點VSN;
如果雲存儲單元CDB中未存儲有該視頻流感知節點VSN的註冊信息,雲伺服器CLOUD則先從接收到的註冊信息包中獲取該視頻流感知節點VSN的註冊信息,並將所獲取的註冊信息存入雲存儲單元CDB,並為該視頻流感知節點VSN分配一個視頻幀處理周期發生器CG及一個GPU算法子集GPUS,然後再構建一個反饋信息包並下發給該視頻流感知節點VSN;
雲伺服器CLOUD為視頻流感知節點VSN構建的反饋信息包中包含有視頻流感知節點VSN的節點編號id、節點網絡地址ip,及雲伺服器CLOUD為視頻流感知節點VSN所分配的視頻幀處理周期發生器CG的處理周期T,及雲伺服器CLOUD為視頻流感知節點VSN所分配的GPU算法子集GPUS;
視頻幀處理周期發生器CG是用於生成處理時間段序列的時間段序列發生器,並且視頻幀處理周期發生器CG所生成的處理時間段序列中,各個處理時間段的時長相等,視頻幀處理周期發生器CG的處理周期T是指單個處理時間段的時長;
雲伺服器CLOUD為各個視頻流感知節點VSN所分配的視頻幀處理周期發生器CG的處理周期T及GPU算法子集GPUS,是根據各個視頻流感知節點VSN的視頻處理要求制定的,各個視頻流感知節點VSN的視頻處理要求可以由人工設定,也可以根據預先定製的規則設定,不同的視頻流感知節點VSN所分配的視頻幀處理周期發生器CG的處理周期T及GPU算法子集GPUS可以是相同的,也可以是相異的,比如分配給第一個視頻流感知節點VSN的視頻幀處理周期發生器CG的處理周期T的值為T1,分配給第二個視頻流感知節點VSN的視頻幀處理周期發生器CG的處理周期T的值為T2,分配給第m個視頻流感知節點VSN的視頻幀處理周期發生器CG的處理周期T的值為Tm,則T1、T2、Tm的值可以是相同的,也可以是相異的;
GPU算法子集GPUS是GPU算法庫GS的子集,是由雲伺服器CLOUD從雲存儲單元CDB所提取的GPU算法的集合;
視頻流感知節點VSN中,節點主控模塊mc通過節點通信模塊cm獲取來自雲伺服器CLOUD的反饋信息包,並根據分配給本節點的視頻幀處理周期發生器CG的處理周期T、GPU算法子集GPUS來構建節點GPU模塊gpum的工作流程(構建節點GPU模塊gpum工作流程的方法為現有技術),並發送給節點GPU模塊gpum,使得節點GPU模塊gpum按照分配給本節點的視頻幀處理周期發生器CG的處理周期T、GPU算法子集GPUS工作;
雲伺服器CLOUD通過網絡向視頻流感知節點VSN下發雲臺調節指令,視頻流感知節點VSN中,節點主控模塊mc驅動節點攝像頭ca工作,並根據云伺服器CLOUD下發的雲臺調節指令來控制節點雲臺pla運行,使得節點攝像頭ca按照雲伺服器CLOUD下發的雲臺調節指令鎖定視頻捕獲窗口,並按照分配給本節點的視頻幀處理周期發生器CG的處理周期T周期性的產生處理時間段序列,使得節點攝像頭ca按照所產生的處理時間段序列周期性的捕獲數據幀,啟動視頻捕獲過程;
視頻流感知節點VSN中,節點主控模塊mc按照分配給本節點的視頻幀處理周期發生器CG的處理周期T從節點攝像頭ca獲取當前視頻幀frameImg,並從分配給本節點的視頻幀處理周期發生器CG獲取當前處理時間段t,按照當前處理時間段t及當前視頻幀frameImg構建視頻幀GPU處理對象VFPO發送給節點GPU模塊gpum;
視頻幀GPU處理對象VFPO由當前處理時間段t、視頻流VST、當前視頻幀frameImg、GPUAS構成,其中的當前處理時間段t由分配給本節點的視頻幀處理周期發生器CG所生成,視頻流VST從節點攝像頭ca獲取,當前視頻幀frameImg是當前處理時間段t內所要處理的當前幀,GPUAS是按照分配給本節點的GPU算法子集GPUS所設定的用於處理視頻流VST的算法集合;
視頻流感知節點VSN中,節點GPU模塊gpum根據視頻幀GPU處理對象VFPO中的GPUAS對當前視頻幀frameImg進行處理,並在處理完畢後構建一個包含有當前處理時間段t、視頻流VST及處理結果Rels的視頻幀處理結果對象VFPRO,然後再將視頻幀處理結果對象VFPRO發送給節點主控模塊mc,節點主控模塊mc再構建一個包含有視頻幀處理結果對象VFPRO,及本節點的節點編號id、節點網絡地址ip的處理結果消息包,並通過節點通信模塊cm發送給雲伺服器CLOUD;
雲伺服器CLOUD收到視頻流感知節點VSN發來的處理結果消息包後,根據處理結果消息包中的節點編號id、節點網絡地址ip找出分配給該視頻流感知節點VSN的視頻幀處理周期發生器CG,並從該視頻幀處理周期發生器CG獲取一個新的當前處理時間段tt,再從處理結果消息包中的視頻幀處理結果對象VFPRO中提取出視頻流VST及處理結果Rels,再按照新的當前處理時間段tt,利用GPU算法庫GS對所提取的視頻流VST、處理結果Rels進行深度分析,並將深度分析結果存入雲存儲單元CDB。
本發明實施例中,視頻流感知節點VSN啟動後,節點主控模塊mc通過節點狀態向量SV檢測本節點中的各部件的工作狀態,節點主控模塊mc與節點GPU模塊gpum、節點通信模塊cm協同通信,互報工作狀態,並且節點主控模塊mc與節點散熱通風裝置VS中的溫溼度傳感器協同通信,互報工作狀態。
本發明實施例中,視頻流感知節點VSN啟動後,節點主控模塊mc通過節點狀態向量SV檢測到本節點中存在著故障部件時,構建一個包含有本節點的節點狀態向量SV的報警信息包並發送給雲伺服器CLOUD。
本發明實施例中,節點機箱設有前後各一個散熱通風口,並且該散熱通風口各裝有一個節點散熱通風裝置VS;
視頻流感知節點VSN運行時,節點主控模塊mc通過兩個節點散熱通風裝置VS中的溫溼度傳感器檢測節點機箱的兩個散熱通風口的溼度,節點主控模塊mc中預先設置有一個溼度閾值;
如果兩個散熱通風口的溼度都大於預先設置的溼度閾值,節點主控模塊mc即控制前節點散熱通風裝置VS中的散熱風扇向前吹風,並控制後節點散熱通風裝置VS中的散熱風扇向後吹風;
如果兩個散熱通風口的溼度都小於等於預先設置的溼度閾值,並且前散熱通風口的溼度大於後散熱通風口的溼度,則控制兩個節點散熱通風裝置VS中的散熱風扇向前吹風;
如果兩個散熱通風口的溼度都小於等於預先設置的溼度閾值,並且前散熱通風口的溼度小於後散熱通風口的溼度,則控制兩個節點散熱通風裝置VS中的散熱風扇向後吹風;
通過對兩個節點散熱通風裝置VS中的散熱風扇的控制,實現對節點機箱內的溫溼度的調節。
本發明實施例進行了實例驗證,實驗環境如下:
視頻流感知節點VSN,節點主控模塊mc採用英特爾(Intel)酷睿i3,節點GPU模塊gpum採用銘速GTX670M 2G D5獨立顯卡,電源採用300W PC電源;
只考慮視頻流感知節點VSN 在某個處理周期T內完成一組GPU算法的執行,利用道路擁擠監控場景的視頻分析所需,對一個視頻幀在一個處理周期T內完成了卡爾曼算法、光流算法、高斯算法,該三種算法處理1080P一幀圖像的時間分別為:卡爾曼算法用了0.07秒,光流算法用了0.09秒,高斯算法用了0.05;
可見一個處理周期T的時長為0.07+0.09+0.05=0.21秒,由此可見本發明實施例可以在1秒內完成圖像的卡爾曼算法、光流算法、高斯算法的預處理,處理後的圖像為黑白圖像,通過壓縮存儲,大大地縮小了通訊量。