後端分析/前端分析/邊緣分析

周見智發表於2020-08-19

過去兩個月團隊一直在忙著將基於後端分析的技術方案移植到前端裝置,由於都是英偉達的硬體平臺,遷移過程還算順利。下面分享一下什麼是後端分析、什麼是前端分析、什麼又是邊緣分析,當然叫後端計算、前端計算、邊緣計算也行。下面這個動圖就是我們採用前端分析方案的效果,具體硬體是Jetson Xavier NX 嵌入式板子,演算法用的是YoloV4 FP16,一路高畫質影片實時分析完全沒問題,勉強可以做到2路。

 

後端分析

後端分析中的“後端”,其實跟我們Web/App開發過程中提到的前端/後端差不多,意思就是在後臺伺服器上做資料分析。如果資料是影片,那麼就是先把影片接入到後臺伺服器(可能是一個影片管理平臺),然後再從該伺服器上取影片資料進行分析,比如做一些影片結構化的處理。

 

前端分析

前端分析中的“前端”,跟後端是對應的,不需要先把資料搞到後臺伺服器上,資料在哪裡被採集的就可以在哪裡被分析,如果採集資料的是影片攝像機,那麼分析的過程直接在攝像機內部完成即可,然後將分析結果上傳到中心伺服器(分析結果可能是json格式)。注意這裡跟後端分析有一個非常明顯的區別就是,原始需要被分析的資料(這裡的影片)不用先上傳到後臺。

 

邊緣分析

那麼什麼是邊緣分析呢?其實邊緣分析介於後端分析和前端分析之間。後端分析需要將原始資料上傳到後臺伺服器,前端分析中原始資料在採集的地方就可以被分析,而邊緣分析要求先將一個小範圍的待分析資料傳到一個區域性中心(可以是一個小型嵌入式伺服器,但是規模比後端分析中的伺服器小得多),然後再在該區域性中心做資料分析,區域性中心分析完後再將結果上傳到更上層的中心平臺。

 

優劣勢

1、後端分析:

後臺分析算力可以集中管理,靈活調配,直接從已有後臺伺服器取資料,資料的來源對於演算法來講相對透明,技術也相對成熟。缺點是原始資料可能上傳不及時,比如影片資料,先要上傳到後臺伺服器再做分析,這樣延時更大、需要更多的頻寬;另外,後臺算力比較集中、功耗大,對機房管理/電耗要求比較高。

2、前端分析:

前端分析基本採用嵌入式方案,一個板子/晶片處理單個資料來源,比如影片資料,一個嵌入式的板子/晶片基本只對一路攝像機負責,被分析的影片資料無需長距離傳輸,採集時馬上就可以被演算法分析,相對來講比較及時。缺點也很明顯,不是每個資料採集終端預設都帶有演算法分析功能,大部分時候需要更換原有資料採集裝置(比如傳統監控攝像機),使其具備智慧分析功能(比如智慧攝像機),一般裝置工作環境還比較惡劣,裝置穩定性要受得住考驗。

3、邊緣分析:

邊緣分析中和了後端分析和前端分析的優缺點,可以相對緩解後端分析中資料傳輸的延時問題、對機房硬性要求高的問題,同時也能相對緩解前端分析中需要替換資料採集終端的問題。

三種分析模式各有所長,具體場景可以採用不同的技術方案。

 

後面一段時間,團隊開始研究華為昇騰310平臺技術方案,跟英偉達類似,他們也提供一站式解決方案,從前端分析、邊緣分析到後端分析,都有對應的型號硬體和軟體配套來使用。目前這種國際形勢之下,儘快適配華為平臺方案還是非常有必要的。看官方資料介紹,價效比還是比較高的,但是具體還是需要實踐一下,比如官方提到一張Atlas300的AI加速卡(包含4個昇騰310晶片,售價1.5w左右,跟Tesla T4差不多)可以做到64路高畫質影片實時分析,但是據我們側面瞭解,這個資料並不是特別可靠,因為並沒有交代影片分析基於的演算法模型,如果只是非常簡單的影像分類模型或者基於簡單backbone的目標檢測模型,即使能做到64路,實際工程上意義也不大。當然,這塊卡的編解碼效能還不錯,經過測試,一塊Atlas 300的卡做50路1080P以上高畫質解碼、D1編碼還是非常穩定的。等有結果了再給大家分享華為技術方案。

相關文章