OverFeat 解讀:一個可同時分類,定位檢測的框架

Title: OverFeat: Integrated Recognition, Localization and Detection using Convolutional Networks (2014)
Link: Paper
Tips:

  1. 理解本文的主要貢獻:提出一個能同時完成三個任務的集成框架,以前的網絡都是針對一個任務的。
  2. 瞭解網絡架構(3)
  3. 瞭解卷積網絡計算的高效性(3)
  4. 理解定位任務中,如何根據多個預測框合併成一個最終的邊界框(4)

Summary:

文章結構很清晰,先介紹文章貢獻,提出問題及相關方法,再簡單介紹涉及的任務,接着對三個任務分別描述,最後是總結和討論。

文章提出的框架能同時解決三個視覺任務(分類+定位+檢測)。 但實際上,檢測=分類+定位(大致上),所以訓練的網絡只需要完成分類和定位任務。這兩個任務的區別是機器學習領域的分類和迴歸,特徵提取可共享,所以兩個任務只需要改一下輸出部分就行。

在這裏插入圖片描述

我們需要學習的主要是兩點:一是怎麼把一個任務的網絡改成另一個任務的網絡(分類到定位),二是如何把多個預測結果合併成一個最終結果(實際是選擇的過程,涉及到集合的概念)

我沒怎麼看比賽結果部分。


Abstract

  • 本文提出了一個使用卷積網絡進行分類,定位和檢測的集成框架
  • 介紹了一種新穎的深度學習方法,通過學習預測對象邊界來定位。
  • 使用單個共享網絡可以同時學習不同的任務。
  • 比賽:集成框架是 ILSVRC2013 的localization task 冠軍,detection and classifications tasks 也取得了有競爭力的結果。

1 Introduction

本文主要目的:

  • 表明訓練卷積網絡以同時對圖像中的對象進行分類,定位和檢測可以提高分類精度以及所有任務的檢測和定位精度
  • 介紹了一種通過累積預測邊界框進行定位和檢測的新方法。

問題描述:

ImageNet 分類數據集的圖像主要包含一個填充大部分圖像的居中對象,但我們感興趣的不一定是這個主要物體。想研究一些小物體或不居中的物體該怎麼辦?

  • 方法一:在圖像中的多個位置,以滑動窗口的方式並在多個比例上應用卷積網絡。缺點:窗口得到的可能是物體一部分,不包含物體中心,分類不錯,定位檢測效果差;
  • 方法二:不僅爲每個窗口生成類別上的分佈,還要對窗口中對象的邊界框的位置和大小進行預測;
  • 方法三:收集每個位置和大小的每個類別的信息。

一些現有的相關的方法:

  • 使用 ConvNet 在多個尺度上使用滑動窗口進行檢測和定位;
  • 使用 ConvNet 直接預測要定位的對象的實例化參數,例如相對於窗口的位置或對象的姿態;
  • 通過基於 ConvNet 的分割執行對象定位。

2 Vision Tasks

文章研究的是難度遞增的三個計算機視覺任務:分類,定位和檢測。每個任務都是下一個任務的子任務,作者使用單個框架和共享的特徵學習來完成所有任務。

數據集:2013 ImageNet Large Scale Visual Recognition Challenge (ILSVRC2013)

分類:判斷圖像主要物體的類別
定位:預測圖像主要物體的邊界框
檢測:預測圖像所有物體的邊界框和類別,要注意加上背景後類別數加一(指標是 mean average precision mAP)

下面對三個任務分別介紹。

3 Classification

網絡架構如表 1 所示,隨本文發佈的特徵提取器(feature extractor) 稱爲 “OverFeat”,有 fast 和 accurate 兩種模式,accurate 模式比 fast 更精確,表 1 展示的是 fast 模式。
在這裏插入圖片描述
實驗中,通過在每個位置和多個規模密集運行網絡來探索整個圖像。這種方法產生了更多的投票視圖,從而提高了魯棒性,同時保持了效率。將卷積網絡卷積在任意大小的圖像上的結果是每個尺度上C維向量的空間圖。

分類結果如表 2 所示,指標是 top-1 和 top-5 錯誤率。表 2 展示了不同的方法,其中第一行是 2012 年的 AlexNet。

在這裏插入圖片描述
計算高效性:與許多滑動窗口方法一次爲輸入窗口的每個窗口計算整個管道的方法相比,ConvNet 以滑動方式應用時具有內在的高效性,因爲它們共享重疊區域的計算。

