Looking Fast and Slow: Memory-Guided Mobile Video Object Detection論文閱讀

摘要

添加記憶單元,能提升視頻目標檢測準確率以及時效性。

介紹

根據人識別場景的特點,能更具記憶先驗,快速識別當前環境並提取少量特徵。作者提出:一個系統需要多個特徵提取器——一個精確的提取器初始化和維護內存,而另一個快速提取代表新圖像要點的特徵。

作者介紹了一個新的交叉框架,其中兩個具有截然不同的速度和識別能力的特徵提取器運行在不同的幀上。如下圖

這些提取器用ConvLSTM提取特徵並維持視覺記憶,並通過融合前一幀的上下文和當前幀的gist生成檢測。作者還證明了內存和gist的組合包含了決定何時必須更新內存所需的信息(時序組合對遺忘門有影響?)通過將任務描述爲一個增強學習問題,我們學習了何時運行每個特徵提取器的交錯策略。


綜上所述,本文的貢獻如下:
•我們提出了一個內存引導的交叉框架,其中多個特徵提取器運行在不同的幀上,以減少冗餘計算,它們的輸出使用一個公共內存模塊進行融合。(LSTM元狀態?)
•我們引入了一種自適應交叉策略,使用Q-learning策略可以學習執行特徵提取器的順序
,這導致了速度/精度的優越權衡。
•我們在設備上演示了迄今爲止已知的最快的高精度移動視頻檢測模型。

相關工作

我們的工作也適用於移動裝置,但是通過交叉使用專門的特徵提取器而不是使用流來傳播特徵,我們消除了對光流的依賴,因此需要光流訓練數據和額外的光流訓練前階段。

我們的方法還從每個幀提取特性,而不是完全從關鍵幀傳播結果,這允許訪問更多的信息。

在視頻目標檢測中,自適應關鍵幀選擇的研究較少。我們提出了一個不同的公式來構建一個學習自適應策略,利用我們的內存模塊中包含的信息,創建一個完整的和有原則的檢測管道。

研究方法

3.1、交叉模型

本文研究了視頻目標檢測問題。對於這個任務,我們必須生成幀級別的邊界框,並對視頻的每個幀進行類預測。在檢測第k幀時希望之前的所有幀都可用。

本文的主要貢獻是一個交錯的模型框架,其中多個特徵提取器按順序或同時運行。然後使用內存機制聚合和細化這些框架級特性。最後,我們將ssd風格的[24]檢測應用到細化的特徵上,生成邊界框結果。

SSD探測器將細化的特徵映射到最終的檢測錨點預測。

使用多個特徵提取器有幾個優點。不同的特徵提取器可以專門針對不同的圖像特徵,創建一個時間的整體效果。由於我們關注的是移動裝置,所以我們研究的情況是,特徵提取器具有截然不同的計算成本,這極大地降低了模型的運行時間。

定義了一個快慢特徵提取器數量的比例超參數T。

第0個特徵提取器f0是MobileNetV2,深度乘法器爲1.4,輸入分辨率爲320×320。f1深度乘法器爲0.35,輸入分辨率降低爲160×160

上圖τ= 2

3.2、記憶模塊

我們的方法需要一個內存模塊來跨時間步聚合來自兩個提取器的特性,特別是使用以前的時間上下文來增強來自小網絡的特性。我們的內存模塊還可以用於融合來自不同特徵提取器和特徵空間的特徵我們要求這個機制非常快,因爲它必須在所有幀上執行。爲此,我們修改了LSTM單元可以更快更好地保存長期依賴關係。

爲了提高標準LSTM的速度,我們做了三個修改。我們採用了[22]中提出的bottlenecking【防止特徵被破壞】,在bottleneck和輸出之間增加了一個跳躍連接,使bottleneck成爲輸出的一部分。

我們還將LSTM狀態分成組,並使用分組卷積分別處理每個狀態。給定上一時刻狀態h_t-1以及當前輸入x_t,將h_t-1分成G等分。每一等分都與x_t連接,分別計算bt, ft, it, ot。更新後的LSTM狀態g ct和g ht也是用同樣的方法計算的,但現在只是最終更新狀態的切片。最後,將切片按通道連接起來,得到ct、ht和Mt。如上圖所示。分組卷積通過稀疏化層連接提供了加速功能,而跳過連接允許在不存儲在內存中的情況下在輸出中包含較少的與時間相關的特性。這減少了內存的負擔,並允許我們縮小狀態維度,而如果狀態太小,其他LSTM變體的精度會顯著下降[22]。在我們的模型中,我們選擇G = 4並使用320通道狀態。表1詳細說明了我們修改後的LSTM的速度優勢。

我們還注意到,LSTM的一個固有弱點是它無法在實際更新期間完全保持其狀態。輸入和遺忘門的sigmoid激活很少完全飽和,導致長期依賴項逐漸丟失的緩慢狀態衰減。如果不重新運行f0,那麼使用f1的預測將會降低。我們提出了一個簡單的解決方案,即在運行f1時跳過狀態更新,即總是重用上一次運行f0時的輸出狀態。這極大地提高了LSTM跨長序列傳播時間信息的能力,即使只運行f1幾十步,也不會造成很大的精度損失。

3.3、模型訓練

