仇紅劍,曹 磊,谷開超
(江蘇電力信息技術有限公司,江蘇 南京 210024)
基于深度神經網絡[1-3](DNN)的實時視頻流分析使智慧城市建設、智慧工地項目以及智能駕駛等成為可能。 實時視頻流對于任務的響應時延極其敏感,隨著離用戶更近、響應時延更低的邊緣計算技術的不斷發展,邊緣服務器成為基于深度神經網絡的視頻流分析的主要運行位置。 通過在邊緣服務器上執行視頻流分析并向云端或用戶傳輸分析結果信息,可以降低視頻流分析任務的響應時延,減少大量高清視頻對于廣域網帶寬的消耗,同時提高用戶信息的安全性。
但隨著基于深度神經網絡的視頻流分析越來越多的部署在邊緣服務器上,邊緣服務器上需要處理的工作負載迅速增多。 邊緣服務器上的實時視頻流分析任務的服務質量和配置選擇存在著變化的對應關系,任意時刻服務質量和配置之間的對應關系是隨機的。 邊緣服務器面臨著如何面對隨機的服務質量和配置對應關系為邊緣上的實時視頻流分析任務選取執行配置的問題。 亟須研究一種面向邊緣的實時視頻流分析系統配置動態調整算法,提高邊緣服務器上實時視頻流分析任務處理能力。
本文描述了一種基于側寫的實時視頻流任務配置更新和調整算法,通過動態調整邊緣上實時視頻分析任務的執行配置,并動態對實時視頻分析任務的配置服務質量進行更新,達到提高邊緣上實時視頻流分析任務總體服務質量的效果。 系統周期性的根據各實時視頻流分析任務的服務質量與配置的對應關系選擇需要更新服務質量的配置,并決定各個實時視頻流分析任務的執行配置,之后根據決定的配置進行任務的執行并獲取任務的反饋信息,最后根據任務的反饋信息對于各實時視頻流分析任務的服務質量與配置的對應關系進行更新,以達到時刻維護系統中各任務服務質量與配置對應關系同時保證系統中任務的分析精度。
為了提升系統整體服務質量,需要對于系統運行過程建模。 以最大化系統長期服務質量為目標,在考慮邊緣上資源約束以及服務連續性約束的基礎上,本文提出了面向邊緣的視頻流分析系統運行時模型。
系統的長期服務質量定義如下,由每個時間槽和每個視頻流的服務質量總和決定:

每個視頻流的服務質量定義如下:

其中,yit代表在t時間時視頻流i是否需要更新配置,更新配置時系統會為該視頻流分配額外的資源用于部署標準配置,使用標準配置的結果作為其他配置更新服務質量信息時的參照信息。xijt代表在t時間時視頻流i是否部署一個以j配置運行的視頻流任務。yit與xijt均為0~1 變量。 當yit為1 時,系統會在時間槽結束時為視頻流的執行配置運行服務質量評估流程,以此更新系統中各視頻流的服務質量與配置的對應關系。aijt代表在t時間時視頻流i以配置j進行視頻流分析時能夠得到的精度。 由于在每個時刻決策時無法獲取當前時間視頻流分析時能夠得到的精度,系統使用當前維護的視頻流預估精度μijt進行計算。
系統中的約束主要存在兩種,一種是邊緣服務器的計算資源約束。 其含義是平均每個時刻視頻流使用的GPU 資源不能超過邊緣上的可用資源,否則會產生任務堆積,影響響應時間。 計算資源約束的建模形式如下:

其中,P代表服務器的可用計算資源,oij代表視頻流分析任務i在使用配置j運行時每秒消耗的GPU 運行時間,該變量隨著時間變化波動較小,因此可以任務運行前通過額外實驗獲取。 特別的,oi0代表該視頻分析任務標準配置運行消耗的資源量,標準配置在任務運行前需要手動指定,并在系統運行過程中保持不變。
另一種是系統中服務連續性約束,實時視頻流分析任務需要連續不斷的運行,需要保證每個時刻每個視頻流至少有一個配置正在運行。 在該視頻流的配置服務質量需要更新時,該視頻流執行的配置可以超過一個。 因此,連續性約束建模形式如下:

