NeurIPS 2018 | 曠視科技提出MetaAnchor:自定義錨點框最佳化目標檢測系統

曠視科技發表於2018-12-10

NeurIPS 2018 | 曠視科技提出MetaAnchor:自定義錨點框最佳化目標檢測系統論文名稱:MetaAnchor: Learning to Detect Objects with Customized Anchors 

論文連結:https://arxiv.org/abs/1807.00980

目錄

  • 導語

  • 背景

  • 設計思想

  • 方法

    • 錨點框函式生成器

    • 架構細節

  • 實驗

    • COCO 目標檢測結果

  • 結論

  • 參考文獻

導語

隨著 ImageNet 退出“江湖”,分類任務趨向飽和。在計算機視覺分類、檢測、分割三大核心任務的鏈條中,由於分類過於基礎,過於成熟,檢測的首要作用日益加大,連鎖效應不斷加強。

目標檢測遵循自身路徑,處理程式先後可分為錨點框、(候選框)、目標框。如果說目標檢測是計算機視覺的首塊基石,那麼錨點框(Anchor)則是目標檢測的首塊基石。作為基石的基石,錨點框的重要性可見一斑。

鑑於現有目標檢測系統採用預定義錨點框的種種問題,曠視科技論文《MetaAnchor: Learning to Detect Objects with Customized Anchors 》(已收錄於第 32 屆神經資訊處理系統大會 NeurIPS 2018 )提出一種全新而靈活的錨點框機制——MetaAnchor,可透過自定義方式最佳化目標檢測系統。

由此,這就從最為底層的技術元件層面,自下而上最佳化並迭代計算機視覺人工智慧技術,乃至推動、賦能場景落地和產業發展,實現技術與產業雙輪驅動。

具體來講,目標檢測技術的改進和突破,在提升系統精度與速度的同時,將成為城市大腦、智慧機器人、智慧手機、智慧金融、新零售等行業發展的重要推手;而上述行業作為“棋子”共同匯聚成曠視科技 AI+IoT 這盤大棋。

背景

最近幾年,深度神經網路處理目標檢測任務的巨大突破有目共睹。實際做法是目標檢測演算法為一張給定影像生成一系列邊界框,同時分類標註每個目標。但是,對於卷積神經網路而言,直接無序地生成任意數量的預測框並非無足輕重,由此錨點框的思想得以引入,在目標檢測系統中獲得廣泛應用。透過運用分而治之的方法,錨點框成功立足於絕大多數當前最優的目標檢測框架之中。

簡單來說,錨點框把向量空間(包括位置、大小、類別等)分割為若干個離散的(有可能重疊的)方塊(bin,即 ground truth box),並透過錨點框函式為每個相應的 bin 生成一個目標框。X 表示從輸入影像提取的特徵,那麼,第 i 個 bin 的錨點框函式可寫為:

NeurIPS 2018 | 曠視科技提出MetaAnchor:自定義錨點框最佳化目標檢測系統

其中 NeurIPS 2018 | 曠視科技提出MetaAnchor:自定義錨點框最佳化目標檢測系統 是先驗(prior,也稱為 anchor box),用來描述與第 i 個 bin 相關聯的目標框的一般屬性,比如平均位置/大小和分類標籤;同時,NeurIPS 2018 | 曠視科技提出MetaAnchor:自定義錨點框最佳化目標檢測系統 判別是否存在一個目標框與第 i 個 bin 相關聯,NeurIPS 2018 | 曠視科技提出MetaAnchor:自定義錨點框最佳化目標檢測系統 則把目標框(如果有)的相對位置迴歸到先驗  b_i;θ_i 表示錨點框函式的引數

為藉助深度神經網路建模錨點框,列舉是一個直接的策略,併為目前大多數方法所採用。首先,大量預定義 priors B 透過手工選取,或者統計方法(比如聚類);接著,對於每個NeurIPS 2018 | 曠視科技提出MetaAnchor:自定義錨點框最佳化目標檢測系統,錨點框函式 NeurIPS 2018 | 曠視科技提出MetaAnchor:自定義錨點框最佳化目標檢測系統 將分別由一個或多個神經網路層實現。不同錨點框函式的權重是獨立的,或者部分共享。

很明顯,這種框架的策略(即錨點框的選擇以及錨點框函式的定義)在訓練和推理之中皆不夠靈活。此外,可用錨點框的數量也受制於預定義的 B。

