應用層面
將停車場的場景分成兩類:『車輛進出車庫』和『車子在停車場內』。當車輛進出車庫時,需要取得清晰的車牌影像,以確保可獲得正確的訊息進行車庫的車輛管制,因此對攝影機的影像解析度要求比較高,而攝影機的視野也需要定期校正;當車輛進入車庫後,根據車庫的空間使用目的分成『停車格』和『車道』兩個區域,假設正常情況下,在停車格裡的車輛應該為靜止的狀態,而在車道的車輛應該為行徑狀態,此時進行影像處理時,會依據區域將影像分割、剪輯,在車道上的車子會標註成『移動中』、而在停車格內的車子則為『停車靜止』,藉由區域劃分,再決定是否針對偵測到的車輛進行物件追蹤。
技術層面
將即時影像上傳到Wowza,透過影音串流,使用DeepStream的深度學習網絡分析影像內容,再將訊息經由Kafka分發給客戶端,一方面使用Scala Spark進行串流分析,包括資料的擷取、轉換、和載入,及商業邏輯分析,另一方面將原始訊息和串流分析的結果儲存在Elasticsearch中,供網頁應用程式進行資料讀取及視覺化。
DeepStream為深度學習的電腦視覺應用提供端到端的解決方案,運行在NVIDIA的顯示卡上。DeepStream的底層是Gstreamer的架構,負責將影像「處理」和「分析」的流程模組化。
「處理」包括:
(一)影像檔案的編解碼 — encode, decode
(二)魚眼校正 — dewarp
(三)影像畫面分割及剪輯 — segmentation, concatenation;
「分析」包括:
(一)採用深度學習方法進行物件偵測和分類 — object detection and classification
(二)採用深度學習方法進行物件定位 — object localization
(三)單一攝影機或多台攝影機進行物件追蹤 — object tracking
(四)使用TensorRT進行模型優化 — optimization;
TensorRT是用來「優化」模型進行結果推斷。
「優化」包括:
(一)數值的精度單位校正,單位可以選擇FP32、FP16、INT8 — precision calibration
(二)將執行相同運算的網絡層融合,使得內核的調用更有效率、減少所需的內存 — layer and tensor fusion
(三)可同時處理多個串流訊號 —multi-stream execution
