理解SSD多盒-實時目標檢測

這裏寫圖片描述
這幅圖片解釋了構成直觀的解釋關於SSD多盒目標檢測技術。
自從AlexNet在2012年ILSVRC比賽中對於圖像識別任務打敗傳統計算機視覺方法後給研究界帶來風暴。在計算機視覺領域,傳統神經網絡在圖像分類表現出色,包含分類圖片,給定類別集合(例如貓,狗)使用網絡來決定圖像中呈現的最可信的類別。現在,深度學習網絡比人類在圖像分類表現更好。然而我們作爲人類在觀察和交互世界時可以比分類圖像任務做的更多。我們也定位和分類各個成分在我們的視覺中。這些是更復雜的任務。
1 The Region-Convolutional Neural Network(R-CNN)
研究員開發RCNN來處理目標檢測任務,定位和分類。廣泛地說,一個R-CNN是一種特別類型的CNN其能夠定位和檢測物體在圖像中:輸出是一系列bounding box集合,很接近的匹配每個檢測的物體,也對於每個檢測的物體輸出類別。在RCNN之後發展了Fast-RCNN , Faster-RCNN,每一次提升是使用更快的網絡完成實時目標檢測。但是上述網絡仍然遺留一下問題:
a) 訓練數據是不實用的並且太長
b) 訓練要經歷多個階段(例如訓練region proposal 和 分類器)
c) 網絡在推論時太慢了(也就是當處理非訓練數據時)
幸運的是,現在新的技術出現來解決RCNN的瓶頸,能夠實時目標檢測。最有名的是YOLO(you only look once)和SSD multiBox(Single Shot Detector).在本文中,我們將討論SSD。
2 Single Shot MultiBox Detector
SSD論文在2016年11月放出並達到當前最好的表現和精度對於目標檢測任務,74% mAP 每秒59幀在標準數據集PascalVOC和COCO。爲了更好理解SSD,我們從解釋這個架構的名字來由開始:
* Single shot:這意味着物體定位和分類任務在單次網絡傳播中完成
* MultiBox:這是對於bounding box迴歸技術的名稱
* Detector: 網絡是一個物體檢測器,並能分類這些檢測的物體

3 架構
這裏寫圖片描述
當你看上述圖是,SSD的架構建立在一個VGG-16架構上,但拋棄了全連接層。使用VGG-16作爲基網絡的原因是因爲其在高質量圖像分類任務和它對於問題的流行性的高表現,遷移學習能幫助提高結果。而不是原始的VGG全連接層,一系列輔助卷積層(從conv6)被增加,因此能夠在多尺度提取特徵並逐漸減少輸入的大小到每個接下來的層。這裏寫圖片描述

4MultiBox
SSD的bounding box 迴歸技術受Szegedy的工作關於Multibox影響, 一種對於快速類別不可知的bounding box座標提議方法。在MultiBox工作中使用Inception 風格的卷積網絡。1*1 卷積幫助降維當維度的數量下降時(但是寬和高保持不變)
這裏寫圖片描述
MultiBox的損失函數也結合兩個重要組成:
1. 置信度損失:這度量多大置信度關於計算的Bounding box的物體性。分類的交叉熵被用來計算該損失。
2. 定位損失:這度量了網絡預測的Bounding box和真實的box距離多遠,這裏使用L2範數。
關於損失的表達:multibox_loss = confidence_loss +alpha * location_loss.
alpha平衡定位損失的貢獻。目標是找到最優減少損失函數的參數值,因此讓預測值距離真實值更近。

5 multi-box 先驗和IOU
在Bounding box 生成的周圍邏輯旋轉更復雜。在Multibox中,研究員創造了我們稱爲先驗(或者角點在Faster-RCNN),就是提前就算,固定尺寸的bounding boxes很接近原始真實boxes的分佈。事實上這些先驗以他們的在並集率的交集集合選出(Intersection over Union ratio IOU, 有時也稱Jaccard 索引)大於0.5閾值的。因此MultiBox使用先驗開始作爲預測並嘗試去迴歸更接近真實值的bounding box

