雷鋒網按:智慧城市已被談及多年,「視頻監控+AI」也成為眾多公司研究的方向。
但現階段,通過監控攝像頭讓城市變得更智智慧,不僅僅是單一的視頻檢索和計算機視覺問題,而是在面臨海量信息和突發事件時,能否能迅速做出反應、能否降低計算量、能否有效識別和檢索等一系列龐大的系統工程。
現有視頻監控體系的弊病,使得很多複雜任務無法完成,即便是人工智慧大規模滲入後,需求方也往往為了一些特殊目的才加特定的智能攝像頭和處理系統。
有些專用攝像頭只是用來識別車牌號,有些攝像頭只用來識別人臉,這種打補丁式的方法實際會帶來很多問題。
針對這些問題,中國工程程院院士、北京大學教授高文給出了他的指導意見和解決方案,以下是高文院士講話內容,雷鋒網編輯整理。
(本文由高文院士親自審改)
杭州是國內智慧城市做得比較好的城市,有一些區域也在試驗「城市大腦」系統。
杭州城市大腦的過去與現狀我們先來看下杭州城市道路的數據:
目前杭州大概有600多條線路、5萬條道路、8萬多個路口。這些路線上有著200萬輛車,其中包括9000輛公交車,每天的乘客流量高達390萬。
在如此大規模且極其複雜的系統裡,要做好規劃和管理實際上非常艱難。
這是杭州智慧城市使用城市大腦系統所做的整體規劃:
過去城市智能交通的規劃方式,根據每個路口的交通狀況做分析,然後給出模型,這些環節需要規劃每個信號燈紅黃綠應該各維持多長時間。但這種方式只能做到局部區域的優化,無法達到整個城市的全局優化。
那麼如何來控制紅綠燈的時間?
下圖是他們通過雲計算把城市的信號燈規劃重新調整以後得到的結果,大家可以看到城市交通狀態分成低保和、中報和、準飽和三個階段:
1、最好的是低飽和,路上車不多
2、其次是中飽和,路上車輛數量正好
3、最差是準飽和,車幾乎無法行駛
之前汽車在杭州這條線路的行駛速度分別是37公裡、30公裡和22公裡,經過全局優化後,這條線路的平均速度為43公裡、35公裡和26公裡,整體提速17%。
在沒有對道路進行調整的情況下,只對信號燈控制做了優化就能提速17%,這非常了不起。
具體是如何做得優化?杭州市通過城市交通管理雲進行規劃,除了規劃信號燈本身外,還架設了攝像頭。
攝像頭每時每刻都在拍路面,並計算車的佔有率(即每百平方米路面中車的數量),基於此來判斷每條道路的飽和程度,然後對信號燈進行優化。
把一個月全天24小時的數據輸進去後,重新進行計算。但這些數據往往不一樣,因此需要有一個數據交換平臺。
數據交換平臺上是算法平臺,再上層才是應用和服務平臺。
上述提到的內容和PPT便是整體交通的優化,當然,這裡面不少也與視頻有關,涉及到各種各樣的模塊。如果信號進來,它在攝像頭上做編碼,傳到雲端做解碼,解碼後再去提取特徵、做分析等,這是常規的流程。
但這樣的系統怎麼樣?是不是一個理想智慧城市系統?我的答案:不是。
怎樣才是理想型的智慧城市系統?剛才談到的那種方式,根據以往的數據來做調度規劃,總體不錯,但對突發事件無法及時做出判斷。
最理想的方式不僅可以通過以往的數據統計進行決策、進行查詢,而且也可對實時的數據進行處理、分析。
世界各地的緊急事件發生時,系統整體的響應速度實際都比較差。
為什麼?主要因為現在整個視頻監控體系本身造成。
視頻監控體系的三個問題現在的視頻監控系統,從一開始就面臨數據量太大、存儲量太大,查找數據不易等一系列挑戰,這些挑戰可以歸納成三個問題:難存儲、難檢索、難識別。
1、存儲成本高
存儲成本高的主要原因就是數據量太大,而且要求存的越久存儲成本就越高。
為了加快速度,減低成本,通常做法是往狠裡壓縮,同時縮短視頻存儲周期:縮短到兩周,之後數據逐漸把前面數據慢慢覆蓋掉。
2、檢索困難
之所以不能進行實時反饋,是因為目前的監控體系都是為存儲而設計。
把數據存到庫裡,是監控體系的第一要務。什麼時候你要用,常規的做法就是把數據提出來,解開,然後再做後面的處理。這就導致存儲時已經丟掉了很多東西,在此基礎上再去做識別效果會比較差。
3、對象再標識難
儘管視頻錄下來了,但A攝像頭錄的信息你找到了,不見得在B攝像頭上能對得上,這也是一個非常難的挑戰。
針對這些挑戰,我們必須想辦法找一個更好的方案來解決現有智慧城市系統面臨的問題。
這時候,我們不僅要把東西存儲起來,而且能夠實時對任何想識別、想搜索的信息進行實時操作。
現在的系統主要是用攝像頭把視頻抓進來後壓縮,傳出去,然後存起來。
在很多設有卡口的道路,專門安裝了卡口伺服器,以此來識別車牌號。有些道路還專門安裝高清跟蹤攝像頭,用於蹤人和車。
上述情況往往是為了一些特殊目的才加的攝像頭和處理系統。
這種打補丁式的方法實際會導致很多問題。
簡單來說就是你有A需求,便裝一個系統,你有B需求,於是再裝另外一個系統,然後把所有任務抓取的視頻都推到雲端,這就是現有系統通常採用的設計模式。
我把它叫做「1-1模式」。
不斷「打補丁」的監控系統「1-1模式」存在很多問題,其中包括數據之間的同步,將來需要統一的數據很多,如果在系統裡想做交叉檢索,時間差維度上,對接起來會比較困難。
除此之外,因為時間點的不同,對應要手工加很多東西,加工結果是否是系統能規範化、標準化的也非常難說,而且這樣的系統很容易造成一些問題。
如果只是存儲問題,但沒及時分析,很容易導致辨識時間較長,因為你把編碼通過網絡送到存儲端,如果要用的話,還要解碼,要做特徵提取、特徵分析識別等,一系列流程下來,實際上很耗費時間。
而且一旦存在硬碟裡,還存在部分信息讀取不到的可能,這就會導致更大的問題。
「1-1模式」存在的另一個不足就是準確性比較低,這是所有問題裡最嚴重的。
當視頻做完壓縮後再去識別,它的性能比不壓縮要差,也有損失。
我舉幾個例子:
從上圖可以看到,壓縮幅度的不同,使得從左到右圖像清晰度越來越差。當給它一個量化參數時,觀察QP27、QP32、QP38,數字越大,實際上壓得越狠,信息出錯的概率也越大。
那麼QP值壓縮參數選多少比較合適?
不同的標準多多少少是有差別的,我們做了一個測試(參考上圖)。
如果採用H.265/AVS2(關閉背景模式)的標準,把AVS2模式打開後,碼率(Bitrate)值會很高。把模式關掉時,我們對50P的高清視頻進行測試,通過QP參數值25、32、38、40、51、63來設定,設定以後,對應視頻流的碼率紅色區域從13MB到5MB、2.4MB,下方藍色區域為1.3MB、0.7MB、0.3MB。
高清視頻一路無需1MB,700K就已足夠。700k和300k差不多也就需要QP50到60之間的壓縮能力。
這個能力壓縮到這一值上是很糟糕的情況,後來我們做大量的分析實驗發現,發現QP取值超過38,後期去檢查人、車時,時間利率就會急劇下降。(如下圖)
QP值38是一個拐點,此拐點看上去有點不可思議。
對於50P的高清視頻解析度,為了保證後面的識別最低的碼率為2.4MB,低於這個水平去做識別,質量會比較差。
這件事告訴我們,追求高壓縮率和追求高識別率屬於魚和熊掌不能兼得。壓縮率高了,識別率就隨之下降,而識別率高的前提是減下壓縮率。
除了前面提到的兩個問題外,還存在一大難題是面向存儲的利用率比較低。
每次查找得先解碼,然後再一個個的找,這對伺服器的計算能力要求非常高。因此要想在存儲視頻研究中心或者分中心裡進行大規模檢索查找,實時性往往無法滿足。
大部分情況下,整個數據和算法的利用率極低,如果數據能實時進行檢索和分析,顯然兩者的利用率會更高。
利用率低如何解決?解決利用率低的問題其實很簡單,原來是一個任務安裝一個攝像頭,現在需要把幾個任務集中在一個攝像頭中來做。
目前海康威視研發的少數高端攝像頭可以同時幹好幾件事,未來也一定要這樣做。
為了存儲而做的編碼流的傳統模式是不行的,必須得編碼出來,把所有想要的東西一次得到,然後傳輸到雲端,要怎麼用,不如說給雲端配上足夠的能力,剛才說的問題就都能解決了。
這種新的系統我們把它叫做數字視網膜,也可以叫「慧眼」。
數字視網膜:慧眼
這種慧眼不僅能看,還能夠感知。如果整個社會均由這種慧眼構造成,那系統會非常強大,智慧城市和公安公共視頻的處理也會變得更加得心應手。
實際上承載數字視網膜的攝像頭能做兩件事:
1、做好編碼
2、為後面的識別,提取出需要的信息
但這裡需要注意一點,如果把識別算法直接放在攝像頭裡,會存在問題。攝像頭做的事應該是提取特徵,把後面可能用到的模式識別的特徵提取出來。
當然,也不能用一個攝像頭把人臉和汽車等所使用的具體系統的私用特徵全部提取和傳輸,因為這些特徵加在一起可能比原來的一個碼流還大,相當於傳兩個碼流。
如何解決這個問題?用數字視網膜。
實際上人的眼睛原理和數字視網膜很相似,我們看東西時傳給大腦的信息,實際上並不是具體地實打實的物體影像,而是視網膜給後腦傳輸了生物特徵,在後腦完成。
數字視網膜與人的眼睛既具有影像重構(精細編碼視覺內容),又具備特徵提取(面向識別理解)的功能。
這樣的數字視網膜最終怎麼實現?
原則上這一部分把高效、監控視頻編碼(視頻特徵的緊湊表達),把這些特徵集合起來變成緊湊地給它表達出來就叫做「緊湊表達」。
有了這些東西後,把它應用在其中,傳輸到雲端,這時候就擁有了數字視網膜功能。
這樣做不會多花碼流嗎?不會。
它用了原來同一個碼流解決了兩件事,但前提是視頻編碼略微會有點損失,但它對識別結果的提升比不用這種方式要高很多倍。
整個數字視網膜實際上包含了四方面的核心技術:
1、基於背景模型的場景視頻編碼
2、視頻同步描述整個表達的記錄,同時可結合最近比較熱的深度學習
3、在保證性能的時候,用同一個碼流把兩個任務都傳出去,這需要靠視頻和特徵原有編碼技術的優化形式來解決
4、最後是雲端的檢索,對視頻進行更加合理的描述,以便用於搜索
核心技術一:就是高效的編碼
編碼技術已發展30多年,經歷了三代技術更新。
第一代編碼MPEG-2主要用於廣播電視視頻;第二代編碼標準H.264主要服務於電視和監控,直至今年市場上仍舊有不少產品在使用第二代編碼,而第三代編碼標準則是正逐漸進入市場的H.265。
中國的第一代編碼基本上沒有自己的標準,用的是國外的。從第二代開始有自己的AVS1,第三代有AVS2。就編碼技術世代相比而言,我們國外慢一拍,他們進入第二代時咱們才開始有第一代,所以AVS2相當於國外的第三代標準。AVS2中有一項我們的獨有技術,叫「場景編碼技術」,使用了這個技術的編碼系統,編碼效率比現在第三代又高了接近一倍。所以我們經常開玩笑說,場景編碼技術讓我們提前跨入新一代編碼標準時代。這是我們領先於國外標準的地方。
剛才講的編碼方式,實際上它得到的好處就是在同等情況下,每前進一代,碼流就降低一半,同樣的高畫質電視內容,比如用第一代AVS編要佔用10M帶寬傳輸,用第二代AVS只要編5M帶寬就夠了。
核心技術二:視頻特徵的緊湊表達
如何把這些特徵組織起來?
特徵組織是整個視頻分析中最關鍵的一項,我們希望找到一個快準小的特徵。
· 快:它本身搜索的速度比較快
· 準:搜索準確率高
· 小:尺寸小,所佔用的碼流更少
這個問題已經有了國際標準:CDVS(緊湊視頻特徵描述子),面向視頻搜索的緊縮描述子表達。
CDVS現在已經發展為國際標準了,2016年1月份我們在IEEE T-IP上專門發表了一篇文章介紹了該標準,對此技術有興趣的專家可以找來看看。有了CDVS後,也就是從去年開始,很多人會問這個描述做識別精度怎麼樣,和深度學習比較效果如何。
後來我們試了試深度學習,使用的特徵我們把它稱作深度描述子:用深度學習訓練出來的描述子,測試後發現,這種描述子效果很不錯,基本與手工特徵提取相似。
第三項核心技術:聯合編碼技術
視頻編碼有自己的優化技術,叫做RDO,也就是率失真優化的縮寫。意思是說,在給定碼率的前提下,求出失真最小的編碼參數。不難理解,碼率和失真之間的關係是個蹺蹺板,如果追求碼率低,它的編碼損失就大;如果追求編碼損失小,就得付出較高的碼率。此時需要找到一個最佳點,這個最佳點就是我們所說的優化點,通過下圖我們可以看到,它基本上是一個倒曲線,要在曲線先找到一個點,把「點」確定以後,在這個碼率下能夠得到最小的損失值。
而對於視頻分析或者模式識別來說,我們追求的是識別準確率。也就是說,當識別特徵是在終端(而不是在雲端)提取時,特徵的傳輸也需要佔用碼率。因此優化目標函數為,在給定碼率條件下,求出識別率最高的特徵組合。也就是說,識別優化函數可以表述為RAO,或者說率準確優化,其中R是碼率,A是準確率,O是優化。
現在我們有兩個優化函數需要求解,一個是RDO,一個是RAO。我們可以設計一個聯合優化函數,使得在給定碼率下,所獲得的碼率、識別率是最優的。
例如,當給定700k來傳高清視頻。用這個優化方法會得到,在700k的碼流裡,分配多少給視頻,多少給緊縮特徵,然它組合結果是最好的。這個方法的直接好處是,在編碼損失幾乎可以忽略不計的條件下,分析識別準確率提高10-40%。
現在標準和軟體都具備了,接下的就是如何去做。
做法上,有很多技術路線。我舉個例子,在現有的攝像頭加上CPU或FPGA,把剛說的第二件事放進去,也可以把特徵提取出來。當然,這裡除了編碼和特徵提取以外,還有一個編碼和特徵之間的聯繫優化是非常重要的模塊。
所以,部署時可以先從現有的系統慢慢往裡填補新的,當整個市場啟動以後再幫他們去部署,用晶片來做的解決方案。
隨時間的推移,將來在整個數字視網膜的部署下,我們的系統會越來越好用,而且系統有一好處,如果設計聰明的話,可以軟體升級和軟體定義,這些功能可以通過雲端下載到攝像頭上,修改某些參數表,使得系統裡的技術進一步提高。
當它們能夠運行的時候,我想城市就比較容易治理。
目前我們已經在山東文登有了很長時間的試驗,找出很多套牌車,無牌車、有遮擋牌子的車等。
另外,在路上實時發現一些需要跟蹤、抓的車,進行實時布控規劃和預警,也可在雲端進行,無論是用深度特徵,還是在系統裡深度分析,都可以在馬路上找人等等。
後端可以做一些識別搜索,這個系統現在在重慶也進行了布控實驗,效果也不錯。
所以數字視網膜其實涉及到視頻編碼,特徵編碼也是一體化,叫MPEG CDVS。
如果對一個實際圖像要求特別高,非常較真,但這個地方要用整個視頻流的特徵,這些特徵現在還沒做完、還在做,並且安排了CDVA的工作組。
所以,如果大家對這些事感興趣,我們非常歡迎你們的加入。
在這裡我從以前的一對一模式變成一對多模式,當一對多模式裡有基本的技術標準就位後,可以把這些標準進一步優化,然後嵌入在產品裡把它實現,儘快地實踐和應用,這是我們未來必須要做的一些工作。雷鋒網雷鋒網雷鋒網(公眾號:雷鋒網)
雷鋒網原創文章,未經授權禁止轉載。詳情見轉載須知。