圖 5 展示了卷積網絡計算的效率。在訓練期間,ConvNet 僅產生單個空間輸出(圖 5 上面)。但是當在測試時將其應用於較大的圖像時,它會產生一個空間輸出圖,例如2x2(圖 5 下面)。由於所有層都是卷積計算的,因此較大圖像所需的額外計算僅限於黃色區域
在這裏插入圖片描述

4 Localization

分類到定位:基於分類任務,把網絡的分類層替換爲迴歸層,訓練這個網絡預測每個位置和尺寸的物體的邊界框,就可以完成定位任務。

訓練思路

預測邊界框的網絡與分類網絡相比,特徵提取層是共享的,所以分類和定位的網絡可以同時運行,只是定位網絡最後的迴歸層需要在分類結束後重新計算(因爲迴歸需要用到分類結果)。因爲 softmax 層會輸出一個該位置關於某類別的分數,所以我們可以給每個 bounding box 附個 confidence。

更具體一些,把分類網絡的 1 到 5 層(用於特徵提取)固定,迴歸網絡使用每個例子的預測值和真實邊框的 L2 損失。最終的迴歸器層是特定於類的,具有1000個不同的版本(數據集有 1000 個類),每個類一個迴歸器版本。

還要注意,多尺度的方式訓練迴歸器對於跨尺度的預測組合非常重要。 單尺度的訓練將在該規模上表現良好,而在其他規模上仍然可以合理地進行。 但是,多尺度訓練將使預測在各個尺度之間正確匹配,並以指數方式增加合併預測的置信度。

預測框的結合

圖 7 是迴歸網絡預測的邊框,每個物體都有 1000 個預測的邊界框,我們需要合併它們,找到一個最合適的邊界框。

簡單概括合併的流程,其實是篩選的過程——

以分類輸出的分數爲依據,找出分數高的類別,因爲物體最可能屬於這些類;然後針對挑出的類和不同的尺寸,分別生成邊界框,再從這些邊界框中選擇最可能的框;有些框太相似了,參考價值不大,就把這種相似的框取平均值當成一個框;處理後的邊界框集就剩下一些可能性高差別又大的邊界框,我們選分類分數最高的那個當作最終結果。

合併算法如下:

  1. Cs 是分類網絡輸出的針對尺寸 s 的前 K 大的類別集合,s ∈ 1…6 ;
  2. 在尺寸 s 的所有空間位置上,將 Cs 中每個類別的迴歸網絡預測的邊界框集合分配給 Bs ;
  3. B 是 Bs 的並集,也就是所有尺寸下,該物體對應最可能的類別迴歸器輸出的的邊界框集合;
    在這裏插入圖片描述
  4. 重複下述的合併步驟直至停止;
  5. 當我們得到最可能的各個尺寸的邊界框後,我們要去除相似的兩個邊界框。
    其中,match_score 函數計算兩邊界框的中心距離與重疊區域面積的和;argmin 就是使 match_score 這個式子達到最小值時的 b1,b2 的取值;b1 和 b2 是上面的集合 B 中兩個不同的元素。
    在這裏插入圖片描述
  6. 算法停止迭代的條件:如果最近的兩個框的分數都比一個閾值 t 大,停止迭代,說明集合 B 中的每個框都有比較大的差別;
    在這裏插入圖片描述
  7. 否則,計算這兩個最近的邊界框的平均座標,然後把這兩個框從集合 B 中移除,把這個平均效果的邊界框加入。其中, box_merge 函數計算兩邊界框的平均座標。
    在這裏插入圖片描述

最終選分類成績最高對應的那個邊界框。
在這裏插入圖片描述

5 Detection

分類定位到檢測:基於分類和定位任務,把預測的所有邊界框,以及每個位置物體的分類結果結合起來,就可以完成檢測任務。

檢測訓練類似於分類訓練,但是在空間上。 可以同時訓練圖像的多個位置。 由於該模型是卷積模型,因此所有位置之間均共享所有權重。 與定位任務的主要區別在於,當不存在任何對象時,必須預測背景類。

6 Discussion

文章貢獻:

  1. 提出了一種可用於分類,定位和檢測的多尺度滑動窗口方法,該方法用於比賽取得了好成績。
  2. 解釋如何將ConvNets有效地用於檢測和定位任務。

可改進

  1. 定位任務,沒有在整個網絡 back-propping
  2. 使用的是loss2損失,而不是直接優化測量性能的 IOU 標準.
  3. 邊界框的替代參數設置可能有助於解相關輸出,這將有助於網絡訓練。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章