智能安防的概念提出已經有相當長時間了,但是道路并不平坦,受限于計算機視覺算法和前端設備處理能力,許多功能一直無法成熟應用。但是廠商在宣傳智能水平方面往往有夸大的沖動,使得產品在部署使用后,實際性能與用戶期待相去甚遠。雖然這種情況使得安防領域的智能化陷入了一段尷尬時期,同時也降低了用戶的期望值,使用戶更加理性的看待智能安防技術,也使得真正優秀的智能安防產品能得到機會。最近數年來深度學習算法的快速發展,在各類人工智能問題上的優異表現給智能安防領域帶來了新的機遇。在深度學習迅速發展的大背景下,本文就智能安防系統如何采用最新的技術提升產品性能做一些拋磚引玉的探討。
深度學習是機器學習的一個分支,它基于試圖使用包含復雜結構或由多重非線性變換構成的多個處理層對數據進行高層抽象的一系列算法。卷積神經網絡是目前深度學習領域最為廣泛使用的深度學習結構,卷積神經網絡由一個或多個卷積層和頂端的全連接層(對應經典的神經網絡)組成,同時也包括關聯權重和池化層。自深度學習出現以來,它已成為很多領域,尤其是在計算機視覺和語音識別中,成為各種領先系統的一部分。在通用的用于檢驗的數據集,例如語音識別中的TIMIT和圖像識別中的ImageNet,Cifar10上的實驗證明,深度學習能夠大幅度提高識別的精度。深度學習算法也是最先在某些識別任務上達到和人類表現具備同等競爭力的算法,例如人臉識別領域使用廣泛的測試集LFW,基于深度學習的算法基本都能達到99.5以上的性能,這已經超過了人類的得分。
深度學習給智能安防帶來機遇的同時,也帶來了挑戰。硬件的進步是深度學習獲得關注的重要因素,高性能圖形處理器的出現極大地提高了數值和矩陣運算的速度,使得機器學習算法的運行時間得到了顯著的縮短。這些高性能圖像處理器目前最廣泛使用的是英偉達生產的支持CUDA計算的一系列高端顯卡,這些顯卡通常功耗都過百瓦,價格也從數千到上萬不等。而對應的前端設備上的嵌入式處理芯片必須滿足嚴格的功耗、成本約束,目前數字攝像頭中使用的處理芯片功耗通常在瓦級,價格在幾十元人民幣量級,顯然這兩者之間存在巨大的鴻溝。這要求安防廠商從傳統的智能攝像頭向前后端復合的智能安防系統思路轉變。筆者認為未來智能安防系統的發展將會分為兩個階段。
第一個階段是由前端智能攝像頭和后端智能分析服務器共同構成,利用后端基于深度學習的分析服務器來提升目前智能安防系統的性能。一個簡便易行的前后端協作方式是前端負責尋找可能剛興趣的關鍵幀并發送到后端,后端負責對該幀進行深入分析,判斷是否發生了感興趣的事件。
目前我們在智能安防中的需求中實際上有相當一部分是不需要對視頻進行分析的,通過單幅圖像進行分析就可以完成,只是傳統圖像算法不足夠強大,必須依賴連續視頻才能抽取需要的信息。比如廣場人員密度分析,如果是人工進行分析,只需要單張圖片就可以判斷當前畫面中的人員密度,是否達到預警的條件,而不需要對連續視頻進行分析。但是許多做這方面工作的傳統算法通常都依賴于對連續視頻的處理,需要通過連續視頻做一些前景提取的工作。由于依賴連續視頻,這些算法還很容易受到環境光照變化的影響。在深度學習出現以后,基于卷積神經網絡設計的算法通常都是針對單張圖片進行的,并且在人員密度分析上精確度大幅度上升。雖然基于深度學習的算法可以僅僅依靠單張圖片就可以分析,但是如果我們不加區分的每幀或是間隔數幀持續傳回截圖,對網絡帶寬和后端處理能力都會造成很大的負擔。我們可以要求前端設備通過對連續視頻的分析僅僅負責尋找場景內大量前景目標時,進行截圖并發送到后端,由后端來分析該幀內的人員分布密度,這樣可以在前端充分利用連續視頻的信息,降低系統對網絡帶寬和后端處理能力的需求。
在構建類似系統的硬件平臺方面,目前國內前端數字攝像頭主流芯片為海思和德州電器兩家廠商生產,這兩家廠商的部分芯片都支持用戶進行智能圖像處理算法的開發,只是方案略有不同。海思通過SOC內置的IVE硬件智能算法加速引擎來支持傳統智能算法的設計,該加速引擎可以支持一些在傳統計算機算法中常用的算子,開發人員通過調用這些算子來構成應用級算法。而德州電器的達芬奇系列處理器則通過ARM和DSP的異構多核策略來提供對算法設計的支持,圖像處理算法主要運行SOC內集成的高性能DSP上。這些芯片雖然無法執行復雜的深度學習算法,但是用來執行一些針對連續視頻處理的相對簡單的算法,例如前景提取、人臉檢測等,性能是足夠的。所以目前基于現有的成熟芯片開發具備一定智能的前端數字攝像頭是有很成熟方案的,由于是成熟芯片,所以成本也可控。后端設備采用基于英偉達顯卡的服務器即可,面向深度學習的各類軟件框架也比較成熟,所以當前階段構建基于前后端混合的智能安防系統在軟硬件條件上都是具備的,可以迅速完成產品研發投入市場。
第二階段是隨著專用卷積神經網絡加速器硬件的發展,在功耗、成本都滿足需求的前提下,將深度學習算法直接運行在前端設備上。目前已經有可以支持一定規模卷積神經網絡的嵌入式處理芯片,最著名的是英偉達發布的TegraK1和X1。這兩塊芯片性能強大,同時成本高昂,并且兩者由于功耗和成本的限制,在執行深度學習算法時與桌面顯卡相比性價比非常低。例如X1只有256個CUDA核心,GTX1060則具備1280個CUDA核心,并且前者為MAXWELL架構頻率為1000MHZ,后者為PASCAL架構頻率高達1708MHZ,再考慮兩者在存儲容量、速度上的顯著差距,兩者的性能差距是相當大的,但是X1主芯片的售價就超過200美元,GTX10603G顯存版本的零售價只要大約1500人民幣。
除了Tegra這類具備通用計算加速單元的芯片之外,其他還有一些初創企業在開發完全針對深度學習的芯片,例如國內創投圈知名的寒武紀。寒武紀開發的芯片在硬件結構設計上,從存儲到計算單元的設計,完全針對卷積神經網絡的需求進行,從而最大程度的提升在執行這類應用時芯片的能效比,據目前透露的數據在保持低功耗的前提下,性能可以比當前的主流顯卡高一個數量級。Intel收購的深度學習芯片公司Nervana也推出了在性能上與當前主流顯卡有量級提升的深度學習芯片,相信Intel收購以后在生態、資本方面給予的大力支持,可以促進深度學習專用加速芯片更快的進入市場。
隨著未來硬件平臺的持續發展和逐漸成熟,在功耗、成本、性能都滿足要求的前提下,將整個人工智能算法全部都放在前端設備上仍然是最終的方向。在前端直接執行可以使得整個人工智能算法獲得最完整的輸入數據,而不是僅僅局限于由于前端較為簡單的智能分析算法獲得的單張圖片或是部分特征,從而獲得更好的智能分析效果。