文/滿江月
近幾年,智能視頻分析技術成為安防企業(yè)爭相追逐的熱點和亮點。對于這一現(xiàn)象的理解,需要我們回溯到安防的本質。筆者認為,安防本質上是為了保障人身和財產的安全。傳統(tǒng)的安防技術更多地強調事中響應的實時性或事后查證的有效性。所以,高清、無損和無延時代表了過去幾年安防行業(yè)的主要發(fā)展方向。無論是IP方案中的4K、H.265,還是同軸方案中的HDCVI、HDSDI,都圍繞著這一方向向前發(fā)展。但隨著高清的普及,攝像機設備也越來越多,如何有效利用這些資源,成為了業(yè)主用戶頭疼的問題。大量的設備處于“睡眠”狀態(tài),只有當發(fā)生人身損害或財產損失的事件后,才被“激活”。這種“監(jiān)而不控”的狀態(tài)顯然不是業(yè)主的訴求。于是,智能視頻分析技術應運而生。
智能視頻分析技術(Intelligent Video Analysis,IVS)利用一些圖像處理、模式識別或機器學習等領域的算法來分析視頻序列中的信息,以達到理解視頻內容的目的,也有人稱為視頻內容分析(Video Content Analysis,VCA)。有了智能視頻分析技術,我們就可以及時地發(fā)現(xiàn)視頻中的異常情況,第一時間做出反應,減少損失。
當我們還在憧憬著智能視頻分析技術的前景時,現(xiàn)實給所有安防智能化廠商上了沉重的一課。很多智能視頻分析技術受限于應用場景,為了得到較好的準確率,往往需要天時、地利、人和?!疤鞎r”是指天氣和時間,一般來說陰天的效果要好于晴天、雨雪天氣,白天的效果要好于夜間?!暗乩笔侵钢車h(huán)境,一般來說空曠簡單的場景要優(yōu)于擁擠復雜的場景?!叭撕汀笔侵溉说男袨?、狀態(tài)等,一般來說稀松的人流、規(guī)則的運動方向更適合智能視頻分析的要求。好不容易湊齊了三個要素,提供了非常標準的場景,我們仍可能遇到智能分析“罷工”的情況。其實,問題就出在算法本身上。
首先,傳統(tǒng)的智能分析算法通常采取人工選擇特征的方法,如尺度不變特征(Scale-Invariant Feature Transform,SIFT),方向梯度直方圖特征(Histogram of Oriented Gridients,HOG),局部二值模式特征(Local Binary Pattern,LBP)等。很明顯,特征選擇的好壞直接決定著算法準確率的上限。算法研究團隊的重點任務變成了投入更多的人力去挖掘出更好的特征。數(shù)據(jù)集越大,特征越難發(fā)現(xiàn)和選擇,就好像一個無底洞一樣,不斷地試探,不斷地積累,時間和人力成本相當之高。而所謂SIFT特征、HOG特征、LBP特征,都是算法人員在某種假設的前提下,尋找特定數(shù)據(jù)集在某一層面的表示。但這種表示是否真的有效,還是要靠算法人員的經(jīng)驗和運氣呢?每種特征都有自己的提取方式,遵循著自己的理論支持,但如果理論假設本身與現(xiàn)實相悖呢? 我們無從知曉。
其次,有些智能分析算法模型為淺層學習模型,如支持向量機(Support Vector Machines,SVM)、邏輯回歸(Logistic Regression,LR)等。淺層學習模型通常有0或1層隱層節(jié)點,可以在一定規(guī)模的數(shù)據(jù)集下發(fā)揮較強的表達能力。但當數(shù)據(jù)量不斷增大時,這些模型就會處于欠擬合的狀態(tài)。通俗點說就是數(shù)據(jù)量太大,模型不夠復雜,覆蓋不了所有數(shù)據(jù)。而算法模型無法解析大數(shù)據(jù),直接制約了其應用的廣度和深度,也限制了其進一步發(fā)展的空間。
淺層學習模型示意圖
深度學習技術的興起,為我們解決了以上問題。在討論深度學習技術之前,我們先來談一談大數(shù)據(jù),因為深度學習與大數(shù)據(jù)密不可分。
生活在大數(shù)據(jù)時代的算法人員是幸運的,因為他們擁有數(shù)據(jù);生活在大數(shù)據(jù)時代的算法人員也可能是不幸的,如果他不懂得如何利用這些數(shù)據(jù),陷入數(shù)據(jù)的汪洋中無從抽身。大數(shù)據(jù)對智能視頻分析技術有著深遠的影響意義。
大數(shù)據(jù)時代為算法研究提供了足夠多、足夠豐富的訓練樣本。樣本的容量和種類是算法模型是否具有泛化能力的重要因素。換句話說,訓練樣本集的規(guī)模決定了模型能否對訓練樣本以外的數(shù)據(jù)有效的解釋。如果用10萬個樣本來訓練,我們可以通過抽樣和概率分析來預測100萬量級的數(shù)據(jù)。而我們如果有10億個訓練樣本,那么預測10萬甚至100萬量級的數(shù)據(jù)相對就容易得多。傳統(tǒng)的算法研究不可避免地要遇到小樣本問題(Small Sample Size,SSS),為了解決小樣本問題,模型中加入了很多技巧性的手段,并都沒有本質的區(qū)別,小樣本仍然存在。大數(shù)據(jù)時代,問題的解決就變得簡單粗暴多了。將所觀測到的海量數(shù)據(jù)扔進模型中訓練,只要模型足夠復雜,就能夠有效地表示這些數(shù)據(jù)。
大數(shù)據(jù)時代為算法研究提供了高效的計算工具。前面提到,數(shù)據(jù)量的增加意味著需要更復雜的模型來詮釋它。我們辛辛苦苦構建了一個模型,到頭來發(fā)現(xiàn)模型無法求解,或者求解的時間遠遠超出我們的想象。我們只能眼巴巴地看著一堆數(shù)據(jù),然后酸酸地說,大數(shù)據(jù)似乎沒那么有用。值得慶幸的是,有人已經(jīng)走在了前面。無論是分布式計算、并行計算還是云計算,都在為之努力,試圖解決日益增長的計算能力需求。如著名的圖形處理器廠商NVIDIA一直致力于基于GPU的通用計算,即GPGPU。它提供了一種強大的并行計算框架,展現(xiàn)出非凡的處理能力,NVIDIA還推出了用于GPU計算的CUDA開發(fā)環(huán)境,降低了應用開發(fā)的門檻。
許多工業(yè)界、互聯(lián)網(wǎng)界的業(yè)內大佬已經(jīng)開始利用大數(shù)據(jù)開發(fā)了一些系統(tǒng)。2012年谷歌大腦項目利用16000個計算機處理單元開發(fā)出一套能夠自主學習的系統(tǒng)。他們向這個系統(tǒng)隨機提供1000萬個從YouTube視頻中截取的貓的圖像之后,系統(tǒng)經(jīng)過訓練能夠區(qū)分貓和其它目標。如果僅僅做到這種程度,很多已有的模式識別技術都可以實現(xiàn)。這個項目特別的地方在于,沒有人告訴系統(tǒng)說這些圖像是貓。也就是說,這個系統(tǒng)創(chuàng)造了“貓”的概念。這就像我們認人一樣,通過不斷反復的相見,我們才能記得彼此的長相。百度也利用一個近10萬小時的語音數(shù)據(jù)集開發(fā)出一款語音識別系統(tǒng)。據(jù)介紹,這個系統(tǒng)可以在嘈雜環(huán)境下實現(xiàn)81%的準確率。與傳統(tǒng)的語音識別系統(tǒng)不同,這套系統(tǒng)并沒有采取標準的、計算代價昂貴的聲學模型,而是給算法提供豐富的數(shù)據(jù),然后讓它自己去學習,并取得了卓越的性能。
在這些成果的背后,有著一套共同的算法框架,那就是深度學習。前面提到過淺層學習模型,而深度學習,往往含有更深的層次結構。從仿生學的角度來看,著名的諾貝爾獎得主休伯爾和威塞爾在對視覺皮層的研究中發(fā)現(xiàn),大腦皮層是分級處理視覺信息的。大腦皮層17區(qū)即V1區(qū),其中的簡單細胞對邊緣和方向特別敏感。皮層下一級處理單元對形狀比較敏感。而更高級的皮層處理單元將抽象出目標的概念。我們可以認為高層級的特征是由底層級的特征組合得到的。越是低層,特征越簡單,如一些直線、斜線、曲線等。越是高層,特征越抽象,越接近所要表達的意圖。舉個簡單的例子,我們都知道,從字到詞,再到句,到語義,是層層深化的過程,這就是一個典型的深層結構。我們回到圖像分析的范疇,對于一個圖片來說,最低級的特征是像素,也就是0到255的矩陣。我們通過像素,無法理解圖片里的目標是什么。我們從像素中找到了邊緣特征,然后用邊緣特征組合成不同的部件,最后形成了不同種類的目標物。顯然這個是我們所想要實現(xiàn)的。
分層特征學習示意圖
2006年加拿大多倫多大學教授辛頓在頂尖的學術期刊《科學》上發(fā)表了一篇關于深度學習的論文,在學術界引起了巨大的反響。文章指出,深層的人工神經(jīng)網(wǎng)絡所學習的特征具有更強的表示能力,更有利于目標分類。深度學習初期是一種無監(jiān)督的特征學習算法,減少了人工干預的步驟,通過多層迭代得到更優(yōu)的特征。本質上,深度學習也是一種非線性變換,但通過多層嵌套,更適合應用于對大數(shù)據(jù)內部關系的表示。
近年來,深度學習在語音識別、圖像識別、自然語言處理等應用中取得了顯著的成效。但是在安防行業(yè),深度學習剛剛起步。筆者注意到,已經(jīng)有很多安防企業(yè)開始投入資源開發(fā)基于深度學習技術的算法、產品??梢姡疃葘W習正影響著安防企業(yè),影響著智能視頻分析技術。接下來我們將從幾個行業(yè)應用來分析深度學習的前景。
大家一定看過類似的新聞報道,說“某某大學/企業(yè)研發(fā)的人臉識別算法在LFW數(shù)據(jù)庫上擊敗人類”。首先需要指出的是,在LFW數(shù)據(jù)庫官方網(wǎng)站上排名靠前的算法大多采用深度學習算法,如香港中文大學的DeepID算法、Face++公司的Face++算法、谷歌公司的FaceNet等。但是,這個結果只能表明在特定數(shù)據(jù)集、特定測試環(huán)境下的算法性能。事實上,在安防領域的人臉識別還沒有達到理想的效果。究其原因,視頻中的人臉處在一種非常復雜的狀態(tài)。光照、姿態(tài)、表情、飾物、分辨率等都影響著人臉識別算法。已有的訓練算法,或者說已有的訓練數(shù)據(jù)無法調整出一個具有很強泛化能力的算法模型。未來的人臉識別模型如果想要取得突破,一方面需要更多更豐富的樣本數(shù)據(jù),如各種光照、姿態(tài)、表情下的人臉圖像。誰掌握了大數(shù)據(jù),誰將搶奪先機。另一方面,深度學習模型還需要進一步優(yōu)化。深度模型的理論性還需要加強。到底什么樣的模型才算是最優(yōu)的表示,目前并沒有很好的答案。
非約束條件下LFW戶外人臉數(shù)據(jù)集比對結果
作為智能交通的一個典型應用,車輛特征識別一直是安防廠商重點關注的技術領域。早期的車輛特征通常為車牌號碼和車身顏色等。前幾年各大廠商推出的產品都能對車牌號碼和車身顏色進行準確識別,但對于車輛品牌和車型系列這些更加復雜的信息特征,并沒有很好的識別手段。近兩年,深度學習技術興起,很多廠商利用大規(guī)模的數(shù)據(jù)集訓練取得了實質性進展。目前行業(yè)水平已經(jīng)可以達到上千種車系和上百種車標的識別。識別的準確率也已達到實用程度。今后的智能交通設備所能提取的車輛特征將更加豐富,將有助于提升業(yè)務部門的工作效率,推動智能交通行業(yè)的發(fā)展。
車輛特征示意圖
深度學習還有很多應用場景,只要涉及到目標檢測、目標識別的地方,理論上都可以應用深度學習來解決。就像百度首席科學家吳恩達在一些報告中提到的,深度學習可以取代現(xiàn)有的很多特征提取、目標檢測技術。在未來,深度學習技術將與安防應用碰撞出更多的火花。
智能視頻分析技術從產生開始,一直備受關注。經(jīng)歷了起初的期待,走過了應用的無奈,到如今重新審視技術本身,智能視頻分析確實還有很長的一段路要走。深度學習和大數(shù)據(jù)為智能視頻分析技術提供了前進的方向。我們也期待,未來有更多新的、合理的模型出現(xiàn),為我們提供可用的方法,讓設備真正擁有“智能”,讓安防真正成為大家心目中的“智能安防”。