ThunderNet——快速目標檢測算法

論文:ThunderNet: Towards Real-time Generic Object Detection
論文鏈接:https://arxiv.org/abs/1903.11752

最近幾年目標檢測算法確實發展非常迅速,整體上看還是分爲2條路線,一條路線是效果更好,另一條路線是速度更快,雖然也有一些算法在二者之間有比較好的平衡,但是整體上還是有一定側重,而這篇博客要介紹的ThunderNet重點在於速度快。ThunderNet是曠視的作品,整篇論文讀下來思路很清晰也很自然,同時實驗也比較充分,說服力較強,因此值得讀一讀。

設計更加快速的目標檢測算法是伴隨着移動端AI的不斷髮展所必須要解決的問題,個人認爲目前這方面的做法主要有3種:
1、直接用更快速的分類算法作爲特徵提取網絡。輕便快速的分類網絡發展比較成熟(比如MobileNet系列、ShuffleNet系列等),而目前目標檢測算法常用的特徵提取網絡是ResNet系列,因此最直接的做法就是將特徵提取網絡替換成速度更快的分類網絡,這樣就能取得速度上的提升,比如MobileNet-SSD等。
2、用模型加速壓縮算法對原有的目標檢測算法做加速。這方面其實偏工業化,算法層面的創新不會有很多,因爲通過結合現有的模型加速壓縮算法和目標檢測算法即可實現。
3、重新設計網絡結構,包括特徵提取和檢測網絡。這部分和第一種最大的差別就是設計更適合目標檢測任務的特徵提取網絡,而不是直接用圖像分類算法的網絡,比如Light Head R-CNN(也是曠視的作品)。

ThunderNet就是第3種類型,算法速度和效果對比如Figure1所示,整體上優勢是很明顯的。
在這裏插入圖片描述

ThunderNet的整體結構如Figure2所示,主要優化點有四個方面:特徵提取網絡、RPN和檢測網絡的加速、新增CEM模塊、新增SAM模塊

一、特徵提取網絡結構的優化。這方面主要遵循2個原則:
1、感受野要夠大。這一點其實對模型效果影響是很大的,之前圖森的一篇論文(TridentNet)對目標檢測算法中感受野的影響做過非常深入的研究,用dialted卷積來擴大感受野,取得了非常好的效果。感受野不夠大的話,檢測部分做預測時有效的特徵信息就有限,效果就相對差一些,尤其對於大尺寸目標而言,更容易出現這種感受野和目標尺寸不匹配的問題。因此ThunderNet在ShuffleNetv2基礎上修改得到SNet作爲特徵提取網絡,修改的重點就在於擴大感受野,比如將原本33的depthwise卷積層替換爲55的depthwise卷積層。
2、淺層特徵和深層特徵數量的平衡。淺層特徵包含較多的細節信息,對於檢測算法的目標框位置預測來說是比較重要的;深層特徵包含較多的語義信息,對於檢測算法的目標分類來說是比較重要的,因此ThunderNet通過增加SNet網絡淺層的通道數和減少網絡深層的通道數來實現二者的平衡。平衡(或者叫匹配)是論文中一直在強調的問題,除了淺層特徵和深層特徵數量的平衡,還有特徵提取網絡複雜度和輸入圖像大小之間的平衡等等,論文中也有相關的對比實驗,感興趣的可以看看。

二、RPN和檢測網絡的加速。本身RPN的非共享層就很少,這裏對RPN的網絡層進一步壓縮,採用55的depthwise卷積層替換原來的33卷積層,達到減少計算量的目的。而檢測網絡(R-CNN subnet)主要也是從通道縮減層面做加速。
在這裏插入圖片描述
三、新增的CEM(context enhancement module)模塊如Figure3所示,扮演的角色和FPN類似但又不一樣,FPN主要實現了淺層和深層特徵的融合,操作相對耗時一些,而CEM也是在做特徵融合,但是可以注意到其實CEM是在頂層特徵基礎上做特徵融合,並沒有和淺層特徵做融合,這種做法和FPN是不一樣的,因此CEM側重的是擴大感受野,擴大感受野後可以得到更加全局的特徵,這樣和原本局部的特徵做融合就達到全局特徵和局部特徵融合的目的。
在這裏插入圖片描述
四、新增SAM(spatial attention module)模塊如Figure4所示。這部分主要是基於RPN特徵得到一個權重矩陣,因爲RPN參數訓練時有一個前背景分類的監督信息,因此這個權重矩陣可以用來表達特徵圖上前景和背景的區域差異,將該權重矩陣和原來的特徵圖相乘後就得到調整後的特徵圖,這樣基於調整後的特徵圖執行RoI特徵提取就能達到強調前景特徵,弱化背景特徵的目的。
在這裏插入圖片描述
Figure6給出了是否增加SAM模塊對特徵圖的影響,可以看到增加SAM後目標區域的特徵值相比非目標區域的特徵值要更大一些,這樣提取到的RoI特徵中目標特徵佔比也越大,達到強化目標特徵,弱化背景特徵的目的。
在這裏插入圖片描述

綜合以上四點來看,第一、三、四點側重於提升算法效果,第二點是側重於提升算法速度,整體上又是在輕便的網絡ShuffleNet v2和Light Head R-CNN基礎上做改進的,因此就實現了Figure1所示的速度和效果的全面提升

實驗結果
首先是對比實驗,baseline採用替換特徵學習網絡爲SNet146的Light Head R-CNN,整體計算量爲714MFLOPs,壓縮加速後的RPN和R-CNN檢測網絡在基本不影響效果的前提下大幅度減少了計算量(714->516->448),爲了提高算法效果而提出的CEM和SAM模塊分別將AP從21.6提升至23.3和22.9,最後整體上能達到23.6的AP。
在這裏插入圖片描述
Table2是ThunderNet和其他快速的目標檢測算法在VOC數據集上的計算量和效果對比。
在這裏插入圖片描述
Table3是ThunderNet和其他快速的目標檢測算法在COCO數據集上的計算量和效果對比。
在這裏插入圖片描述
因爲FLOPs並不能準確反映實際模型的運行速度(可以參考ShuffleNet v2那篇文章,也是曠視的作品),好在這篇文章也給出了在不同硬件平臺上計算得到的FPS,如Table9所示。
在這裏插入圖片描述

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