宙視達專業視頻結構化及千萬級人臉庫比對服務器系統架構及優勢說明
整個系統采用中間件服務器也即解析服務器,實現了端云結合的體系架構。充分的發揮了前端智能攝像機的邊緣計算作用,將大量沒有人經過的視頻幀進行了過濾,每路視頻25幀*60分*60秒*24小時=216萬張幀,有人經過的可能只有2000-5000張,智能攝像機就是把這幾千張照片找出來,也充分的發揮了具有專業計算能力的結構化服務器在算法上的絕對優勢,讓整個系統的可用性及監控監管的力度大幅度的提升。
具備有行業最完整的21項屬性102個不同值的結構化檢測能力,性別:不確定、男性、女性。年齡階段:不確定、幼兒、青年、中年、老年。戴眼鏡:不確定、戴眼鏡、無眼鏡。使用手機:不確定、未使用手機、使用手機。背包:不確定、無背包、單肩包、雙肩包。撐傘:不確定、打傘、未打傘。帽子:不確定、無帽、普通帽、安全帽。吸煙:不確定、吸煙、未吸煙。交通工具:不確定、沒坐車、摩托車、自行車、三輪車、無交通工具。手提物:不確定、有提、無手提物。上裝大類:不確定、長袖、短袖。上裝顏色:不確定、紅色、橙色、黃色、綠色、藍色、紫色、粉色、黑色、白色、灰色、棕色。上裝紋理:不確定、純色、圖案、碎花、條紋或格子。上裝細分:不確定、T恤、無袖、襯衫、西裝、毛衣、夾克、羽絨服、風衣、外套。下裝種類:不確定、長褲、短褲、長裙、短裙。下裝顏色:不確定、紅色、橙色、黃色、綠色、藍色、紫色、粉色、黑色、白色、灰色、棕色。遮擋:不確定、無遮擋、輕度遮擋、重度遮擋。身體朝向:不確定、正面、背面、左側面、右側面。是否殘疾:不確定、正常人體、非正常人體。上方殘疾:不確定、有上方截肢、無上方截肢。下方殘疾:不確定、有下方截肢、無上方截肢。
中間件服務器不僅只是將攝像機的圖片流,推送給結構化服務器,這中間需要一個緩存與調度機制,把結構化服務器的作用最大化。而且所有的照片存儲,檢索,回放等功能,也由中間件服務器來實現。使得結構化服務器只需完成最原始的智能分析即可,通過API把計算能力提供給中間件服務器,而邊緣計算攝像機也只需完成最基本的人車檢測即可,無需承載復雜的算法。而中間件服務器的功能定義,及向上級平臺的接口。
整個系統采用中間件服務器也即解析服務器,實現了端云結合的體系架構。充分的發揮了前端智能攝像機的邊緣計算作用,將大量沒有人經過的視頻幀進行了過濾,每路視頻25幀*60分*60秒*24小時=216萬張幀,有人經過的可能只有2000-5000張,智能攝像機就是把這幾千張照片找出來。也充分的發揮了具有專業計算能力的人臉比對服務器在算法上的絕對優勢。
可對人臉進行分析,獲得眼、口、鼻輪廓等72個關鍵點定位準確識別多種人臉屬性,如性別、年齡、表情、情緒,正臉系數等信息。該技術可適應大角度側臉,遮擋,模糊,表情變化等各種實際環境。通過模式匹配的方式,512個特征征相當于512個字段,即相當于數據庫查詢的方式實現千萬級人員庫的秒級檢索。
中間件服務器不僅只是將攝像機的圖片流,推送給結構化服務器,這中間需要一個緩存與調度機制,把比對服務器的作用最大化。而且所有的照片存儲,檢索,回放等功能,也由中間件服務器來實現。使得比對服務器只需完成最原始的比對即可,通過API把計算能力提供給中間件服務器,而邊緣計算攝像機也只需完成最基本的人臉檢測即可,無需承載復雜的高精度的比對算法。 智能人臉中間件識別服務器
中間件服務器同時也承載了應用層的一些比對邏輯,在以圖搜圖或陌生人軌跡的應用場景中就發揮了很大的作用。本項目610個攝像機一年產生了1.8億張照片,常規的系統架構是需要把1.8億張照片保存在比對服務器中。檢索的時候需要超高性能的服務器,將提供的照片與在一秒或幾秒與抓拍保存的這1.8億張照片進行比對。提供的照片可能是5年前的證件照,即便這個人在1.8億張里有100張照片,大部分的非正臉照片也是比對不成功的,達不到85%的相似度。
而我們通過中間件服務器的方案,在比對服務器中只需保存不重復的最多1000萬個人員的臨時模版,而且每個模版都是當前在這610個攝像機前經過所抓拍的最為正臉的照片。每抓拍到一張照片,就去比對服務器中檢索,如果不存在則新建一個模版。如果存在且當前所抓照片正臉系數比庫中的還要高,就替換為剛抓的照片,如果要低則只返回ID號。實現了抓拍的當時對所有的照片已經進行了清洗,已經標注了一個唯一的FACEID,只是臨時的,沒詳細的身份信息,但活動的頻率與軌跡已經是在存入抓拍記錄時就計算好了的。
對這1.8億張照片進行檢索時就優化為,從1000萬張正臉的臨時模版中去找到這個臨時的FACEID,再根據這個FACEID去抓拍記錄中進行數據庫級別的查尋,速度可以在秒級。同時5年前的照片與最正臉的當前照片比對容易成功,而這個最正臉的照片與這610個攝像機中100張照片,都能比對成功。同樣的攝像機抓的最正臉的模版,與第二次經過類似場景的照片,相似度可以達到百分之百。
三、高性能檢索服務器 動態人臉分析識別中間件服務器
檢索服務器是整個系統結構化后非多媒體數據的集中存儲服務器,人形結構化的屬性特征及各中間件服務器的人臉抓拍記錄的保存,但并不包含任何圖片及視頻數據,建立高性能的索引,保證對上十億條標準線性數據的秒級檢索。1年有1.8億條抓拍記錄,1年產生的人形結構化數據至少是人臉數據的兩倍為3.6億條,1.8+3.6=5.4億條數據。適當做些性能的冗余,面對突發性的數據增漲。10億條記錄平均每條記錄按100個字節,即93GB。整個存儲量相對于視頻錄像來說并不算大的,并發寫入的速度也不會太大,但檢索的效率要求極高。存儲的硬件自然要求比較高,數據庫產品的選擇也很重要,但應用層的一些策略更起決定性作用。
標準的數據庫是針對企業級應用,不僅有增加刪除,而且有更新動作。但人臉抓拍記錄,及結構化數據都是具有嚴格的時間先后順序,完全線性的存儲。而且各通道之間也是完全孤立,沒有任何關聯性的,這些數據也是不可攥改的。針對這樣的特性,我們完全可以把它按功能分割成不同的數據表,不同的數據庫,或不同的數據庫服務器。高性能檢索服務器正是在不成倍的增加硬件成本的前提下,實現十倍以上的速度提升,在應用層做深度的定制。
周期性的刪除一年前或是三年前的記錄,用簡單的刪除語句,就算是一個月刪除一次,也是上億條記錄,如果集中到一個數據庫,一張表,可能需要數分鐘的時間,而且會留下大量的碎片空間,長時間穩定運行很受影響。目前的數據庫產品,要找到針對性解決這個問題的并不容易。我們在應用層就可以輕易解決這個問題,采用截斷表或是刪除表的方式,速度極快,可以達到毫秒極,相當于Format /q的作用是一樣的。我們每個月建立一張獨立的表格,從安防的應用場景來看,檢索的時候一般也是有一定時間周期的,只要檢索的時候根據時間段分別從不同表格去檢索,最后匯總即可,我們就可以按表格來截斷或是刪除即可。這樣不僅刪除的速度可以達到秒級,寫入的速度也會極大的提升。
這樣的技術方案,即便是十年時間而且攝像機的數量達到十倍以上,達到1000億條記錄,通過2-3臺服務器集成的方式,將不同的攝像機分布在不同的服務器上,也是可以達到同樣的秒級檢索的要求的,成本只需要按單臺服務器承載數量的倍數增加即可。