設計思想

本文中,曠視科技提出一種靈活的替代方案建模錨點框。在這一新框架中,錨點框函式由 b_i 動態生成,而不是透過列舉每一個可能的邊界框 prior b_i 並分別建模相應的錨點框函式。它的實現源自引入了一個全新的模組——MetaAnchor,可寫為:

NeurIPS 2018 | 曠視科技提出MetaAnchor:自定義錨點框最佳化目標檢測系統

其中,NeurIPS 2018 | 曠視科技提出MetaAnchor:自定義錨點框最佳化目標檢測系統 稱之為錨點框函式生成器,它把任一邊界框 prior b_i 對映到相應的錨點框函式NeurIPS 2018 | 曠視科技提出MetaAnchor:自定義錨點框最佳化目標檢測系統 ,w 表示引數

值得注意的是,MetaAnchor 的先驗集 B 不必是預定義的,而是以自定義的方式工作——在推斷時,使用者可以指定任意 anchor box,生成相應的錨點框函式,並用其預測目標框。接下來,本文會把它與權重預測機制一起展示。錨點框函式生成器可實現優雅部署,嵌入到現有的目標檢測框架達成聯合最佳化。

總之,相較於傳統預定義的錨點框策略,本文發現,MetaAnchor 具有以下潛在的優勢:

1)MetaAnchor 對於 anchor 設定和邊界框分佈更為魯棒。在傳統方法中,預定義的 anchor box B 經常需要小心設計——錨點框太少可能不足以涵蓋稀少的框,或者導致粗糙的預測;但是更多的 anchor 意味著引數更多,有造成過擬合的風險。

此外,很多傳統方法使用獨立的權重建模不同的錨點框函式,因此很可能在訓練時,不相關聯於 ground truth 目標框的錨點框會輸出較差的結果。與此相反,MetaAnchor 可以在訓練時隨機取樣任意形態的 anchor box,以涵蓋不同種類的目標框,同時引數數量保持不變。

進而,根據等式(2),同一權重 w 生成不同的錨點框函式,因此所有的訓練資料可以調優所有的模型引數,這意味著對訓練框的分佈更加魯棒。

2)MetaAnchor 有助於彌補不同資料集之間的邊界框分佈的差距。在傳統框架中,anchor box B 是預定義的,在訓練和測試之時保持不變,這並非最優方案,如果訓練集和測試集的邊界框分佈不同。而在 MetaAnchor  中,錨點框可被靈活地自定義以適應目標資料集(比如,透過網格搜尋),而無需重新訓練整個檢測器。

方法

Anchor 函式生成器

在 MetaAnchor 框架中,如等式(2)所示,錨點框函式生成器 NeurIPS 2018 | 曠視科技提出MetaAnchor:自定義錨點框最佳化目標檢測系統 把 b_i 對映到相應的錨點框函式NeurIPS 2018 | 曠視科技提出MetaAnchor:自定義錨點框最佳化目標檢測系統,從而扮演了關鍵角色。為利用神經網路建模 NeurIPS 2018 | 曠視科技提出MetaAnchor:自定義錨點框最佳化目標檢測系統,首先要假設對於不同的  b_i,錨點框函式NeurIPS 2018 | 曠視科技提出MetaAnchor:自定義錨點框最佳化目標檢測系統共享同一方程NeurIPS 2018 | 曠視科技提出MetaAnchor:自定義錨點框最佳化目標檢測系統,但是引數不同,這意味著:

NeurIPS 2018 | 曠視科技提出MetaAnchor:自定義錨點框最佳化目標檢測系統

接著,由於每一個錨點框函式的區別僅在於其引數NeurIPS 2018 | 曠視科技提出MetaAnchor:自定義錨點框最佳化目標檢測系統,生成器由此可預測 NeurIPS 2018 | 曠視科技提出MetaAnchor:自定義錨點框最佳化目標檢測系統,如下所示:

NeurIPS 2018 | 曠視科技提出MetaAnchor:自定義錨點框最佳化目標檢測系統

其中 θ^* 代表共享引數(獨立於 b_i 且同樣可學習),殘差項NeurIPS 2018 | 曠視科技提出MetaAnchor:自定義錨點框最佳化目標檢測系統取決於錨點框 b_i。

