李良熹 榮進(jìn)國
摘要:研究野生動物生活習(xí)性所部署的視頻監(jiān)控設(shè)備,由于網(wǎng)絡(luò)條件限制,通常只能將視頻保存在存儲設(shè)備中,由研究人員定期取回分析。大量的無效視頻一方面影響監(jiān)控設(shè)備的續(xù)航能力,一方面需要耗費(fèi)大量的時間進(jìn)行分析。使用目標(biāo)識別算法賦予監(jiān)控系統(tǒng)智能,對視頻進(jìn)行預(yù)處理,自動識別和保存包含目標(biāo)動物的視頻,可以提高監(jiān)控設(shè)備的續(xù)航能力,降低研究者在視頻中搜尋目標(biāo)動物的工作量。本文以視頻監(jiān)控系統(tǒng)的智能化為研究目標(biāo),提出一種在邊緣計(jì)算硬件上部署輕量級目標(biāo)識別算法對包含目標(biāo)動物的視頻進(jìn)行智能保存的方法。經(jīng)過仿真實(shí)驗(yàn),使用該方法可以提高視頻監(jiān)控設(shè)備的續(xù)航能力,減少后期人工處理的時間。
關(guān)鍵詞: 目標(biāo)識別; 深度學(xué)習(xí); 智能視頻監(jiān)控; YOLO; 百度飛槳
中圖分類號:TP391? ? ? 文獻(xiàn)標(biāo)識碼:A
文章編號:1009-3044(2021)28-0001-03
開放科學(xué)(資源服務(wù))標(biāo)識碼(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
生物多樣性是確保生態(tài)環(huán)境的關(guān)鍵,任何一種生物的滅絕,都會帶來一系列的鏈條式反應(yīng),引起生態(tài)環(huán)境的逐漸崩潰,保護(hù)野生動物就是保護(hù)人類自己。70年來,我國建立了2750個自然保護(hù)區(qū),其中國家級有474個,自然保護(hù)區(qū)的總面積達(dá)到147萬平方公里,占到陸域國土面積的15%,面積廣大人煙稀少。
研究野生動物的分布、行為生態(tài)是對野生動物進(jìn)行有針對性保護(hù)的關(guān)鍵之一,非侵入式監(jiān)測是對野生動物進(jìn)行監(jiān)測的基本要求,數(shù)字影像技術(shù)是實(shí)現(xiàn)這一基本要求的重要途徑之一。我國從20世紀(jì)90年代中期就開始使用紅外相機(jī)技術(shù)在云南省高黎貢山地區(qū)研究物種分布和活動模式的研究[1]。隨著對數(shù)據(jù)的要求越來越高,視頻監(jiān)控系統(tǒng)被廣泛應(yīng)用于野生動物的監(jiān)控。在有條件的保護(hù)區(qū)通常部署實(shí)時視頻監(jiān)控系統(tǒng),通過無線網(wǎng)絡(luò)實(shí)時上傳數(shù)據(jù)到服務(wù)器,而在缺乏條件的保護(hù)區(qū)通常部署硬塑料保護(hù)的視頻監(jiān)控設(shè)備,將數(shù)據(jù)保存在固態(tài)硬盤中,由研究人員定期取回分析,這種方式對視頻監(jiān)控設(shè)備的功耗和存儲能力都提出了巨大的挑戰(zhàn)。另外,由于取回的大部分視頻數(shù)據(jù)都是沒有野生動物出現(xiàn)的無效視頻,研究人員需要花費(fèi)大量的時間來分析和識別視頻。
為了延長視頻監(jiān)控設(shè)備的續(xù)航時間,非實(shí)時視頻監(jiān)控設(shè)備通常采用“陷阱法”來觸發(fā)錄制,常用的陷阱法包括紅外線探測器、動作傳感器或者其他光感作為觸發(fā)機(jī)關(guān)[2]。這些方法都無法有針對性地進(jìn)行觀測,任何風(fēng)吹草動都可能觸發(fā)錄制。本文提出一種基于目標(biāo)識別的智能視頻監(jiān)控方法,通過在嵌入式設(shè)備上部署輕量級目標(biāo)識別算法,智能地識別所研究的野生動物,當(dāng)特定的野生動物出現(xiàn)在鏡頭前時,智能地開始保存視頻。通過使用視頻進(jìn)行仿真驗(yàn)證,該方法能有效地提高視頻監(jiān)控設(shè)備的續(xù)航能力,極大地減少后期篩選和識別的時間,具有很好的應(yīng)用價(jià)值。
1 方案設(shè)計(jì)
1.1硬件設(shè)計(jì)
在視頻監(jiān)控終端部署AI智能算法,需要綜合考慮功耗和運(yùn)算速度[3],同時還需要考慮到硬件對深度學(xué)習(xí)框架的支持[4]。Jetson TX2是英偉達(dá)公司推出的嵌入式AI超級計(jì)算模塊,只有一張信用卡大小,配置有NVIDA Pascal GPU和8G顯存。其嵌入式、高性能的特性,使得在終端設(shè)備上使用深度學(xué)習(xí)進(jìn)行目標(biāo)識別成為可能。TX2提供兩種運(yùn)行模式,在MAX-Q均衡模式下,能效比最高,功耗僅為7.5瓦,而當(dāng)運(yùn)行于MAX-P強(qiáng)效模式下時,性能最高,功耗在15瓦左右。
Jetson TX2自帶32G eMMC存儲,在部署了深度學(xué)習(xí)算法后剩余12G左右空間,不足以保存視頻數(shù)據(jù)。我們使用載板上提供的兩種擴(kuò)展接口進(jìn)行擴(kuò)展,其中SD card插槽支持256G的Full-Size SD卡,SATA接口可以使用SSD固態(tài)硬盤存儲數(shù)據(jù)。
Jetson TX2支持多種接口的攝像設(shè)備,可以配備USB相機(jī)或者CSI相機(jī)。USB相機(jī)的優(yōu)勢在于易于整合,支持長距離工作,在不使用USB Hub的情況下線纜可以長達(dá)3米-5米,對于野外部署視頻監(jiān)控設(shè)備有一定的優(yōu)勢。而CSI相機(jī)的優(yōu)勢在于可以提供更高的分辨率,通過TX2的專用MIPI CSI-2接口可以降低CPU的處理時間。
經(jīng)過綜合權(quán)衡,在實(shí)驗(yàn)室環(huán)境中使用TX2 + USB高清攝像頭 + SD卡方案進(jìn)行系統(tǒng)仿真驗(yàn)證,生產(chǎn)環(huán)境則使用 TX2 + CSI相機(jī) + SSD固態(tài)硬盤方案。
1.2目標(biāo)識別算法設(shè)計(jì)
YOLO(You Only Look Once)是一種基于深度神經(jīng)網(wǎng)絡(luò)的目標(biāo)檢測和定位算法,其最大的特點(diǎn)是運(yùn)行速度很快,可以用于實(shí)時系統(tǒng)[5]。YOLO是一種端到端的One Stage算法,將提出候選區(qū)和目標(biāo)識別放在一個步驟中完成。Yolov3算法在Yolov1和YOLOv2的基礎(chǔ)上,加深了網(wǎng)絡(luò)結(jié)構(gòu),利用多尺度特征進(jìn)行對象檢測,在保持速度優(yōu)勢的前提下,提升了預(yù)測精度,增加了對小物體的識別能力[6]。
百度飛槳是中國首個自主研發(fā)、開源開放的深度學(xué)習(xí)框架,可以輕松的部署到不同架構(gòu)的設(shè)備上。PaddleDetection飛槳目標(biāo)檢測模塊,實(shí)現(xiàn)了多種主流目標(biāo)檢測算法,提供了豐富的數(shù)據(jù)增強(qiáng)策略、網(wǎng)絡(luò)模塊組件(如骨干網(wǎng)絡(luò))、損失函數(shù)等,并集成了模型壓縮和跨平臺高性能部署能力,成為我們的首選深度學(xué)習(xí)框架。在百度飛槳框架上對YOLOv3模型進(jìn)行改進(jìn),可以取得流暢的識別效果和識別精度。
1.3視頻輸入輸出設(shè)計(jì)
使用OpenCV獲取USB攝像頭的視頻流數(shù)據(jù),由于我們這里并不需要保存帶有識別結(jié)果框的視頻,我們對視頻保存代碼進(jìn)行了修改。在內(nèi)存中循環(huán)緩存一個長度為3秒的視頻片段,當(dāng)目標(biāo)檢測算法檢測到目標(biāo)動物出現(xiàn)時,記錄動物的出現(xiàn)時間和離開時間,并從檢測到目標(biāo)動物前3秒開始將視頻保存到持久存儲設(shè)備。如果在3秒內(nèi)都未檢測到目標(biāo)動物,則停止持久化視頻數(shù)據(jù),進(jìn)入循環(huán)檢測模式。
2 模型訓(xùn)練
2.1 數(shù)據(jù)預(yù)處理
我們使用AWA2(Animals with Attributes 2)數(shù)據(jù)庫中的野生動物數(shù)據(jù)在原始的權(quán)重文件上進(jìn)行再訓(xùn)練。AWA2數(shù)據(jù)集由50個類別的37322個圖像組成,包含大象、老虎、斑馬、蜘蛛猴等多種野生動物。我們從中挑選出長頸鹿的圖片共1202張作為我們的原始數(shù)據(jù),每張圖片進(jìn)行左右翻轉(zhuǎn),共得到2404張圖片。
這些圖片再使用Labelimg標(biāo)注工具進(jìn)行手工標(biāo)注,標(biāo)注為只包含單類別的YOLO的txt格式。
標(biāo)注好的圖片,采用K折交叉驗(yàn)證法隨機(jī)選取其中的2204張作為訓(xùn)練集,其余的200張作為驗(yàn)證集。在訓(xùn)練之前,先對標(biāo)注好的圖片進(jìn)行Anchor重聚類,得到適合檢測長頸鹿的Anchor框大小,原始的Anchor大小和經(jīng)過聚類后得到的Anchor框大小見下表:
2.2 模型選擇
我們使用PP-YOLO_MobileNetV3_large輕量級模型[7]作為baseline進(jìn)行模型的再訓(xùn)練,使用特定的野生動物數(shù)據(jù)在預(yù)訓(xùn)練好的模型上進(jìn)行再訓(xùn)練,可以有效的提高泛化能力。MobileNet相對于YOLO-tiny來說層數(shù)更深,但是計(jì)算量維持較小,是Google推出的針對移動端進(jìn)行優(yōu)化的輕量型網(wǎng)絡(luò)結(jié)構(gòu)。使用MobileNetV3作為backbone,可以在精準(zhǔn)和效率上取得平衡。
MobileNetV3綜合了V1的深度可分離卷積、V2的逆殘差結(jié)構(gòu),并使用輕量級注意力機(jī)制來優(yōu)化性能,使用h-swish激活函數(shù)代替swish函數(shù)來降低運(yùn)算量[8]。
2.3 遷移學(xué)習(xí)
PP-YOLO_MobileNetV3_large使用COCO2017作為訓(xùn)練集,當(dāng)我們需要使用AWA2數(shù)據(jù)集學(xué)習(xí)識別特定的動物時,需要進(jìn)行遷移學(xué)習(xí)。我們?nèi)サ袅祟A(yù)訓(xùn)練模型的最后一層,添加新層用于學(xué)習(xí)是否目標(biāo)動物。由于我們只需要判斷目標(biāo)動物是否出現(xiàn),所以需要修改多分類損失函數(shù)為二分類交叉熵?fù)p失函數(shù)[9]。
為了盡可能的保留在COCO數(shù)據(jù)集上的學(xué)習(xí)成果,我們凍結(jié)了預(yù)訓(xùn)練模型的基礎(chǔ)層,充分訓(xùn)練后再使用非常小的學(xué)習(xí)率進(jìn)行微調(diào)[10],經(jīng)過微調(diào)得到的模型作為野生動物識別的基本模型。
2.4 抽幀檢測
由于相鄰的幀基本上是相同的,我們并不需要對每一幀都調(diào)用目標(biāo)檢測算法。常用的抽幀算法有兩種,一種是按比例抽幀,一種是按FPS抽幀。在智能視頻監(jiān)控系統(tǒng)中,為了保證目標(biāo)識別算法的流暢,我們選用按FPS進(jìn)行抽幀。在視頻處理模塊中加入?yún)?shù) fps_rate_max,如果視頻的FPS大于fps_rate_max,則按照fps_rate_max進(jìn)行抽幀檢測。抽幀檢測可以極大地降低系統(tǒng)的運(yùn)算壓力,提高檢測的流暢度。
2.5 模型部署
在深度學(xué)習(xí)服務(wù)器上訓(xùn)練完成的模型,使用PaddleSlim進(jìn)行模型壓縮和量化后,使用TensorRT部署到Jetson TX2上[11]。NVIDIA TensorRT 是英偉達(dá)為NVIDIA GPU設(shè)計(jì)的高性能深度學(xué)習(xí)預(yù)測庫,可為深度學(xué)習(xí)推理應(yīng)用程序提供低延遲和高吞吐量,通??梢蕴岣邎D像分類任務(wù)的推理速度3-6倍,PaddlePaddle采用子圖的形式集成了TensorRT。經(jīng)過測試,在不使用PaddleSlim和TensorRT進(jìn)行加速的情況下,只能達(dá)到14fps,而使用了加速后能夠達(dá)到42fps。
3 實(shí)驗(yàn)仿真
3.1 動物世界視頻測試
根據(jù)實(shí)際測試需要,我們從購買的動物世界、國家地理、人與自然、生命禮贊、與猛獸同行、地球脈動等紀(jì)錄片光盤中人工挑選了12段視頻作為驗(yàn)證數(shù)據(jù)集進(jìn)行測試。對于選中的測試視頻,手工標(biāo)記視頻中長頸鹿出現(xiàn)的時間點(diǎn)和離開鏡頭的時間點(diǎn),和智能視頻系統(tǒng)所保存的視頻進(jìn)行回放對比。下面是《動物世界》 20181215 勇敢的長頸鹿(上)中截取的10分鐘視頻片段進(jìn)行仿真測試的結(jié)果:
圖3為智能識別監(jiān)控系統(tǒng)錄制的視頻還原到原視頻時間軸的結(jié)果??梢钥闯觯悄芤曨l監(jiān)控系統(tǒng)能夠有效地對目標(biāo)動物進(jìn)行識別,并智能地進(jìn)行視頻的保存。在實(shí)際工作場景下,目標(biāo)動物的出現(xiàn)不會如此頻繁,智能監(jiān)控系統(tǒng)可以更大地節(jié)省存儲空間。
3.2 結(jié)果分析
重新為保存的視頻加上識別框后,結(jié)合日志進(jìn)行檢查,發(fā)現(xiàn)模型在目標(biāo)動物密集的時候存在漏檢現(xiàn)象,另外在視頻片段開始21秒處有長頸鹿在水中的倒影并沒有被識別到。由于智能視頻監(jiān)控系統(tǒng)只需要識別到目標(biāo)動物的出現(xiàn),當(dāng)目標(biāo)動物密集出現(xiàn)時的漏檢現(xiàn)象并不會影響到系統(tǒng)的可靠存儲。動物倒影的漏檢,是由于做數(shù)據(jù)增強(qiáng)的時候沒有考慮到可能會出現(xiàn)上下顛倒的長頸鹿,經(jīng)過進(jìn)一步的數(shù)據(jù)增強(qiáng),增加了上下顛倒和旋轉(zhuǎn)的數(shù)據(jù)集后,系統(tǒng)能夠?qū)Φ褂斑M(jìn)行識別。
同時,對視頻的目標(biāo)識別算法常見的問題是無法達(dá)到足夠的幀率,相對于行人識別等對fps敏感的場景,野生動物的識別可以采用抽幀識別的方法,大大地降低了系統(tǒng)的運(yùn)算壓力,這也是能夠?qū)OLO目標(biāo)識別算法實(shí)際應(yīng)用到智能視頻監(jiān)控系統(tǒng)上的主要原因之一。
4 結(jié)語
將基于邊緣計(jì)算的目標(biāo)識別算法引入智能監(jiān)控系統(tǒng),可以為監(jiān)控系統(tǒng)帶來更多的智能。相對于傳統(tǒng)的紅外陷阱法和動感陷阱法,實(shí)時的目標(biāo)識別方法能讓相機(jī)更加有針對性的識別到特定的目標(biāo)出現(xiàn)。智能的視頻數(shù)據(jù)保存算法,進(jìn)一步地確保了監(jiān)控的可靠性。實(shí)驗(yàn)表明,本文所設(shè)計(jì)的智能監(jiān)控系統(tǒng)能夠大幅的提高視頻監(jiān)控設(shè)備的續(xù)航能力,降低研究人員后期分析大量視頻所需要耗費(fèi)的時間。
參考文獻(xiàn):
[1] 張明霞,曹林,權(quán)銳昌,等.利用紅外相機(jī)監(jiān)測西雙版納森林動態(tài)樣地的野生動物多樣性[J].生物多樣性,2014,22(6):830-832.
[2] 肖治術(shù),李欣海,姜廣順.紅外相機(jī)技術(shù)在我國野生動物監(jiān)測研究中的應(yīng)用[J].生物多樣性,2014,22(6):683-684.
[3] 孫潔,錢蕾.基于邊緣計(jì)算模型的智能視頻監(jiān)控的研究[J].計(jì)算機(jī)與數(shù)字工程,2019,47(2):402-406.
[4] 孔令軍,王銳,張南,等.邊緣計(jì)算下的AI檢測與識別算法綜述[J].無線電通信技術(shù),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,F(xiàn)arhadi 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的結(jié)構(gòu)性剪枝優(yōu)化[J].自動化與信息工程,2019,40(6):20-25.
[10] 邵偉平,王興,曹昭睿,等.基于MobileNet與YOLOv3的輕量化卷積神經(jīng)網(wǎng)絡(luò)設(shè)計(jì)[J].計(jì)算機(jī)應(yīng)用,2020,40(S1):8-13.
[11] 殷迅.基于嵌入式GPU平臺深度學(xué)習(xí)算法的加速與優(yōu)化[D].上海:上海交通大學(xué),2019.
【通聯(lián)編輯:唐一東】