李良熹 榮進國



摘要:研究野生動物生活習性所部署的視頻監控設備,由于網絡條件限制,通常只能將視頻保存在存儲設備中,由研究人員定期取回分析。大量的無效視頻一方面影響監控設備的續航能力,一方面需要耗費大量的時間進行分析。使用目標識別算法賦予監控系統智能,對視頻進行預處理,自動識別和保存包含目標動物的視頻,可以提高監控設備的續航能力,降低研究者在視頻中搜尋目標動物的工作量。本文以視頻監控系統的智能化為研究目標,提出一種在邊緣計算硬件上部署輕量級目標識別算法對包含目標動物的視頻進行智能保存的方法。經過仿真實驗,使用該方法可以提高視頻監控設備的續航能力,減少后期人工處理的時間。
關鍵詞: 目標識別; 深度學習; 智能視頻監控; YOLO; 百度飛槳
中圖分類號:TP391? ? ? 文獻標識碼:A
文章編號:1009-3044(2021)28-0001-03
開放科學(資源服務)標識碼(OSID):
A Design of Intelligent Video Surveillance System Based on Target Detection
LI Liang-xi,RONG Jin-guo
(Chongqing Technology and Business Institute, Chongqing 401520,China)
Abstract:Video surveillance system for monitor wildlife usually save video clips in storage device because of network conditions. But most of the saved videos are invalid and need a lot of time to analyze. Target recognition algorithm can give video surveillance system intelligence, and only save the video when a specific wildlife is recognized. This paper presents an intelligence surveillance system using edge computing to recognize wildlife. Through testing, surveillance system with object-detection algorithm can effectively save a lot of storage space and reduce search time when locating the wildlife in video clips.
Key words:object detection; deep learning; intelligent video surveillance; YOLO; PaddlePaddle
生物多樣性是確保生態環境的關鍵,任何一種生物的滅絕,都會帶來一系列的鏈條式反應,引起生態環境的逐漸崩潰,保護野生動物就是保護人類自己。70年來,我國建立了2750個自然保護區,其中國家級有474個,自然保護區的總面積達到147萬平方公里,占到陸域國土面積的15%,面積廣大人煙稀少。
研究野生動物的分布、行為生態是對野生動物進行有針對性保護的關鍵之一,非侵入式監測是對野生動物進行監測的基本要求,數字影像技術是實現這一基本要求的重要途徑之一。我國從20世紀90年代中期就開始使用紅外相機技術在云南省高黎貢山地區研究物種分布和活動模式的研究[1]。隨著對數據的要求越來越高,視頻監控系統被廣泛應用于野生動物的監控。在有條件的保護區通常部署實時視頻監控系統,通過無線網絡實時上傳數據到服務器,而在缺乏條件的保護區通常部署硬塑料保護的視頻監控設備,將數據保存在固態硬盤中,由研究人員定期取回分析,這種方式對視頻監控設備的功耗和存儲能力都提出了巨大的挑戰。另外,由于取回的大部分視頻數據都是沒有野生動物出現的無效視頻,研究人員需要花費大量的時間來分析和識別視頻。
為了延長視頻監控設備的續航時間,非實時視頻監控設備通常采用“陷阱法”來觸發錄制,常用的陷阱法包括紅外線探測器、動作傳感器或者其他光感作為觸發機關[2]。這些方法都無法有針對性地進行觀測,任何風吹草動都可能觸發錄制。本文提出一種基于目標識別的智能視頻監控方法,通過在嵌入式設備上部署輕量級目標識別算法,智能地識別所研究的野生動物,當特定的野生動物出現在鏡頭前時,智能地開始保存視頻。通過使用視頻進行仿真驗證,該方法能有效地提高視頻監控設備的續航能力,極大地減少后期篩選和識別的時間,具有很好的應用價值。
1 方案設計
1.1硬件設計
在視頻監控終端部署AI智能算法,需要綜合考慮功耗和運算速度[3],同時還需要考慮到硬件對深度學習框架的支持[4]。Jetson TX2是英偉達公司推出的嵌入式AI超級計算模塊,只有一張信用卡大小,配置有NVIDA Pascal GPU和8G顯存。其嵌入式、高性能的特性,使得在終端設備上使用深度學習進行目標識別成為可能。TX2提供兩種運行模式,在MAX-Q均衡模式下,能效比最高,功耗僅為7.5瓦,而當運行于MAX-P強效模式下時,性能最高,功耗在15瓦左右。
Jetson TX2自帶32G eMMC存儲,在部署了深度學習算法后剩余12G左右空間,不足以保存視頻數據。我們使用載板上提供的兩種擴展接口進行擴展,其中SD card插槽支持256G的Full-Size SD卡,SATA接口可以使用SSD固態硬盤存儲數據。
Jetson TX2支持多種接口的攝像設備,可以配備USB相機或者CSI相機。USB相機的優勢在于易于整合,支持長距離工作,在不使用USB Hub的情況下線纜可以長達3米-5米,對于野外部署視頻監控設備有一定的優勢。而CSI相機的優勢在于可以提供更高的分辨率,通過TX2的專用MIPI CSI-2接口可以降低CPU的處理時間。
經過綜合權衡,在實驗室環境中使用TX2 + USB高清攝像頭 + SD卡方案進行系統仿真驗證,生產環境則使用 TX2 + CSI相機 + SSD固態硬盤方案。
1.2目標識別算法設計
YOLO(You Only Look Once)是一種基于深度神經網絡的目標檢測和定位算法,其最大的特點是運行速度很快,可以用于實時系統[5]。YOLO是一種端到端的One Stage算法,將提出候選區和目標識別放在一個步驟中完成。Yolov3算法在Yolov1和YOLOv2的基礎上,加深了網絡結構,利用多尺度特征進行對象檢測,在保持速度優勢的前提下,提升了預測精度,增加了對小物體的識別能力[6]。
百度飛槳是中國首個自主研發、開源開放的深度學習框架,可以輕松的部署到不同架構的設備上。PaddleDetection飛槳目標檢測模塊,實現了多種主流目標檢測算法,提供了豐富的數據增強策略、網絡模塊組件(如骨干網絡)、損失函數等,并集成了模型壓縮和跨平臺高性能部署能力,成為我們的首選深度學習框架。在百度飛槳框架上對YOLOv3模型進行改進,可以取得流暢的識別效果和識別精度。
1.3視頻輸入輸出設計
使用OpenCV獲取USB攝像頭的視頻流數據,由于我們這里并不需要保存帶有識別結果框的視頻,我們對視頻保存代碼進行了修改。在內存中循環緩存一個長度為3秒的視頻片段,當目標檢測算法檢測到目標動物出現時,記錄動物的出現時間和離開時間,并從檢測到目標動物前3秒開始將視頻保存到持久存儲設備。如果在3秒內都未檢測到目標動物,則停止持久化視頻數據,進入循環檢測模式。
2 模型訓練
2.1 數據預處理
我們使用AWA2(Animals with Attributes 2)數據庫中的野生動物數據在原始的權重文件上進行再訓練。AWA2數據集由50個類別的37322個圖像組成,包含大象、老虎、斑馬、蜘蛛猴等多種野生動物。我們從中挑選出長頸鹿的圖片共1202張作為我們的原始數據,每張圖片進行左右翻轉,共得到2404張圖片。
這些圖片再使用Labelimg標注工具進行手工標注,標注為只包含單類別的YOLO的txt格式。
標注好的圖片,采用K折交叉驗證法隨機選取其中的2204張作為訓練集,其余的200張作為驗證集。在訓練之前,先對標注好的圖片進行Anchor重聚類,得到適合檢測長頸鹿的Anchor框大小,原始的Anchor大小和經過聚類后得到的Anchor框大小見下表:
2.2 模型選擇
我們使用PP-YOLO_MobileNetV3_large輕量級模型[7]作為baseline進行模型的再訓練,使用特定的野生動物數據在預訓練好的模型上進行再訓練,可以有效的提高泛化能力。MobileNet相對于YOLO-tiny來說層數更深,但是計算量維持較小,是Google推出的針對移動端進行優化的輕量型網絡結構。使用MobileNetV3作為backbone,可以在精準和效率上取得平衡。
MobileNetV3綜合了V1的深度可分離卷積、V2的逆殘差結構,并使用輕量級注意力機制來優化性能,使用h-swish激活函數代替swish函數來降低運算量[8]。
2.3 遷移學習
PP-YOLO_MobileNetV3_large使用COCO2017作為訓練集,當我們需要使用AWA2數據集學習識別特定的動物時,需要進行遷移學習。我們去掉了預訓練模型的最后一層,添加新層用于學習是否目標動物。由于我們只需要判斷目標動物是否出現,所以需要修改多分類損失函數為二分類交叉熵損失函數[9]。
為了盡可能的保留在COCO數據集上的學習成果,我們凍結了預訓練模型的基礎層,充分訓練后再使用非常小的學習率進行微調[10],經過微調得到的模型作為野生動物識別的基本模型。
2.4 抽幀檢測
由于相鄰的幀基本上是相同的,我們并不需要對每一幀都調用目標檢測算法。常用的抽幀算法有兩種,一種是按比例抽幀,一種是按FPS抽幀。在智能視頻監控系統中,為了保證目標識別算法的流暢,我們選用按FPS進行抽幀。在視頻處理模塊中加入參數 fps_rate_max,如果視頻的FPS大于fps_rate_max,則按照fps_rate_max進行抽幀檢測。抽幀檢測可以極大地降低系統的運算壓力,提高檢測的流暢度。
2.5 模型部署
在深度學習服務器上訓練完成的模型,使用PaddleSlim進行模型壓縮和量化后,使用TensorRT部署到Jetson TX2上[11]。NVIDIA TensorRT 是英偉達為NVIDIA GPU設計的高性能深度學習預測庫,可為深度學習推理應用程序提供低延遲和高吞吐量,通常可以提高圖像分類任務的推理速度3-6倍,PaddlePaddle采用子圖的形式集成了TensorRT。經過測試,在不使用PaddleSlim和TensorRT進行加速的情況下,只能達到14fps,而使用了加速后能夠達到42fps。
3 實驗仿真
3.1 動物世界視頻測試
根據實際測試需要,我們從購買的動物世界、國家地理、人與自然、生命禮贊、與猛獸同行、地球脈動等紀錄片光盤中人工挑選了12段視頻作為驗證數據集進行測試。對于選中的測試視頻,手工標記視頻中長頸鹿出現的時間點和離開鏡頭的時間點,和智能視頻系統所保存的視頻進行回放對比。下面是《動物世界》 20181215 勇敢的長頸鹿(上)中截取的10分鐘視頻片段進行仿真測試的結果:
圖3為智能識別監控系統錄制的視頻還原到原視頻時間軸的結果。可以看出,智能視頻監控系統能夠有效地對目標動物進行識別,并智能地進行視頻的保存。在實際工作場景下,目標動物的出現不會如此頻繁,智能監控系統可以更大地節省存儲空間。
3.2 結果分析
重新為保存的視頻加上識別框后,結合日志進行檢查,發現模型在目標動物密集的時候存在漏檢現象,另外在視頻片段開始21秒處有長頸鹿在水中的倒影并沒有被識別到。由于智能視頻監控系統只需要識別到目標動物的出現,當目標動物密集出現時的漏檢現象并不會影響到系統的可靠存儲。動物倒影的漏檢,是由于做數據增強的時候沒有考慮到可能會出現上下顛倒的長頸鹿,經過進一步的數據增強,增加了上下顛倒和旋轉的數據集后,系統能夠對倒影進行識別。
同時,對視頻的目標識別算法常見的問題是無法達到足夠的幀率,相對于行人識別等對fps敏感的場景,野生動物的識別可以采用抽幀識別的方法,大大地降低了系統的運算壓力,這也是能夠將YOLO目標識別算法實際應用到智能視頻監控系統上的主要原因之一。
4 結語
將基于邊緣計算的目標識別算法引入智能監控系統,可以為監控系統帶來更多的智能。相對于傳統的紅外陷阱法和動感陷阱法,實時的目標識別方法能讓相機更加有針對性的識別到特定的目標出現。智能的視頻數據保存算法,進一步地確保了監控的可靠性。實驗表明,本文所設計的智能監控系統能夠大幅的提高視頻監控設備的續航能力,降低研究人員后期分析大量視頻所需要耗費的時間。
參考文獻:
[1] 張明霞,曹林,權銳昌,等.利用紅外相機監測西雙版納森林動態樣地的野生動物多樣性[J].生物多樣性,2014,22(6):830-832.
[2] 肖治術,李欣海,姜廣順.紅外相機技術在我國野生動物監測研究中的應用[J].生物多樣性,2014,22(6):683-684.
[3] 孫潔,錢蕾.基于邊緣計算模型的智能視頻監控的研究[J].計算機與數字工程,2019,47(2):402-406.
[4] 孔令軍,王銳,張南,等.邊緣計算下的AI檢測與識別算法綜述[J].無線電通信技術,2019,45(5):453-462.
[5] Redmon J,Divvala S,Girshick R,et al.You only look once:unified,real-time object detection[C]//2016 IEEE Conference on Computer Vision and Pattern Recognition (CVPR).June 27-30,2016,Las Vegas,NV,USA.IEEE,2016:779-788.
[6] Redmon J,Farhadi A.YOLOv3:an incremental improvement[EB/OL].2018:arXiv:1804.02767[cs.CV].https://arxiv.org/abs/1804.02767
[7] Long X,Deng K P,Wang G Z,et al.PP-YOLO:an effective and efficient implementation of object detector[EB/OL].2020
[8] Howard A,Sandler M,Chen B,et al.Searching for MobileNetV3[C]//2019 IEEE/CVF International Conference on Computer Vision (ICCV).October 27 - November 2,2019,Seoul,Korea (South).IEEE,2019:1314-1324.
[9] 宋非洋,吳黎明,鄭耿哲,等.基于MobileNetV3的結構性剪枝優化[J].自動化與信息工程,2019,40(6):20-25.
[10] 邵偉平,王興,曹昭睿,等.基于MobileNet與YOLOv3的輕量化卷積神經網絡設計[J].計算機應用,2020,40(S1):8-13.
[11] 殷迅.基于嵌入式GPU平臺深度學習算法的加速與優化[D].上海:上海交通大學,2019.
【通聯編輯:唐一東】