efficientdet本文系統地研究了用於目標檢測的各種神經網路結構設計選擇,並提出了幾種提高效率的關鍵優化方法。首先,提出了乙個加權的雙向特徵金字塔網路(bifpn),該網路允許簡單快速的多尺度特徵融合;其次,還提出了一種復合尺度擴張方法,該方法可以統一地對所有主幹網、特徵網路和**網路的解析度、深度和寬度進行縮放。 基於這些優化,開發了乙個新的物件檢測器家族,稱為efficientdet。efficientdet就是在efficientnet的骨幹網路基礎上,新增了一種簡單而高效的加權(類似與attention)雙向特徵金字塔網路(bifpn),達到了很好的效果。
我們先回顧一下上週所討論的efficientnet,efficientnet模型具有很獨特的特點,如下:
• 利用倒殘差神經網路增大神經網路的深度,通過更深的神經網路實現特徵提取;
• 改變每一層提取的特徵層數,實現更多層的特徵提取,得到更多的特徵,提公升寬度;
• 通過增大輸入的解析度也可以使得網路可以學習與表達的東西更加豐富,有利於提高精確度。
下面我們來一起學習它的高階版——efficientdet!
efficientdet開篇就介紹了兩大挑戰:
(1)高效的多尺度特徵融合,fpn之後,panet、nas-fpn提出跨尺度的特徵融合,但是之前的工作是直接將它們無差別得加起來,作者認為不同尺度特徵圖重要性不同,因此提出加權雙向fpn,權值是可以學習的引數。
(2)模型縮放,類似於efficientnet,對模型解析度、深度、寬度進行聯合縮放。本文核心方法bifpn+compound scaling(聯合縮放)。
• 結構方式:
首先,我們刪除那些只有一條輸入邊的節點。我們的直覺很簡單:如果乙個節點只有一條輸入邊而沒有特徵融合,那麼它對旨在融合不同特徵的特徵網路的貢獻就會更小。這就簡化了雙向網路;
其次,如果原始輸入節點和輸出節點處於同一層,我們會在原始輸入節點和輸出節點之間新增一條額外的邊,以在不增加太多成本的情況下融合更多的特性;
最後,與只有乙個自頂向下和乙個自底向上路徑的panet不同,我們處理每個雙向路徑(自頂向下和自底而上)路徑作為乙個特徵網路層,並重複同一層多次,以實現更高層次的特徵融合。
• 權重特徵融合:
在以往的特徵融合方式中,對所有輸入特徵一視同仁,不同尺度的特徵往往是相加,或者concat等等。在bifpn中作者引入了加權策略,給不同尺度的特徵不同的權重,類似於注意力機制,然後相加。
本**總結了3種加權特徵融合的方法:
(1)unbounded fusion:
這個是最直白的思想,加上乙個可學習的權重即可。
缺點:由於權重不做限制,可能會引起訓練不穩定。
(2)softmax-based fusion:
由於上一種方式不對 限制容易導致訓練不穩定,很自然的想到對每乙個權重用softmax轉換到0~1
缺點:計算softmax速度較慢,實驗證明在cpu上計算很慢。
(3)fast normalized fusion:
這個是本文所採用的快速正則化融合的方法。其中 ,因為經過了relu啟用函式, 是個極小值,號稱在cpu上比sofemax快30%。
efficientdet的總體架構:
我們採用imagenet預訓練的efficientnets作為骨幹網路。上文提出的bifpn作為特徵網路,採用3-7級特徵從骨幹網中反覆應用自頂向下和自底向上雙向特徵融合。將融合後的特徵分別輸入class prediction net和box prediction net中,分別生成目標class**和邊界box**,class和box網路權重在所有級別的特性中共享。
• backbone network:
efficientdet重用了efficientnet-b0到b6相同的寬度/深度縮放係數,並採用 efficientnet作為backbone,這樣我們就可以輕鬆地重用它們的imagenet預先訓練好的模型結構。
• bifpn network:
bifpn的寬度和深度按以下公式進行縮放:
寬度:深度:
• class/box prediction network:
對box/class prediction network中的depth的設定:
• input image resolution:
由於在bifpn中使用了3-7級特徵,所以輸入解析度必須可除,因此我們利用以下方程線性增加解析度:
其中,分別取0,1,2,3,4,5,6,7,如下表所示:
謝謝大家看到這裡嘻嘻!!!
cocoaPods簡略步驟
cocoapods ruby e curl fssl curl l bash s stable source rvm scripts rvm rvm v rvm install 2.0.0 gem sources remove gem sources a sudo gem install cocoa...
stl 容器 簡略
1.vector 動態連續陣列,空間不足時分配,重新分配雙倍空間進行儲存,資料的插入和刪除會導致後續資料的拷貝移動 2.list 雙向迴圈鍊錶,非連續空間 3.map 紅黑樹,log級別,空間記憶體消耗o n 插入 遞迴兩層上公升,最多旋轉2次,3 case 刪除 遞迴1層上公升,最多旋轉3次,4 ...
dns簡略介紹
二 dns 命名方案的設計思想 三 dns命名空間 二 dns 流程 1 pc0開啟瀏覽器www.baidu.com 跨網段兩台計算機要通訊必須是通過ip位址來通訊 2 pco不知道www.baidu.com對應的ip是什麼 去找到答案www.baidu.com對應的ip是什麼?3 pco發現自已配...