本文透過一個簡單的二層神經網路實現NeurIPS 2018 | 曠視科技提出MetaAnchor:自定義錨點框最佳化目標檢測系統

NeurIPS 2018 | 曠視科技提出MetaAnchor:自定義錨點框最佳化目標檢測系統

這裡,W_1 和 W_2 皆是可學習引數NeurIPS 2018 | 曠視科技提出MetaAnchor:自定義錨點框最佳化目標檢測系統是啟用函式(文中使用 ReLU)。隱藏神經元的數量用 m 表示,實際上 m 通常遠小於 NeurIPS 2018 | 曠視科技提出MetaAnchor:自定義錨點框最佳化目標檢測系統 的維數,這導致NeurIPS 2018 | 曠視科技提出MetaAnchor:自定義錨點框最佳化目標檢測系統預測的權重聚集在一個明顯低階的子空間,這就是為什麼在等式(4)中把 NeurIPS 2018 | 曠視科技提出MetaAnchor:自定義錨點框最佳化目標檢測系統 方程化為一個殘差項,而不是直接使用。

架構細節

理論上講,MetaAnchor 適用於絕大多數現有的基於錨點框的目標檢測框架,但是對兩步檢測器的最後預測似乎並無助益,遂把主要研究精力聚焦於單步檢測器,並以當前最優的單步檢測器——RetinaNet 為例展示 MetaAnchor 架構。

NeurIPS 2018 | 曠視科技提出MetaAnchor:自定義錨點框最佳化目標檢測系統

圖 1:“把 MetaAnchor 應用於 RetinaNet” 示意圖。

圖 1(a)是 RetinaNet 示意圖。簡單來講,5 層的特徵 NeurIPS 2018 | 曠視科技提出MetaAnchor:自定義錨點框最佳化目標檢測系統 提取自一個 “U 形”的基礎網路,其中 P_3 表示最優的特徵圖(即解析度最高),P_7 則是最粗糙的。對於每一層特徵,附加一個名為“檢測頭”的子網路生成檢測結果。錨點框函式在每個檢測頭的尾部被定義。

為應用 MetaAnchor,需要重新設計原始的錨點框函式,保證其引數生成於自定義錨點框 b_i。首先要考慮如何編碼 b_i,一個包含位置、尺寸、分類標籤等資訊的向量。在本文實驗中,b_i 主要於錨點框尺寸相關,並表示為:

NeurIPS 2018 | 曠視科技提出MetaAnchor:自定義錨點框最佳化目標檢測系統

其中 ah_i 和 aw_i 是相應錨點框的高和寬,(AH,AW)是作為正則化項的“標準錨點框”的尺寸。

圖 1(b)示意了 MetaAnchor 在 RetinaNet 每個檢測頭的用法。在 MetaAnchor 中,透過兩個獨立的錨點框函式生成器 NeurIPS 2018 | 曠視科技提出MetaAnchor:自定義錨點框最佳化目標檢測系統 和 NeurIPS 2018 | 曠視科技提出MetaAnchor:自定義錨點框最佳化目標檢測系統 分別預測其權重。在 NeurIPS 2018 | 曠視科技提出MetaAnchor:自定義錨點框最佳化目標檢測系統 的設計中,隱藏神經元數量 m 設定為 128。此外,在 MetaAnchor 中,NeurIPS 2018 | 曠視科技提出MetaAnchor:自定義錨點框最佳化目標檢測系統 過濾器的數量減為 80,NeurIPS 2018 | 曠視科技提出MetaAnchor:自定義錨點框最佳化目標檢測系統 過濾器的數量減為 4。

值得注意的是, RetinaNet 中所有檢測頭的相應層的權重相同,甚至包括代表錨點框函式的最後層。為與上述設計一致,MetaAnchor 為每一層級的檢測頭使用相同的錨點框生成器函式 NeurIPS 2018 | 曠視科技提出MetaAnchor:自定義錨點框最佳化目標檢測系統 和 NeurIPS 2018 | 曠視科技提出MetaAnchor:自定義錨點框最佳化目標檢測系統,同時“標準框”(AH,AW)在不同層級保持不同。在本文實驗中,最低層級(即 P_3)標準框尺寸是所有 anchor box 尺寸的平均值,如表 1 最後一列所示。

