最新的目標檢測的深度架構 | 參數(shù)少一半、速度快3倍+
Matrix Nets
這是一個「矩陣網(wǎng)絡」,它的參數(shù)少、效果好、訓練快、顯存占用低。
簡要介紹
研究作者提出了 Matrix Net (xNet),一種用于目標檢測的新深度架構。xNets將具有不同大小尺寸和縱橫比的目標映射到網(wǎng)絡層中,其中目標在層內(nèi)的大小和縱橫比幾乎是均勻的。因此,xNets提供了一種尺寸和縱橫比感知結構。研究者利用xNets增強基于關鍵點的目標檢測。新的的架構實現(xiàn)了比任何其他單鏡頭檢測器的時效性高,具有47.8的mAP在MS COCO數(shù)據(jù)集,同時使用了一半的參數(shù)而且相比于第二好框架,其在訓練上快了3倍。
簡單結果展示上圖所示,xNet的參數(shù)及效率要遠遠超過其它模型。其中FSAF在基于錨點的檢測器中效果是最好的,它超過了經(jīng)典的RetinaNet。研究者提出的模型在參數(shù)量類似的情況下性能超過了所有其他single-shot架構。
背景及現(xiàn)狀
目標檢測是計算機視覺中最廣泛研究的任務之一,具有許多應用到其他視覺任務,如目標跟蹤、實例分割和圖像字幕。目標檢測結構可以分為兩類:single-shot檢測器和two-stage檢測器。Two-stage檢測器利用區(qū)域候選網(wǎng)絡找到固定數(shù)量的目標候選,然后使用第二個網(wǎng)絡來預測每個候選的分數(shù)并改進其邊界框。
常見的Two-stage算法Single-shot檢測器也可以分為兩類:基于錨的檢測器和基于關鍵點的檢測器?;阱^的檢測器包含許多錨邊界框,然后預測每個模板的偏移量和類。最著名的基于錨的體系結構是RetinaNet,它提出了focal損失函數(shù),以幫助糾正錨邊界框的類不平衡。性能最好的基于錨的探測器是FSAF。FSAF將錨基輸出與無錨輸出頭集成在一起,以進一步提高性能。
另一方面,基于關鍵點的檢測器可以預測左上角和右下角的熱圖,并使用特征嵌入將它們匹配起來。最初的基于關鍵點的檢測器是CornerNet,它利用一個特殊的coener池化層來準確地檢測不同大小的目標。從那時起,Centerne通過預測目標中心和角,大大改進了CornerNet體系結構。
Matrix Nets
下圖所示為Matrix nets(xNets),使用分層矩陣建模具有不同大小和叢橫比的目標,其中矩陣中的每個條目i、j 表示一個層 li,j,矩陣左上角層 l1,1 中寬度降采樣2^(i-1),高度降采樣2^(j-1)。對角層是不同大小的方形層,相當于一個 FPN,而非對角層是矩形層(這是xNets所特有的)。 層l1,1是最大的層,每向右一步,層寬度減半,而每向下一步高度減半。
例如,層l3,4是層l3,3寬度的一半。對角層建模寬高比接近方形的目標,而非對角層建模寬高比不接近方形的目標。接近矩陣右上角或左下角的層建模寬高比極高或極低的目標。這類目標非常罕見,所以可以對它們進行剪枝以提升效率。
1 Layer Generation
生成矩陣層是一個關鍵的步驟,因為它影響模型參數(shù)的數(shù)量。參數(shù)越多,模型表達越強,優(yōu)化問題越困難,因此研究者選擇盡可能少地引入新的參數(shù)。對角線層可以從主干的不同階段獲得,也可以使用特征金字塔框架。上三角層是在對角線層上施加一系列具有1x2步長的共享3x3卷積得到的。類似地,左下角層是使用具有2x1步長的共享3x3卷積得到的。參數(shù)在所有下采樣卷積之間共享,以最小化新參數(shù)的數(shù)量。
2 層范圍
矩陣中的每個層都對具有一定寬度和高度的目標進行建模,因此我們需要定義分配給矩陣中每個層的目標的寬度和高度范圍。范圍需要反映矩陣層特征向量的感受野。矩陣中向右的每一步都有效地使水平維度中的感受野加倍,而每一步都使垂直維度上的感受場加倍。因此,當我們在矩陣中向右或向下移動時,寬度或高度的范圍需要加倍。一旦定義了第一層l1,1的范圍,我們就可以使用上述規(guī)則為矩陣層的其余部分生成范圍。
3 Matrix Nets的優(yōu)勢Matrix Nets的主要優(yōu)點是它們允許方形卷積核準確地收集有關不同縱橫比的信息。在傳統(tǒng)的目標檢測模型中,如RetinaNet,需要一個方形卷積核來輸出不同的長寬比和尺度。這與直覺相反,因為不同方面的邊界框需要不同的背景。在Matrix Nets中,由于每個矩陣層的上下文發(fā)生變化,所以相同的方形卷積核可以用于不同比例和長寬比的邊界框。
由于目標大小在其指定的層內(nèi)幾乎是均勻的,因此與其他架構(例如FPN)相比,寬度和高度的動態(tài)范圍更小。因此,回歸目標的高度和寬度將變得更容易優(yōu)化問題。最后Matrix Nets可用作任何目標檢測架構、基于錨或基于關鍵點、one-shot或two-shots檢測器。
Matrix Nets 用于基于關鍵點的檢測
在CornerNet被提出來的時候,其是為了替代基于錨點的檢測,它利用一對角(左上角和右下角)來預測邊界框。對于每個角來說,CornerNet可預測熱圖、偏移量和嵌入。
上圖是基于關鍵點的目標檢測框架—— KP-xNet,它包含4個步驟。
(a-b):使用了xNet的主干;
(c):使用了共享輸出子網(wǎng)絡,而針對每個矩陣層,預測了左上角和右下角的熱圖和偏移量,并在目標層內(nèi)對它們進行中心點預測;
(d):利用中心點預測匹配同一層中的角,然后將所有層的輸出與soft非極大值抑制結合,從而得到最終輸出。
實驗結果
下表展示了在MS COCO數(shù)據(jù)集上的結果:
研究者還比較了新提出的模型與其他模型在不同的backbones上基于參數(shù)的數(shù)目。在第一張圖中,我們發(fā)現(xiàn)KP-xNet在所有參數(shù)級別上都優(yōu)于所有其他結構。研究者認為這是因為KP-xNet使用了一種尺度和縱橫比感知的體系結構。論文地址:https://arxiv.org/pdf/1908.04646.pdf
*博客內(nèi)容為網(wǎng)友個人發(fā)布,僅代表博主個人觀點,如有侵權請聯(lián)系工作人員刪除。