第一個約束表示每個時刻每個視頻流都需要至少一個配置,第二個約束表示只有在視頻流的配置服務質量需要更新時,該視頻流執行的配置可以超過一個。
在視頻流分析任務中存在多維可選參數,每維可選參數存在多種可選值,每維可選參數的所有可選值的笛卡爾積組成視頻流分析任務的所有配置,故視頻流分析任務中的配置數十分龐大,可能達到數百個配置。 每個配置都進行考慮并更新對于問題求解以及系統運行都是巨大的負擔,因此首先通過帕累托最優篩選出具有代表性的配置,在后續選擇時只選擇這些配置。
首先,篩掉所有效益預期低于系統預期的配置,這些配置的執行效果太差,一旦執行會導致任務擠壓,所以應當首先出去。
其次,將所有的配置按照其消耗的資源量進行排序,后續一定不會被選到的配置方案為滿足以下任一條件的配置方案:


其中:μ′ij-1為配置方案cij-1的準確率,wij-1配置方案cij-1的計算資源開銷,cij-1為實時流式數據分析任務i以配置j -1 執行的配置方案;μ′ij+1為配置方案cij+1的優先級,wij+1配置方案cij+1的計算資源開銷,cij+1為實時流式數據分析任務i以配置j +1 執行的配置方案。 第一項篩掉的是前一項比后一項優秀的配置,因為此時配置j -1 的資源量比j的資源量要少,而且其處理準確率比j要好,顯然選擇j -1 要優先于j。 而后一項篩掉的是選取前后兩個配置要好于只選j配置的方案。
將上文提出的長效優化問題分解成每個時隙求解的子問題。 平均資源消耗則化為嚴格在每個時間資源消耗不超過P。 以上提出的每個時隙解決的問題是背包問題的特例,因此也是NPH 問題,無法在多項式時間內給出最優解。 本文針對上述問題提出啟發式算法進行求解。 啟發式算法首先考慮不更新配置服務質量關系以及只更新單一配置的情況,該種情況是原問題的一個可行解。 接著利用剩下的資源求解一個背包問題,即目標是最大化所有流的服務質量,約束條件是資源使用不超過限制,使得更新配置與服務質量關聯關系的視頻流能夠得到盡量多的信息。 將第一步得到的結果與第二步得到的結果結合,得到的解仍然是原問題的一個解,這樣就得到了原問題的一個可行解。
本文研究了面向邊緣環境的實時視頻流分析系統的配置更新與執行問題,以最大化系統長期服務質量為目標,在考慮邊緣上資源約束以及服務連續性約束的基礎上,提出了一種啟發式的服務質量最大化算法以實現較優的系統效益。
為了證明本文算法的可行性與效果,本文實現了實時視頻流分析原型系統,并選取了真實交通路口車流監控視頻進行實驗。 在實驗中,配備CPU、Intel(R)Xeon(R)Gold 5117 CPU@ 2.00 GHz、GPU、GeForce RTX 2 080 Ti(11 GB)、內存128 GB 的物理機器上部署視頻分析系統,以便處理所有分析。 分析任務是基于DNN 的目標檢測。 使用CUDA 10.1 和cuDNN 7.0 來加速DNN 推理速度。 本文使用darknet Python API 執行DNN 模型進行檢測,使用預先訓練的對象檢測模型Yolov3-416,分類閾值為0.7。 該模型在COCO 圖像數據集上預訓練,可以檢測80 個類。 實驗與目前最先進的相關算法進行對比,驗證了本算法能夠提升系統的整體服務質量。 實驗結果如圖1 所示。

圖1 實驗結果
針對邊緣服務器上的實時視頻流分析系統的配置選擇問題,本文提出了基于側寫的實時視頻流任務配置更新和調整算法用于提升邊緣服務器的實時視頻流分析任務的處理能力,想必其他同類算法。 本文算法能夠利用有限的資源提升邊緣服務器上現有任務的服務質量或在平均服務質量相近的情況下提升邊緣服務器上的視頻分析任務執行任務數。