這裏寫圖片描述
最後架構包含11個先驗每個特徵圖單元(8*8, 6*6, 4*4, 3*3, 2*2)和只有一個1*1 的特徵圖,導致最後每張圖片有1420個先驗,因此增強在多尺度下輸入圖像的魯棒收斂,來檢測多種大小的物體。
最後MultiBox 只保留了前K個預測,其中有最小的定位和置信度損失。

6 SSD 提升
返回到SSD,一些調整增加去使網絡更有能力去定位和分類物體。
固定先驗:不像MultiBox, 每個特徵圖單元關聯一系列默認不同維度和方面比例的Bounding box。這些先驗是手動選擇,然而在MultiBox,他們被選擇因爲他們的IOU關於真實值超過了0.5。在理論上應該允許SSD去泛化到任何輸入類型,不要求一個預訓練階段對於先驗生成。例如假設我們有數b個默認的bounding box在每個特徵圖單元上,c個類別取分類,在一個給定特徵圖大小爲f = m * n , SSD應該計算f(b+c)的值對於這個特徵圖。
定位損失:SSD使用平滑的L1範數來計算定位損失。沒有L2範數精確,但也很高效並給SSD更多空間對於調整,它沒有試圖爲在bounding box預測的像素級最好。
分類:MultiBox在分類任務表現差,然而SSD表現好。因此對於每個預測的bounding box,一系列c個類別預測被計算。

Training & Running SSD
數據集
Pascal VOC和COCO是較好的開始點。
默認的bounding boxes
推薦去計算一系列變化的bounding boxes, 在不同尺度和方面比率來確保捕獲絕大多數的物體。SSD論文中每個特徵圖有6個bounding boxes。
特徵圖
特徵圖(也就是卷積塊的結果)是在不同尺度下圖像中顯著特徵的表達。因此在多種特徵圖中跑MultiBox增加了最終檢測定位和分類的物體的似然。
7 Hard Negative Mining
在訓練彙總,大多數bounding box只有較低的IOU並因此被認爲是負訓練樣本,我們可能最終使用不成比例的負樣本數在訓練中。因此不是使用所有負預測,而是保持一定負樣本到正樣本的比例爲3:1。需要保持負樣本的原因是因爲網絡也需要學習和被更清晰的告知什麼組成了一個不正確的檢測。
這裏寫圖片描述

8 數據增強
SSD作者聲稱數據增強很重要來教會網絡變得更魯棒對於輸入不同物體大小。他們生成額外的訓練樣本具有不同的IOU比例包含原始圖像塊和隨機塊。並且,每個圖像也隨機水平旋轉以0.5的概率,隱藏確保潛在物體出現在左和右具有相似的似然。

9 非最大抑制(Non-Maximun Suppression)
在SSD的一次前向傳輸在推斷是生成的大量boxes,有必要減少大量的Bounding box通過應用NMS技術:boxes具有一個置信度閾值少於cf(例如0.01) 和IOU少於lt(例如0.45)會被拋棄,只要前N個預測保留。這確保了只有最可能的預測被保留,噪音被移除。

10 額外知識
以下幾點觀察:
* 許多默認的boxes具有更精確的檢測,儘管這影響速度降低
* 在多層用MultiBox導致更好的預測,由於檢測器在多分辨率中檢測特徵
* 80%的時間花在基VGG-16網絡,這意味有一個更快的相同精度的網絡 SSD的表現會更好。
* SSD 混淆相似類別的物體。這可能因爲定位對於多類別是共享的
* SSD-500(最搞分辨率使用512*512輸入圖像)完成最好mAP 在PascalVOC2007 爲76.8%,幀率爲22
* SSD在相似的物體上產生較差的表現,因爲他們可能沒有仔所有特徵圖中出現。增加輸入圖像分辨率能緩解問題但不能完全解決。
*

發佈了38 篇原創文章 · 獲贊 12 · 訪問量 4萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章