深度學習|基於MobileNet的多目標跟蹤深度學習演算法
源自:控制與決策 作者:薛俊韜 馬若寒 胡超芳
摘要
針對深度學習演算法在多目標跟蹤中的實時性問題, 提出一種基於MobileNet的多目標跟蹤演算法. 藉助於MobileNet深度可分離卷積能夠對深度網路模型進行壓縮的原理, 將YOLOv3主幹網路替換為MobileNet, 透過將標準卷積分解為深度卷積和逐點卷積, 保留多尺度預測部分, 以有效減少引數量. 對於檢測得到的邊框資訊, 利用Deep-SORT演算法進行跟蹤. 實驗結果表明, 所提出方法在跟蹤效果基本不變的情況下可提升處理速度近50%.
關鍵詞
深度學習 多目標跟蹤 目標檢測 YOLOv3 deep-SORT MobileNet
0 引言
多目標跟蹤是計算機視覺領域的研究熱點, 可應用於交通監測、安防等多個領域, 具有一定的應用價值和挑戰性[1]. 檢測方式可以分為檢測跟蹤和無檢測跟蹤兩類, 前者需要檢測目標後再進行跟蹤; 後者需要在第1幀手動初始化目標, 然後進行跟蹤. 在目標跟蹤中, 湧現出許多具有良好效能的演算法, 如SSD[2]、R-CNN[3-4]以及YOLO系列[5-7], 其中YOLOv3[7]演算法在檢測跟蹤中體現出較強的優勢.
由於深度學習的發展, 卷積神經網路模型逐漸替代了傳統手工設計的特徵, 提供了一種端到端的處理方法, 精度也大幅提高. 但CNN模型在不斷提高精度的同時, 其網路深度和尺寸也在成倍增長, 需要GPU來進行加速, 使得基於深度學習的跟蹤演算法無法直接應用於移動裝置, 導致難以符合實時性要求. 因此降低演算法複雜度、提高實時性、簡化和加速模型便成為亟待解決的問題. 文獻[8-10]使用剪枝方法對神經網路進行網路壓縮. 文獻[11]提出從零開始訓練低秩約束卷積神經網路模型的方法, 不僅速度得到提升, 而且在一些情況下模型效能也有所提高. 目前, 深度網路模型壓縮方法分為兩個方向: 一是對已經訓練好的深度網路模型進行壓縮得到小型化模型; 二是直接設計小型化模型進行訓練, 如SqueezeNet[12]、ShuffleNet[13]、MobileNet[14]等.
在多目標跟蹤方面, Zhang等[15]提出一種新型檢測跟蹤方法, 即將檢測與軌跡聯絡起來, 形成長軌跡. Mahmoudi等[16]使用卷積神經網路代替手工標註進行特徵提取, 以改善演算法精度, 並提出一種新的2D線上環境分組方法, 具有較高的準確率和實時性. Xiang等[17]設計了一個卷積神經網路提取針對人的重識別, 並使用長期短期記憶網路(long short-term memory, LSTM)提取運動資訊來編碼目標的狀態; 此外, 還設計了基於遞迴神經網路的貝葉斯過濾模組, 並將LSTM網路的隱藏狀態作為輸入, 執行遞迴預測和更新目標狀態. 而Deep-SORT[18]多目標跟蹤演算法則在SORT[19]演算法的基礎上, 提取深度表觀特徵,使跟蹤效果有了明顯的提升.
本文針對演算法的實時性問題, 結合深度學習目標檢測、深度網路模型壓縮以及多目標跟蹤演算法, 提出基於MobileNet的多目標跟蹤演算法, 在保證精度的前提下, 有效改善深度網路模型龐大以及計算複雜的問題, 提高了演算法的執行速度.
1 YOLOv3目標檢測演算法
YOLOv3演算法的基本思想是: 將輸入影像分割為S×S 個單元格, 每個單元格用於檢測中心點落在該網格內的目標, 並預測B 個邊界框和置信度. 邊界框用(x,y,w,h,c) 5個參數列達, 其中(x,y) 為目標中心相對於單元格左上角的相對座標, 而w 和h 則分別是目標與整張影像的寬和高之比. 單元格還預測C 個類別的各類機率值. 因此, 每個單元格共預測B×(5+C) 個值. YOLOv3借鑑ResNet的理念, 採用YOLOv2的Darknet-19, 並建立一個新的特徵提取網路Darknet-53[20]. YOLOv3採用類似FPN的上取樣和特徵融合機制, 使用不同的特徵尺度進行預測. 考慮到其對小目標檢測的良好效果, 本文采用該演算法進行目標檢測.
2 基於MobileNet的多目標跟蹤演算法
利用MobileNet將標準卷積分解為深度卷積和逐點卷積以減少引數量的特點, 替換YOLOv3目標檢測演算法的主幹網路框架, 並保留多尺度預測, 形成基於MobileNet的目標檢測演算法, 再進一步結合Deep-SORT演算法進行多目標跟蹤.
2.1
MobileNet演算法
MobileNet是Google為移動端和嵌入式裝置提出的高效模型. 使用深度可分離卷積構建深度神經網路,並透過兩個超引數, 從通道數量和特徵圖大小兩個方面減少計算量. 分解過程如圖 1所示.
圖 1 深度可分離卷積分解過程
假設輸入的特徵對映F尺寸為(DF,DF,M) , 採用的標準卷積K 為(DK,DK,M,N) , 則輸出的對映G 尺寸為(DF,DF,N) . M 為輸入通道數, N 為輸出通道數, 對應的計算量為
(1)
將標準卷積分解為深度卷積和逐點卷積, 深度卷積起濾波作用, 尺寸大小為(DK,DK,1,M) , 輸出特徵對映尺寸為(DF,DF,M) ; 逐點卷積用於通道轉換, 尺寸大小為(1,1,M,N), 輸出對映尺寸為(DF,DF,N) . 兩者對應的計算量為
(2)
相比於標準卷積, 深度可分離卷積計算量減少, 即
(3)
此外, MobileNet還引入了寬度乘子α 和解析度乘子ρ 兩個超引數, 分別用於改變通道數和特徵圖解析度, 便於控制模型大小, 降低引數量.
2.2
基於MobileNet的目標檢測模型
MobileNet網路基於深度可分離卷積, 除全連線層外, 所有層後跟有BatchNorm和ReLU, 最後使用softmax進行分類. MobileNet將深度卷積和逐點卷積計為單獨的層, 共有28層.
針對實時性問題, 本文結合卷積神經網路模型壓縮方法, 選用MobileNet與YOLOv3檢測模型相結合, 用前者代替後者的網路框架, 同時保留YOLOv3的多尺度預測, 最終得到輕量級的檢測模型.
YOLOv3中包括13×13、26×26和52×52三個尺度, 在MobileNet網路中找到對應13×13×1024、26×26×512和52×52×256的部分, 使用YOLOv3多尺度預測的方法進行融合, 替換後的網路結構如圖 2所示.
圖 2 YOLOv3-MobileNet框架
2.3
多目標跟蹤
由於Deep-SORT演算法加入了深度表觀特徵, 並具有較高的準確度和實時性, 本文將基於MobileNet的目標檢測演算法與Deep-SORT相結合進行多目標跟蹤, 主要分為以下部分:
1、目標檢測. 首先對輸入的影片進行目標檢測, 得到目標的邊框及特徵資訊, 並根據置信度和非極大值抑制進行邊框過濾.
2、軌跡處理和狀態估計. 運動狀態估計中使用8個引數 進行運動狀態的描述, 其中(u,υ)為邊框的中心座標, γ為長寬比, h為高度, 這4個引數來源於目標檢測部分, 其餘4個參數列示對應影像座標系中的速度資訊.使用卡爾曼濾波器對運動狀態進行預測.
3、對跟蹤器引數和特徵集進行更新, 判斷有無目標消失或者有無新目標出現. 對每個目標, 記錄其上次檢測結果和跟蹤結果匹配後的幀數ak, 只要檢測結果與跟蹤結果正確關聯, 就將該引數置為0. 如果ak超過了設定的最大閾值Amax, 則結束對該目標的跟蹤.
4、檢測結果與跟蹤預測結果匹配. 區分已確認和未確認狀態的跟蹤器, 對已確認狀態的跟蹤器進行匹配指派. 其中指派問題使用了匈牙利演算法, 並同時考慮運動資訊的關聯和目標外觀資訊的關聯.
運動資訊關聯: 使用卡爾曼濾波器預測狀態和新測量之間的馬氏距離, 以此表達運動資訊, 有
(4)
式(4)表示第j個檢測結果與第ii條軌跡之間的運動匹配度. 其中: Si為卡爾曼濾波器當前時刻觀測空間的協方差矩陣, yi為當前時刻的預測觀測量, dj為第j個檢測的狀態(u,υ,γ,). 馬氏距離透過測量遠離平均軌道位置的標準偏差考慮狀態估計的不確定性, 透過逆卡方分佈的0.95分位點作為閾值t(1), 指標函式定義如下:
(5)
目標外觀資訊關聯: 由於相機運動會使馬氏距離度量方法失效, 引入第2種關聯方法, 對每個跟蹤目標構建一個庫, 儲存每個跟蹤目標成功關聯的最近100幀特徵向量, 則第i個跟蹤器與當前幀第j個檢測結果之間的表觀匹配度為
(6)
指標函式表示為
(7)
採用上述兩種度量的線性加權作為最終度量, 有
(8)
只有當ci,j位於兩種度量閾值的交集內時, 才認為實現了正確的關聯. 當指派完成後, 分類出未匹配的檢測和跟蹤器.
5) 對未確認狀態的跟蹤器、未匹配的跟蹤器和未匹配的檢測進行IOU匹配, 再次使用匈牙利演算法進行指派.
6) 對於匹配的跟蹤器進行引數更新, 刪除再次未匹配的跟蹤器, 未匹配的檢測初始化為新目標.
演算法整體流程如圖 3所示.
圖 3 多目標跟蹤演算法流程
3 實驗結果
本文演算法使用keras實現, 並利用PASCAL VOC 2007和VOC 2012資料集進行訓練. 作為視覺分類檢測的基準測試, PASCAL VOC資料集包含20類物體, 如人、動物、交通工具、傢俱等, 每張圖片均有標註.本文使用VOC 2007 trainval資料集和VOC 2012 trainval資料集、共16 551張圖片進行訓練, 訓練環境為Google Colab雲平臺. 所使用的作業系統為Ubuntu18.04.1, GPU為Tesla K80. 其他測試均在Windows 8.1下進行, CPU為Intel(R) Core(TM) i5-5200U, 無GPU.
在目標檢測評價中, 常用的評價指標為mAP(mean average precision), 表示對目標類的AP值取平均, 本文采用mAP、單張圖片檢測時間及模型大小等指標對目標檢測模型進行評估. 對於多目標跟蹤演算法, 由於很難使用單一評分評估多目標跟蹤效能, 採用MOT Challenge評價標準.
3.1
目標檢測演算法對比實驗
表 1為YOLOv3目標檢測演算法、基於MobileNet的目標檢測演算法和其他檢測演算法實驗對比結果.
表 1 目標檢測演算法效能對比結果
本文選取比較流行的單階段檢測演算法和兩階段檢測演算法進行對比實驗. 由表 1可見, 基於MobileNet的目標檢測演算法模型是YOLOv3演算法模型的1/3, 並且相比SSD和Fater R-CNN, 模型最小; 單張圖片檢測時間相比YOLOv3模型提高了2倍; 在精度方面, 本文檢測演算法相比YOLOv3模型下降約12.4 %, 但相比SSD提高1.5 %. 總體而言, 雖然本文檢測演算法在檢測精度上有所降低, 但可以滿足檢測跟蹤的實際需求, 並且在模型大小和單張檢測時間上具有優勢. 精度降低的原因是由於YOLOv3的網路結構中使用了殘差網路, 並且網路層數更深, 而MobileNet網路結構僅使用深度可分離卷積, 沒有使用殘差結構, 在網路深度方面也比YOLOv3更淺, 因此造成本文檢測演算法在mAP值上與YOLOv3差距較大. 雖然本文檢測演算法在一定程度上犧牲了精度, 但實現了模型的小型化和速度上的提升.
3.2
多目標跟蹤演算法對比實驗
在MOT基準資料庫提供的序列集上評估跟蹤效能, 以MOT Challenge標準對多目標跟蹤演算法進行評價, 具體評價指標如表 2所示, 各指標含義如下:
表 2 評價指標對比
MOTA(↑): 多目標跟蹤準確度;
MOTP(↑): 多目標跟蹤精度;
MT(↑): 目標跟蹤軌跡佔真實長度80 %以上的軌跡數目;
ML(↓): 目標跟蹤丟失軌跡佔真實長度至多20 %的軌跡數目;
IDs(↓): 目標ID發生變化的次數;
FP(↓): 誤報總數;
FN(↓): 未命中目標的總數;
FPS(↑): 幀頻率.
對於帶有(↑)的評價指標, 分數越高表示效果越好; 對於帶有(↓)的評價指標, 結果相反.
由表 2可見: 本文演算法的MOTP值與YOLOv3-Deep-SORT演算法相差不大, 但均高於表中其他演算法; 被跟蹤的軌跡比例(MT)相比YOLOv3-Deep-SORT演算法有所上升, 跟丟軌跡佔比(ML)有所下降, 均優於TC_ODAL和RMOT演算法; ID變換次數低於表中前4個演算法(即TC_ODAL、RMOT、SORT、MDP), 但相比YOLOv3-Deep-SORT演算法有所上升; 幀頻率提高為該演算法的3倍, 檢測跟蹤時間提高顯著. 本文演算法雖然在跟蹤準確度、ID變換次數和誤報總數上不及YOLOv3-Deep-SORT演算法, 但其他跟蹤指標均優於該演算法, 並且本文演算法相比於TC_ODAL、RMOT和SORT等演算法優勢明顯. 為進一步表現本文演算法的優越性, 以ID標號為3的目標為例, 給出如圖 4所示的部分跟蹤結果, 且跟蹤框上帶有數字ID標識. 由圖 4可見, 該演算法在第200幀、260幀、320幀均能連續跟蹤, 跟蹤效果良好.
圖 4 跟蹤結果
3.3
無人機人流監控實驗
以某城市交通路口人流監控為例, 將本文演算法應用於無人機, 利用其高空獨特視角, 對十字路口行人進行統計, 實時監測人流密度以及人流密度變化情況, 以配合地面警力巡查, 對各類警情及交通情況進行預警, 輔助警力排程, 實現對城市環境下的安全監控. 此類監管系統的關鍵是要具有良好的實時性, 因此降低網路引數量, 提高實時性顯得十分重要.
本文以無人機資料集進行實驗, 選取第76、133和182幀, 如圖 5所示. 由圖 5可見, 本文演算法可有效檢測和跟蹤大部分行人, 且實時性與之前檢測跟蹤實驗結果具有相同數量級, 但對於相互遮擋和全身資訊不全的行人檢測跟蹤效果相對較差.
圖 5 無人機資料集跟蹤結果
4 結論
本文在YOLOv3和Deep-SORT演算法的基礎上, 針對實時性問題, 使用輕量級網路MobileNet代替原有網路結構對檢測模型進行壓縮. 實驗結果表明, 儘管改進演算法由於更淺的網路結構和未使用殘差網路等因素導致精度下降, 但實時性提高顯著, 實現了精度和速度間的折衷, 達到了快速有效跟蹤的目的.
更多資訊可關注微信公眾號:人工智慧技術與諮詢,新增老師微信(19511122152)
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/70021344/viewspace-2922505/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 基於深度學習的機器人目標識別和跟蹤深度學習機器人
- 基於OpenCV和YOLOv3深度學習的目標檢測OpenCVYOLO深度學習
- 深度學習之目標檢測深度學習
- 深度學習——學習目錄——學習中……深度學習
- 《基於深度學習的目標檢測綜述》論文獲發表深度學習
- 基於深度學習的計算機視覺應用之目標檢測深度學習計算機視覺
- 深度學習之目標檢測與目標識別深度學習
- 52 個深度學習目標檢測模型深度學習模型
- 【機器學習基礎】關於深度學習的Tips機器學習深度學習
- 基於pytorch的深度學習實戰PyTorch深度學習
- 基於TensorFlow的深度學習實戰深度學習
- 拯救深度學習:標註資料不足下的深度學習方法深度學習
- 《深度學習案例精粹:基於TensorFlow與Keras》案例集用於深度學習訓練深度學習Keras
- 深度學習基礎深度學習
- 深度學習之影像目標檢測速覽深度學習
- 基於深度學習的醫學影像配準學習筆記2深度學習筆記
- 深度學習+深度強化學習+遷移學習【研修】深度學習強化學習遷移學習
- 深度學習--RNN基礎深度學習RNN
- 【深度學習】不要被深度學習一葉障目不見泰山;NLP 解決方案是如何被深度學習改寫的?...深度學習
- 深度學習及深度強化學習研修深度學習強化學習
- 深度學習學習框架深度學習框架
- 深度學習深度學習
- ####深度學習深度學習
- 深度 學習
- [深度學習] 基於切片輔助超推理庫SAHI最佳化小目標識別深度學習
- 如何學習和利用深度學習演算法框架深度學習演算法框架
- 基於深度強化學習(DQN)的迷宮尋路演算法強化學習演算法
- 關於強化學習、深度學習deeplearning研修強化學習深度學習
- 深度學習及深度強化學習應用深度學習強化學習
- opencv的目標跟蹤演算法OpenCV演算法
- 深度學習及pytorch基礎深度學習PyTorch
- 深度學習基礎之 Dropout深度學習
- DL-深度學習基礎深度學習
- 基於深度學習的單通道語音增強深度學習
- 基於深度學習模型Wide&Deep的推薦深度學習模型IDE
- 基於TensorFlow Serving的深度學習線上預估深度學習
- 基於深度學習的影像超解析度重建深度學習
- DeepVS:基於深度學習的影片顯著性方法深度學習