我們的培訓程序包括兩個階段。首先,我們在不啓用檢測層的情況下對交叉模型進行預訓練.爲了適應網絡的分類,我們刪除了檢測層d,並在LSTM之後立即添加一個平均池和全連接層,後面跟着一個softmax分類器。在訓練過程中,我們將每幀複製三次,並將LSTM展開爲三個步驟。在每個步驟中,我們一致地選擇一個隨機的特徵提取器來運行。

接下來,我們進行SSD檢測訓練。同樣,我們將LSTM展開到六個步驟,並在每個步驟中均勻地選擇一個隨機的特徵提取器。我們訓練混合的視頻和圖像數據。對於圖像數據,我們通過在每一步裁剪一個特定的區域,並在每一步之間移動裁剪來模擬平移和縮放,以幫助模型學習運動和盒子位移之間的關係。否則,培訓過程類似於標準SSD[24]。我們使用的批大小爲12。學習速率爲0.002,使用餘弦衰減。

3.4、自適應交叉政策(訓練比例T)

雖然我們證明了一個簡單的交織策略已經取得了競爭的結果,但一個自然的問題是,是否有可能優化交織策略來進一步提高結果。提出了一種利用強化學習學習自適應交叉策略的新方法。關鍵的觀察是,爲了有效地輔助較小的網絡,內存模塊必須包含一些檢測置信度度量,我們可以將其作爲交錯策略的一部分加以利用。因此,我們構建一個政策網絡π檢查LSTM器運行狀態和輸出下一功能,如圖4所示。然後,利用Double-Q-learning (DDQN)對策略網絡進行訓練。

我們的獎勵功能必須反映出我們的目標,即在儘可能頻繁地跑f1的同時保持準確性。因此,我們將獎勵定義爲速度獎勵和準確度獎勵的總和。對於速度獎勵,我們簡單地定義一個正的常數
γ和γ獎勵當f1運行。爲了獲得精度獎勵,我們計算了運行每個特徵提取器後的檢測損失,並取最小損失特徵提取器與所選特徵提取器之間的損失差。最終的獎勵可以表示爲:公式(2).

我們的策略網絡是一個輕量級的卷積神經網絡,它預測每個狀態動作的q值。我們首先使用S中的四個特徵圖中的每一個作爲單獨的組來執行分組卷積。然後,我們執行一個深度可分離卷積和使用最大池刪除空間維度。最後,我們將動作特徵向量連接起來,並應用一個完全連接的層來獲得m個輸出,即每個狀態動作對的q值。體系結構如圖4所示。

爲了訓練策略網絡,我們生成了批量(St, a, St+1, Rt)例子,在推理模式下運行交錯網絡。雖然整個系統可能是端到端訓練的,但是我們通過對基本交織模型使用預訓練的權重,並凍結策略網絡之外的所有權重,簡化了訓練過程。在獲得批量實例後,我們使用標準方法DDQN與經驗重播中描述的[34]。訓練過程詳見算法1。

3.5模型推理預測

我們探索了兩個針對實際應用的額外優化,這兩個優化使我們的方法的幀率提高了三倍,同時保持了準確性和易於部署。

異步推理

基於關鍵幀的檢測方法的一個問題是,它們只考慮平攤運行時。然而,由於這些方法在關鍵幀上執行大部分計算,因此幀之間的延遲非常不一致。在考慮單幀時,這些方法並不比單幀方法快,限制了它們在實際設置中的適用性。

交錯框架自然地提出了異步推理方法,消除了平攤運行時和最壞情況運行時之間的差距,允許我們的方法在移動設備上實時平穩地運行。

當同步運行交錯模型時,每個時間步運行一個特徵提取器,因此最大潛在延遲取決於f0。然而,通過在單獨的線程中運行特性提取器(我們稱之爲異步模式),這個過程很容易並行化。在異步模式下,f1在每個步驟上運行,並且只用於生成檢測,而f0則繼續在每個步驟上運行。當它完成時τ幀並更新記憶。輕量級特性提取器在每一步都使用最新可用內存,不再需要等待較大的特性提取器運行。如圖5所示。

量化算法

依賴多個特徵提取器而不是光流的另一個好處是,標準的推理優化方法可以在最小的變化下應用。特別地,我們證明了我們的交叉框架可以使用[13]中的模擬量化訓練過程來量化。的Tensorflow[1]量化庫用於MobileNet和SSDLite層的開箱即用。

對於LSTM,在所有數學運算之後插入僞量化運算(加法、乘法、乙級和ReLU6算法1在[13]中。激活後的範圍對於sigmoid固定爲[0,1],對於ReLU6固定爲[0,6],以確保0是完全可表示的。我們還確保連接操作的所有輸入的範圍是相同的,以消除重新排序的需要(如A.3所述)。[13])。我們最後的量化異步模型在a上以72.3 FPS的速度運行Pixel 3手機,超過三倍的幀率,我們的模型。

 

論文:https://arxiv.org/pdf/1903.10172.pdf

convLSTM的實現:https://blog.csdn.net/sinat_26917383/article/details/71817742

文章介紹:https://mp.weixin.qq.com/s/pKSrokV_j8Repa-JMloUHg

相關github項目:

https://github.com/viorik/ConvLSTM 
https://github.com/carlthome/tensorflow-convlstm-cell

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章