實時視頻流分析在智能監(jiān)控、智慧城市、自動駕駛等場景中具有重要價值. 然而計算負載高、 帶寬需求大、延遲要求嚴等特點使得實時視頻流分析難以通過傳統(tǒng)的云計算范式進行部署. 近年來興 起的邊緣計算范式, 將計算任務從云端下沉到位于網(wǎng)絡邊緣的終端設備和邊緣服務器上, 能夠有效解 決上述問題. 因此, 許多針對實時視頻流分析的邊緣計算研究逐漸涌現(xiàn).
本文首先介紹了智能視頻流 分析和邊緣計算的背景知識, 以及二者結合的典型應用場景; 接著提出了現(xiàn)有系統(tǒng)所關注的衡量指標 和面臨的挑戰(zhàn); 然后從終端設備層次、協(xié)作層次、邊緣/云層次對本領域的關鍵技術分別進行了詳細的 介紹, 重點涉及了模型壓縮和選擇、本地緩存、視頻幀過濾、任務卸載、網(wǎng)絡協(xié)議、隱私保護、查詢優(yōu) 化、推理加速和邊緣緩存技術.
基于對上述各項核心技術的有機整合, 本文提出了基于邊緣計算的視 頻大數(shù)據(jù)智能分析平臺 Argus, 從數(shù)據(jù)采集、推理分析, 到數(shù)據(jù)挖掘、日志管理, 對實時視頻流分析全 生命周期提供支持, 并成功應用到智慧油田中. 最后, 本文討論了本領域尚待解決的問題和未來研究 方向, 希望為今后的研究工作提供有益參考.
http://scis.scichina.com/cn/2022/SSI-2021-0133
1. 引言
隨著智能手機的普及和監(jiān)控攝像頭的大規(guī)模部署, 全球范圍內實時生產(chǎn)的視頻數(shù)據(jù)量呈現(xiàn)出指數(shù) 增長的趨勢. 根據(jù)思科公司的預測 [1] , 到 2023 年, 視頻流將占據(jù)互聯(lián)網(wǎng)總流量的 80%. 傳統(tǒng)的人工方 法難以對如此大規(guī)模的數(shù)據(jù)進行分析, 因此需要利用計算機自動提取出視頻流中的關鍵信息. 實時視 頻流分析, 指通過計算機視覺算法對一個或多個攝像頭產(chǎn)生的視頻流內容自動進行分析和理解, 從而 在視頻流錄制和傳輸?shù)耐瑫r完成目標識別、異常檢測等復雜任務 [2] . 由于攝像頭源源不斷地產(chǎn)生視頻 流, 自動視頻分析必須能夠實時進行. 自 1970 年至今, 智能視頻分析系統(tǒng)就一直是學術和工業(yè)界的熱 點問題. 實時視頻流分析可以被應用在智能安防、智慧城市、自動駕駛, 以及個人生活助理等領域, 不僅能替代傳統(tǒng)的人工監(jiān)控業(yè)務, 還可以拓展視頻分析任務的應用邊界.
自 2012 年 AlexNet [3] 提出以來, 計算機視覺技術, 特別是基于深度卷積神經(jīng)網(wǎng)絡 (convolution neural network, CNN) 的目標檢測和 識別技術出現(xiàn)了重大突破. 機器在自動視頻分析任務上已經(jīng)可以達到甚至超過人類水平, 使智能視頻 分析從理論研究快速走向了實際應用 [4, 5] . 深度卷積神經(jīng)網(wǎng)絡需要巨大的計算量, 往往只有在圖形處 理單元 (graphics processing unit, GPU) 等專用硬件上才能實時運行, 需要將計算任務卸載到具有較強 計算能力的設備上.
圖 1 為許多傳統(tǒng)的實時視頻流分析系統(tǒng)所采用的中心化云計算架構: 處于網(wǎng)絡邊 緣的設備端攝像頭直接通過互聯(lián)網(wǎng)將視頻傳輸?shù)骄W(wǎng)絡中心的云服務器. 云服務器獲得視頻之后對視頻 進行存儲, 并利用 GPU 進行推理分析, 再將推理結果在云端進行整合利用. 在部分場景, 云端還會將 最終結果返回給網(wǎng)絡邊緣的終端設備 [2] . 然而, 基于云計算的視頻分析系統(tǒng)面臨著帶寬占用大、傳輸 延遲高、網(wǎng)絡不可靠和隱私保護難等問題.
基于邊緣計算的實時視頻流分析范式, 可以很好地解決上述問題. 邊緣計算旨在將計算任務從位 于網(wǎng)絡中心的云服務器下沉到與視頻源物理接近的邊緣服務器或者智能終端設備上 [6] . 如圖 2 [7] 所 示, 在邊緣計算架構中, 計算任務可以卸載到設備 – 邊緣 – 云 3 個層級中. 擁有一定計算能力的智能 設備和邊緣服務器能夠在視頻源附近直接處理大部分存儲和分析任務, 云服務器僅在必要情況下提供 計算支持和數(shù)據(jù)融合. 因此, 基于邊緣計算的視頻流分析系統(tǒng)占用的互聯(lián)網(wǎng)上傳帶寬將顯著減少.
此 外, 邊緣服務器與視頻源物理位置接近, 其數(shù)據(jù)包往返時間 (round trip time, RTT) 相比云服務器幾乎 可以忽略不計. 基于邊緣計算的視頻流處理系統(tǒng)只需要考慮視頻流的傳輸時延和視頻分析的時延, 能 夠完成服務時延敏感的增強現(xiàn)實等任務 [8] . 同時, 相比于互聯(lián)網(wǎng), 視頻源和網(wǎng)絡邊緣的連接相對簡單 可控, 能夠確保足夠的傳輸帶寬和穩(wěn)定性. 將視頻數(shù)據(jù)在邊緣端直接處理, 或者在邊緣端進行脫敏化 操作之后上傳, 也可以有效避免云端隱私泄漏.
除了實時視頻分析以外, 許多應用場景也需要對大量的已有視頻進行離線分析. 例如, 大型視頻 網(wǎng)站需要自動分析用戶上傳的視頻, 檢測其是否涉黃; 公安執(zhí)法部門需要在刑事案件發(fā)生后回溯已有 監(jiān)控視頻, 確定嫌疑人的歷史軌跡. 這些對已有視頻的離線查詢, 需要從數(shù)小時甚至數(shù)月長度的大量 視頻中檢索出具有特定目標的少量視頻幀或片段. 面對后臺保存的大規(guī)模視頻數(shù)據(jù), 逐幀進行神經(jīng)網(wǎng) 絡分析會耗費大量時間和計算資源. 因此, 離線視頻分析的核心問題在于: 如何在不完全分析所有視頻幀的情況下檢索出視頻幀中的所有目標. 其中最直觀的方法就是用底層計算機視覺方法檢測視頻內 容變化的情況, 僅在變化較大時進行分析 [9] .
離線分析的特點是不需要按照視頻時間順序進行, 因而 許多工作都在分析前從整個視頻中選出部分幀訓練定制化的輕量級神經(jīng)網(wǎng)絡模型 [9 13] . 定制化模型 能夠較好適應已有視頻的特性, 可以在精確度損失較少的情況下減少單次分析帶來的開銷. 在此基礎 上, NoScope [9] 和 THAHOMA [12] 利用不同輕量級模型組成多級過濾器, 在離線分析過程中篩選掉大 部分視頻幀不進行完整分析. Focus [10] 則利用輕量級模型在存儲視頻時構建索引, 處理后續(xù)任務時僅 對包含索引的部分視頻幀用完整模型進行分析. 本文主要是面向實時視頻流分析, 不再進一步展開介 紹離線視頻分析.
2017 年, 美國微軟公司的 Ananthanarayanan 等 [14] 提出 “實時視頻分析是邊緣計算的殺手級應 用”, 并且分享了一系列針對智能交通分析的邊緣實時視頻流分析系統(tǒng) [15 17] . 此后, 許多針對實時視 頻分析的邊緣計算系統(tǒng)和研究開始涌現(xiàn), 并且逐漸被部署到真實世界的各種應用中. 目前已經(jīng)存在許 多針對實時視頻流分析的邊緣計算研究工作, 但仍然缺乏系統(tǒng)性的綜述工作. 因此, 本文希望對基于邊 緣計算的實時視頻流分析領域的最新進展和未來方向進行討論.
本文的貢獻如下:
? 收集和整理了現(xiàn)有的針對實時視頻流分析的邊緣計算系統(tǒng)和研究, 并將其中涉及的關鍵技術分類 為 3 個層次: 終端設備層次、協(xié)作層次, 和邊緣/云層次. 我們分別對 3 個層次中的重要技術的應用和 發(fā)展進行了總結.
? 提出了基于邊緣計算的視頻大數(shù)據(jù)智能分析平臺 Argus, 并分別從視頻/傳感器數(shù)據(jù)源、接入網(wǎng) 絡、邊緣視頻流分析、模塊編排和管理、數(shù)據(jù)挖掘, 以及業(yè)務邏輯等方面對其進行了介紹.
? 提出并分析了邊緣實時視頻流分析當前面臨的挑戰(zhàn)和未來可能發(fā)展方向.
第 2 節(jié)介紹了實時視頻流分析和邊緣技術涉及的背景知識和應用場景. 第 3 節(jié)指出了基于邊緣 計算的實時視頻流分析系統(tǒng)的關鍵指標和面臨的挑戰(zhàn). 第 4 節(jié)分層次總結邊緣實時視頻流分析涉及的 關鍵技術. 第 5 節(jié)提出了 Argus 平臺并闡述其頂層設計. 第 6 節(jié)討論了本領域尚待解決的問題和可能 的發(fā)展方向. 最后, 第 7 節(jié)對本文進行了總結.
2. 背景介紹
本節(jié)簡單介紹背景知識及相關術語, 包括視頻分析流程、典型的邊緣計算范式, 以及基于邊緣計 算的實時視頻流分析的具體應用場景。
2.1 視頻分析流程
實時視頻流分析需求較為復雜, 通常涉及多個不同模塊的組合. 圖 3 以常見的目標識別與追蹤為 例, 對視頻分析所涉及的流程進行了展示. 從邏輯層面上, 實時視頻分析流程可以被劃分為視頻采集 和編碼、視頻解碼、預處理、區(qū)域提取、目標檢測、目標識別、目標追蹤, 以及數(shù)據(jù)融合這幾個部分. 在必要時, 系統(tǒng)還需要將分析結果返回給視頻源用于實時渲染或決策。
2.2 邊緣計算架構
邊緣計算是近年的研究熱點, 有許多與其相關的概念, 例如霧計算、移動邊緣計算、微型云計算 (cloudlet computing) 等 [41] . 我們認為, 這些概念都屬于邊緣計算的范疇, 即將計算負載分流到數(shù)據(jù)生 產(chǎn)源附近的網(wǎng)絡邊緣端. 如圖 2 所示, 定義中的網(wǎng)絡邊緣端, 既包括位于基站中、工廠內的邊緣服務 器, 也包括具有一定計算能力的智能手機、攝像頭等終端設備.
根據(jù)物理設備的算力和與數(shù)據(jù)源的距離, 可以進一步將邊緣計算系統(tǒng)中的設備縱向分為 3 層: 底 層是計算能力較弱、作為數(shù)據(jù)源的終端設備, 中層是計算能力相對較強但有限的邊緣計算服務器, 頂 層是具有彈性擴張能力的云服務器. 設備端和邊緣服務器之間具有穩(wěn)定的網(wǎng)絡連接, 同時具備帶寬大 和延遲低的特點; 而邊緣服務器和云服務器之間則通過因特網(wǎng)進行連接, 具有連接不穩(wěn)定、帶寬低、延 遲高等特點. 按照計算負載在 3 類設備上的分配, 常見的邊緣計算系統(tǒng)可以縱向分為設備 – 邊緣、邊 緣 – 云端, 以及設備 – 邊緣 – 云端 3 種架構. 同時, 同一類設備之間也可以相互橫向卸載計算任務, 從而組合出更復雜的多設備協(xié)同架構 [19] .
邊緣計算最初的設想是為移動設備提供游牧服務 (cyber-foraging), 如圖 4(a) 所示: 當手機或可穿 戴設備需要進行計算量較大的人機交互任務時, 會搜索附近的邊緣服務器, 提交一次性的低延遲分析 請求, 并接收計算結果. 移動設備可能會在一次任務中隨著自身位置變化向多個邊緣服務器先后發(fā)出 請求, 一個邊緣服務器可能同時服務多個租戶的不同任務 [42] . 游牧服務更強調邊緣計算所帶來的低 延遲響應, 常見于增強現(xiàn)實等交互應用, 多采用設備 – 邊緣 和設備 – 邊緣 – 云端架構.
隨著邊緣計算在工業(yè)場景的應用, 如圖 4(b) 所示的邊緣站點 (edge site) 模式逐漸興起: 在工廠、 十字路口等地點部署固定攝像頭和邊緣計算服務器集群, 7 24 小時穩(wěn)定地對大量數(shù)據(jù)進行持續(xù)分析 和存儲 [43] . 由于邊緣服務器與攝像頭位置相近, 網(wǎng)絡條件較為簡單, 二者間可以保持穩(wěn)定的高帶寬和 低延遲通信. 邊緣站點不涉及多租戶服務, 強調服務的穩(wěn)定運行和節(jié)約云邊通信帶寬, 常見于安防監(jiān) 控、工業(yè)分析等場景, 并且多采用邊緣 – 云端和多設備協(xié)同架構. 雖然應用場景不同, 但是二者殊途同歸, 最終都是為了解決終端設備計算能力不足的問題, 并且在 分析精度、端到端延遲、資源占用等多方面進行權衡. 區(qū)別在于二者面臨的應用場景不同, 因此對延 遲、精度、帶寬等參數(shù)的容忍度不同. 例如, 游牧服務模式的增強現(xiàn)實任務可能需要在 20 ms 內傳回 結果, 邊緣站點上運行的油井狀態(tài)檢測可能可以接受 10 s 以內的延遲 [43] .
2.3 應用場景
如 2.2 小節(jié)中介紹, 邊緣計算的服務模式可以大致分為游牧服務和邊緣站點兩類. 在邊緣實時視 頻分析的眾多應用場景中, 增強現(xiàn)實、可穿戴認知輔助、無人機搜救、自動駕駛等任務常利用游牧服 務模式; 而安防監(jiān)控、智慧零售、交通分析等應用則更多采用固定的邊緣站點模式. 接下來, 我們對幾 個典型的應用場景進行簡介.
3 目標與挑戰(zhàn)
本節(jié)對衡量視頻流分析表現(xiàn)的重要指標進行介紹, 并分析了現(xiàn)有針對實時視頻流分析的邊緣計算 系統(tǒng)需要解決的三大挑戰(zhàn).
我們對大部分邊緣實時視頻分析系統(tǒng)所關心的關鍵指標進行一一說明.
延遲: 也稱為端到端時延、響應時間, 指從視頻幀解碼、數(shù)據(jù)傳輸、模型推理, 到最終獲得分析結 果的總時間. 對于需要在本地展示分析結果的應用, 端到端時延還包括結果傳回本地以及本地渲染結 果的時間. 有一些任務習慣用幀率、刷新率等指標對延遲作出限制, 最大延遲限制就是幀率的倒數(shù). 例 如增強現(xiàn)實任務需要的 60 fps 刷新率就對應了 20 ms 以內的端到端延遲. 端到端時延受到視頻分析 流程中許多因素的影響, 包括數(shù)據(jù)處理延遲、網(wǎng)絡傳輸方式、設備計算能力、模型參數(shù)規(guī)模等. 除了完 成單次視頻分析的平均延遲, 部分系統(tǒng)還關注多任務同時分析時的延遲波動性, 以及延遲的 99 百分 位等長尾值.
分析準確度: 是視頻分析任務的關鍵指標, 衡量了視頻分析算法和模型的預測準確度. 因此, 針對 不同的視覺任務往往對應不同的準確度指標. 對于圖像分類和目標識別, 準確度一般指所有預測結果 中預測正確的概率. 對其中樣本不均衡的情況, 還會用到精度 (precision)、召回率 (recall) 和 F1 分數(shù). 對于目標檢測任務, 首先需要根據(jù)重疊度 (intersection over union, IOU) 超過閾值判斷每個框檢測是 否成功, 再以此計算準確度、精度、mAP (mean average precision) 等評價指標. 而實例分割和目標分 割等像素級別的任務通常按照像素準確度或各類別 IOU 均值作為評價指標. 除了受模型本身的影響, 分析準確度也和運行時間有關. 如果分析結果出現(xiàn)的速率小于視頻的幀率, 可能會出現(xiàn)結果與當前視 頻幀不匹配的現(xiàn)象, 降低分析準確度.
帶寬: 指終端設備和邊緣服務器、邊緣服務器和云服務器之間每秒傳輸?shù)臄?shù)據(jù)量大小. 在基于移 動蜂窩網(wǎng)絡通信的系統(tǒng)中, 通信帶寬費用可以占據(jù)系統(tǒng)的大部分運行成本, 而且網(wǎng)絡狀況面臨波動的 可能. 在私有或者有線的固定帶寬網(wǎng)絡中通信時, 單個視頻流的帶寬開銷大小決定了整個系統(tǒng)的擴展 能力.
吞吐量: 指單位計算資源下, 邊緣實時視頻分析系統(tǒng)能同時服務的設備數(shù)量; 或單位時間下, 同一 系統(tǒng)能同時處理的分析請求個數(shù). 吞吐量代表了系統(tǒng)能服務的規(guī)模和對計算資源的利用效率. 吞吐量 越大, 說明系統(tǒng)在單位資源下能夠服務更大的規(guī)模. 這一指標既受到用戶對準確率、延遲要求的限制, 又與整個系統(tǒng)的資源分配、任務調度、計算和帶寬資源相關.
能耗: 指邊緣視頻分析系統(tǒng)中的各個模塊, 在單位時間或單次分析任務內消耗的能量. 能耗指標 對手機、無人機等基于電池的移動終端設備有重要意義. 其主要受到計算機視覺模型運行和設備間網(wǎng) 絡通信的影響, 也和同一設備上 CPU, GPU 等不同處理器的使用相關.
內存占用: 指計算機視覺模型在設備上占用的內存大小. 由于深度學習模型通常具有千萬甚至上 億的參數(shù)量, 需要足夠的內存空間進行加載. 一方面, 移動終端設備僅具有有限的內存資源, 限制了深 度學習模型的大小. 另一方面, 邊緣/云服務器需要服務多個應用, 模型內存占用也會影響其服務規(guī)模. 內存占用主要和計算機視覺模型的參數(shù)大小以及設備上的資源分配方式有關.
3.2 主要挑戰(zhàn)
基于邊緣計算的實時視頻流分析具有廣泛的應用場景, 對各項關鍵指標要求各不相同, 并且分別 運行在設備 – 邊緣 – 云端組合出的不同架構上. 雖然如此, 針對不同應用的邊緣實時視頻流分析系 統(tǒng), 通常采取相似的技術手段去解決遇到的一些共同問題. 例如, Kar 等 [48] 的車流分析系統(tǒng)和用于認 知輔助的 Gabriel 系統(tǒng) [57] 都利用了模型壓縮技術在終端設備上定制模型; 視頻監(jiān)控系統(tǒng) Vigil [44] 和 Al-Shuwaili 等 [51] 的增強現(xiàn)實系統(tǒng)都利用了邊緣設備間的點對點通信優(yōu)化系統(tǒng)調度.
我們認為邊緣實時視頻流分析系統(tǒng), 主要需要解決以下三大挑戰(zhàn):
第一, 如何將復雜的計算機視覺算法和模塊應用到資源有限的終端設備上. 作為視頻源的終端設 備往往僅具有有限的計算和能量資源, 而且不同設備間硬件架構各不相同. 例如, 搭載 Jetson TX2 的 智能設備可以按照每秒 1 幀的速度運行大部分常見的目標檢測網(wǎng)絡, 而普通的監(jiān)控攝像頭的內存可能 根本無法加載正常的神經(jīng)網(wǎng)絡模型. 然而, 終端設備由于離視頻源最近, 在低延遲快速分析和視頻預 處理方面具有無法替代的優(yōu)勢.
第二, 如何高效進行終端 – 邊緣服務器 – 云服務器之間的各個設備的任務卸載和協(xié)作. 邊緣實時 視頻分析是典型的分布式異構計算場景, 涉及設備 – 邊緣、邊緣 – 云端、設備 – 邊緣 – 云端等架構中 的不同層級的負載分配和通信協(xié)作, 以及同一層級的多設備協(xié)同. 此外, 設備間的通信還面臨復雜的網(wǎng) 絡環(huán)境, 需要考慮到對帶寬和延遲波動的自動適應.
第三, 如何提高邊緣/云服務器在單位資源下的服務規(guī)模. 在大規(guī)模的視頻分析系統(tǒng)中, 邊緣/云 服務器通常需要每秒處理幾十個視頻流的上千個分析請求, 并且可能涉及多個 GPU, FPGA 等專用硬 件的資源分配. 邊緣服務器雖然算力遠大于終端設備, 但是也無法彈性擴展, 而云服務器的彈性計算 能力面臨高昂的經(jīng)濟成本. 因此, 系統(tǒng)需要利用有限的計算能力同時服務盡量多的請求數(shù)量.
4 關鍵技術
第 3.2 小節(jié)中提到邊緣實時視頻流分析系統(tǒng)主要需要解決三大挑戰(zhàn). 因此, 我們針對這些挑戰(zhàn), 分 別調研了如圖 7 所示 3 個層次的關鍵技術.
? 終端設備層次: 應用于算力較低終端設備和智能邊緣計算節(jié)點上的技術. 從模型定制和任務設計 的角度出發(fā), 在滿足其資源限制的前提下, 在視頻源附近完成快速的初始視頻分析.
? 協(xié)作層次: 應用于云邊端不同層級和同層級中不同設備間相互協(xié)作的技術. 涉及任務的卸載方式 和設備間的協(xié)作機制, 在復雜網(wǎng)絡條件下綜合考慮分析準確度、延遲和能耗, 確保整個視頻分析系統(tǒng) 的端到端表現(xiàn).
? 邊緣/云層次: 應用于算力較強邊緣和云服務器的技術. 對多路視頻的大量分析請求進行合理的 任務調度、資源分配和冗余去除, 在滿足準確度與延遲需求的前提下, 增加系統(tǒng)在單位計算資源下的吞 吐量.
注意到, 一個完整的邊緣視頻分析系統(tǒng)可能會涉及其中一個或者多個層次的不同技術的組合. 其 中每個技術最終都是為了按照用戶的需求, 分別從視頻分析精度、端到端延遲、帶寬利用、資源開銷 等角度優(yōu)化整個分析任務. 以典型的基于設備 – 邊緣 – 云端三級架構的大規(guī)模視頻監(jiān)控場景為例, 系統(tǒng)需要先通過跨層協(xié)作技術, 根據(jù)網(wǎng)絡狀況、任務難度在不同層級進行任務卸載. 而其中卸載到設備 端的任務需要利用終端設備層技術粗略分析出視頻中的有用信息. 卸載到邊緣和云端的任務則需要通 過邊緣/云服務層技術提高資源利用效率. 本文希望對每個層次中的不同技術的內容和發(fā)展進行總結, 為讀者梳理邊緣實時視頻流分析領域的研究脈絡.
結論
實時視頻流分析是邊緣計算最成功的應用場景; 邊緣計算范式也是實時視頻分析能成功部署的重 要支撐. 本文對近年來針對實時視頻流分析的邊緣計算系統(tǒng)進行了歸納和綜述. 首先, 本文分別介紹 了視頻分析和邊緣計算涉及的背景知識, 并分析了邊緣實時視頻流分析系統(tǒng)的優(yōu)化目標和其面臨的關 鍵挑戰(zhàn). 接著, 本文針對這些挑戰(zhàn), 從終端設備層次、云邊端跨層多設備協(xié)作和邊緣/云服務層次闡述 了各項工作中涉及的關鍵技術與效果. 基于對各項核心技術的理解和整合, 本文提出了基于邊緣計算 的智能大數(shù)據(jù)分析平臺 Argus, 并對其頂層設計與部分實現(xiàn)細節(jié)進行了介紹. 目前, 針對實時視頻流分 析的邊緣計算范式依然面臨著一些尚待解決的難題, 本文最后對該領域的未來研究方向進行了討論。