NeurIPS 2018 | 曠視科技提出MetaAnchor:自定義錨點框最佳化目標檢測系統

表 1:Anchor box。

實驗

本文主要在 COCO 目標檢測任務中評估 MetaAnchor 的表現。如上所述,基礎檢測框架使用 RetinaNet,其中特徵提取器使用在 ImageNet 分類資料集上預訓練的 ResNet-50。

除非特別說明,MetaAnchor 使用錨點框函式生成器的獨立於資料的變體。訓練時,MetaAnchor 子網路藉助基礎檢測器聯合最佳化。MetaAnchor 不使用批歸一化

COCO 目標檢測結果

本文在 COCO-full 資料集上對比了嵌入與不嵌入 MetaAnchor 的 RetinaNet 的表現。訓練和測試的輸入解析度都是 600x,基礎特徵提取器是 ResNet-50,效能指標採用 COCO-minival 資料集的標準 mmAP。

NeurIPS 2018 | 曠視科技提出MetaAnchor:自定義錨點框最佳化目標檢測系統

表 8:在 COCO-minival 上的結果

表 8 給出了結果。有趣的是,本文復現的 RetinaNet 模型效能優於 RetinaNet 原論文 1.8%。相比之下, MetaAnchor 模型(即嵌入 MetaAnchor 的 RetinaNet)在 COCO-minival 上取得了 37.5% mmAP,效能優於本文實現的原始 RetinaNet 1.7%,優於 RetinaNet^*(復現 RetinaNet 的最好結果) 0.6%;而藉助資料的 MetaAnchor 模型則進一步把效能提升 0.4%。

另外,本文還印證了推理可透過 greedy search 輕鬆實現漲點而無需重訓練。

圖 2 視覺化了由 MetaAnchor 模型預測的一些檢測結果,可以明顯看到檢測框的形狀隨著自定義錨點框 b_i 而變化。

NeurIPS 2018 | 曠視科技提出MetaAnchor:自定義錨點框最佳化目標檢測系統

圖 2:不同自定義錨點框之下的檢測結果。

本文同樣在 PASCAL VOC 2017 資料集上評估了這一方法。

為進一步驗證 MetaAnchor,本文又在 YOLO v2 上做了實現。在 MetaAnchor 中,“標準框” (AH,AW)是(4.18,4.69)。結果如表 7 所示。很明顯,MetaAnchor 優於 YOLO v2 baseline,並藉助 greedy search 實現效能漲點。

NeurIPS 2018 | 曠視科技提出MetaAnchor:自定義錨點框最佳化目標檢測系統

表 7:嵌入MetaAnchor 的 YOLO v2 在 COCO-minival 上的結果。

結論

曠視科技提出了一個全新而靈活的錨點框機制,稱之為 MetaAnchor,它為目標檢測框架而生,其錨點框函式可由任意自定義的先驗框動態生成。

加上權重預測,MetaAnchor 可與大多數基於錨點框的目標檢測系統協同工作,比如當前最優的單步檢測器 RetinaNet。相較於預定義錨點框方法,實驗證明 MetaAnchor 對於錨點框設定和邊界框分佈更為魯棒,並在遷移任務上變現出潛力。

COCO 目標檢測任務的實驗表明,MetaAnchor 在多個維度連續優於同類方法。

參考文獻

  • D. Ha, A. Dai, and Q. V. Le. Hypernetworks. arXiv preprint arXiv:1609.09106, 2016.

  • R. Hu, P. Dollár, K. He, T. Darrell, and R. Girshick. Learning to segmentevery thing. arXiv preprint arXiv:1711.10370, 2017. 

  • M. Jaderberg, K. Simonyan, A. Zisserman, et al. Spatial transformer networks. In Advances in neural information processing systems, pages 2017–2025, 2015. 

  • T.-Y. Lin, P. Goyal, R. Girshick, K. He, and P. Dollár.Focalloss for dense object detection.

  • arXiv preprint arXiv:1708.02002, 2017. 

  • J.Redmon,S.Divvala,R.Girshick,andA.Farhadi.You only look once:Unified,real-timeobject detection. In Proceedings of the IEEE conference on computer vision and pattern recognition, pages 779–788, 2016. 

  • J. Redmon and A. Farhadi. Yolo9000: better, faster, stronger. arXiv preprint, 2017. 

相關文章