曾德生 駱金維 龐雙龍 謝品章 陳曉丹



摘要:面對視頻監控的應用場景及技術需求,以云計算為代表的集中式數據處理模型在資源需求方面開銷較大,過度依賴于云計算中心的網絡帶寬,在實時性等方面也難于滿足視頻處理的需求。本文提出一種適用于視頻監控場景的邊緣計算模型,從計算、網絡帶寬和存儲3種主要資源為切入點,設計系統架構,在利用邊緣節點的計算能力完成視頻的預處理,構建Docker容器化平臺,采用分級調度策略,降低網絡擁塞問題。通過測試,該模型可以有效降低視頻監控場景下的計算、存儲及網絡傳輸等開銷。
關鍵詞:邊緣計算模型;智能視頻監控;Docker容器;調度策略
0引言
近年來,本校以建立智慧校園體系為目標,啟動了信息化改造升級工程,其核心目標是建立綜合安全監控系統。在圖書館、教室、走廊、校道及其它公共場所部署大量的攝像機,以滿足各類安防視頻采集的要求。然而,海量視頻信息的產生也給信息化系統建設帶來了存儲、傳輸等方面的問題。
云計算技術已日趨成熟,應用也越來越廣泛。利用云計算技術構建智慧校園體系,采用資源整合的方式,可以降低項目建設成本,為用戶帶來按需擴展等優點。但集中式資源管理方式,在面對監控系統的應用場景,存在資源需求方面開銷較大的問題。海量視頻的傳輸、存儲及分析都將消耗云計算中心的大量資源。在實時性方面也難于滿足視頻處理的需求。
基于上述問題,本文提出在智慧校園體系中,部署基于邊緣計算的視頻采集框架及容器化應用。在邊緣計算模型的視頻監控系統中,利用邊緣節點部署運動偵測算法,對邊緣設備采集的視頻流進行運動目標檢測等預處理,減少冗余信息,降低系統對存儲及傳輸的需求。部署容器化平臺,帶來更好的調度特性,解決邊緣計算節點的資源調度問題,提高云計算中心的整體性能。
1 相關工作
1.1邊緣計算
隨著技術的發展變革,智能終端的普及,應用場景越來越復雜。以云計算模型為代表的集中式數據處理模式,已經不適用于海量實時數據的處理。如直播、在線教育、智慧城市、智能安防等。針對這一問題,以“數據處理應更靠近數據源頭”為核心理念的邊緣計算模型應運而生。
邊緣計算(Edge Computing,EC)經過近年的發展,其定義和說法有多種,邊緣計算產業聯盟對邊緣計算的定義是指在靠近物或數據源頭的網絡邊緣側,融合網絡、計算、存儲、應用核心能力的開放平臺,就近提供邊緣智能服務,滿足行業數字化在敏捷連接、實時業務、數據優化、應用智能、安全與隱私保護等方面的關鍵需求。它可以作為聯接物理和數字世界的橋梁,使用智能資產、智能網關、智能系統和智能服務。
1.2 智能視頻監控
智能視頻監控系統(Intelligent Video SurveillanceSystem,IVSS)是指不需要人工干預的情況下,利用計算機視覺、圖像及視頻分析算法,對視頻采集設備所拍攝的流式視頻圖像進行分析,對視頻中的運動目標進行檢測、識別和跟蹤,在此基礎上對目標進行分析和行為判斷。當發現異常情況時進行告警處理。
在智能視頻監控系統中,一般包含視頻采集、圖像預處理、運動目標檢測、運動目標跟蹤、運動目標分類、行為描述與理解和告警處理模塊。相較于傳統的監控系統,智能視頻監控系統具有許多優點:
(1)準確率高。在系統的前端集成視頻采集、分析模塊,用戶可以根據需要對異常情況的特征進行詳細定義,降低漏報和誤報,提高告警的準確率。
(2)響應速度快。系統中可以實現自動檢測功能,識別異常情況,告警模塊可以迅速提示安保人員查看監控系統或趕赴現場。可以提高異常事件的處理速度。
(3)可靠性高。系統可以實現7*24全天候的自動分析處理功能,減少了現場人工監視,避免監視人員因疲勞等情形忽略視頻中的異常情況。
在智慧校園體系中,監控系統使用大量的攝像機進行7* 24小時的監控,將產生海量的視頻數據。因此,通常在視頻采集模塊加入運動目標檢測算法,在邊緣節點對實時視頻流進行預處理。提高視頻的處理效率,避免了云計算中心產生大量的計算開銷;算法可以篩選出有效視頻幀,減少監控視頻中的冗余信息,有效降低大量視頻采集設備獲取的海量視頻信息對存儲空間及網絡帶寬等方面的開銷,達到節約建設成本的目的。
1.3 容器化調度
云計算是一種將計算資源按需供應給用戶的新型商業模式,能滿足用戶復雜的動態資源需求,從而減少用戶在購置基礎設施及硬件維護成本方面的投入。傳統的中心化、粗粒度的虛擬化架構,不太適合于海量視頻信息的處理。
Docker容器技術的出現為云計算以及企業IT架構的演進帶來了新的革命。Docker相較于傳統虛擬化技術減少了Hypervisor層帶來的性能消耗,大幅提高了虛擬化性能,為云上部署的計算集群的性能優化提供了良好的基礎。實現容器化應用平臺。通過提供視頻處理的鏡像文件,簡化了每個邊緣計算節點部署的重復性工作,降低了部署的復雜性,實現敏捷化部署。
充分利用Docker容器的特性,獲取節點的資源狀態信息,為邊緣計算模型的資源調度提供支撐,提高資源利用率,達到節約建設成本的目的。
2 視頻監控需求分析
2.1 運動檢測功能需求
在監控場景中,往往存在大量的攝像機,如果需要及時發現異常情況,通常都要安排大量的人工對視頻進行7* 24小時的實時排查。同時,因為視頻信息流具有持續性的特征,視頻信息的傳輸也將帶來巨大的網絡負載:隨著時間的推移,監控系統產生的視頻數據也將帶來巨大的存儲壓力。如果將這些海量視頻數據直接上傳到云計算中心,一方面視頻信息的處理需要消耗大量的計算資源,另一方面數據的傳輸和存儲也將面臨巨大的壓力。
監控場景中視頻信息的存儲,其最主要的目的是記錄場景中的變化信息及可疑信息,如果不采用合適的技術或方法,監控系統將占用較大的網絡帶寬,傳輸長時間記錄無變化的監控場景,有效信息含量低,視頻信息也失去了存儲的意義。
因此,在智能視頻監控系統中。運動檢測技術是最基本也是最重要的技術。這種技術通過合適的算法,檢測視頻數據流中的運動目標,替代人工識別的工作。通過設置一定的參數,發現運動目標在監控場景中的運動特征或位置信息,實現自動告警或判斷視頻信息是否達到存儲或傳輸備份的要求,可以有效的節省存儲空間,降低網絡傳輸的壓力。
在各類運動檢測算法中以光流法、背景差分法和幀間差分法最為常見。
2.1.1 光流法
光流法最初是由Horn和Schunck提出。將二維速度場與灰度關聯,引入約束方程,得到光流計算的基本算法。光流法算法較為簡單,易于實現,但是當光照變化、物體被遮擋時,會影響光流場的分布,將增加算法的運算量,針對實時應用場景時存在一定的缺陷。
2.1.2背景差分法
背景差分法通過選取特定的圖像作為背景幀,然后將當前需要判斷的視頻幀或圖像與背景幀做差分運算,進而判斷是否存在運動目標,背景差分算法的處理過程如下:
(1)選取沒有運動物體進人監控畫面時的圖像作為背景幀,定義為background(x,y);
(2)選取當前需要比較判斷的幀,定義為framek(x,y);
(3)設定閾值為T,將當前幀framek(x,y)與背景幀background(x,y)做差分運算,差分的結果與閾值T進行比較,二值化得到運動目標。如果大于閾值T,則判斷有運動目標,如果小于等于閾值T,則判斷為沒有運動目標。形式化計算公式表示如下:
detect(x,y)為當前幀與背景幀經過差分運算、二值化后得到的二值圖像,僅當detect(X,y)=1時,表示偵測到運動目標。背景差分法只需要進行一幅幀的差分檢測,速度快,準確度高;但是背景差分算法很大程度上依賴于背景幀background(x,y)的可靠性,如果光照、陰影等變化,需要不斷的調整背景幀,以適應環境的變化,因此,背景差分算法較適合于固定攝像機。
2.1.3兩幀差分法
兩幀差分法通常也稱為幀間差分法,其算法設計思路與背景差分相似,采用改進的方式,選取相鄰的兩幀圖像,將當前幀。framek(x,y)與上一幀。framek-1(x,y)進行灰度化處理后,進行差分運算,幀間差分法不會受到緩慢光線變化的影響,算法簡單易實現。形式化計算公式表示如下:
但只能檢測到前后兩幀變化的部分,不能檢測到重疊部分,易出現邊緣模糊不完整等問題,當物體移動緩慢時會出現誤判或空洞現象。
2.1.4三幀差分法
在兩幀差分法的基礎上。研究學者提出了三幀差分法,基本思路是提取連續三幀圖像framek-1(x,y),framek(x,y),framek+1(x,y),算法流程如圖1所示。
算法計算過程如下:
(1)將第k-1幀與第k幀按公式(2)進行幀間差分法運算,得到detect1(x,y);
(2)將第k幀與第k+1幀按公式(2)進行幀間差分法運算,得到detect2(x,y);
(3)將detect1(x,y)與detect2(x,y)的計算結果進行與運算,形式化的計算公式表示如下:
其中,DETE(x,y)是邏輯與的運算結果,與兩幀差分法類似,三幀差分法在檢測運動目標的過程中,仍存在空洞現象,但是三幀差分法可以定位出運動目標在監控畫面中的位置,提高了運動檢測的精確度,檢測結果比兩幀差分法更準確。
基于上述運動檢測算法的分析,在本文的研究過程中,可以采用三幀差分法實現運動檢測模塊,構建校園網的視頻監控系統,降低系統構建的難度,實現對視頻信息的選擇性存儲,篩選出有效視頻幀,減少監控視頻中的冗余信息,達到提高視頻信息有效性的目的。同時,降低大量視頻采集設備獲取的海量視頻信息對存儲空間及網絡帶寬等方面的開銷,達到節約建設成本的目的。
2.2 存儲與網絡帶寬需求分析
2.2.1 攝像機碼流分析
為滿足智慧校園的建設要求。在監控系統中以選用高清規格的攝像機為主。攝像機的規格各異,產生的數據量也各不相同。以HD數字攝像機為例,按2048Kbps碼流進行計算,每個攝像機每小時產生約900M的視頻數據。每天產生大約21G新視頻數據。三種常見規格的攝像機,產生的視頻數據見表1.
2.2.2 視頻數據傳輸與存儲分析
以教學樓為例,樓層建筑為回字形,上下方為走廊通道,左右兩邊各分布5間教室。每個樓層有10間教室,上下左右共計4個廊道。綜合監控系統的建設成本,4個廊道的兩端各選用安裝1路FHD數字攝像機,在每個教室中選用安裝2路HD數字攝像機,每個樓層合計28路兩種規格的攝像機。
在系統正常運行時。智能視頻監控系統中的每路攝像機都將實時產生兩個數據流,用于實時監控傳輸的視頻數據流和視頻數據文件傳輸至云計算存儲中心的存儲數據流。當發生應急情況時,監控中心的工作人員需要實時查看視頻監控內容,云計算的存儲中心也將實時存儲視頻信息,監控系統的網絡帶寬將達到最大需求。
以表1中攝像機規格為例,當應急情況發生時,每個樓層實時產生的最大視頻數據流和最大存儲數據流均為:4Mbps* 8路+2Mbps* 20路=72Mbps。因此,按樓層計算,最大的網絡帶寬需求合計為144Mbps,對云計算中心的存儲寫入的最大速率要求為72Mbps。按相同的建設規格進行部署,若整幢建筑物發生應急情況,以6個樓層進行計算,最大的傳輸帶寬需要864Mbps,最大存儲寫入速率需求為432Mbps。
2.3 管理需求分析
智能視頻監控系統一般都包含了視頻采集、圖像預處理、運動目標檢測、運動目標跟蹤、運動目標分類、行為描述與理解和告警處理模塊,相應管理功能的需求也是圍繞上述模塊進行設計,提升系統的準確率和響應速度,提高系統的整體可靠性,為管理人員提供便捷的管理功能。
基于邊緣計算模型的視頻監控系統,相較于傳統的IVSS,除包含上述所涉及的功能,采用邊緣計算模型,分散式的在邊緣節點對視頻信息進行預處理,存儲初期數據。因此,設計采用容器技術,構建容器化的資源調度平臺,采用合適的策略,實現網絡帶寬資源的調度控制,上傳視頻文件至云計算中心,實現視頻文件的備份存儲,降低網絡負載和存儲空間的需求,提高資源利用率,達到降低系統建設成本的目的。
3 方案設計
3.1 體系架構設計
以教學樓的結構進行體系架構圖設計,基于邊緣計算模型的智能視頻監控系統規劃為以下4個角色:邊緣計算單元(Edge Computing Unit,ECU)、智能視頻監控單元(Intelligent Video Surveillance Unit,IVSU)、邊緣計算節點(Edge Computing Node,ECN),云計算數據中心(Cloud Computing DataCenter,CCDC)。體系架構如圖2所示。
(1)ECU。邊緣計算單元,具有一定計算能力,可以實現對攝像機采集的視頻信息進行預處理,并提供文件存儲及網絡傳輸功能。在后續模型驗證中,采用樹莓派Zero w單板計算機,底層安裝Linux,為后續提供Docker調度接口。
(2)IVSU。智能視頻監控單元,在ECU模塊的基礎上,安裝motionEyeOS及CSI攝像頭實現智能視頻監控單元,部署視頻采集點,如:教室、走廊、實訓室、圖書館等。
(3)ECN。邊緣計算節點,具有較高的計算能力,并可以提供較大的存儲空間,用于臨時或長期存儲IVSU產生的視頻數據。可以根據攝像機的數量選擇服務器或其它通用計算機作為硬件支撐環境,易于部署容器化平臺,為后續資源調度及模型驗證提供支持。
(4)CCDC。云計算數據中心,部署大量的服務器及存儲硬件,采用KVM、VMware等平臺或工具,構建云計算資源管理中心,為智能視頻監控系統存儲海量的視頻信息。
3.2 視頻采集框架設計
進行視頻采集框架設計時,在保障可用性的情況下。采用樹莓派作為視頻采集框架的硬件基礎設施,降低建設成本。基于開源平臺部署容器,在去中心化環境中,提供調度策略的支持。
3.2.1 開放式硬件架構
樹莓派(Raspberry Pi)是一個開放式,易于擴展的小型的單板計算機,功耗低,可按需定制,提供所有預期的功能或能力。廣泛用于實時圖像、視頻處理和基于IoT的各類應用程序。視頻采集框架采用由樹莓派Zero W作為核心組件的邊緣節點,通過加載CSI攝像機,用于實現監控系統的視頻采集功能。
樹莓派Zero W單板計算機,設計緊湊,功耗低,通過Micro USB接口供電,作為視頻采集成本低。該單板計算機采用BCM2835作為SoC,集成了通用計算機中的各類功能。在計算模塊中,采用ARM1176JZF-S,提供了700MHz的計算能力:在視頻模塊中,采用了Broadcom VideoCore IV技術。能夠實現每秒30幀的1080p的H。264視頻編碼或解碼,同時提供了miniHDMI輸出功能:在網絡連接方面,提供了Wifi及藍牙模塊,支持802.11n連接:在其他接口方面,提供了1個mini USB On the Go接口、一個Micro SD卡的接口和40pin的GPIO接口,針對攝像機提供了CSI接口,可以適配樹莓派Camera Module V2攝像機,采集高達800萬像素的高清視頻。
3.2.2 開源視頻采集系統
motionEyeOS是一套嵌入式操作系統,系統采用BuildRoot工具完成交叉編譯,適合于部署在單板計算機上,提供實現完整的視頻監控系統。視頻監控系統的前端是采用Python編寫的motionEye程序,提供web接人功能;后端采用高度可配置的motion程序,可以實時查看視頻流,也可以實現面部識別、動態監測、攝像機直通錄制、記錄活動圖片和創建動態視頻文件等功能。在2.1節的需求分析的基礎上,對motionEyeOS進行改進,簡化流程,采用三幀差分算法,實現運動檢測功能。
3.3 容器化資源調度方案設計
在調度方案的設計過程中,負載是影響應用資源需求的主要因素。結合智能視頻監控系統的實際應用,系統瓶頸主要集中在網絡及磁盤I/O方面。因此在設計調度方案時。先利用Docker容器引擎的特性,通過周期性的采集CPU、內存、磁盤I/O、網絡帶寬等資源負載情況信息,為容器化調度方案提供信息支撐。
在調度模式上,充分體現邊緣計算模型分散處理的特點。針對圖1所示的體系架構。采用兩級調度模式,即云計算數據中心(CCDC)對邊緣計算節點(ECN)進行調度,邊緣計算節點(ECN)對邊緣計算單元(ECU)進行調度。執行調度任務時,發起的一方為主動調度對象(Active Scheduling Object,ASO),另一方為被動調度對象(Passive Scheduling Object,PSO)。
在式(4)中,Asoi表示對應CCDC或ECN中,第i個主動調度對象(ASO)。Acpu表示ASO中的CPU資源的剩余情況,Amem表示ASO中的內存剩余情況,Anet表示ASO中網絡帶寬的剩余情況,上述3種資源以百分比計算,取值范圍為(0,100);Ar表示ASO中磁盤I/O操作的讀狀態;Aw表示ASO中磁盤I/O操作的寫狀態;Atasked表示當前ASO中是否被上一級執行調度任務,結果為邏輯值,設定為(Ture | Fake),Ture表示當前正在被執行調度任務,False表示未被執行調度任務。
在式(5)中,Psoj表示對應ECN或ECU的第j個被動調度對象(PSO)。Pcpu表示PSO中CPU資源的剩余情況,Pmem表示PSO中內存資源的剩余情況,Pnet表示PSO中網絡帶寬剩余情況。與公式(4)類似,上述3種資源以百分比計算,取值范圍為(0,100);Pr表示PSO中磁盤I/O操作的讀狀態,Pw表示PSO中磁盤I/O操作的寫狀態;Ptasked表示PSO是否被上一級執行調度任務,結果為邏輯值,設定為(Ture | False),Ture表示當前正在被執行調度任務,False表示未被執行調度任務;Presp表示從被PSO到ASO之間的網絡狀態:Pltime表示PSO上一次成功被執行調度任務的時間,Psize表示需要調度處理的文件大小。
在式(6)中,Taskij表示主動調度對象Asoi發起調度任務至被動調度對象Psoj的執行參數。執行步驟如下:
(1)預設系統調度周期的時間長度為Schetime,然后通過系統調用,取得系統當前時間,作為調度任務的啟動時間:Tstime。
(2)將啟動時間Tstime與Psoj的Pltime參數進行計算,獲取調度優先級,公式如下:Tpri=(Tstime-Pltime)÷Schetime,Tpri的數值越大,則優先級越高,需被調度緊急程度越高。
(3)根據網絡狀況及Psoj的Psize參數進行計算,假設Asoi與Psoj之間的網絡狀態處于理想狀態,則可以估算調度任務的最小執行時間,Texectime=Psize÷(Anet|Pnet),Anet與Pnet取其中的最小值。
(4)調度策略采用較為簡潔的權重輪詢調度(Weighted Round-Robin Scheduling)算法,以Tpri作為權重,通過輪詢方式在邊緣計算模型中的各節點間進行調度。根據調度任務的完成情況,設定Taskij的值為邏輯值(Ture | False),Ture表示當前任務已完成,False表示調度任務未成功。
4 模型測試
4.1測試環境
為減少對正常教學秩序的影響。選擇暑期前進行測試,測試地點為全天對學生開放的信盈達CDIO智創工作室。基于圖2所示的體系架構圖進行部署,視頻采集框架采用3.2節所述的設計,部署ECU節點,并安裝攝像頭,配置網絡,構建IVSU。相關設備及主要參數見表2.
在工作室完成IVSU的部署后,IVSU設備采集的視頻通過無線網絡進行數據傳輸:樓層的設備間部署邊緣計算節點(ECN);再經校園網絡傳輸至云計算數據中心(CCDC),ECN設備采用一臺DELL服務器,其主要參數見表3.
在本次測試過程中,未進行云計算數據中心(CCDC)的設計與部署,在學校現有的云計算數據中心申請一臺虛擬機(VM),安裝配備相應的軟件環境,作為模擬CCDC,用于存儲數據,實現調度功能。其參數見表4.
4.2模型測試
4.2.1 運動檢測功能驗證
利用IVSU,錄制一段視頻。提取其中第1057幀、第1058和第1059幀進行測試,如圖3所示。
將描述的三幀圖像,進行二值化處理后,如圖4所示。
在本文設計的模型中,采用三幀差分算法進行運動目標檢測,將不變化的進行二值化處理,轉化為黑色背景,通過算法提取的運動目標,輪廓較為清晰完整,結果達到預期的運動檢測需求,如圖5所示。
4.2.2 存儲需求驗證
根據第三部分的設計,同時也為了簡化存儲文件的管理,采用分時間段存儲視頻流的方式,記錄視頻信息。以每300s為一個時間段,即5min的時間長度為一個視頻文件。當存儲的視頻幀中檢測發現運動物體后,標記視頻記錄文件的狀態,存儲視頻信息。連續5min視頻幀中沒有運動物體時,刪除無運動狀態的視頻文件,達到節約存儲空間。
信盈達CDIO智創工作室的標準開放時間是從早上07:30至夜間23:00.在部署IVSU前,調查學生進入工作室的規律,工作室內存在活動的時間主要集中在早上07:30至12:15,下午14:10至晚上的23:00,其余時間活動較少。每天無活動時間,平均約10h 25min,占全天比例約43.40%。經過6月10日至7月7日,持續4周的測試,表5中的第1周至第2周為學校的正常教學周次:第3周為考前復習周;第4周為考試周。視頻監控記錄情況如表5所示,表中數據為文件個數,每個視頻文件長度為5min。
通過上述的測試數據可以看出。視頻記錄文件的數量與學生活動成正比關系。在學校的正常教學周次,學生進出工作室及在工作室內的活動較為規律,視頻存儲數量基本持平,臨近期末數量稍有增長。第3周對應為考前復習周次,學生在工作室中的實踐活動增加了,數量有所增加。第4周為考試周,工作室內的活動降低較為明顯,且第4周的周五下午開始放假,關閉工作室后,視頻記錄文件數量記錄為0個。
統計分析其中的數據,對比加入運動檢測功能的視頻監控,以第1周至第3周的數據做分析對比未加入運動檢測功能的視頻監控。其所存儲的視頻文件數量約為每周1176個記錄。約節省41.67%的存儲空間。因此,如果在全校范圍內開展應用,在存儲方面可以明顯降低建設成本。
4.2.3 調度任務驗證
在進行測試過程中。暫未全校性部署智能視頻監控系統,調度驗證以邊緣計算節點(ECN)至邊緣計算單元(ECU)的測試為主,檢測智能視頻監控系統對網絡帶寬的利用情況。
利用Docker容器引擎的輕量化等特性,通過周期性的采集CPU、內存、磁盤I/O、網絡帶寬等資源負載情況信息,為容器化調度方案提供信息支撐。
假設共有n個ECU節點,則ECU列表為:ecu={ecu0,ecu1,…,ecun-1},weight(ecuj)表示第j個ECU節點的權重,即公式(6)中計算后的Tpri,j也表示為上一次調度的對象Psoj,max(ecu)表示所有節點中的最大值。gcdnumber(ectt)表示ECU列表中所有節點權值的最大公約數。變量j初始化為一1,curweight,表示當前的權重,初始化為0.
調度執行偽代碼如下:
增加相應的權重,判斷各節點的優先級,避免某個ECU節點的數據長期未備份。同時,通過相應的權重,充分考慮網絡流量的負載等情況,避免邊緣計算模型中個ECU節點的集中調度,導致網絡擁塞的情形,降低整體的網絡建設成本。
5 結束語
本文提出的方案引入邊緣計算模型。在校園網內有機融合云計算數據中心與邊緣計算環境。采用開源及開放式軟硬件架構,充分利用邊緣計算節點的計算資源,實現運動檢測功能,有效降低監控系統對存儲空間的需求:并利用Docker容器化平臺收集各節點資源狀態信息,設計資源調度策略,提高網絡帶寬的利用率。智能視頻監控技術是大數據時代監控技術發展的趨勢,因此,在后續的工作中,將結合ECU的計算能力,在智能視頻監控系統中,實現目標識別及跟蹤等功能:優化存儲空間,采用分布式彈性存儲機制,充分利用ECN的存儲能力。